#include "shared_context.h" #include "ui_callbacks.h" #include "common_712.h" #include "ethUtils.h" void prepare_domain_hash_v0() { snprintf(strings.tmp.tmp, sizeof(strings.tmp.tmp), "0x%.*H", KECCAK256_HASH_BYTESIZE, tmpCtx.messageSigningContext712.domainHash); } void prepare_message_hash_v0() { snprintf(strings.tmp.tmp, sizeof(strings.tmp.tmp), "0x%.*H", KECCAK256_HASH_BYTESIZE, tmpCtx.messageSigningContext712.messageHash); } // clang-format off UX_STEP_NOCB( ux_sign_712_v0_flow_1_step, pnn, { &C_icon_certificate, "Sign", "typed message", }); UX_STEP_NOCB_INIT( ux_sign_712_v0_flow_2_step, bnnn_paging, prepare_domain_hash_v0(), { .title = "Domain hash", .text = strings.tmp.tmp, }); UX_STEP_NOCB_INIT( ux_sign_712_v0_flow_3_step, bnnn_paging, prepare_message_hash_v0(), { .title = "Message hash", .text = strings.tmp.tmp, }); UX_STEP_CB( ux_sign_712_v0_flow_4_step, pbb, ui_712_approve_cb(NULL), { &C_icon_validate_14, "Sign", "message", }); UX_STEP_CB( ux_sign_712_v0_flow_5_step, pbb, ui_712_reject_cb(NULL), { &C_icon_crossmark, "Cancel", "signature", }); // clang-format on UX_FLOW(ux_sign_712_v0_flow, &ux_sign_712_v0_flow_1_step, &ux_sign_712_v0_flow_2_step, &ux_sign_712_v0_flow_3_step, &ux_sign_712_v0_flow_4_step, &ux_sign_712_v0_flow_5_step);