pub trait CallExecutor<B: BlockT>: RuntimeVersionOf {
    type Error: Error;
    type Backend: Backend<B>;

    fn execution_extensions(&self) -> &ExecutionExtensions<B>;
    fn call(
        &self,
        at_hash: B::Hash,
        method: &str,
        call_data: &[u8],
        strategy: ExecutionStrategy
    ) -> Result<Vec<u8>, Error>; fn contextual_call(
        &self,
        at_hash: B::Hash,
        method: &str,
        call_data: &[u8],
        changes: &RefCell<OverlayedChanges>,
        storage_transaction_cache: Option<&RefCell<StorageTransactionCache<B, <Self::Backend as Backend<B>>::State>>>,
        proof_recorder: &Option<ProofRecorder<B>>,
        context: ExecutionContext
    ) -> Result<Vec<u8>>; fn runtime_version(&self, at_hash: B::Hash) -> Result<RuntimeVersion, Error>; fn prove_execution(
        &self,
        at_hash: B::Hash,
        method: &str,
        call_data: &[u8]
    ) -> Result<(Vec<u8>, StorageProof), Error>; }
Expand description

Method call executor.

Required Associated Types

Externalities error type.

The backend used by the node.

Required Methods

Returns the ExecutionExtensions.

Execute a call to a contract on top of state in a block of given hash.

No changes are made.

Execute a contextual call on top of state in a block of a given hash.

No changes are made. Before executing the method, passed header is installed as the current header of the execution context.

Extract RuntimeVersion of given block

No changes are made.

Prove the execution of the given method.

No changes are made.

Implementors