diff options
author | Esteban MiƱo <efmino@uc.cl> | 2019-08-21 02:53:21 +0800 |
---|---|---|
committer | Whymarrh Whitby <whymarrh.whitby@gmail.com> | 2019-08-21 02:53:21 +0800 |
commit | 6e081eb17c8052dc626e1d113784ee8e1f9f96f2 (patch) | |
tree | bd9d9af24d45f919fcecfc31c2f43cdd26bbd619 /app/scripts/metamask-controller.js | |
parent | e47448362de84e07905aac0f5bd418b92bbd7288 (diff) | |
download | tangerine-wallet-browser-6e081eb17c8052dc626e1d113784ee8e1f9f96f2.tar.gz tangerine-wallet-browser-6e081eb17c8052dc626e1d113784ee8e1f9f96f2.tar.zst tangerine-wallet-browser-6e081eb17c8052dc626e1d113784ee8e1f9f96f2.zip |
Filter non-ERC-20 assets during mobile sync (#7035)
Diffstat (limited to 'app/scripts/metamask-controller.js')
-rw-r--r-- | app/scripts/metamask-controller.js | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index b430ea8b9..1007412c6 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -55,6 +55,7 @@ const HW_WALLETS_KEYRINGS = [TrezorKeyring.type, LedgerBridgeKeyring.type] const EthQuery = require('eth-query') const ethUtil = require('ethereumjs-util') const sigUtil = require('eth-sig-util') +const contractMap = require('eth-contract-metadata') const { AddressBookController, CurrencyRateController, @@ -63,7 +64,6 @@ const { } = require('gaba') const backEndMetaMetricsEvent = require('./lib/backend-metametrics') - module.exports = class MetamaskController extends EventEmitter { /** @@ -650,8 +650,24 @@ module.exports = class MetamaskController extends EventEmitter { tokens, } = this.preferencesController.store.getState() + // Filter ERC20 tokens + const filteredAccountTokens = {} + Object.keys(accountTokens).forEach(address => { + const checksummedAddress = ethUtil.toChecksumAddress(address) + filteredAccountTokens[checksummedAddress] = {} + Object.keys(accountTokens[address]).forEach( + networkType => (filteredAccountTokens[checksummedAddress][networkType] = networkType !== 'mainnet' ? + accountTokens[address][networkType] : + accountTokens[address][networkType].filter(({ address }) => { + const tokenAddress = ethUtil.toChecksumAddress(address) + return contractMap[tokenAddress] ? contractMap[tokenAddress].erc20 : true + }) + ) + ) + }) + const preferences = { - accountTokens, + accountTokens: filteredAccountTokens, currentLocale, frequentRpcList, identities, |