diff --git a/core/src/main/java/org/bitcoinj/wallet/Wallet.java b/core/src/main/java/org/bitcoinj/wallet/Wallet.java index 57e13d7b..ec22845e 100644 --- a/core/src/main/java/org/bitcoinj/wallet/Wallet.java +++ b/core/src/main/java/org/bitcoinj/wallet/Wallet.java @@ -709,7 +709,11 @@ public class Wallet extends BaseTaggableObject public List getIssuedReceiveKeys() { keyChainGroupLock.lock(); try { - return keyChainGroup.getActiveKeyChain().getIssuedReceiveKeys(); + List keys = new LinkedList<>(); + long keyRotationTimeSecs = vKeyRotationTimestamp; + for (final DeterministicKeyChain chain : keyChainGroup.getActiveKeyChains(keyRotationTimeSecs)) + keys.addAll(chain.getIssuedReceiveKeys()); + return keys; } finally { keyChainGroupLock.unlock(); } @@ -722,12 +726,13 @@ public class Wallet extends BaseTaggableObject public List
getIssuedReceiveAddresses() { keyChainGroupLock.lock(); try { - final DeterministicKeyChain activeKeyChain = keyChainGroup.getActiveKeyChain(); - final List keys = activeKeyChain.getIssuedReceiveKeys(); - final Script.ScriptType outputScriptType = activeKeyChain.getOutputScriptType(); - List
addresses = new ArrayList<>(keys.size()); - for (ECKey key : keys) - addresses.add(Address.fromKey(getParams(), key, outputScriptType)); + List
addresses = new ArrayList<>(); + long keyRotationTimeSecs = vKeyRotationTimestamp; + for (final DeterministicKeyChain chain : keyChainGroup.getActiveKeyChains(keyRotationTimeSecs)) { + Script.ScriptType outputScriptType = chain.getOutputScriptType(); + for (ECKey key : chain.getIssuedReceiveKeys()) + addresses.add(Address.fromKey(getParams(), key, outputScriptType)); + } return addresses; } finally { keyChainGroupLock.unlock();