From 236396338cd7d55c57044b198e8caea819a40926 Mon Sep 17 00:00:00 2001 From: tychovrahe Date: Mon, 2 Jan 2023 16:30:16 +0100 Subject: [PATCH] refactor(core/rust): introduce icon/image type [no changelog] --- core/embed/rust/build.rs | 3 +- core/embed/rust/src/trezorhal/display.rs | 17 +- core/embed/rust/src/trezorhal/dma2d.rs | 14 + core/embed/rust/src/ui/component/image.rs | 71 +- core/embed/rust/src/ui/component/mod.rs | 1 - core/embed/rust/src/ui/component/painter.rs | 8 +- .../rust/src/ui/component/text/paragraphs.rs | 18 +- core/embed/rust/src/ui/display/loader.rs | 50 +- core/embed/rust/src/ui/display/mod.rs | 181 +- core/embed/rust/src/ui/display/toif.rs | 131 + core/embed/rust/src/ui/geometry.rs | 20 +- .../src/ui/model_tr/component/result_anim.rs | 5 +- .../src/ui/model_tr/component/result_popup.rs | 3 +- .../rust/src/ui/model_tt/component/button.rs | 26 +- .../rust/src/ui/model_tt/component/dialog.rs | 5 +- .../rust/src/ui/model_tt/component/fido.rs | 2 +- .../src/ui/model_tt/component/fido_icons.rs | 65 +- .../ui/model_tt/component/fido_icons.rs.mako | 9 +- .../rust/src/ui/model_tt/component/frame.rs | 8 +- .../ui/model_tt/component/hold_to_confirm.rs | 3 +- .../ui/model_tt/component/homescreen/mod.rs | 12 +- .../model_tt/component/homescreen/render.rs | 24 +- .../ui/model_tt/component/keyboard/bip39.rs | 9 +- .../model_tt/component/keyboard/mnemonic.rs | 10 +- .../model_tt/component/keyboard/passphrase.rs | 9 +- .../src/ui/model_tt/component/keyboard/pin.rs | 29 +- .../ui/model_tt/component/keyboard/slip39.rs | 7 +- .../rust/src/ui/model_tt/component/loader.rs | 5 +- .../rust/src/ui/model_tt/component/mod.rs | 1 + .../rust/src/ui/model_tt/component/page.rs | 4 +- .../rust/src/ui/model_tt/component/scroll.rs | 18 +- core/embed/rust/src/ui/model_tt/layout.rs | 34 +- core/embed/rust/src/ui/model_tt/theme.rs | 75 +- core/embed/rust/src/ui/util.rs | 15 +- tests/ui_tests/fixtures.json | 2154 ++++++++--------- 35 files changed, 1568 insertions(+), 1478 deletions(-) create mode 100644 core/embed/rust/src/ui/display/toif.rs diff --git a/core/embed/rust/build.rs b/core/embed/rust/build.rs index b6615f1e12..50e1790054 100644 --- a/core/embed/rust/build.rs +++ b/core/embed/rust/build.rs @@ -288,7 +288,6 @@ fn generate_trezorhal_bindings() { .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") .allowlist_function("display_loader") @@ -321,8 +320,10 @@ fn generate_trezorhal_bindings() { .allowlist_function("hal_delay") .allowlist_function("hal_ticks_ms") // dma2d + .allowlist_function("dma2d_setup_4bpp") .allowlist_function("dma2d_setup_4bpp_over_4bpp") .allowlist_function("dma2d_setup_4bpp_over_16bpp") + .allowlist_function("dma2d_start") .allowlist_function("dma2d_start_blend") .allowlist_function("dma2d_wait_for_transfer") //buffers diff --git a/core/embed/rust/src/trezorhal/display.rs b/core/embed/rust/src/trezorhal/display.rs index 9e4ed2513d..ca50482f72 100644 --- a/core/embed/rust/src/trezorhal/display.rs +++ b/core/embed/rust/src/trezorhal/display.rs @@ -5,7 +5,7 @@ use num_traits::FromPrimitive; use crate::trezorhal::buffers::BufferText; -#[derive(PartialEq, Debug, Eq, FromPrimitive)] +#[derive(PartialEq, Debug, Eq, FromPrimitive, Clone, Copy)] pub enum ToifFormat { FullColorBE = ffi::toif_format_t_TOIF_FULL_COLOR_BE as _, GrayScaleOH = ffi::toif_format_t_TOIF_GRAYSCALE_OH as _, @@ -103,21 +103,6 @@ pub fn bar_radius_buffer(x: i16, y: i16, w: i16, h: i16, radius: u8, buffer: &mu } } -pub fn icon(x: i16, y: i16, w: i16, h: i16, data: &[u8], fgcolor: u16, bgcolor: u16) { - unsafe { - ffi::display_icon( - x.into(), - y.into(), - w.into(), - h.into(), - data.as_ptr() as _, - data.len() as _, - fgcolor, - bgcolor, - ) - } -} - pub fn image(x: i16, y: i16, w: i16, h: i16, data: &[u8]) { unsafe { ffi::display_image( diff --git a/core/embed/rust/src/trezorhal/dma2d.rs b/core/embed/rust/src/trezorhal/dma2d.rs index ed56e3eacc..0de4daa17d 100644 --- a/core/embed/rust/src/trezorhal/dma2d.rs +++ b/core/embed/rust/src/trezorhal/dma2d.rs @@ -1,5 +1,9 @@ use super::ffi; +pub fn dma2d_setup_4bpp(fg_color: u16, bg_color: u16) { + unsafe { ffi::dma2d_setup_4bpp(fg_color, bg_color) } +} + pub fn dma2d_setup_4bpp_over_4bpp(fg_color: u16, bg_color: u16, overlay_color: u16) { unsafe { ffi::dma2d_setup_4bpp_over_4bpp(fg_color, bg_color, overlay_color) } } @@ -8,6 +12,16 @@ pub fn dma2d_setup_4bpp_over_16bpp(overlay_color: u16) { unsafe { ffi::dma2d_setup_4bpp_over_16bpp(overlay_color) } } +pub fn dma2d_start(buffer: &[u8], pixels: i16) { + unsafe { + ffi::dma2d_start( + buffer.as_ptr() as _, + ffi::DISPLAY_DATA_ADDRESS as _, + pixels as _, + ); + } +} + pub fn dma2d_start_blend(overlay_buffer: &[u8], bg_buffer: &[u8], pixels: i16) { unsafe { ffi::dma2d_start_blend( diff --git a/core/embed/rust/src/ui/component/image.rs b/core/embed/rust/src/ui/component/image.rs index 1538cc9646..4657235406 100644 --- a/core/embed/rust/src/ui/component/image.rs +++ b/core/embed/rust/src/ui/component/image.rs @@ -1,22 +1,38 @@ -use crate::ui::{ - component::{Component, Event, EventCtx, Never}, - display, - display::{toif_info, Color}, - geometry::{Alignment, Offset, Point, Rect}, +use crate::{ + trezorhal::display::{image, ToifFormat}, + ui::{ + component::{Component, Event, EventCtx, Never}, + display, + display::{ + toif::{NamedToif, Toif}, + Color, Icon, + }, + geometry::{Alignment2D, Offset, Point, Rect, CENTER}, + }, }; +#[derive(PartialEq, Eq, Clone, Copy)] pub struct Image { - image: &'static [u8], + pub toif: Toif, area: Rect, } impl Image { - pub fn new(image: &'static [u8]) -> Self { + pub fn new(named_toif: NamedToif) -> Self { + let toif = Toif::new(named_toif); + ensure!(toif.format == ToifFormat::FullColorLE, toif.name); Self { - image, + toif, area: Rect::zero(), } } + + /// Display the icon with baseline Point, aligned according to the + /// `alignment` argument. + pub fn draw(&self, baseline: Point, alignment: Alignment2D) { + let r = Rect::snap(baseline, self.toif.size, alignment); + image(r.x0, r.y0, r.width(), r.height(), self.toif.data); + } } impl Component for Image { @@ -32,13 +48,14 @@ impl Component for Image { } fn paint(&mut self) { - display::image(self.area.center(), self.image) + self.draw(self.area.center(), CENTER); } fn bounds(&self, sink: &mut dyn FnMut(Rect)) { - if let Some((size, _)) = display::toif_info(self.image) { - sink(Rect::from_center_and_size(self.area.center(), size)); - } + sink(Rect::from_center_and_size( + self.area.center(), + self.toif.size, + )); } } @@ -51,8 +68,8 @@ impl crate::trace::Trace for Image { } pub struct BlendedImage { - bg: &'static [u8], - fg: &'static [u8], + bg: Icon, + fg: Icon, bg_color: Color, fg_color: Color, area_color: Color, @@ -61,13 +78,7 @@ pub struct BlendedImage { } impl BlendedImage { - pub fn new( - bg: &'static [u8], - fg: &'static [u8], - bg_color: Color, - fg_color: Color, - area_color: Color, - ) -> Self { + pub fn new(bg: Icon, fg: Icon, bg_color: Color, fg_color: Color, area_color: Color) -> Self { Self { bg, fg, @@ -93,15 +104,12 @@ impl Component for BlendedImage { type Msg = Never; fn place(&mut self, bounds: Rect) -> Rect { - let (bg_size, _) = unwrap!(toif_info(self.bg)); + self.bg_top_left = self.bg.toif.size.snap(bounds.center(), CENTER); - self.bg_top_left = bg_size.snap(bounds.center(), Alignment::Center, Alignment::Center); + let ft_top_left = self.fg.toif.size.snap(bounds.center(), CENTER); + self.fg_offset = ft_top_left - self.bg_top_left; - if let Some((fg_size, _)) = toif_info(self.fg) { - let ft_top_left = fg_size.snap(bounds.center(), Alignment::Center, Alignment::Center); - self.fg_offset = ft_top_left - self.bg_top_left; - } - Rect::from_top_left_and_size(self.bg_top_left, bg_size) + Rect::from_top_left_and_size(self.bg_top_left, self.bg.toif.size) } fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option { @@ -113,9 +121,10 @@ impl Component for BlendedImage { } fn bounds(&self, sink: &mut dyn FnMut(Rect)) { - if let Some((size, _)) = display::toif_info(self.bg) { - sink(Rect::from_top_left_and_size(self.bg_top_left, size)); - } + sink(Rect::from_top_left_and_size( + self.bg_top_left, + self.bg.toif.size, + )); } } diff --git a/core/embed/rust/src/ui/component/mod.rs b/core/embed/rust/src/ui/component/mod.rs index 71f696b467..210e0e2aa2 100644 --- a/core/embed/rust/src/ui/component/mod.rs +++ b/core/embed/rust/src/ui/component/mod.rs @@ -17,7 +17,6 @@ pub mod timeout; pub use base::{Child, Component, ComponentExt, Event, EventCtx, Never, TimerToken}; pub use border::Border; pub use empty::Empty; -pub use image::Image; pub use label::Label; pub use map::Map; pub use maybe::Maybe; diff --git a/core/embed/rust/src/ui/component/painter.rs b/core/embed/rust/src/ui/component/painter.rs index fad44b1254..6c6569d4cd 100644 --- a/core/embed/rust/src/ui/component/painter.rs +++ b/core/embed/rust/src/ui/component/painter.rs @@ -1,9 +1,9 @@ #[cfg(feature = "jpeg")] use crate::ui::geometry::Offset; use crate::ui::{ - component::{Component, Event, EventCtx, Never}, + component::{image::Image, Component, Event, EventCtx, Never}, display, - geometry::Rect, + geometry::{Rect, CENTER}, }; pub struct Painter { @@ -62,8 +62,8 @@ where Painter::new(f) } -pub fn image_painter(image: &'static [u8]) -> Painter { - let f = move |area: Rect| display::image(area.center(), image); +pub fn image_painter(image: Image) -> Painter { + let f = move |area: Rect| image.draw(area.center(), CENTER); Painter::new(f) } diff --git a/core/embed/rust/src/ui/component/text/paragraphs.rs b/core/embed/rust/src/ui/component/text/paragraphs.rs index f654013d8a..73897bdc04 100644 --- a/core/embed/rust/src/ui/component/text/paragraphs.rs +++ b/core/embed/rust/src/ui/component/text/paragraphs.rs @@ -2,8 +2,8 @@ use heapless::Vec; use crate::ui::{ component::{Component, Event, EventCtx, Never, Paginate}, - display, - geometry::{Alignment, Insets, LinearPlacement, Offset, Point, Rect}, + display::toif::Icon, + geometry::{Alignment, Insets, LinearPlacement, Offset, Point, Rect, TOP_LEFT}, }; use super::layout::{LayoutFit, TextLayout, TextStyle}; @@ -505,8 +505,8 @@ pub struct Checklist { area: Rect, paragraphs: Paragraphs, current: usize, - icon_current: &'static [u8], - icon_done: &'static [u8], + icon_current: Icon, + icon_done: Icon, } impl Checklist { @@ -515,8 +515,8 @@ impl Checklist { const CURRENT_OFFSET: Offset = Offset::new(2, 3); pub fn from_paragraphs( - icon_current: &'static [u8], - icon_done: &'static [u8], + icon_current: Icon, + icon_done: Icon, current: usize, paragraphs: Paragraphs, ) -> Self { @@ -529,11 +529,11 @@ impl Checklist { } } - fn paint_icon(&self, layout: &TextLayout, icon: &'static [u8], offset: Offset) { + fn paint_icon(&self, layout: &TextLayout, icon: Icon, offset: Offset) { let top_left = Point::new(self.area.x0, layout.bounds.y0); - display::icon_top_left( + icon.draw( top_left + offset, - icon, + TOP_LEFT, layout.style.text_color, layout.style.background_color, ); diff --git a/core/embed/rust/src/ui/display/loader.rs b/core/embed/rust/src/ui/display/loader.rs index 104527d763..619b75e0b2 100644 --- a/core/embed/rust/src/ui/display/loader.rs +++ b/core/embed/rust/src/ui/display/loader.rs @@ -1,10 +1,7 @@ -use crate::{ - trezorhal::uzlib::UzlibContext, - ui::{ - constant, display, - display::{Color, ToifFormat}, - geometry::{Offset, Point, Rect}, - }, +use crate::ui::{ + constant, display, + display::Color, + geometry::{Offset, Point, Rect}, }; use core::slice::from_raw_parts; @@ -16,7 +13,7 @@ use crate::trezorhal::{ use crate::ui::{ constant::{screen, LOADER_OUTER}, - display::toif_info_ensure, + display::toif::{Icon, NamedToif}, }; pub const LOADER_MIN: u16 = 0; @@ -41,17 +38,15 @@ pub fn loader_uncompress( bg_color: Color, progress: u16, indeterminate: bool, - icon: Option<(&[u8], Color)>, + icon: Option<(Icon, Color)>, ) { const ICON_MAX_SIZE: i16 = constant::LOADER_ICON_MAX_SIZE; - if let Some((data, color)) = icon { - let (toif_size, toif_data) = toif_info_ensure(data, ToifFormat::GrayScaleEH); - if toif_size.x <= ICON_MAX_SIZE && toif_size.y <= ICON_MAX_SIZE { + if let Some((icon, color)) = icon { + if icon.toif.width() <= ICON_MAX_SIZE && icon.toif.height() <= ICON_MAX_SIZE { let mut icon_data = [0_u8; ((ICON_MAX_SIZE * ICON_MAX_SIZE) / 2) as usize]; - let mut ctx = UzlibContext::new(toif_data, None); - unwrap!(ctx.uncompress(&mut icon_data), "Decompression failed"); - let i = Some((icon_data.as_ref(), color, toif_size)); + icon.toif.uncompress(&mut icon_data); + let i = Some((icon, color, icon.toif.size)); loader_rust(y_offset, fg_color, bg_color, progress, indeterminate, i); } else { loader_rust(y_offset, fg_color, bg_color, progress, indeterminate, None); @@ -78,7 +73,7 @@ pub extern "C" fn loader_uncompress_r( let i = if icon_data != 0 { let data_slice = unsafe { from_raw_parts(icon_data as _, icon_data_size as _) }; - Some((data_slice, ic_color)) + Some((Icon::new(NamedToif(data_slice, "loader icon")), ic_color)) } else { None }; @@ -193,7 +188,7 @@ pub fn loader_rust( bg_color: Color, progress: u16, indeterminate: bool, - icon: Option<(&[u8], Color, Offset)>, + icon: Option<(Icon, Color, Offset)>, ) { let center = screen().center() + Offset::new(0, y_offset); let r = Rect::from_center_and_size(center, Offset::uniform(LOADER_OUTER as i16 * 2)); @@ -209,14 +204,14 @@ pub fn loader_rust( let mut icon_area = Rect::zero(); let mut icon_area_clamped = Rect::zero(); let mut icon_width = 0; - let mut icon_data = [].as_ref(); + let mut icon_data = None; if let Some((data, color, size)) = icon { if size.x <= ICON_MAX_SIZE && size.y <= ICON_MAX_SIZE { icon_width = size.x; icon_area = Rect::from_center_and_size(center, size); icon_area_clamped = icon_area.clamp(constant::screen()); - icon_data = data; + icon_data = Some(data); use_icon = true; icon_colortable = display::get_color_table(color, bg_color); } @@ -242,7 +237,8 @@ pub fn loader_rust( let x_i = x_c - icon_area.x0; let y_i = y_c - icon_area.y0; - let data = icon_data[(((x_i & 0xFE) + (y_i * icon_width)) / 2) as usize]; + let data = unwrap!(icon_data).data() + [(((x_i & 0xFE) + (y_i * icon_width)) / 2) as usize]; if (x_i & 0x01) == 0 { underlying_color = icon_colortable[(data & 0xF) as usize]; } else { @@ -273,7 +269,7 @@ pub fn loader_rust( bg_color: Color, progress: u16, indeterminate: bool, - icon: Option<(&[u8], Color, Offset)>, + icon: Option<(Icon, Color, Offset)>, ) { let center = screen().center() + Offset::new(0, y_offset); let r = Rect::from_center_and_size(center, Offset::uniform(LOADER_OUTER as i16 * 2)); @@ -288,16 +284,16 @@ pub fn loader_rust( let mut icon_width = 0; let mut icon_offset = 0; let mut icon_color = Color::from_u16(0); - let mut icon_data = [].as_ref(); + let mut icon_data = None; - if let Some((data, color, size)) = icon { + if let Some((icon, color, size)) = icon { if size.x <= ICON_MAX_SIZE && size.y <= ICON_MAX_SIZE { icon_width = size.x; icon_area = Rect::from_center_and_size(center, size); icon_area_clamped = icon_area.clamp(constant::screen()); icon_offset = (icon_area_clamped.x0 - r.x0) / 2; icon_color = color; - icon_data = data; + icon_data = Some(icon); use_icon = true; } } @@ -341,7 +337,7 @@ pub fn loader_rust( icon_buffer_used.buffer[icon_offset as usize..(icon_offset + icon_width / 2) as usize] .copy_from_slice( - &icon_data[(y_i * (icon_width / 2)) as usize + &unwrap!(icon_data).toif.data[(y_i * (icon_width / 2)) as usize ..((y_i + 1) * (icon_width / 2)) as usize], ); icon_buffer = icon_buffer_used; @@ -380,7 +376,7 @@ pub fn loader( y_offset: i16, fg_color: Color, bg_color: Color, - icon: Option<(&[u8], Color)>, + icon: Option<(Icon, Color)>, ) { loader_uncompress(y_offset, fg_color, bg_color, progress, false, icon); } @@ -390,7 +386,7 @@ pub fn loader_indeterminate( y_offset: i16, fg_color: Color, bg_color: Color, - icon: Option<(&[u8], Color)>, + icon: Option<(Icon, Color)>, ) { loader_uncompress(y_offset, fg_color, bg_color, progress, true, icon); } diff --git a/core/embed/rust/src/ui/display/mod.rs b/core/embed/rust/src/ui/display/mod.rs index 89be5a755a..fb87f16909 100644 --- a/core/embed/rust/src/ui/display/mod.rs +++ b/core/embed/rust/src/ui/display/mod.rs @@ -2,6 +2,7 @@ pub mod loader; #[cfg(feature = "jpeg")] pub mod tjpgd; +pub mod toif; use super::{ constant, @@ -14,20 +15,21 @@ use crate::trezorhal::{ dma2d_setup_4bpp_over_16bpp, dma2d_setup_4bpp_over_4bpp, dma2d_start_blend, dma2d_wait_for_transfer, }, + uzlib::UZLIB_WINDOW_SIZE, }; +#[cfg(not(feature = "dma2d"))] +use crate::ui::geometry::TOP_LEFT; + use crate::{ error::Error, time::Duration, - trezorhal::{ - display, - display::ToifFormat, - qr, time, - uzlib::{UzlibContext, UZLIB_WINDOW_SIZE}, - }, + trezorhal::{display, qr, time, uzlib::UzlibContext}, ui::lerp::Lerp, }; use core::slice; +use crate::ui::component::image::Image; +pub use crate::ui::display::toif::Icon; #[cfg(any(feature = "model_tt", feature = "model_tr"))] pub use loader::{loader, loader_indeterminate, LOADER_MAX, LOADER_MIN}; @@ -81,106 +83,6 @@ pub fn rect_fill_rounded(r: Rect, fg_color: Color, bg_color: Color, radius: u8) ); } -/// NOTE: Cannot start at odd x-coordinate. In this case icon is shifted 1px -/// left. -pub fn icon_top_left(top_left: Point, data: &[u8], fg_color: Color, bg_color: Color) { - let (toif_size, toif_data) = toif_info_ensure(data, ToifFormat::GrayScaleEH); - display::icon( - top_left.x, - top_left.y, - toif_size.x, - toif_size.y, - toif_data, - fg_color.into(), - bg_color.into(), - ); -} - -pub fn icon(center: Point, data: &[u8], fg_color: Color, bg_color: Color) { - let (toif_size, toif_data) = toif_info_ensure(data, ToifFormat::GrayScaleEH); - let r = Rect::from_center_and_size(center, toif_size); - display::icon( - r.x0, - r.y0, - r.width(), - r.height(), - toif_data, - fg_color.into(), - bg_color.into(), - ); -} - -pub fn icon_rust(center: Point, data: &[u8], fg_color: Color, bg_color: Color) { - let (toif_size, toif_data) = toif_info_ensure(data, ToifFormat::GrayScaleEH); - let r = Rect::from_center_and_size(center, toif_size); - - let area = r.translate(get_offset()); - let clamped = area.clamp(constant::screen()); - let colortable = get_color_table(fg_color, bg_color); - - set_window(clamped); - - let mut dest = [0_u8; 1]; - - let mut window = [0; UZLIB_WINDOW_SIZE]; - let mut ctx = UzlibContext::new(toif_data, Some(&mut window)); - - for py in area.y0..area.y1 { - for px in area.x0..area.x1 { - let p = Point::new(px, py); - let x = p.x - area.x0; - - if clamped.contains(p) { - if x % 2 == 0 { - unwrap!(ctx.uncompress(&mut dest), "Decompression failed"); - pixeldata(colortable[(dest[0] & 0xF) as usize]); - } else { - pixeldata(colortable[(dest[0] >> 4) as usize]); - } - } else if x % 2 == 0 { - //continue unzipping but dont write to display - unwrap!(ctx.uncompress(&mut dest), "Decompression failed"); - } - } - } - - pixeldata_dirty(); -} - -pub fn image(center: Point, data: &[u8]) { - let (toif_size, toif_data) = toif_info_ensure(data, ToifFormat::FullColorLE); - - let r = Rect::from_center_and_size(center, toif_size); - display::image(r.x0, r.y0, r.width(), r.height(), toif_data); -} - -pub fn toif_info(data: &[u8]) -> Option<(Offset, ToifFormat)> { - if let Ok(info) = display::toif_info(data) { - Some(( - Offset::new( - unwrap!(info.width.try_into()), - unwrap!(info.height.try_into()), - ), - info.format, - )) - } else { - None - } -} - -/// Aborts if the TOIF file does not have the correct grayscale flag, do not use -/// with user-supplied inputs. -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( - unwrap!(info.width.try_into()), - unwrap!(info.height.try_into()), - ); - let payload = &data[12..]; // Skip TOIF header. - (size, payload) -} - // Used on T1 only. pub fn rect_fill_rounded1(r: Rect, fg_color: Color, bg_color: Color) { display::bar(r.x0, r.y0, r.width(), r.height(), fg_color.into()); @@ -306,7 +208,7 @@ pub fn rect_rounded2_partial( fg_color: Color, bg_color: Color, show_percent: i16, - icon: Option<(&[u8], Color)>, + icon: Option<(Icon, Color)>, ) { const MAX_ICON_SIZE: i16 = 64; @@ -325,17 +227,13 @@ pub fn rect_rounded2_partial( let mut icon_data = [0_u8; ((MAX_ICON_SIZE * MAX_ICON_SIZE) / 2) as usize]; let mut icon_width = 0; - if let Some((icon_bytes, icon_color)) = icon { - let (toif_size, toif_data) = toif_info_ensure(icon_bytes, ToifFormat::GrayScaleEH); - - if toif_size.x <= MAX_ICON_SIZE && toif_size.y <= MAX_ICON_SIZE { - icon_area = Rect::from_center_and_size(center, toif_size); + if let Some((icon, icon_color)) = icon { + if icon.toif.width() <= MAX_ICON_SIZE && icon.toif.height() <= MAX_ICON_SIZE { + icon_area = Rect::from_center_and_size(center, icon.toif.size); icon_area_clamped = icon_area.clamp(constant::screen()); - - let mut ctx = UzlibContext::new(toif_data, None); - unwrap!(ctx.uncompress(&mut icon_data), "Decompression failed"); + icon.toif.uncompress(&mut icon_data); icon_colortable = get_color_table(icon_color, bg_color); - icon_width = toif_size.x; + icon_width = icon.toif.width(); use_icon = true; } } @@ -533,7 +431,7 @@ fn process_buffer( #[cfg(feature = "dma2d")] pub fn text_over_image( bg_area: Option<(Rect, Color)>, - image_data: &[u8], + image: Image, text: &str, font: Font, offset_img: Offset, @@ -548,8 +446,6 @@ pub fn text_over_image( let t2 = unsafe { get_buffer_4bpp(1, true) }; let empty_t = unsafe { get_buffer_4bpp(2, true) }; - let (toif_size, toif_data) = toif_info_ensure(image_data, ToifFormat::FullColorLE); - let r_img; let area; let offset_img_final; @@ -565,10 +461,10 @@ pub fn text_over_image( empty_img.buffer.copy_from_slice(&img1.buffer); area = a; - r_img = Rect::from_top_left_and_size(a.top_left() + offset_img, toif_size); + r_img = Rect::from_top_left_and_size(a.top_left() + offset_img, image.toif.size); offset_img_final = offset_img; } else { - area = Rect::from_top_left_and_size(offset_img.into(), toif_size); + area = Rect::from_top_left_and_size(offset_img.into(), image.toif.size); r_img = area; offset_img_final = Offset::zero(); } @@ -594,7 +490,7 @@ pub fn text_over_image( set_window(clamped); let mut window = [0; UZLIB_WINDOW_SIZE]; - let mut ctx = UzlibContext::new(toif_data, Some(&mut window)); + let mut ctx = image.toif.decompression_context(Some(&mut window)); dma2d_setup_4bpp_over_16bpp(text_color.into()); @@ -662,8 +558,8 @@ pub fn text_over_image( #[cfg(feature = "dma2d")] pub fn icon_over_icon( bg_area: Option, - bg: (&[u8], Offset, Color), - fg: (&[u8], Offset, Color), + bg: (Icon, Offset, Color), + fg: (Icon, Offset, Color), bg_color: Color, ) { let bg1 = unsafe { get_buffer_16bpp(0, true) }; @@ -673,41 +569,40 @@ pub fn icon_over_icon( let fg2 = unsafe { get_buffer_4bpp(1, true) }; let empty2 = unsafe { get_buffer_4bpp(2, true) }; - let (data_bg, offset_bg, color_icon_bg) = bg; - let (data_fg, offset_fg, color_icon_fg) = fg; + let (icon_bg, offset_bg, color_icon_bg) = bg; + let (icon_fg, offset_fg, color_icon_fg) = fg; - let (toif_bg_size, toif_bg_data) = toif_info_ensure(data_bg, ToifFormat::GrayScaleEH); - assert!(toif_bg_size.x <= constant::WIDTH); - assert_eq!(toif_bg_size.x % 2, 0); + assert!(icon_bg.toif.width() <= constant::WIDTH); + assert_eq!(icon_bg.toif.width() % 2, 0); - let (toif_fg_size, toif_fg_data) = toif_info_ensure(data_fg, ToifFormat::GrayScaleEH); - assert!(toif_bg_size.x <= constant::WIDTH); - assert_eq!(toif_bg_size.x % 2, 0); + assert!(icon_fg.toif.width() <= constant::WIDTH); + assert_eq!(icon_fg.toif.width() % 2, 0); let area; let r_bg; let final_offset_bg; if let Some(a) = bg_area { area = a; - r_bg = Rect::from_top_left_and_size(a.top_left() + offset_bg, toif_bg_size); + r_bg = Rect::from_top_left_and_size(a.top_left() + offset_bg, icon_bg.toif.size); final_offset_bg = offset_bg; } else { - r_bg = Rect::from_top_left_and_size(Point::new(offset_bg.x, offset_bg.y), toif_bg_size); + r_bg = + Rect::from_top_left_and_size(Point::new(offset_bg.x, offset_bg.y), icon_bg.toif.size); area = r_bg; final_offset_bg = Offset::zero(); } - let r_fg = Rect::from_top_left_and_size(area.top_left() + offset_fg, toif_fg_size); + let r_fg = Rect::from_top_left_and_size(area.top_left() + offset_fg, icon_fg.toif.size); let clamped = area.clamp(constant::screen()).ensure_even_width(); set_window(clamped); let mut window_bg = [0; UZLIB_WINDOW_SIZE]; - let mut ctx_bg = UzlibContext::new(toif_bg_data, Some(&mut window_bg)); + let mut ctx_bg = UzlibContext::new(icon_bg.toif.data, Some(&mut window_bg)); let mut window_fg = [0; UZLIB_WINDOW_SIZE]; - let mut ctx_fg = UzlibContext::new(toif_fg_data, Some(&mut window_fg)); + let mut ctx_fg = UzlibContext::new(icon_fg.toif.data, Some(&mut window_fg)); dma2d_setup_4bpp_over_4bpp(color_icon_bg.into(), bg_color.into(), color_icon_fg.into()); @@ -766,12 +661,12 @@ pub fn icon_over_icon( #[cfg(not(feature = "dma2d"))] pub fn icon_over_icon( bg_area: Option, - bg: (&[u8], Offset, Color), - fg: (&[u8], Offset, Color), + bg: (Icon, Offset, Color), + fg: (Icon, Offset, Color), bg_color: Color, ) { - let (data_bg, offset_bg, color_icon_bg) = bg; - let (data_fg, offset_fg, color_icon_fg) = fg; + let (icon_bg, offset_bg, color_icon_bg) = bg; + let (icon_fg, offset_fg, color_icon_fg) = fg; let pos_bg = if let Some(area) = bg_area { rect_fill(area, bg_color); @@ -780,8 +675,8 @@ pub fn icon_over_icon( Point::from(offset_bg) }; - icon_top_left(pos_bg, data_bg, color_icon_bg, bg_color); - icon_top_left(pos_bg + offset_fg, data_fg, color_icon_fg, color_icon_bg); + icon_bg.draw(pos_bg, TOP_LEFT, color_icon_bg, bg_color); + icon_fg.draw(pos_bg + offset_fg, TOP_LEFT, color_icon_fg, color_icon_bg); } /// Gets a color of a pixel on `p` coordinates of rounded rectangle with corner diff --git a/core/embed/rust/src/ui/display/toif.rs b/core/embed/rust/src/ui/display/toif.rs new file mode 100644 index 0000000000..fc141f7af1 --- /dev/null +++ b/core/embed/rust/src/ui/display/toif.rs @@ -0,0 +1,131 @@ +use crate::{ + trezorhal, + trezorhal::{ + display::ToifFormat, + uzlib::{UzlibContext, UZLIB_WINDOW_SIZE}, + }, + ui::{ + constant, + display::{get_color_table, get_offset, pixeldata, pixeldata_dirty, set_window}, + geometry::{Alignment2D, Offset, Point, Rect}, + }, +}; + +use super::Color; + +const TOIF_HEADER_LENGTH: usize = 12; + +/// Storing the icon together with its name +/// Needs to be a tuple-struct, so it can be made `const` +#[derive(Debug, Clone, Copy)] +pub struct NamedToif(pub &'static [u8], pub &'static str); + +pub fn toif_info(data: &[u8]) -> Option<(Offset, ToifFormat)> { + if let Ok(info) = trezorhal::display::toif_info(data) { + Some(( + Offset::new( + unwrap!(info.width.try_into()), + unwrap!(info.height.try_into()), + ), + info.format, + )) + } else { + None + } +} + +pub fn icon(icon: &Icon, center: Point, fg_color: Color, bg_color: Color) { + let r = Rect::from_center_and_size(center, icon.toif.size); + let area = r.translate(get_offset()); + let clamped = area.clamp(constant::screen()); + let colortable = get_color_table(fg_color, bg_color); + + set_window(clamped); + + let mut dest = [0_u8; 1]; + + let mut window = [0; UZLIB_WINDOW_SIZE]; + let mut ctx = icon.toif.decompression_context(Some(&mut window)); + + for py in area.y0..area.y1 { + for px in area.x0..area.x1 { + let p = Point::new(px, py); + let x = p.x - area.x0; + + if clamped.contains(p) { + if x % 2 == 0 { + unwrap!(ctx.uncompress(&mut dest), "Decompression failed"); + pixeldata(colortable[(dest[0] & 0xF) as usize]); + } else { + pixeldata(colortable[(dest[0] >> 4) as usize]); + } + } else if x % 2 == 0 { + //continue unzipping but dont write to display + unwrap!(ctx.uncompress(&mut dest), "Decompression failed"); + } + } + } + + pixeldata_dirty(); +} + +/// Holding toif data and allowing it to draw itself. +#[derive(PartialEq, Eq, Clone, Copy)] +pub struct Toif { + pub data: &'static [u8], + pub name: &'static str, // useful for debugging purposes. + pub size: Offset, + pub format: ToifFormat, +} + +impl Toif { + pub fn new(named_toif: NamedToif) -> Self { + let info = unwrap!(toif_info(named_toif.0)); + Self { + data: named_toif.0[TOIF_HEADER_LENGTH..].as_ref(), + name: named_toif.1, + size: info.0, + format: info.1, + } + } + + pub fn width(&self) -> i16 { + self.size.x + } + + pub fn height(&self) -> i16 { + self.size.y + } + + pub fn uncompress(&self, dest: &mut [u8]) { + let mut ctx = self.decompression_context(None); + unwrap!(ctx.uncompress(dest), self.name); + } + + pub fn decompression_context<'a>( + &'a self, + window: Option<&'a mut [u8; UZLIB_WINDOW_SIZE]>, + ) -> UzlibContext { + UzlibContext::new(self.data, window) + } +} + +#[derive(PartialEq, Eq, Clone, Copy)] +pub struct Icon { + pub toif: Toif, +} + +impl Icon { + pub fn new(named_toif: NamedToif) -> Self { + let toif = Toif::new(named_toif); + ensure!(toif.format == ToifFormat::GrayScaleEH, toif.name); + Self { toif } + } + + /// Display the icon with baseline Point, aligned according to the + /// `alignment` argument. + pub fn draw(&self, baseline: Point, alignment: Alignment2D, fg_color: Color, bg_color: Color) { + let r = Rect::snap(baseline, self.toif.size, alignment); + icon(self, r.center(), fg_color, bg_color); + } +} diff --git a/core/embed/rust/src/ui/geometry.rs b/core/embed/rust/src/ui/geometry.rs index 0cc6c96acc..ded8307f5a 100644 --- a/core/embed/rust/src/ui/geometry.rs +++ b/core/embed/rust/src/ui/geometry.rs @@ -77,13 +77,13 @@ impl Offset { /// With `self` representing a rectangle size, returns top-left corner of /// the rectangle such that it is aligned relative to the `point`. - pub const fn snap(self, point: Point, x: Alignment, y: Alignment) -> Point { - let x_off = match x { + pub const fn snap(self, point: Point, alignment: Alignment2D) -> Point { + let x_off = match alignment.0 { Alignment::Start => 0, Alignment::Center => self.x / 2, Alignment::End => self.x, }; - let y_off = match y { + let y_off = match alignment.1 { Alignment::Start => 0, Alignment::Center => self.y / 2, Alignment::End => self.y, @@ -224,6 +224,12 @@ impl Rect { Self::new(Point::zero(), Point::zero()) } + /// Returns a rectangle of `size` such that `point` is on position specified + /// by `alignment`. + pub const fn snap(point: Point, size: Offset, alignment: Alignment2D) -> Rect { + Self::from_top_left_and_size(size.snap(point, alignment), size) + } + pub const fn from_top_left_and_size(p0: Point, size: Offset) -> Self { Self { x0: p0.x, @@ -451,6 +457,14 @@ pub enum Alignment { End, } +pub type Alignment2D = (Alignment, Alignment); + +pub const TOP_LEFT: Alignment2D = (Alignment::Start, Alignment::Start); +pub const TOP_RIGHT: Alignment2D = (Alignment::Start, Alignment::End); +pub const CENTER: Alignment2D = (Alignment::Center, Alignment::Center); +pub const BOTTOM_LEFT: Alignment2D = (Alignment::Start, Alignment::End); +pub const BOTTOM_RIGHT: Alignment2D = (Alignment::End, Alignment::End); + #[derive(Copy, Clone, PartialEq, Eq)] pub enum Axis { Horizontal, diff --git a/core/embed/rust/src/ui/model_tr/component/result_anim.rs b/core/embed/rust/src/ui/model_tr/component/result_anim.rs index 9cd03a0259..8cde4e309d 100644 --- a/core/embed/rust/src/ui/model_tr/component/result_anim.rs +++ b/core/embed/rust/src/ui/model_tr/component/result_anim.rs @@ -4,6 +4,7 @@ use crate::{ animation::Animation, component::{Component, Event, EventCtx}, display, + display::toif::Icon, geometry::Rect, model_tr::theme, }, @@ -23,11 +24,11 @@ pub struct ResultAnim { area: Rect, state: State, growing_duration: Duration, - icon: &'static [u8], + icon: Icon, } impl ResultAnim { - pub fn new(icon: &'static [u8]) -> Self { + pub fn new(icon: Icon) -> Self { Self { area: Rect::zero(), state: State::Initial, diff --git a/core/embed/rust/src/ui/model_tr/component/result_popup.rs b/core/embed/rust/src/ui/model_tr/component/result_popup.rs index ca5cc5e6ee..923c254ec5 100644 --- a/core/embed/rust/src/ui/model_tr/component/result_popup.rs +++ b/core/embed/rust/src/ui/model_tr/component/result_popup.rs @@ -6,6 +6,7 @@ use crate::{ Child, Component, ComponentExt, Event, EventCtx, Label, Pad, }, constant::screen, + display::toif::Icon, geometry::{Alignment, Insets, LinearPlacement, Point, Rect}, model_tr::{ component::{Button, ButtonMsg, ButtonPos, ResultAnim, ResultAnimMsg}, @@ -38,7 +39,7 @@ const ANIM_POS_ADJ_BUTTON: i16 = 6; impl ResultPopup { pub fn new( - icon: &'static [u8], + icon: Icon, text: S, headline: Option<&'static str>, button_text: Option<&'static str>, diff --git a/core/embed/rust/src/ui/model_tt/component/button.rs b/core/embed/rust/src/ui/model_tt/component/button.rs index 7b2c802749..b9d74f5ca1 100644 --- a/core/embed/rust/src/ui/model_tt/component/button.rs +++ b/core/embed/rust/src/ui/model_tt/component/button.rs @@ -4,9 +4,9 @@ use crate::{ component::{ Component, ComponentExt, Event, EventCtx, FixedHeightBar, GridPlaced, Map, TimerToken, }, - display::{self, Color, Font}, + display::{self, toif::Icon, Color, Font}, event::TouchEvent, - geometry::{Insets, Offset, Rect}, + geometry::{Insets, Offset, Rect, CENTER}, }, }; @@ -48,11 +48,11 @@ impl Button { Self::new(ButtonContent::Text(text)) } - pub fn with_icon(image: &'static [u8]) -> Self { - Self::new(ButtonContent::Icon(image)) + pub fn with_icon(icon: Icon) -> Self { + Self::new(ButtonContent::Icon(icon)) } - pub fn with_icon_blend(bg: &'static [u8], fg: &'static [u8], fg_offset: Offset) -> Self { + pub fn with_icon_blend(bg: Icon, fg: Icon, fg_offset: Offset) -> Self { Self::new(ButtonContent::IconBlend(bg, fg, fg_offset)) } @@ -198,17 +198,17 @@ impl Button { ); } ButtonContent::Icon(icon) => { - display::icon( + icon.draw( self.area.center(), - icon, + CENTER, style.text_color, style.button_color, ); } ButtonContent::IconBlend(bg, fg, offset) => display::icon_over_icon( Some(self.area), - (bg, Offset::zero(), style.button_color), - (fg, *offset, style.text_color), + (*bg, Offset::zero(), style.button_color), + (*fg, *offset, style.text_color), style.background_color, ), } @@ -328,8 +328,8 @@ enum State { pub enum ButtonContent { Empty, Text(T), - Icon(&'static [u8]), - IconBlend(&'static [u8], &'static [u8], Offset), + Icon(Icon), + IconBlend(Icon, Icon, Offset), } #[derive(PartialEq, Eq)] @@ -396,7 +396,7 @@ impl Button { let (left, right_size_factor) = if let Some(verb) = left { (Button::with_text(verb), 1) } else { - (Button::with_icon(theme::ICON_CANCEL), 2) + (Button::with_icon(Icon::new(theme::ICON_CANCEL)), 2) }; let right = Button::with_text(right).styled(theme::button_confirm()); @@ -417,7 +417,7 @@ impl Button { { let right = Button::with_text(confirm).styled(theme::button_confirm()); let top = Button::with_text(info); - let left = Button::with_icon(theme::ICON_CANCEL); + let left = Button::with_icon(Icon::new(theme::ICON_CANCEL)); theme::button_bar_rows( 2, ( diff --git a/core/embed/rust/src/ui/model_tt/component/dialog.rs b/core/embed/rust/src/ui/model_tt/component/dialog.rs index c16ca41cdd..7c64ce92bb 100644 --- a/core/embed/rust/src/ui/model_tt/component/dialog.rs +++ b/core/embed/rust/src/ui/model_tt/component/dialog.rs @@ -6,6 +6,7 @@ use crate::ui::{ }, Child, Component, Event, EventCtx, Never, }, + display::toif::Icon, geometry::{Insets, LinearPlacement, Rect}, }; @@ -128,8 +129,8 @@ where let [l0, l1, l2, l3] = lines; Self { image: Child::new(BlendedImage::new( - theme::IMAGE_BG_CIRCLE, - theme::IMAGE_FG_SUCCESS, + Icon::new(theme::IMAGE_BG_CIRCLE), + Icon::new(theme::IMAGE_FG_SUCCESS), theme::SUCCESS_COLOR, theme::FG, theme::BG, diff --git a/core/embed/rust/src/ui/model_tt/component/fido.rs b/core/embed/rust/src/ui/model_tt/component/fido.rs index baedabab89..ed2e7dffbf 100644 --- a/core/embed/rust/src/ui/model_tt/component/fido.rs +++ b/core/embed/rust/src/ui/model_tt/component/fido.rs @@ -1,5 +1,5 @@ use crate::ui::{ - component::{Child, Component, Event, EventCtx, Image, Label}, + component::{image::Image, Child, Component, Event, EventCtx, Label}, display, geometry::{Alignment, Insets, Rect}, model_tt::component::{ diff --git a/core/embed/rust/src/ui/model_tt/component/fido_icons.rs b/core/embed/rust/src/ui/model_tt/component/fido_icons.rs index 3861545166..03cbd579b0 100644 --- a/core/embed/rust/src/ui/model_tt/component/fido_icons.rs +++ b/core/embed/rust/src/ui/model_tt/component/fido_icons.rs @@ -2,42 +2,45 @@ //! (by running `make templates` in `core`) //! do not edit manually! -const ICON_AWS: &[u8] = include_res!("model_tt/res/fido/icon_aws.toif"); -const ICON_BINANCE: &[u8] = include_res!("model_tt/res/fido/icon_binance.toif"); -const ICON_BITBUCKET: &[u8] = include_res!("model_tt/res/fido/icon_bitbucket.toif"); -const ICON_BITFINEX: &[u8] = include_res!("model_tt/res/fido/icon_bitfinex.toif"); -const ICON_BITWARDEN: &[u8] = include_res!("model_tt/res/fido/icon_bitwarden.toif"); -const ICON_CLOUDFLARE: &[u8] = include_res!("model_tt/res/fido/icon_cloudflare.toif"); -const ICON_COINBASE: &[u8] = include_res!("model_tt/res/fido/icon_coinbase.toif"); -const ICON_DASHLANE: &[u8] = include_res!("model_tt/res/fido/icon_dashlane.toif"); -const ICON_DROPBOX: &[u8] = include_res!("model_tt/res/fido/icon_dropbox.toif"); -const ICON_DUO: &[u8] = include_res!("model_tt/res/fido/icon_duo.toif"); -const ICON_FACEBOOK: &[u8] = include_res!("model_tt/res/fido/icon_facebook.toif"); -const ICON_FASTMAIL: &[u8] = include_res!("model_tt/res/fido/icon_fastmail.toif"); -const ICON_FEDORA: &[u8] = include_res!("model_tt/res/fido/icon_fedora.toif"); -const ICON_GANDI: &[u8] = include_res!("model_tt/res/fido/icon_gandi.toif"); -const ICON_GEMINI: &[u8] = include_res!("model_tt/res/fido/icon_gemini.toif"); -const ICON_GITHUB: &[u8] = include_res!("model_tt/res/fido/icon_github.toif"); -const ICON_GITLAB: &[u8] = include_res!("model_tt/res/fido/icon_gitlab.toif"); -const ICON_GOOGLE: &[u8] = include_res!("model_tt/res/fido/icon_google.toif"); -const ICON_INVITY: &[u8] = include_res!("model_tt/res/fido/icon_invity.toif"); -const ICON_KEEPER: &[u8] = include_res!("model_tt/res/fido/icon_keeper.toif"); -const ICON_KRAKEN: &[u8] = include_res!("model_tt/res/fido/icon_kraken.toif"); -const ICON_LOGIN_GOV: &[u8] = include_res!("model_tt/res/fido/icon_login.gov.toif"); -const ICON_MICROSOFT: &[u8] = include_res!("model_tt/res/fido/icon_microsoft.toif"); -const ICON_MOJEID: &[u8] = include_res!("model_tt/res/fido/icon_mojeid.toif"); -const ICON_NAMECHEAP: &[u8] = include_res!("model_tt/res/fido/icon_namecheap.toif"); -const ICON_PROTON: &[u8] = include_res!("model_tt/res/fido/icon_proton.toif"); -const ICON_SLUSHPOOL: &[u8] = include_res!("model_tt/res/fido/icon_slushpool.toif"); -const ICON_STRIPE: &[u8] = include_res!("model_tt/res/fido/icon_stripe.toif"); -const ICON_TUTANOTA: &[u8] = include_res!("model_tt/res/fido/icon_tutanota.toif"); +use crate::ui::display::toif::NamedToif; + + +const ICON_AWS: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_aws.toif"), "AWS"); +const ICON_BINANCE: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_binance.toif"), "BINANCE"); +const ICON_BITBUCKET: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_bitbucket.toif"), "BITBUCKET"); +const ICON_BITFINEX: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_bitfinex.toif"), "BITFINEX"); +const ICON_BITWARDEN: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_bitwarden.toif"), "BITWARDEN"); +const ICON_CLOUDFLARE: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_cloudflare.toif"), "CLOUDFLARE"); +const ICON_COINBASE: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_coinbase.toif"), "COINBASE"); +const ICON_DASHLANE: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_dashlane.toif"), "DASHLANE"); +const ICON_DROPBOX: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_dropbox.toif"), "DROPBOX"); +const ICON_DUO: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_duo.toif"), "DUO"); +const ICON_FACEBOOK: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_facebook.toif"), "FACEBOOK"); +const ICON_FASTMAIL: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_fastmail.toif"), "FASTMAIL"); +const ICON_FEDORA: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_fedora.toif"), "FEDORA"); +const ICON_GANDI: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_gandi.toif"), "GANDI"); +const ICON_GEMINI: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_gemini.toif"), "GEMINI"); +const ICON_GITHUB: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_github.toif"), "GITHUB"); +const ICON_GITLAB: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_gitlab.toif"), "GITLAB"); +const ICON_GOOGLE: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_google.toif"), "GOOGLE"); +const ICON_INVITY: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_invity.toif"), "INVITY"); +const ICON_KEEPER: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_keeper.toif"), "KEEPER"); +const ICON_KRAKEN: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_kraken.toif"), "KRAKEN"); +const ICON_LOGIN_GOV: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_login.gov.toif"), "LOGIN_GOV"); +const ICON_MICROSOFT: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_microsoft.toif"), "MICROSOFT"); +const ICON_MOJEID: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_mojeid.toif"), "MOJEID"); +const ICON_NAMECHEAP: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_namecheap.toif"), "NAMECHEAP"); +const ICON_PROTON: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_proton.toif"), "PROTON"); +const ICON_SLUSHPOOL: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_slushpool.toif"), "SLUSHPOOL"); +const ICON_STRIPE: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_stripe.toif"), "STRIPE"); +const ICON_TUTANOTA: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_tutanota.toif"), "TUTANOTA"); /// Default icon when app does not have its own -const ICON_WEBAUTHN: &[u8] = include_res!("model_tt/res/fido/icon_webauthn.toif"); +const ICON_WEBAUTHN: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_webauthn.toif"), "WEBAUTHN"); /// Translates icon name into its data. /// Returns default `ICON_WEBAUTHN` when the icon is not found or name not /// supplied. -pub fn get_fido_icon_data>(icon_name: Option) -> &'static [u8] { +pub fn get_fido_icon_data>(icon_name: Option) -> NamedToif { if let Some(icon_name) = icon_name { match icon_name.as_ref() { "aws" => ICON_AWS, diff --git a/core/embed/rust/src/ui/model_tt/component/fido_icons.rs.mako b/core/embed/rust/src/ui/model_tt/component/fido_icons.rs.mako index 3de5e4af8e..7781417728 100644 --- a/core/embed/rust/src/ui/model_tt/component/fido_icons.rs.mako +++ b/core/embed/rust/src/ui/model_tt/component/fido_icons.rs.mako @@ -1,6 +1,9 @@ //! generated from webauthn_icons.rs.mako //! (by running `make templates` in `core`) //! do not edit manually! + +use crate::ui::display::toif::NamedToif; + <% icons: list[tuple[str, str]] = [] for app in fido: @@ -12,15 +15,15 @@ for app in fido: %>\ % for icon_name, var_name in icons: -const ICON_${var_name}: &[u8] = include_res!("model_tt/res/fido/icon_${icon_name}.toif"); +const ICON_${var_name}: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_${icon_name}.toif"), "${var_name}"); % endfor /// Default icon when app does not have its own -const ICON_WEBAUTHN: &[u8] = include_res!("model_tt/res/fido/icon_webauthn.toif"); +const ICON_WEBAUTHN: NamedToif = NamedToif(include_res!("model_tt/res/fido/icon_webauthn.toif"), "WEBAUTHN"); /// Translates icon name into its data. /// Returns default `ICON_WEBAUTHN` when the icon is not found or name not /// supplied. -pub fn get_fido_icon_data>(icon_name: Option) -> &'static [u8] { +pub fn get_fido_icon_data>(icon_name: Option) -> NamedToif { if let Some(icon_name) = icon_name { match icon_name.as_ref() { % for icon_name, var_name in icons: diff --git a/core/embed/rust/src/ui/model_tt/component/frame.rs b/core/embed/rust/src/ui/model_tt/component/frame.rs index 4102ee78e3..d09c051ede 100644 --- a/core/embed/rust/src/ui/model_tt/component/frame.rs +++ b/core/embed/rust/src/ui/model_tt/component/frame.rs @@ -1,7 +1,7 @@ use super::theme; use crate::ui::{ component::{label::Label, text::TextStyle, Child, Component, Event, EventCtx}, - display::{self, Color, Font}, + display::{self, toif::Icon, Color, Font}, geometry::{Alignment, Insets, Offset, Rect}, util::icon_text_center, }; @@ -100,7 +100,7 @@ where pub struct NotificationFrame { area: Rect, - icon: &'static [u8], + icon: Icon, title: U, content: Child, } @@ -116,7 +116,7 @@ where const ICON_SPACE: i16 = 8; const BORDER: i16 = 8; - pub fn new(icon: &'static [u8], title: U, content: T) -> Self { + pub fn new(icon: Icon, title: U, content: T) -> Self { Self { icon, title, @@ -129,7 +129,7 @@ where self.content.inner() } - pub fn paint_notification(area: Rect, icon: &'static [u8], title: &str, color: Color) { + pub fn paint_notification(area: Rect, icon: Icon, title: &str, color: Color) { let (area, _) = area .inset(Insets::uniform(Self::BORDER)) .split_top(Self::HEIGHT); diff --git a/core/embed/rust/src/ui/model_tt/component/hold_to_confirm.rs b/core/embed/rust/src/ui/model_tt/component/hold_to_confirm.rs index 952cce46b9..2524878adc 100644 --- a/core/embed/rust/src/ui/model_tt/component/hold_to_confirm.rs +++ b/core/embed/rust/src/ui/model_tt/component/hold_to_confirm.rs @@ -2,6 +2,7 @@ use crate::{ time::Instant, ui::{ component::{Child, Component, ComponentExt, Event, EventCtx, FixedHeightBar, Pad}, + display::toif::Icon, geometry::{Grid, Insets, Rect}, util::animation_disabled, }, @@ -126,7 +127,7 @@ pub enum CancelHoldMsg { impl CancelHold { pub fn new(button_style: ButtonStyleSheet) -> FixedHeightBar { theme::button_bar(Self { - cancel: Some(Button::with_icon(theme::ICON_CANCEL).into_child()), + cancel: Some(Button::with_icon(Icon::new(theme::ICON_CANCEL)).into_child()), hold: Button::with_text("HOLD TO CONFIRM") .styled(button_style) .into_child(), diff --git a/core/embed/rust/src/ui/model_tt/component/homescreen/mod.rs b/core/embed/rust/src/ui/model_tt/component/homescreen/mod.rs index 9191b54183..1b47ad51c1 100644 --- a/core/embed/rust/src/ui/model_tt/component/homescreen/mod.rs +++ b/core/embed/rust/src/ui/model_tt/component/homescreen/mod.rs @@ -7,7 +7,7 @@ use crate::{ trezorhal::usb::usb_configured, ui::{ component::{Component, Event, EventCtx, Pad, TimerToken}, - display::{self, tjpgd::jpeg_info, Color, Font}, + display::{self, tjpgd::jpeg_info, toif::Icon, Color, Font}, event::{TouchEvent, USBEvent}, geometry::{Offset, Point, Rect}, model_tt::{constant, theme::IMAGE_HOMESCREEN}, @@ -60,11 +60,11 @@ where } } - fn level_to_style(level: u8) -> (Color, &'static [u8]) { + fn level_to_style(level: u8) -> (Color, Icon) { match level { - 2 => (theme::VIOLET, theme::ICON_MAGIC), - 1 => (theme::YELLOW, theme::ICON_WARN), - _ => (theme::RED, theme::ICON_WARN), + 2 => (theme::VIOLET, Icon::new(theme::ICON_MAGIC)), + 1 => (theme::YELLOW, Icon::new(theme::ICON_WARN)), + _ => (theme::RED, Icon::new(theme::ICON_WARN)), } } @@ -273,7 +273,7 @@ where text: locked, style: theme::TEXT_BOLD, offset: Offset::new(10, LOCKED_Y), - icon: Some(theme::ICON_LOCK), + icon: Some(Icon::new(theme::ICON_LOCK)), }, HomescreenText { text: tap, 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 index 2bfada79b5..6fd1fea43e 100644 --- a/core/embed/rust/src/ui/model_tt/component/homescreen/render.rs +++ b/core/embed/rust/src/ui/model_tt/component/homescreen/render.rs @@ -7,12 +7,11 @@ use crate::{ trezorhal::{ buffers::{get_blurring_buffer, get_jpeg_buffer, get_jpeg_work_buffer, BufferJpeg}, display, - display::{bar_radius_buffer, ToifFormat}, - uzlib::UzlibContext, + display::bar_radius_buffer, }, ui::{ constant::screen, - display::{position_buffer, set_window, toif_info_ensure, Color}, + display::{position_buffer, set_window, Color}, geometry::{Offset, Point, Rect}, }, }; @@ -20,7 +19,10 @@ use crate::{ use crate::ui::{ component::text::TextStyle, constant::{HEIGHT, WIDTH}, - display::tjpgd::{BufferInput, BufferOutput, JDEC}, + display::{ + tjpgd::{BufferInput, BufferOutput, JDEC}, + Icon, + }, model_tt::theme, util::icon_text_center, }; @@ -30,13 +32,13 @@ pub struct HomescreenText<'a> { pub text: &'a str, pub style: TextStyle, pub offset: Offset, - pub icon: Option<&'static [u8]>, + pub icon: Option, } #[derive(Clone, Copy)] pub struct HomescreenNotification<'a> { pub text: &'a str, - pub icon: &'static [u8], + pub icon: Icon, pub color: Color, } @@ -129,12 +131,10 @@ fn homescreen_position_text( 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 + assert!(icon.toif.width() <= HOMESCREEN_MAX_ICON_SIZE); + assert!(icon.toif.height() <= HOMESCREEN_MAX_ICON_SIZE); + icon.toif.uncompress(icon_buffer); + icon.toif.size } else { Offset::zero() }; diff --git a/core/embed/rust/src/ui/model_tt/component/keyboard/bip39.rs b/core/embed/rust/src/ui/model_tt/component/keyboard/bip39.rs index 64f1527941..6ea210ee13 100644 --- a/core/embed/rust/src/ui/model_tt/component/keyboard/bip39.rs +++ b/core/embed/rust/src/ui/model_tt/component/keyboard/bip39.rs @@ -3,7 +3,8 @@ use crate::{ ui::{ component::{Component, Event, EventCtx}, display, - geometry::{Offset, Rect}, + display::toif::Icon, + geometry::{Offset, Rect, CENTER}, model_tt::{ component::{ keyboard::{ @@ -139,7 +140,7 @@ impl Component for Bip39Input { // Icon is painted in the right-center point, of expected size 16x16 pixels, and // 16px from the right edge. let icon_center = area.top_right().center(area.bottom_right()) - Offset::new(16 + 8, 0); - display::icon(icon_center, icon, style.text_color, style.button_color); + icon.draw(icon_center, CENTER, style.text_color, style.button_color); } } @@ -216,13 +217,13 @@ impl Bip39Input { self.button.enable(ctx); self.button.set_stylesheet(ctx, theme::button_confirm()); self.button - .set_content(ctx, ButtonContent::Icon(theme::ICON_CONFIRM)); + .set_content(ctx, ButtonContent::Icon(Icon::new(theme::ICON_CONFIRM))); } else { // Auto-complete button. self.button.enable(ctx); self.button.set_stylesheet(ctx, theme::button_default()); self.button - .set_content(ctx, ButtonContent::Icon(theme::ICON_CLICK)); + .set_content(ctx, ButtonContent::Icon(Icon::new(theme::ICON_CLICK))); } } else { // Disabled button. diff --git a/core/embed/rust/src/ui/model_tt/component/keyboard/mnemonic.rs b/core/embed/rust/src/ui/model_tt/component/keyboard/mnemonic.rs index fb78a2f402..fa34523522 100644 --- a/core/embed/rust/src/ui/model_tt/component/keyboard/mnemonic.rs +++ b/core/embed/rust/src/ui/model_tt/component/keyboard/mnemonic.rs @@ -1,6 +1,7 @@ use crate::ui::{ component::{maybe::paint_overlapping, Child, Component, Event, EventCtx, Label, Maybe}, - geometry::{Alignment, Grid, Offset, Rect}, + display::toif::Icon, + geometry::{Grid, Offset, Rect, CENTER}, model_tt::{ component::{Button, ButtonMsg}, theme, @@ -38,8 +39,8 @@ where back: Child::new(Maybe::hidden( theme::BG, Button::with_icon_blend( - theme::IMAGE_BG_BACK_BTN_TALL, - theme::ICON_BACK, + Icon::new(theme::IMAGE_BG_BACK_BTN_TALL), + Icon::new(theme::ICON_BACK), Offset::new(30, 17), ) .styled(theme::button_clear()) @@ -100,8 +101,7 @@ where let prompt_center = grid.row_col(0, 0).union(grid.row_col(0, 3)).center(); let prompt_size = self.prompt.inner().inner().max_size(); - let prompt_top_left = prompt_size.snap(prompt_center, Alignment::Center, Alignment::Center); - let prompt_area = Rect::from_top_left_and_size(prompt_top_left, prompt_size); + let prompt_area = Rect::snap(prompt_center, prompt_size, CENTER); self.prompt.place(prompt_area); self.back.place(back_area); diff --git a/core/embed/rust/src/ui/model_tt/component/keyboard/passphrase.rs b/core/embed/rust/src/ui/model_tt/component/keyboard/passphrase.rs index b4a116a52e..8ff3ad41ce 100644 --- a/core/embed/rust/src/ui/model_tt/component/keyboard/passphrase.rs +++ b/core/embed/rust/src/ui/model_tt/component/keyboard/passphrase.rs @@ -1,6 +1,7 @@ use crate::ui::{ component::{base::ComponentExt, Child, Component, Event, EventCtx, Never}, display, + display::toif::Icon, geometry::{Grid, Insets, Offset, Rect}, model_tt::component::{ button::{Button, ButtonContent, ButtonMsg}, @@ -46,12 +47,12 @@ impl PassphraseKeyboard { Self { page_swipe: Swipe::horizontal(), input: Input::new().into_child(), - confirm: Button::with_icon(theme::ICON_CONFIRM) + confirm: Button::with_icon(Icon::new(theme::ICON_CONFIRM)) .styled(theme::button_confirm()) .into_child(), back: Button::with_icon_blend( - theme::IMAGE_BG_BACK_BTN, - theme::ICON_BACK, + Icon::new(theme::IMAGE_BG_BACK_BTN), + Icon::new(theme::ICON_BACK), Offset::new(30, 12), ) .styled(theme::button_reset()) @@ -61,7 +62,7 @@ impl PassphraseKeyboard { keys: KEYBOARD.map(|page| { page.map(|text| { if text == " " { - let icon = theme::ICON_SPACE; + let icon = Icon::new(theme::ICON_SPACE); Child::new(Button::with_icon(icon)) } else { Child::new(Button::with_text(text)) diff --git a/core/embed/rust/src/ui/model_tt/component/keyboard/pin.rs b/core/embed/rust/src/ui/model_tt/component/keyboard/pin.rs index dc73d90fa6..8b3d70a0fc 100644 --- a/core/embed/rust/src/ui/model_tt/component/keyboard/pin.rs +++ b/core/embed/rust/src/ui/model_tt/component/keyboard/pin.rs @@ -9,9 +9,9 @@ use crate::{ base::ComponentExt, text::TextStyle, Child, Component, Event, EventCtx, Label, Maybe, Never, Pad, TimerToken, }, - display::{self, Font}, + display::{self, toif::Icon, Font}, event::TouchEvent, - geometry::{Alignment, Grid, Insets, Offset, Rect}, + geometry::{Grid, Insets, Offset, Rect, CENTER, TOP_LEFT}, model_tt::component::{ button::{Button, ButtonContent, ButtonMsg, ButtonMsg::Clicked}, theme, @@ -70,8 +70,8 @@ where ) -> Self { // Control buttons. let erase_btn = Button::with_icon_blend( - theme::IMAGE_BG_BACK_BTN, - theme::ICON_BACK, + Icon::new(theme::IMAGE_BG_BACK_BTN), + Icon::new(theme::ICON_BACK), Offset::new(30, 12), ) .styled(theme::button_reset()) @@ -79,7 +79,8 @@ where .initially_enabled(false); let erase_btn = Maybe::hidden(theme::BG, erase_btn).into_child(); - let cancel_btn = Button::with_icon(theme::ICON_CANCEL).styled(theme::button_cancel()); + let cancel_btn = + Button::with_icon(Icon::new(theme::ICON_CANCEL)).styled(theme::button_cancel()); let cancel_btn = Maybe::new(Pad::with_background(theme::BG), cancel_btn, allow_cancel).into_child(); @@ -95,7 +96,7 @@ where textbox_pad: Pad::with_background(theme::label_default().background_color), erase_btn, cancel_btn, - confirm_btn: Button::with_icon(theme::ICON_CONFIRM) + confirm_btn: Button::with_icon(Icon::new(theme::ICON_CONFIRM)) .styled(theme::button_confirm()) .initially_enabled(false) .into_child(), @@ -369,9 +370,7 @@ impl PinDots { } fn paint_dots(&self, area: Rect) { - let mut cursor = self - .size() - .snap(area.center(), Alignment::Center, Alignment::Center); + let mut cursor = self.size().snap(area.center(), CENTER); let digits = self.digits.len(); let dots_visible = digits.min(MAX_VISIBLE_DOTS); @@ -384,9 +383,9 @@ impl PinDots { // Small leftmost dot. if digits > dots_visible + 1 { - display::icon_top_left( + Icon::new(theme::DOT_SMALL).draw( cursor - Offset::x(2 * step), - theme::DOT_SMALL, + TOP_LEFT, self.style.text_color, self.style.background_color, ); @@ -394,9 +393,9 @@ impl PinDots { // Greyed out dot. if digits > dots_visible { - display::icon_top_left( + Icon::new(theme::DOT_ACTIVE).draw( cursor - Offset::x(step), - theme::DOT_ACTIVE, + TOP_LEFT, theme::GREY_LIGHT, self.style.background_color, ); @@ -404,9 +403,9 @@ impl PinDots { // Draw a dot for each PIN digit. for _ in 0..dots_visible { - display::icon_top_left( + Icon::new(theme::DOT_ACTIVE).draw( cursor, - theme::DOT_ACTIVE, + TOP_LEFT, self.style.text_color, self.style.background_color, ); diff --git a/core/embed/rust/src/ui/model_tt/component/keyboard/slip39.rs b/core/embed/rust/src/ui/model_tt/component/keyboard/slip39.rs index ffe8253650..034f7af600 100644 --- a/core/embed/rust/src/ui/model_tt/component/keyboard/slip39.rs +++ b/core/embed/rust/src/ui/model_tt/component/keyboard/slip39.rs @@ -7,7 +7,8 @@ use crate::{ ui::{ component::{Component, Event, EventCtx}, display, - geometry::{Offset, Rect}, + display::toif::Icon, + geometry::{Offset, Rect, CENTER}, model_tt::{ component::{ keyboard::{ @@ -173,7 +174,7 @@ impl Component for Slip39Input { // Icon is painted in the right-center point, of expected size 16x16 pixels, and // 16px from the right edge. let icon_center = area.top_right().center(area.bottom_right()) - Offset::new(16 + 8, 0); - display::icon(icon_center, icon, style.text_color, style.button_color); + icon.draw(icon_center, CENTER, style.text_color, style.button_color); } } @@ -225,7 +226,7 @@ impl Slip39Input { self.button.enable(ctx); self.button.set_stylesheet(ctx, theme::button_confirm()); self.button - .set_content(ctx, ButtonContent::Icon(theme::ICON_CONFIRM)); + .set_content(ctx, ButtonContent::Icon(Icon::new(theme::ICON_CONFIRM))); } else { // Disabled button. self.button.disable(ctx); diff --git a/core/embed/rust/src/ui/model_tt/component/loader.rs b/core/embed/rust/src/ui/model_tt/component/loader.rs index 6b638fa868..ef6bb13fbf 100644 --- a/core/embed/rust/src/ui/model_tt/component/loader.rs +++ b/core/embed/rust/src/ui/model_tt/component/loader.rs @@ -3,7 +3,7 @@ use crate::{ ui::{ animation::Animation, component::{Component, Event, EventCtx}, - display::{self, Color}, + display::{self, toif::Icon, Color}, geometry::{Offset, Rect}, model_tt::constant, util::animation_disabled, @@ -173,6 +173,7 @@ impl Component for Loader { } else { self.styles.active }; + display::loader( progress, self.offset_y, @@ -190,7 +191,7 @@ pub struct LoaderStyleSheet { } pub struct LoaderStyle { - pub icon: Option<(&'static [u8], Color)>, + pub icon: Option<(Icon, Color)>, pub loader_color: Color, pub background_color: Color, } diff --git a/core/embed/rust/src/ui/model_tt/component/mod.rs b/core/embed/rust/src/ui/model_tt/component/mod.rs index da2796a797..d7ad679412 100644 --- a/core/embed/rust/src/ui/model_tt/component/mod.rs +++ b/core/embed/rust/src/ui/model_tt/component/mod.rs @@ -1,6 +1,7 @@ mod button; mod dialog; mod fido; +#[rustfmt::skip] mod fido_icons; mod frame; mod hold_to_confirm; diff --git a/core/embed/rust/src/ui/model_tt/component/page.rs b/core/embed/rust/src/ui/model_tt/component/page.rs index e0de300978..8ba49e6b59 100644 --- a/core/embed/rust/src/ui/model_tt/component/page.rs +++ b/core/embed/rust/src/ui/model_tt/component/page.rs @@ -3,7 +3,7 @@ use crate::ui::{ base::ComponentExt, paginated::PageMsg, Component, Event, EventCtx, FixedHeightBar, Label, Pad, Paginate, }, - display::{self, Color}, + display::{self, toif::Icon, Color}, geometry::{Insets, Rect}, model_tt::component::{Button, ButtonMsg}, }; @@ -44,7 +44,7 @@ where } pub fn with_back_button(mut self) -> Self { - self.button_back = Some(Button::with_icon(theme::ICON_BACK)); + self.button_back = Some(Button::with_icon(Icon::new(theme::ICON_BACK))); self } diff --git a/core/embed/rust/src/ui/model_tt/component/scroll.rs b/core/embed/rust/src/ui/model_tt/component/scroll.rs index a684fea6b5..e96715170c 100644 --- a/core/embed/rust/src/ui/model_tt/component/scroll.rs +++ b/core/embed/rust/src/ui/model_tt/component/scroll.rs @@ -1,7 +1,7 @@ use crate::ui::{ component::{Component, Event, EventCtx, Never}, - display, - geometry::{LinearPlacement, Offset, Rect}, + display::toif::Icon, + geometry::{LinearPlacement, Offset, Rect, CENTER}, }; use super::theme; @@ -76,11 +76,11 @@ impl Component for ScrollBar { } fn paint(&mut self) { - fn dotsize(distance: usize, nhidden: usize) -> &'static [u8] { + fn dotsize(distance: usize, nhidden: usize) -> Icon { match (nhidden.saturating_sub(distance)).min(2 - distance) { - 0 => theme::DOT_INACTIVE, - 1 => theme::DOT_INACTIVE_HALF, - _ => theme::DOT_INACTIVE_QUARTER, + 0 => Icon::new(theme::DOT_INACTIVE), + 1 => Icon::new(theme::DOT_INACTIVE_HALF), + _ => Icon::new(theme::DOT_INACTIVE_QUARTER), } } @@ -100,7 +100,7 @@ impl Component for ScrollBar { ); for i in first_shown..(last_shown + 1) { let icon = if i == self.active_page { - theme::DOT_ACTIVE + Icon::new(theme::DOT_ACTIVE) } else if i <= first_shown + 1 { let before_first_shown = first_shown; dotsize(i - first_shown, before_first_shown) @@ -108,9 +108,9 @@ impl Component for ScrollBar { let after_last_shown = self.page_count - 1 - last_shown; dotsize(last_shown - i, after_last_shown) } else { - theme::DOT_INACTIVE + Icon::new(theme::DOT_INACTIVE) }; - display::icon(cursor, icon, theme::FG, theme::BG); + icon.draw(cursor, CENTER, theme::FG, theme::BG); cursor = cursor + Offset::on_axis(self.layout.axis, Self::DOT_INTERVAL); } } diff --git a/core/embed/rust/src/ui/model_tt/layout.rs b/core/embed/rust/src/ui/model_tt/layout.rs index abac38414b..147f953ebf 100644 --- a/core/embed/rust/src/ui/model_tt/layout.rs +++ b/core/embed/rust/src/ui/model_tt/layout.rs @@ -29,7 +29,7 @@ use crate::{ }, Border, Component, Empty, Timeout, TimeoutMsg, }, - display::tjpgd::jpeg_info, + display::{tjpgd::jpeg_info, toif::Icon}, geometry, layout::{ obj::{ComponentMsgObj, LayoutObj}, @@ -615,7 +615,7 @@ extern "C" fn new_confirm_modify_output(n_args: usize, args: *const Obj, kwargs: ]); let buttons = Button::cancel_confirm( - Button::with_icon(theme::ICON_CANCEL), + Button::with_icon(Icon::new(theme::ICON_CANCEL)), Button::with_text("NEXT").styled(theme::button_confirm()), 2, ); @@ -650,7 +650,7 @@ extern "C" fn new_confirm_modify_fee(n_args: usize, args: *const Obj, kwargs: *m ]); let buttons = Button::cancel_confirm( - Button::with_icon(theme::ICON_CANCEL), + Button::with_icon(Icon::new(theme::ICON_CANCEL)), Button::with_text("NEXT").styled(theme::button_confirm()), 2, ); @@ -701,7 +701,7 @@ fn new_show_modal( icon, title, Button::cancel_confirm( - Button::with_icon(theme::ICON_CANCEL).styled(theme::button_cancel()), + Button::with_icon(Icon::new(theme::ICON_CANCEL)).styled(theme::button_cancel()), Button::with_text(button).styled(button_style), 2, ), @@ -730,8 +730,8 @@ fn new_show_modal( extern "C" fn new_show_error(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj { let block = move |_args: &[Obj], kwargs: &Map| { let icon = BlendedImage::new( - theme::IMAGE_BG_CIRCLE, - theme::IMAGE_FG_ERROR, + Icon::new(theme::IMAGE_BG_CIRCLE), + Icon::new(theme::IMAGE_FG_ERROR), theme::ERROR_COLOR, theme::FG, theme::BG, @@ -759,7 +759,7 @@ extern "C" fn new_confirm_fido(n_args: usize, args: *const Obj, kwargs: *mut Map }; let controls = Button::cancel_confirm( - Button::with_icon(theme::ICON_CANCEL), + Button::with_icon(Icon::new(theme::ICON_CANCEL)), Button::with_text("CONFIRM").styled(theme::button_confirm()), 2, ); @@ -777,8 +777,8 @@ extern "C" fn new_confirm_fido(n_args: usize, args: *const Obj, kwargs: *mut Map extern "C" fn new_show_warning(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj { let block = move |_args: &[Obj], kwargs: &Map| { let icon = BlendedImage::new( - theme::IMAGE_BG_TRIANGLE, - theme::IMAGE_FG_WARN, + Icon::new(theme::IMAGE_BG_TRIANGLE), + Icon::new(theme::IMAGE_FG_WARN), theme::WARN_COLOR, theme::FG, theme::BG, @@ -791,8 +791,8 @@ extern "C" fn new_show_warning(n_args: usize, args: *const Obj, kwargs: *mut Map extern "C" fn new_show_success(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj { let block = move |_args: &[Obj], kwargs: &Map| { let icon = BlendedImage::new( - theme::IMAGE_BG_CIRCLE, - theme::IMAGE_FG_SUCCESS, + Icon::new(theme::IMAGE_BG_CIRCLE), + Icon::new(theme::IMAGE_FG_SUCCESS), theme::SUCCESS_COLOR, theme::FG, theme::BG, @@ -805,8 +805,8 @@ extern "C" fn new_show_success(n_args: usize, args: *const Obj, kwargs: *mut Map extern "C" fn new_show_info(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj { let block = move |_args: &[Obj], kwargs: &Map| { let icon = BlendedImage::new( - theme::IMAGE_BG_CIRCLE, - theme::IMAGE_FG_INFO, + Icon::new(theme::IMAGE_BG_CIRCLE), + Icon::new(theme::IMAGE_FG_INFO), theme::INFO_COLOR, theme::FG, theme::BG, @@ -1088,8 +1088,8 @@ extern "C" fn new_show_checklist(n_args: usize, args: *const Obj, kwargs: *mut M title, Dialog::new( Checklist::from_paragraphs( - theme::ICON_LIST_CURRENT, - theme::ICON_LIST_CHECK, + Icon::new(theme::ICON_LIST_CURRENT), + Icon::new(theme::ICON_LIST_CHECK), active, paragraphs .into_paragraphs() @@ -1141,13 +1141,13 @@ extern "C" fn new_confirm_recovery(n_args: usize, args: *const Obj, kwargs: *mut let obj = if info_button { LayoutObj::new(NotificationFrame::new( - theme::ICON_WARN, + Icon::new(theme::ICON_WARN), notification, Dialog::new(paragraphs, Button::<&'static str>::abort_info_enter()), ))? } else { LayoutObj::new(NotificationFrame::new( - theme::ICON_WARN, + Icon::new(theme::ICON_WARN), notification, Dialog::new(paragraphs, Button::cancel_confirm_text(None, button)), ))? diff --git a/core/embed/rust/src/ui/model_tt/theme.rs b/core/embed/rust/src/ui/model_tt/theme.rs index 93d19941ee..d11555ae8f 100644 --- a/core/embed/rust/src/ui/model_tt/theme.rs +++ b/core/embed/rust/src/ui/model_tt/theme.rs @@ -12,6 +12,7 @@ use crate::{ use super::component::{ButtonStyle, ButtonStyleSheet, LoaderStyle, LoaderStyleSheet}; +use crate::ui::display::toif::NamedToif; use num_traits::FromPrimitive; pub const ERASE_HOLD_DURATION: Duration = Duration::from_millis(1500); @@ -52,41 +53,67 @@ pub const QR_SIDE_MAX: u32 = 140; pub const ICON_SIZE: i16 = 16; // UI icons (greyscale). -pub const ICON_CANCEL: &[u8] = include_res!("model_tt/res/cancel.toif"); -pub const ICON_CONFIRM: &[u8] = include_res!("model_tt/res/confirm.toif"); -pub const ICON_SPACE: &[u8] = include_res!("model_tt/res/space.toif"); -pub const ICON_BACK: &[u8] = include_res!("model_tt/res/back.toif"); -pub const ICON_CLICK: &[u8] = include_res!("model_tt/res/click.toif"); -pub const ICON_NEXT: &[u8] = include_res!("model_tt/res/next.toif"); -pub const ICON_WARN: &[u8] = include_res!("model_tt/res/warn-icon.toif"); -pub const ICON_MAGIC: &[u8] = include_res!("model_tt/res/magic.toif"); -pub const ICON_LIST_CURRENT: &[u8] = include_res!("model_tt/res/current.toif"); -pub const ICON_LIST_CHECK: &[u8] = include_res!("model_tt/res/check.toif"); -pub const ICON_LOCK: &[u8] = include_res!("model_tt/res/lock.toif"); +pub const ICON_CANCEL: NamedToif = NamedToif(include_res!("model_tt/res/cancel.toif"), "cancel"); +pub const ICON_CONFIRM: NamedToif = NamedToif(include_res!("model_tt/res/confirm.toif"), "confirm"); +pub const ICON_SPACE: NamedToif = NamedToif(include_res!("model_tt/res/space.toif"), "space"); +pub const ICON_BACK: NamedToif = NamedToif(include_res!("model_tt/res/back.toif"), "back"); +pub const ICON_CLICK: NamedToif = NamedToif(include_res!("model_tt/res/click.toif"), "click"); +pub const ICON_NEXT: NamedToif = NamedToif(include_res!("model_tt/res/next.toif"), "next"); +pub const ICON_WARN: NamedToif = NamedToif(include_res!("model_tt/res/warn-icon.toif"), "warn"); +pub const ICON_MAGIC: NamedToif = NamedToif(include_res!("model_tt/res/magic.toif"), "magic"); +pub const ICON_LIST_CURRENT: NamedToif = + NamedToif(include_res!("model_tt/res/current.toif"), "current"); +pub const ICON_LIST_CHECK: NamedToif = NamedToif(include_res!("model_tt/res/check.toif"), "check"); +pub const ICON_LOCK: NamedToif = NamedToif(include_res!("model_tt/res/lock.toif"), "lock"); // Large, three-color icons. pub const WARN_COLOR: Color = YELLOW; pub const INFO_COLOR: Color = BLUE; pub const SUCCESS_COLOR: Color = GREEN; pub const ERROR_COLOR: Color = RED; -pub const IMAGE_FG_WARN: &[u8] = include_res!("model_tt/res/warn_fg.toif"); -pub const IMAGE_FG_SUCCESS: &[u8] = include_res!("model_tt/res/success_fg.toif"); -pub const IMAGE_FG_ERROR: &[u8] = include_res!("model_tt/res/error_fg.toif"); -pub const IMAGE_FG_INFO: &[u8] = include_res!("model_tt/res/info_fg.toif"); -pub const IMAGE_BG_CIRCLE: &[u8] = include_res!("model_tt/res/circle.toif"); -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"); +pub const IMAGE_FG_WARN: NamedToif = + NamedToif(include_res!("model_tt/res/warn_fg.toif"), "warn_fg"); +pub const IMAGE_FG_SUCCESS: NamedToif = + NamedToif(include_res!("model_tt/res/success_fg.toif"), "success_fg"); +pub const IMAGE_FG_ERROR: NamedToif = + NamedToif(include_res!("model_tt/res/error_fg.toif"), "error_fg"); +pub const IMAGE_FG_INFO: NamedToif = + NamedToif(include_res!("model_tt/res/info_fg.toif"), "info_fg"); +pub const IMAGE_BG_CIRCLE: NamedToif = + NamedToif(include_res!("model_tt/res/circle.toif"), "circle"); +pub const IMAGE_BG_TRIANGLE: NamedToif = + NamedToif(include_res!("model_tt/res/triangle.toif"), "triangle"); +pub const IMAGE_BG_BACK_BTN: NamedToif = + NamedToif(include_res!("model_tt/res/back_btn.toif"), "back_btn"); +pub const IMAGE_BG_BACK_BTN_TALL: NamedToif = NamedToif( + include_res!("model_tt/res/back_btn_tall.toif"), + "back_btn_tall", +); // 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"); -pub const DOT_INACTIVE_HALF: &[u8] = include_res!("model_tt/res/scroll-inactive-half.toif"); -pub const DOT_INACTIVE_QUARTER: &[u8] = include_res!("model_tt/res/scroll-inactive-quarter.toif"); -pub const DOT_SMALL: &[u8] = include_res!("model_tt/res/scroll-small.toif"); +pub const DOT_ACTIVE: NamedToif = NamedToif( + include_res!("model_tt/res/scroll-active.toif"), + "scroll-active", +); +pub const DOT_INACTIVE: NamedToif = NamedToif( + include_res!("model_tt/res/scroll-inactive.toif"), + "scroll-inactive", +); +pub const DOT_INACTIVE_HALF: NamedToif = NamedToif( + include_res!("model_tt/res/scroll-inactive-half.toif"), + "scroll-inactive-half", +); +pub const DOT_INACTIVE_QUARTER: NamedToif = NamedToif( + include_res!("model_tt/res/scroll-inactive-quarter.toif"), + "scroll-inactive-quarter", +); +pub const DOT_SMALL: NamedToif = NamedToif( + include_res!("model_tt/res/scroll-small.toif"), + "scroll-small", +); pub const fn label_default() -> TextStyle { TEXT_NORMAL diff --git a/core/embed/rust/src/ui/util.rs b/core/embed/rust/src/ui/util.rs index d04b85618b..c31135c1b4 100644 --- a/core/embed/rust/src/ui/util.rs +++ b/core/embed/rust/src/ui/util.rs @@ -1,7 +1,8 @@ use crate::ui::{ component::text::TextStyle, display, - geometry::{Offset, Point}, + display::toif::Icon, + geometry::{Offset, Point, CENTER}, }; pub trait ResultExt { @@ -64,14 +65,13 @@ pub fn set_animation_disabled(_disabled: bool) {} /// Display an icon and a text centered relative to given `Point`. pub fn icon_text_center( baseline: Point, - icon: &'static [u8], + icon: Icon, space: i16, text: &str, style: TextStyle, text_offset: Offset, ) { - let toif_info = unwrap!(display::toif_info(icon), "Invalid TOIF data"); - let icon_width = toif_info.0.y; + let icon_width = icon.toif.width(); let text_width = style.text_font.text_width(text); let text_height = style.text_font.text_height(); let text_center = baseline + Offset::new((icon_width + space) / 2, text_height / 2); @@ -84,7 +84,12 @@ pub fn icon_text_center( style.text_color, style.background_color, ); - display::icon(icon_center, icon, style.text_color, style.background_color); + icon.draw( + icon_center, + CENTER, + style.text_color, + style.background_color, + ); } #[cfg(test)] diff --git a/tests/ui_tests/fixtures.json b/tests/ui_tests/fixtures.json index 4cc2b04a20..3e675cb398 100644 --- a/tests/ui_tests/fixtures.json +++ b/tests/ui_tests/fixtures.json @@ -621,1084 +621,1084 @@ "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": "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": "d2fb3ada8f5c4b0beaca2599bd71af46619bb4e671a60850042284c63273a280", -"TT_bitcoin-test_authorize_coinjoin.py::test_get_public_key": "06f25a1049ec44afc938d7e4df906339d6d5f140e0bac1a7a4a14335c8f1bc65", -"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": "e5f42b4435cf4a6cd81dc00a1e652bf52e8ec4e82d9119c0f2c053bb33bbf0cb", -"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_getaddress_multisig[paths7-address_index7]": "2f8ecb8172d07c4023e2ed1f5fcc8478aec6b4ff602e3146389bffa84a51ea4c", -"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_nonstandard_paths.py::test_signtx_multisig[paths7-address_index7]": "fa13232d6f3dfc92d0e90e0ecd53795331da3562bcdd1ba5ca15578311b5f862", -"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]": "cd7ac525034b513528dc03fef12e2cf66a4afe64dc1469d66dbf3aed2163b67a", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-trezor-derivation]": "4b8099769a7dbc08a79ab5c144f7d1f2388bbc698393b2eebf5f31ba4eaef798", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[ledger-derivation]": "657f2c74b101af3e80de8cb991b8cef180bc04766e4ae5268ef0cf33ee49d3c6", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters0-result0]": "cd4df9b442924084385edd4f0eb7eeace2a654803896cac1992275bd0ff3a6fd", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters1-result1]": "9942b9f786c4e6c65171999801fd63e3993143044470372ce8709b0c60a610c5", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters10-result10]": "733003b59cd1d510dc3fee6c6d95f70148644c8ed5e7de2315afff20b2a6560d", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters11-result11]": "031a2a06cd52aa42576e0a29f22b0feb26b42fd751929d99fb4c623d59053a21", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters12-result12]": "abe6daa39d01f72cc83806d2fcddb36cbb012eda0a32357dd70cb684b741042d", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters13-result13]": "740dbbcc30e89fe2832b902806c843276cc68f09cc8ae316f3a265da9d06de76", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters14-result14]": "0d6f0e9c91e2c8b7a1e70639bae6407905ad44b4d5a717fb6fd06a28543ea12e", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters15-result15]": "53738913d0ad5e46def208b7e6ac40b2d7f9715035ebc4a587db87e91f21e9bb", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters16-result16]": "af97bfb92285ea47f7f83391067735b17a3747d7f7a1ac5e63fba93395894ee6", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters17-result17]": "ddd77d85dffc71f972c49d8be98e28e44985fd33472ff345e4f9be5f0ac81297", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters18-result18]": "4e369dec6232ab6978e85fbe827af6f71f1e337c609ecb8c7612632c3c31476c", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters19-result19]": "b62f793c695c47d341c8505ff5b8fb2ddc9d29992a51716a8c84451fbdd7caea", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters2-result2]": "42ef00b87ce99ecb831f49c8b65c88f9dbb513ecb7ab1f5fd5be7b355da607af", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters20-result20]": "3be4d33a84bc99ad3c5b76c755946231063df0eb00e1062b72cd73a9461eb27c", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters21-result21]": "463a5b7956147eb9b725c6e3dbd07d5f510861de5baf590433ca1b92b06aaecf", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters22-result22]": "4dbcec0748cd346b1729b4f7514d1572ede3f4bee957e10182d3bf7ea242462a", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters23-result23]": "9bfc151e4c86111dce32430a3c32d25b1dc4314779a5d3757f222a995d84ccb6", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters24-result24]": "5e563ce3522b41201f4244e1222ff535bb556e2449265387716f95c8483161be", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters25-result25]": "9363f3c96bf4a99c47c614ddc298c7946d023cff2a6d317b6e90d206844e5746", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters26-result26]": "a33384f9e3b67285f7b7fcbfbfea278cdcb78a51b6fae127e3a9be0e29a1d1f6", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters27-result27]": "2574b4f118d3cf8ab02407c602d429c2487b0ce4d4dc5b806685096285eef4b4", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters28-result28]": "b14aa172c483a1877efd1b981ae006716817c61488f1677b59d93a56896e04ef", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters29-result29]": "865ecf18e81308562b100d45fdef4fcb0cf244b3f4ac6f522ce2f52ff59ff838", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters3-result3]": "6d5326b3dc627afe02d0b9a29c409f1b9d7e9c53c2a0986a2fac8101a53c8756", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters30-result30]": "cc20f409dbf48e939abf36d3edb83f0b8fd8b1ddf85608686f97ee36e211704e", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters31-result31]": "715c36636fb5f82dadffd0f4d207b3c69061ae24513d792ffd41fddd40131dfd", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters32-result32]": "123c258b395fe495177f6dc0b83177b46fc2d9b95d13eb3ddb49ce1e4335787b", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters33-result33]": "a0c6273cc3063d106c92ae9692ae4944facff69957b32564e9c1f1719a8f11d8", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters34-result34]": "576905aeb2b3a42e8d90216225a6143b41a6fdfedf09990dfbd0e7db0d4f149b", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters35-result35]": "cd234152d988f7286ff7b5daef3c3ccfefa883820ab3dd03cd23e3dbdf638053", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters36-result36]": "87b3a0187bf66c9c69e1ac74004f4d98f093e849aa9190a23e27d7ace5935d93", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters4-result4]": "ce64ec414a3277f777ef5a92c425252bd8b1ab302630447b64f3a125d49c5517", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters5-result5]": "b9db7793e12fbdf050fc0c21d47a0b2dce6d514e044f169da9e29187d94f94c5", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters6-result6]": "fb22aa55008fc2cdca0d0296cef1d0411b2dfafed4c160308000fe7b9bac0fd1", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters7-result7]": "15867d695c28cb56f081c150ca77079d1f38f8299fb5574f5a1fb20d5dd328be", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters8-result8]": "58db83877d75da75109a6bfd577f3366cbe55bed5f600c4872d03317d972ca05", -"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters9-result9]": "c15e1b5875c58857446b86b066023a24c73081f59518eef1d720379e59c515cd", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-derivation]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-trezor-derivation]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[ledger-derivation]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters0-result0]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters1-result1]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters10-result10]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters11-result11]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters12-result12]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters13-result13]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters14-result14]": "053c41531f122912fe88aef869260ee0586cc18bfd074aeff9869be9e00448c5", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters15-result15]": "053c41531f122912fe88aef869260ee0586cc18bfd074aeff9869be9e00448c5", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters16-result16]": "053c41531f122912fe88aef869260ee0586cc18bfd074aeff9869be9e00448c5", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters2-result2]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters3-result3]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters4-result4]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters5-result5]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters6-result6]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters7-result7]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters8-result8]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters9-result9]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"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]": "2a39801029a31f19c8fa884eb3319c5bf9f13bd483a2ac0819906a912e7a1dd2", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-aae1e6c3": "ead4735a494ad78d0fde9a7838a488f561aa5aba1eb20baec195987d997f1ae2", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-e4ca0ea5": "ce61a7957af21bf13e1d1b61347ced097ada3311c80b787d07c25b91814a4d5f", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script]": "fb7b518b5928836232bdce0a6314e4ff7b90f9929201f093969d80aea55c93db", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script_with-f2466a2e": "82e9b8a71e89c2b0e183fba641f90e907b43585f635d32f9c9d35525cd590038", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_before_script]": "06e1ad4357688649828c421f3a7ec58851441abc439260d0dbe9705f30f3d7e6", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_hereaft-d01d7292": "b4351361968e65432351871e30fe47d3cb01d00495678731e252f619b95bb67f", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script]": "7e90dee502fc42eade84728790106e062763eed23b69f79e5716709fc536c363", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script_c-d93f5fb0": "8954c0be63d8dca9a899fa68be8fb8e52c664ee0ec2734f8f23ce59b19bca8e8", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script]": "f3ff5452b118a401fc9307d1496f540ae84193a960cedb73935da6acee07eee4", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script_w-789238e6": "1e5ffd75a68f87a9a0604669d99a68891ed84a57d8684d49cbe57bf43caa24f4", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script]": "ed984850af2ccc28ce190fcd2b1dc8a78f317f4bd94ebddd0af5f6b3d9a995a4", -"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script_-1579fe2a": "79322fd1e77046484fb4df351cd97d8b68f17e0557224151e0d010ceeb354be7", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[byron_to_shelley_transfer]": "874867ce942db79b865f516a4d47e05d0fedbc5cb6698b42cc7f0e74a75e1ba4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change0]": "0a596f6a6b5fabb3fa357b0545baae9df7e139d307f1f28e6995380b5146fb28", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change1]": "32b1c0da38028179e915664944f102f49db2e00de2c694da7bdb3b23024e81ab", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_multiple_inputs]": "3be42a446e04a27e010700bb148b75103ac7663193d0d2a00753da1a4acc1618", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change0]": "3be42a446e04a27e010700bb148b75103ac7663193d0d2a00753da1a4acc1618", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change1]": "141c5e331fa64879c2079c428b1d07730dd7db6cafb82bb4d8c73737891a2f32", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_different_policies_-1dbb1bfb": "1bd9df6788841e0c0d8e2987ba55e4e31d37c4603bb6904e9c53d00c23ed8df8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_multiasset_output]": "3ec90713aaa0a52e3ed21baea92ab30bcc080237dae77b58cb4cb8f9fefe7cf8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_no_ttl-validity_start]": "761f7a2f32942aaa7ac1b86961aafeed524eade946623e545c056906cfd2a2ac", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_a_required_signer]": "3e6c2fa1b22fb631782202e2e8409f6463dc704a4de41bef709dffbc884218e7", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_most_elements_fille-29691455": "f71836404f9c9c207f02301ab53064e296539d2f8b09b1110620889682db5399", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_output_datum_hash]": "71fd50ded1d594826fb4df8e0b1cf7b859b7facd210bcb105da706512dcbf3df", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_script_data_hash]": "a1b20c233d3e6d142ecddf90d68415e1e10902bb70f2bb224303cbae173ae2af", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistratio-1ab28f77": "d4211f1768326f4707f1eeb4a908ca3c44232d2db5d6426e30367c1d88285fdf", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistration]": "d4211f1768326f4707f1eeb4a908ca3c44232d2db5d6426e30367c1d88285fdf", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-a144c34c": "58db9ad1d9fdde7dc7cb2bc43b7ad840a2042db212d17855de924e88c163266c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-bf5f9707": "2f6b3fd714b4c7cfc648c7331902c4e3071977a6dd5d0b70f9ebf2624db99cf4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_token_minting]": "b745d2ccffb0d2e8c0877ffb51ad21a36131eae344ba1b2398351dd663634967", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_a_required_signer]": "6e787b6bee5c42bae38194fd764931731ab4175825b027a44f4dc08cf9e9f4d8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_both_output_formats]": "846f3cfab51c32e592edfa1508258b614d7f8709665598303cf3fd14bb565e83", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_inline_datum,_refer-d1082570": "2a3ddc107436f5719c18f9ad1119b02b7e0973be6431606cf6c686f2a6cb12fe", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_long_inline_datum,_-1f681aaa": "98a11b16c07665780d262f4222f725fd11be670d486e797133aac762bce16faa", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_multiple_correctly_-6545455a": "e6e2e77a2c8618c89b37b747458f247424980bb1e8f739fb197a96c040a45141", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_network_id_included-d9df16f9": "3be42a446e04a27e010700bb148b75103ac7663193d0d2a00753da1a4acc1618", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash]": "2a3ddc107436f5719c18f9ad1119b02b7e0973be6431606cf6c686f2a6cb12fe", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash_a-84ad587a": "98a11b16c07665780d262f4222f725fd11be670d486e797133aac762bce16faa", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_address_but_-b0da7209": "e35ac57c225b29092a7da153f4f4fe7ec25b3e3f85b3bb54b90beaf3008af3f5", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_data_hash]": "6e787b6bee5c42bae38194fd764931731ab4175825b027a44f4dc08cf9e9f4d8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_token_minting]": "c58448c4278ec13cce0106ab8285cbfd1311e0031607745da218bfbebd4343f6", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_an_ordinary_input]": "40dbd4a2730362beabd06ff6c53d178e7d34727ed5d2b9b0e1a34b500d467d53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a33e6741": "0a5953f49f7b5ee286b1a95b0e3816e1e7fd5bcaff343602b666ddae8dae5ef6", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a6481374": "1a5955ff895fdb4e4e43380c92bc272adadecf2979fad2007577e8f3547125af", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_key_script_addre-d3366a63": "3735346d86fe1a87c7290510196f756c7cda0011900bbc1b1b8e1e9986968b8c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_device-owned_collater-8f38b4d7": "053af12502a6cf9469ce33c2b150892aafc8b99559a053cb88c36450130f8894", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_external_collateral_return]": "4995bb54e04b5e8bcc2230cdd76b30be4de6c5a8868edd48bc0862683ed1549f", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_output_datum_hash]": "0ccc452d1d9c81d69fb34e22a66ce870f928964f831b8752f854d0f8a80cc6d0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_reference_input]": "cfe56bf7f1c72c7d6d91e02c9691aa238ff3ac3c4c14199b1bcc3369085cd8ff", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-6a67c1eb": "a7bf23fe61ed0443d2cc66f71372885ff3ab74a59e719dc0be61ca3d6c630d7b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-72ef969e": "e137b9cd3fa775e514f0fdd2d110631b7b6ee8e85fede4b2b090862cc97117a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration]": "440ac8bda6bbbc78768f77412205bed48205fc463e544f728f9e2b12a5bbd187", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration_-78f5c748": "709928905d10be633cd446a4ba20e052be4cd72d36260979c51047af5f8927b2", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_an-4da9385a": "8d6dd27c8da92ffa908dcb5b8d2304980837d55480cff16d147cd5af30b809e5", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_ce-46b0a250": "bf54ae2238513659401e5c9c37b314d09d550991b08bcbabf27045210d281c62", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_token_minting]": "bd1be25414debbb00136ec8224ba51980e0d575466bac5b036b3dc6c1c992c95", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral]": "4952f143b424f1a308af0f0ca98d089bfaebb8eded24349fb81b60498b13230f", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-3f0b305a": "f36067ec509f475577a5aa2e4c6e39d7efafc0e6554c7ee09b24d3b75e44f0b5", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-c92d773b": "0039ddf67cc9f039b381aa07f67dfc705f7f76dcd29b351534c543d7d69dd53c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_without_script_data_hash_a-9590827f": "66f1152d6cc62d35c022703d0e5a080f15752463ebf8a26f402326db897dd810", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate]": "490f92c5c3df836b854d0370bb397ef368dd8916d315d6d1daf3073094820b70", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-336f4a44": "490f92c5c3df836b854d0370bb397ef368dd8916d315d6d1daf3073094820b70", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-d3427614": "0a85b48c03b66aab6c2e092f133b0fd991dc3089783f2fc5eccbec1598d46691", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_with_zero_margin]": "90b36811df6da44c6c45ac902eb395b45f94c586f51673dd8088615fec632e21", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction]": "1a1567566e5ec3c87ed4e6e41d943a6c219e08fbae87ed1f17bfd0b9a7ad47e9", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_additional_wit-36ba8ce8": "3d93c9bca627501c263e7acebee91bded8d1cdd7c53cc650de0a21a34b57d9e1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_required_signers]": "1d5f70325187cf3e24659718e2c7c711f9c8795d0432c88d05e0bd294b008ea7", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-0c37e6dc": "431bfd23eb66219e22ee681dfb68be96bd7956131a95b1cdf7fac4337c635a79", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-7f1d12f6": "fce908e42fa24f24f3a695a33f41aa6fcf66baa9dfd9ec0876eeaa24a7ae2be2", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_output]": "6e787b6bee5c42bae38194fd764931731ab4175825b027a44f4dc08cf9e9f4d8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_script_address_a-56fc16f7": "7846be40646a523cc4d04efd357ea25a9c65562e00b2614c28e96a924676bf6d", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_enterprise_address_ch-15518a4c": "11f294663b2c73fbdbcf004802f9da2b8470e0ddaf1becd1ee36f3917eebe4e3", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_pointer_address_change_output]": "5bfcfed2bc3b5ac03e509653e24db4a5e513bd67019ec1aba462b49cd9a998df", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_certificate_with_no_p-0bbad967": "1bd87c7948c79f3422a8b050fd2a1f232749005826ebebc47ba486cf0f59530c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_on_testnet]": "5a1a8d57c8fe9d7fca8a9859e8ee3a498b00af3cf5bb640722c831b1e29a8a96", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction0]": "106011217d1a4f4dc8582023fd345d44b232e88e8b641cc157b5fb4ec2c1d656", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction1]": "516b3b6d27bc19547b0fc94334204516bad6c129313d26243da61fc67d2a946a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_auxiliary_data_hash]": "6e787b6bee5c42bae38194fd764931731ab4175825b027a44f4dc08cf9e9f4d8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_p-3c7243e1": "5c417d7a0aa30c7f199888c58b0fc6b38f8cbd60e308ea58126a6abf4cc03477", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_s-20438873": "3e378b328085fb602c717bb8df4b0e1627d84950f34af1d5ec45c708fed75fce", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip15_governance_registration]": "3e95a8b5dd4cf7a4afe6a7cc5b2454d8f251780edcbee8aec4c61dc695e99b2e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-35e04232": "f28f56538fafb588020e8cf506e65775035718fe50789230cd5ae275084d243e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-f00c1b65": "9c77fedba7f7e92bc991d4e6876e5395e62c66285e6923262518e968f7644121", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_everything_set_except_pool_r-1e1ef130": "d5c2f84352f6a1231f0421fe26d01509217ffe9910bdc3c0ea113649e4a47668", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration]": "9e416aaf5327033e1eab06c348362ccec409ac07ee35fe59767e6aef0a612feb", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_and_withdrawal]": "9e416aaf5327033e1eab06c348362ccec409ac07ee35fe59767e6aef0a612feb", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_with_ac-9ca046f0": "ef5425dceb406ea5de7ff35b48111ab19691bda30635a7fd10b006ff46697d9a", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_and_stake-3fdfc583": "71445714ca182b15dce874fc913ab2e63a2e4bfd5f8d940ca587e521104d6a43", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certifica-e7bd462a": "7b0c7486a41919df51ace13a9a8eb72493fe18d118d179cf0e24033f97188ba9", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certificate]": "e72f9949c4c9010b0cb654d502784b3f18738cb3573aac290a6745aaa7b768bc", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_ttl_equal_to_0]": "468f5dab3b169d16683266d29977ba77379732850c72901445987e560d9c496e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_validity_interval_start_equal_to_0]": "3201ee592eab9b71a47f08fdee94a551f23a87f730593fc8b92e09d9fa331e3e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_change_output_path_in_ordinary_tr-805f9bd0": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_input_path_in_ordinary_transaction]": "3be42a446e04a27e010700bb148b75103ac7663193d0d2a00753da1a4acc1618", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[additional_witness_requests_in_ordinar-9c4f94c0": "3be42a446e04a27e010700bb148b75103ac7663193d0d2a00753da1a4acc1618", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[all_tx_inputs_must_be_external_(without_path)]": "5181c9440851c86f82eb8753121e9c90abe31ae88acb6acc29155b0ab53d4307", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_mint_token_group_in_wrong_order]": "b11f00a65deea1c6d06805034711f9a562865411c11eb85c0ded3aa6f882e7bf", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_multiasset_token_group_-7c1351bc": "c9f90f00ccf84a80dd595cd12641be9f9b4dce6303ce579b7369a19b9d518f51", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[auxiliary_data_hash_has_incorrect_length]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[both_datum_hash_and_inline_datum_present]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_input_accoun-863fee7d": "874867ce942db79b865f516a4d47e05d0fedbc5cb6698b42cc7f0e74a75e1ba4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_output_accou-5a99fb35": "761f7a2f32942aaa7ac1b86961aafeed524eade946623e545c056906cfd2a2ac", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_key_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_script_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_invalid_pool_size]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_key_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_multisig_path]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_non_staking_path]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_script_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_stake_deregistration-e17db500": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_withdrawal_account_mismatch]": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_path_larger_than_100]": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_staking_path_larger_than_100]": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_with_script_in_payment_part]": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_is_present]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_prev_hash_has_incorre-99d2dc0e": "061abca57557f383fb55fad9eaa62fe37a11a503f784063c7587ee27a8ea292c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_is_present]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_datum_hash]": "16235c34f1c99695acb0e57fb019eda5711de7cd787fdb1b1fc896ffd948aa05", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_script_address]": "16235c34f1c99695acb0e57fb019eda5711de7cd787fdb1b1fc896ffd948aa05", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_a_different_certificate]": "0e89aeba87d0df9e4c26f2e7d37a31e07e36e0aad0e6de7805e3eb9cf1e59e7c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_multiple_pool_registration_ce-3000d4f0": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_withdrawal]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[fee_is_too_high]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[inline_datum_present_in_output_with_le-43c025ef": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_change_output_account_mismatch]": "7381d5dc4e4493e486563141b96a160f7aa0bda7e57ab3814bc2dc755e2c456c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_stake_deregistration_certifi-b3383de2": "fa47d3fbadb7eb0c85db2ef81b5f60263b5f0e8266c65786fbbbc9c06bcea087", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_withdrawal_account_mismatch]": "6e787b6bee5c42bae38194fd764931731ab4175825b027a44f4dc08cf9e9f4d8", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_prev_hash_has_incorrect_length]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[invalid_pool_id]": "0e89aeba87d0df9e4c26f2e7d37a31e07e36e0aad0e6de7805e3eb9cf1e59e7c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_protocol_magic_with_testnet_network_id]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_transaction_with_testnet_output]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[margin_higher_than_1]": "0e89aeba87d0df9e4c26f2e7d37a31e07e36e0aad0e6de7805e3eb9cf1e59e7c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[missing_owner_with_path]": "ad8e4127fbdbcd97bc96215d6bee6b0e76dd539803dd627b0afd693d06d8dbd4", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_1852_multisi-b7679330": "7b0c529f854abf2561a497faf0a170a90423f7fd29818c8af4ee85ec8c3240b9", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_a_collateral_input]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_collateral_return]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_long_token_m-9fb3cfe5": "af1f813078e140ada4e68536a6a2830dc9f2535bd17dbe625fa55189a287f72f", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_output_conta-e3b36436": "defea7d6a4656baf8abb79f52e7f7a007c2c1c0784d39f53cf29e9a300e3bb55", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_reference_input]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_repeated_withdrawal]": "72035b2a389b7281734a9b4a905810126e929bdf421782ea2d3affeb723060ca", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-19d1722c": "128d8831cadb04f20f92b5917056ccdef6467343cee906d78144ad1b9b73a640", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-394991f1": "128d8831cadb04f20f92b5917056ccdef6467343cee906d78144ad1b9b73a640", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-351ce869": "128d8831cadb04f20f92b5917056ccdef6467343cee906d78144ad1b9b73a640", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-43da91d4": "128d8831cadb04f20f92b5917056ccdef6467343cee906d78144ad1b9b73a640", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-456f1292": "128d8831cadb04f20f92b5917056ccdef6467343cee906d78144ad1b9b73a640", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-84b1254e": "128d8831cadb04f20f92b5917056ccdef6467343cee906d78144ad1b9b73a640", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_total_collateral]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-9f7e1700": "72035b2a389b7281734a9b4a905810126e929bdf421782ea2d3affeb723060ca", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-e98b1f5c": "72035b2a389b7281734a9b4a905810126e929bdf421782ea2d3affeb723060ca", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_wthdrawal_ad-3291ee9e": "72035b2a389b7281734a9b4a905810126e929bdf421782ea2d3affeb723060ca", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_without_minting_b-da5ba399": "7b0c529f854abf2561a497faf0a170a90423f7fd29818c8af4ee85ec8c3240b9", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_long_token_m-350c65f4": "529d3ba2b99640af7aea60538a3548dbdb7d3ad7d3eb41abcb9df6a3f9f5bc9f", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_token_mintin-bc56f145": "ad55fba5b2f20e30cf3383c5c65e3692518526327e3f5c50692e9a0ead9ea241", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_without_token_min-a128d577": "0978e27ac5c7250021ec1fa5d90106967796dbadf0e6b0d129907d3afdeb636e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_has_invalid_crc]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_a_valid_cbor_but_inv-ea3da215": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_invalid_cbor]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_long]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_short]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_datum_hash_has_incorrect_length]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_has_both_address_and_address_pa-2efc280f": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_total_is_too_high]": "379868b63285a9527c1cb844684938a7855235434bd881dba3fad558562d5ab5", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_with_reward_address]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[plutus_transaction_with_output_contain-74465253": "996efb25c557d9541afb076f736094e01d03728bd5a8ff0592e2f7e7129c5e9b", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_mint_in_wrong_order]": "7695a3e3c53d4315239075fa52fb92ff859255491467e85300671e9c4d405b4e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_multiasset_output_in_wrong_order]": "62c9c72c8a3c67b251e9f552e9ba202d192888b307000b0cc5ec6f02b2f2a102", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_belongs_to_differe-e79b6855": "0e89aeba87d0df9e4c26f2e7d37a31e07e36e0aad0e6de7805e3eb9cf1e59e7c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_is_a_base_address]": "0e89aeba87d0df9e4c26f2e7d37a31e07e36e0aad0e6de7805e3eb9cf1e59e7c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[reference_input_is_present]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_mint_token_group]": "9740e550c4eaa41edf8837437593f09edce9445616fad09123b6d70f38f7adda", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_multiasset_token_group]": "07037ced367034caa860de4f02c1fcecbb55327e540e8d7b07450c4e3ec9553d", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_mint]": "cb293f1a562365f98dc5064a02e0b416830a12e8564d9cec5ef2322f294d18ac", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_multiasset_output]": "fbc8631a7ce021cb822bc8240eead853acdb15be5805c9904e43ef5bbdf91710", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[required_signer_with_both_key_path_and-7d9a3c59": "16235c34f1c99695acb0e57fb019eda5711de7cd787fdb1b1fc896ffd948aa05", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-02b129f8": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-11c8b442": "490f92c5c3df836b854d0370bb397ef368dd8916d315d6d1daf3073094820b70", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-2d1899d5": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-3f8170f6": "490f92c5c3df836b854d0370bb397ef368dd8916d315d6d1daf3073094820b70", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-60961d51": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-790fc948": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-883e81d5": "50f1a51316fa6903c752c3501012170695ad4bd1ca09a6b72ed14d3a53bb5026", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-9ae6620c": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-d0eba163": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e7a533e7": "0e89aeba87d0df9e4c26f2e7d37a31e07e36e0aad0e6de7805e3eb9cf1e59e7c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e908b1a8": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-f9976ae8": "0e89aeba87d0df9e4c26f2e7d37a31e07e36e0aad0e6de7805e3eb9cf1e59e7c", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[script_data_hash_has_incorrect_length]": "3cb191832d54d04f78c417a62ddabb64ddc6a5637707e51ee870a3d717af02d1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_mainnet_transaction_with_testn-af110e3e": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_testnet_transaction_with_mainn-ba78ab8f": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_account_larger_than_100]": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_certificate_and_w-003a1023": "d58fc73c85b8422db1692990b23a1e1e40e62dbbd127f086d1428a84f318ccd1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_protocol_magic_with_mainnet_network_id]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_transaction_with_mainnet_output]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[total_collateral_is_present]": "a89bcb4bd0b84fb95522d08c0c10a4333564fad29c882593195ebb07ea498f53", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_auxiliary_data_b-d83df998": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_voting_public_ke-0ded7777": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_governance_registrati-efb78b43": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[two_owners_with_path]": "b227e2db14d3062988c5a7bef80b03ab912dd96a9656d6755d895906d228f567", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[unsupported_address_type]": "4ffe5946dbc39414e3eed69d1e4e704e226550adeb12d9048b98a290700f81a0", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_multisig_transaction_signing_mode]": "128d8831cadb04f20f92b5917056ccdef6467343cee906d78144ad1b9b73a640", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_ordinary_transaction_signing_mode]": "4b3a288ac3ef3eda5ded6dc36195d7cdfd49d44ac9bd55ba71ecd9210952b116", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_plutus_transaction_signing_mode]": "e1669e3597d5d6d1cdd30ae12f0ab59f17d5c91f12ba30b168996c27fe6266f2", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_amount_is_too_large]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_key_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_script_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_key_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_multisig_path]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_non_staking_path]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_script_hash]": "0a04635a19924374ca16dbd8ced6822ce41735ab7c2919891feb46fc14ae4388", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[mainnet_transaction_without_change]": "c221a369af73bdb8131a979b7de1d51e34c023df1f9f1422e0c3b48b90c31a5f", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[multisig_transaction_with_a_requ-c2fba589": "c775d7cc9c7d84102d1f8e36ad6a9498b3ea3a732f7eb80f4061382e08fb4e43", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_a_requ-9728607e": "3ff094263b1c79dc4169713f57e12a85b8cbfda6b98d2d573a9575894082fd27", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_long_i-708443f3": "a959baf986a934ec0a1d9e6a335fcc41cc1fa9a558fd95f4d30225eaf50d73e1", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_output-9ba7352d": "8d4910523d83261ae9ebdc7391ac5958e1c05a0b5e66ab4cc34d5f10c7af7d55", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_reference_input]": "c4cfdb8daa648e98a74acadbaa581c265ab523c770f095f87266a5f4bce08b8e", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_total_co-e846c221": "80f93213d30a49424129884afe16303ec2befa5ed579acb99eb7458d45e75437", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_cip36_governanc-36bf9253": "459833a049a0ddd6be279a1af9df80f8ebeaf9b7e2fbf107c1d882404f373619", -"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_stake_deregistr-6e84da2f": "d92a4f9bb11f5a25a91e63f5261a33227f85da1b5be809a9c5c680058e76543a", -"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]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getaddress.py::test_getaddress[GoChain]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getaddress.py::test_getaddress[Ledger Live legacy path]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getaddress.py::test_getaddress[Wanchain]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters0-result0]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters1-result1]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters2-result2]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getaddress.py::test_getaddress[parameters3-result3]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[Ledger Live legacy path]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters0-result0]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters1-result1]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters2-result2]": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[array_of_structs]": "5606111b64ca665d4f16b88e84b9223b3e85e2746415256c338fb0f85e1495f2", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[bare_minimum]": "a516554b1d5973215ae1646f973c762790b543e266b5f578d6be3d93997d78b6", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[basic_data]": "72df02ea34fc1f086fa01c34cd1566df334a7fd1de563dd0bcee35e8a4484a40", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[complex_data]": "46b5d7aff0b46895fc261e544b675cf3d2676d39c0d35cdd7ec8b4d0284a89b6", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[full_domain_empty_message]": "9798e8a8ba414a1c2831383dcad56638047b47897a89623e7b35175e2022af05", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[injective_testcase]": "f4d11af9ff067ca4e2c706a6fce198615444208a54f7925dd17997ba1417a4a1", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_non_v4]": "72df02ea34fc1f086fa01c34cd1566df334a7fd1de563dd0bcee35e8a4484a40", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_v4]": "72df02ea34fc1f086fa01c34cd1566df334a7fd1de563dd0bcee35e8a4484a40", -"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[structs_arrays_v4]": "72df02ea34fc1f086fa01c34cd1566df334a7fd1de563dd0bcee35e8a4484a40", -"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]": "9d066f01d480cc38af1b63ca5b02132d0b8b04acaf5142173099f9fc48d0189d", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters1-result1]": "62698bdec3f1656317c1a09be24ad25428fd35db19aceba5ed264068abe913a6", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters2-result2]": "9f9d1345185a4a3a292454e35f247754fcde59eef2401580c5b0b918f81f31ab", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters3-result3]": "8dd693799046578e7f8e49b73bc0d4e55e510538fbe8c25aecf9c0711870af91", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters4-result4]": "ce2c0ab0b5200dceb0a1749934d2d458f9a8cba61147be008196ba05aace1096", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters5-result5]": "33fe571b67bf19c100c920daadc43fb6f1dc26fc57a73f40a0f29e07b94c6c9a", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters6-result6]": "a4a4fab84ab54b6c79b1528e253418475b9c1cb154b86c922e29574c4984b4f4", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters7-result7]": "646ab8ed1234410da6bf8af74fdbe82825cb844667bebdfd90ce81c99d184245", -"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters8-result8]": "9dd485ae10d3a81769982bc86edbd14920a13d56db494520065a6b1207b67614", -"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]": "25839b8136554a0f8fd09876865624b5a701a754b4f013922cbc79b466f269e3", -"TT_ethereum-test_signtx.py::test_signtx[ETC]": "88a70ca3cecc8220bb007d99dc30d8603c9fc75ed5230c16ddb541da189d7cbd", -"TT_ethereum-test_signtx.py::test_signtx[Ethereum]": "c444fcd2f41151031b305915fd0bf5cc9ced8dd4c645cf0106cad27ce78bb164", -"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path0]": "5f58f3a1f97489ffc566bef4784c4bfd4c765370f3672d93c892f1f996199316", -"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path1]": "c444fcd2f41151031b305915fd0bf5cc9ced8dd4c645cf0106cad27ce78bb164", -"TT_ethereum-test_signtx.py::test_signtx[Palm]": "922a1c07caebae843741be48b45f0eca5732b315298ea8c3b3df16a7a34e3c91", -"TT_ethereum-test_signtx.py::test_signtx[Pirl]": "cde6ba1545602aa651af32b081e629302d370ba54f0dc50615f4c7bf95ddac53", -"TT_ethereum-test_signtx.py::test_signtx[Rinkeby]": "3c1b75e146184fb61df43c8187f304ded65af4475c4bfd4e9fca5a9247d8b582", -"TT_ethereum-test_signtx.py::test_signtx[Ropsten]": "6f68cbba0bd1fae25a599fc8687168b7254ee4de66c1b09423f204480962eb0c", -"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_eth_path]": "7ceed7ad921ddba31739ed58238f4704c854aebcdd25bb15cdd331b6ab6fbf96", -"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_testnet_path]": "7ceed7ad921ddba31739ed58238f4704c854aebcdd25bb15cdd331b6ab6fbf96", -"TT_ethereum-test_signtx.py::test_signtx[data_1]": "7ccfda0ca2b52cae61a54bea678109f591fe642d554f479badf3a31420b61b50", -"TT_ethereum-test_signtx.py::test_signtx[data_2_bigdata]": "f7ed093d371888006e90b9391d3720c0300bd29d8c7310a5f7a2b0ad2e9afc70", -"TT_ethereum-test_signtx.py::test_signtx[known_erc20_token]": "380813c2c3678ebc168e62c81c2b139eb5721ec8bf859aa3a343baa54bca7402", -"TT_ethereum-test_signtx.py::test_signtx[max_chain_id]": "7ceed7ad921ddba31739ed58238f4704c854aebcdd25bb15cdd331b6ab6fbf96", -"TT_ethereum-test_signtx.py::test_signtx[max_chain_plus_one]": "7ceed7ad921ddba31739ed58238f4704c854aebcdd25bb15cdd331b6ab6fbf96", -"TT_ethereum-test_signtx.py::test_signtx[max_uint64]": "7ceed7ad921ddba31739ed58238f4704c854aebcdd25bb15cdd331b6ab6fbf96", -"TT_ethereum-test_signtx.py::test_signtx[newcontract]": "452a6355bfef59f00ac7945f507c7834437700db793f7d747b521d561b8205e7", -"TT_ethereum-test_signtx.py::test_signtx[nodata_1]": "157fb010235ee537103d929d2061668a1d0879c75aa25d9559f38f10bf9474b1", -"TT_ethereum-test_signtx.py::test_signtx[nodata_2_bigvalue]": "4e1198f07615e5bd473707157bd131cb55926cd0c7c41db615a1ab9928cd75f3", -"TT_ethereum-test_signtx.py::test_signtx[unknown_erc20_token]": "ce03a4446a5010f12638261194bc3f2833a492d20e11e68459085d8e7813c5b6", -"TT_ethereum-test_signtx.py::test_signtx[wanchain]": "4bd6a874b03ffac3f326850bc7aa1e38b99686ce99b03af4393c22000e487edb", -"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]": "9a4dd61fd474b4bf7f53e8124dc4b340ab4c1e2de4b81b691438604d644fe73b", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_1]": "367d2166dbaa2dc28a128e45b6de1f46f0b0c1c43c1a051c943c0a421718547c", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_2_bigdata]": "ceae5c22d77e354bc0a4f736b8a16a91e38296b8a704b40017e32c78f88aa664", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[known_erc20]": "241b4e87f114b5938a9e2dfbfa02b980a917b6c0ba5eb3edbd5f1f900415e33d", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[large_chainid]": "4d0bb4db4c6aa0b4357dd517efc17f72afccf1308b20ab1f2bf10e4db738a1d1", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[nodata]": "9a4dd61fd474b4bf7f53e8124dc4b340ab4c1e2de4b81b691438604d644fe73b", -"TT_ethereum-test_signtx.py::test_signtx_eip1559[unknown_erc20]": "b80f2f5d2ef07b28495f2dc731475d1a88184904d1817e275ed7d2fb760b4d0e", -"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_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-0-bnb1hgm0p7khfk85zpz-68e2cb5a": "1cb2b0665827b1c8521f2ec85615e3335d53ba227ae117b651bf4695953a7ee5", +"TT_binance-test_get_address.py::test_binance_get_address[m-44h-714h-0h-0-1-bnb1egswqkszzfc2uq7-1adfb691": "e5975dd56994e4f1159207b0640de306619949e5cba2d9a5ef97dca369d47cdb", +"TT_binance-test_get_public_key.py::test_binance_get_public_key": "9ef5e6a9bbf83a72367ee2020dc841985ce15967d5a7285c022ff7c245a01780", +"TT_binance-test_sign_tx.py::test_binance_sign_message[message0-expected_response0]": "839873f4db4c5e2f268f11db80a690529b4dba6342fedb726de9007def9d99ff", +"TT_binance-test_sign_tx.py::test_binance_sign_message[message1-expected_response1]": "0f8f0cb90960d0069d3adc2f78891c2bc74422420bdc72a3e809fac3a6396e2a", +"TT_binance-test_sign_tx.py::test_binance_sign_message[message2-expected_response2]": "8101b0224bc34eaa066b1934e69230f945116f96d0f7c9d766889bbb44fb5778", +"TT_bitcoin-test_authorize_coinjoin.py::test_cancel_authorization": "0a37e7e07f7a7ed8cb00b311046e9e91e0fd211e6c2f22b6ebeb69ec22bdda55", +"TT_bitcoin-test_authorize_coinjoin.py::test_get_address": "eda238e95c759391b5cd746720f2319f4f5b0b23327909457c79d0735eaa002d", +"TT_bitcoin-test_authorize_coinjoin.py::test_get_public_key": "a29b9f19da5cb70a24c2cc89a8c8425d9f085a1f614affdacde891a531180223", +"TT_bitcoin-test_authorize_coinjoin.py::test_multisession_authorization": "ba3ceb1ebc867d4be866a84714e78581563c0d6d185a20d1e154a4be70e4432c", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx": "70223a1375d75eb940c59435c830bb7117c2af439467c26881bea0343ca15c84", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_large": "8954120be7d17be42e0ac881c728fdfe79b7512e1d8744272751215f2502375e", +"TT_bitcoin-test_authorize_coinjoin.py::test_sign_tx_spend": "cd668beb0174f9142b78fb1573611c46669b066d84f1a09e7d3d0f99687883bf", +"TT_bitcoin-test_authorize_coinjoin.py::test_wrong_account_type": "0a37e7e07f7a7ed8cb00b311046e9e91e0fd211e6c2f22b6ebeb69ec22bdda55", +"TT_bitcoin-test_authorize_coinjoin.py::test_wrong_coordinator": "0a37e7e07f7a7ed8cb00b311046e9e91e0fd211e6c2f22b6ebeb69ec22bdda55", +"TT_bitcoin-test_bcash.py::test_attack_change_input": "e201bc2aa26e4b51e7d6cc07490a7683783dc216ef745497931aaaff4eb679ae", +"TT_bitcoin-test_bcash.py::test_send_bch_change": "e201bc2aa26e4b51e7d6cc07490a7683783dc216ef745497931aaaff4eb679ae", +"TT_bitcoin-test_bcash.py::test_send_bch_external_presigned": "dace286fa857495ebf70db6ee9398e00040c2846fbbb57836dca3f2c3611e488", +"TT_bitcoin-test_bcash.py::test_send_bch_multisig_change": "575b51f37ed98f8542434239ff89911c2ea99497a059b8339abfbc9e1c9575f6", +"TT_bitcoin-test_bcash.py::test_send_bch_multisig_wrongchange": "93c7f8e72f1a31e685796e0a98f8d23b49f9c5f1ef67b76a10067ab82515a4f5", +"TT_bitcoin-test_bcash.py::test_send_bch_nochange": "faefb55c8730250ea1dcd52d2aba61dcb46a8b7b7198691e4a006222e8904cda", +"TT_bitcoin-test_bcash.py::test_send_bch_oldaddr": "b81b56caedafebff2657c5002d5ecbfa4b6610ae5ad138ce6eb18276f2fce35b", +"TT_bitcoin-test_bgold.py::test_attack_change_input": "e6d8efdc0baa6e8fa8c468754a841a27d399158a86a1e23135795b0e7710e564", +"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_change": "e6d8efdc0baa6e8fa8c468754a841a27d399158a86a1e23135795b0e7710e564", +"TT_bitcoin-test_bgold.py::test_send_bitcoin_gold_nochange": "d66446582fd15cb58bc64491496dbb69dc423ef2f84579ab3f38654f242c2400", +"TT_bitcoin-test_bgold.py::test_send_btg_external_presigned": "83217c06e51314c5f812fd9d84df7bb119a2207b74b48f001a768032773bee8e", +"TT_bitcoin-test_bgold.py::test_send_btg_multisig_change": "119f2c103523aa3892b393532bf15c7983434cab64c2a6fb10bb52c3d8901ab7", +"TT_bitcoin-test_bgold.py::test_send_mixed_inputs": "de33998196d4a4734ef665c6a4bf8708f0432a0a5ef84fd4dda5ad69832bd099", +"TT_bitcoin-test_bgold.py::test_send_multisig_1": "515d1c21f35285d743afb96abbf10845191203f397c2d5d638c89051fd0c505a", +"TT_bitcoin-test_bgold.py::test_send_p2sh": "a780f8b73b5be50f66000c7fa079f489721b5a7c8d896d113d8c5dd11fc54a7e", +"TT_bitcoin-test_bgold.py::test_send_p2sh_witness_change": "a677e0f1eefa96db04d7c2febead4095108534566b57506bdd17bc81e8445946", +"TT_bitcoin-test_dash.py::test_send_dash": "4ee1d3689b6c70ac071952136bafff9bdf2877fe16782ea92d2bc965ea7f2b28", +"TT_bitcoin-test_dash.py::test_send_dash_dip2_input": "20733fe0c0213c284a4d42ea84477b10b829e58e1f6a9f9fc82a08abbe384f1a", +"TT_bitcoin-test_decred.py::test_decred_multisig_change": "049c54a0137ed6ba8f032f7f63c174ce9d606f41684b651edffde957b1d28512", +"TT_bitcoin-test_decred.py::test_purchase_ticket_decred": "cd5acf17c230ef59f177a415ca3a84c2d6fd6e68eda14b04c74a06d7843ebfdb", +"TT_bitcoin-test_decred.py::test_send_decred": "50603ea43914abb0837c74acc504eaedc43a43e2768d98369429801bd01f5964", +"TT_bitcoin-test_decred.py::test_send_decred_change": "6c59328a7b86d3390abc71ca832574f906ec951e87103471fcd1c771e8f8bf4b", +"TT_bitcoin-test_decred.py::test_spend_from_stake_generation_and_revocation_decred": "ddf1e8bc210b39ba21efc7ecd1e91f1ee03804afca1db604940f8f6d6d1e6c3f", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDADDRESS-pkh([5-7a80e3db": "89c23e19d7b16bd845c14789a502d38e03dd1ffcf5b7638d0802639b046fb0a5", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDP2SHWITNESS-sh-03d56ac2": "d6db755cac33dd5714c817e8cf577fdb932b21e3d85090b2f18c3576ccdd6081", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDTAPROOT-tr([5c-22751b2f": "afbf9a433e6b0f592e3b1a02fd72a441d9540a5b668fd803322d77dc1b61dbc8", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-0-InputScriptType.SPENDWITNESS-wpkh([-edfbc435": "181d69d92719ac12e8242352a271cf6e5f51a733e7d4d29794df8f90b43a7ce9", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDADDRESS-pkh([5-5ab06094": "4411accb99dfd000bffd96793484167ca9979384ec3800c8e8663871437b5423", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDP2SHWITNESS-sh-5dd6ae4b": "69e9b37f44a31a2b811783d8e5f30f25cdac6e0b75e20a136f0ae50b9cf2ef85", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDTAPROOT-tr([5c-f4f20781": "33e5ee0bf2e5147b5c841f6ab41ee56f6ba2b282abea2721bcfcccf5ca99f9cd", +"TT_bitcoin-test_descriptors.py::test_descriptors[Bitcoin-1-InputScriptType.SPENDWITNESS-wpkh([-98a75f0a": "0837353fcc7afba6be9b75a22bc253d8f8f212cf754a1796a08c290e68db48f8", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDADDRESS-pkh([5-f63bf93f": "96e6dd1b907eb832318105fc8e06ffbb307f987e817ae6b7dad0bca768db6ee3", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDP2SHWITNESS-sh-fd42e1d9": "dc7897e1a5f57146edfae7bd999d6f9a09c878cd44cc499688eec870e7514918", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDTAPROOT-tr([5c-a794e72a": "e4e3031a241470d5387c3991885d0835174ead327a3854eb25c50ea833955518", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-0-InputScriptType.SPENDWITNESS-wpkh([-e70d0168": "8a743224a12ec72b91e6b44064c81e4ff2e1a79f79bea29a572064d81af62b3d", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDADDRESS-pkh([5-2d5b32fe": "aa9eb7953ce0543e04ab0709d6396dcdfb2708dc69a26df506024e69d30219bc", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDP2SHWITNESS-sh-e8c5303c": "ab42ca218adde99e26642fa8e2d147d84c39dc14fb2838c41550030217c35e75", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDTAPROOT-tr([5c-ddc924d3": "d2be03f490b5770ca1adb34e4a21c78c5717db7e9894bca8697cbce2330b5ab9", +"TT_bitcoin-test_descriptors.py::test_descriptors[Testnet-1-InputScriptType.SPENDWITNESS-wpkh([-996ae319": "97a7649cadc2bc5fa7679c2c10eab3ee9dd311a604377c45ef70a5802d543208", +"TT_bitcoin-test_firo.py::test_spend_lelantus": "1144c592c70cf924c8f8f7f9b96d5c827359e9f1a13c4f5e40eac1dc2761f5ca", +"TT_bitcoin-test_fujicoin.py::test_send_p2tr": "4d6b10e8c36dbcd4bd32b0573b6320d07a26a63feff86b6a945029ca896bdee9", +"TT_bitcoin-test_getaddress.py::test_address_mac": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_altcoin_address_mac": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_bch": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_bch_multisig": "347c2d67b3ddf9391230ef53633808869d89d09da67f0de2e4a84a5e5ad0be7d", +"TT_bitcoin-test_getaddress.py::test_btc": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_crw": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_elements": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_grs": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_invalid_path": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_ltc": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_multisig": "b2a53e69d53b565b76b66696032e1123937bfe4914fb3efe79ad155b3d778d58", +"TT_bitcoin-test_getaddress.py::test_multisig_missing[False]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_multisig_missing[True]": "f6bf78106130aaa306e2e4bdd72ceb383f08533b8046e51aa7cc0ccb473b5d6d", +"TT_bitcoin-test_getaddress.py::test_public_ckd": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_tbtc": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_tgrs": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress.py::test_unknown_path": "36d711efcd14c4c91e272b95bc30626d327acf2b4626e9c5d4374510bdc5e80d", +"TT_bitcoin-test_getaddress_segwit.py::test_multisig_missing[False]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit.py::test_multisig_missing[True]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit.py::test_show_multisig_3": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit.py::test_show_segwit": "55a15653608cc9c0500cc4854fc6a1655698e4904f347f8b020d79f7603ac5e1", +"TT_bitcoin-test_getaddress_segwit.py::test_show_segwit_altcoin": "9f826c9260f54304f71a8e1f8a2a666fd9a3100bf9d42766173f428d165ee697", +"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-0-0-bc1p5cyxnuxmeuwuvkwfem-dc12f29f": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-0-1-bc1p4qhjn9zdvkux4e44uh-1f521bf2": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_bip86[m-86h-0h-0h-1-0-bc1p3qkhfews2uk44qtvau-d8b57624": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_multisig_missing[False]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_multisig_missing[True]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_multisig_3": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-0-0-InputScr-6bc4ffc3": "ef7b44d1f3aa469efaacd73b630370c3e93e10fbeb32963485bf767f1031d981", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-0-0-InputScr-8943c1dc": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-1-0-InputScr-016718c1": "7d4e8ed9c5b7290eabdfb21da652b781b3e8190537e59ec8f88dc08a1f12e80e", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-84h-0h-0h-1-0-InputScr-7656a4db": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-0-0-InputScr-3d3cc8eb": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-0-0-InputScr-8571d5e0": "b4a4c24b1222fb18f466b3d5c9b3411b1b709b67a248b09c5acddaf73931f6ca", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-1-0-InputScr-ab700de2": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Bitcoin-m-86h-0h-0h-1-0-InputScr-da3803e0": "fd243d6ef7b58adc1465637ce9ff1d729371c0884054fab435273c90131c6efa", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Elements-m-84h-1h-0h-0-0-InputSc-490228be": "5638222a8f8c77e788d61b68d9b5adad1ee786dc1817105825ade9cfb82256c5", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Elements-m-84h-1h-0h-0-0-InputSc-ed587e90": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--40b95144": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--45b4ff5d": "f0ea90ed62c46d60b593d6f5a305492cfc376a67d7bb4d535997bef7dd70c2af", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--8f7c658b": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-84h-1h-0h--93c9c3ff": "086e775930f39b7d3d7f82a62f549ca94a4c581578f459571bbdff1265ba9ed8", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-86h-1h-0h--5feb8c64": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin Testnet-m-86h-1h-0h--8d4476a1": "f26dc0d5ffda3d90ddb6cabe0bdc7903d78825ed8282d9d4d06d8c84b52be7c4", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-0-0-Inp-0200a67b": "567f3ec19f93ee0b856328755e1c6f8f7a670e89e1716b31f9cba7ebf2aa6635", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-0-0-Inp-e6c1098a": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-1-0-Inp-9688a507": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-84h-17h-0h-1-0-Inp-f825f217": "643f05d294844f2a0e1bd7501b7c398122003d270480da2cf3ba53b61d25fa8d", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-86h-17h-0h-0-0-Inp-38cd93cf": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Groestlcoin-m-86h-17h-0h-0-0-Inp-ebecce6e": "a26aff71ac96c043a89d072afb7766232d7a9e8a4c657c9a9fa27774e9df089a", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-0-0-InputScr-313b9443": "99b52f4bfbd5f8d1d5e3879dac8a5a69ee86c3a5e66ea09e1fedf0a83a4b4947", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-0-0-InputScr-ce15ec92": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-1-0-InputScr-040186c0": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-84h-1h-0h-1-0-InputScr-b10918be": "834a9834b2f32d5cd6a371a5ffa8ee97517595e947f16ed42d3d01a12e539b63", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-0-0-InputScr-55ae0ae6": "35101158696b4efc79fe4edbb134e57eeb242875ae5de1544a4d877a56a8d310", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-0-0-InputScr-821a199d": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-1-0-InputScr-9d2fa8bc": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getaddress_segwit_native.py::test_show_segwit[Testnet-m-86h-1h-0h-1-0-InputScr-d5b7f8fc": "8888562660f406537561b078b8097834fd2a720d7682f6f6dcb137a738fbcec5", +"TT_bitcoin-test_getaddress_show.py::test_show[m-44h-0h-12h-0-0-InputScriptType.SPENDADDRESS-1F-1e4f2f74": "7b496c8e545d9b3a7f8b6b94876f2da7806be8ad7efe98ca641b088a9b00abf8", +"TT_bitcoin-test_getaddress_show.py::test_show[m-49h-0h-12h-0-0-InputScriptType.SPENDP2SHWITNES-a986211d": "fcd5013476e44aa220af98fa5da22466f3a6b62f9726caec1e7827f03dee3ae4", +"TT_bitcoin-test_getaddress_show.py::test_show[m-84h-0h-12h-0-0-InputScriptType.SPENDWITNESS-bc-a5f08dfb": "6d1b93e7905f5a9359921a8613f3ccf12d18e3f23a768115f7cab88854a61dae", +"TT_bitcoin-test_getaddress_show.py::test_show[m-86h-0h-12h-0-0-InputScriptType.SPENDTAPROOT-bc-f94d8b44": "d5e229d7792df56f7fedd9cb2353495026e56408544647f3107de74649f4a2fd", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_15": "f7b789bee718fcfb7a885648450b862adf361a1f66423cae600de406e0c7e7a1", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_3": "1d66a5039c91dc08bc74ae0c31ffcfb577782bda64803d579701669b07afa0cf", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDMULTISIG-0-3-4efd9cf3": "fe84bd2fd0952e3a02b46f68821203b6020c85638961f79b704bb106768060b3", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDMULTISIG-0-3-98a7e339": "fe84bd2fd0952e3a02b46f68821203b6020c85638961f79b704bb106768060b3", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDP2SHWITNESS--2cf5f03c": "446bbbdefe259450279a212bfc6ed567c22b2e9fa95aa0462a2efe464f96cf04", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDP2SHWITNESS--5ea18367": "2094483984183dedf8f8e2b28596b4ca343b6ee694b5936a128d24fe40d599fc", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDWITNESS-2-bc-e70b56ea": "22e1344ab7a0fcfa986359bf5236b9bc5175715c91e529f455a05571cba6c00a", +"TT_bitcoin-test_getaddress_show.py::test_show_multisig_xpubs[InputScriptType.SPENDWITNESS-2-bc-f3c4650f": "f5b1900e4afa54bc00950421d4ad6d1e213b3adc7785abb5ea1678e762a7ca5e", +"TT_bitcoin-test_getaddress_show.py::test_show_unrecognized_path": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getownershipproof.py::test_attack_ownership_id": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getownershipproof.py::test_confirm_ownership_proof": "c3c75ff51bcea27b517255b770417cdfa79ca020eec0e6329d2caf7957728820", +"TT_bitcoin-test_getownershipproof.py::test_confirm_ownership_proof_with_data": "18854345dbbd4e0d6b4a6be7aff8f133e28c42ed4a21311d8c7b25722c4b2f19", +"TT_bitcoin-test_getownershipproof.py::test_fake_ownership_id": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getownershipproof.py::test_p2tr_ownership_id": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getownershipproof.py::test_p2tr_ownership_proof": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getownershipproof.py::test_p2wpkh_ownership_id": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getownershipproof.py::test_p2wpkh_ownership_proof": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path0-xpub6BiVtCpG9fQPx-40a56ca3": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path1-xpub6BiVtCpG9fQQR-1abafc98": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path2-xpub6FVDRC1jiWNTu-47a67414": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path3-xpub6GhTNegKCjTqj-990e0830": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Bitcoin-76067358-path6-xpub68Zyu13qjcQvJ-8285bd20": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path10-Ltub2dcb6Nghj3k-53e5db37": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path7-Ltub2Y8PyEMWQVgi-d0bb059c": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path8-Ltub2Y8PyEMWQVgi-98ae2c41": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Litecoin-27108450-path9-Ltub2dTvwC4v7GNe-8d6d95fb": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Testnet-70617039-path4-tpubDDKn3FtHc74Ca-f3b70aff": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_get_public_node[Testnet-70617039-path5-tpubDGwNSs8z8jZU2-8b5efa13": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bcash-path5]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path0]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path2]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Bitcoin-path3]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Litecoin-path4]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_invalid_path[Testnet-path1]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDADDRESS-xpub6BiVtCp7ozs-9813cc48": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDP2SHWITNESS-ypub6WYmBsV-0710fbb3": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_script_type[InputScriptType.SPENDWITNESS-zpub6qP2VY9x7Mx-84eaa56c": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_script_type[None-xpub6BiVtCp7ozsRo7kaoYNrCNAVJwPYTQHjoXF-c37a47fd": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey.py::test_slip25_path": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey_curve.py::test_coin_and_curve": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey_curve.py::test_ed25519_public": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[ed25519-path4-002e28dc0346d6d30d4e-e6c7a440": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[nist256p1-path2-0324c6860c25cdf7a8-d75f4900": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[nist256p1-path3-03b93f7e6c777143ad-2d6b178b": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path0-02f65ce170451f66f4-9c982c22": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_getpublickey_curve.py::test_publickey_curve[secp256k1-path1-0212f4629f4f224db0-0209bb73": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_grs.py::test_legacy": "6f9727e6535fdab37271fc10e1b30b98ce7c216feae902106fde07eef737d2c2", +"TT_bitcoin-test_grs.py::test_legacy_change": "92c11bda9917f697ac0a56bb41b7f2cd0a532ba0b4b7d3185134baf67c8f3cdf", +"TT_bitcoin-test_grs.py::test_send_p2tr": "ed06dd86561d879e579cf76222ec7d83f0fc991ac5e5039ad5eb526c0c33b96a", +"TT_bitcoin-test_grs.py::test_send_segwit_native": "c2168f45f87efae86429845bc7699934b41d17ea34af178c7bf4bac267ff3a6c", +"TT_bitcoin-test_grs.py::test_send_segwit_native_change": "12fabd1129c0a0d33dc4245db6cb796eff632fafb93ee7a50a281b6051824c80", +"TT_bitcoin-test_grs.py::test_send_segwit_p2sh": "1a2c7357c72a5e3b48059f563f1acaa886b5c642fff85513b18eaf6406697056", +"TT_bitcoin-test_grs.py::test_send_segwit_p2sh_change": "81a73510d220a2abfbe46e0071b49f15fd406200aaca3b5e90722e93ec6fbcc9", +"TT_bitcoin-test_komodo.py::test_one_one_fee_sapling": "0081e390661d4535d9e29b9cd97f031006f403b20ee4f298944fd5ee73b86ed3", +"TT_bitcoin-test_komodo.py::test_one_one_rewards_claim": "0dbaa5379804365952c42dd81488a0263ca848b8f8fde80d7e324a1c073c292b", +"TT_bitcoin-test_multisig.py::test_15_of_15": "cdf23ce47a1823e4d3e196628f5db2e081e8beb42f8984ac82a143387c7728d3", +"TT_bitcoin-test_multisig.py::test_2_of_3": "aa4228387b445eba4cace6ae1a8c9fa6fab8b5e9c5a0ca2da2d79de94db12d0c", +"TT_bitcoin-test_multisig.py::test_attack_change_input": "adcd3cb376bc9dc1de9739f42a539321ff7c6fb2fbeeaf5428bc8a534df4940a", +"TT_bitcoin-test_multisig.py::test_missing_pubkey": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_multisig_change.py::test_external_external": "8d67c21171128a224ce612f47ab3a95533f1c76cd61182146f1b969f382dfd71", +"TT_bitcoin-test_multisig_change.py::test_external_internal": "63193226f449bae651116b508ec1c5102c2d75de86f4562420f43a33e34ba57d", +"TT_bitcoin-test_multisig_change.py::test_internal_external": "382865727c59ec85b37c96619717f7f5525d7bdb675a55a7efc1f8150a4e57c9", +"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_first": "730631a8d21dc5947ecac43a0aa3a1632ec17c9d7e1e5be438c283384d381fce", +"TT_bitcoin-test_multisig_change.py::test_multisig_change_match_second": "5794c6e0707192bc7a9404bccacbb4bd78ff713ba447252f0104aa0e6bd060f6", +"TT_bitcoin-test_multisig_change.py::test_multisig_external_external": "2e998ff5310889cbb5b27a1654304ca4851a4c2a0ed8a130c7d3b302454582cc", +"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_change": "e687a4bec433745c05972cfe93496955592c4c81a384f65a9b597e3d97890896", +"TT_bitcoin-test_multisig_change.py::test_multisig_mismatch_inputs": "039203db224f6132f1d800779df582a5d77fa90ef02314e4665e106234931066", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-6-255-script_types3]": "29ec760122416584c1d0898a1af80421832ae16254b1b92fba2ec7aab4c0a71f", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-1195487518-script_types2]": "8948056f85610c47ff6696335a523e83999a4d3136fe985ff56d482710e11c25", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-3h-100h-4-255-script_types1]": "ff744cb9a98f379e56562252c419b70f3e37ea8a54b9211155879fadea2db8a6", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-4-255-script_types0]": "6f757653cc58cfdd3b37d01405b357460607bbeca6ffb80209fe2c44de3724d4", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress[m-49-0-63-0-255-script_types4]": "66480628afbc5bcda3fec2c53e6213a4df9b0643fcbdc2ea153ed2f8649c8032", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths0-address_index0]": "e0956390804c26d7cbae1f84aa5810b5b00a26e4f5430eb2eb371485ef5b68be", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths1-address_index1]": "ee61a979972b8b95aab1fa74b340ea07dc491984a3212ed6389bfeb5c2806318", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths2-address_index2]": "b28fe5d2e21e447ad657c258c6dc3c6768691600265c5b83f6c59926299112ef", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths3-address_index3]": "0298ab030b52465f9b57f1d55ca6d5fcd7374c9c3c98cf9e80607abdc6317f9a", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths4-address_index4]": "a5c35e4ba6cc251c584586890a4aec63a926b48640bd138c4444608c6229f573", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths5-address_index5]": "5c3c42bf8595f69f12ce2ef1d3a885dddef89d60afc9530ccb6b8f65b9d2ca0b", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths6-address_index6]": "b5add348788cdfa4c727e73179954ec14c6de94f1751b5e572d1337fbc273b58", +"TT_bitcoin-test_nonstandard_paths.py::test_getaddress_multisig[paths7-address_index7]": "b2c960cd09f02a9b4ea741884dcc24479f8c127d3dc2c4744832072ad84f3285", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-1195487518-6-255-script_types3]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-1195487518-script_types2]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-3h-100h-4-255-script_types1]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-4-255-script_types0]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_nonstandard_paths.py::test_getpublicnode[m-49-0-63-0-255-script_types4]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-1195487518-6-255-script_types3]": "7afabcdac5f59c2199822eeb8045eaf5c4e45d2e170c071110e57301eaa8521c", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-1195487518-script_types2]": "ba82953b29cf79271e7f6e95b09df0cd4d8ba3b05a86652dbdd8e96648c96695", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-3h-100h-4-255-script_types1]": "3aff38f84b98ea8e5d7be7ac4a5e5aaed3ba48c8026678d585633243e6909221", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-4-255-script_types0]": "519176fa755b1869e3146c88d23fc874841606f9a304d4dfdf41413ceef4cc3e", +"TT_bitcoin-test_nonstandard_paths.py::test_signmessage[m-49-0-63-0-255-script_types4]": "f854ab3f4dee7863b2dab681aa9e1cb1f15edfa5bfc10dcc1f3625a168dfcaab", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-6-255-script_types3]": "846dc0c5965084c39aa8f2f5d4aa057b0320984e28661380638ccf298a710e44", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-1195487518-script_types2]": "8e5e6f1c0e54b1f54c49e31480870b24fd2480a48c47e1226466a339a1b3d39e", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-3h-100h-4-255-script_types1]": "f2ebb2de12678658d527a96f92206015ca0b57f5d001de357550dde8f03be0f1", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-4-255-script_types0]": "f2ebb2de12678658d527a96f92206015ca0b57f5d001de357550dde8f03be0f1", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx[m-49-0-63-0-255-script_types4]": "6e53c148891d9a9d9ec770ec5b3f17b96fe90a3db736ebf18c06916cf9957069", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths0-address_index0]": "0c8ca95f4fea968198c99426740039bccc2eb216869131be9474ccb18b9ad742", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths1-address_index1]": "0c8ca95f4fea968198c99426740039bccc2eb216869131be9474ccb18b9ad742", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths2-address_index2]": "38b1fd67e3c56600230279a8eecf5bf5d85892dfa436d939ea13904e79a0fe1c", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths3-address_index3]": "ba26a700372b59b7266c402063bd3681bae77c583b607b903fa45fd0f8794b68", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths4-address_index4]": "0c8ca95f4fea968198c99426740039bccc2eb216869131be9474ccb18b9ad742", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths5-address_index5]": "0c8ca95f4fea968198c99426740039bccc2eb216869131be9474ccb18b9ad742", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths6-address_index6]": "0c8ca95f4fea968198c99426740039bccc2eb216869131be9474ccb18b9ad742", +"TT_bitcoin-test_nonstandard_paths.py::test_signtx_multisig[paths7-address_index7]": "6d66c4286ef32c83bc5fe1f0177a69a02bf4786669cd47b0a6d75729ab9552c1", +"TT_bitcoin-test_op_return.py::test_nonzero_opreturn": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_op_return.py::test_opreturn": "bc8786461ab13dfcdd56aada668920f2d7fc1679fd4a21e3a97d01b3910e5a01", +"TT_bitcoin-test_op_return.py::test_opreturn_address": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_peercoin.py::test_timestamp_included": "702eea34db340dde0f225fd9842a4b90e913f190b3f025b187f2bd18ca898971", +"TT_bitcoin-test_peercoin.py::test_timestamp_missing": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_peercoin.py::test_timestamp_missing_prevtx": "a944d0c8b26a98e8e49a680f0c2f2116d48e8b1ae619c69cead9781fb516123e", +"TT_bitcoin-test_signmessage.py::test_signmessage[NFC message]": "ab757fc854a23cd34d53426be3179293c39386d9e1331d95af0f04deb457b8b4", +"TT_bitcoin-test_signmessage.py::test_signmessage[NFKD message]": "ab757fc854a23cd34d53426be3179293c39386d9e1331d95af0f04deb457b8b4", +"TT_bitcoin-test_signmessage.py::test_signmessage[bcash]": "1bc86855d0cffd505ffd04306582eb4e60a6a568da762b8a7903e9e6d2555cd8", +"TT_bitcoin-test_signmessage.py::test_signmessage[decred-empty]": "60a1f98fe4ae8711e8f26d5e62146a75d88b92bbf188cad24f817676f6ecca08", +"TT_bitcoin-test_signmessage.py::test_signmessage[decred]": "78433fc9d4347b513dc981eae19060dd25e4c849677ad6a6d3d4ff98b85ba6ac", +"TT_bitcoin-test_signmessage.py::test_signmessage[grs-p2pkh]": "48a0bbe237c43cc9560b704b21d375b33b07c63bb1fb4f576e6615c3adc5e2ed", +"TT_bitcoin-test_signmessage.py::test_signmessage[grs-segwit-native]": "8026f5473708c8e86d43b1d6ed043dfacba6bb0124252110f930be6da1bab313", +"TT_bitcoin-test_signmessage.py::test_signmessage[grs-segwit-p2sh]": "f46ee5065f33fd419821a1a1988ba28f333cc8ee844a8fcc47e6577d8a49d7c0", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh long message]": "d23cf852f01c7b3132cca9e8780be49f8f295e2a8eceaddddc4741159a0e6a5b", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh0]": "15fb9705bc79851421f64474adf614d48b3e4a1d6a6807b71448bcd58d43eab9", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh1]": "15fb9705bc79851421f64474adf614d48b3e4a1d6a6807b71448bcd58d43eab9", +"TT_bitcoin-test_signmessage.py::test_signmessage[p2pkh2]": "aa0d139652160d42b4283e418755eee12227fef03e084932fb681851f425e744", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native long message]": "43bbe4da02aea7861daf355173ac8ee85efc6890c61115158f6e26d0bbd5c705", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native0]": "a109817455e15a3651ea9773e0258e0dcc34f74f0c944403dd91b2333b0dc1e4", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native1]": "a109817455e15a3651ea9773e0258e0dcc34f74f0c944403dd91b2333b0dc1e4", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-native2]": "4567cae6e6ba50f720dd3389fadce38ddcb55885072ec50473cb44edc089ffd3", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh long message]": "dfbf39b9cf9891214f88503f334e8e2afd7901588b764defd612f0a32a890df5", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh0]": "9bee69803e89897511cb72895e9398ce04bfe4647397b65b5e7d6eff6c53cf39", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh1]": "9bee69803e89897511cb72895e9398ce04bfe4647397b65b5e7d6eff6c53cf39", +"TT_bitcoin-test_signmessage.py::test_signmessage[segwit-p2sh2]": "64b97badfb2881b7824558e4f869a7e49a52c78ea28b10fd07041f470be2aab8", +"TT_bitcoin-test_signmessage.py::test_signmessage[t1 firmware path]": "0734022f1537d3a353c475ad73d57767a2e23017dccd479955121f27cccd018b", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[long_words]": "d5eb536ac72b1e5d9ac571b144472bfec0d5c63ad2a8b690342e096a4055fde3", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[newlines]": "dabdac2b71c8306038d63003fd7e9c75e9926bc011841b8df07f857068a57d4f", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[no_spaces]": "d3f5ed15db8cfd218dbd51658533974c41e652197384e10e7186a58aff6d04d8", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[normal_text]": "b5def352f665644f99ae8d66475ccad9df4ce255c0e27213381569b8e72ac87d", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[single_line_over]": "4c4917b4e1580982b20c97885653e49646693b4a8bf95e4d547acf02e9e2a130", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[utf_nospace]": "8834f3ea0a66094ff7eaf710adaa969d47a3c37263f9a617676d54c3a0960706", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination[utf_text]": "ee4eba9ea3be2785a0a39d3b252fac0596657ce226c6b50b4f68db04efc04bc4", +"TT_bitcoin-test_signmessage.py::test_signmessage_pagination_trailing_newline": "42963a1b3aadba3c86f12bed989b456a0a5c20497bfbe47793a871bacb189f69", +"TT_bitcoin-test_signmessage.py::test_signmessage_path_warning": "8940c72cba44df5a8c71fdeffb9fa5ba3518351f6ce694d5f558d4c4dfd151c2", +"TT_bitcoin-test_signtx.py::test_attack_change_input_address": "5d6a0380c86c3c7a2743e4a6da9db9e0b49fea88f545ebd62b84bbe8e5f7dafc", +"TT_bitcoin-test_signtx.py::test_attack_change_outputs": "ecb0405bb9cc5cf9532e1d35cb21e9c2752d80d299161924b3fce9fc82d1f622", +"TT_bitcoin-test_signtx.py::test_attack_modify_change_address": "b15953ee45ba869b95840c2ac61a084184b652309eedd20987bcb507eb56da95", +"TT_bitcoin-test_signtx.py::test_change_on_main_chain_allowed": "b15953ee45ba869b95840c2ac61a084184b652309eedd20987bcb507eb56da95", +"TT_bitcoin-test_signtx.py::test_fee_high_hardfail": "16e1b89aac7d590436a542233a6fdda3fd806c9cfe35cbd422b23d607b6014d4", +"TT_bitcoin-test_signtx.py::test_fee_high_warning": "39d9e2e53b1589c4ca861b6f760e0bc4b20d3e9d084857b2dcc7461e5947bdf4", +"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.EXTERNAL]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx.py::test_incorrect_input_script_type[InputScriptType.SPENDADDRESS]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOADDRESS]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx.py::test_incorrect_output_script_type[OutputScriptType.PAYTOSCRIPTHASH]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx.py::test_lock_time[1-4294967295]": "80a309bc92e6b01fe028ce70d491f90c1ec7c78db11054509a0ca6dc261a143f", +"TT_bitcoin-test_signtx.py::test_lock_time[499999999-4294967294]": "168499a31f8213bd205f9d8278a30c14adcdfeed64e1f140ad91797376c42817", +"TT_bitcoin-test_signtx.py::test_lock_time[500000000-4294967294]": "148c28923d354a452bd59ac0478ff33a0bc8c88d8ebe3e63e14f4d14d463e1a2", +"TT_bitcoin-test_signtx.py::test_lock_time_blockheight": "168499a31f8213bd205f9d8278a30c14adcdfeed64e1f140ad91797376c42817", +"TT_bitcoin-test_signtx.py::test_lock_time_datetime[1985-11-05 00:53:20]": "148c28923d354a452bd59ac0478ff33a0bc8c88d8ebe3e63e14f4d14d463e1a2", +"TT_bitcoin-test_signtx.py::test_lock_time_datetime[2048-08-16 22:14:00]": "cffaf4f9f4e71a4a770d21598c995d537a478d8b936e60df9c6f4abca9c83c93", +"TT_bitcoin-test_signtx.py::test_lots_of_change": "5625e5c6c285a36922a8f2c8cf6ebe4f8193b92b20ff01393f9eb2aefe6211fa", +"TT_bitcoin-test_signtx.py::test_lots_of_inputs": "bf11e5316ce2f53aa2ff58f4357765b74dc67c0e8fa44e83c9e4ae29e3696a4b", +"TT_bitcoin-test_signtx.py::test_lots_of_outputs": "aee7988990f2b180e33100758bc26eebec0bded170b1781bfde85e8b9912dfcf", +"TT_bitcoin-test_signtx.py::test_not_enough_funds": "730856ce83601f731c6a1c7b920d45bf06ae00467b77db3c4467d5c313d11985", +"TT_bitcoin-test_signtx.py::test_not_enough_vouts": "882caf0aa7c29d4cb8a6856a3b6a16d489bffaf99147925f40251bd9de6638a7", +"TT_bitcoin-test_signtx.py::test_one_one_fee": "ca42fed377fc4c429518b9e297402f2c95b1702df35fae9d788e519e9e0ab89a", +"TT_bitcoin-test_signtx.py::test_one_three_fee": "4a3c2646678b99de5bc3d78cbbb232e5209223273951ea0758135cdb4e16eb03", +"TT_bitcoin-test_signtx.py::test_one_two_fee": "490a62a2a6a4af266b15b0a1035c66fb82d2a577c4e59156af6c3c4d065b06f3", +"TT_bitcoin-test_signtx.py::test_p2sh": "524dc66c374b7a2512e03bb44ea387258824416d131033c8d5c4dbe4e31edf78", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[branch_id-13]": "4f96f64e65c29ef611103b9be4f4abfb3bbc92dfa354d6396b90a27feb80405b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[expiry-9]": "4f96f64e65c29ef611103b9be4f4abfb3bbc92dfa354d6396b90a27feb80405b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[extra_data-hello world]": "4f96f64e65c29ef611103b9be4f4abfb3bbc92dfa354d6396b90a27feb80405b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[timestamp-42]": "4f96f64e65c29ef611103b9be4f4abfb3bbc92dfa354d6396b90a27feb80405b", +"TT_bitcoin-test_signtx.py::test_prevtx_forbidden_fields[version_group_id-69]": "4f96f64e65c29ef611103b9be4f4abfb3bbc92dfa354d6396b90a27feb80405b", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[branch_id-13]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[expiry-9]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[timestamp-42]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_signtx.py::test_signtx_forbidden_fields[version_group_id-69]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_signtx.py::test_spend_coinbase": "91386ce256773c6c3a7b22e25491215495971f582cdc99870c4efa97fb4a820f", +"TT_bitcoin-test_signtx.py::test_testnet_big_amount": "921d60313683c8e1ceba539dbb4d0d1c61bb19180a6e797680ac0b43eceb99c5", +"TT_bitcoin-test_signtx.py::test_testnet_fee_high_warning": "2146c57e5a8aa0710aa798b4ac54202b65e9aada8599cea4ff43595127932f59", +"TT_bitcoin-test_signtx.py::test_testnet_one_two_fee": "b15953ee45ba869b95840c2ac61a084184b652309eedd20987bcb507eb56da95", +"TT_bitcoin-test_signtx.py::test_two_changes": "63b7067d850391393ec93099714b1891908caddf7c31503540c74b0ce4ba57bb", +"TT_bitcoin-test_signtx.py::test_two_two": "8d9e3f282e216962518f81d5b2d96e4d28f0cf1cce9fb706d3da81f05e58802e", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.BITCOIN]": "ca42fed377fc4c429518b9e297402f2c95b1702df35fae9d788e519e9e0ab89a", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MICROBITCOIN]": "daf2ab7b5bac7ca6986c554e2491ea9ce5a5893b61f330adbd12b9f88333c103", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.MILLIBITCOIN]": "629da2434554804ba5249ca351d5b390ab0c958d7dddde4e0f6e19fadf1a21c2", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[AmountUnit.SATOSHI]": "345049e1c86c6b92407226a7f4f56fcb0b26657c1ba590b9deb91899a7fd2dce", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_btc[None]": "ca42fed377fc4c429518b9e297402f2c95b1702df35fae9d788e519e9e0ab89a", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.BITCOIN]": "3ef4169b93304aa6c0da5f46ffd44feca83d5de1173792e4b7db24b6820f875c", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MICROBITCOIN]": "f9b0ff79ed19a4cb72eb97e4af6a3369da54acb90a31b7f40322293d1c1e2c26", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.MILLIBITCOIN]": "af7235121f6a01c2649ad03e6afd88f8afc47ec967393a06f4950f6b0e0f05a1", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[AmountUnit.SATOSHI]": "c484c37668a5a91841f7eacbe5e4f1d837dca075b9393e08035f1c3c8f883aa3", +"TT_bitcoin-test_signtx_amount_unit.py::test_signtx_testnet[None]": "3ef4169b93304aa6c0da5f46ffd44feca83d5de1173792e4b7db24b6820f875c", +"TT_bitcoin-test_signtx_external.py::test_p2pkh_presigned": "083b08962d37697d2f9d4b70886c4157ec0603259bcde0bf2bf425053d031117", +"TT_bitcoin-test_signtx_external.py::test_p2pkh_with_proof": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_signtx_external.py::test_p2tr_external_presigned": "d4a781ece8725848767d70497ef0a8c8095039c5d0ae668ac9720da6004e1f3d", +"TT_bitcoin-test_signtx_external.py::test_p2tr_external_unverified": "5ad25fb0a86a6396a814259669b9d6650cf89f52b713831952ff8e2e649dee1d", +"TT_bitcoin-test_signtx_external.py::test_p2tr_with_proof": "6be7ca9e17d4081fceb4d56ef104525118fb04bfb2592e49fb2f7d78d1e722c1", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_external_unverified": "13eb291aa7765bdea69978a3eab6e117365496505e15b77600f4f56b2f5f9a5f", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_presigned": "f483dedffa0da13ea56ac36eb7ce491e8f9631904dc32f200d10778bbdb9efde", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_in_p2sh_with_proof": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_presigned": "f08ed6a8e79127ac50b49794e4e49c9115957cbb1e7cc69975ebc4e41f0d8b60", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_false_proof": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_external.py::test_p2wpkh_with_proof": "f63466746453223e76140789df3d3fd4656b9dffd06e1bcb62896946201e4c27", +"TT_bitcoin-test_signtx_external.py::test_p2wsh_external_presigned": "aedec1b4a70a5b2f8f827f6a1bba5ddc3bd9b2b23f8c40f527d0c28e987fd8ed", +"TT_bitcoin-test_signtx_invalid_path.py::test_attack_path_segwit": "876e565cc142f0540f18ee6b666ce2fa6017057db63625e62b97d26fe71a9daf", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_fail_asap": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_pass_forkid": "95f2f76b67228e679107c7cc4cf0c211038775404e5b0697ddb4896a7c26af84", +"TT_bitcoin-test_signtx_invalid_path.py::test_invalid_path_prompt": "ad8573ce5becded27381fe6bc6506ba1a74a0f63c75a906e11d065cf12da44e4", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_inputs": "c7aced27b2418d6e923905807ca280ad5ab842bd5e59259c549b677e8a63d522", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_non_segwit_segwit_non_segwit_inputs": "fa8747c4a05ccf8042dcf4d28696f711eea160f5ca50d2cbb78d61ba31744ba7", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_inputs": "c7aced27b2418d6e923905807ca280ad5ab842bd5e59259c549b677e8a63d522", +"TT_bitcoin-test_signtx_mixed_inputs.py::test_segwit_non_segwit_segwit_inputs": "514136a9349b27a99687ada0f669886612bec2c61939cfbe7c39c799d5afc42e", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_amount": "44b2dc4cdf7b8be37b77be206c6ec77d630f949c2a173807cc59eeb4a7171e1e", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_purchase": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_mac_refund": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_payreq.py::test_payment_req_wrong_output": "2b16e17efffed1c3e495b48eb32a93457edf26769c972b3d5bc050912df90750", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0+out1]": "53dae65ce84c7fb269f6a6c7522f7ef512705ec530c493a332f4e6b605653d2b", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out012]": "2e7ccc1c98fedaef60d472573a4e97c00b6bb045973d24591badc491becb1231", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out01]": "68a4ce74efd9c19be57affb75d50b803e41bed8786c9fcb927c6167b7941eadb", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out0]": "6215beee8203bd9cd195d182fb264abfe70fcd38f43f05fd5df7eabc2cb12f7e", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out12]": "a26cd5e302a9952a4bf16731c473d7eeb5b6c9a37504d075b82751a86e77c4e9", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out1]": "d42aed2d6328749060d0f798268a3e44376838ea095fdd82210bac75c6f89598", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request[out2]": "90fe9841b0a31880481dde2dbe95c3eb2f59652066d746907c5f84fa90b9c6c3", +"TT_bitcoin-test_signtx_payreq.py::test_payment_request_details": "167e37c0ec10db4f020805153e4d6ee29f14b1506bbb855a68cc488b5cb50c9f", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[hello world]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[x]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[]": "b9536187c92aac09cdcaf5494e17970c865bce2b0b82ad56431374c46b39bf90", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[hello world]": "b9536187c92aac09cdcaf5494e17970c865bce2b0b82ad56431374c46b39bf90", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[x]": "b9536187c92aac09cdcaf5494e17970c865bce2b0b82ad56431374c46b39bf90", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_attack[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "b9536187c92aac09cdcaf5494e17970c865bce2b0b82ad56431374c46b39bf90", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[]": "b1cafc4b954df220e9aa0fb8a59e55f7b95a077701b2e521af9cba74c7fed427", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[hello world]": "b1cafc4b954df220e9aa0fb8a59e55f7b95a077701b2e521af9cba74c7fed427", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[x]": "b1cafc4b954df220e9aa0fb8a59e55f7b95a077701b2e521af9cba74c7fed427", +"TT_bitcoin-test_signtx_prevhash.py::test_invalid_prev_hash_in_prevtx[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]": "b1cafc4b954df220e9aa0fb8a59e55f7b95a077701b2e521af9cba74c7fed427", +"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_ext_input_amount": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_replacement.py::test_attack_fake_int_input_amount": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_replacement.py::test_attack_false_internal": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_replacement.py::test_attack_steal_change": "1e9f05fadfc845bc0200fae81520488bfacfbeb1177f8cdccce3c9effb21ecda", +"TT_bitcoin-test_signtx_replacement.py::test_p2pkh_fee_bump": "8ead4229886abb992d437a87fc9846a4c69fee29141bea398a4c5c1b3ec77329", +"TT_bitcoin-test_signtx_replacement.py::test_p2tr_fee_bump": "a9cc967ffe73ce77e0fb021e9a3b3713cf80ea7f9ca1b0e9d03cc7734395aab6", +"TT_bitcoin-test_signtx_replacement.py::test_p2tr_invalid_signature": "a9cc967ffe73ce77e0fb021e9a3b3713cf80ea7f9ca1b0e9d03cc7734395aab6", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_finalize": "725cfd58565a6e5fc6b75bdb7c241eb9ead6ca854c92e2fbe16cfc87db5b6f71", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_fee_bump_from_external": "92c2f7240857e0c281936d932639bfea621cb420e8c694a5d2568da454c68e1e", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_in_p2sh_remove_change": "0412c924c6c4a70be825939cf5580b89367605aec3a34b6adb3563593f277bc5", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_invalid_signature": "725cfd58565a6e5fc6b75bdb7c241eb9ead6ca854c92e2fbe16cfc87db5b6f71", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_op_return_fee_bump": "70979eb7d90fea454c1a462ba6e3cc517fd2077903f8d9183c1a50d362f734fd", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909659-90000-02483045022100aa1b91-c9b963ae": "ee5d048b4ea8f2b3ac04e8125f76d507c4e37637327745ce87c2e856fb0351cd", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909718-90000-024730440220753f5304-ecb983d1": "ee5d048b4ea8f2b3ac04e8125f76d507c4e37637327745ce87c2e856fb0351cd", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909800-89859-0248304502210097a42b-7a89e474": "ee5d048b4ea8f2b3ac04e8125f76d507c4e37637327745ce87c2e856fb0351cd", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89800-02483045022100af3a87-80428fad": "41dff38ece3d197987d7d4e897c7ebad0a40c96095259526bff86d2713508b24", +"TT_bitcoin-test_signtx_replacement.py::test_p2wpkh_payjoin[19909859-89859-02483045022100eb74ab-881c7bef": "ee5d048b4ea8f2b3ac04e8125f76d507c4e37637327745ce87c2e856fb0351cd", +"TT_bitcoin-test_signtx_replacement.py::test_tx_meld": "866e85dbc876809da28430f787e36dee624ceb40638a338e26bc119edea2e32d", +"TT_bitcoin-test_signtx_segwit.py::test_attack_change_input_address": "4b58fb22162c36e7d5de9aee92b5b78d17fcf64fd58667fb48f02c0417d51864", +"TT_bitcoin-test_signtx_segwit.py::test_attack_mixed_inputs": "58fb6e213fc13bee6f13e5a6cd170e87d68a5a1f2ee8e33be8ffc9853f414b80", +"TT_bitcoin-test_signtx_segwit.py::test_send_multisig_1": "ab0c9c03a2eb6d4e8395622e984ff1a813cf635dbf7025e139a7eb2724943fd5", +"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh": "8083b36636a1c0d9b245db896e1d32fa541256262984300e99ea1043ead9c60a", +"TT_bitcoin-test_signtx_segwit.py::test_send_p2sh_change": "eb0c28af96a651dbb60a76f49ec7ddd43b95cd2beed284beffbfc3790dd0e4e0", +"TT_bitcoin-test_signtx_segwit.py::test_testnet_segwit_big_amount": "e52298904833589b797d982d2357ea19b4f6ecfbc9e4ecd2b09b86d2892e4085", +"TT_bitcoin-test_signtx_segwit_native.py::test_multisig_mismatch_inputs_single": "a239ad7734fa2bc316241bd607b6b2fedd6802154590f99c8c711040f43383ae", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_both": "3eec77e0f79eae561dbaa0468b3743634e09f984a90fba46ba479be032174e9a", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_1": "56704b7138799085989a95f7cc8d25ed7535107329c3a2a6524b69bdf48b2dac", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_2": "d13ce17eaa563814181aa6201f588fda1c26208fb2bede56cdf1f4f0032d8341", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_3_change": "e7146b6b66c8757b1b6cf9b4f1f16745365d094a6389a618d8f8bb390b2dda43", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_multisig_4_change": "f8dc8c9c56fbe5a568d914bcae1b114b42b40bb6a28af4b95e544246dd8a712d", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_native": "3ef4169b93304aa6c0da5f46ffd44feca83d5de1173792e4b7db24b6820f875c", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_native_change": "3cb6fd481ac140583c7db43d739837a18d0878b916b0139b656a3d4c18e32c48", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh": "e1b3f5961ed2f24c997cb4a5abf399324de65af6a1004d9b242ff4e971784ddb", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_p2sh_change": "3e015c8c1342d994989daee93e8adcda67ebcb6d20033ec9817dc08dac9aaf10", +"TT_bitcoin-test_signtx_segwit_native.py::test_send_to_taproot": "382792ee568e207f2c7a076038cd5ca6e47e18965e3cd9a5a799e19bc922fa34", +"TT_bitcoin-test_signtx_taproot.py::test_attack_script_type": "f844ba42a7942916bbead80688ba571e5717132508bf140b44ea96ea1a290084", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1pam775nxmvam4pfpqlm5q06k0y84e3-a257be51": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plllllllllllllllllllllllllllll-aaa668e3": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1plycg5qvjtrp3qjf5f7zl382j9x6nr-5447628e": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_taproot.py::test_send_invalid_address[tb1zlycg5qvjtrp3qjf5f7zl382j9x6nr-880d4a6b": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_bitcoin-test_signtx_taproot.py::test_send_mixed": "a87dcb0b64784ebf9e128e16c930e4b6b48976b2cbbfba81f5630ac493e03e3c", +"TT_bitcoin-test_signtx_taproot.py::test_send_p2tr": "db7a4b7858009f495f48a11aba5de963304e317cad1b02c76afac33ea8307da7", +"TT_bitcoin-test_signtx_taproot.py::test_send_two_with_change": "66ebda7850262d9a9124224587524b894672c905f3a50ad48f5d8dfa1acec56d", +"TT_bitcoin-test_verifymessage.py::test_message_grs": "e85317b1ec4db49d6bc9cdb5a30b72e716efd6650585574f0cfdad973ad19bae", +"TT_bitcoin-test_verifymessage.py::test_message_long": "7b491a28c9014e17057f575cb96ee03f8524175c950776e79c7b4e6a53b8b680", +"TT_bitcoin-test_verifymessage.py::test_message_testnet": "252f2b8da802164a0503c2d63f5621a0b0528b9bb84108d4d5803963a501198c", +"TT_bitcoin-test_verifymessage.py::test_message_verify": "885b9b487c01fb83ffaa91ca740f793dd8ba882b99d9a27170a93903acf1491c", +"TT_bitcoin-test_verifymessage.py::test_message_verify_bcash": "7456259180268b7738ceea85aa987e630fd2713aeebf197217ba8340a8ae6dfd", +"TT_bitcoin-test_verifymessage.py::test_verify_bitcoind": "a97a2f53511a7e9ba8ef531b648aa3ad64cb4c48fb5ef5c5562fba3c29f33f8d", +"TT_bitcoin-test_verifymessage.py::test_verify_utf": "f6659aa84dad552be97dcabf577fa82f479f5a0a4c18bbfdc0e63e60285a6d64", +"TT_bitcoin-test_verifymessage_segwit.py::test_message_long": "cd2a7d6b403d21724e90ce0f767239cfd37ab6a22f37226bb3c9dfc2dec7fc5c", +"TT_bitcoin-test_verifymessage_segwit.py::test_message_testnet": "a1686ef6eeb956b5686ecf011b7453b70dde99ff7331e637e4da9b820ea83b09", +"TT_bitcoin-test_verifymessage_segwit.py::test_message_verify": "3feedfb0f721c7aab89a1a071b566210e99333cbc12a9312c9f532210cf7b603", +"TT_bitcoin-test_verifymessage_segwit.py::test_verify_utf": "2777fad6f73ed0ab4500f5ab45819e408cd499f7bf49a36310a0519aa785972b", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_long": "b3d8044f556779da1b93a30aacd4bb451c0c60bb7fb5f63f6b15605bd97f851f", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_testnet": "aebbc131623713bfd9244fff960b6ebb1afd75743b3c1c60585799339ff42e05", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_message_verify": "5e8b6cc0fd5f80b8150cb56db7b537c52f5962a1c1d1930d8cc40c7b80627a83", +"TT_bitcoin-test_verifymessage_segwit_native.py::test_verify_utf": "2b6d15f2988b60e864125b7128425bb6f5591a777f6e831de8587c4f446652ed", +"TT_bitcoin-test_zcash.py::test_external_presigned": "7b201d92d16993d244288ab05cef393c059a3a7726a6d66fa4c00a90b4f22859", +"TT_bitcoin-test_zcash.py::test_one_one_fee_sapling": "cefacdc965487236e1d6549536a5727b27883c8d19855d247dea0f7fdedcc0a6", +"TT_bitcoin-test_zcash.py::test_spend_old_versions": "1104ea4f6ceaafc28714f52a536d47d2658942a59a4ac3484d3cb992fa2c3233", +"TT_bitcoin-test_zcash.py::test_v3_not_supported": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_bitcoin-test_zcash.py::test_version_group_id_missing": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-derivation]": "cfaf149124b0aaa5a2a02f1169d72c82dc0b0f3dfcc3d5f07dd15e2c37285946", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[icarus-trezor-derivation]": "aeda35a0f3bc5c213b9a1ba0c4b5f5f5ff5105462f1d152b40300eb916038e14", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[ledger-derivation]": "58500634f584dad80fc24c87ee3ac88ac7a464dc3edbb835714e9ee02d3f7bdf", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters0-result0]": "8aaf0e5a06e75dd7de1f1bc467c2e02df93da325c29f691b22197c3c3ec260bb", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters1-result1]": "66b7b6ff32cd03fdbb664afef74f9c18581372ae0f2793c88c18786b8d2ddd24", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters10-result10]": "3e019d888f51f7816a3fcad327871d08449a6e343676e12abc9fbb0a616409bf", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters11-result11]": "7a52cf8a36561d53925ec9b4132e71ee47ed6e44617c3687692deb2eda8383f4", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters12-result12]": "0669644b1e158c340a0510b69810560344c5d4ee5a59de37b0154e88f5478737", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters13-result13]": "c5b773d6d359cbe94ed72851cb3d26fb3adc76a7a03bda0b895b41021be1387d", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters14-result14]": "4de1960d1a4a0125880f52da6d8e7b3f9d29304e061ea1589bacece65f944528", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters15-result15]": "40d1d4141b84756f5833dd30f6b5dde39d2289fe446b4690b3482a3bb6c96831", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters16-result16]": "e5a376238b64de1ffcb3662eca46c487639fa004e62971f076c4ec7230950571", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters17-result17]": "29b37cad985f7a45e5958b5c00e9479c802bc2798201358f70ba9a2cfa507e8b", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters18-result18]": "1c624da6bdb7c7b79627b0d2365b634ef13db257abcb978a76f5843455efb1c5", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters19-result19]": "2b0eabe9a2f69a320d059a29f0920dd356b9136e7dff82daf5d19b715f44cef7", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters2-result2]": "c83962ace9eeaf319a702a1f569c2160b7185217bacaf860f091dcf9ffdcc5c4", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters20-result20]": "d9e03f78fdb12b1137bbb1ac91cb286135cb73083853ccaed99ca5889dac2610", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters21-result21]": "f69d18cae431ceacbf9d44ab749bd08588ba5fadb684f55db52e0e1626f033ff", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters22-result22]": "634f7a4648a1640cea50d5779756e8b9230ce3f43f2c72bab65700970657582e", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters23-result23]": "229015ec6fbc321f6d9aecb9a6b2aa31007ce968362fd94450466ccc3763c794", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters24-result24]": "a6d6df10904d329e6b562127181e2229682fab37542186ab2ef81f4d29fc322b", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters25-result25]": "f9265c7c761afeb2ed484a6a8cb6efde7ae89fb9605eaa3eabb1b8e548fc43e5", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters26-result26]": "893edaabbbef15dd82ea4d7adfc4ee0823662cb5f4228d309f6581c55fddb948", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters27-result27]": "95c56dfed6eac28056f3e0f9a72744746054dab8c6464e394fddc8e02a52419a", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters28-result28]": "922300183a293633305f22fe06646eeacbd4dfc13de9e0942fdec6af1af4e950", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters29-result29]": "845b6d7f9677affc69427df91d2f76a9c1f85abd62be8bd876d6b1ba49475d99", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters3-result3]": "3434a0c494cc67cb4f88f4d151a82f7c117a2e8129c9a1fe2912e5e5e8d26791", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters30-result30]": "ceb19b2580469417d84c1e9f509a718ece369eebee3abbc0b48ae0266b425b92", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters31-result31]": "5ffb55dd377b713a179c6dd08aabeee21a4f658c5f14dc8746b8d336d26b31ed", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters32-result32]": "dd3bf14d0b159d84a5a2890f92c149b9b73ed4194f5bbd30751dad308aeb767a", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters33-result33]": "8be64e55e61b724c8c6df3fbc609964032cd3374f200f1bc9dcb96d192c41deb", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters34-result34]": "f6550b74e974979d69c603e385892dd833359968f37d086d93213b83902749e5", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters35-result35]": "9ce85a63f5e0ad207ce40c7a80e5c6edc02dfc052ab89d822d15f661b664b3f8", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters36-result36]": "8480f18151cf59e13f8056cb56696317e9d2d1fb4d35ef5be73609cea3da4243", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters4-result4]": "6c268cdef12031b1ddf9958704400aa25152fec7d8b329de6f49f8492b18965a", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters5-result5]": "d23f7d49050cd0813670156f0601cf598530a47014afe73173a211ab0682654d", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters6-result6]": "119df6a38c2996d16fa70f83e66f6d5b9cfc30039fd225246b1daf6070eae914", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters7-result7]": "739816be294d531aa840d056d3c89798e04ab70d8d88b6d3785029d27d4cfee0", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters8-result8]": "84243829b1c5a6eb64ba5891c45da1aef9277d90d131ab000346b995f6cfbe9b", +"TT_cardano-test_address_public_key.py::test_cardano_get_address[parameters9-result9]": "79f4814df5fe0ad625637312848d21fc9a992863f6046de37b3518b62dbb3845", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-derivation]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[icarus-trezor-derivation]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[ledger-derivation]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters0-result0]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters1-result1]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters10-result10]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters11-result11]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters12-result12]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters13-result13]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters14-result14]": "a35eaab05906892d0a0ba2eb33f74107803e80bb4176c8dc611c9cef5af88344", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters15-result15]": "a35eaab05906892d0a0ba2eb33f74107803e80bb4176c8dc611c9cef5af88344", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters16-result16]": "a35eaab05906892d0a0ba2eb33f74107803e80bb4176c8dc611c9cef5af88344", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters2-result2]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters3-result3]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters4-result4]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters5-result5]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters6-result6]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters7-result7]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters8-result8]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_address_public_key.py::test_cardano_get_public_key[parameters9-result9]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_cardano-test_derivations.py::test_bad_session": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.ICA-3b0af713": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.ICARUS]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_cardano-test_derivations.py::test_derivation_irrelevant_on_slip39[CardanoDerivationType.LEDGER]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_cardano-test_derivations.py::test_ledger_available_always": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script]": "49604458b3b87f38ffcc46d38328523ddd05a7f3d49dbd7e799124d905fdaaba", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-aae1e6c3": "09f68be71ee7e43fac666f4c94fb6fb9cee7b68f0a48baf6c420f4b594ec138c", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[all_script_cont-e4ca0ea5": "94fced3d548783272efb947b82ee13a6e9add6dd9d62dece563cda06bf3a9547", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script]": "a9e04840e11c414de228468716f4130e50eddbf95c89ffbbb9bcc3f9d4269e92", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[any_script_with-f2466a2e": "9d2411cbd58cb849172c2390f3f1392ddd8fcc47142fe143d2fe773e41191d19", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_before_script]": "7912059adafe24613dd6c5b75f9bc43056c9d1ca6dfb00264b90a8729c96e072", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[invalid_hereaft-d01d7292": "4f7e16ae0f5b72067c6a2ef40c28a22add6422c3c74cf9aaa2058ee00cf90e38", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script]": "20740aa15f2d89df34f6ab3507517d649d69a0212874c2c8a1ec61866b020221", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[n_of_k_script_c-d93f5fb0": "3422cf4854ef7b892de5e53d4a372fa239f3192c99f07b5ae0894132e6aadfe6", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script]": "ef780268717946ba2367073ace2470ad2c421f5e0b9f49c923fd0c59fd66ae85", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[nested_script_w-789238e6": "9f96a8ba997875aaf73778c8b87fc16f4de3f87e82138b7de8ab7d58a64314ef", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script]": "b9fbd293e3d49d40dcbfd03bf11eb961acd03b9e8d76cca40ef42946ffac0acc", +"TT_cardano-test_get_native_script_hash.py::test_cardano_get_native_script_hash[pub_key_script_-1579fe2a": "64d69ecd43a942401127a0894bb0b7990997a0302829448b9bf4e7f6269911fd", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[byron_to_shelley_transfer]": "cc814dd371bfb807e3bf2afecba1927fd4e738d2575e98c5e2103b3d292fcaea", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change0]": "f5029026ff504e03266d7ed87571e69794b941e387fe31497b9143ce77bed81f", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_change1]": "e8326d8e081e62ff5558149256923c4bd998f4995b2c3bcd5d2e60c3d4f2d5ed", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_with_multiple_inputs]": "29d0b4131588d173f8a82cdd18979222ac53aab3b7096d0bb51e54dcd39469f0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change0]": "29d0b4131588d173f8a82cdd18979222ac53aab3b7096d0bb51e54dcd39469f0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mainnet_transaction_without_change1]": "13588f347d536c1efe0d60aaf8d03be783ff62ecc62357f93d14cd056d452f37", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_different_policies_-1dbb1bfb": "c0412677aa5fde5919cfd516a784dedd5a36a25f4693fce62905262c3cc3799e", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_multiasset_output]": "55ada341d1a6e795462b30220b235356bb2080b9b193efb9a0734f9ecb63de43", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[mary_era_transaction_with_no_ttl-validity_start]": "e3dddd0e9c2c17b4c4c3747a76f929e4765844b9d5b53c4ae69f408258a7661f", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_a_required_signer]": "0c287475252492051549ce0b96d1247f163f63b90d19e5203ae7d075eef4fb97", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_most_elements_fille-29691455": "a644f13091c541c94c67029df4b96f02db9d13269b7e5b03209563eb591f3ac5", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_output_datum_hash]": "ca2479e6246c8df5a8bbe1e14bb8028a8990ae1618fa79181ef51aa0b6e3ad8c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_script_data_hash]": "3d5dd593126f8bc820a82f8bc9ca539947cbffb39840a56c233bae1fcf18840c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistratio-1ab28f77": "2608f0241fa9f09af928b34d4500986e92edb880890f77869f4c6a57de4dde35", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_deregistration]": "2608f0241fa9f09af928b34d4500986e92edb880890f77869f4c6a57de4dde35", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-a144c34c": "e5a39189381f1eeeb5b060fcc20fa0452f0c95432cd3ec4b83f9fa6428072e6e", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_stake_registration_-bf5f9707": "b0408c611e2a2fae945fc2fb02fc082c99aa5b8c267f7abfe92fb3d22acc6fce", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[multisig_transaction_with_token_minting]": "effc768fd09d040d0f808eb074fccebaf798a40b32b45a0da5f6b15d3eb271f9", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_a_required_signer]": "76b5e07db73b2a5fbafd59da0a68bcb573b53bc2d27b68318223812bc1abb1ed", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_both_output_formats]": "55f07035ddacbea1b022154f17f1f72867569e4b5c8457dc2258ec120e7dd421", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_inline_datum,_refer-d1082570": "d7b2e8ab7d54b4d0754dfa677afae90fb11231c231727a0e5ac2431f00f3e351", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_long_inline_datum,_-1f681aaa": "32a238145073e393b0f2f8568f1f05989529ab4a548b791354e239d2f7188048", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_multiple_correctly_-6545455a": "3df05231998e90af33a35415250b22b7298fa7a2b00b365895844503d8f930df", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_network_id_included-d9df16f9": "29d0b4131588d173f8a82cdd18979222ac53aab3b7096d0bb51e54dcd39469f0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash]": "d7b2e8ab7d54b4d0754dfa677afae90fb11231c231727a0e5ac2431f00f3e351", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_output_datum_hash_a-84ad587a": "32a238145073e393b0f2f8568f1f05989529ab4a548b791354e239d2f7188048", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_address_but_-b0da7209": "762b7a5146798c16e29e8a9bb75db96732834bedec26db8e84b4324f5ab8ddbf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_script_data_hash]": "76b5e07db73b2a5fbafd59da0a68bcb573b53bc2d27b68318223812bc1abb1ed", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[ordinary_transaction_with_token_minting]": "1890053fbee954d7360d98290d98e8b70834e7b1b4aa7b5f932a94c0a85236d5", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_an_ordinary_input]": "0f61e0d4c9b0860e0a4ce7bed55b59975f91170b31a865d5ce826d99c2916e1c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a33e6741": "80b0efd9441efb18fa25f2f7c918d55d837d5bfaa54b3cae70f897299d77c8dd", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_address_device-o-a6481374": "e1042cc2f908d42e4f40eb8f44f5896e69005ff5cf399a0a3e4602005f079010", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_base_key_script_addre-d3366a63": "e059086c88139341fb6f0cc1bf28465f6f7f7889ec9a3e16b91ee9a17840dcd0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_device-owned_collater-8f38b4d7": "ef0519ee4186bc2c7695e1c32d1cf987412dd7f5992f594f4abaaf7772f7a615", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_external_collateral_return]": "61f0e9af6eeb749c2821de06f21e3c2484ed366128b7ebaf42df4321f476a8a8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_output_datum_hash]": "e538cb50de6105fd0169e4a1ea7c3d5c2b12c48d13d8926c18960e989cf13eb9", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_reference_input]": "beb2ddab6de602de2f0d0cdfacdb2c283fea49cc033d3d5eb892022c6c24d041", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-6a67c1eb": "8a91b886140ac815dd677818a54ca90898906dcd6ff62cec85024067eaf3053c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_credentials_giv-72ef969e": "8bbb8a35bf0ce108eaddaa9282dd928d23860c359129bd5cc4af0dd1cdff48dc", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration]": "1ffdce2fd515e450f992a5095a70e92dad932abf3adcbaca4c8d4d333b5d3d58", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_deregistration_-78f5c748": "d9afbbb1d8c68485ef25f2a0ebe95ce2dbe4ee6a626fb1301c5cacdac77de5e1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_an-4da9385a": "36c61bf738060379a96f021bddff20424231625b90643db6e068ba7d0adb1f29", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_stake_registration_ce-46b0a250": "5eee42c1c56ce777d91e3de49033abdd04b7a5153dfea2046cb1333c49068c43", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_token_minting]": "581744b911a1576d21fe904f79246f4c4e431edc4f491c7a8ac188ca802499a6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral]": "17aab7d723a0871690f25067e67bbecce04e53e988cc9cb928669497860d951f", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-3f0b305a": "0ce03708aeb9d87b892e1caf2042ae01e66b9cfd022ce9ab6c6e1fc60a736afc", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_with_total_collateral_and_-c92d773b": "5ce0033c0e6f8f36adaafb052e06e5607b263e9e7b658273abf2d8789102f986", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[plutus_transaction_without_script_data_hash_a-9590827f": "39c3bbb15bf6b04a8dc75529576d1093dd8e2778358b9c0809562f645457d23e", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate]": "62b831912e3f38c26bdec456740f01a6ea76fa240e87129ee5824d3209990aec", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-336f4a44": "62b831912e3f38c26bdec456740f01a6ea76fa240e87129ee5824d3209990aec", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_certificate_wi-d3427614": "75d66a42f38e4c477487f7c9cc4362730c63e608ef1b27d04c3cb3a99079d1dd", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[sample_stake_pool_registration_with_zero_margin]": "93ec13bdaf2a707bb846a209b05a1a939dde8c5c3b37c4083c17bb021322ff2d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction]": "83da12e138d8f300c989ac3857007514e88b8a7aa5c981c4d9208e6aa443d497", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_additional_wit-36ba8ce8": "7c948ef1ef4bc910689c995edd86b7947bc96794b84edc8bce6357a326b1e2ce", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_plutus_transaction_with_required_signers]": "e3dfcce3dab011cb52ad161ee04be00b51061a5f97e55494624ea9a78a7d9a0a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-0c37e6dc": "4500f47f4b0edf078191a287ca8edd1afa67d98c2fbe36d038c2f5590634fbcf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_o-7f1d12f6": "aca7731f6ca4a4da0594da9124382c7bd6421c85732ffbbfa9fed33dd17d04b4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_address_change_output]": "76b5e07db73b2a5fbafd59da0a68bcb573b53bc2d27b68318223812bc1abb1ed", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_base_script_address_a-56fc16f7": "884ecb83ae0e382eed3de74b86e5beb009a2505b5633a8a96bea275b06f0d88c", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_enterprise_address_ch-15518a4c": "012e44071968574a42c9a0ebbde086305327a99da632c4bc032e256028a18daa", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[simple_transaction_with_pointer_address_change_output]": "3043e91528f67fc6ed53d55ce8d950047c578b1eb7421f50ab363ef247635590", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_certificate_with_no_p-0bbad967": "9ef0023585a29b2d5df67db81771ffd7678809f8d8ddc8c1ac7b458c4344dff5", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[stake_pool_registration_on_testnet]": "4c8f00f85b53bd4951b9104105bcc23f4501b4bdfe8184dcfd4ad87b963ce6b0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction0]": "43baf7461ab2853c0552a514f55e49d23efa2dff56999ced6fa3787724aa2ba8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[testnet_transaction1]": "a3d74b5fd62ec56805d5e1a8cc1cab4cfe9e44f250df5a4d3774a88dc920f052", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_auxiliary_data_hash]": "76b5e07db73b2a5fbafd59da0a68bcb573b53bc2d27b68318223812bc1abb1ed", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_p-3c7243e1": "fdade80af23d9da945ebc5b04876c279f3ea65a2f39c51df1c9e72f15f2ac068", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_base_address_change_output_s-20438873": "209d21981953ec98948ce26b6fa38f72bd9e8a3b63cfaf0ffb099e4391d7974e", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip15_governance_registration]": "b0939305ce716649c323c23a542fe93a546ed4b306d06d1418eab52752572c9e", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-35e04232": "5617684b2e1db7dbd1c3f0d63c488551cccf59273139821bb643af8f3ccf8fd4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_cip36_governance_registratio-f00c1b65": "b4979e2b6d4685c8ceefd99efecb6c720bd3b5f6e23561772aa99300837a30a1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_everything_set_except_pool_r-1e1ef130": "586909cd92e3469ee9c99c06ad04062843bce4b68b2050f23fe57aad24643255", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration]": "aa8bd9f0bab1452d6326eca3b4a1f6c083fdc77975efe02a4aa17dc8853405e4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_and_withdrawal]": "aa8bd9f0bab1452d6326eca3b4a1f6c083fdc77975efe02a4aa17dc8853405e4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_deregistration_with_ac-9ca046f0": "00caed63fc846ea409f497a8761efb4f73f006761b4f745e7d831dd014b39229", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_and_stake-3fdfc583": "dc54ede58c13cf0cada619da12db86df7f4d9ec1c7279200eda83f530d552da1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certifica-e7bd462a": "b5f20211529016d5ff4b88088df7be36b6bdb36c3e507e42a32df59549c45bf3", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_stake_registration_certificate]": "0eae1bd883963bb0cfe00a27d1408dea10d6d5a4711c8f4988870216ecb3a537", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_ttl_equal_to_0]": "88455969e0e897db2c62df0ec48f73f636232a34b819c6d23a8c559890265065", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx[transaction_with_validity_interval_start_equal_to_0]": "0aef8bbb89592b6f733ca7e3f6955e928fe51b4bcd6b2dbbc654f0470e5046ac", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_change_output_path_in_ordinary_tr-805f9bd0": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[1854_input_path_in_ordinary_transaction]": "29d0b4131588d173f8a82cdd18979222ac53aab3b7096d0bb51e54dcd39469f0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[additional_witness_requests_in_ordinar-9c4f94c0": "29d0b4131588d173f8a82cdd18979222ac53aab3b7096d0bb51e54dcd39469f0", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[all_tx_inputs_must_be_external_(without_path)]": "ebeeae10798481c37766262bb6e33f3ef7c289609b67a79ea1a173d1dc257ebc", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_mint_token_group_in_wrong_order]": "4e10d5434c122c6365dd418a32ce3701a638df8b037780584b52e54918f234b6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[asset_names_in_multiasset_token_group_-7c1351bc": "2d37479995f54ab2c7a1d26233dac28976eefa05a89cd1ac5dc811466daa9546", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[auxiliary_data_hash_has_incorrect_length]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[both_datum_hash_and_inline_datum_present]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_input_accoun-863fee7d": "cc814dd371bfb807e3bf2afecba1927fd4e738d2575e98c5e2103b3d292fcaea", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[byron_to_shelley_transfer_output_accou-5a99fb35": "e3dddd0e9c2c17b4c4c3747a76f929e4765844b9d5b53c4ae69f408258a7661f", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_key_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_both_path_and_script_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_invalid_pool_size]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_key_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_multisig_path]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_non_staking_path]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[certificate_has_script_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_stake_deregistration-e17db500": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_and_withdrawal_account_mismatch]": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_path_larger_than_100]": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_staking_path_larger_than_100]": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[change_output_with_script_in_payment_part]": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_is_present]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_input_prev_hash_has_incorre-99d2dc0e": "1709c672f3620f54c8b2069cad0decb73f88f56a607435bad794af08a8d4f62a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_is_present]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_datum_hash]": "5d13e90a5b710581f5d108ae9d12fa8fc2cc2257eb46964397e4207d31692722", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[collateral_return_with_script_address]": "5d13e90a5b710581f5d108ae9d12fa8fc2cc2257eb46964397e4207d31692722", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_a_different_certificate]": "01582a649c3912eb6d16b77f2a0d118733bb1aa40d0ed2c8ba7b99450f2cdef4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_multiple_pool_registration_ce-3000d4f0": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[contains_withdrawal]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[fee_is_too_high]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[inline_datum_present_in_output_with_le-43c025ef": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_change_output_account_mismatch]": "48aed70953697792c88de9384f522136e91c1c7776894cd4b0f602a069b06f6a", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_stake_deregistration_certifi-b3383de2": "6d80a5b4ab9da5566695b06cf881258c07fe67f77e35a2695242ba69cc657de8", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_and_withdrawal_account_mismatch]": "76b5e07db73b2a5fbafd59da0a68bcb573b53bc2d27b68318223812bc1abb1ed", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[input_prev_hash_has_incorrect_length]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[invalid_pool_id]": "01582a649c3912eb6d16b77f2a0d118733bb1aa40d0ed2c8ba7b99450f2cdef4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_protocol_magic_with_testnet_network_id]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[mainnet_transaction_with_testnet_output]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[margin_higher_than_1]": "01582a649c3912eb6d16b77f2a0d118733bb1aa40d0ed2c8ba7b99450f2cdef4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[missing_owner_with_path]": "9884f332efbc6181e1135835d954d6fd9298b53cfb46c5b2e97be9da02d1f8c2", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_1852_multisi-b7679330": "475e1226f3758f434d8adbec551b3984d452db05717bcec8036aca4ce83796f1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_a_collateral_input]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_collateral_return]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_long_token_m-9fb3cfe5": "25dfbc6007872462155b93d942f7c80aa4aa547096c2ca2e15e5d70bdf71d3e1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_output_conta-e3b36436": "190e04a58730ba2c6dee6620cbd55cf25e0b950252457db06e0b2891692ccf5f", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_reference_input]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_repeated_withdrawal]": "d048b8ace3b7e1c58aa0b337f89437227621df9695e4e195660c5644232fa417", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-19d1722c": "9f3de00426d0b19931d7e7bc607b5738b2f4d0d2dc696e51c80dd133ab550fad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_delega-394991f1": "9f3de00426d0b19931d7e7bc607b5738b2f4d0d2dc696e51c80dd133ab550fad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-351ce869": "9f3de00426d0b19931d7e7bc607b5738b2f4d0d2dc696e51c80dd133ab550fad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_deregi-43da91d4": "9f3de00426d0b19931d7e7bc607b5738b2f4d0d2dc696e51c80dd133ab550fad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-456f1292": "9f3de00426d0b19931d7e7bc607b5738b2f4d0d2dc696e51c80dd133ab550fad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_stake_regist-84b1254e": "9f3de00426d0b19931d7e7bc607b5738b2f4d0d2dc696e51c80dd133ab550fad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_total_collateral]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-9f7e1700": "d048b8ace3b7e1c58aa0b337f89437227621df9695e4e195660c5644232fa417", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_withdrawal_c-e98b1f5c": "d048b8ace3b7e1c58aa0b337f89437227621df9695e4e195660c5644232fa417", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_with_wthdrawal_ad-3291ee9e": "d048b8ace3b7e1c58aa0b337f89437227621df9695e4e195660c5644232fa417", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[multisig_transaction_without_minting_b-da5ba399": "475e1226f3758f434d8adbec551b3984d452db05717bcec8036aca4ce83796f1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_long_token_m-350c65f4": "fbf091392927d808480906528edd86c180358cf2899dbe716697e26adad6a9b3", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_with_token_mintin-bc56f145": "c7e188d694fd90c1d9ce398d13458cf3fb2387be65c5947fc691e17d2ce29c60", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[ordinary_transaction_without_token_min-a128d577": "226a1cc335d82d65196fe047563ddda88d770d1fe5f733e1096f2438b6528de7", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_has_invalid_crc]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_a_valid_cbor_but_inv-ea3da215": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_invalid_cbor]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_long]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_address_is_too_short]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_datum_hash_has_incorrect_length]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_has_both_address_and_address_pa-2efc280f": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_total_is_too_high]": "a38d4a7789e2f335fc1677829b353dabb6e4494600637416d088dd626fda45b1", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[output_with_reward_address]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[plutus_transaction_with_output_contain-74465253": "447d1a645770d1d61cd9304825a9fb04645d625fb7d40ba6422fb85507d3fd68", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_mint_in_wrong_order]": "d424f84873658deef562e5c9f3c792f36aa110d80a1b1acc1c414b146dedc29e", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[policyids_in_multiasset_output_in_wrong_order]": "c605a7844267646a2b7a577b177f81ef4d2abc989deb3ea0b207c78fc53ac079", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_belongs_to_differe-e79b6855": "01582a649c3912eb6d16b77f2a0d118733bb1aa40d0ed2c8ba7b99450f2cdef4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[pool_reward_address_is_a_base_address]": "01582a649c3912eb6d16b77f2a0d118733bb1aa40d0ed2c8ba7b99450f2cdef4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[reference_input_is_present]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_mint_token_group]": "480cb2d51403cde5d8b8b1cf4787c8e76100234e09358ca36eb7b2790e180c6b", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_asset_name_in_multiasset_token_group]": "0840e7e2a4fd31d58aa811b74b2b2c00d5538c97082d97e394360242efe23ee3", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_mint]": "e270793e7a76b2846c8332e4e662fd993f550d08b935541f2a4631a72f447cbe", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[repeated_policyid_in_multiasset_output]": "d901ca33aa4fa2cf864be76a8c0e299fc1528dd6745d1f4ab55b18197196c210", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[required_signer_with_both_key_path_and-7d9a3c59": "5d13e90a5b710581f5d108ae9d12fa8fc2cc2257eb46964397e4207d31692722", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-02b129f8": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-11c8b442": "62b831912e3f38c26bdec456740f01a6ea76fa240e87129ee5824d3209990aec", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-2d1899d5": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-3f8170f6": "62b831912e3f38c26bdec456740f01a6ea76fa240e87129ee5824d3209990aec", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-60961d51": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-790fc948": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-883e81d5": "344fba027b3f0bd4a1cb4630f1eb0be1f9bc4856f93685fec04d0240a7686307", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-9ae6620c": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-d0eba163": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e7a533e7": "01582a649c3912eb6d16b77f2a0d118733bb1aa40d0ed2c8ba7b99450f2cdef4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-e908b1a8": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[sample_stake_pool_registration_certifi-f9976ae8": "01582a649c3912eb6d16b77f2a0d118733bb1aa40d0ed2c8ba7b99450f2cdef4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[script_data_hash_has_incorrect_length]": "976777e23d39b0ce653cbab7dfb7f87b824e414b930bd594c704af2cb7b43a93", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_mainnet_transaction_with_testn-af110e3e": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[shelley_testnet_transaction_with_mainn-ba78ab8f": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_account_larger_than_100]": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[stake_deregistration_certificate_and_w-003a1023": "595cd9af11cbc6c1a464a80c41e8b35659b4fb4a84b0134dc2730625597abab9", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_protocol_magic_with_mainnet_network_id]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[testnet_transaction_with_mainnet_output]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[total_collateral_is_present]": "e5b8f2de7ef002a36cd8d084e4014a3dfff434fb4c4ed57078346ff7f87d9d81", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_auxiliary_data_b-d83df998": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_both_voting_public_ke-0ded7777": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[transaction_with_governance_registrati-efb78b43": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[two_owners_with_path]": "b6224bef0b5f122e4d730e9444785f1ddbe2c57af79ce1e8854107deb63ab759", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[unsupported_address_type]": "9aff42c88eeb4f689978f87cb33ff3ddf6678941b8ea275ee7593f7e1faedbde", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_multisig_transaction_signing_mode]": "9f3de00426d0b19931d7e7bc607b5738b2f4d0d2dc696e51c80dd133ab550fad", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_ordinary_transaction_signing_mode]": "617fb5575799f6d6a7ef35525f12d8a148be9987e21b4e925836b41413c471bf", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[with_plutus_transaction_signing_mode]": "63d90541736c50e4db223929404c4c900ac52773fb57f2665b6b07871a527604", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_amount_is_too_large]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_key_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_contains_both_path_and_script_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_key_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_multisig_path]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_non_staking_path]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_failed[withdrawal_has_script_hash]": "3fed43e80fb8cb2f2b468035b85c9f5172902c37087fd1c4dea002cfba382fb6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[mainnet_transaction_without_change]": "249cf7c7e9293ec1e970aeb7fd6f1188f196da37240bef1422a73e9fce7a5ad4", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[multisig_transaction_with_a_requ-c2fba589": "aaf5df58c7b9825440ec0a8b78ba506f3f09fbe857dc67e43990c646aace0f58", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_a_requ-9728607e": "bc76843298ab33d3cfd2946252abc66abfac608db10cf19cbfe43b8d239be05d", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_long_i-708443f3": "59b10e87c3bd2c97283c96863b154c1f242eb0a569a413ccff7941d217104158", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[ordinary_transaction_with_output-9ba7352d": "3d7aa3d3495adcce9f64f313d72ab603ee3b25817f72ebb0ca96d0169ca73800", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_reference_input]": "e008f928074a083b23e91fde89f9b53b49ea19870199229a1cd403644181cde6", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[plutus_transaction_with_total_co-e846c221": "1b1eb2602b1e6d7e0dfe15e22ce7cd3b16ccd41372e88f189aa5fd1631b547cb", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_cip36_governanc-36bf9253": "fae55547740e58526335381e6cecf83c16f7992f405deebdce94ef3745d5d7be", +"TT_cardano-test_sign_tx.py::test_cardano_sign_tx_show_details[transaction_with_stake_deregistr-6e84da2f": "4d5905d7446c1088e27c31a81366aaaa1222345945fd1fa066190a3ac21b24e5", +"TT_eos-test_get_public_key.py::test_eos_get_public_key": "1ae52c69bf8f5d6ded30b23b07ac1dddf4f5b5491d3b528fd51938c6f994ee55", +"TT_eos-test_signtx.py::test_eos_signtx_buyram": "750b2ac05bb2ca372e886965bf9dcf9dfa5590f45f647bfbac1c619ce8b3a68b", +"TT_eos-test_signtx.py::test_eos_signtx_buyrambytes": "7a90ba5b3b3ed6524695ee58e2f31cd37dc69ebeff82e6a0f043b3ceaee5e898", +"TT_eos-test_signtx.py::test_eos_signtx_delegate": "10de3306a9ed77369a349f647f9e4b9805e09513bca6512ab3362fad481333dd", +"TT_eos-test_signtx.py::test_eos_signtx_deleteauth": "62889798aa1d566015b9ffca8862a1cfec28919abcaddf7e52b3d3906faac4bd", +"TT_eos-test_signtx.py::test_eos_signtx_linkauth": "6483922b39cf6ee94f91b0ae219cd8b89f28acac09229ab6764c1f0a1cad2363", +"TT_eos-test_signtx.py::test_eos_signtx_newaccount": "732f6ef72996e1d62a3e9f9ea3fdd83c9ba1b6707afa79d46fbfa4632137db6a", +"TT_eos-test_signtx.py::test_eos_signtx_refund": "458405d407d1ee092fc56458444a4abb46a26cc069faea5c25412b7cd938037e", +"TT_eos-test_signtx.py::test_eos_signtx_sellram": "88a6939b14835ae92320fa2f8314608e98f2bf1c00e925c16725d6b58b9fc470", +"TT_eos-test_signtx.py::test_eos_signtx_setcontract": "d421933686183bc1306b8134accd9393f223a215adf4a899e6d38c59ae26ee3a", +"TT_eos-test_signtx.py::test_eos_signtx_transfer_token": "72d6e628a90bff66516b4776f64c3b868dcc187d978d2bac0412051ad4b6cfc4", +"TT_eos-test_signtx.py::test_eos_signtx_undelegate": "0061585cfe23fd1f3ed7cd0914543b320430837c81be1f7560781547c0bf813c", +"TT_eos-test_signtx.py::test_eos_signtx_unknown": "0de49ab6dd2e918fa2b69c3236f7b2767aab29e9f82ef5210052bde65d98f383", +"TT_eos-test_signtx.py::test_eos_signtx_unlinkauth": "d865fa3f7c08fbc43632e77ca9d84dce2c6f7cb85d3676d75ff58420b59659ab", +"TT_eos-test_signtx.py::test_eos_signtx_updateauth": "84c7882bef870512537097c3330e1ef14665ce80d28e888283ee3e122ca0bf54", +"TT_eos-test_signtx.py::test_eos_signtx_vote": "c60c330edb40ac6dd2c0d40b1cbdf7fd9c03c51e4ad243c3776b07bd77007f57", +"TT_eos-test_signtx.py::test_eos_signtx_vote_proxy": "f648146a2755437bc2fe5fd0e2a53d381316a85d75f39f6dfa9b6adc9c76b829", +"TT_ethereum-test_getaddress.py::test_getaddress[ETC]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getaddress.py::test_getaddress[GoChain]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getaddress.py::test_getaddress[Ledger Live legacy path]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getaddress.py::test_getaddress[Wanchain]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters0-result0]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters1-result1]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters2-result2]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getaddress.py::test_getaddress[parameters3-result3]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[Ledger Live legacy path]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters0-result0]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters1-result1]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_getpublickey.py::test_ethereum_getpublickey[parameters2-result2]": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[array_of_structs]": "b36752afa7b5c14a924af1dcf7f3a3aa71e31ac979170bd6b34e110a6679c69b", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[bare_minimum]": "004a62518d42015a98fd250e7b55e28b695de689f48133406ba23262f6c8bb5c", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[basic_data]": "e9da8ee8b66029ef3a496125d89f8d0a206d53ee0eb9d2cec03923c5e46b543c", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[complex_data]": "6fc66270da0100317b563415e411c42b2dd8e16478a09ba4d907b9a6e45316e8", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[full_domain_empty_message]": "9afcf48978782dd150589d95116d96d0087145be3d4145eaf1012963fd76fa87", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[injective_testcase]": "ba7832596bc855b4ac82ebd4a5e6b139cd67939ce36030b26eb853117613465c", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_non_v4]": "e9da8ee8b66029ef3a496125d89f8d0a206d53ee0eb9d2cec03923c5e46b543c", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[struct_list_v4]": "e9da8ee8b66029ef3a496125d89f8d0a206d53ee0eb9d2cec03923c5e46b543c", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data[structs_arrays_v4]": "e9da8ee8b66029ef3a496125d89f8d0a206d53ee0eb9d2cec03923c5e46b543c", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data_cancel": "235da2ec1fd5b98e511e39841e0d6a9bcca68bcabff5b1f98875b74b6f183195", +"TT_ethereum-test_sign_typed_data.py::test_ethereum_sign_typed_data_show_more_button": "8ec2b388649f24cda4fe4222ac94d2a5f819ccb84bfa3508d3fcd157df61229f", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters0-result0]": "eb132cf1874910be4ebe4f19209b5d09da5cefefbd5151d796e2dd63f139232a", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters1-result1]": "f123d3b95e3e76fe15dbd88d67bbf4bba249b4017ce9f81ebad2f4d501a2a618", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters2-result2]": "fbbbaffe08edf05f2cbbb513b736c594e71ad3c160bfef096a91bcc4995f6abb", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters3-result3]": "d6c0787922e9ced70f6dc44e59c8804ae609175b582f6c7ab1d1f218cfe8fce9", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters4-result4]": "81bb448b6c13ed362721b04f7ee6ef1186f3e05026a5f6513e9eba6c1fad094a", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters5-result5]": "3f492aede4e32e94b18e1ccf53fabea77cf46e02106ae51f9d4b1962de6e2cad", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters6-result6]": "9a49c2e811351a2b5ba4972ef28717ba49671087aba60a491835fcee0d7953d0", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters7-result7]": "a7f60a43462c46724e9a94a356022863db0fa546432be27d3f1d2bf6757788c8", +"TT_ethereum-test_sign_verify_message.py::test_signmessage[parameters8-result8]": "3c4e13adb03cd3be24bc490e11f7435d37a06f4dc05d0460a67476e55a9b48b5", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters0-result0]": "cca7b0b22ab74391be8b5af3a45f33d5ff426a8f9c1f3858bad6d614b1da074d", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters1-result1]": "e2e5d06d15a5277c49940c9b2b36d4c4854dde42ec8cd6ce645d8b5122302e56", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters2-result2]": "36b1927bbde5392b8da6d3af96271f0a40fefadfcb869b344c7d23d8fa9fd53e", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters3-result3]": "c0f2f439a2b112f6a78cd6790ee465bae4fb542596eef8d1f617883f4390d612", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters4-result4]": "bf3c6d1c7f21f498c85dd27405e609a18e5c5d59a5f6242335c0c916bd4d09b0", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters5-result5]": "4cf4d685b1f8d67da214000f15de3fbbf90ee6f2923eaa28d893dbed357f5319", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters6-result6]": "dbc5ebd4e4761123385156bbbed0d4fffd5efff2da2c18dc1e65b487d1adc88c", +"TT_ethereum-test_sign_verify_message.py::test_verify[parameters7-result7]": "b549108ef7b0b93f197b063016fd8e808c89e49fb5901c8664cd653d820a88da", +"TT_ethereum-test_sign_verify_message.py::test_verify_invalid": "cca7b0b22ab74391be8b5af3a45f33d5ff426a8f9c1f3858bad6d614b1da074d", +"TT_ethereum-test_signtx.py::test_data_streaming": "e62485acbfb5f6c7d72df1d2caf4057f0b5df448ccbe5a2c881ea7b3d9f1634d", +"TT_ethereum-test_signtx.py::test_sanity_checks": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_ethereum-test_signtx.py::test_sanity_checks_eip1559": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_ethereum-test_signtx.py::test_signtx[Auxilium]": "26485927730a69e215ce163b46f08886762e389e8ce72dad5f65ba21ae554d08", +"TT_ethereum-test_signtx.py::test_signtx[ETC]": "2a6028d3b94229cd25d3007d0794f52820aa1ad063d764e4abe180c5ee39675a", +"TT_ethereum-test_signtx.py::test_signtx[Ethereum]": "a77b40c0236cd1dde448aaff6b34f47f737e5e4e2c012600e2b516470824d938", +"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path0]": "b2b0bb8fdd6d1cdc839d366bc8d128b88c12257a037b6c4c3ca8177b851fa0ff", +"TT_ethereum-test_signtx.py::test_signtx[Ledger Live legacy path1]": "a77b40c0236cd1dde448aaff6b34f47f737e5e4e2c012600e2b516470824d938", +"TT_ethereum-test_signtx.py::test_signtx[Palm]": "4cbc6afeca0a289f3a512a127e2c64d9c5e50bae105dbed08d864cecb1b2c3ee", +"TT_ethereum-test_signtx.py::test_signtx[Pirl]": "b00502605a2fbf5208e376635d4d48e4486d0c38fac1caa2de075a36affb8518", +"TT_ethereum-test_signtx.py::test_signtx[Rinkeby]": "ffb12b987fc1ad2acf3da2caa803537019854150f26e46bc940ce98e652612fe", +"TT_ethereum-test_signtx.py::test_signtx[Ropsten]": "c5efaad3d0a2a67db985471d9f90cb3c86645041ada9220aee3217096c406da1", +"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_eth_path]": "0c589018beaf595c526c91b1c4b2d7ee07dc0a3a31685530d955a22129edf6d1", +"TT_ethereum-test_signtx.py::test_signtx[Unknown_chain_id_testnet_path]": "0c589018beaf595c526c91b1c4b2d7ee07dc0a3a31685530d955a22129edf6d1", +"TT_ethereum-test_signtx.py::test_signtx[data_1]": "ea6a8ac2fb0271e7410f5ead5fd7a3923483980fb2230badc18a88ba256a1043", +"TT_ethereum-test_signtx.py::test_signtx[data_2_bigdata]": "e2925b7c566ea9f256145ff50cd3baec80994d29824155722b887b777a71cb5e", +"TT_ethereum-test_signtx.py::test_signtx[known_erc20_token]": "b0d7aa25c1d455156688298a49121a8206aba63865a52c86ada0057de0b34a01", +"TT_ethereum-test_signtx.py::test_signtx[max_chain_id]": "0c589018beaf595c526c91b1c4b2d7ee07dc0a3a31685530d955a22129edf6d1", +"TT_ethereum-test_signtx.py::test_signtx[max_chain_plus_one]": "0c589018beaf595c526c91b1c4b2d7ee07dc0a3a31685530d955a22129edf6d1", +"TT_ethereum-test_signtx.py::test_signtx[max_uint64]": "0c589018beaf595c526c91b1c4b2d7ee07dc0a3a31685530d955a22129edf6d1", +"TT_ethereum-test_signtx.py::test_signtx[newcontract]": "8d20491d301502c47b9070bdfdaf63b70aa8fa80fb8c01c443a7429a08c9ea57", +"TT_ethereum-test_signtx.py::test_signtx[nodata_1]": "c4ae169faa500ed8eac882d858b0b83d222ac9a8e78cab123a8b945db788fdd3", +"TT_ethereum-test_signtx.py::test_signtx[nodata_2_bigvalue]": "92846168581c9c12e4e3239428c3f5677f4f1ff6bdf30ba894555188640287e4", +"TT_ethereum-test_signtx.py::test_signtx[unknown_erc20_token]": "0d4a6f9a6bd8b02c7c3c9281f4b9e6680c932b2bf7acd031bcc6852caabb273f", +"TT_ethereum-test_signtx.py::test_signtx[wanchain]": "e6319a5754825d1888b9caa89200ca2f6698d7da03669e38167a0b9426ed0919", +"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_go_back]": "cb6d2a60c192b972e2cff02c4f7a6396184ba1a46df3c05b947e089f94427f0f", +"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_scroll_down]": "861ad7ab30bc8ea6edcc8138e86c654d04f9231dfd14ec1ca391820f145f7e57", +"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_skip]": "a8310b52786197219e3fb8399b19e624bbb74370a080c410daecc7f7422ea9cf", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[Ledger Live legacy path]": "66b381da23a9f31f962115de7a8ae95d575eda72f665d2d65f00bead78cdab48", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_1]": "5165979cd94b31b68ca478f2f230ee1470c74e2cf0cc80d53fc0278c41f34d1f", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[data_2_bigdata]": "1da940fdb1d80374ebb1eb3922ab15bccf54eaec6ed40ce83834a93695fa1311", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[known_erc20]": "0e43071011c080f3a64130113914a03285f35c0e9c69379f6c94eda48dc9816f", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[large_chainid]": "c2fa2b3fe49f369b7cf1da456cdd08fc56d232155aa48232ef5ba965df9cafaa", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[nodata]": "66b381da23a9f31f962115de7a8ae95d575eda72f665d2d65f00bead78cdab48", +"TT_ethereum-test_signtx.py::test_signtx_eip1559[unknown_erc20]": "541822da15b3d11952c9329092d38ba363ca021a0193967e441a2feb59b771fb", +"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list": "e32e0029dedc39857f3d8eb31ce8cf7a06d32e6ca81df7d67586fce123df4f7d", +"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list_larger": "e32e0029dedc39857f3d8eb31ce8cf7a06d32e6ca81df7d67586fce123df4f7d", +"TT_misc-test_cosi.py::test_cosi_different_key": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_misc-test_cosi.py::test_cosi_nonce": "92799c53459f2a735a145bde35943967265d2411e766e5597d7f614f9ef1827c", +"TT_misc-test_cosi.py::test_cosi_pubkey": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_misc-test_cosi.py::test_cosi_sign1": "92799c53459f2a735a145bde35943967265d2411e766e5597d7f614f9ef1827c", +"TT_misc-test_cosi.py::test_cosi_sign2": "59071f9bac86b8666b28c53178fbe76249af0878a5d9eafe4b40ea7b63a2a9e7", +"TT_misc-test_cosi.py::test_cosi_sign3": "264dcf0ee58b1cc5a580ab5ab567a7450776c12002a87ea56c071b83a85bfc9c", +"TT_misc-test_msg_cipherkeyvalue.py::test_decrypt": "4e4eaf26e8f9cb7187049cb0d718e2ad3f2c5d83ab91b3d0ed3257f6271dfe5e", +"TT_misc-test_msg_cipherkeyvalue.py::test_decrypt_badlen": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_misc-test_msg_cipherkeyvalue.py::test_encrypt": "dcfe4d2f73405d8a08c006200e75fc84fd77af58e77cdc8a476933e69288868d", +"TT_misc-test_msg_cipherkeyvalue.py::test_encrypt_badlen": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_misc-test_msg_getecdhsessionkey.py::test_ecdh": "ebe2d05bf37d80f0fe14e83f7a1204b4579bad152633f67ff9189c0b13fe8868", +"TT_misc-test_msg_getentropy.py::test_entropy[128]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[129]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[16]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[17]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[1]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[20]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[21]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[256]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[257]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[32]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[33]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[3]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[4]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[512]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[513]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[5]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[64]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[65]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[8]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_getentropy.py::test_entropy[9]": "9fac30c679f618af8b094f688368455545105d7b432fde3e686da6f59914ceea", +"TT_misc-test_msg_signidentity.py::test_sign": "d65f89c11a143cec1b4b3964fe6aae093365077ac92816858b94a90038b8fe08", +"TT_monero-test_getaddress.py::test_monero_getaddress": "54303cfcb7b8b786634eebcb91d259d4770742827acbf6e74b17b3fbe1c65866", +"TT_monero-test_getwatchkey.py::test_monero_getwatchkey": "8ab0244bf2fb680b0adb321971b7ff45c0ddbd14a91d3528478c2cc50df3bcb1", +"TT_nem-test_getaddress.py::test_nem_getaddress": "caa19213ab56d490b22adce8ee0686676f5d730b82761d679c663010713dfd10", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation": "1cc17a0ad2d5fca77d056544ae24ef5d3fe9187c175e0aaf10be4738039ecbe8", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation_levy": "9a77433a277bdae17463dd3fd9c8aca93f91b5fa644d77f46fb1a656759b0381", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_creation_properties": "6f9481b1078250f65068866126e773f321d7eece04e420c02308746b3790068d", +"TT_nem-test_signtx_mosaics.py::test_nem_signtx_mosaic_supply_change": "ef58c71a2898259787868b40dc8ac964837b170a2565a7450cf56342ea537cfb", +"TT_nem-test_signtx_multisig.py::test_nem_signtx_aggregate_modification": "68a8f2c2456184207854633a9c74e903fa2e3406c4baaa35cd28a58bd48af342", +"TT_nem-test_signtx_multisig.py::test_nem_signtx_multisig": "a78303a1fa4caa6f0fa3fd5ecfe763ff4bcedbe77082f9623a8556e3e3534512", +"TT_nem-test_signtx_multisig.py::test_nem_signtx_multisig_signer": "71e7b6405e9a173094169618e2f7cca55c7ab8451f59e2e30b3915c7eac9982c", +"TT_nem-test_signtx_others.py::test_nem_signtx_importance_transfer": "a3dc39d3ae0e7dbd1d60b6845699bc0456f57e66f858a2cc94766b703e088f99", +"TT_nem-test_signtx_others.py::test_nem_signtx_provision_namespace": "691ec372b83a9fbf2ac48b57f9550d4e6cd7978c5c80cc3e66aeeae680d3948a", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_encrypted_payload": "b7c329975fd8808293dacf0b5d8b38368e1c21b6568edfc64892505af7d7cc1d", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_known_mosaic": "33e82d1ebdb920fde18c50e94e5e3b2c4f49cbe1762c19e1f087513b45cf7a21", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_known_mosaic_with_levy": "d765862aff2cd8c49e009c3480eec77e7bffcd48b7ae2684d1229c0b40807818", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_multiple_mosaics": "dfe67d6dce57d1df25fbaa4761af40c19d59677d0f69e3de2b7bcec0c9497a06", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_simple": "66c2e015c222a689a695b8e8af2b5039adc8bf00ccdcac633e5eddf5fb0cbe50", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_unknown_mosaic": "9ac4a2f43df080ed9729ac2929bfd72cdbe6b9405a4b9bc1d26b6d7d5455e5de", +"TT_nem-test_signtx_transfers.py::test_nem_signtx_xem_as_mosaic": "0deee5cd7b070fa65c3da1e888617c3cc4e1f544a13bf95d19766f5834c0f3e3", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[label-test]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[language-test]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[passphrase_protection-True]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[pin_protection-True]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_bad_parameters[u2f_counter-1]": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_dry_run": "3a05e306bd163cf748bf1ff64fa4fb9394688c0f6d8174b62fc19cb4fba42fb6", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_invalid_seed_core": "10ff7f89ac8b90b243aa432f43ecffa7ca394cf6f8acd65d0408b8cdb27354cd", +"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_seed_mismatch": "489efce4df13f3675171aabbdb45d9338ad24636bb03ad9c106f0e33d240427b", "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]": "1026ce67dd329048c2ce7c88cdaaed90c164cf6d49fb4f730ed97e843bb610a6", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced-bac-f67baa1c": "eed4e55650b7fd3a1fb1be2067910bb8c31049377608692c52dac833a7a6149a", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic-backup-6348e7fe": "005d7f70cac5f813040facd959cf1017f2c0a8c0679af12e571dc6ab377f417f", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "ad673f99ca0e17be01efc93836c03005e1b2c3829235a8a579396e5a8c836a68", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced-backup-dcbda5cf": "5fdc01e665654e77de7040d65406c92b47d9e698458e8f730a881939d310e744", -"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic-backup_fl-1577de4d": "ce1245792507b7f92561900cb800ff6e0ddf6a95f129c911d1b3c2e63ac38d9c", -"TT_reset_recovery-test_reset_bip39_t2.py::test_already_initialized": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", -"TT_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "0febe48e64f03c8ea31735eac4099cacb408516d3e537db29a772130cd2b20e0", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "6b3bbc8676a70a074a7d62bf7f9001b93f0755839dc56de11f4f22409d1aa1ce", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "b28ef5748a9360d483104b1404b4d677b878045db09f0cae013cd3d25258cd3b", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "1d442aa3d018c4dffc749566de16356bbaee67146f8a9de1ac7f8daa3f9ebf1f", -"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "31834fe49e6988ddfbf8cca220aecb6271aaa3721914c0bc854ad6a5f899d717", -"TT_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "e5a53714cef4f4fd69bfb30a53cc9d560e528c57a9aba4ead5f727458ec1234d", -"TT_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "968c451afbce1b7323fb28374446b89c549347b7ecc78e672653d619fc7a822a", -"TT_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "dfc6f83b7cb8bedcd796883060748017e221afec3b7324e77e33856c7e28bb94", -"TT_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "e50b93834692641ae99f3af8ab7ece3f35fd5c5e00f9a3700e9199f46a98749e", -"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "ebc7f32b929cb65367355f70c0758e6b0116402508a435d2f702590b131b892a", -"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "9450975c99307643997159f7ec4e2a63cf59811af7696ef581207a5e5e804aaa", -"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]": "22c1e97342f2be689442b6a577023f66476199113cb6b5ab4573f83ffdce3cc9", -"TT_stellar-test_stellar.py::test_get_address[parameters1-result1]": "0addffb097a0a88cc3ff8135c02aa1c27500718f0ef6ae7fdd166b6cb8d96da0", -"TT_stellar-test_stellar.py::test_get_address[parameters2-result2]": "b37c57b288a7d7ab775a186927e78230960c1b736667fc2a04654a2a8776859f", -"TT_stellar-test_stellar.py::test_get_address[parameters3-result3]": "02b282b1f198aaf16772d5f3430c4456fbdc1fb0889fb725a2d79ef88070c838", -"TT_stellar-test_stellar.py::test_get_address[parameters4-result4]": "eddb89a753164e3a07f2b74f51847dda64cd1808419187e7201122d5cc7f9c00", -"TT_stellar-test_stellar.py::test_get_address[parameters5-result5]": "d29e8378a8b95f3f87b31c9968653eb0f6099a4d9c0f26f3e36297ccd3fa4c59", -"TT_stellar-test_stellar.py::test_get_address[parameters6-result6]": "c11f75ab5431965e2f866a48be1f80721be446224dd0d054c2aee0535d11c64c", -"TT_stellar-test_stellar.py::test_get_address[parameters7-result7]": "c8e799156eded955a97a600cd861de75e4f6537dccaf80ef8ffc442734343ea8", -"TT_stellar-test_stellar.py::test_get_address[parameters8-result8]": "f9aa4f2921ce7845d689c5f565f0d8cf3921fcfe56ea48409bfe9dae7fcf783c", -"TT_stellar-test_stellar.py::test_get_address[parameters9-result9]": "2842b8333a134171e3ae46ab888eae3b2b6864df0896589303cc84fd460609a7", -"TT_stellar-test_stellar.py::test_sign_tx[StellarAccountMergeOp]": "60403d713f583ee0130299c6a6ea191007d835e5db7c269276e6cc13928e0800", -"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-allow]": "320ae3739b2cb8d9fa06850554482b2d98d3a0c5a1c7e6c0077fd11d1a13f9f6", -"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-revoke]": "a6e39d833dca648a2b480a8eec005566a76599548988d8596d4a822e0ce93c20", -"TT_stellar-test_stellar.py::test_sign_tx[StellarBumpSequenceOp]": "450156ac0a51bd79f02f4de2db52248bc8343fa5e798e4bf0c275d33958f87ff", -"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-add]": "ac412058c61b0e7a15d95cd4f71da8608c0cf64ec4a2e81ccacc31a0a4da7811", -"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-delete]": "a5e8333b8523120695f2b35b351d2816ecda3b713d4d8431223268fa2cc616bb", -"TT_stellar-test_stellar.py::test_sign_tx[StellarCreateAccountOp]": "08502280237490a03f0befbb75f949730f1419f043357c97ab599ab1c9fe8199", -"TT_stellar-test_stellar.py::test_sign_tx[StellarCreatePassiveSellOfferOp]": "38d966741a25e0db79bb6ec7b96821c07118abad4bf014331091ccca0da8a9ff", -"TT_stellar-test_stellar.py::test_sign_tx[StellarManageBuyOfferOp]": "94ad2fdb9b30ac69a620dcbea9eff0e58f914741d5d56add9e7540b4cf6e6295", -"TT_stellar-test_stellar.py::test_sign_tx[StellarManageDataOp]": "5a8b6d36c49cf3cee13b1c4c3f3971b47c5fdcd404579bea85ff2ffee129efa7", -"TT_stellar-test_stellar.py::test_sign_tx[StellarManageSellOfferOp]": "d96e4dfd5317c8d6582722cd3d8bebb6887e37d23b3a0339caf6d9c9435e716c", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictReceiveOp]": "0e8a408fde7d164d178b63d705bfb99e42462e6225c90dcea3cfd7979afeb8f0", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictSendOp]": "c5215008deea35df7018cabcde2d40ef4005b08258386fa14de40e846375ccc8", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset12]": "b161adc0b8fdce588df3f522751103ee66e9e5926f0408e106d8ee5e94544b79", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset4]": "aa2dd4bb3bbe488bf5bd9dbe9f164cab053ea411e85cc421d3b25b11fa23afac", -"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-native_asset]": "b04d4f072fab654b45d9b68e11f578d4321d6d363d90b22142cc6a556bb74c9b", -"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-all]": "b8a60b2296037e9ec163ac3f68e690851cabc8a6d068388b7381f425dcb6807e", -"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-one]": "88cb6d1ba9c9138b23d1ae05694ee71b0d6e10c26c24871d337b12d40c9c4de0", -"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-some]": "9695603e1c4f4f28f94f417b39dd9654fdbbf89fa232d1c1d2a596c6dbb32552", -"TT_stellar-test_stellar.py::test_sign_tx[memo_hash]": "e0dee63c9831f95ba8221532b18cead92895b6e27ae5ae5941ba32c74dd70599", -"TT_stellar-test_stellar.py::test_sign_tx[memo_id]": "eb16d7e7cab6b43574efd7257729bf8830fe12729399adaa398465f6517e3598", -"TT_stellar-test_stellar.py::test_sign_tx[memo_return]": "447166c82dc957c269c8668ffb0681a64fefaf52dc789f8ebf8353ce19c8cd45", -"TT_stellar-test_stellar.py::test_sign_tx[memo_text]": "b36fb03de0f69ba2abc9bd4f93f9fde701f1596da422d26c2ac08ea2e6c7da03", -"TT_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "00216d015cf6600152724ad7368c55e926481f7225b40c615bfd0ccb75f88ac8", -"TT_stellar-test_stellar.py::test_sign_tx[source_account]": "db806aa28cd65346fccc8cd694c2dd205c66254c2b0ccd89bea97aa8c2b7cc26", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "d571bac5567cc3c06f0283e16a58d3a6d3cc6bbf3270475ae3011903bc8ace52", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "739686da244ed14f1761396b855f233562e582421ddc3a8f2670b54d973a7aff", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "9ae6a4e212433ee9b0767f5a8ab3f7b0c3ff619926894d109c3ca1aea8eb1010", -"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "b04d4f072fab654b45d9b68e11f578d4321d6d363d90b22142cc6a556bb74c9b", -"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": "dcb7bf38a2f4fdf6c19a27e84d8019411ad3e69c6e5199eeb438c6e1560a6109", -"TT_test_busy_state.py::test_busy_state": "1da5a5163ada64911d61459cb768253aa0bca627ff38afc73cbf06405825b585", -"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_jpeg": "9ce09adb64a15f43c96188e73a314216230b0d94178f525172f993af76f9c77b", -"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg_progressive": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", -"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg_wrong_size": "6531ff6ac0862f47c8d391301cf7bfd2f9f12c1921b2811f0eedfcf7fefc8d73", -"TT_test_msg_applysettings.py::test_apply_homescreen_toif": "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_reset_recovery-test_recovery_bip39_t2.py::test_already_initialized": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_nopin_nopassphrase": "9c0464c3bab2b901c6389f986a7d278c62ec64cc2766784e9b671538925c61c6", +"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_pin_passphrase": "908e9b06393f9942083fda2f39f6cbde723be0548d552e248696ff700158ecbf", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "ea1915d2bdbed2f27aa5f44b43581e4c45cda865f40f30235e8cc475d4c72b18", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_extra_share_entered": "0d2552c483f5184f30c39dd34fe18c210cfe673fb389b9422a58147b02308377", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_group_threshold_reached": "8425b0e8ea7591425750bab0b6aed6bb278657420dcd7b31a59b124e00dd5034", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "3b13d0b3e9a79c3d139431d9261ffb7f171bd7d01dd2759e6659291866bb33ae", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "ca667cec51947de87c47a23e6be914aedd6e5b8d45166344a64998471af84053", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "96911f5c93c73ea2576360550123c4e8ac87beb767fe8a1191e8cf29d11ad56f", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "83c8e02a94e4e2c2bc2d30b62bc069d14cfa5f1af09825d06b593085fa558c07", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares0-c2d2-850ffa77": "b7535c4e501d8729ad8b6aef3fe4829ba9fa281c0f5b20180419c7b690ce469f", +"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "c17dcc4090667fcc98eb3fb4c2d1a53c7539651fa85ab30efbabcd6289f7a070", +"TT_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_dryrun": "d82a31b085b52eae882ea9f07a319ab711a66b9ba309b3efb5ac2d048912ad10", +"TT_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_invalid_seed_dryrun": "3da7c811bb5d6f39da9c58900d760268f24034ef9d933da42faf327c1d009952", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_1of1": "62edce732911df2f4b9f84fa75aca8ba3839764819c9b3540b323d82e63841d3", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_abort": "ea1915d2bdbed2f27aa5f44b43581e4c45cda865f40f30235e8cc475d4c72b18", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_ask_word_number": "6de3122125e5ce8e448617c1a9e7be6ae991bf755d69c333b2c4cbf164f41e83", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "a8e0cee27af9a2fd831bf69d9bf5fe678594c4f21d4cc349d7b2936f461ddb68", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_recover_with_pin_passphrase": "bec901f5d0700146a18791c5d61fb4f861b8bc33baf869dcffa10a1070759616", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_same_share": "40e69fd098e950a129898baa6a3050fb995b0718eb52f2d0a71bf5bd86f1ffbf", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares0-491b795b80fc21ccdf466c0fbc98c8fc]": "e6204f0c96ab61736598d97412cd3bda7aea5671277a8c1cd51229e759a598d1", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares1-b770e0da1363247652de97a39-a50896b7": "ebb2564ff23b5a3cc64f6bdab670ce7c5d4e1bfc1864bd132d2de403c7a73380", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[0]": "de119907cfc90ee7b45b50039bc949a6eef26f675b50ddf148287d61f3b0b162", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[1]": "42ab13af0538342427a923ca5f3d0d2078f17561779d8bc42c27e97af7d08b68", +"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[2]": "366197e5c0ae4748f94350037c6cf9905af0c825548e3d993b634a06ae12d9b8", +"TT_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_dryrun": "a6b5e4f08546d0bcdbfa2e798a4b56719743f691da7e6946a71681c0aaec2056", +"TT_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_invalid_seed_dryrun": "dc397401ed5d0ea187598080c2799a2c0d0faa428c94b1312bfd62659e987a94", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "c43b0a1062731f9f8d02835ddacf7488e9ebf87e82e39fedf57627ed62979e61", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced-bac-f67baa1c": "7def156413466c9e39b2a6a203e8dcbec35d03e7d40b9103d5e3bfe2a158e938", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic-backup-6348e7fe": "f8267bd3969a6132e143796eed47ac5f7942a08a9b89dc15e6a5efb5f044e6d6", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "26a7f819326a453adf98da75d6e3a2edc9e4f5ec1f6b4122eb33806e9771f994", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced-backup-dcbda5cf": "df0469c791be541000616764bdf4b6bbe9f018d148c42c512ee483733eff1e97", +"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic-backup_fl-1577de4d": "b174f017b5b6e825dd2c89f7e9c81bcf70742a8404f811bebf31a8f29dc8ca35", +"TT_reset_recovery-test_reset_bip39_t2.py::test_already_initialized": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "26ac49681aeea03b4ef42bad37835e3d0179f3f13c12c5d7e70081ebf558e89a", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "b595bd4786551202833123ea5100f2424245a57a92fb11726382c9d134f92605", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "e40eb9480ad5472a82f94a3471549454f0ef0229b34420db87a8a3454ddd93fc", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "b01bc474ce70b78c23c1d64c2b424900f70962a51781c59a3282b2f0f24897c6", +"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "f3dc1de89250208343dea9187cbd9fabce73f2cb8ea3304ee3464489ff1fe453", +"TT_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "a67e4c0cb01f3e628827147c4e9dce98a96607a6cfe81a001f74f0a46d82969a", +"TT_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "6adc556649d895009c1b7fa0ab8f38824f26804248595c4b679905165e5222a5", +"TT_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "84ed00b17bf4eef721e827e7a7b300622101558cc27bf84ed879b543816f9308", +"TT_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "18b6b6dfabd0001bddbef3c5ebf37395cea887d6aa0717950a8df50512f1b323", +"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "8c2d08c43bbb6697b6d57ce8bfd9a423295350b0d80874b40f9110dfba8c17f6", +"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "90653bf5d9e91e95d86870b23c8e9fe9b878c9d7ed5e637426e64cbe057c52b2", +"TT_ripple-test_get_address.py::test_ripple_get_address": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_ripple-test_get_address.py::test_ripple_get_address_other": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_ripple-test_sign_tx.py::test_ripple_sign_invalid_fee": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_ripple-test_sign_tx.py::test_ripple_sign_simple_tx": "d86c4b758cccbf9677311c81f089134917fe1eb0ef71061c0f68ce0fecea7337", +"TT_stellar-test_stellar.py::test_get_address[parameters0-result0]": "c9f051657d17fa6167ce4e38be664dc287a6d578333d095dc90ee76e93474cba", +"TT_stellar-test_stellar.py::test_get_address[parameters1-result1]": "f77e8d5bd0e34fef7e4713db30e55603fa68b83a34692f8b8633041d9e1616be", +"TT_stellar-test_stellar.py::test_get_address[parameters2-result2]": "4d2ed314132535b07936d98d2eb135473226fd40bd44bc7af2f72e9b6b044372", +"TT_stellar-test_stellar.py::test_get_address[parameters3-result3]": "d74142c160b09f88ce8d616c302d2d02f73ea3937b163cea3cc443a9c8d2e7fa", +"TT_stellar-test_stellar.py::test_get_address[parameters4-result4]": "3b17a67570f356c8e67d6abef5bc11a7c098d13047c60d6352f27c0b2f8620e7", +"TT_stellar-test_stellar.py::test_get_address[parameters5-result5]": "67710c8cc50df3f36f7cf1e6ed7cf3eb90543c87d9b568916df0a14648ed25c8", +"TT_stellar-test_stellar.py::test_get_address[parameters6-result6]": "8273014fae053fb04d22deae2812c2f589e3685d16965dcdc409c775d5e79613", +"TT_stellar-test_stellar.py::test_get_address[parameters7-result7]": "10bce72201e81771b14c773d4f1a6fa4e1a6a9bb0e3d664694d5bf2c5311ae32", +"TT_stellar-test_stellar.py::test_get_address[parameters8-result8]": "61791bacdfd3fa81f2784d91dbfe57727fa3016edc0d6c0a64c8889bf2524e78", +"TT_stellar-test_stellar.py::test_get_address[parameters9-result9]": "0f3f4c9aa52ebdd644c76467f4bf26894e532662ed6ee851cb04981990b287b3", +"TT_stellar-test_stellar.py::test_sign_tx[StellarAccountMergeOp]": "48b226cc84db72dc6fa364974b6412905c65ed0b45bf87a4d9a1b2d450b99fb5", +"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-allow]": "5599508f6d55310a3d6607f18d7d35611b77aecec46e6ac50a2a7e23d3be2a0c", +"TT_stellar-test_stellar.py::test_sign_tx[StellarAllowTrustOp-revoke]": "9d4fbf5c8548cbf8445c61df366503ed96dcd959f33b964a69de982acf6f8277", +"TT_stellar-test_stellar.py::test_sign_tx[StellarBumpSequenceOp]": "e0184b9b2b05e95a47d9ba178f655ca32a10f8ad2dd356809136ad66f8d11f01", +"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-add]": "8145cdab088ae1b19b2116d44561dbd7b9615dc5608e050b21816fa2def3a273", +"TT_stellar-test_stellar.py::test_sign_tx[StellarChangeTrustOp-delete]": "5f514995a3fa6def09e42eea9d6f5d49751a3b2395493e19da7b8afb4d39a22b", +"TT_stellar-test_stellar.py::test_sign_tx[StellarCreateAccountOp]": "c0267feb91ff75e1368d3e2e7aadac3d582170a0d7c2db371f387fc03b17b3f2", +"TT_stellar-test_stellar.py::test_sign_tx[StellarCreatePassiveSellOfferOp]": "f99eb5bffeacbac04c4b106019d76de11d266c596fc062a3904b023094422857", +"TT_stellar-test_stellar.py::test_sign_tx[StellarManageBuyOfferOp]": "fbd162ea4d4a488f17d6234d6333944b992911a021ec7c2f313aeac0f9a72af3", +"TT_stellar-test_stellar.py::test_sign_tx[StellarManageDataOp]": "643e686723ae01ca2705d1969a98ab3d15781fdbe0fa1a89a1e16c8403a4b644", +"TT_stellar-test_stellar.py::test_sign_tx[StellarManageSellOfferOp]": "49423485bab6be953dc2c8f0ac7d39cc2bb459ddf434a7a2006bec7fd52a5a0e", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictReceiveOp]": "5799b980838f82a51a876eb1aedc41b05c89cac1101982f68002a979fa3e2e16", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPathPaymentStrictSendOp]": "210a69f4854c2d1d4fddb8d9a5c1c743759c54ed465c08ef9f8f0710fdce48ce", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset12]": "0212ded260c366396d009e3c4bd8b0620223d0ba53b943b139f6b299ddbab490", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-asset4]": "6959c6435544727e89f0780830c61e7bc230cc3f5f2273cc32f2e367101b531d", +"TT_stellar-test_stellar.py::test_sign_tx[StellarPaymentOp-native_asset]": "c159a29ebc4dc2dc65819a689a68f3e765e8d946a69f175b85fef2b2bb2a38b9", +"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-all]": "53506e58656c101fcc9bc15fc926bfc5cd1193d1d9120ca8afbb81b0c737223c", +"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-one]": "8a8f1b9a8eb1e7ea05ee4e8d2f927aaf2c6f69954ce1fae9acbd53f7b07891af", +"TT_stellar-test_stellar.py::test_sign_tx[StellarSetOptionsOp-some]": "54222474804d701bad5644c552a413e72d9c98175daf7e4930bd4913c3d53e7d", +"TT_stellar-test_stellar.py::test_sign_tx[memo_hash]": "4fe3cc52e8eb3a13f64e4951c0d27720f994cbbd24466b04d0e048148038fbd4", +"TT_stellar-test_stellar.py::test_sign_tx[memo_id]": "825dc53a26244a62a947c05258984f3050613b9c7c1c1dbe54082e5bf8957db7", +"TT_stellar-test_stellar.py::test_sign_tx[memo_return]": "8c2b3e22ebf652d341f4247a9e937889f8f0d1c7356748a7a0b9c3bc2400806d", +"TT_stellar-test_stellar.py::test_sign_tx[memo_text]": "7ee789d23acf0e06d0362973e07a4b8123afd430698d61cf7db027bb420019e1", +"TT_stellar-test_stellar.py::test_sign_tx[multiple_operations]": "ac0ec48cad1aa9dbd0cfe627da2f791fe88b4a27bce17749e4dfebcae5409c7e", +"TT_stellar-test_stellar.py::test_sign_tx[source_account]": "6dd83e0f123a5f2956210cb243dbae3b12bda9aaed41941f4bdb48f15bc20bcc", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-0]": "5b511ca63cda9f1de2527c5f329806a3a275205900d652c59a5c39643f803780", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-0-1575234180]": "42430206b96512ca33421a4cc20f394d9994168f3d199ff6f38801464cb9eb33", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-0]": "caf79cdcddaacddce9fbe6bc5c761a6fdef8e9c9d02b9de33f078c7353081f54", +"TT_stellar-test_stellar.py::test_sign_tx[timebounds-461535181-1575234180]": "c159a29ebc4dc2dc65819a689a68f3e765e8d946a69f175b85fef2b2bb2a38b9", +"TT_test_autolock.py::test_apply_auto_lock_delay": "086929faced260bc4ea42436974419beac48d03552d137e61206a6fabe2fb948", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[0]": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[1]": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[4194304]": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[536871]": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_autolock.py::test_apply_auto_lock_delay_out_of_range[9]": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[10]": "441ee891dfcaadfe63ec5a36a12becd4456c5bc23a6afbf5d662241b96e8653d", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[123]": "86cb1c98c4eee14d9028fef1ef8f1979a991b0c89c5fe2d798b17bd36fbbaf9c", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[3601]": "96684140872b227f04ef3d6dbcdaf9cecd4022b1d2c8fe2150b8bb6fcc9b7be8", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[536870]": "176d063055b703d95c07191cfd885ff695abdf99341853fe825961f5e7976121", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[60]": "971656fc0112c3d34f18a8b094b07900a2b91d35ab816dc9697b8d3ee08bf4f5", +"TT_test_autolock.py::test_apply_auto_lock_delay_valid[7227]": "17d08b88a90e9980214da7351856114e9bf77bdb92f7f545cfa9e8b6991cff5e", +"TT_test_autolock.py::test_autolock_cancels_ui": "7840363a8184cde21d3ce943a42835298a2737a4b57d14b62a68100f4713c69d", +"TT_test_autolock.py::test_autolock_default_value": "34668473c6c08ccb735625c0f69a6abd77c995e2dd7288a340b2f4e6922482d9", +"TT_test_basic.py::test_device_id_different": "421a22ba48e1af330e045067660c687953194f1407ba779b6f2d1e95d34160bf", +"TT_test_basic.py::test_device_id_same": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_basic.py::test_features": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_basic.py::test_ping": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_busy_state.py::test_busy_expiry": "976a57f1e7d016f9c753e7a8fea08d1aaa35feb204d9b87d8acf248fa258eed0", +"TT_test_busy_state.py::test_busy_state": "6d53eeede10cf1864d9c34f52eee70e91f5afc1e91a24794385b0cc4e91130c6", +"TT_test_cancel.py::test_cancel_message_via_cancel[message0]": "618a74e8d019d9bba5edf93bdb09f55a1f7493148d99c8f3b2c6186f17fa8c8b", +"TT_test_cancel.py::test_cancel_message_via_cancel[message1]": "618a74e8d019d9bba5edf93bdb09f55a1f7493148d99c8f3b2c6186f17fa8c8b", +"TT_test_cancel.py::test_cancel_message_via_initialize[message0]": "618a74e8d019d9bba5edf93bdb09f55a1f7493148d99c8f3b2c6186f17fa8c8b", +"TT_test_cancel.py::test_cancel_message_via_initialize[message1]": "618a74e8d019d9bba5edf93bdb09f55a1f7493148d99c8f3b2c6186f17fa8c8b", +"TT_test_cancel.py::test_cancel_on_paginated": "ce27f6ff624c617c1e7d4674cbe4634ed1a609d577a215db19fa6c81997ab831", +"TT_test_debuglink.py::test_softlock_instability": "8dea6f68d26cd9b1fcb1319f3dbb6e5c6b75e792c6612f619c03eb281a863ecd", +"TT_test_firmware_hash.py::test_firmware_hash_emu": "9ccf20a5175bc51c8771bd51ad40876acb317869bc4703c0b24c64b663670998", +"TT_test_firmware_hash.py::test_firmware_hash_hw": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_msg_applysettings.py::test_apply_homescreen_toif": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg": "bf50e675a77b4f16108af55338c6abdf0af2cf3dcdfb7837300c8b318787053b", +"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg_wrong_size": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_msg_applysettings.py::test_apply_homescreen_jpeg_progressive": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_msg_applysettings.py::test_apply_settings": "d48eb22c89c6faa9419ca4e77766a39f744f76ace4cb5f1df833646a783faf32", +"TT_test_msg_applysettings.py::test_apply_settings_passphrase": "9f1cdd0afa835c0284011ef4e7d9149132dd64f4e37a9655de82f5efcad7db3a", +"TT_test_msg_applysettings.py::test_apply_settings_passphrase_on_device": "44025f9b6ca5c41f63d2b5ced29ce332433952d4722b463159f1c7ba52b520cf", +"TT_test_msg_applysettings.py::test_apply_settings_rotation": "bd2c9d752815c0199748b98703039713aca1d3ad4c5eabd220fb919bc0c41afc", +"TT_test_msg_applysettings.py::test_experimental_features": "d5464f51966f98fff055aef7ac1148676b39f8fa4b25c17818139c628525ff02", +"TT_test_msg_applysettings.py::test_label_too_long": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_msg_applysettings.py::test_safety_checks": "3cda68830a0b8742253da415cf699ad58af4160ca2cd8004396235599e49a498", +"TT_test_msg_backup_device.py::test_backup_bip39": "f93fbf789c69339e8a6750dbc80be634d84ab43828ba39703899fee2fea357a9", +"TT_test_msg_backup_device.py::test_backup_slip39_advanced[click_info]": "8ab8394791e891c418a7f6ab11b5c08013531bd2c1fcb00fef2492e54a54a6f8", +"TT_test_msg_backup_device.py::test_backup_slip39_advanced[no_click_info]": "d810deb23097bb836a84d421334d2a0a32440977a8227142ed0c8ff455fd95df", +"TT_test_msg_backup_device.py::test_backup_slip39_basic[click_info]": "c4abf41b0e304aa400ba06b898ea5b4e9759d47adebe08c0a83c669b830eb793", +"TT_test_msg_backup_device.py::test_backup_slip39_basic[no_click_info]": "6e73c786b150d0552736e5317a150fea6e56174afddac7efb350801d473ff6a2", +"TT_test_msg_backup_device.py::test_interrupt_backup_fails": "b1b812e4ea3974cf4b268a5b72b0d47c32427ccdd3c7615fdc4a6339c0180cda", +"TT_test_msg_backup_device.py::test_no_backup_fails": "06415ff75b08ef95be26f8d6ac3c29dd37797e48d3d5d604ae0b51d984f93ab8", "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_change_wipe_code_t2.py::test_set_pin_to_wipe_code": "f9e108088c90eedb277e809ca49e6ed43dff9307fd4b672b4cb000f8af7a2b63", +"TT_test_msg_change_wipe_code_t2.py::test_set_remove_wipe_code": "eae5541680e0fc42b56bdb8c09438c4963d7982f6cd5c4be25b201f25622b813", +"TT_test_msg_change_wipe_code_t2.py::test_set_wipe_code_mismatch": "cc4cd5b71ad87d8081a7f558a12cd4afef257ece8bf9ca20a1a21173a5e2f4dc", +"TT_test_msg_change_wipe_code_t2.py::test_set_wipe_code_to_pin": "3c76e1ebd70accb05e93aaa0494644e73ed13d8709e517fd78ca8d0edbb33f0b", +"TT_test_msg_changepin_t2.py::test_change_failed": "e70e7843eb37370bfd87e8eec2e4436c97d2b3f24b47ccc88c045283b23b40b1", +"TT_test_msg_changepin_t2.py::test_change_invalid_current": "cb867f57aeb506842799a6debc5236fd23446330f89687b7fa3db6805c9992b4", +"TT_test_msg_changepin_t2.py::test_change_pin": "52210988069d75f5b69ea1750d786d383c00a36f7164b539e63842165c0a4937", +"TT_test_msg_changepin_t2.py::test_remove_pin": "003f651d5ac75497dcbffc25635d37acd57cfb2c1e2b650a673e4047d85baee9", +"TT_test_msg_changepin_t2.py::test_set_failed": "12d5a6f7bb11e70ac7aa94623787ed8d940a6221908c8c0b389da096aa619a2b", +"TT_test_msg_changepin_t2.py::test_set_pin": "a84568ded91b91094016cb6f3f4c3f5395e17bed21ba77da6856d4a8cff7c3e4", +"TT_test_msg_loaddevice.py::test_load_device_1": "a5343bdca1bf032ef1ce0f9714da013010aae352e6fcd2ef5e2ea4f6b128de3e", "TT_test_msg_loaddevice.py::test_load_device_2": "21e72d9499be76a72957701195ce2e8353bf742dc2bd563a1b0c8a6d233dc31b", -"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": "3bc280ed7c78a09c9d9bac78f33e6b1a4592475007217305293ff3fe5dc7d55f", -"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": "2cc04a76de7911ea52afc1b3d819bde80aec607ba52111f2907d89ffbd2836a5", -"TT_test_msg_wipedevice.py::test_wipe_device": "d97a8029a951298c21cabd3518aa840e01b16a3a303d4f40387a6eb5f69ecf56", -"TT_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "cba4577239bbaf6e29d24ef38c7ca32d77519d77ebc9b137abb884977821ac3b", -"TT_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "cba4577239bbaf6e29d24ef38c7ca32d77519d77ebc9b137abb884977821ac3b", -"TT_test_passphrase_slip39_basic.py::test_2of5_passphrase": "053c41531f122912fe88aef869260ee0586cc18bfd074aeff9869be9e00448c5", -"TT_test_passphrase_slip39_basic.py::test_3of6_passphrase": "053c41531f122912fe88aef869260ee0586cc18bfd074aeff9869be9e00448c5", -"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": "46d3c1c531bf9fe12c02970a0aa758a376c8a4dea926cb93b94a66b83abfc09d", -"TT_test_protection_levels.py::test_change_pin_t2": "95a5dfeee0e9a17f812468ebfc88253e79727f45fb9bf505899c6b83c4ec4ea7", -"TT_test_protection_levels.py::test_get_address": "0872edbc9d15c98aa3f68574defe7dfd6f10c215960d0e4774bdfb70bb162b6b", -"TT_test_protection_levels.py::test_get_entropy": "610f2cfcf3ebe983c52e3e5bfb1ac69162eec9a1a45699d2679a600dbec8f84d", -"TT_test_protection_levels.py::test_get_public_key": "0872edbc9d15c98aa3f68574defe7dfd6f10c215960d0e4774bdfb70bb162b6b", -"TT_test_protection_levels.py::test_initialize": "4dfbccd264864195bca955b55fbb01545ed294ccf7321ea517902ff6d6afd2ab", -"TT_test_protection_levels.py::test_passphrase_cached": "4722f322915c635ce32385a662dad53ae90bfa1eaae0f1415d68f0053cfdc733", -"TT_test_protection_levels.py::test_passphrase_reporting[False]": "a07202e2260844fa409ade1a5b396e95d2b23ee15dd291262a2ce140aee862bc", -"TT_test_protection_levels.py::test_passphrase_reporting[True]": "14c19aae70b79c234f8790f92da16e0437dd2ef4c8234c633e60b939d7b17f18", -"TT_test_protection_levels.py::test_ping": "49f012cfb5c79777b4760fdf96a73fb72397388361a6f1db17feeb8229125214", -"TT_test_protection_levels.py::test_sign_message": "a9d2ff531f18d248a3aac3c8a242c385423c11311914451d6ea8d6827ad2ca02", -"TT_test_protection_levels.py::test_signtx": "598fcecf25911a4216b1256d4d4df814293f31228bbd4ece09b0aac163141cb7", -"TT_test_protection_levels.py::test_unlocked": "d9fdce49747234da52b16713e6e01c188d9eb178017e9d4d84056cd203c920c2", -"TT_test_protection_levels.py::test_verify_message_t2": "4164c86dfbbacf857cab52259d600a00c30d0f0527f77213c943b73a6038f3d8", -"TT_test_protection_levels.py::test_wipe_device": "094f5f45af14aaf4789d6e89b1bb98b6504875db66268421c341511c4e31ca98", -"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": "e9afbd4ca57f8d5fb542821e0dd706461676d4d038b875ecee8973e5e666383d", -"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": "053c41531f122912fe88aef869260ee0586cc18bfd074aeff9869be9e00448c5", -"TT_test_session_id_and_passphrase.py::test_cardano_passphrase": "6a5598e128530c2da1e5b8770bc5983c9c0cb3d5cbb30aba7a0025fc52253942", -"TT_test_session_id_and_passphrase.py::test_max_sessions_with_passphrases": "7b6f2149b2b5a956ccf6e4d6843f50d79ddab4e44c22f4ad8a25eaa545ffab71", -"TT_test_session_id_and_passphrase.py::test_multiple_passphrases": "24f7ef9569cc4471169b083cc021b354ffa018d3846ac5b4f282f9d8610a31c4", -"TT_test_session_id_and_passphrase.py::test_multiple_sessions": "72d6d1cdc13cd36c83c4e6dff0e1533515be8fe181a3305a29cd88a18fbaf4ba", -"TT_test_session_id_and_passphrase.py::test_passphrase_ack_mismatch": "2dd2edc299697cf24507226b66ef49838ba6a68c2e9c41dfb9b0aa77eef5414c", -"TT_test_session_id_and_passphrase.py::test_passphrase_always_on_device": "75d99b190dfc2269acd5ba73cb867f2c84c899cc9d5662cfabfd1164b1a68eb1", -"TT_test_session_id_and_passphrase.py::test_passphrase_length": "8a5a253ae62bf25f1e4d6780c6f96994ae3dcff226f91ed01a44e192a047f396", -"TT_test_session_id_and_passphrase.py::test_passphrase_missing": "4722f322915c635ce32385a662dad53ae90bfa1eaae0f1415d68f0053cfdc733", -"TT_test_session_id_and_passphrase.py::test_passphrase_on_device": "4c6adf35887eeaefed817f2f05a3284f1a9092087f261ede56133f020f2a4066", -"TT_test_session_id_and_passphrase.py::test_session_enable_passphrase": "c6e700b7c11295e9a96bec2980ac43f167f0808160e35c34de3c463eef3bd471", -"TT_test_session_id_and_passphrase.py::test_session_with_passphrase": "3a135ff335401c2712d75c8dae1d381fa72bbb73356b5a1e0e99a47806f38124", -"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" +"TT_test_msg_loaddevice.py::test_load_device_slip39_advanced": "a5343bdca1bf032ef1ce0f9714da013010aae352e6fcd2ef5e2ea4f6b128de3e", +"TT_test_msg_loaddevice.py::test_load_device_slip39_basic": "a5343bdca1bf032ef1ce0f9714da013010aae352e6fcd2ef5e2ea4f6b128de3e", +"TT_test_msg_loaddevice.py::test_load_device_utf": "2053671f3eb187a9dfb9c727f9623ce89862c0558c45ed0116be9deb6ffac1b5", +"TT_test_msg_ping.py::test_ping": "7d4ec74913a7875c856e76b977fc51bbceb83ff3e1fe6f181f5f775245895e2c", +"TT_test_msg_sd_protect.py::test_enable_disable": "281291394deac125a39600cbe887143d6acae06c34204ea2a204e04f7ac4ff9d", +"TT_test_msg_sd_protect.py::test_refresh": "6cf2156b6b015351b3c42d44b9747b5e912dcdf82d4d38ed027c266a71fe3f71", +"TT_test_msg_sd_protect.py::test_wipe": "6448b2ac31410b4d80fe340381e123f76ed61bea2f3b55babe2bdd2c2b0d0ea9", +"TT_test_msg_wipedevice.py::test_autolock_not_retained": "1823692a9cacdae4d28afba06d259f9b0af0c96404997099db49bde2615d8618", +"TT_test_msg_wipedevice.py::test_wipe_device": "421a22ba48e1af330e045067660c687953194f1407ba779b6f2d1e95d34160bf", +"TT_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "d2de2d2d0b5736eddac101f7e8058856c121aed30c41ed24731ca5cd0f55fae6", +"TT_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "d2de2d2d0b5736eddac101f7e8058856c121aed30c41ed24731ca5cd0f55fae6", +"TT_test_passphrase_slip39_basic.py::test_2of5_passphrase": "a35eaab05906892d0a0ba2eb33f74107803e80bb4176c8dc611c9cef5af88344", +"TT_test_passphrase_slip39_basic.py::test_3of6_passphrase": "a35eaab05906892d0a0ba2eb33f74107803e80bb4176c8dc611c9cef5af88344", +"TT_test_pin.py::test_correct_pin": "9cf5090190cd84a1825a34531351cfa0fd8c95036d6302c5b3816b8e89607161", +"TT_test_pin.py::test_exponential_backoff_t2": "aa9ebe473c70fa154bef1640d7d437cd1839595fa9a07864f24f17c34769030f", +"TT_test_pin.py::test_incorrect_pin_t2": "4bfc39a6ef7cc3c3dcfe2085bf1e16ef1ea82706e942062b7b4afa7694b12c18", +"TT_test_pin.py::test_no_protection": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_protection_levels.py::test_apply_settings": "935d4b5ce4805a8d3acf32c85a1eba492d5d7554229f2fa0558610311f5dd4a8", +"TT_test_protection_levels.py::test_change_pin_t2": "f0df1cf505a282d703727d2b0fbb8e15364954e401982f6d26cd08076d587ab3", +"TT_test_protection_levels.py::test_get_address": "e5d600209fccef3827ec1154d5a892f4c0f9b5ec79e4f87f910e4d7a7bda282d", +"TT_test_protection_levels.py::test_get_entropy": "136cd8d6311d7fde08b2aa71668448e95c5d6364bcf7eeb71dba256d871de4b4", +"TT_test_protection_levels.py::test_get_public_key": "e5d600209fccef3827ec1154d5a892f4c0f9b5ec79e4f87f910e4d7a7bda282d", +"TT_test_protection_levels.py::test_initialize": "1af1f0ee04880b416347dbab985d65153ba95e9420e4e919ea906845e8588a65", +"TT_test_protection_levels.py::test_passphrase_cached": "870f19b9ce9cec4fccc7aeb9e67283d45bbd98af44f63dcfa258fa34240be966", +"TT_test_protection_levels.py::test_passphrase_reporting[False]": "f80ea9e052308bbf8609a78c9341d8059f6f632d8bf4910ca1330e2bd43ca93d", +"TT_test_protection_levels.py::test_passphrase_reporting[True]": "c9fe68c47af793d11599b55da9b870798ac2736b51b2283711e8f9fb86968ed9", +"TT_test_protection_levels.py::test_ping": "7d4ec74913a7875c856e76b977fc51bbceb83ff3e1fe6f181f5f775245895e2c", +"TT_test_protection_levels.py::test_sign_message": "c812ef4153efb97eabdb17e14498bf54b4680cc359bcca187be505718b7550ab", +"TT_test_protection_levels.py::test_signtx": "9f44183ad1361b33bcceaa4e7c4f45751c2481d493732990965ea24ae5c67f7b", +"TT_test_protection_levels.py::test_unlocked": "e8beab096194df170434fcb4ff29f9d0a7b46a7c879133ceff7a59861d8cb954", +"TT_test_protection_levels.py::test_verify_message_t2": "72f19e3a72b00a6618e374fe54ef2f016d4888d300e2ce11116bff2d01386ddb", +"TT_test_protection_levels.py::test_wipe_device": "ab93c405466378ac99dc7d30657a4ddb4a2abde87c418226165c06fec203fa6b", +"TT_test_sdcard.py::test_sd_format": "036c3f93a4a28d34bf91a8d24abc52ff26d9b14c8167f4dfc7b569fb39375c69", +"TT_test_sdcard.py::test_sd_no_format": "0710d8c40680fc8e96e368ae9978d1f7e0bd8b2f858547b8265c45930f43c959", +"TT_test_sdcard.py::test_sd_protect_unlock": "f49b02141ffd91ae77a8c461000702f22eb5e814c7d5faadc5e6fdfdd25591ae", +"TT_test_session.py::test_cannot_resume_ended_session": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_session.py::test_clear_session": "f00466a5d9a6ffb68bdccbdd3c769a3c530ee483701062d919922c034aadebee", +"TT_test_session.py::test_derive_cardano_empty_session": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_session.py::test_derive_cardano_running_session": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_session.py::test_end_session": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_session.py::test_end_session_only_current": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_session.py::test_session_recycling": "a35eaab05906892d0a0ba2eb33f74107803e80bb4176c8dc611c9cef5af88344", +"TT_test_session_id_and_passphrase.py::test_cardano_passphrase": "de423e1ba92c2ded84143fa15809c3bc93a9d298c6305cd7bea3153343a78a02", +"TT_test_session_id_and_passphrase.py::test_max_sessions_with_passphrases": "452a9006f0e4945455f3bc0480e3c36f4c0499945179d195544fc21eda776e84", +"TT_test_session_id_and_passphrase.py::test_multiple_passphrases": "193cef8e356427aa01b0a336a9e6173151f64cadb621d2ac6eb9ade68b607eff", +"TT_test_session_id_and_passphrase.py::test_multiple_sessions": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_test_session_id_and_passphrase.py::test_passphrase_ack_mismatch": "a4ecdfc2bed7623cc1dda09dcefb077c09a8d8e9aec596f94bc14351fe94b50b", +"TT_test_session_id_and_passphrase.py::test_passphrase_always_on_device": "eb6866deaf1cc5f217e821f4a557b8640375f2c781ee658a70efbaf45d727079", +"TT_test_session_id_and_passphrase.py::test_passphrase_length": "f70378edaf92e9bade1a4f5db304bf4cc40fc09396168aeabc1e6021b65783de", +"TT_test_session_id_and_passphrase.py::test_passphrase_missing": "870f19b9ce9cec4fccc7aeb9e67283d45bbd98af44f63dcfa258fa34240be966", +"TT_test_session_id_and_passphrase.py::test_passphrase_on_device": "51dab8b4e3b350a74962899b3682f593cc36d5cfc500b278438bb3287597b894", +"TT_test_session_id_and_passphrase.py::test_session_enable_passphrase": "e0728decef58cf6828f1b471a0d82be6989861941b9a5e9629e58f944f124c76", +"TT_test_session_id_and_passphrase.py::test_session_with_passphrase": "99d8ce0e8b0010b6eba2a741fc5cbec3c2464e8b898d1f23b4d379fbad15c543", +"TT_tezos-test_getaddress.py::test_tezos_get_address": "3142992091324d59ab89583d3c3cdb63c115633c8404f464b84eb86148c0a1e8", +"TT_tezos-test_getpublickey.py::test_tezos_get_public_key": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae", +"TT_tezos-test_sign_tx.py::test_tezos_kt_remove_delegation": "9f9b82e59e3898e0e4acda21492bd686927d239977071fa1dd8753c8cc6866ad", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_delegation": "46e59e9de90d0182c6b4ca796afb2f06f97899f758d55ee55e901ed0ac8565a4", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_multiple_proposals": "2d0ca8bf739f132c0bf1699b2fce67aba7cb2d7ee6aed09c4f4d66842d0c8aab", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_origination": "7a73d93083123748773c3a3ba623e5ba7a25424a44b2b47a2541c595e991e75b", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_proposal": "fb93a87cd54d909f46332f2bf196674bbb93da29ca1409a416bb32f3be3ee89f", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_reveal": "13789ebf1b54305e366200e33bd0cd93ed5733d624be00fa80d8e01002e93d3d", +"TT_tezos-test_sign_tx.py::test_tezos_sign_tx_tranasaction": "33aa6551e484338866ebad6dc6bed340f1fc5b13d89d647e7c29ce68b5ef681a", +"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_nay": "c5a0eb57e0976eefda6e847d61756c577ca970dba797bee41ad229d521b889be", +"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_pass": "77508740843021f02f41afbfe781aaf72dc64875bfad671e465f64e8385290ae", +"TT_tezos-test_sign_tx.py::test_tezos_sing_tx_ballot_yay": "8ad2e969e8b991740e1a6d7d9b2ed8b458cf9b32c7eddee46e47b598c6c9e0c1", +"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_delegation": "40495fa3cdc28344964ed1326e4affd89691e64862a4b48009b302c7ab2562a4", +"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer": "70526a90135e320368b1ef147dc6eae84409143226b4e6276b3840d7cabcb84b", +"TT_tezos-test_sign_tx.py::test_tezos_smart_contract_transfer_to_contract": "cf949dfe6fe0846c1d9c57e182a4dbfb2d95ff92b23fce02b2cc103b9d530740", +"TT_webauthn-test_msg_webauthn.py::test_add_remove": "8a8b4d7294c10cf76837eb3ac8fff5a0968ce744a1fa3d03676fc4a17c4166f9", +"TT_webauthn-test_u2f_counter.py::test_u2f_counter": "17a2c1f8b6ed80025b3a068a4afb649bbd74bf5a29d840f0626157e910d831d7", +"TT_zcash-test_sign_tx.py::test_external_presigned": "7b201d92d16993d244288ab05cef393c059a3a7726a6d66fa4c00a90b4f22859", +"TT_zcash-test_sign_tx.py::test_one_two": "1a91876fa2d2e501cf971f58f126cf0a3f519ba31996aed5252dda49d00054e3", +"TT_zcash-test_sign_tx.py::test_refuse_replacement_tx": "3fc8eceefb45620d5802324b364162aee8103cbf1a25581e180b7c86c3df9939", +"TT_zcash-test_sign_tx.py::test_send_to_multisig": "76d465685deddde0eb8b9227198821fa15505ddf9c28c9b4ede8e684de4c38f8", +"TT_zcash-test_sign_tx.py::test_spend_multisig": "fdd6eb3bb07fe3070c2c3dd15c0738512f42edf35a94e606a30f420dbe7a3ebe", +"TT_zcash-test_sign_tx.py::test_spend_v4_input": "56452588ee3e99b5ce65617b747fb3bba152dfeb61953d360b1b9e622e918236", +"TT_zcash-test_sign_tx.py::test_spend_v5_input": "c9282a79ff6d28ef737e63c3aef862627bc1f2f96a693430358e5f072ce84c5e", +"TT_zcash-test_sign_tx.py::test_unified_address": "5ccbd857b247dc7e10693617680038f78240c559a7fa67c076e660ca3bdc42d3", +"TT_zcash-test_sign_tx.py::test_version_group_id_missing": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae" }