moonbeam_rpc_primitives_txpool/
lib.rs1#![cfg_attr(not(feature = "std"), no_std)]
18#![allow(clippy::unnecessary_mut_passed)]
20#![allow(clippy::too_many_arguments)]
21
22pub use ethereum::{TransactionV0 as LegacyTransaction, TransactionV3 as Transaction};
23use parity_scale_codec::{Decode, Encode};
24use sp_runtime::scale_info::TypeInfo;
25use sp_runtime::traits::Block as BlockT;
26use sp_runtime::RuntimeDebug;
27use sp_std::vec::Vec;
28
29#[derive(Eq, PartialEq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
30pub struct TxPoolResponseLegacy {
31 pub ready: Vec<LegacyTransaction>,
32 pub future: Vec<LegacyTransaction>,
33}
34
35#[derive(Eq, PartialEq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
36pub struct TxPoolResponse {
37 pub ready: Vec<Transaction>,
38 pub future: Vec<Transaction>,
39}
40
41sp_api::decl_runtime_apis! {
42 #[api_version(2)]
43 pub trait TxPoolRuntimeApi {
44 #[changed_in(2)]
45 fn extrinsic_filter(
46 xt_ready: Vec<<Block as BlockT>::Extrinsic>,
47 xt_future: Vec<<Block as BlockT>::Extrinsic>,
48 ) -> TxPoolResponseLegacy;
49 fn extrinsic_filter(
50 xt_ready: Vec<<Block as BlockT>::Extrinsic>,
51 xt_future: Vec<<Block as BlockT>::Extrinsic>,
52 ) -> TxPoolResponse;
53 }
54}