diff --git a/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java b/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java index 1829a0ef..8a04a3c2 100644 --- a/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java +++ b/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java @@ -1186,8 +1186,8 @@ public class DeterministicKeyChain implements EncryptableKeyChain { DeterministicKey parent = detkey.getParent(); if (parent == null) continue; if (detkey.getPath().size() <= treeSize) continue; - if (parent.equals(internalKey) && detkey.getChildNumber().i() > issuedInternalKeys) continue; - if (parent.equals(externalKey) && detkey.getChildNumber().i() > issuedExternalKeys) continue; + if (parent.equals(internalKey) && detkey.getChildNumber().i() >= issuedInternalKeys) continue; + if (parent.equals(externalKey) && detkey.getChildNumber().i() >= issuedExternalKeys) continue; issuedKeys.add(detkey); } return issuedKeys; diff --git a/core/src/test/java/org/bitcoinj/wallet/DeterministicKeyChainTest.java b/core/src/test/java/org/bitcoinj/wallet/DeterministicKeyChainTest.java index a0bfde96..d13ba6c8 100644 --- a/core/src/test/java/org/bitcoinj/wallet/DeterministicKeyChainTest.java +++ b/core/src/test/java/org/bitcoinj/wallet/DeterministicKeyChainTest.java @@ -72,6 +72,14 @@ public class DeterministicKeyChainTest { key3.sign(Sha256Hash.ZERO_HASH); } + @Test + public void getKeys() throws Exception { + chain.getKey(KeyChain.KeyPurpose.RECEIVE_FUNDS); + chain.getKey(KeyChain.KeyPurpose.CHANGE); + chain.maybeLookAhead(); + assertEquals(2, chain.getKeys(false).size()); + } + @Test public void signMessage() throws Exception { ECKey key = chain.getKey(KeyChain.KeyPurpose.RECEIVE_FUNDS);