Skip to content

account/RevokeTransaction.hpp

Transaction for main-initiated revocation of a registered child wallet. More...

Namespaces

Name
sgns

Classes

Name
class sgns::RevokeTransaction
Transaction for main-initiated revocation of a registered child wallet.

Detailed Description

Transaction for main-initiated revocation of a registered child wallet.

Date: 2026-07-21 (Phase 5)

Source code

#ifndef _REVOKE_TRANSACTION_HPP_
#define _REVOKE_TRANSACTION_HPP_

#include "account/GeniusTransaction.hpp"
#include "account/proto/SGTransaction.pb.h"

namespace sgns
{
    class RevokeTransaction final : public GeniusTransaction
    {
    public:
        static RevokeTransaction New( std::string               child_address,
                                      uint64_t                  registration_sequence,
                                      SGTransaction::DAGStruct  dag );

        ~RevokeTransaction() override = default;

        using GeniusTransaction::SerializeByteVector;
        std::vector<uint8_t> SerializeByteVector( const SGTransaction::DAGStruct &dag ) const override;

        using GeniusTransaction::SerializeToEmbeddedTransaction;
        EmbeddedTransaction SerializeToEmbeddedTransaction( const SGTransaction::DAGStruct &dag ) const override;

        static std::shared_ptr<RevokeTransaction> DeSerializeByteVector( const std::vector<uint8_t> &data );

        const std::string &GetChildAddress() const
        {
            return child_address_;
        }

        uint64_t GetRegistrationSequence() const
        {
            return registration_sequence_;
        }

        std::string GetTransactionSpecificPath() const override
        {
            return GetType();
        }

        std::unordered_set<std::string> GetTopics() const override;

    private:
        RevokeTransaction( std::string               child_address,
                           uint64_t                  registration_sequence,
                           SGTransaction::DAGStruct  dag );

        std::string child_address_;         
        uint64_t    registration_sequence_; 

        static bool Register()
        {
            RegisterDeserializer( "revoke", &RevokeTransaction::DeSerializeByteVector );
            return true;
        }

        static inline bool registered = Register();
    };

}

#endif

Updated on 2026-09-17 at 06:29:15 +0000