aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/metamask-controller.js
diff options
context:
space:
mode:
authorEsteban MiƱo <efmino@uc.cl>2019-08-21 02:53:21 +0800
committerWhymarrh Whitby <whymarrh.whitby@gmail.com>2019-08-21 02:53:21 +0800
commit6e081eb17c8052dc626e1d113784ee8e1f9f96f2 (patch)
treebd9d9af24d45f919fcecfc31c2f43cdd26bbd619 /app/scripts/metamask-controller.js
parente47448362de84e07905aac0f5bd418b92bbd7288 (diff)
downloadtangerine-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.js20
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,