substreams_antelope_abigen/
abi.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct ABIType {
5 pub name: String,
6 #[serde(rename = "type")]
7 pub ty: String,
8}
9
10#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
11pub struct ABIStruct {
12 pub name: String,
13 pub base: String,
14 pub fields: Vec<ABIType>,
15}
16
17#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
18pub struct ABIAction {
19 pub name: String,
20 #[serde(rename = "type")]
21 pub ty: String,
22 #[serde(default)]
23 pub ricardian_contract: String,
24}
25
26#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
27pub struct ABITable {
28 name: String,
29 #[serde(rename = "type")]
30 ty: String,
31 index_type: String,
32 #[serde(default)]
33 key_names: Vec<String>,
34 #[serde(default)]
35 key_types: Vec<String>,
36}
37
38#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
39pub struct ABIVariant {
40 name: String,
41 types: Vec<String>,
43}
44
45#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
46pub struct ABITypes {
47 pub new_type_name: String,
48 #[serde(rename = "type")]
49 pub ty: String,
50}
51
52#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
53pub struct ABIRicardianClause {
54 id: String,
55 body: String,
56}
57
58#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
59pub struct ABIActionResult {
60 name: String,
61 result_type: String,
62}
63
64#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
65pub struct ABIErrorMessage {
66 error_code: u64,
67 error_msg: String,
68}
69
70#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
71pub struct WrappedABI {
72 pub account_name: String,
73 pub abi: ABI,
74}
75
76impl TryFrom<&str> for WrappedABI {
77 type Error = serde_json::Error;
78 #[inline]
79 fn try_from(str: &str) -> Result<Self, Self::Error> {
80 serde_json::from_str(str)
81 }
82}
83
84#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
85pub struct ABI {
86 pub version: String,
87 #[serde(default)]
88 pub types: Vec<ABITypes>,
89 #[serde(default)]
90 pub structs: Vec<ABIStruct>,
91 #[serde(default)]
92 pub actions: Vec<ABIAction>,
93 #[serde(default)]
94 pub tables: Vec<ABITable>,
95 #[serde(default)]
96 pub variants: Vec<ABIVariant>,
97 #[serde(default)]
98 pub abi_extensions: Vec<String>,
99 #[serde(default)]
100 pub error_messages: Vec<ABIErrorMessage>,
101 #[serde(default)]
102 pub ricardian_clauses: Vec<ABIRicardianClause>,
103 #[serde(default)]
104 pub action_results: Vec<ABIActionResult>,
105}
106
107impl TryFrom<&str> for ABI {
108 type Error = serde_json::Error;
109 #[inline]
110 fn try_from(str: &str) -> Result<Self, Self::Error> {
111 serde_json::from_str(str)
112 }
113}