sgns::MintTransaction¶
Transaction that mints tokens after proving a corresponding source-chain event.
#include <MintTransaction.hpp>
Inherits from sgns::GeniusTransaction
Public Functions¶
| Name | |
|---|---|
| ~MintTransaction() override =default Destroys the mint transaction. |
|
| virtual EmbeddedTransaction | SerializeToEmbeddedTransaction(const SGTransaction::DAGStruct & dag) const override Serializes the transaction into an EmbeddedTransaction proto with the appropriate oneof field set. |
| virtual std::vector< uint8_t > | SerializeByteVector(const SGTransaction::DAGStruct & dag) const override Serializes the mint transaction payload and DAG metadata. |
| uint64_t | GetAmount() const Returns the minted amount. |
| TokenID | GetTokenID() const Returns the minted token identifier. |
| virtual std::string | GetChainId() const override Returns the source chain identifier associated with the mint. |
| virtual std::string | GetTransactionSpecificPath() const override Returns the transaction-specific storage path component. |
| 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< MintTransaction > | DeSerializeByteVector(const std::vector< uint8_t > & data) Deserializes a serialized mint transaction. |
| MintTransaction | New(uint64_t new_amount, std::string chain_id, TokenID token_id, SGTransaction::DAGStruct dag) Creates a new mint transaction instance. |
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. |
| virtual bool | HasUTXOParameters() const Returns if transaction supports UTXOs. |
| virtual std::optional< UTXOTxParameters > | GetUTXOParametersOpt() const Returns the UTXOs. |
| 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. |
| virtual std::unordered_set< std::string > | GetTopics() const Returns the destination topics associated with 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 ~MintTransaction¶
Destroys the mint transaction.
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 SerializeByteVector¶
virtual std::vector< uint8_t > SerializeByteVector(
const SGTransaction::DAGStruct & dag
) const override
Serializes the mint transaction payload and DAG metadata.
Parameters:
- dag DAG metadata to serialize into the transaction payload.
Return: Serialized SGTransaction::MintTx bytes.
Reimplements: sgns::GeniusTransaction::SerializeByteVector
function GetAmount¶
Returns the minted amount.
Return: Amount of token units minted by this transaction.
function GetTokenID¶
Returns the minted token identifier.
Return: Token identifier for the asset minted by this transaction.
function GetChainId¶
Returns the source chain identifier associated with the mint.
Return: Source chain identifier used for input validation routing.
Reimplements: sgns::GeniusTransaction::GetChainId
function GetTransactionSpecificPath¶
Returns the transaction-specific storage path component.
Return: Transaction type string used as the path component.
Reimplements: sgns::GeniusTransaction::GetTransactionSpecificPath
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< MintTransaction > DeSerializeByteVector(
const std::vector< uint8_t > & data
)
Deserializes a serialized mint transaction.
Parameters:
- data Serialized
SGTransaction::MintTxbytes.
Return: Shared pointer to the parsed mint transaction, or nullptr if parsing fails.
function New¶
static MintTransaction New(
uint64_t new_amount,
std::string chain_id,
TokenID token_id,
SGTransaction::DAGStruct dag
)
Creates a new mint transaction instance.
Parameters:
- new_amount Amount of token units to mint.
- chain_id Source chain identifier associated with the mint event.
- token_id Token identifier for the asset being minted.
- dag DAG metadata shared by all transaction types.
Return: Mint transaction with the transaction type set and hash populated.
Updated on 2026-06-05 at 17:22:18 -0700