cfx_rpc_cfx_api/
txpool.rs1use cfx_rpc_cfx_types::{
6 AccountPendingInfo, AccountPendingTransactions, RpcAddress,
7 Transaction as RpcTransaction, TxPoolPendingNonceRange, TxPoolStatus,
8 TxWithPoolInfo,
9};
10use cfx_types::{H256, U256, U64};
11use jsonrpsee::{core::RpcResult as JsonRpcResult, proc_macros::rpc};
12
13#[rpc(server, namespace = "txpool")]
15pub trait TxPool {
16 #[method(name = "status")]
17 fn txpool_status(&self) -> JsonRpcResult<TxPoolStatus>;
18
19 #[method(name = "nextNonce")]
20 fn txpool_next_nonce(&self, address: RpcAddress) -> JsonRpcResult<U256>;
21
22 #[method(name = "transactionByAddressAndNonce")]
23 fn txpool_transaction_by_address_and_nonce(
24 &self, address: RpcAddress, nonce: U256,
25 ) -> JsonRpcResult<Option<RpcTransaction>>;
26
27 #[method(name = "pendingNonceRange")]
28 fn txpool_pending_nonce_range(
29 &self, address: RpcAddress,
30 ) -> JsonRpcResult<TxPoolPendingNonceRange>;
31
32 #[method(name = "txWithPoolInfo")]
33 fn txpool_tx_with_pool_info(
34 &self, hash: H256,
35 ) -> JsonRpcResult<TxWithPoolInfo>;
36
37 #[method(name = "accountPendingInfo")]
39 fn account_pending_info(
40 &self, address: RpcAddress,
41 ) -> JsonRpcResult<Option<AccountPendingInfo>>;
42
43 #[method(name = "accountPendingTransactions")]
45 fn account_pending_transactions(
46 &self, address: RpcAddress, maybe_start_nonce: Option<U256>,
47 maybe_limit: Option<U64>,
48 ) -> JsonRpcResult<AccountPendingTransactions>;
49}