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§

source

type Error: Error

Externalities error type.

source

type Backend: Backend<B>

The backend used by the node.

Required Methods§

source

fn execution_extensions(&self) -> &ExecutionExtensions<B>

Returns the ExecutionExtensions.

source

fn call(
    &self,
    at_hash: B::Hash,
    method: &str,
    call_data: &[u8],
    strategy: ExecutionStrategy
) -> Result<Vec<u8>, Error>

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

No changes are made.

source

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>>

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.

source

fn runtime_version(&self, at_hash: B::Hash) -> Result<RuntimeVersion, Error>

Extract RuntimeVersion of given block

No changes are made.

source

fn prove_execution(
    &self,
    at_hash: B::Hash,
    method: &str,
    call_data: &[u8]
) -> Result<(Vec<u8>, StorageProof), Error>

Prove the execution of the given method.

No changes are made.

Implementors§