Improve balance verification in LamassuTransactionProcessor: Added rounding to two decimal places for balance and fiat amounts to ensure precision in comparisons. Enhanced logging for insufficient balance scenarios, improving clarity in transaction processing and error reporting.
This commit is contained in:
parent
d1242e5cd2
commit
bd7a72f3c0
1 changed files with 6 additions and 3 deletions
|
|
@ -849,10 +849,13 @@ class LamassuTransactionProcessor:
|
|||
logger.error(f"CRITICAL: Client {client_id[:8]}... has negative balance ({current_balance.remaining_balance:.2f} GTQ) - REFUSING payment of {distribution['sats_amount']} sats")
|
||||
continue
|
||||
|
||||
# Verify balance is sufficient for this distribution
|
||||
# Verify balance is sufficient for this distribution (round to 2 decimal places to match DECIMAL(10,2) precision)
|
||||
fiat_equivalent = distribution["fiat_amount"] # Amount in GTQ
|
||||
if current_balance.remaining_balance < fiat_equivalent:
|
||||
logger.error(f"CRITICAL: Client {client_id[:8]}... insufficient balance ({current_balance.remaining_balance:.2f} < {fiat_equivalent:.2f} GTQ) - REFUSING payment")
|
||||
# Round both values to 2 decimal places to match database precision and avoid floating point comparison issues
|
||||
balance_rounded = round(current_balance.remaining_balance, 2)
|
||||
amount_rounded = round(fiat_equivalent, 2)
|
||||
if balance_rounded < amount_rounded:
|
||||
logger.error(f"CRITICAL: Client {client_id[:8]}... insufficient balance ({balance_rounded:.2f} < {amount_rounded:.2f} GTQ) - REFUSING payment")
|
||||
continue
|
||||
|
||||
logger.info(f"Client {client_id[:8]}... pre-payment balance check: {current_balance.remaining_balance:.2f} GTQ - SUFFICIENT for {fiat_equivalent:.2f} GTQ payment")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue