pub trait ParachainHost<Block>: Core<Block>
where Block: Block,
{
Show 31 methods // Provided methods fn validators( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<Public>, ApiError> { ... } fn validator_groups( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<(Vec<Vec<ValidatorIndex>>, GroupRotationInfo), ApiError> { ... } fn availability_cores( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<CoreState>, ApiError> { ... } fn persisted_validation_data( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, assumption: OccupiedCoreAssumption ) -> Result<Option<PersistedValidationData>, ApiError> { ... } fn assumed_validation_data( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, expected_persisted_validation_data_hash: H256 ) -> Result<Option<(PersistedValidationData, ValidationCodeHash)>, ApiError> { ... } fn check_validation_outputs( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, outputs: CandidateCommitments ) -> Result<bool, ApiError> { ... } fn session_index_for_child( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<u32, ApiError> { ... } fn validation_code( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, assumption: OccupiedCoreAssumption ) -> Result<Option<ValidationCode>, ApiError> { ... } fn candidate_pending_availability( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id ) -> Result<Option<CommittedCandidateReceiptV2>, ApiError> { ... } fn candidate_events( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<CandidateEvent>, ApiError> { ... } fn dmq_contents( &self, __runtime_api_at_param__: <Block as Block>::Hash, recipient: Id ) -> Result<Vec<InboundDownwardMessage>, ApiError> { ... } fn inbound_hrmp_channels_contents( &self, __runtime_api_at_param__: <Block as Block>::Hash, recipient: Id ) -> Result<BTreeMap<Id, Vec<InboundHrmpMessage>>, ApiError> { ... } fn validation_code_by_hash( &self, __runtime_api_at_param__: <Block as Block>::Hash, hash: ValidationCodeHash ) -> Result<Option<ValidationCode>, ApiError> { ... } fn on_chain_votes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Option<ScrapedOnChainVotes>, ApiError> { ... } fn session_info( &self, __runtime_api_at_param__: <Block as Block>::Hash, index: u32 ) -> Result<Option<SessionInfo>, ApiError> { ... } fn submit_pvf_check_statement( &self, __runtime_api_at_param__: <Block as Block>::Hash, stmt: PvfCheckStatement, signature: Signature ) -> Result<(), ApiError> { ... } fn pvfs_require_precheck( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<ValidationCodeHash>, ApiError> { ... } fn validation_code_hash( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, assumption: OccupiedCoreAssumption ) -> Result<Option<ValidationCodeHash>, ApiError> { ... } fn disputes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<(u32, CandidateHash, DisputeState)>, ApiError> { ... } fn session_executor_params( &self, __runtime_api_at_param__: <Block as Block>::Hash, session_index: u32 ) -> Result<Option<ExecutorParams>, ApiError> { ... } fn unapplied_slashes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<(u32, CandidateHash, PendingSlashes)>, ApiError> { ... } fn key_ownership_proof( &self, __runtime_api_at_param__: <Block as Block>::Hash, validator_id: Public ) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError> { ... } fn submit_report_dispute_lost( &self, __runtime_api_at_param__: <Block as Block>::Hash, dispute_proof: DisputeProof, key_ownership_proof: OpaqueKeyOwnershipProof ) -> Result<Option<()>, ApiError> { ... } fn minimum_backing_votes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<u32, ApiError> { ... } fn para_backing_state( &self, __runtime_api_at_param__: <Block as Block>::Hash, __runtime_api_generated_name_0__: Id ) -> Result<Option<BackingState>, ApiError> { ... } fn async_backing_params( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<AsyncBackingParams, ApiError> { ... } fn disabled_validators( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<ValidatorIndex>, ApiError> { ... } fn node_features( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<BitVec<u8>, ApiError> { ... } fn approval_voting_params( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<ApprovalVotingParams, ApiError> { ... } fn claim_queue( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<BTreeMap<CoreIndex, VecDeque<Id>>, ApiError> { ... } fn candidates_pending_availability( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id ) -> Result<Vec<CommittedCandidateReceiptV2>, ApiError> { ... }
}
Expand description

The API for querying the state of parachains on-chain.

Provided Methods§

source

