Source code: transaction signature status diversification
What changed, and why it matters
This commit is a minor user-interface wording change. It replaces the generic spinner text 'Signing' with the more descriptive phrase 'Signing transaction' shown while the device is computing a Bitcoin transaction signature. There is no change to cryptographic logic, transaction validation, or security behavior.
No security action required. Treat as a routine UI/UX improvement.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch introduces a new global string constant GA_SIGNING_TRANSACTION (‘Signing transaction’) and uses it in two places: (1) the swap-library helper in src/main.c, where nbgl_useCaseSpinner previously showed ‘Signing’, and (2) the PSBT signing flow in src/handler/sign_psbt.c, where ui_set_processing_screen_text is called before presenting the transaction review and final validation screens. The change only affects on-screen text; no signing algorithm, key handling, or authorization check is modified.
Changed components
src/handler/sign_psbt.csrc/main.csrc/ui/display_nbgl.cInspect captured patch +7 / −1
diff --git a/src/handler/sign_psbt.c b/src/handler/sign_psbt.c
index 98083db..ad0086f 100644
--- a/src/handler/sign_psbt.c
+++ b/src/handler/sign_psbt.c
@@ -85,6 +85,7 @@ typedef struct {
} derivation_info_t;
extern const char GA_LOADING_TRANSACTION[];
+extern const char GA_SIGNING_TRANSACTION[];
// Convenience function to share common logic when parsing the
// PSBT_{IN|OUT}_{TAP}?_BIP32_DERIVATION fields from inputs or outputs.
@@ -1424,6 +1425,7 @@ static bool __attribute__((noinline)) display_transaction(
}
/* Start the review */
+ ui_set_processing_screen_text(GA_SIGNING_TRANSACTION);
if (!ui_transaction_simplified_show(dc, fee)) {
SEND_SW(dc, SW_DENY);
return false;
@@ -1455,6 +1457,7 @@ static bool __attribute__((noinline)) display_transaction(
* Show summary info to the user (transaction fees), ask for final confirmation
*/
// Show final user validation UI
+ ui_set_processing_screen_text(GA_SIGNING_TRANSACTION);
if (!ui_transaction_streaming_validate(dc, fee, st->warnings, false)) {
SEND_SW(dc, SW_DENY);
return false;
diff --git a/src/main.c b/src/main.c
index 2e11249..158365f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -57,6 +57,8 @@ bolos_ux_params_t G_ux_params;
dispatcher_context_t G_dispatcher_context;
+extern const char GA_SIGNING_TRANSACTION[];
+
// clang-format off
const command_descriptor_t COMMAND_DESCRIPTORS[] = {
{
@@ -268,7 +270,7 @@ static void swap_library_main_helper(libargs_t *args) {
io_seproxyhal_init();
UX_INIT();
- nbgl_useCaseSpinner("Signing");
+ nbgl_useCaseSpinner(GA_SIGNING_TRANSACTION);
USB_power(0);
USB_power(1);
diff --git a/src/ui/display_nbgl.c b/src/ui/display_nbgl.c
index fd96453..0578fa6 100644
--- a/src/ui/display_nbgl.c
+++ b/src/ui/display_nbgl.c
@@ -49,6 +49,7 @@ const char GA_RISK_UNVERIFIED_INPUTS[] = "Unverified inputs\nUpdate your wallet
const char GA_REVIEW_TRANSACTION[] = "Review transaction\nto send Bitcoin";
const char GA_REVIEW_MESSAGE[] = "Review message";
const char GA_LOADING_TRANSACTION[] = "Loading transaction";
+const char GA_SIGNING_TRANSACTION[] = "Signing transaction";
const char GA_LOADING_MESSAGE[] = "Loading message";
#define N_UX_PAIRS 51
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.