account/MigrationTransaction.hpp¶
Header file for a Migration transaction that mint tokens on the destination chain based on observed legacy balances on the source chain. More...
Namespaces¶
| Name |
|---|
| sgns |
Classes¶
| Name | |
|---|---|
| class | sgns::MigrationTransaction |
Detailed Description¶
Header file for a Migration transaction that mint tokens on the destination chain based on observed legacy balances on the source chain.
Date: 2026-04-29
Source code¶
#pragma once
#include <cstdint>
#include <optional>
#include <string>
#include <unordered_set>
#include <vector>
#include "account/GeniusTransaction.hpp"
#include "account/TokenID.hpp"
#include "account/UTXOStructs.hpp"
namespace sgns
{
class MigrationTransaction final : public GeniusTransaction
{
public:
using GeniusTransaction::SerializeByteVector;
using GeniusTransaction::SerializeToEmbeddedTransaction;
EmbeddedTransaction SerializeToEmbeddedTransaction( const SGTransaction::DAGStruct &dag ) const override;
~MigrationTransaction() override = default;
static std::shared_ptr<MigrationTransaction> DeSerializeByteVector( const std::vector<uint8_t> &data );
static MigrationTransaction New( uint64_t amount,
std::string from_version,
TokenID token_id,
SGTransaction::DAGStruct dag,
std::string destination = "" );
std::vector<uint8_t> SerializeByteVector( const SGTransaction::DAGStruct &dag ) const override;
uint64_t GetAmount() const;
TokenID GetTokenID() const;
std::string GetChainId() const override;
UTXOTxParameters GetUTXOParameters() const;
bool HasUTXOParameters() const override;
std::optional<UTXOTxParameters> GetUTXOParametersOpt() const override;
std::string GetFromVersion() const;
std::string GetTransactionSpecificPath() const override
{
return GetType();
}
std::unordered_set<std::string> GetTopics() const override;
static std::string DeriveUniqueSourceKey( std::string_view from_version,
std::string_view source_address,
const TokenID &token_id );
private:
MigrationTransaction( UTXOTxParameters utxo_params,
std::string from_version,
TokenID token_id,
SGTransaction::DAGStruct dag );
UTXOTxParameters utxo_params_;
std::string from_version_;
TokenID token_id_;
static bool Register()
{
RegisterDeserializer( "migration", &MigrationTransaction::DeSerializeByteVector );
return true;
}
static inline bool registered = Register();
};
}
Updated on 2026-06-05 at 17:22:19 -0700