diff --git a/common/protob/messages-management.proto b/common/protob/messages-management.proto index eb732fc6db..a31cd57062 100644 --- a/common/protob/messages-management.proto +++ b/common/protob/messages-management.proto @@ -27,6 +27,15 @@ enum SafetyCheckLevel { PromptTemporarily = 2; // like PromptAlways but reverts to Strict after reboot } + +/** + * Format of the homescreen image + */ +enum HomescreenFormat { + Toif144x144 = 1; + Jpeg240x240 = 2; +} + /** * Request: Reset device to default state and ask for device details * @start @@ -112,6 +121,7 @@ message Features { optional uint32 display_rotation = 39; // in degrees from North optional bool experimental_features = 40; // are experimental message types enabled? optional bool busy = 41; // is the device busy, showing "Do not disconnect"? + optional HomescreenFormat homescreen_format = 42; // format of the homescreen, 1 = TOIf 144x144, 2 = jpg 240x240 } /** diff --git a/core/SConscript.boardloader b/core/SConscript.boardloader index de31c8c711..2b86a1d6b5 100644 --- a/core/SConscript.boardloader +++ b/core/SConscript.boardloader @@ -133,7 +133,7 @@ env.Replace( '-fstack-protector-all ' + CPU_CCFLAGS + CCFLAGS_MOD, CCFLAGS_QSTR='-DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB', - LINKFLAGS='-T embed/boardloader/memory.ld -Wl,--gc-sections -Wl,-Map=build/boardloader/boardloader.map -Wl,--warn-common', + LINKFLAGS='-T embed/boardloader/memory.ld -Wl,--gc-sections -Wl,-Map=build/boardloader/boardloader.map -Wl,--warn-common -Wl,--print-memory-usage', CPPPATH=[ 'embed/boardloader', 'embed/trezorhal', diff --git a/core/SConscript.bootloader b/core/SConscript.bootloader index c9829affd7..7a30b274d1 100644 --- a/core/SConscript.bootloader +++ b/core/SConscript.bootloader @@ -192,7 +192,7 @@ env.Replace( '-fstack-protector-all ' + CPU_CCFLAGS + CCFLAGS_MOD, CCFLAGS_QSTR='-DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB', - LINKFLAGS='-T embed/bootloader/memory.ld -Wl,--gc-sections -Wl,-Map=build/bootloader/bootloader.map -Wl,--warn-common', + LINKFLAGS='-T embed/bootloader/memory.ld -Wl,--gc-sections -Wl,-Map=build/bootloader/bootloader.map -Wl,--warn-common -Wl,--print-memory-usage', CPPPATH=[ 'embed/rust', 'embed/bootloader', diff --git a/core/SConscript.firmware b/core/SConscript.firmware index 65be53fe24..05d03b8837 100644 --- a/core/SConscript.firmware +++ b/core/SConscript.firmware @@ -183,6 +183,7 @@ SOURCE_MOD += [ 'vendor/micropython/lib/uzlib/crc32.c', 'vendor/micropython/lib/uzlib/tinflate.c', ] + CPPDEFINES_MOD += [ 'TREZOR_UI2', 'USE_RUST_LOADER' @@ -478,7 +479,7 @@ env.Replace( '-fstack-protector-all ' + CPU_CCFLAGS + CCFLAGS_MOD, CCFLAGS_QSTR='-DNO_QSTR -DN_X64 -DN_X86 -DN_THUMB', - LINKFLAGS='-T embed/firmware/memory_${TREZOR_MODEL}%s.ld -Wl,--gc-sections -Wl,-Map=build/firmware/firmware.map -Wl,--warn-common' % LD_VARIANT, + LINKFLAGS='-T embed/firmware/memory_${TREZOR_MODEL}%s.ld -Wl,--gc-sections -Wl,--print-memory-usage -Wl,-Map=build/firmware/firmware.map -Wl,--warn-common' % LD_VARIANT, CPPPATH=[ '.', 'embed/rust', diff --git a/core/embed/extmod/modtrezorui/buffers.c b/core/embed/extmod/modtrezorui/buffers.c index b3d44d86b4..df3194f610 100644 --- a/core/embed/extmod/modtrezorui/buffers.c +++ b/core/embed/extmod/modtrezorui/buffers.c @@ -24,15 +24,12 @@ #if USE_DMA2D -#if defined BOOTLOADER -#define BUFFER_SECTION __attribute__((section(".buf"))) -#else -#define BUFFER_SECTION -#endif - #define BUFFERS_16BPP 3 #define BUFFERS_4BPP 3 #define BUFFERS_TEXT 1 +#define BUFFERS_JPEG 1 +#define BUFFERS_JPEG_WORK 1 +#define BUFFERS_BLURRING 1 const int32_t text_buffer_height = FONT_MAX_HEIGHT; const int32_t buffer_width = DISPLAY_RESX; @@ -40,6 +37,9 @@ const int32_t buffer_width = DISPLAY_RESX; BUFFER_SECTION line_buffer_16bpp_t line_buffers_16bpp[BUFFERS_16BPP]; BUFFER_SECTION line_buffer_4bpp_t line_buffers_4bpp[BUFFERS_4BPP]; BUFFER_SECTION buffer_text_t text_buffers[BUFFERS_TEXT]; +NODMA_BUFFER_SECTION buffer_jpeg_t jpeg_buffers[BUFFERS_JPEG]; +NODMA_BUFFER_SECTION buffer_jpeg_work_t jpeg_work_buffers[BUFFERS_JPEG_WORK]; +NODMA_BUFFER_SECTION buffer_blurring_t blurring_buffers[BUFFERS_BLURRING]; line_buffer_16bpp_t* buffers_get_line_buffer_16bpp(uint16_t idx, bool clear) { if (idx >= BUFFERS_16BPP) { @@ -71,4 +71,37 @@ buffer_text_t* buffers_get_text_buffer(uint16_t idx, bool clear) { return &text_buffers[idx]; } +buffer_jpeg_t* buffers_get_jpeg_buffer(uint16_t idx, bool clear) { + if (idx >= BUFFERS_JPEG) { + return NULL; + } + + if (clear) { + memzero(&jpeg_buffers[idx], sizeof(jpeg_buffers[idx])); + } + return &jpeg_buffers[idx]; +} + +buffer_jpeg_work_t* buffers_get_jpeg_work_buffer(uint16_t idx, bool clear) { + if (idx >= BUFFERS_JPEG_WORK) { + return NULL; + } + + if (clear) { + memzero(&jpeg_work_buffers[idx], sizeof(jpeg_work_buffers[idx])); + } + return &jpeg_work_buffers[idx]; +} + +buffer_blurring_t* buffers_get_blurring_buffer(uint16_t idx, bool clear) { + if (idx >= BUFFERS_BLURRING) { + return NULL; + } + + if (clear) { + memzero(&blurring_buffers[idx], sizeof(blurring_buffers[idx])); + } + return &blurring_buffers[idx]; +} + #endif diff --git a/core/embed/extmod/modtrezorui/buffers.h b/core/embed/extmod/modtrezorui/buffers.h index 89f284d837..217561c709 100644 --- a/core/embed/extmod/modtrezorui/buffers.h +++ b/core/embed/extmod/modtrezorui/buffers.h @@ -27,7 +27,7 @@ #define BUFFER_PIXELS DISPLAY_RESX -#define TEXT_BUFFER_HEIGHT 24 +#define TEXT_BUFFER_HEIGHT 32 #if TEXT_BUFFER_HEIGHT < FONT_MAX_HEIGHT #error Text buffer height is too small, please adjust to match used fonts @@ -36,6 +36,24 @@ #define LINE_BUFFER_16BPP_SIZE BUFFER_PIXELS * 2 #define LINE_BUFFER_4BPP_SIZE BUFFER_PIXELS / 2 #define TEXT_BUFFER_SIZE (BUFFER_PIXELS * TEXT_BUFFER_HEIGHT) / 2 +#define JPEG_BUFFER_SIZE (BUFFER_PIXELS * 16) + +// 3100 is needed according to tjpgd docs, +// 256 because we need non overlapping memory in rust +// 6 << 10 is for huffman decoding table +#define JPEG_WORK_SIZE (3100 + 256 + (6 << 10)) + +#if defined BOOTLOADER +#define BUFFER_SECTION __attribute__((section(".buf"))) +#else +#define BUFFER_SECTION +#endif + +#if defined BOOTLOADER || defined TREZOR_EMULATOR +#define NODMA_BUFFER_SECTION +#else +#define NODMA_BUFFER_SECTION __attribute__((section(".no_dma_buffers"))) +#endif typedef __attribute__((aligned(4))) struct { uint8_t buffer[LINE_BUFFER_16BPP_SIZE]; @@ -49,11 +67,26 @@ typedef __attribute__((aligned(4))) struct { uint8_t buffer[TEXT_BUFFER_SIZE]; } buffer_text_t; +typedef __attribute__((aligned(4))) struct { + uint16_t buffer[JPEG_BUFFER_SIZE]; +} buffer_jpeg_t; + +typedef __attribute__((aligned(4))) struct { + uint8_t buffer[JPEG_WORK_SIZE]; +} buffer_jpeg_work_t; + +typedef __attribute__((aligned(4))) struct { + uint16_t buffer[10][3][BUFFER_PIXELS]; +} buffer_blurring_t; + extern const int32_t text_buffer_height; extern const int32_t buffer_width; line_buffer_16bpp_t* buffers_get_line_buffer_16bpp(uint16_t idx, bool clear); line_buffer_4bpp_t* buffers_get_line_buffer_4bpp(uint16_t idx, bool clear); buffer_text_t* buffers_get_text_buffer(uint16_t idx, bool clear); +buffer_jpeg_t* buffers_get_jpeg_buffer(uint16_t idx, bool clear); +buffer_jpeg_work_t* buffers_get_jpeg_work_buffer(uint16_t idx, bool clear); +buffer_blurring_t* buffers_get_blurring_buffer(uint16_t idx, bool clear); #endif // _BUFFERS_H diff --git a/core/embed/extmod/modtrezorui/display.c b/core/embed/extmod/modtrezorui/display.c index b91f1cffbb..b848fc5ba6 100644 --- a/core/embed/extmod/modtrezorui/display.c +++ b/core/embed/extmod/modtrezorui/display.c @@ -149,6 +149,45 @@ void display_bar_radius(int x, int y, int w, int h, uint16_t c, uint16_t b, PIXELDATA_DIRTY(); } +void display_bar_radius_buffer(int x, int y, int w, int h, uint8_t r, + buffer_text_t *buffer) { + if (h > 32) { + return; + } + if (r != 2 && r != 4 && r != 8 && r != 16) { + return; + } else { + r = 16 / r; + } + int x0 = 0, y0 = 0, x1 = 0, y1 = 0; + clamp_coords(x, y, w, h, &x0, &y0, &x1, &y1); + for (int j = y0; j <= y1; j++) { + for (int i = x0; i <= x1; i++) { + int rx = i - x; + int ry = j - y; + int p = j * DISPLAY_RESX + i; + uint8_t c = 0; + if (rx < CORNER_RADIUS / r && ry < CORNER_RADIUS / r) { + c = cornertable[rx * r + ry * r * CORNER_RADIUS]; + } else if (rx < CORNER_RADIUS / r && ry >= h - CORNER_RADIUS / r) { + c = cornertable[rx * r + (h - 1 - ry) * r * CORNER_RADIUS]; + } else if (rx >= w - CORNER_RADIUS / r && ry < CORNER_RADIUS / r) { + c = cornertable[(w - 1 - rx) * r + ry * r * CORNER_RADIUS]; + } else if (rx >= w - CORNER_RADIUS / r && ry >= h - CORNER_RADIUS / r) { + c = cornertable[(w - 1 - rx) * r + (h - 1 - ry) * r * CORNER_RADIUS]; + } else { + c = 15; + } + int b = p / 2; + if (p % 2) { + buffer->buffer[b] |= c << 4; + } else { + buffer->buffer[b] |= (c); + } + } + } +} + #define UZLIB_WINDOW_SIZE (1 << 10) static void uzlib_prepare(struct uzlib_uncomp *decomp, uint8_t *window, diff --git a/core/embed/extmod/modtrezorui/display.h b/core/embed/extmod/modtrezorui/display.h index 4c946cf879..cbe82bb044 100644 --- a/core/embed/extmod/modtrezorui/display.h +++ b/core/embed/extmod/modtrezorui/display.h @@ -61,6 +61,8 @@ void display_clear(void); void display_bar(int x, int y, int w, int h, uint16_t c); void display_bar_radius(int x, int y, int w, int h, uint16_t c, uint16_t b, uint8_t r); +void display_bar_radius_buffer(int x, int y, int w, int h, uint8_t r, + buffer_text_t *buffer); bool display_toif_info(const uint8_t *buf, uint32_t len, uint16_t *out_w, uint16_t *out_h, toif_format_t *out_format); diff --git a/core/embed/firmware/memory_T.ld b/core/embed/firmware/memory_T.ld index 50684eb807..91ee0f6e53 100644 --- a/core/embed/firmware/memory_T.ld +++ b/core/embed/firmware/memory_T.ld @@ -83,4 +83,9 @@ SECTIONS { . = 37K; /* this acts as a build time assertion that at least this much memory is available for heap use */ . = ABSOLUTE(sram_end); /* this explicitly sets the end of the heap */ } >SRAM + + .data_ccm : ALIGN(4) { + *(.no_dma_buffers*); + . = ALIGN(4); + } >CCMRAM } diff --git a/core/embed/rust/Cargo.toml b/core/embed/rust/Cargo.toml index 2bf223023d..0e85bab4e5 100644 --- a/core/embed/rust/Cargo.toml +++ b/core/embed/rust/Cargo.toml @@ -8,7 +8,7 @@ build = "build.rs" [features] default = ["model_tt"] bitcoin_only = [] -model_tt = ["touch"] +model_tt = ["touch", "jpeg"] model_t1 = ["buttons"] model_tr = ["buttons"] micropython = [] @@ -19,8 +19,9 @@ ui_debug = [] buttons = [] touch = [] clippy = [] +jpeg = [] debug = ["ui_debug"] -test = ["cc", "glob", "micropython", "protobuf", "ui", "ui_debug"] +test = ["cc", "glob", "micropython", "protobuf", "ui", "ui_debug", "dma2d"] [lib] crate-type = ["staticlib"] diff --git a/core/embed/rust/build.rs b/core/embed/rust/build.rs index d9ae761053..b6615f1e12 100644 --- a/core/embed/rust/build.rs +++ b/core/embed/rust/build.rs @@ -287,6 +287,7 @@ fn generate_trezorhal_bindings() { .allowlist_function("display_text_width") .allowlist_function("display_bar") .allowlist_function("display_bar_radius") + .allowlist_function("display_bar_radius_buffer") .allowlist_function("display_icon") .allowlist_function("display_image") .allowlist_function("display_toif_info") @@ -328,6 +329,9 @@ fn generate_trezorhal_bindings() { .allowlist_function("buffers_get_line_buffer_16bpp") .allowlist_function("buffers_get_line_buffer_4bpp") .allowlist_function("buffers_get_text_buffer") + .allowlist_function("buffers_get_jpeg_buffer") + .allowlist_function("buffers_get_jpeg_work_buffer") + .allowlist_function("buffers_get_blurring_buffer") .allowlist_var("text_buffer_height") .allowlist_var("buffer_width") //usb diff --git a/core/embed/rust/librust_qstr.h b/core/embed/rust/librust_qstr.h index ea090fa825..ea63f6e689 100644 --- a/core/embed/rust/librust_qstr.h +++ b/core/embed/rust/librust_qstr.h @@ -17,6 +17,8 @@ static void _librust_qstrs(void) { MP_QSTR_CANCELLED; MP_QSTR_INFO; MP_QSTR_disable_animation; + MP_QSTR_jpeg_info; + MP_QSTR_jpeg_test; MP_QSTR_confirm_action; MP_QSTR_confirm_blob; MP_QSTR_confirm_properties; diff --git a/core/embed/rust/src/lib.rs b/core/embed/rust/src/lib.rs index 7523676c19..0a48f279c9 100644 --- a/core/embed/rust/src/lib.rs +++ b/core/embed/rust/src/lib.rs @@ -18,6 +18,7 @@ mod trezorhal; mod micropython; #[cfg(feature = "protobuf")] mod protobuf; +mod storage; mod time; #[cfg(feature = "ui_debug")] mod trace; diff --git a/core/embed/rust/src/micropython/gc.rs b/core/embed/rust/src/micropython/gc.rs index 466edb3052..3c0fe8e05c 100644 --- a/core/embed/rust/src/micropython/gc.rs +++ b/core/embed/rust/src/micropython/gc.rs @@ -38,6 +38,33 @@ impl Gc { } } +impl Gc<[T]> { + /// Allocate slice on the heap managed by the MicroPython garbage collector + /// and fill with default values. + pub fn new_slice(len: usize) -> Result { + let layout = Layout::array::(len).unwrap(); + // TODO: Assert that `layout.align()` is the same as the GC alignment. + // SAFETY: + // - Unfortunately we cannot respect `layout.align()` as MicroPython GC does + // not support custom alignment. + // - `ptr` is guaranteed to stay valid as long as it's reachable from the stack + // or the MicroPython heap. + // EXCEPTION: Returns null instead of raising. + unsafe { + let raw = ffi::gc_alloc(layout.size(), 0); + if raw.is_null() { + return Err(Error::AllocationFailed); + } + let typed: *mut T = raw.cast(); + for i in 0..len { + ptr::write(typed.add(i), T::default()); + } + let array_ptr = ptr::slice_from_raw_parts_mut(typed, len); + Ok(Self::from_raw(array_ptr as _)) + } + } +} + impl Gc { /// Construct a `Gc` from a raw pointer. /// diff --git a/core/embed/rust/src/storage/mod.rs b/core/embed/rust/src/storage/mod.rs new file mode 100644 index 0000000000..29d4777ff6 --- /dev/null +++ b/core/embed/rust/src/storage/mod.rs @@ -0,0 +1,59 @@ +use crate::trezorhal::storage::{get, get_length}; + +pub const HOMESCREEN_MAX_SIZE: usize = 16384; + +const STORAGE_VERSION_01: u8 = 1; +const STORAGE_VERSION_02: u8 = 2; +const STORAGE_VERSION_CURRENT: u8 = STORAGE_VERSION_02; + +const FLAG_PUBLIC: u16 = 0x8000; +const FLAG_WRITE: u16 = 0xC000; +const APP_DEVICE: u16 = 0x0100; + +const DEVICE_ID: u16 = FLAG_PUBLIC | APP_DEVICE; +const VERSION: u16 = APP_DEVICE | 0x0001; +const MNEMONIC_SECRET: u16 = APP_DEVICE | 0x0002; +// NOTE: 0x03 key was used in the past for LANGUAGE. Not used anymore. +const LABEL: u16 = FLAG_PUBLIC | APP_DEVICE | 0x0004; +const USE_PASSPHRASE: u16 = APP_DEVICE | 0x0005; +const HOMESCREEN: u16 = FLAG_PUBLIC | APP_DEVICE | 0x0006; +const NEEDS_BACKUP: u16 = APP_DEVICE | 0x0007; +const FLAGS: u16 = APP_DEVICE | 0x0008; +const U2F_COUNTER_PRIVATE: u16 = APP_DEVICE | 0x0009; +const U2F_COUNTER: u16 = FLAG_PUBLIC | APP_DEVICE | 0x0009; +const PASSPHRASE_ALWAYS_ON_DEVICE: u16 = APP_DEVICE | 0x000A; +const UNFINISHED_BACKUP: u16 = APP_DEVICE | 0x000B; +const AUTOLOCK_DELAY_MS: u16 = APP_DEVICE | 0x000C; +const NO_BACKUP: u16 = APP_DEVICE | 0x000D; +const BACKUP_TYPE: u16 = APP_DEVICE | 0x000E; +const ROTATION: u16 = FLAG_PUBLIC | APP_DEVICE | 0x000F; +const SLIP39_IDENTIFIER: u16 = APP_DEVICE | 0x0010; +const SLIP39_ITERATION_EXPONENT: u16 = APP_DEVICE | 0x0011; +const SD_SALT_AUTH_KEY: u16 = FLAG_PUBLIC | APP_DEVICE | 0x0012; +const INITIALIZED: u16 = FLAG_PUBLIC | APP_DEVICE | 0x0013; +const SAFETY_CHECK_LEVEL: u16 = APP_DEVICE | 0x0014; +const EXPERIMENTAL_FEATURES: u16 = APP_DEVICE | 0x0015; + +pub fn get_avatar_len() -> Result { + let avatar_len_res = get_length(HOMESCREEN); + if let Ok(len) = avatar_len_res { + Ok(len) + } else { + Err(()) + } +} + +pub fn get_avatar(buffer: &mut [u8]) -> Result { + let avatar_len_res = get_length(HOMESCREEN); + + if let Ok(len) = avatar_len_res { + if len <= buffer.len() { + unwrap!(get(HOMESCREEN, buffer)); + Ok(len) + } else { + Err(()) + } + } else { + Err(()) + } +} diff --git a/core/embed/rust/src/trezorhal/buffers.rs b/core/embed/rust/src/trezorhal/buffers.rs index 41879dac76..9b0f67e72e 100644 --- a/core/embed/rust/src/trezorhal/buffers.rs +++ b/core/embed/rust/src/trezorhal/buffers.rs @@ -1,9 +1,11 @@ use super::ffi; pub use ffi::{ - buffer_text_t as BufferText, line_buffer_16bpp_t as LineBuffer16Bpp, - line_buffer_4bpp_t as LineBuffer4Bpp, + buffer_blurring_t as BlurringBuffer, buffer_text_t as BufferText, + line_buffer_16bpp_t as LineBuffer16Bpp, line_buffer_4bpp_t as LineBuffer4Bpp, }; +#[cfg(feature = "jpeg")] +pub use ffi::{buffer_jpeg_t as BufferJpeg, buffer_jpeg_work_t as BufferJpegWork}; /// Returns a buffer for one line of 16bpp data /// @@ -43,3 +45,44 @@ pub unsafe fn get_text_buffer(idx: u16, clear: bool) -> &'static mut BufferText unwrap!(ptr.as_mut()) } } + +/// Returns a buffer for jpeg data +/// +/// # Safety +/// +/// This function is unsafe because the caller has to guarantee +/// that he doesn't use buffer on same index multiple times +#[cfg(feature = "jpeg")] +pub unsafe fn get_jpeg_buffer(idx: u16, clear: bool) -> &'static mut BufferJpeg { + unsafe { + let ptr = ffi::buffers_get_jpeg_buffer(idx, clear); + unwrap!(ptr.as_mut()) + } +} + +/// Returns a jpeg work buffer +/// +/// # Safety +/// +/// This function is unsafe because the caller has to guarantee +/// that he doesn't use buffer on same index multiple times +#[cfg(feature = "jpeg")] +pub unsafe fn get_jpeg_work_buffer(idx: u16, clear: bool) -> &'static mut BufferJpegWork { + unsafe { + let ptr = ffi::buffers_get_jpeg_work_buffer(idx, clear); + unwrap!(ptr.as_mut()) + } +} + +/// Returns a buffer for blurring data +/// +/// # Safety +/// +/// This function is unsafe because the caller has to guarantee +/// that he doesn't use buffer on same index multiple times +pub unsafe fn get_blurring_buffer(idx: u16, clear: bool) -> &'static mut BlurringBuffer { + unsafe { + let ptr = ffi::buffers_get_blurring_buffer(idx, clear); + unwrap!(ptr.as_mut()) + } +} diff --git a/core/embed/rust/src/trezorhal/display.rs b/core/embed/rust/src/trezorhal/display.rs index d23b603b1c..9e4ed2513d 100644 --- a/core/embed/rust/src/trezorhal/display.rs +++ b/core/embed/rust/src/trezorhal/display.rs @@ -97,6 +97,12 @@ pub fn bar_radius(x: i16, y: i16, w: i16, h: i16, fgcolor: u16, bgcolor: u16, ra } } +pub fn bar_radius_buffer(x: i16, y: i16, w: i16, h: i16, radius: u8, buffer: &mut BufferText) { + unsafe { + ffi::display_bar_radius_buffer(x.into(), y.into(), w.into(), h.into(), radius, buffer as _) + } +} + pub fn icon(x: i16, y: i16, w: i16, h: i16, data: &[u8], fgcolor: u16, bgcolor: u16) { unsafe { ffi::display_icon( diff --git a/core/embed/rust/src/trezorhal/ffi.rs b/core/embed/rust/src/trezorhal/ffi.rs index 67269896bd..f8fcf3a49a 100644 --- a/core/embed/rust/src/trezorhal/ffi.rs +++ b/core/embed/rust/src/trezorhal/ffi.rs @@ -1,5 +1,6 @@ #![allow(non_camel_case_types)] #![allow(non_upper_case_globals)] +#![allow(clippy::upper_case_acronyms)] #![allow(non_snake_case)] #![allow(dead_code)] diff --git a/core/embed/rust/src/ui/display/mod.rs b/core/embed/rust/src/ui/display/mod.rs index abf330efcf..89be5a755a 100644 --- a/core/embed/rust/src/ui/display/mod.rs +++ b/core/embed/rust/src/ui/display/mod.rs @@ -170,7 +170,7 @@ pub fn toif_info(data: &[u8]) -> Option<(Offset, ToifFormat)> { /// Aborts if the TOIF file does not have the correct grayscale flag, do not use /// with user-supplied inputs. -fn toif_info_ensure(data: &[u8], format: ToifFormat) -> (Offset, &[u8]) { +pub(crate) fn toif_info_ensure(data: &[u8], format: ToifFormat) -> (Offset, &[u8]) { let info = unwrap!(display::toif_info(data), "Invalid TOIF data"); assert_eq!(info.format, format); let size = Offset::new( @@ -421,16 +421,29 @@ pub fn rect_rounded2_partial( /// /// `buffer_bpp` determines size of pixel data /// `data_width` sets the width of valid data in the `src_buffer` -fn position_buffer( +pub(crate) fn position_buffer( dest_buffer: &mut [u8], src_buffer: &[u8], buffer_bpp: usize, offset_x: i16, data_width: i16, ) { - let start: usize = (offset_x).clamp(0, constant::WIDTH) as usize; - let end: usize = (offset_x + data_width).clamp(0, constant::WIDTH) as usize; + let data_width_even = if buffer_bpp == 4 && data_width % 2 != 0 { + data_width + 1 + } else { + data_width + }; + + let mut start: usize = (offset_x).clamp(0, constant::WIDTH) as usize; + let mut end: usize = (offset_x + data_width_even).clamp(0, constant::WIDTH) as usize; + + if buffer_bpp == 4 { + start &= !0x01; + end &= !0x01; + } + let width = end - start; + // if the offset is negative, need to skip beginning of uncompressed data let x_sh = if offset_x < 0 { (-offset_x).clamp(0, constant::WIDTH - width as i16) as usize diff --git a/core/embed/rust/src/ui/layout/util.rs b/core/embed/rust/src/ui/layout/util.rs index 134b60707c..e97ea0cd43 100644 --- a/core/embed/rust/src/ui/layout/util.rs +++ b/core/embed/rust/src/ui/layout/util.rs @@ -19,6 +19,15 @@ use crate::{ use cstr_core::cstr; use heapless::Vec; +#[cfg(feature = "jpeg")] +use crate::{ + micropython::{ + buffer::get_buffer, + ffi::{mp_obj_new_int, mp_obj_new_tuple}, + }, + ui::display::tjpgd::{jpeg_info, jpeg_test}, +}; + pub fn iter_into_objs(iterable: Obj) -> Result<[Obj; N], Error> { let err = Error::ValueError(cstr!("Invalid iterable length")); let mut vec = Vec::::new(); @@ -240,3 +249,45 @@ pub extern "C" fn upy_disable_animation(disable: Obj) -> Obj { }; unsafe { try_or_raise(block) } } + +#[cfg(feature = "jpeg")] +pub extern "C" fn upy_jpeg_info(data: Obj) -> Obj { + let block = || { + let buffer = unsafe { get_buffer(data) }; + + if let Ok(buffer) = buffer { + let info = jpeg_info(buffer); + + if let Some(info) = info { + let obj = unsafe { + let values = [ + mp_obj_new_int(info.0.x as _), + mp_obj_new_int(info.0.y as _), + mp_obj_new_int(info.1 as _), + ]; + mp_obj_new_tuple(3, values.as_ptr()) + }; + + Ok(obj) + } else { + Err(Error::ValueError(cstr!("Invalid image format."))) + } + } else { + Err(Error::ValueError(cstr!("Buffer error."))) + } + }; + + unsafe { try_or_raise(block) } +} + +#[cfg(feature = "jpeg")] +pub extern "C" fn upy_jpeg_test(data: Obj) -> Obj { + let block = || { + let buffer = + unsafe { get_buffer(data) }.map_err(|_| Error::ValueError(cstr!("Buffer error.")))?; + let result = jpeg_test(buffer); + Ok(result.into()) + }; + + unsafe { try_or_raise(block) } +} diff --git a/core/embed/rust/src/ui/model_tt/component/homescreen.rs b/core/embed/rust/src/ui/model_tt/component/homescreen/mod.rs similarity index 62% rename from core/embed/rust/src/ui/model_tt/component/homescreen.rs rename to core/embed/rust/src/ui/model_tt/component/homescreen/mod.rs index 36a2f46d0a..9191b54183 100644 --- a/core/embed/rust/src/ui/model_tt/component/homescreen.rs +++ b/core/embed/rust/src/ui/model_tt/component/homescreen/mod.rs @@ -1,22 +1,29 @@ +mod render; + use crate::{ + micropython::gc::Gc, + storage::{get_avatar, get_avatar_len}, time::{Duration, Instant}, trezorhal::usb::usb_configured, ui::{ - component::{Component, Empty, Event, EventCtx, Pad, TimerToken}, - display::{self, Color, Font}, + component::{Component, Event, EventCtx, Pad, TimerToken}, + display::{self, tjpgd::jpeg_info, Color, Font}, event::{TouchEvent, USBEvent}, geometry::{Offset, Point, Rect}, - model_tt::constant, - util::icon_text_center, + model_tt::{constant, theme::IMAGE_HOMESCREEN}, }, }; -use super::{theme, Loader, LoaderMsg, NotificationFrame}; +use render::{ + homescreen, homescreen_blurred, HomescreenNotification, HomescreenText, HOMESCREEN_IMAGE_SIZE, +}; + +use super::{theme, Loader, LoaderMsg}; const AREA: Rect = constant::screen(); const TOP_CENTER: Point = AREA.top_center(); const LABEL_Y: i16 = 216; -const LOCKED_Y: i16 = 101; +const LOCKED_Y: i16 = 107; const TAP_Y: i16 = 134; const HOLD_Y: i16 = 35; const LOADER_OFFSET: Offset = Offset::y(-10); @@ -27,9 +34,9 @@ pub struct Homescreen { label: T, notification: Option<(T, u8)>, hold_to_lock: bool, - usb_connected: bool, loader: Loader, pad: Pad, + paint_notification_only: bool, delay: Option, } @@ -48,6 +55,7 @@ where hold_to_lock, loader: Loader::new().with_durations(LOADER_DURATION, LOADER_DURATION / 3), pad: Pad::with_background(theme::BG), + paint_notification_only: false, delay: None, } } @@ -60,23 +68,23 @@ where } } - fn paint_notification(&self) { + fn get_notification(&self) -> Option { if !usb_configured() { let (color, icon) = Self::level_to_style(0); - NotificationFrame::::paint_notification( - AREA, + Some(HomescreenNotification { + text: "NO USB CONNECTION", icon, - "NO USB CONNECTION", color, - ); + }) } else if let Some((notification, level)) = &self.notification { let (color, icon) = Self::level_to_style(*level); - NotificationFrame::::paint_notification( - AREA, + Some(HomescreenNotification { + text: notification.as_ref(), icon, - notification.as_ref(), color, - ); + }) + } else { + None } } @@ -97,6 +105,7 @@ where fn event_usb(&mut self, ctx: &mut EventCtx, event: Event) { if let Event::USB(USBEvent::Connected(_)) = event { + self.paint_notification_only = true; ctx.request_paint(); } } @@ -136,6 +145,7 @@ where Some(LoaderMsg::ShrunkCompletely) => { self.loader.reset(); self.pad.clear(); + self.paint_notification_only = false; ctx.request_paint() } None => {} @@ -171,8 +181,34 @@ where if self.loader.is_animating() || self.loader.is_completely_grown(Instant::now()) { self.paint_loader(); } else { - self.paint_notification(); - paint_label(self.label.as_ref(), false); + let mut label_style = theme::TEXT_BOLD; + label_style.text_color = theme::FG; + + let text = HomescreenText { + text: self.label.as_ref(), + style: label_style, + offset: Offset::new(10, LABEL_Y), + icon: None, + }; + + let notification = self.get_notification(); + + let res = get_image(); + if let Ok(data) = res { + homescreen( + data.as_ref(), + &[text], + notification, + self.paint_notification_only, + ); + } else { + homescreen( + IMAGE_HOMESCREEN, + &[text], + notification, + self.paint_notification_only, + ); + } } } @@ -225,25 +261,64 @@ where } else { ("LOCKED", "Tap to unlock") }; - icon_text_center( - TOP_CENTER + Offset::y(LOCKED_Y), - theme::ICON_LOCK, - 2, - locked, - theme::TEXT_BOLD, - Offset::zero(), - ); - display::text_center( - TOP_CENTER + Offset::y(TAP_Y), - tap, - Font::NORMAL, - theme::OFF_WHITE, - theme::BG, - ); - paint_label(self.label.as_ref(), true); + + let mut tap_style = theme::TEXT_NORMAL; + tap_style.text_color = theme::OFF_WHITE; + + let mut label_style = theme::TEXT_BOLD; + label_style.text_color = theme::GREY_LIGHT; + + let texts: [HomescreenText; 3] = [ + HomescreenText { + text: locked, + style: theme::TEXT_BOLD, + offset: Offset::new(10, LOCKED_Y), + icon: Some(theme::ICON_LOCK), + }, + HomescreenText { + text: tap, + style: tap_style, + offset: Offset::new(10, TAP_Y), + icon: None, + }, + HomescreenText { + text: self.label.as_ref(), + style: label_style, + offset: Offset::new(10, LABEL_Y), + icon: None, + }, + ]; + + let res = get_image(); + if let Ok(data) = res { + homescreen_blurred(data.as_ref(), &texts); + } else { + homescreen_blurred(IMAGE_HOMESCREEN, &texts); + } } } +fn get_image() -> Result, ()> { + if let Ok(len) = get_avatar_len() { + let result = Gc::<[u8]>::new_slice(len); + if let Ok(mut buffer) = result { + let buf = unsafe { Gc::<[u8]>::as_mut(&mut buffer) }; + if get_avatar(buf).is_ok() { + let jpeg = jpeg_info(buffer.as_ref()); + if let Some((size, mcu_height)) = jpeg { + if size.x == HOMESCREEN_IMAGE_SIZE + && size.y == HOMESCREEN_IMAGE_SIZE + && mcu_height <= 16 + { + return Ok(buffer); + } + } + } + } + }; + Err(()) +} + #[cfg(feature = "ui_debug")] impl crate::trace::Trace for Lockscreen { fn trace(&self, d: &mut dyn crate::trace::Tracer) { @@ -251,18 +326,3 @@ impl crate::trace::Trace for Lockscreen { d.close(); } } - -fn paint_label(label: &str, lockscreen: bool) { - let label_color = if lockscreen { - theme::GREY_MEDIUM - } else { - theme::FG - }; - display::text_center( - TOP_CENTER + Offset::y(LABEL_Y), - label, - Font::BOLD, - label_color, - theme::BG, - ); -} diff --git a/core/embed/rust/src/ui/model_tt/component/homescreen/render.rs b/core/embed/rust/src/ui/model_tt/component/homescreen/render.rs new file mode 100644 index 0000000000..2bfada79b5 --- /dev/null +++ b/core/embed/rust/src/ui/model_tt/component/homescreen/render.rs @@ -0,0 +1,621 @@ +#[cfg(feature = "dma2d")] +use crate::trezorhal::{ + buffers::{get_buffer_16bpp, get_buffer_4bpp, get_text_buffer, BufferText, LineBuffer4Bpp}, + dma2d::{dma2d_setup_4bpp_over_16bpp, dma2d_start_blend, dma2d_wait_for_transfer}, +}; +use crate::{ + trezorhal::{ + buffers::{get_blurring_buffer, get_jpeg_buffer, get_jpeg_work_buffer, BufferJpeg}, + display, + display::{bar_radius_buffer, ToifFormat}, + uzlib::UzlibContext, + }, + ui::{ + constant::screen, + display::{position_buffer, set_window, toif_info_ensure, Color}, + geometry::{Offset, Point, Rect}, + }, +}; + +use crate::ui::{ + component::text::TextStyle, + constant::{HEIGHT, WIDTH}, + display::tjpgd::{BufferInput, BufferOutput, JDEC}, + model_tt::theme, + util::icon_text_center, +}; + +#[derive(Clone, Copy)] +pub struct HomescreenText<'a> { + pub text: &'a str, + pub style: TextStyle, + pub offset: Offset, + pub icon: Option<&'static [u8]>, +} + +#[derive(Clone, Copy)] +pub struct HomescreenNotification<'a> { + pub text: &'a str, + pub icon: &'static [u8], + pub color: Color, +} + +#[derive(Clone, Copy)] +struct HomescreenTextInfo { + pub text_area: Rect, + pub text_width: i16, + pub text_color: Color, + pub icon_area: Option, +} + +pub const HOMESCREEN_IMAGE_SIZE: i16 = 240; + +const HOMESCREEN_MAX_ICON_SIZE: i16 = 20; +const NOTIFICATION_HEIGHT: i16 = 32; +const NOTIFICATION_BORDER: i16 = 8; +const NOTIFICATION_ICON_SPACE: i16 = 8; +const NOTIFICATION_TEXT_OFFSET: Offset = Offset::new(1, -2); +const TEXT_ICON_SPACE: i16 = 2; + +const HOMESCREEN_DIM_HIEGHT: i16 = 30; +const HOMESCREEN_DIM_START: i16 = 195; +const HOMESCREEN_DIM: f32 = 0.85; +const HOMESCREEN_DIM_BORDER: i16 = 20; + +const LOCKSCREEN_DIM: f32 = 0.85; +const LOCKSCREEN_DIM_BG: f32 = 0.0; + +const BLUR_SIZE: usize = 9; +const BLUR_DIV: u32 = + ((65536_f32 * (1_f32 - LOCKSCREEN_DIM_BG)) as u32) / ((BLUR_SIZE * BLUR_SIZE) as u32); +const DECOMP_LINES: usize = BLUR_SIZE + 1; +const BLUR_RADIUS: i16 = (BLUR_SIZE / 2) as i16; + +const COLORS: usize = 3; +const RED_IDX: usize = 0; +const GREEN_IDX: usize = 1; +const BLUE_IDX: usize = 2; + +fn homescreen_get_fg_text( + y_tmp: i16, + text_info: HomescreenTextInfo, + text_buffer: &BufferText, + fg_buffer: &mut LineBuffer4Bpp, +) -> bool { + if y_tmp >= text_info.text_area.y0 && y_tmp < text_info.text_area.y1 { + let y_pos = y_tmp - text_info.text_area.y0; + position_buffer( + &mut fg_buffer.buffer, + &text_buffer.buffer[(y_pos * WIDTH / 2) as usize..((y_pos + 1) * WIDTH / 2) as usize], + 4, + text_info.text_area.x0, + text_info.text_width, + ); + } + + y_tmp == (text_info.text_area.y1 - 1) +} + +fn homescreen_get_fg_icon( + y_tmp: i16, + text_info: HomescreenTextInfo, + icon_data: &[u8], + fg_buffer: &mut LineBuffer4Bpp, +) { + if let Some(icon_area) = text_info.icon_area { + let icon_size = icon_area.size(); + if y_tmp >= icon_area.y0 && y_tmp < icon_area.y1 { + let y_pos = y_tmp - icon_area.y0; + position_buffer( + &mut fg_buffer.buffer, + &icon_data + [(y_pos * icon_size.x / 2) as usize..((y_pos + 1) * icon_size.x / 2) as usize], + 4, + icon_area.x0, + icon_size.x, + ); + } + } +} + +fn homescreen_position_text( + text: &HomescreenText, + buffer: &mut BufferText, + icon_buffer: &mut [u8], +) -> HomescreenTextInfo { + let text_width = display::text_width(text.text, text.style.text_font.into()); + let font_max_height = display::text_max_height(text.style.text_font.into()); + let font_baseline = display::text_baseline(text.style.text_font.into()); + let text_width_clamped = text_width.clamp(0, screen().width()); + + let icon_size = if let Some(icon) = text.icon { + let (icon_size, icon_data) = toif_info_ensure(icon, ToifFormat::GrayScaleEH); + assert!(icon_size.x <= HOMESCREEN_MAX_ICON_SIZE); + assert!(icon_size.y <= HOMESCREEN_MAX_ICON_SIZE); + let mut ctx = UzlibContext::new(icon_data, None); + unwrap!(ctx.uncompress(icon_buffer), "Decompression failed"); + icon_size + } else { + Offset::zero() + }; + + let text_top = screen().y0 + text.offset.y - font_max_height + font_baseline; + let text_bottom = screen().y0 + text.offset.y + font_baseline; + let icon_left = screen().center().x - (text_width_clamped + icon_size.x + TEXT_ICON_SPACE) / 2; + let text_left = icon_left + icon_size.x + TEXT_ICON_SPACE; + let text_right = screen().center().x + (text_width_clamped + icon_size.x + TEXT_ICON_SPACE) / 2; + + let text_area = Rect::new( + Point::new(text_left, text_top), + Point::new(text_right, text_bottom), + ); + + let icon_area = if text.icon.is_some() { + Some(Rect::from_top_left_and_size( + Point::new(icon_left, text_bottom - icon_size.y - font_baseline), + icon_size, + )) + } else { + None + }; + + display::text_into_buffer(text.text, text.style.text_font.into(), buffer, 0); + + HomescreenTextInfo { + text_area, + text_width, + text_color: text.style.text_color, + icon_area, + } +} + +#[inline(always)] +fn homescreen_dim_area(x: i16, y: i16) -> bool { + y >= HOMESCREEN_DIM_START + && (y > HOMESCREEN_DIM_START + 1 + && y < (HOMESCREEN_DIM_START + HOMESCREEN_DIM_HIEGHT - 1) + && x > HOMESCREEN_DIM_BORDER + && x < WIDTH - HOMESCREEN_DIM_BORDER) + || (y > HOMESCREEN_DIM_START + && y < (HOMESCREEN_DIM_START + HOMESCREEN_DIM_HIEGHT) + && x > HOMESCREEN_DIM_BORDER + 1 + && x < WIDTH - (HOMESCREEN_DIM_BORDER + 1)) + || ((HOMESCREEN_DIM_START..=(HOMESCREEN_DIM_START + HOMESCREEN_DIM_HIEGHT)).contains(&y) + && x > HOMESCREEN_DIM_BORDER + 2 + && x < WIDTH - (HOMESCREEN_DIM_BORDER + 2)) +} + +fn homescreen_line_blurred( + icon_data: &[u8], + text_buffer: &mut BufferText, + text_info: HomescreenTextInfo, + blurring: &BlurringContext, + y: i16, +) -> bool { + let t_buffer = unsafe { get_buffer_4bpp((y & 0x1) as u16, true) }; + let mut img_buffer = unsafe { get_buffer_16bpp((y & 0x1) as u16, false) }; + + for x in 0..HOMESCREEN_IMAGE_SIZE { + let c = if homescreen_dim_area(x, y) { + let x = x as usize; + + let coef = (65536_f32 * LOCKSCREEN_DIM) as u32; + + let r = (blurring.totals[RED_IDX][x] as u32 * BLUR_DIV) >> 16; + let g = (blurring.totals[GREEN_IDX][x] as u32 * BLUR_DIV) >> 16; + let b = (blurring.totals[BLUE_IDX][x] as u32 * BLUR_DIV) >> 16; + + let r = (((coef * r) >> 8) & 0xF800) as u16; + let g = (((coef * g) >> 13) & 0x07E0) as u16; + let b = (((coef * b) >> 19) & 0x001F) as u16; + + r | g | b + } else { + let x = x as usize; + + let r = (((blurring.totals[RED_IDX][x] as u32 * BLUR_DIV) >> 8) & 0xF800) as u16; + let g = (((blurring.totals[GREEN_IDX][x] as u32 * BLUR_DIV) >> 13) & 0x07E0) as u16; + let b = (((blurring.totals[BLUE_IDX][x] as u32 * BLUR_DIV) >> 19) & 0x001F) as u16; + r | g | b + }; + + let j = (2 * x) as usize; + img_buffer.buffer[j + 1] = (c >> 8) as u8; + img_buffer.buffer[j] = (c & 0xFF) as u8; + } + + let done = homescreen_get_fg_text(y, text_info, text_buffer, t_buffer); + homescreen_get_fg_icon(y, text_info, icon_data, t_buffer); + + dma2d_wait_for_transfer(); + dma2d_setup_4bpp_over_16bpp(text_info.text_color.into()); + dma2d_start_blend(&t_buffer.buffer, &img_buffer.buffer, WIDTH); + + done +} + +fn homescreen_line( + icon_data: &[u8], + text_buffer: &mut BufferText, + text_info: HomescreenTextInfo, + data_buffer: &mut BufferJpeg, + mcu_height: i16, + y: i16, +) -> bool { + let t_buffer = unsafe { get_buffer_4bpp((y & 0x1) as u16, true) }; + let mut img_buffer = unsafe { get_buffer_16bpp((y & 0x1) as u16, false) }; + + let image_data = get_data(data_buffer, y, mcu_height); + + for x in 0..HOMESCREEN_IMAGE_SIZE { + let d = image_data[x as usize]; + + let c = if homescreen_dim_area(x, y) { + let coef = (65536_f32 * HOMESCREEN_DIM) as u32; + + let r = (d & 0xF800) >> 8; + let g = (d & 0x07E0) >> 3; + let b = (d & 0x001F) << 3; + + let r = (((coef * r as u32) >> 8) & 0xF800) as u16; + let g = (((coef * g as u32) >> 13) & 0x07E0) as u16; + let b = (((coef * b as u32) >> 19) & 0x001F) as u16; + r | g | b + } else { + d + }; + + let j = 2 * x as usize; + img_buffer.buffer[j + 1] = (c >> 8) as u8; + img_buffer.buffer[j] = (c & 0xFF) as u8; + } + + let done = homescreen_get_fg_text(y, text_info, text_buffer, t_buffer); + homescreen_get_fg_icon(y, text_info, icon_data, t_buffer); + + dma2d_wait_for_transfer(); + dma2d_setup_4bpp_over_16bpp(text_info.text_color.into()); + dma2d_start_blend(&t_buffer.buffer, &img_buffer.buffer, WIDTH); + + done +} + +fn homescreen_next_text( + texts: &[HomescreenText], + text_buffer: &mut BufferText, + icon_data: &mut [u8], + text_info: HomescreenTextInfo, + text_idx: usize, +) -> (HomescreenTextInfo, usize) { + let mut next_text_idx = text_idx; + let mut next_text_info = text_info; + + if next_text_idx < texts.len() { + if let Some(txt) = texts.get(next_text_idx) { + text_buffer.buffer.fill(0); + next_text_info = homescreen_position_text(txt, text_buffer, icon_data); + next_text_idx += 1; + } + } + + (next_text_info, next_text_idx) +} + +#[inline(always)] +fn update_accs_add(data: &[u16], idx: usize, acc_r: &mut u16, acc_g: &mut u16, acc_b: &mut u16) { + let d = data[idx]; + let r = (d & 0xF800) >> 8; + let g = (d & 0x07E0) >> 3; + let b = (d & 0x001F) << 3; + *acc_r += r; + *acc_g += g; + *acc_b += b; +} + +#[inline(always)] +fn update_accs_sub(data: &[u16], idx: usize, acc_r: &mut u16, acc_g: &mut u16, acc_b: &mut u16) { + let d = data[idx]; + let r = (d & 0xF800) >> 8; + let g = (d & 0x07E0) >> 3; + let b = (d & 0x001F) << 3; + *acc_r -= r; + *acc_g -= g; + *acc_b -= b; +} + +struct BlurringContext { + pub lines: &'static mut [[[u16; 240usize]; 3usize]], + pub totals: [[u16; HOMESCREEN_IMAGE_SIZE as usize]; COLORS], + line_num: i16, + add_idx: usize, + rem_idx: usize, +} + +impl BlurringContext { + pub fn new() -> Self { + let mem = unsafe { get_blurring_buffer(0, true) }; + Self { + lines: &mut mem.buffer[0..DECOMP_LINES], + totals: [[0; HOMESCREEN_IMAGE_SIZE as usize]; COLORS], + line_num: 0, + add_idx: 0, + rem_idx: 0, + } + } + + fn clear(&mut self) { + for (i, total) in self.totals.iter_mut().enumerate() { + for line in self.lines.iter_mut() { + line[i].fill(0); + } + total.fill(0); + } + } + + // computes color averages for one line of image data + fn compute_line_avgs(&mut self, buffer: &mut BufferJpeg, mcu_height: i16) { + let mut acc_r = 0; + let mut acc_g = 0; + let mut acc_b = 0; + let data = get_data(buffer, self.line_num, mcu_height); + + for i in -BLUR_RADIUS..=BLUR_RADIUS { + let ic = i.clamp(0, HOMESCREEN_IMAGE_SIZE as i16 - 1) as usize; + update_accs_add(data, ic, &mut acc_r, &mut acc_g, &mut acc_b); + } + + for i in 0..HOMESCREEN_IMAGE_SIZE { + self.lines[self.add_idx][RED_IDX][i as usize] = acc_r; + self.lines[self.add_idx][GREEN_IDX][i as usize] = acc_g; + self.lines[self.add_idx][BLUE_IDX][i as usize] = acc_b; + + // clamping handles left and right edges + let ic = (i - BLUR_RADIUS).clamp(0, HOMESCREEN_IMAGE_SIZE as i16 - 1) as usize; + let ic2 = (i + BLUR_SIZE as i16 - BLUR_RADIUS) + .clamp(0, HOMESCREEN_IMAGE_SIZE as i16 - 1) as usize; + update_accs_add(data, ic2, &mut acc_r, &mut acc_g, &mut acc_b); + update_accs_sub(data, ic, &mut acc_r, &mut acc_g, &mut acc_b); + } + self.line_num += 1; + } + + // adds one line of averages to sliding total averages + fn vertical_avg_add(&mut self) { + for i in 0..HOMESCREEN_IMAGE_SIZE as usize { + self.totals[RED_IDX][i] += self.lines[self.add_idx][RED_IDX][i]; + self.totals[GREEN_IDX][i] += self.lines[self.add_idx][GREEN_IDX][i]; + self.totals[BLUE_IDX][i] += self.lines[self.add_idx][BLUE_IDX][i]; + } + } + + // adds one line and removes one line of averages to/from sliding total averages + fn vertical_avg(&mut self) { + for i in 0..HOMESCREEN_IMAGE_SIZE as usize { + self.totals[RED_IDX][i] += + self.lines[self.add_idx][RED_IDX][i] - self.lines[self.rem_idx][RED_IDX][i]; + self.totals[GREEN_IDX][i] += + self.lines[self.add_idx][GREEN_IDX][i] - self.lines[self.rem_idx][GREEN_IDX][i]; + self.totals[BLUE_IDX][i] += + self.lines[self.add_idx][BLUE_IDX][i] - self.lines[self.rem_idx][BLUE_IDX][i]; + } + } + + fn inc_add(&mut self) { + self.add_idx += 1; + if self.add_idx >= DECOMP_LINES { + self.add_idx = 0; + } + } + + fn inc_rem(&mut self) { + self.rem_idx += 1; + if self.rem_idx >= DECOMP_LINES { + self.rem_idx = 0; + } + } + + fn get_line_num(&self) -> i16 { + self.line_num + } +} + +#[inline(always)] +fn get_data(buffer: &mut BufferJpeg, line_num: i16, mcu_height: i16) -> &mut [u16] { + let data_start = ((line_num % mcu_height) * WIDTH) as usize; + let data_end = (((line_num % mcu_height) + 1) * WIDTH) as usize; + &mut buffer.buffer[data_start..data_end] +} + +pub fn homescreen_blurred(data: &[u8], texts: &[HomescreenText]) { + let mut icon_data = [0_u8; (HOMESCREEN_MAX_ICON_SIZE * HOMESCREEN_MAX_ICON_SIZE / 2) as usize]; + + let text_buffer = unsafe { get_text_buffer(0, true) }; + + let mut next_text_idx = 1; + let mut text_info = + homescreen_position_text(unwrap!(texts.get(0)), text_buffer, &mut icon_data); + + let jpeg_pool = unsafe { get_jpeg_work_buffer(0, true).buffer.as_mut_slice() }; + let jpeg_buffer = unsafe { get_jpeg_buffer(0, true) }; + let mut jpeg_input = BufferInput(data); + let mut jpeg_output = BufferOutput::new(jpeg_buffer, WIDTH, 16); + let mut mcu_height = 8; + let mut jd: Option = JDEC::new(&mut jpeg_input, jpeg_pool).ok(); + + if let Some(dec) = &jd { + mcu_height = dec.mcu_height(); + if !(dec.width() == WIDTH && dec.height() == HEIGHT && mcu_height <= 16) { + jd = None + } + } + jd.as_mut().map(|dec| dec.decomp(&mut jpeg_output)); + + set_window(screen()); + + let mut blurring = BlurringContext::new(); + + // handling top edge case: preload the edge value N+1 times + blurring.compute_line_avgs(jpeg_output.buffer(), mcu_height); + + for _ in 0..=BLUR_RADIUS { + blurring.vertical_avg_add(); + } + blurring.inc_add(); + + // load enough values to be able to compute first line averages + for _ in 0..BLUR_RADIUS { + blurring.compute_line_avgs(jpeg_output.buffer(), mcu_height); + blurring.vertical_avg_add(); + blurring.inc_add(); + + if (blurring.get_line_num() % mcu_height) == 0 { + jd.as_mut().map(|dec| dec.decomp(&mut jpeg_output)); + } + } + + for y in 0..HEIGHT { + // several lines have been already decompressed before this loop, adjust for + // that + if y < HOMESCREEN_IMAGE_SIZE - (BLUR_RADIUS + 1) { + blurring.compute_line_avgs(jpeg_output.buffer(), mcu_height); + } + + let done = homescreen_line_blurred(&icon_data, text_buffer, text_info, &blurring, y); + + if done { + (text_info, next_text_idx) = + homescreen_next_text(texts, text_buffer, &mut icon_data, text_info, next_text_idx); + } + + blurring.vertical_avg(); + + // handling bottom edge case: stop incrementing counter, adding the edge value + // for the rest of image + // the extra -1 is to indicate that this was the last decompressed line, + // in the next pass the docompression and compute_line_avgs won't happen + if y < HOMESCREEN_IMAGE_SIZE - (BLUR_RADIUS + 1) - 1 { + blurring.inc_add(); + } + + if y == HOMESCREEN_IMAGE_SIZE { + // reached end of image, clear avgs (display black) + blurring.clear(); + } + + // only start incrementing remove index when enough lines have been loaded + if y >= (BLUR_RADIUS) { + blurring.inc_rem(); + } + + if (blurring.get_line_num() % mcu_height) == 0 && (blurring.get_line_num() < HEIGHT) { + jd.as_mut().map(|dec| dec.decomp(&mut jpeg_output)); + } + } + dma2d_wait_for_transfer(); +} + +pub fn homescreen( + data: &[u8], + texts: &[HomescreenText], + notification: Option, + notification_only: bool, +) { + let mut icon_data = [0_u8; (HOMESCREEN_MAX_ICON_SIZE * HOMESCREEN_MAX_ICON_SIZE / 2) as usize]; + + let text_buffer = unsafe { get_text_buffer(0, true) }; + + let mut next_text_idx = 0; + let mut text_info = if let Some(notification) = notification { + bar_radius_buffer( + NOTIFICATION_BORDER, + 0, + WIDTH - NOTIFICATION_BORDER * 2, + NOTIFICATION_HEIGHT, + 2, + text_buffer, + ); + let area = Rect::new( + Point::new(0, NOTIFICATION_BORDER), + Point::new(WIDTH, NOTIFICATION_HEIGHT + NOTIFICATION_BORDER), + ); + HomescreenTextInfo { + text_area: area, + text_width: WIDTH, + text_color: notification.color, + icon_area: None, + } + } else { + next_text_idx += 1; + homescreen_position_text(unwrap!(texts.get(0)), text_buffer, &mut icon_data) + }; + + let jpeg_pool = unsafe { get_jpeg_work_buffer(0, true).buffer.as_mut_slice() }; + let jpeg_buffer = unsafe { get_jpeg_buffer(0, true) }; + let mut jpeg_input = BufferInput(data); + let mut jpeg_output = BufferOutput::new(jpeg_buffer, WIDTH, 16); + let mut mcu_height = 8; + let mut jd: Option = JDEC::new(&mut jpeg_input, jpeg_pool).ok(); + + if let Some(dec) = &jd { + mcu_height = dec.mcu_height(); + if !(dec.width() == WIDTH && dec.height() == HEIGHT && mcu_height <= 16) { + jd = None + } + } + + set_window(screen()); + + let mcu_height = mcu_height as i16; + + for y in 0..HEIGHT { + if (y % mcu_height) == 0 { + jd.as_mut().map(|dec| dec.decomp(&mut jpeg_output)); + } + + let done = homescreen_line( + &icon_data, + text_buffer, + text_info, + jpeg_output.buffer(), + mcu_height, + y, + ); + + if done { + if notification.is_some() && next_text_idx == 0 { + //finished notification area, let interrupt and draw the text + let notification = unwrap!(notification); + + let style = TextStyle { + background_color: notification.color, + ..theme::TEXT_BOLD + }; + + dma2d_wait_for_transfer(); + + icon_text_center( + text_info.text_area.center(), + notification.icon, + 8, + notification.text, + style, + Offset::new(1, -2), + ); + set_window( + screen() + .split_top(NOTIFICATION_HEIGHT + NOTIFICATION_BORDER) + .1, + ); + } + + if notification_only && next_text_idx == 0 { + dma2d_wait_for_transfer(); + return; + } + + (text_info, next_text_idx) = + homescreen_next_text(texts, text_buffer, &mut icon_data, text_info, next_text_idx); + } + } + dma2d_wait_for_transfer(); +} diff --git a/core/embed/rust/src/ui/model_tt/layout.rs b/core/embed/rust/src/ui/model_tt/layout.rs index f00ebdae98..00c9eb0205 100644 --- a/core/embed/rust/src/ui/model_tt/layout.rs +++ b/core/embed/rust/src/ui/model_tt/layout.rs @@ -33,7 +33,8 @@ use crate::{ obj::{ComponentMsgObj, LayoutObj}, result::{CANCELLED, CONFIRMED, INFO}, util::{ - iter_into_array, iter_into_objs, upy_disable_animation, ConfirmBlob, PropsList, + iter_into_array, iter_into_objs, upy_disable_animation, upy_jpeg_info, + upy_jpeg_test, ConfirmBlob, PropsList, }, }, }, @@ -1299,6 +1300,14 @@ pub static mp_module_trezorui2: Module = obj_module! { /// """Disable animations, debug builds only.""" Qstr::MP_QSTR_disable_animation => obj_fn_1!(upy_disable_animation).as_obj(), + /// def jpeg_info(data: bytes) -> (width: int, height: int, mcu_height: int): + /// """Get JPEG image dimensions.""" + Qstr::MP_QSTR_jpeg_info => obj_fn_1!(upy_jpeg_info).as_obj(), + + /// def jpeg_test(data: bytes) -> bool: + /// """Test JPEG image.""" + Qstr::MP_QSTR_jpeg_test => obj_fn_1!(upy_jpeg_test).as_obj(), + /// def confirm_action( /// *, /// title: str, diff --git a/core/embed/rust/src/ui/model_tt/res/bg.jpg b/core/embed/rust/src/ui/model_tt/res/bg.jpg new file mode 100644 index 0000000000..6d86f7c646 Binary files /dev/null and b/core/embed/rust/src/ui/model_tt/res/bg.jpg differ diff --git a/core/embed/rust/src/ui/model_tt/theme.rs b/core/embed/rust/src/ui/model_tt/theme.rs index 0c5f333761..93d19941ee 100644 --- a/core/embed/rust/src/ui/model_tt/theme.rs +++ b/core/embed/rust/src/ui/model_tt/theme.rs @@ -78,6 +78,9 @@ pub const IMAGE_BG_TRIANGLE: &[u8] = include_res!("model_tt/res/triangle.toif"); pub const IMAGE_BG_BACK_BTN: &[u8] = include_res!("model_tt/res/back_btn.toif"); pub const IMAGE_BG_BACK_BTN_TALL: &[u8] = include_res!("model_tt/res/back_btn_tall.toif"); +// Default homescreen +pub const IMAGE_HOMESCREEN: &[u8] = include_res!("model_tt/res/bg.jpg"); + // Scrollbar/PIN dots. pub const DOT_ACTIVE: &[u8] = include_res!("model_tt/res/scroll-active.toif"); pub const DOT_INACTIVE: &[u8] = include_res!("model_tt/res/scroll-inactive.toif"); diff --git a/core/mocks/generated/trezorui2.pyi b/core/mocks/generated/trezorui2.pyi index 6204eb646c..bb8a271721 100644 --- a/core/mocks/generated/trezorui2.pyi +++ b/core/mocks/generated/trezorui2.pyi @@ -72,6 +72,16 @@ def disable_animation(disable: bool) -> None: """Disable animations, debug builds only.""" +# rust/src/ui/model_tt/layout.rs +def jpeg_info(data: bytes) -> (width: int, height: int, mcu_height: int): + """Get JPEG image dimensions.""" + + +# rust/src/ui/model_tt/layout.rs +def jpeg_test(data: bytes) -> bool: + """Test JPEG image.""" + + # rust/src/ui/model_tt/layout.rs def confirm_action( *, diff --git a/core/src/all_modules.py b/core/src/all_modules.py index ab5ebc1901..7472feef7b 100644 --- a/core/src/all_modules.py +++ b/core/src/all_modules.py @@ -103,6 +103,8 @@ trezor.enums.DecredStakingSpendType import trezor.enums.DecredStakingSpendType trezor.enums.FailureType import trezor.enums.FailureType +trezor.enums.HomescreenFormat +import trezor.enums.HomescreenFormat trezor.enums.InputScriptType import trezor.enums.InputScriptType trezor.enums.MessageType diff --git a/core/src/apps/base.py b/core/src/apps/base.py index 3f7b03a369..b5aa763870 100644 --- a/core/src/apps/base.py +++ b/core/src/apps/base.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING import storage.cache as storage_cache import storage.device as storage_device from trezor import config, utils, wire, workflow -from trezor.enums import MessageType +from trezor.enums import HomescreenFormat, MessageType from trezor.messages import Success, UnlockPath from . import workflow_handlers @@ -75,6 +75,7 @@ def get_features() -> Features: pin_protection=config.has_pin(), unlocked=config.is_unlocked(), busy=busy_expiry_ms() > 0, + homescreen_format=HomescreenFormat.Jpeg240x240, ) if utils.BITCOIN_ONLY: diff --git a/core/src/apps/management/apply_settings.py b/core/src/apps/management/apply_settings.py index 21fff28313..36a93a851a 100644 --- a/core/src/apps/management/apply_settings.py +++ b/core/src/apps/management/apply_settings.py @@ -14,7 +14,7 @@ BRT_PROTECT_CALL = ButtonRequestType.ProtectCall # CACHE def _validate_homescreen(homescreen: bytes) -> None: - from trezor import ui + import trezorui2 import storage.device as storage_device if homescreen == b"": @@ -26,13 +26,17 @@ def _validate_homescreen(homescreen: bytes) -> None: ) try: - w, h, toif_format = ui.display.toif_info(homescreen) + w, h, mcu_height = trezorui2.jpeg_info(homescreen) + except ValueError: + raise DataError("Invalid homescreen") + if w != 240 or h != 240: + raise DataError("Homescreen must be 240x240 pixel large") + if mcu_height > 16: + raise DataError("Unsupported jpeg type") + try: + trezorui2.jpeg_test(homescreen) except ValueError: raise DataError("Invalid homescreen") - if w != 144 or h != 144: - raise DataError("Homescreen must be 144x144 pixel large") - if toif_format != ui.display.TOIF_FULL_COLOR_BE: - raise DataError("Homescreen must be full-color TOIF image") async def apply_settings(ctx: Context, msg: ApplySettings) -> Success: diff --git a/core/src/trezor/enums/HomescreenFormat.py b/core/src/trezor/enums/HomescreenFormat.py new file mode 100644 index 0000000000..9d72d56d17 --- /dev/null +++ b/core/src/trezor/enums/HomescreenFormat.py @@ -0,0 +1,6 @@ +# Automatically generated by pb2py +# fmt: off +# isort:skip_file + +Toif144x144 = 1 +Jpeg240x240 = 2 diff --git a/core/src/trezor/enums/__init__.py b/core/src/trezor/enums/__init__.py index 224a1374e0..1891c8d861 100644 --- a/core/src/trezor/enums/__init__.py +++ b/core/src/trezor/enums/__init__.py @@ -407,6 +407,10 @@ if TYPE_CHECKING: PromptAlways = 1 PromptTemporarily = 2 + class HomescreenFormat(IntEnum): + Toif144x144 = 1 + Jpeg240x240 = 2 + class Capability(IntEnum): Bitcoin = 1 Bitcoin_like = 2 diff --git a/core/src/trezor/messages.py b/core/src/trezor/messages.py index 8963ea4cb9..f3e10f699e 100644 --- a/core/src/trezor/messages.py +++ b/core/src/trezor/messages.py @@ -39,6 +39,7 @@ if TYPE_CHECKING: from trezor.enums import DecredStakingSpendType # noqa: F401 from trezor.enums import EthereumDataType # noqa: F401 from trezor.enums import FailureType # noqa: F401 + from trezor.enums import HomescreenFormat # noqa: F401 from trezor.enums import InputScriptType # noqa: F401 from trezor.enums import MessageType # noqa: F401 from trezor.enums import MoneroNetworkType # noqa: F401 @@ -2102,6 +2103,7 @@ if TYPE_CHECKING: display_rotation: "int | None" experimental_features: "bool | None" busy: "bool | None" + homescreen_format: "HomescreenFormat | None" def __init__( self, @@ -2144,6 +2146,7 @@ if TYPE_CHECKING: display_rotation: "int | None" = None, experimental_features: "bool | None" = None, busy: "bool | None" = None, + homescreen_format: "HomescreenFormat | None" = None, ) -> None: pass diff --git a/core/src/trezor/ui/__init__.py b/core/src/trezor/ui/__init__.py index 4abd770195..d2e45b56b5 100644 --- a/core/src/trezor/ui/__init__.py +++ b/core/src/trezor/ui/__init__.py @@ -332,7 +332,7 @@ class Layout(Component): def _before_render(self) -> None: # Before the first render, we dim the display. - backlight_fade(style.BACKLIGHT_DIM) + backlight_fade(style.BACKLIGHT_NONE) # Clear the screen of any leftovers, make sure everything is marked for # repaint (we can be running the same layout instance multiple times) # and paint it. diff --git a/core/src/trezor/ui/layouts/tr/__init__.py b/core/src/trezor/ui/layouts/tr/__init__.py index c6974d4a6e..442cf1e9ab 100644 --- a/core/src/trezor/ui/layouts/tr/__init__.py +++ b/core/src/trezor/ui/layouts/tr/__init__.py @@ -36,6 +36,7 @@ class RustLayout(ui.Layout): button = loop.wait(io.BUTTON) ui.display.clear() self.layout.paint() + ui.refresh() while True: # Using `yield` instead of `await` to avoid allocations. event, button_num = yield button @@ -46,6 +47,7 @@ class RustLayout(ui.Layout): if msg is not None: raise ui.Result(msg) self.layout.paint() + ui.refresh() def handle_timers(self) -> loop.Task: # type: ignore [awaitable-is-generator] while True: @@ -55,6 +57,7 @@ class RustLayout(ui.Layout): if msg is not None: raise ui.Result(msg) self.layout.paint() + ui.refresh() async def confirm_action( diff --git a/core/src/trezor/ui/layouts/tt_v2/__init__.py b/core/src/trezor/ui/layouts/tt_v2/__init__.py index a1ddb8a8a5..c637d12175 100644 --- a/core/src/trezor/ui/layouts/tt_v2/__init__.py +++ b/core/src/trezor/ui/layouts/tt_v2/__init__.py @@ -52,6 +52,8 @@ class RustLayout(ui.Layout): import storage.cache as storage_cache painted = self.layout.paint() + + ui.refresh() if storage_cache.homescreen_shown is not None and painted: storage_cache.homescreen_shown = None diff --git a/core/src/trezor/ui/layouts/tt_v2/fido.py b/core/src/trezor/ui/layouts/tt_v2/fido.py index 70be7fb008..142a7a0894 100644 --- a/core/src/trezor/ui/layouts/tt_v2/fido.py +++ b/core/src/trezor/ui/layouts/tt_v2/fido.py @@ -13,7 +13,7 @@ if TYPE_CHECKING: if __debug__: - from trezor import io + from trezor import io, ui from ... import Result class _RustFidoLayoutImpl(RustLayout): @@ -42,6 +42,7 @@ if __debug__: ): msg = self.layout.touch_event(event, x, y) self.layout.paint() + ui.refresh() if msg is not None: raise Result(msg) diff --git a/core/src/trezor/ui/layouts/tt_v2/homescreen.py b/core/src/trezor/ui/layouts/tt_v2/homescreen.py index 97ac3fccf4..92b9128e5f 100644 --- a/core/src/trezor/ui/layouts/tt_v2/homescreen.py +++ b/core/src/trezor/ui/layouts/tt_v2/homescreen.py @@ -20,6 +20,7 @@ class HomescreenBase(RustLayout): def _paint(self) -> None: self.layout.paint() + ui.refresh() def _first_paint(self) -> None: if storage_cache.homescreen_shown is not self.RENDER_INDICATOR: @@ -70,6 +71,7 @@ class Homescreen(HomescreenBase): is_connected = await usbcheck self.layout.usb_event(is_connected) self.layout.paint() + ui.refresh() def create_tasks(self) -> Tuple[loop.AwaitableTask, ...]: return super().create_tasks() + (self.usb_checker_task(),) diff --git a/python/src/trezorlib/cli/settings.py b/python/src/trezorlib/cli/settings.py index fde3ca0bea..e5414293b0 100644 --- a/python/src/trezorlib/cli/settings.py +++ b/python/src/trezorlib/cli/settings.py @@ -14,6 +14,7 @@ # You should have received a copy of the License along with this library. # If not, see . +import os from typing import TYPE_CHECKING, Optional, cast import click @@ -59,7 +60,7 @@ def image_to_t1(filename: str) -> bytes: return image.tobytes("raw", "1") -def image_to_tt(filename: str) -> bytes: +def image_to_toif_144x144(filename: str) -> bytes: if filename.endswith(".toif"): try: toif_image = toif.load(filename) @@ -89,6 +90,40 @@ def image_to_tt(filename: str) -> bytes: return toif_image.to_bytes() +def image_to_jpeg_240x240(filename: str) -> bytes: + if not (filename.endswith(".jpg") or filename.endswith(".jpeg")): + raise click.ClickException("Please use a jpg image") + + elif not PIL_AVAILABLE: + raise click.ClickException( + "Image library is missing. Please install via 'pip install Pillow'." + ) + + else: + try: + image = Image.open(filename) + except Exception as e: + raise click.ClickException("Failed to open image") from e + + if "progressive" in image.info: + raise click.ClickException("Progressive JPEG is not supported") + + if image.size != (240, 240): + raise click.ClickException("Wrong size of image - should be 240x240") + + image.close() + + file_stats = os.stat(filename) + + if file_stats.st_size > 16384: + raise click.ClickException("File is too big, please use maximum 16kB") + + in_file = open(filename, "rb") + bytes = in_file.read() + in_file.close() + return bytes + + def _should_remove(enable: Optional[bool], remove: bool) -> bool: """Helper to decide whether to remove something or not. @@ -208,7 +243,21 @@ def homescreen(client: "TrezorClient", filename: str) -> str: if client.features.model == "1": img = image_to_t1(filename) else: - img = image_to_tt(filename) + if ( + client.features.homescreen_format + == messages.HomescreenFormat.Jpeg240x240 + ): + img = image_to_jpeg_240x240(filename) + elif ( + client.features.homescreen_format + == messages.HomescreenFormat.Toif144x144 + or client.features.homescreen_format is None + ): + img = image_to_toif_144x144(filename) + else: + raise click.ClickException( + "Unknown image format requested by the device." + ) return device.apply_settings(client, homescreen=img) diff --git a/python/src/trezorlib/messages.py b/python/src/trezorlib/messages.py index a060c6c308..0ffb7a296b 100644 --- a/python/src/trezorlib/messages.py +++ b/python/src/trezorlib/messages.py @@ -437,6 +437,11 @@ class SafetyCheckLevel(IntEnum): PromptTemporarily = 2 +class HomescreenFormat(IntEnum): + Toif144x144 = 1 + Jpeg240x240 = 2 + + class Capability(IntEnum): Bitcoin = 1 Bitcoin_like = 2 @@ -3137,6 +3142,7 @@ class Features(protobuf.MessageType): 39: protobuf.Field("display_rotation", "uint32", repeated=False, required=False, default=None), 40: protobuf.Field("experimental_features", "bool", repeated=False, required=False, default=None), 41: protobuf.Field("busy", "bool", repeated=False, required=False, default=None), + 42: protobuf.Field("homescreen_format", "HomescreenFormat", repeated=False, required=False, default=None), } def __init__( @@ -3181,6 +3187,7 @@ class Features(protobuf.MessageType): display_rotation: Optional["int"] = None, experimental_features: Optional["bool"] = None, busy: Optional["bool"] = None, + homescreen_format: Optional["HomescreenFormat"] = None, ) -> None: self.capabilities: Sequence["Capability"] = capabilities if capabilities is not None else [] self.major_version = major_version @@ -3221,6 +3228,7 @@ class Features(protobuf.MessageType): self.display_rotation = display_rotation self.experimental_features = experimental_features self.busy = busy + self.homescreen_format = homescreen_format class LockDevice(protobuf.MessageType): diff --git a/tests/device_tests/test_msg_applysettings.py b/tests/device_tests/test_msg_applysettings.py index ad7faf0284..74e88f3bbc 100644 --- a/tests/device_tests/test_msg_applysettings.py +++ b/tests/device_tests/test_msg_applysettings.py @@ -133,6 +133,52 @@ def test_apply_settings_passphrase_on_device(client: Client): def test_apply_homescreen_toif(client: Client): img = b"TOIf\x90\x00\x90\x00~\x00\x00\x00\xed\xd2\xcb\r\x83@\x10D\xc1^.\xde#!\xac31\x99\x10\x8aC%\x14~\x16\x92Y9\x02WI3\x01<\xf5cI2d\x1es(\xe1[\xdbn\xba\xca\xe8s7\xa4\xd5\xd4\xb3\x13\xbdw\xf6:\xf3\xd1\xe7%\xc7]\xdd_\xb3\x9e\x9f\x9e\x9fN\xed\xaaE\xef\xdc\xcf$D\xa7\xa4X\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0OV" + with pytest.raises(exceptions.TrezorFailure), client: + _set_expected_responses(client) + device.apply_settings(client, homescreen=img) + + +@pytest.mark.skip_t1 +def test_apply_homescreen_jpeg(client: Client): + img = ( + b"\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x01,\x01," + b"\x00\x00\xff\xdb\x00C\x00\x02\x01\x01\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x03\x05\x03\x03\x03\x03" + b"\x03\x06\x04\x04\x03\x05\x07\x06\x07\x07\x07\x06\x07\x07\x08\t\x0b\t\x08\x08\n\x08\x07\x07\n\r\n\n\x0b" + b"\x0c\x0c\x0c\x0c\x07\t\x0e\x0f\r\x0c\x0e\x0b\x0c\x0c\x0c\xff\xdb\x00C\x01\x02\x02\x02\x03\x03\x03\x06\x03" + b"\x03\x06\x0c\x08\x07\x08\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" + b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" + b"\x0c\x0c\x0c\x0c\xff\xc0\x00\x11\x08\x00\xf0\x00\xf0\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00" + b"\x15\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\xff\xc4\x00\x14\x10\x01" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xc4\x00\x14\x01\x01\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xc4\x00\x14\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\x9f\xf0\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xff\xd9" + ) with client: _set_expected_responses(client) device.apply_settings(client, homescreen=img) @@ -141,26 +187,106 @@ def test_apply_homescreen_toif(client: Client): device.apply_settings(client, homescreen=b"") -@pytest.mark.parametrize( - "toif_data", - [ - # incomplete header - b"TOIf\x90\00\x90\x00~" - # wrong magic - b"XXXf\x90\x00\x90\x00~\x00\x00\x00\xed\xd2\xcb\r\x83@\x10D\xc1^.\xde#!\xac31\x99\x10\x8aC%\x14~\x16\x92Y9\x02WI3\x01<\xf5cI2d\x1es(\xe1[\xdbn\xba\xca\xe8s7\xa4\xd5\xd4\xb3\x13\xbdw\xf6:\xf3\xd1\xe7%\xc7]\xdd_\xb3\x9e\x9f\x9e\x9fN\xed\xaaE\xef\xdc\xcf$D\xa7\xa4X\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0OV" - # wrong datasize in header - b"TOIf\x90\x00\x90\x00~\x00\x00\x00\xed\xd2\xcb\r\x83@\x10D\xc1^.\xde#!\xac31\x99\x10\x8aC%\x14~\x16\x92Y9\x02WI3\x01<\xf5cI2d\x1es(\xe1[\xdbn\xba\xca\xe8s7\xa4\xd5\xd4\xb3\x13\xbdw\xf6:\xf3\xd1\xe7%\xc7]\xdd_\xb3\x9e\x9f\x9e\x9fN\xed\xaaE\xef\xdc\xcf$D\xa7\xa4X\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - # grayscale 144x144 - b"TOIg\x90\x00\x90\x00~\x00\x00\x00\xed\xd2\xcb\r\x83@\x10D\xc1^.\xde#!\xac31\x99\x10\x8aC%\x14~\x16\x92Y9\x02WI3\x01<\xf5cI2d\x1es(\xe1[\xdbn\xba\xca\xe8s7\xa4\xd5\xd4\xb3\x13\xbdw\xf6:\xf3\xd1\xe7%\xc7]\xdd_\xb3\x9e\x9f\x9e\x9fN\xed\xaaE\xef\xdc\xcf$D\xa7\xa4X\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0OV", - # fullcolor 128x128 - b"TOIf\x80\x00\x80\x00~\x00\x00\x00\xed\xd2\xcb\r\x83@\x10D\xc1^.\xde#!\xac31\x99\x10\x8aC%\x14~\x16\x92Y9\x02WI3\x01<\xf5cI2d\x1es(\xe1[\xdbn\xba\xca\xe8s7\xa4\xd5\xd4\xb3\x13\xbdw\xf6:\xf3\xd1\xe7%\xc7]\xdd_\xb3\x9e\x9f\x9e\x9fN\xed\xaaE\xef\xdc\xcf$D\xa7\xa4X\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0OV", - ], -) @pytest.mark.skip_t1 -def test_apply_homescreen_toif_fail(client: Client, toif_data): +def test_apply_homescreen_jpeg_progressive(client: Client): + img = ( + b"\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x01,\x01," + b"\x00\x00\xff\xdb\x00C\x00\x02\x01\x01\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x03\x05\x03\x03\x03\x03" + b"\x03\x06\x04\x04\x03\x05\x07\x06\x07\x07\x07\x06\x07\x07\x08\t\x0b\t\x08\x08\n\x08\x07\x07\n\r\n\n\x0b" + b"\x0c\x0c\x0c\x0c\x07\t\x0e\x0f\r\x0c\x0e\x0b\x0c\x0c\x0c\xff\xdb\x00C\x01\x02\x02\x02\x03\x03\x03\x06\x03" + b"\x03\x06\x0c\x08\x07\x08\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" + b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" + b"\x0c\x0c\x0c\x0c\xff\xc2\x00\x11\x08\x00\xf0\x00\xf0\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00" + b"\x15\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t\xff\xc4\x00\x14\x01\x01" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xda\x00\x0c\x03\x01\x00\x02\x10\x03" + b"\x10\x00\x00\x01\x9f\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x03\xff\xc4\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x90\xff\xda\x00\x08\x01\x01\x00\x01\x05\x02a?\xff\xc4\x00\x14\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x90\xff\xda\x00\x08\x01\x03\x01\x01?\x01a?\xff\xc4\x00\x14\x11\x01\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xff\xda\x00\x08\x01\x02\x01\x01?\x01a?\xff\xc4" + b"\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xff\xda\x00\x08\x01\x01" + b"\x00\x06?\x02a?\xff\xc4\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90" + b"\xff\xda\x00\x08\x01\x01\x00\x01?!a?\xff\xda\x00\x0c\x03\x01\x00\x02\x00\x03\x00\x00\x00\x10\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xff\xc4\x00" + b"\x14\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xff\xda\x00\x08\x01\x03\x01" + b"\x01?\x10a?\xff\xc4\x00\x14\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xff" + b"\xda\x00\x08\x01\x02\x01\x01?\x10a?\xff\xc4\x00\x14\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x90\xff\xda\x00\x08\x01\x01\x00\x01?\x10a?\xff\xd9" + ) + with pytest.raises(exceptions.TrezorFailure), client: - client.use_pin_sequence([PIN4]) - device.apply_settings(client, homescreen=toif_data) + _set_expected_responses(client) + device.apply_settings(client, homescreen=img) + + +@pytest.mark.skip_t1 +def test_apply_homescreen_jpeg_wrong_size(client: Client): + img = ( + b"\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x01,\x01," + b"\x00\x00\xff\xdb\x00C\x00\x02\x01\x01\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x03\x05\x03\x03\x03\x03" + b"\x03\x06\x04\x04\x03\x05\x07\x06\x07\x07\x07\x06\x07\x07\x08\t\x0b\t\x08\x08\n\x08\x07\x07\n\r\n\n\x0b" + b"\x0c\x0c\x0c\x0c\x07\t\x0e\x0f\r\x0c\x0e\x0b\x0c\x0c\x0c\xff\xdb\x00C\x01\x02\x02\x02\x03\x03\x03\x06\x03" + b"\x03\x06\x0c\x08\x07\x08\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" + b"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" + b"\x0c\x0c\x0c\x0c\xff\xc0\x00\x11\x08\x00\xf0\x00\xdc\x03\x01\x11\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00" + b"\x15\x00\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\xff\xc4\x00\x14\x10\x01" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xc4\x00\x14\x01\x01\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xc4\x00\x14\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\x9f\xf0\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" + b"\x00\x00\x1f\xff\xd9" + ) + + with pytest.raises(exceptions.TrezorFailure), client: + _set_expected_responses(client) + device.apply_settings(client, homescreen=img) @pytest.mark.skip_t2 diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json index df13334721..face2ef64a 100644 --- a/tests/ui_tests/fixtures.json +++ b/tests/ui_tests/fixtures.json @@ -618,1081 +618,1081 @@ "T1_zcash-test_sign_tx.py::test_spend_v4_input": "436b7a43b7fc7fe0615340c6aa73d46a18e5a0d804469702941cea9c8fd9e390", "T1_zcash-test_sign_tx.py::test_spend_v5_input": "6d29a8023d4b8b9fa4d170afbbaeb7cf1895906ab74f75c9fcb12a601154b9d5", "T1_zcash-test_sign_tx.py::test_version_group_id_missing": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", -"TT_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-0-bnb1hgm0p7khfk85zpz-68e2cb5a": "0e9cca607167420ae84c851798bcae15f56f8090b2f78270f91d03b217604e13", -"TT_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-1-bnb1egswqkszzfc2uq7-1adfb691": "c946e650da594070013628b5ea18cc3025c98316851358cb502cd77c6d638ed8", -"TT_binance-test_get_public_key.py::test_binance_get_public_key": "8d567583a6b0ab3925681f57d3f98fbf25d27e105324ca307d20faf679103cad", -"TT_binance-test_sign_tx.py::test_binance_sign_message[message0-expected_response0]": "229851215ce747ab5c75916cf1345651d8ae7b4eeb2d27eba10bd02b1e69d2d2", -"TT_binance-test_sign_tx.py::test_binance_sign_message[message1-expected_response1]": "0e24e7407be53619521af089baaf54592a84a05a5f105d507c2717b590526010", -"TT_binance-test_sign_tx.py::test_binance_sign_message[message2-expected_response2]": "0e91c1a2b4568f9c3cd5ead797c18dc4e50741e839b711765a3207bcf9c5aaf7", -"TT_bitcoin-test_authorize_coinjoin.py::test_cancel_authorization": "a8303d65558011587692f6580b8d19951f2a75fa6a38112e4915655e06224944", -"TT_bitcoin-test_authorize_coinjoin.py::test_get_address": "b96b26e26a41a2ebeb1a103e3dec28b0d38ef310c8be54188028b0b7fab9a24c", -"TT_bitcoin-test_authorize_coinjoin.py::test_get_public_key": "c87e3627fc91f7fb16eed8b4ae5453f2a58aee21e1717ae657d8c0679e15bdf0", -"TT_bitcoin-test_authorize_coinjoin.py::test_multisession_authorization": "f1a050500a38d7936dbcc018da51adbff5c54386eee3479c45aa9ebef9d28e37", -"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx": "68fefe6c7bf3e746962eda3bd03c4352e83918b3acd6e7fef91303d412fc06cf", -"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_large": "7ef969d253b086da18b376d9f93e6b5922b33ca34588cbb77f9468e18e7897f7", -"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_spend": "6e22574b0469cb525b6931bbb1eab3d06cc01f48e4a140f128683a84e998747b", -"TT_bitcoin-test_authorize_coinjoin.py::test_wrong_account_type": "a8303d65558011587692f6580b8d19951f2a75fa6a38112e4915655e06224944", -"TT_bitcoin-test_authorize_coinjoin.py::test_wrong_coordinator": "a8303d65558011587692f6580b8d19951f2a75fa6a38112e4915655e06224944", -"TT_bitcoin-test_bcash.py::test_attack_change_input": "b1802a922a2b5ffbac250bc7c423d7d48540b70e1a5f74612ca593622e3e5cc9", -"TT_bitcoin-test_bcash.py::test_send_bch_change": "b1802a922a2b5ffbac250bc7c423d7d48540b70e1a5f74612ca593622e3e5cc9", -"TT_bitcoin-test_bcash.py::test_send_bch_external_presigned": "a4b87d5442725d6c1eb35cecc7e1f2be4ef375f932c59b5058e6453f751ed6d3", -"TT_bitcoin-test_bcash.py::test_send_bch_multisig_change": "a0d7243edbcd1db926e6b7ee02c228bdfb9ce05022b0c2259701a681b9d8888b", -"TT_bitcoin-test_bcash.py::test_send_bch_multisig_wrongchange": "61f24798e3775f2c8a191dab85b908b6f86b4a81711566d972761c6ae7faca12", -"TT_bitcoin-test_bcash.py::test_send_bch_nochange": "fb3f7d0d98820c8dcdac7eeda8b5f2cd542d56f3c670a72384c3cd193138ac51", -"TT_bitcoin-test_bcash.py::test_send_bch_oldaddr": "e7e68de16656f2e2a6112906fdaf0469c2b325a7a3909db9b212bbcb6e9df9e3", -"TT_bitcoin-test_bgold.py::test_attack_change_input": "8f08d33ab6db08efe4bd72ad56d2d1e9e87e6f1c0af6805d9001673ae1d66281", -"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_change": "8f08d33ab6db08efe4bd72ad56d2d1e9e87e6f1c0af6805d9001673ae1d66281", -"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_nochange": "24157ca48912c69dc261f6d8cead1e5e6377e5e650a8ae21c0cae85f32d796cd", -"TT_bitcoin-test_bgold.py::test_send_btg_external_presigned": "84a2e38ec0f014704c03ae971e978193dfb4cda7f3cd95520ca4e6ee587cd90c", -"TT_bitcoin-test_bgold.py::test_send_btg_multisig_change": "14aa959d428c6fdf16134973e5a76bb85ad239743e651b8819bc1579938104b8", -"TT_bitcoin-test_bgold.py::test_send_mixed_inputs": "d1272e75be8197ba977bd5651d478a3ba14770c0eed1704eb1a5f29ecab77100", -"TT_bitcoin-test_bgold.py::test_send_multisig_1": "6b95842cee64808e5d5909aeaa46ae17d1fb33a50224d7f9288106d55ac737d2", -"TT_bitcoin-test_bgold.py::test_send_p2sh": "4fbff37cc5a9ab13c99b81315c9598de194b98e7836002c621ef865fdbf0ba4b", -"TT_bitcoin-test_bgold.py::test_send_p2sh_witness_change": "02139d8c36b526b4cf968d866dfa63afa19b454e815ae45e1cc81e07cc766a7a", -"TT_bitcoin-test_dash.py::test_send_dash": "f5c732cd908991b9aa2a8f4ab8044f9dae32be02507879d1a95c1ebec3092c81", -"TT_bitcoin-test_dash.py::test_send_dash_dip2_input": "46e96256d26a447bb4ce7330348275959cdf57bd6053ff3cc3516b5d8105e04a", -"TT_bitcoin-test_decred.py::test_decred_multisig_change": "710d078c86f8278fd99c7e6852bad0ffd88421c8b868b48f52da6071340a0aba", -"TT_bitcoin-test_decred.py::test_purchase_ticket_decred": "d79e64d35634cb8ec15bbffe4a415567006d9880560d277d296432ba69906ff2", -"TT_bitcoin-test_decred.py::test_send_decred": "69f9da1d576f445c24abfc82a9251a38d08a3bb93a10a2b9bf662342b864e05e", -"TT_bitcoin-test_decred.py::test_send_decred_change": "a754ed4bfc8cdea51e9fd136e041bb05ab814bcd9ea5aa4927abe2cc95276bca", -"TT_bitcoin-test_decred.py::test_spend_from_stake_generation_and_revocation_decred": "ca091e189a453f13ba8f30f13940c6f7be1de2ed076bb7bbc0414564590fe1da", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDADDRESS-pkh([5-7a80e3db": "d6975d004f70ee48138b41141ef2c80c6c74f11192d5c566022a46ef7629fd2f", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDP2SHWITNESS-sh-03d56ac2": "3f29fcdbf49bfa95526c2393fcb6420eb3ce7d8b5d9c2d55024e462e3ffedb63", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDTAPROOT-tr([5c-22751b2f": "1383481e4c60157d6845b1d0a29e6987f3d80882511c86d233862b82fcd9b355", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDWITNESS-wpkh([-edfbc435": "acaaaf1d60f908cbe104813d7961ea6e357357058bd0e206b210fb7badde142e", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDADDRESS-pkh([5-5ab06094": "27a31d2fb540494c57dc604bb7a9564f7ba1424dfb91eb03bcf7e038ef4755fc", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDP2SHWITNESS-sh-5dd6ae4b": "566587cce91598b081ed32ccdebbd251a556c0d2fe2eac683f5678f021df4653", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDTAPROOT-tr([5c-f4f20781": "9456264f57432b39995e432303215718b76addbc033c55b9cc664819b4499fb6", -"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDWITNESS-wpkh([-98a75f0a": "5415e8cdc6755e866468f57219c5870c799a1f2f54c40d8e639361e81e045619", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDADDRESS-pkh([5-f63bf93f": "b7bebb1414d4799f5e72eca9f6a588d3f088aa762753542056b9f09e4e81379f", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDP2SHWITNESS-sh-fd42e1d9": "bc1b5b10b76dd62f7c7b738c5c731d31bd53f204b2a179d45843bb98132629fb", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDTAPROOT-tr([5c-a794e72a": "5dea985ab7d6185baef6bf9d2923b90eca017ff27ab894ead13283f8c62aa497", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDWITNESS-wpkh([-e70d0168": "d579c81cb86b12d8fb7875962b25980b01d14ea7222c1aef6cb44f91b8ec667e", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDADDRESS-pkh([5-2d5b32fe": "c033c0031be8ac678fd4f8701e2b82eb94b2b23ba5b7aefb439e5cca325e7f0c", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDP2SHWITNESS-sh-e8c5303c": "81571f466358a641aea786fb010780baffed5f990b347ff63b5c9d80226282f7", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDTAPROOT-tr([5c-ddc924d3": "6b6964451c7a7951ace4398a32ea21ede40cb8bf95362d2a09708725e36a10df", -"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDWITNESS-wpkh([-996ae319": "d36efa9f5ae747d1d7ed70458f724549868d8ac3d6ec7a99dc1fe860f1037543", -"TT_bitcoin-test_firo.py::test_spend_lelantus": "1176f2b2c97da24179ed9bf64c5a6a9ded8a120f907cc2907aba24559cb2fd75", -"TT_bitcoin-test_fujicoin.py::test_send_p2tr": "1ca5f79eb988a6bc920e54d274839107e0be0eb57dc1f2a142b3638491ce4a89", -"TT_bitcoin-test_getaddress.py::test_address_mac": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_altcoin_address_mac": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_bch": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_bch_multisig": "17dfa9111f67f6639612fd516e9b9f50d6f06439b4999c7607db3bf39c32da96", -"TT_bitcoin-test_getaddress.py::test_btc": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_crw": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_elements": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_grs": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_invalid_path": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_ltc": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_multisig": "a34a037e2d9fad3ce03cc4d827214242e48c8d1791b306365704fc0dc8a12101", -"TT_bitcoin-test_getaddress.py::test_multisig_missing[False]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_multisig_missing[True]": "3c971589eb061974cbc4d53f43e14dd9a2834f6ce5e959e84268c40f4182509c", -"TT_bitcoin-test_getaddress.py::test_public_ckd": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_tbtc": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_tgrs": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress.py::test_unknown_path": "a3609f60049744bd20abe544776e1e261e1347e5e8548c26b514b373a0bbbf39", -"TT_bitcoin-test_getaddress_segwit.py::test_multisig_missing[False]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit.py::test_multisig_missing[True]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit.py::test_show_multisig_3": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit.py::test_show_segwit": "44f2102aa9b1ce120e70126aa9e03cbb272bb476f51cc36f66ccbcf44d52ef34", -"TT_bitcoin-test_getaddress_segwit.py::test_show_segwit_altcoin": "2f00cfaf7e7fe3d2005f8f954119d79017a6790be71ebba4a3804167b07a30b8", -"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-0-0-bc1p5cyxnuxmeuwuvkwfem-dc12f29f": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-0-1-bc1p4qhjn9zdvkux4e44uh-1f521bf2": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-1-0-bc1p3qkhfews2uk44qtvau-d8b57624": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_multisig_missing[False]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_multisig_missing[True]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_multisig_3": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-0-0-InputScr-6bc4ffc3": "3b08dc5a2f52049aeee3199f03db26c29e3b050d3ab5a20c28cfe865888aeddc", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-0-0-InputScr-8943c1dc": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-1-0-InputScr-016718c1": "bad6c31a649b0b56aac10bb6cde47903c0e6b829789b1d11e77fbe87327bee72", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-1-0-InputScr-7656a4db": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-0-0-InputScr-3d3cc8eb": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-0-0-InputScr-8571d5e0": "a5f8e3cba2bb1577973d0c8a29650851ba83f5750af11ef855c180b6fd178453", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-1-0-InputScr-ab700de2": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-1-0-InputScr-da3803e0": "66f67ae722d2637ed9ca5ff68f8789786c602467ad1cdb5f38a40017553323f9", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Elements-m-84h-1h-0h-0-0-InputSc-490228be": "4081884089aa530a127bed928e5e7bf351c7297c31b4283387cc552f1c8e5c64", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Elements-m-84h-1h-0h-0-0-InputSc-ed587e90": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--40b95144": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--45b4ff5d": "0dc498a93926dcb48fa759bdb1bb5fb2ad5a968146227faed14d99f3645076ef", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--8f7c658b": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--93c9c3ff": "afe0a56bddeba9285f113c6639be26078c2afc2bdaec314048049262fee01e9b", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-86h-1h-0h--5feb8c64": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-86h-1h-0h--8d4476a1": "4359835f27d2cb57f55e0d0a5345b15659f97a69c9f1ab320deba9ac690804a8", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-0-0-Inp-0200a67b": "171ced9a318dc4cc67a8d4b6a10f67ec3274ad74dd2105c7941416a7bb792682", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-0-0-Inp-e6c1098a": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-1-0-Inp-9688a507": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-1-0-Inp-f825f217": "db715a66aa19e6691965b8333668468b63babbd107f43e474dfb4e47f22f1bd0", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-86h-17h-0h-0-0-Inp-38cd93cf": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-86h-17h-0h-0-0-Inp-ebecce6e": "833f0322b0c9c45be3d7aceef29166a4272c58605cec0cae88176563d75300c8", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-0-0-InputScr-313b9443": "667ec56700dc483f7183c4ed95512cafe8bae0b35b9ab04ebcebadccf24fff9e", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-0-0-InputScr-ce15ec92": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-1-0-InputScr-040186c0": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-1-0-InputScr-b10918be": "7fc8df251e23cdb3924192056a1d354496c634d44ee409078ba91b85ebff04c4", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-0-0-InputScr-55ae0ae6": "148dc10bb11f0bbaa02980046415f7211df32f82dcade1e780193d6a10792444", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-0-0-InputScr-821a199d": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-1-0-InputScr-9d2fa8bc": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-1-0-InputScr-d5b7f8fc": "06bec301f866b3b6c1a472d0ff47c1b70b62bbf05e56c2ef5031630a34aba26d", -"TT_bitcoin-test_getaddress_show.py::test_show[m-44h-0h-12h-0-0-InputScriptType.SPENDADDRESS-1F-1e4f2f74": "7643fb41411b4f7f1b1e000a57469fd11a887390fb0fd37166f22dff8cee285a", -"TT_bitcoin-test_getaddress_show.py::test_show[m-49h-0h-12h-0-0-InputScriptType.SPENDP2SHWITNES-a986211d": "56b3448866907487ff9eb7f24a2a9e2a8e2420cfa4b2966ff9c4941d93599937", -"TT_bitcoin-test_getaddress_show.py::test_show[m-84h-0h-12h-0-0-InputScriptType.SPENDWITNESS-bc-a5f08dfb": "8bfad8550098d2ca0f1c8a70ed3033343ca826ee10bc89652aa8e45e76027d5a", -"TT_bitcoin-test_getaddress_show.py::test_show[m-86h-0h-12h-0-0-InputScriptType.SPENDTAPROOT-bc-f94d8b44": "37189315faaeb8e48cd9e70b66774e18f341e0cb305c01a3009b030eff57ef2f", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_15": "c7daaedad20389e245cd03b34ed563c9113c6ca3bd991cdfdf17242d6133e875", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_3": "d7aeaf2a4f6a8b0b70fc4b956e09cc2371af8944a1b0c06475828234bfbe60b7", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDMULTISIG-0-3-4efd9cf3": "a71fc8fb4e2d8ceb19b6c14279eb4cc4087d53c8296e8a4d9151ed26dd69ba27", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDMULTISIG-0-3-98a7e339": "a71fc8fb4e2d8ceb19b6c14279eb4cc4087d53c8296e8a4d9151ed26dd69ba27", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDP2SHWITNESS--2cf5f03c": "7ccb5ac18f50db7ce218412191eed1009274de4c74bb0b1569dae697c1f0997d", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDP2SHWITNESS--5ea18367": "8130e556a4894f521a321e777c56db73cb028c23dfe717b008868829b8483a31", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDWITNESS-2-bc-e70b56ea": "eaca91a04302a7a1eb092e9135d396ca7a8bbe8c9944edf9375d3b1fc03f2563", -"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDWITNESS-2-bc-f3c4650f": "5c7bd452a449e6d64cd508c3027eea2a8f0ad4b029a619eae9d294a5fbb2ec41", -"TT_bitcoin-test_getaddress_show.py::test_show_unrecognized_path": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getownershipproof.py::test_attack_ownership_id": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getownershipproof.py::test_confirm_ownership_proof": "0a5a49abe4bb89dbcfb02742f46137c92df4e576118fd1a7b5922987ad3ceee6", -"TT_bitcoin-test_getownershipproof.py::test_confirm_ownership_proof_with_data": "ef43f5c7704c29b2886e17cf5d9009938b5ee0f756277f75493c9ca724cd7a43", -"TT_bitcoin-test_getownershipproof.py::test_fake_ownership_id": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getownershipproof.py::test_p2tr_ownership_id": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getownershipproof.py::test_p2tr_ownership_proof": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getownershipproof.py::test_p2wpkh_ownership_id": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getownershipproof.py::test_p2wpkh_ownership_proof": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path0-xpub6BiVtCpG9fQPx-40a56ca3": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path1-xpub6BiVtCpG9fQQR-1abafc98": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path2-xpub6FVDRC1jiWNTu-47a67414": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path3-xpub6GhTNegKCjTqj-990e0830": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path6-xpub68Zyu13qjcQvJ-8285bd20": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path10-Ltub2dcb6Nghj3k-53e5db37": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path7-Ltub2Y8PyEMWQVgi-d0bb059c": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path8-Ltub2Y8PyEMWQVgi-98ae2c41": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path9-Ltub2dTvwC4v7GNe-8d6d95fb": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Testnet-70617039-path4-tpubDDKn3FtHc74Ca-f3b70aff": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_get_public_node[Testnet-70617039-path5-tpubDGwNSs8z8jZU2-8b5efa13": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bcash-path5]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path0]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path2]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path3]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_invalid_path[Litecoin-path4]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_invalid_path[Testnet-path1]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDADDRESS-xpub6BiVtCp7ozs-9813cc48": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDP2SHWITNESS-ypub6WYmBsV-0710fbb3": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDWITNESS-zpub6qP2VY9x7Mx-84eaa56c": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_script_type[None-xpub6BiVtCp7ozsRo7kaoYNrCNAVJwPYTQHjoXF-c37a47fd": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey.py::test_slip25_path": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey_curve.py::test_coin_and_curve": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey_curve.py::test_ed25519_public": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[ed25519-path4-002e28dc0346d6d30d4e-e6c7a440": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[nist256p1-path2-0324c6860c25cdf7a8-d75f4900": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[nist256p1-path3-03b93f7e6c777143ad-2d6b178b": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path0-02f65ce170451f66f4-9c982c22": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path1-0212f4629f4f224db0-0209bb73": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_grs.py::test_legacy": "f139e4c316dca298d2861d80225dd182be71e4c795915001712a648987c57931", -"TT_bitcoin-test_grs.py::test_legacy_change": "9fd92acd2a3e03f056abcbfe8a85fc6fe147f510232710b7faf853ce17507a28", -"TT_bitcoin-test_grs.py::test_send_p2tr": "590dffd3edefc6f37c19810928e39e2604ee527da36064ff4fabc39cc1f0614d", -"TT_bitcoin-test_grs.py::test_send_segwit_native": "68df40050d3f960b64f6fe660ddb7d4187dc5374beb9938f981d2d4b91d85420", -"TT_bitcoin-test_grs.py::test_send_segwit_native_change": "adfc1d431be802d0dcfd52415369e85da6f05fd2c5443033fb810a6de0ccfdf9", -"TT_bitcoin-test_grs.py::test_send_segwit_p2sh": "b39d885697a5e975f022f73537cd47109b6c3ec3ed58ae0c7ca71675fa6a1808", -"TT_bitcoin-test_grs.py::test_send_segwit_p2sh_change": "4c18b442febb4f2e6f186f00709adabb43c4cea381bbe2216649fcbbcfb64550", -"TT_bitcoin-test_komodo.py::test_one_one_fee_sapling": "220ed08d4cfabb9a0021f09489726ba7258218c0d7bdc492149c63ff9b3ac7c1", -"TT_bitcoin-test_komodo.py::test_one_one_rewards_claim": "9b9e4d4333063943c51f46400c724c93296fe48712a9e77328349f82e50aecb8", -"TT_bitcoin-test_multisig.py::test_15_of_15": "51c922c38255587612c051e9006f46695d02f195c6de6a90f746a9e8bb705f18", -"TT_bitcoin-test_multisig.py::test_2_of_3": "0d04418a561386fcb0429b1de23ccd97c07d70685bcf3a34de9f1e27d1b44ced", -"TT_bitcoin-test_multisig.py::test_attack_change_input": "99abb73457ab5fe2cf4ca404a112c3198ed8c480d27c1da960ed042865c18c55", -"TT_bitcoin-test_multisig.py::test_missing_pubkey": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_multisig_change.py::test_external_external": "90e34306af107defc93d856d64193267d22bbd699f4c494ab7c83532af1bbe9e", -"TT_bitcoin-test_multisig_change.py::test_external_internal": "ad3441136556a22c1085c1343633cd131bdf5b3bdeef32202bdf829d1f858c52", -"TT_bitcoin-test_multisig_change.py::test_internal_external": "ea307ef0c8d33ac9773954cc88f2e56a8365625de218d46cdda2b1a9ecd6fdd3", -"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_first": "77bd0ea228f512b10c337dec58b34c46a047972f35d639a44127c5211eed7114", -"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_second": "aec71c55ced2a140405903f8aa6dbc377d658196e1c35a4129708924c22d85d0", -"TT_bitcoin-test_multisig_change.py::test_multisig_external_external": "ffc6a5589435c8d6595edc3c01fdbb5f218cfcfa9e4f484461c8c6f2e6ccd0b8", -"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_change": "7245d0b27f18b8203381d44db18cc5d76eb1748da3f360f00b41a172556b89a5", -"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_inputs": "356674ab3134260d92a826005fc315e715cb47354cc4acbb28f74ed02ff3986d", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-6-255-script_types3]": "5be6298cfb37a3127508cc32de570bdf5e82bde27664984126f9500cca675b91", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-script_types2]": "aa28c2664f48256b05816ab8aead59c0c2bec721433ac6cec3c35273d12f8bf3", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-3h-100h-4-255-script_types1]": "d4bfaa37ab70ade3537ffe8193507f6184aae3ce7d67a710ab9cdc4a262e2b4d", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-4-255-script_types0]": "d25486bfe91b014a4534db39ebd9fbd456ecf755a563aacb5be226b444336369", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-49-0-63-0-255-script_types4]": "61dfd2dc0fd2419cbc7ebfe0142d326d771ff2c78275ff90242b00204fb2a20c", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths0-address_index0]": "c2a53de5b54df5039b24903790751f47ce1a340a676c0dec4e486a78486e35c8", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths1-address_index1]": "497fa06f88ece89ff52d6031e415b7737194aced4038db25cfdcedc8a9db69ed", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths2-address_index2]": "531ccba662c56eb641a7ff06100c971b65504f9360ff188cbdbd88dbd714b1b4", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths3-address_index3]": "74db180a1dfd9fbefe73b6a420688f74d3bc865fcc9dbaa027cd8e21c65b3227", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths4-address_index4]": "426f6f28b3a0933b9f2ce3520ec1f45e3bb6103335cfa538291377d81335be5c", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths5-address_index5]": "4e89a8d2a5a9344608518e54592b136aea2b100709115e134b719c6514a1f0e2", -"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths6-address_index6]": "6ae16b56318e29f1932553a9862beaac3a3cb003f94cd77303d98e2c2396c7a9", -"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-1195487518-6-255-script_types3]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-1195487518-script_types2]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-3h-100h-4-255-script_types1]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-4-255-script_types0]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-49-0-63-0-255-script_types4]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-1195487518-6-255-script_types3]": "f6f959364a2cca3fef3c0ae89588c791d6c639bc6de02c135be562067ecfae4f", -"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-1195487518-script_types2]": "e496bdafe977a0a98654c69947b69c6aea3df2dd922fd7553aec58b99dc94c54", -"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-3h-100h-4-255-script_types1]": "9fb4056e672489ee58d193a5486479cdcbeea2fb334b2d51c9a5bcf456eddc2f", -"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-4-255-script_types0]": "6d4fbe02ccb665d186eebe364c6465393d8ed5e942271451396d92d5257136e5", -"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-49-0-63-0-255-script_types4]": "2454522837f9763f4b30040761bcf94c4db89aaac7bd1c1dfc01756f1cf39a96", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-6-255-script_types3]": "b0f7bf637e834689e64a4b8e288faaa449bfecbf92b244e33470d2bc89b3a3d8", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-script_types2]": "31f064cb05df23474213007fa822c0687efd49f85d989a036dd44163948cead0", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-3h-100h-4-255-script_types1]": "74632542743aa341a3388f87ba3cbbe31917b5e37f661a602f65f1c4dbee1b1b", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-4-255-script_types0]": "74632542743aa341a3388f87ba3cbbe31917b5e37f661a602f65f1c4dbee1b1b", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-49-0-63-0-255-script_types4]": "d7115a583472dc28e98732b462f7f77afad76869293a071705fed81cccc50558", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths0-address_index0]": "f61bd4c1f3e7d2774f51a79af8a251d8398ff0b810a4cc5b55195e592ae7a339", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths1-address_index1]": "f61bd4c1f3e7d2774f51a79af8a251d8398ff0b810a4cc5b55195e592ae7a339", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths2-address_index2]": "8aa8a735b1be15a44397835917a7aea331e8e92b633f63e7b82985e7df6ec099", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths3-address_index3]": "b31ce32faa93414694e3b823fd6816f95e29ac9a8ea0bd71d360df796cab6779", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths4-address_index4]": "f61bd4c1f3e7d2774f51a79af8a251d8398ff0b810a4cc5b55195e592ae7a339", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths5-address_index5]": "f61bd4c1f3e7d2774f51a79af8a251d8398ff0b810a4cc5b55195e592ae7a339", -"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths6-address_index6]": "f61bd4c1f3e7d2774f51a79af8a251d8398ff0b810a4cc5b55195e592ae7a339", -"TT_bitcoin-test_op_return.py::test_nonzero_opreturn": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_op_return.py::test_opreturn": "acaddb62bcb15c26e5961744a0bc6812b08060299144b814c52af4b6dd8e3950", -"TT_bitcoin-test_op_return.py::test_opreturn_address": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_peercoin.py::test_timestamp_included": "9dd3bb5e01d2b54b273e3888b10b7f373130fb1bdfb9d40ed687858c49f34934", -"TT_bitcoin-test_peercoin.py::test_timestamp_missing": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_peercoin.py::test_timestamp_missing_prevtx": "74a20c787ffdcbee7220c072ee9e592bce71779c96eef9619d770ac1d1fb1e47", -"TT_bitcoin-test_signmessage.py::test_signmessage[NFC message]": "556fc8527976dbc72dff38e382ad2b20956171e240c101a8458d20dac5d55dde", -"TT_bitcoin-test_signmessage.py::test_signmessage[NFKD message]": "556fc8527976dbc72dff38e382ad2b20956171e240c101a8458d20dac5d55dde", -"TT_bitcoin-test_signmessage.py::test_signmessage[bcash]": "61eb6e9c30f4fbf8cd710d8b0976a73914555fc7224e03a0bd8535bca3d2f664", -"TT_bitcoin-test_signmessage.py::test_signmessage[decred-empty]": "51bac8994489e6ff341f96588c80af3ab90b1dc434bb35a4a1953d20f3f60d9f", -"TT_bitcoin-test_signmessage.py::test_signmessage[decred]": "0bdb3c054a6fa08c4f4ec43f92ad1b9032a0e1e972fd53c7c6936c6303bfd53e", -"TT_bitcoin-test_signmessage.py::test_signmessage[grs-p2pkh]": "0d1e6791c90d831c9ff1c8750cb9239abbd2ca7882e81c5cbad3f22f9d64d64c", -"TT_bitcoin-test_signmessage.py::test_signmessage[grs-segwit-native]": "d6d5c57475fcd3af4f7e769748dd8373150ae864d5987730c021ef0fa1e0a3e7", -"TT_bitcoin-test_signmessage.py::test_signmessage[grs-segwit-p2sh]": "d59a9444b73f57e596bc3705ee5018075ea59d8b2fca4da9efa540485e78b100", -"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh long message]": "fba6647aebcf4cdb4fe65319eae209ffe4ae7255abd3c3aa057812d32ae8fc67", -"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh0]": "c06c585273716fd0813d4d682c2ba68f13d9e5fec0990657a0436340a9b41c3d", -"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh1]": "c06c585273716fd0813d4d682c2ba68f13d9e5fec0990657a0436340a9b41c3d", -"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh2]": "9b97c9f63bc2e706b6d7663e4352874a46ed427b54b7bb2dee3df07776bcfd92", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native long message]": "6a541738048f3092c189df62b057143059f5ddd07a98ecfa56444fc8f88bec26", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native0]": "f0548cf82489ff7dc39e2bf4c7db78a80e260165ed523962a5f9ae0145b6508f", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native1]": "f0548cf82489ff7dc39e2bf4c7db78a80e260165ed523962a5f9ae0145b6508f", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native2]": "e3f8461d295be8c85299a97deab596835bd05dc47d94fe698f900f1da8920ae2", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh long message]": "7a25f222e322a0e91db9d61b4ff07b01b141f186f282e5813fb940a036556ba7", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh0]": "799518e8f30b064ba20e5a8a369e1c4c4200d33dac00ea3b3c35d234d633b2f6", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh1]": "799518e8f30b064ba20e5a8a369e1c4c4200d33dac00ea3b3c35d234d633b2f6", -"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh2]": "acac553cd49013bb0ffc0328ee4129c5397ea3fe37d427a86c06024a8e753cf5", -"TT_bitcoin-test_signmessage.py::test_signmessage[t1 firmware path]": "2e1f28e5e774e6d458c784e1dae4102ebfce0e0140dc4636101af54560429d1b", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[long_words]": "0f7de2d2c449c8f236cdf1194b7e7de99e2bc6a0ac1996b6e522bd79d98a0173", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[newlines]": "741b21075122bbf815e81c57b1664daff4d1b04b8beb633d1ffe5bb377cf4fb0", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[no_spaces]": "cd6401e22a27e8dd4e72d41ca0c5841d36775c58a9a4511b857928a504c7e827", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[normal_text]": "e746269e5647e79a4fcdf82a50f2e1d517f648eb4041dca893986e1852aa04b8", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[single_line_over]": "096470117c8cbd8ce6b2202858493a8e249f5a90ea91a452aabac68270f5a8c0", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[utf_nospace]": "bce6c6defcd0e511251cad41d4a5bfaf32c9467299c0eb6392cf89f664cc50ed", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[utf_text]": "a3f5268b14f98e3dd62c79f159c38697f60f92cec6701a7827815ac59cae5457", -"TT_bitcoin-test_signmessage.py::test_signmessage_pagination_trailing_newline": "c6690bed3e230670fe74487e31082d155cd58ef4992cf22ab27140d5c8573976", -"TT_bitcoin-test_signmessage.py::test_signmessage_path_warning": "174f5d68b4bc8ee2cf7c32a15614a0234bcefb9b212b4ec3558b5bceaed97dea", -"TT_bitcoin-test_signtx.py::test_attack_change_input_address": "e824e3b990202b1f196ce5df6622ccf73c2bad4b3c470dad6f7a547f208c00c4", -"TT_bitcoin-test_signtx.py::test_attack_change_outputs": "bd9d3b891f8d0609f30862739990988831c3b2b9311987578c287ed6001082c1", -"TT_bitcoin-test_signtx.py::test_attack_modify_change_address": "4231a7786597d9164f55311eabbb46bdb350407ea7cbeafba1e86d261a8f9d35", -"TT_bitcoin-test_signtx.py::test_change_on_main_chain_allowed": "4231a7786597d9164f55311eabbb46bdb350407ea7cbeafba1e86d261a8f9d35", -"TT_bitcoin-test_signtx.py::test_fee_high_hardfail": "94a95eae4591282c85436c0121894927493d0ea53f8cc3d22d057af8100c3e7a", -"TT_bitcoin-test_signtx.py::test_fee_high_warning": "694957b21513d07d40beffec954b67cdca350a51a6c865fc65275adf640591d8", -"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.EXTERNAL]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.SPENDADDRESS]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOADDRESS]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOSCRIPTHASH]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx.py::test_lock_time[1-4294967295]": "27b4af27d1ff9d7b93cee8aa047c946bf67843c4ffd436be3267783639d7ad78", -"TT_bitcoin-test_signtx.py::test_lock_time[499999999-4294967294]": "3e7ad96c3e9e471ac37a1464207ef9d26e475c47f345711c89fb3a24a4eff135", -"TT_bitcoin-test_signtx.py::test_lock_time[500000000-4294967294]": "35bac00f3f2d18175a407e041c46873c8c69e912d81acb17a3bbc46d5d49ea0e", -"TT_bitcoin-test_signtx.py::test_lock_time_blockheight": "3e7ad96c3e9e471ac37a1464207ef9d26e475c47f345711c89fb3a24a4eff135", -"TT_bitcoin-test_signtx.py::test_lock_time_datetime[1985-11-05 00:53:20]": "35bac00f3f2d18175a407e041c46873c8c69e912d81acb17a3bbc46d5d49ea0e", -"TT_bitcoin-test_signtx.py::test_lock_time_datetime[2048-08-16 22:14:00]": "75e8dc4262eee2ffdd12ca8068eb84d281d3e5dbe6868ff431fc2c82388be9a3", -"TT_bitcoin-test_signtx.py::test_lots_of_change": "72bd82b179e393ede0ac95ce0c6fc7e8f72c7e2955d61fcd5a26c30e45164285", -"TT_bitcoin-test_signtx.py::test_lots_of_inputs": "31fd4fba62253197ca0a5c467a2c2cab8b5e64bc12f8c6f7c19cb9d2b6ff2416", -"TT_bitcoin-test_signtx.py::test_lots_of_outputs": "dbb0f1d4f971d08df6645cf57aba32ea935cbcba7519ec33b7ce7c684ffbe058", -"TT_bitcoin-test_signtx.py::test_not_enough_funds": "150eb51235ef975b915bb4df57cab59758edd77916bdd54518242d33d3c265b0", -"TT_bitcoin-test_signtx.py::test_not_enough_vouts": "975de3a4e21438df88f074c3a2787b1512205772ed3242383583d971a4844aa1", -"TT_bitcoin-test_signtx.py::test_one_one_fee": "2380e4c49412ecc160025d45aeef86d2a23774491eee816f2ad547277daf4259", -"TT_bitcoin-test_signtx.py::test_one_three_fee": "4bf37095f57072ed3a30f73973a1eaece79809ffa057175a5dcf6bc8a8d1608d", -"TT_bitcoin-test_signtx.py::test_one_two_fee": "4e6ae212e87e0ebad60c2abf57e1d618078c29cccece57329557d4c1b7cdfb90", -"TT_bitcoin-test_signtx.py::test_p2sh": "49592a4299f1a27bf6ec5b3e5bf321d61660077f4413160fb5fb5fd1d750fd2e", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[branch_id-13]": "ce180eb25629250b09ffc6fce3527a73954a959e4af0ee7f641b87c18d0d919b", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[expiry-9]": "ce180eb25629250b09ffc6fce3527a73954a959e4af0ee7f641b87c18d0d919b", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[extra_data-hello world]": "ce180eb25629250b09ffc6fce3527a73954a959e4af0ee7f641b87c18d0d919b", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[timestamp-42]": "ce180eb25629250b09ffc6fce3527a73954a959e4af0ee7f641b87c18d0d919b", -"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[version_group_id-69]": "ce180eb25629250b09ffc6fce3527a73954a959e4af0ee7f641b87c18d0d919b", -"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[branch_id-13]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[expiry-9]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[timestamp-42]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[version_group_id-69]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_signtx.py::test_spend_coinbase": "98fe848478e33f80144024f1b6841df92d3753fbf4d8aca50c8ed5fc077213a5", -"TT_bitcoin-test_signtx.py::test_testnet_big_amount": "4fcc963a111d8b929b2116b7e1000db5c099f6e1afce9d6d2c3e2fad6bfe89b5", -"TT_bitcoin-test_signtx.py::test_testnet_fee_high_warning": "9ef768fc8a6f4775fd9f58459382806e85571978137ec8ac604ebc9281cfaa6e", -"TT_bitcoin-test_signtx.py::test_testnet_one_two_fee": "4231a7786597d9164f55311eabbb46bdb350407ea7cbeafba1e86d261a8f9d35", -"TT_bitcoin-test_signtx.py::test_two_changes": "5f484ab834b7eb60b91e179f2bba529150bd2511306eafa6bc56363776143140", -"TT_bitcoin-test_signtx.py::test_two_two": "b3778d0d28076aa65a6017f45acf330f441d74446805a551fe904ec2d5dac75c", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.BITCOIN]": "2380e4c49412ecc160025d45aeef86d2a23774491eee816f2ad547277daf4259", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MICROBITCOIN]": "979c162ba2972b537f7354eda0aafb5bc200ee62b80b451427cfcd56ccd3bebd", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MILLIBITCOIN]": "d21ddafb1aac73782ac9a6db35ec63805689f10ff238a0666a887c50e5af356d", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.SATOSHI]": "5ea47dad924591bf27b9eb854a5c21f72cc50f17193aea5cc6aa42a7093d29f6", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[None]": "2380e4c49412ecc160025d45aeef86d2a23774491eee816f2ad547277daf4259", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.BITCOIN]": "c5afb6c67e32f43b73a4a7eebc42ca8c61458fe57ba89bf5ffc088c0f206a788", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MICROBITCOIN]": "62847b44956a933344bcc4ab08740470b8f0646c5746972607aa32e46a0c4899", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MILLIBITCOIN]": "4fa4b75b6851edea8438bddf4cc3ab748e252bba39e434b9396f3c5a88072375", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.SATOSHI]": "97886683cedf4e527b2dec262841ae65c7d7422ded7d52c035cf8f96c3ceaf83", -"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[None]": "c5afb6c67e32f43b73a4a7eebc42ca8c61458fe57ba89bf5ffc088c0f206a788", -"TT_bitcoin-test_signtx_external.py::test_p2pkh_presigned": "7880d4819d60c89e1c10ea1600a5c657f5cad61a4319354fc46685eb718a3fb8", -"TT_bitcoin-test_signtx_external.py::test_p2pkh_with_proof": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_signtx_external.py::test_p2tr_external_presigned": "96eaa174824676c5537ab97b0b909002be020e75947f3875c40938644fe36151", -"TT_bitcoin-test_signtx_external.py::test_p2tr_external_unverified": "626111015b273924c07769b8c792eb9a94a87fca6a965d3c4066184a2de933a0", -"TT_bitcoin-test_signtx_external.py::test_p2tr_with_proof": "d76a924413ef558610b2cedf9f29a586ee84cea011b935281510ad766240ef34", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_external_unverified": "54104e0de4749f7029f151913d5b1874318ac6533cc762c06f02b57f55dc3e8d", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_presigned": "8b5a2b8b6daff7def4723865a8eec69b4a095e5bbe4b75662fd0e02ac78e0a31", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_with_proof": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_presigned": "eb187e2511df84e55fb061fb4959611ed86c7b866b013f034dd37109512d8b8f", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_false_proof": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_proof": "72a8d5d7961f30f9107f20440ca4c9cfad7d91c24574b6a0018cda5b9e1f81f4", -"TT_bitcoin-test_signtx_external.py::test_p2wsh_external_presigned": "dabaf40e3cae8fc5ccff746ad9608012df6e19fb957477828419c37917dc43d8", -"TT_bitcoin-test_signtx_invalid_path.py::test_attack_path_segwit": "0e57e072ecbc80c5b2ccb937b0e43aab67fc769ca4e809df0c0b0e0d1dd7d89d", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail_asap": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_pass_forkid": "32240ccbfde5a0f73b366d9c40d48291c86b9d5e979c128ab77b830ea73bf487", -"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_prompt": "d434fce2a6a6401ff6fbd881510e58e6cff7bfcb8b13aea76d8506da9cd1c71b", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_inputs": "4e12afdccf8b5fc3056e2dcc9916b2fe85ce81e69dae63bc89da48def5003e5d", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_non_segwit_inputs": "17a32113f2018f3e90ed452fc9a8b48e3bad2051186b64813ef2f79d95a7c65b", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_inputs": "4e12afdccf8b5fc3056e2dcc9916b2fe85ce81e69dae63bc89da48def5003e5d", -"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_segwit_inputs": "d93c360934cd68565ed3d4b4fc1dc2ece457373abfc7e8b3fdc2c9fffb39431e", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_amount": "7380d505f1337aa60bc797f64fbca57f3e18be2a58ea8fd7ec593fe6d3543900", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_purchase": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_refund": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_output": "aa7b7fab6a62c8ff02d8842f932c91c979b9d1f99a890b059f213c51dbe48a22", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0+out1]": "3af62b57578c2a73b9b2f55fbdc91a677f3424f741795ffb2b6c29528379de05", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out012]": "f2d8f468cc7dcb58014330d28cb2e1c65b617b2914fb059ef5ff24d1ae7db0f4", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out01]": "2da408155a4aef4ebbd57c07d12b1f46cced535f09d23b62de25b41ef1cf743e", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0]": "654962f26902214852e20065afce05281f242767dca097bdcb4678abca170905", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out12]": "86d7b5299416538e855220da760013af3cb9022ac64715f1bd958cf9cd962270", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out1]": "65918e379605938becb70be6577371d1fe8a232bc62b00dfc97d8bf474af4686", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out2]": "0dc054923f54ce99d08720ce30ad0650a1f2402f9b31b55224a2a3366ff0275a", -"TT_bitcoin-test_signtx_payreq.py::test_payment_request_details": "c98849210709ab17f3334de548906d872788cbf3f561a6dfe033236fd0621bfa", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[hello world]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[x]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[]": "ada0514b83246ef3af0b6d8bf8ee624fba41b6e428eb1e2928d57915920328c9", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[hello world]": "ada0514b83246ef3af0b6d8bf8ee624fba41b6e428eb1e2928d57915920328c9", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[x]": "ada0514b83246ef3af0b6d8bf8ee624fba41b6e428eb1e2928d57915920328c9", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "ada0514b83246ef3af0b6d8bf8ee624fba41b6e428eb1e2928d57915920328c9", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[]": "2122ab7d47fb9fd6e7be0fea79eff4433ca5479e05fd8ce26847c9940a2ed5c8", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[hello world]": "2122ab7d47fb9fd6e7be0fea79eff4433ca5479e05fd8ce26847c9940a2ed5c8", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[x]": "2122ab7d47fb9fd6e7be0fea79eff4433ca5479e05fd8ce26847c9940a2ed5c8", -"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "2122ab7d47fb9fd6e7be0fea79eff4433ca5479e05fd8ce26847c9940a2ed5c8", -"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_ext_input_amount": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_int_input_amount": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_replacement.py::test_attack_false_internal": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_replacement.py::test_attack_steal_change": "c9bf7211483b93e736106257e40e42826ff09ff9855c15d73136cc5ae5c89963", -"TT_bitcoin-test_signtx_replacement.py::test_p2pkh_fee_bump": "3d87432b1a3c7fec8bb9fea65c2974a6a362e69d336dce92f9d31efdbb14106f", -"TT_bitcoin-test_signtx_replacement.py::test_p2tr_fee_bump": "7224a39d9255f9a96d5378db1196a2e12ca701c7580e36da2e77a405131d0228", -"TT_bitcoin-test_signtx_replacement.py::test_p2tr_invalid_signature": "7224a39d9255f9a96d5378db1196a2e12ca701c7580e36da2e77a405131d0228", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_finalize": "0173d92946f34eb6d2f4aab9477695fc0f914732e50f18f71d86c30242fc2f58", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_fee_bump_from_external": "47a92510f7f4c18d7340b6ebcbe3e4a5b60099dbd2085ccac72750b77d87ad27", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_remove_change": "b39c9af3f24008588584b425f97744de5c4dd97cd92dbc31cf983cba713268f2", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_invalid_signature": "0173d92946f34eb6d2f4aab9477695fc0f914732e50f18f71d86c30242fc2f58", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_op_return_fee_bump": "cdc68be08f0ca091cec1a3132b98905b43f574edb1d74bd1a5f018ef96d13c93", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909659-90000-02483045022100aa1b91-c9b963ae": "ce5b348aa1d7fd99eb77ba5dcab2b76fd4606dcc05ff148e0d60c98ee04c7553", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909718-90000-024730440220753f5304-ecb983d1": "ce5b348aa1d7fd99eb77ba5dcab2b76fd4606dcc05ff148e0d60c98ee04c7553", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909800-89859-0248304502210097a42b-7a89e474": "ce5b348aa1d7fd99eb77ba5dcab2b76fd4606dcc05ff148e0d60c98ee04c7553", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89800-02483045022100af3a87-80428fad": "9a8ffbdea9bafd49a136e75c32138146e118844ec842171f8d80a55bb903c5f6", -"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89859-02483045022100eb74ab-881c7bef": "ce5b348aa1d7fd99eb77ba5dcab2b76fd4606dcc05ff148e0d60c98ee04c7553", -"TT_bitcoin-test_signtx_replacement.py::test_tx_meld": "623f8c79e475501efa5d7729098185ff341e97d93b72c708fe8026b616ea8d4f", -"TT_bitcoin-test_signtx_segwit.py::test_attack_change_input_address": "cbf526eaf3a46eff9fc9bf6d4993da0cbcec6ef2451be84e830ed1b86c1a2f1d", -"TT_bitcoin-test_signtx_segwit.py::test_attack_mixed_inputs": "3b04c71f4bdc0fc3683e9237392837c31039e87ba87b53c9f6bf882b62cb1f83", -"TT_bitcoin-test_signtx_segwit.py::test_send_multisig_1": "1cf62512c5c12c4626ac58d845384f6eec9eba42bcc2c3e06cee33356b9d5810", -"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh": "7e483c1aa764b27f50352ccd372c575947490332500292083b31e73df94cfa44", -"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh_change": "44b732603bcc55e4ec7f044279c85ed3bfc7e96363dd89ab45d217e12fac12c8", -"TT_bitcoin-test_signtx_segwit.py::test_testnet_segwit_big_amount": "67094748ccd6147e38e41b88a3de4704da999e3bd08c05ca333f77e2d7d3b6b8", -"TT_bitcoin-test_signtx_segwit_native.py::test_multisig_mismatch_inputs_single": "63e68914640ba57119146cef4b2bbd73f5db22937574745503aa18398eb27732", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_both": "fd5f9b47992b0f9c5a60178c4f8b572ee685e8ed18fc9127bb24eb7cecdfbf3a", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_1": "3d877372d66e968d5cd797b84017cea3916392bdf3cf9a2b6f5e8bec9da20553", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_2": "82d4087218e7aaef385447e5e3a2156561be1eb85cf49c6fab53dbc13b1b580e", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_3_change": "f0823ceab384ba4836c2c2445e886eab81c3954b302b9a3ed8d23369d539a009", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_4_change": "62c70c0d7d47406d8d866aaed6b2c5ef7b689b00a6489af96af61599ea2e4468", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_native": "c5afb6c67e32f43b73a4a7eebc42ca8c61458fe57ba89bf5ffc088c0f206a788", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_native_change": "074b4124b4d0e7e652227f751a5de2ce7bdf6a640b4d3caccdbf6277d04f77ff", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh": "54e02335dc21ffb026fe1a900fc3804bfd2144eea6bc6d7c3aaaa49b387e34b2", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh_change": "3ffcc2ffc006e39ecbb72c358b913f3b5dd152d8bc17b5ddefeb0412a5c1915c", -"TT_bitcoin-test_signtx_segwit_native.py::test_send_to_taproot": "59dd818e05e0e95b18dc681fdbcbc81d8f4436f9623e2417d7a85301ee74629a", -"TT_bitcoin-test_signtx_taproot.py::test_attack_script_type": "0b4ed17d3cb5e99aca283fb457dc2d56cc524d1d81c4b8de6e087b24776a83cb", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1pam775nxmvam4pfpqlm5q06k0y84e3-a257be51": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plllllllllllllllllllllllllllll-aaa668e3": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plycg5qvjtrp3qjf5f7zl382j9x6nr-5447628e": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1zlycg5qvjtrp3qjf5f7zl382j9x6nr-880d4a6b": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_bitcoin-test_signtx_taproot.py::test_send_mixed": "45fb801a90decc137843cb4c243f785948324437b29c642dcef6187bd80aaa30", -"TT_bitcoin-test_signtx_taproot.py::test_send_p2tr": "ea4910f434be5647cdf822ec0accd772a3395db89216df77c77d60a305e23daa", -"TT_bitcoin-test_signtx_taproot.py::test_send_two_with_change": "2cc375a79a621b132803410882882900c3f0f50fd2871d59ff33509c0dfe06f7", -"TT_bitcoin-test_verifymessage.py::test_message_grs": "f3f03cf2475116fa872386e8955ade6c3f04c62fb74d65a1b51a13a0f1576d92", -"TT_bitcoin-test_verifymessage.py::test_message_long": "8b98152a1cd1b0fa852c0338422cf90807e4f82bd3b54cbf47ad8c352fcefeaf", -"TT_bitcoin-test_verifymessage.py::test_message_testnet": "8e9ce89b716d2963db6c4ff88c0df2d08ab0af56c75706874a3314311f547097", -"TT_bitcoin-test_verifymessage.py::test_message_verify": "bc155aa05923dac4826a36cbd9510bcac2a87d15eac2231577340aa3be412964", -"TT_bitcoin-test_verifymessage.py::test_message_verify_bcash": "69e45a8f3d0f98cecbcbb192248630a4d5b03e49a91d23e9ac80a154f99761b2", -"TT_bitcoin-test_verifymessage.py::test_verify_bitcoind": "91ac683e032e69f0c17f1898eba26f57e8ad15ab542e4c438ded6cb177bdaba1", -"TT_bitcoin-test_verifymessage.py::test_verify_utf": "d5877e7256110a14a3ae906f59825cd3b821ca3ada436326db997a3a7e65e764", -"TT_bitcoin-test_verifymessage_segwit.py::test_message_long": "bbd524ea2b1aed699cb019e2e4063e6397b3dad777fad0159540d3afd6b41994", -"TT_bitcoin-test_verifymessage_segwit.py::test_message_testnet": "aab6f8389d256d373691d74c6ec73b62bf543f219f24a6883760caacfb8641d5", -"TT_bitcoin-test_verifymessage_segwit.py::test_message_verify": "d729d2f1bbad7a05ca34f328a70aa7884aba1ced5ab4d7b62f879121a76ad9b7", -"TT_bitcoin-test_verifymessage_segwit.py::test_verify_utf": "1748212d5e1c91afc5256e2e2381b18fd1833e3bdaec1e44f5180d8fffae50eb", -"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_long": "1e70f210176353accf16bb40295939995d70baa38e3aa1e9b00545bd23c19f07", -"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_testnet": "70ee99e4fc16c2d669ad1ce27e17fec92dabe158b30506eeef1d192c56d6dc6d", -"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_verify": "940ad2deeeb12affff33e12a7cf837a6062263da499ff08b8266976ed74db808", -"TT_bitcoin-test_verifymessage_segwit_native.py::test_verify_utf": "ddbff6727344320cb0e8d1e6f5d2026560f1cdf08e258768514464942fb5d52c", -"TT_bitcoin-test_zcash.py::test_external_presigned": "cdb1416def8474959540b6312d77199ce7cd42ae2a2a44957eaaa977b8f21e23", -"TT_bitcoin-test_zcash.py::test_one_one_fee_sapling": "a0d22af15ba8cc2882e098890e202db7c85a4fbb392b46e6475ae9135850d593", -"TT_bitcoin-test_zcash.py::test_spend_old_versions": "af660776bdad00faf46832ed5afbeafa59bed2e427b7f28bba0e38742b511ef5", -"TT_bitcoin-test_zcash.py::test_v3_not_supported": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_bitcoin-test_zcash.py::test_version_group_id_missing": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-derivation]": "03c8936a3a8f4ed767e89794f19cccc176b43da97d0ac71b5c3b9eafbb7ae4bf", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-trezor-derivation]": "019baac3d411f4985cd72aef45a25cd155e67f3fc5fe52505d3caaa23441f0f7", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[ledger-derivation]": "3baf2435d46d88e95339e93d6b95e96ba90d90a503d386f65af04782cfa312f8", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters0-result0]": "291ee1275e8a1225bd246e4c4918c1eaf14869c39fb32b99d5164a327c29fcf9", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters1-result1]": "55addf5d4c14fea10867dc5a940f659c868dafde2db23c9dc0c2a8fe815efbe2", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters10-result10]": "66896debc4a0d5c7288e1289e433df904b24baf4bb92d1242cf99a77ae2612d3", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters11-result11]": "f13abee02c697ef600f9884f3dd1eb078c31a4719a55c9bfe1ac1ecd2393fcfd", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters12-result12]": "91d0e8dfa5382911865907c7a279a852781254d152cea586c1b329e2522d761a", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters13-result13]": "cfcebc1afc3ad3561be8ba84ee699dc742104e2cf278a266504f3257ac90b9f6", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters14-result14]": "e995775a74c53b8b35c5915500d7ce981b865a86326ab93331c504aec79d578e", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters15-result15]": "75862b6d819d4d3f598e65ad27416896c19462d15e78d3a884d0597175392bf1", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters16-result16]": "55ee893db0f657f79276d737d86e30ad2413d0afe5b45efb909816b7c336ad86", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters17-result17]": "540227b08b0773f6525dd862648f997cf217b3bda36023c5c315a959ac111a1f", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters18-result18]": "adc3c4b8976161001ea9d45807171135e7e257c10da71a718f1b867a8fbf0a6c", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters19-result19]": "cbe3d375845dcfa191d005c4622278d8486e6a0a98ff242c6e43defa9aebf285", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters2-result2]": "4ea5878ffd15b665960b788fdc29e290fc24ac9596823e249090f7c18309d25f", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters20-result20]": "6f530747230c88af3bc35a4b53d88d7c6db8fa6b23108d396f7960c77de42305", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters21-result21]": "486a5fff3e62508de37725a0298f28eb6afc87f5b71be55fd97fbe9f7a9a75a1", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters22-result22]": "1422aa9145a6a47771823a7580e1cbcbb677a8107693602c1b7e80f737cbd2e6", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters23-result23]": "591787d4b5c36a1e75f70294b72e388e9de6f404846efd20237403177cbd5c91", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters24-result24]": "8f5ce1de2dbc846d911a6e24a096605ae18c96cb0397b617aec6ffa694120c12", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters25-result25]": "466903fd1f2e5bd75ca6157d487989d2f5a9509ec7c733be0ff9f16d8ba3e908", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters26-result26]": "4b820a30739e1d40030327c9fd088eea81b76127d788be9fe957a9138b9b3e12", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters27-result27]": "ff1a54e9470d0c0dd69ff6ef3e4d2dc054016323e79549182641aeed13357493", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters28-result28]": "47c5f8e0d5b44fc44619719cd2764f6d600106919e48a686b592f83be0b0b888", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters29-result29]": "549beb4504457330e086ad3796579fb12677ad54bc0712308204bfbce92723eb", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters3-result3]": "d4eddd8d290422ed9c2c9448c78317a53741866b8220c87226e9671f27f7c874", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters30-result30]": "3abd83443ccdc03616cc793e1c4abaa2ee0c9acc372f74610c6dc5e275833015", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters31-result31]": "15cb4c2af35e891ec2694ef80a87a91bc653b21aa41ca329a8f48bcf42c9f2e8", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters32-result32]": "eb58786163fd2451aa6a9288008eb30d798c0fd7ee05f7118e04d277d93fa717", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters33-result33]": "8405d466fff17dc0b3204cb646fbabfd81229d401c1722534addd3ce9a7714b1", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters34-result34]": "aeca6e446de43582e277fc398afadb8df01d0c8cc54149d654704d3461032a62", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters35-result35]": "1e0f0d5d2219ced080f1af4bb662bee287ab6b13782cd45e6c85fb7b8c942197", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters36-result36]": "071ed52b20a47c96d908e1c12bae590ba4f693a84c605f4bb036d956aa76f3ae", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters4-result4]": "41e05bc68f3ef8a34c093b1286a3767b54b580532b079c3d0927f1e87c100819", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters5-result5]": "c35cd5fe5488b1b1a3af71e0329c43b82ff495588ca75bf7c09ab69076769e53", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters6-result6]": "a9f57ba855ac68b13b17c0bedf30f74e6e80bf99cef7856e10534e29dc1fa4e8", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters7-result7]": "c208195de4278ac32a886a8001ccba51a8a9370c34e0e913b17fcd9b0a85f23a", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters8-result8]": "df1d74b408aa6b5f6b149dbde46a77cab9a989d5dd31d9880708271a8e7811a8", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters9-result9]": "c44371db81c249fed80a50d855240b3edd2477609c2b7f7cd58a567e64e24589", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-derivation]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-trezor-derivation]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[ledger-derivation]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters0-result0]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters1-result1]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters10-result10]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters11-result11]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters12-result12]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters13-result13]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters14-result14]": "3fa672dea8dbc49444ba9decf85d59c939159c0fac3b187b95ad4390c2054b5d", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters15-result15]": "3fa672dea8dbc49444ba9decf85d59c939159c0fac3b187b95ad4390c2054b5d", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters16-result16]": "3fa672dea8dbc49444ba9decf85d59c939159c0fac3b187b95ad4390c2054b5d", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters2-result2]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters3-result3]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters4-result4]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters5-result5]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters6-result6]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters7-result7]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters8-result8]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters9-result9]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_cardano-test_derivations.py::test_bad_session": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.ICA-3b0af713": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.ICARUS]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.LEDGER]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_cardano-test_derivations.py::test_ledger_available_always": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script]": "7459a67c7c1665e42d48bb11921fea239fc935cde0090f34b0e40d9abf57f626", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-aae1e6c3": "2e6eee88894e3cd1cac33268af99e29b7a082dc27b844f9c672cc712faa6bd59", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-e4ca0ea5": "0b79522f1f67577b4b83d31c7c88ffa5961584718372ea4d5909e1bc520b11aa", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script]": "340ff4c94d050c72bff512c1d20e376226e4d7ade0fe992fb47ce73ccf07f0fd", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script_with-f2466a2e": "80b0021cc065d33e85574dc35a82337928d2933cf2810f424a32994e6ec0a1a1", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_before_script]": "e736852e0f72c67e56c47c20ec41916050c968adca74ac2dadfe74757b7e0b70", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_hereaft-d01d7292": "1b3a7b4969ce57194a8c6dc51828fc0fb66f60fe65274505503150952fb280e7", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script]": "f1929b9fde0ad358db447bf031dd3f09860795833acdd6053db65abb8486aff2", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script_c-d93f5fb0": "5c3bf2b0df5ad6806cfb29641da030c1679374d03e81d1ea5c2d4cf227640694", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script]": "f6251b64d14b74ba26514f26edf5719007cf1dcd4cba6c0015b7ebc974365052", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script_w-789238e6": "4c87feeef3bd5c587f84c092c366184ecf00ba3daa336ef4ea1b23cb6d52d049", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script]": "66faa4656c82b6a683d4357491cb434ed4dbd577100e7d9c26bf484008ea7966", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script_-1579fe2a": "02185d2dea37bf08bb7151f66cca9f65ed5474fb8a971de4aa60acf25d795da1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[byron_to_shelley_transfer]": "188eef7509c36010c3c58c099c8ec49ac8450c85ba5cadca67b066760bbebd40", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change0]": "91e8ae74066286685cf2de1931ec9638ad6cf14208160a4426323897ab0dce3a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change1]": "becbb35513ced81a828b678af5f226c35beeffe51d61e365eac477f9b896a20c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_multiple_inputs]": "ba292a4c0f897410b66c6feab06448b0cb93cc491a5d4a8b2e9cdd79afb8b0db", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change0]": "ba292a4c0f897410b66c6feab06448b0cb93cc491a5d4a8b2e9cdd79afb8b0db", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change1]": "e3291f23c89f4f251cac9cf8ce9dc17c5d3d7927e356c9ccfe61e89411544ad3", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_different_policies_-1dbb1bfb": "d8288a829fa6b1fa2fb38bec00b7c991e7350c1ef065db7673cec02d0fb2f7d8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_multiasset_output]": "e3446c01eafe79347d60a91cd8129d69ecf33beba76fb59eb4d20409d39f588e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_no_ttl-validity_start]": "c24d7cbaa08619102089765df4096126880de66f08bf4984d04c352be27b51fe", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_a_required_signer]": "a8b34a04eefdbd052e4d0c7386c51ae20ddcb59a550084455c905288e535c7ee", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_most_elements_fille-29691455": "9606076e2aaa0ca77380263182d6f355068edc581071d308dc7b07de2114c986", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_output_datum_hash]": "94bde3c88012e151e471e25f00a762690c6a412211a7f97ad01607e2f4ada7b7", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_script_data_hash]": "3b821d3e8a479834f139b12ff4c76c0b2e58892e8192f23528ea13707d31da75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistratio-1ab28f77": "8ef1846db9a941425ef68e222957c028270e14c36e91fa87d7613fe07428d5c0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistration]": "8ef1846db9a941425ef68e222957c028270e14c36e91fa87d7613fe07428d5c0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-a144c34c": "4a06f9b4dc494dd3caa49d4d492255020e6b28dfdfc626bff8c703c68a3ca7a3", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-bf5f9707": "9ef378e02843fdc36d74792c137223d1cd4ced0dd8fc5e5bf424ca8774858c71", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_token_minting]": "8ff260629e6a9afa3978d9c3be142b76c959558c83cb97d07507aad07c1fd918", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_a_required_signer]": "d6ab48ae6d3bc3c60e2e2b82064299cb83f3d3f8b6978d90df0cfce412cf098b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_both_output_formats]": "05108e05a6aac34edbd2e9595d781aab29930bca75780fc1f267b6add026c588", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_inline_datum,_refer-d1082570": "1a54c189b4e508575938c2df7be3c2f7fbdb375f79d418330a60fe307e1624a8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_long_inline_datum,_-1f681aaa": "294959d91acc665ac26d2e77904143d8c112792058c2c16caf7452a10c83cffd", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_multiple_correctly_-6545455a": "3892d79e5ed0b106ddf4d4bfa4b9afce183342eca6ecc357bc463665d459a209", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_network_id_included-d9df16f9": "ba292a4c0f897410b66c6feab06448b0cb93cc491a5d4a8b2e9cdd79afb8b0db", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash]": "1a54c189b4e508575938c2df7be3c2f7fbdb375f79d418330a60fe307e1624a8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash_a-84ad587a": "294959d91acc665ac26d2e77904143d8c112792058c2c16caf7452a10c83cffd", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_address_but_-b0da7209": "5c7e53108a0dfb5232f172dbc03189711fac589e565f54f8857eac653347a87c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_data_hash]": "d6ab48ae6d3bc3c60e2e2b82064299cb83f3d3f8b6978d90df0cfce412cf098b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_token_minting]": "6c53c343301a886700096a9b6c64e09b942eeb37b124bc114bfa28aefba9f0ea", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_an_ordinary_input]": "94df56fc6243965daa5aea28ec0edc7a615595a900ec1fc0a331dfce904706bd", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a33e6741": "5111124a613ec8f61cd740161f9e45757d2675a64c9d3f94b8c6d44be3b8de3c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a6481374": "e2234afcd060702070f5909ce7595e514f37f9cdc814919dd0782125f0f1f843", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_key_script_addre-d3366a63": "db34db158c0c01ceb88b9d5ea71e6d70e670c60a7a45e722b39d8ed1dc1e7090", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_device-owned_collater-8f38b4d7": "b1e8d3c710989d60762e27bb46c012ab1af79c1d2b0e649bd4233e51f0d57af3", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_external_collateral_return]": "93ea410daa92597a05022069b9d416e1eddd3a6300b3284ba5e57f41333144f1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_output_datum_hash]": "1d2d3de59286bb77f70b5a9313aa7af13a09c5b08ee1d6da1c5ebf74edd9d438", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_reference_input]": "ec8bc89995c24531027b1478564e49cfbffddcab7125558586db7e47da3b6a78", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-6a67c1eb": "dda815b29a0a87e1e08ebe214a80ac29f0c998af6e5cce22ac3f4d0efe7f2d0b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-72ef969e": "ebf52b1e1351dd4ee85113a4e5fe2b42ece0b608c662ad43fe35df5dbe72a6f4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration]": "e2b7926c9b447eddc2ea2d462dc9482a99e328f099b49a5c5b1dfd91e9ee1da2", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration_-78f5c748": "ecabd699aefb7a0e7a2d9f2ca21c147dc2feb6e3fa27e83890df2b65d696ff50", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_an-4da9385a": "692a69e55fc390b28af7e2f3c44b166f23bd0d57fa33c9511e0d64cb260ee932", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_ce-46b0a250": "1edcfa1d5b8ccb45f4be3316dc1c76bc81d1e83582d1b09df66e22f2a090b463", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_token_minting]": "fe075a6f16aa3918f6ed8132712117a3d21d15fa5552f8a3d1c77b70b7a591f4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral]": "c25b1639299856990ff0f7ead00845e78fda6132529fb220512d6b8c1d8832c1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-3f0b305a": "dad53e6e1a3002c87e4a1d2838c7c65ea8c2cdad489529ef0ef0c67a73b61dd1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-c92d773b": "c23fffc50fd75c5d49354fd943b461a8c7e298c9b3f7dd03d9490319c58b7595", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_without_script_data_hash_a-9590827f": "205fb7d871cc822c64b3d3a1c2488517fc5b22ba223c60485877d6fd5a21ac7f", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate]": "4a8cc52d8d68ed9fe70bfb9efd06d2cd34cb59da20d39c8f91d3aaa689740e2c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-336f4a44": "4a8cc52d8d68ed9fe70bfb9efd06d2cd34cb59da20d39c8f91d3aaa689740e2c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-d3427614": "41a37d336ca8a32a9aedf5688f556f28c93d245605638301bd610b93b860cb8a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_with_zero_margin]": "6d67a6125356cf941453f49594d3a6bf94fc7100860030228c2f268113202f39", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction]": "f663d919d32394f1923c2860152ae44693919ab1b24cd8f5118d23abcc30a493", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_additional_wit-36ba8ce8": "f279612e5f20d3c82493af70e3dd6529343944914a635384ddd4d270540ab29b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_required_signers]": "5ce5df4c6eff9cd8bd56fe98ebbbc234175c0b3624e7bd68e7818bcebe9111a6", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-0c37e6dc": "125317b3d0af07185c0d6c0a5930010064dcfe5d44aeffdbc532bf616ff329d6", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-7f1d12f6": "f14cd195550824e0832a80bfc3b2fc63080c80299fb4dc62d97f1a0412d4ce48", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_output]": "d6ab48ae6d3bc3c60e2e2b82064299cb83f3d3f8b6978d90df0cfce412cf098b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_script_address_a-56fc16f7": "1d22a93b050515486d2ebc537542e2cc34e8729008f23d0cbc6168fc8a8d7194", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_enterprise_address_ch-15518a4c": "8baea90e46a5426e758836bc758dab5b307fb487995f44b4c28438e61ed735d1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_pointer_address_change_output]": "0b3c3f8c07a819368327cb2110f14227b241eea85a72e146a4be4bd6f2b2ab48", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_certificate_with_no_p-0bbad967": "0083cad46596fa315ba99947c9c5fcf26cd5c1e92076b6869260aaf9d940c8a8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_on_testnet]": "27ce521b869d3c43526d9d8e61da764925886075905a63a6d97baf797d9c97e5", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction0]": "891b2cdd4b706c9f6201446b37af914345a5caa5607be369fb3c515657f074eb", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction1]": "429aef4e9b1067e7b744976aad5dd531e3ea476c8568add534f144dcd3e52af6", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_auxiliary_data_hash]": "d6ab48ae6d3bc3c60e2e2b82064299cb83f3d3f8b6978d90df0cfce412cf098b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_p-3c7243e1": "a228c85d7e76b3f8a170cb77efc5c8d48f308f2b7daec110ee76e36a599c8c1a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_s-20438873": "552f53255e4ef69e6fa0bc0891c3feb7cae80aafd3cbf1d45ce74490a1fbf46a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip15_governance_registration]": "0fe447a86b16c7e070ae00c9a1d5bad00aeadd76f034bace01bc59ad143124c5", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-35e04232": "a9beeee6c8a584e7bd38b98f3f704ca568e11e716637103508ad1a7d75a5fb64", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-f00c1b65": "ab05e4b9bef26584e5102ce2206eb8b544d62d78ba09ee39598d14d64e7c86e2", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_everything_set_except_pool_r-1e1ef130": "29eb615e09f7b89d17127cedcff5b58b9ecbf9e9357b6f1d1ebc9505157e05a3", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration]": "d4102725558cc9f7791003369115bdac17675126d65f0517e279f607a0f33689", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_and_withdrawal]": "d4102725558cc9f7791003369115bdac17675126d65f0517e279f607a0f33689", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_with_ac-9ca046f0": "917eebecd2b7f21f79c4aae872a770b3ec5598e96fa2c47defdddf0483462986", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_and_stake-3fdfc583": "6741a5390ca91842a69d7571bb8f0a516cfedca6b18d25a45fa077244969d3cd", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certifica-e7bd462a": "0f812acd9d678941af6e13d0b5b12a7e9b638eaa964f1d433494ef64fb142103", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certificate]": "646a1a06d5ec1bc5abcdc4d7762bdcfd2a1d8fb1acdc83d12eb3ccccc74de075", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_ttl_equal_to_0]": "575921a244b521829466a5e4fe204e37c92b81d117b8584579f800be8a81ab09", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_validity_interval_start_equal_to_0]": "22088c8fab812673e2085ff6a408702a84bc2a4416f8effbf230b114839f91f8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_change_output_path_in_ordinary_tr-805f9bd0": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_input_path_in_ordinary_transaction]": "ba292a4c0f897410b66c6feab06448b0cb93cc491a5d4a8b2e9cdd79afb8b0db", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[additional_witness_requests_in_ordinar-9c4f94c0": "ba292a4c0f897410b66c6feab06448b0cb93cc491a5d4a8b2e9cdd79afb8b0db", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[all_tx_inputs_must_be_external_(without_path)]": "e4a3a428b814714cc84fc953b227c2356a7d621af0a43c7514046ac47f8ce36d", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_mint_token_group_in_wrong_order]": "b8ae5cc40176d1f273ffdbdac6aaa37cb688f24b032ca72bc5015fdbb4adeedd", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_multiasset_token_group_-7c1351bc": "7f947fcab81a9f6d565024cac7ac55cec729a8742316a22c226c3b018c49c91a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[auxiliary_data_hash_has_incorrect_length]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[both_datum_hash_and_inline_datum_present]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_input_accoun-863fee7d": "188eef7509c36010c3c58c099c8ec49ac8450c85ba5cadca67b066760bbebd40", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_output_accou-5a99fb35": "c24d7cbaa08619102089765df4096126880de66f08bf4984d04c352be27b51fe", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_key_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_script_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_invalid_pool_size]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_key_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_multisig_path]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_non_staking_path]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_script_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_stake_deregistration-e17db500": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_withdrawal_account_mismatch]": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_path_larger_than_100]": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_staking_path_larger_than_100]": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_with_script_in_payment_part]": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_is_present]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_prev_hash_has_incorre-99d2dc0e": "48286c686ef00f378b3f7db127f3862ccff1733cff9c3741bd77422ffc9090f9", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_is_present]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_datum_hash]": "6e581e785c239b77cffdb5a0e0b3e3c6415e9deb6ceae1cc4bd560feb769d3ce", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_script_address]": "6e581e785c239b77cffdb5a0e0b3e3c6415e9deb6ceae1cc4bd560feb769d3ce", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_a_different_certificate]": "a4b2f4f75a52fb6e97f51d0992bcb0b400088fdb89ab3b857cacbf062ddaaf75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_multiple_pool_registration_ce-3000d4f0": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_withdrawal]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[fee_is_too_high]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[inline_datum_present_in_output_with_le-43c025ef": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_change_output_account_mismatch]": "82b7b1cd3d73b14ca246d39054bfc70e61d2c54247478501194bd1072f0cd967", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_stake_deregistration_certifi-b3383de2": "487b529705e33f41bcedc889937a1a5b8d3465223e40f65d114813816de405a2", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_withdrawal_account_mismatch]": "d6ab48ae6d3bc3c60e2e2b82064299cb83f3d3f8b6978d90df0cfce412cf098b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_prev_hash_has_incorrect_length]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[invalid_pool_id]": "a4b2f4f75a52fb6e97f51d0992bcb0b400088fdb89ab3b857cacbf062ddaaf75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_protocol_magic_with_testnet_network_id]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_transaction_with_testnet_output]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[margin_higher_than_1]": "a4b2f4f75a52fb6e97f51d0992bcb0b400088fdb89ab3b857cacbf062ddaaf75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[missing_owner_with_path]": "f588f84b3e2cde9648c15538842defbb3b594eb9424b8422f625399bce94dfb2", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_1852_multisi-b7679330": "45a2917990e8c9d6d5725fd887846c8132ad29af2da5673a2cfdb4cfb165fadc", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_a_collateral_input]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_collateral_return]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_long_token_m-9fb3cfe5": "1d915d4fc18a83a7825d984f527c05caa58664cc471e526d5e0cd818497fc9a8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_output_conta-e3b36436": "9da234f065875b09ce4f53210adcaf6566dd1e16989aec071a26a962502d09d9", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_reference_input]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_repeated_withdrawal]": "adc7dadbb7bd6039bf3ed1407286600db1efd989c2bf4348fe9ea76b99a017d4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-19d1722c": "f7d35e15f8ca8062f555432ee9db3f5a2db5524c62ad519d9e825184aa690869", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-394991f1": "f7d35e15f8ca8062f555432ee9db3f5a2db5524c62ad519d9e825184aa690869", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-351ce869": "f7d35e15f8ca8062f555432ee9db3f5a2db5524c62ad519d9e825184aa690869", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-43da91d4": "f7d35e15f8ca8062f555432ee9db3f5a2db5524c62ad519d9e825184aa690869", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-456f1292": "f7d35e15f8ca8062f555432ee9db3f5a2db5524c62ad519d9e825184aa690869", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-84b1254e": "f7d35e15f8ca8062f555432ee9db3f5a2db5524c62ad519d9e825184aa690869", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_total_collateral]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-9f7e1700": "adc7dadbb7bd6039bf3ed1407286600db1efd989c2bf4348fe9ea76b99a017d4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-e98b1f5c": "adc7dadbb7bd6039bf3ed1407286600db1efd989c2bf4348fe9ea76b99a017d4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_wthdrawal_ad-3291ee9e": "adc7dadbb7bd6039bf3ed1407286600db1efd989c2bf4348fe9ea76b99a017d4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_without_minting_b-da5ba399": "45a2917990e8c9d6d5725fd887846c8132ad29af2da5673a2cfdb4cfb165fadc", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_long_token_m-350c65f4": "62fbf0e80fcf3254e3733736a42327beca183e7e48e59328a0c45750452aab7f", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_token_mintin-bc56f145": "5b4f0e9e84c5657cc9594a88f436161be5d5c28f61f8c916ef24b86d6cc2bf01", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_without_token_min-a128d577": "5cc3d2b0c837347bf09fd6ff52b6bd68d7f90d6cc946abf43aa7bd5daad3a3e4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_has_invalid_crc]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_a_valid_cbor_but_inv-ea3da215": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_invalid_cbor]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_long]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_short]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_datum_hash_has_incorrect_length]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_has_both_address_and_address_pa-2efc280f": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_total_is_too_high]": "14aba21afd9302e5c27108ad9689ee2340d888f5192d57df47dd91b7cb75d530", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_with_reward_address]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[plutus_transaction_with_output_contain-74465253": "42c9cfa1556939e73edee5beea6278bacfcd016c4a9b456cdd7072b759d7cc58", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_mint_in_wrong_order]": "acefd4c3e9b550e8c2b179d26a7db5cf79f5d92417b5f808d98c8973cf3f4a30", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_multiasset_output_in_wrong_order]": "a8eb906c83f56ee26f2fd22aec6e70ab2dc0ebe8a03142a858db4641042efa78", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_belongs_to_differe-e79b6855": "a4b2f4f75a52fb6e97f51d0992bcb0b400088fdb89ab3b857cacbf062ddaaf75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_is_a_base_address]": "a4b2f4f75a52fb6e97f51d0992bcb0b400088fdb89ab3b857cacbf062ddaaf75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[reference_input_is_present]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_mint_token_group]": "cdf43a009c0011f45044702d6cec205f07caed817af239e88bd90463ca333605", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_multiasset_token_group]": "3d34c84691417e5692076a529ec3348f4840e50034858d5d088ea4ed50d0eb17", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_mint]": "2912590b403669ee62e723e22063941c4cccf8195fce737eedbcd6fa7daa11da", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_multiasset_output]": "5d09d8170a4bc5d8708a9c70f6eeb40a2451555a6f1b71f9e3db6a5a5ab8b88b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[required_signer_with_both_key_path_and-7d9a3c59": "6e581e785c239b77cffdb5a0e0b3e3c6415e9deb6ceae1cc4bd560feb769d3ce", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-02b129f8": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-11c8b442": "4a8cc52d8d68ed9fe70bfb9efd06d2cd34cb59da20d39c8f91d3aaa689740e2c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-2d1899d5": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-3f8170f6": "4a8cc52d8d68ed9fe70bfb9efd06d2cd34cb59da20d39c8f91d3aaa689740e2c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-60961d51": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-790fc948": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-883e81d5": "0ba5ccf7f5fd6d0e6a8c61595865b0e64081ecc9d3a9fc2eac54e5ff0f311e4b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-9ae6620c": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-d0eba163": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e7a533e7": "a4b2f4f75a52fb6e97f51d0992bcb0b400088fdb89ab3b857cacbf062ddaaf75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e908b1a8": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-f9976ae8": "a4b2f4f75a52fb6e97f51d0992bcb0b400088fdb89ab3b857cacbf062ddaaf75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[script_data_hash_has_incorrect_length]": "c0ccfc3b0f1588854c53d158f3f516699ae8507ecccaea2fad8d25fa082a4e05", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_mainnet_transaction_with_testn-af110e3e": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_testnet_transaction_with_mainn-ba78ab8f": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_account_larger_than_100]": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_certificate_and_w-003a1023": "d250e72aa3caab863c5adfd00af8dcd15db1ba3c05df9dbd3dedc5bac12e957e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_protocol_magic_with_mainnet_network_id]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_transaction_with_mainnet_output]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[total_collateral_is_present]": "c0c0351cb3d8514998f544d81f3d6c0e271a4d32d38307b7fad6ded83a0cd53b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_auxiliary_data_b-d83df998": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_voting_public_ke-0ded7777": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_governance_registrati-efb78b43": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[two_owners_with_path]": "424bf0af2e52bc9b5eedd0cf59550237c8ac0012110a3253c399484580bd9119", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[unsupported_address_type]": "3513bbb3ad53ce7c1806045bb5b78d6e739810b54d388f25bd83e23cfdd80d26", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_multisig_transaction_signing_mode]": "f7d35e15f8ca8062f555432ee9db3f5a2db5524c62ad519d9e825184aa690869", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_ordinary_transaction_signing_mode]": "331d31fee1e3955917895afc68b3d107c645f44b4b36e5b3fb1aeea915621a4a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_plutus_transaction_signing_mode]": "7daf71c4f99a93ef63fbb39c047c8c4cdda95f8074f71eb71da7f9c17b2efdd3", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_amount_is_too_large]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_key_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_script_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_key_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_multisig_path]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_non_staking_path]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_script_hash]": "49ad864d40844af09c325a960618aa7dcae5517bb94b066c9c9cd2a411d35827", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[mainnet_transaction_without_change]": "5f4d6bb6ec6df13a47f280dc7d5293e9cd06c49dbb80fcc8074de976bc54e74e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[multisig_transaction_with_a_requ-c2fba589": "3cdbec9976dc43f4179475613bdb16cdd693815e615c630ad8116b0c323e4a75", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_a_requ-9728607e": "3db4b339bd53f6ca87e063ab7f451f83964419d5a8591310287ca8b69535a505", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_long_i-708443f3": "07c8d3798fe8b3186d2e8db4019ad2e79961653bfa19a12d755137d2529c466e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_output-9ba7352d": "051d37fe26c2c6f8c4cdbb1990ebff1c2b49c6514438fd614373a5c2b3191830", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_reference_input]": "954e125f5913d6c51a8d3b0a59874552f94c8d09c02472a27430e69b03389c47", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_total_co-e846c221": "a264d945b72cd2903080f2b8f1ccdf2a625359ec6763d2184e6467cb90a68ad9", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_cip36_governanc-36bf9253": "795ee65dcbf831c9d3ca410c7e91ce865f3f83806743a2717b42dba2d5fc98a7", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_stake_deregistr-6e84da2f": "22cf5659ef4c0bfbd7bc9706ef4e8b827af29e4efec430612c857d0f31ca9e8a", -"TT_eos-test_get_public_key.py::test_eos_get_public_key": "71a68eaf612d15428294290c65ef389e2887025a15280c026241b1ed349d962b", -"TT_eos-test_signtx.py::test_eos_signtx_buyram": "c8a4fe0ab7bff9c3f50896d90fd77656ac3ebaa9428917cc3dd30ebe8d320280", -"TT_eos-test_signtx.py::test_eos_signtx_buyrambytes": "92578e35fed5b308cf92ad2797c99299f8a3203bc3e0fd7beaead878dad63116", -"TT_eos-test_signtx.py::test_eos_signtx_delegate": "f2c46d0eaaca4c21dba9fffd77848311b925dd995a273311edec2288046e4550", -"TT_eos-test_signtx.py::test_eos_signtx_deleteauth": "3ce6ec645cc78f81b8d4c8ed1f0660b600c4087c7e5b471628adb7908cee4e46", -"TT_eos-test_signtx.py::test_eos_signtx_linkauth": "2368aea2fd630895cce3ffd7d1f9888e73ba1d90c8a92fde5ef5e5c215ea6d21", -"TT_eos-test_signtx.py::test_eos_signtx_newaccount": "b3d346c3e62527c6167f637dd02ddf89698c3b61de972ede9eeefc241318851e", -"TT_eos-test_signtx.py::test_eos_signtx_refund": "ed6481cfaf3fb43632f986b9b5ceac2b8734c243651e0d70dda98e483a125f0d", -"TT_eos-test_signtx.py::test_eos_signtx_sellram": "228869c816dd30ae9a84eb7459ef1f2ed48b9dab0752f282f4a95299d18231fa", -"TT_eos-test_signtx.py::test_eos_signtx_setcontract": "55465137d0f59a665f40b301ce0202e7697b05722ad6091052650ed32b79946c", -"TT_eos-test_signtx.py::test_eos_signtx_transfer_token": "9efd1d007ab7402216077310cb9786f2ebd222a60b38254f4543aad4a0915f50", -"TT_eos-test_signtx.py::test_eos_signtx_undelegate": "5cc5c506ca43b2d619a39442f53bc726848da8427cb41e2c1266a887d8cb087c", -"TT_eos-test_signtx.py::test_eos_signtx_unknown": "bac1235b2cdab26f48e7ca8e51ae2df3618989e9786ba8be4db3be322e7c9ad6", -"TT_eos-test_signtx.py::test_eos_signtx_unlinkauth": "89bb3431325fdf9e97ed248dff61e667babf21935b470636bb80a025f5136805", -"TT_eos-test_signtx.py::test_eos_signtx_updateauth": "1e66e42f909d9939f624d97f3f5e0757e2ed4cea30ef96f70fa0f9d3579f97cd", -"TT_eos-test_signtx.py::test_eos_signtx_vote": "fc09f1145c1fad24fff477c2805b29c4710358d79064e5bc1bc496ae0545ca47", -"TT_eos-test_signtx.py::test_eos_signtx_vote_proxy": "2eee4c4465de4fef5452a8e8c0380d03db31bba90dc8fd08050d2ba3433b688f", -"TT_ethereum-test_getaddress.py::test_getaddress[ETC]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getaddress.py::test_getaddress[GoChain]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getaddress.py::test_getaddress[Ledger Live legacy path]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getaddress.py::test_getaddress[Wanchain]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters0-result0]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters1-result1]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters2-result2]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters3-result3]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[Ledger Live legacy path]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters0-result0]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters1-result1]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters2-result2]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[array_of_structs]": "b5ff3ce25b5dcf5e826a536faccaedaa65b45f5752a707205e46e64552ef5b6c", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[bare_minimum]": "46575ba64e75052366c76e4238df1fb9915fed53e6f5f753801fed130ec83986", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[basic_data]": "b7ee55777e5da489fd1639e8dfe88032f7a17b1def4487d65434dede3f4c552b", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[complex_data]": "1689d3d0b3546e8bed33141d3b0a54092c51af97a5c157d28180c3b4e8d993ac", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[full_domain_empty_message]": "2e5c8edd7676a419a730084e093a1e3b8ec5eb91bb849e4eb0415b4c18b1c097", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[injective_testcase]": "c9722fd2710293ada6965f56ccf0757418eaa1dad9dc60090f40d56ffd6748e5", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_non_v4]": "b7ee55777e5da489fd1639e8dfe88032f7a17b1def4487d65434dede3f4c552b", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_v4]": "b7ee55777e5da489fd1639e8dfe88032f7a17b1def4487d65434dede3f4c552b", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[structs_arrays_v4]": "b7ee55777e5da489fd1639e8dfe88032f7a17b1def4487d65434dede3f4c552b", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data_cancel": "16fc5dc55d8e305f35433fd41ee92168911c4599adf6ed9d9fbfc034bd1ab0c3", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data_show_more_button": "9add7ab289e43ac4fc7a4e5834f04062e3dc6b1db0f5541cab0aeb51003d5d91", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters0-result0]": "f9f96491963873d8e81a87ac5ceda8ce4ec34c21d67498ee26f8144062c11f94", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters1-result1]": "8d13d018772a64ee4ed36569b2438c28ed2b88db56d2f32e120ef67bf7c8fbfb", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters2-result2]": "342c1da263e0966121cd24f1c0b4f4c505070a06002c9e7caba944356a14b866", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters3-result3]": "04be0dec2a59b139ee9011ccd19dfb0566c4014890e8fff43815bda4f1023d53", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters4-result4]": "f4f973f6f8da77b73455e1f871abc070c12e111ffa90a1c764309f83fcc91ca1", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters5-result5]": "f28d188a8e2cfe26be4e2d3df442d73d2e3b640d45067548ed5e620310aeb997", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters6-result6]": "ad35d08047be2ba2920d164ec91884960c76b7bb9b455867bc623ea2c00a79a3", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters7-result7]": "02d7c9cdc010d4c0e4aed02a6d1408c7d38ecf8a0fce6080b98922cfe780c8ad", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters0-result0]": "230659914fa3e6641b50446729d1fe0332e3a63151df527e43a35e67b5b38357", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters1-result1]": "ec031250a394d7e57fffd0142c6d3a547f6ff56b611e9799a02d60f81927d46b", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters2-result2]": "67863902b9b1ec9c48ab78dc3e5c46c9d5a3cc47f17f2e7a188ab592d5bd15a6", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters3-result3]": "7a7f55641bdbbce8998e4c88e81148785b03b18724b44e00b25d103035af24e7", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters4-result4]": "5a6740087f3cc1f030d319ac99fbf29facc163463dfe54776a722c4581293223", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters5-result5]": "d752e2f8e18f3cce6bc46ea6412a73b39369eb74c8c82d1271254670326a9de8", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters6-result6]": "cd6d1d2248fafe2c8fae7e725b238a5df919d3bbeab4efd32f4b308d3e557748", -"TT_ethereum-test_sign_verify_message.py::test_verify[parameters7-result7]": "ae8aa280f828b5c5e316137c1241e3ec106679d561602f5405edbdc76b17c3d4", -"TT_ethereum-test_sign_verify_message.py::test_verify_invalid": "230659914fa3e6641b50446729d1fe0332e3a63151df527e43a35e67b5b38357", -"TT_ethereum-test_signtx.py::test_data_streaming": "84d07e5fbd8513fafd9cbffd39feabac5523c8b5ca5ebddfba6e4fa3cc2c6978", -"TT_ethereum-test_signtx.py::test_sanity_checks": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_ethereum-test_signtx.py::test_sanity_checks_eip1559": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_ethereum-test_signtx.py::test_signtx[Auxilium]": "62cbdadd93e898818bcdbe5047a4fd48b153edd065968646be07bd023cf3fff3", -"TT_ethereum-test_signtx.py::test_signtx[ETC]": "291f7da2ea3222fa2a5b853966887b2cec9d2f4f321f063cbb658a93cbfb7f10", -"TT_ethereum-test_signtx.py::test_signtx[Ethereum]": "036524cbf22512cdbb00bb0102fd7cbd57b56f6d97b23385c42e15e6bb653b29", -"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path0]": "1b92abd19818298d8508cd88c9c1b442c0b86e54fa26cd51bde71fe4c6c1f404", -"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path1]": "036524cbf22512cdbb00bb0102fd7cbd57b56f6d97b23385c42e15e6bb653b29", -"TT_ethereum-test_signtx.py::test_signtx[Palm]": "8c2b7f9d6d4016313cd657dfab5f75e5c3366af0df472d111af67a34e9b27e1d", -"TT_ethereum-test_signtx.py::test_signtx[Pirl]": "128004c79c9b280f0f1c96a5e10bb313481ed9db68e47e29523616b25df8596e", -"TT_ethereum-test_signtx.py::test_signtx[Rinkeby]": "0e0263a6caa77120193ecad706591425369cac2db978a931a4abef3b96951415", -"TT_ethereum-test_signtx.py::test_signtx[Ropsten]": "f7ceb13357372af4df9b65e25e6bf4e83c68b1c8b489420375cab5b427eec176", -"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_eth_path]": "995d4b59ef034269543ecf4316e83499814311b982afbfc4e347b238187252d2", -"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_testnet_path]": "995d4b59ef034269543ecf4316e83499814311b982afbfc4e347b238187252d2", -"TT_ethereum-test_signtx.py::test_signtx[data_1]": "33d228fd7c3e4c4b7a003ebbcd5223a4208f2ac18bf78109716f794454d2a4fc", -"TT_ethereum-test_signtx.py::test_signtx[data_2_bigdata]": "245cf8018614ebb858416b18bddc172f4b37b2b4bd1bec6bd7b787073437bdb3", -"TT_ethereum-test_signtx.py::test_signtx[known_erc20_token]": "c9e6d2e96e6a0909eb584a76196931c9f9605dc5c28842f6a0fb506acdc70e2e", -"TT_ethereum-test_signtx.py::test_signtx[max_chain_id]": "995d4b59ef034269543ecf4316e83499814311b982afbfc4e347b238187252d2", -"TT_ethereum-test_signtx.py::test_signtx[max_chain_plus_one]": "995d4b59ef034269543ecf4316e83499814311b982afbfc4e347b238187252d2", -"TT_ethereum-test_signtx.py::test_signtx[max_uint64]": "995d4b59ef034269543ecf4316e83499814311b982afbfc4e347b238187252d2", -"TT_ethereum-test_signtx.py::test_signtx[newcontract]": "030f3257c656698d67e455ce3261c88cf1d1769f0a23dcbcc988a47231a919d6", -"TT_ethereum-test_signtx.py::test_signtx[nodata_1]": "83f884e2309604ecf094cf5c404b973ee4c6c6fa3df042dab847308e33a2fd16", -"TT_ethereum-test_signtx.py::test_signtx[nodata_2_bigvalue]": "90cdc704d203ed70d24406f15a4f6500ad6632963503be71ab3ff8fc7fb11662", -"TT_ethereum-test_signtx.py::test_signtx[unknown_erc20_token]": "a88fa61882d61e9bd341bfffbf4c4b120c6a5fec8d5faf1ca3de80429cf2761d", -"TT_ethereum-test_signtx.py::test_signtx[wanchain]": "89ee5b5392cc688e240bde7c488f71e69398406e6bcf9d1bb2491f246910f5f5", -"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_go_back]": "a27271bb9cd68fc2d12afce5db77698dabfb9eee2df18c5dafedede2380499bf", -"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_scroll_down]": "b69c48a4affe263e3b1c377adf003ded20531309e405a884614a1cde1025b632", -"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_skip]": "e05f2e906c397ef5ea505b632f266c92b5f8223135c896b405fc2ac347a87021", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[Ledger Live legacy path]": "410f6fa86bcd6d7a721d326855c063cd58e009a8bdf5e53e44b5acb61100e786", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_1]": "b90efe5025ec1823a03fac491f766b4e0748faf1be4b770f1940aef41d59c163", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_2_bigdata]": "ca2fb5bd1663158dc04e657378d68ea89fdd4b11e9a39a8d4f08efa02448da82", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[known_erc20]": "6e4e5f11801154a9c9447ca98075001d98414724fa4bdefeb911e60490950241", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[large_chainid]": "7f81fe3e6f8bbc469f9b1149fa9f643ccd39219fdafb3c5b3d48fd1426ccb843", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[nodata]": "410f6fa86bcd6d7a721d326855c063cd58e009a8bdf5e53e44b5acb61100e786", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[unknown_erc20]": "2a2ca76806a213475c60484bc6226fa00092ce866509197c0536e885f1b90781", -"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list": "410f6fa86bcd6d7a721d326855c063cd58e009a8bdf5e53e44b5acb61100e786", -"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list_larger": "410f6fa86bcd6d7a721d326855c063cd58e009a8bdf5e53e44b5acb61100e786", -"TT_misc-test_cosi.py::test_cosi_different_key": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_misc-test_cosi.py::test_cosi_nonce": "2372d85f1ce3bb2c7f097a0f8ecc45fd3f00cdd65c7dfc1bd2167e9e959cd9a7", -"TT_misc-test_cosi.py::test_cosi_pubkey": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_misc-test_cosi.py::test_cosi_sign1": "2372d85f1ce3bb2c7f097a0f8ecc45fd3f00cdd65c7dfc1bd2167e9e959cd9a7", -"TT_misc-test_cosi.py::test_cosi_sign2": "1fb9e6b5c3978cb3ada8a1800366a9bc1175bdcc9f2f08a8db4fee4aa948c943", -"TT_misc-test_cosi.py::test_cosi_sign3": "0d1e4d7191db0526159de80fb902dc94606a50b55755a5942981d903663aeff8", -"TT_misc-test_msg_cipherkeyvalue.py::test_decrypt": "5c863318918ebe23a6fbb62fd157ba13d3dfe4f3bc4ce2cd6d32c82a591a0415", -"TT_misc-test_msg_cipherkeyvalue.py::test_decrypt_badlen": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_misc-test_msg_cipherkeyvalue.py::test_encrypt": "fc890167d119afd47dd53a6c44a200f1a3e424e9b49ba0892148bc278ea0bd39", -"TT_misc-test_msg_cipherkeyvalue.py::test_encrypt_badlen": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_misc-test_msg_getecdhsessionkey.py::test_ecdh": "343459aed3f900c3f725e27a381ed211258b5e71e5783a5d19af931954ab0898", -"TT_misc-test_msg_getentropy.py::test_entropy[128]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[129]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[16]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[17]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[1]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[20]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[21]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[256]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[257]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[32]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[33]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[3]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[4]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[512]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[513]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[5]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[64]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[65]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[8]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_getentropy.py::test_entropy[9]": "b7877a0a47e95d34153dc77dcf8439e08950dcccad342d432256415c3dd2e1f5", -"TT_misc-test_msg_signidentity.py::test_sign": "f2990675546c62e094e4c76ddec87b29666d2d0bfb19acace85f012ccdf404ba", -"TT_monero-test_getaddress.py::test_monero_getaddress": "cc95512fd200aff025cb119fba009168139ee30a193446fa0cb9242c589b4e41", -"TT_monero-test_getwatchkey.py::test_monero_getwatchkey": "2d72d3992906a51d9f111c4bd56f9e2b7448bac2c849430d578dd34bec6b1d01", -"TT_nem-test_getaddress.py::test_nem_getaddress": "d9a663ef261254bca5087e1925fbbfd6dc266af2758d2f656d9a63f1db74d6b4", -"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation": "f8b345ee024212b9a903dca79f34e4d65d4ff91a6c8ff33855cdd7703ca4465b", -"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation_levy": "ba4c6538bb08ddfb3f057896210141f2426e194d3fd510e7cf73b3e0cd413dac", -"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation_properties": "1987f85e21e958e99984d7cbec60a745f7431c99e7d35c95420270f9ed7abcfc", -"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_supply_change": "d4334bdf8194e5d076711ecca92b6b360ec623ee269e244ccf46341b66493b10", -"TT_nem-test_signtx_multisig.py::test_nem_signtx_aggregate_modification": "a70ad89726dd67b5072812b38f66fb0f065715954ec72ad26868b7227a4246d7", -"TT_nem-test_signtx_multisig.py::test_nem_signtx_multisig": "263c4b095d6f61f0492e58a6f0d16e6833576941411513633646c9383771210f", -"TT_nem-test_signtx_multisig.py::test_nem_signtx_multisig_signer": "f7ad1a873dcb436fa2b82d398dacbfd6efdb7652f61cde1cad357fd5724b94e9", -"TT_nem-test_signtx_others.py::test_nem_signtx_importance_transfer": "f001c1da1e1426f65cf7a63004ea9b522d3a7e905ea5617b0823f0450180020b", -"TT_nem-test_signtx_others.py::test_nem_signtx_provision_namespace": "4c02bb7ba8a4d58accc497ae71b42c8cf5fae3c9f4747b4bfcb11e5dcafc5278", -"TT_nem-test_signtx_transfers.py::test_nem_signtx_encrypted_payload": "012854969d31c7035aa387f87ed521157f7b3d46cd2596fa11ddac27a937a682", -"TT_nem-test_signtx_transfers.py::test_nem_signtx_known_mosaic": "68a46b8f5cbd51ac03b4c7edefee7353247725b1272462d65c15a558cca98d04", -"TT_nem-test_signtx_transfers.py::test_nem_signtx_known_mosaic_with_levy": "052b8f8af2fe0cb0d7e9337d39d09f18f419e97b384f77369613dc593f38fcb3", -"TT_nem-test_signtx_transfers.py::test_nem_signtx_multiple_mosaics": "a91114953c63e2277f2affa5fc7cec6871cb52fb13166bc3a2ef504524f90301", -"TT_nem-test_signtx_transfers.py::test_nem_signtx_simple": "6bd27935fe5f4125a0686d74e4ffbc801c2cb2c9925fca754ef9b46ef1e15306", -"TT_nem-test_signtx_transfers.py::test_nem_signtx_unknown_mosaic": "8bdabcabce0fee2babd6695fa68695ecebfbe97c66f93e82a648c3b1142f4394", -"TT_nem-test_signtx_transfers.py::test_nem_signtx_xem_as_mosaic": "513dcc269a7b0541a6360c151ded238ae0e1f167c9656ed598b0bdf525a9e338", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[label-test]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[language-test]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[passphrase_protection-True]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[pin_protection-True]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[u2f_counter-1]": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_dry_run": "6e10521101355699b4445103106d346886127c91a1beb78d4d126433d99ed9d9", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_invalid_seed_core": "66a86b9df1049d72a69628bb00450e95376d1ec90bca136bc0b960302b561024", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_seed_mismatch": "c3f295e3cbbadfa3cac2532588040e661edcbc63e1e0927140b6e70bc65c4a96", -"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_uninitialized": "ab6fabda008f503c52c6ecde6b1c1b67505b9153c86320409b2d1275b3c3edad", -"TT_reset_recovery-test_recovery_bip39_t2.py::test_already_initialized": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_nopin_nopassphrase": "d5de7d1fa081fc4535776323b05039e3dfc156053a056d27b00359767e234035", -"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_pin_passphrase": "4ff4ffc54ff307c4c288a1915b07cfa7c9f34912adbe6ad1f607152242ce0d93", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "91f3a3f45c456d98205078f22c974670bd718acb74963df1bcb35f8f82c8fb77", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_extra_share_entered": "9a6acb00eac723cd981c5e33657d6211e4d56e7f8185bce7f996da25526eeb62", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_group_threshold_reached": "bdebd769a57e2c8ffe1ddb9fbc71da7c43e2d4b9835c1aa18e6a7a87661605e5", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "aa40dd16acd79b78bebe4e4928ed2a64fc3432547b20935ed4f1f3cd1c09f540", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "e47f6a40dd8841bae9bdad991f785aa109175de1e342b8b14da9d8d0ac658912", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "ea0a2d8f5d7f236e8f045262309931a9198eb72325b2cfbf411250a309e7d36b", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "23e4a1b06c3456076bde987fd22637ba621626e6eadfb0cd03bbc5492b15c816", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "50c1531a5fa7ff2d40eae06191dcec095ba079e98bb336e86dc35c19b1ee7d04", -"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "abf0422db16e4cbab973879dbe0335c228b8e8920504aab67f8e359e67956d87", -"TT_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_dryrun": "cc1bcdedd33f5700dff50165715684fe2819138c965058b94a92e62067b7f91f", -"TT_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_invalid_seed_dryrun": "73391e30d2717ce15275232749e9d43e62e367d381a8c10a8d4ad67adb6fd5ca", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_1of1": "46c1868bc5db177244e7a190790cfdb62aa1e522b65958537f5348c477d9d78a", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_abort": "91f3a3f45c456d98205078f22c974670bd718acb74963df1bcb35f8f82c8fb77", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_ask_word_number": "f921938279217e073114ee4aceece0afe3615d44e6259ece3bd38156121887e9", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "e007e53c5b870c41852e2ccf11b24cf0708eed7c48544581050433349c7c393e", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_recover_with_pin_passphrase": "9fccb12dbb60e7e039128d3d3d530c4fcccdd1ea86e102a5d9600fcdc5fdab81", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_same_share": "52406b191621e07e6cf828aa28281c359ffe0dccd2b4d0492668a434a422109b", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares0-491b795b80fc21ccdf466c0fbc98c8fc]": "73674c2ac57b30ec7b3d42ea0b27ce17daae4db5ca126c4df6c52d73b2cf2ff4", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares1-b770e0da1363247652de97a39-a50896b7": "21dd84204fe5762ad8964907cca24b8b70b220ccaa35911f80b3100204300e61", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[0]": "c6b02494d5d2cbb2a4852c1749e245dfaa798c469040f252a64a2d677bb3ab55", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[1]": "fd7a8e4475f76cc8dd636cf7f4ced7e0f42e0590db634032f364b74a41d902cf", -"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[2]": "b7d0a0d1fddbbd28dd4710b9b1da77c9a40348d8045720acf7a1334ac3d5bc21", -"TT_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_dryrun": "ad17c81dee4a46099474b2616c7634c5dbfe196a619ce6856219554c745872d2", -"TT_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_invalid_seed_dryrun": "412d39fe7667192e3c09de9699005f319fee92f721827d97eb7c923d6e5faa38", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "17144ac4c74c70347e11a332784ab1cb9625a71f3a58a6fe08fa6a732d37ea5e", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced-bac-f67baa1c": "e695e6b1b60c73002f8fe0d771a1e78d1accc4f18ce8a07c6715b51fded4887d", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic-backup-6348e7fe": "9a45c958e500dbba6bd4052eb7bd21eb31bd3904e7939639fb43384ca14a61bd", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "3c79c671d3033a869603fa9baaac960f13c529364fd09d33ccdd73bfb9817d09", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced-backup-dcbda5cf": "6a87d316750e219d6ec3015c5a3832e9d136bdce1d1dda44ee3e2752b3892881", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic-backup_fl-1577de4d": "8681dea534a0a01ea71f62dd1ed4e7b3ef1e1c39e1aa56f381761535ec483893", -"TT_reset_recovery-test_reset_bip39_t2.py::test_already_initialized": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "fcfb54c64a54251cff7d30e02c66284b84f3e3a27731526ee2169d8f9b759826", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "f8458a1a75f217fcb219ef9d1981ab86b88ce046d53775e7ff7d6d68b4633d4f", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "b1a0c0b9f2307caae5613c3c85e4a78a4af6e29bfa90640cb3402067a99c1262", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "f220bb077197a8009d7e3f3ee7681be7571bca51d6a14b9dbe2f1b53268bbca1", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "7963ac0669aef280db3a1d9b7a1bf4ef123adcd402bd590c0bd0ecadd1e2c785", -"TT_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "0c457a3e2c76a0a190ef3b903bdfefc3a9f48cf3ebf4258b7ca9080bad84caad", -"TT_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "a45fe5fca3c3d845d030849dcb80e8076202dc858f4fd59836ce10a404558f4f", -"TT_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "a6c1e224c8c78b5e6731c23eb96f7da794816edcca23abf642a0ff9ac11b0b89", -"TT_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "d0a4bd21378c8d621c56dda8f4d3a031fe1637691eb653ba6672037cbf0e0081", -"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "6fa57d7d63145b600cebe731c0ce9592c84fc6e93164e01b72f47835f75929d3", -"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "3ed6c7bde17890412af0f479c45d4bb5709d965b877fbc4d98354422731e8de9", -"TT_ripple-test_get_address.py::test_ripple_get_address": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_ripple-test_get_address.py::test_ripple_get_address_other": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_ripple-test_sign_tx.py::test_ripple_sign_invalid_fee": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_ripple-test_sign_tx.py::test_ripple_sign_simple_tx": "87afbc4be08355d9789845185473e35051e0b2412c5d309333539e2856abd284", -"TT_stellar-test_stellar.py::test_get_address[parameters0-result0]": "7db57dcd31847d03d434fd57ba80b683b439f8c5e434c1a3c2e44774e8ad13e7", -"TT_stellar-test_stellar.py::test_get_address[parameters1-result1]": "167dab33bf3420b438415a83bc18e7f2e2e75c05af1bc9d2a0a00eccf740c8a0", -"TT_stellar-test_stellar.py::test_get_address[parameters2-result2]": "711a9e33bf07d78bf5b57413916f765dc61eb53f1d2ea697026da5e20d5608e7", -"TT_stellar-test_stellar.py::test_get_address[parameters3-result3]": "433ec2a61fe848aeb5143b5a2246819de663b51f2b7a1643d684c20dccc9cb26", -"TT_stellar-test_stellar.py::test_get_address[parameters4-result4]": "47d761d618639c4fa2911fdcc6a3a68f201f56934019d75441798f0c0cdb1b7f", -"TT_stellar-test_stellar.py::test_get_address[parameters5-result5]": "2909e108245537fc0e337545aab4d176b3f66138cdc9005dcf5208361146f36e", -"TT_stellar-test_stellar.py::test_get_address[parameters6-result6]": "c7417cab26bc262e3a4885d58b5581991194b09cdbc6d6676aca824288b8cf6a", -"TT_stellar-test_stellar.py::test_get_address[parameters7-result7]": "684475755e36a64a0ca3215a202a4d4187bd40880dfb3f1b73941c68a0ee4ca1", -"TT_stellar-test_stellar.py::test_get_address[parameters8-result8]": "beeef24b03ecd66df98d6f5424d6b7e50005890126b368b7464a341a0fe07a76", -"TT_stellar-test_stellar.py::test_get_address[parameters9-result9]": "c5355d1814641c540d787845b87090a532fc32a4dc77da9c48f9eaec8c0135aa", -"TT_stellar-test_stellar.py::test_sign_tx[StellarAccountMergeOp]": "3cd45fecaf27afc46121f4c936e792f4a8b97a30d6f8f555b8a71b99406e19e4", -"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-allow]": "8efbf03810bd00b5da8ba489358fdf95ba1d61cf7d71b2670963f008b77cbba9", -"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-revoke]": "f397249d723f814cc58270d6b8067af697fef4023d5099484bee516a5955aa0b", -"TT_stellar-test_stellar.py::test_sign_tx[StellarBumpSequenceOp]": "c765877210a739a00585632051d738ab4c5a89fbb3cb87c48637ff7a9195c290", -"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-add]": "c4284305c1d171c1b68e5418590151fd5308f12c1df6126d51354f36fc369ca4", -"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-delete]": "ada8e0c3ca574efc1d26561bd44ebb9fa04bcb4e09b5afd6a3e64373dbd8afc2", -"TT_stellar-test_stellar.py::test_sign_tx[StellarCreateAccountOp]": "60475d742bf4bf800480b1b9c643a22ff23ce6f24f50112375182c4eada839c4", -"TT_stellar-test_stellar.py::test_sign_tx[StellarCreatePassiveSellOfferOp]": "a9083f9b94a0cac068de7884dc1381f7bace181dfdf5fde1c990aa64aa8d8114", -"TT_stellar-test_stellar.py::test_sign_tx[StellarManageBuyOfferOp]": "5e0f61d496d45a711c2593c8af87bd4cc281f28720d52c9f732f4fa194fe47cd", -"TT_stellar-test_stellar.py::test_sign_tx[StellarManageDataOp]": "407a77c750608a571846e2be4cc33579c4566ee55e4c7aad938522f8102fc383", -"TT_stellar-test_stellar.py::test_sign_tx[StellarManageSellOfferOp]": "bcb07496715c6dc2eaabe6c89b6d325cc72ba068fc360af084cd8899f5e79b11", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictReceiveOp]": "81678a60bf73cc390d02d98abe0d6838f6f6eee1fd4146c3c6586b60316ee60d", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictSendOp]": "527750337a57945c8464f8658e1e9f68757b83f54a377ad32e9094c206f286d3", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset12]": "2669b6a3716abfcb1f13abc33f2837929ce5188ddfc316c59423fa4e6ae4df44", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset4]": "135dbb736161327d2dbfcc38a27b314d827fb949a0a32fbdc986f1e61420b248", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-native_asset]": "916a5bb80a9ac8fd13ce008567993e4c1b7e7560c1799ae60108f85ea2ff558b", -"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-all]": "a31bb5a34d4627558fd6e66b23290cc2f3fabb4023e2e058be58b918d3d9155c", -"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-one]": "ef1b3b4c429528b3a4f86186e835f115a1c2d31408a149d9f537588078ecec80", -"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-some]": "0030c2bf49ccb9ec21b96db3cdc1bb1c818c21859228d858f5e15f3241d71c63", -"TT_stellar-test_stellar.py::test_sign_tx[memo_hash]": "c92199841091e9945abe63f714eaf44d35c61ce04654d40a193a61354fb2737d", -"TT_stellar-test_stellar.py::test_sign_tx[memo_id]": "c85e45836e79a190f952f46abd946846279d1c32345086d1e7131b37e9b9da91", -"TT_stellar-test_stellar.py::test_sign_tx[memo_return]": "3e4cbb0f4df082bb4cde0faef3b9614b1781430a189a87be502917be29e2ee36", -"TT_stellar-test_stellar.py::test_sign_tx[memo_text]": "1adaa872e903c0a2c56cfb414ed57f8413192bd56838c601bb6a3539b9317ee3", -"TT_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "5a87a72119e6c563008ef7bab80238e5d5ac0dc14283f781cf7e5897b73d7d8b", -"TT_stellar-test_stellar.py::test_sign_tx[source_account]": "7b4047dd73a801b8fb1e53a7ed019a2a3836f770d7e3d7e9fb88f9dc944e1610", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "f52661b0886683ffd1b83f2ce84c9e389f91fb8c5b58c175e1eecd7fbb7f7f3d", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "06b68119e076c8ac563035d8420959d79a7f1a23d6ee44ba3ecb48b5c85d2801", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "74a20d5e822adcb9e6432cfcfa8b42fa928cb1090a4df0ac6c70eddefa4d19e9", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "916a5bb80a9ac8fd13ce008567993e4c1b7e7560c1799ae60108f85ea2ff558b", -"TT_test_autolock.py::test_apply_auto_lock_delay": "98ab3abf74d32ab6287688a73a9cb4e3cfc524e93476a250b33b11f12a60d3ee", -"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[4194304]": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[536871]": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[9]": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "ce7c4b08701d8ac53ae1b98ddc146c3d6c0ff9534866314eb6e2b524036ceaaa", -"TT_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "5f0aacf697937b3e0250ebd14016c005b6be018012effb24a39768c00f06841d", -"TT_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "c1734aa1e7899921f5280c25b2a91ab38d33eec54dfdc4090429eed380f4d3e5", -"TT_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "901d3571a733a73144a18793714b242f2f3e522ed0cb9b9a6adc4378500b630e", -"TT_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "d5ddd2daaecc4a30636f71f41ab864e4894c31c76a8b162ec8dcdcdc5c1bd780", -"TT_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "582eee483fc2940348f374c24537bbb92cf7241f41080deabe26bf5ee87344e8", -"TT_test_autolock.py::test_autolock_cancels_ui": "6c19d567a5b36054408276dc750be2df57af778efd423818770b6139e2e1d039", -"TT_test_autolock.py::test_autolock_default_value": "3c4bc5901f416bc5ac429a053469d085c4d0f4cc9bba3cbc5400c6c43757bf2f", -"TT_test_basic.py::test_device_id_different": "a0f54c622a33e4aabd3752b539838ed6d40ca16c9f0402aab581a3690ec3df21", -"TT_test_basic.py::test_device_id_same": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_basic.py::test_features": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_basic.py::test_ping": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_busy_state.py::test_busy_expiry": "b0f19c66469df6ee9cc0cda06692f22d34c6e448cfc0d713276bcebdd83081a6", -"TT_test_busy_state.py::test_busy_state": "b67ebd3c9a00e1f662c935c41e21fe062f6751fe92044011a38a0ea1c02452d2", -"TT_test_cancel.py::test_cancel_message_via_cancel[message0]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_test_cancel.py::test_cancel_message_via_cancel[message1]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_test_cancel.py::test_cancel_message_via_initialize[message0]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_test_cancel.py::test_cancel_message_via_initialize[message1]": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_test_cancel.py::test_cancel_on_paginated": "c3d3b1e4276e90ecf3623d4784bdfb50815350e00acafe91be78d252085fc3e3", -"TT_test_debuglink.py::test_softlock_instability": "f013edab1f359827ac6ad41064044712d40dd51cfef0e74705424c4c95e26998", -"TT_test_firmware_hash.py::test_firmware_hash_emu": "a95bc9de1b7bb06d63e6e698c172a4ed62e188a1104261bcb9bdaef9be8dec0e", -"TT_test_firmware_hash.py::test_firmware_hash_hw": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_msg_applysettings.py::test_apply_homescreen_toif": "47b83fe431c784b436c86956c6a1d75d4db386d7a4ca4096ebf6b6ff3986ac68", -"TT_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIf\\x80\\x00\\x80\\x00~\\x00\\x00\\x0-ba464b0c": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIf\\x90\\x00\\x90\\x00~XXXf\\x90\\x0-cb3c88da": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_msg_applysettings.py::test_apply_homescreen_toif_fail[TOIg\\x90\\x00\\x90\\x00~\\x00\\x00\\x0-09cb7d43": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_msg_applysettings.py::test_apply_settings": "b71b06ffb246563b829fb0bc246abe35d7ee53a5dc84729fa81807e643b3b49d", -"TT_test_msg_applysettings.py::test_apply_settings_passphrase": "6124b39207ead157928608fc4972b0d41c20e3abcf164a9bfaaf8c1c045e5d4f", -"TT_test_msg_applysettings.py::test_apply_settings_passphrase_on_device": "0a0522808aff371748bbe5c514166308235c0cfb828f1ef88bd2948145fb7d1a", -"TT_test_msg_applysettings.py::test_apply_settings_rotation": "01e6e29d95949b3306d8e6f388b5c19ae3cc095d0fc99e42eb28489435f7f234", -"TT_test_msg_applysettings.py::test_experimental_features": "ba08746a762d7a1c425d22e1566a162a22c76f02eed92a88693211a0bfd077f1", -"TT_test_msg_applysettings.py::test_label_too_long": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_msg_applysettings.py::test_safety_checks": "77dab4bbd71ffb5b889cce139be3e3cb4896e5227a17d2445f0ce7749245841f", -"TT_test_msg_backup_device.py::test_backup_bip39": "bddd3764dd0936871a09e4ca4ea142187f7b15fb6a8767f6624c917eaddbcd8f", -"TT_test_msg_backup_device.py::test_backup_slip39_advanced[click_info]": "f8938b532114ade839504182a01f0aed52e449b31a4c34428ed4db1479ecc3b4", -"TT_test_msg_backup_device.py::test_backup_slip39_advanced[no_click_info]": "77c8d0a74930f9baa8b0bbb040ede2553f25491a65674b04721c987fbfe1a354", -"TT_test_msg_backup_device.py::test_backup_slip39_basic[click_info]": "1ec9ec7aaac6d1e41de03ad080cf89463315b5207d4f70e4f0b0d79d4393074d", -"TT_test_msg_backup_device.py::test_backup_slip39_basic[no_click_info]": "b506b1d6c6ede5a0e47eb3de59dd1315956f05b45b5ed1fe42869ba0c4f6dfde", -"TT_test_msg_backup_device.py::test_interrupt_backup_fails": "47d468bf0e3baaffb457f56b4ea7aaed4356ade7343cac77ecaac5aeed635185", -"TT_test_msg_backup_device.py::test_no_backup_fails": "8d9a56256a6f45c58a3599580ae5c794b3ae4df7f9a9a716b84e584b54f5f83e", -"TT_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "ab6fabda008f503c52c6ecde6b1c1b67505b9153c86320409b2d1275b3c3edad", -"TT_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "112c9320dc8c9176a361ba6f75898db94009eeab9d6886399a6f8a36c059dbc2", -"TT_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "63664da599b20011a1d8350bffbc0f7c6b00e31021b050b4f7471746b9ec7475", -"TT_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "fd9742681596078c36d9c900cc146b1bc8e9dea20339f3b62f54374c78a3ba3e", -"TT_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "fae7f7a7264dfe78e481d2c4fb5d8f3424213a8a467ee868d73a626c2f001304", -"TT_test_msg_changepin_t2.py::test_change_failed": "26a276353c6a131b7a5c841542b8a438b8cf4576e5576012fb8a2f03fcf16298", -"TT_test_msg_changepin_t2.py::test_change_invalid_current": "5bee6bd2434e8aa8ff00f91f0465e287b2a744f04985254c02b26d222ca69d15", -"TT_test_msg_changepin_t2.py::test_change_pin": "52b8a72b684558aedbeb9ea7d5e5e75fc14597499e789eb4bd7d541bd042beba", -"TT_test_msg_changepin_t2.py::test_remove_pin": "ed7c497fec840a33a92845661f594855ede3808d46b576f912968d1883905877", -"TT_test_msg_changepin_t2.py::test_set_failed": "8804b4cdf72f2e8333cedf2b3e863fdbee24c7b0b7116c9adc27378e4b1c3464", -"TT_test_msg_changepin_t2.py::test_set_pin": "7196f9822c322ea5a7836eeb6b36f52d6d8517ede89d1e4792ea112344715e01", -"TT_test_msg_loaddevice.py::test_load_device_1": "aa580b991d4859ab2e84b7519338de465dc191ee339dffd7b2183717ede9847e", -"TT_test_msg_loaddevice.py::test_load_device_2": "9f34c29197a277e137cb6ec2a86802690dee41c7a0603d84bf6fa082d1d6ec0a", -"TT_test_msg_loaddevice.py::test_load_device_slip39_advanced": "aa580b991d4859ab2e84b7519338de465dc191ee339dffd7b2183717ede9847e", -"TT_test_msg_loaddevice.py::test_load_device_slip39_basic": "aa580b991d4859ab2e84b7519338de465dc191ee339dffd7b2183717ede9847e", -"TT_test_msg_loaddevice.py::test_load_device_utf": "4bf654ff4862f1af58e2cf135870b73f3967e8d93d48075eadb0138d660af2cf", -"TT_test_msg_ping.py::test_ping": "18ca96c69a909260d4a7484c97172e4cc7fa1befe6aca10d54b8d60968de98a1", -"TT_test_msg_sd_protect.py::test_enable_disable": "42728707dce487094a25b581f0089d97ff8a1f1327c141e5641fadd5b92a74d3", -"TT_test_msg_sd_protect.py::test_refresh": "a31d9cfe72f658eb6f81ae6663e766f8f8732a6161cd5bc6faa9b2c2ee5c9103", -"TT_test_msg_sd_protect.py::test_wipe": "b6f24505450cb8e728dc9d7999c93e579dd464028faa33c5a3a9751c32c5d1dd", -"TT_test_msg_wipedevice.py::test_autolock_not_retained": "606310e7e06f78213dcb3bec7650bba6941bf0ececbaf92c39edbf95fbdb42de", -"TT_test_msg_wipedevice.py::test_wipe_device": "a0f54c622a33e4aabd3752b539838ed6d40ca16c9f0402aab581a3690ec3df21", -"TT_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "0ff63f9db0fd7fea7788f2a3b3fe24bd313080d2e2b51a7eb64f6ec53cbb25cd", -"TT_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "0ff63f9db0fd7fea7788f2a3b3fe24bd313080d2e2b51a7eb64f6ec53cbb25cd", -"TT_test_passphrase_slip39_basic.py::test_2of5_passphrase": "3fa672dea8dbc49444ba9decf85d59c939159c0fac3b187b95ad4390c2054b5d", -"TT_test_passphrase_slip39_basic.py::test_3of6_passphrase": "3fa672dea8dbc49444ba9decf85d59c939159c0fac3b187b95ad4390c2054b5d", -"TT_test_pin.py::test_correct_pin": "917d42fd81e183eefedb33e7c35ee39a7cfe5664dfc172cb64302c8a7a2bedfd", -"TT_test_pin.py::test_exponential_backoff_t2": "d1e64b612218d56e5b6d2367b3861caca88536b56510e3008838402d997df1f1", -"TT_test_pin.py::test_incorrect_pin_t2": "f7518258f2c344043c7e34ec3d942d6376b5786216bd29e77ace063cc16cfd66", -"TT_test_pin.py::test_no_protection": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_protection_levels.py::test_apply_settings": "a76f90db9f514d6615b4c46409d3c43bc0c39b632d465ec37e11a5da35e9910b", -"TT_test_protection_levels.py::test_change_pin_t2": "97e51fae7e0bc42de8faafd00ecccc75d081e091012072a0d9cdd0182d8dff43", -"TT_test_protection_levels.py::test_get_address": "07b42309dd05c92fb44e74b2a916316b3d21d253503e19780ed21a4b608c657d", -"TT_test_protection_levels.py::test_get_entropy": "e404845c835f332df06e03b1d848771d2852356ce41ee6eab0827a0d8b8ab912", -"TT_test_protection_levels.py::test_get_public_key": "07b42309dd05c92fb44e74b2a916316b3d21d253503e19780ed21a4b608c657d", -"TT_test_protection_levels.py::test_initialize": "5cfeb79570005dcde1639f029954f6f540d1b9c963622cf2d7b6b887bd05f15e", -"TT_test_protection_levels.py::test_passphrase_cached": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_test_protection_levels.py::test_passphrase_reporting[False]": "d2e6af8e1884d87b4a48aacee92ccce1e01f7f6c7e01f8a3d897f0dba58db79b", -"TT_test_protection_levels.py::test_passphrase_reporting[True]": "5e1baa7733496b38a9f2433a8dfc062015094665887124bbf1debf545664be0f", -"TT_test_protection_levels.py::test_ping": "18ca96c69a909260d4a7484c97172e4cc7fa1befe6aca10d54b8d60968de98a1", -"TT_test_protection_levels.py::test_sign_message": "803d31508632ccedb0181446073e08d067ad17beb52527ca828fc5c954f4bc76", -"TT_test_protection_levels.py::test_signtx": "6ce3cc74f8679f5bc3738be9459f3ebc90e45242d8a44cdd37c193448c4718dc", -"TT_test_protection_levels.py::test_unlocked": "b2c90c2cdffe1f056603f8bccd9b50600eb03b29f872ffbcf900c123236c81a2", -"TT_test_protection_levels.py::test_verify_message_t2": "1c8ae7b97dfae9242d5c3cfdef531f278f50190c2a1b5ac3b6ab2bcbc7413967", -"TT_test_protection_levels.py::test_wipe_device": "fb5c6f84c198b2ac405c03005e5dc2de13092c85c36433af5cde2dc8c5a50f2d", -"TT_test_sdcard.py::test_sd_format": "a9ff5054ca7b1db85bf082e194794d9999527de809d77aacb49da99b8edd9c19", -"TT_test_sdcard.py::test_sd_no_format": "fd63178ef232fba05690e41ea9f99a1bc5ead8911c1217e78c5908a662d9636b", -"TT_test_sdcard.py::test_sd_protect_unlock": "44c56d087139dcc15617c15f71cce18ca66e5671c7729f9090c12f807fb6549c", -"TT_test_session.py::test_cannot_resume_ended_session": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_session.py::test_clear_session": "2c16b2eb8ba4ab314456b3548aa104b3498ce1443cb4a1b217ee6c5efa7f450e", -"TT_test_session.py::test_derive_cardano_empty_session": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_session.py::test_derive_cardano_running_session": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_session.py::test_end_session": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_session.py::test_end_session_only_current": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_session.py::test_session_recycling": "3fa672dea8dbc49444ba9decf85d59c939159c0fac3b187b95ad4390c2054b5d", -"TT_test_session_id_and_passphrase.py::test_cardano_passphrase": "645883ad7913d430a2f52c09fc57cc20d3a5a938430b3bd4677a6a87d92b3f22", -"TT_test_session_id_and_passphrase.py::test_max_sessions_with_passphrases": "9eab999cd09826f92aa09b91e2ffa206035e7f1912e7e5f7cc30a38a773f44b9", -"TT_test_session_id_and_passphrase.py::test_multiple_passphrases": "38b3351aad25dcfc77d064a539a44eaa07c3e6c4ff81d2654c4130ecd1f31f5d", -"TT_test_session_id_and_passphrase.py::test_multiple_sessions": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_test_session_id_and_passphrase.py::test_passphrase_ack_mismatch": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_test_session_id_and_passphrase.py::test_passphrase_always_on_device": "6438ec01554bd8b3f44a868fe21d3d70a3b7c3b9876b7519cbb74c2efd823ea4", -"TT_test_session_id_and_passphrase.py::test_passphrase_length": "2eb25999516c9cafa4d19448533dc6ee2ed769ff3463ee4a828e14297605f1be", -"TT_test_session_id_and_passphrase.py::test_passphrase_missing": "d08c7576b47d42aa5e783813905f0ce837f2b26bf1f99dd34f9e369229955643", -"TT_test_session_id_and_passphrase.py::test_passphrase_on_device": "693b1e2f24a9714c14ef07aae4dc5c3f4886252ad7fd3407368f48503df20ac2", -"TT_test_session_id_and_passphrase.py::test_session_enable_passphrase": "d914c86883a5401163f3683aaa7cb7234961a17f736b3bcd43a2b87b68a264a5", -"TT_test_session_id_and_passphrase.py::test_session_with_passphrase": "abf67a53e3f051777f855d5b5b3ff51f36078e63bcb8a3ac9924f5846adc040d", -"TT_tezos-test_getaddress.py::test_tezos_get_address": "cbf74dc74ca2a05f49080a282828d9021a1bc22bb0d950f38834a13c77528ccc", -"TT_tezos-test_getpublickey.py::test_tezos_get_public_key": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f", -"TT_tezos-test_sign_tx.py::test_tezos_kt_remove_delegation": "f090850372484bf610f3f3b2c45155d208f5f00f8883e76dd18f06ff4246bc3c", -"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_delegation": "6e1d0ef66b75545e10bc6191b5e7ac50340a2cdd6b26e8fffcd786afd60b9312", -"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_multiple_proposals": "b0fd4ad5337ae1134f08c0e9011b5add0738a5e41fdd9fa31a78d84006a50139", -"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_origination": "b14e17da77b9a2e62de7d39cbe717983537632f666e96d5367b9c758c4beadd9", -"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_proposal": "cdbf7f365f947a819cf8e67d69c8b6b885f56181a4f1ae56b87214af5e0b0673", -"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_reveal": "71b4b26265bd3df41de590dacc888ce88cdb9a84fcf7c2dfeb0d5f9f676e543d", -"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_tranasaction": "a91a0192e160a86291d26a6d69948325153e59a87f31bfdd14888b602bf825fb", -"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_nay": "1a5c3a89d3b361eb3eac496824b2b085090e2f100a9afb4c0c8f21627f048cd0", -"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_pass": "87af51b294ea65630b8265353b1d365585e5dcf5b476365fe335c3c250b3f16c", -"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_yay": "adcc5dd18a08e47ba4cacd40f5f46abf28210120bdd7168885ca27eadbaa566a", -"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "8e87bb8ce0de9197f04e9059feeff5397be454b4cba6ca70ba2d6814f2583f14", -"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "ce56ce9d3ae4d75cc14d4897352938ff52e9cf68f14dba1407a32c94c4110ca3", -"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "5776f71c1f1f6ccc81cfa941c82e544fa8f4c29cea7622d38bd82edd513137a6", -"TT_webauthn-test_msg_webauthn.py::test_add_remove": "7a74a2944c22536ed96568db71bfea1a3838b450f872fb26b907d9828b441d39", -"TT_webauthn-test_u2f_counter.py::test_u2f_counter": "6bf6db360292afbda963a1133152100a98378d05796a10fb505d757b39ede2aa", -"TT_zcash-test_sign_tx.py::test_external_presigned": "cdb1416def8474959540b6312d77199ce7cd42ae2a2a44957eaaa977b8f21e23", -"TT_zcash-test_sign_tx.py::test_one_two": "7f6911261bdd703469b0a32ed3d9d4e6abfdc6ba186b2975d6a12f130292ed18", -"TT_zcash-test_sign_tx.py::test_refuse_replacement_tx": "3d8ccb95dab0251757887d5fac8bfec1aa81945200a18a6a35f1e12cec3e8ee8", -"TT_zcash-test_sign_tx.py::test_send_to_multisig": "df69fc6a8b52bb3bac0308c3519bd0d03d7820d2bb20c7ec646da9ff5b2c0f62", -"TT_zcash-test_sign_tx.py::test_spend_multisig": "04c8b36fe778f56b4350c2e813b89e39529d6dd2239cae76cd3f028ab9309863", -"TT_zcash-test_sign_tx.py::test_spend_v4_input": "81089495f42715d05922c5f72006c27bc72d30d8b7295aa001efec941ddb2b26", -"TT_zcash-test_sign_tx.py::test_spend_v5_input": "4cccd5de69be87668062861184df0026bda56dc468008ec21cc0882035e3b271", -"TT_zcash-test_sign_tx.py::test_unified_address": "909433abd9cd455069672c2df501a0fa044de7cca9f1616218982020f4d28c99", -"TT_zcash-test_sign_tx.py::test_version_group_id_missing": "e0db5107ba371eb8d7039e6ad3138f6bbb731c779f405b75c2e14128dfad756f" +"TT_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-0-bnb1hgm0p7khfk85zpz-68e2cb5a": "1c9920718cc80b2e8b08139d0b5c16f182208c806e4892a96177fe2127b322d2", +"TT_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-1-bnb1egswqkszzfc2uq7-1adfb691": "e9a300ad3a83dd30cc73f7090411b22082aee38a9cc68f2a1a3d5f324fbf20c2", +"TT_binance-test_get_public_key.py::test_binance_get_public_key": "5d7ee462c94f36c505490657e949923593874256ab559d9e70f45f6cff0f42a6", +"TT_binance-test_sign_tx.py::test_binance_sign_message[message0-expected_response0]": "2fb7127f86ff652c702e0a26d6ec235c1a3d54c62ed6b8c8959e4a7fcf68744d", +"TT_binance-test_sign_tx.py::test_binance_sign_message[message1-expected_response1]": "4f5881a2edea4b9b79f997f26bc95d4202abb3838a819159018a728f33f23910", +"TT_binance-test_sign_tx.py::test_binance_sign_message[message2-expected_response2]": "a81ef73007d6d998b34662d6f1e67e7241a5289f61487f80260a7926ab5e9615", +"TT_bitcoin-test_authorize_coinjoin.py::test_cancel_authorization": "d74994a3bc389bdbbcc83233c33f4c6f8a588a33348ea50dd9bd817f33c54fbc", +"TT_bitcoin-test_authorize_coinjoin.py::test_get_address": "944b727d34029ca763dc3358c0d9d453bf42e2e1e17518a614f2e1f2fb489ba2", +"TT_bitcoin-test_authorize_coinjoin.py::test_get_public_key": "4aee7552e2373e5e58eee5fcc92d386f0b9282add3bf0e0fc64ad7dca3f57d78", +"TT_bitcoin-test_authorize_coinjoin.py::test_multisession_authorization": "9c69ab1147927a30babba4cad51cb277e44684ab80d7089033c217b1515a65ea", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx": "94e231b0c404623f44be12a49ed5d2cf7bbd88ddf5f7330100a743b80d894401", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_large": "d357dd9007639568e02b884bf0b24f9fff85c66212715ce2bddbb62995313109", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_spend": "0b7b9b8293b903c7f03f37eb92db05b801dd6b711d669a099ba285b17fbea8a8", +"TT_bitcoin-test_authorize_coinjoin.py::test_wrong_account_type": "d74994a3bc389bdbbcc83233c33f4c6f8a588a33348ea50dd9bd817f33c54fbc", +"TT_bitcoin-test_authorize_coinjoin.py::test_wrong_coordinator": "d74994a3bc389bdbbcc83233c33f4c6f8a588a33348ea50dd9bd817f33c54fbc", +"TT_bitcoin-test_bcash.py::test_attack_change_input": "5278b9863db3ff62a47afcee59dfea954888ef5ffd0e5f7a2ed4a4e1da2d6534", +"TT_bitcoin-test_bcash.py::test_send_bch_change": "5278b9863db3ff62a47afcee59dfea954888ef5ffd0e5f7a2ed4a4e1da2d6534", +"TT_bitcoin-test_bcash.py::test_send_bch_external_presigned": "2e7b70f2c7a980727eda9efda6152699b1e4a90f39645c2d27f90233c0aee0f2", +"TT_bitcoin-test_bcash.py::test_send_bch_multisig_change": "105c41e697bc0f29bd3a151e66d1fe738cdd7f0072d672a097f4b4bbd5bc139f", +"TT_bitcoin-test_bcash.py::test_send_bch_multisig_wrongchange": "9bee4f66c6824d54bcc25f62cefff73db6330b78beb90525bc28574ce6703319", +"TT_bitcoin-test_bcash.py::test_send_bch_nochange": "cbbf159731886ad6b8ec246a0fe9d757d42b81589ac128d534521237f0cfe501", +"TT_bitcoin-test_bcash.py::test_send_bch_oldaddr": "5a0fcf19cff3ab187d4bef5be034399c8806816eb84f4ab126617556d0e1aa5f", +"TT_bitcoin-test_bgold.py::test_attack_change_input": "9ed4b7d39dd34f52973fdc31c2ca86b6238ff8fcf070e36ec90c83c44d5a227a", +"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_change": "9ed4b7d39dd34f52973fdc31c2ca86b6238ff8fcf070e36ec90c83c44d5a227a", +"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_nochange": "2a6a923170183a556357c6f2540e709de4ecc9eea508940083509c6b03fb6e71", +"TT_bitcoin-test_bgold.py::test_send_btg_external_presigned": "85391b04ad7f08244d39e8e26847a72f1fb747f8f9d880a497711d760eec5d40", +"TT_bitcoin-test_bgold.py::test_send_btg_multisig_change": "5e8bb47a7bc9415327ccc1a5fd23c9e6228c28ff80790ee7143b3ff72d2c6348", +"TT_bitcoin-test_bgold.py::test_send_mixed_inputs": "8fd8d02ca670ed9ccce9ef3d0c52e813d4780f797ff9e68d105bbde8cbeef5a1", +"TT_bitcoin-test_bgold.py::test_send_multisig_1": "0c15b1af46b168561d2aeed7f47b0ba98e89b8582a640e62c9925d529104434c", +"TT_bitcoin-test_bgold.py::test_send_p2sh": "7381e766174b5b23395f6f64e28fd2e247de19bb2870631842e2fd3f6a55f6cd", +"TT_bitcoin-test_bgold.py::test_send_p2sh_witness_change": "f42dabda738d9ac848001dbb83e08dd61902961d2d9ea53eb640360a5fbbf4d9", +"TT_bitcoin-test_dash.py::test_send_dash": "c1ab5b0a1cc911317b2d492a3608ae98a3d08b475deb52d6721b8cb3daaf0ced", +"TT_bitcoin-test_dash.py::test_send_dash_dip2_input": "9b8abbe50f24e9af209f9ef1e6527984dbd60645a5fa8ac7acb91f6cf375b9dc", +"TT_bitcoin-test_decred.py::test_decred_multisig_change": "b3dae0411dbce1a606864bcd6a345cec5beb02e275ce8117236eb23df82f2acd", +"TT_bitcoin-test_decred.py::test_purchase_ticket_decred": "a0a3d98484e3d5003fd678865abd62aaa5009a7d517c533f62a961d9a84d24e5", +"TT_bitcoin-test_decred.py::test_send_decred": "7c96f374aff157e288b45fec2305b37fddf154b1906555dd447e25c2ca4cb231", +"TT_bitcoin-test_decred.py::test_send_decred_change": "f4ed46d10f67b76f8ed34f2eac39c13d3a8556f194fcf21c4944d5fb73f0e32e", +"TT_bitcoin-test_decred.py::test_spend_from_stake_generation_and_revocation_decred": "6e2cb0653d6814232a1cf14d6d3fd69c46ae2093d078a7ab102850ce3e979a6c", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDADDRESS-pkh([5-7a80e3db": "570da966ab8a60f3e8298c58c5dd2d34c1505f0d0ff06787685148b28e279160", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDP2SHWITNESS-sh-03d56ac2": "b58951e8abe33d89170094576bcc39f20de2a896ee548e31ee4f5f6ca7d8db10", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDTAPROOT-tr([5c-22751b2f": "7dfb6da9402a588bca8f4915998a59df5afa315da33faab8e795701a65b7b8f5", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDWITNESS-wpkh([-edfbc435": "5e1a0239b6e5def06603f72501c347a9a3f11f766b0378072dcbf364ec5deb20", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDADDRESS-pkh([5-5ab06094": "bdbf9bb0455d897b0c5906dba5329ca37086ca4ca23e27501545156a54694a1f", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDP2SHWITNESS-sh-5dd6ae4b": "1b24c98abde1d1d636288dc1c7a7ba1d5150e48cde4702bf8a6ca16de0fbd0f5", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDTAPROOT-tr([5c-f4f20781": "2b2c04e0161125517c7725b195a0440d087969af2f75036f0e2e777b73dee418", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDWITNESS-wpkh([-98a75f0a": "68ad03a036500f1fe2233b38666b3fa9a9102cd1fbfd8180496307e126097469", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDADDRESS-pkh([5-f63bf93f": "c215eba9543e646460d3200410da9ea231325c6886c40405056474d4cfa14430", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDP2SHWITNESS-sh-fd42e1d9": "0dfd316ebdc6a75af17a7ef256b4595702bd2c7648233b544cd1ca915da841c3", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDTAPROOT-tr([5c-a794e72a": "6dce86c6a34e9961752a14906eb3456479555888e8079cfc62273a590c6eefe0", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDWITNESS-wpkh([-e70d0168": "47822b16a025f92987bee782c90ea13e7d55fded32f8462c553e3f4dcc908419", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDADDRESS-pkh([5-2d5b32fe": "929372c7442c424ace6393e98a5304ac72ee22c29edad5aa3395e41a66c1bf08", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDP2SHWITNESS-sh-e8c5303c": "1b2b7d08b1894737a5274232a0a8aabbab2e3a75a1f19141aae01494f6e36b5e", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDTAPROOT-tr([5c-ddc924d3": "ede7b0ac0aae089d6c1631ed94074365b744081142794dafd1c8d1dbaa6b5ff0", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDWITNESS-wpkh([-996ae319": "ad9dd4066cf823eb864f391eeb65c8c69baa7412263cabd03482a2cef3acc8ed", +"TT_bitcoin-test_firo.py::test_spend_lelantus": "d4a229351b7d9bb6e736203368e4e76181c13ce8978cb68314561a0f6ecbf407", +"TT_bitcoin-test_fujicoin.py::test_send_p2tr": "877c64c04908ebb55247c55aa17b68f6ffdc3a5447d97efd7a70b8d0953ca471", +"TT_bitcoin-test_getaddress.py::test_address_mac": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_altcoin_address_mac": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_bch": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_bch_multisig": "d37df8ff422ab5dc76edbab9e2aaffcb8462671aa7e32c7bfbcbd6d2768f4583", +"TT_bitcoin-test_getaddress.py::test_btc": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_crw": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_elements": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_grs": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_invalid_path": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_ltc": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_multisig": "46ab9a4e34875b92f07cbe0b5d700c4b5511421fedcd176b7357fba966ea3a6c", +"TT_bitcoin-test_getaddress.py::test_multisig_missing[False]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_multisig_missing[True]": "eb7d67cf13947f12515805e698e2c53fe5e012a2ae1aef8cf8d91a6b0ef4367d", +"TT_bitcoin-test_getaddress.py::test_public_ckd": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_tbtc": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_tgrs": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress.py::test_unknown_path": "9d2bd95852f69083cba951985a1b2111b9bbf6fac58a5d3667a0cbc83b1a6cda", +"TT_bitcoin-test_getaddress_segwit.py::test_multisig_missing[False]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit.py::test_multisig_missing[True]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit.py::test_show_multisig_3": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit.py::test_show_segwit": "359fd9bb608b35a353bd32055ebf89cd0177f668db48364c7c4b05eb9359a61c", +"TT_bitcoin-test_getaddress_segwit.py::test_show_segwit_altcoin": "1d135cfb7cd9ae27305a94592ff480d9169ffbedc58f71c758479f8907bc2362", +"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-0-0-bc1p5cyxnuxmeuwuvkwfem-dc12f29f": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-0-1-bc1p4qhjn9zdvkux4e44uh-1f521bf2": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-1-0-bc1p3qkhfews2uk44qtvau-d8b57624": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_multisig_missing[False]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_multisig_missing[True]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_multisig_3": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-0-0-InputScr-6bc4ffc3": "bc14d2e6a506b27514669d889875a8936f9ccf0ce54e4321a3236cd440c64f71", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-0-0-InputScr-8943c1dc": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-1-0-InputScr-016718c1": "671a64eeafd62a9ab8d611f0039ba49b44cdf163b7abebfeda5ba4413d161880", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-1-0-InputScr-7656a4db": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-0-0-InputScr-3d3cc8eb": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-0-0-InputScr-8571d5e0": "4895f3e39d2d6dbdeb44ba372bf46ef93e9922b4c2ae705a31fa4f4e45189279", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-1-0-InputScr-ab700de2": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-1-0-InputScr-da3803e0": "ad938221fb0f6cc8d093b16d7f9063c50eb6ef9d39b60cd3c59aa0a22b00e2e3", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Elements-m-84h-1h-0h-0-0-InputSc-490228be": "f904b69a1fe6670784c5965b3ecbc774bb5a334d64bedac36506201dbf764f55", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Elements-m-84h-1h-0h-0-0-InputSc-ed587e90": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--40b95144": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--45b4ff5d": "432cc446f8d8d752c52bffb6bd3877be3cabf5faeba56705193bfa5d0459588c", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--8f7c658b": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--93c9c3ff": "44dc5aefd02695af6f24b6e69d7608ef7d4ff25300b3f86ce8857fbdfea55d5f", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-86h-1h-0h--5feb8c64": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-86h-1h-0h--8d4476a1": "c0f2fda9122a4034b8ef30972d1afe198307488b3bd76e2abef1526a5614f468", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-0-0-Inp-0200a67b": "94c191c7e108533a67816f56196648a7fc3188daa14a3ef85e32c96f0f4437b3", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-0-0-Inp-e6c1098a": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-1-0-Inp-9688a507": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-1-0-Inp-f825f217": "0fe86e5e9dfe66bc7616d5c3b86e64d1c59fca28f4b054a4bcc74880c3f5f57a", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-86h-17h-0h-0-0-Inp-38cd93cf": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-86h-17h-0h-0-0-Inp-ebecce6e": "26d69fc0eb17319d0d9552bb8a69091477544bc18b8ed80ec7cea5c26de3d057", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-0-0-InputScr-313b9443": "e57880653c65146801e815937f3f58d3b5d1b099bca9a1063c47460613606fbf", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-0-0-InputScr-ce15ec92": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-1-0-InputScr-040186c0": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-1-0-InputScr-b10918be": "e25463c30f995047ef301922344a818bdec07846eb93eb4f7d5bd3095a6e1a3b", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-0-0-InputScr-55ae0ae6": "05cb3c8eb39a0b4c4c7069cae86c65a0f3ce8c911fd42c7e43e682ad12031ab6", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-0-0-InputScr-821a199d": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-1-0-InputScr-9d2fa8bc": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-1-0-InputScr-d5b7f8fc": "dcec7beb452ba5ada811a9be77d77b62430e8df71a669894c4070a5da9238e4c", +"TT_bitcoin-test_getaddress_show.py::test_show[m-44h-0h-12h-0-0-InputScriptType.SPENDADDRESS-1F-1e4f2f74": "471f9c4e0784cc4e34198c7224d6e75252128a3ca896dab08394669f8ffa5693", +"TT_bitcoin-test_getaddress_show.py::test_show[m-49h-0h-12h-0-0-InputScriptType.SPENDP2SHWITNES-a986211d": "6830289bf37a584ef253e1825344b9a8f1de58242b38eca7162f9fcaf3ac06e2", +"TT_bitcoin-test_getaddress_show.py::test_show[m-84h-0h-12h-0-0-InputScriptType.SPENDWITNESS-bc-a5f08dfb": "dac13bd8e9d923e7ee176e0c7f19040b70f631d09edc8afcbc531425a9f71729", +"TT_bitcoin-test_getaddress_show.py::test_show[m-86h-0h-12h-0-0-InputScriptType.SPENDTAPROOT-bc-f94d8b44": "5ceb77c2f0678114808c75c8719c0bc992be26a499ff8727dfd4aef043b0c459", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_15": "57a5612fa1f3ac517ac260ea0b8ca4cfa71d266722d441fd4e50b4019bbf465f", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_3": "07f82be04caf39e697249183a6d5dbd5160ca1b4a00e05ce27be0371abd9a9bd", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDMULTISIG-0-3-4efd9cf3": "9523a6efbb2a877736288418889d588bef05d74db12bcbc41d6a5f0fa63b23cb", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDMULTISIG-0-3-98a7e339": "9523a6efbb2a877736288418889d588bef05d74db12bcbc41d6a5f0fa63b23cb", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDP2SHWITNESS--2cf5f03c": "276e7d05dcd12e439d2092cc81d59f79d7c260e7e18328945a360187ead2f222", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDP2SHWITNESS--5ea18367": "42cb7b26ae43418366e0c12f6a2a80e2fef0f1cc2eb7334d9669a5a7ae271079", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDWITNESS-2-bc-e70b56ea": "f95d26633a8dc3d9e274ed458978fcb020bf538e0bf9a41bd8e9967ad28348ea", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDWITNESS-2-bc-f3c4650f": "94123f261f29ee972f9ebcca37b124cb590784d8622924bf4fab8137b44fdc0e", +"TT_bitcoin-test_getaddress_show.py::test_show_unrecognized_path": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getownershipproof.py::test_attack_ownership_id": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getownershipproof.py::test_confirm_ownership_proof": "f0041aaf4b46326ff00c3de85afa16eb5064f7f45722c0aae1bafd4a34334b7d", +"TT_bitcoin-test_getownershipproof.py::test_confirm_ownership_proof_with_data": "4f857b65bef522055ed65d4bf73ebac841e7008a80cbde3aa439cfb1f7f73b79", +"TT_bitcoin-test_getownershipproof.py::test_fake_ownership_id": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getownershipproof.py::test_p2tr_ownership_id": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getownershipproof.py::test_p2tr_ownership_proof": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getownershipproof.py::test_p2wpkh_ownership_id": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getownershipproof.py::test_p2wpkh_ownership_proof": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path0-xpub6BiVtCpG9fQPx-40a56ca3": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path1-xpub6BiVtCpG9fQQR-1abafc98": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path2-xpub6FVDRC1jiWNTu-47a67414": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path3-xpub6GhTNegKCjTqj-990e0830": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path6-xpub68Zyu13qjcQvJ-8285bd20": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path10-Ltub2dcb6Nghj3k-53e5db37": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path7-Ltub2Y8PyEMWQVgi-d0bb059c": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path8-Ltub2Y8PyEMWQVgi-98ae2c41": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path9-Ltub2dTvwC4v7GNe-8d6d95fb": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Testnet-70617039-path4-tpubDDKn3FtHc74Ca-f3b70aff": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Testnet-70617039-path5-tpubDGwNSs8z8jZU2-8b5efa13": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bcash-path5]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path0]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path2]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path3]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Litecoin-path4]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Testnet-path1]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDADDRESS-xpub6BiVtCp7ozs-9813cc48": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDP2SHWITNESS-ypub6WYmBsV-0710fbb3": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDWITNESS-zpub6qP2VY9x7Mx-84eaa56c": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_script_type[None-xpub6BiVtCp7ozsRo7kaoYNrCNAVJwPYTQHjoXF-c37a47fd": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey.py::test_slip25_path": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey_curve.py::test_coin_and_curve": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey_curve.py::test_ed25519_public": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[ed25519-path4-002e28dc0346d6d30d4e-e6c7a440": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[nist256p1-path2-0324c6860c25cdf7a8-d75f4900": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[nist256p1-path3-03b93f7e6c777143ad-2d6b178b": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path0-02f65ce170451f66f4-9c982c22": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path1-0212f4629f4f224db0-0209bb73": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_grs.py::test_legacy": "264c746978e938ad6022bb16f9687cfc787d5273775a14e990df6ffe3704506a", +"TT_bitcoin-test_grs.py::test_legacy_change": "3ad801fb841df25714c751f948caf613870c6367d67a0deb5d63677cbd945210", +"TT_bitcoin-test_grs.py::test_send_p2tr": "6f4a9f962d466d37fc1530c1c982e0d1116b78af9e0689de0ad88ceb9a85c4c9", +"TT_bitcoin-test_grs.py::test_send_segwit_native": "18de150ee7f7965c9b449452f4c079cd6bfbc9198c1657acf630b558ff1bcd43", +"TT_bitcoin-test_grs.py::test_send_segwit_native_change": "66ac6d31d0040fc74ac39e262cd3b0f5ae6241cd747ed0f2a4cfd48c9e27ae4f", +"TT_bitcoin-test_grs.py::test_send_segwit_p2sh": "575f36a2e0fc33ef3ba75a20fda7e20fbfea1427237de0f7bd5aa41664de9ef3", +"TT_bitcoin-test_grs.py::test_send_segwit_p2sh_change": "93e3e4ead92955ce8993fba644284c744ccdabde9d8ae3b20216b9407b72876d", +"TT_bitcoin-test_komodo.py::test_one_one_fee_sapling": "56eaa21da08e979e3382371a903b3082808e0ba6879ae98d4bd71b97d9162580", +"TT_bitcoin-test_komodo.py::test_one_one_rewards_claim": "6d60a9c592939496a0c5e1b3c50f872b98502b3897e7c5981bc3b800729bcfc7", +"TT_bitcoin-test_multisig.py::test_15_of_15": "29f5c501a5af7c1406da812b1086c778bc46e3e27d4336f18523f279e34ac2f3", +"TT_bitcoin-test_multisig.py::test_2_of_3": "f55fcf01b06e8d2c4838d48eb9fe5182e5b881c3556c1fecd2e1d7336c400b52", +"TT_bitcoin-test_multisig.py::test_attack_change_input": "c6e6861dbdbf773dcd29a6eec8d3b94120312053e4596ed4015d3e6eda025771", +"TT_bitcoin-test_multisig.py::test_missing_pubkey": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_multisig_change.py::test_external_external": "8f748ab826462dd72495bc9334c5bcb1a7355e23494828cf1694aa5bff3b8495", +"TT_bitcoin-test_multisig_change.py::test_external_internal": "0a98839d22c2a861d6a6eb072e17b62a64ccc3707403334a332f101f5de453a4", +"TT_bitcoin-test_multisig_change.py::test_internal_external": "7fded0907ce8b2f1e70cb3d9f4f2a44665270ca5a1dcf01c408724327a0e90ef", +"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_first": "e3f849674cf7a56109647029f5a331c7e9d836b42ba7bab396d805328299a7f7", +"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_second": "5517c9feb14757bfad1cababde7fdfbdc2fd2e32dae7b2417c27de3833180be3", +"TT_bitcoin-test_multisig_change.py::test_multisig_external_external": "9437931c9b1f501aa504e842d45cf5c9582cc8fb86040dc5ba8224f9789e959e", +"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_change": "56645a9ce9eb4d26c07513b33de5bd804f7da7e34887b3aa9b617f029b2dac8d", +"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_inputs": "b2ebe55faa260ff543afe38ce15dcfbbec9f8d3df47f62c9b2f0856e14298df2", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-6-255-script_types3]": "818c82ce3dbd8096ecf4ed3657acd82ec92995112149976eb95a77dd189c2570", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-script_types2]": "087eef5f211835684eb7a2ed98de12b1d4689bcecc55a4e4d3d05dc9bb0afe6c", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-3h-100h-4-255-script_types1]": "b96df660de5d0311220ad9cb283350032a0b8b7e159bf90f7563bbb5077dd4b6", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-4-255-script_types0]": "cc294651b2c6ce24fc7314d0855deb7931656831aa907429328a1ae03aca686d", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-49-0-63-0-255-script_types4]": "e1012d1444f696db966fca06d87298d42f20bf65fd636d5a57ff30d2e780b24d", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths0-address_index0]": "a36928c929348395aa7ffa555c2334b07a3b63702a801ba4f01386cd06c5124d", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths1-address_index1]": "319d4288abe493f9572f4e194f8e0c154b1e515253d124fdb29dae112d444e71", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths2-address_index2]": "fc50e0f9b598c275908af1f53fc6a285ba50dfece42445dd1ec522be4aa7f2e0", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths3-address_index3]": "e8b55acd461b15d00e3aa40b436a32160572811581b4e1158a6e4fcf5ea5c9db", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths4-address_index4]": "fa83c8578a9059143e2dad02a6b8e11adbb4cf6528d2e1e0fffb4734a34c7815", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths5-address_index5]": "82e39086c84e74b065a47f4ad93312ca350f7902a57c450923fb6ed0ddceed82", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths6-address_index6]": "68ce34f5185d7f7f04537911633b36685a1c8d1c33ab7465c33083d0a9f8d718", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-1195487518-6-255-script_types3]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-1195487518-script_types2]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-3h-100h-4-255-script_types1]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-4-255-script_types0]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-49-0-63-0-255-script_types4]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-1195487518-6-255-script_types3]": "b90bdaf8a002b10da88e226a6666fff48c41faa01efbb7805a7603d1a4960970", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-1195487518-script_types2]": "fee10836e4b32250225199203bc7020a767cde35c1095b38187d5c804a47c72d", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-3h-100h-4-255-script_types1]": "2dc39fcc225e37f3697f78bf183122ff8429bfe0782fb1499330d46503a4a6f7", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-4-255-script_types0]": "ccdb6c23c2ab27391ea6bd9640fa51065027da6e1ec3857ebf22da61ffff44f7", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-49-0-63-0-255-script_types4]": "5e46e9c7fbf98985497331ca6e8862db299d02f138907b1b45531d8e544212f0", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-6-255-script_types3]": "0578336a1eefaa515b99addce1d2334f6e79d94f2488ab264e13bee1a2f1bb17", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-script_types2]": "3782772cbe0d2ab71acdb1db7aa5ed1324753da0ef8280d6d882d824a0d26577", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-3h-100h-4-255-script_types1]": "3d7a18571f5089399659e44cb962b9c8cee2e33bf29d92c66a0100e6c35c512d", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-4-255-script_types0]": "3d7a18571f5089399659e44cb962b9c8cee2e33bf29d92c66a0100e6c35c512d", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-49-0-63-0-255-script_types4]": "ef82e635f33a66427b97d15ddd3f1a571901068d3c271bbb4e3f945cf3c08967", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths0-address_index0]": "22d794b327b7c752fd95a03ecd48b256f47a1628b157c1b6025d5cbf98f5a217", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths1-address_index1]": "22d794b327b7c752fd95a03ecd48b256f47a1628b157c1b6025d5cbf98f5a217", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths2-address_index2]": "becc51b1aa32fe547047157ca81b834b5fef22520aa8b7cea399e8bba0c6f868", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths3-address_index3]": "8acddc4cc728f31e3aeefa4e36c18c7b9455f9c650824b12bd7d3e2c18525596", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths4-address_index4]": "22d794b327b7c752fd95a03ecd48b256f47a1628b157c1b6025d5cbf98f5a217", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths5-address_index5]": "22d794b327b7c752fd95a03ecd48b256f47a1628b157c1b6025d5cbf98f5a217", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths6-address_index6]": "22d794b327b7c752fd95a03ecd48b256f47a1628b157c1b6025d5cbf98f5a217", +"TT_bitcoin-test_op_return.py::test_nonzero_opreturn": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_op_return.py::test_opreturn": "df9a7111403d3a5d959b28c7d5d3871174d8f109d56ca7a519ab09d325468692", +"TT_bitcoin-test_op_return.py::test_opreturn_address": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_peercoin.py::test_timestamp_included": "8b18883409b0ee4b955a8234f2ee178b3710d4c27f9d00604729dae19e860691", +"TT_bitcoin-test_peercoin.py::test_timestamp_missing": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_peercoin.py::test_timestamp_missing_prevtx": "8b7337ee94ab0b14f9b08b6f1780d9ab2207fbff8adc142f21c2394e2366fb65", +"TT_bitcoin-test_signmessage.py::test_signmessage[NFC message]": "3953fd5bb64062d175e7d7fb7f3e0862a8d38ed210a2ef35cd1d11949056cbb6", +"TT_bitcoin-test_signmessage.py::test_signmessage[NFKD message]": "3953fd5bb64062d175e7d7fb7f3e0862a8d38ed210a2ef35cd1d11949056cbb6", +"TT_bitcoin-test_signmessage.py::test_signmessage[bcash]": "e7f629ec29739e4e7b93923558f00e52da5c105685a481bf517deca1ea0d174c", +"TT_bitcoin-test_signmessage.py::test_signmessage[decred-empty]": "464baa06f7ddc542a445650fe02dbcb865625a062838ae37b5ba3211df558c7d", +"TT_bitcoin-test_signmessage.py::test_signmessage[decred]": "8d4f78d8d388f9a445a61a1448b734929d8d1c5360180a176e4140435a17ec6d", +"TT_bitcoin-test_signmessage.py::test_signmessage[grs-p2pkh]": "821984ab9a2ab1e44c7f47b253f78c8936a2569f731c146444692e3d1becde16", +"TT_bitcoin-test_signmessage.py::test_signmessage[grs-segwit-native]": "1e9006554e7cd1ec06a263297c0da6d8ced551e84e84474f1c60f536244ae144", +"TT_bitcoin-test_signmessage.py::test_signmessage[grs-segwit-p2sh]": "ad7f67e4d3bf44c5dda3f5d7947140631f81f2d41f2e3e6c1d107e89a2e78573", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh long message]": "02e07d6a67f474d7779651cb6717784f4c7effdd3fb88cb678bbf7b6e83d3546", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh0]": "54a3e480adc2bc08fe9d30f6db7981e91d0212261c2e42305a84fc4304580f7f", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh1]": "54a3e480adc2bc08fe9d30f6db7981e91d0212261c2e42305a84fc4304580f7f", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh2]": "ced7b3f30422d4934cd1552927f6802a9f262d858efd3d074a62246fd421d949", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native long message]": "4408a2f7f0cd3b7f4d38bf48ebe776461f80cd2345c711264ac7c3f0d24294f4", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native0]": "659be2d90d400ec4fe9033a7ef056132ff62090bfcd6cb038d2a78c494294c25", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native1]": "659be2d90d400ec4fe9033a7ef056132ff62090bfcd6cb038d2a78c494294c25", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native2]": "cd4be3c645b9eb67226ecfb9f01d7b6b82754ea85f8b5b0f5dc91d170ef9f3bf", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh long message]": "294c3af11f4e3887675ac9d01b9c511990591b6841c2e9b027a9646620e32633", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh0]": "8ba518cf1c44c5697505c5f4056c4fa395e327c0ed67ee29ceceed74d6c9bb22", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh1]": "8ba518cf1c44c5697505c5f4056c4fa395e327c0ed67ee29ceceed74d6c9bb22", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh2]": "52a5b7bcebdd967174287c55570a3675e6f5d81071a28c10524bed842358b725", +"TT_bitcoin-test_signmessage.py::test_signmessage[t1 firmware path]": "a562aa0a07fb9604b5f43d8f996691e62939042b6ee752f7d66563230c31488d", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[long_words]": "6c983a225ae84a891ef9b4f5695da544bdf34fbfa24071b7f1590000c8dba1d5", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[newlines]": "13963bb3cd0177ce8adb5bce8d6c6fd8731d978d58a9a4a1aeaad4ae5f0f6697", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[no_spaces]": "00da65c06257ddf4c3108be75dbd2639d6b8769968259408151ceca9a0a91bf2", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[normal_text]": "47c249da30d2f94637c37d1d013e858b71112855d75f746bd8f90b6cbe3c820d", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[single_line_over]": "05afa531ea3ab27a76e94c9d17d63b83642ba2d171a62d85652714f5963b4bb9", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[utf_nospace]": "042034c7f5db3280e75b5b9a17960b9dda1ab5f49e895b6ae3f86139289dbce6", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[utf_text]": "1dc30aa06ac4f107a340c660dbc3729f8dd7139dd1c0ab9012e6e1bf6c92709e", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination_trailing_newline": "f8a9d8225ccc1a9b8ff8fda51924fc635ccccab24ae1027a43e1f1509b925ac0", +"TT_bitcoin-test_signmessage.py::test_signmessage_path_warning": "545e737d8119f50cb8d3ff2c8dbb393c2bea451d9c4adb45229c59c967c6b259", +"TT_bitcoin-test_signtx.py::test_attack_change_input_address": "b891a01d3326e681c9594894b1482e3d6c7b239ebb8a05ae43ce578ed6fbe59e", +"TT_bitcoin-test_signtx.py::test_attack_change_outputs": "66f4bbab61ed5b0a07c02c38a40122758d45d68d436b3ea40ac611b74516f5ba", +"TT_bitcoin-test_signtx.py::test_attack_modify_change_address": "17fd27e38ddca779dcc58bf690fb41e817b3478749e897fe54f6aecabc287826", +"TT_bitcoin-test_signtx.py::test_change_on_main_chain_allowed": "17fd27e38ddca779dcc58bf690fb41e817b3478749e897fe54f6aecabc287826", +"TT_bitcoin-test_signtx.py::test_fee_high_hardfail": "4ee10bf57da88c51fafc10a33f3b1062f759525978dca976ef6f6eebf3a6ddee", +"TT_bitcoin-test_signtx.py::test_fee_high_warning": "28d980740b00740c724a6e7295278bd1fc6ec0d62932a56668336feeaef66605", +"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.EXTERNAL]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.SPENDADDRESS]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOADDRESS]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOSCRIPTHASH]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx.py::test_lock_time[1-4294967295]": "b9fc0e60b717f601a58354ece24abe8fe88f8bd5b6ec86898de552065109d866", +"TT_bitcoin-test_signtx.py::test_lock_time[499999999-4294967294]": "461bbd3e6f1dc77c5708f014a903ab53a342e5ff5d76f59774dcc5832b731d98", +"TT_bitcoin-test_signtx.py::test_lock_time[500000000-4294967294]": "832994270f45b3a10eeed3dabebcf5755c05d64535cbb3af06a29a6b65445d57", +"TT_bitcoin-test_signtx.py::test_lock_time_blockheight": "461bbd3e6f1dc77c5708f014a903ab53a342e5ff5d76f59774dcc5832b731d98", +"TT_bitcoin-test_signtx.py::test_lock_time_datetime[1985-11-05 00:53:20]": "832994270f45b3a10eeed3dabebcf5755c05d64535cbb3af06a29a6b65445d57", +"TT_bitcoin-test_signtx.py::test_lock_time_datetime[2048-08-16 22:14:00]": "7c8114eb5442c048e81818bfe7f06a2041c269370c33cf8c7b95518c808d818d", +"TT_bitcoin-test_signtx.py::test_lots_of_change": "9aa297925faaf3515aa9b077e54ff68768cb47c9c65ed84d2f609fd9ebcab35b", +"TT_bitcoin-test_signtx.py::test_lots_of_inputs": "6ff5a06daf109346dcfcc4d2f761c63f2263f1ecaf5b6ae297add53da5bf24d5", +"TT_bitcoin-test_signtx.py::test_lots_of_outputs": "c8c254f31df61d025db768a9717061c26404fa44f1d5e9296d3058d9c608c5c7", +"TT_bitcoin-test_signtx.py::test_not_enough_funds": "39cdbd6e41a2bdf1eb5089205851bb3305318a715598d2eb88a35f4bb77880de", +"TT_bitcoin-test_signtx.py::test_not_enough_vouts": "52bd13adf2deb57f82a3de0965f5fb03cb992cb7f9fa6dc8b9b8131d797173af", +"TT_bitcoin-test_signtx.py::test_one_one_fee": "f7e4718382e50ed9f9fc878d93b8e960219596a12de362af64c1cdaf28de8619", +"TT_bitcoin-test_signtx.py::test_one_three_fee": "b9f67d4de636caf18c95ea0dbe3c144aa1226513ea5a009a7ca099e1ef7dd00d", +"TT_bitcoin-test_signtx.py::test_one_two_fee": "2c8bf8353bc90ba4a2591642f18bb64c0e2beb64e2fe595191b3a722df5bda23", +"TT_bitcoin-test_signtx.py::test_p2sh": "dafac1938073fd57af1dfb50a2e7724d6c22ebc2af4ac0ad06dada4bf245874e", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[branch_id-13]": "c06b569aa5aa053dea957a249af60198a79ea25599c23d4e258b14523883fa5a", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[expiry-9]": "c06b569aa5aa053dea957a249af60198a79ea25599c23d4e258b14523883fa5a", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[extra_data-hello world]": "c06b569aa5aa053dea957a249af60198a79ea25599c23d4e258b14523883fa5a", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[timestamp-42]": "c06b569aa5aa053dea957a249af60198a79ea25599c23d4e258b14523883fa5a", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[version_group_id-69]": "c06b569aa5aa053dea957a249af60198a79ea25599c23d4e258b14523883fa5a", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[branch_id-13]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[expiry-9]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[timestamp-42]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[version_group_id-69]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_signtx.py::test_spend_coinbase": "819bfe66dc1a1054e495816892fb34a464fc5dec6a2775ce44219f5656b846e1", +"TT_bitcoin-test_signtx.py::test_testnet_big_amount": "f868b09e10a869de87bac90ef2087b852fcb80c45d39c0884c5a67b7b284e079", +"TT_bitcoin-test_signtx.py::test_testnet_fee_high_warning": "f44f3be64bfec6b1f67c18b3084f41ce67915e68f643b38ecd4a55fc3817e3bd", +"TT_bitcoin-test_signtx.py::test_testnet_one_two_fee": "17fd27e38ddca779dcc58bf690fb41e817b3478749e897fe54f6aecabc287826", +"TT_bitcoin-test_signtx.py::test_two_changes": "f1dc0a68c0cfc9456baa7bec2edadb1e4addda07e9884f86dc524f830854ff83", +"TT_bitcoin-test_signtx.py::test_two_two": "39e8cf1d0961ad428fc7b7a04863ec63e4cf7410d98d7028d5f1de5eb527b637", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.BITCOIN]": "f7e4718382e50ed9f9fc878d93b8e960219596a12de362af64c1cdaf28de8619", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MICROBITCOIN]": "7b61909bf0e7ae6eee0f74f56c2a66aeae248bb0fd53f09412a2a42c7d1dffe2", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MILLIBITCOIN]": "0262be345766fe840e7af303b1b3e9c8cd120f277b8135e9ef0f4b1016229976", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.SATOSHI]": "d75403460e20e9e5106e03d1a524912c21ad9c4d26c0a9da35fd597bd3f10808", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[None]": "f7e4718382e50ed9f9fc878d93b8e960219596a12de362af64c1cdaf28de8619", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.BITCOIN]": "4e8879e1da658649e5f44042ca76d9d46e7b74c03dc1c39eeb2e12500be80d3e", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MICROBITCOIN]": "1d50a798a8e0f4aceb64c518413bdff4247c2218a25a4a653be33acad26d678f", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MILLIBITCOIN]": "7d000b81760490413df48cf269363b987314dba585f9077911f88494167eb035", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.SATOSHI]": "fc0195665e62e35a144a222a7fa67703052d8870a1201d97bc0a0c6595792549", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[None]": "4e8879e1da658649e5f44042ca76d9d46e7b74c03dc1c39eeb2e12500be80d3e", +"TT_bitcoin-test_signtx_external.py::test_p2pkh_presigned": "ea1c3c0d3e87b2d11c611c1ea54099e7ccd397967540f3b19e6f2945e788ba7f", +"TT_bitcoin-test_signtx_external.py::test_p2pkh_with_proof": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_signtx_external.py::test_p2tr_external_presigned": "0f3fbfffd4afcbc823567deacc2cf2d41d7fa04f9c96ece86f1f94ceae1981fc", +"TT_bitcoin-test_signtx_external.py::test_p2tr_external_unverified": "17a7ca4c45f7da0093c69cc4c29d3ecd38c5db27afb47411c00ccbc9e26a11eb", +"TT_bitcoin-test_signtx_external.py::test_p2tr_with_proof": "f8e8487d544ec7fe4c72b4efaffec58c65937a9fe353c9702e4bcf91cf7d9f2e", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_external_unverified": "f428fd265cde59911d887320816c4a7fcf483c5b2b7451108c5db49019f427ba", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_presigned": "0ce09a9e05a27cafbfaa37a571f2f74c40b3aa36ff7dc8879505f5be7b9bb42b", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_with_proof": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_presigned": "e333fb37dd07aa81ae4546ad529233880a5c26c3c5cec865e4f2dcf08e1dfc9a", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_false_proof": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_proof": "27065bca1e71a4dc6d2734ba2eb0c16f785e69a3a45e48683bd416b087cfb934", +"TT_bitcoin-test_signtx_external.py::test_p2wsh_external_presigned": "c3956cd718abf72a680657c32d137edf7755ae599419859e7b175ccda94edddf", +"TT_bitcoin-test_signtx_invalid_path.py::test_attack_path_segwit": "40bef005acb2f9b42670ed6627f604865893f5b5c83550458ffdd348da505f95", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail_asap": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_pass_forkid": "c11298d3b03f46f01f92076341d7e99f62548e11128f3e4024b464c4a410a88a", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_prompt": "b9da60917af6cff74fdb7e7630490163ab934efb428fdb7bcefe39c1a8ca11fa", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_inputs": "0ea9356b0462cfbc909006a7b4c9488a0ad28c7f6d293293d505b6e351750a68", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_non_segwit_inputs": "33781f591a1c4cb19c9132380f1884684f482c96237dd8ca0a5c001e9f59cf97", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_inputs": "0ea9356b0462cfbc909006a7b4c9488a0ad28c7f6d293293d505b6e351750a68", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_segwit_inputs": "7d1c99e21121b40a3976052ec6e91c07c588335d1348a65ee68d6bced658de21", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_amount": "e1552085224a509df6266d3457fb9b525d15540fa4483ae056a70dabe68b9ddb", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_purchase": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_refund": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_output": "f7ca38f0dd798ddf78bdc5597e3b77b8f773776cd34f0fcac61d7dc7e12568cc", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0+out1]": "289706092b90972bc2f3df15aeb75599893ec51abf177a7009c45ca27486f02b", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out012]": "39f898e7bdb8e07304ad241ffce7e96db9bcf7d4329e164ea62090db3e5b7e0c", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out01]": "431b1b0cbfd598dba0f43ae2f1cdfcab8c7f01470d8a08913488ab69331d35c3", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0]": "15e4b84dde9bc10d0f8d0d3032affb3c1641e1c8ba46971b12f9e606930d202b", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out12]": "0a3cd4608937c1ada86252db386bae4d96cfed7191e3c630e5a5020eb1cd1e31", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out1]": "d68eb5091b9b24dd9e7d95f30c35d22d98e127ea2bdcbd7e03b44c9aef9837a1", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out2]": "649f48214abe2d325eec154c2c8c63f5959aebefa3f5291c20266b38879e248a", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request_details": "4cdca9cfcc1cd3fe927b56377e2742e86f7e08302a32e270c54a49110aae8f2e", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[hello world]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[x]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[]": "7605ae2793c82a6abc64fcbcd9ace6cabff2d49a7bbed9c2fe3021d0f7325978", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[hello world]": "7605ae2793c82a6abc64fcbcd9ace6cabff2d49a7bbed9c2fe3021d0f7325978", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[x]": "7605ae2793c82a6abc64fcbcd9ace6cabff2d49a7bbed9c2fe3021d0f7325978", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "7605ae2793c82a6abc64fcbcd9ace6cabff2d49a7bbed9c2fe3021d0f7325978", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[]": "4495e67a2bc8d8fb4f803cf7053961a9c1a6cfeddc33bb784fff5e533db40225", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[hello world]": "4495e67a2bc8d8fb4f803cf7053961a9c1a6cfeddc33bb784fff5e533db40225", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[x]": "4495e67a2bc8d8fb4f803cf7053961a9c1a6cfeddc33bb784fff5e533db40225", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "4495e67a2bc8d8fb4f803cf7053961a9c1a6cfeddc33bb784fff5e533db40225", +"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_ext_input_amount": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_int_input_amount": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_replacement.py::test_attack_false_internal": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_replacement.py::test_attack_steal_change": "4c7d4279550e056cb68100eafec5543fc33808e440c2f33043a7eea16d5c617b", +"TT_bitcoin-test_signtx_replacement.py::test_p2pkh_fee_bump": "7119496bb204219f0fdfca1a327879342c5fbe32327926abb618a5684a147c65", +"TT_bitcoin-test_signtx_replacement.py::test_p2tr_fee_bump": "5d48cc3bb1a9a9d9b139424d845fe01c845c334465f7f4beddd0913462ceaf9e", +"TT_bitcoin-test_signtx_replacement.py::test_p2tr_invalid_signature": "5d48cc3bb1a9a9d9b139424d845fe01c845c334465f7f4beddd0913462ceaf9e", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_finalize": "b268ff53fe582b79c1551b126c6ee24e07c468d2af2f0f5f6b569bcba83dac53", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_fee_bump_from_external": "ba95271723b42a9266b646502a3acb450e7c557141d88dbf14d11909a89d3a16", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_remove_change": "1c1fee2c80d182f9379304bfa39473d23547a6d4583593173009305e88b54599", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_invalid_signature": "b268ff53fe582b79c1551b126c6ee24e07c468d2af2f0f5f6b569bcba83dac53", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_op_return_fee_bump": "4f58cded59f7493037881c6fcb01169a26e8f4ead2fd8ab1522d746c278f2a88", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909659-90000-02483045022100aa1b91-c9b963ae": "c984cc56deedebad436128574cc5b8c980e36e5d645145b0db2e7e714305a892", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909718-90000-024730440220753f5304-ecb983d1": "c984cc56deedebad436128574cc5b8c980e36e5d645145b0db2e7e714305a892", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909800-89859-0248304502210097a42b-7a89e474": "c984cc56deedebad436128574cc5b8c980e36e5d645145b0db2e7e714305a892", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89800-02483045022100af3a87-80428fad": "67edc6ccd84628f86c56b1c23f082175b05d5ced902187a908268de40cf24b55", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89859-02483045022100eb74ab-881c7bef": "c984cc56deedebad436128574cc5b8c980e36e5d645145b0db2e7e714305a892", +"TT_bitcoin-test_signtx_replacement.py::test_tx_meld": "ad9b6fc81290c49df6604e1c258fdd760ad68e069ac48c311c58142cac20ac0c", +"TT_bitcoin-test_signtx_segwit.py::test_attack_change_input_address": "03d099920e8964f742418a18dbd95bbaf4029b6875abd400df5ba868da6fc42d", +"TT_bitcoin-test_signtx_segwit.py::test_attack_mixed_inputs": "05eeec87881bd7de56b496b1a4984214b0d7aa00038584d17fc0144f27cb6261", +"TT_bitcoin-test_signtx_segwit.py::test_send_multisig_1": "6b8187eb13b626dcd9ccc9a68492879356887d1b48e965766e9039aa56215f54", +"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh": "5984b2f6f7d9cd9ba6d74f85483c25a4123db3d14c82c63a5afb76ffd04d5254", +"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh_change": "d5ff0cd2ab14eac99469172a997fceae703870ecb174f34be93f951dcdc1bc15", +"TT_bitcoin-test_signtx_segwit.py::test_testnet_segwit_big_amount": "afa332903bd8750b2c621a08f41befd88c5588b2de4ed9c404a553a4c43f233c", +"TT_bitcoin-test_signtx_segwit_native.py::test_multisig_mismatch_inputs_single": "b597caf012f82ad3c513cf14fba7879bae5b1012ea97b1d6a1103ae850c79974", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_both": "8b51bb7d20569c08207074ee56a36785bdd7c785f28880fa5248d5c6491a0f4f", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_1": "0538b258a1cedc3cd13cbbef81a1e543092cf1886cf2aa3741cbbc5c10e2c032", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_2": "bdbe55611605f9cc582220ea0e7da0c72287bfe58592a664f30fe154b96297d7", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_3_change": "84e2780263d003854facb439bb9455939df0bb0fb26fb4107ef1f3b270271d8a", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_4_change": "a1764f1992eedd489ba157e2d1f601f5292f2685dc7dd49272eb95b32431cfd0", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_native": "4e8879e1da658649e5f44042ca76d9d46e7b74c03dc1c39eeb2e12500be80d3e", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_native_change": "074f77f05f390bc4c4b38f858503ff642fe714f4f6d9ed2303e1f3bc66b23fc0", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh": "1d1aed2b5c539a869a8535db16ea1efd61b56deb2f09139f3ccd1095dd92a67b", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh_change": "a7f613e6ea377e010008d9ebb900f21a0bcbb92b405e23dd5d4272e17ca05142", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_to_taproot": "b793e711095d9af4479419c9899fad5a86ac247221a07f59f8e2dfc612a4118b", +"TT_bitcoin-test_signtx_taproot.py::test_attack_script_type": "956b0024c64cc4d24c416723cd5e4c3cb9f4d3cdd5a83c8e51d79f8c8ad56152", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1pam775nxmvam4pfpqlm5q06k0y84e3-a257be51": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plllllllllllllllllllllllllllll-aaa668e3": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plycg5qvjtrp3qjf5f7zl382j9x6nr-5447628e": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1zlycg5qvjtrp3qjf5f7zl382j9x6nr-880d4a6b": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_bitcoin-test_signtx_taproot.py::test_send_mixed": "8f649216aedb8e55923ca2bea9e502ddd8817994e41c98e69b855053b9ff06f5", +"TT_bitcoin-test_signtx_taproot.py::test_send_p2tr": "4c5f11b1de6a9ee00b3a22e9164a250d4d0464c099d127ce783f3e7fb0a499a0", +"TT_bitcoin-test_signtx_taproot.py::test_send_two_with_change": "7a1156677fafdaa85b06fd26350103522cc18e8762dd70987272287cbe5e7b77", +"TT_bitcoin-test_verifymessage.py::test_message_grs": "bd908d86706e6769508257e9725e498a7f39a01317d81aed83aae578163831c4", +"TT_bitcoin-test_verifymessage.py::test_message_long": "df7a4943240803a40ff93ee476f214c15a2f811068824ee027a8b74a6631b0af", +"TT_bitcoin-test_verifymessage.py::test_message_testnet": "948d9065c749c47f7171b9db0532299cf104ed96ef2dac02358a85338db33622", +"TT_bitcoin-test_verifymessage.py::test_message_verify": "a757fc1c6d3382324e120d046da5603f209aee931193b5f6a06a786184de634b", +"TT_bitcoin-test_verifymessage.py::test_message_verify_bcash": "5daab3b92d04d9d7100bd3702aa17c9028cd92a63881644e7d9cd99e05818f18", +"TT_bitcoin-test_verifymessage.py::test_verify_bitcoind": "0353475013cc94fbf320cbdb7bda360cc687f37a171a0299943b67c077332a04", +"TT_bitcoin-test_verifymessage.py::test_verify_utf": "df4db8850e54cf61f0080898458d747001e3c433c0cbedca49c677217c6e23af", +"TT_bitcoin-test_verifymessage_segwit.py::test_message_long": "1ba71db780a1ee6783b9b825b3e1743e0b58751485796bdf29c2ffa725f7807a", +"TT_bitcoin-test_verifymessage_segwit.py::test_message_testnet": "83f485084fe5f069e611cabe909bf29a7616c46f414c5738c4081115ac6abad9", +"TT_bitcoin-test_verifymessage_segwit.py::test_message_verify": "4f2def6ee527b73d3c4c399e1f3d900b5e0b292b99ed4be14115fd3f1f1facc4", +"TT_bitcoin-test_verifymessage_segwit.py::test_verify_utf": "d3489ad900fde6c222b03994fd219c3e91b42515236509d7c5d5a855fd28087e", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_long": "5dce8936e9e760219019c1ddf969b03281432b62b31efd1c7c585b26ee7bc663", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_testnet": "2fd83a017b3ef50b8d1f3a9969690141871bd63646cd1d09d8da78c4e2672c17", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_verify": "d5e03863f4c043fd0f6a93b9e2e1155a6310a58882ed52b1992d96a116c6cf96", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_verify_utf": "2f3c1e20a021b5c264e3cdabf6674c9dde50fa1288578d124f8dcbb40d6f007e", +"TT_bitcoin-test_zcash.py::test_external_presigned": "decdd7e1cba8eef956b0030b556e2d378d5c5a502aca5385cb4a6d344c7c9cf0", +"TT_bitcoin-test_zcash.py::test_one_one_fee_sapling": "9f47d85201e42283824bf299a605acd1756fa65b9a11090119fdbdb577683668", +"TT_bitcoin-test_zcash.py::test_spend_old_versions": "e38517c83420fd8c6faedfe1c04cc9743d0140ae45e89e6ac62e43499d23b57d", +"TT_bitcoin-test_zcash.py::test_v3_not_supported": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_bitcoin-test_zcash.py::test_version_group_id_missing": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-derivation]": "54bc1564c689fd2adee93380f1ff48589434148214641120eec65fa497cb8d7f", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-trezor-derivation]": "c939793f12f241bd980a4f5ed447c115e94dafeab52befa97f2b6e137b10a143", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[ledger-derivation]": "6f5ccd4cb5da2f208dfd15ef9bda6e89d8785e0249e4223a45f971c4f1fc4fa4", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters0-result0]": "b48e47157618ea72f6708c9123269df4178fc9d4b302f7f568185e33c9520f4b", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters1-result1]": "07291c5db25699cca588e324afcd8d932337f103c20289f994566a878a226ece", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters10-result10]": "8b5b5ea190bf6ebfc7dc942fb83e1ee02d94af4b5f580d0105ec386b480ecabb", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters11-result11]": "38e0c392f58eb541b15c8e363463b89cb78a0b78b41f430dcf877fe84e427f96", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters12-result12]": "d7bf24f355d2eaf8ced64f38694b8b35cbb0b125deb841d62ffe3b36771b3cd9", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters13-result13]": "96609c7d34824ee4ee347ae31b2229b3c97e0e90adf501b8800c25422dff1281", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters14-result14]": "ce141714615e1cdf6ca774e7d8a4d8d65a62b1f1a032db610c442dc2fae40e0f", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters15-result15]": "2b9daaadd8c6166f562250e8b76c2f71805e8b8e5b41e7bc0841323e04aaa711", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters16-result16]": "5cb5266c2bf2c3fdeca058b07bf4d9db31c1cf97c1cc8a552c229184f33db773", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters17-result17]": "a79953bd8670917658d2b2d86eacf18d3613030b7c635ab24d64a399af033ac6", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters18-result18]": "8bdf0f84083ee6480a4a43efa80ed9c3051e7ad982ee74b59338ae6b8f6ac620", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters19-result19]": "263f6e7882c53534a42adaee2c75b09cff7d8adf515907d674fb76d3779f7dec", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters2-result2]": "83ed966ecb89e8da5e12641854ad80ce411ac504bbe28730235bfd93db168140", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters20-result20]": "2d52ba290033b5986471cbe4b3ed20e09065c9b19bd8a7b848b6970ccbc7c1a8", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters21-result21]": "e15294654d8e0d300bc2af4b42bac9d3e60f967ff1563777eff85b2dfdb4dc80", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters22-result22]": "035ef71fd131b6f85b193453eb6f7541d0d3fa5325fed29c36bb95151e86d45d", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters23-result23]": "cdee838932b04c7cd8d04c663da9e15470ad779eaf9fe8302b2336699a99ef2f", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters24-result24]": "df506452b86d633fd0865a576341dd039be13b054126a470c9be344bb65052d5", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters25-result25]": "3fbe3500e80257dfb449ebe8696f8910812315f4ff5aad76e154dde4ed5c2a68", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters26-result26]": "2af96c8a7e074e422a52d39073b9005f410268ed2b390edf8c265730899ef9bf", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters27-result27]": "ab86eb93e2b9ff656dde76d7e25bd6d13d97edc85a5af035fb5b88d2a0c8e989", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters28-result28]": "985b9862e39407f82bc1870de41eafe0a746c6fb9165f10bcc7d8b89f47b5917", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters29-result29]": "6ef11c5b0403ed026301f6642ac71fffd5836f2b92012c9213f4e8a9a4a014a8", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters3-result3]": "334b87f5bf318837bff9e2df046ad98f297cb92ea8c31fd9755d77cd91e13757", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters30-result30]": "75038fa223ce3a72ccd2360bcc4d3a69b6a59172470f4bf03ac91b94920cb5b4", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters31-result31]": "55e6a7f08f547b2c7aa5252c56697f7b2395d4906d3b3eb09caa2a1286ddb493", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters32-result32]": "86ef56ba57748b2c031df70f22e4a85a8044de5576b134f8b856c405a5e3918b", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters33-result33]": "dcab3605d8daf5c54044fd1ed9be5f43fc917bcd6cf2c6149bb6e327a0a2d10f", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters34-result34]": "d10af68511c0c40360e3b8b86935fc5992c7920097f9d90ae646d6d454b51598", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters35-result35]": "e2add741555a6408707d8301527ce80e37e6b738d0f8a85b67ac9b16367abc57", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters36-result36]": "5c85c87aa381d202a47a0df742009f20a490c345b7e495f8e783b06ddf09867b", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters4-result4]": "23bf0007874945f67300331bff25126823e771f2dec3aa11d0401137134b8c7a", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters5-result5]": "31f7c86968dfae643600876e7c10ba6d752e1d6071d00564388d704b4c3eade3", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters6-result6]": "7c36680dd598fba762277e73fd8b28d2f459efae9b8c80477447e006fdae5c32", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters7-result7]": "7e58874adbe6c7d6957094ab3fc04a32befdd1ae866b5554b3ec5acbab0aaed2", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters8-result8]": "57f2d7fe26ebcfe6635893940b22b72356e9baddf6f3a46d3e4ef7d8d0a69e9b", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters9-result9]": "c43feb080164ab1b34c0a4e0de1f5d280877db566a00553946a08431517b3bf6", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-derivation]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-trezor-derivation]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[ledger-derivation]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters0-result0]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters1-result1]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters10-result10]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters11-result11]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters12-result12]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters13-result13]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters14-result14]": "f25cbe6069ebaef88097a487ec347bb034ecd07e571e6a03953844ed4b9a8292", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters15-result15]": "f25cbe6069ebaef88097a487ec347bb034ecd07e571e6a03953844ed4b9a8292", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters16-result16]": "f25cbe6069ebaef88097a487ec347bb034ecd07e571e6a03953844ed4b9a8292", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters2-result2]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters3-result3]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters4-result4]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters5-result5]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters6-result6]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters7-result7]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters8-result8]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters9-result9]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_cardano-test_derivations.py::test_bad_session": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.ICA-3b0af713": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.ICARUS]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.LEDGER]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_cardano-test_derivations.py::test_ledger_available_always": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script]": "893343b3979b04620f1f8d0c0015c97036d3c1c22f541acd3a31b0c79d553837", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-aae1e6c3": "1faea6d97da3a14fb9b59e6581a392177fb043b9fb300063aa1e942553c30082", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-e4ca0ea5": "84a3c219d8ad331eb6b9081337d8f02d001d4389ada23af5eaf78378ec549e9f", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script]": "a4b3baddcc8016cfcb93fe6be584c5a6956bdded9e6e9aeed409214da71f491f", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script_with-f2466a2e": "f6c037f72b7f9f9fe860a83ac0322737018d0d39f79e99b9f0cfc0638276923a", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_before_script]": "ba983296bf7fb7bdcd4810488e29d97d3b14218ed252585d35f3993d33b0980d", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_hereaft-d01d7292": "53d66df611bb8d0aa93b27fd0012eca35bb573dcc6c47f34b20a0e9f8e7b09eb", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script]": "db4148f7526a834026440204c7d4ded40e000291ab51e5fba197215cc8a9d792", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script_c-d93f5fb0": "030678ec9fd950a829754c9e3ee978d92be0e1d072f5428f80a975597400f412", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script]": "7d2509dfc18bdb99354d08893a4d04f417b9c3015998b9efd419f25abefc8a9f", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script_w-789238e6": "a20718d3a5da70464e2d3f51acc624b200a34f6ca2a0c136bb401356afeb4d10", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script]": "797f4a396576ecf31c57a03b8404557ac8c2b0f492984f330543f5ebb7a9e1fe", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script_-1579fe2a": "d2fe000aee8b43ec94506bfbb34ff9be03d543b818af6d44df2ade601a55587a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[byron_to_shelley_transfer]": "2e8892caf1223d4e1cc05967dcd7186fe27989caf1d5c7dfb59d802f3c779afe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change0]": "b7abbcad30b689bd9515c0ed67b759544e2826eb30af8b839fb1f733caf1d210", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change1]": "79c44107f37877714328a81f636c857961ae72945ebb4126d950b68421d1a017", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_multiple_inputs]": "90f38eccd9f35304701d26528eefb1f9adac421f4b4315f4c7d9c4b424fe8112", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change0]": "90f38eccd9f35304701d26528eefb1f9adac421f4b4315f4c7d9c4b424fe8112", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change1]": "d77356d83a61ea945769155e17767c8d583613d262df433df8bdf34d2ab200bb", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_different_policies_-1dbb1bfb": "7b9bcab91ca33d9f6f98f7e447b28cda66bd3216118366b216bb1672b92ff04b", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_multiasset_output]": "879aea9df40c9ffe464cc86694b9fedeb88fe9cd6587abc41b8d7d03d741470c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_no_ttl-validity_start]": "0ff67f1adb9fe309ea339802999c2ac8051e84039077f8e27e471d67076ae779", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_a_required_signer]": "943bdd3ea3425d03892189043033ad2a59433c7c058e12f720798d44d1f1f62c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_most_elements_fille-29691455": "acf33229fe9a4c6e52c78a16c9e5e7f89d9c5f740abb9fd00dc591c834e6f94d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_output_datum_hash]": "bfa1d5c3981fc721b477269f43bcf798975191722e7a2eecba13957d5e9daac8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_script_data_hash]": "d8f57bd46fd0942032492ae6f1ecb235303b9755419d39a91c4e6cfb895537dd", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistratio-1ab28f77": "351d3f1aa3dde5a1a99e1907f76fc4bb4b13b05adb7544c584134db2522ea8a4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistration]": "351d3f1aa3dde5a1a99e1907f76fc4bb4b13b05adb7544c584134db2522ea8a4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-a144c34c": "22b26f0d416dbf5bff18a57d83cd0975b3700217d23d2ee29493d9bc7eb2a640", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-bf5f9707": "e45fe406ec4c11ea312f4495843374738cb577cc8bb76f1bd5ce171fa14f3e34", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_token_minting]": "91e03c95b5720b7668d9a61685cec54dc44e81f66bbd0e5217360f6da0fdb72b", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_a_required_signer]": "b80a4b48453177cd3433ff44aa6be51b187232cbc2c100717958cd74a4e60de7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_both_output_formats]": "0db0e86e6d7f19db0e0546880912a3a034b4e62ee59774fb461032b40aae643f", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_inline_datum,_refer-d1082570": "94eb0aa46f56e1d11948d58ba445e048ea625513905f47a3d4a49f38713a9b07", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_long_inline_datum,_-1f681aaa": "3f6a87644366b356192ac8ddeb57ebfb063335d0c381135d87933fe25d7e7dc7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_multiple_correctly_-6545455a": "0cba8aaef98e633fdde59bdb2c4baabfab8d8f63a6ca747de16a1ebd96ad158d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_network_id_included-d9df16f9": "90f38eccd9f35304701d26528eefb1f9adac421f4b4315f4c7d9c4b424fe8112", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash]": "94eb0aa46f56e1d11948d58ba445e048ea625513905f47a3d4a49f38713a9b07", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash_a-84ad587a": "3f6a87644366b356192ac8ddeb57ebfb063335d0c381135d87933fe25d7e7dc7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_address_but_-b0da7209": "857ebe43d424c67ae4469e4c554aaeb61e9babd647fe86a87d91858f25be801b", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_data_hash]": "b80a4b48453177cd3433ff44aa6be51b187232cbc2c100717958cd74a4e60de7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_token_minting]": "309913ff6259a4d1d2cec524d5354eb4593829575c8d09a3d9e1609de8e44f30", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_an_ordinary_input]": "14380bae4fa9b77c659f6de48387ae48c2bb0bee30102472bf36710abad4004c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a33e6741": "d7de55d7ab78bea3df35326f6f442d5203b668e282c382c3fcb780b4b8a8da09", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a6481374": "2c2cb18f46d1ed891f13ea91e866643a4e77c3b70a9295998a4a728687985121", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_key_script_addre-d3366a63": "73c9bbb87b5aad7a196b39a7219c0a92805ebdadc589ed9929b3c7002d544b79", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_device-owned_collater-8f38b4d7": "b3f7ef725b032e539c29b61321f230f898f74f8ffcb489aa73bbb2ffa00c6145", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_external_collateral_return]": "a2ec62acf74a79523fb28a419a5b2eaec145a3913528f7adb860c285fbc38dd2", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_output_datum_hash]": "f2f71b92be1c9dd8e94f8d45e4b1e5ebac95071529622f4b908fbd8a7ec61d35", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_reference_input]": "a0d484d217a017e7a66d8bb3a3c05fc2e0b9a1daf4d74b1f886006f9cc14482e", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-6a67c1eb": "b85aa3a802ef7778ca83197cc90fa618d529541bf014dbc0f5b06d5f314d9676", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-72ef969e": "2e990b1e0959842c062bf6f897bbf48318e539c6dc0208bff011001da2304a9d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration]": "839dd2a1cee6556c52e0e1427a3474a2f5cc951f133591da7996a4048868c1e6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration_-78f5c748": "05dacf0512707e325068bc73d9f800c6a02c91723fb134114e256110f4bcf055", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_an-4da9385a": "8fce72aaa8b9be8d3e6e80cba361615fdbf2a21e68be6fa4ad8b31ce25d21e1b", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_ce-46b0a250": "4a40d8d72918a69f29b6b09684c0fc0349e75556c881ba06acbb32c6dcdc02c9", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_token_minting]": "ab1bde6f0ece524068a37e3afeb2b8114655958350827b5f85bb5b587b3bf726", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral]": "55af5ee15b0302a94dc26636db8ac848f9b64986ff6c7264e817ab8648fdac2a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-3f0b305a": "e874ee80e62e5ccc80ac60583247784f05a73367ce025b592defb866e58eb78d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-c92d773b": "b14affcde22524bc0883a915c91858cb85c649fc7ac58f0232aaa2f9b88ef8d6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_without_script_data_hash_a-9590827f": "862445357cbc7804dbddc44d3cfbd6ac6d90f30e6d2f54de2f9bd9be61166c40", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate]": "71e27ddd0c5b852422bbd13bf12641524ecdc0b22643ffd8007fd7f20d8b5a98", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-336f4a44": "71e27ddd0c5b852422bbd13bf12641524ecdc0b22643ffd8007fd7f20d8b5a98", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-d3427614": "cbbbaa98ade8c16c916cf03eea556c785f5756f6cb344489093dd4e752a1c039", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_with_zero_margin]": "9081f59731a35eaa0f83a9fa311a0a51681af39103a7b6b5c94d97a0d42e2811", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction]": "4d950d55af836a755259a13da023e902cac5945184f4c4a5342d9cbc43f29d6c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_additional_wit-36ba8ce8": "f91e6dfc2a21cdfd278ab91c4c898a97da0997f998ae14f7003a0c10237a2d4a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_required_signers]": "9717510d327de7702bc690390f315f7139bdd1eb21445a34f2417608f7e8347a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-0c37e6dc": "d9508806056a67b1cbf31bbc66358bb164492e5967f1f9f39aa1eff81e1f9b25", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-7f1d12f6": "87a6679cd872eb5ebcfe0d173341d5eb8afa5b566f474c4a81e0c64d5f19f3b2", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_output]": "b80a4b48453177cd3433ff44aa6be51b187232cbc2c100717958cd74a4e60de7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_script_address_a-56fc16f7": "25b92c25040cb0bf5046e6490e9a01645de23cd8831346b3b1286f8334a1876c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_enterprise_address_ch-15518a4c": "472a18d6a57e58708d32c606f407e2d790e80a73ed6e1befb212740cfe340d84", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_pointer_address_change_output]": "37a8aa7916a726904b4e63e0a4abde2e6574f5297bde0a6236a123c17a7885c4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_certificate_with_no_p-0bbad967": "fadc56399821de6db9e902326bccb023c7b5327735eb9a79bcdf42358b9ce9a6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_on_testnet]": "72017814a8195126710c5923ece327cda54e584f314516e11f489fb428724ed2", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction0]": "3fda2d79115b394eefbd88f5acdc7c07e69f87c09331041c5d61891ae3755a60", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction1]": "fff5d27bb997940fb7fd4ba85dcfa38608c3cbbba5ed667ea1e2c9e5e0c64eb8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_auxiliary_data_hash]": "b80a4b48453177cd3433ff44aa6be51b187232cbc2c100717958cd74a4e60de7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_p-3c7243e1": "2d1561766106a3f297771ad5e6a16a976817b420eae406c3d77f04e8b646af18", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_s-20438873": "71f501ab2323b3c337fbcdc0f003c3c684137a06ae0ea57006fd90b2f76a8441", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip15_governance_registration]": "27d0a7036a93da14e945482f118969fb9be6af6d902f505ef684b06301cc74cd", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-35e04232": "b4d0164cb9e8fa0fd074d20fddfefce1d1946c9eccf58c45803fd391040b118d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-f00c1b65": "5efe222e23b9a96b578afd5cd93636220782d7425a4881cf4111947f416db6b4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_everything_set_except_pool_r-1e1ef130": "c055d81bd560c50b694655fc164d475ce03634c043b4a862c363a1984cd8bed0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration]": "f753a042bb076e8ed1e06cae2e868ad09ee0820baa4df68622364520d66bbc03", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_and_withdrawal]": "f753a042bb076e8ed1e06cae2e868ad09ee0820baa4df68622364520d66bbc03", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_with_ac-9ca046f0": "1a6ed2455a48653b5eba7d7bbdae3f83e88c89203c5c67bbc13bca4697ceb1d8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_and_stake-3fdfc583": "590a3a5ad64da479ee0bfdab655662a0874525c8913f7e57a9b54ad3b22da4c0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certifica-e7bd462a": "6b6b230828261243ffeb42e0217b62f0faf5652389397943883a31b529c0eada", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certificate]": "feac102a7ee574a4b8cef2283ce25f2acd90e996c5d38df3f9b4bdd2dce0907c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_ttl_equal_to_0]": "4f21f1cbb4fa112777970600c3410eb1e719ce1b7347bf97f1ea1229bf5591c7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_validity_interval_start_equal_to_0]": "94058a1fec3052bf10da392976348a2c6939ef4ad1dbc06804aeab792d37013d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_change_output_path_in_ordinary_tr-805f9bd0": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_input_path_in_ordinary_transaction]": "90f38eccd9f35304701d26528eefb1f9adac421f4b4315f4c7d9c4b424fe8112", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[additional_witness_requests_in_ordinar-9c4f94c0": "90f38eccd9f35304701d26528eefb1f9adac421f4b4315f4c7d9c4b424fe8112", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[all_tx_inputs_must_be_external_(without_path)]": "c9ec42c803a4822800b81fc9879aa33ae0827464915cb87d60ab37a1b5b58d1b", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_mint_token_group_in_wrong_order]": "74320ce1f65a8272eec547e229658133edad925d3171e112ebd75b7041bf85be", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_multiasset_token_group_-7c1351bc": "9dfa60f6bd0fa1601cb2593a305f0ce95607759ed564faf43861b765b585202c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[auxiliary_data_hash_has_incorrect_length]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[both_datum_hash_and_inline_datum_present]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_input_accoun-863fee7d": "2e8892caf1223d4e1cc05967dcd7186fe27989caf1d5c7dfb59d802f3c779afe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_output_accou-5a99fb35": "0ff67f1adb9fe309ea339802999c2ac8051e84039077f8e27e471d67076ae779", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_key_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_script_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_invalid_pool_size]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_key_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_multisig_path]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_non_staking_path]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_script_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_stake_deregistration-e17db500": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_withdrawal_account_mismatch]": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_path_larger_than_100]": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_staking_path_larger_than_100]": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_with_script_in_payment_part]": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_is_present]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_prev_hash_has_incorre-99d2dc0e": "b769d7baca6ba1b773231dc76ac81c3a8cdbd744647a82fe8944d909fcba4f20", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_is_present]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_datum_hash]": "e58a06241ffaa5405e245194377bc8eaa0db4e705f8d4243bc894f6d6f353df6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_script_address]": "e58a06241ffaa5405e245194377bc8eaa0db4e705f8d4243bc894f6d6f353df6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_a_different_certificate]": "5edaf4fbafead46d7b2278006a478d72d5cc86cf949f8474da6fe9aaf6ce0f24", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_multiple_pool_registration_ce-3000d4f0": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_withdrawal]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[fee_is_too_high]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[inline_datum_present_in_output_with_le-43c025ef": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_change_output_account_mismatch]": "33a533b92d34031b1f13a199a44b3aa85ac3a649285d1076a17ff86a1c9fd381", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_stake_deregistration_certifi-b3383de2": "b4acd9312f1994fe6883d45cca1fbe7703165fe51155e4c360ed89d15304b1a9", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_withdrawal_account_mismatch]": "b80a4b48453177cd3433ff44aa6be51b187232cbc2c100717958cd74a4e60de7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_prev_hash_has_incorrect_length]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[invalid_pool_id]": "5edaf4fbafead46d7b2278006a478d72d5cc86cf949f8474da6fe9aaf6ce0f24", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_protocol_magic_with_testnet_network_id]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_transaction_with_testnet_output]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[margin_higher_than_1]": "5edaf4fbafead46d7b2278006a478d72d5cc86cf949f8474da6fe9aaf6ce0f24", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[missing_owner_with_path]": "5ae8affce156b9804dc2265039718439925a4b344d7ef656dc252b7114578b60", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_1852_multisi-b7679330": "57b5278a4b95f66eb78714c1bc419277f560509f5a606ff007b8d355299da3f9", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_a_collateral_input]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_collateral_return]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_long_token_m-9fb3cfe5": "d5b83f7100642f7d7f9c62e7ec38af8e72ac7031bb794cb0272896abab0c82b2", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_output_conta-e3b36436": "5e4a32cf62c159158d18934bfff32f9f3fc27b52f78bdb1b00dcfc2365c10c41", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_reference_input]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_repeated_withdrawal]": "8c9ade84c67f2c32c738b9ef17c19829fd44089137d2f7aa659c790a66636e35", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-19d1722c": "111e9920e80a0ba76c66fdeec69640d5724902d10b072d5c572260bb446880fe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-394991f1": "111e9920e80a0ba76c66fdeec69640d5724902d10b072d5c572260bb446880fe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-351ce869": "111e9920e80a0ba76c66fdeec69640d5724902d10b072d5c572260bb446880fe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-43da91d4": "111e9920e80a0ba76c66fdeec69640d5724902d10b072d5c572260bb446880fe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-456f1292": "111e9920e80a0ba76c66fdeec69640d5724902d10b072d5c572260bb446880fe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-84b1254e": "111e9920e80a0ba76c66fdeec69640d5724902d10b072d5c572260bb446880fe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_total_collateral]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-9f7e1700": "8c9ade84c67f2c32c738b9ef17c19829fd44089137d2f7aa659c790a66636e35", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-e98b1f5c": "8c9ade84c67f2c32c738b9ef17c19829fd44089137d2f7aa659c790a66636e35", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_wthdrawal_ad-3291ee9e": "8c9ade84c67f2c32c738b9ef17c19829fd44089137d2f7aa659c790a66636e35", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_without_minting_b-da5ba399": "57b5278a4b95f66eb78714c1bc419277f560509f5a606ff007b8d355299da3f9", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_long_token_m-350c65f4": "bdeae29d1a907bb730e4539b7bf0b3459a6cdaa9614589e4dbbb4630842781eb", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_token_mintin-bc56f145": "2b634084c12404a1d2fa71cef86efd8265829ccc4cd1bd241f405c195d045bae", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_without_token_min-a128d577": "4c209bc3a6231a22f58bca00e3b2614e567a73896aeb3d8e1f405760d120663f", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_has_invalid_crc]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_a_valid_cbor_but_inv-ea3da215": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_invalid_cbor]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_long]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_short]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_datum_hash_has_incorrect_length]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_has_both_address_and_address_pa-2efc280f": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_total_is_too_high]": "adf92b0b1aa75169c3880d840927c271ed5b186205ae38f801df11c0797c516a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_with_reward_address]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[plutus_transaction_with_output_contain-74465253": "dd51f237e31f7443d8f3a2ea3e2fdb9d380e211cc88874ed6a783cc5309819b7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_mint_in_wrong_order]": "b243990c2fa55ef09f509bbcf324ef6e7cc71b4b4eb1e38917dc53d87ce8eb44", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_multiasset_output_in_wrong_order]": "73d223efc1904f54efd1b1c8db4d58cb5eb661fc58dd70a85168eea6cfcfe1fd", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_belongs_to_differe-e79b6855": "5edaf4fbafead46d7b2278006a478d72d5cc86cf949f8474da6fe9aaf6ce0f24", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_is_a_base_address]": "5edaf4fbafead46d7b2278006a478d72d5cc86cf949f8474da6fe9aaf6ce0f24", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[reference_input_is_present]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_mint_token_group]": "dcbc1c2e16787c6ab3d880d2455f75de8c6d117baa477e55aa538ec3416bf338", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_multiasset_token_group]": "4d2f6f53a3aa0fc797c931fee5b2a64ff1472cefc5046b5ef3c4834713165cab", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_mint]": "198929226e7e96cbad499d0189fff87b51e6b9b70bb807e5e9ce5a63bb860abf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_multiasset_output]": "0513ce71b46c509c1e238a6538ae507cfba5715d1d3ca699809cd47e21724327", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[required_signer_with_both_key_path_and-7d9a3c59": "e58a06241ffaa5405e245194377bc8eaa0db4e705f8d4243bc894f6d6f353df6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-02b129f8": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-11c8b442": "71e27ddd0c5b852422bbd13bf12641524ecdc0b22643ffd8007fd7f20d8b5a98", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-2d1899d5": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-3f8170f6": "71e27ddd0c5b852422bbd13bf12641524ecdc0b22643ffd8007fd7f20d8b5a98", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-60961d51": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-790fc948": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-883e81d5": "57fc5812053da278ba2678ea2818b65804907f1ec2421591bc9b3e30226756e8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-9ae6620c": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-d0eba163": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e7a533e7": "5edaf4fbafead46d7b2278006a478d72d5cc86cf949f8474da6fe9aaf6ce0f24", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e908b1a8": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-f9976ae8": "5edaf4fbafead46d7b2278006a478d72d5cc86cf949f8474da6fe9aaf6ce0f24", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[script_data_hash_has_incorrect_length]": "7d4416785dfb2a1dfa01be1e68cea41868583d345fb2b11fb232ba7d44f49a41", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_mainnet_transaction_with_testn-af110e3e": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_testnet_transaction_with_mainn-ba78ab8f": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_account_larger_than_100]": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_certificate_and_w-003a1023": "192178f7dde2272e288cf0fd9b6efe3adc645aed69c8db29740b389126428dc8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_protocol_magic_with_mainnet_network_id]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_transaction_with_mainnet_output]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[total_collateral_is_present]": "38e993a0124493eead789610b9343dda72b1d761dad4b2f100bc6e8eb162e714", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_auxiliary_data_b-d83df998": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_voting_public_ke-0ded7777": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_governance_registrati-efb78b43": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[two_owners_with_path]": "ae1c08b6bdeec1942558b8c4837489b33d182f678c50d225e1d63e6111969bd5", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[unsupported_address_type]": "f314f8c2668ddaeb1049ced9b7c338202da941bcdc968e03b66ae39eecafca61", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_multisig_transaction_signing_mode]": "111e9920e80a0ba76c66fdeec69640d5724902d10b072d5c572260bb446880fe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_ordinary_transaction_signing_mode]": "f090686ae594e7f43183ebef217c66674ac6528ed56b5554d55e0274cb8b501c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_plutus_transaction_signing_mode]": "95d8fbe65bb82b3d06e0de784a4334fc5195babbb4442f1833a8cea2aaa32cff", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_amount_is_too_large]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_key_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_script_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_key_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_multisig_path]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_non_staking_path]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_script_hash]": "7c68ff572b7c0da2892f86c38fec9387f6581df118ee1072c7bf46eebb103384", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[mainnet_transaction_without_change]": "1adc8adc3916d6b2e94d421c59f5346be841c31c890051c4b8ba2502abbfa9ae", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[multisig_transaction_with_a_requ-c2fba589": "07529c4fe10ddf5c0314a9d1428ff6f514e20e3824bf1ec65be8651e2bc445ad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_a_requ-9728607e": "caf8cf5c639e5f9b8f46ab16d123d9cd02573cd5c1d9345c26f49ebea599e248", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_long_i-708443f3": "fe919894623ea003572227a9a68438fef1a0f9c1cb16b3b1fdb210029c689220", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_output-9ba7352d": "7b0c3b3a7873a6b0b6efc7178c4f0583599f20d29395d30ddd353c5003ed0a07", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_reference_input]": "46e8970372410cdbdd215f1208157e12a44474cf7aeb35d5e72a89a0a4a552c2", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_total_co-e846c221": "947edcf1f385af095ba1f941b253c9d3e42e0fab4f9002aa3b3f1b1583113fe0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_cip36_governanc-36bf9253": "af381224c1d7428494f47ff9131e85a60b583795e4ddcbf0d71323eb2519bef1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_stake_deregistr-6e84da2f": "d5ce8568f26975d729e409d97e9bfd618f2860cf4f272670233172515bc70ef8", +"TT_eos-test_get_public_key.py::test_eos_get_public_key": "8c72dda5a9deb2d3f936f80567379658c5e1ea7ade0f997bcf3180a0dcd3e0a8", +"TT_eos-test_signtx.py::test_eos_signtx_buyram": "d2188ce4cb3c73c56236195d65264e755cd8a0d40ee416180db5197aebacc18e", +"TT_eos-test_signtx.py::test_eos_signtx_buyrambytes": "b0f70932b055f6ca812192ce4a7f5ff98430fab1720558da3bef24eb9fe01a3c", +"TT_eos-test_signtx.py::test_eos_signtx_delegate": "b4e60a27832b190095737fb787fe3abd5f4a3cfd7f62fe8226883dea46067e11", +"TT_eos-test_signtx.py::test_eos_signtx_deleteauth": "a79ba0fed3e49cae9b8fe4b74400d8ec782bdceec92f301786b7ef08f9adc79e", +"TT_eos-test_signtx.py::test_eos_signtx_linkauth": "60e506a6b94bf9cf638cae4436070d4462a81b86f5ba44f5b2e8fe1ebb686deb", +"TT_eos-test_signtx.py::test_eos_signtx_newaccount": "895ef5fabd593d45379a0ee8a8c941ea380a03e9c3ea9546fea02c28fe38be75", +"TT_eos-test_signtx.py::test_eos_signtx_refund": "4bb5f50821b7f1fddab708a955b46c19019c4013d154d19891c108a8f0ae6451", +"TT_eos-test_signtx.py::test_eos_signtx_sellram": "a3817938a3f0ea74231ab484bb149accc87a3b320a3b79429ebf6d95df0d9988", +"TT_eos-test_signtx.py::test_eos_signtx_setcontract": "e9c1146c37b511182a35e5434b97e2e46a333ca54f1b0f3a50bd72954a7d6be4", +"TT_eos-test_signtx.py::test_eos_signtx_transfer_token": "2ca4c9adce48d346f199bd0a6d9107679b1439dd08f856b820b3f8c972bd3ccc", +"TT_eos-test_signtx.py::test_eos_signtx_undelegate": "7031175e98dddec968ada7c712ccb676c9d475321047fb73e554e36302473a01", +"TT_eos-test_signtx.py::test_eos_signtx_unknown": "59e075a42d07fe422e97412516e68b3fa9bdaaf7d20da69d4b5332e71ed697e3", +"TT_eos-test_signtx.py::test_eos_signtx_unlinkauth": "bacd804c3e654dcd1f38921bc9f4b9b9c56dfeaac0d9c1eb3cfe16a87d086e47", +"TT_eos-test_signtx.py::test_eos_signtx_updateauth": "425892e709cc058677eca8c9c12f910022f81e77fe5bbf61677d48e9cb847785", +"TT_eos-test_signtx.py::test_eos_signtx_vote": "0f3a1ee4e6590f8989f39ee826730204c8656767d4e8ecf9863a354ec3af4626", +"TT_eos-test_signtx.py::test_eos_signtx_vote_proxy": "7f12dc8b8ad3e04bba37af5421cdbef48505ed6ffad345844e84cf987934a8c7", +"TT_ethereum-test_getaddress.py::test_getaddress[ETC]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getaddress.py::test_getaddress[GoChain]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getaddress.py::test_getaddress[Ledger Live legacy path]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getaddress.py::test_getaddress[Wanchain]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters0-result0]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters1-result1]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters2-result2]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters3-result3]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[Ledger Live legacy path]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters0-result0]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters1-result1]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters2-result2]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[array_of_structs]": "ff7277822320f8ac19e90b29bc04f0fb009b35a9a060793f99a31afe53f186ca", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[bare_minimum]": "192366e4fcde575be3d4a1dc733379798abf40922aaf80ade7fbfbb2c735218c", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[basic_data]": "7c0394545b40235762cb71c48f08bc4155d9e60202b9bcc2bb227c6d18582779", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[complex_data]": "e468efd70023f4539ac843d58d35b126998f2a339a79216b2d06afdd8c27203e", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[full_domain_empty_message]": "d3b75f9050038a6cd36e4fcb03bef6586cbf7a9a4ac661a173cdd767321b93ee", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[injective_testcase]": "4d062f3bd6f1940545909e00a347fa4d96376f2c9725c427da1cf9ba07bc27fb", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_non_v4]": "7c0394545b40235762cb71c48f08bc4155d9e60202b9bcc2bb227c6d18582779", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_v4]": "7c0394545b40235762cb71c48f08bc4155d9e60202b9bcc2bb227c6d18582779", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[structs_arrays_v4]": "7c0394545b40235762cb71c48f08bc4155d9e60202b9bcc2bb227c6d18582779", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data_cancel": "33ff8ab60d46943835d5a65f67c94a2a979fa74410d7d8d76fcaa593584caf21", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data_show_more_button": "f08c9b73e8f1629d18c4506adfc0a02a2f44721ad2db0112880f479748c39c62", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters0-result0]": "b652b2388938a785a60deceb4b49b3d163141fbce4572cf6e9259866621f0729", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters1-result1]": "c82429985c32a3a6560b9df2ed446fd23483caa027f0f980c21cc9f245e3218a", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters2-result2]": "76528b587ed16167647312651e177ae7d4e0f8f9fe3b5f9dff29ed4e988460f6", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters3-result3]": "c35690cae1cdfe14281bf4a59657ecb06354ece9623e0a3112128ca349e88068", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters4-result4]": "8505c8987cfb8ea09f43ed8b0997dd04a0705825b9c63e2f0b94f8429bcf5c55", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters5-result5]": "06470a3d7eabee6c8ca7653a9858c8ec703fe12675ebe5852e56860b547cf205", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters6-result6]": "2756147cdfd189a199f18d86edbdb53d929d9b9857ff60d7083a08698b5f24be", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters7-result7]": "9107eb8cf52be38d1d3685bb9486f28deef7b21772f2a8f4b7944a7d88dc6ec2", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters0-result0]": "ad91d5d552dc74028a2c642afd5fb20924b53686692c1326a1525be5c8637c92", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters1-result1]": "038d316608faf51e6d1a388b1fc5a5bda2f21cea85434eb9798c1e200585e92d", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters2-result2]": "6ec6719185c6f824658a1da96900ba048d1f22d2750fa277a2592a00ec509294", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters3-result3]": "fd2740b041f1874bb9d94cadce406a8d91883c56c30656da647aefd83c92bf23", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters4-result4]": "c87dc5ccfe933cb56cc056693fa7d6ae68fac60831e778b3c006bc463305e607", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters5-result5]": "8d0a9da0a0637128e2090f8f56468b46b468f4493f9f81837671e464e5d0b44d", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters6-result6]": "c96034f74b5d2986897f4097fe7b6c3526fd16e706268f3d91d0787f6f97ecb9", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters7-result7]": "2d8dfac1f9cf7d4b080e9eb4ac64f572b6d96fc0009da6d3145bae673e48ac43", +"TT_ethereum-test_sign_verify_message.py::test_verify_invalid": "ad91d5d552dc74028a2c642afd5fb20924b53686692c1326a1525be5c8637c92", +"TT_ethereum-test_signtx.py::test_data_streaming": "08eee0104cc3a1129d0acdccc042f8753f44aa6dfec27463da174d91fbce1d29", +"TT_ethereum-test_signtx.py::test_sanity_checks": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_ethereum-test_signtx.py::test_sanity_checks_eip1559": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_ethereum-test_signtx.py::test_signtx[Auxilium]": "b793467d91e7278b0f95a490d5c2ccbef819ecca19666e3f39ed51298c0aa056", +"TT_ethereum-test_signtx.py::test_signtx[ETC]": "d6a64f33e71502a025ad7277eaf6eff8131f74f42b620a5beb15baffe7ef7140", +"TT_ethereum-test_signtx.py::test_signtx[Ethereum]": "5011da832a78d154a6022b8c7044bbcb9f12ba714347a63bce4965507a751eaa", +"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path0]": "eaefb6ed3878478ac45b3b0d2a3fb7542a040bceadfb1a42376e77a8196f6829", +"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path1]": "5011da832a78d154a6022b8c7044bbcb9f12ba714347a63bce4965507a751eaa", +"TT_ethereum-test_signtx.py::test_signtx[Palm]": "88146f8e6b47ef4bdc2fb223fcf9ed5edef66db47f4782864868a1418ebb631a", +"TT_ethereum-test_signtx.py::test_signtx[Pirl]": "469de10a34cb7ddf03ab59890ec25837711417e25b0827c154a1869b58b5be73", +"TT_ethereum-test_signtx.py::test_signtx[Rinkeby]": "3a489b002069812dfc9ec1f1c5e0cb5c5104fa6fc7718964aa71b81a893157c9", +"TT_ethereum-test_signtx.py::test_signtx[Ropsten]": "27c36f87aeebbcab1f7db302146ce9235d342c9f81d797599696c81e043d95ce", +"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_eth_path]": "9c60212621db478507862bd688c64a67b2cdd39350b5c5f18af4fbe02d0d184a", +"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_testnet_path]": "9c60212621db478507862bd688c64a67b2cdd39350b5c5f18af4fbe02d0d184a", +"TT_ethereum-test_signtx.py::test_signtx[data_1]": "56c8e730346cf69bf58702b7b76ce330943fbb58dfaf7471304b90c3eaee2e39", +"TT_ethereum-test_signtx.py::test_signtx[data_2_bigdata]": "6ff567eb0d8c89eeef442e8803ff133e3e385d773af13b8c3fa1a11da9f495a9", +"TT_ethereum-test_signtx.py::test_signtx[known_erc20_token]": "1b13d5a6d541ba09e2539c65a50c1e5deff34422b08b65389bdeb3660310f326", +"TT_ethereum-test_signtx.py::test_signtx[max_chain_id]": "9c60212621db478507862bd688c64a67b2cdd39350b5c5f18af4fbe02d0d184a", +"TT_ethereum-test_signtx.py::test_signtx[max_chain_plus_one]": "9c60212621db478507862bd688c64a67b2cdd39350b5c5f18af4fbe02d0d184a", +"TT_ethereum-test_signtx.py::test_signtx[max_uint64]": "9c60212621db478507862bd688c64a67b2cdd39350b5c5f18af4fbe02d0d184a", +"TT_ethereum-test_signtx.py::test_signtx[newcontract]": "82d6dfe12553742060d46c323bc0df12931a86eea2785fb5d096ae561e7efa29", +"TT_ethereum-test_signtx.py::test_signtx[nodata_1]": "3200c998c1ba1000f32248b97cb9f3b8e1573cb224c1c77791bf5169360620e0", +"TT_ethereum-test_signtx.py::test_signtx[nodata_2_bigvalue]": "827eda3889800491b6bb71e5be9a0bc56c6036fd8eeea45ee8de5736f74206da", +"TT_ethereum-test_signtx.py::test_signtx[unknown_erc20_token]": "42bd594ae12bfc6fc5d2c3317af653d053c26545f2252cbfc3f1d29feb160b51", +"TT_ethereum-test_signtx.py::test_signtx[wanchain]": "d067d9f4a2b4ec6259d60f3a8b977718417dcc03ba6d8d7ea8539bbf4df3228f", +"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_go_back]": "83895b1d2a4e952df29f8106e81932e5d4945d2799f6f0e0562c934b9d7131b3", +"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_scroll_down]": "953929f13edfaf87af2606e7110803da3f5cfb9c07d4753227d87b1c844b0513", +"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_skip]": "675c14814d636b961843d4b4d25d3933d537116a14798423ddfde725b1ce9988", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[Ledger Live legacy path]": "a270abfea43da6b309cceb92418b95ff5f88b94936a8df8ccbb9ef8573eb230c", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_1]": "f41662a0f402adf275af1d54730b2ad74b3cfc00dbb70abb9bdc4fd496632232", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_2_bigdata]": "cee4648f7e28bbc9544a574dcd55818b7ca2fd7bbe99d67762c6568145d3d086", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[known_erc20]": "50bc9d315817457d51be056f7027e5dc94a4a7e543b58378f48ced5843e551ee", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[large_chainid]": "909a9317e05e8d5801b285dcaf2ad94089b02b90d38733649808ae8ed9e0153c", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[nodata]": "a270abfea43da6b309cceb92418b95ff5f88b94936a8df8ccbb9ef8573eb230c", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[unknown_erc20]": "a37f62bd21a82466f87c8980683eee8f815e690e50c86d33e6a4cd6f0bb4fbe9", +"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list": "a270abfea43da6b309cceb92418b95ff5f88b94936a8df8ccbb9ef8573eb230c", +"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list_larger": "a270abfea43da6b309cceb92418b95ff5f88b94936a8df8ccbb9ef8573eb230c", +"TT_misc-test_cosi.py::test_cosi_different_key": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_misc-test_cosi.py::test_cosi_nonce": "e66eedd8881d9603c56534ab9496cbf7e95e60f35dc4e77679ea6ed6837db5f9", +"TT_misc-test_cosi.py::test_cosi_pubkey": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_misc-test_cosi.py::test_cosi_sign1": "e66eedd8881d9603c56534ab9496cbf7e95e60f35dc4e77679ea6ed6837db5f9", +"TT_misc-test_cosi.py::test_cosi_sign2": "b1c4b05280957b2a02adf1b7cf50aab56157e71454b52609e93f36055b101373", +"TT_misc-test_cosi.py::test_cosi_sign3": "a917d2f3b13ec7d6db3212302bcb6aff353392300388da9c38ebb4ad050f7005", +"TT_misc-test_msg_cipherkeyvalue.py::test_decrypt": "ab5d612a3156054cb0dd323e902c002e953e4152c2fc194f9023381c8916de8a", +"TT_misc-test_msg_cipherkeyvalue.py::test_decrypt_badlen": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_misc-test_msg_cipherkeyvalue.py::test_encrypt": "d3a6119f41ed89a7dcf4484f857c3d37e247e4cab8244497f60a4fc6feeed841", +"TT_misc-test_msg_cipherkeyvalue.py::test_encrypt_badlen": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_misc-test_msg_getecdhsessionkey.py::test_ecdh": "07e8e087631b45e066ddbc90796ee8a91da81d1f687a9dd347cb63eeb96aeb60", +"TT_misc-test_msg_getentropy.py::test_entropy[128]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[129]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[16]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[17]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[1]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[20]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[21]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[256]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[257]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[32]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[33]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[3]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[4]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[512]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[513]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[5]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[64]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[65]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[8]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_getentropy.py::test_entropy[9]": "66252e4fb3489fd1ef523586bd55e1e38c29bdfb14432c02caabf1e46ba08309", +"TT_misc-test_msg_signidentity.py::test_sign": "3dc3521a3fb011db40176b785a0e514274165c3e6d4cd67f18d91b4331ef7546", +"TT_monero-test_getaddress.py::test_monero_getaddress": "e4692f5574033916e317e1d4af6e7ec2c1bc0c2450d1b28f81829bd03023c13c", +"TT_monero-test_getwatchkey.py::test_monero_getwatchkey": "ec942399ee66285fe70ddbde2739e275a1fa415375f1a87a383b770d7d144e38", +"TT_nem-test_getaddress.py::test_nem_getaddress": "037ca6882f39749d875c956dc2ccafb396dc13e32443386f0cb24d71c9f86450", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation": "0cba507af7688a109f5cdda13ba87a745de2b3ca5fdcb5cd4d69f3be5eb1ed60", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation_levy": "9e5e87f609a418e894cd1e2461d3a9fc9263aaa465bec7a1e97128e83cded0a2", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation_properties": "34e666e57cfeb11421c0eb1692bb2c884d2d1089e5102c55b9e05257fa5ba721", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_supply_change": "c8a4944cecd15ed7cec6894f3f016e2a077d3c8f3bac9efb0c506cdcf5a0b94c", +"TT_nem-test_signtx_multisig.py::test_nem_signtx_aggregate_modification": "72f3b8acc752e4db4671ec3b9fef9f67ac667a474e18fc6165f90151486bf4d5", +"TT_nem-test_signtx_multisig.py::test_nem_signtx_multisig": "49f3529a15c807a70b8c28d8955100d3239dd79e71aa8961549c0e5f77b3cf7a", +"TT_nem-test_signtx_multisig.py::test_nem_signtx_multisig_signer": "7e6638e869a345f323479d38ea30423823226a314bcf8e55deac1802cf5748bb", +"TT_nem-test_signtx_others.py::test_nem_signtx_importance_transfer": "d11bb098ff30b67bbc640fa70385bae146373aabc3b50878702260c941488ece", +"TT_nem-test_signtx_others.py::test_nem_signtx_provision_namespace": "8927ed01dca9afcfe28b1b8764b0282a6848f01443b831ecf7320fcf1fe3882a", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_encrypted_payload": "41a15db0b34c9c4c10f9b825c7ad4a758353b78bb7bd6d45e826dc1924da4b25", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_known_mosaic": "7087a75a9b2804420e17dcf061b41dfbfdf9c001e5b89c75dac137989fbfe2dc", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_known_mosaic_with_levy": "5bcc0390e8b3e554452b68e6c2d73cd58832dcf94c3bbe16ac48c0bedf59c621", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_multiple_mosaics": "4b3942bc168fc4ac765bf8600e2fa87bc09d138fa04d02f576d78bbc45c200a8", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_simple": "d2958e47c3b38a1cc7699cb126a67047db5009549eaaa133ff50be4a0ddce1cc", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_unknown_mosaic": "1f08da7ce3e3b8cf3bdcc7ef7f2a25050c8adaaad26dea934962abfe824d1526", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_xem_as_mosaic": "f3d6d4e3081c651207c2d1bccaf6e00663a127f2baf14e0c9f128e87b9830235", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[label-test]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[language-test]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[passphrase_protection-True]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[pin_protection-True]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[u2f_counter-1]": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_dry_run": "222de24c1bfe1a0159e8d610a82c80f3e678e694d4743192b812eaf0a0b46440", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_invalid_seed_core": "b09cdbd2fe44ff14c53190edefa8f79a5c48f7021472f48afd8d3d1fc99c7181", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_seed_mismatch": "cd1be828bf863cc59b28ee29d5e2d163992a1f035fe9b42e2bede3a21460a161", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_uninitialized": "1cbcf9bba947956dbccfb2fa59b4e734a6696f6608c6b772829bfa320789be02", +"TT_reset_recovery-test_recovery_bip39_t2.py::test_already_initialized": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_nopin_nopassphrase": "149358e01badd1b91d03622cea19bc53aa048b2f07b2bb7435a46052df8c7298", +"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_pin_passphrase": "7858eb55af88992dec2b212d2ab3d07e928832774efee165c69ec570e012246e", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "901381e7e50629628c6f43a649493494fdbba8844b9b4005cab797d83f6c0bb8", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_extra_share_entered": "fd640709bdcfc76f0ce95d71ddea2042e05cddf0ac7dd13f113c97a4c2698d86", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_group_threshold_reached": "26cd3b56d3ed64dcd61d89d0a42f290228a2db7d1c0dbb3186ec0737fd826108", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "35b9998de0fcf4a058ef577565932492806a3c40df4b4f8f6403b7c2b000ce8b", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "8188b12883e76f93291f8e387fb6ac50c759a1fb923a6e763a5cd382807794cc", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "fe01912dfe0a3f97d050d187ffa00ab0e37f3fe68d9e88c02b3cef9bef5d580a", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "816e93fbcca330c781aa18d490566f83817dd69fbc655b99e39e758ed3910c1b", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "c7ac3999844a9a13d15142958c1114b2bd40224002a84818272093d6bc6df223", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "ac062eafba11dbb643b911179c2f3ce2264c44b56705727e2cef0f48cf92f593", +"TT_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_dryrun": "d08643cac669c32d6c8f0a9333c82f31d6fd8735c3d145317f72d894aefd25c6", +"TT_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_invalid_seed_dryrun": "7752a1b7b6a06dae474505e1edd2cded53397b2b414790739024cab2eaa138ba", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_1of1": "724362dbc6a7e9cfd33538d29648b2fc073bb9a5eac851acaec642ae194cae70", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_abort": "901381e7e50629628c6f43a649493494fdbba8844b9b4005cab797d83f6c0bb8", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_ask_word_number": "6bd35d8cf58e31de954ec7605e16e8b9d566afdcf62fd444bae4025c329210b2", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "099ca046871f8bb6906555b89d8a0836f598e8df6d99b7d77ddbf830cbe65942", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_recover_with_pin_passphrase": "a860307e779d8c94eaaccef93ba4a45e04fdfe98361945ba7fd1c2c0fe14b73a", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_same_share": "e8f9c5c08beb6c3f79ab8dc2f200ad5701893747ab27ea2464bbe0190cf7bfc4", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares0-491b795b80fc21ccdf466c0fbc98c8fc]": "e0fdbc0d61dc5e42f669e3411e4a17c0192454ebc52e6c3c33d5c576ef2fc45c", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares1-b770e0da1363247652de97a39-a50896b7": "e9d91ad3ddaad68f6ebf839fcdfcdde1757650b2eaca7edc9f9404941d4888bc", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[0]": "7ff2978d8b19f09e1333fcf607f51c9510567dc5555a6679f88684ef746b2c5d", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[1]": "492e7ebc21a751667cbb9c4d7641d6103e05da30daed0d97c0be3df2ca5409db", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[2]": "c1049deb7f23adce659bca00b4dea30934d07b6c032ff1665b4a437bbac0922e", +"TT_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_dryrun": "9934aa382734f20429059b3fe4f82a617db10d03e7c5e88f7af2c1067b5b8a78", +"TT_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_invalid_seed_dryrun": "b3350f1244b9062c7e1743d9a8ed871676c68ce09edd1efc9bce31a3cb1b94bd", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "1855bf449ae73a4f04750c250a08472b559f824cbcc1f73d5ff1874542e29b28", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced-bac-f67baa1c": "c0c73e3b9a4df165244bcc27f2204ae38128c107bfd37ba7ef912fd7eacd4daa", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic-backup-6348e7fe": "1a4549228b7c76529c5a4cad07d05b15e0b7c7b3ce5e8128e8658e2080ef12ca", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "aa8996e46b5bc798f9695139194077f4d86a27457fc53f86d971c8cede60da07", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced-backup-dcbda5cf": "a906389f39ec320e597b73794002c2de9e89646c145a7c671bb79bceb103d219", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic-backup_fl-1577de4d": "f97e9b37e8fb9c622dce7e9228e2197773d7ed1856a80ce112dc8a6b8170cc17", +"TT_reset_recovery-test_reset_bip39_t2.py::test_already_initialized": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "1d0135d6074f396ffa67ac396c195ede30f1fdb81e70ea1eb05a80866c7a1640", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "c76fd805dab221e86abba8c6701dd9e379a7a79ea7b2ceae2148eb6ed43c7521", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "a1f24c0be0728440c4bcef3b44e0b5c184351c04e20c4a11d4363a575ba6610e", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "1c3411d5c96b1f07ad134867f0337c1b6ecfd7b232c6208a200996678655aba4", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "357cf8c96fe0fc0b23d853af6115f43960a7a6d636f8c3d0a0009148d450fcdf", +"TT_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "8fe96b89846b69a4418b6dd040cc12d465fbde202160a983497a54f60418d509", +"TT_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "62e8d0a81d3bc5da2884a6a6b1486347d30e63de44f6c8f146d32c8cbd20f9ff", +"TT_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "a48c75bd9af28c4c6c533a450e2e7be9c4fe44975e9c6e2b392e7cfd2ad008fb", +"TT_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "04ac301574263d3aac1b38ba06674b1e212a2262d28d836bdcdc208b775c579d", +"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "4106461447a03b26e993f29810f8f8f9bd4f68965358d3e8e35c42dff5dc026b", +"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "109099401a251c7c5a24d82bf96ae3c5e27649689be15cff13f215cde80c1f4b", +"TT_ripple-test_get_address.py::test_ripple_get_address": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_ripple-test_get_address.py::test_ripple_get_address_other": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_ripple-test_sign_tx.py::test_ripple_sign_invalid_fee": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_ripple-test_sign_tx.py::test_ripple_sign_simple_tx": "c362290b3ba10c341e79369ce7e6ee45354cd61462b26aea276236f69b02c8e5", +"TT_stellar-test_stellar.py::test_get_address[parameters0-result0]": "43f2780e39b379ce24f858a18e8143a58fa1d29514d27edda719d58c1c094b90", +"TT_stellar-test_stellar.py::test_get_address[parameters1-result1]": "a3d8b7b2624175e8cb9e3d6452eb63aaaca57faec5d4f6c235aeea423b8eb297", +"TT_stellar-test_stellar.py::test_get_address[parameters2-result2]": "02dd0354cedfe3f7317f57040fb182eb2328b05f476a7d6cd4f790fb5b82e499", +"TT_stellar-test_stellar.py::test_get_address[parameters3-result3]": "df0e8b60799a15b7f54997f78e94e47a87d9c9d031b8fc2701b9e2480fc0b1f3", +"TT_stellar-test_stellar.py::test_get_address[parameters4-result4]": "6af7cf27674345659f5bf4203e28e995f5edadbbae874e0b15dcb03d7d2cfac8", +"TT_stellar-test_stellar.py::test_get_address[parameters5-result5]": "7ac93a180c918e264448d03632792f4a3f194dec9e87b8eac1b9666fc0ba485f", +"TT_stellar-test_stellar.py::test_get_address[parameters6-result6]": "b8e998fea7530332b5b606f04bc310f7cee0506a6e2663d1f8ada7c0be44b092", +"TT_stellar-test_stellar.py::test_get_address[parameters7-result7]": "95d9ab41ded365ef2183b58e90c135721cb57fbfc77b911812c18b754e6a82fd", +"TT_stellar-test_stellar.py::test_get_address[parameters8-result8]": "8d729fc006b061ad4d8c790500c9936471768910556fdc2c7a26d2d2ff5c7050", +"TT_stellar-test_stellar.py::test_get_address[parameters9-result9]": "b3fa1e7969790e2f8c6e72259f0f9232a5ee6d6bff5e7875cbf75fa6a4b0f109", +"TT_stellar-test_stellar.py::test_sign_tx[StellarAccountMergeOp]": "4091843ab63297519157a2af6e58b1e6a3dcea642652fce2ae789003ee088408", +"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-allow]": "ee8fd29456cf20637193893e38ab302d421f01c4ffa1098ca764e0d1f3df3810", +"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-revoke]": "bb166af452569e50c030b23ff07ea2a080d235f641f6f99c9da3a7257325109a", +"TT_stellar-test_stellar.py::test_sign_tx[StellarBumpSequenceOp]": "e61cef8ab94c029ec90189dbb1eb37b20b6f75c26dd87871d4a5f117bf52340e", +"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-add]": "e73352835af974a9090d620976beacfd33408b064aff88e5e5cd4ead2ba741d9", +"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-delete]": "4a0d6d8f59dd7c0e3f686d4735cddbb3ad27a3fad12aa980acbf8a8762168705", +"TT_stellar-test_stellar.py::test_sign_tx[StellarCreateAccountOp]": "ddf8794e85b84f987278ed0b1cdea931ccb60e9b7a3d350d69c5c40f78fa6dd8", +"TT_stellar-test_stellar.py::test_sign_tx[StellarCreatePassiveSellOfferOp]": "66342f26a5172f1d7a22114808d73b1ee94d96f1c8729d1c8752d7704bf89465", +"TT_stellar-test_stellar.py::test_sign_tx[StellarManageBuyOfferOp]": "b0bfb3f45db79e32e235fc7cb0ca85916f881ae8a2cc0183512406f155885248", +"TT_stellar-test_stellar.py::test_sign_tx[StellarManageDataOp]": "db90bcf8d934c3161481dc6e192a715912b64a6680dc859554e6232f023525e8", +"TT_stellar-test_stellar.py::test_sign_tx[StellarManageSellOfferOp]": "0a8839544aba27239cd41fa220e0a33c62f908c137f34cb154107868bbcdfa7f", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictReceiveOp]": "1eb525a0c5281972fa724a9443d50113d04d2cadd550cc39a5a4b858c6abba29", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictSendOp]": "9db3724c24d6ffc1c37472e53220788834224fba236fe1fdebaf807b040b2069", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset12]": "a33b622b9634ec3c19a1f0adad87df80c83c56c68189856c26dc30b0225f18e4", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset4]": "2f855a32c0fb8af69d70799b46619bb791a344932acced62109e3bb6f8bbc67a", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-native_asset]": "39d1fca7d47db667c7a6d2746f30a5c817e6eb8636f82dfc34710d5a408b30f4", +"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-all]": "a6bca67a0113dcc633aa453aba1ab0befd1792a7b6712ecccdabd1a80eaf5695", +"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-one]": "eb245374eb28cfa74d92148fb2283fb402cc13460ad6764cbd336b6b362bba34", +"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-some]": "54b468bf4c53cf9e35850f3f7727a50daf3494911885fab9e8087de4a7be8091", +"TT_stellar-test_stellar.py::test_sign_tx[memo_hash]": "2c1df7457537c8dc961e683dda8ca638a5d470a1961a678548100aeb1469f63c", +"TT_stellar-test_stellar.py::test_sign_tx[memo_id]": "5ba7de12e4c1ab83d1dfc4b1922829fb5016ec0aaa78b5df0e0e846352f34182", +"TT_stellar-test_stellar.py::test_sign_tx[memo_return]": "cd0e7b9d29d39d897fe67748b28c16c6f296f5c9e6ed065515cf5d30f6f98542", +"TT_stellar-test_stellar.py::test_sign_tx[memo_text]": "e62d832e43a153f04e9f22a78c1f002cd3fffd4c2f5ac1eba336f5b825673660", +"TT_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "5e327d3d850a4c5a7b152cfef20571b7823d8027c0b20e96effb05222f5b4135", +"TT_stellar-test_stellar.py::test_sign_tx[source_account]": "1c8412f31465e05007e63cf3dba2fed856b4596f75b2d722d881a4c27e107afc", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "f80c142e2ec9960ac7564f1b767f60b32dae41fef225506d5872244a6b729f4b", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "d0b24af874430667423f35293b9b56b6626eb9cb4889c5b2a20c01a7cf35753d", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "257a5884645126a12ba7674ad67099206477d89bf2944dbcb61df4d0ca6e2b6c", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "39d1fca7d47db667c7a6d2746f30a5c817e6eb8636f82dfc34710d5a408b30f4", +"TT_test_autolock.py::test_apply_auto_lock_delay": "40e3c1c03c66a1f12158bb8501f8e7e0b4f7dbf452d5c29df4b28c298067666c", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[4194304]": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[536871]": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[9]": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "0685ff9bb64df29721d2fbbd2ae78a0ce2a4a3f65c63a02e4b815addf5a5d845", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "39a601c34a4c7b52a49ee872f85a8a8d4d0071bfaba4e629e3492f7e59c76a6d", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "f1d687088400b3f86c4a78bcef0772b15e83e7ae823e30eba127d1aa56b818f6", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "46e2048e38333028fd00faa65143c596dffd05e80e335d1411f1fccf48dadda7", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "1bab609b83c8d59b37d479414f303f6a9dd51a8a660de6a287159f60f6417996", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "d4f2994a6915b1173614c927608970988a55917c012ae9c66dbe492d838b6247", +"TT_test_autolock.py::test_autolock_cancels_ui": "9f6b2e99a7bbdda336a3ed710ef5eeb26a713c348330c27d5af086f9d5aaa336", +"TT_test_autolock.py::test_autolock_default_value": "bd8f7f060f58e1ba47c04eb8cd319b8cedfd122dc4d55f1833db77ca5075be9c", +"TT_test_basic.py::test_device_id_different": "d97a8029a951298c21cabd3518aa840e01b16a3a303d4f40387a6eb5f69ecf56", +"TT_test_basic.py::test_device_id_same": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_basic.py::test_features": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_basic.py::test_ping": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_busy_state.py::test_busy_expiry": "9521e6a76f75598221324d6beb23eeabfb57cc6f8c859e16edaa46311ce4dc12", +"TT_test_busy_state.py::test_busy_state": "0abc314db72d2fbcae5975453e38b455b1cfded5c69a1ad9c52b0b3c09961d25", +"TT_test_cancel.py::test_cancel_message_via_cancel[message0]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_test_cancel.py::test_cancel_message_via_cancel[message1]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_test_cancel.py::test_cancel_message_via_initialize[message0]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_test_cancel.py::test_cancel_message_via_initialize[message1]": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_test_cancel.py::test_cancel_on_paginated": "19cef5cec5742847e7163f55b0ba67ec96d7a70678b73970869541beaf491c1f", +"TT_test_debuglink.py::test_softlock_instability": "6c97af95e3b3aa6ee678fe75068207d76ce7e7b0604e3b25d4b2fb66c683ed95", +"TT_test_firmware_hash.py::test_firmware_hash_emu": "13e6dfd09491219099658c318245425216e2de77140afdb86937cb48a630113e", +"TT_test_firmware_hash.py::test_firmware_hash_hw": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_msg_applysettings.py::test_apply_homescreen_toif": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg": "9ce09adb64a15f43c96188e73a314216230b0d94178f525172f993af76f9c77b", +"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg_wrong_size": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg_progressive": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_msg_applysettings.py::test_apply_settings": "35d34ef7cfaff95d07782881a25b795c1283f7f981d2402bd051e520de7001ce", +"TT_test_msg_applysettings.py::test_apply_settings_passphrase": "1cfa917d5be8b9408d45ffb005cea1133a67ff42bce8a8b6b95a89ba0dc87531", +"TT_test_msg_applysettings.py::test_apply_settings_passphrase_on_device": "7d560ee93960073ad4864af75a3fc954277a7c2176b3d42b1e1fcbe1c2dba1c9", +"TT_test_msg_applysettings.py::test_apply_settings_rotation": "41c8c49d1e37639ab58db70377a5721b673569897e3dbf10b5ee588bb04062b0", +"TT_test_msg_applysettings.py::test_experimental_features": "833e4ba6a9a7dfc122ec8e4e4196e4785a34ead16a7ab616752a78d0f69a0924", +"TT_test_msg_applysettings.py::test_label_too_long": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_msg_applysettings.py::test_safety_checks": "e3ac0232d712984c198d2144ef52d8b6125d104b6721d7aa853bba314f70e89b", +"TT_test_msg_backup_device.py::test_backup_bip39": "b6a247620438207eb6cf1bb5b4681b4f008ba82fa796fbe695777e879a2c9126", +"TT_test_msg_backup_device.py::test_backup_slip39_advanced[click_info]": "094a990327bf57274676362b308ce023db22ea8b6cbf124d015c8b05beaae5f0", +"TT_test_msg_backup_device.py::test_backup_slip39_advanced[no_click_info]": "d6c9f3f9a2e412d86641900b5f696c12a6a205c6611dece8ed9f5e96f773496e", +"TT_test_msg_backup_device.py::test_backup_slip39_basic[click_info]": "ae176f693f88654415c847713bc5693b7064bcffcb4c561a383aac13cb751319", +"TT_test_msg_backup_device.py::test_backup_slip39_basic[no_click_info]": "ff5a2987ab3e915b4ed2f94de3ff1731895773e89fac67f259fa56ceeac26253", +"TT_test_msg_backup_device.py::test_interrupt_backup_fails": "074d364594d0483f7414888b4538d995a6d565bf276558f2fd73fb84f3b936fb", +"TT_test_msg_backup_device.py::test_no_backup_fails": "f9b4cc719f80d99ccca14e01d2c0fe589164c58c31c9614d3d09c81226b300db", +"TT_test_msg_backup_device.py::test_no_backup_show_entropy_fails": "1cbcf9bba947956dbccfb2fa59b4e734a6696f6608c6b772829bfa320789be02", +"TT_test_msg_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "d77d2b58d93b929be4decc32c0c76afa76fa1feaa6e53e1853836773c33142aa", +"TT_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "85291fa121ceea617a8a3c12139fa742b8dc92d6084800c748912671ec929641", +"TT_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "68d1144cec714a52cb2dfc7862af0ac8adf0f5cc768f0c42d51854b188115cac", +"TT_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "89d280c923e0da372f06e749c8ed1f192f4e7e893c4069d75e374a1f5acf1f2c", +"TT_test_msg_changepin_t2.py::test_change_failed": "59b854684851ad38570cd4ba6ad4ffc86dfaa1cf60a26bd4320ee2b68e7f9aea", +"TT_test_msg_changepin_t2.py::test_change_invalid_current": "c84996cadd3950b18e7a05b37fb12ef1fa43b1fea8abe0f58dbaeea6d8e6d5af", +"TT_test_msg_changepin_t2.py::test_change_pin": "34f2c4550a4a8350cf71feeacf267a54c1a6b2745e8daa5b2b511e92beecd496", +"TT_test_msg_changepin_t2.py::test_remove_pin": "8c0ced442396c845e174628e5e1511fe131e7bbc91b1c9e8098c0a1ba79c81e1", +"TT_test_msg_changepin_t2.py::test_set_failed": "8104f07f478feffc4f9577e73e7bd6489f79c91dfd175435a999be79cc331fe4", +"TT_test_msg_changepin_t2.py::test_set_pin": "00e044d49c262e6ce19166073385405e4e9ec6552730a9255661d3812d93aa1a", +"TT_test_msg_loaddevice.py::test_load_device_1": "a8d18d4ebbeee870d38ba125025a02ebdbfb206b38c4c0a81a3924d08b9ff310", +"TT_test_msg_loaddevice.py::test_load_device_2": "e5f8413750fb270e9a76bc706409068828546102647aff3d59541cbeb7a574f8", +"TT_test_msg_loaddevice.py::test_load_device_slip39_advanced": "a8d18d4ebbeee870d38ba125025a02ebdbfb206b38c4c0a81a3924d08b9ff310", +"TT_test_msg_loaddevice.py::test_load_device_slip39_basic": "a8d18d4ebbeee870d38ba125025a02ebdbfb206b38c4c0a81a3924d08b9ff310", +"TT_test_msg_loaddevice.py::test_load_device_utf": "582f9bf48ff2331e23ff15b73d5b236e689fc69f45ff539d5404b49f1486d7ac", +"TT_test_msg_ping.py::test_ping": "49f012cfb5c79777b4760fdf96a73fb72397388361a6f1db17feeb8229125214", +"TT_test_msg_sd_protect.py::test_enable_disable": "ad58555b94ccb0f557a35530b536015a0a7c3143a4ce1b78b2612a9430b763eb", +"TT_test_msg_sd_protect.py::test_refresh": "2951a86d450d965dea7b27d46bdcd135bcc12bedf1a93b59251bf4f8e87297b1", +"TT_test_msg_sd_protect.py::test_wipe": "71fee372a637cd97a81e2e36a893674d2fa08e98eec996c6e5dd84f0579b0a64", +"TT_test_msg_wipedevice.py::test_autolock_not_retained": "1317e6f3f64cad65b1e8195331f12ce3b4e983b13df8a452a3c1343f1b767b07", +"TT_test_msg_wipedevice.py::test_wipe_device": "d97a8029a951298c21cabd3518aa840e01b16a3a303d4f40387a6eb5f69ecf56", +"TT_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "c897a0866515243f852057f3f74e783a21f8532544a07638295fb46b0ea5e7fc", +"TT_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "c897a0866515243f852057f3f74e783a21f8532544a07638295fb46b0ea5e7fc", +"TT_test_passphrase_slip39_basic.py::test_2of5_passphrase": "f25cbe6069ebaef88097a487ec347bb034ecd07e571e6a03953844ed4b9a8292", +"TT_test_passphrase_slip39_basic.py::test_3of6_passphrase": "f25cbe6069ebaef88097a487ec347bb034ecd07e571e6a03953844ed4b9a8292", +"TT_test_pin.py::test_correct_pin": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", +"TT_test_pin.py::test_exponential_backoff_t2": "61cc706e3c71f619de8f09ef3825466661faa0c70ef3ed81d963fcf7459f10b9", +"TT_test_pin.py::test_incorrect_pin_t2": "d6b3372cab3dfd2c1559e331aa1e3ae0261513bf8cf3205482a06baa565a7aef", +"TT_test_pin.py::test_no_protection": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_protection_levels.py::test_apply_settings": "2e8a31c150b883656ddcbdf1bf477941a7253bbe75713f7cb6a35ea2d50f6fee", +"TT_test_protection_levels.py::test_change_pin_t2": "9ebc313682206100f69dda3208b51d0f325216faf73217ed6bab6934cde50546", +"TT_test_protection_levels.py::test_get_address": "0ff13973eba3ea7b7aff8a8f2dee19869499d80fafc19796b4764441d0a89b4e", +"TT_test_protection_levels.py::test_get_entropy": "3e2c8380fd6212740265fb66ac7e4ed7a2ea1c884ce7aa9ec72206121c9a0fdb", +"TT_test_protection_levels.py::test_get_public_key": "0ff13973eba3ea7b7aff8a8f2dee19869499d80fafc19796b4764441d0a89b4e", +"TT_test_protection_levels.py::test_initialize": "6f498e080fb7deeef3bacaf1281a7d3017f7ec040fd482cac1c60be6558a255b", +"TT_test_protection_levels.py::test_passphrase_cached": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_test_protection_levels.py::test_passphrase_reporting[False]": "a07202e2260844fa409ade1a5b396e95d2b23ee15dd291262a2ce140aee862bc", +"TT_test_protection_levels.py::test_passphrase_reporting[True]": "e5a44a73f9d2cb762018c5a4b13e4a997410942162ce916e745ba395b1dc2409", +"TT_test_protection_levels.py::test_ping": "49f012cfb5c79777b4760fdf96a73fb72397388361a6f1db17feeb8229125214", +"TT_test_protection_levels.py::test_sign_message": "1e14d8786a794772239de9c3b3775ab481f2490ecdd872a58ddfdddcbc1d3e2b", +"TT_test_protection_levels.py::test_signtx": "b1d95559808274d07a1f297be640674778a1eb96cc672b6bd4c0f11eee452726", +"TT_test_protection_levels.py::test_unlocked": "d9fdce49747234da52b16713e6e01c188d9eb178017e9d4d84056cd203c920c2", +"TT_test_protection_levels.py::test_verify_message_t2": "25e6b8b5ed62f5b69dcb07ef48557af584cc6624a511e5e7353e9b5144ddf7ac", +"TT_test_protection_levels.py::test_wipe_device": "875f2d7604d9c78c524938e3e7456ad0484803e7fab75964ce40692c25eef5d2", +"TT_test_sdcard.py::test_sd_format": "ecbe44259ff7fc20890dbb50c24a68c0a376dfbb4c17305c4b2df9fa035e51c1", +"TT_test_sdcard.py::test_sd_no_format": "5e7d5b5da35b46567d7adc895703c956b605d4c9a171a724795527325863d9d1", +"TT_test_sdcard.py::test_sd_protect_unlock": "b648c528aa57ce1f8a6e5fd88a96181f1855f31d44030939902935ce43b5c6d0", +"TT_test_session.py::test_cannot_resume_ended_session": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_session.py::test_clear_session": "15f2906bbb6f4514e331593fdd9dd61ae7c1e6777d3dc0c8c9fc2997a3f059f5", +"TT_test_session.py::test_derive_cardano_empty_session": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_session.py::test_derive_cardano_running_session": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_session.py::test_end_session": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_session.py::test_end_session_only_current": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_session.py::test_session_recycling": "f25cbe6069ebaef88097a487ec347bb034ecd07e571e6a03953844ed4b9a8292", +"TT_test_session_id_and_passphrase.py::test_cardano_passphrase": "b7bba7caeaa11373de869247c8f71d2e34f0fa282e37fad2521e02063795aa56", +"TT_test_session_id_and_passphrase.py::test_max_sessions_with_passphrases": "3ec7322abd82b08a1f55e87b625d854176239e16a6bbf742d11cb9532b839cb8", +"TT_test_session_id_and_passphrase.py::test_multiple_passphrases": "eb0ee9e49ec2485fe7f787f4d76b56e865e868de83abf0de5667f6deebbb6f97", +"TT_test_session_id_and_passphrase.py::test_multiple_sessions": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_test_session_id_and_passphrase.py::test_passphrase_ack_mismatch": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_test_session_id_and_passphrase.py::test_passphrase_always_on_device": "75d99b190dfc2269acd5ba73cb867f2c84c899cc9d5662cfabfd1164b1a68eb1", +"TT_test_session_id_and_passphrase.py::test_passphrase_length": "b30ae2ea68db809dcce7a7af4ae12235d7cbe577ed3c2be57d875727df99fd89", +"TT_test_session_id_and_passphrase.py::test_passphrase_missing": "2a894da9d3fcbecfb4839dad5be4b3b4274f47564ff4a9d4c8f66cbac45bbb19", +"TT_test_session_id_and_passphrase.py::test_passphrase_on_device": "f74387a87d609f9b87390fbb54cb58e3269d3937d2367e2d0b1bcbc8ef234e97", +"TT_test_session_id_and_passphrase.py::test_session_enable_passphrase": "d94e82932629115f3fa9955539d0a61f6fbdfc89cb380bb63dab9dc8883e324e", +"TT_test_session_id_and_passphrase.py::test_session_with_passphrase": "a1f3db15794c0bd23286e480df612f761e5a0680e950676780a04226b0de317f", +"TT_tezos-test_getaddress.py::test_tezos_get_address": "bd00b2a4320e19908e3815e1fa9ab88a779bb04a06fb4756089a359e8a436823", +"TT_tezos-test_getpublickey.py::test_tezos_get_public_key": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", +"TT_tezos-test_sign_tx.py::test_tezos_kt_remove_delegation": "54862d2c752a0d2f279d4935916ac2959e11c9ef0c1ccdb2d277b16decb20c95", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_delegation": "03751ed7ff24059530eb45f49bb47c512bf2327b01d9e8eddedb2e1ecb8d6f63", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_multiple_proposals": "093e0ca31010dfdfb67945640352f02f68236b937488942345b595fd2a24cd8a", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_origination": "0e482061acde50d0b95334c22d4d17f3936a21b80912d25dcdb14b5c0d65700c", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_proposal": "58f8c9c8ba25a1df9de41234a3587557b2ee27de0ef59df0a43d9e59945933a9", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_reveal": "3cc44bd51a8be7ef94e83fcb7f01bb87f8efff2029a24f30696e898fe133b838", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_tranasaction": "cbbc840d2259f56ae006cf1f5d46e9fe238e66a1058915e9f9c5586d907d86f5", +"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_nay": "5512ae1020083ba5b4ab397d4f07fe6077c6abd43114b9d322082b4a1645ae67", +"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_pass": "4a2524a0597afce84b2fb3980191cf96aac4abc5001160dcc1146c608fc3f3d1", +"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_yay": "6b51f71e16c297992ac10c7a5dbac77618564c6a178c38f7e126a21c7e5ebd10", +"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "155f69041e950da48a5c3c4db5e2501ad65c0f597351e78bce8adee9e3ca36c6", +"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "dc194a5e61b4a28fa76c3ffb6e6dc6a113c35279a97a9ab417b8f36c6a55f29f", +"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "f8ea51a716b188e1b5a968a0ae3303a22c658e70cddeba3e95d9dcfd70b77796", +"TT_webauthn-test_msg_webauthn.py::test_add_remove": "406d7aec8b9daa236de523cc0cf011f0cccb757ef2ba86b7c42b878a6a0c2f4c", +"TT_webauthn-test_u2f_counter.py::test_u2f_counter": "2bb532687e61cf3e1a713f37e226ce6fc8335eea0607e2feb929c4a165ba2cb3", +"TT_zcash-test_sign_tx.py::test_external_presigned": "decdd7e1cba8eef956b0030b556e2d378d5c5a502aca5385cb4a6d344c7c9cf0", +"TT_zcash-test_sign_tx.py::test_one_two": "556562c43127af3ca7d8aae3fc42b21242c7dd10859aef0280886390a1bce5fe", +"TT_zcash-test_sign_tx.py::test_refuse_replacement_tx": "bfdd9acaecba712cdf71ad98254b793ba8f3e6e2bb9611fe6d3d7b118c5a4f03", +"TT_zcash-test_sign_tx.py::test_send_to_multisig": "07ac7a78016da7514be938a040afcfe870a75cf72013332eb25c5272336651a7", +"TT_zcash-test_sign_tx.py::test_spend_multisig": "bfebc603adb30b457bf554d273ee66c968d96712d55cbacd661200701227b196", +"TT_zcash-test_sign_tx.py::test_spend_v4_input": "85f8edc6a6f02573c95e2ce3f7b9a44198e57341d9aae24d54e5fef78e68cfce", +"TT_zcash-test_sign_tx.py::test_spend_v5_input": "dab614df2c8142dd5a491b88d107a4382aec771b487c2b9e6d691ca5dfeadd6d", +"TT_zcash-test_sign_tx.py::test_unified_address": "98daa616286db7344263bec28074e40ed0598630e72b7207b005e80506341c78", +"TT_zcash-test_sign_tx.py::test_version_group_id_missing": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba" }