1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Merge pull request #7173 from rekmarks/fix-errors

Fix RPC error messages
This commit is contained in:
Dan Finlay 2019-09-19 09:40:11 -07:00 committed by GitHub
commit 85cbf8a894
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 31 additions and 8 deletions

View File

@ -1,6 +1,7 @@
const ObservableStore = require('obs-store') const ObservableStore = require('obs-store')
const SafeEventEmitter = require('safe-event-emitter') const SafeEventEmitter = require('safe-event-emitter')
const createAsyncMiddleware = require('json-rpc-engine/src/createAsyncMiddleware') const createAsyncMiddleware = require('json-rpc-engine/src/createAsyncMiddleware')
const { errors: rpcErrors } = require('eth-json-rpc-errors')
/** /**
* A controller that services user-approved requests for a full Ethereum provider API * A controller that services user-approved requests for a full Ethereum provider API
@ -48,7 +49,7 @@ class ProviderApprovalController extends SafeEventEmitter {
if (approved) { if (approved) {
res.result = [this.preferencesController.getSelectedAddress()] res.result = [this.preferencesController.getSelectedAddress()]
} else { } else {
throw new Error('User denied account authorization') throw rpcErrors.eth.userRejectedRequest('User denied account authorization')
} }
}) })
} }

View File

@ -3,6 +3,7 @@ const ObservableStore = require('obs-store')
const ethUtil = require('ethereumjs-util') const ethUtil = require('ethereumjs-util')
const Transaction = require('ethereumjs-tx') const Transaction = require('ethereumjs-tx')
const EthQuery = require('ethjs-query') const EthQuery = require('ethjs-query')
const { errors: rpcErrors } = require('eth-json-rpc-errors')
const abi = require('human-standard-token-abi') const abi = require('human-standard-token-abi')
const abiDecoder = require('abi-decoder') const abiDecoder = require('abi-decoder')
abiDecoder.addABI(abi) abiDecoder.addABI(abi)
@ -166,11 +167,11 @@ class TransactionController extends EventEmitter {
case 'submitted': case 'submitted':
return resolve(finishedTxMeta.hash) return resolve(finishedTxMeta.hash)
case 'rejected': case 'rejected':
return reject(cleanErrorStack(new Error('MetaMask Tx Signature: User denied transaction signature.'))) return reject(cleanErrorStack(rpcErrors.eth.userRejectedRequest('MetaMask Tx Signature: User denied transaction signature.')))
case 'failed': case 'failed':
return reject(cleanErrorStack(new Error(finishedTxMeta.err.message))) return reject(cleanErrorStack(rpcErrors.internal(finishedTxMeta.err.message)))
default: default:
return reject(cleanErrorStack(new Error(`MetaMask Tx Signature: Unknown problem: ${JSON.stringify(finishedTxMeta.txParams)}`))) return reject(cleanErrorStack(rpcErrors.internal(`MetaMask Tx Signature: Unknown problem: ${JSON.stringify(finishedTxMeta.txParams)}`)))
} }
}) })
}) })

View File

@ -1,6 +1,7 @@
const EventEmitter = require('events') const EventEmitter = require('events')
const ObservableStore = require('obs-store') const ObservableStore = require('obs-store')
const ethUtil = require('ethereumjs-util') const ethUtil = require('ethereumjs-util')
const { errors: rpcErrors } = require('eth-json-rpc-errors')
const createId = require('./random-id') const createId = require('./random-id')
/** /**
@ -82,7 +83,7 @@ module.exports = class MessageManager extends EventEmitter {
case 'signed': case 'signed':
return resolve(data.rawSig) return resolve(data.rawSig)
case 'rejected': case 'rejected':
return reject(new Error('MetaMask Message Signature: User denied message signature.')) return reject(rpcErrors.eth.userRejectedRequest('MetaMask Message Signature: User denied message signature.'))
default: default:
return reject(new Error(`MetaMask Message Signature: Unknown problem: ${JSON.stringify(msgParams)}`)) return reject(new Error(`MetaMask Message Signature: Unknown problem: ${JSON.stringify(msgParams)}`))
} }

View File

@ -1,6 +1,7 @@
const EventEmitter = require('events') const EventEmitter = require('events')
const ObservableStore = require('obs-store') const ObservableStore = require('obs-store')
const ethUtil = require('ethereumjs-util') const ethUtil = require('ethereumjs-util')
const { errors: rpcErrors } = require('eth-json-rpc-errors')
const createId = require('./random-id') const createId = require('./random-id')
const hexRe = /^[0-9A-Fa-f]+$/g const hexRe = /^[0-9A-Fa-f]+$/g
const log = require('loglevel') const log = require('loglevel')
@ -88,7 +89,7 @@ module.exports = class PersonalMessageManager extends EventEmitter {
case 'signed': case 'signed':
return resolve(data.rawSig) return resolve(data.rawSig)
case 'rejected': case 'rejected':
return reject(new Error('MetaMask Message Signature: User denied message signature.')) return reject(rpcErrors.eth.userRejectedRequest('MetaMask Message Signature: User denied message signature.'))
default: default:
return reject(new Error(`MetaMask Message Signature: Unknown problem: ${JSON.stringify(msgParams)}`)) return reject(new Error(`MetaMask Message Signature: Unknown problem: ${JSON.stringify(msgParams)}`))
} }

View File

@ -2,6 +2,7 @@ const EventEmitter = require('events')
const ObservableStore = require('obs-store') const ObservableStore = require('obs-store')
const createId = require('./random-id') const createId = require('./random-id')
const assert = require('assert') const assert = require('assert')
const { errors: rpcErrors } = require('eth-json-rpc-errors')
const sigUtil = require('eth-sig-util') const sigUtil = require('eth-sig-util')
const log = require('loglevel') const log = require('loglevel')
const jsonschema = require('jsonschema') const jsonschema = require('jsonschema')
@ -78,7 +79,7 @@ module.exports = class TypedMessageManager extends EventEmitter {
case 'signed': case 'signed':
return resolve(data.rawSig) return resolve(data.rawSig)
case 'rejected': case 'rejected':
return reject(new Error('MetaMask Message Signature: User denied message signature.')) return reject(rpcErrors.eth.userRejectedRequest('MetaMask Message Signature: User denied message signature.'))
case 'errored': case 'errored':
return reject(new Error(`MetaMask Message Signature: ${data.error}`)) return reject(new Error(`MetaMask Message Signature: ${data.error}`))
default: default:

View File

@ -85,6 +85,7 @@
"eth-block-tracker": "^4.4.2", "eth-block-tracker": "^4.4.2",
"eth-contract-metadata": "^1.9.2", "eth-contract-metadata": "^1.9.2",
"eth-ens-namehash": "^2.0.8", "eth-ens-namehash": "^2.0.8",
"eth-json-rpc-errors": "^1.1.0",
"eth-json-rpc-filters": "^4.1.0", "eth-json-rpc-filters": "^4.1.0",
"eth-json-rpc-infura": "^4.0.1", "eth-json-rpc-infura": "^4.0.1",
"eth-json-rpc-middleware": "^4.2.0", "eth-json-rpc-middleware": "^4.2.0",
@ -112,7 +113,7 @@
"gaba": "^1.6.0", "gaba": "^1.6.0",
"human-standard-token-abi": "^2.0.0", "human-standard-token-abi": "^2.0.0",
"jazzicon": "^1.2.0", "jazzicon": "^1.2.0",
"json-rpc-engine": "^5.1.3", "json-rpc-engine": "^5.1.4",
"json-rpc-middleware-stream": "^2.1.1", "json-rpc-middleware-stream": "^2.1.1",
"jsonschema": "^1.2.4", "jsonschema": "^1.2.4",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",

View File

@ -9776,6 +9776,13 @@ eth-json-rpc-errors@^1.0.1:
dependencies: dependencies:
fast-safe-stringify "^2.0.6" fast-safe-stringify "^2.0.6"
eth-json-rpc-errors@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.0.tgz#2a4291fb20c0483c99b53286a814ed14ca4efb2e"
integrity sha512-AAA76BmwwSR5Mws+ivZUYxoDwMygDuMWxSTEmqDXhRPTExSWe5wuJLT/rSfvPSy9+owSudy67JmyRQ02RAOOYQ==
dependencies:
fast-safe-stringify "^2.0.6"
eth-json-rpc-filters@^4.1.0: eth-json-rpc-filters@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.0.tgz#e7357a38983cde29858818dc55d394b9cf47c0f0" resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.0.tgz#e7357a38983cde29858818dc55d394b9cf47c0f0"
@ -15501,6 +15508,16 @@ json-rpc-engine@^5.1.3:
promise-to-callback "^1.0.0" promise-to-callback "^1.0.0"
safe-event-emitter "^1.0.1" safe-event-emitter "^1.0.1"
json-rpc-engine@^5.1.4:
version "5.1.4"
resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.1.4.tgz#c18d1959eb175049fa7301d4866931ae2f879e47"
integrity sha512-nBFWYJ1mvlZL7gqq0M9230SxedL9CbSYO1WgrFi/C1Zo+ZrHUZWLRbr7fUdlLt9TC0G+sf/aEUeuJjR2lHsMvA==
dependencies:
async "^2.0.1"
eth-json-rpc-errors "^1.1.0"
promise-to-callback "^1.0.0"
safe-event-emitter "^1.0.1"
json-rpc-error@^2.0.0: json-rpc-error@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02"