src/runtime/block_builder.hpp
Namespaces
Classes
Source code
#ifndef SUPERGENIUS_RUNTIME_BLOCK_BUILDER_HPP
#define SUPERGENIUS_RUNTIME_BLOCK_BUILDER_HPP
#include <list>
#include "outcome/outcome.hpp"
#include "primitives/apply_result.hpp"
#include "primitives/block.hpp"
#include "primitives/block_header.hpp"
#include "primitives/check_inherents_result.hpp"
#include "primitives/extrinsic.hpp"
#include "primitives/inherent_data.hpp"
namespace sgns::runtime {
class BlockBuilder {
public:
virtual ~BlockBuilder() = default;
virtual outcome::result<primitives::ApplyResult> apply_extrinsic(
const primitives::Extrinsic &extrinsic) = 0;
virtual outcome::result<primitives::BlockHeader> finalise_block() = 0;
virtual outcome::result<std::vector<primitives::Extrinsic>>
inherent_extrinsics(const primitives::InherentData &data) = 0;
virtual outcome::result<primitives::CheckInherentsResult> check_inherents(
const primitives::Block &block,
const primitives::InherentData &data) = 0;
virtual outcome::result<base::Hash256> random_seed() = 0;
};
} // namespace sgns::runtime
#endif // SUPERGENIUS_RUNTIME_BLOCK_BUILDER_HPP
Updated on 2026-03-04 at 13:10:45 -0800