aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/controllers
diff options
context:
space:
mode:
authorEsteban MIno <efmino@uc.cl>2018-08-16 07:01:59 +0800
committerEsteban MIno <efmino@uc.cl>2018-08-16 07:01:59 +0800
commit5289a36664f180fae1dc6da07ccc80d307f7408c (patch)
treef3ec26075b9c4dcc82d11863ce2db9b668a051fc /app/scripts/controllers
parentb766104c8d8fc4d4b1c5660af54b791243836f30 (diff)
downloadtangerine-wallet-browser-5289a36664f180fae1dc6da07ccc80d307f7408c.tar
tangerine-wallet-browser-5289a36664f180fae1dc6da07ccc80d307f7408c.tar.gz
tangerine-wallet-browser-5289a36664f180fae1dc6da07ccc80d307f7408c.tar.bz2
tangerine-wallet-browser-5289a36664f180fae1dc6da07ccc80d307f7408c.tar.lz
tangerine-wallet-browser-5289a36664f180fae1dc6da07ccc80d307f7408c.tar.xz
tangerine-wallet-browser-5289a36664f180fae1dc6da07ccc80d307f7408c.tar.zst
tangerine-wallet-browser-5289a36664f180fae1dc6da07ccc80d307f7408c.zip
change watchAsset to new spec for type ERC20
Diffstat (limited to 'app/scripts/controllers')
-rw-r--r--app/scripts/controllers/preferences.js42
1 files changed, 27 insertions, 15 deletions
diff --git a/app/scripts/controllers/preferences.js b/app/scripts/controllers/preferences.js
index bda521bdd..9f5826dd9 100644
--- a/app/scripts/controllers/preferences.js
+++ b/app/scripts/controllers/preferences.js
@@ -75,7 +75,7 @@ class PreferencesController {
}
/**
- * RPC engine middleware for requesting new token added
+ * RPC engine middleware for requesting new asset added
*
* @param req
* @param res
@@ -84,21 +84,18 @@ class PreferencesController {
*/
requestAddToken (req, res, next, end) {
if (req.method === 'metamask_watchAsset') {
- const [ rawAddress, symbol, decimals, imageUrl ] = req.params
- this._validateSuggestedTokenParams({ rawAddress, symbol, decimals })
- const tokenOpts = {
- rawAddress,
- decimals,
- symbol,
- imageUrl,
+ const { type, options } = req.params
+ switch (type) {
+ case 'ERC20':
+ this._handleWatchAssetERC20(options, res)
+ res.result = options.address
+ break
+ default:
+ // TODO return promise for not handled assets
}
-
- this.addSuggestedToken(tokenOpts)
- this.showAddTokenUi()
- res.result = rawAddress
- return end()
+ end()
} else {
- return next()
+ next()
}
}
@@ -307,7 +304,6 @@ class PreferencesController {
}
objects[address] = imageUrl
this._updateAccountTokens(tokens, objects)
- console.log('OBJECTS OBJET', this.getObjects())
return Promise.resolve(tokens)
}
@@ -520,6 +516,22 @@ class PreferencesController {
const tokens = accountTokens[selectedAddress][providerType]
return { tokens, accountTokens, providerType, selectedAddress }
}
+
+ /**
+ * Handle the suggestion of an ERC20 asset through `watchAsset`
+ * *
+ * @param {Object} options Parameters according to addition of ERC20 token
+ *
+ */
+ _handleWatchAssetERC20 (options) {
+ // TODO handle bad parameters
+ const { address, symbol, decimals, imageUrl } = options
+ const rawAddress = address
+ this._validateSuggestedTokenParams({ rawAddress, symbol, decimals })
+ const tokenOpts = { rawAddress, decimals, symbol, imageUrl }
+ this.addSuggestedToken(tokenOpts)
+ this.showAddTokenUi()
+ }
}
module.exports = PreferencesController