feat(core): support recipient address chunkification in Ethereum sign flow

[no changelog]
pull/3357/head
grdddj 7 months ago committed by Jiří Musil
parent 37fcbceded
commit 02ec0ac43c

@ -349,6 +349,14 @@ extern "C" fn new_confirm_blob(n_args: usize, args: *const Obj, kwargs: *mut Map
.unwrap_or_else(|_| Obj::const_none())
.try_into_option()?;
let hold: bool = kwargs.get_or(Qstr::MP_QSTR_hold, false)?;
let chunkify: bool = kwargs.get_or(Qstr::MP_QSTR_chunkify, false)?;
let style = if chunkify {
// Chunkifying the address into smaller pieces when requested
&theme::TEXT_MONO_ADDRESS_CHUNKS
} else {
&theme::TEXT_MONO_DATA
};
let paragraphs = ConfirmBlob {
description: description.unwrap_or_else(StrBuffer::empty),
@ -356,7 +364,7 @@ extern "C" fn new_confirm_blob(n_args: usize, args: *const Obj, kwargs: *mut Map
data: data.try_into()?,
description_font: &theme::TEXT_BOLD,
extra_font: &theme::TEXT_NORMAL,
data_font: &theme::TEXT_MONO_DATA,
data_font: style,
}
.into_paragraphs();
@ -740,6 +748,7 @@ extern "C" fn new_confirm_ethereum_tx(n_args: usize, args: *const Obj, kwargs: *
let total_amount: StrBuffer = kwargs.get(Qstr::MP_QSTR_total_amount)?.try_into()?;
let maximum_fee: StrBuffer = kwargs.get(Qstr::MP_QSTR_maximum_fee)?.try_into()?;
let items: Obj = kwargs.get(Qstr::MP_QSTR_items)?;
let chunkify: bool = kwargs.get_or(Qstr::MP_QSTR_chunkify, false)?;
let get_page = move |page_index| {
match page_index {
@ -748,7 +757,14 @@ extern "C" fn new_confirm_ethereum_tx(n_args: usize, args: *const Obj, kwargs: *
let btn_layout = ButtonLayout::cancel_none_text("CONTINUE".into());
let btn_actions = ButtonActions::cancel_none_next();
let ops = OpTextLayout::new(theme::TEXT_MONO_DATA).text_mono(recipient.clone());
let style = if chunkify {
// Chunkifying the address into smaller pieces when requested
theme::TEXT_MONO_ADDRESS_CHUNKS
} else {
theme::TEXT_MONO_DATA
};
let ops = OpTextLayout::new(style).text_mono(recipient.clone());
let formatted = FormattedText::new(ops).vertically_centered();
Page::new(btn_layout, btn_actions, formatted).with_title("RECIPIENT".into())
@ -1643,6 +1659,7 @@ pub static mp_module_trezorui2: Module = obj_module! {
/// verb: str = "CONFIRM",
/// verb_cancel: str | None = None,
/// hold: bool = False,
/// chunkify: bool = False,
/// ) -> object:
/// """Confirm byte sequence data."""
Qstr::MP_QSTR_confirm_blob => obj_fn_kw!(0, new_confirm_blob).as_obj(),
@ -1758,6 +1775,7 @@ pub static mp_module_trezorui2: Module = obj_module! {
/// total_amount: str,
/// maximum_fee: str,
/// items: Iterable[Tuple[str, str]],
/// chunkify: bool = False,
/// ) -> object:
/// """Confirm details about Ethereum transaction."""
Qstr::MP_QSTR_confirm_ethereum_tx => obj_fn_kw!(0, new_confirm_ethereum_tx).as_obj(),

@ -552,9 +552,11 @@ extern "C" fn new_confirm_blob(n_args: usize, args: *const Obj, kwargs: *mut Map
.unwrap_or_else(|_| Obj::const_none())
.try_into_option()?;
let hold: bool = kwargs.get_or(Qstr::MP_QSTR_hold, false)?;
let chunkify: bool = kwargs.get_or(Qstr::MP_QSTR_chunkify, false)?;
ConfirmBlobParams::new(title, data, description, verb, verb_cancel, hold)
.with_extra(extra)
.with_chunkify(chunkify)
.into_layout()
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -1642,6 +1644,7 @@ pub static mp_module_trezorui2: Module = obj_module! {
/// verb: str | None = None,
/// verb_cancel: str | None = None,
/// hold: bool = False,
/// chunkify: bool = False,
/// ) -> object:
/// """Confirm byte sequence data."""
Qstr::MP_QSTR_confirm_blob => obj_fn_kw!(0, new_confirm_blob).as_obj(),

@ -48,6 +48,7 @@ def confirm_blob(
verb: str = "CONFIRM",
verb_cancel: str | None = None,
hold: bool = False,
chunkify: bool = False,
) -> object:
"""Confirm byte sequence data."""
@ -174,6 +175,7 @@ def confirm_ethereum_tx(
total_amount: str,
maximum_fee: str,
items: Iterable[Tuple[str, str]],
chunkify: bool = False,
) -> object:
"""Confirm details about Ethereum transaction."""
@ -503,6 +505,7 @@ def confirm_blob(
verb: str | None = None,
verb_cancel: str | None = None,
hold: bool = False,
chunkify: bool = False,
) -> object:
"""Confirm byte sequence data."""

@ -30,11 +30,13 @@ async def require_confirm_tx(
gas_limit: int,
network: EthereumNetworkInfo,
token: EthereumTokenInfo | None,
chunkify: bool,
) -> None:
if to_bytes:
to_str = address_from_bytes(to_bytes, network)
else:
to_str = "new contract?"
chunkify = False
total_amount = format_ethereum_amount(value, token, network)
maximum_fee = format_ethereum_amount(gas_price * gas_limit, None, network)
@ -46,7 +48,9 @@ async def require_confirm_tx(
("Gas price:", gas_price_str),
)
await confirm_ethereum_tx(to_str, total_amount, maximum_fee, items)
await confirm_ethereum_tx(
to_str, total_amount, maximum_fee, items, chunkify=chunkify
)
async def require_confirm_tx_eip1559(
@ -57,12 +61,14 @@ async def require_confirm_tx_eip1559(
gas_limit: int,
network: EthereumNetworkInfo,
token: EthereumTokenInfo | None,
chunkify: bool,
) -> None:
if to_bytes:
to_str = address_from_bytes(to_bytes, network)
else:
to_str = "new contract?"
chunkify = False
total_amount = format_ethereum_amount(value, token, network)
maximum_fee = format_ethereum_amount(max_gas_fee * gas_limit, None, network)
@ -76,7 +82,9 @@ async def require_confirm_tx_eip1559(
("Priority fee:", max_priority_fee_str),
)
await confirm_ethereum_tx(to_str, total_amount, maximum_fee, items)
await confirm_ethereum_tx(
to_str, total_amount, maximum_fee, items, chunkify=chunkify
)
def require_confirm_unknown_token(address_bytes: bytes) -> Awaitable[None]:

@ -59,6 +59,7 @@ async def sign_tx(
int.from_bytes(msg.gas_limit, "big"),
defs.network,
token,
bool(msg.chunkify),
)
data = bytearray()

@ -71,6 +71,7 @@ async def sign_tx_eip1559(
int.from_bytes(gas_limit, "big"),
defs.network,
token,
bool(msg.chunkify),
)
data = bytearray()

@ -771,6 +771,7 @@ async def confirm_blob(
hold: bool = False,
br_code: ButtonRequestType = BR_TYPE_OTHER,
ask_pagination: bool = False,
chunkify: bool = False,
) -> None:
title = title.upper()
description = description or ""
@ -783,6 +784,7 @@ async def confirm_blob(
verb=verb,
verb_cancel=verb_cancel,
hold=hold,
chunkify=chunkify,
)
)
@ -996,6 +998,7 @@ async def confirm_ethereum_tx(
items: Iterable[tuple[str, str]],
br_type: str = "confirm_ethereum_tx",
br_code: ButtonRequestType = ButtonRequestType.SignTx,
chunkify: bool = False,
) -> None:
await raise_if_not_confirmed(
interact(
@ -1005,6 +1008,7 @@ async def confirm_ethereum_tx(
total_amount=total_amount,
maximum_fee=maximum_fee,
items=items,
chunkify=chunkify,
)
),
br_type,

@ -749,6 +749,7 @@ async def confirm_blob(
hold: bool = False,
br_code: ButtonRequestType = BR_TYPE_OTHER,
ask_pagination: bool = False,
chunkify: bool = False,
) -> None:
title = title.upper()
description = description or ""
@ -761,6 +762,7 @@ async def confirm_blob(
hold=hold,
verb=verb,
verb_cancel=verb_cancel,
chunkify=chunkify,
)
)
@ -935,6 +937,7 @@ async def confirm_ethereum_tx(
items: Iterable[tuple[str, str]],
br_type: str = "confirm_ethereum_tx",
br_code: ButtonRequestType = ButtonRequestType.SignTx,
chunkify: bool = False,
) -> None:
total_layout = RustLayout(
trezorui2.confirm_total(
@ -961,6 +964,7 @@ async def confirm_ethereum_tx(
"RECIPIENT",
recipient,
verb="CONTINUE",
chunkify=chunkify,
)
try:

@ -1656,27 +1656,27 @@
"TR_ethereum-test_signtx.py::test_signtx[False-nodata_1]": "daa8f8a145d85ea0065efca1ef5e727c6f7a247b13ab78106007cd65cbf26168",
"TR_ethereum-test_signtx.py::test_signtx[False-nodata_2_bigvalue]": "47d2dfe8bf76e81d5004d41d5129078630172c3b68adc51a0543cbb15ccb2d20",
"TR_ethereum-test_signtx.py::test_signtx[False-wanchain]": "a0903e52fb3cf84ec909d03452f10655cb8019279d04f37da2ce8fba3ab662d7",
"TR_ethereum-test_signtx.py::test_signtx[True-Auxilium]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-ETC]": "3187e16f10d547f1b46224abd82b340e8f04310a2b03b9e2554c817139b1a3c0",
"TR_ethereum-test_signtx.py::test_signtx[True-Ethereum]": "0956f8f473f6267cb5a087079d1ce55c4572e37f84deb5d54925d24b27ca3e77",
"TR_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path0]": "775ae7d89071cae390fea4069fd3eaf9616fb98cad792de0f31efa7888b0492e",
"TR_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path1]": "0956f8f473f6267cb5a087079d1ce55c4572e37f84deb5d54925d24b27ca3e77",
"TR_ethereum-test_signtx.py::test_signtx[True-Palm]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-Pirl]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-Rinkeby]": "124c91e03b54f5c82c9c40d14c3b94c5e9aceb5b78b5d22c30050c080d661768",
"TR_ethereum-test_signtx.py::test_signtx[True-Ropsten]": "124c91e03b54f5c82c9c40d14c3b94c5e9aceb5b78b5d22c30050c080d661768",
"TR_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_eth_path]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_testnet_path]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-data_1]": "9ca83f2be46dbac7e1ee6de003064e08505b2eec50bc5b1f68e805f26d9d6ac4",
"TR_ethereum-test_signtx.py::test_signtx[True-data_2_bigdata]": "9ef439e09b189a61ccf1c46e44588565b227410a62bb7f7d79bd43a9aec7f972",
"TR_ethereum-test_signtx.py::test_signtx[True-erc20_token]": "b37283ff47057c5a7b2750066f26729f3933807eb15803296575f20c127fa7fb",
"TR_ethereum-test_signtx.py::test_signtx[True-max_chain_id]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-max_chain_plus_one]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-max_uint64]": "16c842adfb793ccc79bdef3ec1bce71ff82e49d9d87c771c343215755a8c8b5c",
"TR_ethereum-test_signtx.py::test_signtx[True-Auxilium]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-ETC]": "88087e65b791d96e9b47c4af01ac67c0fc04f500306a8530f4ed7ba44567f0a0",
"TR_ethereum-test_signtx.py::test_signtx[True-Ethereum]": "2b4db6c81e44c8b3da09913d97d837f1dedd5d3dc006395da34a43ae5c97b825",
"TR_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path0]": "7f2d6e0813ccceca5d45b146cc73462799e5f30032f798f4d62d336abd9f6147",
"TR_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path1]": "2b4db6c81e44c8b3da09913d97d837f1dedd5d3dc006395da34a43ae5c97b825",
"TR_ethereum-test_signtx.py::test_signtx[True-Palm]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-Pirl]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-Rinkeby]": "438b850e0d0a9ce257738963d61c41894a8a9c56985eea1de046aeb948a1318b",
"TR_ethereum-test_signtx.py::test_signtx[True-Ropsten]": "438b850e0d0a9ce257738963d61c41894a8a9c56985eea1de046aeb948a1318b",
"TR_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_eth_path]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_testnet_path]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-data_1]": "7722763533047e5c6983b1de65c3d1d5eeb7e55793e2fb8bcd298357b66e477a",
"TR_ethereum-test_signtx.py::test_signtx[True-data_2_bigdata]": "7616c80236cfdb802199764ae835b588cb3cd5a2cb307a55d02c36222967a29c",
"TR_ethereum-test_signtx.py::test_signtx[True-erc20_token]": "7080c9cb52fd847b4432a4f2269e043b74c1edfb69f187a97202fa092f2e949e",
"TR_ethereum-test_signtx.py::test_signtx[True-max_chain_id]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-max_chain_plus_one]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-max_uint64]": "46042105e15556750a3bbbc496f4c17d2a9d3dfd1bee1d059c5f54936a234e29",
"TR_ethereum-test_signtx.py::test_signtx[True-newcontract]": "5e43d085de9ceca68ea77da4981bb2930fade59e2c26287628291ff3a6b3e225",
"TR_ethereum-test_signtx.py::test_signtx[True-nodata_1]": "daa8f8a145d85ea0065efca1ef5e727c6f7a247b13ab78106007cd65cbf26168",
"TR_ethereum-test_signtx.py::test_signtx[True-nodata_2_bigvalue]": "47d2dfe8bf76e81d5004d41d5129078630172c3b68adc51a0543cbb15ccb2d20",
"TR_ethereum-test_signtx.py::test_signtx[True-wanchain]": "a0903e52fb3cf84ec909d03452f10655cb8019279d04f37da2ce8fba3ab662d7",
"TR_ethereum-test_signtx.py::test_signtx[True-nodata_1]": "9f6f4631cfe916b98a0419bdce3f34714ab1c4a0c19cb16e3176d5116110761d",
"TR_ethereum-test_signtx.py::test_signtx[True-nodata_2_bigvalue]": "825a1549502862888fdb666b99af27c00117c5baeadc48566e16df650398c66d",
"TR_ethereum-test_signtx.py::test_signtx[True-wanchain]": "ad16b748d6601ab5778782fd64fcff4a5000e0497cb96bf28a9d0dcfd47568b3",
"TR_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_data_go_back]": "c1c0ed86a9947cc06b66929a189a78cd40c3bd6c15b72c6ce9b5aca91e4f853b",
"TR_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_data_scroll_down]": "fe89e174ef1dcb7bd5b7457c6d0a5abfc125d7359678d6cf3a2d6e3cf200422b",
"TR_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_data_skip]": "2b96578a51534dd018f887b1de4531ef96cc8dcee0cfe240ca84283f9aa810a9",
@ -1687,13 +1687,13 @@
"TR_ethereum-test_signtx.py::test_signtx_eip1559[False-large_chainid]": "14b43f7e0b3c0eaab1c2946ab44247cecc190561177b866e110a335ad66f8545",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[False-long_fees]": "29e3e74029f69413943f67ccfb1fef1278385638d114b4179e64d917467c55d8",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[False-nodata]": "dd22a6444092e36d8f1c66f96c947d0219421daac029991dac288b5ba13381d1",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-Ledger Live legacy path]": "dd22a6444092e36d8f1c66f96c947d0219421daac029991dac288b5ba13381d1",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-data_1]": "e1b8cf156d89250efbe3ccfffd7c5e02a6c8878f2b4b1e66e727906de4daeb29",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-data_2_bigdata]": "06a0e952406f0401eb5a4e434acfcd032999494e5e57c81a3a8f1104dc5afd00",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-erc20]": "1ac10c976195d3e631101bf76478a25041696585a34045ae42bd0a2e1d80143c",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-large_chainid]": "14b43f7e0b3c0eaab1c2946ab44247cecc190561177b866e110a335ad66f8545",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-long_fees]": "29e3e74029f69413943f67ccfb1fef1278385638d114b4179e64d917467c55d8",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-nodata]": "dd22a6444092e36d8f1c66f96c947d0219421daac029991dac288b5ba13381d1",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-Ledger Live legacy path]": "7e2b1cb1f840d8f7a8d081f774aee7d67ada6cf586bfb9b6a61a82944f4331b2",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-data_1]": "404f5e74d4b2dffbeaef0b8220038e82c62a665fc92566422059c282b209e1ad",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-data_2_bigdata]": "8718e49401f57f5bcb12a3057b14c233fdffdc139568fdba006604626998dd5c",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-erc20]": "bf672468f063973b46c1cd206df50a63b37cc85fa0cd70d2914b6b48719503af",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-large_chainid]": "4e609212c234b7ec1a5837d51e4c2c827f651fe30ba3cd2bc314e712a4e4a737",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-long_fees]": "2b43ee4d593688570198668fdf2e2f3ccb4d0fc00fad89ef2f78def6d574e411",
"TR_ethereum-test_signtx.py::test_signtx_eip1559[True-nodata]": "7e2b1cb1f840d8f7a8d081f774aee7d67ada6cf586bfb9b6a61a82944f4331b2",
"TR_ethereum-test_signtx.py::test_signtx_eip1559_access_list": "b6034c12854236ba96f002859814ee3098f5750c33732a81c0674e4e44f5866c",
"TR_ethereum-test_signtx.py::test_signtx_eip1559_access_list_larger": "b6034c12854236ba96f002859814ee3098f5750c33732a81c0674e4e44f5866c",
"TR_ethereum-test_signtx.py::test_signtx_fee_info": "18af368ec44c0069b1be6e64f59fb1a2ede672efb24b4dc4f8ae73f4a18525f8",
@ -2043,7 +2043,7 @@
"TT_test_pin.py::test_pin_cancel": "05f5f819be61fec8c7c4341fd23c1bccf78cff93f05d573dd4f528bb0f1edbf5",
"TT_test_pin.py::test_pin_change": "3f2aaff0a0ddfa44e623ba68cb64c7941354707972532ff8db110df539afed71",
"TT_test_pin.py::test_pin_delete_hold": "110a0144f65b65956e5a06f71888d4696fb35fcd4ea5f9f8b9e2bfdecac06116",
"TT_test_pin.py::test_pin_empty_cannot_send": "197c595eab9757f72ed59642b7bea57728397ffe072a762a126d20833d0b9278",
"TT_test_pin.py::test_pin_empty_cannot_send": "33637ee3964af923f76ce4cb0731f8203927ff0658286e1218fb4cbaa71a1b22",
"TT_test_pin.py::test_pin_incorrect": "739e082079cd057f4a72e3d4f6a15bf447d099273e3a5c284f85fb688e596096",
"TT_test_pin.py::test_pin_long": "795a3ea7d9661924c334ae32c3da99d4cc27909b905808a422a240d221af0775",
"TT_test_pin.py::test_pin_long_delete": "8fc0b6b0b80505d2e701c52c23498cf23584b7f9557dde7e7b3eab2eb4b7c447",
@ -2979,27 +2979,27 @@
"TT_ethereum-test_signtx.py::test_signtx[False-nodata_1]": "c81aab95508fd8ecdba3fe41778e4e7be17cda80b3840151839c9dc9329cb924",
"TT_ethereum-test_signtx.py::test_signtx[False-nodata_2_bigvalue]": "2f22d59bffb56e1cf2ba2353a6cd6c96cf5d04c95eec1b7d25bf223077008772",
"TT_ethereum-test_signtx.py::test_signtx[False-wanchain]": "3ad938f73145a9eae5303218fe98f832e98e4d94e525d6f3bfdbdcb698549657",
"TT_ethereum-test_signtx.py::test_signtx[True-Auxilium]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-ETC]": "70f61cbd4bbed46fadcdb3405b47ea23129026bfd99eb209ed8c5c2c3a03dc12",
"TT_ethereum-test_signtx.py::test_signtx[True-Ethereum]": "089129c3cf550128d8f2c9f54e50a0705f6094a1944a17a9575dca950cd57a22",
"TT_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path0]": "88fa5319d82eda664c0e33f665aef10d782d6df42cff31bda8e170239013170a",
"TT_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path1]": "089129c3cf550128d8f2c9f54e50a0705f6094a1944a17a9575dca950cd57a22",
"TT_ethereum-test_signtx.py::test_signtx[True-Palm]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-Pirl]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-Rinkeby]": "b2ca4fea79015cdb99b128ee137b6a2e6a7f6baac44c4d26e1eeb0a9b08f1315",
"TT_ethereum-test_signtx.py::test_signtx[True-Ropsten]": "b2ca4fea79015cdb99b128ee137b6a2e6a7f6baac44c4d26e1eeb0a9b08f1315",
"TT_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_eth_path]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_testnet_path]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-data_1]": "c2977250dbd06ad14031de715da17175f5c9db6ddbc3abf3f41b641c68f2e954",
"TT_ethereum-test_signtx.py::test_signtx[True-data_2_bigdata]": "fa47e3639c860f5865382e2b4ba55d833989b6a0f41ed81fa1066a57105f8c59",
"TT_ethereum-test_signtx.py::test_signtx[True-erc20_token]": "3ee1b6b209c139b60a71ee0eaa3fdfe342290dc0fd850396a85e6a018cd95403",
"TT_ethereum-test_signtx.py::test_signtx[True-max_chain_id]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-max_chain_plus_one]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-max_uint64]": "b71d381dcc2c67bd4f50e5c4c9fde74eebe99c3f88030a83e69586a9891d7780",
"TT_ethereum-test_signtx.py::test_signtx[True-Auxilium]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-ETC]": "0ef31079e8df1fa01e872a2fac2daa28b1df648bad515a69d9c6014951119308",
"TT_ethereum-test_signtx.py::test_signtx[True-Ethereum]": "d672cf971c908bb336356df29037283651ab3ce88e998e25435fd84aeac6fefe",
"TT_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path0]": "1399e2245a8348e03f95dd1a439df497c13a74fbb7e60b31b909c243c1bdbb4e",
"TT_ethereum-test_signtx.py::test_signtx[True-Ledger Live legacy path1]": "d672cf971c908bb336356df29037283651ab3ce88e998e25435fd84aeac6fefe",
"TT_ethereum-test_signtx.py::test_signtx[True-Palm]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-Pirl]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-Rinkeby]": "f5d7bab7cb8b1cab1e1856c91a0af105fe034383c6699cc3395c3efc6fc9dc9f",
"TT_ethereum-test_signtx.py::test_signtx[True-Ropsten]": "f5d7bab7cb8b1cab1e1856c91a0af105fe034383c6699cc3395c3efc6fc9dc9f",
"TT_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_eth_path]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-Unknown_chain_id_testnet_path]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-data_1]": "1f28dfb98015aca1acdee20dff8a1100892ca40b3a7ba5df80c21629c7cbdfdf",
"TT_ethereum-test_signtx.py::test_signtx[True-data_2_bigdata]": "f9cf7d0ac69d056e77d5b8eea556d25357b8bbf18576fbe537cf7c480031e217",
"TT_ethereum-test_signtx.py::test_signtx[True-erc20_token]": "e31b5fed748116b585b5e86a6f9e842615516759cae407ebe561956d70afad35",
"TT_ethereum-test_signtx.py::test_signtx[True-max_chain_id]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-max_chain_plus_one]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-max_uint64]": "62d6ad021dfc6541a8d87ef99f13b5c8c206d417f51a90cf8eed0e926f1f2d42",
"TT_ethereum-test_signtx.py::test_signtx[True-newcontract]": "c68a2f214969822dbc0e96c938263565c38b0609743ff9dbeec33ee170058f72",
"TT_ethereum-test_signtx.py::test_signtx[True-nodata_1]": "c81aab95508fd8ecdba3fe41778e4e7be17cda80b3840151839c9dc9329cb924",
"TT_ethereum-test_signtx.py::test_signtx[True-nodata_2_bigvalue]": "2f22d59bffb56e1cf2ba2353a6cd6c96cf5d04c95eec1b7d25bf223077008772",
"TT_ethereum-test_signtx.py::test_signtx[True-wanchain]": "3ad938f73145a9eae5303218fe98f832e98e4d94e525d6f3bfdbdcb698549657",
"TT_ethereum-test_signtx.py::test_signtx[True-nodata_1]": "ac146a14d60488c3f201e11398fb6ad810c088614a9ce1d529319812e6d4d86e",
"TT_ethereum-test_signtx.py::test_signtx[True-nodata_2_bigvalue]": "2cc8a86f5940e557e838c23f85c899fa5e21663ffb9ab2e5420a30c75b850b84",
"TT_ethereum-test_signtx.py::test_signtx[True-wanchain]": "76b402adf767f9f34bc237dc37ccfdc48ca1c22fffb117ae8732636965a68d4e",
"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_data_go_back]": "ed8d6281f2d3565529281cad6b75da67dba088f1e410e1702d13ef112115d631",
"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_data_scroll_down]": "204d5cd1960d0da1770d6d5478ae130f765a07cd42d4051410e92166d94e2fbd",
"TT_ethereum-test_signtx.py::test_signtx_data_pagination[input_flow_data_skip]": "0310349fb18c476ec82e058667d8e6bf69adc14696a3755d878e7bae3bf108fb",
@ -3010,13 +3010,13 @@
"TT_ethereum-test_signtx.py::test_signtx_eip1559[False-large_chainid]": "997848a3ecc4f0c5ed8004867a8d5deae48e832c12d4e90bc192f28394a704fb",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[False-long_fees]": "6c238bf8ecd05787dac6139614f04b553982d7f8a5734f9cd7b1ccae9577e4c8",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[False-nodata]": "c81aab95508fd8ecdba3fe41778e4e7be17cda80b3840151839c9dc9329cb924",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-Ledger Live legacy path]": "c81aab95508fd8ecdba3fe41778e4e7be17cda80b3840151839c9dc9329cb924",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-data_1]": "c2977250dbd06ad14031de715da17175f5c9db6ddbc3abf3f41b641c68f2e954",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-data_2_bigdata]": "97fac4b6db7a446f53c3f1fa27ba925c1651a8831e76db7d220efbf414482139",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-erc20]": "3ee1b6b209c139b60a71ee0eaa3fdfe342290dc0fd850396a85e6a018cd95403",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-large_chainid]": "997848a3ecc4f0c5ed8004867a8d5deae48e832c12d4e90bc192f28394a704fb",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-long_fees]": "6c238bf8ecd05787dac6139614f04b553982d7f8a5734f9cd7b1ccae9577e4c8",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-nodata]": "c81aab95508fd8ecdba3fe41778e4e7be17cda80b3840151839c9dc9329cb924",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-Ledger Live legacy path]": "ac146a14d60488c3f201e11398fb6ad810c088614a9ce1d529319812e6d4d86e",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-data_1]": "1f28dfb98015aca1acdee20dff8a1100892ca40b3a7ba5df80c21629c7cbdfdf",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-data_2_bigdata]": "7838bcd3a0bbeeb327aa639e93ad0a938ecd3db27ae3086b5b8d7d1a2cf6970e",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-erc20]": "e31b5fed748116b585b5e86a6f9e842615516759cae407ebe561956d70afad35",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-large_chainid]": "2bd40660815fee49cfb00de9b8e64040cca5b61398b9c38a136225ac50e6830c",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-long_fees]": "d1a25de92c81d2dae67fb897356e8eb13b6c8fbb5d71fd8045959e5e848689a3",
"TT_ethereum-test_signtx.py::test_signtx_eip1559[True-nodata]": "ac146a14d60488c3f201e11398fb6ad810c088614a9ce1d529319812e6d4d86e",
"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list": "243010310ac5a4c70c627507ea8501cc61c2e20728eb06bc796f093132bebb4f",
"TT_ethereum-test_signtx.py::test_signtx_eip1559_access_list_larger": "243010310ac5a4c70c627507ea8501cc61c2e20728eb06bc796f093132bebb4f",
"TT_ethereum-test_signtx.py::test_signtx_fee_info": "c0e5bcb26ef58d6bd7659c58d1cc69f18f074997262d143e73324ded905c323f",

Loading…
Cancel
Save