From 65b8cf5755ad13e69ba2bf384fefb311db9eec3c Mon Sep 17 00:00:00 2001 From: dan-da Date: Wed, 15 Jun 2016 11:19:39 -0700 Subject: [PATCH] add --show-xpub option --- joinmarket/wallet.py | 8 ++++---- wallet-tool.py | 16 +++++++++++----- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/joinmarket/wallet.py b/joinmarket/wallet.py index 37225c72..ad177ac1 100644 --- a/joinmarket/wallet.py +++ b/joinmarket/wallet.py @@ -130,13 +130,13 @@ def __init__(self, if extend_mixdepth and len(self.index_cache) > max_mix_depth: self.max_mix_depth = len(self.index_cache) self.gaplimit = gaplimit - master = btc.bip32_master_key(self.seed, (btc.MAINNET_PRIVATE if + self.master_key = btc.bip32_master_key(self.seed, (btc.MAINNET_PRIVATE if get_network() == 'mainnet' else btc.TESTNET_PRIVATE)) - m_0 = btc.bip32_ckd(master, 0) - mixing_depth_keys = [btc.bip32_ckd(m_0, c) + m_0 = btc.bip32_ckd(self.master_key, 0) + self.mixing_depth_keys = [btc.bip32_ckd(m_0, c) for c in range(self.max_mix_depth)] self.keys = [(btc.bip32_ckd(m, 0), btc.bip32_ckd(m, 1)) - for m in mixing_depth_keys] + for m in self.mixing_depth_keys] # self.index = [[0, 0]]*max_mix_depth self.index = [] diff --git a/wallet-tool.py b/wallet-tool.py index f7a0655c..d6696d46 100644 --- a/wallet-tool.py +++ b/wallet-tool.py @@ -59,6 +59,11 @@ dest='csv', default=False, help=('When using the history method, output as csv')) +parser.add_option('--show-xpub', + action='store_true', + dest='showxpub', + default=False, + help=('Display master xpub key for wallet and each mix level')) (options, args) = parser.parse_args() # if the index_cache stored in wallet.json is longer than the default @@ -108,17 +113,18 @@ def cus_print(s): if method != 'summary': print(s) + if options.showxpub: + cus_print('wallet xpub: %s' % (btc.bip32_privtopub(wallet.master_key))) + total_balance = 0 for m in range(wallet.max_mix_depth): cus_print('mixing depth %d m/0/%d/' % (m, m)) + if options.showxpub: + cus_print(' xpub: %s' % (btc.bip32_privtopub(wallet.mixing_depth_keys[m]))) balance_depth = 0 for forchange in [0, 1]: - if forchange == 0: - xpub_key = btc.bip32_privtopub(wallet.keys[m][forchange]) - else: - xpub_key = '' cus_print(' ' + ('external' if forchange == 0 else 'internal') + - ' addresses m/0/%d/%d' % (m, forchange) + ' ' + xpub_key) + ' addresses m/0/%d/%d' % (m, forchange) ) for k in range(wallet.index[m][forchange] + options.gaplimit): addr = wallet.get_addr(m, forchange, k)