Trait frame_try_runtime::inner::TryRuntime

source ·
pub trait TryRuntime<Block: BlockT>: Core<Block> {
    // Provided methods
    fn on_runtime_upgrade(
        &self,
        __runtime_api_at_param__: <Block as BlockT>::Hash,
        checks: UpgradeCheckSelect,
    ) -> Result<(Weight, Weight), ApiError> { ... }
    fn execute_block(
        &self,
        __runtime_api_at_param__: <Block as BlockT>::Hash,
        block: Block,
        state_root_check: bool,
        signature_check: bool,
        try_state: TryStateSelect,
    ) -> Result<Weight, ApiError> { ... }
}
Expand description

Runtime api for testing the execution of a runtime upgrade.

Provided Methods§

source

fn on_runtime_upgrade( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, checks: UpgradeCheckSelect, ) -> Result<(Weight, Weight), ApiError>

dry-run runtime upgrades, returning the total weight consumed.

This should do EXACTLY the same operations as the runtime would have done in the case of a runtime upgrade (e.g. pallet ordering must be the same)

Returns the consumed weight of the migration in case of a successful one, combined with the total allowed block weight of the runtime.

If checks is true, pre_migrate and post_migrate of each migration and try_state of all pallets will be executed. Else, no. If checks are executed, the PoV tracking is likely inaccurate.

source

fn execute_block( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, block: Block, state_root_check: bool, signature_check: bool, try_state: TryStateSelect, ) -> Result<Weight, ApiError>

Execute the given block, but optionally disable state-root and signature checks.

Optionally, a number of try_state hooks can also be executed after the block execution.

Trait Implementations§

source§

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

source§

const ID: [u8; 8] = _

The identifier of the runtime api.
source§

const VERSION: u32 = 1u32

The version of the runtime api.

Implementors§