Skip to content

src/runtime/finality_api.hpp

Namespaces

Name
sgns
sgns::runtime

Classes

Name
class sgns::runtime::FinalityApi
interface for Finality runtime functions

Source code

#ifndef SUPERGENIUS_SRC_RUNTIME_FINALITY_API_HPP
#define SUPERGENIUS_SRC_RUNTIME_FINALITY_API_HPP

#include <boost/optional.hpp>
#include "outcome/outcome.hpp"
#include "primitives/authority.hpp"
#include "primitives/block_id.hpp"
#include "primitives/digest.hpp"
#include "primitives/scheduled_change.hpp"
#include "primitives/session_key.hpp"

namespace sgns::runtime {

  class FinalityApi {
   protected:
    using Digest = primitives::Digest;
    using ScheduledChange = primitives::ScheduledChange;
    using BlockNumber = primitives::BlockNumber;
    using SessionKey = primitives::SessionKey;
    using WeightedAuthority = primitives::Authority;
    using ForcedChange = primitives::ForcedChange;
    using BlockId = primitives::BlockId;

   public:
    virtual ~FinalityApi() = default;
    virtual outcome::result<boost::optional<ScheduledChange>> pending_change(
        const Digest &digest) = 0;

    virtual outcome::result<boost::optional<ForcedChange>> forced_change(
        const Digest &digest) = 0;

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

}  // namespace sgns::runtime

#endif  // SUPERGENIUS_SRC_RUNTIME_FINALITY_API_HPP

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