From 0f4a63878ae0497893bc9a6815bd9c511759354d Mon Sep 17 00:00:00 2001 From: Jonny Heggheim Date: Mar 20 2018 18:42:44 +0000 Subject: Updated to version 0.9.1 Removed Python2 subpackage since Python2 is not longer supported upstream Dropped patches for protobuf2 License is only LGPLv3, since bundled file with BSD license is replaced --- diff --git a/protobuf2-codefix.patch b/protobuf2-codefix.patch deleted file mode 100644 index eeb50bd..0000000 --- a/protobuf2-codefix.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff --git a/trezorlib/client.py b/trezorlib/client.py -index 0cd62cb..1d9cd64 100644 ---- a/trezorlib/client.py -+++ b/trezorlib/client.py -@@ -31,6 +31,13 @@ - from mnemonic import Mnemonic - - from . import tools -+ -+# monkeypatching: handle None in message constructors in old libprotobuf -+tools.monkeypatch_google_protobuf_addinitmethod() -+ -+# monkeypatching: text formatting of protobuf messages -+tools.monkeypatch_google_protobuf_text_format() -+ - # from . import mapping - from . import messages_pb2 as proto - from . import types_pb2 as types -@@ -53,9 +60,6 @@ - - DEFAULT_CURVE = 'secp256k1' - --# monkeypatching: text formatting of protobuf messages --tools.monkeypatch_google_protobuf_text_format() -- - - def getch(): - try: -diff --git a/trezorlib/tools.py b/trezorlib/tools.py -index 572f00e..972ca1a 100644 ---- a/trezorlib/tools.py -+++ b/trezorlib/tools.py -@@ -136,3 +136,26 @@ def _customPrintFieldValue(field, value, out, indent=0, as_utf8=False, as_one_li - _oldPrintFieldValue(field, value, out, indent, as_utf8, as_one_line) - - google.protobuf.text_format.PrintFieldValue = _customPrintFieldValue -+ -+ -+def monkeypatch_google_protobuf_addinitmethod(): -+ import google.protobuf -+ -+ # __version__ was added in the same release as None support in message constructors -+ if not hasattr(google.protobuf, "__version__"): -+ from google.protobuf.internal import python_message -+ -+ _AddInitMethod = python_message._AddInitMethod -+ -+ def AddInitMethod(message_descriptor, cls): -+ _AddInitMethod(message_descriptor, cls) -+ -+ _init = cls.__init__ -+ -+ def init(self, **kwargs): -+ _kwargs = dict((k, v) for (k, v) in kwargs.items() if v is not None) -+ _init(self, **_kwargs) -+ -+ cls.__init__ = init -+ -+ python_message._AddInitMethod = AddInitMethod diff --git a/protobuf2-messages-regenerated.patch b/protobuf2-messages-regenerated.patch deleted file mode 100644 index a60081c..0000000 --- a/protobuf2-messages-regenerated.patch +++ /dev/null @@ -1,880 +0,0 @@ -diff --git trezorlib/messages_pb2.py trezorlib/messages_pb2.py -index 7b6adac..283e037 100644 ---- trezorlib/messages_pb2.py -+++ trezorlib/messages_pb2.py -@@ -1,6 +1,6 @@ - # Generated by the protocol buffer compiler. DO NOT EDIT! - # source: messages.proto --# libprotoc 3.3.0 -+# libprotoc 2.6.1 - # trezor-common c2a40f4b675ed3bf137360a6fa22ff72775f38ff - - import sys -@@ -16,16 +16,16 @@ from google.protobuf import descriptor_pb2 - _sym_db = _symbol_database.Default() - - --from . import types_pb2 as types__pb2 -+from . import types_pb2 - - - DESCRIPTOR = _descriptor.FileDescriptor( - name='messages.proto', - package='', -- syntax='proto2', -- serialized_pb=_b('\n\x0emessages.proto\x1a\x0btypes.proto\"\x0c\n\nInitialize\"\r\n\x0bGetFeatures\"\xae\x03\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\x12\x18\n\x10\x66irmware_present\x18\x12 \x01(\x08\x12\x14\n\x0cneeds_backup\x18\x13 \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\"m\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\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"4\n\tPublicKey\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x0c\n\x04xpub\x18\x02 \x01(\t\"\xb3\x01\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\x12\x33\n\x0bscript_type\x18\x05 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\"=\n\x12\x45thereumGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x14\n\x0cshow_display\x18\x02 \x01(\x08\"\x1a\n\x07\x41\x64\x64ress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\t\"\"\n\x0f\x45thereumAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\x0c\"\x0c\n\nWipeDevice\"\xbb\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\x12\x13\n\x0bu2f_counter\x18\x08 \x01(\r\"\xc7\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\x12\x13\n\x0bu2f_counter\x18\x07 \x01(\r\x12\x13\n\x0bskip_backup\x18\x08 \x01(\x08\"\x0e\n\x0c\x42\x61\x63kupDevice\"\x10\n\x0e\x45ntropyRequest\"\x1d\n\nEntropyAck\x12\x0f\n\x07\x65ntropy\x18\x01 \x01(\x0c\"\xd3\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\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\x13\n\x0bu2f_counter\x18\t \x01(\r\x12\x0f\n\x07\x64ry_run\x18\n \x01(\x08\"-\n\x0bWordRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.WordRequestType\"\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\"`\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\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"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\"\xb6\x01\n\x0e\x45thereumSignTx\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x11\n\tgas_price\x18\x03 \x01(\x0c\x12\x11\n\tgas_limit\x18\x04 \x01(\x0c\x12\n\n\x02to\x18\x05 \x01(\x0c\x12\r\n\x05value\x18\x06 \x01(\x0c\x12\x1a\n\x12\x64\x61ta_initial_chunk\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x61ta_length\x18\x08 \x01(\r\x12\x10\n\x08\x63hain_id\x18\t \x01(\r\"g\n\x11\x45thereumTxRequest\x12\x13\n\x0b\x64\x61ta_length\x18\x01 \x01(\r\x12\x13\n\x0bsignature_v\x18\x02 \x01(\r\x12\x13\n\x0bsignature_r\x18\x03 \x01(\x0c\x12\x13\n\x0bsignature_s\x18\x04 \x01(\x0c\"#\n\rEthereumTxAck\x12\x12\n\ndata_chunk\x18\x01 \x01(\x0c\"}\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\"g\n\x11GetECDHSessionKey\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x17\n\x0fpeer_public_key\x18\x02 \x01(\x0c\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x03 \x01(\t\"%\n\x0e\x45\x43\x44HSessionKey\x12\x13\n\x0bsession_key\x18\x01 \x01(\x0c\"$\n\rSetU2FCounter\x12\x13\n\x0bu2f_counter\x18\x01 \x01(\r\"\x1f\n\rFirmwareErase\x12\x0e\n\x06length\x18\x01 \x01(\r\"1\n\x0f\x46irmwareRequest\x12\x0e\n\x06offset\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"/\n\x0e\x46irmwareUpload\x12\x0f\n\x07payload\x18\x01 \x02(\x0c\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\"\n\n\x08SelfTest\"#\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\"6\n\x13\x44\x65\x62ugLinkMemoryRead\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"!\n\x0f\x44\x65\x62ugLinkMemory\x12\x0e\n\x06memory\x18\x01 \x01(\x0c\"F\n\x14\x44\x65\x62ugLinkMemoryWrite\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06memory\x18\x02 \x01(\x0c\x12\r\n\x05\x66lash\x18\x03 \x01(\x08\"%\n\x13\x44\x65\x62ugLinkFlashErase\x12\x0e\n\x06sector\x18\x01 \x01(\r*\x81\x14\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\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12(\n\x1aMessageType_FirmwareUpload\x10\x07\x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12)\n\x1bMessageType_FirmwareRequest\x10\x08\x1a\x08\x98\xb5\x18\x01\xb8\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\x06\x08\x01\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\x08\x90\xb5\x18\x01\xb0\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#\n\x15MessageType_ButtonAck\x10\x1b\x1a\x08\x90\xb5\x18\x01\xb0\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\x14MessageType_SelfTest\x10 \x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12\"\n\x18MessageType_BackupDevice\x10\"\x1a\x04\x90\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\x08\x90\xb5\x18\x01\xb0\xb5\x18\x01\x12&\n\x1aMessageType_EstimateTxSize\x10+\x1a\x06\x08\x01\x90\xb5\x18\x01\x12\x1e\n\x12MessageType_TxSize\x10,\x1a\x06\x08\x01\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\x06\x08\x01\x90\xb5\x18\x01\x12(\n\x1cMessageType_EncryptedMessage\x10\x32\x1a\x06\x08\x01\x98\xb5\x18\x01\x12&\n\x1aMessageType_DecryptMessage\x10\x33\x1a\x06\x08\x01\x90\xb5\x18\x01\x12(\n\x1cMessageType_DecryptedMessage\x10\x34\x1a\x06\x08\x01\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\x1eMessageType_EthereumGetAddress\x10\x38\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x10\x39\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_GetECDHSessionKey\x10=\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_ECDHSessionKey\x10>\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_SetU2FCounter\x10?\x1a\x04\x90\xb5\x18\x01\x12+\n\x1dMessageType_DebugLinkDecision\x10\x64\x1a\x08\xa0\xb5\x18\x01\xb0\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\x12)\n\x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x04\xa0\xb5\x18\x01\x12%\n\x1bMessageType_DebugLinkMemory\x10o\x1a\x04\xa8\xb5\x18\x01\x12*\n MessageType_DebugLinkMemoryWrite\x10p\x1a\x04\xa0\xb5\x18\x01\x12)\n\x1fMessageType_DebugLinkFlashErase\x10q\x1a\x04\xa0\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\"\xae\x03\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\x12\x18\n\x10\x66irmware_present\x18\x12 \x01(\x08\x12\x14\n\x0cneeds_backup\x18\x13 \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\"m\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\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"4\n\tPublicKey\x12\x19\n\x04node\x18\x01 \x02(\x0b\x32\x0b.HDNodeType\x12\x0c\n\x04xpub\x18\x02 \x01(\t\"\xb3\x01\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\x12\x33\n\x0bscript_type\x18\x05 \x01(\x0e\x32\x10.InputScriptType:\x0cSPENDADDRESS\"=\n\x12\x45thereumGetAddress\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\x14\n\x0cshow_display\x18\x02 \x01(\x08\"\x1a\n\x07\x41\x64\x64ress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\t\"\"\n\x0f\x45thereumAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x02(\x0c\"\x0c\n\nWipeDevice\"\xbb\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\x12\x13\n\x0bu2f_counter\x18\x08 \x01(\r\"\xc7\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\x12\x13\n\x0bu2f_counter\x18\x07 \x01(\r\x12\x13\n\x0bskip_backup\x18\x08 \x01(\x08\"\x0e\n\x0c\x42\x61\x63kupDevice\"\x10\n\x0e\x45ntropyRequest\"\x1d\n\nEntropyAck\x12\x0f\n\x07\x65ntropy\x18\x01 \x01(\x0c\"\xd3\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\x12\x0c\n\x04type\x18\x08 \x01(\r\x12\x13\n\x0bu2f_counter\x18\t \x01(\r\x12\x0f\n\x07\x64ry_run\x18\n \x01(\x08\"-\n\x0bWordRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.WordRequestType\"\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\"`\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\x12\x1a\n\tcoin_name\x18\x04 \x01(\t:\x07\x42itcoin\"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\"\xb6\x01\n\x0e\x45thereumSignTx\x12\x11\n\taddress_n\x18\x01 \x03(\r\x12\r\n\x05nonce\x18\x02 \x01(\x0c\x12\x11\n\tgas_price\x18\x03 \x01(\x0c\x12\x11\n\tgas_limit\x18\x04 \x01(\x0c\x12\n\n\x02to\x18\x05 \x01(\x0c\x12\r\n\x05value\x18\x06 \x01(\x0c\x12\x1a\n\x12\x64\x61ta_initial_chunk\x18\x07 \x01(\x0c\x12\x13\n\x0b\x64\x61ta_length\x18\x08 \x01(\r\x12\x10\n\x08\x63hain_id\x18\t \x01(\r\"g\n\x11\x45thereumTxRequest\x12\x13\n\x0b\x64\x61ta_length\x18\x01 \x01(\r\x12\x13\n\x0bsignature_v\x18\x02 \x01(\r\x12\x13\n\x0bsignature_r\x18\x03 \x01(\x0c\x12\x13\n\x0bsignature_s\x18\x04 \x01(\x0c\"#\n\rEthereumTxAck\x12\x12\n\ndata_chunk\x18\x01 \x01(\x0c\"}\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\"g\n\x11GetECDHSessionKey\x12\x1f\n\x08identity\x18\x01 \x01(\x0b\x32\r.IdentityType\x12\x17\n\x0fpeer_public_key\x18\x02 \x01(\x0c\x12\x18\n\x10\x65\x63\x64sa_curve_name\x18\x03 \x01(\t\"%\n\x0e\x45\x43\x44HSessionKey\x12\x13\n\x0bsession_key\x18\x01 \x01(\x0c\"$\n\rSetU2FCounter\x12\x13\n\x0bu2f_counter\x18\x01 \x01(\r\"\x1f\n\rFirmwareErase\x12\x0e\n\x06length\x18\x01 \x01(\r\"1\n\x0f\x46irmwareRequest\x12\x0e\n\x06offset\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"/\n\x0e\x46irmwareUpload\x12\x0f\n\x07payload\x18\x01 \x02(\x0c\x12\x0c\n\x04hash\x18\x02 \x01(\x0c\"\n\n\x08SelfTest\"#\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\"6\n\x13\x44\x65\x62ugLinkMemoryRead\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06length\x18\x02 \x01(\r\"!\n\x0f\x44\x65\x62ugLinkMemory\x12\x0e\n\x06memory\x18\x01 \x01(\x0c\"F\n\x14\x44\x65\x62ugLinkMemoryWrite\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\r\x12\x0e\n\x06memory\x18\x02 \x01(\x0c\x12\r\n\x05\x66lash\x18\x03 \x01(\x08\"%\n\x13\x44\x65\x62ugLinkFlashErase\x12\x0e\n\x06sector\x18\x01 \x01(\r*\xf3\x13\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\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12(\n\x1aMessageType_FirmwareUpload\x10\x07\x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12)\n\x1bMessageType_FirmwareRequest\x10\x08\x1a\x08\x98\xb5\x18\x01\xb8\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\x08\x90\xb5\x18\x01\xb0\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#\n\x15MessageType_ButtonAck\x10\x1b\x1a\x08\x90\xb5\x18\x01\xb0\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\x14MessageType_SelfTest\x10 \x1a\x08\x90\xb5\x18\x01\xb8\xb5\x18\x01\x12\"\n\x18MessageType_BackupDevice\x10\"\x1a\x04\x90\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\x08\x90\xb5\x18\x01\xb0\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\x1eMessageType_EthereumGetAddress\x10\x38\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x10\x39\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\x18\x01\x12\'\n\x1dMessageType_GetECDHSessionKey\x10=\x1a\x04\x90\xb5\x18\x01\x12$\n\x1aMessageType_ECDHSessionKey\x10>\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_SetU2FCounter\x10?\x1a\x04\x90\xb5\x18\x01\x12+\n\x1dMessageType_DebugLinkDecision\x10\x64\x1a\x08\xa0\xb5\x18\x01\xb0\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\x12)\n\x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x04\xa0\xb5\x18\x01\x12%\n\x1bMessageType_DebugLinkMemory\x10o\x1a\x04\xa8\xb5\x18\x01\x12*\n MessageType_DebugLinkMemoryWrite\x10p\x1a\x04\xa0\xb5\x18\x01\x12)\n\x1fMessageType_DebugLinkFlashErase\x10q\x1a\x04\xa0\xb5\x18\x01\x42\x30\n\x1f\x63om.satoshilabs.trezor.protobufB\rTrezorMessage') - , -- dependencies=[types__pb2.DESCRIPTOR,]) -+ dependencies=[types_pb2.DESCRIPTOR,]) -+_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - _MESSAGETYPE = _descriptor.EnumDescriptor( - name='MessageType', -@@ -99,7 +99,7 @@ _MESSAGETYPE = _descriptor.EnumDescriptor( - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_SimpleSignTx', index=16, number=16, -- options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\220\265\030\001')), -+ options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_Features', index=17, number=17, -@@ -191,11 +191,11 @@ _MESSAGETYPE = _descriptor.EnumDescriptor( - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_EstimateTxSize', index=39, number=43, -- options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\220\265\030\001')), -+ options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_TxSize', index=40, number=44, -- options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\230\265\030\001')), -+ options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_RecoveryDevice', index=41, number=45, -@@ -215,19 +215,19 @@ _MESSAGETYPE = _descriptor.EnumDescriptor( - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_EncryptMessage', index=45, number=49, -- options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\220\265\030\001')), -+ options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_EncryptedMessage', index=46, number=50, -- options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\230\265\030\001')), -+ options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_DecryptMessage', index=47, number=51, -- options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\220\265\030\001')), -+ options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_DecryptedMessage', index=48, number=52, -- options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\230\265\030\001')), -+ options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\230\265\030\001')), - type=None), - _descriptor.EnumValueDescriptor( - name='MessageType_SignIdentity', index=49, number=53, -@@ -313,7 +313,7 @@ _MESSAGETYPE = _descriptor.EnumDescriptor( - containing_type=None, - options=None, - serialized_start=5115, -- serialized_end=7676, -+ serialized_end=7662, - ) - _sym_db.RegisterEnumDescriptor(_MESSAGETYPE) - -@@ -405,7 +405,6 @@ _INITIALIZE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -429,7 +428,6 @@ _GETFEATURES = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -586,7 +584,6 @@ _FEATURES = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -610,7 +607,6 @@ _CLEARSESSION = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -662,7 +658,6 @@ _APPLYSETTINGS = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -693,7 +688,6 @@ _CHANGEPIN = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -745,7 +739,6 @@ _PING = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -776,7 +769,6 @@ _SUCCESS = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -814,7 +806,6 @@ _FAILURE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -852,7 +843,6 @@ _BUTTONREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -876,7 +866,6 @@ _BUTTONACK = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -907,7 +896,6 @@ _PINMATRIXREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -938,7 +926,6 @@ _PINMATRIXACK = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -962,7 +949,6 @@ _CANCEL = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -986,7 +972,6 @@ _PASSPHRASEREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1017,7 +1002,6 @@ _PASSPHRASEACK = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1048,7 +1032,6 @@ _GETENTROPY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1079,7 +1062,6 @@ _ENTROPY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1131,7 +1113,6 @@ _GETPUBLICKEY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1169,7 +1150,6 @@ _PUBLICKEY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1228,7 +1208,6 @@ _GETADDRESS = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1266,7 +1245,6 @@ _ETHEREUMGETADDRESS = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1297,7 +1275,6 @@ _ADDRESS = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1328,7 +1305,6 @@ _ETHEREUMADDRESS = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1352,7 +1328,6 @@ _WIPEDEVICE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1432,7 +1407,6 @@ _LOADDEVICE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1512,7 +1486,6 @@ _RESETDEVICE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1536,7 +1509,6 @@ _BACKUPDEVICE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1560,7 +1532,6 @@ _ENTROPYREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1591,7 +1562,6 @@ _ENTROPYACK = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1678,7 +1648,6 @@ _RECOVERYDEVICE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1709,7 +1678,6 @@ _WORDREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1740,7 +1708,6 @@ _WORDACK = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1785,7 +1752,6 @@ _SIGNMESSAGE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1837,7 +1803,6 @@ _VERIFYMESSAGE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1875,7 +1840,6 @@ _MESSAGESIGNATURE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1934,7 +1898,6 @@ _ENCRYPTMESSAGE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1979,7 +1942,6 @@ _ENCRYPTEDMESSAGE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2031,7 +1993,6 @@ _DECRYPTMESSAGE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2069,7 +2030,6 @@ _DECRYPTEDMESSAGE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2142,7 +2102,6 @@ _CIPHERKEYVALUE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2173,7 +2132,6 @@ _CIPHEREDKEYVALUE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2218,7 +2176,6 @@ _ESTIMATETXSIZE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2249,7 +2206,6 @@ _TXSIZE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2308,7 +2264,6 @@ _SIGNTX = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2374,7 +2329,6 @@ _SIMPLESIGNTX = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2419,7 +2373,6 @@ _TXREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2450,7 +2403,6 @@ _TXACK = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2537,7 +2489,6 @@ _ETHEREUMSIGNTX = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2589,7 +2540,6 @@ _ETHEREUMTXREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2620,7 +2570,6 @@ _ETHEREUMTXACK = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2672,7 +2621,6 @@ _SIGNIDENTITY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2717,7 +2665,6 @@ _SIGNEDIDENTITY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2762,7 +2709,6 @@ _GETECDHSESSIONKEY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2793,7 +2739,6 @@ _ECDHSESSIONKEY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2824,7 +2769,6 @@ _SETU2FCOUNTER = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2855,7 +2799,6 @@ _FIRMWAREERASE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2893,7 +2836,6 @@ _FIRMWAREREQUEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2931,7 +2873,6 @@ _FIRMWAREUPLOAD = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2955,7 +2896,6 @@ _SELFTEST = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -2986,7 +2926,6 @@ _DEBUGLINKDECISION = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3010,7 +2949,6 @@ _DEBUGLINKGETSTATE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3104,7 +3042,6 @@ _DEBUGLINKSTATE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3128,7 +3065,6 @@ _DEBUGLINKSTOP = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3173,7 +3109,6 @@ _DEBUGLINKLOG = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3211,7 +3146,6 @@ _DEBUGLINKMEMORYREAD = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3242,7 +3176,6 @@ _DEBUGLINKMEMORY = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3287,7 +3220,6 @@ _DEBUGLINKMEMORYWRITE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3318,7 +3250,6 @@ _DEBUGLINKFLASHERASE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -3326,25 +3257,25 @@ _DEBUGLINKFLASHERASE = _descriptor.Descriptor( - serialized_end=5112, - ) - --_FEATURES.fields_by_name['coins'].message_type = types__pb2._COINTYPE --_FAILURE.fields_by_name['code'].enum_type = types__pb2._FAILURETYPE --_BUTTONREQUEST.fields_by_name['code'].enum_type = types__pb2._BUTTONREQUESTTYPE --_PINMATRIXREQUEST.fields_by_name['type'].enum_type = types__pb2._PINMATRIXREQUESTTYPE --_PUBLICKEY.fields_by_name['node'].message_type = types__pb2._HDNODETYPE --_GETADDRESS.fields_by_name['multisig'].message_type = types__pb2._MULTISIGREDEEMSCRIPTTYPE --_GETADDRESS.fields_by_name['script_type'].enum_type = types__pb2._INPUTSCRIPTTYPE --_LOADDEVICE.fields_by_name['node'].message_type = types__pb2._HDNODETYPE --_WORDREQUEST.fields_by_name['type'].enum_type = types__pb2._WORDREQUESTTYPE --_SIMPLESIGNTX.fields_by_name['inputs'].message_type = types__pb2._TXINPUTTYPE --_SIMPLESIGNTX.fields_by_name['outputs'].message_type = types__pb2._TXOUTPUTTYPE --_SIMPLESIGNTX.fields_by_name['transactions'].message_type = types__pb2._TRANSACTIONTYPE --_TXREQUEST.fields_by_name['request_type'].enum_type = types__pb2._REQUESTTYPE --_TXREQUEST.fields_by_name['details'].message_type = types__pb2._TXREQUESTDETAILSTYPE --_TXREQUEST.fields_by_name['serialized'].message_type = types__pb2._TXREQUESTSERIALIZEDTYPE --_TXACK.fields_by_name['tx'].message_type = types__pb2._TRANSACTIONTYPE --_SIGNIDENTITY.fields_by_name['identity'].message_type = types__pb2._IDENTITYTYPE --_GETECDHSESSIONKEY.fields_by_name['identity'].message_type = types__pb2._IDENTITYTYPE --_DEBUGLINKSTATE.fields_by_name['node'].message_type = types__pb2._HDNODETYPE -+_FEATURES.fields_by_name['coins'].message_type = types_pb2._COINTYPE -+_FAILURE.fields_by_name['code'].enum_type = types_pb2._FAILURETYPE -+_BUTTONREQUEST.fields_by_name['code'].enum_type = types_pb2._BUTTONREQUESTTYPE -+_PINMATRIXREQUEST.fields_by_name['type'].enum_type = types_pb2._PINMATRIXREQUESTTYPE -+_PUBLICKEY.fields_by_name['node'].message_type = types_pb2._HDNODETYPE -+_GETADDRESS.fields_by_name['multisig'].message_type = types_pb2._MULTISIGREDEEMSCRIPTTYPE -+_GETADDRESS.fields_by_name['script_type'].enum_type = types_pb2._INPUTSCRIPTTYPE -+_LOADDEVICE.fields_by_name['node'].message_type = types_pb2._HDNODETYPE -+_WORDREQUEST.fields_by_name['type'].enum_type = types_pb2._WORDREQUESTTYPE -+_SIMPLESIGNTX.fields_by_name['inputs'].message_type = types_pb2._TXINPUTTYPE -+_SIMPLESIGNTX.fields_by_name['outputs'].message_type = types_pb2._TXOUTPUTTYPE -+_SIMPLESIGNTX.fields_by_name['transactions'].message_type = types_pb2._TRANSACTIONTYPE -+_TXREQUEST.fields_by_name['request_type'].enum_type = types_pb2._REQUESTTYPE -+_TXREQUEST.fields_by_name['details'].message_type = types_pb2._TXREQUESTDETAILSTYPE -+_TXREQUEST.fields_by_name['serialized'].message_type = types_pb2._TXREQUESTSERIALIZEDTYPE -+_TXACK.fields_by_name['tx'].message_type = types_pb2._TRANSACTIONTYPE -+_SIGNIDENTITY.fields_by_name['identity'].message_type = types_pb2._IDENTITYTYPE -+_GETECDHSESSIONKEY.fields_by_name['identity'].message_type = types_pb2._IDENTITYTYPE -+_DEBUGLINKSTATE.fields_by_name['node'].message_type = types_pb2._HDNODETYPE - DESCRIPTOR.message_types_by_name['Initialize'] = _INITIALIZE - DESCRIPTOR.message_types_by_name['GetFeatures'] = _GETFEATURES - DESCRIPTOR.message_types_by_name['Features'] = _FEATURES -@@ -3415,7 +3346,6 @@ DESCRIPTOR.message_types_by_name['DebugLinkMemory'] = _DEBUGLINKMEMORY - DESCRIPTOR.message_types_by_name['DebugLinkMemoryWrite'] = _DEBUGLINKMEMORYWRITE - DESCRIPTOR.message_types_by_name['DebugLinkFlashErase'] = _DEBUGLINKFLASHERASE - DESCRIPTOR.enum_types_by_name['MessageType'] = _MESSAGETYPE --_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - Initialize = _reflection.GeneratedProtocolMessageType('Initialize', (_message.Message,), dict( - DESCRIPTOR = _INITIALIZE, -@@ -3936,7 +3866,7 @@ _MESSAGETYPE.values_by_name["MessageType_ResetDevice"]._options = _descriptor._P - _MESSAGETYPE.values_by_name["MessageType_SignTx"].has_options = True - _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(), _b('\010\001\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(), _b('\230\265\030\001')) - _MESSAGETYPE.values_by_name["MessageType_PinMatrixRequest"].has_options = True -@@ -3982,9 +3912,9 @@ _MESSAGETYPE.values_by_name["MessageType_PassphraseRequest"]._options = _descrip - _MESSAGETYPE.values_by_name["MessageType_PassphraseAck"].has_options = True - _MESSAGETYPE.values_by_name["MessageType_PassphraseAck"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\220\265\030\001\260\265\030\001')) - _MESSAGETYPE.values_by_name["MessageType_EstimateTxSize"].has_options = True --_MESSAGETYPE.values_by_name["MessageType_EstimateTxSize"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\010\001\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(), _b('\010\001\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(), _b('\220\265\030\001')) - _MESSAGETYPE.values_by_name["MessageType_WordRequest"].has_options = True -@@ -3994,13 +3924,13 @@ _MESSAGETYPE.values_by_name["MessageType_WordAck"]._options = _descriptor._Parse - _MESSAGETYPE.values_by_name["MessageType_CipheredKeyValue"].has_options = True - _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(), _b('\010\001\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(), _b('\010\001\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(), _b('\010\001\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(), _b('\010\001\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(), _b('\220\265\030\001')) - _MESSAGETYPE.values_by_name["MessageType_SignedIdentity"].has_options = True -diff --git trezorlib/types_pb2.py trezorlib/types_pb2.py -index a9be26d..6ecd37e 100644 ---- trezorlib/types_pb2.py -+++ trezorlib/types_pb2.py -@@ -1,6 +1,6 @@ - # Generated by the protocol buffer compiler. DO NOT EDIT! - # source: types.proto --# libprotoc 3.3.0 -+# libprotoc 2.6.1 - # trezor-common c2a40f4b675ed3bf137360a6fa22ff72775f38ff - - import sys -@@ -16,16 +16,16 @@ from google.protobuf import descriptor_pb2 - _sym_db = _symbol_database.Default() - - --from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -+import google.protobuf.descriptor_pb2 - - - DESCRIPTOR = _descriptor.FileDescriptor( - name='types.proto', - package='', -- syntax='proto2', - 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\"\xe9\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\x1d\n\x15signed_message_header\x18\x08 \x01(\t\x12\x1c\n\nxpub_magic\x18\t \x01(\r:\x08\x37\x36\x30\x36\x37\x33\x35\x38\x12\x1c\n\nxprv_magic\x18\n \x01(\r:\x08\x37\x36\x30\x36\x36\x32\x37\x36\x12\x0e\n\x06segwit\x18\x0b \x01(\x08\"[\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\"\xef\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\x12\x12\n\nextra_data\x18\x08 \x01(\x0c\x12\x16\n\x0e\x65xtra_data_len\x18\t \x01(\r\"q\n\x14TxRequestDetailsType\x12\x15\n\rrequest_index\x18\x01 \x01(\r\x12\x0f\n\x07tx_hash\x18\x02 \x01(\x0c\x12\x16\n\x0e\x65xtra_data_len\x18\x03 \x01(\r\x12\x19\n\x11\x65xtra_data_offset\x18\x04 \x01(\r\"\\\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*\xd2\x02\n\x0b\x46\x61ilureType\x12\x1d\n\x19\x46\x61ilure_UnexpectedMessage\x10\x01\x12\x1a\n\x16\x46\x61ilure_ButtonExpected\x10\x02\x12\x15\n\x11\x46\x61ilure_DataError\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\x18\n\x14\x46\x61ilure_ProcessError\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*\x87\x01\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\x12\x10\n\x0cPAYTOWITNESS\x10\x04\x12\x14\n\x10PAYTOP2SHWITNESS\x10\x05*l\n\x0fInputScriptType\x12\x10\n\x0cSPENDADDRESS\x10\x00\x12\x11\n\rSPENDMULTISIG\x10\x01\x12\x0c\n\x08\x45XTERNAL\x10\x02\x12\x10\n\x0cSPENDWITNESS\x10\x03\x12\x14\n\x10SPENDP2SHWITNESS\x10\x04*U\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\x12\x0f\n\x0bTXEXTRADATA\x10\x04*\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*Z\n\x12RecoveryDeviceType\x12%\n!RecoveryDeviceType_ScrambledWords\x10\x00\x12\x1d\n\x19RecoveryDeviceType_Matrix\x10\x01*f\n\x0fWordRequestType\x12\x19\n\x15WordRequestType_Plain\x10\x00\x12\x1b\n\x17WordRequestType_Matrix9\x10\x01\x12\x1b\n\x17WordRequestType_Matrix6\x10\x02: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:6\n\twire_tiny\x12!.google.protobuf.EnumValueOptions\x18\xd6\x86\x03 \x01(\x08:<\n\x0fwire_bootloader\x12!.google.protobuf.EnumValueOptions\x18\xd7\x86\x03 \x01(\x08\x42-\n\x1f\x63om.satoshilabs.trezor.protobufB\nTrezorType') - , -- dependencies=[google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,]) -+ dependencies=[google.protobuf.descriptor_pb2.DESCRIPTOR,]) -+_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - _FAILURETYPE = _descriptor.EnumDescriptor( - name='FailureType', -@@ -490,7 +490,6 @@ _HDNODETYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -528,7 +527,6 @@ _HDNODEPATHTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -615,7 +613,6 @@ _COINTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -660,7 +657,6 @@ _MULTISIGREDEEMSCRIPTTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -740,7 +736,6 @@ _TXINPUTTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -806,7 +801,6 @@ _TXOUTPUTTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -844,7 +838,6 @@ _TXOUTPUTBINTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -931,7 +924,6 @@ _TRANSACTIONTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -983,7 +975,6 @@ _TXREQUESTDETAILSTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1028,7 +1019,6 @@ _TXREQUESTSERIALIZEDTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1094,7 +1084,6 @@ _IDENTITYTYPE = _descriptor.Descriptor( - ], - options=None, - is_extendable=False, -- syntax='proto2', - extension_ranges=[], - oneofs=[ - ], -@@ -1136,7 +1125,6 @@ DESCRIPTOR.extensions_by_name['wire_debug_in'] = wire_debug_in - DESCRIPTOR.extensions_by_name['wire_debug_out'] = wire_debug_out - DESCRIPTOR.extensions_by_name['wire_tiny'] = wire_tiny - DESCRIPTOR.extensions_by_name['wire_bootloader'] = wire_bootloader --_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - HDNodeType = _reflection.GeneratedProtocolMessageType('HDNodeType', (_message.Message,), dict( - DESCRIPTOR = _HDNODETYPE, -@@ -1215,12 +1203,12 @@ IdentityType = _reflection.GeneratedProtocolMessageType('IdentityType', (_messag - )) - _sym_db.RegisterMessage(IdentityType) - --google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(wire_in) --google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(wire_out) --google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(wire_debug_in) --google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(wire_debug_out) --google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(wire_tiny) --google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(wire_bootloader) -+google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_in) -+google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_out) -+google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_debug_in) -+google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_debug_out) -+google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_tiny) -+google.protobuf.descriptor_pb2.EnumValueOptions.RegisterExtension(wire_bootloader) - - DESCRIPTOR.has_options = True - DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\037com.satoshilabs.trezor.protobufB\nTrezorType')) diff --git a/python-trezor.spec b/python-trezor.spec index 627315f..c486e7a 100644 --- a/python-trezor.spec +++ b/python-trezor.spec @@ -4,32 +4,17 @@ %global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) %global bashcomproot %(dirname %{bashcompdir} 2>/dev/null) -%if 0%{?fedora} >= 26 -%global protobuf2 0 -%else -%global protobuf2 1 -%endif - Name: python-%{srcname} -Version: 0.7.16 -Release: 6%{?dist} +Version: 0.9.1 +Release: 1%{?dist} Summary: %{sum} -# trezorlib/protobuf_json.py is BSD the rest is LGPLv3 -License: LGPLv3 and BSD +License: LGPLv3 URL: https://github.com/trezor/python-trezor Source0: https://files.pythonhosted.org/packages/source/t/%{srcname}/%{srcname}-%{version}.tar.gz Source1: 51-trezor.rules -Patch0: protobuf2-messages-regenerated.patch -Patch1: protobuf2-codefix.patch BuildArch: noarch -BuildRequires: python2-devel -BuildRequires: python2-pbkdf2 -BuildRequires: python2-hidapi >= 0.7.99.post20 -BuildRequires: python2-mnemonic >= 0.17 -BuildRequires: python2-ecdsa -BuildRequires: python2-requests -BuildRequires: python2-protobuf + BuildRequires: pkgconfig(bash-completion) BuildRequires: systemd BuildRequires: python3-devel @@ -39,6 +24,7 @@ BuildRequires: python3-mnemonic >= 0.17 BuildRequires: python3-ecdsa BuildRequires: python3-requests BuildRequires: python3-protobuf +BuildRequires: python3-click %global _description\ Python library for communicating with TREZOR Hardware Wallet\ @@ -47,19 +33,6 @@ See https://trezor.io for more information.\ %description %_description -%package -n python2-%{srcname} -Summary: %{sum} -Requires: python2-pbkdf2 -Requires: python2-hidapi >= 0.7.99.post20 -Requires: python2-mnemonic >= 0.17 -Requires: python2-ecdsa -Requires: python2-requests -# https://github.com/trezor/python-trezor/issues/86 -Provides: bundled(python-protobuf-json) = 0.0.6 -%{?python_provide:%python_provide python2-%{srcname}} - -%description -n python2-%{srcname} %_description - %package -n python3-%{srcname} Summary: %{sum} Requires: python3-pbkdf2 @@ -67,8 +40,7 @@ Requires: python3-hidapi >= 0.7.99.post20 Requires: python3-mnemonic >= 0.17 Requires: python3-ecdsa Requires: python3-requests -# https://github.com/trezor/python-trezor/issues/86 -Provides: bundled(python3-protobuf-json) = 0.0.6 +Requires: python3-click %{?python_provide:%python_provide python3-%{srcname}} %description -n python3-%{srcname} %_description @@ -76,19 +48,12 @@ Provides: bundled(python3-protobuf-json) = 0.0.6 %prep %setup -q -n %{srcname}-%{version} -%if %{protobuf2} -%patch0 -p0 -%patch1 -p1 -%endif - rm -rf %{srcname}.egg-info %build -%py2_build %py3_build %install -%py2_install %py3_install install -Dpm 644 bash_completion.d/trezorctl.sh %{buildroot}%{bashcompdir}/trezorctl @@ -96,16 +61,10 @@ install -Dpm 644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/51-trezor.rules %check -#Missing dependency certifi -#%{__python2} setup.py test +#Missing dependency libusb1, rlp and pyblake2 +#%{__python3} setup.py test -%files -n python2-%{srcname} -%doc PKG-INFO -%doc README.rst -%license COPYING -%{python2_sitelib}/* - %files -n python3-%{srcname} %doc PKG-INFO %doc README.rst @@ -116,6 +75,12 @@ install -Dpm 644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/51-trezor.rules %{_udevrulesdir}/51-trezor.rules %changelog +* Tue Mar 06 2018 Jonny Heggheim - 0.9.1-1 +- Updated to version 0.9.1 +- Removed Python2 subpackage since Python2 is not longer supported upstream +- Dropped patches for protobuf2 +- License is only LGPLv3, since bundled file with BSD license is replaced + * Fri Feb 09 2018 Iryna Shcherbina - 0.7.16-6 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)