1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)]
5pub struct Tx {
6 pub msg: Vec<Msg>,
7 pub fee: Fee,
8 pub signatures: Vec<Signature>,
9 pub memo: String,
10 pub timeout_height: String,
11}
12
13#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)]
14pub struct Msg {
15 #[serde(rename = "type")]
16 pub type_: String,
17 pub value: Value,
18}
19
20#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)]
21pub struct Fee {
22 pub amount: Vec<Coin>,
23 pub gas: String,
24}
25
26#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)]
27pub struct Coin {
28 pub denom: String,
29 pub amount: String,
30}
31
32#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)]
33pub struct Signature {
34 pub pub_key: PubKey,
35 pub signature: String,
36}
37
38#[derive(Deserialize, Serialize, Clone, Debug, PartialEq)]
39pub struct PubKey {
40 #[serde(rename = "type")]
41 pub type_: String,
42 pub value: String,
43}