Trait sp_api::ApiExt[][src]

pub trait ApiExt<Block: BlockT>: ApiErrorExt {
    type StateBackend: StateBackend<HashFor<Block>>;
    fn execute_in_transaction<F: FnOnce(&Self) -> TransactionOutcome<R>, R>(
        &self,
        call: F
    ) -> R
    where
        Self: Sized
;
fn has_api<A: RuntimeApiInfo + ?Sized>(
        &self,
        at: &BlockId<Block>
    ) -> Result<bool, Self::Error>
    where
        Self: Sized
;
fn has_api_with<A: RuntimeApiInfo + ?Sized, P: Fn(u32) -> bool>(
        &self,
        at: &BlockId<Block>,
        pred: P
    ) -> Result<bool, Self::Error>
    where
        Self: Sized
;
fn record_proof(&mut self);
fn extract_proof(&mut self) -> Option<StorageProof>;
fn into_storage_changes(
        &self,
        backend: &Self::StateBackend,
        changes_trie_state: Option<&ChangesTrieState<'_, HashFor<Block>, NumberFor<Block>>>,
        parent_hash: Block::Hash
    ) -> Result<StorageChanges<Self::StateBackend, Block>, String>
    where
        Self: Sized
; }

Extends the runtime api implementation with some common functionality.

Associated Types

type StateBackend: StateBackend<HashFor<Block>>[src]

The state backend that is used to store the block states.

Loading content...

Required methods

fn execute_in_transaction<F: FnOnce(&Self) -> TransactionOutcome<R>, R>(
    &self,
    call: F
) -> R where
    Self: Sized
[src]

Execute the given closure inside a new transaction.

Depending on the outcome of the closure, the transaction is committed or rolled-back.

The internal result of the closure is returned afterwards.

fn has_api<A: RuntimeApiInfo + ?Sized>(
    &self,
    at: &BlockId<Block>
) -> Result<bool, Self::Error> where
    Self: Sized
[src]

Checks if the given api is implemented and versions match.

fn has_api_with<A: RuntimeApiInfo + ?Sized, P: Fn(u32) -> bool>(
    &self,
    at: &BlockId<Block>,
    pred: P
) -> Result<bool, Self::Error> where
    Self: Sized
[src]

Check if the given api is implemented and the version passes a predicate.

fn record_proof(&mut self)[src]

Start recording all accessed trie nodes for generating proofs.

fn extract_proof(&mut self) -> Option<StorageProof>[src]

Extract the recorded proof.

This stops the proof recording.

If record_proof was not called before, this will return None.

fn into_storage_changes(
    &self,
    backend: &Self::StateBackend,
    changes_trie_state: Option<&ChangesTrieState<'_, HashFor<Block>, NumberFor<Block>>>,
    parent_hash: Block::Hash
) -> Result<StorageChanges<Self::StateBackend, Block>, String> where
    Self: Sized
[src]

Convert the api object into the storage changes that were done while executing runtime api functions.

After executing this function, all collected changes are reset.

Loading content...

Implementors

Loading content...