use cfx_rpc_eth_types::{EthRpcLogFilter as Filter, FilterChanges, Log};
use cfx_types::H128 as FilterId;
use jsonrpsee::{core::RpcResult, proc_macros::rpc};
type PendingTransactionFilterKind = (); #[rpc(server, namespace = "eth")]
pub trait EthFilterApi {
#[method(name = "newFilter")]
async fn new_filter(&self, filter: Filter) -> RpcResult<FilterId>;
#[method(name = "newBlockFilter")]
async fn new_block_filter(&self) -> RpcResult<FilterId>;
#[method(name = "newPendingTransactionFilter")]
async fn new_pending_transaction_filter(
&self, kind: Option<PendingTransactionFilterKind>,
) -> RpcResult<FilterId>;
#[method(name = "getFilterChanges")]
async fn filter_changes(&self, id: FilterId) -> RpcResult<FilterChanges>;
#[method(name = "getFilterLogs")]
async fn filter_logs(&self, id: FilterId) -> RpcResult<Vec<Log>>;
#[method(name = "uninstallFilter")]
async fn uninstall_filter(&self, id: FilterId) -> RpcResult<bool>;
}