From ead2781aff6db76be7860bc56868a754dd6bec0b Mon Sep 17 00:00:00 2001 From: Jochen Hoenicke Date: Sun, 1 May 2016 14:19:30 +0200 Subject: [PATCH 1/3] added --curve argument for get_public_node --- trezorctl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/trezorctl b/trezorctl index 55b389e..34a5c0d 100755 --- a/trezorctl +++ b/trezorctl @@ -107,7 +107,8 @@ class Commands(object): def get_public_node(self, args): address_n = self.client.expand_path(args.n) - return self.client.get_public_node(address_n) + curve = args.curve + return self.client.get_public_node(address_n, ecdsa_curve_name=curve) def set_label(self, args): return self.client.apply_settings(label=args.label) @@ -353,6 +354,7 @@ class Commands(object): get_public_node.arguments = ( (('-n', '-address'), {'type': str}), + (('-e', '--curve'), {'type': str, 'default': 'secp256k1'}), ) firmware_update.arguments = ( From aa3392fa7c6e0a597be4c38f840cdfd262996671 Mon Sep 17 00:00:00 2001 From: Jochen Hoenicke Date: Sun, 1 May 2016 14:21:20 +0200 Subject: [PATCH 2/3] SegWit support --- trezorlib/messages_pb2.py | 1154 ++++++++++++++++++++++--------------- trezorlib/tx_api.py | 44 ++ trezorlib/types_pb2.py | 286 ++++++--- 3 files changed, 920 insertions(+), 564 deletions(-) diff --git a/trezorlib/messages_pb2.py b/trezorlib/messages_pb2.py index 8cdf617..9bc601d 100644 --- a/trezorlib/messages_pb2.py +++ b/trezorlib/messages_pb2.py @@ -1,13 +1,18 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: messages.proto +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database from google.protobuf import descriptor_pb2 # @@protoc_insertion_point(imports) +_sym_db = _symbol_database.Default() + import types_pb2 @@ -15,7 +20,10 @@ import types_pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='messages.proto', package='', - serialized_pb='\n\x0emessages.proto\x1a\x0btypes.proto\"\x0c\n\nInitialize\"\r\n\x0bGetFeatures\"\xfe\x02\n\x08\x46\x65\x61tures\x12\x0e\n\x06vendor\x18\x01 \x01(\t\x12\x15\n\rmajor_version\x18\x02 \x01(\r\x12\x15\n\rminor_version\x18\x03 \x01(\r\x12\x15\n\rpatch_version\x18\x04 \x01(\r\x12\x17\n\x0f\x62ootloader_mode\x18\x05 \x01(\x08\x12\x11\n\tdevice_id\x18\x06 \x01(\t\x12\x16\n\x0epin_protection\x18\x07 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x08 \x01(\x08\x12\x10\n\x08language\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x18\n\x05\x63oins\x18\x0b \x03(\x0b\x32\t.CoinType\x12\x13\n\x0binitialized\x18\x0c \x01(\x08\x12\x10\n\x08revision\x18\r \x01(\x0c\x12\x17\n\x0f\x62ootloader_hash\x18\x0e \x01(\x0c\x12\x10\n\x08imported\x18\x0f \x01(\x08\x12\x12\n\npin_cached\x18\x10 \x01(\x08\x12\x19\n\x11passphrase_cached\x18\x11 \x01(\x08\"\x0e\n\x0c\x43learSession\"\\\n\rApplySettings\x12\x10\n\x08language\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x16\n\x0euse_passphrase\x18\x03 \x01(\x08\x12\x12\n\nhomescreen\x18\x04 \x01(\x0c\"\x1b\n\tChangePin\x12\x0e\n\x06remove\x18\x01 \x01(\x08\"i\n\x04Ping\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x19\n\x11\x62utton_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\"\x1a\n\x07Success\x12\x0f\n\x07message\x18\x01 \x01(\t\"6\n\x07\x46\x61ilure\x12\x1a\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x0c.FailureType\x12\x0f\n\x07message\x18\x02 \x01(\t\"?\n\rButtonRequest\x12 \n\x04\x63ode\x18\x01 \x01(\x0e\x32\x12.ButtonRequestType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x0b\n\tButtonAck\"7\n\x10PinMatrixRequest\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.PinMatrixRequestType\"\x1b\n\x0cPinMatrixAck\x12\x0b\n\x03pin\x18\x01 \x02(\t\"\x08\n\x06\x43\x61ncel\"\x13\n\x11PassphraseRequest\"#\n\rPassphraseAck\x12\x12\n\npassphrase\x18\x01 \x02(\t\"\x1a\n\nGetEntropy\x12\x0c\n\x04size\x18\x01 \x02(\r\"\x1a\n\x07\x45ntropy\x12\x0f\n\x07\x65ntropy\x18\x01 \x02(\x0c\";\n\x0cGetPublicKey\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x02 \x01(\t\"4\n\tPublicKey\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x0c\n\x04xpub\x18\x02 \x01(\t\"~\n\nGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x1a\n\tcoin_name\x18\x02 \x01(\t:\x07\x42itcoin\x12\x14\n\x0cshow_display\x18\x03 \x01(\x08\x12+\n\x08multisig\x18\x04 \x01(\x0b\x32\x19.MultisigRedeemScriptType\"\x1a\n\x07\x41\x64\x64ress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\t\"\x0c\n\nWipeDevice\"\xa6\x01\n\nLoadDevice\x12\x10\n\x08mnemonic\x18\x01 \x01(\t\x12\x19\n\x04node\x18\x02 \x01(\x0b\x32\x0b.HDNodeType\x12\x0b\n\x03pin\x18\x03 \x01(\t\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\x12\x15\n\rskip_checksum\x18\x07 \x01(\x08\"\x9d\x01\n\x0bResetDevice\x12\x16\n\x0e\x64isplay_random\x18\x01 \x01(\x08\x12\x15\n\x08strength\x18\x02 \x01(\r:\x03\x31\x32\x38\x12\x1d\n\x15passphrase_protection\x18\x03 \x01(\x08\x12\x16\n\x0epin_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\"\x10\n\x0e\x45ntropyRequest\"\x1d\n\nEntropyAck\x12\x0f\n\x07\x65ntropy\x18\x01 \x01(\x0c\"\x9f\x01\n\x0eRecoveryDevice\x12\x12\n\nword_count\x18\x01 \x01(\r\x12\x1d\n\x15passphrase_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x19\n\x08language\x18\x04 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x05 \x01(\t\x12\x18\n\x10\x65nforce_wordlist\x18\x06 \x01(\x08\"\r\n\x0bWordRequest\"\x17\n\x07WordAck\x12\x0c\n\x04word\x18\x01 \x02(\t\"M\n\x0bSignMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0f\n\x07message\x18\x02 \x02(\x0c\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"D\n\rVerifyMessage\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\"6\n\x10MessageSignature\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"v\n\x0e\x45ncryptMessage\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x14\n\x0c\x64isplay_only\x18\x03 \x01(\x08\x12\x11\n\taddress_n\x18\x04 \x03(\r\x12\x1a\n\tcoin_name\x18\x05 \x01(\t:\x07\x42itcoin\"@\n\x10\x45ncryptedMessage\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x0c\n\x04hmac\x18\x03 \x01(\x0c\"Q\n\x0e\x44\x65\x63ryptMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12\x0c\n\x04hmac\x18\x04 \x01(\x0c\"4\n\x10\x44\x65\x63ryptedMessage\x12\x0f\n\x07message\x18\x01 \x01(\x0c\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\"\x80\x01\n\x0e\x43ipherKeyValue\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65ncrypt\x18\x04 \x01(\x08\x12\x16\n\x0e\x61sk_on_encrypt\x18\x05 \x01(\x08\x12\x16\n\x0e\x61sk_on_decrypt\x18\x06 \x01(\x08\"!\n\x10\x43ipheredKeyValue\x12\r\n\x05value\x18\x01 \x01(\x0c\"Y\n\x0e\x45stimateTxSize\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"\x19\n\x06TxSize\x12\x0f\n\x07tx_size\x18\x01 \x01(\r\"Q\n\x06SignTx\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"\x90\x01\n\x0cSimpleSignTx\x12\x1c\n\x06inputs\x18\x01 \x03(\x0b\x32\x0c.TxInputType\x12\x1e\n\x07outputs\x18\x02 \x03(\x0b\x32\r.TxOutputType\x12&\n\x0ctransactions\x18\x03 \x03(\x0b\x32\x10.TransactionType\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"\x85\x01\n\tTxRequest\x12\"\n\x0crequest_type\x18\x01 \x01(\x0e\x32\x0c.RequestType\x12&\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x15.TxRequestDetailsType\x12,\n\nserialized\x18\x03 \x01(\x0b\x32\x18.TxRequestSerializedType\"%\n\x05TxAck\x12\x1c\n\x02tx\x18\x01 \x01(\x0b\x32\x10.TransactionType\"}\n\x0cSignIdentity\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x18\n\x10\x63hallenge_hidden\x18\x02 \x01(\x0c\x12\x18\n\x10\x63hallenge_visual\x18\x03 \x01(\t\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x04 \x01(\t\"H\n\x0eSignedIdentity\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x12\n\npublic_key\x18\x02 \x01(\x0c\x12\x11\n\tsignature\x18\x03 \x01(\x0c\"\x0f\n\rFirmwareErase\"!\n\x0e\x46irmwareUpload\x12\x0f\n\x07payload\x18\x01 \x02(\x0c\"#\n\x11\x44\x65\x62ugLinkDecision\x12\x0e\n\x06yes_no\x18\x01 \x02(\x08\"\x13\n\x11\x44\x65\x62ugLinkGetState\"\xeb\x01\n\x0e\x44\x65\x62ugLinkState\x12\x0e\n\x06layout\x18\x01 \x01(\x0c\x12\x0b\n\x03pin\x18\x02 \x01(\t\x12\x0e\n\x06matrix\x18\x03 \x01(\t\x12\x10\n\x08mnemonic\x18\x04 \x01(\t\x12\x19\n\x04node\x18\x05 \x01(\x0b\x32\x0b.HDNodeType\x12\x1d\n\x15passphrase_protection\x18\x06 \x01(\x08\x12\x12\n\nreset_word\x18\x07 \x01(\t\x12\x15\n\rreset_entropy\x18\x08 \x01(\x0c\x12\x1a\n\x12recovery_fake_word\x18\t \x01(\t\x12\x19\n\x11recovery_word_pos\x18\n \x01(\r\"\x0f\n\rDebugLinkStop\";\n\x0c\x44\x65\x62ugLinkLog\x12\r\n\x05level\x18\x01 \x01(\r\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t*\x86\x0f\n\x0bMessageType\x12 \n\x16MessageType_Initialize\x10\x00\x1a\x04\x90\xb5\x18\x01\x12\x1a\n\x10MessageType_Ping\x10\x01\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Success\x10\x02\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_Failure\x10\x03\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_ChangePin\x10\x04\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_WipeDevice\x10\x05\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_FirmwareErase\x10\x06\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_FirmwareUpload\x10\x07\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_GetEntropy\x10\t\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Entropy\x10\n\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_GetPublicKey\x10\x0b\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_PublicKey\x10\x0c\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_LoadDevice\x10\r\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_ResetDevice\x10\x0e\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_SignTx\x10\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x18MessageType_SimpleSignTx\x10\x10\x1a\x04\x90\xb5\x18\x01\x12\x1e\n\x14MessageType_Features\x10\x11\x1a\x04\x98\xb5\x18\x01\x12&\n\x1cMessageType_PinMatrixRequest\x10\x12\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_PinMatrixAck\x10\x13\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_Cancel\x10\x14\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_TxRequest\x10\x15\x1a\x04\x98\xb5\x18\x01\x12\x1b\n\x11MessageType_TxAck\x10\x16\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_CipherKeyValue\x10\x17\x1a\x04\x90\xb5\x18\x01\x12\"\n\x18MessageType_ClearSession\x10\x18\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ApplySettings\x10\x19\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ButtonRequest\x10\x1a\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_ButtonAck\x10\x1b\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_GetAddress\x10\x1d\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Address\x10\x1e\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EntropyRequest\x10#\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_EntropyAck\x10$\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_SignMessage\x10&\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_VerifyMessage\x10\'\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_MessageSignature\x10(\x1a\x04\x98\xb5\x18\x01\x12\'\n\x1dMessageType_PassphraseRequest\x10)\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_PassphraseAck\x10*\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_EstimateTxSize\x10+\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_TxSize\x10,\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_RecoveryDevice\x10-\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_WordRequest\x10.\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_WordAck\x10/\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_CipheredKeyValue\x10\x30\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EncryptMessage\x10\x31\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_EncryptedMessage\x10\x32\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_DecryptMessage\x10\x33\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_DecryptedMessage\x10\x34\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_SignIdentity\x10\x35\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_SignedIdentity\x10\x36\x1a\x04\x98\xb5\x18\x01\x12!\n\x17MessageType_GetFeatures\x10\x37\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_DebugLinkDecision\x10\x64\x1a\x04\xa0\xb5\x18\x01\x12\'\n\x1dMessageType_DebugLinkGetState\x10\x65\x1a\x04\xa0\xb5\x18\x01\x12$\n\x1aMessageType_DebugLinkState\x10\x66\x1a\x04\xa8\xb5\x18\x01\x12#\n\x19MessageType_DebugLinkStop\x10g\x1a\x04\xa0\xb5\x18\x01\x12\"\n\x18MessageType_DebugLinkLog\x10h\x1a\x04\xa8\xb5\x18\x01\x42\x30\n\x1f\x63om.satoshilabs.trezor.protobufB\rTrezorMessage') + serialized_pb=_b('\n\x0emessages.proto\x1a\x0btypes.proto\"\x0c\n\nInitialize\"\r\n\x0bGetFeatures\"\xfe\x02\n\x08\x46\x65\x61tures\x12\x0e\n\x06vendor\x18\x01 \x01(\t\x12\x15\n\rmajor_version\x18\x02 \x01(\r\x12\x15\n\rminor_version\x18\x03 \x01(\r\x12\x15\n\rpatch_version\x18\x04 \x01(\r\x12\x17\n\x0f\x62ootloader_mode\x18\x05 \x01(\x08\x12\x11\n\tdevice_id\x18\x06 \x01(\t\x12\x16\n\x0epin_protection\x18\x07 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x08 \x01(\x08\x12\x10\n\x08language\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x18\n\x05\x63oins\x18\x0b \x03(\x0b\x32\t.CoinType\x12\x13\n\x0binitialized\x18\x0c \x01(\x08\x12\x10\n\x08revision\x18\r \x01(\x0c\x12\x17\n\x0f\x62ootloader_hash\x18\x0e \x01(\x0c\x12\x10\n\x08imported\x18\x0f \x01(\x08\x12\x12\n\npin_cached\x18\x10 \x01(\x08\x12\x19\n\x11passphrase_cached\x18\x11 \x01(\x08\"\x0e\n\x0c\x43learSession\"\\\n\rApplySettings\x12\x10\n\x08language\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x16\n\x0euse_passphrase\x18\x03 \x01(\x08\x12\x12\n\nhomescreen\x18\x04 \x01(\x0c\"\x1b\n\tChangePin\x12\x0e\n\x06remove\x18\x01 \x01(\x08\"i\n\x04Ping\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x19\n\x11\x62utton_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\"\x1a\n\x07Success\x12\x0f\n\x07message\x18\x01 \x01(\t\"6\n\x07\x46\x61ilure\x12\x1a\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x0c.FailureType\x12\x0f\n\x07message\x18\x02 \x01(\t\"?\n\rButtonRequest\x12 \n\x04\x63ode\x18\x01 \x01(\x0e\x32\x12.ButtonRequestType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\t\"\x0b\n\tButtonAck\"7\n\x10PinMatrixRequest\x12#\n\x04type\x18\x01 \x01(\x0e\x32\x15.PinMatrixRequestType\"\x1b\n\x0cPinMatrixAck\x12\x0b\n\x03pin\x18\x01 \x02(\t\"\x08\n\x06\x43\x61ncel\"\x13\n\x11PassphraseRequest\"#\n\rPassphraseAck\x12\x12\n\npassphrase\x18\x01 \x02(\t\"\x1a\n\nGetEntropy\x12\x0c\n\x04size\x18\x01 \x02(\r\"\x1a\n\x07\x45ntropy\x12\x0f\n\x07\x65ntropy\x18\x01 \x02(\x0c\"Q\n\x0cGetPublicKey\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x02 \x01(\t\x12\x14\n\x0cshow_display\x18\x03 \x01(\x08\"4\n\tPublicKey\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x0c\n\x04xpub\x18\x02 \x01(\t\"~\n\nGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x1a\n\tcoin_name\x18\x02 \x01(\t:\x07\x42itcoin\x12\x14\n\x0cshow_display\x18\x03 \x01(\x08\x12+\n\x08multisig\x18\x04 \x01(\x0b\x32\x19.MultisigRedeemScriptType\"\x1a\n\x07\x41\x64\x64ress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\t\"\x0c\n\nWipeDevice\"\xa6\x01\n\nLoadDevice\x12\x10\n\x08mnemonic\x18\x01 \x01(\t\x12\x19\n\x04node\x18\x02 \x01(\x0b\x32\x0b.HDNodeType\x12\x0b\n\x03pin\x18\x03 \x01(\t\x12\x1d\n\x15passphrase_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\x12\x15\n\rskip_checksum\x18\x07 \x01(\x08\"\x9d\x01\n\x0bResetDevice\x12\x16\n\x0e\x64isplay_random\x18\x01 \x01(\x08\x12\x15\n\x08strength\x18\x02 \x01(\r:\x03\x32\x35\x36\x12\x1d\n\x15passphrase_protection\x18\x03 \x01(\x08\x12\x16\n\x0epin_protection\x18\x04 \x01(\x08\x12\x19\n\x08language\x18\x05 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x06 \x01(\t\"\x10\n\x0e\x45ntropyRequest\"\x1d\n\nEntropyAck\x12\x0f\n\x07\x65ntropy\x18\x01 \x01(\x0c\"\x9f\x01\n\x0eRecoveryDevice\x12\x12\n\nword_count\x18\x01 \x01(\r\x12\x1d\n\x15passphrase_protection\x18\x02 \x01(\x08\x12\x16\n\x0epin_protection\x18\x03 \x01(\x08\x12\x19\n\x08language\x18\x04 \x01(\t:\x07\x65nglish\x12\r\n\x05label\x18\x05 \x01(\t\x12\x18\n\x10\x65nforce_wordlist\x18\x06 \x01(\x08\"\r\n\x0bWordRequest\"\x17\n\x07WordAck\x12\x0c\n\x04word\x18\x01 \x02(\t\"M\n\x0bSignMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0f\n\x07message\x18\x02 \x02(\x0c\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"D\n\rVerifyMessage\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\"6\n\x10MessageSignature\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\tsignature\x18\x02 \x01(\x0c\"v\n\x0e\x45ncryptMessage\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x14\n\x0c\x64isplay_only\x18\x03 \x01(\x08\x12\x11\n\taddress_n\x18\x04 \x03(\r\x12\x1a\n\tcoin_name\x18\x05 \x01(\t:\x07\x42itcoin\"@\n\x10\x45ncryptedMessage\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x0f\n\x07message\x18\x02 \x01(\x0c\x12\x0c\n\x04hmac\x18\x03 \x01(\x0c\"Q\n\x0e\x44\x65\x63ryptMessage\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x0f\n\x07message\x18\x03 \x01(\x0c\x12\x0c\n\x04hmac\x18\x04 \x01(\x0c\"4\n\x10\x44\x65\x63ryptedMessage\x12\x0f\n\x07message\x18\x01 \x01(\x0c\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\"\x8c\x01\n\x0e\x43ipherKeyValue\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\x0c\x12\x0f\n\x07\x65ncrypt\x18\x04 \x01(\x08\x12\x16\n\x0e\x61sk_on_encrypt\x18\x05 \x01(\x08\x12\x16\n\x0e\x61sk_on_decrypt\x18\x06 \x01(\x08\x12\n\n\x02iv\x18\x07 \x01(\x0c\"!\n\x10\x43ipheredKeyValue\x12\r\n\x05value\x18\x01 \x01(\x0c\"Y\n\x0e\x45stimateTxSize\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\"\x19\n\x06TxSize\x12\x0f\n\x07tx_size\x18\x01 \x01(\r\"{\n\x06SignTx\x12\x15\n\routputs_count\x18\x01 \x02(\r\x12\x14\n\x0cinputs_count\x18\x02 \x02(\r\x12\x1a\n\tcoin_name\x18\x03 \x01(\t:\x07\x42itcoin\x12\x12\n\x07version\x18\x04 \x01(\r:\x01\x31\x12\x14\n\tlock_time\x18\x05 \x01(\r:\x01\x30\"\xba\x01\n\x0cSimpleSignTx\x12\x1c\n\x06inputs\x18\x01 \x03(\x0b\x32\x0c.TxInputType\x12\x1e\n\x07outputs\x18\x02 \x03(\x0b\x32\r.TxOutputType\x12&\n\x0ctransactions\x18\x03 \x03(\x0b\x32\x10.TransactionType\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\x12\x12\n\x07version\x18\x05 \x01(\r:\x01\x31\x12\x14\n\tlock_time\x18\x06 \x01(\r:\x01\x30\"\x85\x01\n\tTxRequest\x12\"\n\x0crequest_type\x18\x01 \x01(\x0e\x32\x0c.RequestType\x12&\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x15.TxRequestDetailsType\x12,\n\nserialized\x18\x03 \x01(\x0b\x32\x18.TxRequestSerializedType\"%\n\x05TxAck\x12\x1c\n\x02tx\x18\x01 \x01(\x0b\x32\x10.TransactionType\"}\n\x0cSignIdentity\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x18\n\x10\x63hallenge_hidden\x18\x02 \x01(\x0c\x12\x18\n\x10\x63hallenge_visual\x18\x03 \x01(\t\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x04 \x01(\t\"H\n\x0eSignedIdentity\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x12\n\npublic_key\x18\x02 \x01(\x0c\x12\x11\n\tsignature\x18\x03 \x01(\x0c\"\x0f\n\rFirmwareErase\"!\n\x0e\x46irmwareUpload\x12\x0f\n\x07payload\x18\x01 \x02(\x0c\"#\n\x11\x44\x65\x62ugLinkDecision\x12\x0e\n\x06yes_no\x18\x01 \x02(\x08\"\x13\n\x11\x44\x65\x62ugLinkGetState\"\xeb\x01\n\x0e\x44\x65\x62ugLinkState\x12\x0e\n\x06layout\x18\x01 \x01(\x0c\x12\x0b\n\x03pin\x18\x02 \x01(\t\x12\x0e\n\x06matrix\x18\x03 \x01(\t\x12\x10\n\x08mnemonic\x18\x04 \x01(\t\x12\x19\n\x04node\x18\x05 \x01(\x0b\x32\x0b.HDNodeType\x12\x1d\n\x15passphrase_protection\x18\x06 \x01(\x08\x12\x12\n\nreset_word\x18\x07 \x01(\t\x12\x15\n\rreset_entropy\x18\x08 \x01(\x0c\x12\x1a\n\x12recovery_fake_word\x18\t \x01(\t\x12\x19\n\x11recovery_word_pos\x18\n \x01(\r\"\x0f\n\rDebugLinkStop\";\n\x0c\x44\x65\x62ugLinkLog\x12\r\n\x05level\x18\x01 \x01(\r\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x0c\n\x04text\x18\x03 \x01(\t*\x86\x0f\n\x0bMessageType\x12 \n\x16MessageType_Initialize\x10\x00\x1a\x04\x90\xb5\x18\x01\x12\x1a\n\x10MessageType_Ping\x10\x01\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Success\x10\x02\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_Failure\x10\x03\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_ChangePin\x10\x04\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_WipeDevice\x10\x05\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_FirmwareErase\x10\x06\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_FirmwareUpload\x10\x07\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_GetEntropy\x10\t\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Entropy\x10\n\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_GetPublicKey\x10\x0b\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_PublicKey\x10\x0c\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_LoadDevice\x10\r\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_ResetDevice\x10\x0e\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_SignTx\x10\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x18MessageType_SimpleSignTx\x10\x10\x1a\x04\x90\xb5\x18\x01\x12\x1e\n\x14MessageType_Features\x10\x11\x1a\x04\x98\xb5\x18\x01\x12&\n\x1cMessageType_PinMatrixRequest\x10\x12\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_PinMatrixAck\x10\x13\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_Cancel\x10\x14\x1a\x04\x90\xb5\x18\x01\x12\x1f\n\x15MessageType_TxRequest\x10\x15\x1a\x04\x98\xb5\x18\x01\x12\x1b\n\x11MessageType_TxAck\x10\x16\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_CipherKeyValue\x10\x17\x1a\x04\x90\xb5\x18\x01\x12\"\n\x18MessageType_ClearSession\x10\x18\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ApplySettings\x10\x19\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_ButtonRequest\x10\x1a\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_ButtonAck\x10\x1b\x1a\x04\x90\xb5\x18\x01\x12 \n\x16MessageType_GetAddress\x10\x1d\x1a\x04\x90\xb5\x18\x01\x12\x1d\n\x13MessageType_Address\x10\x1e\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EntropyRequest\x10#\x1a\x04\x98\xb5\x18\x01\x12 \n\x16MessageType_EntropyAck\x10$\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_SignMessage\x10&\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_VerifyMessage\x10\'\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_MessageSignature\x10(\x1a\x04\x98\xb5\x18\x01\x12\'\n\x1dMessageType_PassphraseRequest\x10)\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_PassphraseAck\x10*\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_EstimateTxSize\x10+\x1a\x04\x90\xb5\x18\x01\x12\x1c\n\x12MessageType_TxSize\x10,\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_RecoveryDevice\x10-\x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_WordRequest\x10.\x1a\x04\x98\xb5\x18\x01\x12\x1d\n\x13MessageType_WordAck\x10/\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_CipheredKeyValue\x10\x30\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EncryptMessage\x10\x31\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_EncryptedMessage\x10\x32\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_DecryptMessage\x10\x33\x1a\x04\x90\xb5\x18\x01\x12&\n\x1cMessageType_DecryptedMessage\x10\x34\x1a\x04\x98\xb5\x18\x01\x12\"\n\x18MessageType_SignIdentity\x10\x35\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_SignedIdentity\x10\x36\x1a\x04\x98\xb5\x18\x01\x12!\n\x17MessageType_GetFeatures\x10\x37\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_DebugLinkDecision\x10\x64\x1a\x04\xa0\xb5\x18\x01\x12\'\n\x1dMessageType_DebugLinkGetState\x10\x65\x1a\x04\xa0\xb5\x18\x01\x12$\n\x1aMessageType_DebugLinkState\x10\x66\x1a\x04\xa8\xb5\x18\x01\x12#\n\x19MessageType_DebugLinkStop\x10g\x1a\x04\xa0\xb5\x18\x01\x12\"\n\x18MessageType_DebugLinkLog\x10h\x1a\x04\xa8\xb5\x18\x01\x42\x30\n\x1f\x63om.satoshilabs.trezor.protobufB\rTrezorMessage') + , + dependencies=[types_pb2.DESCRIPTOR,]) +_sym_db.RegisterFileDescriptor(DESCRIPTOR) _MESSAGETYPE = _descriptor.EnumDescriptor( name='MessageType', @@ -25,226 +33,227 @@ _MESSAGETYPE = _descriptor.EnumDescriptor( values=[ _descriptor.EnumValueDescriptor( name='MessageType_Initialize', index=0, number=0, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_Ping', index=1, number=1, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_Success', index=2, number=2, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_Failure', index=3, number=3, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_ChangePin', index=4, number=4, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_WipeDevice', index=5, number=5, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_FirmwareErase', index=6, number=6, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_FirmwareUpload', index=7, number=7, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_GetEntropy', index=8, number=9, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_Entropy', index=9, number=10, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_GetPublicKey', index=10, number=11, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_PublicKey', index=11, number=12, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_LoadDevice', index=12, number=13, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_ResetDevice', index=13, number=14, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_SignTx', index=14, number=15, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_SimpleSignTx', index=15, number=16, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_Features', index=16, number=17, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_PinMatrixRequest', index=17, number=18, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_PinMatrixAck', index=18, number=19, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_Cancel', index=19, number=20, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_TxRequest', index=20, number=21, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_TxAck', index=21, number=22, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_CipherKeyValue', index=22, number=23, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_ClearSession', index=23, number=24, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_ApplySettings', index=24, number=25, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_ButtonRequest', index=25, number=26, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_ButtonAck', index=26, number=27, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_GetAddress', index=27, number=29, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_Address', index=28, number=30, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_EntropyRequest', index=29, number=35, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_EntropyAck', index=30, number=36, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_SignMessage', index=31, number=38, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_VerifyMessage', index=32, number=39, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_MessageSignature', index=33, number=40, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_PassphraseRequest', index=34, number=41, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_PassphraseAck', index=35, number=42, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_EstimateTxSize', index=36, number=43, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_TxSize', index=37, number=44, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_RecoveryDevice', index=38, number=45, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_WordRequest', index=39, number=46, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_WordAck', index=40, number=47, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_CipheredKeyValue', index=41, number=48, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_EncryptMessage', index=42, number=49, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_EncryptedMessage', index=43, number=50, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_DecryptMessage', index=44, number=51, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_DecryptedMessage', index=45, number=52, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_SignIdentity', index=46, number=53, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_SignedIdentity', index=47, number=54, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_GetFeatures', index=48, number=55, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_DebugLinkDecision', index=49, number=100, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\240\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_DebugLinkGetState', index=50, number=101, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\240\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_DebugLinkState', index=51, number=102, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\250\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\250\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_DebugLinkStop', index=52, number=103, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\240\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')), type=None), _descriptor.EnumValueDescriptor( name='MessageType_DebugLinkLog', index=53, number=104, - options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\250\265\030\001'), + options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\250\265\030\001')), type=None), ], containing_type=None, options=None, - serialized_start=3773, - serialized_end=5699, + serialized_start=3891, + serialized_end=5817, ) +_sym_db.RegisterEnumDescriptor(_MESSAGETYPE) MessageType = enum_type_wrapper.EnumTypeWrapper(_MESSAGETYPE) MessageType_Initialize = 0 @@ -320,6 +329,8 @@ _INITIALIZE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=31, serialized_end=43, ) @@ -341,6 +352,8 @@ _GETFEATURES = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=45, serialized_end=58, ) @@ -356,7 +369,7 @@ _FEATURES = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='vendor', full_name='Features.vendor', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -391,7 +404,7 @@ _FEATURES = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='device_id', full_name='Features.device_id', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -412,14 +425,14 @@ _FEATURES = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='language', full_name='Features.language', index=8, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='label', full_name='Features.label', index=9, number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -440,14 +453,14 @@ _FEATURES = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='revision', full_name='Features.revision', index=12, number=13, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='bootloader_hash', full_name='Features.bootloader_hash', index=13, number=14, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -481,6 +494,8 @@ _FEATURES = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=61, serialized_end=443, ) @@ -502,6 +517,8 @@ _CLEARSESSION = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=445, serialized_end=459, ) @@ -517,14 +534,14 @@ _APPLYSETTINGS = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='language', full_name='ApplySettings.language', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='label', full_name='ApplySettings.label', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -538,7 +555,7 @@ _APPLYSETTINGS = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='homescreen', full_name='ApplySettings.homescreen', index=3, number=4, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -551,6 +568,8 @@ _APPLYSETTINGS = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=461, serialized_end=553, ) @@ -579,6 +598,8 @@ _CHANGEPIN = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=555, serialized_end=582, ) @@ -594,7 +615,7 @@ _PING = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='message', full_name='Ping.message', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -628,6 +649,8 @@ _PING = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=584, serialized_end=689, ) @@ -643,7 +666,7 @@ _SUCCESS = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='message', full_name='Success.message', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -656,6 +679,8 @@ _SUCCESS = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=691, serialized_end=717, ) @@ -678,7 +703,7 @@ _FAILURE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='message', full_name='Failure.message', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -691,6 +716,8 @@ _FAILURE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=719, serialized_end=773, ) @@ -713,7 +740,7 @@ _BUTTONREQUEST = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='data', full_name='ButtonRequest.data', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -726,6 +753,8 @@ _BUTTONREQUEST = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=775, serialized_end=838, ) @@ -747,6 +776,8 @@ _BUTTONACK = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=840, serialized_end=851, ) @@ -775,6 +806,8 @@ _PINMATRIXREQUEST = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=853, serialized_end=908, ) @@ -790,7 +823,7 @@ _PINMATRIXACK = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='pin', full_name='PinMatrixAck.pin', index=0, number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -803,6 +836,8 @@ _PINMATRIXACK = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=910, serialized_end=937, ) @@ -824,6 +859,8 @@ _CANCEL = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=939, serialized_end=947, ) @@ -845,6 +882,8 @@ _PASSPHRASEREQUEST = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=949, serialized_end=968, ) @@ -860,7 +899,7 @@ _PASSPHRASEACK = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='passphrase', full_name='PassphraseAck.passphrase', index=0, number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -873,6 +912,8 @@ _PASSPHRASEACK = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=970, serialized_end=1005, ) @@ -901,6 +942,8 @@ _GETENTROPY = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=1007, serialized_end=1033, ) @@ -916,7 +959,7 @@ _ENTROPY = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='entropy', full_name='Entropy.entropy', index=0, number=1, type=12, cpp_type=9, label=2, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -929,6 +972,8 @@ _ENTROPY = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=1035, serialized_end=1061, ) @@ -951,7 +996,14 @@ _GETPUBLICKEY = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='ecdsa_curve_name', full_name='GetPublicKey.ecdsa_curve_name', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='show_display', full_name='GetPublicKey.show_display', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -964,8 +1016,10 @@ _GETPUBLICKEY = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=1063, - serialized_end=1122, + serialized_end=1144, ) @@ -986,7 +1040,7 @@ _PUBLICKEY = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='xpub', full_name='PublicKey.xpub', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -999,8 +1053,10 @@ _PUBLICKEY = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1124, - serialized_end=1176, + oneofs=[ + ], + serialized_start=1146, + serialized_end=1198, ) @@ -1021,7 +1077,7 @@ _GETADDRESS = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='coin_name', full_name='GetAddress.coin_name', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("Bitcoin", "utf-8"), + has_default_value=True, default_value=_b("Bitcoin").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1048,8 +1104,10 @@ _GETADDRESS = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1178, - serialized_end=1304, + oneofs=[ + ], + serialized_start=1200, + serialized_end=1326, ) @@ -1063,7 +1121,7 @@ _ADDRESS = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='address', full_name='Address.address', index=0, number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1076,8 +1134,10 @@ _ADDRESS = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1306, - serialized_end=1332, + oneofs=[ + ], + serialized_start=1328, + serialized_end=1354, ) @@ -1097,8 +1157,10 @@ _WIPEDEVICE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1334, - serialized_end=1346, + oneofs=[ + ], + serialized_start=1356, + serialized_end=1368, ) @@ -1112,7 +1174,7 @@ _LOADDEVICE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='mnemonic', full_name='LoadDevice.mnemonic', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1126,7 +1188,7 @@ _LOADDEVICE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='pin', full_name='LoadDevice.pin', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1140,14 +1202,14 @@ _LOADDEVICE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='language', full_name='LoadDevice.language', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("english", "utf-8"), + has_default_value=True, default_value=_b("english").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='label', full_name='LoadDevice.label', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1167,8 +1229,10 @@ _LOADDEVICE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1349, - serialized_end=1515, + oneofs=[ + ], + serialized_start=1371, + serialized_end=1537, ) @@ -1189,7 +1253,7 @@ _RESETDEVICE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='strength', full_name='ResetDevice.strength', index=1, number=2, type=13, cpp_type=3, label=1, - has_default_value=True, default_value=128, + has_default_value=True, default_value=256, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1210,14 +1274,14 @@ _RESETDEVICE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='language', full_name='ResetDevice.language', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("english", "utf-8"), + has_default_value=True, default_value=_b("english").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='label', full_name='ResetDevice.label', index=5, number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1230,8 +1294,10 @@ _RESETDEVICE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1518, - serialized_end=1675, + oneofs=[ + ], + serialized_start=1540, + serialized_end=1697, ) @@ -1251,8 +1317,10 @@ _ENTROPYREQUEST = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1677, - serialized_end=1693, + oneofs=[ + ], + serialized_start=1699, + serialized_end=1715, ) @@ -1266,7 +1334,7 @@ _ENTROPYACK = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='entropy', full_name='EntropyAck.entropy', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1279,8 +1347,10 @@ _ENTROPYACK = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1695, - serialized_end=1724, + oneofs=[ + ], + serialized_start=1717, + serialized_end=1746, ) @@ -1315,14 +1385,14 @@ _RECOVERYDEVICE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='language', full_name='RecoveryDevice.language', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("english", "utf-8"), + has_default_value=True, default_value=_b("english").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='label', full_name='RecoveryDevice.label', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1342,8 +1412,10 @@ _RECOVERYDEVICE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1727, - serialized_end=1886, + oneofs=[ + ], + serialized_start=1749, + serialized_end=1908, ) @@ -1363,8 +1435,10 @@ _WORDREQUEST = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1888, - serialized_end=1901, + oneofs=[ + ], + serialized_start=1910, + serialized_end=1923, ) @@ -1378,7 +1452,7 @@ _WORDACK = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='word', full_name='WordAck.word', index=0, number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1391,8 +1465,10 @@ _WORDACK = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1903, - serialized_end=1926, + oneofs=[ + ], + serialized_start=1925, + serialized_end=1948, ) @@ -1413,14 +1489,14 @@ _SIGNMESSAGE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='message', full_name='SignMessage.message', index=1, number=2, type=12, cpp_type=9, label=2, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='coin_name', full_name='SignMessage.coin_name', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("Bitcoin", "utf-8"), + has_default_value=True, default_value=_b("Bitcoin").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1433,8 +1509,10 @@ _SIGNMESSAGE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1928, - serialized_end=2005, + oneofs=[ + ], + serialized_start=1950, + serialized_end=2027, ) @@ -1448,21 +1526,21 @@ _VERIFYMESSAGE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='address', full_name='VerifyMessage.address', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='signature', full_name='VerifyMessage.signature', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='message', full_name='VerifyMessage.message', index=2, number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1475,8 +1553,10 @@ _VERIFYMESSAGE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2007, - serialized_end=2075, + oneofs=[ + ], + serialized_start=2029, + serialized_end=2097, ) @@ -1490,14 +1570,14 @@ _MESSAGESIGNATURE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='address', full_name='MessageSignature.address', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='signature', full_name='MessageSignature.signature', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1510,8 +1590,10 @@ _MESSAGESIGNATURE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2077, - serialized_end=2131, + oneofs=[ + ], + serialized_start=2099, + serialized_end=2153, ) @@ -1525,14 +1607,14 @@ _ENCRYPTMESSAGE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='pubkey', full_name='EncryptMessage.pubkey', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='message', full_name='EncryptMessage.message', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1553,7 +1635,7 @@ _ENCRYPTMESSAGE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='coin_name', full_name='EncryptMessage.coin_name', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("Bitcoin", "utf-8"), + has_default_value=True, default_value=_b("Bitcoin").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1566,8 +1648,10 @@ _ENCRYPTMESSAGE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2133, - serialized_end=2251, + oneofs=[ + ], + serialized_start=2155, + serialized_end=2273, ) @@ -1581,21 +1665,21 @@ _ENCRYPTEDMESSAGE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='nonce', full_name='EncryptedMessage.nonce', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='message', full_name='EncryptedMessage.message', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='hmac', full_name='EncryptedMessage.hmac', index=2, number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1608,8 +1692,10 @@ _ENCRYPTEDMESSAGE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2253, - serialized_end=2317, + oneofs=[ + ], + serialized_start=2275, + serialized_end=2339, ) @@ -1630,21 +1716,21 @@ _DECRYPTMESSAGE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='nonce', full_name='DecryptMessage.nonce', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='message', full_name='DecryptMessage.message', index=2, number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='hmac', full_name='DecryptMessage.hmac', index=3, number=4, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1657,8 +1743,10 @@ _DECRYPTMESSAGE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2319, - serialized_end=2400, + oneofs=[ + ], + serialized_start=2341, + serialized_end=2422, ) @@ -1672,14 +1760,14 @@ _DECRYPTEDMESSAGE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='message', full_name='DecryptedMessage.message', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='address', full_name='DecryptedMessage.address', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1692,8 +1780,10 @@ _DECRYPTEDMESSAGE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2402, - serialized_end=2454, + oneofs=[ + ], + serialized_start=2424, + serialized_end=2476, ) @@ -1714,14 +1804,14 @@ _CIPHERKEYVALUE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='key', full_name='CipherKeyValue.key', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='value', full_name='CipherKeyValue.value', index=2, number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1746,6 +1836,13 @@ _CIPHERKEYVALUE = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), + _descriptor.FieldDescriptor( + name='iv', full_name='CipherKeyValue.iv', index=6, + number=7, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), ], extensions=[ ], @@ -1755,8 +1852,10 @@ _CIPHERKEYVALUE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2457, - serialized_end=2585, + oneofs=[ + ], + serialized_start=2479, + serialized_end=2619, ) @@ -1770,7 +1869,7 @@ _CIPHEREDKEYVALUE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='value', full_name='CipheredKeyValue.value', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1783,8 +1882,10 @@ _CIPHEREDKEYVALUE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2587, - serialized_end=2620, + oneofs=[ + ], + serialized_start=2621, + serialized_end=2654, ) @@ -1812,7 +1913,7 @@ _ESTIMATETXSIZE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='coin_name', full_name='EstimateTxSize.coin_name', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("Bitcoin", "utf-8"), + has_default_value=True, default_value=_b("Bitcoin").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1825,8 +1926,10 @@ _ESTIMATETXSIZE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2622, - serialized_end=2711, + oneofs=[ + ], + serialized_start=2656, + serialized_end=2745, ) @@ -1853,8 +1956,10 @@ _TXSIZE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2713, - serialized_end=2738, + oneofs=[ + ], + serialized_start=2747, + serialized_end=2772, ) @@ -1882,7 +1987,21 @@ _SIGNTX = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='coin_name', full_name='SignTx.coin_name', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("Bitcoin", "utf-8"), + has_default_value=True, default_value=_b("Bitcoin").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='version', full_name='SignTx.version', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='lock_time', full_name='SignTx.lock_time', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1895,8 +2014,10 @@ _SIGNTX = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2740, - serialized_end=2821, + oneofs=[ + ], + serialized_start=2774, + serialized_end=2897, ) @@ -1931,7 +2052,21 @@ _SIMPLESIGNTX = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='coin_name', full_name='SimpleSignTx.coin_name', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=True, default_value=unicode("Bitcoin", "utf-8"), + has_default_value=True, default_value=_b("Bitcoin").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='version', full_name='SimpleSignTx.version', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='lock_time', full_name='SimpleSignTx.lock_time', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -1944,8 +2079,10 @@ _SIMPLESIGNTX = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2824, - serialized_end=2968, + oneofs=[ + ], + serialized_start=2900, + serialized_end=3086, ) @@ -1986,8 +2123,10 @@ _TXREQUEST = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=2971, - serialized_end=3104, + oneofs=[ + ], + serialized_start=3089, + serialized_end=3222, ) @@ -2014,8 +2153,10 @@ _TXACK = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3106, - serialized_end=3143, + oneofs=[ + ], + serialized_start=3224, + serialized_end=3261, ) @@ -2036,21 +2177,21 @@ _SIGNIDENTITY = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='challenge_hidden', full_name='SignIdentity.challenge_hidden', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='challenge_visual', full_name='SignIdentity.challenge_visual', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='ecdsa_curve_name', full_name='SignIdentity.ecdsa_curve_name', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -2063,8 +2204,10 @@ _SIGNIDENTITY = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3145, - serialized_end=3270, + oneofs=[ + ], + serialized_start=3263, + serialized_end=3388, ) @@ -2078,21 +2221,21 @@ _SIGNEDIDENTITY = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='address', full_name='SignedIdentity.address', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='public_key', full_name='SignedIdentity.public_key', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='signature', full_name='SignedIdentity.signature', index=2, number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -2105,8 +2248,10 @@ _SIGNEDIDENTITY = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3272, - serialized_end=3344, + oneofs=[ + ], + serialized_start=3390, + serialized_end=3462, ) @@ -2126,8 +2271,10 @@ _FIRMWAREERASE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3346, - serialized_end=3361, + oneofs=[ + ], + serialized_start=3464, + serialized_end=3479, ) @@ -2141,7 +2288,7 @@ _FIRMWAREUPLOAD = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='payload', full_name='FirmwareUpload.payload', index=0, number=1, type=12, cpp_type=9, label=2, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -2154,8 +2301,10 @@ _FIRMWAREUPLOAD = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3363, - serialized_end=3396, + oneofs=[ + ], + serialized_start=3481, + serialized_end=3514, ) @@ -2182,8 +2331,10 @@ _DEBUGLINKDECISION = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3398, - serialized_end=3433, + oneofs=[ + ], + serialized_start=3516, + serialized_end=3551, ) @@ -2203,8 +2354,10 @@ _DEBUGLINKGETSTATE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3435, - serialized_end=3454, + oneofs=[ + ], + serialized_start=3553, + serialized_end=3572, ) @@ -2218,28 +2371,28 @@ _DEBUGLINKSTATE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='layout', full_name='DebugLinkState.layout', index=0, number=1, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='pin', full_name='DebugLinkState.pin', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='matrix', full_name='DebugLinkState.matrix', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='mnemonic', full_name='DebugLinkState.mnemonic', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -2260,21 +2413,21 @@ _DEBUGLINKSTATE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='reset_word', full_name='DebugLinkState.reset_word', index=6, number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='reset_entropy', full_name='DebugLinkState.reset_entropy', index=7, number=8, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='recovery_fake_word', full_name='DebugLinkState.recovery_fake_word', index=8, number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -2294,8 +2447,10 @@ _DEBUGLINKSTATE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3457, - serialized_end=3692, + oneofs=[ + ], + serialized_start=3575, + serialized_end=3810, ) @@ -2315,8 +2470,10 @@ _DEBUGLINKSTOP = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3694, - serialized_end=3709, + oneofs=[ + ], + serialized_start=3812, + serialized_end=3827, ) @@ -2337,14 +2494,14 @@ _DEBUGLINKLOG = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='bucket', full_name='DebugLinkLog.bucket', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='text', full_name='DebugLinkLog.text', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -2357,8 +2514,10 @@ _DEBUGLINKLOG = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=3711, - serialized_end=3770, + oneofs=[ + ], + serialized_start=3829, + serialized_end=3888, ) _FEATURES.fields_by_name['coins'].message_type = types_pb2._COINTYPE @@ -2431,440 +2590,495 @@ DESCRIPTOR.message_types_by_name['DebugLinkGetState'] = _DEBUGLINKGETSTATE DESCRIPTOR.message_types_by_name['DebugLinkState'] = _DEBUGLINKSTATE DESCRIPTOR.message_types_by_name['DebugLinkStop'] = _DEBUGLINKSTOP DESCRIPTOR.message_types_by_name['DebugLinkLog'] = _DEBUGLINKLOG +DESCRIPTOR.enum_types_by_name['MessageType'] = _MESSAGETYPE -class Initialize(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _INITIALIZE - +Initialize = _reflection.GeneratedProtocolMessageType('Initialize', (_message.Message,), dict( + DESCRIPTOR = _INITIALIZE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Initialize) + )) +_sym_db.RegisterMessage(Initialize) -class GetFeatures(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _GETFEATURES - +GetFeatures = _reflection.GeneratedProtocolMessageType('GetFeatures', (_message.Message,), dict( + DESCRIPTOR = _GETFEATURES, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:GetFeatures) + )) +_sym_db.RegisterMessage(GetFeatures) -class Features(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _FEATURES - +Features = _reflection.GeneratedProtocolMessageType('Features', (_message.Message,), dict( + DESCRIPTOR = _FEATURES, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Features) + )) +_sym_db.RegisterMessage(Features) -class ClearSession(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _CLEARSESSION - +ClearSession = _reflection.GeneratedProtocolMessageType('ClearSession', (_message.Message,), dict( + DESCRIPTOR = _CLEARSESSION, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:ClearSession) + )) +_sym_db.RegisterMessage(ClearSession) -class ApplySettings(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _APPLYSETTINGS - +ApplySettings = _reflection.GeneratedProtocolMessageType('ApplySettings', (_message.Message,), dict( + DESCRIPTOR = _APPLYSETTINGS, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:ApplySettings) + )) +_sym_db.RegisterMessage(ApplySettings) -class ChangePin(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _CHANGEPIN - +ChangePin = _reflection.GeneratedProtocolMessageType('ChangePin', (_message.Message,), dict( + DESCRIPTOR = _CHANGEPIN, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:ChangePin) + )) +_sym_db.RegisterMessage(ChangePin) -class Ping(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _PING - +Ping = _reflection.GeneratedProtocolMessageType('Ping', (_message.Message,), dict( + DESCRIPTOR = _PING, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Ping) + )) +_sym_db.RegisterMessage(Ping) -class Success(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _SUCCESS - +Success = _reflection.GeneratedProtocolMessageType('Success', (_message.Message,), dict( + DESCRIPTOR = _SUCCESS, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Success) + )) +_sym_db.RegisterMessage(Success) -class Failure(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _FAILURE - +Failure = _reflection.GeneratedProtocolMessageType('Failure', (_message.Message,), dict( + DESCRIPTOR = _FAILURE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Failure) + )) +_sym_db.RegisterMessage(Failure) -class ButtonRequest(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _BUTTONREQUEST - +ButtonRequest = _reflection.GeneratedProtocolMessageType('ButtonRequest', (_message.Message,), dict( + DESCRIPTOR = _BUTTONREQUEST, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:ButtonRequest) + )) +_sym_db.RegisterMessage(ButtonRequest) -class ButtonAck(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _BUTTONACK - +ButtonAck = _reflection.GeneratedProtocolMessageType('ButtonAck', (_message.Message,), dict( + DESCRIPTOR = _BUTTONACK, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:ButtonAck) + )) +_sym_db.RegisterMessage(ButtonAck) -class PinMatrixRequest(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _PINMATRIXREQUEST - +PinMatrixRequest = _reflection.GeneratedProtocolMessageType('PinMatrixRequest', (_message.Message,), dict( + DESCRIPTOR = _PINMATRIXREQUEST, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:PinMatrixRequest) + )) +_sym_db.RegisterMessage(PinMatrixRequest) -class PinMatrixAck(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _PINMATRIXACK - +PinMatrixAck = _reflection.GeneratedProtocolMessageType('PinMatrixAck', (_message.Message,), dict( + DESCRIPTOR = _PINMATRIXACK, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:PinMatrixAck) + )) +_sym_db.RegisterMessage(PinMatrixAck) -class Cancel(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _CANCEL - +Cancel = _reflection.GeneratedProtocolMessageType('Cancel', (_message.Message,), dict( + DESCRIPTOR = _CANCEL, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Cancel) + )) +_sym_db.RegisterMessage(Cancel) -class PassphraseRequest(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _PASSPHRASEREQUEST - +PassphraseRequest = _reflection.GeneratedProtocolMessageType('PassphraseRequest', (_message.Message,), dict( + DESCRIPTOR = _PASSPHRASEREQUEST, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:PassphraseRequest) + )) +_sym_db.RegisterMessage(PassphraseRequest) -class PassphraseAck(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _PASSPHRASEACK - +PassphraseAck = _reflection.GeneratedProtocolMessageType('PassphraseAck', (_message.Message,), dict( + DESCRIPTOR = _PASSPHRASEACK, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:PassphraseAck) + )) +_sym_db.RegisterMessage(PassphraseAck) -class GetEntropy(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _GETENTROPY - +GetEntropy = _reflection.GeneratedProtocolMessageType('GetEntropy', (_message.Message,), dict( + DESCRIPTOR = _GETENTROPY, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:GetEntropy) + )) +_sym_db.RegisterMessage(GetEntropy) -class Entropy(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _ENTROPY - +Entropy = _reflection.GeneratedProtocolMessageType('Entropy', (_message.Message,), dict( + DESCRIPTOR = _ENTROPY, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Entropy) + )) +_sym_db.RegisterMessage(Entropy) -class GetPublicKey(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _GETPUBLICKEY - +GetPublicKey = _reflection.GeneratedProtocolMessageType('GetPublicKey', (_message.Message,), dict( + DESCRIPTOR = _GETPUBLICKEY, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:GetPublicKey) + )) +_sym_db.RegisterMessage(GetPublicKey) -class PublicKey(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _PUBLICKEY - +PublicKey = _reflection.GeneratedProtocolMessageType('PublicKey', (_message.Message,), dict( + DESCRIPTOR = _PUBLICKEY, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:PublicKey) + )) +_sym_db.RegisterMessage(PublicKey) -class GetAddress(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _GETADDRESS - +GetAddress = _reflection.GeneratedProtocolMessageType('GetAddress', (_message.Message,), dict( + DESCRIPTOR = _GETADDRESS, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:GetAddress) + )) +_sym_db.RegisterMessage(GetAddress) -class Address(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _ADDRESS - +Address = _reflection.GeneratedProtocolMessageType('Address', (_message.Message,), dict( + DESCRIPTOR = _ADDRESS, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:Address) + )) +_sym_db.RegisterMessage(Address) -class WipeDevice(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _WIPEDEVICE - +WipeDevice = _reflection.GeneratedProtocolMessageType('WipeDevice', (_message.Message,), dict( + DESCRIPTOR = _WIPEDEVICE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:WipeDevice) + )) +_sym_db.RegisterMessage(WipeDevice) -class LoadDevice(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _LOADDEVICE - +LoadDevice = _reflection.GeneratedProtocolMessageType('LoadDevice', (_message.Message,), dict( + DESCRIPTOR = _LOADDEVICE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:LoadDevice) + )) +_sym_db.RegisterMessage(LoadDevice) -class ResetDevice(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _RESETDEVICE - +ResetDevice = _reflection.GeneratedProtocolMessageType('ResetDevice', (_message.Message,), dict( + DESCRIPTOR = _RESETDEVICE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:ResetDevice) + )) +_sym_db.RegisterMessage(ResetDevice) -class EntropyRequest(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _ENTROPYREQUEST - +EntropyRequest = _reflection.GeneratedProtocolMessageType('EntropyRequest', (_message.Message,), dict( + DESCRIPTOR = _ENTROPYREQUEST, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:EntropyRequest) + )) +_sym_db.RegisterMessage(EntropyRequest) -class EntropyAck(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _ENTROPYACK - +EntropyAck = _reflection.GeneratedProtocolMessageType('EntropyAck', (_message.Message,), dict( + DESCRIPTOR = _ENTROPYACK, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:EntropyAck) + )) +_sym_db.RegisterMessage(EntropyAck) -class RecoveryDevice(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _RECOVERYDEVICE - +RecoveryDevice = _reflection.GeneratedProtocolMessageType('RecoveryDevice', (_message.Message,), dict( + DESCRIPTOR = _RECOVERYDEVICE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:RecoveryDevice) + )) +_sym_db.RegisterMessage(RecoveryDevice) -class WordRequest(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _WORDREQUEST - +WordRequest = _reflection.GeneratedProtocolMessageType('WordRequest', (_message.Message,), dict( + DESCRIPTOR = _WORDREQUEST, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:WordRequest) + )) +_sym_db.RegisterMessage(WordRequest) -class WordAck(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _WORDACK - +WordAck = _reflection.GeneratedProtocolMessageType('WordAck', (_message.Message,), dict( + DESCRIPTOR = _WORDACK, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:WordAck) + )) +_sym_db.RegisterMessage(WordAck) -class SignMessage(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _SIGNMESSAGE - +SignMessage = _reflection.GeneratedProtocolMessageType('SignMessage', (_message.Message,), dict( + DESCRIPTOR = _SIGNMESSAGE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:SignMessage) + )) +_sym_db.RegisterMessage(SignMessage) -class VerifyMessage(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _VERIFYMESSAGE - +VerifyMessage = _reflection.GeneratedProtocolMessageType('VerifyMessage', (_message.Message,), dict( + DESCRIPTOR = _VERIFYMESSAGE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:VerifyMessage) + )) +_sym_db.RegisterMessage(VerifyMessage) -class MessageSignature(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _MESSAGESIGNATURE - +MessageSignature = _reflection.GeneratedProtocolMessageType('MessageSignature', (_message.Message,), dict( + DESCRIPTOR = _MESSAGESIGNATURE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:MessageSignature) + )) +_sym_db.RegisterMessage(MessageSignature) -class EncryptMessage(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _ENCRYPTMESSAGE - +EncryptMessage = _reflection.GeneratedProtocolMessageType('EncryptMessage', (_message.Message,), dict( + DESCRIPTOR = _ENCRYPTMESSAGE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:EncryptMessage) + )) +_sym_db.RegisterMessage(EncryptMessage) -class EncryptedMessage(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _ENCRYPTEDMESSAGE - +EncryptedMessage = _reflection.GeneratedProtocolMessageType('EncryptedMessage', (_message.Message,), dict( + DESCRIPTOR = _ENCRYPTEDMESSAGE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:EncryptedMessage) + )) +_sym_db.RegisterMessage(EncryptedMessage) -class DecryptMessage(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _DECRYPTMESSAGE - +DecryptMessage = _reflection.GeneratedProtocolMessageType('DecryptMessage', (_message.Message,), dict( + DESCRIPTOR = _DECRYPTMESSAGE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:DecryptMessage) + )) +_sym_db.RegisterMessage(DecryptMessage) -class DecryptedMessage(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _DECRYPTEDMESSAGE - +DecryptedMessage = _reflection.GeneratedProtocolMessageType('DecryptedMessage', (_message.Message,), dict( + DESCRIPTOR = _DECRYPTEDMESSAGE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:DecryptedMessage) + )) +_sym_db.RegisterMessage(DecryptedMessage) -class CipherKeyValue(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _CIPHERKEYVALUE - +CipherKeyValue = _reflection.GeneratedProtocolMessageType('CipherKeyValue', (_message.Message,), dict( + DESCRIPTOR = _CIPHERKEYVALUE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:CipherKeyValue) + )) +_sym_db.RegisterMessage(CipherKeyValue) -class CipheredKeyValue(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _CIPHEREDKEYVALUE - +CipheredKeyValue = _reflection.GeneratedProtocolMessageType('CipheredKeyValue', (_message.Message,), dict( + DESCRIPTOR = _CIPHEREDKEYVALUE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:CipheredKeyValue) + )) +_sym_db.RegisterMessage(CipheredKeyValue) -class EstimateTxSize(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _ESTIMATETXSIZE - +EstimateTxSize = _reflection.GeneratedProtocolMessageType('EstimateTxSize', (_message.Message,), dict( + DESCRIPTOR = _ESTIMATETXSIZE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:EstimateTxSize) + )) +_sym_db.RegisterMessage(EstimateTxSize) -class TxSize(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXSIZE - +TxSize = _reflection.GeneratedProtocolMessageType('TxSize', (_message.Message,), dict( + DESCRIPTOR = _TXSIZE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:TxSize) + )) +_sym_db.RegisterMessage(TxSize) -class SignTx(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _SIGNTX - +SignTx = _reflection.GeneratedProtocolMessageType('SignTx', (_message.Message,), dict( + DESCRIPTOR = _SIGNTX, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:SignTx) + )) +_sym_db.RegisterMessage(SignTx) -class SimpleSignTx(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _SIMPLESIGNTX - +SimpleSignTx = _reflection.GeneratedProtocolMessageType('SimpleSignTx', (_message.Message,), dict( + DESCRIPTOR = _SIMPLESIGNTX, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:SimpleSignTx) + )) +_sym_db.RegisterMessage(SimpleSignTx) -class TxRequest(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXREQUEST - +TxRequest = _reflection.GeneratedProtocolMessageType('TxRequest', (_message.Message,), dict( + DESCRIPTOR = _TXREQUEST, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:TxRequest) + )) +_sym_db.RegisterMessage(TxRequest) -class TxAck(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXACK - +TxAck = _reflection.GeneratedProtocolMessageType('TxAck', (_message.Message,), dict( + DESCRIPTOR = _TXACK, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:TxAck) + )) +_sym_db.RegisterMessage(TxAck) -class SignIdentity(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _SIGNIDENTITY - +SignIdentity = _reflection.GeneratedProtocolMessageType('SignIdentity', (_message.Message,), dict( + DESCRIPTOR = _SIGNIDENTITY, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:SignIdentity) + )) +_sym_db.RegisterMessage(SignIdentity) -class SignedIdentity(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _SIGNEDIDENTITY - +SignedIdentity = _reflection.GeneratedProtocolMessageType('SignedIdentity', (_message.Message,), dict( + DESCRIPTOR = _SIGNEDIDENTITY, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:SignedIdentity) + )) +_sym_db.RegisterMessage(SignedIdentity) -class FirmwareErase(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _FIRMWAREERASE - +FirmwareErase = _reflection.GeneratedProtocolMessageType('FirmwareErase', (_message.Message,), dict( + DESCRIPTOR = _FIRMWAREERASE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:FirmwareErase) + )) +_sym_db.RegisterMessage(FirmwareErase) -class FirmwareUpload(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _FIRMWAREUPLOAD - +FirmwareUpload = _reflection.GeneratedProtocolMessageType('FirmwareUpload', (_message.Message,), dict( + DESCRIPTOR = _FIRMWAREUPLOAD, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:FirmwareUpload) + )) +_sym_db.RegisterMessage(FirmwareUpload) -class DebugLinkDecision(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _DEBUGLINKDECISION - +DebugLinkDecision = _reflection.GeneratedProtocolMessageType('DebugLinkDecision', (_message.Message,), dict( + DESCRIPTOR = _DEBUGLINKDECISION, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:DebugLinkDecision) + )) +_sym_db.RegisterMessage(DebugLinkDecision) -class DebugLinkGetState(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _DEBUGLINKGETSTATE - +DebugLinkGetState = _reflection.GeneratedProtocolMessageType('DebugLinkGetState', (_message.Message,), dict( + DESCRIPTOR = _DEBUGLINKGETSTATE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:DebugLinkGetState) + )) +_sym_db.RegisterMessage(DebugLinkGetState) -class DebugLinkState(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _DEBUGLINKSTATE - +DebugLinkState = _reflection.GeneratedProtocolMessageType('DebugLinkState', (_message.Message,), dict( + DESCRIPTOR = _DEBUGLINKSTATE, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:DebugLinkState) + )) +_sym_db.RegisterMessage(DebugLinkState) -class DebugLinkStop(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _DEBUGLINKSTOP - +DebugLinkStop = _reflection.GeneratedProtocolMessageType('DebugLinkStop', (_message.Message,), dict( + DESCRIPTOR = _DEBUGLINKSTOP, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:DebugLinkStop) + )) +_sym_db.RegisterMessage(DebugLinkStop) -class DebugLinkLog(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _DEBUGLINKLOG - +DebugLinkLog = _reflection.GeneratedProtocolMessageType('DebugLinkLog', (_message.Message,), dict( + DESCRIPTOR = _DEBUGLINKLOG, + __module__ = 'messages_pb2' # @@protoc_insertion_point(class_scope:DebugLinkLog) + )) +_sym_db.RegisterMessage(DebugLinkLog) DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), '\n\037com.satoshilabs.trezor.protobufB\rTrezorMessage') +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\037com.satoshilabs.trezor.protobufB\rTrezorMessage')) _MESSAGETYPE.values_by_name["MessageType_Initialize"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Initialize"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Initialize"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Ping"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Ping"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Ping"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Success"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Success"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Success"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Failure"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Failure"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Failure"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_ChangePin"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_ChangePin"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_ChangePin"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_WipeDevice"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_WipeDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_WipeDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_FirmwareErase"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_FirmwareErase"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_FirmwareErase"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_FirmwareUpload"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_FirmwareUpload"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_FirmwareUpload"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_GetEntropy"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_GetEntropy"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_GetEntropy"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Entropy"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Entropy"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Entropy"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_GetPublicKey"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_GetPublicKey"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_GetPublicKey"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_PublicKey"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_PublicKey"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_PublicKey"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_LoadDevice"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_LoadDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_LoadDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_ResetDevice"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_ResetDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_ResetDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_SignTx"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_SignTx"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_SignTx"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_SimpleSignTx"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_SimpleSignTx"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_SimpleSignTx"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Features"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Features"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Features"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_PinMatrixRequest"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_PinMatrixRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_PinMatrixRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_PinMatrixAck"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_PinMatrixAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_PinMatrixAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Cancel"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Cancel"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Cancel"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_TxRequest"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_TxRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_TxRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_TxAck"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_TxAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_TxAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_CipherKeyValue"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_CipherKeyValue"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_CipherKeyValue"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_ClearSession"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_ClearSession"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_ClearSession"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_ApplySettings"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_ApplySettings"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_ApplySettings"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_ButtonRequest"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_ButtonRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_ButtonRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_ButtonAck"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_ButtonAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_ButtonAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_GetAddress"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_GetAddress"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_GetAddress"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_Address"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_Address"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_Address"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_EntropyRequest"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_EntropyRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_EntropyRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_EntropyAck"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_EntropyAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_EntropyAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_SignMessage"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_SignMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_SignMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_VerifyMessage"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_VerifyMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_VerifyMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_MessageSignature"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_MessageSignature"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_MessageSignature"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_PassphraseRequest"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_PassphraseRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_PassphraseRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_PassphraseAck"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_PassphraseAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_PassphraseAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_EstimateTxSize"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_EstimateTxSize"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_EstimateTxSize"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_TxSize"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_TxSize"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_TxSize"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_RecoveryDevice"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_RecoveryDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_RecoveryDevice"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_WordRequest"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_WordRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_WordRequest"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_WordAck"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_WordAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_WordAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_CipheredKeyValue"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_CipheredKeyValue"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_CipheredKeyValue"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_EncryptMessage"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_EncryptMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_EncryptMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_EncryptedMessage"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_EncryptedMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_EncryptedMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_DecryptMessage"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_DecryptMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_DecryptMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_DecryptedMessage"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_DecryptedMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_DecryptedMessage"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_SignIdentity"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_SignIdentity"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_SignIdentity"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_SignedIdentity"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_SignedIdentity"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\230\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_SignedIdentity"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_GetFeatures"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_GetFeatures"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\220\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_GetFeatures"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_DebugLinkDecision"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_DebugLinkDecision"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\240\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_DebugLinkDecision"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_DebugLinkGetState"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_DebugLinkGetState"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\240\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_DebugLinkGetState"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_DebugLinkState"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_DebugLinkState"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\250\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_DebugLinkState"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\250\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_DebugLinkStop"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_DebugLinkStop"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\240\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_DebugLinkStop"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\240\265\030\001')) _MESSAGETYPE.values_by_name["MessageType_DebugLinkLog"].has_options = True -_MESSAGETYPE.values_by_name["MessageType_DebugLinkLog"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), '\250\265\030\001') +_MESSAGETYPE.values_by_name["MessageType_DebugLinkLog"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\250\265\030\001')) # @@protoc_insertion_point(module_scope) diff --git a/trezorlib/tx_api.py b/trezorlib/tx_api.py index 6d07fd9..defc7d9 100644 --- a/trezorlib/tx_api.py +++ b/trezorlib/tx_api.py @@ -40,6 +40,43 @@ def insight_tx(url, rawdata=False): return t +def smartbit_tx(url, rawdata=False): + if not rawdata: + try: + f = urllib2.urlopen(url) + data = json.load(f) + except: + raise Exception('URL error: %s' % url) + else: + data = url + + data = data['transaction'] + + t = proto_types.TransactionType() + t.version = int(data['version']) + t.lock_time = data['locktime'] + + for vin in data['inputs']: + i = t.inputs.add() + if 'coinbase' in vin.keys(): + i.prev_hash = "\0"*32 + i.prev_index = 0xffffffff # signed int -1 + i.script_sig = binascii.unhexlify(vin['coinbase']) + i.sequence = vin['sequence'] + + else: + i.prev_hash = binascii.unhexlify(vin['txid']) + i.prev_index = vin['vout'] + i.script_sig = binascii.unhexlify(vin['script_sig']['hex']) + i.sequence = vin['sequence'] + + for vout in data['outputs']: + o = t.bin_outputs.add() + o.amount = int(Decimal(vout['value']) * 100000000) + o.script_pubkey = binascii.unhexlify(vout['script_pub_key']['hex']) + + return t + class TXAPIBitcoin(object): @filecache(DAY) @@ -53,3 +90,10 @@ class TXAPITestnet(object): def get_tx(self, txhash): url = 'https://test-insight.bitpay.com/api/tx/%s' % txhash return insight_tx(url) + +class TXAPISegnet(object): + + @filecache(DAY) + def get_tx(self, txhash): + url = 'https://segnet-api.smartbit.com.au/v1/blockchain/tx/%s' % txhash + return smartbit_tx(url) diff --git a/trezorlib/types_pb2.py b/trezorlib/types_pb2.py index 1c87f63..aef66e8 100644 --- a/trezorlib/types_pb2.py +++ b/trezorlib/types_pb2.py @@ -1,13 +1,18 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: types.proto +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database from google.protobuf import descriptor_pb2 # @@protoc_insertion_point(imports) +_sym_db = _symbol_database.Default() + import google.protobuf.descriptor_pb2 @@ -15,7 +20,10 @@ import google.protobuf.descriptor_pb2 DESCRIPTOR = _descriptor.FileDescriptor( name='types.proto', package='', - serialized_pb='\n\x0btypes.proto\x1a google/protobuf/descriptor.proto\"\x80\x01\n\nHDNodeType\x12\r\n\x05\x64\x65pth\x18\x01 \x02(\r\x12\x13\n\x0b\x66ingerprint\x18\x02 \x02(\r\x12\x11\n\tchild_num\x18\x03 \x02(\r\x12\x12\n\nchain_code\x18\x04 \x02(\x0c\x12\x13\n\x0bprivate_key\x18\x05 \x01(\x0c\x12\x12\n\npublic_key\x18\x06 \x01(\x0c\">\n\x0eHDNodePathType\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x11\n\taddress_n\x18\x02 \x03(\r\"~\n\x08\x43oinType\x12\x11\n\tcoin_name\x18\x01 \x01(\t\x12\x15\n\rcoin_shortcut\x18\x02 \x01(\t\x12\x17\n\x0c\x61\x64\x64ress_type\x18\x03 \x01(\r:\x01\x30\x12\x11\n\tmaxfee_kb\x18\x04 \x01(\x04\x12\x1c\n\x11\x61\x64\x64ress_type_p2sh\x18\x05 \x01(\r:\x01\x35\"[\n\x18MultisigRedeemScriptType\x12 \n\x07pubkeys\x18\x01 \x03(\x0b\x32\x0f.HDNodePathType\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\t\n\x01m\x18\x03 \x01(\r\"\xdb\x01\n\x0bTxInputType\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x11\n\tprev_hash\x18\x02 \x02(\x0c\x12\x12\n\nprev_index\x18\x03 \x02(\r\x12\x12\n\nscript_sig\x18\x04 \x01(\x0c\x12\x1c\n\x08sequence\x18\x05 \x01(\r:\n4294967295\x12\x33\n\x0bscript_type\x18\x06 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\x12+\n\x08multisig\x18\x07 \x01(\x0b\x32\x19.MultisigRedeemScriptType\"\xaf\x01\n\x0cTxOutputType\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\taddress_n\x18\x02 \x03(\r\x12\x0e\n\x06\x61mount\x18\x03 \x02(\x04\x12&\n\x0bscript_type\x18\x04 \x02(\x0e\x32\x11.OutputScriptType\x12+\n\x08multisig\x18\x05 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x16\n\x0eop_return_data\x18\x06 \x01(\x0c\"8\n\x0fTxOutputBinType\x12\x0e\n\x06\x61mount\x18\x01 \x02(\x04\x12\x15\n\rscript_pubkey\x18\x02 \x02(\x0c\"\xc3\x01\n\x0fTransactionType\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x1c\n\x06inputs\x18\x02 \x03(\x0b\x32\x0c.TxInputType\x12%\n\x0b\x62in_outputs\x18\x03 \x03(\x0b\x32\x10.TxOutputBinType\x12\x1e\n\x07outputs\x18\x05 \x03(\x0b\x32\r.TxOutputType\x12\x11\n\tlock_time\x18\x04 \x01(\r\x12\x12\n\ninputs_cnt\x18\x06 \x01(\r\x12\x13\n\x0boutputs_cnt\x18\x07 \x01(\r\">\n\x14TxRequestDetailsType\x12\x15\n\rrequest_index\x18\x01 \x01(\r\x12\x0f\n\x07tx_hash\x18\x02 \x01(\x0c\"\\\n\x17TxRequestSerializedType\x12\x17\n\x0fsignature_index\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x15\n\rserialized_tx\x18\x03 \x01(\x0c\"g\n\x0cIdentityType\x12\r\n\x05proto\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\x12\x0c\n\x04host\x18\x03 \x01(\t\x12\x0c\n\x04port\x18\x04 \x01(\t\x12\x0c\n\x04path\x18\x05 \x01(\t\x12\x10\n\x05index\x18\x06 \x01(\r:\x01\x30*\xcd\x02\n\x0b\x46\x61ilureType\x12\x1d\n\x19\x46\x61ilure_UnexpectedMessage\x10\x01\x12\x1a\n\x16\x46\x61ilure_ButtonExpected\x10\x02\x12\x17\n\x13\x46\x61ilure_SyntaxError\x10\x03\x12\x1b\n\x17\x46\x61ilure_ActionCancelled\x10\x04\x12\x17\n\x13\x46\x61ilure_PinExpected\x10\x05\x12\x18\n\x14\x46\x61ilure_PinCancelled\x10\x06\x12\x16\n\x12\x46\x61ilure_PinInvalid\x10\x07\x12\x1c\n\x18\x46\x61ilure_InvalidSignature\x10\x08\x12\x11\n\rFailure_Other\x10\t\x12\x1a\n\x16\x46\x61ilure_NotEnoughFunds\x10\n\x12\x1a\n\x16\x46\x61ilure_NotInitialized\x10\x0b\x12\x19\n\x15\x46\x61ilure_FirmwareError\x10\x63*_\n\x10OutputScriptType\x12\x10\n\x0cPAYTOADDRESS\x10\x00\x12\x13\n\x0fPAYTOSCRIPTHASH\x10\x01\x12\x11\n\rPAYTOMULTISIG\x10\x02\x12\x11\n\rPAYTOOPRETURN\x10\x03*6\n\x0fInputScriptType\x12\x10\n\x0cSPENDADDRESS\x10\x00\x12\x11\n\rSPENDMULTISIG\x10\x01*D\n\x0bRequestType\x12\x0b\n\x07TXINPUT\x10\x00\x12\x0c\n\x08TXOUTPUT\x10\x01\x12\n\n\x06TXMETA\x10\x02\x12\x0e\n\nTXFINISHED\x10\x03*\xc2\x02\n\x11\x42uttonRequestType\x12\x17\n\x13\x42uttonRequest_Other\x10\x01\x12\"\n\x1e\x42uttonRequest_FeeOverThreshold\x10\x02\x12\x1f\n\x1b\x42uttonRequest_ConfirmOutput\x10\x03\x12\x1d\n\x19\x42uttonRequest_ResetDevice\x10\x04\x12\x1d\n\x19\x42uttonRequest_ConfirmWord\x10\x05\x12\x1c\n\x18\x42uttonRequest_WipeDevice\x10\x06\x12\x1d\n\x19\x42uttonRequest_ProtectCall\x10\x07\x12\x18\n\x14\x42uttonRequest_SignTx\x10\x08\x12\x1f\n\x1b\x42uttonRequest_FirmwareCheck\x10\t\x12\x19\n\x15\x42uttonRequest_Address\x10\n*\x7f\n\x14PinMatrixRequestType\x12 \n\x1cPinMatrixRequestType_Current\x10\x01\x12!\n\x1dPinMatrixRequestType_NewFirst\x10\x02\x12\"\n\x1ePinMatrixRequestType_NewSecond\x10\x03:4\n\x07wire_in\x12!.google.protobuf.EnumValueOptions\x18\xd2\x86\x03 \x01(\x08:5\n\x08wire_out\x12!.google.protobuf.EnumValueOptions\x18\xd3\x86\x03 \x01(\x08::\n\rwire_debug_in\x12!.google.protobuf.EnumValueOptions\x18\xd4\x86\x03 \x01(\x08:;\n\x0ewire_debug_out\x12!.google.protobuf.EnumValueOptions\x18\xd5\x86\x03 \x01(\x08\x42-\n\x1f\x63om.satoshilabs.trezor.protobufB\nTrezorType') + serialized_pb=_b('\n\x0btypes.proto\x1a google/protobuf/descriptor.proto\"\x80\x01\n\nHDNodeType\x12\r\n\x05\x64\x65pth\x18\x01 \x02(\r\x12\x13\n\x0b\x66ingerprint\x18\x02 \x02(\r\x12\x11\n\tchild_num\x18\x03 \x02(\r\x12\x12\n\nchain_code\x18\x04 \x02(\x0c\x12\x13\n\x0bprivate_key\x18\x05 \x01(\x0c\x12\x12\n\npublic_key\x18\x06 \x01(\x0c\">\n\x0eHDNodePathType\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x11\n\taddress_n\x18\x02 \x03(\r\"\xbe\x01\n\x08\x43oinType\x12\x11\n\tcoin_name\x18\x01 \x01(\t\x12\x15\n\rcoin_shortcut\x18\x02 \x01(\t\x12\x17\n\x0c\x61\x64\x64ress_type\x18\x03 \x01(\r:\x01\x30\x12\x11\n\tmaxfee_kb\x18\x04 \x01(\x04\x12\x1c\n\x11\x61\x64\x64ress_type_p2sh\x18\x05 \x01(\r:\x01\x35\x12\x1e\n\x13\x61\x64\x64ress_type_p2wpkh\x18\x06 \x01(\r:\x01\x36\x12\x1e\n\x12\x61\x64\x64ress_type_p2wsh\x18\x07 \x01(\r:\x02\x31\x30\"[\n\x18MultisigRedeemScriptType\x12 \n\x07pubkeys\x18\x01 \x03(\x0b\x32\x0f.HDNodePathType\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\t\n\x01m\x18\x03 \x01(\r\"\xeb\x01\n\x0bTxInputType\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x11\n\tprev_hash\x18\x02 \x02(\x0c\x12\x12\n\nprev_index\x18\x03 \x02(\r\x12\x12\n\nscript_sig\x18\x04 \x01(\x0c\x12\x1c\n\x08sequence\x18\x05 \x01(\r:\n4294967295\x12\x33\n\x0bscript_type\x18\x06 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\x12+\n\x08multisig\x18\x07 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x0e\n\x06\x61mount\x18\x08 \x01(\x04\"\xaf\x01\n\x0cTxOutputType\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x11\n\taddress_n\x18\x02 \x03(\r\x12\x0e\n\x06\x61mount\x18\x03 \x02(\x04\x12&\n\x0bscript_type\x18\x04 \x02(\x0e\x32\x11.OutputScriptType\x12+\n\x08multisig\x18\x05 \x01(\x0b\x32\x19.MultisigRedeemScriptType\x12\x16\n\x0eop_return_data\x18\x06 \x01(\x0c\"8\n\x0fTxOutputBinType\x12\x0e\n\x06\x61mount\x18\x01 \x02(\x04\x12\x15\n\rscript_pubkey\x18\x02 \x02(\x0c\"\xc3\x01\n\x0fTransactionType\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x1c\n\x06inputs\x18\x02 \x03(\x0b\x32\x0c.TxInputType\x12%\n\x0b\x62in_outputs\x18\x03 \x03(\x0b\x32\x10.TxOutputBinType\x12\x1e\n\x07outputs\x18\x05 \x03(\x0b\x32\r.TxOutputType\x12\x11\n\tlock_time\x18\x04 \x01(\r\x12\x12\n\ninputs_cnt\x18\x06 \x01(\r\x12\x13\n\x0boutputs_cnt\x18\x07 \x01(\r\">\n\x14TxRequestDetailsType\x12\x15\n\rrequest_index\x18\x01 \x01(\r\x12\x0f\n\x07tx_hash\x18\x02 \x01(\x0c\"\\\n\x17TxRequestSerializedType\x12\x17\n\x0fsignature_index\x18\x01 \x01(\r\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x15\n\rserialized_tx\x18\x03 \x01(\x0c\"g\n\x0cIdentityType\x12\r\n\x05proto\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\x12\x0c\n\x04host\x18\x03 \x01(\t\x12\x0c\n\x04port\x18\x04 \x01(\t\x12\x0c\n\x04path\x18\x05 \x01(\t\x12\x10\n\x05index\x18\x06 \x01(\r:\x01\x30*\xcd\x02\n\x0b\x46\x61ilureType\x12\x1d\n\x19\x46\x61ilure_UnexpectedMessage\x10\x01\x12\x1a\n\x16\x46\x61ilure_ButtonExpected\x10\x02\x12\x17\n\x13\x46\x61ilure_SyntaxError\x10\x03\x12\x1b\n\x17\x46\x61ilure_ActionCancelled\x10\x04\x12\x17\n\x13\x46\x61ilure_PinExpected\x10\x05\x12\x18\n\x14\x46\x61ilure_PinCancelled\x10\x06\x12\x16\n\x12\x46\x61ilure_PinInvalid\x10\x07\x12\x1c\n\x18\x46\x61ilure_InvalidSignature\x10\x08\x12\x11\n\rFailure_Other\x10\t\x12\x1a\n\x16\x46\x61ilure_NotEnoughFunds\x10\n\x12\x1a\n\x16\x46\x61ilure_NotInitialized\x10\x0b\x12\x19\n\x15\x46\x61ilure_FirmwareError\x10\x63*_\n\x10OutputScriptType\x12\x10\n\x0cPAYTOADDRESS\x10\x00\x12\x13\n\x0fPAYTOSCRIPTHASH\x10\x01\x12\x11\n\rPAYTOMULTISIG\x10\x02\x12\x11\n\rPAYTOOPRETURN\x10\x03*k\n\x0fInputScriptType\x12\x10\n\x0cSPENDADDRESS\x10\x00\x12\x11\n\rSPENDMULTISIG\x10\x01\x12\x0c\n\x08\x45XTERNAL\x10\x02\x12\x11\n\rSPENDWADDRESS\x10\x03\x12\x12\n\x0eSPENDWMULTISIG\x10\x04*D\n\x0bRequestType\x12\x0b\n\x07TXINPUT\x10\x00\x12\x0c\n\x08TXOUTPUT\x10\x01\x12\n\n\x06TXMETA\x10\x02\x12\x0e\n\nTXFINISHED\x10\x03*\xdf\x02\n\x11\x42uttonRequestType\x12\x17\n\x13\x42uttonRequest_Other\x10\x01\x12\"\n\x1e\x42uttonRequest_FeeOverThreshold\x10\x02\x12\x1f\n\x1b\x42uttonRequest_ConfirmOutput\x10\x03\x12\x1d\n\x19\x42uttonRequest_ResetDevice\x10\x04\x12\x1d\n\x19\x42uttonRequest_ConfirmWord\x10\x05\x12\x1c\n\x18\x42uttonRequest_WipeDevice\x10\x06\x12\x1d\n\x19\x42uttonRequest_ProtectCall\x10\x07\x12\x18\n\x14\x42uttonRequest_SignTx\x10\x08\x12\x1f\n\x1b\x42uttonRequest_FirmwareCheck\x10\t\x12\x19\n\x15\x42uttonRequest_Address\x10\n\x12\x1b\n\x17\x42uttonRequest_PublicKey\x10\x0b*\x7f\n\x14PinMatrixRequestType\x12 \n\x1cPinMatrixRequestType_Current\x10\x01\x12!\n\x1dPinMatrixRequestType_NewFirst\x10\x02\x12\"\n\x1ePinMatrixRequestType_NewSecond\x10\x03:4\n\x07wire_in\x12!.google.protobuf.EnumValueOptions\x18\xd2\x86\x03 \x01(\x08:5\n\x08wire_out\x12!.google.protobuf.EnumValueOptions\x18\xd3\x86\x03 \x01(\x08::\n\rwire_debug_in\x12!.google.protobuf.EnumValueOptions\x18\xd4\x86\x03 \x01(\x08:;\n\x0ewire_debug_out\x12!.google.protobuf.EnumValueOptions\x18\xd5\x86\x03 \x01(\x08\x42-\n\x1f\x63om.satoshilabs.trezor.protobufB\nTrezorType') + , + dependencies=[google.protobuf.descriptor_pb2.DESCRIPTOR,]) +_sym_db.RegisterFileDescriptor(DESCRIPTOR) _FAILURETYPE = _descriptor.EnumDescriptor( name='FailureType', @@ -74,9 +82,10 @@ _FAILURETYPE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1385, - serialized_end=1718, + serialized_start=1466, + serialized_end=1799, ) +_sym_db.RegisterEnumDescriptor(_FAILURETYPE) FailureType = enum_type_wrapper.EnumTypeWrapper(_FAILURETYPE) _OUTPUTSCRIPTTYPE = _descriptor.EnumDescriptor( @@ -104,9 +113,10 @@ _OUTPUTSCRIPTTYPE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1720, - serialized_end=1815, + serialized_start=1801, + serialized_end=1896, ) +_sym_db.RegisterEnumDescriptor(_OUTPUTSCRIPTTYPE) OutputScriptType = enum_type_wrapper.EnumTypeWrapper(_OUTPUTSCRIPTTYPE) _INPUTSCRIPTTYPE = _descriptor.EnumDescriptor( @@ -123,12 +133,25 @@ _INPUTSCRIPTTYPE = _descriptor.EnumDescriptor( name='SPENDMULTISIG', index=1, number=1, options=None, type=None), + _descriptor.EnumValueDescriptor( + name='EXTERNAL', index=2, number=2, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SPENDWADDRESS', index=3, number=3, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SPENDWMULTISIG', index=4, number=4, + options=None, + type=None), ], containing_type=None, options=None, - serialized_start=1817, - serialized_end=1871, + serialized_start=1898, + serialized_end=2005, ) +_sym_db.RegisterEnumDescriptor(_INPUTSCRIPTTYPE) InputScriptType = enum_type_wrapper.EnumTypeWrapper(_INPUTSCRIPTTYPE) _REQUESTTYPE = _descriptor.EnumDescriptor( @@ -156,9 +179,10 @@ _REQUESTTYPE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=1873, - serialized_end=1941, + serialized_start=2007, + serialized_end=2075, ) +_sym_db.RegisterEnumDescriptor(_REQUESTTYPE) RequestType = enum_type_wrapper.EnumTypeWrapper(_REQUESTTYPE) _BUTTONREQUESTTYPE = _descriptor.EnumDescriptor( @@ -207,12 +231,17 @@ _BUTTONREQUESTTYPE = _descriptor.EnumDescriptor( name='ButtonRequest_Address', index=9, number=10, options=None, type=None), + _descriptor.EnumValueDescriptor( + name='ButtonRequest_PublicKey', index=10, number=11, + options=None, + type=None), ], containing_type=None, options=None, - serialized_start=1944, - serialized_end=2266, + serialized_start=2078, + serialized_end=2429, ) +_sym_db.RegisterEnumDescriptor(_BUTTONREQUESTTYPE) ButtonRequestType = enum_type_wrapper.EnumTypeWrapper(_BUTTONREQUESTTYPE) _PINMATRIXREQUESTTYPE = _descriptor.EnumDescriptor( @@ -236,9 +265,10 @@ _PINMATRIXREQUESTTYPE = _descriptor.EnumDescriptor( ], containing_type=None, options=None, - serialized_start=2268, - serialized_end=2395, + serialized_start=2431, + serialized_end=2558, ) +_sym_db.RegisterEnumDescriptor(_PINMATRIXREQUESTTYPE) PinMatrixRequestType = enum_type_wrapper.EnumTypeWrapper(_PINMATRIXREQUESTTYPE) Failure_UnexpectedMessage = 1 @@ -259,6 +289,9 @@ PAYTOMULTISIG = 2 PAYTOOPRETURN = 3 SPENDADDRESS = 0 SPENDMULTISIG = 1 +EXTERNAL = 2 +SPENDWADDRESS = 3 +SPENDWMULTISIG = 4 TXINPUT = 0 TXOUTPUT = 1 TXMETA = 2 @@ -273,6 +306,7 @@ ButtonRequest_ProtectCall = 7 ButtonRequest_SignTx = 8 ButtonRequest_FirmwareCheck = 9 ButtonRequest_Address = 10 +ButtonRequest_PublicKey = 11 PinMatrixRequestType_Current = 1 PinMatrixRequestType_NewFirst = 2 PinMatrixRequestType_NewSecond = 3 @@ -342,21 +376,21 @@ _HDNODETYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='chain_code', full_name='HDNodeType.chain_code', index=3, number=4, type=12, cpp_type=9, label=2, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='private_key', full_name='HDNodeType.private_key', index=4, number=5, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='public_key', full_name='HDNodeType.public_key', index=5, number=6, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -369,6 +403,8 @@ _HDNODETYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=50, serialized_end=178, ) @@ -404,6 +440,8 @@ _HDNODEPATHTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], + oneofs=[ + ], serialized_start=180, serialized_end=242, ) @@ -419,14 +457,14 @@ _COINTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='coin_name', full_name='CoinType.coin_name', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='coin_shortcut', full_name='CoinType.coin_shortcut', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -451,6 +489,20 @@ _COINTYPE = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), + _descriptor.FieldDescriptor( + name='address_type_p2wpkh', full_name='CoinType.address_type_p2wpkh', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=6, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='address_type_p2wsh', full_name='CoinType.address_type_p2wsh', index=6, + number=7, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=10, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), ], extensions=[ ], @@ -460,8 +512,10 @@ _COINTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=244, - serialized_end=370, + oneofs=[ + ], + serialized_start=245, + serialized_end=435, ) @@ -502,8 +556,10 @@ _MULTISIGREDEEMSCRIPTTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=372, - serialized_end=463, + oneofs=[ + ], + serialized_start=437, + serialized_end=528, ) @@ -524,7 +580,7 @@ _TXINPUTTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='prev_hash', full_name='TxInputType.prev_hash', index=1, number=2, type=12, cpp_type=9, label=2, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -538,7 +594,7 @@ _TXINPUTTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='script_sig', full_name='TxInputType.script_sig', index=3, number=4, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -563,6 +619,13 @@ _TXINPUTTYPE = _descriptor.Descriptor( message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), + _descriptor.FieldDescriptor( + name='amount', full_name='TxInputType.amount', index=7, + number=8, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), ], extensions=[ ], @@ -572,8 +635,10 @@ _TXINPUTTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=466, - serialized_end=685, + oneofs=[ + ], + serialized_start=531, + serialized_end=766, ) @@ -587,7 +652,7 @@ _TXOUTPUTTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='address', full_name='TxOutputType.address', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -622,7 +687,7 @@ _TXOUTPUTTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='op_return_data', full_name='TxOutputType.op_return_data', index=5, number=6, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -635,8 +700,10 @@ _TXOUTPUTTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=688, - serialized_end=863, + oneofs=[ + ], + serialized_start=769, + serialized_end=944, ) @@ -657,7 +724,7 @@ _TXOUTPUTBINTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='script_pubkey', full_name='TxOutputBinType.script_pubkey', index=1, number=2, type=12, cpp_type=9, label=2, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -670,8 +737,10 @@ _TXOUTPUTBINTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=865, - serialized_end=921, + oneofs=[ + ], + serialized_start=946, + serialized_end=1002, ) @@ -740,8 +809,10 @@ _TRANSACTIONTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=924, - serialized_end=1119, + oneofs=[ + ], + serialized_start=1005, + serialized_end=1200, ) @@ -762,7 +833,7 @@ _TXREQUESTDETAILSTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='tx_hash', full_name='TxRequestDetailsType.tx_hash', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -775,8 +846,10 @@ _TXREQUESTDETAILSTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1121, - serialized_end=1183, + oneofs=[ + ], + serialized_start=1202, + serialized_end=1264, ) @@ -797,14 +870,14 @@ _TXREQUESTSERIALIZEDTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='signature', full_name='TxRequestSerializedType.signature', index=1, number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='serialized_tx', full_name='TxRequestSerializedType.serialized_tx', index=2, number=3, type=12, cpp_type=9, label=1, - has_default_value=False, default_value="", + has_default_value=False, default_value=_b(""), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -817,8 +890,10 @@ _TXREQUESTSERIALIZEDTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1185, - serialized_end=1277, + oneofs=[ + ], + serialized_start=1266, + serialized_end=1358, ) @@ -832,35 +907,35 @@ _IDENTITYTYPE = _descriptor.Descriptor( _descriptor.FieldDescriptor( name='proto', full_name='IdentityType.proto', index=0, number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='user', full_name='IdentityType.user', index=1, number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='host', full_name='IdentityType.host', index=2, number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='port', full_name='IdentityType.port', index=3, number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), _descriptor.FieldDescriptor( name='path', full_name='IdentityType.path', index=4, number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=unicode("", "utf-8"), + has_default_value=False, default_value=_b("").decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), @@ -880,8 +955,10 @@ _IDENTITYTYPE = _descriptor.Descriptor( options=None, is_extendable=False, extension_ranges=[], - serialized_start=1279, - serialized_end=1382, + oneofs=[ + ], + serialized_start=1360, + serialized_end=1463, ) _HDNODEPATHTYPE.fields_by_name['node'].message_type = _HDNODETYPE @@ -904,72 +981,93 @@ DESCRIPTOR.message_types_by_name['TransactionType'] = _TRANSACTIONTYPE DESCRIPTOR.message_types_by_name['TxRequestDetailsType'] = _TXREQUESTDETAILSTYPE DESCRIPTOR.message_types_by_name['TxRequestSerializedType'] = _TXREQUESTSERIALIZEDTYPE DESCRIPTOR.message_types_by_name['IdentityType'] = _IDENTITYTYPE +DESCRIPTOR.enum_types_by_name['FailureType'] = _FAILURETYPE +DESCRIPTOR.enum_types_by_name['OutputScriptType'] = _OUTPUTSCRIPTTYPE +DESCRIPTOR.enum_types_by_name['InputScriptType'] = _INPUTSCRIPTTYPE +DESCRIPTOR.enum_types_by_name['RequestType'] = _REQUESTTYPE +DESCRIPTOR.enum_types_by_name['ButtonRequestType'] = _BUTTONREQUESTTYPE +DESCRIPTOR.enum_types_by_name['PinMatrixRequestType'] = _PINMATRIXREQUESTTYPE +DESCRIPTOR.extensions_by_name['wire_in'] = wire_in +DESCRIPTOR.extensions_by_name['wire_out'] = wire_out +DESCRIPTOR.extensions_by_name['wire_debug_in'] = wire_debug_in +DESCRIPTOR.extensions_by_name['wire_debug_out'] = wire_debug_out -class HDNodeType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _HDNODETYPE - +HDNodeType = _reflection.GeneratedProtocolMessageType('HDNodeType', (_message.Message,), dict( + DESCRIPTOR = _HDNODETYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:HDNodeType) + )) +_sym_db.RegisterMessage(HDNodeType) -class HDNodePathType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _HDNODEPATHTYPE - +HDNodePathType = _reflection.GeneratedProtocolMessageType('HDNodePathType', (_message.Message,), dict( + DESCRIPTOR = _HDNODEPATHTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:HDNodePathType) + )) +_sym_db.RegisterMessage(HDNodePathType) -class CoinType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _COINTYPE - +CoinType = _reflection.GeneratedProtocolMessageType('CoinType', (_message.Message,), dict( + DESCRIPTOR = _COINTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:CoinType) + )) +_sym_db.RegisterMessage(CoinType) -class MultisigRedeemScriptType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _MULTISIGREDEEMSCRIPTTYPE - +MultisigRedeemScriptType = _reflection.GeneratedProtocolMessageType('MultisigRedeemScriptType', (_message.Message,), dict( + DESCRIPTOR = _MULTISIGREDEEMSCRIPTTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:MultisigRedeemScriptType) + )) +_sym_db.RegisterMessage(MultisigRedeemScriptType) -class TxInputType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXINPUTTYPE - +TxInputType = _reflection.GeneratedProtocolMessageType('TxInputType', (_message.Message,), dict( + DESCRIPTOR = _TXINPUTTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:TxInputType) + )) +_sym_db.RegisterMessage(TxInputType) -class TxOutputType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXOUTPUTTYPE - +TxOutputType = _reflection.GeneratedProtocolMessageType('TxOutputType', (_message.Message,), dict( + DESCRIPTOR = _TXOUTPUTTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:TxOutputType) + )) +_sym_db.RegisterMessage(TxOutputType) -class TxOutputBinType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXOUTPUTBINTYPE - +TxOutputBinType = _reflection.GeneratedProtocolMessageType('TxOutputBinType', (_message.Message,), dict( + DESCRIPTOR = _TXOUTPUTBINTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:TxOutputBinType) + )) +_sym_db.RegisterMessage(TxOutputBinType) -class TransactionType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TRANSACTIONTYPE - +TransactionType = _reflection.GeneratedProtocolMessageType('TransactionType', (_message.Message,), dict( + DESCRIPTOR = _TRANSACTIONTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:TransactionType) + )) +_sym_db.RegisterMessage(TransactionType) -class TxRequestDetailsType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXREQUESTDETAILSTYPE - +TxRequestDetailsType = _reflection.GeneratedProtocolMessageType('TxRequestDetailsType', (_message.Message,), dict( + DESCRIPTOR = _TXREQUESTDETAILSTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:TxRequestDetailsType) + )) +_sym_db.RegisterMessage(TxRequestDetailsType) -class TxRequestSerializedType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _TXREQUESTSERIALIZEDTYPE - +TxRequestSerializedType = _reflection.GeneratedProtocolMessageType('TxRequestSerializedType', (_message.Message,), dict( + DESCRIPTOR = _TXREQUESTSERIALIZEDTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:TxRequestSerializedType) + )) +_sym_db.RegisterMessage(TxRequestSerializedType) -class IdentityType(_message.Message): - __metaclass__ = _reflection.GeneratedProtocolMessageType - DESCRIPTOR = _IDENTITYTYPE - +IdentityType = _reflection.GeneratedProtocolMessageType('IdentityType', (_message.Message,), dict( + DESCRIPTOR = _IDENTITYTYPE, + __module__ = 'types_pb2' # @@protoc_insertion_point(class_scope:IdentityType) + )) +_sym_db.RegisterMessage(IdentityType) google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_in) google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_out) @@ -977,5 +1075,5 @@ google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_debug_in) google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_debug_out) DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), '\n\037com.satoshilabs.trezor.protobufB\nTrezorType') +DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\037com.satoshilabs.trezor.protobufB\nTrezorType')) # @@protoc_insertion_point(module_scope) From 5b62fe32da546cb638b62e5141f10d8cf2c56216 Mon Sep 17 00:00:00 2001 From: Jochen Hoenicke Date: Mon, 2 May 2016 21:03:01 +0200 Subject: [PATCH 3/3] Test program that signs big transaction --- signtest.py | 223 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 signtest.py diff --git a/signtest.py b/signtest.py new file mode 100644 index 0000000..50335b4 --- /dev/null +++ b/signtest.py @@ -0,0 +1,223 @@ +#!/usr/bin/python +import binascii +import os +import random +import trezorlib.messages_pb2 as proto +import trezorlib.types_pb2 as proto_types +import trezorlib.tools as tools +import trezorlib.ckd_public as bip32 + +import hashlib +from trezorlib.client import TrezorClient +from trezorlib.client import TrezorClientDebug +from trezorlib.tx_api import TXAPITestnet +from trezorlib.tx_api import TXAPIBitcoin +from trezorlib.transport_hid import HidTransport +from trezorlib.transport_bridge import BridgeTransport + +def pack_varint(x): + if (x < 0xfd): + return chr(x) + else: + return '\xfd'+chr(x & 0xff) + chr((x >> 8) & 0xff) + +def int_to_string(x, pad): + result = ['\x00'] * pad + while x > 0: + pad -= 1 + ordinal = x & 0xFF + result[pad] = (chr(ordinal)) + x >>= 8 + return ''.join(result) + +def string_to_int(s): + result = 0 + for c in s: + if not isinstance(c, int): + c = ord(c) + result = (result << 8) + c + return result + +class MyTXAPIBitcoin(object): + + def set_publickey(self, node): + self.node = node.node + + def set_client(self, client): + self.client = client + + def serialize_tx(self, tx): + ser = '' + ser = ser + int_to_string(tx.version, 4)[::-1] + ser = ser + pack_varint(len(tx.inputs)) + for i in tx.inputs: + ser = ser + i.prev_hash[::-1] + ser = ser + int_to_string(i.prev_index, 4)[::-1] + ser = ser + pack_varint(len(i.script_sig)) + i.script_sig + ser = ser + int_to_string(i.sequence, 4)[::-1] + ser = ser + pack_varint(len(tx.bin_outputs)) + for o in tx.bin_outputs: + ser = ser + int_to_string(o.amount, 8)[::-1] + ser = ser + pack_varint(len(o.script_pubkey)) + o.script_pubkey + ser = ser + int_to_string(tx.lock_time, 4)[::-1] + return ser + + + def create_inputs(self, numinputs, txsize): + idx = 0 + sum = 0 + self.inputs = [] + self.txs = {} + for nr in range(numinputs): + t = proto_types.TransactionType() + t.version = 1 + t.lock_time = 0 + i = t.inputs.add() + i.prev_hash = os.urandom(32) + i.prev_index = random.randint(0,4) + i.script_sig = os.urandom(100) + i.sequence = 0xffffffff + if (nr % 50 == 0): + print nr + myout = random.randint(0, txsize-1) + segwit = 1 #random.randint(0,1) + for vout in range(txsize): + o = t.bin_outputs.add() + o.amount = random.randint(10000,1000000) + if vout == myout: + amount = o.amount + sum = sum + o.amount + node = self.node + path = [0, idx] + node = bip32.public_ckd(node, path) + idx = idx + 1 + pubkey = tools.hash_160(node.public_key) + else: + pubkey = os.urandom(20) + if (segwit): + o.script_pubkey = binascii.unhexlify('0014') + pubkey + else: + o.script_pubkey = binascii.unhexlify('76a914') + pubkey + binascii.unhexlify('88ac') + + txser = self.serialize_tx(t) + txhash = tools.Hash(txser)[::-1] + if (segwit): + outi = self.inputs.append( + proto_types.TxInputType( + address_n=self.client.expand_path("44'/0'/0'/0/"+str(idx)), + script_type = proto_types.SPENDWADDRESS, + prev_hash=txhash, + prev_index = myout, + amount = amount + )) + else: + outi = self.inputs.append( + proto_types.TxInputType( + address_n=self.client.expand_path("44'/0'/0'/0/"+str(idx)), + script_type = proto_types.SPENDADDRESS, + prev_hash=txhash, + prev_index = myout + )) + #print binascii.hexlify(txser) + #print binascii.hexlify(txhash) + self.txs[binascii.hexlify(txhash)] = t + + self.outputs = [ + proto_types.TxOutputType( + amount=sum, + script_type=proto_types.PAYTOADDRESS, + address_n=self.client.expand_path("44'/0'/0'/1/0") + )] + + def get_inputs(self): + return self.inputs + + def get_outputs(self): + return self.outputs + + def get_tx(self, txhash): + t = self.txs[txhash] + #print t + return t + +def main(): + numinputs = 600 + sizeinputtx = 10 + + # List all connected TREZORs on USB + devices = HidTransport.enumerate() + + # Check whether we found any + if len(devices) == 0: + print 'No TREZOR found' + return + + # Use first connected device + print devices[0][0] +# transport = BridgeTransport(devices[0][0]) + transport = HidTransport(devices[0]) + + txstore = MyTXAPIBitcoin() + + # Creates object for manipulating TREZOR + client = TrezorClient(transport) +# client.set_tx_api(TXAPITestnet()) + txstore.set_client(client) + txstore.set_publickey(client.get_public_node(client.expand_path("44'/0'/0'"))) + print "creating input txs" + txstore.create_inputs(numinputs, sizeinputtx) + print "go" + client.set_tx_api(txstore) +# client.set_tx_api(MyTXAPIBitcoin()) + + # Print out TREZOR's features and settings + print client.features + + # Get the first address of first BIP44 account + # (should be the same address as shown in mytrezor.com) + + outputs = [ + proto_types.TxOutputType( + amount=0, + script_type=proto_types.PAYTOADDRESS, + address='p2xtZoXeX5X8BP8JfFhQK2nD3emtjch7UeFm' +# op_return_data=binascii.unhexlify('2890770995194662774cd192ee383b805e9a066e6a456be037727649228fb7f6') +# address_n=client.expand_path("44'/0'/0'/0/35"), +# address='3PUxV6Cc4udQZQsJhArVUzvvVoKC8ohkAj', + ), +# proto_types.TxOutputType( +# amount=0, +# script_type=proto_types.PAYTOOPRETURN, +# op_return_data=binascii.unhexlify('2890770995194662774cd192ee383b805e9a066e6a456be037727649228fb7f6') +# ), +# proto_types.TxOutputType( +# amount= 8120, +# script_type=proto_types.PAYTOADDRESS, +# address_n=client.expand_path("44'/1'/0'/1/0"), +# address='1PtCkQgyN6xHmXWzLmFFrDNA5vYhYLeNFZ', +# address='14KRxYgFc7Se8j7MDdrK5PTNv8meq4GivK', +# ), +# proto_types.TxOutputType( +# amount= 18684 - 2000, +# script_type=proto_types.PAYTOADDRESS, +# address_n=client.expand_path("44'/0'/0'/0/7"), +# # address='1PtCkQgyN6xHmXWzLmFFrDNA5vYhYLeNFZ', +# # address='1s9TSqr3PHZdXGrYws59Uaf5SPqavH43z', +# ), +# proto_types.TxOutputType( +# amount= 1000, +# script_type=proto_types.PAYTOADDRESS, +# # address_n=client.expand_path("44'/0'/0'/0/18"), +# # address='1PtCkQgyN6xHmXWzLmFFrDNA5vYhYLeNFZ', +# address='1NcMqUvyWv1K3Zxwmx5sqfj7ZEmPCSdJFM', +# ), + ] + +# (signatures, serialized_tx) = client.sign_tx('Testnet', inputs, outputs) + (signatures, serialized_tx) = client.sign_tx('Bitcoin', txstore.get_inputs(), txstore.get_outputs()) + print 'Transaction:', binascii.hexlify(serialized_tx) + + client.close() + +if __name__ == '__main__': + main()