From 965889f6c5fefa0c1ee15552a9a49b14c47f6f3d Mon Sep 17 00:00:00 2001 From: Anirudha Bose Date: Wed, 11 Aug 2021 12:42:45 +0200 Subject: [PATCH] chore: update tokenlists and prevent blacklisted tokens --- package.json | 2 +- ui/app/pages/swap/assets/assets.mainnet.json | 146 +++++++++++++++++-- ui/app/pages/swap/assets/lib.js | 43 ++++-- yarn.lock | 10 +- 4 files changed, 167 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 7ec2226a48..cb25d87fde 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@formatjs/intl-relativetimeformat": "^5.2.6", "@fortawesome/fontawesome-free": "^5.13.0", "@material-ui/core": "^4.11.0", - "@metamask/contract-metadata": "^1.25.0", + "@metamask/contract-metadata": "1.26.0", "@metamask/controllers": "^2.0.5", "@metamask/eth-ledger-bridge-keyring": "github:brave/eth-ledger-bridge-keyring#6db82c15435f9ae47dadbc1fc19586552a7044eb", "@metamask/etherscan-link": "^1.1.0", diff --git a/ui/app/pages/swap/assets/assets.mainnet.json b/ui/app/pages/swap/assets/assets.mainnet.json index 9e299952fc..ef6dfe475c 100644 --- a/ui/app/pages/swap/assets/assets.mainnet.json +++ b/ui/app/pages/swap/assets/assets.mainnet.json @@ -83,6 +83,12 @@ "name": "2key network", "decimals": 18 }, + { + "address": "0xFFC97d72E13E01096502Cb8Eb52dEe56f74DAD7B", + "symbol": "AAAVE", + "name": "Aave AAVE", + "decimals": 18 + }, { "address": "0x05Ec93c0365baAeAbF7AefFb0972ea7ECdD39CF1", "symbol": "ABAT", @@ -185,6 +191,12 @@ "name": "Aave REN", "decimals": 18 }, + { + "address": "0x358AA737e033F34df7c54306960a38d09AaBd523", + "symbol": "ARES", + "name": "Ares Protocol", + "decimals": 18 + }, { "address": "0xfec0cF7fE078a500abf15F1284958F22049c2C7e", "symbol": "ART", @@ -227,6 +239,18 @@ "name": "Auctus", "decimals": 18 }, + { + "address": "0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998", + "symbol": "AUDIO", + "name": "Audius", + "decimals": 18 + }, + { + "address": "0xB9D7CB55f463405CDfBe4E90a6D2Df01C2B92BF1", + "symbol": "AUNI", + "name": "Aave UNI", + "decimals": 18 + }, { "address": "0xBcca60bB61934080951369a648Fb03DF4F96263C", "symbol": "AUSDC", @@ -251,12 +275,24 @@ "name": "Aave WBTC", "decimals": 18 }, + { + "address": "0x030bA81f1c18d280636F32af80b9AAd02Cf0854e", + "symbol": "AWETH", + "name": "Aave WETH", + "decimals": 18 + }, { "address": "0x71F85B2E46976bD21302B64329868fd15eb0D127", "symbol": "AXN", "name": "Axion", "decimals": 18 }, + { + "address": "0x5165d24277cD063F5ac44Efd447B27025e888f37", + "symbol": "AYFI", + "name": "Aave YFI", + "decimals": 18 + }, { "address": "0xDf7FF54aAcAcbFf42dfe29DD6144A69b629f8C9e", "symbol": "AZRX", @@ -413,6 +449,12 @@ "name": "SwissBorg", "decimals": 8 }, + { + "address": "0x75739d5944534115d7C54ee8C73F186D793BAE02", + "symbol": "CO2", + "name": "Collective", + "decimals": 18 + }, { "address": "0xc00e94Cb662C3520282E6f5717214004A7f26888", "symbol": "COMP", @@ -635,6 +677,12 @@ "name": "Hut34 Entropy", "decimals": 18 }, + { + "address": "0x1Da87b114f35E1DC91F72bF57fc07A768Ad40Bb0", + "symbol": "EQZ", + "name": "Equalizer", + "decimals": 18 + }, { "address": "0xb1CD6e4153B2a390Cf00A6556b0fC1458C4A5533", "symbol": "ETHBNT", @@ -695,6 +743,12 @@ "name": "FUNToken", "decimals": 8 }, + { + "address": "0x970B9bB2C0444F5E81e9d0eFb84C8ccdcdcAf84d", + "symbol": "FUSE", + "name": "Fuse", + "decimals": 18 + }, { "address": "0x35bD01FC9d6D5D81CA9E055Db88Dc49aa2c699A8", "symbol": "FWB", @@ -815,12 +869,24 @@ "name": "Indorse", "decimals": 18 }, + { + "address": "0x544c42fBB96B39B21DF61cf322b5EDC285EE7429", + "symbol": "INSUR", + "name": "InsurAce", + "decimals": 18 + }, { "address": "0x0DB8D8b76BC361bAcbB72E2C491E06085A97Ab31", "symbol": "IQN", "name": "IQeon", "decimals": 18 }, + { + "address": "0x7420B4b9a0110cdC71fB720908340C03F9Bc03EC", + "symbol": "JASMY", + "name": "JasmyCoin", + "decimals": 18 + }, { "address": "0x8727c112C712c4a03371AC87a74dD6aB104Af768", "symbol": "JET", @@ -833,6 +899,12 @@ "name": "JOYSO", "decimals": 6 }, + { + "address": "0x6E765D26388A17A6e86c49A8E41DF3F58aBcd337", + "symbol": "KANGAL", + "name": "Kangal", + "decimals": 18 + }, { "address": "0x85Eee30c52B0b379b046Fb0F85F4f3Dc3009aFEC", "symbol": "KEEP", @@ -935,6 +1007,12 @@ "name": "MahaDAO", "decimals": 18 }, + { + "address": "0x75387e1287Dd85482aB66102DA9f6577E027f609", + "symbol": "MAI", + "name": "Mindsync", + "decimals": 18 + }, { "address": "0x0cae9e4d663793c2a2A0b211c1Cf4bBca2B9cAa7", "symbol": "MAMZN", @@ -953,12 +1031,6 @@ "name": "Midas Protocol", "decimals": 18 }, - { - "address": "0x1C9491865a1DE77C5b6e19d2E6a5F1D7a6F2b25F", - "symbol": "MATTER", - "name": "AntiMatter", - "decimals": 18 - }, { "address": "0x56aA298a19C93c6801FDde870fA63EF75Cc0aF72", "symbol": "MBABA", @@ -1121,6 +1193,12 @@ "name": "NANJCOIN", "decimals": 8 }, + { + "address": "0x4a615bB7166210CCe20E6642a6f8Fb5d4D044496", + "symbol": "NAOS", + "name": "NAOS Finance", + "decimals": 18 + }, { "address": "0xEB58343b36C7528F23CAAe63a150240241310049", "symbol": "NBU", @@ -1187,6 +1265,12 @@ "name": "Menlo One", "decimals": 18 }, + { + "address": "0xDb05EA0877A2622883941b939f0bb11d1ac7c400", + "symbol": "OPCT", + "name": "Opacity", + "decimals": 18 + }, { "address": "0xff56Cc6b1E6dEd347aA0B7676C85AB0B3D08B0FA", "symbol": "ORBS", @@ -1238,7 +1322,7 @@ { "address": "0xeca82185adCE47f39c684352B0439f030f860318", "symbol": "PERL", - "name": "Perlin", + "name": "PERL eco", "decimals": 18 }, { @@ -1481,6 +1565,18 @@ "name": "Router Protocol", "decimals": 18 }, + { + "address": "0x8762db106B2c2A0bccB3A80d1Ed41273552616E8", + "symbol": "RSR", + "name": "Reserve Rights Toke", + "decimals": 18 + }, + { + "address": "0x196f4727526eA7FB1e17b2071B3d8eAA38486988", + "symbol": "RSV", + "name": "Reserve", + "decimals": 18 + }, { "address": "0x3d1BA9be9f66B8ee101911bC36D3fB562eaC2244", "symbol": "RVT", @@ -1517,6 +1613,12 @@ "name": "sETH", "decimals": 18 }, + { + "address": "0x84810bcF08744d5862B8181f12d17bfd57d3b078", + "symbol": "SGT", + "name": "SharedStake Governa", + "decimals": 18 + }, { "address": "0x6888a16eA9792c15A4DCF2f6C623D055c8eDe792", "symbol": "SIG", @@ -1631,12 +1733,6 @@ "name": "Swarm City", "decimals": 18 }, - { - "address": "0xeF31Cb88048416E301Fee1eA13e7664b887BA7e8", - "symbol": "SYAX", - "name": "Staked yAxis", - "decimals": 18 - }, { "address": "0x8282df223AC402d04B2097d16f758Af4F70e7Db0", "symbol": "SYFL", @@ -1649,6 +1745,12 @@ "name": "Sylo", "decimals": 18 }, + { + "address": "0x182F4c4C97cd1c24E1Df8FC4c053E5C47bf53Bef", + "symbol": "TANGO", + "name": "keyTango", + "decimals": 18 + }, { "address": "0x8dAEBADE922dF735c38C80C7eBD708Af50815fAa", "symbol": "TBTC", @@ -1733,6 +1835,12 @@ "name": "Sora Validator Toke", "decimals": 18 }, + { + "address": "0x898BAD2774EB97cF6b94605677F43b41871410B1", + "symbol": "VETH2", + "name": "vEth2", + "decimals": 18 + }, { "address": "0xfeF4185594457050cC9c23980d301908FE057Bb1", "symbol": "VIDT", @@ -1745,6 +1853,12 @@ "name": "Vesper Finance", "decimals": 18 }, + { + "address": "0x1cF4592ebfFd730c7dc92c1bdFFDfc3B9EfCf29a", + "symbol": "WAVES", + "name": "Waves", + "decimals": 18 + }, { "address": "0x667088b212ce3d06a1b553a7221E1fD19000d9aF", "symbol": "WINGS", @@ -1842,9 +1956,9 @@ "decimals": 18 }, { - "address": "0xC7e43A1c8E118aA2965F5EAbe0e718D83DB7A63C", - "symbol": "ZCRT", - "name": "ZCore Token", + "address": "0x5150956E082C748Ca837a5dFa0a7C10CA4697f9c", + "symbol": "ZDEX", + "name": "Zeedex", "decimals": 18 }, { diff --git a/ui/app/pages/swap/assets/lib.js b/ui/app/pages/swap/assets/lib.js index 1fe0c1a035..0c6404fe32 100644 --- a/ui/app/pages/swap/assets/lib.js +++ b/ui/app/pages/swap/assets/lib.js @@ -5,6 +5,11 @@ const ethUtil = require('ethereumjs-util') const uniqBy = require('lodash/uniqBy') const sortBy = require('lodash/sortBy') +const tokenLists = { + allTokens: 'https://tokens.coingecko.com/uniswap/all.json', + unsupportedTokens: 'https://raw.githubusercontent.com/Uniswap/uniswap-interface/main/src/constants/tokenLists/unsupported.tokenlist.json', +} + const ETH = { symbol: 'ETH', address: '', @@ -26,8 +31,24 @@ const assetsPriorityList = [ 'AAVE', ] +function writeTokens (tokens) { + let assets = uniqBy([ETH, ...tokens], (e) => e.address) + + assets = prioritySort(assets, assetsPriorityList) + + try { + fs.writeFileSync( + `${__dirname}/assets.mainnet.json`, + JSON.stringify(assets, null, 4), + ) + console.log('✅️ Asset list successfully updated.') + } catch (error) { + console.error(error) + } +} + function main () { - fetch('https://tokens.coingecko.com/uniswap/all.json').then((r) => + fetch(tokenLists.allTokens).then((r) => r.json().then((data) => { const tokens = data.tokens .map((token) => ({ @@ -38,19 +59,17 @@ function main () { })) .filter(({ address }) => address in contractMap) - let assets = uniqBy([ETH, ...tokens], (e) => e.address) + fetch(tokenLists.unsupportedTokens).then((u) => + u.json().then((data) => { + const unsupportedTokens = data.tokens + .map(({ address }) => (ethUtil.toChecksumAddress(address))) - assets = prioritySort(assets, assetsPriorityList) + const supportedTokens = tokens + .filter(({ address }) => !(address in unsupportedTokens)) - try { - fs.writeFileSync( - `${__dirname}/assets.mainnet.json`, - JSON.stringify(assets, null, 4), - ) - console.log('✅️ Asset list successfully updated.') - } catch (error) { - console.error(error) - } + writeTokens(supportedTokens) + }), + ) }), ) } diff --git a/yarn.lock b/yarn.lock index a31928c8a5..79b4fd59f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2014,16 +2014,16 @@ prop-types "^15.7.2" react-is "^16.8.0 || ^17.0.0" +"@metamask/contract-metadata@1.26.0": + version "1.26.0" + resolved "https://registry.yarnpkg.com/@metamask/contract-metadata/-/contract-metadata-1.26.0.tgz#06be4f4dc645da69f6364f75cb2bd47afa642fe6" + integrity sha512-58A8csapIPoc854n6AI+3jwJcQfh75BzVrl6SAySgJ9fWTa1XItm9Tx/ORaqYrwaR/9JqH4SnkbXtqyFwuUL6w== + "@metamask/contract-metadata@^1.19.0": version "1.22.0" resolved "https://registry.yarnpkg.com/@metamask/contract-metadata/-/contract-metadata-1.22.0.tgz#55cc84756c703c433176b484b1d34f0e03d16d1e" integrity sha512-t4ijbU+4OH9UAlrPkfLPFo6KmkRTRZJHB+Vly4ajF8oZMnota5YjVVl/SmltsoRC9xvJtRn9DUVf3YMHMIdofw== -"@metamask/contract-metadata@^1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@metamask/contract-metadata/-/contract-metadata-1.25.0.tgz#442ace91fb40165310764b68d8096d0017bb0492" - integrity sha512-yhmYB9CQPv0dckNcPoWDcgtrdUp0OgK0uvkRE5QIBv4b3qENI1/03BztvK2ijbTuMlORUpjPq7/1MQDUPoRPVw== - "@metamask/controllers@^2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@metamask/controllers/-/controllers-2.0.5.tgz#302dbae0595b269f2660253ee40c4c7f9bce069e"