From 57783ec158af5ca8d63d596638bc3b6ee63b053f Mon Sep 17 00:00:00 2001 From: "Peter D. Gray" Date: Mon, 24 Jun 2019 13:36:04 -0400 Subject: [PATCH] Add address format to export data, and bugfix: use xfp_for_keystore() --- electrum/plugins/coldcard/coldcard.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/electrum/plugins/coldcard/coldcard.py b/electrum/plugins/coldcard/coldcard.py index 017568d64..4b37660ad 100644 --- a/electrum/plugins/coldcard/coldcard.py +++ b/electrum/plugins/coldcard/coldcard.py @@ -22,7 +22,8 @@ from ..hw_wallet import HW_PluginBase from ..hw_wallet.plugin import LibraryFoundButUnusable, only_hook_if_libraries_available from .basic_psbt import BasicPSBT -from .build_psbt import build_psbt, xfp2str, unpacked_xfp_path, merge_sigs_from_psbt +from .build_psbt import (build_psbt, xfp2str, unpacked_xfp_path, + merge_sigs_from_psbt, xfp_for_keystore) _logger = get_logger(__name__) @@ -601,14 +602,12 @@ class ColdcardPlugin(HW_PluginBase): print('# Exported from Electrum', file=fp) print(f'Name: {name:.20s}', file=fp) print(f'Policy: {wallet.m} of {wallet.n}', file=fp) + print(f'Format: {wallet.txin_type.upper()}' , file=fp) xpubs = [] derivs = set() for xp, ks in zip(wallet.get_master_public_keys(), wallet.get_keystores()): - xfp = getattr(ks, 'ckcc_xfp', None) - if xfp is None: - xfp = xfp_from_xpub(ks.get_master_public_key()) - + xfp = xfp_for_keystore(ks) dd = getattr(ks, 'derivation', 'm') xpubs.append( (xfp2str(xfp), xp, dd) ) @@ -654,12 +653,9 @@ class ColdcardPlugin(HW_PluginBase): path = "%s/%d/%d" % (getattr(ks, 'derivation', 'm'), *wallet.get_address_index(address)) - # need master XFP for each co-signers; if it's a coldcard, easy. - xfp = getattr(ks, 'ckcc_xfp', None) - if xfp is None: - xfp = xfp_from_xpub(ks.get_master_public_key()) - - xfps.append(unpacked_xfp_path(xfp, path)) + # need master XFP for each co-signers + ks_xfp = xfp_for_keystore(ks) + xfps.append(unpacked_xfp_path(ks_xfp, path)) # put into BIP45 (sorted) order pkx = list(sorted(zip(pubkeys, xfps)))