aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/controllers/currency.js6
-rw-r--r--app/scripts/controllers/network/createMetamaskMiddleware.js2
-rw-r--r--app/scripts/metamask-controller.js31
-rw-r--r--package-lock.json83
-rw-r--r--package.json2
5 files changed, 50 insertions, 74 deletions
diff --git a/app/scripts/controllers/currency.js b/app/scripts/controllers/currency.js
index 46cdf91a7..fce65fd9c 100644
--- a/app/scripts/controllers/currency.js
+++ b/app/scripts/controllers/currency.js
@@ -133,10 +133,13 @@ class CurrencyController {
try {
currentCurrency = this.getCurrentCurrency()
nativeCurrency = this.getNativeCurrency()
+ // select api
let apiUrl
if (nativeCurrency === 'ETH') {
+ // ETH
apiUrl = `https://api.infura.io/v1/ticker/eth${currentCurrency.toLowerCase()}`
} else {
+ // ETC
apiUrl = `https://min-api.cryptocompare.com/data/price?fsym=${nativeCurrency.toUpperCase()}&tsyms=${currentCurrency.toUpperCase()}`
}
// attempt request
@@ -159,9 +162,11 @@ class CurrencyController {
}
// set conversion rate
if (nativeCurrency === 'ETH') {
+ // ETH
this.setConversionRate(Number(parsedResponse.bid))
this.setConversionDate(Number(parsedResponse.timestamp))
} else {
+ // ETC
if (parsedResponse[currentCurrency.toUpperCase()]) {
this.setConversionRate(Number(parsedResponse[currentCurrency.toUpperCase()]))
this.setConversionDate(parseInt((new Date()).getTime() / 1000))
@@ -171,6 +176,7 @@ class CurrencyController {
}
}
} catch (err) {
+ // reset current conversion rate
log.warn(`MetaMask - Failed to query currency conversion:`, nativeCurrency, currentCurrency, err)
this.setConversionRate(0)
this.setConversionDate('N/A')
diff --git a/app/scripts/controllers/network/createMetamaskMiddleware.js b/app/scripts/controllers/network/createMetamaskMiddleware.js
index 9e6a45888..319c5bf3e 100644
--- a/app/scripts/controllers/network/createMetamaskMiddleware.js
+++ b/app/scripts/controllers/network/createMetamaskMiddleware.js
@@ -11,6 +11,7 @@ function createMetamaskMiddleware ({
processTransaction,
processEthSignMessage,
processTypedMessage,
+ processTypedMessageV3,
processPersonalMessage,
getPendingNonce,
}) {
@@ -25,6 +26,7 @@ function createMetamaskMiddleware ({
processTransaction,
processEthSignMessage,
processTypedMessage,
+ processTypedMessageV3,
processPersonalMessage,
}),
createPendingNonceMiddleware({ getPendingNonce }),
diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js
index 3778dbdb6..1f6a8659b 100644
--- a/app/scripts/metamask-controller.js
+++ b/app/scripts/metamask-controller.js
@@ -277,6 +277,8 @@ module.exports = class MetamaskController extends EventEmitter {
processTransaction: this.newUnapprovedTransaction.bind(this),
// msg signing
processEthSignMessage: this.newUnsignedMessage.bind(this),
+ processTypedMessage: this.newUnsignedTypedMessage.bind(this),
+ processTypedMessageV3: this.newUnsignedTypedMessage.bind(this),
processPersonalMessage: this.newUnsignedPersonalMessage.bind(this),
getPendingNonce: this.getPendingNonce.bind(this),
}
@@ -980,8 +982,8 @@ module.exports = class MetamaskController extends EventEmitter {
* @param {Object} msgParams - The params passed to eth_signTypedData.
* @param {Function} cb - The callback function, called with the signature.
*/
- newUnsignedTypedMessage (msgParams, req) {
- const promise = this.typedMessageManager.addUnapprovedMessageAsync(msgParams, req)
+ newUnsignedTypedMessage (msgParams, req, version) {
+ const promise = this.typedMessageManager.addUnapprovedMessageAsync(msgParams, req, version)
this.sendUpdate()
this.opts.showUnconfirmedMessage()
return promise
@@ -1275,10 +1277,6 @@ module.exports = class MetamaskController extends EventEmitter {
engine.push(subscriptionManager.middleware)
// watch asset
engine.push(this.preferencesController.requestWatchAsset.bind(this.preferencesController))
- // sign typed data middleware
- engine.push(this.createTypedDataMiddleware('eth_signTypedData', 'V1').bind(this))
- engine.push(this.createTypedDataMiddleware('eth_signTypedData_v1', 'V1').bind(this))
- engine.push(this.createTypedDataMiddleware('eth_signTypedData_v3', 'V3', true).bind(this))
// forward to metamask primary provider
engine.push(createProviderMiddleware({ provider }))
@@ -1550,27 +1548,6 @@ module.exports = class MetamaskController extends EventEmitter {
* @param {Function} - next
* @param {Function} - end
*/
- createTypedDataMiddleware (methodName, version, reverse) {
- return async (req, res, next, end) => {
- const { method, params } = req
- if (method === methodName) {
- const promise = this.typedMessageManager.addUnapprovedMessageAsync({
- data: reverse ? params[1] : params[0],
- from: reverse ? params[0] : params[1],
- }, req, version)
- this.sendUpdate()
- this.opts.showUnconfirmedMessage()
- try {
- res.result = await promise
- end()
- } catch (error) {
- end(error)
- }
- } else {
- next()
- }
- }
- }
/**
* Adds a domain to the {@link BlacklistController} whitelist
diff --git a/package-lock.json b/package-lock.json
index d0815b361..43a3aac15 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -490,13 +490,13 @@
}
},
"@sentry/browser": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-4.1.1.tgz",
- "integrity": "sha512-rmkGlTh0AL3Jf0DvF3BluChIyzPkkYpNgIwEHjxTUiLp6BQdgwakZuzBqSPJrEs+jMsKMoesOuJ/fAAG0K7+Ew==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-4.2.3.tgz",
+ "integrity": "sha512-XvuIc1aclz4zuP2LamDuSy62/gl1mmNxzF+Ni5L8mcghBDq0urnOdkblVQgzqGoH8mc2QfjEctGa5djWxg3Bpg==",
"requires": {
- "@sentry/core": "4.1.1",
- "@sentry/types": "4.1.0",
- "@sentry/utils": "4.1.1"
+ "@sentry/core": "4.2.3",
+ "@sentry/types": "4.2.3",
+ "@sentry/utils": "4.2.3"
}
},
"@sentry/cli": {
@@ -542,45 +542,45 @@
}
},
"@sentry/core": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-4.1.1.tgz",
- "integrity": "sha512-QJExTxZ1ZA5P/To5gOwd3sowukXW0N/Q9nfu8biRDNa+YURn6ElLjO0fD6eIBqX1f3npo/kTiWZwFBc7LXEzSg==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-4.2.3.tgz",
+ "integrity": "sha512-xo5rvksftnaEdnKbdokyfuqgMnuqw1DFp0lDboIFHlEBcQde/AdThEgLujJWmbVNI3Cg7g8/HvP65f7QBjKfOw==",
"requires": {
- "@sentry/hub": "4.1.1",
- "@sentry/minimal": "4.1.1",
- "@sentry/types": "4.1.0",
- "@sentry/utils": "4.1.1"
+ "@sentry/hub": "4.2.3",
+ "@sentry/minimal": "4.2.3",
+ "@sentry/types": "4.2.3",
+ "@sentry/utils": "4.2.3"
}
},
"@sentry/hub": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-4.1.1.tgz",
- "integrity": "sha512-VmcZOgcbFjJzK1oQNwcFP/wgfoWQr24dFv1C0uwdXldNXx3mwyUVkomvklBHz90HwiahsI/gCc+ZmbC3ECQk2Q==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-4.2.3.tgz",
+ "integrity": "sha512-7Jc/wz3vybYm1RX2wk/4zAQS8fo3uxvXYBkRfpm3OmnGgTlwDEmJwtegeGWFqufxLl85brZ19V1KAdulmO206A==",
"requires": {
- "@sentry/types": "4.1.0",
- "@sentry/utils": "4.1.1"
+ "@sentry/types": "4.2.3",
+ "@sentry/utils": "4.2.3"
}
},
"@sentry/minimal": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-4.1.1.tgz",
- "integrity": "sha512-xRKWA46OGnZinJyTljDUel53emPP9mb/XNi/kF6SBaVDOUXl7HAB8kP7Bn7eLBwOanxN8PbYoAzh/lIQXWTmDg==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-4.2.3.tgz",
+ "integrity": "sha512-Hus7LUeJDGsYpT2RTe6bUjG7mHG9uQoyDmW6pYUMN2dhD+cP5cPoTIXO4yxokwgAeDa+GH2/UXoASWc4s2eA2w==",
"requires": {
- "@sentry/hub": "4.1.1",
- "@sentry/types": "4.1.0"
+ "@sentry/hub": "4.2.3",
+ "@sentry/types": "4.2.3"
}
},
"@sentry/types": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@sentry/types/-/types-4.1.0.tgz",
- "integrity": "sha512-KY7B9wYs1NACHlYzG4OuP6k4uQJkyDPJppftjj3NJYShfwdDTO1I2Swkhhb5dJMEMMMpBJGxXmiqZ2mX5ErISQ=="
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-4.2.3.tgz",
+ "integrity": "sha512-Z7laXlLtLSEXcKzgcD2caWPMTM8sAvR86rssYM5uYb3azC5PO0aAvuhjokkdv1+Ke1Bg7lkaNZamiCSyaH/9xg=="
},
"@sentry/utils": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-4.1.1.tgz",
- "integrity": "sha512-XMvGqAWATBrRkOF0lkt0Ij8of2mRmp4WeFTUAgiKzCekxfUBLBaTb4wTaFXz1cnnnjVTwcAq72qBRMhHwQ0IIg==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-4.2.3.tgz",
+ "integrity": "sha512-D6+M1081wCwGp8adWV3KFOxrxFmVyjMJ45x6/TnYvXdgDyc+t28oil21FHeKhwjld9eMqgQ5Tf1OOvos1MNBQg==",
"requires": {
- "@sentry/types": "4.1.0"
+ "@sentry/types": "4.2.3"
}
},
"@sinonjs/formatio": {
@@ -9951,9 +9951,9 @@
}
},
"eth-json-rpc-middleware": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-3.1.5.tgz",
- "integrity": "sha512-68POkWUj0zYvxincExjRWXE49cxKDUSrSZn4oDVER5O5mWm0q/xcsLxlcurNFdHPov9APVqCXqzK6n2jUCDfRQ==",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-3.1.6.tgz",
+ "integrity": "sha512-yf17/rAM4ElKMul8oSvuK7JuYIYEFFdy2YGPo2EZbuOEv2Wq1bteMlppgqZ9NYHriXLAOWV+ojY9kWHGbcU4xA==",
"dev": true,
"requires": {
"btoa": "^1.2.1",
@@ -9979,24 +9979,14 @@
"integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=",
"dev": true,
"requires": {
- "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#00ba8463a7f7a67fcad737ff9c2ebd95643427f7",
+ "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#2863c40e0982acfc0b7163f0285d4c56427c7799",
"ethereumjs-util": "^5.1.1"
- },
- "dependencies": {
- "ethereumjs-abi": {
- "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#00ba8463a7f7a67fcad737ff9c2ebd95643427f7",
- "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git#00ba8463a7f7a67fcad737ff9c2ebd95643427f7",
- "dev": true,
- "requires": {
- "bn.js": "^4.10.0",
- "ethereumjs-util": "^5.0.0"
- }
- }
}
},
"ethereumjs-abi": {
- "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#00ba8463a7f7a67fcad737ff9c2ebd95643427f7",
+ "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#2863c40e0982acfc0b7163f0285d4c56427c7799",
"from": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
+ "dev": true,
"requires": {
"bn.js": "^4.10.0",
"ethereumjs-util": "^5.0.0"
@@ -10006,6 +9996,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz",
"integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==",
+ "dev": true,
"requires": {
"bn.js": "^4.11.0",
"create-hash": "^1.1.2",
diff --git a/package.json b/package.json
index f2e44caf3..1164c6b4c 100644
--- a/package.json
+++ b/package.json
@@ -261,7 +261,7 @@
"eslint-plugin-json": "^1.2.0",
"eslint-plugin-mocha": "^5.0.0",
"eslint-plugin-react": "^7.4.0",
- "eth-json-rpc-middleware": "^3.1.5",
+ "eth-json-rpc-middleware": "^3.1.6",
"eth-keyring-controller": "^3.3.1",
"fetch-mock": "^6.5.2",
"file-loader": "^1.1.11",