better error handling

This commit is contained in:
sairaj mote 2023-02-08 18:47:20 +05:30
parent c3e2d1bef7
commit 6ad1081b7e

View File

@ -339,18 +339,21 @@
}) })
router.addRoute('home', renderHome) router.addRoute('home', renderHome)
router.addRoute('address', async state => { router.addRoute('address', async state => {
try {
const [floAddress] = state.wildcards const [floAddress] = state.wildcards
if (!floAddress) return; if (!floAddress) return;
let [addressInfo, addressBalance, addressTxs] = await Promise.all([getAddressInfo(floAddress), getAddressBalance(floAddress), getAddressTxs(floAddress)]) let [addressInfo, addressBalance, addressTxs] = await Promise.all([getAddressInfo(floAddress), getAddressBalance(floAddress), getAddressTxs(floAddress)])
renderElem(getRef("page_container"), html`${render.addressPage({ balance: addressBalance, address: floAddress })}`); renderElem(getRef("page_container"), html`${render.addressPage({ balance: addressBalance, address: floAddress })}`);
getRef("page_title").textContent = 'Address' getRef("page_title").textContent = 'Address'
renderTransactions('address_transaction_container', addressTxs) renderTransactions('address_transaction_container', addressTxs)
const tokenHolders = [] const tokenHolders = []
for (const token in addressInfo) { for (const token in addressInfo) {
tokenHolders.push(render.tokenBalanceCard(token, addressInfo[token].balance)) tokenHolders.push(render.tokenBalanceCard(token, addressInfo[token].balance))
} }
renderElem(document.getElementById('token_balance_container'), html`${tokenHolders}`) renderElem(document.getElementById('token_balance_container'), html`${tokenHolders.length ? tokenHolders : html`<div>No tokens found</div>`}`)
} catch (e) {
notify(e, 'error')
}
}) })
router.addRoute('token', async state => { router.addRoute('token', async state => {
const token = state.wildcards[0].toLowerCase() const token = state.wildcards[0].toLowerCase()
@ -363,7 +366,7 @@
} }
renderElem(getRef("page_container"), html`${render.tokenPage(tokenInfo)}`); renderElem(getRef("page_container"), html`${render.tokenPage(tokenInfo)}`);
getRef("page_title").textContent = "Token"; getRef("page_title").textContent = "Token";
renderElem(document.getElementById('token_balance_container'), html`${tokenHolders}`) renderElem(document.getElementById('token_balance_container'), html`${tokenHolders?.length ? tokenHolders : html`<div>No token holders found</div>`}`)
renderTransactions('token_transaction_container', tokenTransactions) renderTransactions('token_transaction_container', tokenTransactions)
} catch (e) { } catch (e) {
console.log(e) console.log(e)
@ -428,6 +431,7 @@
renderTransactions('all_transactions_page', allTxs) renderTransactions('all_transactions_page', allTxs)
}) })
router.addRoute('transaction', async state => { router.addRoute('transaction', async state => {
try {
const [txId] = state.wildcards const [txId] = state.wildcards
if (!txId) return if (!txId) return
const [status, txInfo] = await getTxInfo(txId); const [status, txInfo] = await getTxInfo(txId);
@ -438,6 +442,10 @@
} else { } else {
renderElem(getRef("page_container"), html`${render.errorPage(txInfo)}`); renderElem(getRef("page_container"), html`${render.errorPage(txInfo)}`);
} }
} catch (e) {
console.error(e)
renderElem(getRef("page_container"), html`${render.errorPage(e)}`);
}
}) })
router.addRoute('404', state => { router.addRoute('404', state => {
renderElem(getRef("page_container"), html`${render.errorPage('404 Not Found')}`); renderElem(getRef("page_container"), html`${render.errorPage('404 Not Found')}`);
@ -1002,7 +1010,7 @@
return str.replace(/ /g, "-"); return str.replace(/ /g, "-");
} }
async function renderTransactions(container, transactions) { async function renderTransactions(container, transactions = []) {
let txFrag = getTxFrag(transactions); let txFrag = getTxFrag(transactions);
const renderedTransactions = txFrag.map(tx => { const renderedTransactions = txFrag.map(tx => {
switch (tx.type) { switch (tx.type) {
@ -1023,7 +1031,7 @@
break; break;
} }
}) })
renderElem(document.getElementById(container), html`${renderedTransactions}`) renderElem(document.getElementById(container), html`${renderedTransactions.length ? renderedTransactions : html`<div class="no-results">No transactions found</div>`}`)
} }
getRef('suggestions').addEventListener('keyup', e => { getRef('suggestions').addEventListener('keyup', e => {