fn validators( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<Public>, ApiError>

Get the current validators.

source

fn validator_groups( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<(Vec<Vec<ValidatorIndex>>, GroupRotationInfo), ApiError>

Returns the validator groups and rotation info localized based on the hypothetical child of a block whose state this is invoked on. Note that now in the GroupRotationInfo should be the successor of the number of the block.

source

fn availability_cores( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<CoreState>, ApiError>

Yields information on all availability cores as relevant to the child block. Cores are either free or occupied. Free cores can have paras assigned to them.

source

fn persisted_validation_data( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, assumption: OccupiedCoreAssumption ) -> Result<Option<PersistedValidationData>, ApiError>

Yields the persisted validation data for the given ParaId along with an assumption that should be used if the para currently occupies a core.

Returns None if either the para is not registered or the assumption is Freed and the para already occupies a core.

source

fn assumed_validation_data( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, expected_persisted_validation_data_hash: H256 ) -> Result<Option<(PersistedValidationData, ValidationCodeHash)>, ApiError>

Returns the persisted validation data for the given ParaId along with the corresponding validation code hash. Instead of accepting assumption about the para, matches the validation data hash against an expected one and yields None if they’re not equal.

source

fn check_validation_outputs( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, outputs: CandidateCommitments ) -> Result<bool, ApiError>

Checks if the given validation outputs pass the acceptance criteria.

source

fn session_index_for_child( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<u32, ApiError>

Returns the session index expected at a child of the block.

This can be used to instantiate a SigningContext.

source

fn validation_code( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, assumption: OccupiedCoreAssumption ) -> Result<Option<ValidationCode>, ApiError>

Fetch the validation code used by a para, making the given OccupiedCoreAssumption.

Returns None if either the para is not registered or the assumption is Freed and the para already occupies a core.

source

fn candidate_pending_availability( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id ) -> Result<Option<CommittedCandidateReceiptV2>, ApiError>

Get the receipt of a candidate pending availability. This returns Some for any paras assigned to occupied cores in availability_cores and None otherwise.

source

fn candidate_events( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<CandidateEvent>, ApiError>

Get a vector of events concerning candidates that occurred within a block.

source

fn dmq_contents( &self, __runtime_api_at_param__: <Block as Block>::Hash, recipient: Id ) -> Result<Vec<InboundDownwardMessage>, ApiError>

Get all the pending inbound messages in the downward message queue for a para.

source

fn inbound_hrmp_channels_contents( &self, __runtime_api_at_param__: <Block as Block>::Hash, recipient: Id ) -> Result<BTreeMap<Id, Vec<InboundHrmpMessage>>, ApiError>

Get the contents of all channels addressed to the given recipient. Channels that have no messages in them are also included.

source

fn validation_code_by_hash( &self, __runtime_api_at_param__: <Block as Block>::Hash, hash: ValidationCodeHash ) -> Result<Option<ValidationCode>, ApiError>

Get the validation code from its hash.

source

fn on_chain_votes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Option<ScrapedOnChainVotes>, ApiError>

Scrape dispute relevant from on-chain, backing votes and resolved disputes.

source

fn session_info( &self, __runtime_api_at_param__: <Block as Block>::Hash, index: u32 ) -> Result<Option<SessionInfo>, ApiError>

Get the session info for the given session, if stored.

NOTE: This function is only available since parachain host version 2.

source

fn submit_pvf_check_statement( &self, __runtime_api_at_param__: <Block as Block>::Hash, stmt: PvfCheckStatement, signature: Signature ) -> Result<(), ApiError>

Submits a PVF pre-checking statement into the transaction pool.

NOTE: This function is only available since parachain host version 2.

source

fn pvfs_require_precheck( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<ValidationCodeHash>, ApiError>

Returns code hashes of PVFs that require pre-checking by validators in the active set.

NOTE: This function is only available since parachain host version 2.

source

fn validation_code_hash( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id, assumption: OccupiedCoreAssumption ) -> Result<Option<ValidationCodeHash>, ApiError>

Fetch the hash of the validation code used by a para, making the given OccupiedCoreAssumption.

NOTE: This function is only available since parachain host version 2.

source

fn disputes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<(u32, CandidateHash, DisputeState)>, ApiError>

Returns all onchain disputes.

source

fn session_executor_params( &self, __runtime_api_at_param__: <Block as Block>::Hash, session_index: u32 ) -> Result<Option<ExecutorParams>, ApiError>

Returns execution parameters for the session.

source

fn unapplied_slashes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<(u32, CandidateHash, PendingSlashes)>, ApiError>

Returns a list of validators that lost a past session dispute and need to be slashed. NOTE: This function is only available since parachain host version 5.

source

fn key_ownership_proof( &self, __runtime_api_at_param__: <Block as Block>::Hash, validator_id: Public ) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError>

Returns a merkle proof of a validator session key. NOTE: This function is only available since parachain host version 5.

source

fn submit_report_dispute_lost( &self, __runtime_api_at_param__: <Block as Block>::Hash, dispute_proof: DisputeProof, key_ownership_proof: OpaqueKeyOwnershipProof ) -> Result<Option<()>, ApiError>

Submit an unsigned extrinsic to slash validators who lost a dispute about a candidate of a past session. NOTE: This function is only available since parachain host version 5.

source

fn minimum_backing_votes( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<u32, ApiError>

Get the minimum number of backing votes for a parachain candidate. This is a staging method! Do not use on production runtimes!

source

fn para_backing_state( &self, __runtime_api_at_param__: <Block as Block>::Hash, __runtime_api_generated_name_0__: Id ) -> Result<Option<BackingState>, ApiError>

Returns the state of parachain backing for a given para.

source

fn async_backing_params( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<AsyncBackingParams, ApiError>

Returns candidate’s acceptance limitations for asynchronous backing for a relay parent.

source

fn disabled_validators( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<Vec<ValidatorIndex>, ApiError>

Returns a list of all disabled validators at the given block.

source

fn node_features( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<BitVec<u8>, ApiError>

Get node features. This is a staging method! Do not use on production runtimes!

source

fn approval_voting_params( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<ApprovalVotingParams, ApiError>

Approval voting configuration parameters

source

fn claim_queue( &self, __runtime_api_at_param__: <Block as Block>::Hash ) -> Result<BTreeMap<CoreIndex, VecDeque<Id>>, ApiError>

Claim queue

source

fn candidates_pending_availability( &self, __runtime_api_at_param__: <Block as Block>::Hash, para_id: Id ) -> Result<Vec<CommittedCandidateReceiptV2>, ApiError>

Elastic scaling support

Trait Implementations§

source§

impl<Block> RuntimeApiInfo for dyn ParachainHost<Block>
where Block: Block,

source§

const ID: [u8; 8] = _

The identifier of the runtime api.
source§

const VERSION: u32 = 5u32

The version of the runtime api.

Implementations on Foreign Types§

§

impl<__SrApiBlock__, RuntimeApiImplCall> ParachainHost<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>
where __SrApiBlock__: Block + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static, <RuntimeApiImplCall as CallApiAt<__SrApiBlock__>>::StateBackend: Backend<<<__SrApiBlock__ as Block>::Header as Header>::Hashing>, &'static RuntimeApiImplCall: Send, Vec<Public>: UnwindSafe + RefUnwindSafe, (Vec<Vec<ValidatorIndex>>, GroupRotationInfo): UnwindSafe + RefUnwindSafe, Vec<CoreState>: UnwindSafe + RefUnwindSafe, Id: UnwindSafe + RefUnwindSafe, OccupiedCoreAssumption: UnwindSafe + RefUnwindSafe, Option<PersistedValidationData>: UnwindSafe + RefUnwindSafe, H256: UnwindSafe + RefUnwindSafe, Option<(PersistedValidationData, ValidationCodeHash)>: UnwindSafe + RefUnwindSafe, CandidateCommitments: UnwindSafe + RefUnwindSafe, bool: UnwindSafe + RefUnwindSafe, u32: UnwindSafe + RefUnwindSafe, Option<ValidationCode>: UnwindSafe + RefUnwindSafe, Option<CommittedCandidateReceiptV2>: UnwindSafe + RefUnwindSafe, Vec<CandidateEvent>: UnwindSafe + RefUnwindSafe, Option<SessionInfo>: UnwindSafe + RefUnwindSafe, Option<ExecutorParams>: UnwindSafe + RefUnwindSafe, Vec<InboundDownwardMessage>: UnwindSafe + RefUnwindSafe, BTreeMap<Id, Vec<InboundHrmpMessage>>: UnwindSafe + RefUnwindSafe, ValidationCodeHash: UnwindSafe + RefUnwindSafe, Option<ScrapedOnChainVotes>: UnwindSafe + RefUnwindSafe, PvfCheckStatement: UnwindSafe + RefUnwindSafe, Signature: UnwindSafe + RefUnwindSafe, Vec<ValidationCodeHash>: UnwindSafe + RefUnwindSafe, Option<ValidationCodeHash>: UnwindSafe + RefUnwindSafe, Vec<(u32, CandidateHash, DisputeState)>: UnwindSafe + RefUnwindSafe, Vec<(u32, CandidateHash, PendingSlashes)>: UnwindSafe + RefUnwindSafe, Public: UnwindSafe + RefUnwindSafe, Option<OpaqueKeyOwnershipProof>: UnwindSafe + RefUnwindSafe, DisputeProof: UnwindSafe + RefUnwindSafe, OpaqueKeyOwnershipProof: UnwindSafe + RefUnwindSafe, Option<()>: UnwindSafe + RefUnwindSafe, Option<BackingState>: UnwindSafe + RefUnwindSafe, AsyncBackingParams: UnwindSafe + RefUnwindSafe, ApprovalVotingParams: UnwindSafe + RefUnwindSafe, Vec<ValidatorIndex>: UnwindSafe + RefUnwindSafe, BitVec<u8>: UnwindSafe + RefUnwindSafe, BTreeMap<CoreIndex, VecDeque<Id>>: UnwindSafe + RefUnwindSafe, Vec<CommittedCandidateReceiptV2>: UnwindSafe + RefUnwindSafe, <__SrApiBlock__ as Block>::Header: UnwindSafe + RefUnwindSafe,

§

impl<__SrApiBlock__, RuntimeApiImplCall> ParachainHost<__SrApiBlock__> for RuntimeApiImpl<__SrApiBlock__, RuntimeApiImplCall>
where __SrApiBlock__: Block + UnwindSafe + RefUnwindSafe, RuntimeApiImplCall: CallApiAt<__SrApiBlock__> + 'static, <RuntimeApiImplCall as CallApiAt<__SrApiBlock__>>::StateBackend: Backend<<<__SrApiBlock__ as Block>::Header as Header>::Hashing>, &'static RuntimeApiImplCall: Send, Vec<Public>: UnwindSafe + RefUnwindSafe, (Vec<Vec<ValidatorIndex>>, GroupRotationInfo): UnwindSafe + RefUnwindSafe, Vec<CoreState>: UnwindSafe + RefUnwindSafe, Id: UnwindSafe + RefUnwindSafe, OccupiedCoreAssumption: UnwindSafe + RefUnwindSafe, Option<PersistedValidationData>: UnwindSafe + RefUnwindSafe, H256: UnwindSafe + RefUnwindSafe, Option<(PersistedValidationData, ValidationCodeHash)>: UnwindSafe + RefUnwindSafe, CandidateCommitments: UnwindSafe + RefUnwindSafe, bool: UnwindSafe + RefUnwindSafe, u32: UnwindSafe + RefUnwindSafe, Option<ValidationCode>: UnwindSafe + RefUnwindSafe, Option<CommittedCandidateReceiptV2>: UnwindSafe + RefUnwindSafe, Vec<CandidateEvent>: UnwindSafe + RefUnwindSafe, Option<SessionInfo>: UnwindSafe + RefUnwindSafe, Option<ExecutorParams>: UnwindSafe + RefUnwindSafe, Vec<InboundDownwardMessage>: UnwindSafe + RefUnwindSafe, BTreeMap<Id, Vec<InboundHrmpMessage>>: UnwindSafe + RefUnwindSafe, ValidationCodeHash: UnwindSafe + RefUnwindSafe, Option<ScrapedOnChainVotes>: UnwindSafe + RefUnwindSafe, PvfCheckStatement: UnwindSafe + RefUnwindSafe, Signature: UnwindSafe + RefUnwindSafe, Vec<ValidationCodeHash>: UnwindSafe + RefUnwindSafe, Option<ValidationCodeHash>: UnwindSafe + RefUnwindSafe, Vec<(u32, CandidateHash, DisputeState)>: UnwindSafe + RefUnwindSafe, Vec<(u32, CandidateHash, PendingSlashes)>: UnwindSafe + RefUnwindSafe, Public: UnwindSafe + RefUnwindSafe, Option<OpaqueKeyOwnershipProof>: UnwindSafe + RefUnwindSafe, DisputeProof: UnwindSafe + RefUnwindSafe, OpaqueKeyOwnershipProof: UnwindSafe + RefUnwindSafe, Option<()>: UnwindSafe + RefUnwindSafe, Option<BackingState>: UnwindSafe + RefUnwindSafe, AsyncBackingParams: UnwindSafe + RefUnwindSafe, ApprovalVotingParams: UnwindSafe + RefUnwindSafe, Vec<ValidatorIndex>: UnwindSafe + RefUnwindSafe, BitVec<u8>: UnwindSafe + RefUnwindSafe, BTreeMap<CoreIndex, VecDeque<Id>>: UnwindSafe + RefUnwindSafe, Vec<CommittedCandidateReceiptV2>: UnwindSafe + RefUnwindSafe, <__SrApiBlock__ as Block>::Header: UnwindSafe + RefUnwindSafe,

Implementors§