Skip to content

src/runtime/core.hpp

Namespaces

Name
sgns
sgns::runtime

Classes

Name
class sgns::runtime::Core

Source code

#ifndef SUPERGENIUS_RUNTIME_CORE_HPP
#define SUPERGENIUS_RUNTIME_CORE_HPP

#include "outcome/outcome.hpp"
#include <vector>

#include "primitives/authority.hpp"
#include "primitives/block.hpp"
#include "primitives/block_id.hpp"
#include "primitives/common.hpp"
#include "primitives/transaction_validity.hpp"
#include "primitives/version.hpp"
#include <boost/optional.hpp>
namespace sgns::runtime {
  class WasmProvider;
  class Core {
   public:
    virtual ~Core() = default;

    virtual outcome::result<primitives::Version> version(
        const boost::optional<primitives::BlockHash> &block_hash) = 0;

    virtual outcome::result<void> execute_block(
        const primitives::Block &block) = 0;

    virtual outcome::result<void> initialise_block(
        const primitives::BlockHeader &header) = 0;

    virtual outcome::result<std::vector<primitives::AuthorityId>> authorities(
        const primitives::BlockId &block_id) = 0;
  };

}  // namespace sgns::runtime

#endif  // SUPERGENIUS_RUNTIME_CORE_HPP

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