[][src]Trait sp_core::traits::Externalities

pub trait Externalities: ExtensionStore {
    fn set_offchain_storage(&mut self, key: &[u8], value: Option<&[u8]>);
fn storage(&self, key: &[u8]) -> Option<Vec<u8>>;
fn storage_hash(&self, key: &[u8]) -> Option<Vec<u8>>;
fn child_storage_hash(
        &self,
        child_info: &ChildInfo,
        key: &[u8]
    ) -> Option<Vec<u8>>;
fn child_storage(
        &self,
        child_info: &ChildInfo,
        key: &[u8]
    ) -> Option<Vec<u8>>;
fn next_storage_key(&self, key: &[u8]) -> Option<Vec<u8>>;
fn next_child_storage_key(
        &self,
        child_info: &ChildInfo,
        key: &[u8]
    ) -> Option<Vec<u8>>;
fn kill_child_storage(&mut self, child_info: &ChildInfo);
fn clear_prefix(&mut self, prefix: &[u8]);
fn clear_child_prefix(&mut self, child_info: &ChildInfo, prefix: &[u8]);
fn place_storage(&mut self, key: Vec<u8>, value: Option<Vec<u8>>);
fn place_child_storage(
        &mut self,
        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, child_info: &ChildInfo) -> Vec<u8>;
fn storage_append(&mut self, key: Vec<u8>, value: 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,
        child_info: &ChildInfo,
        key: Vec<u8>,
        value: Vec<u8>
    ) { ... }
fn clear_storage(&mut self, key: &[u8]) { ... }
fn clear_child_storage(&mut self, child_info: &ChildInfo, key: &[u8]) { ... }
fn exists_storage(&self, key: &[u8]) -> bool { ... }
fn exists_child_storage(&self, child_info: &ChildInfo, key: &[u8]) -> bool { ... } }

The Substrate externalities.

Provides access to the storage and to other registered extensions.

Required methods

fn set_offchain_storage(&mut self, key: &[u8], value: Option<&[u8]>)

Write a key value pair to the offchain storage database.

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,
    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, 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,
    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, 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, 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,
    child_info: &ChildInfo,
    key: Vec<u8>,
    value: Option<Vec<u8>>
)

Set or clear a child storage entry.

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 returned hash is defined by the Block and is SCALE encoded.

fn child_storage_root(&mut self, child_info: &ChildInfo) -> 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_append(&mut self, key: Vec<u8>, value: Vec<u8>)

Append storage item.

This assumes specific format of the storage item. Also there is no way to undo this operation.

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

Get the changes trie root of the current storage overlay at a block with given parent.

parent expects a SCALE encoded hash.

The returned hash is defined by the Block and is SCALE encoded.

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