#![warn(missing_docs)] use std::sync::Arc; use jsonrpsee::RpcModule; use runtime::{opaque::Block, AccountId, Balance, Nonce}; use sc_transaction_pool_api::TransactionPool; use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; pub use sc_rpc_api::DenyUnsafe; /// Full client dependencies pub struct FulLDeps { /// The client instance to use pub client: Arc, /// Transaction pool instance pub pool: Arc

, /// Whether to deny unsafe calls pub deny_unsafe: DenyUnsafe, } /// Instantiate all full RPC extensions pub fn create_full( deps: FulLDeps, ) -> Result, Box> where C: ProvideRuntimeApi, C: HeaderBackend + HeaderMetadata + 'static, C: Send + Sync + 'static, C::Api: substrate_frame_rpc_system::AccountNonceApi, C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: BlockBuilder, P: TransactionPool + 'static, { use pallet_transaction_payment_rpc::{ TransactionPayment, TransactionPaymentApiServer, }; use substrate_frame_rpc_system::{System, SystemApiServer}; let mut module = RpcModule::new(()); let FullDeps { client, pool, deny_unsafe } = deps; module.merge(System::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; module.merge(TransactionPayment::new(client).into_rpc())?; Ok(module) }