refactor(core): drop outdated Bitcoin SLIP-24 UI
What changed, and why it matters
This commit removes unused user-interface code for displaying Bitcoin payment request details (an old SLIP-24 feature) from four Trezor firmware layout files. It is a cleanup/refactoring change with no security relevance visible in the diff.
No security action required; treat as routine code cleanup. Verify that no remaining callers reference the removed function (the commit title implies it was already outdated/unused).
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit deletes the should_show_payment_request_details async function from core/src/trezor/ui/layouts/{bolt,caesar,delizia,eckhart}/__init__.py. These functions rendered a confirmation screen for BIP-70/SLIP-24-style payment requests and returned whether the user wanted to see more details. The change is purely subtractive (105 lines removed) and does not alter any transaction validation, cryptography, or authorization logic.
Changed components
core/src/trezor/ui/layouts/bolt/__init__.pycore/src/trezor/ui/layouts/caesar/__init__.pycore/src/trezor/ui/layouts/delizia/__init__.pycore/src/trezor/ui/layouts/eckhart/__init__.pyInspect captured patch +0 / −105
diff --git a/core/src/trezor/ui/layouts/bolt/__init__.py b/core/src/trezor/ui/layouts/bolt/__init__.py
index d531fc2d..a7226eb5 100644
--- a/core/src/trezor/ui/layouts/bolt/__init__.py
+++ b/core/src/trezor/ui/layouts/bolt/__init__.py
@@ -532,36 +532,6 @@ async def confirm_output(
return
-async def should_show_payment_request_details(
- recipient_name: str,
- amount: str,
- memos: list[str],
-) -> bool:
- """Return True if the user wants to show payment request details (they click a
- special button) and False when the user wants to continue without showing details.
-
- Raises ActionCancelled if the user cancels.
- """
- result = await interact(
- trezorui_api.confirm_with_info(
- title=TR.send__title_sending,
- items=[(f"{amount} to\n{recipient_name}", False)]
- + [(memo, False) for memo in memos],
- verb=TR.buttons__confirm,
- verb_info=TR.buttons__details,
- ),
- "confirm_payment_request",
- ButtonRequestType.ConfirmOutput,
- )
-
- if result is CONFIRMED:
- return False
- elif result is INFO:
- return True
- else:
- raise ActionCancelled
-
-
async def should_show_more(
title: str,
items: Iterable[tuple[str | bytes, bool]],
diff --git a/core/src/trezor/ui/layouts/caesar/__init__.py b/core/src/trezor/ui/layouts/caesar/__init__.py
index d60e5acb..98188893 100644
--- a/core/src/trezor/ui/layouts/caesar/__init__.py
+++ b/core/src/trezor/ui/layouts/caesar/__init__.py
@@ -682,21 +682,6 @@ def tutorial(br_code: ButtonRequestType = BR_CODE_OTHER) -> Awaitable[ui.UiResul
return interact(trezorui_api.tutorial(), "tutorial", br_code)
-async def should_show_payment_request_details(
- recipient_name: str,
- amount: str,
- memos: list[str],
-) -> bool:
- memos_str = "\n".join(memos)
- await _placeholder_confirm(
- "confirm_payment_request",
- TR.send__title_confirm_sending,
- description=f"{amount} to\n{recipient_name}\n{memos_str}",
- br_code=ButtonRequestType.ConfirmOutput,
- )
- return False
-
-
async def should_show_more(
title: str,
para: Iterable[tuple[str, bool]],
diff --git a/core/src/trezor/ui/layouts/delizia/__init__.py b/core/src/trezor/ui/layouts/delizia/__init__.py
index 8ca7d4eb..2b3dc4bd 100644
--- a/core/src/trezor/ui/layouts/delizia/__init__.py
+++ b/core/src/trezor/ui/layouts/delizia/__init__.py
@@ -612,36 +612,6 @@ async def confirm_output(
)
-async def should_show_payment_request_details(
- recipient_name: str,
- amount: str,
- memos: list[str],
-) -> bool:
- """Return True if the user wants to show payment request details (they click a
- special button) and False when the user wants to continue without showing details.
-
- Raises ActionCancelled if the user cancels.
- """
- result = await interact(
- trezorui_api.confirm_with_info(
- title=TR.send__title_sending,
- items=[(f"{amount} to\n{recipient_name}", False)]
- + [(memo, False) for memo in memos],
- verb=TR.buttons__confirm,
- verb_info=TR.buttons__details,
- ),
- "confirm_payment_request",
- ButtonRequestType.ConfirmOutput,
- )
-
- if result is CONFIRMED:
- return False
- elif result is INFO:
- return True
- else:
- raise ActionCancelled
-
-
async def should_show_more(
title: str,
para: Iterable[tuple[str | bytes, bool]],
diff --git a/core/src/trezor/ui/layouts/eckhart/__init__.py b/core/src/trezor/ui/layouts/eckhart/__init__.py
index 57f470f5..f29edb4b 100644
--- a/core/src/trezor/ui/layouts/eckhart/__init__.py
+++ b/core/src/trezor/ui/layouts/eckhart/__init__.py
@@ -634,36 +634,6 @@ async def confirm_output(
)
-async def should_show_payment_request_details(
- recipient_name: str,
- amount: str,
- memos: list[str],
-) -> bool:
- """Return True if the user wants to show payment request details (they click a
- special button) and False when the user wants to continue without showing details.
-
- Raises ActionCancelled if the user cancels.
- """
- result = await interact(
- trezorui_api.confirm_with_info(
- title=TR.send__title_sending,
- items=[(f"{amount} to\n{recipient_name}", False)]
- + [(memo, False) for memo in memos],
- verb=TR.buttons__confirm,
- verb_info=TR.buttons__details,
- ),
- "confirm_payment_request",
- ButtonRequestType.ConfirmOutput,
- )
-
- if result is CONFIRMED:
- return False
- elif result is INFO:
- return True
- else:
- raise ActionCancelled
-
-
async def should_show_more(
title: str,
para: Iterable[tuple[str | bytes, bool]],
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.