Skip to content

sgns::storage::changes_trie::StorageChangesTrackerImpl

#include <storage_changes_tracker_impl.hpp>

Inherits from sgns::storage::changes_trie::ChangesTracker, IComponent

Public Types

Name
enum class Error

Public Functions

Name
StorageChangesTrackerImpl(std::shared_ptr< storage::trie::SuperGeniusTrieFactory > trie_factory, std::shared_ptr< storage::trie::Codec > codec, SubscriptionEnginePtr subscription_engine)
~StorageChangesTrackerImpl() override =default
virtual void setExtrinsicIdxGetter(GetExtrinsicIndexDelegate f) override
virtual outcome::result< void > onBlockChange(primitives::BlockHash new_parent_hash, primitives::BlockNumber new_parent_number) override
virtual outcome::result< void > onPut(const base::Buffer & key, const base::Buffer & value, bool new_entry) override
virtual outcome::result< void > onRemove(const base::Buffer & key) override
virtual outcome::result< base::Hash256 > constructChangesTrie(const primitives::BlockHash & parent, const ChangesTrieConfig & conf) override
virtual std::string GetName() override

Additional inherited members

Public Types inherited from sgns::storage::changes_trie::ChangesTracker

Name
using std::function< outcome::result< base::Buffer >()> GetExtrinsicIndexDelegate

Public Functions inherited from sgns::storage::changes_trie::ChangesTracker

Name
~ChangesTracker() override =default

Public Functions inherited from IComponent

Name
virtual ~IComponent() =default

Public Types Documentation

enum Error

Enumerator Value Description
EXTRINSIC_IDX_GETTER_UNINITIALIZED 1
INVALID_PARENT_HASH

Public Functions Documentation

function StorageChangesTrackerImpl

StorageChangesTrackerImpl(
    std::shared_ptr< storage::trie::SuperGeniusTrieFactory > trie_factory,
    std::shared_ptr< storage::trie::Codec > codec,
    SubscriptionEnginePtr subscription_engine
)

function ~StorageChangesTrackerImpl

~StorageChangesTrackerImpl() override =default

Functor that returns the current extrinsic index, which is supposed to be stored in the state trie

function setExtrinsicIdxGetter

virtual void setExtrinsicIdxGetter(
    GetExtrinsicIndexDelegate f
) override

Parameters:

  • f is a functor that returns the current extrinsic index

Reimplements: sgns::storage::changes_trie::ChangesTracker::setExtrinsicIdxGetter

function onBlockChange

virtual outcome::result< void > onBlockChange(
    primitives::BlockHash new_parent_hash,
    primitives::BlockNumber new_parent_number
) override

Reimplements: sgns::storage::changes_trie::ChangesTracker::onBlockChange

Supposed to be called when the processed block changes

function onPut

virtual outcome::result< void > onPut(
    const base::Buffer & key,
    const base::Buffer & value,
    bool new_entry
) override

Reimplements: sgns::storage::changes_trie::ChangesTracker::onPut

Supposed to be called when an entry is put into the tracked storage

  • new_entry states whether the entry is new, or just an update of a present value

function onRemove

virtual outcome::result< void > onRemove(
    const base::Buffer & key
) override

Reimplements: sgns::storage::changes_trie::ChangesTracker::onRemove

Supposed to be called when an entry is removed from the tracked storage

function constructChangesTrie

virtual outcome::result< base::Hash256 > constructChangesTrie(
    const primitives::BlockHash & parent,
    const ChangesTrieConfig & conf
) override

Reimplements: sgns::storage::changes_trie::ChangesTracker::constructChangesTrie

Sinks accumulated changes for the latest registered block to the changes trie and returns its root hash

function GetName

inline virtual std::string GetName() override

Reimplements: IComponent::GetName


Updated on 2026-04-15 at 11:00:39 -0700