feat(core): add trezorctl set-log-filter command
What changed, and why it matters
This commit adds a new developer-only command, `trezorctl set-log-filter`, that lets someone with physical debug access to a Trezor device change which internal log messages are printed. It only works when the device was built with a special debug-console feature enabled, and it does not change how ordinary user operations work. There is no direct evidence in the commit that this creates a security vulnerability, but any new debug command slightly increases the attack surface available to someone who already has debug access.
Treat this as a low-risk debug-infrastructure change. If reviewing for release, verify that production firmware builds do not define `USE_DBG_CONSOLE`, confirm that `syslog_set_filter()` safely handles arbitrary filter strings (length, null termination, format-string safety), and ensure the debug transport remains inaccessible to untrusted hosts.
Security signals we found
New debug-only wire message added to the protocol surface
User-supplied string passed from protobuf into a C syslog filter function
Handler is gated by USE_DBG_CONSOLE compile-time flag and __debug__ runtime guard
Legacy firmware build explicitly excludes the new message
No input sanitization or length checks visible in the diff
Evidence from the diff
The change introduces a new protobuf debug message DebugLinkSetLogFilter (type 9013, wire_debug_in) and wires it through the Trezor Core debug app to syslog_set_filter() when USE_DBG_CONSOLE is defined. It also adds a matching trezorctl CLI subcommand and regenerates language bindings (Python, Rust, mocks). The handler is gated by if __debug__ and utils.USE_DBG_CONSOLE; if the debug console is not supported it raises wire.UnexpectedMessage. Legacy firmware explicitly skips this message. The string argument is passed directly to the C logging subsystem without visible length or content validation in the diff.
Changed components
core/src/apps/debug/__init__.pycore/embed/upymod/modtrezorutils/modtrezorutils.ccommon/protob/messages-debug.protocommon/protob/messages.protopython/src/trezorlib/cli/debug.pypython/src/trezorlib/debuglink.pyInspect captured patch +616 / −336
diff --git a/common/protob/messages-debug.proto b/common/protob/messages-debug.proto
index 9afd852c..6dcbc675 100644
--- a/common/protob/messages-debug.proto
+++ b/common/protob/messages-debug.proto
@@ -295,3 +295,12 @@ message DebugLinkGcInfo {
required uint64 value = 2;
}
}
+
+
+/**
+ * Request: Set logging filter string.
+ * @end
+ */
+message DebugLinkSetLogFilter {
+ optional string filter = 1; // filter string
+}
diff --git a/common/protob/messages.proto b/common/protob/messages.proto
index 3faa7c7c..3e24f5d2 100644
--- a/common/protob/messages.proto
+++ b/common/protob/messages.proto
@@ -144,6 +144,7 @@ enum MessageType {
MessageType_DebugLinkGcInfo = 9010 [(bitcoin_only) = true, (wire_debug_out) = true];
MessageType_DebugLinkGetPairingInfo = 9011 [(bitcoin_only) = true, (wire_debug_in) = true];
MessageType_DebugLinkPairingInfo = 9012 [(bitcoin_only) = true, (wire_debug_out) = true];
+ MessageType_DebugLinkSetLogFilter = 9013 [(bitcoin_only) = true, (wire_debug_in) = true];
// Ethereum
MessageType_EthereumGetPublicKey = 450 [(wire_in) = true];
diff --git a/core/embed/upymod/modtrezorutils/modtrezorutils.c b/core/embed/upymod/modtrezorutils/modtrezorutils.c
index d8a2ba54..5dc0b79d 100644
--- a/core/embed/upymod/modtrezorutils/modtrezorutils.c
+++ b/core/embed/upymod/modtrezorutils/modtrezorutils.c
@@ -35,6 +35,8 @@
#include "embed/upymod/trezorobj.h"
#include <io/usb.h>
+#include <rtl/logging.h>
+
#include <sec/secret_keys.h>
#include <sys/bootutils.h>
#include <sys/notify.h>
@@ -684,6 +686,21 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_nrf_get_version_obj,
mod_trezorutils_nrf_get_version);
#endif
+#ifdef USE_DBG_CONSOLE
+/// def set_log_filter(filter: str) -> None:
+/// """
+/// Sets filter string for syslog
+/// """
+STATIC mp_obj_t mod_trezorutils_set_log_filter(mp_obj_t filter) {
+ mp_buffer_info_t filter_buf = {0};
+ mp_get_buffer_raise(filter, &filter_buf, MP_BUFFER_READ);
+ syslog_set_filter(filter_buf.buf, filter_buf.len);
+ return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_trezorutils_set_log_filter_obj,
+ mod_trezorutils_set_log_filter);
+#endif
+
STATIC const mp_obj_str_t mod_trezorutils_revision_obj = {
{&mp_type_bytes}, 0, sizeof(SCM_REVISION), (const byte *)SCM_REVISION};
@@ -742,6 +759,8 @@ STATIC const mp_obj_tuple_t mod_trezorutils_version_obj = {
/// """Whether the hardware has a battery."""
/// USE_NRF: bool
/// """Whether the hardware has a nRF chip."""
+/// USE_DBG_CONSOLE: bool
+/// """Whether a debug console is enabled."""
/// MODEL: str
/// """Model name."""
/// MODEL_FULL_NAME: str
@@ -824,6 +843,10 @@ STATIC const mp_rom_map_elem_t mp_module_trezorutils_globals_table[] = {
#ifdef USE_NRF
{MP_ROM_QSTR(MP_QSTR_nrf_get_version),
MP_ROM_PTR(&mod_trezorutils_nrf_get_version_obj)},
+#endif
+#ifdef USE_DBG_CONSOLE
+ {MP_ROM_QSTR(MP_QSTR_set_log_filter),
+ MP_ROM_PTR(&mod_trezorutils_set_log_filter_obj)},
#endif
{MP_ROM_QSTR(MP_QSTR_delegated_identity),
MP_ROM_PTR(&mod_trezorutils_delegated_identity_obj)},
@@ -924,6 +947,11 @@ STATIC const mp_rom_map_elem_t mp_module_trezorutils_globals_table[] = {
{MP_ROM_QSTR(MP_QSTR_USE_NRF), mp_const_true},
#else
{MP_ROM_QSTR(MP_QSTR_USE_NRF), mp_const_false},
+#endif
+#ifdef USE_DBG_CONSOLE
+ {MP_ROM_QSTR(MP_QSTR_USE_DBG_CONSOLE), mp_const_true},
+#else
+ {MP_ROM_QSTR(MP_QSTR_USE_DBG_CONSOLE), mp_const_false},
#endif
{MP_ROM_QSTR(MP_QSTR_MODEL), MP_ROM_PTR(&mod_trezorutils_model_name_obj)},
{MP_ROM_QSTR(MP_QSTR_MODEL_FULL_NAME),
diff --git a/core/mocks/generated/trezorutils.pyi b/core/mocks/generated/trezorutils.pyi
index c5ca2e79..62bab0e8 100644
--- a/core/mocks/generated/trezorutils.pyi
+++ b/core/mocks/generated/trezorutils.pyi
@@ -229,6 +229,13 @@ def nrf_get_version() -> VersionTuple:
"""
Reads version of nRF firmware
"""
+
+
+# upymod/modtrezorutils/modtrezorutils.c
+def set_log_filter(filter: str) -> None:
+ """
+ Sets filter string for syslog
+ """
SCM_REVISION: bytes
"""Git commit hash of the firmware."""
VERSION: VersionTuple
@@ -257,6 +264,8 @@ USE_POWER_MANAGER: bool
"""Whether the hardware has a battery."""
USE_NRF: bool
"""Whether the hardware has a nRF chip."""
+USE_DBG_CONSOLE: bool
+"""Whether a debug console is enabled."""
MODEL: str
"""Model name."""
MODEL_FULL_NAME: str
diff --git a/core/src/apps/debug/__init__.py b/core/src/apps/debug/__init__.py
index 7c9527b7..ed2d47bf 100644
--- a/core/src/apps/debug/__init__.py
+++ b/core/src/apps/debug/__init__.py
@@ -32,6 +32,7 @@ if __debug__:
DebugLinkPairingInfo,
DebugLinkRecordScreen,
DebugLinkReseedRandom,
+ DebugLinkSetLogFilter,
DebugLinkState,
WipeDevice,
)
@@ -418,6 +419,17 @@ if __debug__:
]
)
+ async def dispatch_DebugLinkSetLogFilter(
+ msg: DebugLinkSetLogFilter,
+ ) -> Success:
+ if utils.USE_DBG_CONSOLE:
+ from trezor.utils import set_log_filter
+
+ set_log_filter(msg.filter or "")
+ return Success()
+ else:
+ raise wire.UnexpectedMessage("Debug console not supported")
+
async def dispatch_WipeDevice(msg: WipeDevice) -> None:
"""Wipe the device and restart the event loop."""
from storage import wipe
@@ -543,6 +555,7 @@ if __debug__:
MessageType.DebugLinkWatchLayout: _no_op,
MessageType.DebugLinkResetDebugEvents: _no_op,
MessageType.DebugLinkGetGcInfo: dispatch_DebugLinkGetGcInfo,
+ MessageType.DebugLinkSetLogFilter: dispatch_DebugLinkSetLogFilter,
MessageType.WipeDevice: dispatch_WipeDevice,
}
diff --git a/core/src/trezor/enums/MessageType.py b/core/src/trezor/enums/MessageType.py
index 79a26005..531b72cf 100644
--- a/core/src/trezor/enums/MessageType.py
+++ b/core/src/trezor/enums/MessageType.py
@@ -117,6 +117,7 @@ if __debug__:
DebugLinkGcInfo = 9010
DebugLinkGetPairingInfo = 9011
DebugLinkPairingInfo = 9012
+ DebugLinkSetLogFilter = 9013
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 6085a728..cd4da3b6 100644
--- a/core/src/trezor/enums/__init__.py
+++ b/core/src/trezor/enums/__init__.py
@@ -478,6 +478,7 @@ if TYPE_CHECKING:
DebugLinkGcInfo = 9010
DebugLinkGetPairingInfo = 9011
DebugLinkPairingInfo = 9012
+ DebugLinkSetLogFilter = 9013
EthereumGetPublicKey = 450
EthereumPublicKey = 451
EthereumGetAddress = 56
diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py
index 71b1a331..9cb2bc10 100644
--- a/core/src/trezor/messages.py
+++ b/core/src/trezor/messages.py
@@ -3085,6 +3085,20 @@ if TYPE_CHECKING:
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkGcInfo"]:
return isinstance(msg, cls)
+ class DebugLinkSetLogFilter(protobuf.MessageType):
+ filter: "str | None"
+
+ def __init__(
+ self,
+ *,
+ filter: "str | None" = None,
+ ) -> None:
+ pass
+
+ @classmethod
+ def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkSetLogFilter"]:
+ return isinstance(msg, cls)
+
class DebugLinkGcInfoItem(protobuf.MessageType):
name: "str"
value: "int"
diff --git a/core/src/trezor/utils.py b/core/src/trezor/utils.py
index f90f67a8..95cf0f44 100644
--- a/core/src/trezor/utils.py
+++ b/core/src/trezor/utils.py
@@ -24,6 +24,7 @@ from trezorutils import ( # noqa: F401
USE_BACKLIGHT,
USE_BLE,
USE_BUTTON,
+ USE_DBG_CONSOLE,
USE_HAPTIC,
USE_NRF,
USE_OPTIGA,
@@ -58,6 +59,9 @@ from trezorutils import ( # noqa: F401
if USE_NRF:
from trezorutils import nrf_get_version # noqa: F401
+if USE_DBG_CONSOLE:
+ from trezorutils import set_log_filter # noqa: F401
+
if USE_SERIAL_NUMBER:
from trezorutils import serial_number # noqa: F401
diff --git a/legacy/firmware/protob/Makefile b/legacy/firmware/protob/Makefile
index d933636d..4eaf22d8 100644
--- a/legacy/firmware/protob/Makefile
+++ b/legacy/firmware/protob/Makefile
@@ -12,7 +12,7 @@ SKIPPED_MESSAGES := Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tez
UnlockBootloader AuthenticateDevice AuthenticityProof \
Solana StellarClaimClaimableBalanceOp \
ChangeLanguage DataChunkRequest DataChunkAck Thp \
- SetBrightness DebugLinkOptigaSetSecMax \
+ SetBrightness DebugLinkOptigaSetSecMax DebugLinkSetLogFilter \
BenchmarkListNames BenchmarkRun BenchmarkNames BenchmarkResult \
NostrGetPubkey NostrPubkey NostrSignEvent NostrEventSignature \
BleUnpair PaymentNotification Evolu \
diff --git a/python/src/trezorlib/cli/debug.py b/python/src/trezorlib/cli/debug.py
index 39d2d230..110b0522 100644
--- a/python/src/trezorlib/cli/debug.py
+++ b/python/src/trezorlib/cli/debug.py
@@ -18,10 +18,11 @@ from typing import TYPE_CHECKING, Union
import click
-from ..debuglink import TrezorClientDebugLink
+from ..debuglink import DebugLink, TrezorClientDebugLink
from ..debuglink import optiga_set_sec_max as debuglink_optiga_set_sec_max
from ..debuglink import prodtest_t1 as debuglink_prodtest_t1
from ..debuglink import record_screen
+from ..debuglink import set_log_filter as debuglink_set_log_filter
from ..transport.session import Session
from . import with_session
@@ -71,3 +72,15 @@ def prodtest_t1(session: "Session") -> None:
def optiga_set_sec_max(session: "Session") -> None:
"""Set Optiga's security event counter to maximum."""
debuglink_optiga_set_sec_max(session)
+
+
+@cli.command()
+@click.argument("filter", required=False)
+@with_session(seedless=True)
+def set_log_filter(session: "Session", filter: str) -> None:
+ """Set logging filter string."""
+ debug_transport = session.client.protocol.transport.find_debug()
+ debug_transport.open()
+ debug = DebugLink(transport=debug_transport)
+ debuglink_set_log_filter(debug, filter)
+ debug_transport.close()
diff --git a/python/src/trezorlib/debuglink.py b/python/src/trezorlib/debuglink.py
index a7cc898d..81454713 100644
--- a/python/src/trezorlib/debuglink.py
+++ b/python/src/trezorlib/debuglink.py
@@ -1833,6 +1833,10 @@ def optiga_set_sec_max(session: "Session") -> None:
session.call(messages.DebugLinkOptigaSetSecMax(), expect=messages.Success)
+def set_log_filter(debug: DebugLink, filter: str) -> None:
+ debug._call(messages.DebugLinkSetLogFilter(filter=filter))
+
+
class DisplayStyle(Enum):
Hidden = "Hidden"
Shown = "Shown"
diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py
index f9a023d5..370102f3 100644
--- a/python/src/trezorlib/messages.py
+++ b/python/src/trezorlib/messages.py
@@ -531,6 +531,7 @@ class MessageType(IntEnum):
DebugLinkGcInfo = 9010
DebugLinkGetPairingInfo = 9011
DebugLinkPairingInfo = 9012
+ DebugLinkSetLogFilter = 9013
EthereumGetPublicKey = 450
EthereumPublicKey = 451
EthereumGetAddress = 56
@@ -4405,6 +4406,20 @@ class DebugLinkGcInfo(protobuf.MessageType):
self.items: Sequence["DebugLinkGcInfoItem"] = items if items is not None else []
+class DebugLinkSetLogFilter(protobuf.MessageType):
+ MESSAGE_WIRE_TYPE = 9013
+ FIELDS = {
+ 1: protobuf.Field("filter", "string", repeated=False, required=False, default=None),
+ }
+
+ def __init__(
+ self,
+ *,
+ filter: Optional["str"] = None,
+ ) -> None:
+ self.filter = filter
+
+
class DebugLinkGcInfoItem(protobuf.MessageType):
MESSAGE_WIRE_TYPE = None
FIELDS = {
diff --git a/rust/trezor-client/src/messages/generated.rs b/rust/trezor-client/src/messages/generated.rs
index 32ca32b1..bcc478db 100644
--- a/rust/trezor-client/src/messages/generated.rs
+++ b/rust/trezor-client/src/messages/generated.rs
@@ -91,6 +91,7 @@ trezor_message_impl! {
DebugLinkGcInfo => MessageType_DebugLinkGcInfo,
DebugLinkGetPairingInfo => MessageType_DebugLinkGetPairingInfo,
DebugLinkPairingInfo => MessageType_DebugLinkPairingInfo,
+ DebugLinkSetLogFilter => MessageType_DebugLinkSetLogFilter,
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 c806fe6d..15aaf01b 100644
--- a/rust/trezor-client/src/protos/generated/messages.rs
+++ b/rust/trezor-client/src/protos/generated/messages.rs
@@ -241,6 +241,8 @@ pub enum MessageType {
MessageType_DebugLinkGetPairingInfo = 9011,
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkPairingInfo)
MessageType_DebugLinkPairingInfo = 9012,
+ // @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkSetLogFilter)
+ MessageType_DebugLinkSetLogFilter = 9013,
// @@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)
@@ -673,6 +675,7 @@ impl ::protobuf::Enum for MessageType {
9010 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo),
9011 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetPairingInfo),
9012 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkPairingInfo),
+ 9013 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkSetLogFilter),
450 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
451 => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
56 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
@@ -943,6 +946,7 @@ impl ::protobuf::Enum for MessageType {
"MessageType_DebugLinkGcInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo),
"MessageType_DebugLinkGetPairingInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetPairingInfo),
"MessageType_DebugLinkPairingInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkPairingInfo),
+ "MessageType_DebugLinkSetLogFilter" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkSetLogFilter),
"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),
@@ -1212,6 +1216,7 @@ impl ::protobuf::Enum for MessageType {
MessageType::MessageType_DebugLinkGcInfo,
MessageType::MessageType_DebugLinkGetPairingInfo,
MessageType::MessageType_DebugLinkPairingInfo,
+ MessageType::MessageType_DebugLinkSetLogFilter,
MessageType::MessageType_EthereumGetPublicKey,
MessageType::MessageType_EthereumPublicKey,
MessageType::MessageType_EthereumGetAddress,
@@ -1487,163 +1492,164 @@ impl ::protobuf::EnumFull for MessageType {
MessageType::MessageType_DebugLinkGcInfo => 104,
MessageType::MessageType_DebugLinkGetPairingInfo => 105,
MessageType::MessageType_DebugLinkPairingInfo => 106,
- MessageType::MessageType_EthereumGetPublicKey => 107,
- MessageType::MessageType_EthereumPublicKey => 108,
- MessageType::MessageType_EthereumGetAddress => 109,
- MessageType::MessageType_EthereumAddress => 110,
- MessageType::MessageType_EthereumSignTx => 111,
- MessageType::MessageType_EthereumSignTxEIP1559 => 112,
- MessageType::MessageType_EthereumTxRequest => 113,
- MessageType::MessageType_EthereumTxAck => 114,
- MessageType::MessageType_EthereumSignMessage => 115,
- MessageType::MessageType_EthereumVerifyMessage => 116,
- MessageType::MessageType_EthereumMessageSignature => 117,
- MessageType::MessageType_EthereumSignTypedData => 118,
- MessageType::MessageType_EthereumTypedDataStructRequest => 119,
- MessageType::MessageType_EthereumTypedDataStructAck => 120,
- MessageType::MessageType_EthereumTypedDataValueRequest => 121,
- MessageType::MessageType_EthereumTypedDataValueAck => 122,
- MessageType::MessageType_EthereumTypedDataSignature => 123,
- MessageType::MessageType_EthereumSignTypedHash => 124,
- MessageType::MessageType_NEMGetAddress => 125,
- MessageType::MessageType_NEMAddress => 126,
- MessageType::MessageType_NEMSignTx => 127,
- MessageType::MessageType_NEMSignedTx => 128,
- MessageType::MessageType_NEMDecryptMessage => 129,
- MessageType::MessageType_NEMDecryptedMessage => 130,
- MessageType::MessageType_TezosGetAddress => 131,
- MessageType::MessageType_TezosAddress => 132,
- MessageType::MessageType_TezosSignTx => 133,
- MessageType::MessageType_TezosSignedTx => 134,
- MessageType::MessageType_TezosGetPublicKey => 135,
- MessageType::MessageType_TezosPublicKey => 136,
- MessageType::MessageType_StellarSignTx => 137,
- MessageType::MessageType_StellarTxOpRequest => 138,
- MessageType::MessageType_StellarGetAddress => 139,
- MessageType::MessageType_StellarAddress => 140,
- MessageType::MessageType_StellarCreateAccountOp => 141,
- MessageType::MessageType_StellarPaymentOp => 142,
- MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 143,
- MessageType::MessageType_StellarManageSellOfferOp => 144,
- MessageType::MessageType_StellarCreatePassiveSellOfferOp => 145,
- MessageType::MessageType_StellarSetOptionsOp => 146,
- MessageType::MessageType_StellarChangeTrustOp => 147,
- MessageType::MessageType_StellarAllowTrustOp => 148,
- MessageType::MessageType_StellarAccountMergeOp => 149,
- MessageType::MessageType_StellarManageDataOp => 150,
- MessageType::MessageType_StellarBumpSequenceOp => 151,
- MessageType::MessageType_StellarManageBuyOfferOp => 152,
- MessageType::MessageType_StellarPathPaymentStrictSendOp => 153,
- MessageType::MessageType_StellarClaimClaimableBalanceOp => 154,
- MessageType::MessageType_StellarSignedTx => 155,
- MessageType::MessageType_CardanoGetPublicKey => 156,
- MessageType::MessageType_CardanoPublicKey => 157,
- MessageType::MessageType_CardanoGetAddress => 158,
- MessageType::MessageType_CardanoAddress => 159,
- MessageType::MessageType_CardanoTxItemAck => 160,
- MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 161,
- MessageType::MessageType_CardanoTxWitnessRequest => 162,
- MessageType::MessageType_CardanoTxWitnessResponse => 163,
- MessageType::MessageType_CardanoTxHostAck => 164,
- MessageType::MessageType_CardanoTxBodyHash => 165,
- MessageType::MessageType_CardanoSignTxFinished => 166,
- MessageType::MessageType_CardanoSignTxInit => 167,
- MessageType::MessageType_CardanoTxInput => 168,
- MessageType::MessageType_CardanoTxOutput => 169,
- MessageType::MessageType_CardanoAssetGroup => 170,
- MessageType::MessageType_CardanoToken => 171,
- MessageType::MessageType_CardanoTxCertificate => 172,
- MessageType::MessageType_CardanoTxWithdrawal => 173,
- MessageType::MessageType_CardanoTxAuxiliaryData => 174,
- MessageType::MessageType_CardanoPoolOwner => 175,
- MessageType::MessageType_CardanoPoolRelayParameters => 176,
- MessageType::MessageType_CardanoGetNativeScriptHash => 177,
- MessageType::MessageType_CardanoNativeScriptHash => 178,
- MessageType::MessageType_CardanoTxMint => 179,
- MessageType::MessageType_CardanoTxCollateralInput => 180,
- MessageType::MessageType_CardanoTxRequiredSigner => 181,
- MessageType::MessageType_CardanoTxInlineDatumChunk => 182,
- MessageType::MessageType_CardanoTxReferenceScriptChunk => 183,
- MessageType::MessageType_CardanoTxReferenceInput => 184,
- MessageType::MessageType_CardanoSignMessageInit => 185,
- MessageType::MessageType_CardanoMessageDataRequest => 186,
- MessageType::MessageType_CardanoMessageDataResponse => 187,
- MessageType::MessageType_CardanoMessageSignature => 188,
- MessageType::MessageType_RippleGetAddress => 189,
- MessageType::MessageType_RippleAddress => 190,
- MessageType::MessageType_RippleSignTx => 191,
- MessageType::MessageType_RippleSignedTx => 192,
- MessageType::MessageType_MoneroTransactionInitRequest => 193,
- MessageType::MessageType_MoneroTransactionInitAck => 194,
- MessageType::MessageType_MoneroTransactionSetInputRequest => 195,
- MessageType::MessageType_MoneroTransactionSetInputAck => 196,
- MessageType::MessageType_MoneroTransactionInputViniRequest => 197,
- MessageType::MessageType_MoneroTransactionInputViniAck => 198,
- MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 199,
- MessageType::MessageType_MoneroTransactionAllInputsSetAck => 200,
- MessageType::MessageType_MoneroTransactionSetOutputRequest => 201,
- MessageType::MessageType_MoneroTransactionSetOutputAck => 202,
- MessageType::MessageType_MoneroTransactionAllOutSetRequest => 203,
- MessageType::MessageType_MoneroTransactionAllOutSetAck => 204,
- MessageType::MessageType_MoneroTransactionSignInputRequest => 205,
- MessageType::MessageType_MoneroTransactionSignInputAck => 206,
- MessageType::MessageType_MoneroTransactionFinalRequest => 207,
- MessageType::MessageType_MoneroTransactionFinalAck => 208,
- MessageType::MessageType_MoneroKeyImageExportInitRequest => 209,
- MessageType::MessageType_MoneroKeyImageExportInitAck => 210,
- MessageType::MessageType_MoneroKeyImageSyncStepRequest => 211,
- MessageType::MessageType_MoneroKeyImageSyncStepAck => 212,
- MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 213,
- MessageType::MessageType_MoneroKeyImageSyncFinalAck => 214,
- MessageType::MessageType_MoneroGetAddress => 215,
- MessageType::MessageType_MoneroAddress => 216,
- MessageType::MessageType_MoneroGetWatchKey => 217,
- MessageType::MessageType_MoneroWatchKey => 218,
- MessageType::MessageType_DebugMoneroDiagRequest => 219,
- MessageType::MessageType_DebugMoneroDiagAck => 220,
- MessageType::MessageType_MoneroGetTxKeyRequest => 221,
- MessageType::MessageType_MoneroGetTxKeyAck => 222,
- MessageType::MessageType_MoneroLiveRefreshStartRequest => 223,
- MessageType::MessageType_MoneroLiveRefreshStartAck => 224,
- MessageType::MessageType_MoneroLiveRefreshStepRequest => 225,
- MessageType::MessageType_MoneroLiveRefreshStepAck => 226,
- MessageType::MessageType_MoneroLiveRefreshFinalRequest => 227,
- MessageType::MessageType_MoneroLiveRefreshFinalAck => 228,
- MessageType::MessageType_EosGetPublicKey => 229,
- MessageType::MessageType_EosPublicKey => 230,
- MessageType::MessageType_EosSignTx => 231,
- MessageType::MessageType_EosTxActionRequest => 232,
- MessageType::MessageType_EosTxActionAck => 233,
- MessageType::MessageType_EosSignedTx => 234,
- MessageType::MessageType_WebAuthnListResidentCredentials => 235,
- MessageType::MessageType_WebAuthnCredentials => 236,
- MessageType::MessageType_WebAuthnAddResidentCredential => 237,
- MessageType::MessageType_WebAuthnRemoveResidentCredential => 238,
- MessageType::MessageType_SolanaGetPublicKey => 239,
- MessageType::MessageType_SolanaPublicKey => 240,
- MessageType::MessageType_SolanaGetAddress => 241,
- MessageType::MessageType_SolanaAddress => 242,
- MessageType::MessageType_SolanaSignTx => 243,
- MessageType::MessageType_SolanaTxSignature => 244,
- MessageType::MessageType_ThpCreateNewSession => 245,
- MessageType::MessageType_ThpCredentialRequest => 246,
- MessageType::MessageType_ThpCredentialResponse => 247,
- MessageType::MessageType_NostrGetPubkey => 248,
- MessageType::MessageType_NostrPubkey => 249,
- MessageType::MessageType_NostrSignEvent => 250,
- MessageType::MessageType_NostrEventSignature => 251,
- MessageType::MessageType_EvoluGetNode => 252,
- MessageType::MessageType_EvoluNode => 253,
- MessageType::MessageType_EvoluSignRegistrationRequest => 254,
- MessageType::MessageType_EvoluRegistrationRequest => 255,
- MessageType::MessageType_EvoluGetDelegatedIdentityKey => 256,
- MessageType::MessageType_EvoluDelegatedIdentityKey => 257,
- MessageType::MessageType_TronGetAddress => 258,
- MessageType::MessageType_TronAddress => 259,
- MessageType::MessageType_BenchmarkListNames => 260,
- MessageType::MessageType_BenchmarkNames => 261,
- MessageType::MessageType_BenchmarkRun => 262,
- MessageType::MessageType_BenchmarkResult => 263,
+ MessageType::MessageType_DebugLinkSetLogFilter => 107,
+ MessageType::MessageType_EthereumGetPublicKey => 108,
+ MessageType::MessageType_EthereumPublicKey => 109,
+ MessageType::MessageType_EthereumGetAddress => 110,
+ MessageType::MessageType_EthereumAddress => 111,
+ MessageType::MessageType_EthereumSignTx => 112,
+ MessageType::MessageType_EthereumSignTxEIP1559 => 113,
+ MessageType::MessageType_EthereumTxRequest => 114,
+ MessageType::MessageType_EthereumTxAck => 115,
+ MessageType::MessageType_EthereumSignMessage => 116,
+ MessageType::MessageType_EthereumVerifyMessage => 117,
+ MessageType::MessageType_EthereumMessageSignature => 118,
+ MessageType::MessageType_EthereumSignTypedData => 119,
+ MessageType::MessageType_EthereumTypedDataStructRequest => 120,
+ MessageType::MessageType_EthereumTypedDataStructAck => 121,
+ MessageType::MessageType_EthereumTypedDataValueRequest => 122,
+ MessageType::MessageType_EthereumTypedDataValueAck => 123,
+ MessageType::MessageType_EthereumTypedDataSignature => 124,
+ MessageType::MessageType_EthereumSignTypedHash => 125,
+ MessageType::MessageType_NEMGetAddress => 126,
+ MessageType::MessageType_NEMAddress => 127,
+ MessageType::MessageType_NEMSignTx => 128,
+ MessageType::MessageType_NEMSignedTx => 129,
+ MessageType::MessageType_NEMDecryptMessage => 130,
+ MessageType::MessageType_NEMDecryptedMessage => 131,
+ MessageType::MessageType_TezosGetAddress => 132,
+ MessageType::MessageType_TezosAddress => 133,
+ MessageType::MessageType_TezosSignTx => 134,
+ MessageType::MessageType_TezosSignedTx => 135,
+ MessageType::MessageType_TezosGetPublicKey => 136,
+ MessageType::MessageType_TezosPublicKey => 137,
+ MessageType::MessageType_StellarSignTx => 138,
+ MessageType::MessageType_StellarTxOpRequest => 139,
+ MessageType::MessageType_StellarGetAddress => 140,
+ MessageType::MessageType_StellarAddress => 141,
+ MessageType::MessageType_StellarCreateAccountOp => 142,
+ MessageType::MessageType_StellarPaymentOp => 143,
+ MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 144,
+ MessageType::MessageType_StellarManageSellOfferOp => 145,
+ MessageType::MessageType_StellarCreatePassiveSellOfferOp => 146,
+ MessageType::MessageType_StellarSetOptionsOp => 147,
+ MessageType::MessageType_StellarChangeTrustOp => 148,
+ MessageType::MessageType_StellarAllowTrustOp => 149,
+ MessageType::MessageType_StellarAccountMergeOp => 150,
+ MessageType::MessageType_StellarManageDataOp => 151,
+ MessageType::MessageType_StellarBumpSequenceOp => 152,
+ MessageType::MessageType_StellarManageBuyOfferOp => 153,
+ MessageType::MessageType_StellarPathPaymentStrictSendOp => 154,
+ MessageType::MessageType_StellarClaimClaimableBalanceOp => 155,
+ MessageType::MessageType_StellarSignedTx => 156,
+ MessageType::MessageType_CardanoGetPublicKey => 157,
+ MessageType::MessageType_CardanoPublicKey => 158,
+ MessageType::MessageType_CardanoGetAddress => 159,
+ MessageType::MessageType_CardanoAddress => 160,
+ MessageType::MessageType_CardanoTxItemAck => 161,
+ MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 162,
+ MessageType::MessageType_CardanoTxWitnessRequest => 163,
+ MessageType::MessageType_CardanoTxWitnessResponse => 164,
+ MessageType::MessageType_CardanoTxHostAck => 165,
+ MessageType::MessageType_CardanoTxBodyHash => 166,
+ MessageType::MessageType_CardanoSignTxFinished => 167,
+ MessageType::MessageType_CardanoSignTxInit => 168,
+ MessageType::MessageType_CardanoTxInput => 169,
+ MessageType::MessageType_CardanoTxOutput => 170,
+ MessageType::MessageType_CardanoAssetGroup => 171,
+ MessageType::MessageType_CardanoToken => 172,
+ MessageType::MessageType_CardanoTxCertificate => 173,
+ MessageType::MessageType_CardanoTxWithdrawal => 174,
+ MessageType::MessageType_CardanoTxAuxiliaryData => 175,
+ MessageType::MessageType_CardanoPoolOwner => 176,
+ MessageType::MessageType_CardanoPoolRelayParameters => 177,
+ MessageType::MessageType_CardanoGetNativeScriptHash => 178,
+ MessageType::MessageType_CardanoNativeScriptHash => 179,
+ MessageType::MessageType_CardanoTxMint => 180,
+ MessageType::MessageType_CardanoTxCollateralInput => 181,
+ MessageType::MessageType_CardanoTxRequiredSigner => 182,
+ MessageType::MessageType_CardanoTxInlineDatumChunk => 183,
+ MessageType::MessageType_CardanoTxReferenceScriptChunk => 184,
+ MessageType::MessageType_CardanoTxReferenceInput => 185,
+ MessageType::MessageType_CardanoSignMessageInit => 186,
+ MessageType::MessageType_CardanoMessageDataRequest => 187,
+ MessageType::MessageType_CardanoMessageDataResponse => 188,
+ MessageType::MessageType_CardanoMessageSignature => 189,
+ MessageType::MessageType_RippleGetAddress => 190,
+ MessageType::MessageType_RippleAddress => 191,
+ MessageType::MessageType_RippleSignTx => 192,
+ MessageType::MessageType_RippleSignedTx => 193,
+ MessageType::MessageType_MoneroTransactionInitRequest => 194,
+ MessageType::MessageType_MoneroTransactionInitAck => 195,
+ MessageType::MessageType_MoneroTransactionSetInputRequest => 196,
+ MessageType::MessageType_MoneroTransactionSetInputAck => 197,
+ MessageType::MessageType_MoneroTransactionInputViniRequest => 198,
+ MessageType::MessageType_MoneroTransactionInputViniAck => 199,
+ MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 200,
+ MessageType::MessageType_MoneroTransactionAllInputsSetAck => 201,
+ MessageType::MessageType_MoneroTransactionSetOutputRequest => 202,
+ MessageType::MessageType_MoneroTransactionSetOutputAck => 203,
+ MessageType::MessageType_MoneroTransactionAllOutSetRequest => 204,
+ MessageType::MessageType_MoneroTransactionAllOutSetAck => 205,
+ MessageType::MessageType_MoneroTransactionSignInputRequest => 206,
+ MessageType::MessageType_MoneroTransactionSignInputAck => 207,
+ MessageType::MessageType_MoneroTransactionFinalRequest => 208,
+ MessageType::MessageType_MoneroTransactionFinalAck => 209,
+ MessageType::MessageType_MoneroKeyImageExportInitRequest => 210,
+ MessageType::MessageType_MoneroKeyImageExportInitAck => 211,
+ MessageType::MessageType_MoneroKeyImageSyncStepRequest => 212,
+ MessageType::MessageType_MoneroKeyImageSyncStepAck => 213,
+ MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 214,
+ MessageType::MessageType_MoneroKeyImageSyncFinalAck => 215,
+ MessageType::MessageType_MoneroGetAddress => 216,
+ MessageType::MessageType_MoneroAddress => 217,
+ MessageType::MessageType_MoneroGetWatchKey => 218,
+ MessageType::MessageType_MoneroWatchKey => 219,
+ MessageType::MessageType_DebugMoneroDiagRequest => 220,
+ MessageType::MessageType_DebugMoneroDiagAck => 221,
+ MessageType::MessageType_MoneroGetTxKeyRequest => 222,
+ MessageType::MessageType_MoneroGetTxKeyAck => 223,
+ MessageType::MessageType_MoneroLiveRefreshStartRequest => 224,
+ MessageType::MessageType_MoneroLiveRefreshStartAck => 225,
+ MessageType::MessageType_MoneroLiveRefreshStepRequest => 226,
+ MessageType::MessageType_MoneroLiveRefreshStepAck => 227,
+ MessageType::MessageType_MoneroLiveRefreshFinalRequest => 228,
+ MessageType::MessageType_MoneroLiveRefreshFinalAck => 229,
+ MessageType::MessageType_EosGetPublicKey => 230,
+ MessageType::MessageType_EosPublicKey => 231,
+ MessageType::MessageType_EosSignTx => 232,
+ MessageType::MessageType_EosTxActionRequest => 233,
+ MessageType::MessageType_EosTxActionAck => 234,
+ MessageType::MessageType_EosSignedTx => 235,
+ MessageType::MessageType_WebAuthnListResidentCredentials => 236,
+ MessageType::MessageType_WebAuthnCredentials => 237,
+ MessageType::MessageType_WebAuthnAddResidentCredential => 238,
+ MessageType::MessageType_WebAuthnRemoveResidentCredential => 239,
+ MessageType::MessageType_SolanaGetPublicKey => 240,
+ MessageType::MessageType_SolanaPublicKey => 241,
+ MessageType::MessageType_SolanaGetAddress => 242,
+ MessageType::MessageType_SolanaAddress => 243,
+ MessageType::MessageType_SolanaSignTx => 244,
+ MessageType::MessageType_SolanaTxSignature => 245,
+ MessageType::MessageType_ThpCreateNewSession => 246,
+ MessageType::MessageType_ThpCredentialRequest => 247,
+ MessageType::MessageType_ThpCredentialResponse => 248,
+ MessageType::MessageType_NostrGetPubkey => 249,
+ MessageType::MessageType_NostrPubkey => 250,
+ MessageType::MessageType_NostrSignEvent => 251,
+ MessageType::MessageType_NostrEventSignature => 252,
+ MessageType::MessageType_EvoluGetNode => 253,
+ MessageType::MessageType_EvoluNode => 254,
+ MessageType::MessageType_EvoluSignRegistrationRequest => 255,
+ MessageType::MessageType_EvoluRegistrationRequest => 256,
+ MessageType::MessageType_EvoluGetDelegatedIdentityKey => 257,
+ MessageType::MessageType_EvoluDelegatedIdentityKey => 258,
+ MessageType::MessageType_TronGetAddress => 259,
+ MessageType::MessageType_TronAddress => 260,
+ MessageType::MessageType_BenchmarkListNames => 261,
+ MessageType::MessageType_BenchmarkNames => 262,
+ MessageType::MessageType_BenchmarkRun => 263,
+ MessageType::MessageType_BenchmarkResult => 264,
};
Self::enum_descriptor().value_by_index(index)
}
@@ -1662,7 +1668,7 @@ impl MessageType {
}
static file_descriptor_proto_data: &'static [u8] = b"\
- \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xa7\\\
+ \n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xd9\\\
\n\x0bMessageType\x12(\n\x16MessageType_Initialize\x10\0\x1a\x0c\x80\xa6\
\x1d\x01\xb0\xb5\x18\x01\x90\xb5\x18\x01\x12\x1e\n\x10MessageType_Ping\
\x10\x01\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x12%\n\x13MessageType_S\
@@ -1792,179 +1798,180 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x122\n#MessageType_DebugLinkGetPairingI\
nfo\x10\xb3F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x12/\n\x20MessageTy\
pe_DebugLinkPairingInfo\x10\xb4F\x1a\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\
- \x12+\n\x20MessageType_EthereumGetPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\
- \x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\x10\xc3\x03\x1a\x04\x98\
- \xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x108\x1a\x04\x90\
- \xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x109\x1a\x04\x98\xb5\
- \x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\
- \x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\x03\x1a\x04\x90\
- \xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\
- \xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\
- \x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\xb5\
- \x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\x04\x90\xb5\
- \x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\x1a\x04\x98\
- \xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\xd0\x03\x1a\
- \x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStructRequest\
- \x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_EthereumTypedDat\
- aStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Ethere\
- umTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\x120\n%Messa\
- geType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\xb5\x18\x01\x12\
- 1\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\x1a\x04\x98\xb5\
- \x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\xd6\x03\x1a\x04\
- \x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10C\x1a\x04\x90\
- \xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\x04\x98\xb5\
- \x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\xb5\x18\x01\
- \x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\x01\x12'\n\
- \x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\x01\x12)\n\
- \x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\x01\x12&\n\
- \x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\x18\x01\x12#\
- \n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\x18\x01\x12\"\
- \n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\x18\x01\x12$\n\
- \x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\
- \x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\xb5\x18\x01\
- \x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\x98\xb5\x18\
- \x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\x90\xb5\x18\
- \x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\x1a\x04\x98\
- \xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\x01\x1a\x04\
- \x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\xd0\x01\x1a\
- \x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccountOp\x10\xd2\
- \x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPaymentOp\x10\
- \xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPathPaymentSt\
- rictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_Ste\
- llarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\n+Message\
- Type_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\xb5\x18\x01\
- \x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\x04\x90\xb5\
- \x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\x01\x1a\x04\
- \x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\x10\xd9\x01\
- \x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMergeOp\x10\
- \xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarManageData\
- Op\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarBumpSeq\
- uenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_StellarMa\
- nageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_St\
- ellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\x01\x125\n*\
- MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\x04\x90\xb5\
- \x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\x1a\x04\x98\
- \xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\xb1\x02\x1a\
- \x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\x10\xb2\x02\
- \x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAddress\x10\xb3\
- \x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAddress\x10\
- \xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoTxItemAck\
- \x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoTxAuxilia\
- ryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#MessageType_\
- CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\
- geType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\x01\x12'\
- \n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\x18\x01\
- \x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\xb5\x18\
- \x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\x04\x98\
- \xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\x1a\x04\
- \x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\x02\x1a\
- \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\xc2\x02\
- \x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\x10\xc3\
- \x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\x10\xc4\
- \x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCertificate\
- \x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_CardanoTxWith\
- drawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_CardanoTx\
- AuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_\
- CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&MessageType_\
- CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Me\
- ssageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\xb5\x18\x01\
- \x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\x04\x98\xb5\
- \x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\x04\x90\xb5\
- \x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\x02\x1a\x04\
- \x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\x10\xce\x02\
- \x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineDatumChunk\
- \x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_CardanoTxReferen\
- ceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_Car\
- danoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"Message\
- Type_CardanoSignMessageInit\x10\xd2\x02\x1a\x04\x90\xb5\x18\x01\x120\n%M\
- essageType_CardanoMessageDataRequest\x10\xd3\x02\x1a\x04\x98\xb5\x18\x01\
- \x121\n&MessageType_CardanoMessageDataResponse\x10\xd4\x02\x1a\x04\x90\
- \xb5\x18\x01\x12.\n#MessageType_CardanoMessageSignature\x10\xd5\x02\x1a\
- \x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_RippleGetAddress\x10\x90\x03\
- \x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_RippleAddress\x10\x91\x03\
- \x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_RippleSignTx\x10\x92\x03\
- \x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_RippleSignedTx\x10\x93\
- \x03\x1a\x04\x90\xb5\x18\x01\x123\n(MessageType_MoneroTransactionInitReq\
- uest\x10\xf5\x03\x1a\x04\x98\xb5\x18\x01\x12/\n$MessageType_MoneroTransa\
- ctionInitAck\x10\xf6\x03\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_Mone\
- roTransactionSetInputRequest\x10\xf7\x03\x1a\x04\x98\xb5\x18\x01\x123\n(\
- MessageType_MoneroTransactionSetInputAck\x10\xf8\x03\x1a\x04\x98\xb5\x18\
- \x01\x128\n-MessageType_MoneroTransactionInputViniRequest\x10\xfb\x03\
- \x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionInputViniAc\
- k\x10\xfc\x03\x1a\x04\x98\xb5\x18\x01\x12;\n0MessageType_MoneroTransacti\
- onAllInputsSetRequest\x10\xfd\x03\x1a\x04\x98\xb5\x18\x01\x127\n,Message\
- Type_MoneroTransactionAllInputsSetAck\x10\xfe\x03\x1a\x04\x98\xb5\x18\
- \x01\x128\n-MessageType_MoneroTransactionSetOutputRequest\x10\xff\x03\
- \x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionSetOutputAc\
- k\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransacti\
- onAllOutSetRequest\x10\x81\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageTyp\
- e_MoneroTransactionAllOutSetAck\x10\x82\x04\x1a\x04\x98\xb5\x18\x01\x128\
- \n-MessageType_MoneroTransactionSignInputRequest\x10\x83\x04\x1a\x04\x98\
- \xb5\x18\x01\x124\n)MessageType_MoneroTransactionSignInputAck\x10\x84\
- \x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionFinalRe\
- quest\x10\x85\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroTrans\
- actionFinalAck\x10\x86\x04\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_Mo\
- neroKeyImageExportInitRequest\x10\x92\x04\x1a\x04\x98\xb5\x18\x01\x122\n\
- 'MessageType_MoneroKeyImageExportInitAck\x10\x93\x04\x1a\x04\x98\xb5\x18\
- \x01\x124\n)MessageType_MoneroKeyImageSyncStepRequest\x10\x94\x04\x1a\
- \x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroKeyImageSyncStepAck\x10\
- \x95\x04\x1a\x04\x98\xb5\x18\x01\x125\n*MessageType_MoneroKeyImageSyncFi\
- nalRequest\x10\x96\x04\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Monero\
- KeyImageSyncFinalAck\x10\x97\x04\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessa\
- geType_MoneroGetAddress\x10\x9c\x04\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Me\
- ssageType_MoneroAddress\x10\x9d\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMe\
- ssageType_MoneroGetWatchKey\x10\x9e\x04\x1a\x04\x90\xb5\x18\x01\x12%\n\
- \x1aMessageType_MoneroWatchKey\x10\x9f\x04\x1a\x04\x98\xb5\x18\x01\x12-\
- \n\"MessageType_DebugMoneroDiagRequest\x10\xa2\x04\x1a\x04\x90\xb5\x18\
- \x01\x12)\n\x1eMessageType_DebugMoneroDiagAck\x10\xa3\x04\x1a\x04\x98\
- \xb5\x18\x01\x12,\n!MessageType_MoneroGetTxKeyRequest\x10\xa6\x04\x1a\
- \x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetTxKeyAck\x10\xa7\x04\
- \x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshStartReques\
- t\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroLiveRefre\
- shStartAck\x10\xa9\x04\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_Monero\
- LiveRefreshStepRequest\x10\xaa\x04\x1a\x04\x90\xb5\x18\x01\x12/\n$Messag\
- eType_MoneroLiveRefreshStepAck\x10\xab\x04\x1a\x04\x98\xb5\x18\x01\x124\
- \n)MessageType_MoneroLiveRefreshFinalRequest\x10\xac\x04\x1a\x04\x90\xb5\
- \x18\x01\x120\n%MessageType_MoneroLiveRefreshFinalAck\x10\xad\x04\x1a\
- \x04\x98\xb5\x18\x01\x12&\n\x1bMessageType_EosGetPublicKey\x10\xd8\x04\
- \x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_EosPublicKey\x10\xd9\x04\
- \x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15MessageType_EosSignTx\x10\xda\x04\
- \x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_EosTxActionRequest\x10\
- \xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_EosTxActionAck\
- \x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_EosSignedTx\
- \x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_WebAuthnListResi\
- dentCredentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageTyp\
- e_WebAuthnCredentials\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)Message\
- Type_WebAuthnAddResidentCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\x01\
- \x127\n,MessageType_WebAuthnRemoveResidentCredential\x10\xa3\x06\x1a\x04\
- \x90\xb5\x18\x01\x12)\n\x1eMessageType_SolanaGetPublicKey\x10\x84\x07\
- \x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_SolanaPublicKey\x10\x85\
- \x07\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_SolanaGetAddress\x10\
- \x86\x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddress\x10\
- \x87\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSignTx\x10\
- \x88\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSignature\
- \x10\x89\x07\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_ThpCreateNewS\
- ession\x10\xe8\x07\x1a\x04\x80\xa6\x1d\x01\x12+\n\x20MessageType_ThpCred\
- entialRequest\x10\xf8\x07\x1a\x04\x80\xa6\x1d\x01\x12,\n!MessageType_Thp\
- CredentialResponse\x10\xf9\x07\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessage\
- Type_NostrGetPubkey\x10\xd1\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17Messa\
- geType_NostrPubkey\x10\xd2\x0f\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessage\
- Type_NostrSignEvent\x10\xd3\x0f\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessag\
- eType_NostrEventSignature\x10\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12'\n\x18\
- MessageType_EvoluGetNode\x10\xb4\x10\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\
- \x01\x12$\n\x15MessageType_EvoluNode\x10\xb5\x10\x1a\x08\x80\xa6\x1d\x01\
- \x98\xb5\x18\x01\x127\n(MessageType_EvoluSignRegistrationRequest\x10\xb6\
- \x10\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x123\n$MessageType_EvoluReg\
- istrationRequest\x10\xb7\x10\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12\
- 7\n(MessageType_EvoluGetDelegatedIdentityKey\x10\xb8\x10\x1a\x08\x80\xa6\
- \x1d\x01\x90\xb5\x18\x01\x124\n%MessageType_EvoluDelegatedIdentityKey\
- \x10\xb9\x10\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12%\n\x1aMessageTy\
- pe_TronGetAddress\x10\x98\x11\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17Message\
- Type_TronAddress\x10\x99\x11\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageTy\
- pe_BenchmarkListNames\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessage\
- Type_BenchmarkNames\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageTy\
- pe_BenchmarkRun\x10\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_B\
- enchmarkResult\x10\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x08\xc8\xf3\x18\x01\
+ \x120\n!MessageType_DebugLinkSetLogFilter\x10\xb5F\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_EthereumGetAddres\
+ s\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x10\
+ 9\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\
+ \x04\x90\xb5\x18\x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\
+ \x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxRequest\x10\
+ ;\x1a\x04\x98\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\
+ \x04\x90\xb5\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\
+ \x04\x90\xb5\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\
+ \x04\x90\xb5\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\
+ \x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\
+ \xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStr\
+ uctRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Ethere\
+ umTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageT\
+ ype_EthereumTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\
+ \x120\n%MessageType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\
+ \xb5\x18\x01\x121\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\
+ \x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\
+ \xd6\x03\x1a\x04\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10\
+ C\x1a\x04\x90\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\
+ \x04\x98\xb5\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\
+ \xb5\x18\x01\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\
+ \x01\x12'\n\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\
+ \x01\x12)\n\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\
+ \x01\x12&\n\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\
+ \x18\x01\x12#\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\
+ \x18\x01\x12\"\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\
+ \x18\x01\x12$\n\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\
+ \x18\x01\x12(\n\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\
+ \xb5\x18\x01\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\
+ \x98\xb5\x18\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\
+ \x90\xb5\x18\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\
+ \x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\
+ \x01\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\
+ \xd0\x01\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccoun\
+ tOp\x10\xd2\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPay\
+ mentOp\x10\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPat\
+ hPaymentStrictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\
+ geType_StellarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\
+ \n+MessageType_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\
+ \xb5\x18\x01\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\
+ \x04\x90\xb5\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\
+ \x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\
+ \x10\xd9\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMe\
+ rgeOp\x10\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarM\
+ anageDataOp\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_Stell\
+ arBumpSequenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_\
+ StellarManageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*Messa\
+ geType_StellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\
+ \x01\x125\n*MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\
+ \x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\
+ \x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\
+ \xb1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\
+ \x10\xb2\x02\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAdd\
+ ress\x10\xb3\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAd\
+ dress\x10\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoT\
+ xItemAck\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoT\
+ xAuxiliaryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#Mess\
+ ageType_CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\
+ \n$MessageType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\
+ \x01\x12'\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\
+ \x18\x01\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\
+ \xb5\x18\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\
+ \x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\
+ \x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\
+ \x02\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\
+ \xc2\x02\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\
+ \x10\xc3\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\
+ \x10\xc4\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCert\
+ ificate\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Cardan\
+ oTxWithdrawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_Ca\
+ rdanoTxAuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\
+ geType_CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Messa\
+ geType_CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\
+ \x121\n&MessageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\
+ \xb5\x18\x01\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\
+ \x04\x98\xb5\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\
+ \x04\x90\xb5\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\
+ \x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\
+ \x10\xce\x02\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineD\
+ atumChunk\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Cardano\
+ TxReferenceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#Messag\
+ eType_CardanoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\
+ \"MessageType_CardanoSignMessageInit\x10\xd2\x02\x1a\x04\x90\xb5\x18\x01\
+ \x120\n%MessageType_CardanoMessageDataRequest\x10\xd3\x02\x1a\x04\x98\
+ \xb5\x18\x01\x121\n&MessageType_CardanoMessageDataResponse\x10\xd4\x02\
+ \x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_CardanoMessageSignature\x10\
+ \xd5\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_RippleGetAddress\
+ \x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_RippleAddress\
+ \x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_RippleSignTx\
+ \x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_RippleSignedT\
+ x\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x123\n(MessageType_MoneroTransacti\
+ onInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\x18\x01\x12/\n$MessageType_Mon\
+ eroTransactionInitAck\x10\xf6\x03\x1a\x04\x98\xb5\x18\x01\x127\n,Message\
+ Type_MoneroTransactionSetInputRequest\x10\xf7\x03\x1a\x04\x98\xb5\x18\
+ \x01\x123\n(MessageType_MoneroTransactionSetInputAck\x10\xf8\x03\x1a\x04\
+ \x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionInputViniRequest\
+ \x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactio\
+ nInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\x01\x12;\n0MessageType_Mon\
+ eroTransactionAllInputsSetRequest\x10\xfd\x03\x1a\x04\x98\xb5\x18\x01\
+ \x127\n,MessageType_MoneroTransactionAllInputsSetAck\x10\xfe\x03\x1a\x04\
+ \x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSetOutputRequest\
+ \x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactio\
+ nSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_Mon\
+ eroTransactionAllOutSetRequest\x10\x81\x04\x1a\x04\x98\xb5\x18\x01\x124\
+ \n)MessageType_MoneroTransactionAllOutSetAck\x10\x82\x04\x1a\x04\x98\xb5\
+ \x18\x01\x128\n-MessageType_MoneroTransactionSignInputRequest\x10\x83\
+ \x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionSignInp\
+ utAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTrans\
+ actionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageTyp\
+ e_MoneroTransactionFinalAck\x10\x86\x04\x1a\x04\x98\xb5\x18\x01\x126\n+M\
+ essageType_MoneroKeyImageExportInitRequest\x10\x92\x04\x1a\x04\x98\xb5\
+ \x18\x01\x122\n'MessageType_MoneroKeyImageExportInitAck\x10\x93\x04\x1a\
+ \x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroKeyImageSyncStepRequest\
+ \x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroKeyImageSy\
+ ncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\x125\n*MessageType_MoneroK\
+ eyImageSyncFinalRequest\x10\x96\x04\x1a\x04\x98\xb5\x18\x01\x121\n&Messa\
+ geType_MoneroKeyImageSyncFinalAck\x10\x97\x04\x1a\x04\x98\xb5\x18\x01\
+ \x12'\n\x1cMessageType_MoneroGetAddress\x10\x9c\x04\x1a\x04\x90\xb5\x18\
+ \x01\x12$\n\x19MessageType_MoneroAddress\x10\x9d\x04\x1a\x04\x98\xb5\x18\
+ \x01\x12(\n\x1dMessageType_MoneroGetWatchKey\x10\x9e\x04\x1a\x04\x90\xb5\
+ \x18\x01\x12%\n\x1aMessageType_MoneroWatchKey\x10\x9f\x04\x1a\x04\x98\
+ \xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDiagRequest\x10\xa2\x04\x1a\
+ \x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_DebugMoneroDiagAck\x10\xa3\
+ \x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_MoneroGetTxKeyRequest\
+ \x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetTxKe\
+ yAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRe\
+ freshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType\
+ _MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\xb5\x18\x01\x123\n(Me\
+ ssageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\x1a\x04\x90\xb5\x18\
+ \x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\xab\x04\x1a\x04\x98\
+ \xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFinalRequest\x10\xac\
+ \x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroLiveRefreshFinalAc\
+ k\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessageType_EosGetPublic\
+ Key\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_EosPublicK\
+ ey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15MessageType_EosSignT\
+ x\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_EosTxActionR\
+ equest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_EosTxAc\
+ tionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_EosSi\
+ gnedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_WebAuthnLi\
+ stResidentCredentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMess\
+ ageType_WebAuthnCredentials\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\n)M\
+ essageType_WebAuthnAddResidentCredential\x10\xa2\x06\x1a\x04\x90\xb5\x18\
+ \x01\x127\n,MessageType_WebAuthnRemoveResidentCredential\x10\xa3\x06\x1a\
+ \x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_SolanaGetPublicKey\x10\x84\
+ \x07\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_SolanaPublicKey\x10\
+ \x85\x07\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_SolanaGetAddress\
+ \x10\x86\x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddress\
+ \x10\x87\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSignTx\
+ \x10\x88\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSigna\
+ ture\x10\x89\x07\x1a\x04\x98\xb5\x18\x01\x12*\n\x1fMessageType_ThpCreate\
+ NewSession\x10\xe8\x07\x1a\x04\x80\xa6\x1d\x01\x12+\n\x20MessageType_Thp\
+ CredentialRequest\x10\xf8\x07\x1a\x04\x80\xa6\x1d\x01\x12,\n!MessageType\
+ _ThpCredentialResponse\x10\xf9\x07\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMes\
+ sageType_NostrGetPubkey\x10\xd1\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17M\
+ essageType_NostrPubkey\x10\xd2\x0f\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMes\
+ sageType_NostrSignEvent\x10\xd3\x0f\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMe\
+ ssageType_NostrEventSignature\x10\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12'\n\
+ \x18MessageType_EvoluGetNode\x10\xb4\x10\x1a\x08\x80\xa6\x1d\x01\x90\xb5\
+ \x18\x01\x12$\n\x15MessageType_EvoluNode\x10\xb5\x10\x1a\x08\x80\xa6\x1d\
+ \x01\x98\xb5\x18\x01\x127\n(MessageType_EvoluSignRegistrationRequest\x10\
+ \xb6\x10\x1a\x08\x80\xa6\x1d\x01\x90\xb5\x18\x01\x123\n$MessageType_Evol\
+ uRegistrationRequest\x10\xb7\x10\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\
+ \x127\n(MessageType_EvoluGetDelegatedIdentityKey\x10\xb8\x10\x1a\x08\x80\
+ \xa6\x1d\x01\x90\xb5\x18\x01\x124\n%MessageType_EvoluDelegatedIdentityKe\
+ y\x10\xb9\x10\x1a\x08\x80\xa6\x1d\x01\x98\xb5\x18\x01\x12%\n\x1aMessageT\
+ ype_TronGetAddress\x10\x98\x11\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17Messag\
+ eType_TronAddress\x10\x99\x11\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageT\
+ ype_BenchmarkListNames\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessag\
+ eType_BenchmarkNames\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageT\
+ ype_BenchmarkRun\x10\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_\
+ BenchmarkResult\x10\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x08\xc8\xf3\x18\x01\
\xd0\xf3\x18\x01\"\x04\x08Z\x10\\\"\x04\x08G\x10J\"\x04\x08r\x10z\"\x05\
\x08{\x10\x95\x01\"\x06\x08\xdb\x01\x10\xdb\x01\"\x06\x08\xe0\x01\x10\
\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\x06\x08\xb5\x02\x10\xb8\x02\"\
diff --git a/rust/trezor-client/src/protos/generated/messages_debug.rs b/rust/trezor-client/src/protos/generated/messages_debug.rs
index 01ecdf20..da5059f2 100644
--- a/rust/trezor-client/src/protos/generated/messages_debug.rs
+++ b/rust/trezor-client/src/protos/generated/messages_debug.rs
@@ -4831,6 +4831,164 @@ pub mod debug_link_gc_info {
}
}
+// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkSetLogFilter)
+#[derive(PartialEq,Clone,Default,Debug)]
+pub struct DebugLinkSetLogFilter {
+ // message fields
+ // @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkSetLogFilter.filter)
+ pub filter: ::std::option::Option<::std::string::String>,
+ // special fields
+ // @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkSetLogFilter.special_fields)
+ pub special_fields: ::protobuf::SpecialFields,
+}
+
+impl<'a> ::std::default::Default for &'a DebugLinkSetLogFilter {
+ fn default() -> &'a DebugLinkSetLogFilter {
+ <DebugLinkSetLogFilter as ::protobuf::Message>::default_instance()
+ }
+}
+
+impl DebugLinkSetLogFilter {
+ pub fn new() -> DebugLinkSetLogFilter {
+ ::std::default::Default::default()
+ }
+
+ // optional string filter = 1;
+
+ pub fn filter(&self) -> &str {
+ match self.filter.as_ref() {
+ Some(v) => v,
+ None => "",
+ }
+ }
+
+ pub fn clear_filter(&mut self) {
+ self.filter = ::std::option::Option::None;
+ }
+
+ pub fn has_filter(&self) -> bool {
+ self.filter.is_some()
+ }
+
+ // Param is passed by value, moved
+ pub fn set_filter(&mut self, v: ::std::string::String) {
+ self.filter = ::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_filter(&mut self) -> &mut ::std::string::String {
+ if self.filter.is_none() {
+ self.filter = ::std::option::Option::Some(::std::string::String::new());
+ }
+ self.filter.as_mut().unwrap()
+ }
+
+ // Take field
+ pub fn take_filter(&mut self) -> ::std::string::String {
+ self.filter.take().unwrap_or_else(|| ::std::string::String::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::<_, _>(
+ "filter",
+ |m: &DebugLinkSetLogFilter| { &m.filter },
+ |m: &mut DebugLinkSetLogFilter| { &mut m.filter },
+ ));
+ ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkSetLogFilter>(
+ "DebugLinkSetLogFilter",
+ fields,
+ oneofs,
+ )
+ }
+}
+
+impl ::protobuf::Message for DebugLinkSetLogFilter {
+ const NAME: &'static str = "DebugLinkSetLogFilter";
+
+ 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.filter = ::std::option::Option::Some(is.read_string()?);
+ },
+ 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.filter.as_ref() {
+ my_size += ::protobuf::rt::string_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.filter.as_ref() {
+ os.write_string(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() -> DebugLinkSetLogFilter {
+ DebugLinkSetLogFilter::new()
+ }
+
+ fn clear(&mut self) {
+ self.filter = ::std::option::Option::None;
+ self.special_fields.clear();
+ }
+
+ fn default_instance() -> &'static DebugLinkSetLogFilter {
+ static instance: DebugLinkSetLogFilter = DebugLinkSetLogFilter {
+ filter: ::std::option::Option::None,
+ special_fields: ::protobuf::SpecialFields::new(),
+ };
+ &instance
+ }
+}
+
+impl ::protobuf::MessageFull for DebugLinkSetLogFilter {
+ 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("DebugLinkSetLogFilter").unwrap()).clone()
+ }
+}
+
+impl ::std::fmt::Display for DebugLinkSetLogFilter {
+ fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
+ ::protobuf::text_format::fmt(self, f)
+ }
+}
+
+impl ::protobuf::reflect::ProtobufValue for DebugLinkSetLogFilter {
+ type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
+}
+
static file_descriptor_proto_data: &'static [u8] = b"\
\n\x14messages-debug.proto\x12\x18hw.trezor.messages.debug\x1a\x15messag\
es-common.proto\x1a\x19messages-management.proto\x1a\roptions.proto\"\
@@ -4899,8 +5057,9 @@ static file_descriptor_proto_data: &'static [u8] = b"\
\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\x05valueB=\n#com.satoshilabs.trezor.lib.\
- protobufB\x12TrezorMessageDebug\x80\xa6\x1d\x01\
+ \x05value\x18\x02\x20\x02(\x04R\x05value\"/\n\x15DebugLinkSetLogFilter\
+ \x12\x16\n\x06filter\x18\x01\x20\x01(\tR\x06filterB=\n#com.satoshilabs.t\
+ rezor.lib.protobufB\x12TrezorMessageDebug\x80\xa6\x1d\x01\
";
/// `FileDescriptorProto` object which was a source for this generated file
@@ -4921,7 +5080,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(21);
+ let mut messages = ::std::vec::Vec::with_capacity(22);
messages.push(DebugLinkDecision::generated_message_descriptor_data());
messages.push(DebugLinkLayout::generated_message_descriptor_data());
messages.push(DebugLinkReseedRandom::generated_message_descriptor_data());
@@ -4942,6 +5101,7 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
messages.push(DebugLinkOptigaSetSecMax::generated_message_descriptor_data());
messages.push(DebugLinkGetGcInfo::generated_message_descriptor_data());
messages.push(DebugLinkGcInfo::generated_message_descriptor_data());
+ messages.push(DebugLinkSetLogFilter::generated_message_descriptor_data());
messages.push(debug_link_gc_info::DebugLinkGcInfoItem::generated_message_descriptor_data());
let mut enums = ::std::vec::Vec::with_capacity(5);
enums.push(debug_link_decision::DebugSwipeDirection::generated_enum_descriptor_data());
Why this scored 24/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.