Skip to content

src/api/service/author/author_api.hpp

Namespaces

Name
sgns
sgns::api

Classes

Name
class sgns::api::AuthorApi

Source code

#ifndef SUPERGENIUS_SRC_API_EXTRINSIC_EXTRINSIC_API_HPP
#define SUPERGENIUS_SRC_API_EXTRINSIC_EXTRINSIC_API_HPP

#include "base/blob.hpp"
#include "primitives/extrinsic.hpp"
#include "primitives/author_api_primitives.hpp"
#include "singleton/IComponent.hpp"

namespace sgns::api {
  class AuthorApi : public IComponent {
   protected:
    using Hash256 = base::Hash256;
    using Buffer = base::Buffer;
    using Extrinsic = primitives::Extrinsic;
    // using Metadata = primitives::Metadata;
    using Subscriber = primitives::Subscriber;
    using SubscriptionId = primitives::SubscriptionId;
    using ExtrinsicKey = primitives::ExtrinsicKey;

   public:
       ~AuthorApi() override = default;
    virtual outcome::result<Hash256> submitExtrinsic(
        const Extrinsic &extrinsic) = 0;

       virtual outcome::result<std::vector<Extrinsic>> pendingExtrinsics() = 0;

       // TODO(yuraz): will be documented later (no task yet)
    virtual outcome::result<std::vector<Hash256>> removeExtrinsic(
        const std::vector<ExtrinsicKey> &keys) = 0;
  };
}  // namespace sgns::api

#endif  // SUPERGENIUS_SRC_API_EXTRINSIC_EXTRINSIC_API_HPP

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