trezor/keepkey separation: tx output type
This commit is contained in:
parent
65c15c5a03
commit
1359fac4c9
|
@ -4,7 +4,8 @@ from binascii import hexlify, unhexlify
|
||||||
|
|
||||||
from electrum.util import bfh, bh2u
|
from electrum.util import bfh, bh2u
|
||||||
from electrum.bitcoin import (b58_address_to_hash160, xpub_from_pubkey,
|
from electrum.bitcoin import (b58_address_to_hash160, xpub_from_pubkey,
|
||||||
TYPE_ADDRESS, TYPE_SCRIPT, NetworkConstants)
|
TYPE_ADDRESS, TYPE_SCRIPT, NetworkConstants,
|
||||||
|
is_segwit_address)
|
||||||
from electrum.i18n import _
|
from electrum.i18n import _
|
||||||
from electrum.plugins import BasePlugin
|
from electrum.plugins import BasePlugin
|
||||||
from electrum.transaction import deserialize
|
from electrum.transaction import deserialize
|
||||||
|
@ -351,7 +352,16 @@ class TrezorCompatiblePlugin(HW_PluginBase):
|
||||||
txoutputtype.script_type = self.types.PAYTOOPRETURN
|
txoutputtype.script_type = self.types.PAYTOOPRETURN
|
||||||
txoutputtype.op_return_data = address[2:]
|
txoutputtype.op_return_data = address[2:]
|
||||||
elif _type == TYPE_ADDRESS:
|
elif _type == TYPE_ADDRESS:
|
||||||
txoutputtype.script_type = self.types.PAYTOADDRESS
|
if is_segwit_address(address):
|
||||||
|
txoutputtype.script_type = self.types.PAYTOWITNESS
|
||||||
|
else:
|
||||||
|
addrtype, hash_160 = b58_address_to_hash160(address)
|
||||||
|
if addrtype == NetworkConstants.ADDRTYPE_P2PKH:
|
||||||
|
txoutputtype.script_type = self.types.PAYTOADDRESS
|
||||||
|
elif addrtype == NetworkConstants.ADDRTYPE_P2SH:
|
||||||
|
txoutputtype.script_type = self.types.PAYTOSCRIPTHASH
|
||||||
|
else:
|
||||||
|
raise BaseException('addrtype: ' + str(addrtype))
|
||||||
txoutputtype.address = address
|
txoutputtype.address = address
|
||||||
|
|
||||||
outputs.append(txoutputtype)
|
outputs.append(txoutputtype)
|
||||||
|
|
|
@ -4,8 +4,7 @@ from binascii import hexlify, unhexlify
|
||||||
|
|
||||||
from electrum.util import bfh, bh2u
|
from electrum.util import bfh, bh2u
|
||||||
from electrum.bitcoin import (b58_address_to_hash160, xpub_from_pubkey,
|
from electrum.bitcoin import (b58_address_to_hash160, xpub_from_pubkey,
|
||||||
TYPE_ADDRESS, TYPE_SCRIPT, NetworkConstants,
|
TYPE_ADDRESS, TYPE_SCRIPT, NetworkConstants)
|
||||||
is_segwit_address)
|
|
||||||
from electrum.i18n import _
|
from electrum.i18n import _
|
||||||
from electrum.plugins import BasePlugin
|
from electrum.plugins import BasePlugin
|
||||||
from electrum.transaction import deserialize
|
from electrum.transaction import deserialize
|
||||||
|
@ -352,19 +351,7 @@ class TrezorCompatiblePlugin(HW_PluginBase):
|
||||||
txoutputtype.script_type = self.types.PAYTOOPRETURN
|
txoutputtype.script_type = self.types.PAYTOOPRETURN
|
||||||
txoutputtype.op_return_data = address[2:]
|
txoutputtype.op_return_data = address[2:]
|
||||||
elif _type == TYPE_ADDRESS:
|
elif _type == TYPE_ADDRESS:
|
||||||
# trezor would be fine with self.types.PAYTOADDRESS
|
txoutputtype.script_type = self.types.PAYTOADDRESS
|
||||||
# for any non-change output
|
|
||||||
# but we need to maintain keepkey compatibility in this cls
|
|
||||||
if is_segwit_address(address):
|
|
||||||
txoutputtype.script_type = self.types.PAYTOWITNESS
|
|
||||||
else:
|
|
||||||
addrtype, hash_160 = b58_address_to_hash160(address)
|
|
||||||
if addrtype == NetworkConstants.ADDRTYPE_P2PKH:
|
|
||||||
txoutputtype.script_type = self.types.PAYTOADDRESS
|
|
||||||
elif addrtype == NetworkConstants.ADDRTYPE_P2SH:
|
|
||||||
txoutputtype.script_type = self.types.PAYTOSCRIPTHASH
|
|
||||||
else:
|
|
||||||
raise BaseException('addrtype: ' + str(addrtype))
|
|
||||||
txoutputtype.address = address
|
txoutputtype.address = address
|
||||||
|
|
||||||
outputs.append(txoutputtype)
|
outputs.append(txoutputtype)
|
||||||
|
|
Loading…
Reference in New Issue