mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-24 23:38:09 +00:00
feat(core/ui): reset_device copy change
[no changelog]
This commit is contained in:
parent
89b905a349
commit
afb5c55416
@ -63,9 +63,13 @@ where
|
|||||||
type Msg = Never;
|
type Msg = Never;
|
||||||
|
|
||||||
fn place(&mut self, bounds: Rect) -> Rect {
|
fn place(&mut self, bounds: Rect) -> Rect {
|
||||||
let line_bounds = bounds.with_height(self.font().text_max_height());
|
let height = self
|
||||||
self.layout = self.layout.with_bounds(line_bounds);
|
.layout
|
||||||
line_bounds
|
.with_bounds(bounds)
|
||||||
|
.fit_text(self.text.as_ref())
|
||||||
|
.height();
|
||||||
|
self.layout = self.layout.with_bounds(bounds.with_height(height));
|
||||||
|
self.layout.bounds
|
||||||
}
|
}
|
||||||
|
|
||||||
fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option<Self::Msg> {
|
fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option<Self::Msg> {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use super::theme;
|
use super::theme;
|
||||||
use crate::ui::{
|
use crate::ui::{
|
||||||
component::{label::Label, text::TextStyle, Child, Component, Event, EventCtx},
|
component::{label::Label, text::TextStyle, Child, Component, Event, EventCtx},
|
||||||
display::{self, toif::Icon, Color, Font},
|
display::{self, toif::Icon, Color},
|
||||||
geometry::{Alignment, Insets, Offset, Rect},
|
geometry::{Alignment, Insets, Offset, Rect},
|
||||||
util::icon_text_center,
|
util::icon_text_center,
|
||||||
};
|
};
|
||||||
@ -57,13 +57,10 @@ where
|
|||||||
fn place(&mut self, bounds: Rect) -> Rect {
|
fn place(&mut self, bounds: Rect) -> Rect {
|
||||||
const TITLE_SPACE: i16 = theme::BUTTON_SPACING;
|
const TITLE_SPACE: i16 = theme::BUTTON_SPACING;
|
||||||
|
|
||||||
let (title_area, content_area) = bounds
|
let bounds = bounds.inset(self.border);
|
||||||
.inset(self.border)
|
let title_area = bounds.inset(Insets::sides(theme::CONTENT_BORDER));
|
||||||
.split_top(Font::BOLD.text_height());
|
let title_area = self.title.place(title_area);
|
||||||
let title_area = title_area.inset(Insets::sides(theme::CONTENT_BORDER));
|
let content_area = bounds.inset(Insets::top(title_area.height() + TITLE_SPACE));
|
||||||
let content_area = content_area.inset(Insets::top(TITLE_SPACE));
|
|
||||||
|
|
||||||
self.title.place(title_area);
|
|
||||||
self.content.place(content_area);
|
self.content.place(content_area);
|
||||||
bounds
|
bounds
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ use crate::{
|
|||||||
image::BlendedImage,
|
image::BlendedImage,
|
||||||
paginated::{PageMsg, Paginate},
|
paginated::{PageMsg, Paginate},
|
||||||
painter,
|
painter,
|
||||||
|
placed::GridPlaced,
|
||||||
text::{
|
text::{
|
||||||
paragraphs::{
|
paragraphs::{
|
||||||
Checklist, Paragraph, ParagraphSource, ParagraphStrType, ParagraphVecLong,
|
Checklist, Paragraph, ParagraphSource, ParagraphStrType, ParagraphVecLong,
|
||||||
@ -27,7 +28,7 @@ use crate::{
|
|||||||
},
|
},
|
||||||
TextStyle,
|
TextStyle,
|
||||||
},
|
},
|
||||||
Border, Component, Empty, Timeout, TimeoutMsg,
|
Border, Component, Empty, FormattedText, Timeout, TimeoutMsg,
|
||||||
},
|
},
|
||||||
display::{tjpgd::jpeg_info, toif::Icon},
|
display::{tjpgd::jpeg_info, toif::Icon},
|
||||||
geometry,
|
geometry,
|
||||||
@ -320,6 +321,16 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<T, S> ComponentMsgObj for (GridPlaced<Paragraphs<T>>, GridPlaced<FormattedText<S, S>>)
|
||||||
|
where
|
||||||
|
T: ParagraphSource,
|
||||||
|
S: AsRef<str>,
|
||||||
|
{
|
||||||
|
fn msg_try_into_obj(&self, _msg: Self::Msg) -> Result<Obj, Error> {
|
||||||
|
unreachable!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" fn new_confirm_action(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
extern "C" fn new_confirm_action(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
||||||
let block = move |_args: &[Obj], kwargs: &Map| {
|
let block = move |_args: &[Obj], kwargs: &Map| {
|
||||||
let title: StrBuffer = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
let title: StrBuffer = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
||||||
@ -502,22 +513,38 @@ extern "C" fn new_confirm_homescreen(n_args: usize, args: *const Obj, kwargs: *m
|
|||||||
extern "C" fn new_confirm_reset_device(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
extern "C" fn new_confirm_reset_device(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
||||||
let block = move |_args: &[Obj], kwargs: &Map| {
|
let block = move |_args: &[Obj], kwargs: &Map| {
|
||||||
let title: StrBuffer = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
let title: StrBuffer = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
||||||
let prompt: StrBuffer = kwargs.get(Qstr::MP_QSTR_prompt)?.try_into()?;
|
let button: StrBuffer = kwargs.get(Qstr::MP_QSTR_button)?.try_into()?;
|
||||||
let description: StrBuffer = "\nBy continuing you agree to".into();
|
|
||||||
let url: StrBuffer = "https://trezor.io/tos".into();
|
|
||||||
|
|
||||||
let paragraphs = Paragraphs::new([
|
let paragraphs = Paragraphs::new(Paragraph::new(
|
||||||
Paragraph::new(&theme::TEXT_BOLD, prompt),
|
&theme::TEXT_NORMAL,
|
||||||
Paragraph::new(&theme::TEXT_NORMAL, description),
|
StrBuffer::from("By continuing you agree\nto Trezor Company's\nterms and conditions."),
|
||||||
Paragraph::new(&theme::TEXT_BOLD, url),
|
));
|
||||||
]);
|
let url = FormattedText::new(
|
||||||
|
theme::TEXT_NORMAL,
|
||||||
let buttons = Button::cancel_confirm_text(None, "CONTINUE");
|
theme::FORMATTED,
|
||||||
let obj = LayoutObj::new(Frame::left_aligned(
|
"More info at {demibold}trezor.io/tos",
|
||||||
theme::label_title(),
|
);
|
||||||
title,
|
let buttons = Button::cancel_confirm(
|
||||||
SwipePage::new(paragraphs, buttons, theme::BG),
|
Button::with_icon(Icon::new(theme::ICON_CANCEL)),
|
||||||
))?;
|
Button::with_text(button).styled(theme::button_confirm()),
|
||||||
|
3,
|
||||||
|
);
|
||||||
|
let obj = LayoutObj::new(
|
||||||
|
Frame::left_aligned(
|
||||||
|
theme::label_title(),
|
||||||
|
title,
|
||||||
|
Dialog::new(
|
||||||
|
(
|
||||||
|
GridPlaced::new(paragraphs)
|
||||||
|
.with_grid(3, 1)
|
||||||
|
.with_from_to((0, 0), (1, 0)),
|
||||||
|
GridPlaced::new(url).with_grid(3, 1).with_row_col(2, 0),
|
||||||
|
),
|
||||||
|
buttons,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.with_border(theme::borders()),
|
||||||
|
)?;
|
||||||
Ok(obj.into())
|
Ok(obj.into())
|
||||||
};
|
};
|
||||||
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
||||||
@ -1389,7 +1416,7 @@ pub static mp_module_trezorui2: Module = obj_module! {
|
|||||||
/// def confirm_reset_device(
|
/// def confirm_reset_device(
|
||||||
/// *,
|
/// *,
|
||||||
/// title: str,
|
/// title: str,
|
||||||
/// prompt: str,
|
/// button: str,
|
||||||
/// ) -> object:
|
/// ) -> object:
|
||||||
/// """Confirm TOS before device setup."""
|
/// """Confirm TOS before device setup."""
|
||||||
Qstr::MP_QSTR_confirm_reset_device => obj_fn_kw!(0, new_confirm_reset_device).as_obj(),
|
Qstr::MP_QSTR_confirm_reset_device => obj_fn_kw!(0, new_confirm_reset_device).as_obj(),
|
||||||
|
@ -103,7 +103,7 @@ def confirm_properties(
|
|||||||
def confirm_reset_device(
|
def confirm_reset_device(
|
||||||
*,
|
*,
|
||||||
title: str,
|
title: str,
|
||||||
prompt: str,
|
button: str,
|
||||||
) -> object:
|
) -> object:
|
||||||
"""Confirm TOS before device setup."""
|
"""Confirm TOS before device setup."""
|
||||||
|
|
||||||
|
@ -57,9 +57,7 @@ async def recovery_device(ctx: Context, msg: RecoveryDevice) -> Success:
|
|||||||
# --------------------------------------------------------
|
# --------------------------------------------------------
|
||||||
# _continue_dialog
|
# _continue_dialog
|
||||||
if not dry_run:
|
if not dry_run:
|
||||||
await confirm_reset_device(
|
await confirm_reset_device(ctx, "Wallet recovery", recovery=True)
|
||||||
ctx, "Do you really want to recover a wallet?", recovery=True
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
await confirm_action(
|
await confirm_action(
|
||||||
ctx,
|
ctx,
|
||||||
|
@ -41,12 +41,12 @@ async def reset_device(ctx: Context, msg: ResetDevice) -> Success:
|
|||||||
|
|
||||||
# make sure user knows they're setting up a new wallet
|
# make sure user knows they're setting up a new wallet
|
||||||
if backup_type == BAK_T_SLIP39_BASIC:
|
if backup_type == BAK_T_SLIP39_BASIC:
|
||||||
prompt = "Create a new wallet with Shamir Backup?"
|
title = "Wallet creation\n(Shamir)"
|
||||||
elif backup_type == BAK_T_SLIP39_ADVANCED:
|
elif backup_type == BAK_T_SLIP39_ADVANCED:
|
||||||
prompt = "Create a new wallet with Super Shamir?"
|
title = "Wallet creation\n(Super Shamir)"
|
||||||
else:
|
else:
|
||||||
prompt = "Do you want to create a new wallet?"
|
title = "Wallet creation"
|
||||||
await confirm_reset_device(ctx, prompt)
|
await confirm_reset_device(ctx, title)
|
||||||
|
|
||||||
# Rendering empty loader so users do not feel a freezing screen
|
# Rendering empty loader so users do not feel a freezing screen
|
||||||
render_empty_loader("PROCESSING", "")
|
render_empty_loader("PROCESSING", "")
|
||||||
|
@ -252,12 +252,12 @@ async def confirm_action(
|
|||||||
|
|
||||||
|
|
||||||
async def confirm_reset_device(
|
async def confirm_reset_device(
|
||||||
ctx: GenericContext, prompt: str, recovery: bool = False
|
ctx: GenericContext, title: str, recovery: bool = False
|
||||||
) -> None:
|
) -> None:
|
||||||
if recovery:
|
if recovery:
|
||||||
title = "RECOVERY MODE"
|
button = "RECOVER WALLET"
|
||||||
else:
|
else:
|
||||||
title = "CREATE NEW WALLET"
|
button = "CREATE WALLET"
|
||||||
|
|
||||||
await raise_if_not_confirmed(
|
await raise_if_not_confirmed(
|
||||||
interact(
|
interact(
|
||||||
@ -265,7 +265,7 @@ async def confirm_reset_device(
|
|||||||
RustLayout(
|
RustLayout(
|
||||||
trezorui2.confirm_reset_device(
|
trezorui2.confirm_reset_device(
|
||||||
title=title.upper(),
|
title=title.upper(),
|
||||||
prompt=prompt,
|
button=button,
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
"recover_device" if recovery else "setup_device",
|
"recover_device" if recovery else "setup_device",
|
||||||
|
@ -25,7 +25,7 @@ def confirm_recovery(debug: "DebugLink", legacy_ui: bool = False) -> None:
|
|||||||
if legacy_ui:
|
if legacy_ui:
|
||||||
layout.text.startswith("Recovery mode")
|
layout.text.startswith("Recovery mode")
|
||||||
else:
|
else:
|
||||||
assert layout.get_title() == "RECOVERY MODE"
|
assert layout.get_title().startswith("WALLET RECOVERY")
|
||||||
debug.click(buttons.OK, wait=True)
|
debug.click(buttons.OK, wait=True)
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ def test_reset_slip39_advanced_2of2groups_2of2shares(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# confirm new wallet
|
# confirm new wallet
|
||||||
reset.confirm_wait(debug, "Create new wallet")
|
reset.confirm_wait(debug, "Wallet creation")
|
||||||
|
|
||||||
# confirm back up
|
# confirm back up
|
||||||
reset.confirm_read(debug, "Success")
|
reset.confirm_read(debug, "Success")
|
||||||
@ -137,7 +137,7 @@ def test_reset_slip39_advanced_16of16groups_16of16shares(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# confirm new wallet
|
# confirm new wallet
|
||||||
reset.confirm_wait(debug, "Create new wallet")
|
reset.confirm_wait(debug, "Wallet creation")
|
||||||
|
|
||||||
# confirm back up
|
# confirm back up
|
||||||
reset.confirm_read(debug, "Success")
|
reset.confirm_read(debug, "Success")
|
||||||
|
@ -50,7 +50,7 @@ def test_reset_slip39_basic_1of1(device_handler: "BackgroundDeviceHandler"):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# confirm new wallet
|
# confirm new wallet
|
||||||
reset.confirm_wait(debug, "Create new wallet")
|
reset.confirm_wait(debug, "Wallet creation")
|
||||||
|
|
||||||
# confirm back up
|
# confirm back up
|
||||||
reset.confirm_read(debug, "Success")
|
reset.confirm_read(debug, "Success")
|
||||||
@ -123,7 +123,7 @@ def test_reset_slip39_basic_16of16(device_handler: "BackgroundDeviceHandler"):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# confirm new wallet
|
# confirm new wallet
|
||||||
reset.confirm_wait(debug, "Create new wallet")
|
reset.confirm_wait(debug, "Wallet creation")
|
||||||
|
|
||||||
# confirm back up
|
# confirm back up
|
||||||
reset.confirm_read(debug, "Success")
|
reset.confirm_read(debug, "Success")
|
||||||
|
@ -31,7 +31,7 @@ def test_tt_pin_passphrase(client: Client):
|
|||||||
|
|
||||||
def input_flow():
|
def input_flow():
|
||||||
yield
|
yield
|
||||||
assert "Do you really want to recover a wallet?" in layout().get_content()
|
assert "recover wallet" in layout().text.lower()
|
||||||
client.debug.press_yes()
|
client.debug.press_yes()
|
||||||
|
|
||||||
yield
|
yield
|
||||||
@ -85,7 +85,7 @@ def test_tt_nopin_nopassphrase(client: Client):
|
|||||||
|
|
||||||
def input_flow():
|
def input_flow():
|
||||||
yield
|
yield
|
||||||
assert "Do you really want to recover a wallet?" in layout().get_content()
|
assert "recover wallet" in layout().text.lower()
|
||||||
client.debug.press_yes()
|
client.debug.press_yes()
|
||||||
|
|
||||||
yield
|
yield
|
||||||
|
@ -50,7 +50,7 @@ def test_abort(emulator: Emulator):
|
|||||||
|
|
||||||
device_handler.run(device.recover, pin_protection=False)
|
device_handler.run(device.recover, pin_protection=False)
|
||||||
layout = debug.wait_layout()
|
layout = debug.wait_layout()
|
||||||
assert layout.get_title() == "RECOVERY MODE"
|
assert layout.get_title() == "WALLET RECOVERY"
|
||||||
|
|
||||||
layout = debug.click(buttons.OK, wait=True)
|
layout = debug.click(buttons.OK, wait=True)
|
||||||
assert "Select number of words" in layout.text
|
assert "Select number of words" in layout.text
|
||||||
|
@ -1516,50 +1516,50 @@
|
|||||||
"TT_reset_recovery-test_recovery_bip39_dryrun.py::test_seed_mismatch": "489efce4df13f3675171aabbdb45d9338ad24636bb03ad9c106f0e33d240427b",
|
"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_dryrun.py::test_uninitialized": "1cbcf9bba947956dbccfb2fa59b4e734a6696f6608c6b772829bfa320789be02",
|
||||||
"TT_reset_recovery-test_recovery_bip39_t2.py::test_already_initialized": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae",
|
"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_nopin_nopassphrase": "a2dc8e3009d8daf02d56ffb54083b8edd0996d4aa174b131ec4ef4d3812a8f82",
|
||||||
"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_pin_passphrase": "908e9b06393f9942083fda2f39f6cbde723be0548d552e248696ff700158ecbf",
|
"TT_reset_recovery-test_recovery_bip39_t2.py::test_tt_pin_passphrase": "9f6fcbf7e79bd185c7f77db3e7411e1c5c6e095e2deb83248475068ca635302e",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "ea1915d2bdbed2f27aa5f44b43581e4c45cda865f40f30235e8cc475d4c72b18",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_abort": "27d8a9fca3e35281e82b5dcbdc7e5b09b6ba9b60ad066feaa07cd15bcc200056",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_extra_share_entered": "0d2552c483f5184f30c39dd34fe18c210cfe673fb389b9422a58147b02308377",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_extra_share_entered": "bbc295a9e6931f67dd4e006dd235ca6097f728e8504ca3641e4f2866614f5887",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_group_threshold_reached": "8425b0e8ea7591425750bab0b6aed6bb278657420dcd7b31a59b124e00dd5034",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_group_threshold_reached": "5a99501f9c90d2d27797ab75ccd8a5ed492894f358689104792dcef1033cc625",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "3b13d0b3e9a79c3d139431d9261ffb7f171bd7d01dd2759e6659291866bb33ae",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_noabort": "ca215b6b06215d2d931197fa04313f179b08612901877b99a361225d57dc1893",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "ca667cec51947de87c47a23e6be914aedd6e5b8d45166344a64998471af84053",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_same_share": "82434e50f2f1cd4d9bb90fbf5ea7c44756a7f434b6abdb3895716cf65446fddb",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "96911f5c93c73ea2576360550123c4e8ac87beb767fe8a1191e8cf29d11ad56f",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares0-c2d2e26ad06023c60145f1-afc2dad5": "0459af236116c3a1967e90cb4f09ec64faa83bb54b0c194f2d617a48352b3a4a",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "83c8e02a94e4e2c2bc2d30b62bc069d14cfa5f1af09825d06b593085fa558c07",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret[shares1-c41d5cf80fed71a008a3a0-eb47093e": "787d718405dbe2455acafd7c08e8531d3d0cdb417505173f62d2f0800a8a5973",
|
||||||
"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[shares0-c2d2-850ffa77": "ed22bc6525d8b485d2afe9c1cc3d8495d1fee75afcd1663dc39e80a0404ab425",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "c17dcc4090667fcc98eb3fb4c2d1a53c7539651fa85ab30efbabcd6289f7a070",
|
"TT_reset_recovery-test_recovery_slip39_advanced.py::test_secret_click_info_button[shares1-c41d-ca9ddec8": "f04611de9772fc345072471a4ccc9fcda1e1952baea003b0329b5c3b01d34b5c",
|
||||||
"TT_reset_recovery-test_recovery_slip39_advanced_dryrun.py::test_2of3_dryrun": "d82a31b085b52eae882ea9f07a319ab711a66b9ba309b3efb5ac2d048912ad10",
|
"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_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_1of1": "d30d5c840d1e932547aedf6720e1ea5144455112e760422cab1aec5d6c9c26f6",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_abort": "ea1915d2bdbed2f27aa5f44b43581e4c45cda865f40f30235e8cc475d4c72b18",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_abort": "27d8a9fca3e35281e82b5dcbdc7e5b09b6ba9b60ad066feaa07cd15bcc200056",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_ask_word_number": "6de3122125e5ce8e448617c1a9e7be6ae991bf755d69c333b2c4cbf164f41e83",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_ask_word_number": "a8094f1d078a0eddc097b00e67d27cca9c1df917cc340f666194803e77ad94df",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "a8e0cee27af9a2fd831bf69d9bf5fe678594c4f21d4cc349d7b2936f461ddb68",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_noabort": "388ada02eda485cc063f01c34faa2f0d57692396cc128ae749ebb42a555ee7ef",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_recover_with_pin_passphrase": "bec901f5d0700146a18791c5d61fb4f861b8bc33baf869dcffa10a1070759616",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_recover_with_pin_passphrase": "6fc54a3f796fcde0a15a9ef6d174b6edc864cae67c5ffa3de4e4e88fcc7e7988",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_same_share": "40e69fd098e950a129898baa6a3050fb995b0718eb52f2d0a71bf5bd86f1ffbf",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_same_share": "e92799ee818e2bce75bad7de73356a5df74337be64387692eec8fe6a7c775de6",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares0-491b795b80fc21ccdf466c0fbc98c8fc]": "e6204f0c96ab61736598d97412cd3bda7aea5671277a8c1cd51229e759a598d1",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares0-491b795b80fc21ccdf466c0fbc98c8fc]": "56574dc9cafbfd8315b4eca4e0c505bf82d026a9ebb4a6940589a5425634387e",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares1-b770e0da1363247652de97a39-a50896b7": "ebb2564ff23b5a3cc64f6bdab670ce7c5d4e1bfc1864bd132d2de403c7a73380",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_secret[shares1-b770e0da1363247652de97a39-a50896b7": "03801f71238abfb2c8f2f31ebbdb24f5f8a9c281331380535e8ddcdc68cdb4db",
|
||||||
"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[0]": "f5dadcc0f26b23feb57ef9631dc4560630fa1f844d8400995faeb2b60814e348",
|
||||||
"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[1]": "d3fe8653fcf9f68ce3787df4a174f0821fafd4ce061aa194a046e894b47e43e8",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[2]": "366197e5c0ae4748f94350037c6cf9905af0c825548e3d993b634a06ae12d9b8",
|
"TT_reset_recovery-test_recovery_slip39_basic.py::test_wrong_nth_word[2]": "f247455f45556b7b5b71008703b4aaf6c2b5310ada694fb22e53c8cf753c3018",
|
||||||
"TT_reset_recovery-test_recovery_slip39_basic_dryrun.py::test_2of3_dryrun": "a6b5e4f08546d0bcdbfa2e798a4b56719743f691da7e6946a71681c0aaec2056",
|
"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_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]": "c190a8ea4f1bef1de5dc59871a564290a0ffc51e417d93e7ea277d7fdfbbfc53",
|
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Bip39-backup_flow_bip39]": "bff67c223da54ad64ee60abf1912be025913f94b67728afdc7e600c40de3934c",
|
||||||
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced-bac-f67baa1c": "fcf541d6f16707a369134b15e5b96918cf6d710ad67d302dc01e7c85edbcc976",
|
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Advanced-bac-f67baa1c": "9ef7bdbe75302b32684eca62183885c26e994d2a32f20cd07823d01a4996ef91",
|
||||||
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic-backup-6348e7fe": "76e61f9d8a7e376e06ce22f100fff2695cbfd9c51557258e35139cffb4303e58",
|
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_manual[BackupType.Slip39_Basic-backup-6348e7fe": "4a1959eee0d5af5fb68378702fdef30e3850381a92eb339959bfcc6da2fb03f8",
|
||||||
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "32c679421e1b681573742e68f5e23707345d8eec70102689f26f3d6be2fb8157",
|
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Bip39-backup_flow_bip39]": "98b9c6fa669763f0688be9ef317abf70999c82ac4363b0b09c47dcc6380e904c",
|
||||||
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced-backup-dcbda5cf": "2a0de8ff0de71ab4d1e6163ef86f162fb60fe9b939169fd357c96f5e9f57aec2",
|
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Advanced-backup-dcbda5cf": "152d2a026a08511ff553e27647131d3ff6fd6d680adfe40b73ca597849d2e7fb",
|
||||||
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic-backup_fl-1577de4d": "2ff34f612b51c36d416881701efa249c3aa68b36da43670183c4b24e5a9e09ee",
|
"TT_reset_recovery-test_reset_backup.py::test_skip_backup_msg[BackupType.Slip39_Basic-backup_fl-1577de4d": "0b90aaf1f896cc26fba20be86e3e37a949f4f58041a6d2ba3a68e144ecc5ee70",
|
||||||
"TT_reset_recovery-test_reset_bip39_t2.py::test_already_initialized": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae",
|
"TT_reset_recovery-test_reset_bip39_t2.py::test_already_initialized": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae",
|
||||||
"TT_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "de4f40345c49662f1a8ce8249dffeb3eee0d4f00d3ebeb13ec1e4b8347609454",
|
"TT_reset_recovery-test_reset_bip39_t2.py::test_failed_pin": "aee0f776a66f7b7a8b8ebdf7fac6d38c7a7bb28aafa3a7678d4cf610d7b8764d",
|
||||||
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "a86599521f0117abae401979552ad8b01a73ac5a996cd5652faa6def8cab8343",
|
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device": "6c401c3c716ac6e9fbf8df3ae8c86d6a01edbe2789b11e3cfff4ce45e83a74ef",
|
||||||
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "02c8f1e681c9c8f241cc2af4c9ed6f55d4d8c3d46eb8943859079859d8436121",
|
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_192": "ed68ddd5b20ebd2676bdbe7173263a44bce69c4bbe619bc15cc0e34896a7fac8",
|
||||||
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "0f6beb876550f17fcfb24205b5cfc3dfbab2e050a4a1eb463cd00edddd802ef3",
|
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_device_pin": "c2a5f9b1e9f89243503af5e661cf0deaf33daf43fb64706cd089b2e3a5e25a2b",
|
||||||
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "62fb402d690d3e300cc3b48697c3674c0abaae635855738d355253ca5e63f814",
|
"TT_reset_recovery-test_reset_bip39_t2.py::test_reset_failed_check": "fa916d548c9f2091c3ab06972241ec427d2f47e78130c157bbdd05268c40f81b",
|
||||||
"TT_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "f575662fdbb94f038c61378d11234a8be40ff762c425bd4fe9776438e6c45089",
|
"TT_reset_recovery-test_reset_recovery_bip39.py::test_reset_recovery": "b199a8e4817884b76115ea3cf09ec7368dba08e4c026f1a48df80dae591e92bd",
|
||||||
"TT_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "cb76ee44fa16fb759dc7d258ba3afdce214977d7b9c4d426ab694f7d93f9e9c3",
|
"TT_reset_recovery-test_reset_recovery_slip39_advanced.py::test_reset_recovery": "e70655249d26442b9fcf4a0de133f15f108267c03da532aa5df6639dbf2c02c7",
|
||||||
"TT_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "1c4e62fb5dc548d974ae59b8bffa1582823a608ddb3e0892ba196ddbd4bd893e",
|
"TT_reset_recovery-test_reset_recovery_slip39_basic.py::test_reset_recovery": "1985a029684557c92c4413990dc61f062c1c9fd1b9e3fb38793e83d01983879e",
|
||||||
"TT_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "b646036a2464a674688a6eee1c0fec7b15dbef8b0438696760c5a490f170f289",
|
"TT_reset_recovery-test_reset_slip39_advanced.py::test_reset_device_slip39_advanced": "953c646844e1ad9f2b2e81506f01761bea9b7c31cf06a24ea83de65a92a8013c",
|
||||||
"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "bddc9481eae2a9549edcd53a20dcad3a5c137b2ce6ab037fa7395118baa0b399",
|
"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic": "ec9373002f8a2d7e9de36f766bb5133a7b30b67daac7aa6e4e8ac034a1d84381",
|
||||||
"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "80cac8bf29bf75d83decaf8b821df23798cb9b702ed5f2b3072af295fae45155",
|
"TT_reset_recovery-test_reset_slip39_basic.py::test_reset_device_slip39_basic_256": "f36510a719acbd65d7ce83619cd2b51932b96763b06475fafe32b2dd3efd9177",
|
||||||
"TT_ripple-test_get_address.py::test_ripple_get_address": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae",
|
"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_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_invalid_fee": "bd83a31d0fc4c23953dfd0d138e4441984e34698ace96aad5308a4ae51b712ae",
|
||||||
@ -1669,7 +1669,7 @@
|
|||||||
"TT_test_msg_sd_protect.py::test_enable_disable": "281291394deac125a39600cbe887143d6acae06c34204ea2a204e04f7ac4ff9d",
|
"TT_test_msg_sd_protect.py::test_enable_disable": "281291394deac125a39600cbe887143d6acae06c34204ea2a204e04f7ac4ff9d",
|
||||||
"TT_test_msg_sd_protect.py::test_refresh": "c4d3fd6a6fa2cd604797213ad78ad7db920baf978ac74c5e6a63efe92eab5c1f",
|
"TT_test_msg_sd_protect.py::test_refresh": "c4d3fd6a6fa2cd604797213ad78ad7db920baf978ac74c5e6a63efe92eab5c1f",
|
||||||
"TT_test_msg_sd_protect.py::test_wipe": "75a8d711080e86476ccfa571cd3f34a920f066fd3f68bd6908b9933fa40bf3f2",
|
"TT_test_msg_sd_protect.py::test_wipe": "75a8d711080e86476ccfa571cd3f34a920f066fd3f68bd6908b9933fa40bf3f2",
|
||||||
"TT_test_msg_wipedevice.py::test_autolock_not_retained": "226a96885a6493ffb23f02fe7d7faccb69d6d993f07fa1257da8e72b7818c384",
|
"TT_test_msg_wipedevice.py::test_autolock_not_retained": "b37910800ac26040928f663a85d936425bdb50632b1b0bf7cb8a1d85c6d3776f",
|
||||||
"TT_test_msg_wipedevice.py::test_wipe_device": "08515af24e5da8f81eedb0d878242f3c25751ff008822fdd61df4bd966104213",
|
"TT_test_msg_wipedevice.py::test_wipe_device": "08515af24e5da8f81eedb0d878242f3c25751ff008822fdd61df4bd966104213",
|
||||||
"TT_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "f023150016d0ab8c5db296ad35f2a626d4d74cc02fffd77f1e9fb1bca5fb8e9f",
|
"TT_test_passphrase_slip39_advanced.py::test_128bit_passphrase": "f023150016d0ab8c5db296ad35f2a626d4d74cc02fffd77f1e9fb1bca5fb8e9f",
|
||||||
"TT_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "f023150016d0ab8c5db296ad35f2a626d4d74cc02fffd77f1e9fb1bca5fb8e9f",
|
"TT_test_passphrase_slip39_advanced.py::test_256bit_passphrase": "f023150016d0ab8c5db296ad35f2a626d4d74cc02fffd77f1e9fb1bca5fb8e9f",
|
||||||
|
Loading…
Reference in New Issue
Block a user