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

Method prepareTransactionForQueue

transaction.go:1749–1772  ·  view source on GitHub ↗

prepareTransactionForQueue prepares a transaction for queueing by setting status, metadata, and resolving source/destination balances.

(ctx context.Context, transaction *model.Transaction)

Source from the content-addressed store, hash-verified

1747// prepareTransactionForQueue prepares a transaction for queueing by setting status, metadata,
1748// and resolving source/destination balances.
1749func (l *LedgerForge) prepareTransactionForQueue(ctx context.Context, transaction *model.Transaction) (*model.Transaction, error) {
1750 ctx, span := tracer.Start(ctx, "PrepareTransactionForQueue")
1751 defer span.End()
1752
1753 setTransactionStatus(transaction)
1754 setTransactionMetadata(transaction)
1755
1756 // Get and update source/destination
1757 sourceBalance, destinationBalance, err := l.getSourceAndDestination(ctx, transaction)
1758 if err != nil {
1759 span.RecordError(err)
1760 return nil, fmt.Errorf("failed to get source/destination balances: %w", err)
1761 }
1762
1763 transaction.Source = sourceBalance.BalanceID
1764 transaction.Destination = destinationBalance.BalanceID
1765
1766 if err := hotpairs.AssignQueueLane(ctx, l.hotPairs, l.datasource, transaction); err != nil {
1767 span.RecordError(err)
1768 return nil, fmt.Errorf("failed to assign queue lane: %w", err)
1769 }
1770
1771 return transaction, nil
1772}
1773
1774// QueueTransaction processes and queues a transaction for execution.
1775// It handles both single transactions and split transactions, preparing them for processing

Callers 2

Calls 5

AssignQueueLaneFunction · 0.92
setTransactionStatusFunction · 0.85
setTransactionMetadataFunction · 0.85
StartMethod · 0.45

Tested by

no test coverage detected