diff --git a/index.min.html b/index.min.html index 976f9a1..75344c5 100644 --- a/index.min.html +++ b/index.min.html @@ -2500,43 +2500,80 @@ } async function checkBalance(address) { - try { - getRef('address_details_wrapper').classList.remove('hidden') - floWebWallet.getLabels().then(allLabels => { - if (allLabels[queriedFloId]) { - getRef('queried_flo_address').innerHTML = `

${allLabels[queriedFloId]}

`; - } else { - getRef('queried_flo_address').innerHTML = ` -

FLO Address

-

- `; - } - }) - const queriedFloId = address || getRef('search_query_input').value.trim() - getRef('token_list_wrapper').classList.add('hidden') - getRef('flo_balance').innerHTML = ``; - const [floBalance, tokenBalances] = await Promise.all([ - floWebWallet.getBalance(queriedFloId), - fetchJson(`${floGlobals.tokenURL}api/v2/floAddressBalance/${queriedFloId}`).then(({ floAddressBalances }) => floAddressBalances) - ]) - let ownedTokens = [] - for (const token in tokenBalances) { - ownedTokens.push(html` -
  • - ${token}: ${parseFloat((tokenBalances[token].balance || 0).toFixed(8))} -
  • - `) - } - if (ownedTokens.length) { - renderElem(getRef('token_list'), html`${ownedTokens}`) - getRef('token_list_wrapper').classList.remove('hidden') - } - // retrieve FLO balance - getRef('flo_balance').textContent = `${parseFloat(floBalance.toFixed(8))} FLO`; - } catch (e) { - console.error(e) + try { + const queriedFloId = address || getRef('search_query_input').value.trim(); // define first + + getRef('address_details_wrapper').classList.remove('hidden'); + getRef('token_list_wrapper').classList.add('hidden'); + getRef('token_list').innerHTML = ''; + getRef('flo_balance').innerHTML = ``; + + // Show label (if any) + floWebWallet.getLabels().then(allLabels => { + if (allLabels?.[queriedFloId]) { + getRef('queried_flo_address').innerHTML = + `

    ${allLabels[queriedFloId]}

    `; + } else { + getRef('queried_flo_address').innerHTML = ` +

    FLO Address

    +

    + `; + } + }).catch(() => { + // non-fatal + getRef('queried_flo_address').innerHTML = ` +

    FLO Address

    +

    + `; + }); + + // Fetch both, but don't let one failure block the other + const [floBalRes, tokenRes] = await Promise.allSettled([ + floWebWallet.getBalance(queriedFloId), + fetchJson(`${floGlobals.tokenURL}api/v2/floAddressBalance/${queriedFloId}`) + ]); + + // --- FLO coin --- + if (floBalRes.status === 'fulfilled') { + const floBal = Number(floBalRes.value || 0); + getRef('flo_balance').textContent = `${floBal.toFixed(8)} FLO`; + } else { + // show fallback, but don't throw + getRef('flo_balance').textContent = `—`; } + + // --- FLO-based tokens --- + if (tokenRes.status === 'fulfilled') { + const tokenBalances = tokenRes.value?.floAddressBalances || {}; + const ownedTokens = []; + + for (const token in tokenBalances) { + const bal = Number(tokenBalances[token]?.balance || 0); + // Only list tokens you want (optionally filter > 0) + ownedTokens.push(html` +
  • + ${token}: ${bal.toFixed(8)} +
  • + `); + } + + if (ownedTokens.length) { + renderElem(getRef('token_list'), html`${ownedTokens}`); + getRef('token_list_wrapper').classList.remove('hidden'); + } else { + getRef('token_list_wrapper').classList.add('hidden'); + } + } else { + // token call failed — keep tokens hidden + getRef('token_list_wrapper').classList.add('hidden'); + } + + } catch (e) { + console.error(e); + // optional: show an error toast / keep current UI as-is + } } + function categorizeText(text) { return new Promise((resolve, reject) => { if (text.length == 34 && floCrypto.validateFloID(text)) {