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}