Adds getPendingNonce method to provider initialization options in metamask-controller.

feature/default_network_editable
Dan Miller 6 years ago
parent d493ec6dc4
commit 19d72c9b0b
  1. 2
      app/scripts/controllers/network/createMetamaskMiddleware.js
  2. 14
      app/scripts/metamask-controller.js

@ -38,6 +38,6 @@ function createPendingNonceMiddleware ({ getPendingNonce }) {
const address = req.params[0] const address = req.params[0]
const blockRef = req.params[1] const blockRef = req.params[1]
if (blockRef !== 'pending') return next() if (blockRef !== 'pending') return next()
req.result = await getPendingNonce(address) res.result = await getPendingNonce(address)
}) })
} }

@ -268,6 +268,7 @@ module.exports = class MetamaskController extends EventEmitter {
// msg signing // msg signing
processEthSignMessage: this.newUnsignedMessage.bind(this), processEthSignMessage: this.newUnsignedMessage.bind(this),
processPersonalMessage: this.newUnsignedPersonalMessage.bind(this), processPersonalMessage: this.newUnsignedPersonalMessage.bind(this),
getPendingNonce: this.getPendingNonce.bind(this),
} }
const providerProxy = this.networkController.initializeProvider(providerOpts) const providerProxy = this.networkController.initializeProvider(providerOpts)
return providerProxy return providerProxy
@ -1362,6 +1363,19 @@ module.exports = class MetamaskController extends EventEmitter {
return '0x' + percentileNumBn.mul(GWEI_BN).toString(16) return '0x' + percentileNumBn.mul(GWEI_BN).toString(16)
} }
/**
* Returns the nonce that will be associated with a transaction once approved
* @param address {string} - The hex string address for the transaction
* @returns Promise<number>
*/
async getPendingNonce (address) {
const { nonceDetails, releaseLock} = await this.txController.nonceTracker.getNonceLock(address)
const pendingNonce = nonceDetails.params.highestSuggested
releaseLock()
return pendingNonce
}
//============================================================================= //=============================================================================
// CONFIG // CONFIG
//============================================================================= //=============================================================================

Loading…
Cancel
Save