diff --git a/src/ui_flow.h b/src/ui_flow.h index cd06ff0..4e8f321 100644 --- a/src/ui_flow.h +++ b/src/ui_flow.h @@ -12,10 +12,6 @@ extern const ux_flow_step_t* const ux_confirm_selector_flow[]; extern const ux_flow_step_t* const ux_confirm_parameter_flow[]; -extern const ux_flow_step_t* const ux_approval_tx_flow[]; - -extern const ux_flow_step_t* const ux_approval_tx_data_warning_flow[]; - extern const ux_flow_step_t* const ux_approval_allowance_flow[]; extern const ux_flow_step_t* const ux_sign_flow[]; diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index 98de27c..91228ad 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -380,11 +380,7 @@ void finalizeParsing(bool direct) { io_seproxyhal_touch_tx_ok(NULL); } else { if (genericUI) { - ux_flow_init( - 0, - ((dataPresent && !N_storage.contractDetails) ? ux_approval_tx_data_warning_flow - : ux_approval_tx_flow), - NULL); + ux_approve_tx(dataPresent); } else { plugin_ui_start(); } diff --git a/src_features/signTx/ui_flow_signTx.c b/src_features/signTx/ui_flow_signTx.c index 7443fbc..27dab0a 100644 --- a/src_features/signTx/ui_flow_signTx.c +++ b/src_features/signTx/ui_flow_signTx.c @@ -148,21 +148,23 @@ UX_STEP_NOCB(ux_approval_tx_data_warning_step, }); // clang-format on -UX_FLOW(ux_approval_tx_flow, - &ux_approval_tx_1_step, - &ux_approval_tx_2_step, - &ux_approval_tx_3_step, - &ux_approval_tx_display_nonce_step, - &ux_approval_tx_4_step, - &ux_approval_tx_5_step, - &ux_approval_tx_6_step); +const ux_flow_step_t *ux_approval_tx_flow_scott[9]; -UX_FLOW(ux_approval_tx_data_warning_flow, - &ux_approval_tx_1_step, - &ux_approval_tx_data_warning_step, - &ux_approval_tx_2_step, - &ux_approval_tx_3_step, - &ux_approval_tx_display_nonce_step, - &ux_approval_tx_4_step, - &ux_approval_tx_5_step, - &ux_approval_tx_6_step); \ No newline at end of file +void ux_approve_tx(bool dataPresent) { + int step = 0; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_1_step; + if (dataPresent && !N_storage.contractDetails) { + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_data_warning_step; + } + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_2_step; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_3_step; + if (N_storage.displayNonce) { + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_display_nonce_step; + } + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_4_step; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_5_step; + ux_approval_tx_flow_scott[step++] = &ux_approval_tx_6_step; + ux_approval_tx_flow_scott[step++] = FLOW_END_STEP; + + ux_flow_init(0, ux_approval_tx_flow_scott, NULL); +} \ No newline at end of file