feat(proto): debuglink set battery state
What changed, and why it matters
This commit adds a new debug-only protocol message called DebugLinkSetBatteryState. It lets developers or test tools tell the Trezor emulator (a software version of the device used for testing) what battery and charging state to simulate. The change only touches protocol definitions and generated code; it does not add any logic that runs on a real device or handles secrets. It is marked for debug use only and is skipped in the legacy firmware build.
No immediate action required. If reviewing the broader feature, verify that the corresponding emulator/debug handler enforces debug-link access controls and rejects this message on production builds. Confirm the message is not reachable on real hardware firmware.
Security signals we found
New debug-only wire message (wire_debug_in, MessageType 9018)
Message explicitly skipped in legacy/firmware/protob/Makefile
Core enum definition is inside `if __debug__:` block
No handler/implementation code for the message is included in the diff
Fields are simple optional booleans and a uint32; no buffers, pointers, or secrets
Evidence from the diff
The commit introduces a new protobuf message DebugLinkSetBatteryState (wire type 9018, wire_debug_in) with optional fields for state-of-charge, USB/wireless/NTC connection, charging limits, temperature control, and battery presence. It updates .proto files and regenerates bindings for Python, Rust, and core MicroPython. The message is gated under debug-only enums (if debug in core, wire_debug_in in proto) and is added to the legacy firmware skipped-message list, so it is not compiled into legacy firmware. No firmware handler, state machine changes, or security-critical logic are present in the diff.
Changed components
common/protob/messages-debug.protocommon/protob/messages.protocore/src/trezor/enums/MessageType.pycore/src/trezor/enums/__init__.pycore/src/trezor/messages.pylegacy/firmware/protob/Makefilepython/src/trezorlib/messages.pyrust/trezor-client/src/messages/generated.rsrust/trezor-client/src/protos/generated/messages.rsrust/trezor-client/src/protos/generated/messages_debug.rsInspect captured patch +698 / −243
diff --git a/common/protob/messages-debug.proto b/common/protob/messages-debug.proto
index 8a4888e3..f9ec44de 100644
--- a/common/protob/messages-debug.proto
+++ b/common/protob/messages-debug.proto
@@ -240,6 +240,21 @@ message DebugLinkEraseSdCard {
// if false, it will be all 0xFF bytes.
}
+/**
+ * Request: Set battery/power state on the emulator.
+ * @start
+ * @next Success
+ */
+message DebugLinkSetBatteryState {
+ optional uint32 soc = 1; // state of charge percentage (0-100)
+ optional bool usb_connected = 2; // USB cable connected
+ optional bool wireless_connected = 3; // wireless charging pad connected
+ optional bool ntc_connected = 4; // temperature sensor connected
+ optional bool charging_limited = 5; // charging current is limited
+ optional bool temp_control_active = 6; // temperature control is limiting charging
+ optional bool battery_connected = 7; // battery is physically connected
+}
+
/**
* Request: Start or stop tracking layout changes
* @start
diff --git a/common/protob/messages.proto b/common/protob/messages.proto
index 6ffe7ec9..8b0d82fd 100644
--- a/common/protob/messages.proto
+++ b/common/protob/messages.proto
@@ -151,6 +151,7 @@ enum MessageType {
MessageType_DebugLinkN4W1Write = 9015 [(bitcoin_only) = true, (wire_debug_out) = true];
MessageType_DebugLinkN4W1Read = 9016 [(bitcoin_only) = true, (wire_debug_out) = true];
MessageType_DebugLinkN4W1Response = 9017 [(bitcoin_only) = true, (wire_debug_in) = true];
+ MessageType_DebugLinkSetBatteryState = 9018 [(bitcoin_only) = true, (wire_debug_in) = true];
// Ethereum
MessageType_EthereumGetPublicKey = 450 [(wire_in) = true];
diff --git a/core/src/trezor/enums/MessageType.py b/core/src/trezor/enums/MessageType.py
index 82740587..2dfaae3c 100644
--- a/core/src/trezor/enums/MessageType.py
+++ b/core/src/trezor/enums/MessageType.py
@@ -126,6 +126,7 @@ if __debug__:
DebugLinkN4W1Write = 9015
DebugLinkN4W1Read = 9016
DebugLinkN4W1Response = 9017
+ DebugLinkSetBatteryState = 9018
if utils.USE_THP:
ThpCreateNewSession = 1000
ThpCredentialRequest = 1016
diff --git a/core/src/trezor/enums/__init__.py b/core/src/trezor/enums/__init__.py
index 8355c4b3..0af404b3 100644
--- a/core/src/trezor/enums/__init__.py
+++ b/core/src/trezor/enums/__init__.py
@@ -500,6 +500,7 @@ if TYPE_CHECKING:
DebugLinkN4W1Write = 9015
DebugLinkN4W1Read = 9016
DebugLinkN4W1Response = 9017
+ DebugLinkSetBatteryState = 9018
EthereumGetPublicKey = 450
EthereumPublicKey = 451
EthereumGetAddress = 56
diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py
index bf173713..bc5e2cf4 100644
--- a/core/src/trezor/messages.py
+++ b/core/src/trezor/messages.py
@@ -3068,6 +3068,32 @@ if TYPE_CHECKING:
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkEraseSdCard"]:
return isinstance(msg, cls)
+ class DebugLinkSetBatteryState(protobuf.MessageType):
+ soc: "int | None"
+ usb_connected: "bool | None"
+ wireless_connected: "bool | None"
+ ntc_connected: "bool | None"
+ charging_limited: "bool | None"
+ temp_control_active: "bool | None"
+ battery_connected: "bool | None"
+
+ def __init__(
+ self,
+ *,
+ soc: "int | None" = None,
+ usb_connected: "bool | None" = None,
+ wireless_connected: "bool | None" = None,
+ ntc_connected: "bool | None" = None,
+ charging_limited: "bool | None" = None,
+ temp_control_active: "bool | None" = None,
+ battery_connected: "bool | None" = None,
+ ) -> None:
+ pass
+
+ @classmethod
+ def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkSetBatteryState"]:
+ return isinstance(msg, cls)
+
class DebugLinkOptigaSetSecMax(protobuf.MessageType):
@classmethod
diff --git a/legacy/firmware/protob/Makefile b/legacy/firmware/protob/Makefile
index 08d1fc43..c84fd140 100644
--- a/legacy/firmware/protob/Makefile
+++ b/legacy/firmware/protob/Makefile
@@ -5,15 +5,15 @@ endif
SKIPPED_MESSAGES := Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos Tron WebAuthn \
DebugLinkGetPairingInfo DebugLinkPairingInfo DebugLinkGetGcInfo DebugLinkGcInfoItem \
DebugLinkGcInfo DebugLinkRecordScreen DebugLinkEraseSdCard DebugLinkWatchLayout \
- DebugLinkLayout DebugLinkResetDebugEvents GetNonce \
- TxAckInput TxAckOutput TxAckPrev PaymentRequest \
+ DebugLinkLayout DebugLinkResetDebugEvents DebugLinkSetBatteryState \
+ DebugLinkN4W1Connected DebugLinkN4W1Read DebugLinkN4W1Write DebugLinkN4W1Response \
+ DebugLinkOptigaSetSecMax DebugLinkSetLogFilter \
+ GetNonce TxAckInput TxAckOutput TxAckPrev PaymentRequest \
EthereumSignTypedData EthereumTypedDataStructRequest EthereumTypedDataStructAck \
EthereumTypedDataValueRequest EthereumTypedDataValueAck ShowDeviceTutorial \
UnlockBootloader AuthenticateDevice AuthenticityProof \
- Solana StellarClaimClaimableBalanceOp \
+ Solana StellarClaimClaimableBalanceOp SetBrightness \
ChangeLanguage DataChunkRequest DataChunkAck Thp \
- SetBrightness DebugLinkOptigaSetSecMax DebugLinkSetLogFilter \
- DebugLinkN4W1Connected DebugLinkN4W1Read DebugLinkN4W1Write DebugLinkN4W1Response \
BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult \
NostrGetPubkey NostrPubkey NostrSignEvent NostrEventSignature \
BleUnpair PaymentNotification Evolu \
diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py
index 805f467f..adcb6cb3 100644
--- a/python/src/trezorlib/messages.py
+++ b/python/src/trezorlib/messages.py
@@ -556,6 +556,7 @@ class MessageType(IntEnum):
DebugLinkN4W1Write = 9015
DebugLinkN4W1Read = 9016
DebugLinkN4W1Response = 9017
+ DebugLinkSetBatteryState = 9018
EthereumGetPublicKey = 450
EthereumPublicKey = 451
EthereumGetAddress = 56
@@ -4413,6 +4414,38 @@ class DebugLinkEraseSdCard(protobuf.MessageType):
self.format = format
+class DebugLinkSetBatteryState(protobuf.MessageType):
+ MESSAGE_WIRE_TYPE = 9018
+ FIELDS = {
+ 1: protobuf.Field("soc", "uint32", repeated=False, required=False, default=None),
+ 2: protobuf.Field("usb_connected", "bool", repeated=False, required=False, default=None),
+ 3: protobuf.Field("wireless_connected", "bool", repeated=False, required=False, default=None),
+ 4: protobuf.Field("ntc_connected", "bool", repeated=False, required=False, default=None),
+ 5: protobuf.Field("charging_limited", "bool", repeated=False, required=False, default=None),
+ 6: protobuf.Field("temp_control_active", "bool", repeated=False, required=False, default=None),
+ 7: protobuf.Field("battery_connected", "bool", repeated=False, required=False, default=None),
+ }
+
+ def __init__(
+ self,
+ *,
+ soc: Optional["int"] = None,
+ usb_connected: Optional["bool"] = None,
+ wireless_connected: Optional["bool"] = None,
+ ntc_connected: Optional["bool"] = None,
+ charging_limited: Optional["bool"] = None,
+ temp_control_active: Optional["bool"] = None,
+ battery_connected: Optional["bool"] = None,
+ ) -> None:
+ self.soc = soc
+ self.usb_connected = usb_connected
+ self.wireless_connected = wireless_connected
+ self.ntc_connected = ntc_connected
+ self.charging_limited = charging_limited
+ self.temp_control_active = temp_control_active
+ self.battery_connected = battery_connected
+
+
class DebugLinkWatchLayout(protobuf.MessageType):
MESSAGE_WIRE_TYPE = 9006
FIELDS = {
diff --git a/rust/trezor-client/src/messages/generated.rs b/rust/trezor-client/src/messages/generated.rs
index 243fdcd7..3f4c9eb1 100644
--- a/rust/trezor-client/src/messages/generated.rs
+++ b/rust/trezor-client/src/messages/generated.rs
@@ -96,6 +96,7 @@ trezor_message_impl! {
DebugLinkN4W1Write => MessageType_DebugLinkN4W1Write,
DebugLinkN4W1Read => MessageType_DebugLinkN4W1Read,
DebugLinkN4W1Response => MessageType_DebugLinkN4W1Response,
+ DebugLinkSetBatteryState => MessageType_DebugLinkSetBatteryState,
ThpCreateNewSession => MessageType_ThpCreateNewSession,
ThpCredentialRequest => MessageType_ThpCredentialRequest,
ThpCredentialResponse => MessageType_ThpCredentialResponse,
diff --git a/rust/trezor-client/src/protos/generated/messages.rs b/rust/trezor-client/src/protos/generated/messages.rs
index 5eef985c..b3769176 100644
--- a/rust/trezor-client/src/protos/generated/messages.rs
+++ b/rust/trezor-client/src/protos/generated/messages.rs
@@ -251,6 +251,8 @@ pub enum MessageType {
MessageType_DebugLinkN4W1Read = 9016,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkN4W1Response)
MessageType_DebugLinkN4W1Response = 9017,
+ // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkSetBatteryState)
+ MessageType_DebugLinkSetBatteryState = 9018,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_EthereumGetPublicKey)
MessageType_EthereumGetPublicKey = 450,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_EthereumPublicKey)
@@ -716,6 +718,7 @@ impl ::protobuf::Enum for MessageType {
9015 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkN4W1Write),
9016 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkN4W1Read),
9017 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkN4W1Response),
+ 9018 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkSetBatteryState),
450 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
451 => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
56 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
@@ -1005,6 +1008,7 @@ impl ::protobuf::Enum for MessageType {
"MessageType_DebugLinkN4W1Write" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkN4W1Write),
"MessageType_DebugLinkN4W1Read" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkN4W1Read),
"MessageType_DebugLinkN4W1Response" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkN4W1Response),
+ "MessageType_DebugLinkSetBatteryState" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkSetBatteryState),
"MessageType_EthereumGetPublicKey" => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
"MessageType_EthereumPublicKey" => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
"MessageType_EthereumGetAddress" => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
@@ -1293,6 +1297,7 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_DebugLinkN4W1Write,
MessageType::MessageType_DebugLinkN4W1Read,
MessageType::MessageType_DebugLinkN4W1Response,
+ MessageType::MessageType_DebugLinkSetBatteryState,
MessageType::MessageType_EthereumGetPublicKey,
MessageType::MessageType_EthereumPublicKey,
MessageType::MessageType_EthereumGetAddress,
@@ -1587,177 +1592,178 @@ impl ::protobuf::EnumFull for MessageType {
MessageType::MessageType_DebugLinkN4W1Write => 109,
MessageType::MessageType_DebugLinkN4W1Read => 110,
MessageType::MessageType_DebugLinkN4W1Response => 111,
- MessageType::MessageType_EthereumGetPublicKey => 112,
- MessageType::MessageType_EthereumPublicKey => 113,
- MessageType::MessageType_EthereumGetAddress => 114,
- MessageType::MessageType_EthereumAddress => 115,
- MessageType::MessageType_EthereumSignTx => 116,
- MessageType::MessageType_EthereumSignTxEIP1559 => 117,
- MessageType::MessageType_EthereumTxRequest => 118,
- MessageType::MessageType_EthereumTxAck => 119,
- MessageType::MessageType_EthereumSignMessage => 120,
- MessageType::MessageType_EthereumVerifyMessage => 121,
- MessageType::MessageType_EthereumMessageSignature => 122,
- MessageType::MessageType_EthereumSignTypedData => 123,
- MessageType::MessageType_EthereumTypedDataStructRequest => 124,
- MessageType::MessageType_EthereumTypedDataStructAck => 125,
- MessageType::MessageType_EthereumTypedDataValueRequest => 126,
- MessageType::MessageType_EthereumTypedDataValueAck => 127,
- MessageType::MessageType_EthereumTypedDataSignature => 128,
- MessageType::MessageType_EthereumSignTypedHash => 129,
- MessageType::MessageType_NEMGetAddress => 130,
- MessageType::MessageType_NEMAddress => 131,
- MessageType::MessageType_NEMSignTx => 132,
- MessageType::MessageType_NEMSignedTx => 133,
- MessageType::MessageType_NEMDecryptMessage => 134,
- MessageType::MessageType_NEMDecryptedMessage => 135,
- MessageType::MessageType_TezosGetAddress => 136,
- MessageType::MessageType_TezosAddress => 137,
- MessageType::MessageType_TezosSignTx => 138,
- MessageType::MessageType_TezosSignedTx => 139,
- MessageType::MessageType_TezosGetPublicKey => 140,
- MessageType::MessageType_TezosPublicKey => 141,
- MessageType::MessageType_StellarSignTx => 142,
- MessageType::MessageType_StellarTxOpRequest => 143,
- MessageType::MessageType_StellarGetAddress => 144,
- MessageType::MessageType_StellarAddress => 145,
- MessageType::MessageType_StellarCreateAccountOp => 146,
- MessageType::MessageType_StellarPaymentOp => 147,
- MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 148,
- MessageType::MessageType_StellarManageSellOfferOp => 149,
- MessageType::MessageType_StellarCreatePassiveSellOfferOp => 150,
- MessageType::MessageType_StellarSetOptionsOp => 151,
- MessageType::MessageType_StellarChangeTrustOp => 152,
- MessageType::MessageType_StellarAllowTrustOp => 153,
- MessageType::MessageType_StellarAccountMergeOp => 154,
- MessageType::MessageType_StellarManageDataOp => 155,
- MessageType::MessageType_StellarBumpSequenceOp => 156,
- MessageType::MessageType_StellarManageBuyOfferOp => 157,
- MessageType::MessageType_StellarPathPaymentStrictSendOp => 158,
- MessageType::MessageType_StellarClaimClaimableBalanceOp => 159,
- MessageType::MessageType_StellarSignedTx => 160,
- MessageType::MessageType_CardanoGetPublicKey => 161,
- MessageType::MessageType_CardanoPublicKey => 162,
- MessageType::MessageType_CardanoGetAddress => 163,
- MessageType::MessageType_CardanoAddress => 164,
- MessageType::MessageType_CardanoTxItemAck => 165,
- MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 166,
- MessageType::MessageType_CardanoTxWitnessRequest => 167,
- MessageType::MessageType_CardanoTxWitnessResponse => 168,
- MessageType::MessageType_CardanoTxHostAck => 169,
- MessageType::MessageType_CardanoTxBodyHash => 170,
- MessageType::MessageType_CardanoSignTxFinished => 171,
- MessageType::MessageType_CardanoSignTxInit => 172,
- MessageType::MessageType_CardanoTxInput => 173,
- MessageType::MessageType_CardanoTxOutput => 174,
- MessageType::MessageType_CardanoAssetGroup => 175,
- MessageType::MessageType_CardanoToken => 176,
- MessageType::MessageType_CardanoTxCertificate => 177,
- MessageType::MessageType_CardanoTxWithdrawal => 178,
- MessageType::MessageType_CardanoTxAuxiliaryData => 179,
- MessageType::MessageType_CardanoPoolOwner => 180,
- MessageType::MessageType_CardanoPoolRelayParameters => 181,
- MessageType::MessageType_CardanoGetNativeScriptHash => 182,
- MessageType::MessageType_CardanoNativeScriptHash => 183,
- MessageType::MessageType_CardanoTxMint => 184,
- MessageType::MessageType_CardanoTxCollateralInput => 185,
- MessageType::MessageType_CardanoTxRequiredSigner => 186,
- MessageType::MessageType_CardanoTxInlineDatumChunk => 187,
- MessageType::MessageType_CardanoTxReferenceScriptChunk => 188,
- MessageType::MessageType_CardanoTxReferenceInput => 189,
- MessageType::MessageType_CardanoSignMessageInit => 190,
- MessageType::MessageType_CardanoMessageDataRequest => 191,
- MessageType::MessageType_CardanoMessageDataResponse => 192,
- MessageType::MessageType_CardanoMessageSignature => 193,
- MessageType::MessageType_RippleGetAddress => 194,
- MessageType::MessageType_RippleAddress => 195,
- MessageType::MessageType_RippleSignTx => 196,
- MessageType::MessageType_RippleSignedTx => 197,
- MessageType::MessageType_MoneroTransactionInitRequest => 198,
- MessageType::MessageType_MoneroTransactionInitAck => 199,
- MessageType::MessageType_MoneroTransactionSetInputRequest => 200,
- MessageType::MessageType_MoneroTransactionSetInputAck => 201,
- MessageType::MessageType_MoneroTransactionInputViniRequest => 202,
- MessageType::MessageType_MoneroTransactionInputViniAck => 203,
- MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 204,
- MessageType::MessageType_MoneroTransactionAllInputsSetAck => 205,
- MessageType::MessageType_MoneroTransactionSetOutputRequest => 206,
- MessageType::MessageType_MoneroTransactionSetOutputAck => 207,
- MessageType::MessageType_MoneroTransactionAllOutSetRequest => 208,
- MessageType::MessageType_MoneroTransactionAllOutSetAck => 209,
- MessageType::MessageType_MoneroTransactionSignInputRequest => 210,
- MessageType::MessageType_MoneroTransactionSignInputAck => 211,
- MessageType::MessageType_MoneroTransactionFinalRequest => 212,
- MessageType::MessageType_MoneroTransactionFinalAck => 213,
- MessageType::MessageType_MoneroKeyImageExportInitRequest => 214,
- MessageType::MessageType_MoneroKeyImageExportInitAck => 215,
- MessageType::MessageType_MoneroKeyImageSyncStepRequest => 216,
- MessageType::MessageType_MoneroKeyImageSyncStepAck => 217,
- MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 218,
- MessageType::MessageType_MoneroKeyImageSyncFinalAck => 219,
- MessageType::MessageType_MoneroGetAddress => 220,
- MessageType::MessageType_MoneroAddress => 221,
- MessageType::MessageType_MoneroGetWatchKey => 222,
- MessageType::MessageType_MoneroWatchKey => 223,
- MessageType::MessageType_DebugMoneroDiagRequest => 224,
- MessageType::MessageType_DebugMoneroDiagAck => 225,
- MessageType::MessageType_MoneroGetTxKeyRequest => 226,
- MessageType::MessageType_MoneroGetTxKeyAck => 227,
- MessageType::MessageType_MoneroLiveRefreshStartRequest => 228,
- MessageType::MessageType_MoneroLiveRefreshStartAck => 229,
- MessageType::MessageType_MoneroLiveRefreshStepRequest => 230,
- MessageType::MessageType_MoneroLiveRefreshStepAck => 231,
- MessageType::MessageType_MoneroLiveRefreshFinalRequest => 232,
- MessageType::MessageType_MoneroLiveRefreshFinalAck => 233,
- MessageType::MessageType_EosGetPublicKey => 234,
- MessageType::MessageType_EosPublicKey => 235,
- MessageType::MessageType_EosSignTx => 236,
- MessageType::MessageType_EosTxActionRequest => 237,
- MessageType::MessageType_EosTxActionAck => 238,
- MessageType::MessageType_EosSignedTx => 239,
- MessageType::MessageType_WebAuthnListResidentCredentials => 240,
- MessageType::MessageType_WebAuthnCredentials => 241,
- MessageType::MessageType_WebAuthnAddResidentCredential => 242,
- MessageType::MessageType_WebAuthnRemoveResidentCredential => 243,
- MessageType::MessageType_WebAuthnCredentialsAck => 244,
- MessageType::MessageType_SolanaGetPublicKey => 245,
- MessageType::MessageType_SolanaPublicKey => 246,
- MessageType::MessageType_SolanaGetAddress => 247,
- MessageType::MessageType_SolanaAddress => 248,
- MessageType::MessageType_SolanaSignTx => 249,
- MessageType::MessageType_SolanaTxSignature => 250,
- MessageType::MessageType_ThpCreateNewSession => 251,
- MessageType::MessageType_ThpCredentialRequest => 252,
- MessageType::MessageType_ThpCredentialResponse => 253,
- MessageType::MessageType_NostrGetPubkey => 254,
- MessageType::MessageType_NostrPubkey => 255,
- MessageType::MessageType_NostrSignEvent => 256,
- MessageType::MessageType_NostrEventSignature => 257,
- MessageType::MessageType_EvoluGetNode => 258,
- MessageType::MessageType_EvoluNode => 259,
- MessageType::MessageType_EvoluSignRegistrationRequest => 260,
- MessageType::MessageType_EvoluRegistrationRequest => 261,
- MessageType::MessageType_EvoluGetDelegatedIdentityKey => 262,
- MessageType::MessageType_EvoluDelegatedIdentityKey => 263,
- MessageType::MessageType_EvoluIndexManagement => 264,
- MessageType::MessageType_EvoluIndexManagementResponse => 265,
- MessageType::MessageType_TronGetAddress => 266,
- MessageType::MessageType_TronAddress => 267,
- MessageType::MessageType_TronSignTx => 268,
- MessageType::MessageType_TronSignature => 269,
- MessageType::MessageType_TronContractRequest => 270,
- MessageType::MessageType_TronTransferContract => 271,
- MessageType::MessageType_TronTriggerSmartContract => 272,
- MessageType::MessageType_TronFreezeBalanceV2Contract => 273,
- MessageType::MessageType_TronUnfreezeBalanceV2Contract => 274,
- MessageType::MessageType_TronWithdrawUnfreeze => 275,
- MessageType::MessageType_TronVoteWitnessContract => 276,
- MessageType::MessageType_BenchmarkListNames => 277,
- MessageType::MessageType_BenchmarkNames => 278,
- MessageType::MessageType_BenchmarkRun => 279,
- MessageType::MessageType_BenchmarkResult => 280,
- MessageType::MessageType_TelemetryGet => 281,
- MessageType::MessageType_Telemetry => 282,
+ MessageType::MessageType_DebugLinkSetBatteryState => 112,
+ MessageType::MessageType_EthereumGetPublicKey => 113,
+ MessageType::MessageType_EthereumPublicKey => 114,
+ MessageType::MessageType_EthereumGetAddress => 115,
+ MessageType::MessageType_EthereumAddress => 116,
+ MessageType::MessageType_EthereumSignTx => 117,
+ MessageType::MessageType_EthereumSignTxEIP1559 => 118,
+ MessageType::MessageType_EthereumTxRequest => 119,
+ MessageType::MessageType_EthereumTxAck => 120,
+ MessageType::MessageType_EthereumSignMessage => 121,
+ MessageType::MessageType_EthereumVerifyMessage => 122,
+ MessageType::MessageType_EthereumMessageSignature => 123,
+ MessageType::MessageType_EthereumSignTypedData => 124,
+ MessageType::MessageType_EthereumTypedDataStructRequest => 125,
+ MessageType::MessageType_EthereumTypedDataStructAck => 126,
+ MessageType::MessageType_EthereumTypedDataValueRequest => 127,
+ MessageType::MessageType_EthereumTypedDataValueAck => 128,
+ MessageType::MessageType_EthereumTypedDataSignature => 129,
+ MessageType::MessageType_EthereumSignTypedHash => 130,
+ MessageType::MessageType_NEMGetAddress => 131,
+ MessageType::MessageType_NEMAddress => 132,
+ MessageType::MessageType_NEMSignTx => 133,
+ MessageType::MessageType_NEMSignedTx => 134,
+ MessageType::MessageType_NEMDecryptMessage => 135,
+ MessageType::MessageType_NEMDecryptedMessage => 136,
+ MessageType::MessageType_TezosGetAddress => 137,
+ MessageType::MessageType_TezosAddress => 138,
+ MessageType::MessageType_TezosSignTx => 139,
+ MessageType::MessageType_TezosSignedTx => 140,
+ MessageType::MessageType_TezosGetPublicKey => 141,
+ MessageType::MessageType_TezosPublicKey => 142,
+ MessageType::MessageType_StellarSignTx => 143,
+ MessageType::MessageType_StellarTxOpRequest => 144,
+ MessageType::MessageType_StellarGetAddress => 145,
+ MessageType::MessageType_StellarAddress => 146,
+ MessageType::MessageType_StellarCreateAccountOp => 147,
+ MessageType::MessageType_StellarPaymentOp => 148,
+ MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 149,
+ MessageType::MessageType_StellarManageSellOfferOp => 150,
+ MessageType::MessageType_StellarCreatePassiveSellOfferOp => 151,
+ MessageType::MessageType_StellarSetOptionsOp => 152,
+ MessageType::MessageType_StellarChangeTrustOp => 153,
+ MessageType::MessageType_StellarAllowTrustOp => 154,
+ MessageType::MessageType_StellarAccountMergeOp => 155,
+ MessageType::MessageType_StellarManageDataOp => 156,
+ MessageType::MessageType_StellarBumpSequenceOp => 157,
+ MessageType::MessageType_StellarManageBuyOfferOp => 158,
+ MessageType::MessageType_StellarPathPaymentStrictSendOp => 159,
+ MessageType::MessageType_StellarClaimClaimableBalanceOp => 160,
+ MessageType::MessageType_StellarSignedTx => 161,
+ MessageType::MessageType_CardanoGetPublicKey => 162,
+ MessageType::MessageType_CardanoPublicKey => 163,
+ MessageType::MessageType_CardanoGetAddress => 164,
+ MessageType::MessageType_CardanoAddress => 165,
+ MessageType::MessageType_CardanoTxItemAck => 166,
+ MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 167,
+ MessageType::MessageType_CardanoTxWitnessRequest => 168,
+ MessageType::MessageType_CardanoTxWitnessResponse => 169,
+ MessageType::MessageType_CardanoTxHostAck => 170,
+ MessageType::MessageType_CardanoTxBodyHash => 171,
+ MessageType::MessageType_CardanoSignTxFinished => 172,
+ MessageType::MessageType_CardanoSignTxInit => 173,
+ MessageType::MessageType_CardanoTxInput => 174,
+ MessageType::MessageType_CardanoTxOutput => 175,
+ MessageType::MessageType_CardanoAssetGroup => 176,
+ MessageType::MessageType_CardanoToken => 177,
+ MessageType::MessageType_CardanoTxCertificate => 178,
+ MessageType::MessageType_CardanoTxWithdrawal => 179,
+ MessageType::MessageType_CardanoTxAuxiliaryData => 180,
+ MessageType::MessageType_CardanoPoolOwner => 181,
+ MessageType::MessageType_CardanoPoolRelayParameters => 182,
+ MessageType::MessageType_CardanoGetNativeScriptHash => 183,
+ MessageType::MessageType_CardanoNativeScriptHash => 184,
+ MessageType::MessageType_CardanoTxMint => 185,
+ MessageType::MessageType_CardanoTxCollateralInput => 186,
+ MessageType::MessageType_CardanoTxRequiredSigner => 187,
+ MessageType::MessageType_CardanoTxInlineDatumChunk => 188,
+ MessageType::MessageType_CardanoTxReferenceScriptChunk => 189,
+ MessageType::MessageType_CardanoTxReferenceInput => 190,
+ MessageType::MessageType_CardanoSignMessageInit => 191,
+ MessageType::MessageType_CardanoMessageDataRequest => 192,
+ MessageType::MessageType_CardanoMessageDataResponse => 193,
+ MessageType::MessageType_CardanoMessageSignature => 194,
+ MessageType::MessageType_RippleGetAddress => 195,
+ MessageType::MessageType_RippleAddress => 196,
+ MessageType::MessageType_RippleSignTx => 197,
+ MessageType::MessageType_RippleSignedTx => 198,
+ MessageType::MessageType_MoneroTransactionInitRequest => 199,
+ MessageType::MessageType_MoneroTransactionInitAck => 200,
+ MessageType::MessageType_MoneroTransactionSetInputRequest => 201,
+ MessageType::MessageType_MoneroTransactionSetInputAck => 202,
+ MessageType::MessageType_MoneroTransactionInputViniRequest => 203,
+ MessageType::MessageType_MoneroTransactionInputViniAck => 204,
+ MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 205,
+ MessageType::MessageType_MoneroTransactionAllInputsSetAck => 206,
+ MessageType::MessageType_MoneroTransactionSetOutputRequest => 207,
+ MessageType::MessageType_MoneroTransactionSetOutputAck => 208,
+ MessageType::MessageType_MoneroTransactionAllOutSetRequest => 209,
+ MessageType::MessageType_MoneroTransactionAllOutSetAck => 210,
+ MessageType::MessageType_MoneroTransactionSignInputRequest => 211,
+ MessageType::MessageType_MoneroTransactionSignInputAck => 212,
+ MessageType::MessageType_MoneroTransactionFinalRequest => 213,
+ MessageType::MessageType_MoneroTransactionFinalAck => 214,
+ MessageType::MessageType_MoneroKeyImageExportInitRequest => 215,
+ MessageType::MessageType_MoneroKeyImageExportInitAck => 216,
+ MessageType::MessageType_MoneroKeyImageSyncStepRequest => 217,
+ MessageType::MessageType_MoneroKeyImageSyncStepAck => 218,
+ MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 219,
+ MessageType::MessageType_MoneroKeyImageSyncFinalAck => 220,
+ MessageType::MessageType_MoneroGetAddress => 221,
+ MessageType::MessageType_MoneroAddress => 222,
+ MessageType::MessageType_MoneroGetWatchKey => 223,
+ MessageType::MessageType_MoneroWatchKey => 224,
+ MessageType::MessageType_DebugMoneroDiagRequest => 225,
+ MessageType::MessageType_DebugMoneroDiagAck => 226,
+ MessageType::MessageType_MoneroGetTxKeyRequest => 227,
+ MessageType::MessageType_MoneroGetTxKeyAck => 228,
+ MessageType::MessageType_MoneroLiveRefreshStartRequest => 229,
+ MessageType::MessageType_MoneroLiveRefreshStartAck => 230,
+ MessageType::MessageType_MoneroLiveRefreshStepRequest => 231,
+ MessageType::MessageType_MoneroLiveRefreshStepAck => 232,
+ MessageType::MessageType_MoneroLiveRefreshFinalRequest => 233,
+ MessageType::MessageType_MoneroLiveRefreshFinalAck => 234,
+ MessageType::MessageType_EosGetPublicKey => 235,
+ MessageType::MessageType_EosPublicKey => 236,
+ MessageType::MessageType_EosSignTx => 237,
+ MessageType::MessageType_EosTxActionRequest => 238,
+ MessageType::MessageType_EosTxActionAck => 239,
+ MessageType::MessageType_EosSignedTx => 240,
+ MessageType::MessageType_WebAuthnListResidentCredentials => 241,
+ MessageType::MessageType_WebAuthnCredentials => 242,
+ MessageType::MessageType_WebAuthnAddResidentCredential => 243,
+ MessageType::MessageType_WebAuthnRemoveResidentCredential => 244,
+ MessageType::MessageType_WebAuthnCredentialsAck => 245,
+ MessageType::MessageType_SolanaGetPublicKey => 246,
+ MessageType::MessageType_SolanaPublicKey => 247,
+ MessageType::MessageType_SolanaGetAddress => 248,
+ MessageType::MessageType_SolanaAddress => 249,
+ MessageType::MessageType_SolanaSignTx => 250,
+ MessageType::MessageType_SolanaTxSignature => 251,
+ MessageType::MessageType_ThpCreateNewSession => 252,
+ MessageType::MessageType_ThpCredentialRequest => 253,
+ MessageType::MessageType_ThpCredentialResponse => 254,
+ MessageType::MessageType_NostrGetPubkey => 255,
+ MessageType::MessageType_NostrPubkey => 256,
+ MessageType::MessageType_NostrSignEvent => 257,
+ MessageType::MessageType_NostrEventSignature => 258,
+ MessageType::MessageType_EvoluGetNode => 259,
+ MessageType::MessageType_EvoluNode => 260,
+ MessageType::MessageType_EvoluSignRegistrationRequest => 261,
+ MessageType::MessageType_EvoluRegistrationRequest => 262,
+ MessageType::MessageType_EvoluGetDelegatedIdentityKey => 263,
+ MessageType::MessageType_EvoluDelegatedIdentityKey => 264,
+ MessageType::MessageType_EvoluIndexManagement => 265,
+ MessageType::MessageType_EvoluIndexManagementResponse => 266,
+ MessageType::MessageType_TronGetAddress => 267,
+ MessageType::MessageType_TronAddress => 268,
+ MessageType::MessageType_TronSignTx => 269,
+ MessageType::MessageType_TronSignature => 270,
+ MessageType::MessageType_TronContractRequest => 271,
+ MessageType::MessageType_TronTransferContract => 272,
+ MessageType::MessageType_TronTriggerSmartContract => 273,
+ MessageType::MessageType_TronFreezeBalanceV2Contract => 274,
+ MessageType::MessageType_TronUnfreezeBalanceV2Contract => 275,
+ MessageType::MessageType_TronWithdrawUnfreeze => 276,
+ MessageType::MessageType_TronVoteWitnessContract => 277,
+ MessageType::MessageType_BenchmarkListNames => 278,
+ MessageType::MessageType_BenchmarkNames => 279,
+ MessageType::MessageType_BenchmarkRun => 280,
+ MessageType::MessageType_BenchmarkResult => 281,
+ MessageType::MessageType_TelemetryGet => 282,
+ MessageType::MessageType_Telemetry => 283,
};
Self::enum_descriptor().value_by_index(index)
}
@@ -1776,7 +1782,7 @@ impl MessageType {
}
static file_descriptor_proto_data: &'static [u8] = b"\
- \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xa9c\
+ \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xdec\
\n\x0bMessageType\x12(\n\x16MessageType_Initialize\x10\0\x1a\x0c\xb0\xb5\
\x18\x01\x80\xa6\x1d\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\
@@ -1912,56 +1918,57 @@ static file_descriptor_proto_data: &'static [u8] = b"\
N4W1Write\x10\xb7F\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12,\n\x1dMes\
sageType_DebugLinkN4W1Read\x10\xb8F\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\
\x01\x120\n!MessageType_DebugLinkN4W1Response\x10\xb9F\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_EthereumGetAd\
- dress\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\x10\
- B\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\
+ \x1d\x01\xa0\xb5\x18\x01\x123\n$MessageType_DebugLinkSetBatteryState\x10\
+ \xbaF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12+\n\x20MessageType_Ethe\
+ reumGetPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageTy\
+ pe_EthereumPublicKey\x10\xc3\x03\x1a\x04\x98\xb5\x18\x01\x12(\n\x1eMessa\
+ geType_EthereumGetAddress\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessage\
+ Type_EthereumAddress\x109\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_\
+ EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_EthereumS\
+ ignTxEIP1559\x10\xc4\x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageType_E\
+ thereumTxRequest\x10;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_Ethe\
+ reumTxAck\x10<\x1a\x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSig\
+ nMessage\x10@\x1a\x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyM\
+ essage\x10A\x1a\x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSi\
+ gnature\x10B\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignType\
+ dData\x10\xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTyp\
+ edDataStructRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageTy\
+ pe_EthereumTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n\
+ )MessageType_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_EthereumSignTypedHas\
+ h\x10\xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddres\
+ s\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_StellarCreateAc\
+ countOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_Stella\
+ rPaymentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_Stella\
+ rPathPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$M\
+ essageType_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_StellarAllowTrust\
+ Op\x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccount\
+ MergeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Stella\
+ rManageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Ste\
+ llarBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageTyp\
+ e_StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*Mes\
+ sageType_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\
diff --git a/rust/trezor-client/src/protos/generated/messages_debug.rs b/rust/trezor-client/src/protos/generated/messages_debug.rs
index 890d81e8..6a19e021 100644
--- a/rust/trezor-client/src/protos/generated/messages_debug.rs
+++ b/rust/trezor-client/src/protos/generated/messages_debug.rs
@@ -4049,6 +4049,369 @@ impl ::protobuf::reflect::ProtobufValue for DebugLinkEraseSdCard {
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
}
+// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkSetBatteryState)
+#[derive(PartialEq,Clone,Default,Debug)]
+pub struct DebugLinkSetBatteryState {
+ // message fields
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetBatteryState.soc)
+ pub soc: ::std::option::Option<u32>,
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetBatteryState.usb_connected)
+ pub usb_connected: ::std::option::Option<bool>,
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetBatteryState.wireless_connected)
+ pub wireless_connected: ::std::option::Option<bool>,
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetBatteryState.ntc_connected)
+ pub ntc_connected: ::std::option::Option<bool>,
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetBatteryState.charging_limited)
+ pub charging_limited: ::std::option::Option<bool>,
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetBatteryState.temp_control_active)
+ pub temp_control_active: ::std::option::Option<bool>,
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetBatteryState.battery_connected)
+ pub battery_connected: ::std::option::Option<bool>,
+ // special fields
+ // @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkSetBatteryState.special_fields)
+ pub special_fields: ::protobuf::SpecialFields,
+}
+
+impl<'a> ::std::default::Default for &'a DebugLinkSetBatteryState {
+ fn default() -> &'a DebugLinkSetBatteryState {
+ <DebugLinkSetBatteryState as ::protobuf::Message>::default_instance()
+ }
+}
+
+impl DebugLinkSetBatteryState {
+ pub fn new() -> DebugLinkSetBatteryState {
+ ::std::default::Default::default()
+ }
+
+ // optional uint32 soc = 1;
+
+ pub fn soc(&self) -> u32 {
+ self.soc.unwrap_or(0)
+ }
+
+ pub fn clear_soc(&mut self) {
+ self.soc = ::std::option::Option::None;
+ }
+
+ pub fn has_soc(&self) -> bool {
+ self.soc.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_soc(&mut self, v: u32) {
+ self.soc = ::std::option::Option::Some(v);
+ }
+
+ // optional bool usb_connected = 2;
+
+ pub fn usb_connected(&self) -> bool {
+ self.usb_connected.unwrap_or(false)
+ }
+
+ pub fn clear_usb_connected(&mut self) {
+ self.usb_connected = ::std::option::Option::None;
+ }
+
+ pub fn has_usb_connected(&self) -> bool {
+ self.usb_connected.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_usb_connected(&mut self, v: bool) {
+ self.usb_connected = ::std::option::Option::Some(v);
+ }
+
+ // optional bool wireless_connected = 3;
+
+ pub fn wireless_connected(&self) -> bool {
+ self.wireless_connected.unwrap_or(false)
+ }
+
+ pub fn clear_wireless_connected(&mut self) {
+ self.wireless_connected = ::std::option::Option::None;
+ }
+
+ pub fn has_wireless_connected(&self) -> bool {
+ self.wireless_connected.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_wireless_connected(&mut self, v: bool) {
+ self.wireless_connected = ::std::option::Option::Some(v);
+ }
+
+ // optional bool ntc_connected = 4;
+
+ pub fn ntc_connected(&self) -> bool {
+ self.ntc_connected.unwrap_or(false)
+ }
+
+ pub fn clear_ntc_connected(&mut self) {
+ self.ntc_connected = ::std::option::Option::None;
+ }
+
+ pub fn has_ntc_connected(&self) -> bool {
+ self.ntc_connected.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_ntc_connected(&mut self, v: bool) {
+ self.ntc_connected = ::std::option::Option::Some(v);
+ }
+
+ // optional bool charging_limited = 5;
+
+ pub fn charging_limited(&self) -> bool {
+ self.charging_limited.unwrap_or(false)
+ }
+
+ pub fn clear_charging_limited(&mut self) {
+ self.charging_limited = ::std::option::Option::None;
+ }
+
+ pub fn has_charging_limited(&self) -> bool {
+ self.charging_limited.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_charging_limited(&mut self, v: bool) {
+ self.charging_limited = ::std::option::Option::Some(v);
+ }
+
+ // optional bool temp_control_active = 6;
+
+ pub fn temp_control_active(&self) -> bool {
+ self.temp_control_active.unwrap_or(false)
+ }
+
+ pub fn clear_temp_control_active(&mut self) {
+ self.temp_control_active = ::std::option::Option::None;
+ }
+
+ pub fn has_temp_control_active(&self) -> bool {
+ self.temp_control_active.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_temp_control_active(&mut self, v: bool) {
+ self.temp_control_active = ::std::option::Option::Some(v);
+ }
+
+ // optional bool battery_connected = 7;
+
+ pub fn battery_connected(&self) -> bool {
+ self.battery_connected.unwrap_or(false)
+ }
+
+ pub fn clear_battery_connected(&mut self) {
+ self.battery_connected = ::std::option::Option::None;
+ }
+
+ pub fn has_battery_connected(&self) -> bool {
+ self.battery_connected.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_battery_connected(&mut self, v: bool) {
+ self.battery_connected = ::std::option::Option::Some(v);
+ }
+
+ fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
+ let mut fields = ::std::vec::Vec::with_capacity(7);
+ let mut oneofs = ::std::vec::Vec::with_capacity(0);
+ fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
+ "soc",
+ |m: &DebugLinkSetBatteryState| { &m.soc },
+ |m: &mut DebugLinkSetBatteryState| { &mut m.soc },
+ ));
+ fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
+ "usb_connected",
+ |m: &DebugLinkSetBatteryState| { &m.usb_connected },
+ |m: &mut DebugLinkSetBatteryState| { &mut m.usb_connected },
+ ));
+ fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
+ "wireless_connected",
+ |m: &DebugLinkSetBatteryState| { &m.wireless_connected },
+ |m: &mut DebugLinkSetBatteryState| { &mut m.wireless_connected },
+ ));
+ fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
+ "ntc_connected",
+ |m: &DebugLinkSetBatteryState| { &m.ntc_connected },
+ |m: &mut DebugLinkSetBatteryState| { &mut m.ntc_connected },
+ ));
+ fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
+ "charging_limited",
+ |m: &DebugLinkSetBatteryState| { &m.charging_limited },
+ |m: &mut DebugLinkSetBatteryState| { &mut m.charging_limited },
+ ));
+ fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
+ "temp_control_active",
+ |m: &DebugLinkSetBatteryState| { &m.temp_control_active },
+ |m: &mut DebugLinkSetBatteryState| { &mut m.temp_control_active },
+ ));
+ fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
+ "battery_connected",
+ |m: &DebugLinkSetBatteryState| { &m.battery_connected },
+ |m: &mut DebugLinkSetBatteryState| { &mut m.battery_connected },
+ ));
+ ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkSetBatteryState>(
+ "DebugLinkSetBatteryState",
+ fields,
+ oneofs,
+ )
+ }
+}
+
+impl ::protobuf::Message for DebugLinkSetBatteryState {
+ const NAME: &'static str = "DebugLinkSetBatteryState";
+
+ 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 {
+ 8 => {
+ self.soc = ::std::option::Option::Some(is.read_uint32()?);
+ },
+ 16 => {
+ self.usb_connected = ::std::option::Option::Some(is.read_bool()?);
+ },
+ 24 => {
+ self.wireless_connected = ::std::option::Option::Some(is.read_bool()?);
+ },
+ 32 => {
+ self.ntc_connected = ::std::option::Option::Some(is.read_bool()?);
+ },
+ 40 => {
+ self.charging_limited = ::std::option::Option::Some(is.read_bool()?);
+ },
+ 48 => {
+ self.temp_control_active = ::std::option::Option::Some(is.read_bool()?);
+ },
+ 56 => {
+ self.battery_connected = ::std::option::Option::Some(is.read_bool()?);
+ },
+ 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.soc {
+ my_size += ::protobuf::rt::uint32_size(1, v);
+ }
+ if let Some(v) = self.usb_connected {
+ my_size += 1 + 1;
+ }
+ if let Some(v) = self.wireless_connected {
+ my_size += 1 + 1;
+ }
+ if let Some(v) = self.ntc_connected {
+ my_size += 1 + 1;
+ }
+ if let Some(v) = self.charging_limited {
+ my_size += 1 + 1;
+ }
+ if let Some(v) = self.temp_control_active {
+ my_size += 1 + 1;
+ }
+ if let Some(v) = self.battery_connected {
+ my_size += 1 + 1;
+ }
+ 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.soc {
+ os.write_uint32(1, v)?;
+ }
+ if let Some(v) = self.usb_connected {
+ os.write_bool(2, v)?;
+ }
+ if let Some(v) = self.wireless_connected {
+ os.write_bool(3, v)?;
+ }
+ if let Some(v) = self.ntc_connected {
+ os.write_bool(4, v)?;
+ }
+ if let Some(v) = self.charging_limited {
+ os.write_bool(5, v)?;
+ }
+ if let Some(v) = self.temp_control_active {
+ os.write_bool(6, v)?;
+ }
+ if let Some(v) = self.battery_connected {
+ os.write_bool(7, 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() -> DebugLinkSetBatteryState {
+ DebugLinkSetBatteryState::new()
+ }
+
+ fn clear(&mut self) {
+ self.soc = ::std::option::Option::None;
+ self.usb_connected = ::std::option::Option::None;
+ self.wireless_connected = ::std::option::Option::None;
+ self.ntc_connected = ::std::option::Option::None;
+ self.charging_limited = ::std::option::Option::None;
+ self.temp_control_active = ::std::option::Option::None;
+ self.battery_connected = ::std::option::Option::None;
+ self.special_fields.clear();
+ }
+
+ fn default_instance() -> &'static DebugLinkSetBatteryState {
+ static instance: DebugLinkSetBatteryState = DebugLinkSetBatteryState {
+ soc: ::std::option::Option::None,
+ usb_connected: ::std::option::Option::None,
+ wireless_connected: ::std::option::Option::None,
+ ntc_connected: ::std::option::Option::None,
+ charging_limited: ::std::option::Option::None,
+ temp_control_active: ::std::option::Option::None,
+ battery_connected: ::std::option::Option::None,
+ special_fields: ::protobuf::SpecialFields::new(),
+ };
+ &instance
+ }
+}
+
+impl ::protobuf::MessageFull for DebugLinkSetBatteryState {
+ 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("DebugLinkSetBatteryState").unwrap()).clone()
+ }
+}
+
+impl ::std::fmt::Display for DebugLinkSetBatteryState {
+ fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
+ ::protobuf::text_format::fmt(self, f)
+ }
+}
+
+impl ::protobuf::reflect::ProtobufValue for DebugLinkSetBatteryState {
+ type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
+}
+
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkWatchLayout)
#[derive(PartialEq,Clone,Default,Debug)]
pub struct DebugLinkWatchLayout {
@@ -5681,21 +6044,27 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x01(\rR\x07address\x12\x16\n\x06memory\x18\x02\x20\x01(\x0cR\x06memory\
\x12\x14\n\x05flash\x18\x03\x20\x01(\x08R\x05flash\"-\n\x13DebugLinkFlas\
hErase\x12\x16\n\x06sector\x18\x01\x20\x01(\rR\x06sector\".\n\x14DebugLi\
- nkEraseSdCard\x12\x16\n\x06format\x18\x01\x20\x01(\x08R\x06format\"0\n\
- \x14DebugLinkWatchLayout\x12\x14\n\x05watch\x18\x01\x20\x01(\x08R\x05wat\
- ch:\x02\x18\x01\"\x1f\n\x19DebugLinkResetDebugEvents:\x02\x18\x01\"\x1a\
- \n\x18DebugLinkOptigaSetSecMax\"\x14\n\x12DebugLinkGetGcInfo\"\xa7\x01\n\
- \x0fDebugLinkGcInfo\x12S\n\x05items\x18\x01\x20\x03(\x0b2=.hw.trezor.mes\
- sages.debug.DebugLinkGcInfo.DebugLinkGcInfoItemR\x05items\x1a?\n\x13Debu\
- gLinkGcInfoItem\x12\x12\n\x04name\x18\x01\x20\x02(\tR\x04name\x12\x14\n\
- \x05value\x18\x02\x20\x02(\x04R\x05value\"/\n\x15DebugLinkSetLogFilter\
- \x12\x16\n\x06filter\x18\x01\x20\x01(\tR\x06filter\"\x18\n\x16DebugLinkN\
- 4W1Connected\"<\n\x12DebugLinkN4W1Write\x12\x10\n\x03key\x18\x01\x20\x01\
- (\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\x0cR\x05value\"%\n\x11De\
- bugLinkN4W1Read\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\"-\n\x15Debu\
- gLinkN4W1Response\x12\x14\n\x05value\x18\x01\x20\x01(\x0cR\x05valueB=\n#\
- com.satoshilabs.trezor.lib.protobufB\x12TrezorMessageDebug\x80\xa6\x1d\
- \x01\
+ nkEraseSdCard\x12\x16\n\x06format\x18\x01\x20\x01(\x08R\x06format\"\xad\
+ \x02\n\x18DebugLinkSetBatteryState\x12\x10\n\x03soc\x18\x01\x20\x01(\rR\
+ \x03soc\x12#\n\rusb_connected\x18\x02\x20\x01(\x08R\x0cusbConnected\x12-\
+ \n\x12wireless_connected\x18\x03\x20\x01(\x08R\x11wirelessConnected\x12#\
+ \n\rntc_connected\x18\x04\x20\x01(\x08R\x0cntcConnected\x12)\n\x10chargi\
+ ng_limited\x18\x05\x20\x01(\x08R\x0fchargingLimited\x12.\n\x13temp_contr\
+ ol_active\x18\x06\x20\x01(\x08R\x11tempControlActive\x12+\n\x11battery_c\
+ onnected\x18\x07\x20\x01(\x08R\x10batteryConnected\"0\n\x14DebugLinkWatc\
+ hLayout\x12\x14\n\x05watch\x18\x01\x20\x01(\x08R\x05watch:\x02\x18\x01\"\
+ \x1f\n\x19DebugLinkResetDebugEvents:\x02\x18\x01\"\x1a\n\x18DebugLinkOpt\
+ igaSetSecMax\"\x14\n\x12DebugLinkGetGcInfo\"\xa7\x01\n\x0fDebugLinkGcInf\
+ o\x12S\n\x05items\x18\x01\x20\x03(\x0b2=.hw.trezor.messages.debug.DebugL\
+ inkGcInfo.DebugLinkGcInfoItemR\x05items\x1a?\n\x13DebugLinkGcInfoItem\
+ \x12\x12\n\x04name\x18\x01\x20\x02(\tR\x04name\x12\x14\n\x05value\x18\
+ \x02\x20\x02(\x04R\x05value\"/\n\x15DebugLinkSetLogFilter\x12\x16\n\x06f\
+ ilter\x18\x01\x20\x01(\tR\x06filter\"\x18\n\x16DebugLinkN4W1Connected\"<\
+ \n\x12DebugLinkN4W1Write\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12\
+ \x14\n\x05value\x18\x02\x20\x01(\x0cR\x05value\"%\n\x11DebugLinkN4W1Read\
+ \x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\"-\n\x15DebugLinkN4W1Respon\
+ se\x12\x14\n\x05value\x18\x01\x20\x01(\x0cR\x05valueB=\n#com.satoshilabs\
+ .trezor.lib.protobufB\x12TrezorMessageDebug\x80\xa6\x1d\x01\
";
/// `FileDescriptorProto` object which was a source for this generated file
@@ -5716,7 +6085,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
deps.push(super::messages_common::file_descriptor().clone());
deps.push(super::messages_management::file_descriptor().clone());
deps.push(super::options::file_descriptor().clone());
- let mut messages = ::std::vec::Vec::with_capacity(26);
+ let mut messages = ::std::vec::Vec::with_capacity(27);
messages.push(DebugLinkDecision::generated_message_descriptor_data());
messages.push(DebugLinkLayout::generated_message_descriptor_data());
messages.push(DebugLinkReseedRandom::generated_message_descriptor_data());
@@ -5732,6 +6101,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
messages.push(DebugLinkMemoryWrite::generated_message_descriptor_data());
messages.push(DebugLinkFlashErase::generated_message_descriptor_data());
messages.push(DebugLinkEraseSdCard::generated_message_descriptor_data());
+ messages.push(DebugLinkSetBatteryState::generated_message_descriptor_data());
messages.push(DebugLinkWatchLayout::generated_message_descriptor_data());
messages.push(DebugLinkResetDebugEvents::generated_message_descriptor_data());
messages.push(DebugLinkOptigaSetSecMax::generated_message_descriptor_data());
Why this scored 22/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.