Skip to content

Commit 002d426

Browse files
committed
chore(core/eckhart): update warnings
1 parent 8e66cc6 commit 002d426

File tree

18 files changed

+379
-328
lines changed

18 files changed

+379
-328
lines changed

core/embed/rust/librust_qstr.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,11 +678,13 @@ static void _librust_qstrs(void) {
678678
MP_QSTR_select_word;
679679
MP_QSTR_select_word_count;
680680
MP_QSTR_send__cancel_sign;
681+
MP_QSTR_send__cancel_transaction;
681682
MP_QSTR_send__confirm_sending;
682683
MP_QSTR_send__from_multiple_accounts;
683684
MP_QSTR_send__incl_transaction_fee;
684685
MP_QSTR_send__including_fee;
685686
MP_QSTR_send__maximum_fee;
687+
MP_QSTR_send__multisig_different_paths;
686688
MP_QSTR_send__receiving_to_multisig;
687689
MP_QSTR_send__send_from;
688690
MP_QSTR_send__send_in_the_app;

core/embed/rust/src/translations/generated/translated_string.rs

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/mocks/trezortranslate_keys.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -768,6 +768,7 @@ class TR:
768768
send__incl_transaction_fee: str = "incl. Transaction fee"
769769
send__including_fee: str = "Including fee:"
770770
send__maximum_fee: str = "Maximum fee"
771+
send__multisig_different_paths: str = "Using different paths for different XPUBs."
771772
send__receiving_to_multisig: str = "Receiving to a multisig address."
772773
send__send_from: str = "Send from"
773774
send__send_in_the_app: str = "After signing, send the transaction in the app."

core/src/apps/bitcoin/sign_tx/layout.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -290,13 +290,7 @@ async def confirm_nondefault_locktime(lock_time: int, lock_time_disabled: bool)
290290
from trezor.strings import format_timestamp
291291

292292
if lock_time_disabled:
293-
await layouts.show_warning(
294-
"nondefault_locktime",
295-
TR.bitcoin__locktime_no_effect,
296-
TR.words__continue_anyway_question,
297-
button=TR.buttons__continue,
298-
br_code=ButtonRequestType.SignTx,
299-
)
293+
await layouts.lock_time_disabled_warning()
300294
else:
301295
if lock_time < _LOCKTIME_TIMESTAMP_MIN_VALUE:
302296
text = TR.bitcoin__locktime_set_to_blockheight

core/src/trezor/ui/layouts/bolt/__init__.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ def confirm_multisig_warning() -> Awaitable[None]:
175175
def confirm_multisig_different_paths_warning() -> Awaitable[None]:
176176
return show_warning(
177177
"warning_multisig_different_paths",
178-
"Using different paths for different XPUBs.",
178+
TR.send__multisig_different_paths,
179179
TR.words__continue_anyway_question,
180180
)
181181

@@ -190,6 +190,16 @@ def confirm_multiple_accounts_warning() -> Awaitable[None]:
190190
)
191191

192192

