Merge pull request #3 from void-57/main
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:
commit
05c0dad235
19
index.html
19
index.html
@ -417,9 +417,14 @@
|
|||||||
<div class="balance-display">
|
<div class="balance-display">
|
||||||
<div class="balance-amount" id="send-balance">0 <span class="currency">XLM</span></div>
|
<div class="balance-amount" id="send-balance">0 <span class="currency">XLM</span></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="address-display">
|
<div class="detail-row">
|
||||||
<span class="address-label">Address:</span>
|
<label>From Address</label>
|
||||||
<span class="address-value" id="send-from-address">-</span>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -1155,7 +1160,7 @@
|
|||||||
|
|
||||||
const balanceEl = document.getElementById('send-balance');
|
const balanceEl = document.getElementById('send-balance');
|
||||||
balanceEl.innerHTML = accountInfo.balanceXlm.toFixed(7) + ' <span class="currency">XLM</span>';
|
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';
|
document.getElementById('send-wallet-info').style.display = 'block';
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
document.getElementById('send-wallet-info').style.display = 'none';
|
document.getElementById('send-wallet-info').style.display = 'none';
|
||||||
@ -1613,15 +1618,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tx-detail-row">
|
<div class="tx-detail-row">
|
||||||
<span class="detail-label">Transaction Fee</span>
|
<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>
|
||||||
<div class="tx-detail-row highlight" style="color: var(--error-color);">
|
<div class="tx-detail-row highlight" style="color: var(--error-color);">
|
||||||
<span class="detail-label">Total Required</span>
|
<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>
|
||||||
<div class="tx-detail-row" style="color: var(--error-color); font-weight: 600;">
|
<div class="tx-detail-row" style="color: var(--error-color); font-weight: 600;">
|
||||||
<span class="detail-label">Shortfall</span>
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -247,7 +247,9 @@
|
|||||||
|
|
||||||
// Get fee stats
|
// Get fee stats
|
||||||
const feeStats = await server.feeStats();
|
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
|
// Build transaction
|
||||||
let transaction = new StellarSdk.TransactionBuilder(sourceAccount, {
|
let transaction = new StellarSdk.TransactionBuilder(sourceAccount, {
|
||||||
@ -311,8 +313,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Parse the XDR back to a transaction
|
// Parse the XDR back to a transaction using TransactionBuilder
|
||||||
const transaction = new StellarSdk.Transaction(transactionXDR, StellarSdk.Networks.PUBLIC);
|
const transaction = StellarSdk.TransactionBuilder.fromXDR(transactionXDR, StellarSdk.Networks.PUBLIC);
|
||||||
|
|
||||||
// Submit to network
|
// Submit to network
|
||||||
const result = await server.submitTransaction(transaction);
|
const result = await server.submitTransaction(transaction);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user