Trait sp_beefy::BeefyApi

source ·
pub trait BeefyApi<Block: BlockT>: Core<Block> {
    // Provided methods
    fn beefy_genesis(
        &self,
        __runtime_api_at_param__: &BlockId<Block>
    ) -> Result<Option<NumberFor<Block>>, ApiError> { ... }
    fn beefy_genesis_with_context(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        context: ExecutionContext
    ) -> Result<Option<NumberFor<Block>>, ApiError> { ... }
    fn validator_set(
        &self,
        __runtime_api_at_param__: &BlockId<Block>
    ) -> Result<Option<ValidatorSet<AuthorityId>>, ApiError> { ... }
    fn validator_set_with_context(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        context: ExecutionContext
    ) -> Result<Option<ValidatorSet<AuthorityId>>, ApiError> { ... }
    fn submit_report_equivocation_unsigned_extrinsic(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        equivocation_proof: EquivocationProof<NumberFor<Block>, AuthorityId, Signature>,
        key_owner_proof: OpaqueKeyOwnershipProof
    ) -> Result<Option<()>, ApiError> { ... }
    fn submit_report_equivocation_unsigned_extrinsic_with_context(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        context: ExecutionContext,
        equivocation_proof: EquivocationProof<NumberFor<Block>, AuthorityId, Signature>,
        key_owner_proof: OpaqueKeyOwnershipProof
    ) -> Result<Option<()>, ApiError> { ... }
    fn generate_key_ownership_proof(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        set_id: ValidatorSetId,
        authority_id: AuthorityId
    ) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError> { ... }
    fn generate_key_ownership_proof_with_context(
        &self,
        __runtime_api_at_param__: &BlockId<Block>,
        context: ExecutionContext,
        set_id: ValidatorSetId,
        authority_id: AuthorityId
    ) -> Result<Option<OpaqueKeyOwnershipProof>, ApiError> { ... }
}
Expand description

API necessary for BEEFY voters.

Provided Methods§

source

fn beefy_genesis( &self, __runtime_api_at_param__: &BlockId<Block> ) -> Result<Option<NumberFor<Block>>, ApiError>

Return the block number where BEEFY consensus is enabled/started

source

fn beefy_genesis_with_context( &self, __runtime_api_at_param__: &BlockId<Block>, context: ExecutionContext ) -> Result<Option<NumberFor<Block>>, ApiError>

Return the block number where BEEFY consensus is enabled/started

source

fn validator_set( &self, __runtime_api_at_param__: &BlockId<Block> ) -> Result<Option<ValidatorSet<AuthorityId>>, ApiError>

Return the current active BEEFY validator set

source

fn validator_set_with_context( &self, __runtime_api_at_param__: &BlockId<Block>, context: ExecutionContext ) -> Result<Option<ValidatorSet<AuthorityId>>, ApiError>

Return the current active BEEFY validator set

source

fn submit_report_equivocation_unsigned_extrinsic( &self, __runtime_api_at_param__: &BlockId<Block>, equivocation_proof: EquivocationProof<NumberFor<Block>, AuthorityId, Signature>, 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

fn submit_report_equivocation_unsigned_extrinsic_with_context( &self, __runtime_api_at_param__: &BlockId<Block>, context: ExecutionContext, equivocation_proof: EquivocationProof<NumberFor<Block>, AuthorityId, Signature>, 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

fn generate_key_ownership_proof( &self, __runtime_api_at_param__: &BlockId<Block>, set_id: ValidatorSetId, authority_id: AuthorityId ) -> 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 ignores this parameter and instead relies 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.

source

fn generate_key_ownership_proof_with_context( &self, __runtime_api_at_param__: &BlockId<Block>, context: ExecutionContext, set_id: ValidatorSetId, authority_id: AuthorityId ) -> 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 ignores this parameter and instead relies 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.

Trait Implementations§

source§

impl<Block: BlockT> RuntimeApiInfo for dyn BeefyApi<Block>

source§

const ID: [u8; 8] = _

The identifier of the runtime api.
source§

const VERSION: u32 = 1u32

The version of the runtime api.

Implementors§