espresso_api/v1/
catchup.rs1use async_trait::async_trait;
6use serde::Serialize;
7
8#[async_trait]
9pub trait CatchupApi {
10 type FeeAccount: serde::de::DeserializeOwned + Send + Sync + 'static;
11 type RewardAccountV1: serde::de::DeserializeOwned + Send + Sync + 'static;
12 type RewardAccountV2: serde::de::DeserializeOwned + Send + Sync + 'static;
13
14 type AccountQueryData: Serialize + Send + Sync + 'static;
15 type FeeMerkleTree: Serialize + Send + Sync + 'static;
16 type BlocksFrontier: Serialize + Send + Sync + 'static;
17 type ChainConfig: Serialize + Send + Sync + 'static;
18 type LeafChain: Serialize + Send + Sync + 'static;
19 type Cert2: Serialize + Send + Sync + 'static;
20 type RewardAccountQueryDataV1: Serialize + Send + Sync + 'static;
21 type RewardMerkleTreeV1: Serialize + Send + Sync + 'static;
22 type RewardAccountQueryDataV2: Serialize + Send + Sync + 'static;
23 type RewardMerkleTreeV2Data: Serialize + Send + Sync + 'static;
24 type StateCert: Serialize + Send + Sync + 'static;
25
26 async fn get_account(
27 &self,
28 height: u64,
29 view: u64,
30 address: String,
31 ) -> anyhow::Result<Self::AccountQueryData>;
32
33 async fn get_accounts(
34 &self,
35 height: u64,
36 view: u64,
37 accounts: Vec<Self::FeeAccount>,
38 ) -> anyhow::Result<Self::FeeMerkleTree>;
39
40 async fn get_blocks_frontier(
41 &self,
42 height: u64,
43 view: u64,
44 ) -> anyhow::Result<Self::BlocksFrontier>;
45
46 async fn get_chain_config(&self, commitment: String) -> anyhow::Result<Self::ChainConfig>;
47
48 async fn get_leaf_chain(&self, height: u64) -> anyhow::Result<Self::LeafChain>;
49
50 async fn get_cert2(&self, height: u64) -> anyhow::Result<Self::Cert2>;
51
52 async fn get_reward_account_v1(
53 &self,
54 height: u64,
55 view: u64,
56 address: String,
57 ) -> anyhow::Result<Self::RewardAccountQueryDataV1>;
58
59 async fn get_reward_accounts_v1(
60 &self,
61 height: u64,
62 view: u64,
63 accounts: Vec<Self::RewardAccountV1>,
64 ) -> anyhow::Result<Self::RewardMerkleTreeV1>;
65
66 async fn get_reward_account_v2(
67 &self,
68 height: u64,
69 view: u64,
70 address: String,
71 ) -> anyhow::Result<Self::RewardAccountQueryDataV2>;
72
73 async fn get_reward_merkle_tree_v2(
74 &self,
75 height: u64,
76 view: u64,
77 ) -> anyhow::Result<Self::RewardMerkleTreeV2Data>;
78
79 async fn get_state_cert(&self, epoch: u64) -> anyhow::Result<Self::StateCert>;
80}