Expand description
Json RPC for the Block Producer Fees pallet
§Contents
This crate provides the BlockProducerFeesRpcServer trait defining the JsonRPC method to display block producer fees and its concrete implementation BlockProducerFeesRpc.
§Usage - PC Builders
To use the Json RPC service defined in this crate, first make your runtime implement
[sp_block_producer_fees::BlockProducerFeesApi]. Eg. assuming the pallet BlockProducerFeesPallet
in your runtime uses AccountId
as the account id type, the following should be included in your
impl_runtime_apis
block:
ⓘ
impl BlockProducerFeesApi<Block, AccountId> for Runtime
{
fn get_all_fees() -> Vec<(AccountId, sp_block_producer_fees::PerTenThousands)> {
BlockProducerFees::get_all_latest().map(|(account_id, (_slot, fee))| (account_id, fee)).collect()
}
}
Afterwards, the BlockProducerFeesRpc Json RPC service can be added into the Json RPC stack of your node. Example where AccountId type parameter is set to AccountId32:
use jsonrpsee::RpcModule;
use std::sync::Arc;
use sp_block_producer_fees::*;
use pallet_block_producer_fees_rpc::*;
fn create_rpc<C, Block>(client: Arc<C>) -> Result<RpcModule<()>, Box<dyn std::error::Error>>
where
C: Send + Sync + 'static,
Block: sp_runtime::traits::Block,
C: sp_api::ProvideRuntimeApi<Block>,
C: sp_blockchain::HeaderBackend<Block>,
C::Api: BlockProducerFeesApi<Block, sp_runtime::AccountId32>
{
let mut module = RpcModule::new(());
module.merge(BlockProducerFeesRpc::new(client.clone()).into_rpc())?;
// other RPC modules
Ok(module)
}
Structs§
- Block
Producer Fees Rpc - Concrete implementation of BlockProducerFeesRpcServer that uses [BlockProducerFeesApi] for querying runtime storage.
- Fees
Settings - Fees settings for given account
Traits§
- Block
Producer Fees RpcClient - Client implementation for the
BlockProducerFeesRpc
RPC API. - Block
Producer Fees RpcServer - Server trait implementation for the
BlockProducerFeesRpc
RPC API.