[][src]Trait sp_externalities::Externalities

pub trait Externalities: ExtensionStore {
    fn storage(&self, key: &[u8]) -> Option<Vec<u8>>;
fn storage_hash(&self, key: &[u8]) -> Option<Vec<u8>>;
fn child_storage_hash(
        &self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        key: &[u8]
    ) -> Option<Vec<u8>>;
fn child_storage(
        &self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        key: &[u8]
    ) -> Option<Vec<u8>>;
fn next_storage_key(&self, key: &[u8]) -> Option<Vec<u8>>;
fn next_child_storage_key(
        &self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        key: &[u8]
    ) -> Option<Vec<u8>>;
fn kill_child_storage(
        &mut self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo
    );
fn clear_prefix(&mut self, prefix: &[u8]);
fn clear_child_prefix(
        &mut self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        prefix: &[u8]
    );
fn place_storage(&mut self, key: Vec<u8>, value: Option<Vec<u8>>);
fn place_child_storage(
        &mut self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        key: Vec<u8>,
        value: Option<Vec<u8>>
    );
fn chain_id(&self) -> u64;
fn storage_root(&mut self) -> Vec<u8>;
fn child_storage_root(&mut self, storage_key: ChildStorageKey) -> Vec<u8>;
fn storage_changes_root(
        &mut self,
        parent: &[u8]
    ) -> Result<Option<Vec<u8>>, ()>;
fn wipe(&mut self);
fn commit(&mut self); fn set_storage(&mut self, key: Vec<u8>, value: Vec<u8>) { ... }
fn set_child_storage(
        &mut self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        key: Vec<u8>,
        value: Vec<u8>
    ) { ... }
fn clear_storage(&mut self, key: &[u8]) { ... }
fn clear_child_storage(
        &mut self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        key: &[u8]
    ) { ... }
fn exists_storage(&self, key: &[u8]) -> bool { ... }
fn exists_child_storage(
        &self,
        storage_key: ChildStorageKey,
        child_info: ChildInfo,
        key: &[u8]
    ) -> bool { ... } }

The Substrate externalities.

Provides access to the storage and to other registered extensions.

Required methods

fn storage(&self, key: &[u8]) -> Option<Vec<u8>>

Read runtime storage.

fn storage_hash(&self, key: &[u8]) -> Option<Vec<u8>>

Get storage value hash. This may be optimized for large values.

fn child_storage_hash(
    &self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    key: &[u8]
) -> Option<Vec<u8>>

Get child storage value hash. This may be optimized for large values.

Returns an Option that holds the SCALE encoded hash.

fn child_storage(
    &self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    key: &[u8]
) -> Option<Vec<u8>>

Read child runtime storage.

Returns an Option that holds the SCALE encoded hash.

fn next_storage_key(&self, key: &[u8]) -> Option<Vec<u8>>

Returns the key immediately following the given key, if it exists.

fn next_child_storage_key(
    &self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    key: &[u8]
) -> Option<Vec<u8>>

Returns the key immediately following the given key, if it exists, in child storage.

fn kill_child_storage(
    &mut self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo
)

Clear an entire child storage.

fn clear_prefix(&mut self, prefix: &[u8])

Clear storage entries which keys are start with the given prefix.

fn clear_child_prefix(
    &mut self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    prefix: &[u8]
)

Clear child storage entries which keys are start with the given prefix.

fn place_storage(&mut self, key: Vec<u8>, value: Option<Vec<u8>>)

Set or clear a storage entry (key) of current contract being called (effective immediately).

fn place_child_storage(
    &mut self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    key: Vec<u8>,
    value: Option<Vec<u8>>
)

Set or clear a child storage entry. Return whether the operation succeeds.

fn chain_id(&self) -> u64

Get the identity of the chain.

fn storage_root(&mut self) -> Vec<u8>

Get the trie root of the current storage map. This will also update all child storage keys in the top-level storage map.

The hash is defined by the Block.

Returns the SCALE encoded hash.

fn child_storage_root(&mut self, storage_key: ChildStorageKey) -> Vec<u8>

Get the trie root of a child storage map. This will also update the value of the child storage keys in the top-level storage map. If the storage root equals the default hash as defined by the trie, the key in the top-level storage map will be removed.

fn storage_changes_root(&mut self, parent: &[u8]) -> Result<Option<Vec<u8>>, ()>

Get the change trie root of the current storage overlay at a block with given parent. parent is expects a SCALE encoded hash.

The hash is defined by the Block.

Returns the SCALE encoded hash.

fn wipe(&mut self)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Benchmarking related functionality and shouldn't be used anywhere else! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Wipes all changes from caches and the database.

The state will be reset to genesis.

fn commit(&mut self)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Benchmarking related functionality and shouldn't be used anywhere else! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Commits all changes to the database and clears all caches.

Loading content...

Provided methods

fn set_storage(&mut self, key: Vec<u8>, value: Vec<u8>)

Set storage entry key of current contract being called (effective immediately).

fn set_child_storage(
    &mut self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    key: Vec<u8>,
    value: Vec<u8>
)

Set child storage entry key of current contract being called (effective immediately).

fn clear_storage(&mut self, key: &[u8])

Clear a storage entry (key) of current contract being called (effective immediately).

fn clear_child_storage(
    &mut self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    key: &[u8]
)

Clear a child storage entry (key) of current contract being called (effective immediately).

fn exists_storage(&self, key: &[u8]) -> bool

Whether a storage entry exists.

fn exists_child_storage(
    &self,
    storage_key: ChildStorageKey,
    child_info: ChildInfo,
    key: &[u8]
) -> bool

Whether a child storage entry exists.

Loading content...

Trait Implementations

impl<'_> ExternalitiesExt for &'_ mut dyn Externalities[src]

Implementors

Loading content...