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

Method loadBalancesForQueuedBatch

transaction.go:1454–1485  ·  view source on GitHub ↗
(ctx context.Context, balanceIDs []string)

Source from the content-addressed store, hash-verified

1452}
1453
1454func (l *LedgerForge) loadBalancesForQueuedBatch(ctx context.Context, balanceIDs []string) (map[string]*model.Balance, []*model.Balance, error) {
1455 balancesByID := make(map[string]*model.Balance, len(balanceIDs))
1456
1457 if l.Config().Transaction.EnableQueuedChecks {
1458 for _, balanceID := range balanceIDs {
1459 balance, err := l.datasource.GetBalanceByID(balanceID, nil, true)
1460 if err != nil {
1461 return nil, nil, err
1462 }
1463 balancesByID[balanceID] = balance
1464 }
1465 } else {
1466 loaded, err := l.datasource.GetBalancesByIDsLite(ctx, balanceIDs)
1467 if err != nil {
1468 return nil, nil, err
1469 }
1470 for balanceID, balance := range loaded {
1471 balancesByID[balanceID] = balance
1472 }
1473 }
1474
1475 orderedBalances := make([]*model.Balance, 0, len(balanceIDs))
1476 for _, balanceID := range balanceIDs {
1477 balance, ok := balancesByID[balanceID]
1478 if !ok || balance == nil {
1479 return nil, nil, fmt.Errorf("failed to load balance %s for coalesced batch", balanceID)
1480 }
1481 orderedBalances = append(orderedBalances, balance)
1482 }
1483
1484 return balancesByID, orderedBalances, nil
1485}
1486
1487func coalescingBalancesForTransaction(balancesByID map[string]*model.Balance, txn *model.Transaction) (*model.Balance, *model.Balance, error) {
1488 sourceBalance, ok := balancesByID[txn.Source]

Calls 3

ConfigMethod · 0.95
GetBalanceByIDMethod · 0.65
GetBalancesByIDsLiteMethod · 0.65

Tested by

no test coverage detected