Skip to content

src/runtime/parachain_host.hpp

Namespaces

Name
sgns
sgns::runtime

Classes

Name
class sgns::runtime::ParachainHost

Source code

#ifndef SUPERGENIUS_SRC_RUNTIME_PARACHAIN_HOST_HPP
#define SUPERGENIUS_SRC_RUNTIME_PARACHAIN_HOST_HPP

#include "base/buffer.hpp"
#include "primitives/parachain_host.hpp"

namespace sgns::runtime {

  class ParachainHost {
   protected:
    using Buffer = base::Buffer;
    using ValidatorId = primitives::parachain::ValidatorId;
    using DutyRoster = primitives::parachain::DutyRoster;
    using ParachainId = primitives::parachain::ParaId;

   public:
    virtual ~ParachainHost() = default;

    virtual outcome::result<DutyRoster> duty_roster() = 0;

    virtual outcome::result<std::vector<ParachainId>> active_parachains() = 0;

    virtual outcome::result<boost::optional<Buffer>> parachain_head(
        ParachainId id) = 0;

    virtual outcome::result<boost::optional<sgns::base::Buffer>>
    parachain_code(ParachainId id) = 0;

    virtual outcome::result<std::vector<ValidatorId>> validators() = 0;
  };

}  // namespace sgns::runtime
#endif  // SUPERGENIUS_SRC_RUNTIME_PARACHAIN_HOST_HPP

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