Workflow updating files of flowallet
This commit is contained in:
parent
3f8bae43ae
commit
1019612a7a
@ -2258,52 +2258,86 @@
|
|||||||
}
|
}
|
||||||
}, 100))
|
}, 100))
|
||||||
|
|
||||||
function checkSenderBalance() {
|
async function checkSenderBalance() {
|
||||||
renderBalance({ balance: 0, showLoader: true })
|
try {
|
||||||
const senderPrivateKey = getRef('get_private_key_field').value.trim()
|
renderBalance({ balance: 0, showLoader: true });
|
||||||
const senderFloAddr = floCrypto.getFloID(senderPrivateKey)
|
|
||||||
Promise.all([
|
const senderPrivateKey = getRef('get_private_key_field').value.trim();
|
||||||
floWebWallet.getBalance(senderFloAddr),
|
const senderFloAddr = floCrypto.getFloID(senderPrivateKey);
|
||||||
fetchJson(`${floGlobals.tokenURL}api/v2/floAddressBalance/${senderFloAddr}`)
|
|
||||||
]).then(([retrievedBal, { floAddressBalances }]) => {
|
const [floBalRes, tokenRes] = await Promise.allSettled([
|
||||||
renderBalance({ balance: parseFloat(retrievedBal), address: senderFloAddr })
|
floWebWallet.getBalance(senderFloAddr),
|
||||||
let ownedTokens = []
|
fetchJson(`${floGlobals.tokenURL}api/v2/floAddressBalance/${senderFloAddr}`)
|
||||||
for (const token in floAddressBalances) {
|
]);
|
||||||
ownedTokens.push(html`
|
|
||||||
<label class="token-balance">
|
// --- FLO coin ---
|
||||||
<input type="radio" name="sender-token" data-balance=${(floAddressBalances[token].balance || 0).toFixed(8)} value=${token}/>
|
if (floBalRes.status === 'fulfilled') {
|
||||||
<span>${token} </span><b class="margin-left-auto">${parseFloat((floAddressBalances[token].balance || 0).toFixed(8))}</b>
|
const retrievedBal = parseFloat(floBalRes.value) || 0;
|
||||||
</label>
|
renderBalance({ balance: retrievedBal, address: senderFloAddr });
|
||||||
`)
|
} else {
|
||||||
}
|
// Show address but 0 balance (or your renderBalance can show a placeholder)
|
||||||
if (ownedTokens.length) {
|
renderBalance({ balance: 0, address: senderFloAddr });
|
||||||
ownedTokens.push(html`
|
}
|
||||||
<label class="token-balance">
|
|
||||||
<input type="radio" name="sender-token" value="none" checked/>
|
// --- FLO-based tokens ---
|
||||||
<span>Don't send a token</span>
|
if (tokenRes.status === 'fulfilled') {
|
||||||
</label>
|
const floAddressBalances = tokenRes.value?.floAddressBalances || {};
|
||||||
`)
|
const ownedTokens = [];
|
||||||
renderElem(getRef('sender_tokens_wrapper'), html.for(getRef('sender_tokens_wrapper'), senderFloAddr)`
|
|
||||||
<div class="grid">
|
for (const token in floAddressBalances) {
|
||||||
<h5>Tokens</h5>
|
const bal = parseFloat((floAddressBalances[token].balance || 0).toFixed(8));
|
||||||
<p>Select a token, if you want to send a token.</p>
|
ownedTokens.push(html`
|
||||||
</div>
|
<label class="token-balance">
|
||||||
<fieldset onchange=${handleTokenSelection} class="grid gap-1">
|
<input type="radio" name="sender-token" data-balance=${bal.toFixed(8)} value=${token}/>
|
||||||
<div class="grid gap-0-5">
|
<span>${token}</span>
|
||||||
${ownedTokens}
|
<b class="margin-left-auto">${bal}</b>
|
||||||
</div>
|
</label>
|
||||||
</fieldset>
|
`);
|
||||||
`)
|
}
|
||||||
getRef('sender_tokens_wrapper').classList.remove('hidden')
|
|
||||||
handleTokenSelection()
|
if (ownedTokens.length) {
|
||||||
} else {
|
ownedTokens.push(html`
|
||||||
getRef('sender_tokens_wrapper').classList.add('hidden')
|
<label class="token-balance">
|
||||||
clearSelection()
|
<input type="radio" name="sender-token" value="none" checked/>
|
||||||
}
|
<span>Don't send a token</span>
|
||||||
}).catch((error) => {
|
</label>
|
||||||
notify(error, 'error');
|
`);
|
||||||
resetBalance()
|
|
||||||
})
|
renderElem(
|
||||||
|
getRef('sender_tokens_wrapper'),
|
||||||
|
html.for(getRef('sender_tokens_wrapper'), senderFloAddr)`
|
||||||
|
<div class="grid">
|
||||||
|
<h5>Tokens</h5>
|
||||||
|
<p>Select a token, if you want to send a token.</p>
|
||||||
|
</div>
|
||||||
|
<fieldset onchange=${handleTokenSelection} class="grid gap-1">
|
||||||
|
<div class="grid gap-0-5">
|
||||||
|
${ownedTokens}
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
`
|
||||||
|
);
|
||||||
|
getRef('sender_tokens_wrapper').classList.remove('hidden');
|
||||||
|
handleTokenSelection();
|
||||||
|
} else {
|
||||||
|
getRef('sender_tokens_wrapper').classList.add('hidden');
|
||||||
|
clearSelection();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Token call failed — just hide token UI and keep going
|
||||||
|
getRef('sender_tokens_wrapper').classList.add('hidden');
|
||||||
|
clearSelection();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optional: if BOTH failed, notify + reset visual state if you prefer
|
||||||
|
if (floBalRes.status !== 'fulfilled' && tokenRes.status !== 'fulfilled') {
|
||||||
|
notify('Unable to fetch FLO balance and token balances.', 'error');
|
||||||
|
// resetBalance(); // uncomment if you want to clear the address/balance too
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
notify(error, 'error');
|
||||||
|
resetBalance();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function openAddressSelector(e) {
|
function openAddressSelector(e) {
|
||||||
floGlobals.addressSelectorTarget = e.target.closest('sm-input')
|
floGlobals.addressSelectorTarget = e.target.closest('sm-input')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user