ethereum_sdk/
types.rs

1use ethers::{
2    abi::Address,
3    providers::{Http, Provider},
4    types::Filter,
5};
6use serde::Serialize;
7
8#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug)]
9pub struct MerkleTreeRoot {
10    pub hash: [u8; 32],
11}
12
13#[derive(Serialize)]
14pub struct Transaction {
15    pub tx_hash: String,
16    pub index: u64,
17    pub logs: Vec<String>,
18    pub from: String,
19    pub to: String,
20    pub block_hash: String,
21    pub root: String,
22    pub logs_bloom: String,
23}
24
25#[derive(Clone)]
26pub struct SyncData {
27    pub cur: u64,
28    pub from: u64,
29    pub n: u64,
30    pub filters: Filter,
31    pub gap: u64,
32}
33
34#[derive(Clone)]
35pub struct EthereumClient {
36    pub provider: Provider<Http>,
37    pub chain_name: String,
38    pub chain_id: u64,
39    pub start_block: u64,
40    pub addresses: Vec<Address>,
41}
42
43pub struct RootParam {
44    pub number: u128,
45    pub root: MerkleTreeRoot,
46    pub tx_root: MerkleTreeRoot,
47}