sgns::MigrationTransaction¶
#include <MigrationTransaction.hpp>
Inherits from sgns::GeniusTransaction
Public Functions¶
| Name | |
|---|---|
| virtual EmbeddedTransaction | SerializeToEmbeddedTransaction(const SGTransaction::DAGStruct & dag) const override Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set. |
| ~MigrationTransaction() override =default | |
| virtual std::vector< uint8_t > | SerializeByteVector(const SGTransaction::DAGStruct & dag) const override Serializes the transaction into a byte vector, including the DAG metadata. |
| uint64_t | GetAmount() const |
| TokenID | GetTokenID() const |
| virtual std::string | GetChainId() const override Returns the source chain id for input validation routing. |
| UTXOTxParameters | GetUTXOParameters() const |
| virtual bool | HasUTXOParameters() const override Returns if transaction supports UTXOs. |
| virtual std::optional< UTXOTxParameters > | GetUTXOParametersOpt() const override Returns the UTXOs. |
| std::string | GetFromVersion() const |
| virtual std::string | GetTransactionSpecificPath() const override Returns the transaction-specific path component for storage and retrieval. |
| virtual std::unordered_set< std::string > | GetTopics() const override Returns the destination topics associated with the transaction. |
| std::vector< uint8_t > | SerializeByteVector() const Serializes the transaction using the internal DAG metadata. |
| EmbeddedTransaction | SerializeToEmbeddedTransaction() const Serializes using internal DAG metadata. |
| std::shared_ptr< MigrationTransaction > | DeSerializeByteVector(const std::vector< uint8_t > & data) |
| MigrationTransaction | New(uint64_t amount, std::string from_version, TokenID token_id, SGTransaction::DAGStruct dag, std::string destination ="") |
| std::string | DeriveUniqueSourceKey(std::string_view from_version, std::string_view source_address, const TokenID & token_id) |
Additional inherited members¶
Public Types inherited from sgns::GeniusTransaction
| Name | |
|---|---|
| using std::function< std::shared_ptr< GeniusTransaction >(const std::vector< uint8_t > &)> | TransactionDeserializeFn Alias for the de-serializer method type to be implemented in derived classes. |
Public Functions inherited from sgns::GeniusTransaction
| Name | |
|---|---|
| GeniusTransaction(std::string type, SGTransaction::DAGStruct dag) Constructs a GeniusTransaction with the specified type and DAG metadata. |
|
| virtual | ~GeniusTransaction() =default Virtual destructor to avoid leakage when deleting derived classes through a base pointer. |
| std::string | GetType() const Returns the transaction type. |
| std::string | GetTransactionFullPath() const Returns the full storage path for the transaction based on its hash. |
| std::string | GetProofFullPath() const Returns the full storage path for the proof based on the transaction hash. |
| std::string | GetSrcAddress() const Returns the source address for the transaction. |
| std::string | GetHash() const Returns the hash of the transaction. |
| std::string | GetPreviousHash() const Returns the hash of the previous transaction. |
| std::string | GetUncleHash() const Returns the hash of the uncle transaction. |
| uint64_t | GetTimestamp() const Returns the timestamp of the transaction. |
| uint64_t | GetNonce() const Returns the nonce of the transaction. |
| void | FillHash() Fills the data hash field in the DAG metadata based on the transaction content. |
| bool | CheckHash() const Checks the integrity of the transaction by verifying that the hash field matches the calculated hash. |
| std::vector< uint8_t > | MakeSignature(GeniusAccount & account) Creates a signature for the transaction using the provided GeniusAccount. |
| bool | CheckSignature() const Verifies the transaction signature using the source address and the serialized transaction content. |
| bool | CheckDAGSignatureLegacy() const Legacy method to verify the transaction signature using the DAG metadata. This method may be used for backward compatibility with older transaction formats. |
| virtual std::string | GetSlotID() const Generates a slot ID used by consensus to identify competing transactions. |
| outcome::result< SGTransaction::DAGStruct > | DeSerializeDAGStruct(const std::vector< uint8_t > & data) Deserializes the DAG metadata from a byte vector. |
| outcome::result< SGTransaction::DAGStruct > | DeSerializeDAGStruct(const std::string & data) Deserializes the DAG metadata from a string. |
| SGTransaction::DAGStruct | SetDAGWithType(SGTransaction::DAGStruct dag, const std::string & type) Sets the transaction type in the DAG metadata and returns the modified DAGStruct. |
| std::string | GetTransactionFullPath(const std::string & tx_hash) Returns the full storage path for the transaction based on its hash. |
| void | RegisterDeserializer(const std::string & transaction_type, TransactionDeserializeFn fn) Registers a deserializer function for a specific transaction type. |
| std::unordered_map< std::string, TransactionDeserializeFn > & | GetDeSerializers() Returns the map of registered deserializer functions for transaction types. |
Public Attributes inherited from sgns::GeniusTransaction
| Name | |
|---|---|
| std::string_view | GENIUS_CHAIN_ID The chain ID used for transactions that are not associated with a specific external chain. |
| SGTransaction::DAGStruct | dag_st The DAG metadata struct that is included in all transactions, containing common fields such as source address, hashes, timestamp, nonce, and signature. |
Public Functions Documentation¶
function SerializeToEmbeddedTransaction¶
virtual EmbeddedTransaction SerializeToEmbeddedTransaction(
const SGTransaction::DAGStruct & dag
) const override
Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set.
Parameters:
- dag The DAG metadata to be included in the serialization.
Return: EmbeddedTransaction proto with the typed transaction field set.
Reimplements: sgns::GeniusTransaction::SerializeToEmbeddedTransaction
function ~MigrationTransaction¶
function SerializeByteVector¶
virtual std::vector< uint8_t > SerializeByteVector(
const SGTransaction::DAGStruct & dag
) const override
Serializes the transaction into a byte vector, including the DAG metadata.
Parameters:
- dag The DAG metadata to be included in the serialization.
Return: The serialized byte vector representing the transaction.
Note: This should be defined in the derived class, but the version without parameters is to used
Reimplements: sgns::GeniusTransaction::SerializeByteVector
function GetAmount¶
function GetTokenID¶
function GetChainId¶
Returns the source chain id for input validation routing.
Return: The source chain id
Reimplements: sgns::GeniusTransaction::GetChainId
function GetUTXOParameters¶
function HasUTXOParameters¶
Returns if transaction supports UTXOs.
Return: true if supported, false otherwise
Reimplements: sgns::GeniusTransaction::HasUTXOParameters
function GetUTXOParametersOpt¶
Returns the UTXOs.
Return: If exists, returns the UTXOs of the transaction
Reimplements: sgns::GeniusTransaction::GetUTXOParametersOpt
function GetFromVersion¶
function GetTransactionSpecificPath¶
Returns the transaction-specific path component for storage and retrieval.
Return: The transaction-specific path component, typically derived from the transaction type or other unique attributes.
Reimplements: sgns::GeniusTransaction::GetTransactionSpecificPath
function GetTopics¶
Returns the destination topics associated with the transaction.
Return: The set of destination topics associated with the transaction.
Reimplements: sgns::GeniusTransaction::GetTopics
function SerializeByteVector¶
Serializes the transaction using the internal DAG metadata.
Return: The serialized byte vector representing the transaction.
function SerializeToEmbeddedTransaction¶
Serializes using internal DAG metadata.
function DeSerializeByteVector¶
static std::shared_ptr< MigrationTransaction > DeSerializeByteVector(
const std::vector< uint8_t > & data
)
function New¶
static MigrationTransaction New(
uint64_t amount,
std::string from_version,
TokenID token_id,
SGTransaction::DAGStruct dag,
std::string destination =""
)
function DeriveUniqueSourceKey¶
static std::string DeriveUniqueSourceKey(
std::string_view from_version,
std::string_view source_address,
const TokenID & token_id
)
Updated on 2026-06-05 at 17:22:18 -0700