Enhance memo creation in LamassuTransactionProcessor: update memo formatting to include DCA metrics such as fiat amount and cost basis per BTC for both target and commission wallets. This improves clarity and provides better financial context for transactions.

This commit is contained in:
padreug 2025-06-19 21:35:47 +02:00
parent 645970b3e7
commit 39741075b4

View file

@ -631,10 +631,17 @@ class LamassuTransactionProcessor:
logger.error(f"Target wallet {target_wallet_id} not found for client {client.username or client.user_id}")
return False
# Create descriptive memo
memo = f"DCA Distribution: {amount_sats} sats from Lamassu transaction {lamassu_transaction_id[:8]}..."
if client.username:
memo += f" to {client.username}"
# Create descriptive memo with DCA metrics
fiat_amount = distribution.get("fiat_amount", 0)
exchange_rate = distribution.get("exchange_rate", 0)
# Calculate cost basis (fiat per BTC)
if exchange_rate > 0:
# exchange_rate is sats per fiat unit, so convert to fiat per BTC
cost_basis_per_btc = 100_000_000 / exchange_rate # 100M sats = 1 BTC
memo = f"DCA: {amount_sats:,} sats • {fiat_amount:,} GTQ • Cost basis: {cost_basis_per_btc:,.2f} GTQ/BTC"
else:
memo = f"DCA: {amount_sats:,} sats • {fiat_amount:,} GTQ"
# Create invoice in target wallet
extra={
@ -740,8 +747,10 @@ class LamassuTransactionProcessor:
transaction_id = transaction["transaction_id"]
# Create invoice in commission wallet
commission_memo = f"Commission: {commission_amount_sats} sats from Lamassu transaction {transaction_id[:8]}..."
# Create invoice in commission wallet with DCA metrics
fiat_amount = transaction.get("fiat_amount", 0)
commission_percentage = transaction.get("commission_percentage", 0) * 100 # Convert to percentage
commission_memo = f"DCA Commission: {commission_amount_sats:,} sats • {commission_percentage:.1f}% • {fiat_amount:,} GTQ transaction"
commission_payment = await create_invoice(
wallet_id=admin_config.commission_wallet_id,