MCPcopy Index your code
hub / github.com/devaccuracy/ledgerforge / setTransactionMetadata

Function setTransactionMetadata

transaction.go:2023–2053  ·  view source on GitHub ↗

setTransactionMetadata initializes and sets the required metadata for a transaction. calculates the transaction hash, and sets the precise amount based on the transaction's precision. Parameters: - transaction *model.Transaction: The transaction for which to set metadata.

(transaction *model.Transaction)

Source from the content-addressed store, hash-verified

2021// Parameters:
2022// - transaction *model.Transaction: The transaction for which to set metadata.
2023func setTransactionMetadata(transaction *model.Transaction) {
2024 transaction.CreatedAt = time.Now()
2025 if transaction.EffectiveDate == nil {
2026 transaction.EffectiveDate = &transaction.CreatedAt
2027 }
2028 transaction.Hash = transaction.HashTxn()
2029 transaction.PreciseAmount = model.ApplyPrecision(transaction)
2030 if transaction.TransactionID == "" {
2031 transaction.TransactionID = model.GenerateUUIDWithSuffix("txn")
2032 }
2033 if transaction.Rate == 0 {
2034 transaction.Rate = 1
2035 }
2036
2037 // Initialize metadata if it doesn't exist
2038 if transaction.MetaData == nil {
2039 transaction.MetaData = make(map[string]interface{})
2040 }
2041
2042 // Set inflight flag in metadata if the transaction is inflight
2043 //maybe move to their respective columns in the db later
2044 if transaction.Inflight {
2045 transaction.MetaData["inflight"] = true
2046 }
2047 if transaction.Atomic {
2048 transaction.MetaData["atomic"] = true
2049 }
2050 if transaction.AllowOverdraft {
2051 transaction.MetaData["allow_overdraft"] = true
2052 }
2053}
2054
2055// createQueueCopy creates a new copy of a transaction specifically for queueing.
2056// It generates new identifiers and maintains the relationship with the original transaction.

Calls 3

ApplyPrecisionFunction · 0.92
GenerateUUIDWithSuffixFunction · 0.92
HashTxnMethod · 0.80