Skip to content

src/account/MintTransaction.hpp

More...

Namespaces

Name
sgns

Classes

Name
class sgns::MintTransaction

Detailed Description

Date: 2024-03-15 Henrique A. Klein ([email protected])

Source code

#ifndef _MINT_TRANSACTION_HPP_
#define _MINT_TRANSACTION_HPP_

#include <vector>
#include <cstdint>

#include "account/IGeniusTransactions.hpp"
#include "account/TokenID.hpp"

namespace sgns
{
    class MintTransaction final : public IGeniusTransactions
    {
    public:
        ~MintTransaction() override = default;

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

        static MintTransaction New( uint64_t                                        new_amount,
                                    std::string                                     chain_id,
                                    TokenID                                         token_id,
                                    SGTransaction::DAGStruct                        dag );

        std::vector<uint8_t> SerializeByteVector() override;

        uint64_t GetAmount() const;

        TokenID GetTokenID() const;

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

    private:
        MintTransaction( uint64_t new_amount, std::string chain_id, TokenID token_id, SGTransaction::DAGStruct dag );

        uint64_t    amount;
        std::string chain_id;
        TokenID     token_id;

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

        static inline bool registered = Register();
    };
}

#endif

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