mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-24 15:38:22 +00:00
test(core): collect GC statistics via new debug RPC
[no changelog]
This commit is contained in:
parent
a7849ab838
commit
6f28b96733
@ -235,3 +235,28 @@ message DebugLinkResetDebugEvents {
|
||||
*/
|
||||
message DebugLinkOptigaSetSecMax {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Request: Get GC heap information.
|
||||
* @start
|
||||
* @next DebugLinkGcInfo
|
||||
*/
|
||||
message DebugLinkGetGcInfo {
|
||||
}
|
||||
|
||||
/**
|
||||
* Response: GC heap information details.
|
||||
* @end
|
||||
*/
|
||||
message DebugLinkGcInfo {
|
||||
repeated DebugLinkGcInfoItem items = 1;
|
||||
|
||||
/**
|
||||
* Key-value pair.
|
||||
*/
|
||||
message DebugLinkGcInfoItem {
|
||||
required string name = 1;
|
||||
required uint64 value = 2;
|
||||
}
|
||||
}
|
||||
|
@ -136,6 +136,8 @@ enum MessageType {
|
||||
MessageType_DebugLinkWatchLayout = 9006 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||
MessageType_DebugLinkResetDebugEvents = 9007 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||
MessageType_DebugLinkOptigaSetSecMax = 9008 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||
MessageType_DebugLinkGetGcInfo = 9009 [(bitcoin_only) = true, (wire_debug_in) = true];
|
||||
MessageType_DebugLinkGcInfo = 9010 [(bitcoin_only) = true, (wire_debug_out) = true];
|
||||
|
||||
// Ethereum
|
||||
MessageType_EthereumGetPublicKey = 450 [(wire_in) = true];
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include <util/scm_revision.h>
|
||||
#include <util/unit_properties.h>
|
||||
#include "blake2s.h"
|
||||
#include "memzero.h"
|
||||
|
||||
#if !defined(TREZOR_EMULATOR)
|
||||
#include <sec/secret.h>
|
||||
@ -333,31 +334,69 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_enable_oom_dump_obj,
|
||||
mod_trezorutils_enable_oom_dump);
|
||||
#endif // MICROPY_OOM_CALLBACK
|
||||
|
||||
static gc_info_t current_gc_info = {0};
|
||||
|
||||
/// if __debug__:
|
||||
/// def check_free_heap(previous: int) -> int:
|
||||
/// def clear_gc_info() -> None:
|
||||
/// """
|
||||
/// Assert that free heap memory doesn't decrease.
|
||||
/// Returns current free heap memory (in bytes).
|
||||
/// Clear GC heap stats.
|
||||
/// """
|
||||
STATIC mp_obj_t mod_trezorutils_clear_gc_info() {
|
||||
memzero(¤t_gc_info, sizeof(current_gc_info));
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_clear_gc_info_obj,
|
||||
mod_trezorutils_clear_gc_info);
|
||||
|
||||
/// if __debug__:
|
||||
/// def get_gc_info() -> dict[str, int]:
|
||||
/// """
|
||||
/// Get GC heap stats, updated by `update_gc_info`.
|
||||
/// """
|
||||
STATIC mp_obj_t mod_trezorutils_get_gc_info() {
|
||||
mp_obj_t result = mp_obj_new_dict(4);
|
||||
mp_obj_dict_store(result, MP_OBJ_NEW_QSTR(MP_QSTR_total),
|
||||
mp_obj_new_int_from_uint(current_gc_info.total));
|
||||
mp_obj_dict_store(result, MP_OBJ_NEW_QSTR(MP_QSTR_used),
|
||||
mp_obj_new_int_from_uint(current_gc_info.used));
|
||||
mp_obj_dict_store(result, MP_OBJ_NEW_QSTR(MP_QSTR_free),
|
||||
mp_obj_new_int_from_uint(current_gc_info.free));
|
||||
mp_obj_dict_store(result, MP_OBJ_NEW_QSTR(MP_QSTR_max_free),
|
||||
mp_obj_new_int_from_uint(current_gc_info.max_free *
|
||||
MICROPY_BYTES_PER_GC_BLOCK));
|
||||
return result;
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_get_gc_info_obj,
|
||||
mod_trezorutils_get_gc_info);
|
||||
|
||||
/// if __debug__:
|
||||
/// def update_gc_info() -> None:
|
||||
/// """
|
||||
/// Update current GC heap statistics.
|
||||
/// On emulator, also assert that free heap memory doesn't decrease.
|
||||
/// Enabled only for frozen debug builds.
|
||||
/// """
|
||||
STATIC mp_obj_t mod_trezorutils_check_free_heap(mp_obj_t arg) {
|
||||
mp_uint_t free_heap = trezor_obj_get_uint(arg);
|
||||
#if MICROPY_MODULE_FROZEN_MPY && defined(TREZOR_EMULATOR)
|
||||
STATIC mp_obj_t mod_trezorutils_update_gc_info() {
|
||||
#if MICROPY_MODULE_FROZEN_MPY
|
||||
#ifdef TREZOR_EMULATOR
|
||||
size_t prev_free = current_gc_info.free;
|
||||
#endif
|
||||
gc_info(¤t_gc_info);
|
||||
// Currently, it may misdetect on-heap buffers' data as valid heap
|
||||
// pointers (resulting in `gc_mark_subtree` false-positives).
|
||||
gc_info_t info;
|
||||
gc_info(&info);
|
||||
if (free_heap > info.free) {
|
||||
#ifdef TREZOR_EMULATOR
|
||||
if (prev_free > current_gc_info.free) {
|
||||
gc_dump_info();
|
||||
mp_raise_msg(&mp_type_AssertionError,
|
||||
MP_ERROR_TEXT("Free heap size decreased"));
|
||||
}
|
||||
free_heap = info.free; // current free heap
|
||||
#endif
|
||||
return mp_obj_new_int_from_uint(free_heap);
|
||||
#endif
|
||||
return mp_const_none;
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_trezorutils_check_free_heap_obj,
|
||||
mod_trezorutils_check_free_heap);
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_update_gc_info_obj,
|
||||
mod_trezorutils_update_gc_info);
|
||||
|
||||
/// if __debug__:
|
||||
/// def check_heap_fragmentation() -> None:
|
||||
@ -615,8 +654,12 @@ STATIC const mp_rom_map_elem_t mp_module_trezorutils_globals_table[] = {
|
||||
{MP_ROM_QSTR(MP_QSTR_enable_oom_dump),
|
||||
MP_ROM_PTR(&mod_trezorutils_enable_oom_dump_obj)},
|
||||
#endif
|
||||
{MP_ROM_QSTR(MP_QSTR_check_free_heap),
|
||||
MP_ROM_PTR(&mod_trezorutils_check_free_heap_obj)},
|
||||
{MP_ROM_QSTR(MP_QSTR_clear_gc_info),
|
||||
MP_ROM_PTR(&mod_trezorutils_clear_gc_info_obj)},
|
||||
{MP_ROM_QSTR(MP_QSTR_get_gc_info),
|
||||
MP_ROM_PTR(&mod_trezorutils_get_gc_info_obj)},
|
||||
{MP_ROM_QSTR(MP_QSTR_update_gc_info),
|
||||
MP_ROM_PTR(&mod_trezorutils_update_gc_info_obj)},
|
||||
{MP_ROM_QSTR(MP_QSTR_check_heap_fragmentation),
|
||||
MP_ROM_PTR(&mod_trezorutils_check_heap_fragmentation_obj)},
|
||||
#endif
|
||||
|
@ -116,10 +116,20 @@ if __debug__:
|
||||
Dump GC info in case of an OOM.
|
||||
"""
|
||||
if __debug__:
|
||||
def check_free_heap(previous: int) -> int:
|
||||
def clear_gc_info() -> None:
|
||||
"""
|
||||
Assert that free heap memory doesn't decrease.
|
||||
Returns current free heap memory (in bytes).
|
||||
Clear GC heap stats.
|
||||
"""
|
||||
if __debug__:
|
||||
def get_gc_info() -> dict[str, int]:
|
||||
"""
|
||||
Get GC heap stats, updated by `update_gc_info`.
|
||||
"""
|
||||
if __debug__:
|
||||
def update_gc_info() -> None:
|
||||
"""
|
||||
Update current GC heap statistics.
|
||||
On emulator, also assert that free heap memory doesn't decrease.
|
||||
Enabled only for frozen debug builds.
|
||||
"""
|
||||
if __debug__:
|
||||
|
@ -22,6 +22,8 @@ if __debug__:
|
||||
from trezor.messages import (
|
||||
DebugLinkDecision,
|
||||
DebugLinkEraseSdCard,
|
||||
DebugLinkGcInfo,
|
||||
DebugLinkGetGcInfo,
|
||||
DebugLinkGetState,
|
||||
DebugLinkOptigaSetSecMax,
|
||||
DebugLinkRecordScreen,
|
||||
@ -362,6 +364,18 @@ if __debug__:
|
||||
else:
|
||||
raise wire.UnexpectedMessage("Optiga not supported")
|
||||
|
||||
async def dispatch_DebugLinkGetGcInfo(
|
||||
msg: DebugLinkGetGcInfo,
|
||||
) -> DebugLinkGcInfo:
|
||||
from trezor.messages import DebugLinkGcInfo, DebugLinkGcInfoItem
|
||||
|
||||
return DebugLinkGcInfo(
|
||||
items=[
|
||||
DebugLinkGcInfoItem(name=name, value=value)
|
||||
for name, value in utils.get_gc_info().items()
|
||||
]
|
||||
)
|
||||
|
||||
async def _no_op(_msg: Any) -> Success:
|
||||
return Success()
|
||||
|
||||
@ -439,6 +453,7 @@ if __debug__:
|
||||
MessageType.DebugLinkOptigaSetSecMax: dispatch_DebugLinkOptigaSetSecMax,
|
||||
MessageType.DebugLinkWatchLayout: _no_op,
|
||||
MessageType.DebugLinkResetDebugEvents: _no_op,
|
||||
MessageType.DebugLinkGetGcInfo: dispatch_DebugLinkGetGcInfo,
|
||||
}
|
||||
|
||||
def boot() -> None:
|
||||
|
2
core/src/trezor/enums/MessageType.py
generated
2
core/src/trezor/enums/MessageType.py
generated
@ -103,6 +103,8 @@ if __debug__:
|
||||
DebugLinkWatchLayout = 9006
|
||||
DebugLinkResetDebugEvents = 9007
|
||||
DebugLinkOptigaSetSecMax = 9008
|
||||
DebugLinkGetGcInfo = 9009
|
||||
DebugLinkGcInfo = 9010
|
||||
if not utils.BITCOIN_ONLY:
|
||||
SetU2FCounter = 63
|
||||
GetNextU2FCounter = 80
|
||||
|
2
core/src/trezor/enums/__init__.py
generated
2
core/src/trezor/enums/__init__.py
generated
@ -435,6 +435,8 @@ if TYPE_CHECKING:
|
||||
DebugLinkWatchLayout = 9006
|
||||
DebugLinkResetDebugEvents = 9007
|
||||
DebugLinkOptigaSetSecMax = 9008
|
||||
DebugLinkGetGcInfo = 9009
|
||||
DebugLinkGcInfo = 9010
|
||||
EthereumGetPublicKey = 450
|
||||
EthereumPublicKey = 451
|
||||
EthereumGetAddress = 56
|
||||
|
36
core/src/trezor/messages.py
generated
36
core/src/trezor/messages.py
generated
@ -2861,6 +2861,42 @@ if TYPE_CHECKING:
|
||||
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkOptigaSetSecMax"]:
|
||||
return isinstance(msg, cls)
|
||||
|
||||
class DebugLinkGetGcInfo(protobuf.MessageType):
|
||||
|
||||
@classmethod
|
||||
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkGetGcInfo"]:
|
||||
return isinstance(msg, cls)
|
||||
|
||||
class DebugLinkGcInfo(protobuf.MessageType):
|
||||
items: "list[DebugLinkGcInfoItem]"
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
items: "list[DebugLinkGcInfoItem] | None" = None,
|
||||
) -> None:
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkGcInfo"]:
|
||||
return isinstance(msg, cls)
|
||||
|
||||
class DebugLinkGcInfoItem(protobuf.MessageType):
|
||||
name: "str"
|
||||
value: "int"
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
name: "str",
|
||||
value: "int",
|
||||
) -> None:
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def is_type_of(cls, msg: Any) -> TypeGuard["DebugLinkGcInfoItem"]:
|
||||
return isinstance(msg, cls)
|
||||
|
||||
class EthereumNetworkInfo(protobuf.MessageType):
|
||||
chain_id: "int"
|
||||
symbol: "str"
|
||||
|
@ -38,7 +38,13 @@ from trezorutils import ( # noqa: F401
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if __debug__:
|
||||
from trezorutils import LOG_STACK_USAGE, check_free_heap, check_heap_fragmentation
|
||||
from trezorutils import get_gc_info # noqa: F401
|
||||
from trezorutils import (
|
||||
LOG_STACK_USAGE,
|
||||
check_heap_fragmentation,
|
||||
clear_gc_info,
|
||||
update_gc_info,
|
||||
)
|
||||
|
||||
if LOG_STACK_USAGE:
|
||||
from trezorutils import estimate_unused_stack, zero_unused_stack # noqa: F401
|
||||
@ -95,8 +101,7 @@ def unimport_end(mods: set[str], collect: bool = True) -> None:
|
||||
class unimport:
|
||||
def __init__(self) -> None:
|
||||
self.mods: set[str] | None = None
|
||||
if __debug__:
|
||||
self.free_heap = 0
|
||||
clear_gc_info()
|
||||
|
||||
def __enter__(self) -> None:
|
||||
self.mods = unimport_begin()
|
||||
@ -108,11 +113,11 @@ class unimport:
|
||||
self.mods = None
|
||||
gc.collect()
|
||||
|
||||
# If an exception is being handled here, `check_free_heap()` will fail
|
||||
# (since the exception survives `gc.collect()` call above).
|
||||
# If an exception is being handled here, `update_gc_info()` internal assertion
|
||||
# will fail (since the exception survives `gc.collect()` call above).
|
||||
# So we prefer to skip the check, in order to preserve the exception.
|
||||
if __debug__ and exc_type is None:
|
||||
self.free_heap = check_free_heap(self.free_heap)
|
||||
update_gc_info()
|
||||
|
||||
|
||||
if __debug__:
|
||||
|
@ -3,6 +3,7 @@ Q := @
|
||||
endif
|
||||
|
||||
SKIPPED_MESSAGES := Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos WebAuthn \
|
||||
DebugLinkGetGcInfo DebugLinkGcInfoItem DebugLinkGcInfo \
|
||||
DebugLinkRecordScreen DebugLinkEraseSdCard DebugLinkWatchLayout \
|
||||
DebugLinkLayout DebugLinkResetDebugEvents GetNonce \
|
||||
TxAckInput TxAckOutput TxAckPrev TxAckPaymentRequest \
|
||||
|
@ -481,6 +481,7 @@ class DebugLink:
|
||||
self.waiting_for_layout_change = False
|
||||
|
||||
self.input_wait_type = DebugWaitType.IMMEDIATE
|
||||
self.prev_gc_info: dict[str, int] = {}
|
||||
|
||||
@property
|
||||
def legacy_ui(self) -> bool:
|
||||
@ -497,6 +498,11 @@ class DebugLink:
|
||||
"""Differences in waiting for Global Layout objects."""
|
||||
return self.version >= (2, 8, 6)
|
||||
|
||||
@property
|
||||
def has_gc_info(self) -> bool:
|
||||
"""Supports DebugLinkGetGcInfo RPC."""
|
||||
return self.version >= (2, 8, 11)
|
||||
|
||||
@property
|
||||
def responds_to_debuglink_in_usb_tiny(self) -> bool:
|
||||
"""Whether a Trezor One can respond to DebugLinkGetState while waiting
|
||||
@ -845,6 +851,21 @@ class DebugLink:
|
||||
im.save(img_location)
|
||||
self.t1_screenshot_counter += 1
|
||||
|
||||
def check_gc_info(self):
|
||||
"""Fetch GC heap information and check for leaks."""
|
||||
if not self.has_gc_info:
|
||||
return
|
||||
|
||||
resp = self._call(messages.DebugLinkGetGcInfo())
|
||||
while not isinstance(resp, messages.DebugLinkGcInfo):
|
||||
resp = self._read()
|
||||
|
||||
info = dict(sorted((item.name, item.value) for item in resp.items))
|
||||
if self.prev_gc_info:
|
||||
# Free heap memory should not decrease
|
||||
assert info["free"] >= self.prev_gc_info["free"]
|
||||
self.prev_gc_info = info
|
||||
|
||||
|
||||
del _make_input_func
|
||||
|
||||
|
37
python/src/trezorlib/messages.py
generated
37
python/src/trezorlib/messages.py
generated
@ -485,6 +485,8 @@ class MessageType(IntEnum):
|
||||
DebugLinkWatchLayout = 9006
|
||||
DebugLinkResetDebugEvents = 9007
|
||||
DebugLinkOptigaSetSecMax = 9008
|
||||
DebugLinkGetGcInfo = 9009
|
||||
DebugLinkGcInfo = 9010
|
||||
EthereumGetPublicKey = 450
|
||||
EthereumPublicKey = 451
|
||||
EthereumGetAddress = 56
|
||||
@ -4094,6 +4096,41 @@ class DebugLinkOptigaSetSecMax(protobuf.MessageType):
|
||||
MESSAGE_WIRE_TYPE = 9008
|
||||
|
||||
|
||||
class DebugLinkGetGcInfo(protobuf.MessageType):
|
||||
MESSAGE_WIRE_TYPE = 9009
|
||||
|
||||
|
||||
class DebugLinkGcInfo(protobuf.MessageType):
|
||||
MESSAGE_WIRE_TYPE = 9010
|
||||
FIELDS = {
|
||||
1: protobuf.Field("items", "DebugLinkGcInfoItem", repeated=True, required=False, default=None),
|
||||
}
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
items: Optional[Sequence["DebugLinkGcInfoItem"]] = None,
|
||||
) -> None:
|
||||
self.items: Sequence["DebugLinkGcInfoItem"] = items if items is not None else []
|
||||
|
||||
|
||||
class DebugLinkGcInfoItem(protobuf.MessageType):
|
||||
MESSAGE_WIRE_TYPE = None
|
||||
FIELDS = {
|
||||
1: protobuf.Field("name", "string", repeated=False, required=True),
|
||||
2: protobuf.Field("value", "uint64", repeated=False, required=True),
|
||||
}
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
name: "str",
|
||||
value: "int",
|
||||
) -> None:
|
||||
self.name = name
|
||||
self.value = value
|
||||
|
||||
|
||||
class EthereumNetworkInfo(protobuf.MessageType):
|
||||
MESSAGE_WIRE_TYPE = None
|
||||
FIELDS = {
|
||||
|
2
rust/trezor-client/src/messages/generated.rs
generated
2
rust/trezor-client/src/messages/generated.rs
generated
@ -83,6 +83,8 @@ trezor_message_impl! {
|
||||
DebugLinkWatchLayout => MessageType_DebugLinkWatchLayout,
|
||||
DebugLinkResetDebugEvents => MessageType_DebugLinkResetDebugEvents,
|
||||
DebugLinkOptigaSetSecMax => MessageType_DebugLinkOptigaSetSecMax,
|
||||
DebugLinkGetGcInfo => MessageType_DebugLinkGetGcInfo,
|
||||
DebugLinkGcInfo => MessageType_DebugLinkGcInfo,
|
||||
BenchmarkListNames => MessageType_BenchmarkListNames,
|
||||
BenchmarkNames => MessageType_BenchmarkNames,
|
||||
BenchmarkRun => MessageType_BenchmarkRun,
|
||||
|
620
rust/trezor-client/src/protos/generated/messages.rs
generated
620
rust/trezor-client/src/protos/generated/messages.rs
generated
@ -227,6 +227,10 @@ pub enum MessageType {
|
||||
MessageType_DebugLinkResetDebugEvents = 9007,
|
||||
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkOptigaSetSecMax)
|
||||
MessageType_DebugLinkOptigaSetSecMax = 9008,
|
||||
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkGetGcInfo)
|
||||
MessageType_DebugLinkGetGcInfo = 9009,
|
||||
// @@protoc_insertion_point(enum_value:hw.trezor.messages.MessageType.MessageType_DebugLinkGcInfo)
|
||||
MessageType_DebugLinkGcInfo = 9010,
|
||||
// @@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)
|
||||
@ -622,6 +626,8 @@ impl ::protobuf::Enum for MessageType {
|
||||
9006 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkWatchLayout),
|
||||
9007 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkResetDebugEvents),
|
||||
9008 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
|
||||
9009 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetGcInfo),
|
||||
9010 => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo),
|
||||
450 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetPublicKey),
|
||||
451 => ::std::option::Option::Some(MessageType::MessageType_EthereumPublicKey),
|
||||
56 => ::std::option::Option::Some(MessageType::MessageType_EthereumGetAddress),
|
||||
@ -870,6 +876,8 @@ impl ::protobuf::Enum for MessageType {
|
||||
"MessageType_DebugLinkWatchLayout" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkWatchLayout),
|
||||
"MessageType_DebugLinkResetDebugEvents" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkResetDebugEvents),
|
||||
"MessageType_DebugLinkOptigaSetSecMax" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkOptigaSetSecMax),
|
||||
"MessageType_DebugLinkGetGcInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGetGcInfo),
|
||||
"MessageType_DebugLinkGcInfo" => ::std::option::Option::Some(MessageType::MessageType_DebugLinkGcInfo),
|
||||
"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),
|
||||
@ -1117,6 +1125,8 @@ impl ::protobuf::Enum for MessageType {
|
||||
MessageType::MessageType_DebugLinkWatchLayout,
|
||||
MessageType::MessageType_DebugLinkResetDebugEvents,
|
||||
MessageType::MessageType_DebugLinkOptigaSetSecMax,
|
||||
MessageType::MessageType_DebugLinkGetGcInfo,
|
||||
MessageType::MessageType_DebugLinkGcInfo,
|
||||
MessageType::MessageType_EthereumGetPublicKey,
|
||||
MessageType::MessageType_EthereumPublicKey,
|
||||
MessageType::MessageType_EthereumGetAddress,
|
||||
@ -1370,148 +1380,150 @@ impl ::protobuf::EnumFull for MessageType {
|
||||
MessageType::MessageType_DebugLinkWatchLayout => 97,
|
||||
MessageType::MessageType_DebugLinkResetDebugEvents => 98,
|
||||
MessageType::MessageType_DebugLinkOptigaSetSecMax => 99,
|
||||
MessageType::MessageType_EthereumGetPublicKey => 100,
|
||||
MessageType::MessageType_EthereumPublicKey => 101,
|
||||
MessageType::MessageType_EthereumGetAddress => 102,
|
||||
MessageType::MessageType_EthereumAddress => 103,
|
||||
MessageType::MessageType_EthereumSignTx => 104,
|
||||
MessageType::MessageType_EthereumSignTxEIP1559 => 105,
|
||||
MessageType::MessageType_EthereumTxRequest => 106,
|
||||
MessageType::MessageType_EthereumTxAck => 107,
|
||||
MessageType::MessageType_EthereumSignMessage => 108,
|
||||
MessageType::MessageType_EthereumVerifyMessage => 109,
|
||||
MessageType::MessageType_EthereumMessageSignature => 110,
|
||||
MessageType::MessageType_EthereumSignTypedData => 111,
|
||||
MessageType::MessageType_EthereumTypedDataStructRequest => 112,
|
||||
MessageType::MessageType_EthereumTypedDataStructAck => 113,
|
||||
MessageType::MessageType_EthereumTypedDataValueRequest => 114,
|
||||
MessageType::MessageType_EthereumTypedDataValueAck => 115,
|
||||
MessageType::MessageType_EthereumTypedDataSignature => 116,
|
||||
MessageType::MessageType_EthereumSignTypedHash => 117,
|
||||
MessageType::MessageType_NEMGetAddress => 118,
|
||||
MessageType::MessageType_NEMAddress => 119,
|
||||
MessageType::MessageType_NEMSignTx => 120,
|
||||
MessageType::MessageType_NEMSignedTx => 121,
|
||||
MessageType::MessageType_NEMDecryptMessage => 122,
|
||||
MessageType::MessageType_NEMDecryptedMessage => 123,
|
||||
MessageType::MessageType_TezosGetAddress => 124,
|
||||
MessageType::MessageType_TezosAddress => 125,
|
||||
MessageType::MessageType_TezosSignTx => 126,
|
||||
MessageType::MessageType_TezosSignedTx => 127,
|
||||
MessageType::MessageType_TezosGetPublicKey => 128,
|
||||
MessageType::MessageType_TezosPublicKey => 129,
|
||||
MessageType::MessageType_StellarSignTx => 130,
|
||||
MessageType::MessageType_StellarTxOpRequest => 131,
|
||||
MessageType::MessageType_StellarGetAddress => 132,
|
||||
MessageType::MessageType_StellarAddress => 133,
|
||||
MessageType::MessageType_StellarCreateAccountOp => 134,
|
||||
MessageType::MessageType_StellarPaymentOp => 135,
|
||||
MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 136,
|
||||
MessageType::MessageType_StellarManageSellOfferOp => 137,
|
||||
MessageType::MessageType_StellarCreatePassiveSellOfferOp => 138,
|
||||
MessageType::MessageType_StellarSetOptionsOp => 139,
|
||||
MessageType::MessageType_StellarChangeTrustOp => 140,
|
||||
MessageType::MessageType_StellarAllowTrustOp => 141,
|
||||
MessageType::MessageType_StellarAccountMergeOp => 142,
|
||||
MessageType::MessageType_StellarManageDataOp => 143,
|
||||
MessageType::MessageType_StellarBumpSequenceOp => 144,
|
||||
MessageType::MessageType_StellarManageBuyOfferOp => 145,
|
||||
MessageType::MessageType_StellarPathPaymentStrictSendOp => 146,
|
||||
MessageType::MessageType_StellarClaimClaimableBalanceOp => 147,
|
||||
MessageType::MessageType_StellarSignedTx => 148,
|
||||
MessageType::MessageType_CardanoGetPublicKey => 149,
|
||||
MessageType::MessageType_CardanoPublicKey => 150,
|
||||
MessageType::MessageType_CardanoGetAddress => 151,
|
||||
MessageType::MessageType_CardanoAddress => 152,
|
||||
MessageType::MessageType_CardanoTxItemAck => 153,
|
||||
MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 154,
|
||||
MessageType::MessageType_CardanoTxWitnessRequest => 155,
|
||||
MessageType::MessageType_CardanoTxWitnessResponse => 156,
|
||||
MessageType::MessageType_CardanoTxHostAck => 157,
|
||||
MessageType::MessageType_CardanoTxBodyHash => 158,
|
||||
MessageType::MessageType_CardanoSignTxFinished => 159,
|
||||
MessageType::MessageType_CardanoSignTxInit => 160,
|
||||
MessageType::MessageType_CardanoTxInput => 161,
|
||||
MessageType::MessageType_CardanoTxOutput => 162,
|
||||
MessageType::MessageType_CardanoAssetGroup => 163,
|
||||
MessageType::MessageType_CardanoToken => 164,
|
||||
MessageType::MessageType_CardanoTxCertificate => 165,
|
||||
MessageType::MessageType_CardanoTxWithdrawal => 166,
|
||||
MessageType::MessageType_CardanoTxAuxiliaryData => 167,
|
||||
MessageType::MessageType_CardanoPoolOwner => 168,
|
||||
MessageType::MessageType_CardanoPoolRelayParameters => 169,
|
||||
MessageType::MessageType_CardanoGetNativeScriptHash => 170,
|
||||
MessageType::MessageType_CardanoNativeScriptHash => 171,
|
||||
MessageType::MessageType_CardanoTxMint => 172,
|
||||
MessageType::MessageType_CardanoTxCollateralInput => 173,
|
||||
MessageType::MessageType_CardanoTxRequiredSigner => 174,
|
||||
MessageType::MessageType_CardanoTxInlineDatumChunk => 175,
|
||||
MessageType::MessageType_CardanoTxReferenceScriptChunk => 176,
|
||||
MessageType::MessageType_CardanoTxReferenceInput => 177,
|
||||
MessageType::MessageType_RippleGetAddress => 178,
|
||||
MessageType::MessageType_RippleAddress => 179,
|
||||
MessageType::MessageType_RippleSignTx => 180,
|
||||
MessageType::MessageType_RippleSignedTx => 181,
|
||||
MessageType::MessageType_MoneroTransactionInitRequest => 182,
|
||||
MessageType::MessageType_MoneroTransactionInitAck => 183,
|
||||
MessageType::MessageType_MoneroTransactionSetInputRequest => 184,
|
||||
MessageType::MessageType_MoneroTransactionSetInputAck => 185,
|
||||
MessageType::MessageType_MoneroTransactionInputViniRequest => 186,
|
||||
MessageType::MessageType_MoneroTransactionInputViniAck => 187,
|
||||
MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 188,
|
||||
MessageType::MessageType_MoneroTransactionAllInputsSetAck => 189,
|
||||
MessageType::MessageType_MoneroTransactionSetOutputRequest => 190,
|
||||
MessageType::MessageType_MoneroTransactionSetOutputAck => 191,
|
||||
MessageType::MessageType_MoneroTransactionAllOutSetRequest => 192,
|
||||
MessageType::MessageType_MoneroTransactionAllOutSetAck => 193,
|
||||
MessageType::MessageType_MoneroTransactionSignInputRequest => 194,
|
||||
MessageType::MessageType_MoneroTransactionSignInputAck => 195,
|
||||
MessageType::MessageType_MoneroTransactionFinalRequest => 196,
|
||||
MessageType::MessageType_MoneroTransactionFinalAck => 197,
|
||||
MessageType::MessageType_MoneroKeyImageExportInitRequest => 198,
|
||||
MessageType::MessageType_MoneroKeyImageExportInitAck => 199,
|
||||
MessageType::MessageType_MoneroKeyImageSyncStepRequest => 200,
|
||||
MessageType::MessageType_MoneroKeyImageSyncStepAck => 201,
|
||||
MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 202,
|
||||
MessageType::MessageType_MoneroKeyImageSyncFinalAck => 203,
|
||||
MessageType::MessageType_MoneroGetAddress => 204,
|
||||
MessageType::MessageType_MoneroAddress => 205,
|
||||
MessageType::MessageType_MoneroGetWatchKey => 206,
|
||||
MessageType::MessageType_MoneroWatchKey => 207,
|
||||
MessageType::MessageType_DebugMoneroDiagRequest => 208,
|
||||
MessageType::MessageType_DebugMoneroDiagAck => 209,
|
||||
MessageType::MessageType_MoneroGetTxKeyRequest => 210,
|
||||
MessageType::MessageType_MoneroGetTxKeyAck => 211,
|
||||
MessageType::MessageType_MoneroLiveRefreshStartRequest => 212,
|
||||
MessageType::MessageType_MoneroLiveRefreshStartAck => 213,
|
||||
MessageType::MessageType_MoneroLiveRefreshStepRequest => 214,
|
||||
MessageType::MessageType_MoneroLiveRefreshStepAck => 215,
|
||||
MessageType::MessageType_MoneroLiveRefreshFinalRequest => 216,
|
||||
MessageType::MessageType_MoneroLiveRefreshFinalAck => 217,
|
||||
MessageType::MessageType_EosGetPublicKey => 218,
|
||||
MessageType::MessageType_EosPublicKey => 219,
|
||||
MessageType::MessageType_EosSignTx => 220,
|
||||
MessageType::MessageType_EosTxActionRequest => 221,
|
||||
MessageType::MessageType_EosTxActionAck => 222,
|
||||
MessageType::MessageType_EosSignedTx => 223,
|
||||
MessageType::MessageType_WebAuthnListResidentCredentials => 224,
|
||||
MessageType::MessageType_WebAuthnCredentials => 225,
|
||||
MessageType::MessageType_WebAuthnAddResidentCredential => 226,
|
||||
MessageType::MessageType_WebAuthnRemoveResidentCredential => 227,
|
||||
MessageType::MessageType_SolanaGetPublicKey => 228,
|
||||
MessageType::MessageType_SolanaPublicKey => 229,
|
||||
MessageType::MessageType_SolanaGetAddress => 230,
|
||||
MessageType::MessageType_SolanaAddress => 231,
|
||||
MessageType::MessageType_SolanaSignTx => 232,
|
||||
MessageType::MessageType_SolanaTxSignature => 233,
|
||||
MessageType::MessageType_NostrGetPubkey => 234,
|
||||
MessageType::MessageType_NostrPubkey => 235,
|
||||
MessageType::MessageType_NostrSignEvent => 236,
|
||||
MessageType::MessageType_NostrEventSignature => 237,
|
||||
MessageType::MessageType_BenchmarkListNames => 238,
|
||||
MessageType::MessageType_BenchmarkNames => 239,
|
||||
MessageType::MessageType_BenchmarkRun => 240,
|
||||
MessageType::MessageType_BenchmarkResult => 241,
|
||||
MessageType::MessageType_DebugLinkGetGcInfo => 100,
|
||||
MessageType::MessageType_DebugLinkGcInfo => 101,
|
||||
MessageType::MessageType_EthereumGetPublicKey => 102,
|
||||
MessageType::MessageType_EthereumPublicKey => 103,
|
||||
MessageType::MessageType_EthereumGetAddress => 104,
|
||||
MessageType::MessageType_EthereumAddress => 105,
|
||||
MessageType::MessageType_EthereumSignTx => 106,
|
||||
MessageType::MessageType_EthereumSignTxEIP1559 => 107,
|
||||
MessageType::MessageType_EthereumTxRequest => 108,
|
||||
MessageType::MessageType_EthereumTxAck => 109,
|
||||
MessageType::MessageType_EthereumSignMessage => 110,
|
||||
MessageType::MessageType_EthereumVerifyMessage => 111,
|
||||
MessageType::MessageType_EthereumMessageSignature => 112,
|
||||
MessageType::MessageType_EthereumSignTypedData => 113,
|
||||
MessageType::MessageType_EthereumTypedDataStructRequest => 114,
|
||||
MessageType::MessageType_EthereumTypedDataStructAck => 115,
|
||||
MessageType::MessageType_EthereumTypedDataValueRequest => 116,
|
||||
MessageType::MessageType_EthereumTypedDataValueAck => 117,
|
||||
MessageType::MessageType_EthereumTypedDataSignature => 118,
|
||||
MessageType::MessageType_EthereumSignTypedHash => 119,
|
||||
MessageType::MessageType_NEMGetAddress => 120,
|
||||
MessageType::MessageType_NEMAddress => 121,
|
||||
MessageType::MessageType_NEMSignTx => 122,
|
||||
MessageType::MessageType_NEMSignedTx => 123,
|
||||
MessageType::MessageType_NEMDecryptMessage => 124,
|
||||
MessageType::MessageType_NEMDecryptedMessage => 125,
|
||||
MessageType::MessageType_TezosGetAddress => 126,
|
||||
MessageType::MessageType_TezosAddress => 127,
|
||||
MessageType::MessageType_TezosSignTx => 128,
|
||||
MessageType::MessageType_TezosSignedTx => 129,
|
||||
MessageType::MessageType_TezosGetPublicKey => 130,
|
||||
MessageType::MessageType_TezosPublicKey => 131,
|
||||
MessageType::MessageType_StellarSignTx => 132,
|
||||
MessageType::MessageType_StellarTxOpRequest => 133,
|
||||
MessageType::MessageType_StellarGetAddress => 134,
|
||||
MessageType::MessageType_StellarAddress => 135,
|
||||
MessageType::MessageType_StellarCreateAccountOp => 136,
|
||||
MessageType::MessageType_StellarPaymentOp => 137,
|
||||
MessageType::MessageType_StellarPathPaymentStrictReceiveOp => 138,
|
||||
MessageType::MessageType_StellarManageSellOfferOp => 139,
|
||||
MessageType::MessageType_StellarCreatePassiveSellOfferOp => 140,
|
||||
MessageType::MessageType_StellarSetOptionsOp => 141,
|
||||
MessageType::MessageType_StellarChangeTrustOp => 142,
|
||||
MessageType::MessageType_StellarAllowTrustOp => 143,
|
||||
MessageType::MessageType_StellarAccountMergeOp => 144,
|
||||
MessageType::MessageType_StellarManageDataOp => 145,
|
||||
MessageType::MessageType_StellarBumpSequenceOp => 146,
|
||||
MessageType::MessageType_StellarManageBuyOfferOp => 147,
|
||||
MessageType::MessageType_StellarPathPaymentStrictSendOp => 148,
|
||||
MessageType::MessageType_StellarClaimClaimableBalanceOp => 149,
|
||||
MessageType::MessageType_StellarSignedTx => 150,
|
||||
MessageType::MessageType_CardanoGetPublicKey => 151,
|
||||
MessageType::MessageType_CardanoPublicKey => 152,
|
||||
MessageType::MessageType_CardanoGetAddress => 153,
|
||||
MessageType::MessageType_CardanoAddress => 154,
|
||||
MessageType::MessageType_CardanoTxItemAck => 155,
|
||||
MessageType::MessageType_CardanoTxAuxiliaryDataSupplement => 156,
|
||||
MessageType::MessageType_CardanoTxWitnessRequest => 157,
|
||||
MessageType::MessageType_CardanoTxWitnessResponse => 158,
|
||||
MessageType::MessageType_CardanoTxHostAck => 159,
|
||||
MessageType::MessageType_CardanoTxBodyHash => 160,
|
||||
MessageType::MessageType_CardanoSignTxFinished => 161,
|
||||
MessageType::MessageType_CardanoSignTxInit => 162,
|
||||
MessageType::MessageType_CardanoTxInput => 163,
|
||||
MessageType::MessageType_CardanoTxOutput => 164,
|
||||
MessageType::MessageType_CardanoAssetGroup => 165,
|
||||
MessageType::MessageType_CardanoToken => 166,
|
||||
MessageType::MessageType_CardanoTxCertificate => 167,
|
||||
MessageType::MessageType_CardanoTxWithdrawal => 168,
|
||||
MessageType::MessageType_CardanoTxAuxiliaryData => 169,
|
||||
MessageType::MessageType_CardanoPoolOwner => 170,
|
||||
MessageType::MessageType_CardanoPoolRelayParameters => 171,
|
||||
MessageType::MessageType_CardanoGetNativeScriptHash => 172,
|
||||
MessageType::MessageType_CardanoNativeScriptHash => 173,
|
||||
MessageType::MessageType_CardanoTxMint => 174,
|
||||
MessageType::MessageType_CardanoTxCollateralInput => 175,
|
||||
MessageType::MessageType_CardanoTxRequiredSigner => 176,
|
||||
MessageType::MessageType_CardanoTxInlineDatumChunk => 177,
|
||||
MessageType::MessageType_CardanoTxReferenceScriptChunk => 178,
|
||||
MessageType::MessageType_CardanoTxReferenceInput => 179,
|
||||
MessageType::MessageType_RippleGetAddress => 180,
|
||||
MessageType::MessageType_RippleAddress => 181,
|
||||
MessageType::MessageType_RippleSignTx => 182,
|
||||
MessageType::MessageType_RippleSignedTx => 183,
|
||||
MessageType::MessageType_MoneroTransactionInitRequest => 184,
|
||||
MessageType::MessageType_MoneroTransactionInitAck => 185,
|
||||
MessageType::MessageType_MoneroTransactionSetInputRequest => 186,
|
||||
MessageType::MessageType_MoneroTransactionSetInputAck => 187,
|
||||
MessageType::MessageType_MoneroTransactionInputViniRequest => 188,
|
||||
MessageType::MessageType_MoneroTransactionInputViniAck => 189,
|
||||
MessageType::MessageType_MoneroTransactionAllInputsSetRequest => 190,
|
||||
MessageType::MessageType_MoneroTransactionAllInputsSetAck => 191,
|
||||
MessageType::MessageType_MoneroTransactionSetOutputRequest => 192,
|
||||
MessageType::MessageType_MoneroTransactionSetOutputAck => 193,
|
||||
MessageType::MessageType_MoneroTransactionAllOutSetRequest => 194,
|
||||
MessageType::MessageType_MoneroTransactionAllOutSetAck => 195,
|
||||
MessageType::MessageType_MoneroTransactionSignInputRequest => 196,
|
||||
MessageType::MessageType_MoneroTransactionSignInputAck => 197,
|
||||
MessageType::MessageType_MoneroTransactionFinalRequest => 198,
|
||||
MessageType::MessageType_MoneroTransactionFinalAck => 199,
|
||||
MessageType::MessageType_MoneroKeyImageExportInitRequest => 200,
|
||||
MessageType::MessageType_MoneroKeyImageExportInitAck => 201,
|
||||
MessageType::MessageType_MoneroKeyImageSyncStepRequest => 202,
|
||||
MessageType::MessageType_MoneroKeyImageSyncStepAck => 203,
|
||||
MessageType::MessageType_MoneroKeyImageSyncFinalRequest => 204,
|
||||
MessageType::MessageType_MoneroKeyImageSyncFinalAck => 205,
|
||||
MessageType::MessageType_MoneroGetAddress => 206,
|
||||
MessageType::MessageType_MoneroAddress => 207,
|
||||
MessageType::MessageType_MoneroGetWatchKey => 208,
|
||||
MessageType::MessageType_MoneroWatchKey => 209,
|
||||
MessageType::MessageType_DebugMoneroDiagRequest => 210,
|
||||
MessageType::MessageType_DebugMoneroDiagAck => 211,
|
||||
MessageType::MessageType_MoneroGetTxKeyRequest => 212,
|
||||
MessageType::MessageType_MoneroGetTxKeyAck => 213,
|
||||
MessageType::MessageType_MoneroLiveRefreshStartRequest => 214,
|
||||
MessageType::MessageType_MoneroLiveRefreshStartAck => 215,
|
||||
MessageType::MessageType_MoneroLiveRefreshStepRequest => 216,
|
||||
MessageType::MessageType_MoneroLiveRefreshStepAck => 217,
|
||||
MessageType::MessageType_MoneroLiveRefreshFinalRequest => 218,
|
||||
MessageType::MessageType_MoneroLiveRefreshFinalAck => 219,
|
||||
MessageType::MessageType_EosGetPublicKey => 220,
|
||||
MessageType::MessageType_EosPublicKey => 221,
|
||||
MessageType::MessageType_EosSignTx => 222,
|
||||
MessageType::MessageType_EosTxActionRequest => 223,
|
||||
MessageType::MessageType_EosTxActionAck => 224,
|
||||
MessageType::MessageType_EosSignedTx => 225,
|
||||
MessageType::MessageType_WebAuthnListResidentCredentials => 226,
|
||||
MessageType::MessageType_WebAuthnCredentials => 227,
|
||||
MessageType::MessageType_WebAuthnAddResidentCredential => 228,
|
||||
MessageType::MessageType_WebAuthnRemoveResidentCredential => 229,
|
||||
MessageType::MessageType_SolanaGetPublicKey => 230,
|
||||
MessageType::MessageType_SolanaPublicKey => 231,
|
||||
MessageType::MessageType_SolanaGetAddress => 232,
|
||||
MessageType::MessageType_SolanaAddress => 233,
|
||||
MessageType::MessageType_SolanaSignTx => 234,
|
||||
MessageType::MessageType_SolanaTxSignature => 235,
|
||||
MessageType::MessageType_NostrGetPubkey => 236,
|
||||
MessageType::MessageType_NostrPubkey => 237,
|
||||
MessageType::MessageType_NostrSignEvent => 238,
|
||||
MessageType::MessageType_NostrEventSignature => 239,
|
||||
MessageType::MessageType_BenchmarkListNames => 240,
|
||||
MessageType::MessageType_BenchmarkNames => 241,
|
||||
MessageType::MessageType_BenchmarkRun => 242,
|
||||
MessageType::MessageType_BenchmarkResult => 243,
|
||||
};
|
||||
Self::enum_descriptor().value_by_index(index)
|
||||
}
|
||||
@ -1530,7 +1542,7 @@ impl MessageType {
|
||||
}
|
||||
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\x8fT\
|
||||
\n\x0emessages.proto\x12\x12hw.trezor.messages\x1a\roptions.proto*\xeaT\
|
||||
\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\
|
||||
@ -1651,166 +1663,168 @@ static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\x1d\x01\xa0\xb5\x18\x01\x124\n%MessageType_DebugLinkResetDebugEvents\
|
||||
\x10\xafF\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\x123\n$MessageType_Deb\
|
||||
ugLinkOptigaSetSecMax\x10\xb0F\x1a\x08\x80\xa6\x1d\x01\xa0\xb5\x18\x01\
|
||||
\x12+\n\x20MessageType_EthereumGetPublicKey\x10\xc2\x03\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12(\n\x1dMessageType_EthereumPublicKey\x10\xc3\x03\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12(\n\x1eMessageType_EthereumGetAddress\x108\x1a\x04\x90\
|
||||
\xb5\x18\x01\x12%\n\x1bMessageType_EthereumAddress\x109\x1a\x04\x98\xb5\
|
||||
\x18\x01\x12$\n\x1aMessageType_EthereumSignTx\x10:\x1a\x04\x90\xb5\x18\
|
||||
\x01\x12,\n!MessageType_EthereumSignTxEIP1559\x10\xc4\x03\x1a\x04\x90\
|
||||
\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTxRequest\x10;\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12#\n\x19MessageType_EthereumTxAck\x10<\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12)\n\x1fMessageType_EthereumSignMessage\x10@\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12+\n!MessageType_EthereumVerifyMessage\x10A\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12.\n$MessageType_EthereumMessageSignature\x10B\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\x10\xd0\x03\x1a\
|
||||
\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDataStructRequest\
|
||||
\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_EthereumTypedDat\
|
||||
aStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Ethere\
|
||||
umTypedDataValueRequest\x10\xd3\x03\x1a\x04\x98\xb5\x18\x01\x120\n%Messa\
|
||||
geType_EthereumTypedDataValueAck\x10\xd4\x03\x1a\x04\x90\xb5\x18\x01\x12\
|
||||
1\n&MessageType_EthereumTypedDataSignature\x10\xd5\x03\x1a\x04\x98\xb5\
|
||||
\x18\x01\x12,\n!MessageType_EthereumSignTypedHash\x10\xd6\x03\x1a\x04\
|
||||
\x90\xb5\x18\x01\x12#\n\x19MessageType_NEMGetAddress\x10C\x1a\x04\x90\
|
||||
\xb5\x18\x01\x12\x20\n\x16MessageType_NEMAddress\x10D\x1a\x04\x98\xb5\
|
||||
\x18\x01\x12\x1f\n\x15MessageType_NEMSignTx\x10E\x1a\x04\x90\xb5\x18\x01\
|
||||
\x12!\n\x17MessageType_NEMSignedTx\x10F\x1a\x04\x98\xb5\x18\x01\x12'\n\
|
||||
\x1dMessageType_NEMDecryptMessage\x10K\x1a\x04\x90\xb5\x18\x01\x12)\n\
|
||||
\x1fMessageType_NEMDecryptedMessage\x10L\x1a\x04\x98\xb5\x18\x01\x12&\n\
|
||||
\x1bMessageType_TezosGetAddress\x10\x96\x01\x1a\x04\x90\xb5\x18\x01\x12#\
|
||||
\n\x18MessageType_TezosAddress\x10\x97\x01\x1a\x04\x98\xb5\x18\x01\x12\"\
|
||||
\n\x17MessageType_TezosSignTx\x10\x98\x01\x1a\x04\x90\xb5\x18\x01\x12$\n\
|
||||
\x19MessageType_TezosSignedTx\x10\x99\x01\x1a\x04\x98\xb5\x18\x01\x12(\n\
|
||||
\x1dMessageType_TezosGetPublicKey\x10\x9a\x01\x1a\x04\x90\xb5\x18\x01\
|
||||
\x12%\n\x1aMessageType_TezosPublicKey\x10\x9b\x01\x1a\x04\x98\xb5\x18\
|
||||
\x01\x12$\n\x19MessageType_StellarSignTx\x10\xca\x01\x1a\x04\x90\xb5\x18\
|
||||
\x01\x12)\n\x1eMessageType_StellarTxOpRequest\x10\xcb\x01\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12(\n\x1dMessageType_StellarGetAddress\x10\xcf\x01\x1a\x04\
|
||||
\x90\xb5\x18\x01\x12%\n\x1aMessageType_StellarAddress\x10\xd0\x01\x1a\
|
||||
\x04\x98\xb5\x18\x01\x12-\n\"MessageType_StellarCreateAccountOp\x10\xd2\
|
||||
\x01\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_StellarPaymentOp\x10\
|
||||
\xd3\x01\x1a\x04\x90\xb5\x18\x01\x128\n-MessageType_StellarPathPaymentSt\
|
||||
rictReceiveOp\x10\xd4\x01\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_Ste\
|
||||
llarManageSellOfferOp\x10\xd5\x01\x1a\x04\x90\xb5\x18\x01\x126\n+Message\
|
||||
Type_StellarCreatePassiveSellOfferOp\x10\xd6\x01\x1a\x04\x90\xb5\x18\x01\
|
||||
\x12*\n\x1fMessageType_StellarSetOptionsOp\x10\xd7\x01\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12+\n\x20MessageType_StellarChangeTrustOp\x10\xd8\x01\x1a\x04\
|
||||
\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarAllowTrustOp\x10\xd9\x01\
|
||||
\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarAccountMergeOp\x10\
|
||||
\xda\x01\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_StellarManageData\
|
||||
Op\x10\xdc\x01\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_StellarBumpSeq\
|
||||
uenceOp\x10\xdd\x01\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_StellarMa\
|
||||
nageBuyOfferOp\x10\xde\x01\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_St\
|
||||
ellarPathPaymentStrictSendOp\x10\xdf\x01\x1a\x04\x90\xb5\x18\x01\x125\n*\
|
||||
MessageType_StellarClaimClaimableBalanceOp\x10\xe1\x01\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12&\n\x1bMessageType_StellarSignedTx\x10\xe6\x01\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12*\n\x1fMessageType_CardanoGetPublicKey\x10\xb1\x02\x1a\
|
||||
\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\x10\xb2\x02\
|
||||
\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAddress\x10\xb3\
|
||||
\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAddress\x10\
|
||||
\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoTxItemAck\
|
||||
\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoTxAuxilia\
|
||||
ryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#MessageType_\
|
||||
CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\n$Messa\
|
||||
geType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\x01\x12'\
|
||||
\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\x18\x01\
|
||||
\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\xb5\x18\
|
||||
\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\x1a\x04\
|
||||
\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\x02\x1a\
|
||||
\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\xc2\x02\
|
||||
\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\x10\xc3\
|
||||
\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\x10\xc4\
|
||||
\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCertificate\
|
||||
\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_CardanoTxWith\
|
||||
drawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_CardanoTx\
|
||||
AuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_\
|
||||
CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&MessageType_\
|
||||
CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Me\
|
||||
ssageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\xb5\x18\x01\
|
||||
\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\x04\x98\xb5\
|
||||
\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\x02\x1a\x04\
|
||||
\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\x10\xce\x02\
|
||||
\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineDatumChunk\
|
||||
\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_CardanoTxReferen\
|
||||
ceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_Car\
|
||||
danoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\
|
||||
geType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Me\
|
||||
ssageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12#\n\x18Me\
|
||||
ssageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMes\
|
||||
sageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x123\n(Messa\
|
||||
geType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\x18\x01\
|
||||
\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\x98\xb5\
|
||||
\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\xf7\x03\
|
||||
\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSetInputAck\
|
||||
\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\
|
||||
nInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
|
||||
_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\x01\x12;\
|
||||
\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\x1a\x04\
|
||||
\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSetAck\x10\
|
||||
\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSet\
|
||||
OutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Mon\
|
||||
eroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\x128\n-Me\
|
||||
ssageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\x04\x98\xb5\
|
||||
\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\x10\x82\x04\
|
||||
\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactionSignInputRe\
|
||||
quest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTrans\
|
||||
actionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageTyp\
|
||||
e_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\x18\x01\x120\
|
||||
\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\x04\x98\xb5\x18\
|
||||
\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\x10\x92\x04\x1a\
|
||||
\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageExportInitAck\x10\
|
||||
\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroKeyImageSyncSt\
|
||||
epRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%MessageType_MoneroK\
|
||||
eyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\x125\n*MessageTyp\
|
||||
e_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\x98\xb5\x18\x01\x12\
|
||||
1\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\x04\x1a\x04\x98\xb5\
|
||||
\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\x9c\x04\x1a\x04\x90\
|
||||
\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\x9d\x04\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\x10\x9e\x04\x1a\x04\
|
||||
\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKey\x10\x9f\x04\x1a\
|
||||
\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDiagRequest\x10\xa2\
|
||||
\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_DebugMoneroDiagAck\
|
||||
\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_MoneroGetTxKeyRe\
|
||||
quest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGe\
|
||||
tTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroL\
|
||||
iveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\x120\n%Messag\
|
||||
eType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\xb5\x18\x01\x123\
|
||||
\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\xab\x04\x1a\x04\
|
||||
\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFinalRequest\x10\
|
||||
\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroLiveRefreshFin\
|
||||
alAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessageType_EosGetPu\
|
||||
blicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_EosPub\
|
||||
licKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15MessageType_EosS\
|
||||
ignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_EosTxAct\
|
||||
ionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_Eos\
|
||||
TxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_E\
|
||||
osSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x126\n+MessageType_WebAut\
|
||||
hnListResidentCredentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\x01\x12*\n\x1f\
|
||||
MessageType_WebAuthnCredentials\x10\xa1\x06\x1a\x04\x98\xb5\x18\x01\x124\
|
||||
\n)MessageType_WebAuthnAddResidentCredential\x10\xa2\x06\x1a\x04\x90\xb5\
|
||||
\x18\x01\x127\n,MessageType_WebAuthnRemoveResidentCredential\x10\xa3\x06\
|
||||
\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_SolanaGetPublicKey\x10\
|
||||
\x84\x07\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_SolanaPublicKey\
|
||||
\x10\x85\x07\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_SolanaGetAddr\
|
||||
ess\x10\x86\x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_SolanaAddr\
|
||||
ess\x10\x87\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18MessageType_SolanaSign\
|
||||
Tx\x10\x88\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_SolanaTxSig\
|
||||
nature\x10\x89\x07\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrGe\
|
||||
tPubkey\x10\xd1\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17MessageType_Nostr\
|
||||
Pubkey\x10\xd2\x0f\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMessageType_NostrSi\
|
||||
gnEvent\x10\xd3\x0f\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_NostrE\
|
||||
ventSignature\x10\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\x1eMessageType_\
|
||||
BenchmarkListNames\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\n\x1aMessageTyp\
|
||||
e_BenchmarkNames\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\x18MessageType_\
|
||||
BenchmarkRun\x10\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1bMessageType_Benc\
|
||||
hmarkResult\x10\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\xf3\x18\x01\"\
|
||||
\x04\x08Z\x10\\\"\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\xdb\x01\x10\
|
||||
\xdb\x01\"\x06\x08\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\xb0\x02\"\
|
||||
\x06\x08\xb5\x02\x10\xb8\x02\"\x06\x08\xbc\x05\x10\xc5\x05\"\x06\x08\xe8\
|
||||
\x07\x10\xcb\x08B8\n#com.satoshilabs.trezor.lib.protobufB\rTrezorMessage\
|
||||
\x80\xa6\x1d\x01\
|
||||
\x12-\n\x1eMessageType_DebugLinkGetGcInfo\x10\xb1F\x1a\x08\x80\xa6\x1d\
|
||||
\x01\xa0\xb5\x18\x01\x12*\n\x1bMessageType_DebugLinkGcInfo\x10\xb2F\x1a\
|
||||
\x08\x80\xa6\x1d\x01\xa8\xb5\x18\x01\x12+\n\x20MessageType_EthereumGetPu\
|
||||
blicKey\x10\xc2\x03\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_Ethere\
|
||||
umPublicKey\x10\xc3\x03\x1a\x04\x98\xb5\x18\x01\x12(\n\x1eMessageType_Et\
|
||||
hereumGetAddress\x108\x1a\x04\x90\xb5\x18\x01\x12%\n\x1bMessageType_Ethe\
|
||||
reumAddress\x109\x1a\x04\x98\xb5\x18\x01\x12$\n\x1aMessageType_EthereumS\
|
||||
ignTx\x10:\x1a\x04\x90\xb5\x18\x01\x12,\n!MessageType_EthereumSignTxEIP1\
|
||||
559\x10\xc4\x03\x1a\x04\x90\xb5\x18\x01\x12'\n\x1dMessageType_EthereumTx\
|
||||
Request\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_EthereumMessageSignatur\
|
||||
e\x10B\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_EthereumSignTypedData\
|
||||
\x10\xd0\x03\x1a\x04\x90\xb5\x18\x01\x125\n*MessageType_EthereumTypedDat\
|
||||
aStructRequest\x10\xd1\x03\x1a\x04\x98\xb5\x18\x01\x121\n&MessageType_Et\
|
||||
hereumTypedDataStructAck\x10\xd2\x03\x1a\x04\x90\xb5\x18\x01\x124\n)Mess\
|
||||
ageType_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\
|
||||
\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\
|
||||
\xb1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessageType_CardanoPublicKey\
|
||||
\x10\xb2\x02\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoGetAdd\
|
||||
ress\x10\xb3\x02\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoAd\
|
||||
dress\x10\xb4\x02\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_CardanoT\
|
||||
xItemAck\x10\xb9\x02\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_CardanoT\
|
||||
xAuxiliaryDataSupplement\x10\xba\x02\x1a\x04\x98\xb5\x18\x01\x12.\n#Mess\
|
||||
ageType_CardanoTxWitnessRequest\x10\xbb\x02\x1a\x04\x90\xb5\x18\x01\x12/\
|
||||
\n$MessageType_CardanoTxWitnessResponse\x10\xbc\x02\x1a\x04\x98\xb5\x18\
|
||||
\x01\x12'\n\x1cMessageType_CardanoTxHostAck\x10\xbd\x02\x1a\x04\x90\xb5\
|
||||
\x18\x01\x12(\n\x1dMessageType_CardanoTxBodyHash\x10\xbe\x02\x1a\x04\x98\
|
||||
\xb5\x18\x01\x12,\n!MessageType_CardanoSignTxFinished\x10\xbf\x02\x1a\
|
||||
\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_CardanoSignTxInit\x10\xc0\x02\
|
||||
\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_CardanoTxInput\x10\xc1\
|
||||
\x02\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_CardanoTxOutput\x10\
|
||||
\xc2\x02\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageType_CardanoAssetGroup\
|
||||
\x10\xc3\x02\x1a\x04\x90\xb5\x18\x01\x12#\n\x18MessageType_CardanoToken\
|
||||
\x10\xc4\x02\x1a\x04\x90\xb5\x18\x01\x12+\n\x20MessageType_CardanoTxCert\
|
||||
ificate\x10\xc5\x02\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMessageType_Cardan\
|
||||
oTxWithdrawal\x10\xc6\x02\x1a\x04\x90\xb5\x18\x01\x12-\n\"MessageType_Ca\
|
||||
rdanoTxAuxiliaryData\x10\xc7\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\x1cMessa\
|
||||
geType_CardanoPoolOwner\x10\xc8\x02\x1a\x04\x90\xb5\x18\x01\x121\n&Messa\
|
||||
geType_CardanoPoolRelayParameters\x10\xc9\x02\x1a\x04\x90\xb5\x18\x01\
|
||||
\x121\n&MessageType_CardanoGetNativeScriptHash\x10\xca\x02\x1a\x04\x90\
|
||||
\xb5\x18\x01\x12.\n#MessageType_CardanoNativeScriptHash\x10\xcb\x02\x1a\
|
||||
\x04\x98\xb5\x18\x01\x12$\n\x19MessageType_CardanoTxMint\x10\xcc\x02\x1a\
|
||||
\x04\x90\xb5\x18\x01\x12/\n$MessageType_CardanoTxCollateralInput\x10\xcd\
|
||||
\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#MessageType_CardanoTxRequiredSigner\
|
||||
\x10\xce\x02\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_CardanoTxInlineD\
|
||||
atumChunk\x10\xcf\x02\x1a\x04\x90\xb5\x18\x01\x124\n)MessageType_Cardano\
|
||||
TxReferenceScriptChunk\x10\xd0\x02\x1a\x04\x90\xb5\x18\x01\x12.\n#Messag\
|
||||
eType_CardanoTxReferenceInput\x10\xd1\x02\x1a\x04\x90\xb5\x18\x01\x12'\n\
|
||||
\x1cMessageType_RippleGetAddress\x10\x90\x03\x1a\x04\x90\xb5\x18\x01\x12\
|
||||
$\n\x19MessageType_RippleAddress\x10\x91\x03\x1a\x04\x98\xb5\x18\x01\x12\
|
||||
#\n\x18MessageType_RippleSignTx\x10\x92\x03\x1a\x04\x90\xb5\x18\x01\x12%\
|
||||
\n\x1aMessageType_RippleSignedTx\x10\x93\x03\x1a\x04\x90\xb5\x18\x01\x12\
|
||||
3\n(MessageType_MoneroTransactionInitRequest\x10\xf5\x03\x1a\x04\x98\xb5\
|
||||
\x18\x01\x12/\n$MessageType_MoneroTransactionInitAck\x10\xf6\x03\x1a\x04\
|
||||
\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionSetInputRequest\x10\
|
||||
\xf7\x03\x1a\x04\x98\xb5\x18\x01\x123\n(MessageType_MoneroTransactionSet\
|
||||
InputAck\x10\xf8\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTr\
|
||||
ansactionInputViniRequest\x10\xfb\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Mes\
|
||||
sageType_MoneroTransactionInputViniAck\x10\xfc\x03\x1a\x04\x98\xb5\x18\
|
||||
\x01\x12;\n0MessageType_MoneroTransactionAllInputsSetRequest\x10\xfd\x03\
|
||||
\x1a\x04\x98\xb5\x18\x01\x127\n,MessageType_MoneroTransactionAllInputsSe\
|
||||
tAck\x10\xfe\x03\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransa\
|
||||
ctionSetOutputRequest\x10\xff\x03\x1a\x04\x98\xb5\x18\x01\x124\n)Message\
|
||||
Type_MoneroTransactionSetOutputAck\x10\x80\x04\x1a\x04\x98\xb5\x18\x01\
|
||||
\x128\n-MessageType_MoneroTransactionAllOutSetRequest\x10\x81\x04\x1a\
|
||||
\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroTransactionAllOutSetAck\
|
||||
\x10\x82\x04\x1a\x04\x98\xb5\x18\x01\x128\n-MessageType_MoneroTransactio\
|
||||
nSignInputRequest\x10\x83\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType\
|
||||
_MoneroTransactionSignInputAck\x10\x84\x04\x1a\x04\x98\xb5\x18\x01\x124\
|
||||
\n)MessageType_MoneroTransactionFinalRequest\x10\x85\x04\x1a\x04\x98\xb5\
|
||||
\x18\x01\x120\n%MessageType_MoneroTransactionFinalAck\x10\x86\x04\x1a\
|
||||
\x04\x98\xb5\x18\x01\x126\n+MessageType_MoneroKeyImageExportInitRequest\
|
||||
\x10\x92\x04\x1a\x04\x98\xb5\x18\x01\x122\n'MessageType_MoneroKeyImageEx\
|
||||
portInitAck\x10\x93\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_Moner\
|
||||
oKeyImageSyncStepRequest\x10\x94\x04\x1a\x04\x98\xb5\x18\x01\x120\n%Mess\
|
||||
ageType_MoneroKeyImageSyncStepAck\x10\x95\x04\x1a\x04\x98\xb5\x18\x01\
|
||||
\x125\n*MessageType_MoneroKeyImageSyncFinalRequest\x10\x96\x04\x1a\x04\
|
||||
\x98\xb5\x18\x01\x121\n&MessageType_MoneroKeyImageSyncFinalAck\x10\x97\
|
||||
\x04\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageType_MoneroGetAddress\x10\
|
||||
\x9c\x04\x1a\x04\x90\xb5\x18\x01\x12$\n\x19MessageType_MoneroAddress\x10\
|
||||
\x9d\x04\x1a\x04\x98\xb5\x18\x01\x12(\n\x1dMessageType_MoneroGetWatchKey\
|
||||
\x10\x9e\x04\x1a\x04\x90\xb5\x18\x01\x12%\n\x1aMessageType_MoneroWatchKe\
|
||||
y\x10\x9f\x04\x1a\x04\x98\xb5\x18\x01\x12-\n\"MessageType_DebugMoneroDia\
|
||||
gRequest\x10\xa2\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_Debug\
|
||||
MoneroDiagAck\x10\xa3\x04\x1a\x04\x98\xb5\x18\x01\x12,\n!MessageType_Mon\
|
||||
eroGetTxKeyRequest\x10\xa6\x04\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessage\
|
||||
Type_MoneroGetTxKeyAck\x10\xa7\x04\x1a\x04\x98\xb5\x18\x01\x124\n)Messag\
|
||||
eType_MoneroLiveRefreshStartRequest\x10\xa8\x04\x1a\x04\x90\xb5\x18\x01\
|
||||
\x120\n%MessageType_MoneroLiveRefreshStartAck\x10\xa9\x04\x1a\x04\x98\
|
||||
\xb5\x18\x01\x123\n(MessageType_MoneroLiveRefreshStepRequest\x10\xaa\x04\
|
||||
\x1a\x04\x90\xb5\x18\x01\x12/\n$MessageType_MoneroLiveRefreshStepAck\x10\
|
||||
\xab\x04\x1a\x04\x98\xb5\x18\x01\x124\n)MessageType_MoneroLiveRefreshFin\
|
||||
alRequest\x10\xac\x04\x1a\x04\x90\xb5\x18\x01\x120\n%MessageType_MoneroL\
|
||||
iveRefreshFinalAck\x10\xad\x04\x1a\x04\x98\xb5\x18\x01\x12&\n\x1bMessage\
|
||||
Type_EosGetPublicKey\x10\xd8\x04\x1a\x04\x90\xb5\x18\x01\x12#\n\x18Messa\
|
||||
geType_EosPublicKey\x10\xd9\x04\x1a\x04\x98\xb5\x18\x01\x12\x20\n\x15Mes\
|
||||
sageType_EosSignTx\x10\xda\x04\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessage\
|
||||
Type_EosTxActionRequest\x10\xdb\x04\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMe\
|
||||
ssageType_EosTxActionAck\x10\xdc\x04\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17\
|
||||
MessageType_EosSignedTx\x10\xdd\x04\x1a\x04\x98\xb5\x18\x01\x126\n+Messa\
|
||||
geType_WebAuthnListResidentCredentials\x10\xa0\x06\x1a\x04\x90\xb5\x18\
|
||||
\x01\x12*\n\x1fMessageType_WebAuthnCredentials\x10\xa1\x06\x1a\x04\x98\
|
||||
\xb5\x18\x01\x124\n)MessageType_WebAuthnAddResidentCredential\x10\xa2\
|
||||
\x06\x1a\x04\x90\xb5\x18\x01\x127\n,MessageType_WebAuthnRemoveResidentCr\
|
||||
edential\x10\xa3\x06\x1a\x04\x90\xb5\x18\x01\x12)\n\x1eMessageType_Solan\
|
||||
aGetPublicKey\x10\x84\x07\x1a\x04\x90\xb5\x18\x01\x12&\n\x1bMessageType_\
|
||||
SolanaPublicKey\x10\x85\x07\x1a\x04\x98\xb5\x18\x01\x12'\n\x1cMessageTyp\
|
||||
e_SolanaGetAddress\x10\x86\x07\x1a\x04\x90\xb5\x18\x01\x12$\n\x19Message\
|
||||
Type_SolanaAddress\x10\x87\x07\x1a\x04\x98\xb5\x18\x01\x12#\n\x18Message\
|
||||
Type_SolanaSignTx\x10\x88\x07\x1a\x04\x90\xb5\x18\x01\x12(\n\x1dMessageT\
|
||||
ype_SolanaTxSignature\x10\x89\x07\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMess\
|
||||
ageType_NostrGetPubkey\x10\xd1\x0f\x1a\x04\x90\xb5\x18\x01\x12\"\n\x17Me\
|
||||
ssageType_NostrPubkey\x10\xd2\x0f\x1a\x04\x98\xb5\x18\x01\x12%\n\x1aMess\
|
||||
ageType_NostrSignEvent\x10\xd3\x0f\x1a\x04\x90\xb5\x18\x01\x12*\n\x1fMes\
|
||||
sageType_NostrEventSignature\x10\xd4\x0f\x1a\x04\x98\xb5\x18\x01\x12)\n\
|
||||
\x1eMessageType_BenchmarkListNames\x10\x8cG\x1a\x04\x80\xa6\x1d\x01\x12%\
|
||||
\n\x1aMessageType_BenchmarkNames\x10\x8dG\x1a\x04\x80\xa6\x1d\x01\x12#\n\
|
||||
\x18MessageType_BenchmarkRun\x10\x8eG\x1a\x04\x80\xa6\x1d\x01\x12&\n\x1b\
|
||||
MessageType_BenchmarkResult\x10\x8fG\x1a\x04\x80\xa6\x1d\x01\x1a\x04\xc8\
|
||||
\xf3\x18\x01\"\x04\x08Z\x10\\\"\x04\x08G\x10J\"\x04\x08r\x10z\"\x06\x08\
|
||||
\xdb\x01\x10\xdb\x01\"\x06\x08\xe0\x01\x10\xe0\x01\"\x06\x08\xac\x02\x10\
|
||||
\xb0\x02\"\x06\x08\xb5\x02\x10\xb8\x02\"\x06\x08\xbc\x05\x10\xc5\x05\"\
|
||||
\x06\x08\xe8\x07\x10\xcb\x08B8\n#com.satoshilabs.trezor.lib.protobufB\rT\
|
||||
rezorMessage\x80\xa6\x1d\x01\
|
||||
";
|
||||
|
||||
/// `FileDescriptorProto` object which was a source for this generated file
|
||||
|
@ -3666,6 +3666,441 @@ impl ::protobuf::reflect::ProtobufValue for DebugLinkOptigaSetSecMax {
|
||||
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
|
||||
}
|
||||
|
||||
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkGetGcInfo)
|
||||
#[derive(PartialEq,Clone,Default,Debug)]
|
||||
pub struct DebugLinkGetGcInfo {
|
||||
// special fields
|
||||
// @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkGetGcInfo.special_fields)
|
||||
pub special_fields: ::protobuf::SpecialFields,
|
||||
}
|
||||
|
||||
impl<'a> ::std::default::Default for &'a DebugLinkGetGcInfo {
|
||||
fn default() -> &'a DebugLinkGetGcInfo {
|
||||
<DebugLinkGetGcInfo as ::protobuf::Message>::default_instance()
|
||||
}
|
||||
}
|
||||
|
||||
impl DebugLinkGetGcInfo {
|
||||
pub fn new() -> DebugLinkGetGcInfo {
|
||||
::std::default::Default::default()
|
||||
}
|
||||
|
||||
fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
|
||||
let mut fields = ::std::vec::Vec::with_capacity(0);
|
||||
let mut oneofs = ::std::vec::Vec::with_capacity(0);
|
||||
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkGetGcInfo>(
|
||||
"DebugLinkGetGcInfo",
|
||||
fields,
|
||||
oneofs,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Message for DebugLinkGetGcInfo {
|
||||
const NAME: &'static str = "DebugLinkGetGcInfo";
|
||||
|
||||
fn is_initialized(&self) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
|
||||
while let Some(tag) = is.read_raw_tag_or_eof()? {
|
||||
match tag {
|
||||
tag => {
|
||||
::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
|
||||
},
|
||||
};
|
||||
}
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
// Compute sizes of nested messages
|
||||
#[allow(unused_variables)]
|
||||
fn compute_size(&self) -> u64 {
|
||||
let mut my_size = 0;
|
||||
my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
|
||||
self.special_fields.cached_size().set(my_size as u32);
|
||||
my_size
|
||||
}
|
||||
|
||||
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
|
||||
os.write_unknown_fields(self.special_fields.unknown_fields())?;
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
fn special_fields(&self) -> &::protobuf::SpecialFields {
|
||||
&self.special_fields
|
||||
}
|
||||
|
||||
fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
|
||||
&mut self.special_fields
|
||||
}
|
||||
|
||||
fn new() -> DebugLinkGetGcInfo {
|
||||
DebugLinkGetGcInfo::new()
|
||||
}
|
||||
|
||||
fn clear(&mut self) {
|
||||
self.special_fields.clear();
|
||||
}
|
||||
|
||||
fn default_instance() -> &'static DebugLinkGetGcInfo {
|
||||
static instance: DebugLinkGetGcInfo = DebugLinkGetGcInfo {
|
||||
special_fields: ::protobuf::SpecialFields::new(),
|
||||
};
|
||||
&instance
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::MessageFull for DebugLinkGetGcInfo {
|
||||
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("DebugLinkGetGcInfo").unwrap()).clone()
|
||||
}
|
||||
}
|
||||
|
||||
impl ::std::fmt::Display for DebugLinkGetGcInfo {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
||||
::protobuf::text_format::fmt(self, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::reflect::ProtobufValue for DebugLinkGetGcInfo {
|
||||
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
|
||||
}
|
||||
|
||||
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkGcInfo)
|
||||
#[derive(PartialEq,Clone,Default,Debug)]
|
||||
pub struct DebugLinkGcInfo {
|
||||
// message fields
|
||||
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkGcInfo.items)
|
||||
pub items: ::std::vec::Vec<debug_link_gc_info::DebugLinkGcInfoItem>,
|
||||
// special fields
|
||||
// @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkGcInfo.special_fields)
|
||||
pub special_fields: ::protobuf::SpecialFields,
|
||||
}
|
||||
|
||||
impl<'a> ::std::default::Default for &'a DebugLinkGcInfo {
|
||||
fn default() -> &'a DebugLinkGcInfo {
|
||||
<DebugLinkGcInfo as ::protobuf::Message>::default_instance()
|
||||
}
|
||||
}
|
||||
|
||||
impl DebugLinkGcInfo {
|
||||
pub fn new() -> DebugLinkGcInfo {
|
||||
::std::default::Default::default()
|
||||
}
|
||||
|
||||
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_vec_simpler_accessor::<_, _>(
|
||||
"items",
|
||||
|m: &DebugLinkGcInfo| { &m.items },
|
||||
|m: &mut DebugLinkGcInfo| { &mut m.items },
|
||||
));
|
||||
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkGcInfo>(
|
||||
"DebugLinkGcInfo",
|
||||
fields,
|
||||
oneofs,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Message for DebugLinkGcInfo {
|
||||
const NAME: &'static str = "DebugLinkGcInfo";
|
||||
|
||||
fn is_initialized(&self) -> bool {
|
||||
for v in &self.items {
|
||||
if !v.is_initialized() {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
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.items.push(is.read_message()?);
|
||||
},
|
||||
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;
|
||||
for value in &self.items {
|
||||
let len = value.compute_size();
|
||||
my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
|
||||
};
|
||||
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<()> {
|
||||
for v in &self.items {
|
||||
::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
|
||||
};
|
||||
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() -> DebugLinkGcInfo {
|
||||
DebugLinkGcInfo::new()
|
||||
}
|
||||
|
||||
fn clear(&mut self) {
|
||||
self.items.clear();
|
||||
self.special_fields.clear();
|
||||
}
|
||||
|
||||
fn default_instance() -> &'static DebugLinkGcInfo {
|
||||
static instance: DebugLinkGcInfo = DebugLinkGcInfo {
|
||||
items: ::std::vec::Vec::new(),
|
||||
special_fields: ::protobuf::SpecialFields::new(),
|
||||
};
|
||||
&instance
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::MessageFull for DebugLinkGcInfo {
|
||||
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("DebugLinkGcInfo").unwrap()).clone()
|
||||
}
|
||||
}
|
||||
|
||||
impl ::std::fmt::Display for DebugLinkGcInfo {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
||||
::protobuf::text_format::fmt(self, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::reflect::ProtobufValue for DebugLinkGcInfo {
|
||||
type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
|
||||
}
|
||||
|
||||
/// Nested message and enums of message `DebugLinkGcInfo`
|
||||
pub mod debug_link_gc_info {
|
||||
// @@protoc_insertion_point(message:hw.trezor.messages.debug.DebugLinkGcInfo.DebugLinkGcInfoItem)
|
||||
#[derive(PartialEq,Clone,Default,Debug)]
|
||||
pub struct DebugLinkGcInfoItem {
|
||||
// message fields
|
||||
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkGcInfo.DebugLinkGcInfoItem.name)
|
||||
pub name: ::std::option::Option<::std::string::String>,
|
||||
// @@protoc_insertion_point(field:hw.trezor.messages.debug.DebugLinkGcInfo.DebugLinkGcInfoItem.value)
|
||||
pub value: ::std::option::Option<u64>,
|
||||
// special fields
|
||||
// @@protoc_insertion_point(special_field:hw.trezor.messages.debug.DebugLinkGcInfo.DebugLinkGcInfoItem.special_fields)
|
||||
pub special_fields: ::protobuf::SpecialFields,
|
||||
}
|
||||
|
||||
impl<'a> ::std::default::Default for &'a DebugLinkGcInfoItem {
|
||||
fn default() -> &'a DebugLinkGcInfoItem {
|
||||
<DebugLinkGcInfoItem as ::protobuf::Message>::default_instance()
|
||||
}
|
||||
}
|
||||
|
||||
impl DebugLinkGcInfoItem {
|
||||
pub fn new() -> DebugLinkGcInfoItem {
|
||||
::std::default::Default::default()
|
||||
}
|
||||
|
||||
// required string name = 1;
|
||||
|
||||
pub fn name(&self) -> &str {
|
||||
match self.name.as_ref() {
|
||||
Some(v) => v,
|
||||
None => "",
|
||||
}
|
||||
}
|
||||
|
||||
pub fn clear_name(&mut self) {
|
||||
self.name = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_name(&self) -> bool {
|
||||
self.name.is_some()
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_name(&mut self, v: ::std::string::String) {
|
||||
self.name = ::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_name(&mut self) -> &mut ::std::string::String {
|
||||
if self.name.is_none() {
|
||||
self.name = ::std::option::Option::Some(::std::string::String::new());
|
||||
}
|
||||
self.name.as_mut().unwrap()
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_name(&mut self) -> ::std::string::String {
|
||||
self.name.take().unwrap_or_else(|| ::std::string::String::new())
|
||||
}
|
||||
|
||||
// required uint64 value = 2;
|
||||
|
||||
pub fn value(&self) -> u64 {
|
||||
self.value.unwrap_or(0)
|
||||
}
|
||||
|
||||
pub fn clear_value(&mut self) {
|
||||
self.value = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_value(&self) -> bool {
|
||||
self.value.is_some()
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_value(&mut self, v: u64) {
|
||||
self.value = ::std::option::Option::Some(v);
|
||||
}
|
||||
|
||||
pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
|
||||
let mut fields = ::std::vec::Vec::with_capacity(2);
|
||||
let mut oneofs = ::std::vec::Vec::with_capacity(0);
|
||||
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
|
||||
"name",
|
||||
|m: &DebugLinkGcInfoItem| { &m.name },
|
||||
|m: &mut DebugLinkGcInfoItem| { &mut m.name },
|
||||
));
|
||||
fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
|
||||
"value",
|
||||
|m: &DebugLinkGcInfoItem| { &m.value },
|
||||
|m: &mut DebugLinkGcInfoItem| { &mut m.value },
|
||||
));
|
||||
::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<DebugLinkGcInfoItem>(
|
||||
"DebugLinkGcInfo.DebugLinkGcInfoItem",
|
||||
fields,
|
||||
oneofs,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Message for DebugLinkGcInfoItem {
|
||||
const NAME: &'static str = "DebugLinkGcInfoItem";
|
||||
|
||||
fn is_initialized(&self) -> bool {
|
||||
if self.name.is_none() {
|
||||
return false;
|
||||
}
|
||||
if self.value.is_none() {
|
||||
return false;
|
||||
}
|
||||
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.name = ::std::option::Option::Some(is.read_string()?);
|
||||
},
|
||||
16 => {
|
||||
self.value = ::std::option::Option::Some(is.read_uint64()?);
|
||||
},
|
||||
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.name.as_ref() {
|
||||
my_size += ::protobuf::rt::string_size(1, &v);
|
||||
}
|
||||
if let Some(v) = self.value {
|
||||
my_size += ::protobuf::rt::uint64_size(2, 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.name.as_ref() {
|
||||
os.write_string(1, v)?;
|
||||
}
|
||||
if let Some(v) = self.value {
|
||||
os.write_uint64(2, 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() -> DebugLinkGcInfoItem {
|
||||
DebugLinkGcInfoItem::new()
|
||||
}
|
||||
|
||||
fn clear(&mut self) {
|
||||
self.name = ::std::option::Option::None;
|
||||
self.value = ::std::option::Option::None;
|
||||
self.special_fields.clear();
|
||||
}
|
||||
|
||||
fn default_instance() -> &'static DebugLinkGcInfoItem {
|
||||
static instance: DebugLinkGcInfoItem = DebugLinkGcInfoItem {
|
||||
name: ::std::option::Option::None,
|
||||
value: ::std::option::Option::None,
|
||||
special_fields: ::protobuf::SpecialFields::new(),
|
||||
};
|
||||
&instance
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::MessageFull for DebugLinkGcInfoItem {
|
||||
fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
|
||||
static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
|
||||
descriptor.get(|| super::file_descriptor().message_by_package_relative_name("DebugLinkGcInfo.DebugLinkGcInfoItem").unwrap()).clone()
|
||||
}
|
||||
}
|
||||
|
||||
impl ::std::fmt::Display for DebugLinkGcInfoItem {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
||||
::protobuf::text_format::fmt(self, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::reflect::ProtobufValue for DebugLinkGcInfoItem {
|
||||
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\"\
|
||||
@ -3718,8 +4153,13 @@ static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\x01(\rR\x06sector\".\n\x14DebugLinkEraseSdCard\x12\x16\n\x06format\x18\
|
||||
\x01\x20\x01(\x08R\x06format\"0\n\x14DebugLinkWatchLayout\x12\x14\n\x05w\
|
||||
atch\x18\x01\x20\x01(\x08R\x05watch:\x02\x18\x01\"\x1f\n\x19DebugLinkRes\
|
||||
etDebugEvents:\x02\x18\x01\"\x1a\n\x18DebugLinkOptigaSetSecMaxB=\n#com.s\
|
||||
atoshilabs.trezor.lib.protobufB\x12TrezorMessageDebug\x80\xa6\x1d\x01\
|
||||
etDebugEvents:\x02\x18\x01\"\x1a\n\x18DebugLinkOptigaSetSecMax\"\x14\n\
|
||||
\x12DebugLinkGetGcInfo\"\xa7\x01\n\x0fDebugLinkGcInfo\x12S\n\x05items\
|
||||
\x18\x01\x20\x03(\x0b2=.hw.trezor.messages.debug.DebugLinkGcInfo.DebugLi\
|
||||
nkGcInfoItemR\x05items\x1a?\n\x13DebugLinkGcInfoItem\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\
|
||||
";
|
||||
|
||||
/// `FileDescriptorProto` object which was a source for this generated file
|
||||
@ -3740,7 +4180,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(16);
|
||||
let mut messages = ::std::vec::Vec::with_capacity(19);
|
||||
messages.push(DebugLinkDecision::generated_message_descriptor_data());
|
||||
messages.push(DebugLinkLayout::generated_message_descriptor_data());
|
||||
messages.push(DebugLinkReseedRandom::generated_message_descriptor_data());
|
||||
@ -3757,6 +4197,9 @@ pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
|
||||
messages.push(DebugLinkWatchLayout::generated_message_descriptor_data());
|
||||
messages.push(DebugLinkResetDebugEvents::generated_message_descriptor_data());
|
||||
messages.push(DebugLinkOptigaSetSecMax::generated_message_descriptor_data());
|
||||
messages.push(DebugLinkGetGcInfo::generated_message_descriptor_data());
|
||||
messages.push(DebugLinkGcInfo::generated_message_descriptor_data());
|
||||
messages.push(debug_link_gc_info::DebugLinkGcInfoItem::generated_message_descriptor_data());
|
||||
let mut enums = ::std::vec::Vec::with_capacity(4);
|
||||
enums.push(debug_link_decision::DebugSwipeDirection::generated_enum_descriptor_data());
|
||||
enums.push(debug_link_decision::DebugButton::generated_enum_descriptor_data());
|
||||
|
@ -313,6 +313,9 @@ def client(
|
||||
# Resetting all the debug events to not be influenced by previous test
|
||||
_raw_client.debug.reset_debug_events()
|
||||
|
||||
# Make sure there are no GC leaks from previous tests
|
||||
_raw_client.debug.check_gc_info()
|
||||
|
||||
if test_ui:
|
||||
# we need to reseed before the wipe
|
||||
_raw_client.debug.reseed(0)
|
||||
@ -370,6 +373,9 @@ def client(
|
||||
with ui_tests.screen_recording(_raw_client, request):
|
||||
yield _raw_client
|
||||
finally:
|
||||
# Make sure there are no GC leaks from this test
|
||||
_raw_client.debug.check_gc_info()
|
||||
|
||||
_raw_client.close()
|
||||
|
||||
|
||||
|
@ -92,3 +92,12 @@ def test_softlock_instability(client: Client):
|
||||
# If the device actually called config.unlock(), it would use additional randomness.
|
||||
# That is undesirable. Assert that the returned entropy is still the same.
|
||||
assert misc.get_entropy(client, 16) == entropy_after_wipe
|
||||
|
||||
|
||||
@pytest.mark.models("core")
|
||||
def test_gc_info(client: Client):
|
||||
client.debug.check_gc_info()
|
||||
gc_info = client.debug.prev_gc_info
|
||||
assert gc_info["free"] + gc_info["used"] == gc_info["total"]
|
||||
assert gc_info["free"] >= 0.5 * gc_info["total"]
|
||||
assert gc_info["max_free"] >= 0.5 * gc_info["total"]
|
||||
|
@ -2399,6 +2399,7 @@
|
||||
"T2T1_cs_test_cancel.py::test_cancel_message_via_initialize[message0]": "192ab5c3d87834d4f26d2a4696288984c33ad65045d40fdda9f89cc58c5b7895",
|
||||
"T2T1_cs_test_cancel.py::test_cancel_message_via_initialize[message1]": "59f123fbce3d11932aae87de4a1736b3a116416804dbebc4ddbb1c20b083a3c0",
|
||||
"T2T1_cs_test_cancel.py::test_cancel_on_paginated": "0a19c0af520104b7851a834f0fa334be14a42d1d17f02a5bef6439890ac89646",
|
||||
"T2T1_cs_test_debuglink.py::test_gc_info": "32d380b2c0942f8a2ab6a32e0e4c8a2ad2ab6750ee39c6fa4d4f0bacf59a4b7c",
|
||||
"T2T1_cs_test_debuglink.py::test_softlock_instability": "926558b36f31a1bfa4723a22b2faf1d6bf91561c4a39e2c10b21164ea07167da",
|
||||
"T2T1_cs_test_firmware_hash.py::test_firmware_hash_emu": "287eb5bf75044941242fe4326fd3c2f92687d7d229c8c43334f188c8d0fecaa5",
|
||||
"T2T1_cs_test_firmware_hash.py::test_firmware_hash_hw": "32d380b2c0942f8a2ab6a32e0e4c8a2ad2ab6750ee39c6fa4d4f0bacf59a4b7c",
|
||||
@ -3877,6 +3878,7 @@
|
||||
"T2T1_de_test_cancel.py::test_cancel_message_via_initialize[message0]": "981754c833dd90ed5fc83f1371c42918934b715d737884927322b9102341f3a8",
|
||||
"T2T1_de_test_cancel.py::test_cancel_message_via_initialize[message1]": "f42046d347547b103e63cdbfc9099ced85a22209d50fbc8cd4f90212e02163f2",
|
||||
"T2T1_de_test_cancel.py::test_cancel_on_paginated": "40740ac190932ecf5c8167b9ee9474e5860054b1b0f0684ee7fa3db22e26514c",
|
||||
"T2T1_de_test_debuglink.py::test_gc_info": "a3edf3ced8fa1fa6b9f67f869a28bc880ce5e214b0adfaf839cd867875845912",
|
||||
"T2T1_de_test_debuglink.py::test_softlock_instability": "0b0fadfb6b6d39b2ea37bc09396b373fc7386a81cffd2ce893b346c019304ee3",
|
||||
"T2T1_de_test_firmware_hash.py::test_firmware_hash_emu": "c97b08ab7252cc9a06e6ffd6945be3272bfa0e58a0716b9a4c98884ecdf42bad",
|
||||
"T2T1_de_test_firmware_hash.py::test_firmware_hash_hw": "a3edf3ced8fa1fa6b9f67f869a28bc880ce5e214b0adfaf839cd867875845912",
|
||||
@ -5355,6 +5357,7 @@
|
||||
"T2T1_en_test_cancel.py::test_cancel_message_via_initialize[message0]": "6c42efb29e5a843dd3322ab7e9f8a4ddd0eae2d6d25935c7f4c30cc657c8d936",
|
||||
"T2T1_en_test_cancel.py::test_cancel_message_via_initialize[message1]": "6b509c6baf3516715969ba97d41a5e157419928f52624e19603b0a8807d8d971",
|
||||
"T2T1_en_test_cancel.py::test_cancel_on_paginated": "42db3f4ad5a4e377c57c8907a91cefec4cc4fa4265877f8592f9c338b73f1524",
|
||||
"T2T1_en_test_debuglink.py::test_gc_info": "8b1ccc0dbd6e6e3d02a896650ab90dd332ba4edbbcc4095e0fbb6a96e5256f75",
|
||||
"T2T1_en_test_debuglink.py::test_softlock_instability": "c7698dcc8b2f0130b284be731c11988f8b1ecd829eeeea958a32565e0fe50ca7",
|
||||
"T2T1_en_test_firmware_hash.py::test_firmware_hash_emu": "7a5f7b57930abc99b37db9aac7cb353638d42eeede5c7d6a3a754bac633f57f3",
|
||||
"T2T1_en_test_firmware_hash.py::test_firmware_hash_hw": "8b1ccc0dbd6e6e3d02a896650ab90dd332ba4edbbcc4095e0fbb6a96e5256f75",
|
||||
@ -6851,6 +6854,7 @@
|
||||
"T2T1_es_test_cancel.py::test_cancel_message_via_initialize[message0]": "7bcec383a62fc12a0611da344b442e518a8260413d5c257494558b09d9d406ad",
|
||||
"T2T1_es_test_cancel.py::test_cancel_message_via_initialize[message1]": "d7e9f16326e3bf62980b0ba169f6d149d27ba870755ce950624cd570e54e273a",
|
||||
"T2T1_es_test_cancel.py::test_cancel_on_paginated": "ea94399ccda1508fc0622d1dc2775689dbedb701e84784b84077398940501c10",
|
||||
"T2T1_es_test_debuglink.py::test_gc_info": "1775658fa541fff7933453c1d346449c492079a39341e07135ac9e7662b3bbd3",
|
||||
"T2T1_es_test_debuglink.py::test_softlock_instability": "0a174dd4d9b39afcb18a18955c768822dc3112555d91166e3cec3bc8a8210e62",
|
||||
"T2T1_es_test_firmware_hash.py::test_firmware_hash_emu": "3ebf5eba08a5fb9ba2c605b3304e47fae91cc6544517e5a2f22930c38be44216",
|
||||
"T2T1_es_test_firmware_hash.py::test_firmware_hash_hw": "1775658fa541fff7933453c1d346449c492079a39341e07135ac9e7662b3bbd3",
|
||||
@ -8329,6 +8333,7 @@
|
||||
"T2T1_fr_test_cancel.py::test_cancel_message_via_initialize[message0]": "ef6d4ca69c34cec4e0c114983fc54e58652c8343a140ba60bd107b56f0ec85e2",
|
||||
"T2T1_fr_test_cancel.py::test_cancel_message_via_initialize[message1]": "27978c7cddb9077711645bc08cc7c43d2467dac6b26d56a41a4346d50f20786f",
|
||||
"T2T1_fr_test_cancel.py::test_cancel_on_paginated": "5ac10eb64f453b81430ef9cce7783fe1ddb04590b3ce36355b221ebbee3f4c83",
|
||||
"T2T1_fr_test_debuglink.py::test_gc_info": "94d3ba1cba15b836e6ebc48ab307aeea71275ef2d9849aaabc8e883df555ce3f",
|
||||
"T2T1_fr_test_debuglink.py::test_softlock_instability": "ce49de033982931a1756234463697fa7686aab43f6076945503fe24e14da9012",
|
||||
"T2T1_fr_test_firmware_hash.py::test_firmware_hash_emu": "a54e247a35a3503a24bca28c3935b7755aa13f6129258b2e71771d9d7b6a0d90",
|
||||
"T2T1_fr_test_firmware_hash.py::test_firmware_hash_hw": "94d3ba1cba15b836e6ebc48ab307aeea71275ef2d9849aaabc8e883df555ce3f",
|
||||
@ -9807,6 +9812,7 @@
|
||||
"T2T1_pt_test_cancel.py::test_cancel_message_via_initialize[message0]": "540ebc170b89900eeee33eda4140db7aafccdc8e08bf2172dd7ee386875de2e8",
|
||||
"T2T1_pt_test_cancel.py::test_cancel_message_via_initialize[message1]": "99f4de0897948405616f2ab8b4719890c44459fd2d30327358a96bd9685f0f6a",
|
||||
"T2T1_pt_test_cancel.py::test_cancel_on_paginated": "350501346a59780671b8404c9c9efb0d69b1eac3d7267b52dd20804b375808a7",
|
||||
"T2T1_pt_test_debuglink.py::test_gc_info": "e9e80e1bfd347b598699a7a84deb8932eff90fc5fb8b56771453e06fe3c4c216",
|
||||
"T2T1_pt_test_debuglink.py::test_softlock_instability": "be814e5b9207a407f3dbaa2fbf1fb83ffd7b645c3b69b784199b121b82b2a350",
|
||||
"T2T1_pt_test_firmware_hash.py::test_firmware_hash_emu": "285d7ced5a629cdd3098907a8fdecbd043e715611acacdbbd57ee3c0dd24c194",
|
||||
"T2T1_pt_test_firmware_hash.py::test_firmware_hash_hw": "e9e80e1bfd347b598699a7a84deb8932eff90fc5fb8b56771453e06fe3c4c216",
|
||||
@ -11520,6 +11526,7 @@
|
||||
"T3B1_cs_test_cancel.py::test_cancel_message_via_initialize[message0]": "ca19c00ab3c36c71d4b7b4a0bc8fd439b2c27dcd72a6518eeed9478b8c7bedf0",
|
||||
"T3B1_cs_test_cancel.py::test_cancel_message_via_initialize[message1]": "235e1e51728cb7b63db44e9b6acd8991d41cc484b31b7080471d28cc6bfa8cc3",
|
||||
"T3B1_cs_test_cancel.py::test_cancel_on_paginated": "4d9b1743622052312dc5de782f72ca2836d3748f1cb97909985ea8af08d02af7",
|
||||
"T3B1_cs_test_debuglink.py::test_gc_info": "92840d4624bb07440bb1ab5cb4b57251c9950388accbc8334a9a7d609ededb01",
|
||||
"T3B1_cs_test_debuglink.py::test_softlock_instability": "4ed9a94aeee179869a59ede99b6b6b0b5f1cfbc03b29a9f6a26f6128702a7c9c",
|
||||
"T3B1_cs_test_firmware_hash.py::test_firmware_hash_emu": "5b79181fbf2587080248983cf9445ce963f9ecd2d673e53100993217597bb9c0",
|
||||
"T3B1_cs_test_firmware_hash.py::test_firmware_hash_hw": "92840d4624bb07440bb1ab5cb4b57251c9950388accbc8334a9a7d609ededb01",
|
||||
@ -12917,6 +12924,7 @@
|
||||
"T3B1_de_test_cancel.py::test_cancel_message_via_initialize[message0]": "631b5ea29f47a268dd54f4de025426cfcd8a1c52d1c62fd8353c1c594f66e2f3",
|
||||
"T3B1_de_test_cancel.py::test_cancel_message_via_initialize[message1]": "5e56f0b343dafa221fc38dbc9b1d652a469f5fc88a77031c3723800013dc1d50",
|
||||
"T3B1_de_test_cancel.py::test_cancel_on_paginated": "440cc13e6215df114217976e13cde9ac4fc91811dc0a4d0f6f5e16fd376d8baf",
|
||||
"T3B1_de_test_debuglink.py::test_gc_info": "c92ee4e050daadcfc7cc95657b00deed76bb463d486eefcc66455bdbe60faa33",
|
||||
"T3B1_de_test_debuglink.py::test_softlock_instability": "38aeff1545192c030b2ea27378bd800dc66ff84cf39aa5a4a6aa5d396561b591",
|
||||
"T3B1_de_test_firmware_hash.py::test_firmware_hash_emu": "605c7dc4e32815499a6c4029a1109a429177f608efce9e7f44c88e8f5e7628e3",
|
||||
"T3B1_de_test_firmware_hash.py::test_firmware_hash_hw": "c92ee4e050daadcfc7cc95657b00deed76bb463d486eefcc66455bdbe60faa33",
|
||||
@ -14314,6 +14322,7 @@
|
||||
"T3B1_en_test_cancel.py::test_cancel_message_via_initialize[message0]": "c09ec39402dbbb6919240948758b49c92bac461790b8b185d6ee32a7ad62ddec",
|
||||
"T3B1_en_test_cancel.py::test_cancel_message_via_initialize[message1]": "575f44edfeab04d7a1b677cd0194259981edf43a0e598bc40ce3cc8cdc8d65d7",
|
||||
"T3B1_en_test_cancel.py::test_cancel_on_paginated": "0b0e488d2cf38ce63f6257b66fce5bd53caa8fa50a3c611ce0cf805ed18c8888",
|
||||
"T3B1_en_test_debuglink.py::test_gc_info": "1477d62e338f4d7c1bfac2fc5d2fc231218da5768666c11482dc1f83229506f3",
|
||||
"T3B1_en_test_debuglink.py::test_softlock_instability": "41244d3c80d7381f3f81528d339f5c9c04e65e5f3c92399d94230a3732dc05a3",
|
||||
"T3B1_en_test_firmware_hash.py::test_firmware_hash_emu": "db0f817babbc80656cd9aad6b9fffa8d1ad8b9f33764acf537c3e200d0f5340e",
|
||||
"T3B1_en_test_firmware_hash.py::test_firmware_hash_hw": "1477d62e338f4d7c1bfac2fc5d2fc231218da5768666c11482dc1f83229506f3",
|
||||
@ -15711,6 +15720,7 @@
|
||||
"T3B1_es_test_cancel.py::test_cancel_message_via_initialize[message0]": "1c713b58d351410f84dc4a70049be1a5481d2a49d362886a2c0d8b4665e13fea",
|
||||
"T3B1_es_test_cancel.py::test_cancel_message_via_initialize[message1]": "a2632c95e9c92e6b4fd1a2f9cb7bddfba991c0391dc6c4febc1fa4ec4e0d433d",
|
||||
"T3B1_es_test_cancel.py::test_cancel_on_paginated": "67bf086ca7571bffea73d3aff230ad99fa4d9bb234a908d724bcd21065d359c1",
|
||||
"T3B1_es_test_debuglink.py::test_gc_info": "211e7c3419bd48ceefc570971fc522f809b39614563be948fd1e545366506dee",
|
||||
"T3B1_es_test_debuglink.py::test_softlock_instability": "c6dc2bcc37d51ffb253a3058798ba67699cb5aed19ddee8709b36782acc01c18",
|
||||
"T3B1_es_test_firmware_hash.py::test_firmware_hash_emu": "2f310fd2086bd82d0d7cbcd32d6123d01c3d9472b42707b66df96ea932c39812",
|
||||
"T3B1_es_test_firmware_hash.py::test_firmware_hash_hw": "211e7c3419bd48ceefc570971fc522f809b39614563be948fd1e545366506dee",
|
||||
@ -17108,6 +17118,7 @@
|
||||
"T3B1_fr_test_cancel.py::test_cancel_message_via_initialize[message0]": "fd8b9b8712478bb97aee81defe0fe76c7f45a7f0bc3d9cdcc90d6307fc7f0bea",
|
||||
"T3B1_fr_test_cancel.py::test_cancel_message_via_initialize[message1]": "e02c0298754c88ca26f81328b28a63957b251b4475273578d76fdd2dbf088fae",
|
||||
"T3B1_fr_test_cancel.py::test_cancel_on_paginated": "cc10b5f955a55f7cb1c823b618ea8eef638a7314f7aaa14229f946013e8b5a59",
|
||||
"T3B1_fr_test_debuglink.py::test_gc_info": "35c9c9529c59ca5c386ac05856f7452f26cde732203b5b61ec9321230b52df89",
|
||||
"T3B1_fr_test_debuglink.py::test_softlock_instability": "15b04fffe59e048d6ce34e08e010da3f3f5e5de944277ecdccc12e16a8ff22b8",
|
||||
"T3B1_fr_test_firmware_hash.py::test_firmware_hash_emu": "942d507c7835412f30c5cde1e3eff43ceedb21a5d918db4d88f025468f4c7c40",
|
||||
"T3B1_fr_test_firmware_hash.py::test_firmware_hash_hw": "35c9c9529c59ca5c386ac05856f7452f26cde732203b5b61ec9321230b52df89",
|
||||
@ -18505,6 +18516,7 @@
|
||||
"T3B1_pt_test_cancel.py::test_cancel_message_via_initialize[message0]": "b33f0d8da262e3603a5302f34ca914a05773133549c96cb00164a8400f31f55b",
|
||||
"T3B1_pt_test_cancel.py::test_cancel_message_via_initialize[message1]": "a3a2fdacd5ea31cd53e1fa0fcd81c05c1a9bf899c5387963adad5187c353b421",
|
||||
"T3B1_pt_test_cancel.py::test_cancel_on_paginated": "53a60752e5bcfd843c4b1f8acc6bfa00b44051d8803df6c3826ee2d28ee6ceb7",
|
||||
"T3B1_pt_test_debuglink.py::test_gc_info": "6ba5ca7223cd8ad675e081407f186acdfc8420304eea96de0fde5eda45ef0a57",
|
||||
"T3B1_pt_test_debuglink.py::test_softlock_instability": "335ba877e904b503087cee10e8385075e2e1d9c1838acb7aa502e6dea69749e7",
|
||||
"T3B1_pt_test_firmware_hash.py::test_firmware_hash_emu": "c7338dbbdd8e060190e08c733532b50849ced040a5d39fc8e271e381be28c6ee",
|
||||
"T3B1_pt_test_firmware_hash.py::test_firmware_hash_hw": "6ba5ca7223cd8ad675e081407f186acdfc8420304eea96de0fde5eda45ef0a57",
|
||||
@ -20280,6 +20292,7 @@
|
||||
"T3T1_cs_test_cancel.py::test_cancel_message_via_initialize[message0]": "b7248c186ab42e3ee0a6ec72d123ecf734e049c9215fcfdbc9a8a0ee8b19780e",
|
||||
"T3T1_cs_test_cancel.py::test_cancel_message_via_initialize[message1]": "94f17ae18e67ffab2e527e293bbe1acac13ee04f319680b4144237ba8390cd5e",
|
||||
"T3T1_cs_test_cancel.py::test_cancel_on_paginated": "9635c020ce75c542c83b913948696b37570ccd6b6c873e719e570dd4f8a45d76",
|
||||
"T3T1_cs_test_debuglink.py::test_gc_info": "592adf9c06f8f39132298b46037dd524fac99e58237a0c023197bf47df67d632",
|
||||
"T3T1_cs_test_debuglink.py::test_softlock_instability": "a094fbf9ad43478bb714f06639640a9908d8e43dcf888a65c4c9df07ab4848b4",
|
||||
"T3T1_cs_test_firmware_hash.py::test_firmware_hash_emu": "e12b5deb5ebfbca733d2dfe5a9dfca2057218160406d3ac1efe7577d4bfbe0ef",
|
||||
"T3T1_cs_test_firmware_hash.py::test_firmware_hash_hw": "592adf9c06f8f39132298b46037dd524fac99e58237a0c023197bf47df67d632",
|
||||
@ -21703,6 +21716,7 @@
|
||||
"T3T1_de_test_cancel.py::test_cancel_message_via_initialize[message0]": "8cfe2e7a0d0042e0c958737dff70d79b137d74ee3c4d1964407a82e53f141000",
|
||||
"T3T1_de_test_cancel.py::test_cancel_message_via_initialize[message1]": "bf1a41df717b75b0469c1f69fb032dc3bae9e8053fd7fe222bdedca96e029b1e",
|
||||
"T3T1_de_test_cancel.py::test_cancel_on_paginated": "7e1bc885ed2d19b277e53de305cdf2b1ab8f8bb11c9ed6c7cc8c760e0dc6eb92",
|
||||
"T3T1_de_test_debuglink.py::test_gc_info": "f2fcbbd7ad83aff9adc0ee97fe98e7272d8bcfcc4a023798e2ab1c9895fda70f",
|
||||
"T3T1_de_test_debuglink.py::test_softlock_instability": "aa64ab8bc77f3cbecdf79ce5e71da089eb40cd0e1425d4f6a8cbfd69f702ca82",
|
||||
"T3T1_de_test_firmware_hash.py::test_firmware_hash_emu": "6979228f4e622ed9707824b93845c65449082e70bbb2667a30e20e64ce6dcdbf",
|
||||
"T3T1_de_test_firmware_hash.py::test_firmware_hash_hw": "f2fcbbd7ad83aff9adc0ee97fe98e7272d8bcfcc4a023798e2ab1c9895fda70f",
|
||||
@ -23126,6 +23140,7 @@
|
||||
"T3T1_en_test_cancel.py::test_cancel_message_via_initialize[message0]": "7e7a7a9dfc166a4bb182aa5ee17e335880ab434743407fcdbeb1176e50a3ffcf",
|
||||
"T3T1_en_test_cancel.py::test_cancel_message_via_initialize[message1]": "249b921dc0ebbab0d07671eb67adcdf7a75f131c9e35cf4f0c73fe33c6be228a",
|
||||
"T3T1_en_test_cancel.py::test_cancel_on_paginated": "23a5635d6b152cf7ae6b9e9f6ec619ce7c8fbcd4c280874c0913e72c39f576a8",
|
||||
"T3T1_en_test_debuglink.py::test_gc_info": "cb8641952bec9e793e7d19f281a85a0ca1be2c3397ca5c0cf4ee7ad905429984",
|
||||
"T3T1_en_test_debuglink.py::test_softlock_instability": "de35851a07286ff09502bb02bb3e8a48128cab95dc4543fe3db02c3901f8ede3",
|
||||
"T3T1_en_test_firmware_hash.py::test_firmware_hash_emu": "4b7f8b4ff77698fe3c0f5532df8c79c3bbd8a9eed3c81d96f0ebccb2d9aebc6e",
|
||||
"T3T1_en_test_firmware_hash.py::test_firmware_hash_hw": "cb8641952bec9e793e7d19f281a85a0ca1be2c3397ca5c0cf4ee7ad905429984",
|
||||
@ -24549,6 +24564,7 @@
|
||||
"T3T1_es_test_cancel.py::test_cancel_message_via_initialize[message0]": "29e9d8265f78881ffdecd6fc097d22934c67d46e69f2982d80eb2098e0ddaa29",
|
||||
"T3T1_es_test_cancel.py::test_cancel_message_via_initialize[message1]": "1a65f7d2a1a0db8cbaabeb7133c4ba7ca0fdd3820032b3626cfa5f80ee0098b1",
|
||||
"T3T1_es_test_cancel.py::test_cancel_on_paginated": "5eaa0bc8f5cd57e1606497d8ad3c30a5eb7e428236cf8a8d30c8980232112036",
|
||||
"T3T1_es_test_debuglink.py::test_gc_info": "c568b82943d9f63ad6b29b7dee6f5ed9dca78fc9610d4fa7f12bb8a061a6882a",
|
||||
"T3T1_es_test_debuglink.py::test_softlock_instability": "0fe9ef103f5187b8e093ba941930a391985cbbe8f8f2ecb57d5d34550f5f3b82",
|
||||
"T3T1_es_test_firmware_hash.py::test_firmware_hash_emu": "d3e6b64e5fedbc33120f37b976ee1115960a92fa0b75d70fa20e2f41033d5a2c",
|
||||
"T3T1_es_test_firmware_hash.py::test_firmware_hash_hw": "c568b82943d9f63ad6b29b7dee6f5ed9dca78fc9610d4fa7f12bb8a061a6882a",
|
||||
@ -25972,6 +25988,7 @@
|
||||
"T3T1_fr_test_cancel.py::test_cancel_message_via_initialize[message0]": "9394ca80465362731186d19ecd0d76b7f12694dc63a23dda6cae456a6179e98d",
|
||||
"T3T1_fr_test_cancel.py::test_cancel_message_via_initialize[message1]": "82af554d82f449d634a65656506ad571d387a296344cd85377eb78b3644d1010",
|
||||
"T3T1_fr_test_cancel.py::test_cancel_on_paginated": "2831f7f8c7751a349958d3e9be7caef90dedc9db45bb9c456a985cbf1562beaa",
|
||||
"T3T1_fr_test_debuglink.py::test_gc_info": "c4dffa9195d175f9bc4a23e9e0f80b92f7c6687128918a5a70c14b4a6e7e3694",
|
||||
"T3T1_fr_test_debuglink.py::test_softlock_instability": "58d926ca1a6355b21730ef641ea7c0b4dbf034c86e46aed6d8c1da617575b639",
|
||||
"T3T1_fr_test_firmware_hash.py::test_firmware_hash_emu": "486264e66f4865f98b499b01635ae39a148a006eeb93e6aceb8b068726b1b41c",
|
||||
"T3T1_fr_test_firmware_hash.py::test_firmware_hash_hw": "c4dffa9195d175f9bc4a23e9e0f80b92f7c6687128918a5a70c14b4a6e7e3694",
|
||||
@ -27395,6 +27412,7 @@
|
||||
"T3T1_pt_test_cancel.py::test_cancel_message_via_initialize[message0]": "525c0b05be731daf3eff1ae9ee675e44abf24a50fac5d7d08de5e42d5803fa0b",
|
||||
"T3T1_pt_test_cancel.py::test_cancel_message_via_initialize[message1]": "5cfea4da989c7218a955debaf9ac1e34a0abeab698a1f5298205e943dbfec115",
|
||||
"T3T1_pt_test_cancel.py::test_cancel_on_paginated": "100d1492d392b8f7eea86ea85a1a8945cc966a3d28e4e94d3b35ee0e454cf5f0",
|
||||
"T3T1_pt_test_debuglink.py::test_gc_info": "c15216b8aa033bd81f0a8fb6415c6728320b0c30fe3150eeb8a1749ae0a1a83c",
|
||||
"T3T1_pt_test_debuglink.py::test_softlock_instability": "ff1b88a02f1e9713972de8d783a4ed662758e63604f0014b407f29a8f1bd33f7",
|
||||
"T3T1_pt_test_firmware_hash.py::test_firmware_hash_emu": "5f5082f24cb853e361beda2fbb2df95491543cb5dd7a98c635c9dfc4e779db60",
|
||||
"T3T1_pt_test_firmware_hash.py::test_firmware_hash_hw": "c15216b8aa033bd81f0a8fb6415c6728320b0c30fe3150eeb8a1749ae0a1a83c",
|
||||
@ -29147,6 +29165,7 @@
|
||||
"T3W1_cs_test_cancel.py::test_cancel_message_via_initialize[message0]": "b3729ec7e7d501f5fb2f2f3c19341d130b12a973856d7471cb518a28dc48d17c",
|
||||
"T3W1_cs_test_cancel.py::test_cancel_message_via_initialize[message1]": "a73d6439601e005ef1c0acd34e4359b22e1ef81830464740f0f77cf9173b7d90",
|
||||
"T3W1_cs_test_cancel.py::test_cancel_on_paginated": "1afb74e83a323cb7d45c11e7f4fe5b3e831f2d8acc846794e05c68675b094caf",
|
||||
"T3W1_cs_test_debuglink.py::test_gc_info": "a91b2ef93e22407126f6b154760efe9865c0eb94ca3ed8cd11c60815f8d845e4",
|
||||
"T3W1_cs_test_debuglink.py::test_softlock_instability": "ea2c97f2c266133f65d9af1223bee0dba6e24e453caefb2185cbf1635731fa9c",
|
||||
"T3W1_cs_test_firmware_hash.py::test_firmware_hash_emu": "4059084ea51449ce9b33ac2c3dcc846d56d39b7bf40be7a068c567a85b67ee6b",
|
||||
"T3W1_cs_test_firmware_hash.py::test_firmware_hash_hw": "a91b2ef93e22407126f6b154760efe9865c0eb94ca3ed8cd11c60815f8d845e4",
|
||||
@ -30563,6 +30582,7 @@
|
||||
"T3W1_de_test_cancel.py::test_cancel_message_via_initialize[message0]": "b4fe9ae162d5887708f0e7d9a87517dc0028cc63aa4589243107b0a8851f92dc",
|
||||
"T3W1_de_test_cancel.py::test_cancel_message_via_initialize[message1]": "17921f96d89feb086e81e9c18e58143c1d1ebb276c1d78c3f72afa955f80c9f6",
|
||||
"T3W1_de_test_cancel.py::test_cancel_on_paginated": "2809b5c2abc0eebf20a3eb7713667c981c3d595100cfa563650aebbe61ab2fea",
|
||||
"T3W1_de_test_debuglink.py::test_gc_info": "c402aebce59d93f939380d41fc13fa05f99020f2f5ce4acbeb3ae8f58beabdc0",
|
||||
"T3W1_de_test_debuglink.py::test_softlock_instability": "57177be82bb85cb4544d32204aeede7d2921dd8c3533104f4def9d97f339d740",
|
||||
"T3W1_de_test_firmware_hash.py::test_firmware_hash_emu": "4f843516e5803110eec2794d834040577a245c781a06b603d7e9c2a019b2fcf3",
|
||||
"T3W1_de_test_firmware_hash.py::test_firmware_hash_hw": "c402aebce59d93f939380d41fc13fa05f99020f2f5ce4acbeb3ae8f58beabdc0",
|
||||
@ -31979,6 +31999,7 @@
|
||||
"T3W1_en_test_cancel.py::test_cancel_message_via_initialize[message0]": "a95305c826c54f5f1883d4a87407516e38a1920cbafbc34ba3999d5c54e678d5",
|
||||
"T3W1_en_test_cancel.py::test_cancel_message_via_initialize[message1]": "2ebcaa46a75f3afc1dc2c9df42f54506d84909dcae2929a01c4de26ce5ae2e6e",
|
||||
"T3W1_en_test_cancel.py::test_cancel_on_paginated": "8ca540c133cfa33c879f357f0c18f00bc48cbfb4002836e82c4cb2812f01e947",
|
||||
"T3W1_en_test_debuglink.py::test_gc_info": "a5bf877c22babe3784771f360eeb5b2b8c448b17e12d0a915479f968247010ed",
|
||||
"T3W1_en_test_debuglink.py::test_softlock_instability": "d115d25ee5bc92ea73f8d73e3aa75db274251e118515ddcbca7c6f42df65f219",
|
||||
"T3W1_en_test_firmware_hash.py::test_firmware_hash_emu": "3c1c9a2b7bae65e3070bb6ad527fe146bf0c23f4f7bd8c14c2c4a7b0707d65bc",
|
||||
"T3W1_en_test_firmware_hash.py::test_firmware_hash_hw": "a5bf877c22babe3784771f360eeb5b2b8c448b17e12d0a915479f968247010ed",
|
||||
@ -33395,6 +33416,7 @@
|
||||
"T3W1_es_test_cancel.py::test_cancel_message_via_initialize[message0]": "431ba6a2327769eafc31e5a8271be19c2435af437a9844f775b2d80fd5d08bcd",
|
||||
"T3W1_es_test_cancel.py::test_cancel_message_via_initialize[message1]": "cd807409d431dee3e4bb8a320c1516b63b12d2d8d3a44c8b54a8d4f1de22cc11",
|
||||
"T3W1_es_test_cancel.py::test_cancel_on_paginated": "966f1c6df3f359de62a90a9547f5041e7de13acdde8ac65f8828d0cbee5a0088",
|
||||
"T3W1_es_test_debuglink.py::test_gc_info": "2889aea00f3e57b1977186660d1e15b1226507108c6a1a4cb625d6151f93002f",
|
||||
"T3W1_es_test_debuglink.py::test_softlock_instability": "40261d461792227e2f86ac43445617164fb376f69980443345dc75dac770a021",
|
||||
"T3W1_es_test_firmware_hash.py::test_firmware_hash_emu": "40b5b39390ded953d307945d8aae61516c53e9efc112f16013a1950093ea78a0",
|
||||
"T3W1_es_test_firmware_hash.py::test_firmware_hash_hw": "2889aea00f3e57b1977186660d1e15b1226507108c6a1a4cb625d6151f93002f",
|
||||
@ -34811,6 +34833,7 @@
|
||||
"T3W1_fr_test_cancel.py::test_cancel_message_via_initialize[message0]": "1f178f36e387d983259337b49b5d82bed9281df89fcd37f6d424bf3b6dc66dea",
|
||||
"T3W1_fr_test_cancel.py::test_cancel_message_via_initialize[message1]": "f12cee5f9d7423d55c774be4cf4ff342d89278669335a3b07543777e940fdb37",
|
||||
"T3W1_fr_test_cancel.py::test_cancel_on_paginated": "8743c45a14eb40227901bc74595fb1481ad7db700a58b8a181158627ec015a0f",
|
||||
"T3W1_fr_test_debuglink.py::test_gc_info": "7dec10fe48983f7c9a0ab7ae5e70a7c414a657fe8466e229d5de59277c1174ee",
|
||||
"T3W1_fr_test_debuglink.py::test_softlock_instability": "916b9d4b9f0fae8cf27c8ee4deec4fdfd0007494d4c09b2b1108d48e3494449f",
|
||||
"T3W1_fr_test_firmware_hash.py::test_firmware_hash_emu": "7e00a6c618fdb7fd4d3bc37ee28bdff457db65890389b1addc0ad8258e728221",
|
||||
"T3W1_fr_test_firmware_hash.py::test_firmware_hash_hw": "7dec10fe48983f7c9a0ab7ae5e70a7c414a657fe8466e229d5de59277c1174ee",
|
||||
@ -36227,6 +36250,7 @@
|
||||
"T3W1_pt_test_cancel.py::test_cancel_message_via_initialize[message0]": "935a54dc757d60a3ab7d072a4e91f54bc62f71b24f7197fe28962fac5df30379",
|
||||
"T3W1_pt_test_cancel.py::test_cancel_message_via_initialize[message1]": "a7421ebf27b5eb08b383769637ed6490a4210c95b9defb2b00467c1b3cc12883",
|
||||
"T3W1_pt_test_cancel.py::test_cancel_on_paginated": "6f9e4a16c263983876be8f5d9d2bf881267122bd57648292ddc48a0db272832a",
|
||||
"T3W1_pt_test_debuglink.py::test_gc_info": "08ddbb6ef426932f807732f3aa7f7d5bac4f18858d97d60d98cdaedd9d365d1e",
|
||||
"T3W1_pt_test_debuglink.py::test_softlock_instability": "47e429517d8af13133686bbebfd415c2730dbafacbd06924626e966b0b5d732b",
|
||||
"T3W1_pt_test_firmware_hash.py::test_firmware_hash_emu": "99fb9e4e82a28761c66c5c70bafaa29106a5e3386b8dba7ebf693a23c92152fd",
|
||||
"T3W1_pt_test_firmware_hash.py::test_firmware_hash_hw": "08ddbb6ef426932f807732f3aa7f7d5bac4f18858d97d60d98cdaedd9d365d1e",
|
||||
|
Loading…
Reference in New Issue
Block a user