kabu_node_reth_api/
traits.rs1use reth_chain_state::CanonStateSubscriptions;
2use reth_node_types::{BlockTy, HeaderTy, NodeTypesWithDB, ReceiptTy, TxTy};
3use reth_provider::{
4 BlockHashReader, BlockIdReader, BlockNumReader, BlockReader, ChainSpecProvider, DatabaseProviderFactory, HeaderProvider,
5 NodePrimitivesProvider, ReceiptProvider, StateProviderFactory, TransactionsProvider,
6};
7use reth_storage_api::{BlockBodyIndicesProvider, BlockReaderIdExt, CanonChainTracker, ReceiptProviderIdExt};
8use std::fmt::Debug;
9
10pub trait KabuRethFullProvider<N: NodeTypesWithDB>:
13 BlockHashReader
15 + BlockNumReader
16 + BlockIdReader
17 + HeaderProvider
18 + BlockBodyIndicesProvider
19 + BlockReader
20 + BlockReaderIdExt<
21 Transaction = TxTy<N>,
22 Block = BlockTy<N>,
23 Receipt = ReceiptTy<N>,
24 Header = HeaderTy<N>,
25 >
26 + ReceiptProvider
28 + ReceiptProviderIdExt
29 + TransactionsProvider
30 + StateProviderFactory
32 + DatabaseProviderFactory<DB = N::DB>
33 + CanonChainTracker
35 + CanonStateSubscriptions
36 + NodePrimitivesProvider<Primitives = N::Primitives>
38 + ChainSpecProvider<ChainSpec = N::ChainSpec>
39 + Clone
41 + Debug
42 + Send
43 + Sync
44 + 'static
45{
46}
47
48impl<T, N> KabuRethFullProvider<N> for T
50where
51 N: NodeTypesWithDB,
52 T: BlockHashReader
53 + BlockNumReader
54 + BlockIdReader
55 + HeaderProvider
56 + BlockBodyIndicesProvider
57 + BlockReader
58 + BlockReaderIdExt<Transaction = TxTy<N>, Block = BlockTy<N>, Receipt = ReceiptTy<N>, Header = HeaderTy<N>>
59 + ReceiptProvider
60 + ReceiptProviderIdExt
61 + TransactionsProvider
62 + StateProviderFactory
63 + DatabaseProviderFactory<DB = N::DB>
64 + CanonChainTracker
65 + CanonStateSubscriptions
66 + NodePrimitivesProvider<Primitives = N::Primitives>
67 + ChainSpecProvider<ChainSpec = N::ChainSpec>
68 + Clone
69 + Debug
70 + Send
71 + Sync
72 + 'static,
73{
74}