use crate::rpc::types::eth::{BlockNumber, LocalizedTrace, TraceFilter};
use cfx_types::H256;
use jsonrpc_core::Result as JsonRpcResult;
use jsonrpc_derive::rpc;
#[rpc(server)]
pub trait Trace {
#[rpc(name = "trace_block")]
fn block_traces(
&self, block_number: BlockNumber,
) -> JsonRpcResult<Option<Vec<LocalizedTrace>>>;
#[rpc(name = "trace_filter")]
fn filter_traces(
&self, filter: TraceFilter,
) -> JsonRpcResult<Option<Vec<LocalizedTrace>>>;
#[rpc(name = "trace_transaction")]
fn transaction_traces(
&self, tx_hash: H256,
) -> JsonRpcResult<Option<Vec<LocalizedTrace>>>;
}