diff --git a/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java b/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java index 4d51725bdf2..083bb0d2d37 100644 --- a/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java +++ b/core/src/main/java/org/bitcoinj/wallet/DeterministicKeyChain.java @@ -1314,6 +1314,11 @@ public Script freshOutputScript(KeyPurpose purpose) { throw new UnsupportedOperationException(); } + public void printAllPubKeysAsHex(StringBuilder stringBuilder) { + for (ECKey key : getKeys(false)) + stringBuilder.append('"').append(Utils.HEX.encode(key.getPubKey())).append('"').append(",\n"); + } + public String toString(boolean includePrivateKeys, NetworkParameters params) { final DeterministicKey watchingKey = getWatchingKey(); final StringBuilder builder = new StringBuilder(); diff --git a/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java b/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java index 6aba8d79d79..48570a91447 100644 --- a/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java +++ b/core/src/main/java/org/bitcoinj/wallet/KeyChainGroup.java @@ -786,6 +786,19 @@ private static void extractFollowingKeychains(List chains } } + public String printAllPubKeysAsHex() { + StringBuilder stringBuilder = new StringBuilder(); + if (basic != null) { + List keys = basic.getKeys(); + Collections.sort(keys, ECKey.AGE_COMPARATOR); + for (ECKey key : keys) + stringBuilder.append('"').append(Utils.HEX.encode(key.getPubKey())).append('"').append(",\n"); + } + for (DeterministicKeyChain chain : chains) + chain.printAllPubKeysAsHex(stringBuilder); + return stringBuilder.toString(); + } + public String toString(boolean includePrivateKeys) { final StringBuilder builder = new StringBuilder(); if (basic != null) { diff --git a/core/src/main/java/org/bitcoinj/wallet/Wallet.java b/core/src/main/java/org/bitcoinj/wallet/Wallet.java index 3ca67caa424..5e333cad100 100644 --- a/core/src/main/java/org/bitcoinj/wallet/Wallet.java +++ b/core/src/main/java/org/bitcoinj/wallet/Wallet.java @@ -3165,6 +3165,9 @@ public String toString() { return toString(false, true, true, null); } + public String printAllPubKeysAsHex() { + return keyChainGroup.printAllPubKeysAsHex(); + } /** * Formats the wallet as a human readable piece of text. Intended for debugging, the format is not meant to be