Files
app-ethereum/src_features/signMessageEIP712/ui_logic.h

53 lines
1.6 KiB
C
Raw Normal View History

2022-05-12 17:29:35 +02:00
#ifndef UI_LOGIC_712_H_
#define UI_LOGIC_712_H_
#ifdef HAVE_EIP712_FULL_SUPPORT
2022-05-12 17:29:35 +02:00
#include <stdint.h>
2022-05-12 17:30:26 +02:00
#include "ux.h"
2022-05-12 17:29:35 +02:00
2022-07-19 11:49:18 +02:00
#define UI_712_FIELD_SHOWN (1 << 0)
#define UI_712_FIELD_NAME_PROVIDED (1 << 1)
typedef enum { EIP712_FILTERING_BASIC, EIP712_FILTERING_FULL } e_eip712_filtering_mode;
typedef enum {
EIP712_FIELD_LATER,
EIP712_FIELD_INCOMING,
EIP712_NO_MORE_FIELD
} e_eip712_nfs; // next field state
2022-07-19 11:49:18 +02:00
typedef struct {
2022-05-12 17:29:35 +02:00
bool shown;
bool end_reached;
2022-06-13 12:50:55 +02:00
uint8_t filtering_mode;
2022-08-19 18:31:00 +02:00
uint8_t filters_to_process;
2022-06-13 12:50:55 +02:00
uint8_t field_flags;
uint8_t structs_to_review;
2022-07-19 11:49:18 +02:00
} t_ui_context;
2022-05-12 17:29:35 +02:00
bool ui_712_init(void);
2022-05-12 17:30:26 +02:00
void ui_712_deinit(void);
e_eip712_nfs ui_712_next_field(void);
2022-06-24 18:12:07 +02:00
void ui_712_review_struct(const void *const struct_ptr);
2022-07-08 18:06:18 +02:00
bool ui_712_new_field(const void *const field_ptr, const uint8_t *const data, uint8_t length);
2022-05-12 17:29:35 +02:00
void ui_712_end_sign(void);
2022-08-25 10:26:48 +02:00
unsigned int ui_712_approve();
unsigned int ui_712_reject();
void ui_712_set_title(const char *const str, uint8_t length);
void ui_712_set_value(const char *const str, uint8_t length);
2022-07-19 11:49:18 +02:00
void ui_712_message_hash(void);
void ui_712_redraw_generic_step(void);
void ui_712_flag_field(bool show, bool name_provided);
void ui_712_field_flags_reset(void);
void ui_712_finalize_field(void);
void ui_712_set_filtering_mode(e_eip712_filtering_mode mode);
e_eip712_filtering_mode ui_712_get_filtering_mode(void);
2022-08-19 18:31:00 +02:00
void ui_712_set_filters_count(uint8_t count);
uint8_t ui_712_remaining_filters(void);
2022-07-19 11:49:18 +02:00
void ui_712_queue_struct_to_review(void);
2022-08-19 18:31:00 +02:00
void ui_712_notify_filter_change(void);
2022-05-12 17:29:35 +02:00
2022-07-19 11:49:18 +02:00
#endif // HAVE_EIP712_FULL_SUPPORT
2022-07-19 11:49:18 +02:00
#endif // UI_LOGIC_712_H_