tron_api_client/response/
tron_contract.rs

1#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
2#[serde(rename_all = "camelCase")]
3pub struct Contract {
4    pub bytecode: String,
5    #[serde(rename = "consume_user_resource_percent")]
6    pub consume_user_resource_percent: i64,
7    #[serde(default)]
8    pub name: String,
9    #[serde(rename = "origin_address")]
10    pub origin_address: String,
11    pub abi: Abi,
12    #[serde(rename = "origin_energy_limit")]
13    pub origin_energy_limit: i64,
14    #[serde(rename = "contract_address")]
15    pub contract_address: String,
16}
17
18#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
19#[serde(rename_all = "camelCase")]
20pub struct Abi {
21    pub entrys: Vec<Entry>,
22}
23
24#[derive(Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
25#[serde(tag = "type")]
26pub enum Entry {
27    #[serde(rename_all = "camelCase")]
28    Function {
29        // Event do not have outputs
30        #[serde(default)]
31        outputs: Vec<Output>,
32        #[serde(default)]
33        constant: bool,
34        name: String,
35        // state_mutability: String,
36        #[serde(default)]
37        inputs: Vec<Input>,
38    },
39    #[serde(rename_all = "camelCase")]
40    Constructor {
41        state_mutability: String,
42        #[serde(default)]
43        inputs: Vec<Input>,
44    },
45    Event {
46        name: String,
47        #[serde(default)]
48        inputs: Vec<Input>,
49    },
50}
51
52#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
53#[serde(rename_all = "camelCase")]
54pub struct Output {
55    #[serde(rename = "type")]
56    pub type_field: String,
57    pub name: Option<String>,
58}
59
60#[derive(Default, Debug, Clone, PartialEq, serde_derive::Serialize, serde_derive::Deserialize)]
61#[serde(rename_all = "camelCase")]
62pub struct Input {
63    #[serde(default)]
64    pub name: String,
65    #[serde(rename = "type")]
66    pub type_field: String,
67    #[serde(default)]
68    pub indexed: bool,
69}