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:
parent
645970b3e7
commit
39741075b4
1 changed files with 15 additions and 6 deletions
|
|
@ -631,10 +631,17 @@ class LamassuTransactionProcessor:
|
||||||
logger.error(f"Target wallet {target_wallet_id} not found for client {client.username or client.user_id}")
|
logger.error(f"Target wallet {target_wallet_id} not found for client {client.username or client.user_id}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Create descriptive memo
|
# Create descriptive memo with DCA metrics
|
||||||
memo = f"DCA Distribution: {amount_sats} sats from Lamassu transaction {lamassu_transaction_id[:8]}..."
|
fiat_amount = distribution.get("fiat_amount", 0)
|
||||||
if client.username:
|
exchange_rate = distribution.get("exchange_rate", 0)
|
||||||
memo += f" to {client.username}"
|
|
||||||
|
# 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
|
# Create invoice in target wallet
|
||||||
extra={
|
extra={
|
||||||
|
|
@ -740,8 +747,10 @@ class LamassuTransactionProcessor:
|
||||||
|
|
||||||
transaction_id = transaction["transaction_id"]
|
transaction_id = transaction["transaction_id"]
|
||||||
|
|
||||||
# Create invoice in commission wallet
|
# Create invoice in commission wallet with DCA metrics
|
||||||
commission_memo = f"Commission: {commission_amount_sats} sats from Lamassu transaction {transaction_id[:8]}..."
|
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(
|
commission_payment = await create_invoice(
|
||||||
wallet_id=admin_config.commission_wallet_id,
|
wallet_id=admin_config.commission_wallet_id,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue