Skip to content

src/storage/trie/codec.hpp

Namespaces

Name
sgns
sgns::storage
sgns::storage::trie

Classes

Name
class sgns::storage::trie::Codec
Internal codec for nodes in the Trie. Eth and substrate have different codecs, but rest of the code should be same.

Source code

#ifndef SUPERGENIUS_TRIE_CODEC_HPP
#define SUPERGENIUS_TRIE_CODEC_HPP

#include "base/blob.hpp"  // for Hash256
#include "base/buffer.hpp"
#include "storage/trie/node.hpp"
#include "singleton/IComponent.hpp"

namespace sgns::storage::trie {

  class Codec : public IComponent{
   public:
       ~Codec() override = default;

    virtual outcome::result<base::Buffer> encodeNode(
        const Node &node) const = 0;

    virtual outcome::result<std::shared_ptr<Node>> decodeNode(
        const base::Buffer &encoded_data) const = 0;

    virtual base::Buffer merkleValue(const base::Buffer &buf) const = 0;

    virtual base::Hash256 hash256(const base::Buffer &buf) const = 0;
  };

}  // namespace sgns::storage::trie

#endif  // SUPERGENIUS_TRIE_CODEC_HPP

Updated on 2026-03-04 at 13:10:45 -0800