193+
def lock_time_disabled_warning() -> Awaitable[None]:
194+
return show_warning(
195+
"nondefault_locktime",
196+
TR.bitcoin__locktime_no_effect,
197+
TR.words__continue_anyway_question,
198+
button=TR.buttons__continue,
199+
br_code=ButtonRequestType.SignTx,
200+
)
201+
202+
193203
def confirm_homescreen(image: bytes) -> Awaitable[None]:
194204
return raise_if_not_confirmed(
195205
trezorui_api.confirm_homescreen(

core/src/trezor/ui/layouts/caesar/__init__.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def confirm_multisig_warning() -> Awaitable[ui.UiResult]:
192192
def confirm_multisig_different_paths_warning() -> Awaitable[ui.UiResult]:
193193
return show_warning(
194194
"warning_multisig_different_paths",
195-
"Using different paths for different XPUBs.",
195+
TR.send__multisig_different_paths,
196196
TR.words__continue_anyway_question,
197197
)
198198

@@ -207,6 +207,16 @@ def confirm_multiple_accounts_warning() -> Awaitable[ui.UiResult]:
207207
)
208208

209209

210+
def lock_time_disabled_warning() -> Awaitable[ui.UiResult]:
211+
return show_warning(
212+
"nondefault_locktime",
213+
TR.bitcoin__locktime_no_effect,
214+
TR.words__continue_anyway_question,
215+
button=TR.buttons__continue,
216+
br_code=ButtonRequestType.SignTx,
217+
)
218+
219+
210220
def confirm_homescreen(image: bytes) -> Awaitable[None]:
211221
return raise_if_not_confirmed(
212222
trezorui_api.confirm_homescreen(

core/src/trezor/ui/layouts/delizia/__init__.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ def confirm_multisig_different_paths_warning() -> Awaitable[None]:
158158
return raise_if_not_confirmed(
159159
trezorui_api.show_danger(
160160
title=f"{TR.words__important}!",
161-
description="Using different paths for different XPUBs.",
161+
description=TR.send__multisig_different_paths,
162162
),
163163
"warning_multisig_different_paths",
164164
br_code=ButtonRequestType.Warning,
@@ -174,6 +174,16 @@ def confirm_multiple_accounts_warning() -> Awaitable[None]:
174174
)
175175

176176

177+
def lock_time_disabled_warning() -> Awaitable[None]:
178+
return show_warning(
179+
"nondefault_locktime",
180+
TR.bitcoin__locktime_no_effect,
181+
TR.words__continue_anyway_question,
182+
button=TR.buttons__continue,
183+
br_code=ButtonRequestType.SignTx,
184+
)
185+
186+
177187
def confirm_homescreen(
178188
image: bytes,
179189
) -> Awaitable[None]:

core/src/trezor/ui/layouts/eckhart/__init__.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,13 @@ def confirm_multisig_warning() -> Awaitable[None]:
163163

164164

165165
def confirm_multisig_different_paths_warning() -> Awaitable[None]:
166-
return raise_if_not_confirmed(
167-
trezorui_api.show_danger(
168-
title=TR.words__pay_attention,
169-
description="Using different paths for different XPUBs.",
170-
menu_title=TR.words__receive,
171-
),
166+
return show_danger(
172167
"warning_multisig_different_paths",
168+
content=TR.send__multisig_different_paths,
169+
title=TR.words__important,
170+
menu_title=TR.words__receive,
173171
br_code=ButtonRequestType.Warning,
172+
verb_cancel=TR.words__cancel_and_exit,
174173
)
175174

176175

@@ -184,6 +183,14 @@ def confirm_multiple_accounts_warning() -> Awaitable[None]:
184183
)
185184

186185

186+
def lock_time_disabled_warning() -> Awaitable[None]:
187+
return show_warning(
188+
"nondefault_locktime",
189+
TR.bitcoin__locktime_no_effect,
190+
br_code=ButtonRequestType.SignTx,
191+
)
192+
193+
187194
def confirm_homescreen(
188195
image: bytes,
189196
) -> Awaitable[None]:
@@ -360,12 +367,13 @@ def show_warning(
360367
button: str | None = None,
361368
br_code: ButtonRequestType = ButtonRequestType.Warning,
362369
) -> Awaitable[None]:
363-
button = button or TR.buttons__continue # def_arg
370+
button = button or TR.words__continue_anyway # def_arg
364371
return raise_if_not_confirmed(
365372
trezorui_api.show_warning(
366373
title=TR.words__important,
367-
value=content,
368-
button=subheader or TR.words__continue_anyway_question,
374+
button=button,
375+
description=content,
376+
value=subheader or "",
369377
danger=True,
370378
),
371379
br_name,

core/translations/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,7 @@
976976
"send__including_fee": "Including fee:",
977977
"send__maximum_fee": "Maximum fee",
978978
"send__receiving_to_multisig": "Receiving to a multisig address.",
979+
"send__multisig_different_paths": "Using different paths for different XPUBs.",
979980
"send__send_from": "Send from",
980981
"send__cancel_transaction": "Cancel transaction",
981982
"send__sign_transaction": "Sign transaction",

core/translations/order.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1044,5 +1044,6 @@
10441044
"1042": "reset__check_share_backup_template",
10451045
"1043": "reset__select_word_from_share_template",
10461046
"1044": "recovery__share_from_group_entered_template",
1047-
"1045": "send__cancel_transaction"
1047+
"1045": "send__cancel_transaction",
1048+
"1046": "send__multisig_different_paths"
10481049
}

core/translations/signatures.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"current": {
3-
"merkle_root": "4206bb0545f5f749ee8e4405c31429e61d58ebb5f339b1bf56722c2a78938d2c",
4-
"datetime": "2025-06-18T15:19:19.210879+00:00",
5-
"commit": "e16cca27a87bcdad1681d1f89d3ec5f903cebab5"
3+
"merkle_root": "1c212695c55b22eb402aa8724c6fc51de29df2e8ae4c4ff4104b774856ddfc33",
4+
"datetime": "2025-06-18T15:21:50.885453+00:00",
5+
"commit": "3076d96a69f17bdf5cfbd0e7ed237d0ddb311770"
66
},
77
"history": [
88
{

tests/device_tests/bitcoin/test_signtx_invalid_path.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,9 @@ def attack_processor(msg):
179179
return msg
180180

181181
with client:
182-
IF = InputFlowConfirmAllWarnings(client)
183-
client.set_input_flow(IF.get())
182+
if is_core(client):
183+
IF = InputFlowConfirmAllWarnings(client)
184+
client.set_input_flow(IF.get())
184185
client.set_filter(messages.TxAck, attack_processor)
185186
with pytest.raises(TrezorFailure):
186187
btc.sign_tx(

tests/device_tests/bitcoin/test_signtx_mixed_inputs.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from trezorlib.debuglink import TrezorClientDebugLink as Client
1919
from trezorlib.tools import parse_path
2020

21+
from ...common import is_core
2122
from ...input_flows import InputFlowConfirmAllWarnings
2223
from ...tx_cache import TxCache
2324
from .signtx import assert_tx_matches
@@ -60,8 +61,9 @@ def test_non_segwit_segwit_inputs(client: Client):
6061
)
6162

6263
with client:
63-
IF = InputFlowConfirmAllWarnings(client)
64-
client.set_input_flow(IF.get())
64+
if is_core(client):
65+
IF = InputFlowConfirmAllWarnings(client)
66+
client.set_input_flow(IF.get())
6567
signatures, serialized_tx = btc.sign_tx(
6668
client, "Testnet", [inp1, inp2], [out1], prev_txes=TX_API
6769
)
@@ -98,8 +100,9 @@ def test_segwit_non_segwit_inputs(client: Client):
98100
)
99101

100102
with client:
101-
IF = InputFlowConfirmAllWarnings(client)
102-
client.set_input_flow(IF.get())
103+
if is_core(client):
104+
IF = InputFlowConfirmAllWarnings(client)
105+
client.set_input_flow(IF.get())
103106
signatures, serialized_tx = btc.sign_tx(
104107
client, "Testnet", [inp1, inp2], [out1], prev_txes=TX_API
105108
)
@@ -144,8 +147,9 @@ def test_segwit_non_segwit_segwit_inputs(client: Client):
144147
)
145148

146149
with client:
147-
IF = InputFlowConfirmAllWarnings(client)
148-
client.set_input_flow(IF.get())
150+
if is_core(client):
151+
IF = InputFlowConfirmAllWarnings(client)
152+
client.set_input_flow(IF.get())
149153
signatures, serialized_tx = btc.sign_tx(
150154
client, "Testnet", [inp1, inp2, inp3], [out1], prev_txes=TX_API
151155
)
@@ -188,8 +192,9 @@ def test_non_segwit_segwit_non_segwit_inputs(client: Client):
188192
)
189193

190194
with client:
191-
IF = InputFlowConfirmAllWarnings(client)
192-
client.set_input_flow(IF.get())
195+
if is_core(client):
196+
IF = InputFlowConfirmAllWarnings(client)
197+
client.set_input_flow(IF.get())
193198
signatures, serialized_tx = btc.sign_tx(
194199
client, "Testnet", [inp1, inp2, inp3], [out1], prev_txes=TX_API
195200
)

tests/device_tests/bitcoin/test_signtx_segwit.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,9 @@ def test_attack_mixed_inputs(client: Client):
423423
expected_responses.insert(-2, request_input(0))
424424

425425
with client:
426-
IF = InputFlowConfirmAllWarnings(client)
427-
client.set_input_flow(IF.get())
426+
if is_core(client):
427+
IF = InputFlowConfirmAllWarnings(client)
428+
client.set_input_flow(IF.get())
428429
# Sign unmodified transaction.
429430
# "Fee over threshold" warning is displayed - fee is the whole TRUE_AMOUNT
430431
client.set_expected_responses(expected_responses)
@@ -450,8 +451,9 @@ def test_attack_mixed_inputs(client: Client):
450451
)
451452

452453
with pytest.raises(TrezorFailure) as e, client:
453-
IF = InputFlowConfirmAllWarnings(client)
454-
client.set_input_flow(IF.get())
454+
if is_core(client):
455+
IF = InputFlowConfirmAllWarnings(client)
456+
client.set_input_flow(IF.get())
455457
client.set_expected_responses(expected_responses)
456458
btc.sign_tx(
457459
client,

tests/device_tests/bitcoin/test_signtx_segwit_native.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,9 @@ def test_send_both(client: Client):
345345
)
346346

347347
with client:
348-
IF = InputFlowConfirmAllWarnings(client)
349-
client.set_input_flow(IF.get())
348+
if is_core(client):
349+
IF = InputFlowConfirmAllWarnings(client)
350+
client.set_input_flow(IF.get())
350351
client.set_expected_responses(
351352
[
352353
request_input(0),

tests/device_tests/bitcoin/test_signtx_taproot.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,9 @@ def test_send_mixed(client: Client):
224224
)
225225

226226
with client:
227-
IF = InputFlowConfirmAllWarnings(client)
228-
client.set_input_flow(IF.get())
227+
if is_core(client):
228+
IF = InputFlowConfirmAllWarnings(client)
229+
client.set_input_flow(IF.get())
229230
client.set_expected_responses(
230231
[
231232
# process inputs
@@ -358,8 +359,9 @@ def attack_processor(msg):
358359
return msg
359360

360361
with client:
361-
IF = InputFlowConfirmAllWarnings(client)
362-
client.set_input_flow(IF.get())
362+
if is_core(client):
363+
IF = InputFlowConfirmAllWarnings(client)
364+
client.set_input_flow(IF.get())
363365
client.set_filter(messages.TxAck, attack_processor)
364366
client.set_expected_responses(
365367
[

tests/input_flows.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,20 +1171,20 @@ def sign_tx_go_to_info_eckhart(
11711171
yield
11721172
client.debug.read_layout()
11731173
client.debug.click(client.debug.screen_buttons.menu())
1174-
client.debug.synchronize_at("VerticalMenuScreen")
1174+
client.debug.synchronize_at("VerticalMenu")
11751175
client.debug.click(client.debug.screen_buttons.vertical_menu_items()[1])
11761176

11771177
yield # confirm transaction
11781178
client.debug.read_layout()
11791179
client.debug.click(client.debug.screen_buttons.menu())
1180-
client.debug.synchronize_at("VerticalMenuScreen")
1180+
client.debug.synchronize_at("VerticalMenu")
11811181
client.debug.click(client.debug.screen_buttons.vertical_menu_items()[0])
11821182

11831183
layout = client.debug.read_layout()
11841184
content = layout.text_content()
11851185

11861186
client.debug.click(client.debug.screen_buttons.menu())
1187-
client.debug.synchronize_at("VerticalMenuScreen")
1187+
client.debug.synchronize_at("VerticalMenu")
11881188
client.debug.click(client.debug.screen_buttons.vertical_menu_items()[1])
11891189

11901190
layout = client.debug.read_layout()

0 commit comments

Comments
 (0)