icrc_ledger_types/icrc21/
requests.rs

1use candid::{CandidType, Deserialize};
2use serde::Serialize;
3
4#[derive(Debug, CandidType, Clone, Serialize, Deserialize, PartialEq, Eq)]
5pub struct ConsentMessageMetadata {
6    pub language: String,
7    pub utc_offset_minutes: Option<i16>,
8}
9
10#[derive(Debug, CandidType, Clone, Serialize, Deserialize, PartialEq, Eq)]
11pub enum DisplayMessageType {
12    GenericDisplay,
13    FieldsDisplay,
14}
15
16#[derive(Debug, CandidType, Clone, Serialize, Deserialize, PartialEq, Eq)]
17pub struct ConsentMessageSpec {
18    pub metadata: ConsentMessageMetadata,
19    pub device_spec: Option<DisplayMessageType>,
20}
21
22#[derive(Debug, CandidType, Clone, Serialize, Deserialize, PartialEq, Eq)]
23pub struct ConsentMessageRequest {
24    pub method: String,
25    pub arg: Vec<u8>,
26    pub user_preferences: ConsentMessageSpec,
27}