1use cfx_rpc_cfx_types::{
6 EpochNumber, LocalizedBlockTrace, LocalizedTrace, TraceFilter,
7};
8use cfx_rpc_eth_types::trace::EpochTrace;
9use cfx_types::H256;
10use jsonrpsee::{core::RpcResult, proc_macros::rpc};
11
12#[rpc(server, namespace = "trace")]
14pub trait Trace {
15 #[method(name = "block")]
17 fn block_traces(
18 &self, block_hash: H256,
19 ) -> RpcResult<Option<LocalizedBlockTrace>>;
20
21 #[method(name = "filter")]
23 fn filter_traces(
24 &self, filter: TraceFilter,
25 ) -> RpcResult<Option<Vec<LocalizedTrace>>>;
26
27 #[method(name = "transaction")]
29 fn transaction_traces(
30 &self, tx_hash: H256,
31 ) -> RpcResult<Option<Vec<LocalizedTrace>>>;
32
33 #[method(name = "epoch")]
35 fn epoch_traces(&self, epoch: EpochNumber)
36 -> RpcResult<Option<EpochTrace>>;
37}