1
// Copyright 2019-2022 PureStake Inc.
2
// This file is part of Moonbeam.
3

            
4
// Moonbeam is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8

            
9
// Moonbeam is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13

            
14
// You should have received a copy of the GNU General Public License
15
// along with Moonbeam.  If not, see <http://www.gnu.org/licenses/>.
16

            
17
use ethereum_types::U256;
18
use jsonrpsee::{core::RpcResult, proc_macros::rpc};
19

            
20
mod types;
21

            
22
pub use crate::types::{Get as GetT, Summary, Transaction, TransactionMap, TxPoolResult};
23

            
24
1788
#[rpc(server)]
25
pub trait TxPool {
26
	#[method(name = "txpool_content")]
27
	fn content(&self) -> RpcResult<TxPoolResult<TransactionMap<Transaction>>>;
28

            
29
	#[method(name = "txpool_inspect")]
30
	fn inspect(&self) -> RpcResult<TxPoolResult<TransactionMap<Summary>>>;
31

            
32
	#[method(name = "txpool_status")]
33
	fn status(&self) -> RpcResult<TxPoolResult<U256>>;
34
}