Struct g1_runtime::RuntimeApiImpl
source · pub struct RuntimeApiImpl<Block: BlockT, C: CallApiAt<Block> + 'static> {
pub(crate) call: &'static C,
pub(crate) transaction_depth: RefCell<u16>,
pub(crate) changes: RefCell<OverlayedChanges<HashingFor<Block>>>,
pub(crate) recorder: Option<ProofRecorder<Block>>,
pub(crate) call_context: CallContext,
pub(crate) extensions: RefCell<Extensions>,
pub(crate) extensions_generated_for: RefCell<Option<Block::Hash>>,
}
Expand description
Implements all runtime apis for the client side.
Fields§
§call: &'static C
§transaction_depth: RefCell<u16>
§changes: RefCell<OverlayedChanges<HashingFor<Block>>>
§recorder: Option<ProofRecorder<Block>>
§call_context: CallContext
§extensions: RefCell<Extensions>
§extensions_generated_for: RefCell<Option<Block::Hash>>
Implementations§
source§impl<Block: BlockT, C: CallApiAt<Block>> RuntimeApiImpl<Block, C>
impl<Block: BlockT, C: CallApiAt<Block>> RuntimeApiImpl<Block, C>
pub(crate) fn commit_or_rollback_transaction(&self, commit: bool)
pub(crate) fn start_transaction(&self)
Trait Implementations§
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> AccountNonceApi<__SrApiBlock__, <<MultiSignature as Verify>::Signer as IdentifyAccount>::AccountId, u32> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
AccountId: UnwindSafe + RefUnwindSafe,
Index: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> AccountNonceApi<__SrApiBlock__, <<MultiSignature as Verify>::Signer as IdentifyAccount>::AccountId, u32> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
AccountId: UnwindSafe + RefUnwindSafe,
Index: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn account_nonce(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
account: AccountId
) -> Result<Nonce, ApiError>
fn account_nonce( &self, __runtime_api_at_param__: <Block as Block>::Hash, account: AccountId ) -> Result<Nonce, ApiError>
Get current account nonce of given
AccountId
.source§impl<Block: BlockT, C: CallApiAt<Block>> ApiExt<Block> for RuntimeApiImpl<Block, C>
impl<Block: BlockT, C: CallApiAt<Block>> ApiExt<Block> for RuntimeApiImpl<Block, C>
source§fn execute_in_transaction<F: FnOnce(&Self) -> TransactionOutcome<R>, R>(
&self,
call: F
) -> Rwhere
Self: Sized,
fn execute_in_transaction<F: FnOnce(&Self) -> TransactionOutcome<R>, R>(
&self,
call: F
) -> Rwhere
Self: Sized,
Execute the given closure inside a new transaction. Read more
source§fn has_api<A: RuntimeApiInfo + ?Sized>(
&self,
at: <Block as BlockT>::Hash
) -> Result<bool, ApiError>where
Self: Sized,
fn has_api<A: RuntimeApiInfo + ?Sized>(
&self,
at: <Block as BlockT>::Hash
) -> Result<bool, ApiError>where
Self: Sized,
Checks if the given api is implemented and versions match.
source§fn has_api_with<A: RuntimeApiInfo + ?Sized, P: Fn(u32) -> bool>(
&self,
at: <Block as BlockT>::Hash,
pred: P
) -> Result<bool, ApiError>where
Self: Sized,
fn has_api_with<A: RuntimeApiInfo + ?Sized, P: Fn(u32) -> bool>(
&self,
at: <Block as BlockT>::Hash,
pred: P
) -> Result<bool, ApiError>where
Self: Sized,
Check if the given api is implemented and the version passes a predicate.
source§fn api_version<A: RuntimeApiInfo + ?Sized>(
&self,
at: <Block as BlockT>::Hash
) -> Result<Option<u32>, ApiError>where
Self: Sized,
fn api_version<A: RuntimeApiInfo + ?Sized>(
&self,
at: <Block as BlockT>::Hash
) -> Result<Option<u32>, ApiError>where
Self: Sized,
Returns the version of the given api.
source§fn record_proof(&mut self)
fn record_proof(&mut self)
Start recording all accessed trie nodes for generating proofs.
source§fn proof_recorder(&self) -> Option<ProofRecorder<Block>>
fn proof_recorder(&self) -> Option<ProofRecorder<Block>>
Returns the current active proof recorder.
source§fn extract_proof(&mut self) -> Option<StorageProof>
fn extract_proof(&mut self) -> Option<StorageProof>
Extract the recorded proof. Read more
source§fn into_storage_changes<B: StateBackend<HashingFor<Block>>>(
&self,
backend: &B,
parent_hash: Block::Hash
) -> Result<StorageChanges<Block>, String>where
Self: Sized,
fn into_storage_changes<B: StateBackend<HashingFor<Block>>>(
&self,
backend: &B,
parent_hash: Block::Hash
) -> Result<StorageChanges<Block>, String>where
Self: Sized,
Convert the api object into the storage changes that were done while executing runtime
api functions. Read more
source§fn set_call_context(&mut self, call_context: CallContext)
fn set_call_context(&mut self, call_context: CallContext)
Set the [
CallContext
] to be used by the runtime api calls done by this instance.source§fn register_extension<E: Extension>(&mut self, extension: E)
fn register_extension<E: Extension>(&mut self, extension: E)
Register an [
Extension
] that will be accessible while executing a runtime api call.source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> AuthorityDiscoveryApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
Vec<AuthorityId>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> AuthorityDiscoveryApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
Vec<AuthorityId>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
Retrieve authority identifiers of the current and next authority set.
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> BabeApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
BabeConfiguration: UnwindSafe + RefUnwindSafe,
Slot: UnwindSafe + RefUnwindSafe,
Epoch: UnwindSafe + RefUnwindSafe,
AuthorityId: UnwindSafe + RefUnwindSafe,
Option<OpaqueKeyOwnershipProof>: UnwindSafe + RefUnwindSafe,
EquivocationProof<<__SrApiBlock__ as BlockT>::Header>: UnwindSafe + RefUnwindSafe,
OpaqueKeyOwnershipProof: UnwindSafe + RefUnwindSafe,
Option<()>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> BabeApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
BabeConfiguration: UnwindSafe + RefUnwindSafe,
Slot: UnwindSafe + RefUnwindSafe,
Epoch: UnwindSafe + RefUnwindSafe,
AuthorityId: UnwindSafe + RefUnwindSafe,
Option<OpaqueKeyOwnershipProof>: UnwindSafe + RefUnwindSafe,
EquivocationProof<<__SrApiBlock__ as BlockT>::Header>: UnwindSafe + RefUnwindSafe,
OpaqueKeyOwnershipProof: UnwindSafe + RefUnwindSafe,
Option<()>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn configuration(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<BabeConfiguration, ApiError>
fn configuration( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<BabeConfiguration, ApiError>
Return the configuration for BABE.
§fn configuration_before_version_2(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<BabeConfigurationV1, ApiError>
fn configuration_before_version_2( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<BabeConfigurationV1, ApiError>
👎Deprecated
Return the configuration for BABE. Version 1.
§fn current_epoch_start(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<Slot, ApiError>
fn current_epoch_start( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Slot, ApiError>
Returns the slot that started the current epoch.
§fn current_epoch(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<Epoch, ApiError>
fn current_epoch( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Epoch, ApiError>
Returns information regarding the current epoch.
§fn next_epoch(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<Epoch, ApiError>
fn next_epoch( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Epoch, ApiError>
Returns information regarding the next epoch (which was already
previously announced).
§fn generate_key_ownership_proof(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
slot: Slot,
authority_id: Public
) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError>
fn generate_key_ownership_proof( &self, __runtime_api_at_param__: <Block as Block>::Hash, slot: Slot, authority_id: Public ) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError>
Generates a proof of key ownership for the given authority in the
current epoch. An example usage of this module is coupled with the
session historical module to prove that a given authority key is
tied to a given staking identity during a specific session. Proofs
of key ownership are necessary for submitting equivocation reports.
NOTE: even though the API takes a
slot
as parameter the current
implementations ignores this parameter and instead relies on this
method being called at the correct block height, i.e. any point at
which the epoch for the given slot is live on-chain. Future
implementations will instead use indexed data through an offchain
worker, not requiring older states to be available.§fn submit_report_equivocation_unsigned_extrinsic(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
equivocation_proof: EquivocationProof<<Block as Block>::Header, Public>,
key_owner_proof: OpaqueKeyOwnershipProof
) -> Result<Option<()>, ApiError>
fn submit_report_equivocation_unsigned_extrinsic( &self, __runtime_api_at_param__: <Block as Block>::Hash, equivocation_proof: EquivocationProof<<Block as Block>::Header, Public>, key_owner_proof: OpaqueKeyOwnershipProof ) -> Result<Option<()>, ApiError>
Submits an unsigned extrinsic to report an equivocation. The caller
must provide the equivocation proof and a key ownership proof
(should be obtained using
generate_key_ownership_proof
). The
extrinsic will be unsigned and should only be accepted for local
authorship (not to be broadcast to the network). This method returns
None
when creation of the extrinsic fails, e.g. if equivocation
reporting is disabled for the given runtime (i.e. this method is
hardcoded to return None
). Only useful in an offchain context.source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> Benchmark<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
bool: UnwindSafe + RefUnwindSafe,
(Vec<BenchmarkList>, Vec<StorageInfo>): UnwindSafe + RefUnwindSafe,
BenchmarkConfig: UnwindSafe + RefUnwindSafe,
Result<Vec<BenchmarkBatch>, RuntimeString>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> Benchmark<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
bool: UnwindSafe + RefUnwindSafe,
(Vec<BenchmarkList>, Vec<StorageInfo>): UnwindSafe + RefUnwindSafe,
BenchmarkConfig: UnwindSafe + RefUnwindSafe,
Result<Vec<BenchmarkBatch>, RuntimeString>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn benchmark_metadata(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
extra: bool
) -> Result<(Vec<BenchmarkList>, Vec<StorageInfo>), ApiError>
fn benchmark_metadata( &self, __runtime_api_at_param__: <Block as Block>::Hash, extra: bool ) -> Result<(Vec<BenchmarkList>, Vec<StorageInfo>), ApiError>
Get the benchmark metadata available for this runtime. Read more
§fn dispatch_benchmark(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
config: BenchmarkConfig
) -> Result<Result<Vec<BenchmarkBatch>, RuntimeString>, ApiError>
fn dispatch_benchmark( &self, __runtime_api_at_param__: <Block as Block>::Hash, config: BenchmarkConfig ) -> Result<Result<Vec<BenchmarkBatch>, RuntimeString>, ApiError>
Dispatch the given benchmark.
source§impl<__SrApiBlock__, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> BlockBuilder<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
<__SrApiBlock__ as BlockT>::Extrinsic: UnwindSafe + RefUnwindSafe,
ApplyExtrinsicResult: UnwindSafe + RefUnwindSafe,
<__SrApiBlock__ as BlockT>::Header: UnwindSafe + RefUnwindSafe,
InherentData: UnwindSafe + RefUnwindSafe,
Vec<<__SrApiBlock__ as BlockT>::Extrinsic>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__: UnwindSafe + RefUnwindSafe + BlockT,
CheckInherentsResult: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> BlockBuilder<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
<__SrApiBlock__ as BlockT>::Extrinsic: UnwindSafe + RefUnwindSafe,
ApplyExtrinsicResult: UnwindSafe + RefUnwindSafe,
<__SrApiBlock__ as BlockT>::Header: UnwindSafe + RefUnwindSafe,
InherentData: UnwindSafe + RefUnwindSafe,
Vec<<__SrApiBlock__ as BlockT>::Extrinsic>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__: UnwindSafe + RefUnwindSafe + BlockT,
CheckInherentsResult: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn apply_extrinsic(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
extrinsic: <Block as Block>::Extrinsic
) -> Result<Result<Result<(), DispatchError>, TransactionValidityError>, ApiError>
fn apply_extrinsic( &self, __runtime_api_at_param__: <Block as Block>::Hash, extrinsic: <Block as Block>::Extrinsic ) -> Result<Result<Result<(), DispatchError>, TransactionValidityError>, ApiError>
Apply the given extrinsic. Read more
§fn apply_extrinsic_before_version_6(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
extrinsic: <Block as Block>::Extrinsic
) -> Result<Result<Result<(), DispatchError>, TransactionValidityError>, ApiError>
fn apply_extrinsic_before_version_6( &self, __runtime_api_at_param__: <Block as Block>::Hash, extrinsic: <Block as Block>::Extrinsic ) -> Result<Result<Result<(), DispatchError>, TransactionValidityError>, ApiError>
👎Deprecated
§fn finalize_block(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<<Block as Block>::Header, ApiError>
fn finalize_block( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<<Block as Block>::Header, ApiError>
Finish the current block.
§fn inherent_extrinsics(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
inherent: InherentData
) -> Result<Vec<<Block as Block>::Extrinsic>, ApiError>
fn inherent_extrinsics( &self, __runtime_api_at_param__: <Block as Block>::Hash, inherent: InherentData ) -> Result<Vec<<Block as Block>::Extrinsic>, ApiError>
Generate inherent extrinsics. The inherent data will vary from chain to chain.
§fn check_inherents(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
block: Block,
data: InherentData
) -> Result<CheckInherentsResult, ApiError>
fn check_inherents( &self, __runtime_api_at_param__: <Block as Block>::Hash, block: Block, data: InherentData ) -> Result<CheckInherentsResult, ApiError>
Check that the inherents are valid. The inherent data will vary from chain to chain.
source§impl<__SrApiBlock__, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> Core<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
RuntimeVersion: UnwindSafe + RefUnwindSafe,
__SrApiBlock__: UnwindSafe + RefUnwindSafe + BlockT,
<__SrApiBlock__ as BlockT>::Header: UnwindSafe + RefUnwindSafe,
ExtrinsicInclusionMode: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> Core<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
RuntimeVersion: UnwindSafe + RefUnwindSafe,
__SrApiBlock__: UnwindSafe + RefUnwindSafe + BlockT,
<__SrApiBlock__ as BlockT>::Header: UnwindSafe + RefUnwindSafe,
ExtrinsicInclusionMode: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn version(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<RuntimeVersion, ApiError>
fn version( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<RuntimeVersion, ApiError>
Returns the version of the runtime.
§fn execute_block(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
block: Block
) -> Result<(), ApiError>
fn execute_block( &self, __runtime_api_at_param__: <Block as Block>::Hash, block: Block ) -> Result<(), ApiError>
Execute the given block.
§fn initialize_block_before_version_5(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
header: &<Block as Block>::Header
) -> Result<(), ApiError>
fn initialize_block_before_version_5( &self, __runtime_api_at_param__: <Block as Block>::Hash, header: &<Block as Block>::Header ) -> Result<(), ApiError>
👎Deprecated
Initialize a block with the given header.
§fn initialize_block(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
header: &<Block as Block>::Header
) -> Result<ExtrinsicInclusionMode, ApiError>
fn initialize_block( &self, __runtime_api_at_param__: <Block as Block>::Hash, header: &<Block as Block>::Header ) -> Result<ExtrinsicInclusionMode, ApiError>
Initialize a block with the given header and return the runtime executive mode.
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> GenesisBuilder<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
Vec<u8>: UnwindSafe + RefUnwindSafe,
Result: UnwindSafe + RefUnwindSafe,
Option<PresetId>: UnwindSafe + RefUnwindSafe,
Option<Vec<u8>>: UnwindSafe + RefUnwindSafe,
Vec<PresetId>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> GenesisBuilder<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
Vec<u8>: UnwindSafe + RefUnwindSafe,
Result: UnwindSafe + RefUnwindSafe,
Option<PresetId>: UnwindSafe + RefUnwindSafe,
Option<Vec<u8>>: UnwindSafe + RefUnwindSafe,
Vec<PresetId>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn build_state(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
json: Vec<u8>
) -> Result<Result<(), RuntimeString>, ApiError>
fn build_state( &self, __runtime_api_at_param__: <Block as Block>::Hash, json: Vec<u8> ) -> Result<Result<(), RuntimeString>, ApiError>
Build
RuntimeGenesisConfig
from a JSON blob not using any defaults and store it in the
storage. Read more§fn get_preset(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
id: &Option<RuntimeString>
) -> Result<Option<Vec<u8>>, ApiError>
fn get_preset( &self, __runtime_api_at_param__: <Block as Block>::Hash, id: &Option<RuntimeString> ) -> Result<Option<Vec<u8>>, ApiError>
§fn preset_names(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<Vec<RuntimeString>, ApiError>
fn preset_names( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<RuntimeString>, ApiError>
Returns a list of identifiers for available builtin
RuntimeGenesisConfig
presets. Read moresource§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> GrandpaApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
GrandpaAuthorityList: UnwindSafe + RefUnwindSafe,
SetId: UnwindSafe + RefUnwindSafe,
EquivocationProof<<__SrApiBlock__ as BlockT>::Hash, NumberFor<__SrApiBlock__>>: UnwindSafe + RefUnwindSafe,
OpaqueKeyOwnershipProof: UnwindSafe + RefUnwindSafe,
Option<()>: UnwindSafe + RefUnwindSafe,
GrandpaId: UnwindSafe + RefUnwindSafe,
Option<OpaqueKeyOwnershipProof>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> GrandpaApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
GrandpaAuthorityList: UnwindSafe + RefUnwindSafe,
SetId: UnwindSafe + RefUnwindSafe,
EquivocationProof<<__SrApiBlock__ as BlockT>::Hash, NumberFor<__SrApiBlock__>>: UnwindSafe + RefUnwindSafe,
OpaqueKeyOwnershipProof: UnwindSafe + RefUnwindSafe,
Option<()>: UnwindSafe + RefUnwindSafe,
GrandpaId: UnwindSafe + RefUnwindSafe,
Option<OpaqueKeyOwnershipProof>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
Get the current GRANDPA authorities and weights. This should not change except
for when changes are scheduled and the corresponding delay has passed. Read more
§fn submit_report_equivocation_unsigned_extrinsic(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
equivocation_proof: EquivocationProof<<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number>,
key_owner_proof: OpaqueKeyOwnershipProof
) -> Result<Option<()>, ApiError>
fn submit_report_equivocation_unsigned_extrinsic( &self, __runtime_api_at_param__: <Block as Block>::Hash, equivocation_proof: EquivocationProof<<Block as Block>::Hash, <<Block as Block>::Header as Header>::Number>, key_owner_proof: OpaqueKeyOwnershipProof ) -> Result<Option<()>, ApiError>
Submits an unsigned extrinsic to report an equivocation. The caller
must provide the equivocation proof and a key ownership proof
(should be obtained using
generate_key_ownership_proof
). The
extrinsic will be unsigned and should only be accepted for local
authorship (not to be broadcast to the network). This method returns
None
when creation of the extrinsic fails, e.g. if equivocation
reporting is disabled for the given runtime (i.e. this method is
hardcoded to return None
). Only useful in an offchain context.§fn generate_key_ownership_proof(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
set_id: u64,
authority_id: Public
) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError>
fn generate_key_ownership_proof( &self, __runtime_api_at_param__: <Block as Block>::Hash, set_id: u64, authority_id: Public ) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError>
Generates a proof of key ownership for the given authority in the
given set. An example usage of this module is coupled with the
session historical module to prove that a given authority key is
tied to a given staking identity during a specific session. Proofs
of key ownership are necessary for submitting equivocation reports.
NOTE: even though the API takes a
set_id
as parameter the current
implementations ignore this parameter and instead rely on this
method being called at the correct block height, i.e. any point at
which the given set id is live on-chain. Future implementations will
instead use indexed data through an offchain worker, not requiring
older states to be available.§fn current_set_id(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<u64, ApiError>
fn current_set_id( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<u64, ApiError>
Get current GRANDPA authority set id.
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> Metadata<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
OpaqueMetadata: UnwindSafe + RefUnwindSafe,
u32: UnwindSafe + RefUnwindSafe,
Option<OpaqueMetadata>: UnwindSafe + RefUnwindSafe,
Vec<u32>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> Metadata<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
OpaqueMetadata: UnwindSafe + RefUnwindSafe,
u32: UnwindSafe + RefUnwindSafe,
Option<OpaqueMetadata>: UnwindSafe + RefUnwindSafe,
Vec<u32>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn metadata(
&self,
__runtime_api_at_param__: <Block as Block>::Hash
) -> Result<OpaqueMetadata, ApiError>
fn metadata( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<OpaqueMetadata, ApiError>
Returns the metadata of a runtime.
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> OffchainWorkerApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
<__SrApiBlock__ as BlockT>::Header: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> OffchainWorkerApi<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
<__SrApiBlock__ as BlockT>::Header: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn offchain_worker_before_version_2(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
number: <<Block as Block>::Header as Header>::Number
) -> Result<(), ApiError>
fn offchain_worker_before_version_2( &self, __runtime_api_at_param__: <Block as Block>::Hash, number: <<Block as Block>::Header as Header>::Number ) -> Result<(), ApiError>
👎Deprecated
Starts the off-chain task for given block number.
§fn offchain_worker(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
header: &<Block as Block>::Header
) -> Result<(), ApiError>
fn offchain_worker( &self, __runtime_api_at_param__: <Block as Block>::Hash, header: &<Block as Block>::Header ) -> Result<(), ApiError>
Starts the off-chain task for given block header.
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> SessionKeys<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
Vec<u8>: UnwindSafe + RefUnwindSafe,
Option<Vec<(Vec<u8>, KeyTypeId)>>: UnwindSafe + RefUnwindSafe,
Option<Vec<u8>>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> SessionKeys<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
Vec<u8>: UnwindSafe + RefUnwindSafe,
Option<Vec<(Vec<u8>, KeyTypeId)>>: UnwindSafe + RefUnwindSafe,
Option<Vec<u8>>: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> TaggedTransactionQueue<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
TransactionSource: UnwindSafe + RefUnwindSafe,
<__SrApiBlock__ as BlockT>::Extrinsic: UnwindSafe + RefUnwindSafe,
<__SrApiBlock__ as BlockT>::Hash: UnwindSafe + RefUnwindSafe,
TransactionValidity: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> TaggedTransactionQueue<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
TransactionSource: UnwindSafe + RefUnwindSafe,
<__SrApiBlock__ as BlockT>::Extrinsic: UnwindSafe + RefUnwindSafe,
<__SrApiBlock__ as BlockT>::Hash: UnwindSafe + RefUnwindSafe,
TransactionValidity: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
§fn validate_transaction_before_version_2(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
tx: <Block as Block>::Extrinsic
) -> Result<Result<ValidTransaction, TransactionValidityError>, ApiError>
fn validate_transaction_before_version_2( &self, __runtime_api_at_param__: <Block as Block>::Hash, tx: <Block as Block>::Extrinsic ) -> Result<Result<ValidTransaction, TransactionValidityError>, ApiError>
👎Deprecated
Validate the transaction.
§fn validate_transaction_before_version_3(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
source: TransactionSource,
tx: <Block as Block>::Extrinsic
) -> Result<Result<ValidTransaction, TransactionValidityError>, ApiError>
fn validate_transaction_before_version_3( &self, __runtime_api_at_param__: <Block as Block>::Hash, source: TransactionSource, tx: <Block as Block>::Extrinsic ) -> Result<Result<ValidTransaction, TransactionValidityError>, ApiError>
👎Deprecated
Validate the transaction.
§fn validate_transaction(
&self,
__runtime_api_at_param__: <Block as Block>::Hash,
source: TransactionSource,
tx: <Block as Block>::Extrinsic,
block_hash: <Block as Block>::Hash
) -> Result<Result<ValidTransaction, TransactionValidityError>, ApiError>
fn validate_transaction( &self, __runtime_api_at_param__: <Block as Block>::Hash, source: TransactionSource, tx: <Block as Block>::Extrinsic, block_hash: <Block as Block>::Hash ) -> Result<Result<ValidTransaction, TransactionValidityError>, ApiError>
Validate the transaction. Read more
source§impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> TransactionPaymentApi<__SrApiBlock__, u64> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
<__SrApiBlock__ as BlockT>::Extrinsic: UnwindSafe + RefUnwindSafe,
u32: UnwindSafe + RefUnwindSafe,
RuntimeDispatchInfo<Balance>: UnwindSafe + RefUnwindSafe,
FeeDetails<Balance>: UnwindSafe + RefUnwindSafe,
Weight: UnwindSafe + RefUnwindSafe,
Balance: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
impl<__SrApiBlock__: BlockT + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static> TransactionPaymentApi<__SrApiBlock__, u64> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>where
RuntimeApiImplCall::StateBackend: StateBackend<HashingFor<__SrApiBlock__>>,
&'static RuntimeApiImplCall: Send,
<__SrApiBlock__ as BlockT>::Extrinsic: UnwindSafe + RefUnwindSafe,
u32: UnwindSafe + RefUnwindSafe,
RuntimeDispatchInfo<Balance>: UnwindSafe + RefUnwindSafe,
FeeDetails<Balance>: UnwindSafe + RefUnwindSafe,
Weight: UnwindSafe + RefUnwindSafe,
Balance: UnwindSafe + RefUnwindSafe,
__SrApiBlock__::Header: UnwindSafe + RefUnwindSafe,
fn query_info( &self, __runtime_api_at_param__: <Block as Block>::Hash, uxt: <Block as Block>::Extrinsic, len: u32 ) -> Result<RuntimeDispatchInfo<Balance>, ApiError>
fn query_fee_details( &self, __runtime_api_at_param__: <Block as Block>::Hash, uxt: <Block as Block>::Extrinsic, len: u32 ) -> Result<FeeDetails<Balance>, ApiError>
fn query_weight_to_fee( &self, __runtime_api_at_param__: <Block as Block>::Hash, weight: Weight ) -> Result<Balance, ApiError>
fn query_length_to_fee( &self, __runtime_api_at_param__: <Block as Block>::Hash, length: u32 ) -> Result<Balance, ApiError>
Auto Trait Implementations§
impl<Block, C> !Freeze for RuntimeApiImpl<Block, C>
impl<Block, C> !RefUnwindSafe for RuntimeApiImpl<Block, C>
impl<Block, C> Send for RuntimeApiImpl<Block, C>where
C: Sync,
impl<Block, C> !Sync for RuntimeApiImpl<Block, C>
impl<Block, C> Unpin for RuntimeApiImpl<Block, C>
impl<Block, C> !UnwindSafe for RuntimeApiImpl<Block, C>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.