From 15b3515e6eefa96054bd784afaf3f0d161b83842 Mon Sep 17 00:00:00 2001 From: tychovrahe Date: Fri, 31 Jan 2025 10:19:25 +0100 Subject: [PATCH] BLE hadling in micropython: unpair --- common/protob/messages-ble.proto | 10 + common/protob/messages.proto | 1 + core/src/all_modules.py | 2 + core/src/apps/management/ble/unpair.py | 21 + core/src/apps/workflow_handlers.py | 2 + core/src/trezor/enums/MessageType.py | 1 + core/src/trezor/enums/__init__.py | 1 + core/src/trezor/messages.py | 6 + python/src/trezorlib/ble/__init__.py | 13 + python/src/trezorlib/cli/ble.py | 17 + python/src/trezorlib/messages.py | 5 + rust/trezor-client/src/messages/generated.rs | 1 + .../src/protos/generated/messages.rs | 821 +++++++++--------- .../src/protos/generated/messages_ble.rs | 110 ++- 14 files changed, 601 insertions(+), 410 deletions(-) create mode 100644 core/src/apps/management/ble/unpair.py diff --git a/common/protob/messages-ble.proto b/common/protob/messages-ble.proto index 554291a82d..d333893219 100644 --- a/common/protob/messages-ble.proto +++ b/common/protob/messages-ble.proto @@ -20,6 +20,16 @@ message EraseBonds { } +/** + * Request: erases bond for currently connected device + * @start + * @next Success + * @next Failure + */ +message Unpair { +} + + /** * Request: disconnect * @start diff --git a/common/protob/messages.proto b/common/protob/messages.proto index da113e661a..1f4596670d 100644 --- a/common/protob/messages.proto +++ b/common/protob/messages.proto @@ -91,6 +91,7 @@ enum MessageType { // BLE MessageType_EraseBonds = 8006 [(bitcoin_only) = true, (wire_in) = true]; MessageType_Disconnect = 8007 [(bitcoin_only) = true, (wire_in) = true]; + MessageType_Unpair = 8008 [(bitcoin_only) = true, (wire_in) = true]; // Bitcoin MessageType_GetPublicKey = 11 [(bitcoin_only) = true, (wire_in) = true]; diff --git a/core/src/all_modules.py b/core/src/all_modules.py index 8c604de172..22af426856 100644 --- a/core/src/all_modules.py +++ b/core/src/all_modules.py @@ -373,6 +373,8 @@ apps.management.ble.disconnect import apps.management.ble.disconnect apps.management.ble.erase_bonds import apps.management.ble.erase_bonds +apps.management.ble.unpair +import apps.management.ble.unpair apps.management.change_language import apps.management.change_language apps.management.change_pin diff --git a/core/src/apps/management/ble/unpair.py b/core/src/apps/management/ble/unpair.py new file mode 100644 index 0000000000..12863f073a --- /dev/null +++ b/core/src/apps/management/ble/unpair.py @@ -0,0 +1,21 @@ +from trezorio import ble +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from trezor.messages import Success, Unpair + + +async def unpair(_msg: Unpair) -> Success: + from trezor.messages import Success + from trezor.ui.layouts import confirm_action + from trezor.wire.context import get_context + + await confirm_action("Unpair current device", "Unpair") + + ctx = get_context() + + await ctx.write(Success(message="Erasing")) + + ble.unpair() + + raise RuntimeError diff --git a/core/src/apps/workflow_handlers.py b/core/src/apps/workflow_handlers.py index 50caaa4356..9d1ab77b94 100644 --- a/core/src/apps/workflow_handlers.py +++ b/core/src/apps/workflow_handlers.py @@ -81,6 +81,8 @@ def _find_message_handler_module(msg_type: int) -> str: return "apps.management.ble.erase_bonds" if msg_type == MessageType.Disconnect: return "apps.management.ble.disconnect" + if msg_type == MessageType.Unpair: + return "apps.management.ble.unpair" # bitcoin if msg_type == MessageType.AuthorizeCoinJoin: diff --git a/core/src/trezor/enums/MessageType.py b/core/src/trezor/enums/MessageType.py index 13625d78b4..a7aa35e806 100644 --- a/core/src/trezor/enums/MessageType.py +++ b/core/src/trezor/enums/MessageType.py @@ -62,6 +62,7 @@ FirmwareRequest = 8 ProdTestT1 = 32 EraseBonds = 8006 Disconnect = 8007 +Unpair = 8008 GetPublicKey = 11 PublicKey = 12 SignTx = 15 diff --git a/core/src/trezor/enums/__init__.py b/core/src/trezor/enums/__init__.py index 960cd5bd8f..9afffff4ed 100644 --- a/core/src/trezor/enums/__init__.py +++ b/core/src/trezor/enums/__init__.py @@ -412,6 +412,7 @@ if TYPE_CHECKING: ProdTestT1 = 32 EraseBonds = 8006 Disconnect = 8007 + Unpair = 8008 GetPublicKey = 11 PublicKey = 12 SignTx = 15 diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py index 00a8369b52..03a3b00099 100644 --- a/core/src/trezor/messages.py +++ b/core/src/trezor/messages.py @@ -1262,6 +1262,12 @@ if TYPE_CHECKING: def is_type_of(cls, msg: Any) -> TypeGuard["EraseBonds"]: return isinstance(msg, cls) + class Unpair(protobuf.MessageType): + + @classmethod + def is_type_of(cls, msg: Any) -> TypeGuard["Unpair"]: + return isinstance(msg, cls) + class Disconnect(protobuf.MessageType): @classmethod diff --git a/python/src/trezorlib/ble/__init__.py b/python/src/trezorlib/ble/__init__.py index be1c1eb682..9dcd7a650b 100644 --- a/python/src/trezorlib/ble/__init__.py +++ b/python/src/trezorlib/ble/__init__.py @@ -47,6 +47,19 @@ def erase_bonds( raise RuntimeError(f"Unexpected message {resp}") +@session +def unpair( + client: "TrezorClient", +): + + resp = client.call(messages.Unpair()) + + if isinstance(resp, messages.Success): + return + else: + raise RuntimeError(f"Unexpected message {resp}") + + @session def disconnect( client: "TrezorClient", diff --git a/python/src/trezorlib/cli/ble.py b/python/src/trezorlib/cli/ble.py index 99bfe2738d..8cc0482c4e 100644 --- a/python/src/trezorlib/cli/ble.py +++ b/python/src/trezorlib/cli/ble.py @@ -137,3 +137,20 @@ def erase_bonds( except exceptions.TrezorException as e: click.echo(f"Erase bonds failed: {e}") sys.exit(3) + + +@cli.command() +@with_client +def unpair( + client: "TrezorClient", +) -> None: + """Erase bond of currently connected device. (on device side)""" + + try: + ble.unpair(client) + click.echo("Unpair successful.") + except exceptions.Cancelled: + click.echo("Unapair aborted on device.") + except exceptions.TrezorException as e: + click.echo(f"Unpair failed: {e}") + sys.exit(3) diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py index d2a4de0798..48281ff058 100644 --- a/python/src/trezorlib/messages.py +++ b/python/src/trezorlib/messages.py @@ -465,6 +465,7 @@ class MessageType(IntEnum): ProdTestT1 = 32 EraseBonds = 8006 Disconnect = 8007 + Unpair = 8008 GetPublicKey = 11 PublicKey = 12 SignTx = 15 @@ -2214,6 +2215,10 @@ class EraseBonds(protobuf.MessageType): MESSAGE_WIRE_TYPE = 8006 +class Unpair(protobuf.MessageType): + MESSAGE_WIRE_TYPE = 8008 + + class Disconnect(protobuf.MessageType): MESSAGE_WIRE_TYPE = 8007 diff --git a/rust/trezor-client/src/messages/generated.rs b/rust/trezor-client/src/messages/generated.rs index 7635f7d9a1..420d09c003 100644 --- a/rust/trezor-client/src/messages/generated.rs +++ b/rust/trezor-client/src/messages/generated.rs @@ -62,6 +62,7 @@ trezor_message_impl! { ProdTestT1 => MessageType_ProdTestT1, EraseBonds => MessageType_EraseBonds, Disconnect => MessageType_Disconnect, + Unpair => MessageType_Unpair, CipherKeyValue => MessageType_CipherKeyValue, CipheredKeyValue => MessageType_CipheredKeyValue, SignIdentity => MessageType_SignIdentity, diff --git a/rust/trezor-client/src/protos/generated/messages.rs b/rust/trezor-client/src/protos/generated/messages.rs index fae64f45a4..31573c6f85 100644 --- a/rust/trezor-client/src/protos/generated/messages.rs +++ b/rust/trezor-client/src/protos/generated/messages.rs @@ -154,6 +154,8 @@ pub enum MessageType { MessageType_EraseBonds = 8006, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_Disconnect) MessageType_Disconnect = 8007, + // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_Unpair) + MessageType_Unpair = 8008, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_GetPublicKey) MessageType_GetPublicKey = 11, // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_PublicKey) @@ -608,6 +610,7 @@ impl ::protobuf::Enum for MessageType { 32 => ::std::option::Option::Some(MessageType::MessageType_ProdTestT1), 8006 => ::std::option::Option::Some(MessageType::MessageType_EraseBonds), 8007 => ::std::option::Option::Some(MessageType::MessageType_Disconnect), + 8008 => ::std::option::Option::Some(MessageType::MessageType_Unpair), 11 => ::std::option::Option::Some(MessageType::MessageType_GetPublicKey), 12 => ::std::option::Option::Some(MessageType::MessageType_PublicKey), 15 => ::std::option::Option::Some(MessageType::MessageType_SignTx), @@ -867,6 +870,7 @@ impl ::protobuf::Enum for MessageType { "MessageType_ProdTestT1" => ::std::option::Option::Some(MessageType::MessageType_ProdTestT1), "MessageType_EraseBonds" => ::std::option::Option::Some(MessageType::MessageType_EraseBonds), "MessageType_Disconnect" => ::std::option::Option::Some(MessageType::MessageType_Disconnect), + "MessageType_Unpair" => ::std::option::Option::Some(MessageType::MessageType_Unpair), "MessageType_GetPublicKey" => ::std::option::Option::Some(MessageType::MessageType_GetPublicKey), "MessageType_PublicKey" => ::std::option::Option::Some(MessageType::MessageType_PublicKey), "MessageType_SignTx" => ::std::option::Option::Some(MessageType::MessageType_SignTx), @@ -1125,6 +1129,7 @@ impl ::protobuf::Enum for MessageType { MessageType::MessageType_ProdTestT1, MessageType::MessageType_EraseBonds, MessageType::MessageType_Disconnect, + MessageType::MessageType_Unpair, MessageType::MessageType_GetPublicKey, MessageType::MessageType_PublicKey, MessageType::MessageType_SignTx, @@ -1389,196 +1394,197 @@ impl ::protobuf::EnumFull for MessageType { MessageType::MessageType_ProdTestT1 => 60, MessageType::MessageType_EraseBonds => 61, MessageType::MessageType_Disconnect => 62, - MessageType::MessageType_GetPublicKey => 63, - MessageType::MessageType_PublicKey => 64, - MessageType::MessageType_SignTx => 65, - MessageType::MessageType_TxRequest => 66, - MessageType::MessageType_TxAck => 67, - MessageType::MessageType_GetAddress => 68, - MessageType::MessageType_Address => 69, - MessageType::MessageType_TxAckPaymentRequest => 70, - MessageType::MessageType_SignMessage => 71, - MessageType::MessageType_VerifyMessage => 72, - MessageType::MessageType_MessageSignature => 73, - MessageType::MessageType_GetOwnershipId => 74, - MessageType::MessageType_OwnershipId => 75, - MessageType::MessageType_GetOwnershipProof => 76, - MessageType::MessageType_OwnershipProof => 77, - MessageType::MessageType_AuthorizeCoinJoin => 78, - MessageType::MessageType_CipherKeyValue => 79, - MessageType::MessageType_CipheredKeyValue => 80, - MessageType::MessageType_SignIdentity => 81, - MessageType::MessageType_SignedIdentity => 82, - MessageType::MessageType_GetECDHSessionKey => 83, - MessageType::MessageType_ECDHSessionKey => 84, - MessageType::MessageType_DebugLinkDecision => 85, - MessageType::MessageType_DebugLinkGetState => 86, - MessageType::MessageType_DebugLinkState => 87, - MessageType::MessageType_DebugLinkStop => 88, - MessageType::MessageType_DebugLinkLog => 89, - MessageType::MessageType_DebugLinkMemoryRead => 90, - MessageType::MessageType_DebugLinkMemory => 91, - MessageType::MessageType_DebugLinkMemoryWrite => 92, - MessageType::MessageType_DebugLinkFlashErase => 93, - MessageType::MessageType_DebugLinkLayout => 94, - MessageType::MessageType_DebugLinkReseedRandom => 95, - MessageType::MessageType_DebugLinkRecordScreen => 96, - MessageType::MessageType_DebugLinkEraseSdCard => 97, - MessageType::MessageType_DebugLinkWatchLayout => 98, - MessageType::MessageType_DebugLinkResetDebugEvents => 99, - MessageType::MessageType_DebugLinkOptigaSetSecMax => 100, - MessageType::MessageType_EthereumGetPublicKey => 101, - MessageType::MessageType_EthereumPublicKey => 102, - MessageType::MessageType_EthereumGetAddress => 103, - MessageType::MessageType_EthereumAddress => 104, - MessageType::MessageType_EthereumSignTx => 105, - MessageType::MessageType_EthereumSignTxEIP1559 => 106, - MessageType::MessageType_EthereumTxRequest => 107, - MessageType::MessageType_EthereumTxAck => 108, - MessageType::MessageType_EthereumSignMessage => 109, - MessageType::MessageType_EthereumVerifyMessage => 110, - MessageType::MessageType_EthereumMessageSignature => 111, - MessageType::MessageType_EthereumSignTypedData => 112, - MessageType::MessageType_EthereumTypedDataStructRequest => 113, - MessageType::MessageType_EthereumTypedDataStructAck => 114, - MessageType::MessageType_EthereumTypedDataValueRequest => 115, - MessageType::MessageType_EthereumTypedDataValueAck => 116, - MessageType::MessageType_EthereumTypedDataSignature => 117, - MessageType::MessageType_EthereumSignTypedHash => 118, - MessageType::MessageType_NEMGetAddress => 119, - MessageType::MessageType_NEMAddress => 120, - MessageType::MessageType_NEMSignTx => 121, - MessageType::MessageType_NEMSignedTx => 122, - MessageType::MessageType_NEMDecryptMessage => 123, - MessageType::MessageType_NEMDecryptedMessage => 124, - MessageType::MessageType_TezosGetAddress => 125, - MessageType::MessageType_TezosAddress => 126, - MessageType::MessageType_TezosSignTx => 127, - MessageType::MessageType_TezosSignedTx => 128, - MessageType::MessageType_TezosGetPublicKey => 129, - MessageType::MessageType_TezosPublicKey => 130, - MessageType::MessageType_StellarSignTx => 131, - MessageType::MessageType_StellarTxOpRequest => 132, - MessageType::MessageType_StellarGetAddress => 133, - MessageType::MessageType_StellarAddress => 134, - MessageType::MessageType_StellarCreateAccountOp => 135, - MessageType::MessageType_StellarPaymentOp => 136, - MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 137, - MessageType::MessageType_StellarManageSellOfferOp => 138, - MessageType::MessageType_StellarCreatePassiveSellOfferOp => 139, - MessageType::MessageType_StellarSetOptionsOp => 140, - MessageType::MessageType_StellarChangeTrustOp => 141, - MessageType::MessageType_StellarAllowTrustOp => 142, - MessageType::MessageType_StellarAccountMergeOp => 143, - MessageType::MessageType_StellarManageDataOp => 144, - MessageType::MessageType_StellarBumpSequenceOp => 145, - MessageType::MessageType_StellarManageBuyOfferOp => 146, - MessageType::MessageType_StellarPathPaymentStrictSendOp => 147, - MessageType::MessageType_StellarClaimClaimableBalanceOp => 148, - MessageType::MessageType_StellarSignedTx => 149, - MessageType::MessageType_CardanoGetPublicKey => 150, - MessageType::MessageType_CardanoPublicKey => 151, - MessageType::MessageType_CardanoGetAddress => 152, - MessageType::MessageType_CardanoAddress => 153, - MessageType::MessageType_CardanoTxItemAck => 154, - MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 155, - MessageType::MessageType_CardanoTxWitnessRequest => 156, - MessageType::MessageType_CardanoTxWitnessResponse => 157, - MessageType::MessageType_CardanoTxHostAck => 158, - MessageType::MessageType_CardanoTxBodyHash => 159, - MessageType::MessageType_CardanoSignTxFinished => 160, - MessageType::MessageType_CardanoSignTxInit => 161, - MessageType::MessageType_CardanoTxInput => 162, - MessageType::MessageType_CardanoTxOutput => 163, - MessageType::MessageType_CardanoAssetGroup => 164, - MessageType::MessageType_CardanoToken => 165, - MessageType::MessageType_CardanoTxCertificate => 166, - MessageType::MessageType_CardanoTxWithdrawal => 167, - MessageType::MessageType_CardanoTxAuxiliaryData => 168, - MessageType::MessageType_CardanoPoolOwner => 169, - MessageType::MessageType_CardanoPoolRelayParameters => 170, - MessageType::MessageType_CardanoGetNativeScriptHash => 171, - MessageType::MessageType_CardanoNativeScriptHash => 172, - MessageType::MessageType_CardanoTxMint => 173, - MessageType::MessageType_CardanoTxCollateralInput => 174, - MessageType::MessageType_CardanoTxRequiredSigner => 175, - MessageType::MessageType_CardanoTxInlineDatumChunk => 176, - MessageType::MessageType_CardanoTxReferenceScriptChunk => 177, - MessageType::MessageType_CardanoTxReferenceInput => 178, - MessageType::MessageType_RippleGetAddress => 179, - MessageType::MessageType_RippleAddress => 180, - MessageType::MessageType_RippleSignTx => 181, - MessageType::MessageType_RippleSignedTx => 182, - MessageType::MessageType_MoneroTransactionInitRequest => 183, - MessageType::MessageType_MoneroTransactionInitAck => 184, - MessageType::MessageType_MoneroTransactionSetInputRequest => 185, - MessageType::MessageType_MoneroTransactionSetInputAck => 186, - MessageType::MessageType_MoneroTransactionInputViniRequest => 187, - MessageType::MessageType_MoneroTransactionInputViniAck => 188, - MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 189, - MessageType::MessageType_MoneroTransactionAllInputsSetAck => 190, - MessageType::MessageType_MoneroTransactionSetOutputRequest => 191, - MessageType::MessageType_MoneroTransactionSetOutputAck => 192, - MessageType::MessageType_MoneroTransactionAllOutSetRequest => 193, - MessageType::MessageType_MoneroTransactionAllOutSetAck => 194, - MessageType::MessageType_MoneroTransactionSignInputRequest => 195, - MessageType::MessageType_MoneroTransactionSignInputAck => 196, - MessageType::MessageType_MoneroTransactionFinalRequest => 197, - MessageType::MessageType_MoneroTransactionFinalAck => 198, - MessageType::MessageType_MoneroKeyImageExportInitRequest => 199, - MessageType::MessageType_MoneroKeyImageExportInitAck => 200, - MessageType::MessageType_MoneroKeyImageSyncStepRequest => 201, - MessageType::MessageType_MoneroKeyImageSyncStepAck => 202, - MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 203, - MessageType::MessageType_MoneroKeyImageSyncFinalAck => 204, - MessageType::MessageType_MoneroGetAddress => 205, - MessageType::MessageType_MoneroAddress => 206, - MessageType::MessageType_MoneroGetWatchKey => 207, - MessageType::MessageType_MoneroWatchKey => 208, - MessageType::MessageType_DebugMoneroDiagRequest => 209, - MessageType::MessageType_DebugMoneroDiagAck => 210, - MessageType::MessageType_MoneroGetTxKeyRequest => 211, - MessageType::MessageType_MoneroGetTxKeyAck => 212, - MessageType::MessageType_MoneroLiveRefreshStartRequest => 213, - MessageType::MessageType_MoneroLiveRefreshStartAck => 214, - MessageType::MessageType_MoneroLiveRefreshStepRequest => 215, - MessageType::MessageType_MoneroLiveRefreshStepAck => 216, - MessageType::MessageType_MoneroLiveRefreshFinalRequest => 217, - MessageType::MessageType_MoneroLiveRefreshFinalAck => 218, - MessageType::MessageType_EosGetPublicKey => 219, - MessageType::MessageType_EosPublicKey => 220, - MessageType::MessageType_EosSignTx => 221, - MessageType::MessageType_EosTxActionRequest => 222, - MessageType::MessageType_EosTxActionAck => 223, - MessageType::MessageType_EosSignedTx => 224, - MessageType::MessageType_BinanceGetAddress => 225, - MessageType::MessageType_BinanceAddress => 226, - MessageType::MessageType_BinanceGetPublicKey => 227, - MessageType::MessageType_BinancePublicKey => 228, - MessageType::MessageType_BinanceSignTx => 229, - MessageType::MessageType_BinanceTxRequest => 230, - MessageType::MessageType_BinanceTransferMsg => 231, - MessageType::MessageType_BinanceOrderMsg => 232, - MessageType::MessageType_BinanceCancelMsg => 233, - MessageType::MessageType_BinanceSignedTx => 234, - MessageType::MessageType_WebAuthnListResidentCredentials => 235, - MessageType::MessageType_WebAuthnCredentials => 236, - MessageType::MessageType_WebAuthnAddResidentCredential => 237, - MessageType::MessageType_WebAuthnRemoveResidentCredential => 238, - MessageType::MessageType_SolanaGetPublicKey => 239, - MessageType::MessageType_SolanaPublicKey => 240, - MessageType::MessageType_SolanaGetAddress => 241, - MessageType::MessageType_SolanaAddress => 242, - MessageType::MessageType_SolanaSignTx => 243, - MessageType::MessageType_SolanaTxSignature => 244, - MessageType::MessageType_NostrGetPubkey => 245, - MessageType::MessageType_NostrPubkey => 246, - MessageType::MessageType_NostrSignEvent => 247, - MessageType::MessageType_NostrEventSignature => 248, - MessageType::MessageType_BenchmarkListNames => 249, - MessageType::MessageType_BenchmarkNames => 250, - MessageType::MessageType_BenchmarkRun => 251, - MessageType::MessageType_BenchmarkResult => 252, + MessageType::MessageType_Unpair => 63, + MessageType::MessageType_GetPublicKey => 64, + MessageType::MessageType_PublicKey => 65, + MessageType::MessageType_SignTx => 66, + MessageType::MessageType_TxRequest => 67, + MessageType::MessageType_TxAck => 68, + MessageType::MessageType_GetAddress => 69, + MessageType::MessageType_Address => 70, + MessageType::MessageType_TxAckPaymentRequest => 71, + MessageType::MessageType_SignMessage => 72, + MessageType::MessageType_VerifyMessage => 73, + MessageType::MessageType_MessageSignature => 74, + MessageType::MessageType_GetOwnershipId => 75, + MessageType::MessageType_OwnershipId => 76, + MessageType::MessageType_GetOwnershipProof => 77, + MessageType::MessageType_OwnershipProof => 78, + MessageType::MessageType_AuthorizeCoinJoin => 79, + MessageType::MessageType_CipherKeyValue => 80, + MessageType::MessageType_CipheredKeyValue => 81, + MessageType::MessageType_SignIdentity => 82, + MessageType::MessageType_SignedIdentity => 83, + MessageType::MessageType_GetECDHSessionKey => 84, + MessageType::MessageType_ECDHSessionKey => 85, + MessageType::MessageType_DebugLinkDecision => 86, + MessageType::MessageType_DebugLinkGetState => 87, + MessageType::MessageType_DebugLinkState => 88, + MessageType::MessageType_DebugLinkStop => 89, + MessageType::MessageType_DebugLinkLog => 90, + MessageType::MessageType_DebugLinkMemoryRead => 91, + MessageType::MessageType_DebugLinkMemory => 92, + MessageType::MessageType_DebugLinkMemoryWrite => 93, + MessageType::MessageType_DebugLinkFlashErase => 94, + MessageType::MessageType_DebugLinkLayout => 95, + MessageType::MessageType_DebugLinkReseedRandom => 96, + MessageType::MessageType_DebugLinkRecordScreen => 97, + MessageType::MessageType_DebugLinkEraseSdCard => 98, + MessageType::MessageType_DebugLinkWatchLayout => 99, + MessageType::MessageType_DebugLinkResetDebugEvents => 100, + MessageType::MessageType_DebugLinkOptigaSetSecMax => 101, + MessageType::MessageType_EthereumGetPublicKey => 102, + MessageType::MessageType_EthereumPublicKey => 103, + MessageType::MessageType_EthereumGetAddress => 104, + MessageType::MessageType_EthereumAddress => 105, + MessageType::MessageType_EthereumSignTx => 106, + MessageType::MessageType_EthereumSignTxEIP1559 => 107, + MessageType::MessageType_EthereumTxRequest => 108, + MessageType::MessageType_EthereumTxAck => 109, + MessageType::MessageType_EthereumSignMessage => 110, + MessageType::MessageType_EthereumVerifyMessage => 111, + MessageType::MessageType_EthereumMessageSignature => 112, + MessageType::MessageType_EthereumSignTypedData => 113, + MessageType::MessageType_EthereumTypedDataStructRequest => 114, + MessageType::MessageType_EthereumTypedDataStructAck => 115, + MessageType::MessageType_EthereumTypedDataValueRequest => 116, + MessageType::MessageType_EthereumTypedDataValueAck => 117, + MessageType::MessageType_EthereumTypedDataSignature => 118, + MessageType::MessageType_EthereumSignTypedHash => 119, + MessageType::MessageType_NEMGetAddress => 120, + MessageType::MessageType_NEMAddress => 121, + MessageType::MessageType_NEMSignTx => 122, + MessageType::MessageType_NEMSignedTx => 123, + MessageType::MessageType_NEMDecryptMessage => 124, + MessageType::MessageType_NEMDecryptedMessage => 125, + MessageType::MessageType_TezosGetAddress => 126, + MessageType::MessageType_TezosAddress => 127, + MessageType::MessageType_TezosSignTx => 128, + MessageType::MessageType_TezosSignedTx => 129, + MessageType::MessageType_TezosGetPublicKey => 130, + MessageType::MessageType_TezosPublicKey => 131, + MessageType::MessageType_StellarSignTx => 132, + MessageType::MessageType_StellarTxOpRequest => 133, + MessageType::MessageType_StellarGetAddress => 134, + MessageType::MessageType_StellarAddress => 135, + MessageType::MessageType_StellarCreateAccountOp => 136, + MessageType::MessageType_StellarPaymentOp => 137, + MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 138, + MessageType::MessageType_StellarManageSellOfferOp => 139, + MessageType::MessageType_StellarCreatePassiveSellOfferOp => 140, + MessageType::MessageType_StellarSetOptionsOp => 141, + MessageType::MessageType_StellarChangeTrustOp => 142, + MessageType::MessageType_StellarAllowTrustOp => 143, + MessageType::MessageType_StellarAccountMergeOp => 144, + MessageType::MessageType_StellarManageDataOp => 145, + MessageType::MessageType_StellarBumpSequenceOp => 146, + MessageType::MessageType_StellarManageBuyOfferOp => 147, + MessageType::MessageType_StellarPathPaymentStrictSendOp => 148, + MessageType::MessageType_StellarClaimClaimableBalanceOp => 149, + MessageType::MessageType_StellarSignedTx => 150, + MessageType::MessageType_CardanoGetPublicKey => 151, + MessageType::MessageType_CardanoPublicKey => 152, + MessageType::MessageType_CardanoGetAddress => 153, + MessageType::MessageType_CardanoAddress => 154, + MessageType::MessageType_CardanoTxItemAck => 155, + MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 156, + MessageType::MessageType_CardanoTxWitnessRequest => 157, + MessageType::MessageType_CardanoTxWitnessResponse => 158, + MessageType::MessageType_CardanoTxHostAck => 159, + MessageType::MessageType_CardanoTxBodyHash => 160, + MessageType::MessageType_CardanoSignTxFinished => 161, + MessageType::MessageType_CardanoSignTxInit => 162, + MessageType::MessageType_CardanoTxInput => 163, + MessageType::MessageType_CardanoTxOutput => 164, + MessageType::MessageType_CardanoAssetGroup => 165, + MessageType::MessageType_CardanoToken => 166, + MessageType::MessageType_CardanoTxCertificate => 167, + MessageType::MessageType_CardanoTxWithdrawal => 168, + MessageType::MessageType_CardanoTxAuxiliaryData => 169, + MessageType::MessageType_CardanoPoolOwner => 170, + MessageType::MessageType_CardanoPoolRelayParameters => 171, + MessageType::MessageType_CardanoGetNativeScriptHash => 172, + MessageType::MessageType_CardanoNativeScriptHash => 173, + MessageType::MessageType_CardanoTxMint => 174, + MessageType::MessageType_CardanoTxCollateralInput => 175, + MessageType::MessageType_CardanoTxRequiredSigner => 176, + MessageType::MessageType_CardanoTxInlineDatumChunk => 177, + MessageType::MessageType_CardanoTxReferenceScriptChunk => 178, + MessageType::MessageType_CardanoTxReferenceInput => 179, + MessageType::MessageType_RippleGetAddress => 180, + MessageType::MessageType_RippleAddress => 181, + MessageType::MessageType_RippleSignTx => 182, + MessageType::MessageType_RippleSignedTx => 183, + MessageType::MessageType_MoneroTransactionInitRequest => 184, + MessageType::MessageType_MoneroTransactionInitAck => 185, + MessageType::MessageType_MoneroTransactionSetInputRequest => 186, + MessageType::MessageType_MoneroTransactionSetInputAck => 187, + MessageType::MessageType_MoneroTransactionInputViniRequest => 188, + MessageType::MessageType_MoneroTransactionInputViniAck => 189, + MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 190, + MessageType::MessageType_MoneroTransactionAllInputsSetAck => 191, + MessageType::MessageType_MoneroTransactionSetOutputRequest => 192, + MessageType::MessageType_MoneroTransactionSetOutputAck => 193, + MessageType::MessageType_MoneroTransactionAllOutSetRequest => 194, + MessageType::MessageType_MoneroTransactionAllOutSetAck => 195, + MessageType::MessageType_MoneroTransactionSignInputRequest => 196, + MessageType::MessageType_MoneroTransactionSignInputAck => 197, + MessageType::MessageType_MoneroTransactionFinalRequest => 198, + MessageType::MessageType_MoneroTransactionFinalAck => 199, + MessageType::MessageType_MoneroKeyImageExportInitRequest => 200, + MessageType::MessageType_MoneroKeyImageExportInitAck => 201, + MessageType::MessageType_MoneroKeyImageSyncStepRequest => 202, + MessageType::MessageType_MoneroKeyImageSyncStepAck => 203, + MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 204, + MessageType::MessageType_MoneroKeyImageSyncFinalAck => 205, + MessageType::MessageType_MoneroGetAddress => 206, + MessageType::MessageType_MoneroAddress => 207, + MessageType::MessageType_MoneroGetWatchKey => 208, + MessageType::MessageType_MoneroWatchKey => 209, + MessageType::MessageType_DebugMoneroDiagRequest => 210, + MessageType::MessageType_DebugMoneroDiagAck => 211, + MessageType::MessageType_MoneroGetTxKeyRequest => 212, + MessageType::MessageType_MoneroGetTxKeyAck => 213, + MessageType::MessageType_MoneroLiveRefreshStartRequest => 214, + MessageType::MessageType_MoneroLiveRefreshStartAck => 215, + MessageType::MessageType_MoneroLiveRefreshStepRequest => 216, + MessageType::MessageType_MoneroLiveRefreshStepAck => 217, + MessageType::MessageType_MoneroLiveRefreshFinalRequest => 218, + MessageType::MessageType_MoneroLiveRefreshFinalAck => 219, + MessageType::MessageType_EosGetPublicKey => 220, + MessageType::MessageType_EosPublicKey => 221, + MessageType::MessageType_EosSignTx => 222, + MessageType::MessageType_EosTxActionRequest => 223, + MessageType::MessageType_EosTxActionAck => 224, + MessageType::MessageType_EosSignedTx => 225, + MessageType::MessageType_BinanceGetAddress => 226, + MessageType::MessageType_BinanceAddress => 227, + MessageType::MessageType_BinanceGetPublicKey => 228, + MessageType::MessageType_BinancePublicKey => 229, + MessageType::MessageType_BinanceSignTx => 230, + MessageType::MessageType_BinanceTxRequest => 231, + MessageType::MessageType_BinanceTransferMsg => 232, + MessageType::MessageType_BinanceOrderMsg => 233, + MessageType::MessageType_BinanceCancelMsg => 234, + MessageType::MessageType_BinanceSignedTx => 235, + MessageType::MessageType_WebAuthnListResidentCredentials => 236, + MessageType::MessageType_WebAuthnCredentials => 237, + MessageType::MessageType_WebAuthnAddResidentCredential => 238, + MessageType::MessageType_WebAuthnRemoveResidentCredential => 239, + MessageType::MessageType_SolanaGetPublicKey => 240, + MessageType::MessageType_SolanaPublicKey => 241, + MessageType::MessageType_SolanaGetAddress => 242, + MessageType::MessageType_SolanaAddress => 243, + MessageType::MessageType_SolanaSignTx => 244, + MessageType::MessageType_SolanaTxSignature => 245, + MessageType::MessageType_NostrGetPubkey => 246, + MessageType::MessageType_NostrPubkey => 247, + MessageType::MessageType_NostrSignEvent => 248, + MessageType::MessageType_NostrEventSignature => 249, + MessageType::MessageType_BenchmarkListNames => 250, + MessageType::MessageType_BenchmarkNames => 251, + MessageType::MessageType_BenchmarkRun => 252, + MessageType::MessageType_BenchmarkResult => 253, }; Self::enum_descriptor().value_by_index(index) } @@ -1597,7 +1603,7 @@ impl MessageType { } static file_descriptor_proto_data: &'static [u8] = b"\ - \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xd4W\ + \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xf7W\ \n\x0bMessageType\x12(\n\x16MessageType_Initialize\x10\0\x1a\x0c\x80\xa6\ \x1d\x01\xb0\xb5\x18\x01\x90\xb5\x18\x01\x12\x1e\n\x10MessageType_Ping\ \x10\x01\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12%\n\x13MessageType_S\ @@ -1673,222 +1679,223 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x12(\n\x16MessageType_ProdTestT1\x10\x20\x1a\x0c\xb8\xb5\x18\x01\x80\ \xa6\x1d\x01\x90\xb5\x18\x01\x12%\n\x16MessageType_EraseBonds\x10\xc6>\ \x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12%\n\x16MessageType_Disconnec\ - t\x10\xc7>\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12&\n\x18MessageType\ - _GetPublicKey\x10\x0b\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12#\n\x15\ - MessageType_PublicKey\x10\x0c\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\ - \x12\x20\n\x12MessageType_SignTx\x10\x0f\x1a\x08\x80\xa6\x1d\x01\x90\xb5\ - \x18\x01\x12#\n\x15MessageType_TxRequest\x10\x15\x1a\x08\x80\xa6\x1d\x01\ - \x98\xb5\x18\x01\x12\x1f\n\x11MessageType_TxAck\x10\x16\x1a\x08\x80\xa6\ - \x1d\x01\x90\xb5\x18\x01\x12$\n\x16MessageType_GetAddress\x10\x1d\x1a\ - \x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12!\n\x13MessageType_Address\x10\ - \x1e\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12)\n\x1fMessageType_TxAck\ - PaymentRequest\x10%\x1a\x04\x90\xb5\x18\x01\x12%\n\x17MessageType_SignMe\ - ssage\x10&\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12'\n\x19MessageType\ - _VerifyMessage\x10'\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\x1cMe\ - ssageType_MessageSignature\x10(\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\ - \x12(\n\x1aMessageType_GetOwnershipId\x10+\x1a\x08\x80\xa6\x1d\x01\x90\ - \xb5\x18\x01\x12%\n\x17MessageType_OwnershipId\x10,\x1a\x08\x80\xa6\x1d\ - \x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetOwnershipProof\x101\x1a\ - \x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_OwnershipProo\ - f\x102\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_Aut\ - horizeCoinJoin\x103\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMe\ - ssageType_CipherKeyValue\x10\x17\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\ - \x12*\n\x1cMessageType_CipheredKeyValue\x100\x1a\x08\x80\xa6\x1d\x01\x98\ - \xb5\x18\x01\x12&\n\x18MessageType_SignIdentity\x105\x1a\x08\x80\xa6\x1d\ - \x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_SignedIdentity\x106\x1a\x08\ - \x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetECDHSessionKey\ - \x10=\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_ECDH\ - SessionKey\x10>\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x123\n\x1dMessag\ - eType_DebugLinkDecision\x10d\x1a\x10\xc0\xb5\x18\x01\xb0\xb5\x18\x01\x80\ - \xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x1dMessageType_DebugLinkGetState\x10\ - e\x1a\x0c\x80\xa6\x1d\x01\xb0\xb5\x18\x01\xa0\xb5\x18\x01\x12(\n\x1aMess\ - ageType_DebugLinkState\x10f\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12'\ - \n\x19MessageType_DebugLinkStop\x10g\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\ - \x01\x12&\n\x18MessageType_DebugLinkLog\x10h\x1a\x08\x80\xa6\x1d\x01\xa8\ - \xb5\x18\x01\x12-\n\x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x08\x80\ - \xa6\x1d\x01\xa0\xb5\x18\x01\x12)\n\x1bMessageType_DebugLinkMemory\x10o\ - \x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12.\n\x20MessageType_DebugLink\ - MemoryWrite\x10p\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12-\n\x1fMessa\ - geType_DebugLinkFlashErase\x10q\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\ - \x12*\n\x1bMessageType_DebugLinkLayout\x10\xa9F\x1a\x08\x80\xa6\x1d\x01\ - \xa8\xb5\x18\x01\x120\n!MessageType_DebugLinkReseedRandom\x10\xaaF\x1a\ - \x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x120\n!MessageType_DebugLinkRecordS\ - creen\x10\xabF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20Message\ - Type_DebugLinkEraseSdCard\x10\xadF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\ - \x01\x12/\n\x20MessageType_DebugLinkWatchLayout\x10\xaeF\x1a\x08\x80\xa6\ - \x1d\x01\xa0\xb5\x18\x01\x124\n%MessageType_DebugLinkResetDebugEvents\ - \x10\xafF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x123\n$MessageType_Deb\ - ugLinkOptigaSetSecMax\x10\xb0F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\ - \x12+\n\x20MessageType_EthereumGetPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\ - \x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\x10\xc3\x03\x1a\x04\x98\ - \xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x108\x1a\x04\x90\ - \xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x109\x1a\x04\x98\xb5\ - \x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\ - \x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\x03\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\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\xb5\ - \x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\x04\x90\xb5\ - \x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\x1a\x04\x98\ - \xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\xd0\x03\x1a\ - \x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStructRequest\ - \x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_EthereumTypedDat\ - aStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Ethere\ - umTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\x120\n%Messa\ - geType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\xb5\x18\x01\x12\ - 1\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\x1a\x04\x98\xb5\ - \x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\xd6\x03\x1a\x04\ - \x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10C\x1a\x04\x90\ - \xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\x04\x98\xb5\ - \x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\xb5\x18\x01\ - \x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\x01\x12'\n\ - \x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\x01\x12)\n\ - \x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\x01\x12&\n\ - \x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\x18\x01\x12#\ - \n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\x18\x01\x12\"\ - \n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\x18\x01\x12$\n\ - \x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\ - \x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\xb5\x18\x01\ - \x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\x98\xb5\x18\ - \x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\x90\xb5\x18\ - \x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\x1a\x04\x98\ - \xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\x01\x1a\x04\ - \x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\xd0\x01\x1a\ - \x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccountOp\x10\xd2\ - \x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPaymentOp\x10\ - \xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPathPaymentSt\ - rictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_Ste\ - llarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\n+Message\ - Type_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\xb5\x18\x01\ - \x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\x04\x90\xb5\ - \x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\x01\x1a\x04\ - \x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\x10\xd9\x01\ - \x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMergeOp\x10\ - \xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarManageData\ - Op\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarBumpSeq\ - uenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_StellarMa\ - nageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_St\ - ellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\x01\x125\n*\ - MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\x04\x90\xb5\ - \x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\x1a\x04\x98\ - \xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\xb1\x02\x1a\ - \x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\x10\xb2\x02\ - \x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAddress\x10\xb3\ - \x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAddress\x10\ - \xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoTxItemAck\ - \x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoTxAuxilia\ - ryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#MessageType_\ - CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\ - geType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\x01\x12'\ - \n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\x18\x01\ - \x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\xb5\x18\ - \x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\x04\x98\ - \xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\x1a\x04\ - \x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\x02\x1a\ - \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\xc2\x02\ - \x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\x10\xc3\ - \x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\x10\xc4\ - \x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCertificate\ - \x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_CardanoTxWith\ - drawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_CardanoTx\ - AuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_\ - CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&MessageType_\ - CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Me\ - ssageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\xb5\x18\x01\ - \x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\x04\x98\xb5\ - \x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\x04\x90\xb5\ - \x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\x02\x1a\x04\ - \x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\x10\xce\x02\ - \x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineDatumChunk\ - \x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_CardanoTxReferen\ - ceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_Car\ - danoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\ - geType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Me\ - ssageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12#\n\x18Me\ - ssageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMes\ - sageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x123\n(Messa\ - geType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\x18\x01\ - \x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\x98\xb5\ - \x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\xf7\x03\ - \x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSetInputAck\ - \x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\ - nInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\ - _MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\x01\x12;\ - \n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\x1a\x04\ - \x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSetAck\x10\ - \xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSet\ - OutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Mon\ - eroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\x128\n-Me\ - ssageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\x04\x98\xb5\ - \x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\x10\x82\x04\ - \x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSignInputRe\ - quest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTrans\ - actionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageTyp\ - e_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\x18\x01\x120\ - \n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\x04\x98\xb5\x18\ - \x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\x10\x92\x04\x1a\ - \x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageExportInitAck\x10\ - \x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroKeyImageSyncSt\ - epRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroK\ - eyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\x125\n*MessageTyp\ - e_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\x98\xb5\x18\x01\x12\ - 1\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\x04\x1a\x04\x98\xb5\ - \x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\x9c\x04\x1a\x04\x90\ - \xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\x9d\x04\x1a\x04\x98\ - \xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\x10\x9e\x04\x1a\x04\ - \x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKey\x10\x9f\x04\x1a\ - \x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDiagRequest\x10\xa2\ - \x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_DebugMoneroDiagAck\ - \x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_MoneroGetTxKeyRe\ - quest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGe\ - tTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroL\ - iveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\x120\n%Messag\ - eType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\xb5\x18\x01\x123\ - \n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\x1a\x04\x90\xb5\ - \x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\xab\x04\x1a\x04\ - \x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFinalRequest\x10\ - \xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroLiveRefreshFin\ - alAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessageType_EosGetPu\ - blicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_EosPub\ - licKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15MessageType_EosS\ - ignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_EosTxAct\ - ionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_Eos\ - TxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_E\ - osSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_Bin\ - anceGetAddress\x10\xbc\x05\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType\ - _BinanceAddress\x10\xbd\x05\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageTyp\ - e_BinanceGetPublicKey\x10\xbe\x05\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMess\ - ageType_BinancePublicKey\x10\xbf\x05\x1a\x04\x98\xb5\x18\x01\x12$\n\x19M\ - essageType_BinanceSignTx\x10\xc0\x05\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cM\ - essageType_BinanceTxRequest\x10\xc1\x05\x1a\x04\x98\xb5\x18\x01\x12)\n\ - \x1eMessageType_BinanceTransferMsg\x10\xc2\x05\x1a\x04\x90\xb5\x18\x01\ - \x12&\n\x1bMessageType_BinanceOrderMsg\x10\xc3\x05\x1a\x04\x90\xb5\x18\ - \x01\x12'\n\x1cMessageType_BinanceCancelMsg\x10\xc4\x05\x1a\x04\x90\xb5\ - \x18\x01\x12&\n\x1bMessageType_BinanceSignedTx\x10\xc5\x05\x1a\x04\x98\ - \xb5\x18\x01\x126\n+MessageType_WebAuthnListResidentCredentials\x10\xa0\ - \x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_WebAuthnCredentials\ - \x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_WebAuthnAddResid\ - entCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\x01\x127\n,MessageType_Web\ - AuthnRemoveResidentCredential\x10\xa3\x06\x1a\x04\x90\xb5\x18\x01\x12)\n\ - \x1eMessageType_SolanaGetPublicKey\x10\x84\x07\x1a\x04\x90\xb5\x18\x01\ - \x12&\n\x1bMessageType_SolanaPublicKey\x10\x85\x07\x1a\x04\x98\xb5\x18\ - \x01\x12'\n\x1cMessageType_SolanaGetAddress\x10\x86\x07\x1a\x04\x90\xb5\ - \x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\x87\x07\x1a\x04\x98\xb5\ - \x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\x07\x1a\x04\x90\xb5\ - \x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\x89\x07\x1a\x04\x98\ - \xb5\x18\x01\x12%\n\x1aMessageType_NostrGetPubkey\x10\xd1\x0f\x1a\x04\ - \x90\xb5\x18\x01\x12\"\n\x17MessageType_NostrPubkey\x10\xd2\x0f\x1a\x04\ - \x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrSignEvent\x10\xd3\x0f\x1a\ - \x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_NostrEventSignature\x10\xd4\ - \x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageType_BenchmarkListNames\ - \x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageType_BenchmarkNames\ - \x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageType_BenchmarkRun\x10\ - \x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_BenchmarkResult\x10\ - \x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\\\"\ - \x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\ - \xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\ - \xb8\x02\"\x06\x08\xe8\x07\x10\xcb\x08B8\n#com.satoshilabs.trezor.lib.pr\ - otobufB\rTrezorMessage\x80\xa6\x1d\x01\ + t\x10\xc7>\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12!\n\x12MessageType\ + _Unpair\x10\xc8>\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12&\n\x18Messa\ + geType_GetPublicKey\x10\x0b\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12#\ + \n\x15MessageType_PublicKey\x10\x0c\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\ + \x01\x12\x20\n\x12MessageType_SignTx\x10\x0f\x1a\x08\x80\xa6\x1d\x01\x90\ + \xb5\x18\x01\x12#\n\x15MessageType_TxRequest\x10\x15\x1a\x08\x80\xa6\x1d\ + \x01\x98\xb5\x18\x01\x12\x1f\n\x11MessageType_TxAck\x10\x16\x1a\x08\x80\ + \xa6\x1d\x01\x90\xb5\x18\x01\x12$\n\x16MessageType_GetAddress\x10\x1d\ + \x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12!\n\x13MessageType_Address\ + \x10\x1e\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12)\n\x1fMessageType_T\ + xAckPaymentRequest\x10%\x1a\x04\x90\xb5\x18\x01\x12%\n\x17MessageType_Si\ + gnMessage\x10&\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12'\n\x19Message\ + Type_VerifyMessage\x10'\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\ + \x1cMessageType_MessageSignature\x10(\x1a\x08\x80\xa6\x1d\x01\x98\xb5\ + \x18\x01\x12(\n\x1aMessageType_GetOwnershipId\x10+\x1a\x08\x80\xa6\x1d\ + \x01\x90\xb5\x18\x01\x12%\n\x17MessageType_OwnershipId\x10,\x1a\x08\x80\ + \xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetOwnershipProof\x10\ + 1\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_Ownershi\ + pProof\x102\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageTyp\ + e_AuthorizeCoinJoin\x103\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\ + \x1aMessageType_CipherKeyValue\x10\x17\x1a\x08\x80\xa6\x1d\x01\x90\xb5\ + \x18\x01\x12*\n\x1cMessageType_CipheredKeyValue\x100\x1a\x08\x80\xa6\x1d\ + \x01\x98\xb5\x18\x01\x12&\n\x18MessageType_SignIdentity\x105\x1a\x08\x80\ + \xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_SignedIdentity\x106\ + \x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetECDHSe\ + ssionKey\x10=\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageT\ + ype_ECDHSessionKey\x10>\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x123\n\ + \x1dMessageType_DebugLinkDecision\x10d\x1a\x10\xc0\xb5\x18\x01\xb0\xb5\ + \x18\x01\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x1dMessageType_DebugLink\ + GetState\x10e\x1a\x0c\x80\xa6\x1d\x01\xb0\xb5\x18\x01\xa0\xb5\x18\x01\ + \x12(\n\x1aMessageType_DebugLinkState\x10f\x1a\x08\x80\xa6\x1d\x01\xa8\ + \xb5\x18\x01\x12'\n\x19MessageType_DebugLinkStop\x10g\x1a\x08\x80\xa6\ + \x1d\x01\xa0\xb5\x18\x01\x12&\n\x18MessageType_DebugLinkLog\x10h\x1a\x08\ + \x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12-\n\x1fMessageType_DebugLinkMemoryRe\ + ad\x10n\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12)\n\x1bMessageType_De\ + bugLinkMemory\x10o\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12.\n\x20Mes\ + sageType_DebugLinkMemoryWrite\x10p\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\ + \x01\x12-\n\x1fMessageType_DebugLinkFlashErase\x10q\x1a\x08\x80\xa6\x1d\ + \x01\xa0\xb5\x18\x01\x12*\n\x1bMessageType_DebugLinkLayout\x10\xa9F\x1a\ + \x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x120\n!MessageType_DebugLinkReseedR\ + andom\x10\xaaF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x120\n!MessageTyp\ + e_DebugLinkRecordScreen\x10\xabF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\ + \x12/\n\x20MessageType_DebugLinkEraseSdCard\x10\xadF\x1a\x08\x80\xa6\x1d\ + \x01\xa0\xb5\x18\x01\x12/\n\x20MessageType_DebugLinkWatchLayout\x10\xaeF\ + \x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x124\n%MessageType_DebugLinkRes\ + etDebugEvents\x10\xafF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x123\n$Me\ + ssageType_DebugLinkOptigaSetSecMax\x10\xb0F\x1a\x08\x80\xa6\x1d\x01\xa0\ + \xb5\x18\x01\x12+\n\x20MessageType_EthereumGetPublicKey\x10\xc2\x03\x1a\ + \x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\x10\xc3\x03\ + \x1a\x04\x98\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x108\ + \x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x109\x1a\ + \x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\ + \x90\xb5\x18\x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\x03\ + \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\x1fMessageType_EthereumSignMessage\x10@\x1a\ + \x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\ + \x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\ + \x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\ + \xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStr\ + uctRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Ethere\ + umTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageT\ + ype_EthereumTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\ + \x120\n%MessageType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\ + \xb5\x18\x01\x121\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\ + \x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\ + \xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10\ + C\x1a\x04\x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\ + \x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\ + \xb5\x18\x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\ + \x01\x12'\n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\ + \x01\x12)\n\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\ + \x01\x12&\n\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\ + \x18\x01\x12#\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\ + \x18\x01\x12\"\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\ + \x18\x01\x12$\n\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\ + \x18\x01\x12(\n\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\ + \xb5\x18\x01\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\ + \x98\xb5\x18\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\ + \x90\xb5\x18\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\ + \x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\ + \x01\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\ + \xd0\x01\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccoun\ + tOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPay\ + mentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPat\ + hPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\ + geType_StellarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\ + \n+MessageType_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\ + \xb5\x18\x01\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\ + \x04\x90\xb5\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\ + \x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\ + \x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMe\ + rgeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarM\ + anageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Stell\ + arBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_\ + StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*Messa\ + geType_StellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\ + \x01\x125\n*MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\ + \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\ + \x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\ + \xb1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\ + \x10\xb2\x02\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAdd\ + ress\x10\xb3\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAd\ + dress\x10\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoT\ + xItemAck\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoT\ + xAuxiliaryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#Mess\ + ageType_CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\ + \n$MessageType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\ + \x01\x12'\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\ + \x18\x01\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\ + \xb5\x18\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\ + \x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\ + \x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\ + \x02\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\ + \xc2\x02\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\ + \x10\xc3\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\ + \x10\xc4\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCert\ + ificate\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Cardan\ + oTxWithdrawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_Ca\ + rdanoTxAuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\ + geType_CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Messa\ + geType_CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\ + \x121\n&MessageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\ + \xb5\x18\x01\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\ + \x04\x98\xb5\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\ + \x04\x90\xb5\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\ + \x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\ + \x10\xce\x02\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineD\ + atumChunk\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Cardano\ + TxReferenceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#Messag\ + eType_CardanoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\ + \x1cMessageType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12\ + $\n\x19MessageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12\ + #\n\x18MessageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\ + \n\x1aMessageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x12\ + 3\n(MessageType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\ + \x18\x01\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\ + \x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\ + \xf7\x03\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSet\ + InputAck\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTr\ + ansactionInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Mes\ + sageType_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\ + \x01\x12;\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\ + \x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSe\ + tAck\x10\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransa\ + ctionSetOutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Message\ + Type_MoneroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\ + \x128\n-MessageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\ + \x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\ + \x10\x82\x04\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\ + nSignInputRequest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\ + _MoneroTransactionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\ + \n)MessageType_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\ + \x18\x01\x120\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\ + \x04\x98\xb5\x18\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\ + \x10\x92\x04\x1a\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageEx\ + portInitAck\x10\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Moner\ + oKeyImageSyncStepRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%Mess\ + ageType_MoneroKeyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\ + \x125\n*MessageType_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\ + \x98\xb5\x18\x01\x121\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\ + \x04\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\ + \x9c\x04\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\ + \x9d\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\ + \x10\x9e\x04\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKe\ + y\x10\x9f\x04\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDia\ + gRequest\x10\xa2\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_Debug\ + MoneroDiagAck\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_Mon\ + eroGetTxKeyRequest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessage\ + Type_MoneroGetTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)Messag\ + eType_MoneroLiveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\ + \x120\n%MessageType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\ + \xb5\x18\x01\x123\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\ + \x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\ + \xab\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFin\ + alRequest\x10\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroL\ + iveRefreshFinalAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessage\ + Type_EosGetPublicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18Messa\ + geType_EosPublicKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15Mes\ + sageType_EosSignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessage\ + Type_EosTxActionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMe\ + ssageType_EosTxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17\ + MessageType_EosSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMe\ + ssageType_BinanceGetAddress\x10\xbc\x05\x1a\x04\x90\xb5\x18\x01\x12%\n\ + \x1aMessageType_BinanceAddress\x10\xbd\x05\x1a\x04\x98\xb5\x18\x01\x12*\ + \n\x1fMessageType_BinanceGetPublicKey\x10\xbe\x05\x1a\x04\x90\xb5\x18\ + \x01\x12'\n\x1cMessageType_BinancePublicKey\x10\xbf\x05\x1a\x04\x98\xb5\ + \x18\x01\x12$\n\x19MessageType_BinanceSignTx\x10\xc0\x05\x1a\x04\x90\xb5\ + \x18\x01\x12'\n\x1cMessageType_BinanceTxRequest\x10\xc1\x05\x1a\x04\x98\ + \xb5\x18\x01\x12)\n\x1eMessageType_BinanceTransferMsg\x10\xc2\x05\x1a\ + \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_BinanceOrderMsg\x10\xc3\x05\ + \x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_BinanceCancelMsg\x10\xc4\ + \x05\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_BinanceSignedTx\x10\ + \xc5\x05\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_WebAuthnListResident\ + Credentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_We\ + bAuthnCredentials\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\ + _WebAuthnAddResidentCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\x01\x127\ + \n,MessageType_WebAuthnRemoveResidentCredential\x10\xa3\x06\x1a\x04\x90\ + \xb5\x18\x01\x12)\n\x1eMessageType_SolanaGetPublicKey\x10\x84\x07\x1a\ + \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_SolanaPublicKey\x10\x85\x07\ + \x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_SolanaGetAddress\x10\x86\ + \x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\x87\ + \x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\ + \x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\ + \x89\x07\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrGetPubkey\ + \x10\xd1\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_NostrPubkey\ + \x10\xd2\x0f\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrSignEven\ + t\x10\xd3\x0f\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_NostrEventSi\ + gnature\x10\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageType_Benchm\ + arkListNames\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageType_Benc\ + hmarkNames\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageType_Benchm\ + arkRun\x10\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_BenchmarkR\ + esult\x10\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08\ + Z\x10\\\"\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\ + \x06\x08\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\ + \x02\x10\xb8\x02\"\x06\x08\xe8\x07\x10\xcb\x08B8\n#com.satoshilabs.trezo\ + r.lib.protobufB\rTrezorMessage\x80\xa6\x1d\x01\ "; /// `FileDescriptorProto` object which was a source for this generated file diff --git a/rust/trezor-client/src/protos/generated/messages_ble.rs b/rust/trezor-client/src/protos/generated/messages_ble.rs index a5cc67c4a2..8437edd6de 100644 --- a/rust/trezor-client/src/protos/generated/messages_ble.rs +++ b/rust/trezor-client/src/protos/generated/messages_ble.rs @@ -128,6 +128,109 @@ impl ::protobuf::reflect::ProtobufValue for EraseBonds { type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; } +// @@protoc_insertion_point(message:hw.trezor.messages.ble.Unpair) +#[derive(PartialEq,Clone,Default,Debug)] +pub struct Unpair { + // special fields + // @@protoc_insertion_point(special_field:hw.trezor.messages.ble.Unpair.special_fields) + pub special_fields: ::protobuf::SpecialFields, +} + +impl<'a> ::std::default::Default for &'a Unpair { + fn default() -> &'a Unpair { + ::default_instance() + } +} + +impl Unpair { + pub fn new() -> Unpair { + ::std::default::Default::default() + } + + fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { + let mut fields = ::std::vec::Vec::with_capacity(0); + let mut oneofs = ::std::vec::Vec::with_capacity(0); + ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( + "Unpair", + fields, + oneofs, + ) + } +} + +impl ::protobuf::Message for Unpair { + const NAME: &'static str = "Unpair"; + + fn is_initialized(&self) -> bool { + true + } + + fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> { + while let Some(tag) = is.read_raw_tag_or_eof()? { + match tag { + tag => { + ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; + }, + }; + } + ::std::result::Result::Ok(()) + } + + // Compute sizes of nested messages + #[allow(unused_variables)] + fn compute_size(&self) -> u64 { + let mut my_size = 0; + my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); + self.special_fields.cached_size().set(my_size as u32); + my_size + } + + fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> { + os.write_unknown_fields(self.special_fields.unknown_fields())?; + ::std::result::Result::Ok(()) + } + + fn special_fields(&self) -> &::protobuf::SpecialFields { + &self.special_fields + } + + fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields { + &mut self.special_fields + } + + fn new() -> Unpair { + Unpair::new() + } + + fn clear(&mut self) { + self.special_fields.clear(); + } + + fn default_instance() -> &'static Unpair { + static instance: Unpair = Unpair { + special_fields: ::protobuf::SpecialFields::new(), + }; + &instance + } +} + +impl ::protobuf::MessageFull for Unpair { + fn descriptor() -> ::protobuf::reflect::MessageDescriptor { + static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new(); + descriptor.get(|| file_descriptor().message_by_package_relative_name("Unpair").unwrap()).clone() + } +} + +impl ::std::fmt::Display for Unpair { + fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { + ::protobuf::text_format::fmt(self, f) + } +} + +impl ::protobuf::reflect::ProtobufValue for Unpair { + type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage; +} + // @@protoc_insertion_point(message:hw.trezor.messages.ble.Disconnect) #[derive(PartialEq,Clone,Default,Debug)] pub struct Disconnect { @@ -233,8 +336,8 @@ impl ::protobuf::reflect::ProtobufValue for Disconnect { static file_descriptor_proto_data: &'static [u8] = b"\ \n\x12messages-ble.proto\x12\x16hw.trezor.messages.ble\x1a\roptions.prot\ - o\"\x0c\n\nEraseBonds\"\x0c\n\nDisconnectB;\n#com.satoshilabs.trezor.lib\ - .protobufB\x10TrezorMessageBLE\x80\xa6\x1d\x01\ + o\"\x0c\n\nEraseBonds\"\x08\n\x06Unpair\"\x0c\n\nDisconnectB;\n#com.sato\ + shilabs.trezor.lib.protobufB\x10TrezorMessageBLE\x80\xa6\x1d\x01\ "; /// `FileDescriptorProto` object which was a source for this generated file @@ -253,8 +356,9 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor { let generated_file_descriptor = generated_file_descriptor_lazy.get(|| { let mut deps = ::std::vec::Vec::with_capacity(1); deps.push(super::options::file_descriptor().clone()); - let mut messages = ::std::vec::Vec::with_capacity(2); + let mut messages = ::std::vec::Vec::with_capacity(3); messages.push(EraseBonds::generated_message_descriptor_data()); + messages.push(Unpair::generated_message_descriptor_data()); messages.push(Disconnect::generated_message_descriptor_data()); let mut enums = ::std::vec::Vec::with_capacity(0); ::protobuf::reflect::GeneratedFileDescriptor::new_generated(