1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-06-03 22:58:46 +00:00

feat(common/protobuf): add ownership proof anti-exfil protocol messages

[no changelog]
This commit is contained in:
Ondřej Vejpustek 2025-03-17 15:13:04 +01:00
parent 08afab19f6
commit cb7ac84d8a
11 changed files with 887 additions and 402 deletions

View File

@ -638,6 +638,25 @@ message GetOwnershipProof {
optional bool user_confirmation = 5 [default=false]; // show a confirmation dialog and set the "user confirmation" bit in the proof optional bool user_confirmation = 5 [default=false]; // show a confirmation dialog and set the "user confirmation" bit in the proof
repeated bytes ownership_ids = 6; // list of ownership identifiers in case of multisig repeated bytes ownership_ids = 6; // list of ownership identifiers in case of multisig
optional bytes commitment_data = 7 [default='']; // additional data to which the proof should commit optional bytes commitment_data = 7 [default='']; // additional data to which the proof should commit
optional bytes entropy_commitment = 8; // commitment to host's entropy, non-empty value indicates anti-exfil protocol will be used
}
/**
* Response: Contains the commitment to the signature nonce, used in anti-exfil protocol
* @next OwnershipProofEntropy
* @next Failure
*/
message OwnershipProofNonceCommitment {
optional bytes nonce_commitment = 1; // commitment to signature nonce, used in anti-exfil protocol
}
/**
* Request: Contains the host's entropy, used in anti-exfil protocol
* @next OwnershipProof
* @next Failure
*/
message OwnershipProofEntropy {
optional bytes entropy = 1; // host's entropy, used in anti-exfil protocol
} }
/** /**

View File

@ -105,6 +105,8 @@ enum MessageType {
MessageType_GetOwnershipProof = 49 [(bitcoin_only) = true, (wire_in) = true]; MessageType_GetOwnershipProof = 49 [(bitcoin_only) = true, (wire_in) = true];
MessageType_OwnershipProof = 50 [(bitcoin_only) = true, (wire_out) = true]; MessageType_OwnershipProof = 50 [(bitcoin_only) = true, (wire_out) = true];
MessageType_AuthorizeCoinJoin = 51 [(bitcoin_only) = true, (wire_in) = true]; MessageType_AuthorizeCoinJoin = 51 [(bitcoin_only) = true, (wire_in) = true];
MessageType_OwnershipProofNonceCommitment = 606 [(bitcoin_only) = true, (wire_out) = true];
MessageType_OwnershipProofEntropy = 607 [(bitcoin_only) = true, (wire_in) = true];
// Crypto // Crypto
MessageType_CipherKeyValue = 23 [(bitcoin_only) = true, (wire_in) = true]; MessageType_CipherKeyValue = 23 [(bitcoin_only) = true, (wire_in) = true];

View File

@ -75,6 +75,8 @@ OwnershipId = 44
GetOwnershipProof = 49 GetOwnershipProof = 49
OwnershipProof = 50 OwnershipProof = 50
AuthorizeCoinJoin = 51 AuthorizeCoinJoin = 51
OwnershipProofNonceCommitment = 606
OwnershipProofEntropy = 607
CipherKeyValue = 23 CipherKeyValue = 23
CipheredKeyValue = 48 CipheredKeyValue = 48
SignIdentity = 53 SignIdentity = 53

View File

@ -427,6 +427,8 @@ if TYPE_CHECKING:
GetOwnershipProof = 49 GetOwnershipProof = 49
OwnershipProof = 50 OwnershipProof = 50
AuthorizeCoinJoin = 51 AuthorizeCoinJoin = 51
OwnershipProofNonceCommitment = 606
OwnershipProofEntropy = 607
CipherKeyValue = 23 CipherKeyValue = 23
CipheredKeyValue = 48 CipheredKeyValue = 48
SignIdentity = 53 SignIdentity = 53

View File

@ -1010,6 +1010,7 @@ if TYPE_CHECKING:
user_confirmation: "bool" user_confirmation: "bool"
ownership_ids: "list[bytes]" ownership_ids: "list[bytes]"
commitment_data: "bytes" commitment_data: "bytes"
entropy_commitment: "bytes | None"
def __init__( def __init__(
self, self,
@ -1021,6 +1022,7 @@ if TYPE_CHECKING:
multisig: "MultisigRedeemScriptType | None" = None, multisig: "MultisigRedeemScriptType | None" = None,
user_confirmation: "bool | None" = None, user_confirmation: "bool | None" = None,
commitment_data: "bytes | None" = None, commitment_data: "bytes | None" = None,
entropy_commitment: "bytes | None" = None,
) -> None: ) -> None:
pass pass
@ -1028,6 +1030,34 @@ if TYPE_CHECKING:
def is_type_of(cls, msg: Any) -> TypeGuard["GetOwnershipProof"]: def is_type_of(cls, msg: Any) -> TypeGuard["GetOwnershipProof"]:
return isinstance(msg, cls) return isinstance(msg, cls)
class OwnershipProofNonceCommitment(protobuf.MessageType):
nonce_commitment: "bytes | None"
def __init__(
self,
*,
nonce_commitment: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["OwnershipProofNonceCommitment"]:
return isinstance(msg, cls)
class OwnershipProofEntropy(protobuf.MessageType):
entropy: "bytes | None"
def __init__(
self,
*,
entropy: "bytes | None" = None,
) -> None:
pass
@classmethod
def is_type_of(cls, msg: Any) -> TypeGuard["OwnershipProofEntropy"]:
return isinstance(msg, cls)
class OwnershipProof(protobuf.MessageType): class OwnershipProof(protobuf.MessageType):
ownership_proof: "bytes" ownership_proof: "bytes"
signature: "bytes" signature: "bytes"

View File

@ -13,7 +13,8 @@ SKIPPED_MESSAGES := Binance Cardano DebugMonero Eos Monero Ontology Ripple SdPro
ChangeLanguage TranslationDataRequest TranslationDataAck \ ChangeLanguage TranslationDataRequest TranslationDataAck \
SetBrightness DebugLinkOptigaSetSecMax EntropyCheckReady EntropyCheckContinue \ SetBrightness DebugLinkOptigaSetSecMax EntropyCheckReady EntropyCheckContinue \
BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult \ BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult \
NostrGetPubkey NostrPubkey NostrSignEvent NostrEventSignature NostrGetPubkey NostrPubkey NostrSignEvent NostrEventSignature \
OwnershipProofEntropy
ifeq ($(BITCOIN_ONLY), 1) ifeq ($(BITCOIN_ONLY), 1)
SKIPPED_MESSAGES += Ethereum NEM Stellar SKIPPED_MESSAGES += Ethereum NEM Stellar

View File

@ -98,10 +98,15 @@ GetOwnershipProof.address_n max_count:8
GetOwnershipProof.coin_name max_size:21 GetOwnershipProof.coin_name max_size:21
GetOwnershipProof.ownership_ids max_count:15 max_size:32 GetOwnershipProof.ownership_ids max_count:15 max_size:32
GetOwnershipProof.commitment_data max_size:70 GetOwnershipProof.commitment_data max_size:70
GetOwnershipProof.entropy_commitment max_size:32
OwnershipProof.ownership_proof max_size:147 OwnershipProof.ownership_proof max_size:147
OwnershipProof.signature max_size:71 OwnershipProof.signature max_size:71
OwnershipProofNonceCommitment.nonce_commitment max_size:32
OwnershipProofEntropy.entropy max_size:32
AuthorizeCoinJoin.coordinator max_size:37 AuthorizeCoinJoin.coordinator max_size:37
AuthorizeCoinJoin.address_n max_count:8 AuthorizeCoinJoin.address_n max_count:8
AuthorizeCoinJoin.coin_name max_size:21 AuthorizeCoinJoin.coin_name max_size:21

View File

@ -480,6 +480,8 @@ class MessageType(IntEnum):
GetOwnershipProof = 49 GetOwnershipProof = 49
OwnershipProof = 50 OwnershipProof = 50
AuthorizeCoinJoin = 51 AuthorizeCoinJoin = 51
OwnershipProofNonceCommitment = 606
OwnershipProofEntropy = 607
CipherKeyValue = 23 CipherKeyValue = 23
CipheredKeyValue = 48 CipheredKeyValue = 48
SignIdentity = 53 SignIdentity = 53
@ -1763,6 +1765,7 @@ class GetOwnershipProof(protobuf.MessageType):
5: protobuf.Field("user_confirmation", "bool", repeated=False, required=False, default=False), 5: protobuf.Field("user_confirmation", "bool", repeated=False, required=False, default=False),
6: protobuf.Field("ownership_ids", "bytes", repeated=True, required=False, default=None), 6: protobuf.Field("ownership_ids", "bytes", repeated=True, required=False, default=None),
7: protobuf.Field("commitment_data", "bytes", repeated=False, required=False, default=b''), 7: protobuf.Field("commitment_data", "bytes", repeated=False, required=False, default=b''),
8: protobuf.Field("entropy_commitment", "bytes", repeated=False, required=False, default=None),
} }
def __init__( def __init__(
@ -1775,6 +1778,7 @@ class GetOwnershipProof(protobuf.MessageType):
multisig: Optional["MultisigRedeemScriptType"] = None, multisig: Optional["MultisigRedeemScriptType"] = None,
user_confirmation: Optional["bool"] = False, user_confirmation: Optional["bool"] = False,
commitment_data: Optional["bytes"] = b'', commitment_data: Optional["bytes"] = b'',
entropy_commitment: Optional["bytes"] = None,
) -> None: ) -> None:
self.address_n: Sequence["int"] = address_n if address_n is not None else [] self.address_n: Sequence["int"] = address_n if address_n is not None else []
self.ownership_ids: Sequence["bytes"] = ownership_ids if ownership_ids is not None else [] self.ownership_ids: Sequence["bytes"] = ownership_ids if ownership_ids is not None else []
@ -1783,6 +1787,35 @@ class GetOwnershipProof(protobuf.MessageType):
self.multisig = multisig self.multisig = multisig
self.user_confirmation = user_confirmation self.user_confirmation = user_confirmation
self.commitment_data = commitment_data self.commitment_data = commitment_data
self.entropy_commitment = entropy_commitment
class OwnershipProofNonceCommitment(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 606
FIELDS = {
1: protobuf.Field("nonce_commitment", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
nonce_commitment: Optional["bytes"] = None,
) -> None:
self.nonce_commitment = nonce_commitment
class OwnershipProofEntropy(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 607
FIELDS = {
1: protobuf.Field("entropy", "bytes", repeated=False, required=False, default=None),
}
def __init__(
self,
*,
entropy: Optional["bytes"] = None,
) -> None:
self.entropy = entropy
class OwnershipProof(protobuf.MessageType): class OwnershipProof(protobuf.MessageType):

View File

@ -120,6 +120,8 @@ trezor_message_impl! {
GetOwnershipProof => MessageType_GetOwnershipProof, GetOwnershipProof => MessageType_GetOwnershipProof,
OwnershipProof => MessageType_OwnershipProof, OwnershipProof => MessageType_OwnershipProof,
AuthorizeCoinJoin => MessageType_AuthorizeCoinJoin, AuthorizeCoinJoin => MessageType_AuthorizeCoinJoin,
OwnershipProofNonceCommitment => MessageType_OwnershipProofNonceCommitment,
OwnershipProofEntropy => MessageType_OwnershipProofEntropy,
} }
#[cfg(feature = "cardano")] #[cfg(feature = "cardano")]

View File

@ -182,6 +182,10 @@ pub enum MessageType {
MessageType_OwnershipProof = 50, MessageType_OwnershipProof = 50,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_AuthorizeCoinJoin) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_AuthorizeCoinJoin)
MessageType_AuthorizeCoinJoin = 51, MessageType_AuthorizeCoinJoin = 51,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_OwnershipProofNonceCommitment)
MessageType_OwnershipProofNonceCommitment = 606,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_OwnershipProofEntropy)
MessageType_OwnershipProofEntropy = 607,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_CipherKeyValue) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_CipherKeyValue)
MessageType_CipherKeyValue = 23, MessageType_CipherKeyValue = 23,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_CipheredKeyValue) // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_CipheredKeyValue)
@ -618,6 +622,8 @@ impl ::protobuf::Enum for MessageType {
49 => ::std::option::Option::Some(MessageType::MessageType_GetOwnershipProof), 49 => ::std::option::Option::Some(MessageType::MessageType_GetOwnershipProof),
50 => ::std::option::Option::Some(MessageType::MessageType_OwnershipProof), 50 => ::std::option::Option::Some(MessageType::MessageType_OwnershipProof),
51 => ::std::option::Option::Some(MessageType::MessageType_AuthorizeCoinJoin), 51 => ::std::option::Option::Some(MessageType::MessageType_AuthorizeCoinJoin),
606 => ::std::option::Option::Some(MessageType::MessageType_OwnershipProofNonceCommitment),
607 => ::std::option::Option::Some(MessageType::MessageType_OwnershipProofEntropy),
23 => ::std::option::Option::Some(MessageType::MessageType_CipherKeyValue), 23 => ::std::option::Option::Some(MessageType::MessageType_CipherKeyValue),
48 => ::std::option::Option::Some(MessageType::MessageType_CipheredKeyValue), 48 => ::std::option::Option::Some(MessageType::MessageType_CipheredKeyValue),
53 => ::std::option::Option::Some(MessageType::MessageType_SignIdentity), 53 => ::std::option::Option::Some(MessageType::MessageType_SignIdentity),
@ -875,6 +881,8 @@ impl ::protobuf::Enum for MessageType {
"MessageType_GetOwnershipProof" => ::std::option::Option::Some(MessageType::MessageType_GetOwnershipProof), "MessageType_GetOwnershipProof" => ::std::option::Option::Some(MessageType::MessageType_GetOwnershipProof),
"MessageType_OwnershipProof" => ::std::option::Option::Some(MessageType::MessageType_OwnershipProof), "MessageType_OwnershipProof" => ::std::option::Option::Some(MessageType::MessageType_OwnershipProof),
"MessageType_AuthorizeCoinJoin" => ::std::option::Option::Some(MessageType::MessageType_AuthorizeCoinJoin), "MessageType_AuthorizeCoinJoin" => ::std::option::Option::Some(MessageType::MessageType_AuthorizeCoinJoin),
"MessageType_OwnershipProofNonceCommitment" => ::std::option::Option::Some(MessageType::MessageType_OwnershipProofNonceCommitment),
"MessageType_OwnershipProofEntropy" => ::std::option::Option::Some(MessageType::MessageType_OwnershipProofEntropy),
"MessageType_CipherKeyValue" => ::std::option::Option::Some(MessageType::MessageType_CipherKeyValue), "MessageType_CipherKeyValue" => ::std::option::Option::Some(MessageType::MessageType_CipherKeyValue),
"MessageType_CipheredKeyValue" => ::std::option::Option::Some(MessageType::MessageType_CipheredKeyValue), "MessageType_CipheredKeyValue" => ::std::option::Option::Some(MessageType::MessageType_CipheredKeyValue),
"MessageType_SignIdentity" => ::std::option::Option::Some(MessageType::MessageType_SignIdentity), "MessageType_SignIdentity" => ::std::option::Option::Some(MessageType::MessageType_SignIdentity),
@ -1131,6 +1139,8 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_GetOwnershipProof, MessageType::MessageType_GetOwnershipProof,
MessageType::MessageType_OwnershipProof, MessageType::MessageType_OwnershipProof,
MessageType::MessageType_AuthorizeCoinJoin, MessageType::MessageType_AuthorizeCoinJoin,
MessageType::MessageType_OwnershipProofNonceCommitment,
MessageType::MessageType_OwnershipProofEntropy,
MessageType::MessageType_CipherKeyValue, MessageType::MessageType_CipherKeyValue,
MessageType::MessageType_CipheredKeyValue, MessageType::MessageType_CipheredKeyValue,
MessageType::MessageType_SignIdentity, MessageType::MessageType_SignIdentity,
@ -1393,180 +1403,182 @@ impl ::protobuf::EnumFull for MessageType {
MessageType::MessageType_GetOwnershipProof => 74, MessageType::MessageType_GetOwnershipProof => 74,
MessageType::MessageType_OwnershipProof => 75, MessageType::MessageType_OwnershipProof => 75,
MessageType::MessageType_AuthorizeCoinJoin => 76, MessageType::MessageType_AuthorizeCoinJoin => 76,
MessageType::MessageType_CipherKeyValue => 77, MessageType::MessageType_OwnershipProofNonceCommitment => 77,
MessageType::MessageType_CipheredKeyValue => 78, MessageType::MessageType_OwnershipProofEntropy => 78,
MessageType::MessageType_SignIdentity => 79, MessageType::MessageType_CipherKeyValue => 79,
MessageType::MessageType_SignedIdentity => 80, MessageType::MessageType_CipheredKeyValue => 80,
MessageType::MessageType_GetECDHSessionKey => 81, MessageType::MessageType_SignIdentity => 81,
MessageType::MessageType_ECDHSessionKey => 82, MessageType::MessageType_SignedIdentity => 82,
MessageType::MessageType_DebugLinkDecision => 83, MessageType::MessageType_GetECDHSessionKey => 83,
MessageType::MessageType_DebugLinkGetState => 84, MessageType::MessageType_ECDHSessionKey => 84,
MessageType::MessageType_DebugLinkState => 85, MessageType::MessageType_DebugLinkDecision => 85,
MessageType::MessageType_DebugLinkStop => 86, MessageType::MessageType_DebugLinkGetState => 86,
MessageType::MessageType_DebugLinkLog => 87, MessageType::MessageType_DebugLinkState => 87,
MessageType::MessageType_DebugLinkMemoryRead => 88, MessageType::MessageType_DebugLinkStop => 88,
MessageType::MessageType_DebugLinkMemory => 89, MessageType::MessageType_DebugLinkLog => 89,
MessageType::MessageType_DebugLinkMemoryWrite => 90, MessageType::MessageType_DebugLinkMemoryRead => 90,
MessageType::MessageType_DebugLinkFlashErase => 91, MessageType::MessageType_DebugLinkMemory => 91,
MessageType::MessageType_DebugLinkLayout => 92, MessageType::MessageType_DebugLinkMemoryWrite => 92,
MessageType::MessageType_DebugLinkReseedRandom => 93, MessageType::MessageType_DebugLinkFlashErase => 93,
MessageType::MessageType_DebugLinkRecordScreen => 94, MessageType::MessageType_DebugLinkLayout => 94,
MessageType::MessageType_DebugLinkEraseSdCard => 95, MessageType::MessageType_DebugLinkReseedRandom => 95,
MessageType::MessageType_DebugLinkWatchLayout => 96, MessageType::MessageType_DebugLinkRecordScreen => 96,
MessageType::MessageType_DebugLinkResetDebugEvents => 97, MessageType::MessageType_DebugLinkEraseSdCard => 97,
MessageType::MessageType_DebugLinkOptigaSetSecMax => 98, MessageType::MessageType_DebugLinkWatchLayout => 98,
MessageType::MessageType_EthereumGetPublicKey => 99, MessageType::MessageType_DebugLinkResetDebugEvents => 99,
MessageType::MessageType_EthereumPublicKey => 100, MessageType::MessageType_DebugLinkOptigaSetSecMax => 100,
MessageType::MessageType_EthereumGetAddress => 101, MessageType::MessageType_EthereumGetPublicKey => 101,
MessageType::MessageType_EthereumAddress => 102, MessageType::MessageType_EthereumPublicKey => 102,
MessageType::MessageType_EthereumSignTx => 103, MessageType::MessageType_EthereumGetAddress => 103,
MessageType::MessageType_EthereumSignTxEIP1559 => 104, MessageType::MessageType_EthereumAddress => 104,
MessageType::MessageType_EthereumTxRequest => 105, MessageType::MessageType_EthereumSignTx => 105,
MessageType::MessageType_EthereumTxAck => 106, MessageType::MessageType_EthereumSignTxEIP1559 => 106,
MessageType::MessageType_EthereumSignMessage => 107, MessageType::MessageType_EthereumTxRequest => 107,
MessageType::MessageType_EthereumVerifyMessage => 108, MessageType::MessageType_EthereumTxAck => 108,
MessageType::MessageType_EthereumMessageSignature => 109, MessageType::MessageType_EthereumSignMessage => 109,
MessageType::MessageType_EthereumSignTypedData => 110, MessageType::MessageType_EthereumVerifyMessage => 110,
MessageType::MessageType_EthereumTypedDataStructRequest => 111, MessageType::MessageType_EthereumMessageSignature => 111,
MessageType::MessageType_EthereumTypedDataStructAck => 112, MessageType::MessageType_EthereumSignTypedData => 112,
MessageType::MessageType_EthereumTypedDataValueRequest => 113, MessageType::MessageType_EthereumTypedDataStructRequest => 113,
MessageType::MessageType_EthereumTypedDataValueAck => 114, MessageType::MessageType_EthereumTypedDataStructAck => 114,
MessageType::MessageType_EthereumTypedDataSignature => 115, MessageType::MessageType_EthereumTypedDataValueRequest => 115,
MessageType::MessageType_EthereumSignTypedHash => 116, MessageType::MessageType_EthereumTypedDataValueAck => 116,
MessageType::MessageType_NEMGetAddress => 117, MessageType::MessageType_EthereumTypedDataSignature => 117,
MessageType::MessageType_NEMAddress => 118, MessageType::MessageType_EthereumSignTypedHash => 118,
MessageType::MessageType_NEMSignTx => 119, MessageType::MessageType_NEMGetAddress => 119,
MessageType::MessageType_NEMSignedTx => 120, MessageType::MessageType_NEMAddress => 120,
MessageType::MessageType_NEMDecryptMessage => 121, MessageType::MessageType_NEMSignTx => 121,
MessageType::MessageType_NEMDecryptedMessage => 122, MessageType::MessageType_NEMSignedTx => 122,
MessageType::MessageType_TezosGetAddress => 123, MessageType::MessageType_NEMDecryptMessage => 123,
MessageType::MessageType_TezosAddress => 124, MessageType::MessageType_NEMDecryptedMessage => 124,
MessageType::MessageType_TezosSignTx => 125, MessageType::MessageType_TezosGetAddress => 125,
MessageType::MessageType_TezosSignedTx => 126, MessageType::MessageType_TezosAddress => 126,
MessageType::MessageType_TezosGetPublicKey => 127, MessageType::MessageType_TezosSignTx => 127,
MessageType::MessageType_TezosPublicKey => 128, MessageType::MessageType_TezosSignedTx => 128,
MessageType::MessageType_StellarSignTx => 129, MessageType::MessageType_TezosGetPublicKey => 129,
MessageType::MessageType_StellarTxOpRequest => 130, MessageType::MessageType_TezosPublicKey => 130,
MessageType::MessageType_StellarGetAddress => 131, MessageType::MessageType_StellarSignTx => 131,
MessageType::MessageType_StellarAddress => 132, MessageType::MessageType_StellarTxOpRequest => 132,
MessageType::MessageType_StellarCreateAccountOp => 133, MessageType::MessageType_StellarGetAddress => 133,
MessageType::MessageType_StellarPaymentOp => 134, MessageType::MessageType_StellarAddress => 134,
MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 135, MessageType::MessageType_StellarCreateAccountOp => 135,
MessageType::MessageType_StellarManageSellOfferOp => 136, MessageType::MessageType_StellarPaymentOp => 136,
MessageType::MessageType_StellarCreatePassiveSellOfferOp => 137, MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 137,
MessageType::MessageType_StellarSetOptionsOp => 138, MessageType::MessageType_StellarManageSellOfferOp => 138,
MessageType::MessageType_StellarChangeTrustOp => 139, MessageType::MessageType_StellarCreatePassiveSellOfferOp => 139,
MessageType::MessageType_StellarAllowTrustOp => 140, MessageType::MessageType_StellarSetOptionsOp => 140,
MessageType::MessageType_StellarAccountMergeOp => 141, MessageType::MessageType_StellarChangeTrustOp => 141,
MessageType::MessageType_StellarManageDataOp => 142, MessageType::MessageType_StellarAllowTrustOp => 142,
MessageType::MessageType_StellarBumpSequenceOp => 143, MessageType::MessageType_StellarAccountMergeOp => 143,
MessageType::MessageType_StellarManageBuyOfferOp => 144, MessageType::MessageType_StellarManageDataOp => 144,
MessageType::MessageType_StellarPathPaymentStrictSendOp => 145, MessageType::MessageType_StellarBumpSequenceOp => 145,
MessageType::MessageType_StellarClaimClaimableBalanceOp => 146, MessageType::MessageType_StellarManageBuyOfferOp => 146,
MessageType::MessageType_StellarSignedTx => 147, MessageType::MessageType_StellarPathPaymentStrictSendOp => 147,
MessageType::MessageType_CardanoGetPublicKey => 148, MessageType::MessageType_StellarClaimClaimableBalanceOp => 148,
MessageType::MessageType_CardanoPublicKey => 149, MessageType::MessageType_StellarSignedTx => 149,
MessageType::MessageType_CardanoGetAddress => 150, MessageType::MessageType_CardanoGetPublicKey => 150,
MessageType::MessageType_CardanoAddress => 151, MessageType::MessageType_CardanoPublicKey => 151,
MessageType::MessageType_CardanoTxItemAck => 152, MessageType::MessageType_CardanoGetAddress => 152,
MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 153, MessageType::MessageType_CardanoAddress => 153,
MessageType::MessageType_CardanoTxWitnessRequest => 154, MessageType::MessageType_CardanoTxItemAck => 154,
MessageType::MessageType_CardanoTxWitnessResponse => 155, MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 155,
MessageType::MessageType_CardanoTxHostAck => 156, MessageType::MessageType_CardanoTxWitnessRequest => 156,
MessageType::MessageType_CardanoTxBodyHash => 157, MessageType::MessageType_CardanoTxWitnessResponse => 157,
MessageType::MessageType_CardanoSignTxFinished => 158, MessageType::MessageType_CardanoTxHostAck => 158,
MessageType::MessageType_CardanoSignTxInit => 159, MessageType::MessageType_CardanoTxBodyHash => 159,
MessageType::MessageType_CardanoTxInput => 160, MessageType::MessageType_CardanoSignTxFinished => 160,
MessageType::MessageType_CardanoTxOutput => 161, MessageType::MessageType_CardanoSignTxInit => 161,
MessageType::MessageType_CardanoAssetGroup => 162, MessageType::MessageType_CardanoTxInput => 162,
MessageType::MessageType_CardanoToken => 163, MessageType::MessageType_CardanoTxOutput => 163,
MessageType::MessageType_CardanoTxCertificate => 164, MessageType::MessageType_CardanoAssetGroup => 164,
MessageType::MessageType_CardanoTxWithdrawal => 165, MessageType::MessageType_CardanoToken => 165,
MessageType::MessageType_CardanoTxAuxiliaryData => 166, MessageType::MessageType_CardanoTxCertificate => 166,
MessageType::MessageType_CardanoPoolOwner => 167, MessageType::MessageType_CardanoTxWithdrawal => 167,
MessageType::MessageType_CardanoPoolRelayParameters => 168, MessageType::MessageType_CardanoTxAuxiliaryData => 168,
MessageType::MessageType_CardanoGetNativeScriptHash => 169, MessageType::MessageType_CardanoPoolOwner => 169,
MessageType::MessageType_CardanoNativeScriptHash => 170, MessageType::MessageType_CardanoPoolRelayParameters => 170,
MessageType::MessageType_CardanoTxMint => 171, MessageType::MessageType_CardanoGetNativeScriptHash => 171,
MessageType::MessageType_CardanoTxCollateralInput => 172, MessageType::MessageType_CardanoNativeScriptHash => 172,
MessageType::MessageType_CardanoTxRequiredSigner => 173, MessageType::MessageType_CardanoTxMint => 173,
MessageType::MessageType_CardanoTxInlineDatumChunk => 174, MessageType::MessageType_CardanoTxCollateralInput => 174,
MessageType::MessageType_CardanoTxReferenceScriptChunk => 175, MessageType::MessageType_CardanoTxRequiredSigner => 175,
MessageType::MessageType_CardanoTxReferenceInput => 176, MessageType::MessageType_CardanoTxInlineDatumChunk => 176,
MessageType::MessageType_RippleGetAddress => 177, MessageType::MessageType_CardanoTxReferenceScriptChunk => 177,
MessageType::MessageType_RippleAddress => 178, MessageType::MessageType_CardanoTxReferenceInput => 178,
MessageType::MessageType_RippleSignTx => 179, MessageType::MessageType_RippleGetAddress => 179,
MessageType::MessageType_RippleSignedTx => 180, MessageType::MessageType_RippleAddress => 180,
MessageType::MessageType_MoneroTransactionInitRequest => 181, MessageType::MessageType_RippleSignTx => 181,
MessageType::MessageType_MoneroTransactionInitAck => 182, MessageType::MessageType_RippleSignedTx => 182,
MessageType::MessageType_MoneroTransactionSetInputRequest => 183, MessageType::MessageType_MoneroTransactionInitRequest => 183,
MessageType::MessageType_MoneroTransactionSetInputAck => 184, MessageType::MessageType_MoneroTransactionInitAck => 184,
MessageType::MessageType_MoneroTransactionInputViniRequest => 185, MessageType::MessageType_MoneroTransactionSetInputRequest => 185,
MessageType::MessageType_MoneroTransactionInputViniAck => 186, MessageType::MessageType_MoneroTransactionSetInputAck => 186,
MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 187, MessageType::MessageType_MoneroTransactionInputViniRequest => 187,
MessageType::MessageType_MoneroTransactionAllInputsSetAck => 188, MessageType::MessageType_MoneroTransactionInputViniAck => 188,
MessageType::MessageType_MoneroTransactionSetOutputRequest => 189, MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 189,
MessageType::MessageType_MoneroTransactionSetOutputAck => 190, MessageType::MessageType_MoneroTransactionAllInputsSetAck => 190,
MessageType::MessageType_MoneroTransactionAllOutSetRequest => 191, MessageType::MessageType_MoneroTransactionSetOutputRequest => 191,
MessageType::MessageType_MoneroTransactionAllOutSetAck => 192, MessageType::MessageType_MoneroTransactionSetOutputAck => 192,
MessageType::MessageType_MoneroTransactionSignInputRequest => 193, MessageType::MessageType_MoneroTransactionAllOutSetRequest => 193,
MessageType::MessageType_MoneroTransactionSignInputAck => 194, MessageType::MessageType_MoneroTransactionAllOutSetAck => 194,
MessageType::MessageType_MoneroTransactionFinalRequest => 195, MessageType::MessageType_MoneroTransactionSignInputRequest => 195,
MessageType::MessageType_MoneroTransactionFinalAck => 196, MessageType::MessageType_MoneroTransactionSignInputAck => 196,
MessageType::MessageType_MoneroKeyImageExportInitRequest => 197, MessageType::MessageType_MoneroTransactionFinalRequest => 197,
MessageType::MessageType_MoneroKeyImageExportInitAck => 198, MessageType::MessageType_MoneroTransactionFinalAck => 198,
MessageType::MessageType_MoneroKeyImageSyncStepRequest => 199, MessageType::MessageType_MoneroKeyImageExportInitRequest => 199,
MessageType::MessageType_MoneroKeyImageSyncStepAck => 200, MessageType::MessageType_MoneroKeyImageExportInitAck => 200,
MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 201, MessageType::MessageType_MoneroKeyImageSyncStepRequest => 201,
MessageType::MessageType_MoneroKeyImageSyncFinalAck => 202, MessageType::MessageType_MoneroKeyImageSyncStepAck => 202,
MessageType::MessageType_MoneroGetAddress => 203, MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 203,
MessageType::MessageType_MoneroAddress => 204, MessageType::MessageType_MoneroKeyImageSyncFinalAck => 204,
MessageType::MessageType_MoneroGetWatchKey => 205, MessageType::MessageType_MoneroGetAddress => 205,
MessageType::MessageType_MoneroWatchKey => 206, MessageType::MessageType_MoneroAddress => 206,
MessageType::MessageType_DebugMoneroDiagRequest => 207, MessageType::MessageType_MoneroGetWatchKey => 207,
MessageType::MessageType_DebugMoneroDiagAck => 208, MessageType::MessageType_MoneroWatchKey => 208,
MessageType::MessageType_MoneroGetTxKeyRequest => 209, MessageType::MessageType_DebugMoneroDiagRequest => 209,
MessageType::MessageType_MoneroGetTxKeyAck => 210, MessageType::MessageType_DebugMoneroDiagAck => 210,
MessageType::MessageType_MoneroLiveRefreshStartRequest => 211, MessageType::MessageType_MoneroGetTxKeyRequest => 211,
MessageType::MessageType_MoneroLiveRefreshStartAck => 212, MessageType::MessageType_MoneroGetTxKeyAck => 212,
MessageType::MessageType_MoneroLiveRefreshStepRequest => 213, MessageType::MessageType_MoneroLiveRefreshStartRequest => 213,
MessageType::MessageType_MoneroLiveRefreshStepAck => 214, MessageType::MessageType_MoneroLiveRefreshStartAck => 214,
MessageType::MessageType_MoneroLiveRefreshFinalRequest => 215, MessageType::MessageType_MoneroLiveRefreshStepRequest => 215,
MessageType::MessageType_MoneroLiveRefreshFinalAck => 216, MessageType::MessageType_MoneroLiveRefreshStepAck => 216,
MessageType::MessageType_EosGetPublicKey => 217, MessageType::MessageType_MoneroLiveRefreshFinalRequest => 217,
MessageType::MessageType_EosPublicKey => 218, MessageType::MessageType_MoneroLiveRefreshFinalAck => 218,
MessageType::MessageType_EosSignTx => 219, MessageType::MessageType_EosGetPublicKey => 219,
MessageType::MessageType_EosTxActionRequest => 220, MessageType::MessageType_EosPublicKey => 220,
MessageType::MessageType_EosTxActionAck => 221, MessageType::MessageType_EosSignTx => 221,
MessageType::MessageType_EosSignedTx => 222, MessageType::MessageType_EosTxActionRequest => 222,
MessageType::MessageType_BinanceGetAddress => 223, MessageType::MessageType_EosTxActionAck => 223,
MessageType::MessageType_BinanceAddress => 224, MessageType::MessageType_EosSignedTx => 224,
MessageType::MessageType_BinanceGetPublicKey => 225, MessageType::MessageType_BinanceGetAddress => 225,
MessageType::MessageType_BinancePublicKey => 226, MessageType::MessageType_BinanceAddress => 226,
MessageType::MessageType_BinanceSignTx => 227, MessageType::MessageType_BinanceGetPublicKey => 227,
MessageType::MessageType_BinanceTxRequest => 228, MessageType::MessageType_BinancePublicKey => 228,
MessageType::MessageType_BinanceTransferMsg => 229, MessageType::MessageType_BinanceSignTx => 229,
MessageType::MessageType_BinanceOrderMsg => 230, MessageType::MessageType_BinanceTxRequest => 230,
MessageType::MessageType_BinanceCancelMsg => 231, MessageType::MessageType_BinanceTransferMsg => 231,
MessageType::MessageType_BinanceSignedTx => 232, MessageType::MessageType_BinanceOrderMsg => 232,
MessageType::MessageType_WebAuthnListResidentCredentials => 233, MessageType::MessageType_BinanceCancelMsg => 233,
MessageType::MessageType_WebAuthnCredentials => 234, MessageType::MessageType_BinanceSignedTx => 234,
MessageType::MessageType_WebAuthnAddResidentCredential => 235, MessageType::MessageType_WebAuthnListResidentCredentials => 235,
MessageType::MessageType_WebAuthnRemoveResidentCredential => 236, MessageType::MessageType_WebAuthnCredentials => 236,
MessageType::MessageType_SolanaGetPublicKey => 237, MessageType::MessageType_WebAuthnAddResidentCredential => 237,
MessageType::MessageType_SolanaPublicKey => 238, MessageType::MessageType_WebAuthnRemoveResidentCredential => 238,
MessageType::MessageType_SolanaGetAddress => 239, MessageType::MessageType_SolanaGetPublicKey => 239,
MessageType::MessageType_SolanaAddress => 240, MessageType::MessageType_SolanaPublicKey => 240,
MessageType::MessageType_SolanaSignTx => 241, MessageType::MessageType_SolanaGetAddress => 241,
MessageType::MessageType_SolanaTxSignature => 242, MessageType::MessageType_SolanaAddress => 242,
MessageType::MessageType_NostrGetPubkey => 243, MessageType::MessageType_SolanaSignTx => 243,
MessageType::MessageType_NostrPubkey => 244, MessageType::MessageType_SolanaTxSignature => 244,
MessageType::MessageType_NostrSignEvent => 245, MessageType::MessageType_NostrGetPubkey => 245,
MessageType::MessageType_NostrEventSignature => 246, MessageType::MessageType_NostrPubkey => 246,
MessageType::MessageType_BenchmarkListNames => 247, MessageType::MessageType_NostrSignEvent => 247,
MessageType::MessageType_BenchmarkNames => 248, MessageType::MessageType_NostrEventSignature => 248,
MessageType::MessageType_BenchmarkRun => 249, MessageType::MessageType_BenchmarkListNames => 249,
MessageType::MessageType_BenchmarkResult => 250, MessageType::MessageType_BenchmarkNames => 250,
MessageType::MessageType_BenchmarkRun => 251,
MessageType::MessageType_BenchmarkResult => 252,
}; };
Self::enum_descriptor().value_by_index(index) Self::enum_descriptor().value_by_index(index)
} }
@ -1585,7 +1597,7 @@ impl MessageType {
} }
static file_descriptor_proto_data: &'static [u8] = b"\ static file_descriptor_proto_data: &'static [u8] = b"\
\n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\x86W\ \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xf2W\
\n\x0bMessageType\x12(\n\x16MessageType_Initialize\x10\0\x1a\x0c\x80\xa6\ \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\ \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\ \x10\x01\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12%\n\x13MessageType_S\
@ -1677,204 +1689,206 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x12+\n\x1dMessageType_GetOwnershipProof\x101\x1a\x08\x80\xa6\x1d\x01\ \x12+\n\x1dMessageType_GetOwnershipProof\x101\x1a\x08\x80\xa6\x1d\x01\
\x90\xb5\x18\x01\x12(\n\x1aMessageType_OwnershipProof\x102\x1a\x08\x80\ \x90\xb5\x18\x01\x12(\n\x1aMessageType_OwnershipProof\x102\x1a\x08\x80\
\xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_AuthorizeCoinJoin\x10\ \xa6\x1d\x01\x98\xb5\x18\x01\x12+\n\x1dMessageType_AuthorizeCoinJoin\x10\
3\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_CipherKe\ 3\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x128\n)MessageType_OwnershipPr\
yValue\x10\x17\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\x1cMessage\ oofNonceCommitment\x10\xde\x04\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\
Type_CipheredKeyValue\x100\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12&\ \x120\n!MessageType_OwnershipProofEntropy\x10\xdf\x04\x1a\x08\x80\xa6\
\n\x18MessageType_SignIdentity\x105\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\ \x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_CipherKeyValue\x10\x17\
\x01\x12(\n\x1aMessageType_SignedIdentity\x106\x1a\x08\x80\xa6\x1d\x01\ \x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12*\n\x1cMessageType_CipheredK\
\x98\xb5\x18\x01\x12+\n\x1dMessageType_GetECDHSessionKey\x10=\x1a\x08\ eyValue\x100\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12&\n\x18MessageTy\
\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aMessageType_ECDHSessionKey\ pe_SignIdentity\x105\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12(\n\x1aM\
\x10>\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x123\n\x1dMessageType_Debu\ essageType_SignedIdentity\x106\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\
gLinkDecision\x10d\x1a\x10\xc0\xb5\x18\x01\xb0\xb5\x18\x01\x80\xa6\x1d\ \x12+\n\x1dMessageType_GetECDHSessionKey\x10=\x1a\x08\x80\xa6\x1d\x01\
\x01\xa0\xb5\x18\x01\x12/\n\x1dMessageType_DebugLinkGetState\x10e\x1a\ \x90\xb5\x18\x01\x12(\n\x1aMessageType_ECDHSessionKey\x10>\x1a\x08\x80\
\x0c\x80\xa6\x1d\x01\xb0\xb5\x18\x01\xa0\xb5\x18\x01\x12(\n\x1aMessageTy\ \xa6\x1d\x01\x98\xb5\x18\x01\x123\n\x1dMessageType_DebugLinkDecision\x10\
pe_DebugLinkState\x10f\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12'\n\ d\x1a\x10\xc0\xb5\x18\x01\xb0\xb5\x18\x01\x80\xa6\x1d\x01\xa0\xb5\x18\
\x19MessageType_DebugLinkStop\x10g\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\ \x01\x12/\n\x1dMessageType_DebugLinkGetState\x10e\x1a\x0c\x80\xa6\x1d\
\x01\x12&\n\x18MessageType_DebugLinkLog\x10h\x1a\x08\x80\xa6\x1d\x01\xa8\ \x01\xb0\xb5\x18\x01\xa0\xb5\x18\x01\x12(\n\x1aMessageType_DebugLinkStat\
\xb5\x18\x01\x12-\n\x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x08\x80\ e\x10f\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12'\n\x19MessageType_Deb\
\xa6\x1d\x01\xa0\xb5\x18\x01\x12)\n\x1bMessageType_DebugLinkMemory\x10o\ ugLinkStop\x10g\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12&\n\x18Messag\
\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12.\n\x20MessageType_DebugLink\ eType_DebugLinkLog\x10h\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12-\n\
MemoryWrite\x10p\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12-\n\x1fMessa\ \x1fMessageType_DebugLinkMemoryRead\x10n\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\
geType_DebugLinkFlashErase\x10q\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\ \x18\x01\x12)\n\x1bMessageType_DebugLinkMemory\x10o\x1a\x08\x80\xa6\x1d\
\x12*\n\x1bMessageType_DebugLinkLayout\x10\xa9F\x1a\x08\x80\xa6\x1d\x01\ \x01\xa8\xb5\x18\x01\x12.\n\x20MessageType_DebugLinkMemoryWrite\x10p\x1a\
\xa8\xb5\x18\x01\x120\n!MessageType_DebugLinkReseedRandom\x10\xaaF\x1a\ \x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12-\n\x1fMessageType_DebugLinkFlas\
\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x120\n!MessageType_DebugLinkRecordS\ hErase\x10q\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12*\n\x1bMessageTyp\
creen\x10\xabF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20Message\ e_DebugLinkLayout\x10\xa9F\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x120\
Type_DebugLinkEraseSdCard\x10\xadF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\ \n!MessageType_DebugLinkReseedRandom\x10\xaaF\x1a\x08\x80\xa6\x1d\x01\
\x01\x12/\n\x20MessageType_DebugLinkWatchLayout\x10\xaeF\x1a\x08\x80\xa6\ \xa0\xb5\x18\x01\x120\n!MessageType_DebugLinkRecordScreen\x10\xabF\x1a\
\x1d\x01\xa0\xb5\x18\x01\x124\n%MessageType_DebugLinkResetDebugEvents\ \x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20MessageType_DebugLinkEras\
\x10\xafF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x123\n$MessageType_Deb\ eSdCard\x10\xadF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20Messa\
ugLinkOptigaSetSecMax\x10\xb0F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\ geType_DebugLinkWatchLayout\x10\xaeF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\
\x12+\n\x20MessageType_EthereumGetPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\ \x01\x124\n%MessageType_DebugLinkResetDebugEvents\x10\xafF\x1a\x08\x80\
\x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\x10\xc3\x03\x1a\x04\x98\ \xa6\x1d\x01\xa0\xb5\x18\x01\x123\n$MessageType_DebugLinkOptigaSetSecMax\
\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x108\x1a\x04\x90\ \x10\xb0F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12+\n\x20MessageType_\
\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x109\x1a\x04\x98\xb5\ EthereumGetPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessa\
\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\ geType_EthereumPublicKey\x10\xc3\x03\x1a\x04\x98\xb5\x18\x01\x12(\n\x1eM\
\x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\x03\x1a\x04\x90\ essageType_EthereumGetAddress\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMes\
\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\ sageType_EthereumAddress\x109\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageT\
\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\ ype_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Ether\
\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\xb5\ eumSignTxEIP1559\x10\xc4\x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageTy\
\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\x04\x90\xb5\ pe_EthereumTxRequest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_\
\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\x1a\x04\x98\ EthereumTxAck\x10<\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_Ethereu\
\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\xd0\x03\x1a\ mSignMessage\x10@\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVer\
\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStructRequest\ ifyMessage\x10A\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessa\
\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_EthereumTypedDat\ geSignature\x10B\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSign\
aStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Ethere\ TypedData\x10\xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_Ethereu\
umTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\x120\n%Messa\ mTypedDataStructRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&Messa\
geType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\xb5\x18\x01\x12\ geType_EthereumTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\
1\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\x1a\x04\x98\xb5\ \x124\n)MessageType_EthereumTypedDataValueRequest\x10\xd3\x03\x1a\x04\
\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\xd6\x03\x1a\x04\ \x98\xb5\x18\x01\x120\n%MessageType_EthereumTypedDataValueAck\x10\xd4\
\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10C\x1a\x04\x90\ \x03\x1a\x04\x90\xb5\x18\x01\x121\n&MessageType_EthereumTypedDataSignatu\
\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\x04\x98\xb5\ re\x10\xd5\x03\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTy\
\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\xb5\x18\x01\ pedHash\x10\xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGet\
\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\x01\x12'\n\ Address\x10C\x1a\x04\x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\
\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\x01\x12)\n\ \x10D\x1a\x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\
\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\x01\x12&\n\ \x1a\x04\x90\xb5\x18\x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\
\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\x18\x01\x12#\ \x98\xb5\x18\x01\x12'\n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\
\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\x18\x01\x12\"\ \x90\xb5\x18\x01\x12)\n\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\
\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\x18\x01\x12$\n\ \x98\xb5\x18\x01\x12&\n\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\
\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\ \x04\x90\xb5\x18\x01\x12#\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\
\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\xb5\x18\x01\ \x04\x98\xb5\x18\x01\x12\"\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\
\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\x98\xb5\x18\ \x04\x90\xb5\x18\x01\x12$\n\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\
\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\x90\xb5\x18\ \x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\
\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\x1a\x04\x98\ \x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\
\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\x01\x1a\x04\ \x01\x1a\x04\x98\xb5\x18\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\
\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\xd0\x01\x1a\ \x01\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_StellarTxOpRequest\
\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccountOp\x10\xd2\ \x10\xcb\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAdd\
\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPaymentOp\x10\ ress\x10\xcf\x01\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAd\
\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPathPaymentSt\ dress\x10\xd0\x01\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCre\
rictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_Ste\ ateAccountOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_S\
llarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\n+Message\ tellarPaymentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_S\
Type_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\xb5\x18\x01\ tellarPathPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12\
\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\x04\x90\xb5\ /\n$MessageType_StellarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\
\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\x01\x1a\x04\ \x01\x126\n+MessageType_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\
\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\x10\xd9\x01\ \x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\
\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMergeOp\x10\ \x01\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\
\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarManageData\ \x10\xd8\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowT\
Op\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarBumpSeq\ rustOp\x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAcc\
uenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_StellarMa\ ountMergeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_St\
nageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_St\ ellarManageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType\
ellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\x01\x125\n*\ _StellarBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#Messag\
MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\x04\x90\xb5\ eType_StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n\
\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\x1a\x04\x98\ *MessageType_StellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\
\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\xb1\x02\x1a\ \x18\x01\x125\n*MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\
\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\x10\xb2\x02\ \x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\
\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAddress\x10\xb3\ \x01\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\
\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAddress\x10\ \x10\xb1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublic\
\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoTxItemAck\ Key\x10\xb2\x02\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGet\
\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoTxAuxilia\ Address\x10\xb3\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_Cardan\
ryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#MessageType_\ oAddress\x10\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_Carda\
CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\ noTxItemAck\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_Carda\
geType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\x01\x12'\ noTxAuxiliaryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#M\
\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\x18\x01\ essageType_CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\
\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\xb5\x18\ \x12/\n$MessageType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\
\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\x04\x98\ \x18\x01\x12'\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\
\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\x1a\x04\ \xb5\x18\x01\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\
\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\x02\x1a\ \x98\xb5\x18\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\xc2\x02\ \x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\
\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\x10\xc3\ \x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\
\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\x10\xc4\ \xc1\x02\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\
\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCertificate\ \x10\xc2\x02\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetG\
\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_CardanoTxWith\ roup\x10\xc3\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoTo\
drawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_CardanoTx\ ken\x10\xc4\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxC\
AuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_\ ertificate\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Car\
CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&MessageType_\ danoTxWithdrawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType\
CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Me\ _CardanoTxAuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMe\
ssageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\xb5\x18\x01\ ssageType_CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Me\
\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\x04\x98\xb5\ ssageType_CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\
\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\x04\x90\xb5\ \x121\n&MessageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\
\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\x02\x1a\x04\ \xb5\x18\x01\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\
\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\x10\xce\x02\ \x04\x98\xb5\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\
\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineDatumChunk\ \x04\x90\xb5\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\
\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_CardanoTxReferen\ \x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\
ceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_Car\ \x10\xce\x02\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineD\
danoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\ atumChunk\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Cardano\
geType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Me\ TxReferenceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#Messag\
ssageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12#\n\x18Me\ eType_CardanoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\
ssageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMes\ \x1cMessageType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12\
sageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x123\n(Messa\ $\n\x19MessageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12\
geType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\x18\x01\ #\n\x18MessageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\
\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\x98\xb5\ \n\x1aMessageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x12\
\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\xf7\x03\ 3\n(MessageType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\
\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSetInputAck\ \x18\x01\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\
\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\ \x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\
nInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\ \xf7\x03\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSet\
_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\x01\x12;\ InputAck\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTr\
\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\x1a\x04\ ansactionInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Mes\
\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSetAck\x10\ sageType_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\
\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSet\ \x01\x12;\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\
OutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Mon\ \x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSe\
eroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\x128\n-Me\ tAck\x10\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransa\
ssageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\x04\x98\xb5\ ctionSetOutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Message\
\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\x10\x82\x04\ Type_MoneroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\
\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSignInputRe\ \x128\n-MessageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\
quest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTrans\ \x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\
actionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageTyp\ \x10\x82\x04\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\
e_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\x18\x01\x120\ nSignInputRequest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\x04\x98\xb5\x18\ _MoneroTransactionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\
\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\x10\x92\x04\x1a\ \n)MessageType_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\
\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageExportInitAck\x10\ \x18\x01\x120\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\
\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroKeyImageSyncSt\ \x04\x98\xb5\x18\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\
epRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroK\ \x10\x92\x04\x1a\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageEx\
eyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\x125\n*MessageTyp\ portInitAck\x10\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Moner\
e_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\x98\xb5\x18\x01\x12\ oKeyImageSyncStepRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%Mess\
1\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\x04\x1a\x04\x98\xb5\ ageType_MoneroKeyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\
\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\x9c\x04\x1a\x04\x90\ \x125\n*MessageType_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\
\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\x9d\x04\x1a\x04\x98\ \x98\xb5\x18\x01\x121\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\
\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\x10\x9e\x04\x1a\x04\ \x04\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\
\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKey\x10\x9f\x04\x1a\ \x9c\x04\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\
\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDiagRequest\x10\xa2\ \x9d\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\
\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_DebugMoneroDiagAck\ \x10\x9e\x04\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKe\
\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_MoneroGetTxKeyRe\ y\x10\x9f\x04\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDia\
quest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGe\ gRequest\x10\xa2\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_Debug\
tTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroL\ MoneroDiagAck\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_Mon\
iveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\x120\n%Messag\ eroGetTxKeyRequest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessage\
eType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\xb5\x18\x01\x123\ Type_MoneroGetTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)Messag\
\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\x1a\x04\x90\xb5\ eType_MoneroLiveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\
\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\xab\x04\x1a\x04\ \x120\n%MessageType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\
\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFinalRequest\x10\ \xb5\x18\x01\x123\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\
\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroLiveRefreshFin\ \x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\
alAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessageType_EosGetPu\ \xab\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFin\
blicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_EosPub\ alRequest\x10\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroL\
licKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15MessageType_EosS\ iveRefreshFinalAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessage\
ignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_EosTxAct\ Type_EosGetPublicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18Messa\
ionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_Eos\ geType_EosPublicKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15Mes\
TxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_E\ sageType_EosSignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessage\
osSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_Bin\ Type_EosTxActionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMe\
anceGetAddress\x10\xbc\x05\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType\ ssageType_EosTxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17\
_BinanceAddress\x10\xbd\x05\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageTyp\ MessageType_EosSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMe\
e_BinanceGetPublicKey\x10\xbe\x05\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMess\ ssageType_BinanceGetAddress\x10\xbc\x05\x1a\x04\x90\xb5\x18\x01\x12%\n\
ageType_BinancePublicKey\x10\xbf\x05\x1a\x04\x98\xb5\x18\x01\x12$\n\x19M\ \x1aMessageType_BinanceAddress\x10\xbd\x05\x1a\x04\x98\xb5\x18\x01\x12*\
essageType_BinanceSignTx\x10\xc0\x05\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cM\ \n\x1fMessageType_BinanceGetPublicKey\x10\xbe\x05\x1a\x04\x90\xb5\x18\
essageType_BinanceTxRequest\x10\xc1\x05\x1a\x04\x98\xb5\x18\x01\x12)\n\ \x01\x12'\n\x1cMessageType_BinancePublicKey\x10\xbf\x05\x1a\x04\x98\xb5\
\x1eMessageType_BinanceTransferMsg\x10\xc2\x05\x1a\x04\x90\xb5\x18\x01\ \x18\x01\x12$\n\x19MessageType_BinanceSignTx\x10\xc0\x05\x1a\x04\x90\xb5\
\x12&\n\x1bMessageType_BinanceOrderMsg\x10\xc3\x05\x1a\x04\x90\xb5\x18\ \x18\x01\x12'\n\x1cMessageType_BinanceTxRequest\x10\xc1\x05\x1a\x04\x98\
\x01\x12'\n\x1cMessageType_BinanceCancelMsg\x10\xc4\x05\x1a\x04\x90\xb5\ \xb5\x18\x01\x12)\n\x1eMessageType_BinanceTransferMsg\x10\xc2\x05\x1a\
\x18\x01\x12&\n\x1bMessageType_BinanceSignedTx\x10\xc5\x05\x1a\x04\x98\ \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_BinanceOrderMsg\x10\xc3\x05\
\xb5\x18\x01\x126\n+MessageType_WebAuthnListResidentCredentials\x10\xa0\ \x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_BinanceCancelMsg\x10\xc4\
\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_WebAuthnCredentials\ \x05\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_BinanceSignedTx\x10\
\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_WebAuthnAddResid\ \xc5\x05\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_WebAuthnListResident\
entCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\x01\x127\n,MessageType_Web\ Credentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_We\
AuthnRemoveResidentCredential\x10\xa3\x06\x1a\x04\x90\xb5\x18\x01\x12)\n\ bAuthnCredentials\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
\x1eMessageType_SolanaGetPublicKey\x10\x84\x07\x1a\x04\x90\xb5\x18\x01\ _WebAuthnAddResidentCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\x01\x127\
\x12&\n\x1bMessageType_SolanaPublicKey\x10\x85\x07\x1a\x04\x98\xb5\x18\ \n,MessageType_WebAuthnRemoveResidentCredential\x10\xa3\x06\x1a\x04\x90\
\x01\x12'\n\x1cMessageType_SolanaGetAddress\x10\x86\x07\x1a\x04\x90\xb5\ \xb5\x18\x01\x12)\n\x1eMessageType_SolanaGetPublicKey\x10\x84\x07\x1a\
\x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\x87\x07\x1a\x04\x98\xb5\ \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_SolanaPublicKey\x10\x85\x07\
\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\x07\x1a\x04\x90\xb5\ \x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_SolanaGetAddress\x10\x86\
\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\x89\x07\x1a\x04\x98\ \x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\x87\
\xb5\x18\x01\x12%\n\x1aMessageType_NostrGetPubkey\x10\xd1\x0f\x1a\x04\ \x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\x88\
\x90\xb5\x18\x01\x12\"\n\x17MessageType_NostrPubkey\x10\xd2\x0f\x1a\x04\ \x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\x10\
\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrSignEvent\x10\xd3\x0f\x1a\ \x89\x07\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrGetPubkey\
\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_NostrEventSignature\x10\xd4\ \x10\xd1\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_NostrPubkey\
\x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageType_BenchmarkListNames\ \x10\xd2\x0f\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrSignEven\
\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageType_BenchmarkNames\ t\x10\xd3\x0f\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_NostrEventSi\
\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageType_BenchmarkRun\x10\ gnature\x10\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageType_Benchm\
\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_BenchmarkResult\x10\ arkListNames\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageType_Benc\
\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08Z\x10\\\"\ hmarkNames\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageType_Benchm\
\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\ arkRun\x10\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_BenchmarkR\
\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\ esult\x10\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\x04\x08\
\xb8\x02\"\x06\x08\xe8\x07\x10\xcb\x08B8\n#com.satoshilabs.trezor.lib.pr\ Z\x10\\\"\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\xdb\x01\"\
otobufB\rTrezorMessage\x80\xa6\x1d\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 /// `FileDescriptorProto` object which was a source for this generated file

View File

@ -12865,6 +12865,8 @@ pub struct GetOwnershipProof {
pub ownership_ids: ::std::vec::Vec<::std::vec::Vec<u8>>, pub ownership_ids: ::std::vec::Vec<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.bitcoin.GetOwnershipProof.commitment_data) // @@protoc_insertion_point(field:hw.trezor.messages.bitcoin.GetOwnershipProof.commitment_data)
pub commitment_data: ::std::option::Option<::std::vec::Vec<u8>>, pub commitment_data: ::std::option::Option<::std::vec::Vec<u8>>,
// @@protoc_insertion_point(field:hw.trezor.messages.bitcoin.GetOwnershipProof.entropy_commitment)
pub entropy_commitment: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields // special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.bitcoin.GetOwnershipProof.special_fields) // @@protoc_insertion_point(special_field:hw.trezor.messages.bitcoin.GetOwnershipProof.special_fields)
pub special_fields: ::protobuf::SpecialFields, pub special_fields: ::protobuf::SpecialFields,
@ -12994,8 +12996,44 @@ impl GetOwnershipProof {
self.commitment_data.take().unwrap_or_else(|| ::std::vec::Vec::new()) self.commitment_data.take().unwrap_or_else(|| ::std::vec::Vec::new())
} }
// optional bytes entropy_commitment = 8;
pub fn entropy_commitment(&self) -> &[u8] {
match self.entropy_commitment.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_entropy_commitment(&mut self) {
self.entropy_commitment = ::std::option::Option::None;
}
pub fn has_entropy_commitment(&self) -> bool {
self.entropy_commitment.is_some()
}
// Param is passed by value, moved
pub fn set_entropy_commitment(&mut self, v: ::std::vec::Vec<u8>) {
self.entropy_commitment = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_entropy_commitment(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.entropy_commitment.is_none() {
self.entropy_commitment = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.entropy_commitment.as_mut().unwrap()
}
// Take field
pub fn take_entropy_commitment(&mut self) -> ::std::vec::Vec<u8> {
self.entropy_commitment.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(7); let mut fields = ::std::vec::Vec::with_capacity(8);
let mut oneofs = ::std::vec::Vec::with_capacity(0); let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>( fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
"address_n", "address_n",
@ -13032,6 +13070,11 @@ impl GetOwnershipProof {
|m: &GetOwnershipProof| { &m.commitment_data }, |m: &GetOwnershipProof| { &m.commitment_data },
|m: &mut GetOwnershipProof| { &mut m.commitment_data }, |m: &mut GetOwnershipProof| { &mut m.commitment_data },
)); ));
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"entropy_commitment",
|m: &GetOwnershipProof| { &m.entropy_commitment },
|m: &mut GetOwnershipProof| { &mut m.entropy_commitment },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<GetOwnershipProof>( ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<GetOwnershipProof>(
"GetOwnershipProof", "GetOwnershipProof",
fields, fields,
@ -13079,6 +13122,9 @@ impl ::protobuf::Message for GetOwnershipProof {
58 => { 58 => {
self.commitment_data = ::std::option::Option::Some(is.read_bytes()?); self.commitment_data = ::std::option::Option::Some(is.read_bytes()?);
}, },
66 => {
self.entropy_commitment = ::std::option::Option::Some(is.read_bytes()?);
},
tag => { tag => {
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
}, },
@ -13113,6 +13159,9 @@ impl ::protobuf::Message for GetOwnershipProof {
if let Some(v) = self.commitment_data.as_ref() { if let Some(v) = self.commitment_data.as_ref() {
my_size += ::protobuf::rt::bytes_size(7, &v); my_size += ::protobuf::rt::bytes_size(7, &v);
} }
if let Some(v) = self.entropy_commitment.as_ref() {
my_size += ::protobuf::rt::bytes_size(8, &v);
}
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32); self.special_fields.cached_size().set(my_size as u32);
my_size my_size
@ -13140,6 +13189,9 @@ impl ::protobuf::Message for GetOwnershipProof {
if let Some(v) = self.commitment_data.as_ref() { if let Some(v) = self.commitment_data.as_ref() {
os.write_bytes(7, v)?; os.write_bytes(7, v)?;
} }
if let Some(v) = self.entropy_commitment.as_ref() {
os.write_bytes(8, v)?;
}
os.write_unknown_fields(self.special_fields.unknown_fields())?; os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(()) ::std::result::Result::Ok(())
} }
@ -13164,6 +13216,7 @@ impl ::protobuf::Message for GetOwnershipProof {
self.user_confirmation = ::std::option::Option::None; self.user_confirmation = ::std::option::Option::None;
self.ownership_ids.clear(); self.ownership_ids.clear();
self.commitment_data = ::std::option::Option::None; self.commitment_data = ::std::option::Option::None;
self.entropy_commitment = ::std::option::Option::None;
self.special_fields.clear(); self.special_fields.clear();
} }
@ -13176,6 +13229,7 @@ impl ::protobuf::Message for GetOwnershipProof {
user_confirmation: ::std::option::Option::None, user_confirmation: ::std::option::Option::None,
ownership_ids: ::std::vec::Vec::new(), ownership_ids: ::std::vec::Vec::new(),
commitment_data: ::std::option::Option::None, commitment_data: ::std::option::Option::None,
entropy_commitment: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(), special_fields: ::protobuf::SpecialFields::new(),
}; };
&instance &instance
@ -13199,6 +13253,322 @@ impl ::protobuf::reflect::ProtobufValue for GetOwnershipProof {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>; type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
} }
// @@protoc_insertion_point(message:hw.trezor.messages.bitcoin.OwnershipProofNonceCommitment)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct OwnershipProofNonceCommitment {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.bitcoin.OwnershipProofNonceCommitment.nonce_commitment)
pub nonce_commitment: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.bitcoin.OwnershipProofNonceCommitment.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a OwnershipProofNonceCommitment {
fn default() -> &'a OwnershipProofNonceCommitment {
<OwnershipProofNonceCommitment as ::protobuf::Message>::default_instance()
}
}
impl OwnershipProofNonceCommitment {
pub fn new() -> OwnershipProofNonceCommitment {
::std::default::Default::default()
}
// optional bytes nonce_commitment = 1;
pub fn nonce_commitment(&self) -> &[u8] {
match self.nonce_commitment.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_nonce_commitment(&mut self) {
self.nonce_commitment = ::std::option::Option::None;
}
pub fn has_nonce_commitment(&self) -> bool {
self.nonce_commitment.is_some()
}
// Param is passed by value, moved
pub fn set_nonce_commitment(&mut self, v: ::std::vec::Vec<u8>) {
self.nonce_commitment = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_nonce_commitment(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.nonce_commitment.is_none() {
self.nonce_commitment = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.nonce_commitment.as_mut().unwrap()
}
// Take field
pub fn take_nonce_commitment(&mut self) -> ::std::vec::Vec<u8> {
self.nonce_commitment.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(1);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"nonce_commitment",
|m: &OwnershipProofNonceCommitment| { &m.nonce_commitment },
|m: &mut OwnershipProofNonceCommitment| { &mut m.nonce_commitment },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<OwnershipProofNonceCommitment>(
"OwnershipProofNonceCommitment",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for OwnershipProofNonceCommitment {
const NAME: &'static str = "OwnershipProofNonceCommitment";
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 {
10 => {
self.nonce_commitment = ::std::option::Option::Some(is.read_bytes()?);
},
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;
if let Some(v) = self.nonce_commitment.as_ref() {
my_size += ::protobuf::rt::bytes_size(1, &v);
}
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<()> {
if let Some(v) = self.nonce_commitment.as_ref() {
os.write_bytes(1, v)?;
}
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() -> OwnershipProofNonceCommitment {
OwnershipProofNonceCommitment::new()
}
fn clear(&mut self) {
self.nonce_commitment = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static OwnershipProofNonceCommitment {
static instance: OwnershipProofNonceCommitment = OwnershipProofNonceCommitment {
nonce_commitment: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for OwnershipProofNonceCommitment {
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("OwnershipProofNonceCommitment").unwrap()).clone()
}
}
impl ::std::fmt::Display for OwnershipProofNonceCommitment {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for OwnershipProofNonceCommitment {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.bitcoin.OwnershipProofEntropy)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct OwnershipProofEntropy {
// message fields
// @@protoc_insertion_point(field:hw.trezor.messages.bitcoin.OwnershipProofEntropy.entropy)
pub entropy: ::std::option::Option<::std::vec::Vec<u8>>,
// special fields
// @@protoc_insertion_point(special_field:hw.trezor.messages.bitcoin.OwnershipProofEntropy.special_fields)
pub special_fields: ::protobuf::SpecialFields,
}
impl<'a> ::std::default::Default for &'a OwnershipProofEntropy {
fn default() -> &'a OwnershipProofEntropy {
<OwnershipProofEntropy as ::protobuf::Message>::default_instance()
}
}
impl OwnershipProofEntropy {
pub fn new() -> OwnershipProofEntropy {
::std::default::Default::default()
}
// optional bytes entropy = 1;
pub fn entropy(&self) -> &[u8] {
match self.entropy.as_ref() {
Some(v) => v,
None => &[],
}
}
pub fn clear_entropy(&mut self) {
self.entropy = ::std::option::Option::None;
}
pub fn has_entropy(&self) -> bool {
self.entropy.is_some()
}
// Param is passed by value, moved
pub fn set_entropy(&mut self, v: ::std::vec::Vec<u8>) {
self.entropy = ::std::option::Option::Some(v);
}
// Mutable pointer to the field.
// If field is not initialized, it is initialized with default value first.
pub fn mut_entropy(&mut self) -> &mut ::std::vec::Vec<u8> {
if self.entropy.is_none() {
self.entropy = ::std::option::Option::Some(::std::vec::Vec::new());
}
self.entropy.as_mut().unwrap()
}
// Take field
pub fn take_entropy(&mut self) -> ::std::vec::Vec<u8> {
self.entropy.take().unwrap_or_else(|| ::std::vec::Vec::new())
}
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
let mut fields = ::std::vec::Vec::with_capacity(1);
let mut oneofs = ::std::vec::Vec::with_capacity(0);
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
"entropy",
|m: &OwnershipProofEntropy| { &m.entropy },
|m: &mut OwnershipProofEntropy| { &mut m.entropy },
));
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<OwnershipProofEntropy>(
"OwnershipProofEntropy",
fields,
oneofs,
)
}
}
impl ::protobuf::Message for OwnershipProofEntropy {
const NAME: &'static str = "OwnershipProofEntropy";
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 {
10 => {
self.entropy = ::std::option::Option::Some(is.read_bytes()?);
},
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;
if let Some(v) = self.entropy.as_ref() {
my_size += ::protobuf::rt::bytes_size(1, &v);
}
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<()> {
if let Some(v) = self.entropy.as_ref() {
os.write_bytes(1, v)?;
}
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() -> OwnershipProofEntropy {
OwnershipProofEntropy::new()
}
fn clear(&mut self) {
self.entropy = ::std::option::Option::None;
self.special_fields.clear();
}
fn default_instance() -> &'static OwnershipProofEntropy {
static instance: OwnershipProofEntropy = OwnershipProofEntropy {
entropy: ::std::option::Option::None,
special_fields: ::protobuf::SpecialFields::new(),
};
&instance
}
}
impl ::protobuf::MessageFull for OwnershipProofEntropy {
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("OwnershipProofEntropy").unwrap()).clone()
}
}
impl ::std::fmt::Display for OwnershipProofEntropy {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for OwnershipProofEntropy {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
// @@protoc_insertion_point(message:hw.trezor.messages.bitcoin.OwnershipProof) // @@protoc_insertion_point(message:hw.trezor.messages.bitcoin.OwnershipProof)
#[derive(PartialEq,Clone,Default,Debug)] #[derive(PartialEq,Clone,Default,Debug)]
pub struct OwnershipProof { pub struct OwnershipProof {
@ -14449,7 +14819,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x0b2<.hw.trezor.messages.bitcoin.TxAckEntropy.TxAckEntropyWrapperR\x02t\ \x0b2<.hw.trezor.messages.bitcoin.TxAckEntropy.TxAckEntropyWrapperR\x02t\
x\x1aV\n\x13TxAckEntropyWrapper\x12?\n\x07entropy\x18\x0f\x20\x02(\x0b2%\ x\x1aV\n\x13TxAckEntropyWrapper\x12?\n\x07entropy\x18\x0f\x20\x02(\x0b2%\
.hw.trezor.messages.bitcoin.TxEntropyR\x07entropy:\x04\x90\xb2\x19\x16\"\ .hw.trezor.messages.bitcoin.TxEntropyR\x07entropy:\x04\x90\xb2\x19\x16\"\
\x88\x03\n\x11GetOwnershipProof\x12\x1b\n\taddress_n\x18\x01\x20\x03(\rR\ \xb7\x03\n\x11GetOwnershipProof\x12\x1b\n\taddress_n\x18\x01\x20\x03(\rR\
\x08addressN\x12$\n\tcoin_name\x18\x02\x20\x01(\t:\x07BitcoinR\x08coinNa\ \x08addressN\x12$\n\tcoin_name\x18\x02\x20\x01(\t:\x07BitcoinR\x08coinNa\
me\x12Z\n\x0bscript_type\x18\x03\x20\x01(\x0e2+.hw.trezor.messages.bitco\ me\x12Z\n\x0bscript_type\x18\x03\x20\x01(\x0e2+.hw.trezor.messages.bitco\
in.InputScriptType:\x0cSPENDWITNESSR\nscriptType\x12P\n\x08multisig\x18\ in.InputScriptType:\x0cSPENDWITNESSR\nscriptType\x12P\n\x08multisig\x18\
@ -14457,31 +14827,34 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x08multisig\x122\n\x11user_confirmation\x18\x05\x20\x01(\x08:\x05falseR\ \x08multisig\x122\n\x11user_confirmation\x18\x05\x20\x01(\x08:\x05falseR\
\x10userConfirmation\x12#\n\rownership_ids\x18\x06\x20\x03(\x0cR\x0cowne\ \x10userConfirmation\x12#\n\rownership_ids\x18\x06\x20\x03(\x0cR\x0cowne\
rshipIds\x12)\n\x0fcommitment_data\x18\x07\x20\x01(\x0c:\0R\x0ecommitmen\ rshipIds\x12)\n\x0fcommitment_data\x18\x07\x20\x01(\x0c:\0R\x0ecommitmen\
tData\"W\n\x0eOwnershipProof\x12'\n\x0fownership_proof\x18\x01\x20\x02(\ tData\x12-\n\x12entropy_commitment\x18\x08\x20\x01(\x0cR\x11entropyCommi\
\x0cR\x0eownershipProof\x12\x1c\n\tsignature\x18\x02\x20\x02(\x0cR\tsign\ tment\"J\n\x1dOwnershipProofNonceCommitment\x12)\n\x10nonce_commitment\
ature\"\xab\x03\n\x11AuthorizeCoinJoin\x12\x20\n\x0bcoordinator\x18\x01\ \x18\x01\x20\x01(\x0cR\x0fnonceCommitment\"1\n\x15OwnershipProofEntropy\
\x20\x02(\tR\x0bcoordinator\x12\x1d\n\nmax_rounds\x18\x02\x20\x02(\x04R\ \x12\x18\n\x07entropy\x18\x01\x20\x01(\x0cR\x07entropy\"W\n\x0eOwnership\
\tmaxRounds\x127\n\x18max_coordinator_fee_rate\x18\x03\x20\x02(\rR\x15ma\ Proof\x12'\n\x0fownership_proof\x18\x01\x20\x02(\x0cR\x0eownershipProof\
xCoordinatorFeeRate\x12+\n\x12max_fee_per_kvbyte\x18\x04\x20\x02(\rR\x0f\ \x12\x1c\n\tsignature\x18\x02\x20\x02(\x0cR\tsignature\"\xab\x03\n\x11Au\
maxFeePerKvbyte\x12\x1b\n\taddress_n\x18\x05\x20\x03(\rR\x08addressN\x12\ thorizeCoinJoin\x12\x20\n\x0bcoordinator\x18\x01\x20\x02(\tR\x0bcoordina\
$\n\tcoin_name\x18\x06\x20\x01(\t:\x07BitcoinR\x08coinName\x12Z\n\x0bscr\ tor\x12\x1d\n\nmax_rounds\x18\x02\x20\x02(\x04R\tmaxRounds\x127\n\x18max\
ipt_type\x18\x07\x20\x01(\x0e2+.hw.trezor.messages.bitcoin.InputScriptTy\ _coordinator_fee_rate\x18\x03\x20\x02(\rR\x15maxCoordinatorFeeRate\x12+\
pe:\x0cSPENDADDRESSR\nscriptType\x12P\n\x0bamount_unit\x18\x08\x20\x01(\ \n\x12max_fee_per_kvbyte\x18\x04\x20\x02(\rR\x0fmaxFeePerKvbyte\x12\x1b\
\x0e2&.hw.trezor.messages.bitcoin.AmountUnit:\x07BITCOINR\namountUnit*\ \n\taddress_n\x18\x05\x20\x03(\rR\x08addressN\x12$\n\tcoin_name\x18\x06\
\x9d\x01\n\x0fInputScriptType\x12\x10\n\x0cSPENDADDRESS\x10\0\x12\x11\n\ \x20\x01(\t:\x07BitcoinR\x08coinName\x12Z\n\x0bscript_type\x18\x07\x20\
\rSPENDMULTISIG\x10\x01\x12\x0c\n\x08EXTERNAL\x10\x02\x12\x10\n\x0cSPEND\ \x01(\x0e2+.hw.trezor.messages.bitcoin.InputScriptType:\x0cSPENDADDRESSR\
WITNESS\x10\x03\x12\x14\n\x10SPENDP2SHWITNESS\x10\x04\x12\x10\n\x0cSPEND\ \nscriptType\x12P\n\x0bamount_unit\x18\x08\x20\x01(\x0e2&.hw.trezor.mess\
TAPROOT\x10\x05\x12\x1d\n\x19SPENDADDRESS_UNCOMPRESSED\x10\x06*\x99\x01\ ages.bitcoin.AmountUnit:\x07BITCOINR\namountUnit*\x9d\x01\n\x0fInputScri\
\n\x10OutputScriptType\x12\x10\n\x0cPAYTOADDRESS\x10\0\x12\x13\n\x0fPAYT\ ptType\x12\x10\n\x0cSPENDADDRESS\x10\0\x12\x11\n\rSPENDMULTISIG\x10\x01\
OSCRIPTHASH\x10\x01\x12\x11\n\rPAYTOMULTISIG\x10\x02\x12\x11\n\rPAYTOOPR\ \x12\x0c\n\x08EXTERNAL\x10\x02\x12\x10\n\x0cSPENDWITNESS\x10\x03\x12\x14\
ETURN\x10\x03\x12\x10\n\x0cPAYTOWITNESS\x10\x04\x12\x14\n\x10PAYTOP2SHWI\ \n\x10SPENDP2SHWITNESS\x10\x04\x12\x10\n\x0cSPENDTAPROOT\x10\x05\x12\x1d\
TNESS\x10\x05\x12\x10\n\x0cPAYTOTAPROOT\x10\x06*.\n\x16DecredStakingSpen\ \n\x19SPENDADDRESS_UNCOMPRESSED\x10\x06*\x99\x01\n\x10OutputScriptType\
dType\x12\t\n\x05SSGen\x10\0\x12\t\n\x05SSRTX\x10\x01*J\n\nAmountUnit\ \x12\x10\n\x0cPAYTOADDRESS\x10\0\x12\x13\n\x0fPAYTOSCRIPTHASH\x10\x01\
\x12\x0b\n\x07BITCOIN\x10\0\x12\x10\n\x0cMILLIBITCOIN\x10\x01\x12\x10\n\ \x12\x11\n\rPAYTOMULTISIG\x10\x02\x12\x11\n\rPAYTOOPRETURN\x10\x03\x12\
\x0cMICROBITCOIN\x10\x02\x12\x0b\n\x07SATOSHI\x10\x03*8\n\x14MultisigPub\ \x10\n\x0cPAYTOWITNESS\x10\x04\x12\x14\n\x10PAYTOP2SHWITNESS\x10\x05\x12\
keysOrder\x12\r\n\tPRESERVED\x10\0\x12\x11\n\rLEXICOGRAPHIC\x10\x01B?\n#\ \x10\n\x0cPAYTOTAPROOT\x10\x06*.\n\x16DecredStakingSpendType\x12\t\n\x05\
com.satoshilabs.trezor.lib.protobufB\x14TrezorMessageBitcoin\x80\xa6\x1d\ SSGen\x10\0\x12\t\n\x05SSRTX\x10\x01*J\n\nAmountUnit\x12\x0b\n\x07BITCOI\
\x01\ N\x10\0\x12\x10\n\x0cMILLIBITCOIN\x10\x01\x12\x10\n\x0cMICROBITCOIN\x10\
\x02\x12\x0b\n\x07SATOSHI\x10\x03*8\n\x14MultisigPubkeysOrder\x12\r\n\tP\
RESERVED\x10\0\x12\x11\n\rLEXICOGRAPHIC\x10\x01B?\n#com.satoshilabs.trez\
or.lib.protobufB\x14TrezorMessageBitcoin\x80\xa6\x1d\x01\
"; ";
/// `FileDescriptorProto` object which was a source for this generated file /// `FileDescriptorProto` object which was a source for this generated file
@ -14501,7 +14874,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
let mut deps = ::std::vec::Vec::with_capacity(2); let mut deps = ::std::vec::Vec::with_capacity(2);
deps.push(super::messages_common::file_descriptor().clone()); deps.push(super::messages_common::file_descriptor().clone());
deps.push(super::options::file_descriptor().clone()); deps.push(super::options::file_descriptor().clone());
let mut messages = ::std::vec::Vec::with_capacity(49); let mut messages = ::std::vec::Vec::with_capacity(51);
messages.push(MultisigRedeemScriptType::generated_message_descriptor_data()); messages.push(MultisigRedeemScriptType::generated_message_descriptor_data());
messages.push(GetPublicKey::generated_message_descriptor_data()); messages.push(GetPublicKey::generated_message_descriptor_data());
messages.push(PublicKey::generated_message_descriptor_data()); messages.push(PublicKey::generated_message_descriptor_data());
@ -14530,6 +14903,8 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
messages.push(TxAckPrevExtraData::generated_message_descriptor_data()); messages.push(TxAckPrevExtraData::generated_message_descriptor_data());
messages.push(TxAckEntropy::generated_message_descriptor_data()); messages.push(TxAckEntropy::generated_message_descriptor_data());
messages.push(GetOwnershipProof::generated_message_descriptor_data()); messages.push(GetOwnershipProof::generated_message_descriptor_data());
messages.push(OwnershipProofNonceCommitment::generated_message_descriptor_data());
messages.push(OwnershipProofEntropy::generated_message_descriptor_data());
messages.push(OwnershipProof::generated_message_descriptor_data()); messages.push(OwnershipProof::generated_message_descriptor_data());
messages.push(AuthorizeCoinJoin::generated_message_descriptor_data()); messages.push(AuthorizeCoinJoin::generated_message_descriptor_data());
messages.push(multisig_redeem_script_type::HDNodePathType::generated_message_descriptor_data()); messages.push(multisig_redeem_script_type::HDNodePathType::generated_message_descriptor_data());