diff --git a/embed/bootloader/protob/messages.proto b/embed/bootloader/protob/messages.proto index 23f565edb8..f072d1bc8a 100644 --- a/embed/bootloader/protob/messages.proto +++ b/embed/bootloader/protob/messages.proto @@ -47,7 +47,6 @@ message Features { // optional bool passphrase_protection = 8; // is node/mnemonic encrypted using passphrase? optional string language = 9; // device language optional string label = 10; // device description label -// repeated CoinType coins = 11; // supported coins optional bool initialized = 12; // does device contain seed? optional bytes revision = 13; // SCM revision of firmware // optional bytes bootloader_hash = 14; // hash of the bootloader diff --git a/src/apps/common/coins.py b/src/apps/common/coins.py index c1dd05249a..780369a32c 100644 --- a/src/apps/common/coins.py +++ b/src/apps/common/coins.py @@ -1,228 +1,257 @@ -from trezor.messages.CoinType import CoinType +class CoinInfo: + + def __init__( + self, + coin_name: str, + coin_shortcut: str, + address_type: int, + address_type_p2sh: int, + maxfee_kb: int, + signed_message_header: str, + xpub_magic: int, + bech32_prefix: str, + cashaddr_prefix: str, + segwit: bool, + forkid: int, + force_bip143: bool + ): + self.coin_name = coin_name + self.coin_shortcut = coin_shortcut + self.address_type = address_type + self.address_type_p2sh = address_type_p2sh + self.maxfee_kb = maxfee_kb + self.signed_message_header = signed_message_header + self.xpub_magic = xpub_magic + self.bech32_prefix = bech32_prefix + self.cashaddr_prefix = cashaddr_prefix + self.segwit = segwit + self.forkid = forkid + self.force_bip143 = force_bip143 + # the following list is generated using tools/codegen/gen_coins.py # do not edit manually! COINS = [ - CoinType( + CoinInfo( coin_name='Bitcoin', coin_shortcut='BTC', - coin_label='Bitcoin', address_type=0, address_type_p2sh=5, maxfee_kb=2000000, signed_message_header='Bitcoin Signed Message:\n', xpub_magic=0x0488b21e, bech32_prefix='bc', + cashaddr_prefix=None, segwit=True, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Testnet', coin_shortcut='TEST', - coin_label='Testnet', address_type=111, address_type_p2sh=196, maxfee_kb=10000000, signed_message_header='Bitcoin Signed Message:\n', xpub_magic=0x043587cf, bech32_prefix='tb', + cashaddr_prefix=None, segwit=True, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Bcash', coin_shortcut='BCH', - coin_label='Bitcoin Cash', address_type=0, address_type_p2sh=5, maxfee_kb=500000, signed_message_header='Bitcoin Signed Message:\n', xpub_magic=0x0488b21e, bech32_prefix=None, + cashaddr_prefix='bitcoincash', segwit=False, forkid=0, force_bip143=True, ), - CoinType( + CoinInfo( coin_name='Bcash Testnet', coin_shortcut='TBCH', - coin_label='Bitcoin Cash Testnet', address_type=111, address_type_p2sh=196, maxfee_kb=10000000, signed_message_header='Bitcoin Signed Message:\n', xpub_magic=0x043587cf, bech32_prefix=None, + cashaddr_prefix='bchtest', segwit=False, forkid=0, force_bip143=True, ), - CoinType( + CoinInfo( coin_name='Namecoin', coin_shortcut='NMC', - coin_label='Namecoin', address_type=52, address_type_p2sh=5, maxfee_kb=10000000, signed_message_header='Namecoin Signed Message:\n', xpub_magic=0x019da462, bech32_prefix=None, + cashaddr_prefix=None, segwit=False, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Litecoin', coin_shortcut='LTC', - coin_label='Litecoin', address_type=48, address_type_p2sh=50, maxfee_kb=40000000, signed_message_header='Litecoin Signed Message:\n', xpub_magic=0x019da462, bech32_prefix='ltc', + cashaddr_prefix=None, segwit=True, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Dogecoin', coin_shortcut='DOGE', - coin_label='Dogecoin', address_type=30, address_type_p2sh=22, maxfee_kb=1000000000, signed_message_header='Dogecoin Signed Message:\n', xpub_magic=0x02facafd, bech32_prefix=None, + cashaddr_prefix=None, segwit=False, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Dash', coin_shortcut='DASH', - coin_label='Dash', address_type=76, address_type_p2sh=16, maxfee_kb=100000, signed_message_header='DarkCoin Signed Message:\n', xpub_magic=0x02fe52cc, bech32_prefix=None, + cashaddr_prefix=None, segwit=False, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Zcash', coin_shortcut='ZEC', - coin_label='Zcash', address_type=7352, address_type_p2sh=7357, maxfee_kb=1000000, signed_message_header='Zcash Signed Message:\n', xpub_magic=0x0488b21e, bech32_prefix=None, + cashaddr_prefix=None, segwit=False, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Zcash Testnet', coin_shortcut='TAZ', - coin_label='Zcash Testnet', address_type=7461, address_type_p2sh=7354, maxfee_kb=10000000, signed_message_header='Zcash Signed Message:\n', xpub_magic=0x043587cf, bech32_prefix=None, + cashaddr_prefix=None, segwit=False, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Bitcoin Gold', coin_shortcut='BTG', - coin_label='Bitcoin Gold', address_type=38, address_type_p2sh=23, maxfee_kb=500000, signed_message_header='Bitcoin Gold Signed Message:\n', xpub_magic=0x0488b21e, bech32_prefix='btg', + cashaddr_prefix=None, segwit=True, forkid=79, force_bip143=True, ), - CoinType( + CoinInfo( coin_name='DigiByte', coin_shortcut='DGB', - coin_label='DigiByte', address_type=30, - address_type_p2sh=5, + address_type_p2sh=63, maxfee_kb=500000, signed_message_header='DigiByte Signed Message:\n', xpub_magic=0x0488b21e, bech32_prefix='dgb', + cashaddr_prefix=None, segwit=True, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Monacoin', coin_shortcut='MONA', - coin_label='Monacoin', address_type=50, address_type_p2sh=55, maxfee_kb=5000000, signed_message_header='Monacoin Signed Message:\n', xpub_magic=0x0488b21e, bech32_prefix='mona', + cashaddr_prefix=None, segwit=True, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Fujicoin', coin_shortcut='FJC', - coin_label='Fujicoin', address_type=36, address_type_p2sh=16, maxfee_kb=1000000, signed_message_header='FujiCoin Signed Message:\n', xpub_magic=0x0488b21e, - bech32_prefix=None, - segwit=False, + bech32_prefix='fc', + cashaddr_prefix=None, + segwit=True, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Vertcoin', coin_shortcut='VTC', - coin_label='Vertcoin', address_type=71, address_type_p2sh=5, maxfee_kb=40000000, signed_message_header='Vertcoin Signed Message:\n', xpub_magic=0x0488b21e, bech32_prefix='vtc', + cashaddr_prefix=None, segwit=True, forkid=None, force_bip143=False, ), - CoinType( + CoinInfo( coin_name='Decred Testnet', coin_shortcut='TDCR', - coin_label='Testnet', address_type=3873, address_type_p2sh=3836, maxfee_kb=10000000, signed_message_header='Decred Signed Message:\n', xpub_magic=0x043587d1, bech32_prefix=None, + cashaddr_prefix=None, segwit=False, forkid=None, force_bip143=False, @@ -244,8 +273,8 @@ def by_name(name): raise ValueError('Unknown coin name "%s"' % name) -def by_address_type(version): +def by_address_type(address_type): for c in COINS: - if c.address_type == version: + if c.address_type == address_type: return c raise ValueError('Unknown coin address type %d' % version) diff --git a/src/apps/wallet/sign_tx/addresses.py b/src/apps/wallet/sign_tx/addresses.py index 7e601003b1..acfd17fd0f 100644 --- a/src/apps/wallet/sign_tx/addresses.py +++ b/src/apps/wallet/sign_tx/addresses.py @@ -4,10 +4,10 @@ from trezor.crypto.hashlib import sha256, ripemd160 from trezor.crypto import base58, bech32 from trezor.utils import ensure -from trezor.messages.CoinType import CoinType from trezor.messages import FailureType from trezor.messages import InputScriptType +from apps.common.coins import CoinInfo from apps.common.address_type import addrtype_bytes from apps.wallet.sign_tx.scripts import * from apps.wallet.sign_tx.multisig import * @@ -20,7 +20,7 @@ class AddressError(Exception): pass -def get_address(script_type: InputScriptType, coin: CoinType, node, multisig=None) -> str: +def get_address(script_type: InputScriptType, coin: CoinInfo, node, multisig=None) -> str: if script_type == InputScriptType.SPENDADDRESS or script_type == InputScriptType.SPENDMULTISIG: if multisig: # p2sh multisig diff --git a/src/apps/wallet/sign_tx/helpers.py b/src/apps/wallet/sign_tx/helpers.py index 0d9896c845..b5eafcce31 100644 --- a/src/apps/wallet/sign_tx/helpers.py +++ b/src/apps/wallet/sign_tx/helpers.py @@ -1,4 +1,3 @@ -from trezor.messages.CoinType import CoinType from trezor.messages.TxOutputType import TxOutputType from trezor.messages.TxOutputBinType import TxOutputBinType from trezor.messages.TxInputType import TxInputType @@ -8,20 +7,22 @@ from trezor.messages.TransactionType import TransactionType from trezor.messages.RequestType import TXINPUT, TXOUTPUT, TXMETA, TXEXTRADATA, TXFINISHED from trezor.messages import InputScriptType +from apps.common.coins import CoinInfo + # Machine instructions # === class UiConfirmOutput: - def __init__(self, output: TxOutputType, coin: CoinType): + def __init__(self, output: TxOutputType, coin: CoinInfo): self.output = output self.coin = coin class UiConfirmTotal: - def __init__(self, spending: int, fee: int, coin: CoinType): + def __init__(self, spending: int, fee: int, coin: CoinInfo): self.spending = spending self.fee = fee self.coin = coin @@ -29,20 +30,20 @@ class UiConfirmTotal: class UiConfirmFeeOverThreshold: - def __init__(self, fee: int, coin: CoinType): + def __init__(self, fee: int, coin: CoinInfo): self.fee = fee self.coin = coin -def confirm_output(output: TxOutputType, coin: CoinType): +def confirm_output(output: TxOutputType, coin: CoinInfo): return (yield UiConfirmOutput(output, coin)) -def confirm_total(spending: int, fee: int, coin: CoinType): +def confirm_total(spending: int, fee: int, coin: CoinInfo): return (yield UiConfirmTotal(spending, fee, coin)) -def confirm_feeoverthreshold(fee: int, coin: CoinType): +def confirm_feeoverthreshold(fee: int, coin: CoinInfo): return (yield UiConfirmFeeOverThreshold(fee, coin)) diff --git a/src/apps/wallet/sign_tx/signing.py b/src/apps/wallet/sign_tx/signing.py index a162d14754..bf41e65a8d 100644 --- a/src/apps/wallet/sign_tx/signing.py +++ b/src/apps/wallet/sign_tx/signing.py @@ -10,6 +10,7 @@ from trezor.messages.TxRequestDetailsType import TxRequestDetailsType from trezor.messages.TxRequestSerializedType import TxRequestSerializedType from apps.common import address_type, coins +from apps.common.coins import CoinInfo from apps.wallet.sign_tx.addresses import * from apps.wallet.sign_tx.helpers import * from apps.wallet.sign_tx.scripts import * @@ -418,7 +419,7 @@ async def get_prevtx_output_value(tx_req: TxRequest, prev_hash: bytes, prev_inde # === -def get_hash_type(coin: CoinType) -> int: +def get_hash_type(coin: CoinInfo) -> int: SIGHASH_FORKID = const(0x40) SIGHASH_ALL = const(0x01) hashtype = SIGHASH_ALL @@ -441,7 +442,7 @@ def get_tx_header(tx: SignTx, segwit: bool = False): # === -def output_derive_script(o: TxOutputType, coin: CoinType, root: bip32.HDNode) -> bytes: +def output_derive_script(o: TxOutputType, coin: CoinInfo, root: bip32.HDNode) -> bytes: if o.script_type == OutputScriptType.PAYTOOPRETURN: # op_return output @@ -479,7 +480,7 @@ def output_derive_script(o: TxOutputType, coin: CoinType, root: bip32.HDNode) -> raise SigningError(FailureType.DataError, 'Invalid address type') -def get_address_for_change(o: TxOutputType, coin: CoinType, root: bip32.HDNode): +def get_address_for_change(o: TxOutputType, coin: CoinInfo, root: bip32.HDNode): if o.script_type == OutputScriptType.PAYTOADDRESS: input_script_type = InputScriptType.SPENDADDRESS elif o.script_type == OutputScriptType.PAYTOMULTISIG: @@ -511,7 +512,7 @@ def output_is_change(o: TxOutputType, wallet_path: list, segwit_in: int) -> bool # === -def input_derive_script(coin: CoinType, i: TxInputType, pubkey: bytes, signature: bytes=None) -> bytes: +def input_derive_script(coin: CoinInfo, i: TxInputType, pubkey: bytes, signature: bytes=None) -> bytes: if i.script_type == InputScriptType.SPENDADDRESS: # p2pkh or p2sh return input_script_p2pkh_or_p2sh( diff --git a/src/trezor/messages/CoinType.py b/src/trezor/messages/CoinType.py deleted file mode 100644 index 3da0aaa45e..0000000000 --- a/src/trezor/messages/CoinType.py +++ /dev/null @@ -1,46 +0,0 @@ -# Automatically generated by pb2py -import protobuf as p - - -class CoinType(p.MessageType): - FIELDS = { - 1: ('coin_name', p.UnicodeType, 0), - 2: ('coin_shortcut', p.UnicodeType, 0), - 3: ('address_type', p.UVarintType, 0), # default=0 - 4: ('maxfee_kb', p.UVarintType, 0), - 5: ('address_type_p2sh', p.UVarintType, 0), # default=5 - 8: ('signed_message_header', p.UnicodeType, 0), - 9: ('xpub_magic', p.UVarintType, 0), # default=76067358 - 10: ('xprv_magic', p.UVarintType, 0), # default=76066276 - 11: ('segwit', p.BoolType, 0), - 12: ('forkid', p.UVarintType, 0), - 13: ('force_bip143', p.BoolType, 0), - } - - def __init__( - self, - coin_name: str = None, - coin_shortcut: str = None, - address_type: int = None, - maxfee_kb: int = None, - address_type_p2sh: int = None, - signed_message_header: str = None, - xpub_magic: int = None, - xprv_magic: int = None, - segwit: bool = None, - forkid: int = None, - force_bip143: bool = None, - **kwargs, - ): - self.coin_name = coin_name - self.coin_shortcut = coin_shortcut - self.address_type = address_type - self.maxfee_kb = maxfee_kb - self.address_type_p2sh = address_type_p2sh - self.signed_message_header = signed_message_header - self.xpub_magic = xpub_magic - self.xprv_magic = xprv_magic - self.segwit = segwit - self.forkid = forkid - self.force_bip143 = force_bip143 - p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/Features.py b/src/trezor/messages/Features.py index d108d0316d..6675b59850 100644 --- a/src/trezor/messages/Features.py +++ b/src/trezor/messages/Features.py @@ -1,6 +1,5 @@ # Automatically generated by pb2py import protobuf as p -from .CoinType import CoinType class Features(p.MessageType): @@ -15,7 +14,6 @@ class Features(p.MessageType): 8: ('passphrase_protection', p.BoolType, 0), 9: ('language', p.UnicodeType, 0), 10: ('label', p.UnicodeType, 0), - 11: ('coins', CoinType, p.FLAG_REPEATED), 12: ('initialized', p.BoolType, 0), 13: ('revision', p.BytesType, 0), 14: ('bootloader_hash', p.BytesType, 0), @@ -47,7 +45,6 @@ class Features(p.MessageType): passphrase_protection: bool = None, language: str = None, label: str = None, - coins: list = None, initialized: bool = None, revision: bytes = None, bootloader_hash: bytes = None, @@ -76,7 +73,6 @@ class Features(p.MessageType): self.passphrase_protection = passphrase_protection self.language = language self.label = label - self.coins = [] if coins is None else coins self.initialized = initialized self.revision = revision self.bootloader_hash = bootloader_hash diff --git a/src/trezor/messages/Initialize.py b/src/trezor/messages/Initialize.py index 4a6f51d361..ea31f61101 100644 --- a/src/trezor/messages/Initialize.py +++ b/src/trezor/messages/Initialize.py @@ -5,13 +5,16 @@ import protobuf as p class Initialize(p.MessageType): FIELDS = { 1: ('state', p.BytesType, 0), + 2: ('skip_passphrase', p.BoolType, 0), } MESSAGE_WIRE_TYPE = 0 def __init__( self, state: bytes = None, + skip_passphrase: bool = None, **kwargs, ): self.state = state + self.skip_passphrase = skip_passphrase p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/LiskMessageSignature.py b/src/trezor/messages/LiskMessageSignature.py deleted file mode 100644 index c74fa232b7..0000000000 --- a/src/trezor/messages/LiskMessageSignature.py +++ /dev/null @@ -1,20 +0,0 @@ -# Automatically generated by pb2py -import protobuf as p - - -class LiskMessageSignature(p.MessageType): - FIELDS = { - 1: ('address', p.UnicodeType, 0), - 2: ('signature', p.BytesType, 0), - } - MESSAGE_WIRE_TYPE = 119 - - def __init__( - self, - address: str = None, - signature: bytes = None, - **kwargs, - ): - self.address = address - self.signature = signature - p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/LiskSignMessage.py b/src/trezor/messages/LiskSignMessage.py deleted file mode 100644 index d473aec6cd..0000000000 --- a/src/trezor/messages/LiskSignMessage.py +++ /dev/null @@ -1,20 +0,0 @@ -# Automatically generated by pb2py -import protobuf as p - - -class LiskSignMessage(p.MessageType): - FIELDS = { - 1: ('address_n', p.UVarintType, p.FLAG_REPEATED), - 2: ('message', p.BytesType, 0), - } - MESSAGE_WIRE_TYPE = 118 - - def __init__( - self, - address_n: list = None, - message: bytes = None, - **kwargs, - ): - self.address_n = [] if address_n is None else address_n - self.message = message - p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/LiskVerifyMessage.py b/src/trezor/messages/LiskVerifyMessage.py deleted file mode 100644 index a0808c859b..0000000000 --- a/src/trezor/messages/LiskVerifyMessage.py +++ /dev/null @@ -1,23 +0,0 @@ -# Automatically generated by pb2py -import protobuf as p - - -class LiskVerifyMessage(p.MessageType): - FIELDS = { - 1: ('signature', p.BytesType, 0), - 2: ('public_key', p.BytesType, 0), - 3: ('message', p.BytesType, 0), - } - MESSAGE_WIRE_TYPE = 120 - - def __init__( - self, - signature: bytes = None, - public_key: bytes = None, - message: bytes = None, - **kwargs, - ): - self.signature = signature - self.public_key = public_key - self.message = message - p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/MessageType.py b/src/trezor/messages/MessageType.py index d5503b733f..fa8f120765 100644 --- a/src/trezor/messages/MessageType.py +++ b/src/trezor/messages/MessageType.py @@ -90,18 +90,12 @@ LiskGetAddress = const(114) LiskAddress = const(115) LiskSignTx = const(116) LiskSignedTx = const(117) -LiskSignMessage = const(118) -LiskMessageSignature = const(119) -LiskVerifyMessage = const(120) LiskGetPublicKey = const(121) LiskPublicKey = const(122) StellarGetPublicKey = const(200) StellarPublicKey = const(201) StellarSignTx = const(202) StellarTxOpRequest = const(203) -StellarSignMessage = const(204) -StellarMessageSignature = const(205) -StellarVerifyMessage = const(206) StellarCreateAccountOp = const(210) StellarPaymentOp = const(211) StellarPathPaymentOp = const(212) diff --git a/src/trezor/messages/StellarMessageSignature.py b/src/trezor/messages/StellarMessageSignature.py deleted file mode 100644 index 23e2a1d118..0000000000 --- a/src/trezor/messages/StellarMessageSignature.py +++ /dev/null @@ -1,20 +0,0 @@ -# Automatically generated by pb2py -import protobuf as p - - -class StellarMessageSignature(p.MessageType): - FIELDS = { - 1: ('public_key', p.BytesType, 0), - 2: ('signature', p.BytesType, 0), - } - MESSAGE_WIRE_TYPE = 205 - - def __init__( - self, - public_key: bytes = None, - signature: bytes = None, - **kwargs, - ): - self.public_key = public_key - self.signature = signature - p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/StellarSignMessage.py b/src/trezor/messages/StellarSignMessage.py deleted file mode 100644 index d71890bee3..0000000000 --- a/src/trezor/messages/StellarSignMessage.py +++ /dev/null @@ -1,20 +0,0 @@ -# Automatically generated by pb2py -import protobuf as p - - -class StellarSignMessage(p.MessageType): - FIELDS = { - 1: ('address_n', p.UVarintType, p.FLAG_REPEATED), - 2: ('message', p.UnicodeType, 0), - } - MESSAGE_WIRE_TYPE = 204 - - def __init__( - self, - address_n: list = None, - message: str = None, - **kwargs, - ): - self.address_n = [] if address_n is None else address_n - self.message = message - p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/StellarVerifyMessage.py b/src/trezor/messages/StellarVerifyMessage.py deleted file mode 100644 index d3d67b220b..0000000000 --- a/src/trezor/messages/StellarVerifyMessage.py +++ /dev/null @@ -1,23 +0,0 @@ -# Automatically generated by pb2py -import protobuf as p - - -class StellarVerifyMessage(p.MessageType): - FIELDS = { - 1: ('public_key', p.BytesType, 0), - 2: ('message', p.BytesType, 0), - 3: ('signature', p.BytesType, 0), - } - MESSAGE_WIRE_TYPE = 206 - - def __init__( - self, - public_key: bytes = None, - message: bytes = None, - signature: bytes = None, - **kwargs, - ): - self.public_key = public_key - self.message = message - self.signature = signature - p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/TransactionType.py b/src/trezor/messages/TransactionType.py index d2e49f9950..6ffd4f2bbf 100644 --- a/src/trezor/messages/TransactionType.py +++ b/src/trezor/messages/TransactionType.py @@ -17,6 +17,7 @@ class TransactionType(p.MessageType): 8: ('extra_data', p.BytesType, 0), 9: ('extra_data_len', p.UVarintType, 0), 10: ('decred_expiry', p.UVarintType, 0), + 11: ('overwintered', p.BoolType, 0), } def __init__( @@ -31,6 +32,7 @@ class TransactionType(p.MessageType): extra_data: bytes = None, extra_data_len: int = None, decred_expiry: int = None, + overwintered: bool = None, **kwargs, ): self.version = version @@ -43,4 +45,5 @@ class TransactionType(p.MessageType): self.extra_data = extra_data self.extra_data_len = extra_data_len self.decred_expiry = decred_expiry + self.overwintered = overwintered p.MessageType.__init__(self, **kwargs) diff --git a/src/trezor/messages/wire_types.py b/src/trezor/messages/wire_types.py index 3b28115b55..c813cb394e 100644 --- a/src/trezor/messages/wire_types.py +++ b/src/trezor/messages/wire_types.py @@ -56,12 +56,9 @@ Initialize = const(0) LiskAddress = const(115) LiskGetAddress = const(114) LiskGetPublicKey = const(121) -LiskMessageSignature = const(119) LiskPublicKey = const(122) -LiskSignMessage = const(118) LiskSignTx = const(116) LiskSignedTx = const(117) -LiskVerifyMessage = const(120) LoadDevice = const(13) MessageSignature = const(40) NEMAddress = const(68) @@ -96,16 +93,13 @@ StellarCreatePassiveOfferOp = const(214) StellarGetPublicKey = const(200) StellarManageDataOp = const(220) StellarManageOfferOp = const(213) -StellarMessageSignature = const(205) StellarPathPaymentOp = const(212) StellarPaymentOp = const(211) StellarPublicKey = const(201) StellarSetOptionsOp = const(215) -StellarSignMessage = const(204) StellarSignTx = const(202) StellarSignedTx = const(230) StellarTxOpRequest = const(203) -StellarVerifyMessage = const(206) Success = const(2) TxAck = const(22) TxRequest = const(21) diff --git a/tools/codegen/gen_coins.py b/tools/codegen/gen_coins.py index 5897a74b86..32c072a56b 100755 --- a/tools/codegen/gen_coins.py +++ b/tools/codegen/gen_coins.py @@ -4,13 +4,13 @@ import json fields = [ 'coin_name', 'coin_shortcut', - 'coin_label', 'address_type', 'address_type_p2sh', 'maxfee_kb', 'signed_message_header', 'xpub_magic', 'bech32_prefix', + 'cashaddr_prefix', 'segwit', 'forkid', 'force_bip143', @@ -20,9 +20,9 @@ coins = json.load(open('../../vendor/trezor-common/coins.json', 'r')) print('COINS = [') for c in coins: - print(' CoinType(') + print(' CoinInfo(') for n in fields: - if n in ['xpub_magic', 'xprv_magic']: + if n == 'xpub_magic': print(' %s=0x%s,' % (n, c[n])) else: print(' %s=%s,' % (n, repr(c[n]))) diff --git a/vendor/trezor-common b/vendor/trezor-common index 9abe3a7c69..0c9d67954c 160000 --- a/vendor/trezor-common +++ b/vendor/trezor-common @@ -1 +1 @@ -Subproject commit 9abe3a7c69000cc7ee3cda2ec940193fa9d62e6c +Subproject commit 0c9d67954c871553a7d44575a7a9198cba83df88