Browse Source

add support for p2sh addresses to trezor plugin

283
ThomasV 11 years ago
parent
commit
11e1e0e923
  1. 19
      plugins/trezor.py

19
plugins/trezor.py

@ -9,7 +9,7 @@ from base64 import b64encode, b64decode
from electrum_gui.qt.password_dialog import make_password_dialog, run_password_dialog from electrum_gui.qt.password_dialog import make_password_dialog, run_password_dialog
from electrum_gui.qt.util import ok_cancel_buttons from electrum_gui.qt.util import ok_cancel_buttons
from electrum.account import BIP32_Account from electrum.account import BIP32_Account
from electrum.bitcoin import EncodeBase58Check, public_key_to_bc_address from electrum.bitcoin import EncodeBase58Check, public_key_to_bc_address, bc_address_to_hash_160
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
@ -255,23 +255,24 @@ class TrezorWallet(NewWallet):
outputs = [] outputs = []
for type, address, amount in tx.outputs: for type, address, amount in tx.outputs:
assert type == 'address'
txoutputtype = types.TxOutputType() txoutputtype = types.TxOutputType()
if self.is_change(address): if self.is_change(address):
address_path = self.address_id(address) address_path = self.address_id(address)
address_n = self.get_client().expand_path(address_path) address_n = self.get_client().expand_path(address_path)
txoutputtype.address_n.extend(address_n) txoutputtype.address_n.extend(address_n)
else: else:
txoutputtype.address = address txoutputtype.address = address
txoutputtype.amount = amount txoutputtype.amount = amount
addrtype, hash_160 = bc_address_to_hash_160(address)
txoutputtype.script_type = types.PAYTOADDRESS if addrtype == 0:
#TODO txoutputtype.script_type = types.PAYTOADDRESS
#if output['is_p2sh']: elif addrtype == 5:
# txoutputtype.script_type = types.PAYTOSCRIPTHASH txoutputtype.script_type = types.PAYTOSCRIPTHASH
else:
raise BaseException('addrtype')
outputs.append(txoutputtype) outputs.append(txoutputtype)
return outputs return outputs
def electrum_tx_to_txtype(self, tx): def electrum_tx_to_txtype(self, tx):

Loading…
Cancel
Save