clear_signing/types/
metadata.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct Metadata {
9 #[serde(skip_serializing_if = "Option::is_none")]
11 pub owner: Option<String>,
12
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub info: Option<MetadataInfo>,
16
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub token: Option<TokenInfo>,
20
21 #[serde(default)]
23 pub enums: HashMap<String, HashMap<String, String>>,
24
25 #[serde(default)]
27 pub constants: HashMap<String, serde_json::Value>,
28
29 #[serde(rename = "contractName")]
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub contract_name: Option<String>,
33
34 #[serde(default)]
36 pub maps: HashMap<String, MapDefinition>,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
40pub struct MetadataInfo {
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub url: Option<String>,
43
44 #[serde(rename = "legalName")]
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub legal_name: Option<String>,
47
48 #[serde(rename = "lastUpdate")]
49 #[serde(skip_serializing_if = "Option::is_none")]
50 pub last_update: Option<String>,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct TokenInfo {
55 #[serde(skip_serializing_if = "Option::is_none")]
56 pub name: Option<String>,
57
58 #[serde(skip_serializing_if = "Option::is_none")]
59 pub ticker: Option<String>,
60
61 #[serde(skip_serializing_if = "Option::is_none")]
62 pub decimals: Option<u8>,
63}
64
65#[derive(Debug, Clone, Serialize, Deserialize)]
67pub struct MapDefinition {
68 #[serde(rename = "keyPath")]
70 #[serde(skip_serializing_if = "Option::is_none")]
71 pub key_path: Option<String>,
72
73 #[serde(default)]
75 pub entries: HashMap<String, String>,
76}