account/EscrowTransaction.hpp¶
Transaction type used to lock UTXO funds into an escrow address. More...
Namespaces¶
| Name |
|---|
| sgns |
Classes¶
| Name | |
|---|---|
| class | sgns::EscrowTransaction Transaction that reserves funds for a job escrow while tracking peer payout metadata. |
Detailed Description¶
Transaction type used to lock UTXO funds into an escrow address.
Date: 2024-04-24 Henrique A. Klein ([email protected])
Source code¶
#ifndef _ESCROW_TRANSACTION_HPP_
#define _ESCROW_TRANSACTION_HPP_
#include <string>
#include "account/GeniusTransaction.hpp"
#include "UTXOStructs.hpp"
namespace sgns
{
class EscrowTransaction : public GeniusTransaction
{
public:
static EscrowTransaction New( UTXOTxParameters params, uint64_t amount, SGTransaction::DAGStruct dag );
static std::shared_ptr<EscrowTransaction> DeSerializeByteVector( const std::vector<uint8_t> &data );
~EscrowTransaction() 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;
uint64_t GetNumChunks() const;
std::string GetTransactionSpecificPath() const override
{
return GetType();
}
UTXOTxParameters GetUTXOParameters() const
{
return utxo_params_;
}
bool HasUTXOParameters() const override
{
return true;
}
std::optional<UTXOTxParameters> GetUTXOParametersOpt() const override
{
return utxo_params_;
}
uint64_t GetAmount() const
{
return amount_;
}
void SetChainIdOverride( std::string chain_id )
{
chain_id_ = std::move( chain_id );
}
std::string GetChainId() const override
{
return chain_id_;
}
private:
EscrowTransaction( UTXOTxParameters params, uint64_t amount, SGTransaction::DAGStruct dag );
UTXOTxParameters utxo_params_;
uint64_t amount_;
std::string chain_id_ = std::string( GeniusTransaction::GENIUS_CHAIN_ID );
static bool Register()
{
RegisterDeserializer( "escrow-hold", &EscrowTransaction::DeSerializeByteVector );
return true;
}
static inline bool registered = Register();
};
}
#endif
Updated on 2026-10-06 at 13:34:21 +0000