diff --git a/src/components/Token/TokenList.vue b/src/components/Token/TokenList.vue index 48784158..5fee45c9 100644 --- a/src/components/Token/TokenList.vue +++ b/src/components/Token/TokenList.vue @@ -86,17 +86,26 @@ export default { tokensOfficial.push(token); return token; } else if(result.contract !== '___NATIVE_CURRENCY___'){ - let contract = await contractManager.getContract(result.contract); - result.address = contract.address; - result.name = contract.name; - result.symbol = contract.properties?.symbol; - result.decimals = contract.properties?.decimals; - result.price = contract.properties?.price || 0; - result.contract = contract; - result.logoURI = DEFAULT_TOKEN_LOGO; - result.fullBalance = `${formatWei(result.balance, result.contract.properties?.decimals)}`; - result.balance = `${formatWei(result.balance, result.contract.properties?.decimals, 4)}`; - tokens.push(result); + try { + let contract = await contractManager.getContract(result.contract); + result.address = contract.address; + result.name = contract.name; + result.symbol = contract.properties?.symbol; + result.decimals = contract.properties?.decimals; + result.price = contract.properties?.price || 0; + result.contract = contract; + result.logoURI = DEFAULT_TOKEN_LOGO; + result.fullBalance = `${formatWei(result.balance, result.contract.properties?.decimals)}`; + result.balance = `${formatWei(result.balance, result.contract.properties?.decimals, 4)}`; + tokens.push(result); + } catch (e) { + console.error('Error loading token', { + error: e, + contract: result.contract, + token: result, + }); + return result; + } return result; } })); diff --git a/src/lib/contract/ContractManager.js b/src/lib/contract/ContractManager.js index 4550bd2b..1015949a 100644 --- a/src/lib/contract/ContractManager.js +++ b/src/lib/contract/ContractManager.js @@ -261,7 +261,11 @@ export default class ContractManager { addContractsToCache(contracts){ for(const index in contracts){ // skipping non-real contracts - if (contracts[index].creator) { + if ( + contracts[index].creator || + contracts[index].name || + contracts[index].calldata + ) { this.addContractToCache(index, contracts[index]); } }