mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge branch 'master' into betterErrorsOnTx
This commit is contained in:
commit
a929fb2387
@ -28,9 +28,9 @@ module.exports = class NetworkController extends EventEmitter {
|
||||
this._provider = provider
|
||||
}
|
||||
|
||||
initializeProvider (opts) {
|
||||
initializeProvider (opts, providerContructor = MetaMaskProvider) {
|
||||
this.providerInit = opts
|
||||
this._provider = MetaMaskProvider(opts)
|
||||
this._provider = providerContructor(opts)
|
||||
this._proxy = new Proxy(this._provider, {
|
||||
get: (obj, name) => {
|
||||
if (name === 'on') return this._on.bind(this)
|
||||
@ -38,6 +38,7 @@ module.exports = class NetworkController extends EventEmitter {
|
||||
},
|
||||
set: (obj, name, value) => {
|
||||
this._provider[name] = value
|
||||
return value
|
||||
},
|
||||
})
|
||||
this.provider.on('block', this._logBlock.bind(this))
|
||||
|
@ -469,7 +469,7 @@ module.exports = class TransactionController extends EventEmitter {
|
||||
}))
|
||||
}
|
||||
|
||||
async _resubmitTx (txMeta, cb) {
|
||||
async _resubmitTx (txMeta) {
|
||||
const address = txMeta.txParams.from
|
||||
const balance = this.ethStore.getState().accounts[address].balance
|
||||
if (!('retryCount' in txMeta)) txMeta.retryCount = 0
|
||||
@ -481,17 +481,17 @@ module.exports = class TransactionController extends EventEmitter {
|
||||
stack: '_resubnitTx: custom tx-controller error',
|
||||
message,
|
||||
})
|
||||
cb()
|
||||
return log.error(message)
|
||||
log.error(message)
|
||||
return
|
||||
}
|
||||
|
||||
// Only auto-submit already-signed txs:
|
||||
if (!('rawTx' in txMeta)) return cb()
|
||||
if (!('rawTx' in txMeta)) return
|
||||
|
||||
// Increment a try counter.
|
||||
txMeta.retryCount++
|
||||
const rawTx = txMeta.rawTx
|
||||
return await this.txProviderUtils.publishTransaction(rawTx, cb)
|
||||
return await this.txProviderUtils.publishTransaction(rawTx)
|
||||
}
|
||||
|
||||
// checks the network for signed txs and
|
||||
|
@ -127,7 +127,7 @@
|
||||
"valid-url": "^1.0.9",
|
||||
"vreme": "^3.0.2",
|
||||
"web3": "0.19.1",
|
||||
"web3-provider-engine": "^13.2.8",
|
||||
"web3-provider-engine": "^13.2.9",
|
||||
"web3-stream-provider": "^3.0.1",
|
||||
"xtend": "^4.0.1"
|
||||
},
|
||||
|
@ -3,6 +3,9 @@ const NetworkController = require('../../app/scripts/controllers/network')
|
||||
|
||||
describe('# Network Controller', function () {
|
||||
let networkController
|
||||
const networkControllerProviderInit = {
|
||||
getAccounts: () => {},
|
||||
}
|
||||
|
||||
beforeEach(function () {
|
||||
networkController = new NetworkController({
|
||||
@ -10,26 +13,13 @@ describe('# Network Controller', function () {
|
||||
type: 'rinkeby',
|
||||
},
|
||||
})
|
||||
// stub out provider
|
||||
networkController._provider = new Proxy({}, {
|
||||
get: (obj, name) => {
|
||||
return () => {}
|
||||
},
|
||||
})
|
||||
networkController.providerInit = {
|
||||
getAccounts: () => {},
|
||||
}
|
||||
|
||||
networkController.ethQuery = new Proxy({}, {
|
||||
get: (obj, name) => {
|
||||
return () => {}
|
||||
},
|
||||
})
|
||||
networkController.initializeProvider(networkControllerProviderInit, dummyProviderConstructor)
|
||||
})
|
||||
describe('network', function () {
|
||||
describe('#provider', function () {
|
||||
it('provider should be updatable without reassignment', function () {
|
||||
networkController.initializeProvider(networkController.providerInit)
|
||||
networkController.initializeProvider(networkControllerProviderInit, dummyProviderConstructor)
|
||||
const provider = networkController.provider
|
||||
networkController._provider = {test: true}
|
||||
assert.ok(provider.test)
|
||||
@ -75,3 +65,19 @@ describe('# Network Controller', function () {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
function dummyProviderConstructor() {
|
||||
return {
|
||||
// provider
|
||||
sendAsync: noop,
|
||||
// block tracker
|
||||
start: noop,
|
||||
stop: noop,
|
||||
on: noop,
|
||||
addListener: noop,
|
||||
once: noop,
|
||||
removeAllListeners: noop,
|
||||
}
|
||||
}
|
||||
|
||||
function noop() {}
|
@ -343,13 +343,17 @@ describe('Transaction Controller', function () {
|
||||
// Adding the fake tx:
|
||||
txController.addTx(clone(txMeta))
|
||||
|
||||
txController._resubmitTx(txMeta, function (err) {
|
||||
assert.ifError(err, 'should not throw an error')
|
||||
txController._resubmitTx(txMeta)
|
||||
.then(() => {
|
||||
const updatedMeta = txController.getTx(txMeta.id)
|
||||
assert.notEqual(updatedMeta.status, txMeta.status, 'status changed.')
|
||||
assert.equal(updatedMeta.status, 'failed', 'tx set to failed.')
|
||||
done()
|
||||
})
|
||||
.catch((err) => {
|
||||
assert.ifError(err, 'should not throw an error')
|
||||
done()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user