hardware wallets: pass xtype to get_xpub
This commit is contained in:
@@ -51,7 +51,7 @@ class Ledger_Client():
|
||||
def i4b(self, x):
|
||||
return pack('>I', x)
|
||||
|
||||
def get_xpub(self, bip32_path):
|
||||
def get_xpub(self, bip32_path, xtype):
|
||||
self.checkDevice()
|
||||
# bip32_path is of the form 44'/0'/1'
|
||||
# S-L-O-W - we don't handle the fingerprint directly, so compute
|
||||
@@ -60,14 +60,11 @@ class Ledger_Client():
|
||||
#self.get_client() # prompt for the PIN before displaying the dialog if necessary
|
||||
#self.handler.show_message("Computing master public key")
|
||||
try:
|
||||
if (os.getenv("LEDGER_NATIVE_SEGWIT") is not None) and self.supports_native_segwit():
|
||||
xtype = 'p2wpkh'
|
||||
elif bip32_path.startswith("m/49'/"):
|
||||
if not self.supports_segwit():
|
||||
raise Exception("Firmware version too old for Segwit support. Please update at https://www.ledgerwallet.com")
|
||||
xtype = 'p2wpkh-p2sh'
|
||||
else:
|
||||
xtype = 'standard'
|
||||
if xtype in ['p2wpkh', 'p2wsh'] and not nelf.supports_native_segwit():
|
||||
raise Exception("Firmware version too old for Segwit support. Please update at https://www.ledgerwallet.com")
|
||||
if xtype in ['p2wpkh-p2sh', 'p2wsh-p2sh'] and not self.supports_segwit():
|
||||
raise Exception("Firmware version too old for Segwit support. Please update at https://www.ledgerwallet.com")
|
||||
|
||||
splitPath = bip32_path.split('/')
|
||||
if splitPath[0] == 'm':
|
||||
splitPath = splitPath[1:]
|
||||
@@ -493,18 +490,15 @@ class LedgerPlugin(HW_PluginBase):
|
||||
devmgr = self.device_manager()
|
||||
device_id = device_info.device.id_
|
||||
client = devmgr.client_by_id(device_id)
|
||||
#client.handler = wizard
|
||||
client.handler = self.create_handler(wizard)
|
||||
#client.get_xpub('m')
|
||||
client.get_xpub("m/44'/0'") # TODO replace by direct derivation once Nano S > 1.1
|
||||
client.get_xpub("m/44'/0'", 'standard') # TODO replace by direct derivation once Nano S > 1.1
|
||||
|
||||
def get_xpub(self, device_id, derivation, wizard):
|
||||
def get_xpub(self, device_id, derivation, xtype, wizard):
|
||||
devmgr = self.device_manager()
|
||||
client = devmgr.client_by_id(device_id)
|
||||
#client.handler = wizard
|
||||
client.handler = self.create_handler(wizard)
|
||||
client.checkDevice()
|
||||
xpub = client.get_xpub(derivation)
|
||||
xpub = client.get_xpub(derivation, xtype)
|
||||
return xpub
|
||||
|
||||
def get_client(self, keystore, force_pair=True):
|
||||
|
||||
Reference in New Issue
Block a user