feat: Improve Stellar fee calculation, fix XDR parsing, and enhance send address UI with full address display and copy button.

This commit is contained in:
void-57 2025-12-17 20:53:23 +05:30
parent c1c7f30c3b
commit 7bf5065742
2 changed files with 17 additions and 10 deletions

View File

@ -417,9 +417,14 @@
<div class="balance-display">
<div class="balance-amount" id="send-balance">0 <span class="currency">XLM</span></div>
</div>
<div class="address-display">
<span class="address-label">Address:</span>
<span class="address-value" id="send-from-address">-</span>
<div class="detail-row">
<label>From Address</label>
<div class="detail-value-wrapper">
<code id="send-from-address" class="detail-value">-</code>
<button class="input-action-btn clear-btn" onclick="copyToClipboard('send-from-address')" title="Copy address">
<i class="fa-regular fa-copy"></i>
</button>
</div>
</div>
</div>
@ -1155,7 +1160,7 @@
const balanceEl = document.getElementById('send-balance');
balanceEl.innerHTML = accountInfo.balanceXlm.toFixed(7) + ' <span class="currency">XLM</span>';
document.getElementById('send-from-address').textContent = address.substring(0, 12) + '...' + address.substring(address.length - 12);
document.getElementById('send-from-address').textContent = address;
document.getElementById('send-wallet-info').style.display = 'block';
} catch (error) {
document.getElementById('send-wallet-info').style.display = 'none';
@ -1613,15 +1618,15 @@
</div>
<div class="tx-detail-row">
<span class="detail-label">Transaction Fee</span>
<span class="detail-value fee">${feeXLM.toFixed(6)} XLM</span>
<span class="detail-value fee">${feeXlm.toFixed(6)} XLM</span>
</div>
<div class="tx-detail-row highlight" style="color: var(--error-color);">
<span class="detail-label">Total Required</span>
<span class="detail-value">${totalXLM.toFixed(6)} XLM</span>
<span class="detail-value">${totalXlm.toFixed(6)} XLM</span>
</div>
<div class="tx-detail-row" style="color: var(--error-color); font-weight: 600;">
<span class="detail-label">Shortfall</span>
<span class="detail-value">${(totalXLM - currentBalance).toFixed(6)} XLM</span>
<span class="detail-value">${(totalXlm - currentBalance).toFixed(6)} XLM</span>
</div>
</div>
</div>

View File

@ -247,7 +247,9 @@
// Get fee stats
const feeStats = await server.feeStats();
const fee = feeStats.max_fee.mode || (StellarSdk.BASE_FEE || '100');
// fee_charged.mode is typically 100 stroops (0.00001 XLM)
const fee = feeStats.fee_charged?.mode || feeStats.last_ledger_base_fee || '100';
// Build transaction
let transaction = new StellarSdk.TransactionBuilder(sourceAccount, {
@ -311,8 +313,8 @@
}
try {
// Parse the XDR back to a transaction
const transaction = new StellarSdk.Transaction(transactionXDR, StellarSdk.Networks.PUBLIC);
// Parse the XDR back to a transaction using TransactionBuilder
const transaction = StellarSdk.TransactionBuilder.fromXDR(transactionXDR, StellarSdk.Networks.PUBLIC);
// Submit to network
const result = await server.submitTransaction(transaction);