src/storage/changes_trie/changes_tracker.hpp
Namespaces
Classes
Source code
#ifndef SUPERGENIUS_STORAGE_CHANGES_TRIE_CHANGES_TRACKER
#define SUPERGENIUS_STORAGE_CHANGES_TRIE_CHANGES_TRACKER
#include "base/buffer.hpp"
#include "primitives/common.hpp"
#include "storage/changes_trie/changes_trie_config.hpp"
#include "singleton/IComponent.hpp"
namespace sgns::storage::changes_trie {
class ChangesTracker : public IComponent {
public:
using GetExtrinsicIndexDelegate =
std::function<outcome::result<base::Buffer>()>;
~ChangesTracker() override = default;
virtual void setExtrinsicIdxGetter(GetExtrinsicIndexDelegate f) = 0;
virtual outcome::result<void> onBlockChange(
primitives::BlockHash new_parent_hash,
primitives::BlockNumber new_parent_number) = 0;
virtual outcome::result<void> onPut(const base::Buffer &key,
const base::Buffer &value,
bool new_entry) = 0;
virtual outcome::result<void> onRemove(const base::Buffer &key) = 0;
virtual outcome::result<base::Hash256> constructChangesTrie(
const primitives::BlockHash &parent, const ChangesTrieConfig &conf) = 0;
};
} // namespace sgns::storage::changes_trie
#endif // SUPERGENIUS_STORAGE_CHANGES_TRIE_CHANGES_TRACKER
Updated on 2026-03-04 at 13:10:45 -0800