From 088d7930e0895ef1802823c5fc843dd1c19b9661 Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 16 May 2018 20:46:34 -0700 Subject: network - create provider and block-tracker via json-rpc-engine --- .../network/createMetamaskMiddleware.js | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 app/scripts/controllers/network/createMetamaskMiddleware.js (limited to 'app/scripts/controllers/network/createMetamaskMiddleware.js') diff --git a/app/scripts/controllers/network/createMetamaskMiddleware.js b/app/scripts/controllers/network/createMetamaskMiddleware.js new file mode 100644 index 000000000..1974c231d --- /dev/null +++ b/app/scripts/controllers/network/createMetamaskMiddleware.js @@ -0,0 +1,43 @@ +const mergeMiddleware = require('json-rpc-engine/src/mergeMiddleware') +const createScaffoldMiddleware = require('json-rpc-engine/src/scaffold') +const createAsyncMiddleware = require('json-rpc-engine/src/createAsyncMiddleware') +const createWalletSubprovider = require('eth-json-rpc-middleware/wallet') + +module.exports = createMetamaskMiddleware + +function createMetamaskMiddleware({ + version, + getAccounts, + processTransaction, + processEthSignMessage, + processTypedMessage, + processPersonalMessage, + getPendingNonce +}) { + const metamaskMiddleware = mergeMiddleware([ + createScaffoldMiddleware({ + // staticSubprovider + eth_syncing: false, + web3_clientVersion: `MetaMask/v${version}`, + }), + createWalletSubprovider({ + getAccounts, + processTransaction, + processEthSignMessage, + processTypedMessage, + processPersonalMessage, + }), + createPendingNonceMiddleware({ getPendingNonce }), + }) + return metamaskMiddleware +} + +function createPendingNonceMiddleware ({ getPendingNonce }) { + return createAsyncMiddleware(async (req, res, next) => { + if (req.method !== 'eth_getTransactionCount') return next() + const address = req.params[0] + const blockRef = req.params[1] + if (blockRef !== 'pending') return next() + req.result = await getPendingNonce(address) + }) +} -- cgit From b6eff15bd25ca30ba8a746eff2beec1c820b8855 Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 16 May 2018 21:08:19 -0700 Subject: lint fix --- app/scripts/controllers/network/createMetamaskMiddleware.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/scripts/controllers/network/createMetamaskMiddleware.js') diff --git a/app/scripts/controllers/network/createMetamaskMiddleware.js b/app/scripts/controllers/network/createMetamaskMiddleware.js index 1974c231d..7dbd90d7f 100644 --- a/app/scripts/controllers/network/createMetamaskMiddleware.js +++ b/app/scripts/controllers/network/createMetamaskMiddleware.js @@ -5,14 +5,14 @@ const createWalletSubprovider = require('eth-json-rpc-middleware/wallet') module.exports = createMetamaskMiddleware -function createMetamaskMiddleware({ +function createMetamaskMiddleware ({ version, getAccounts, processTransaction, processEthSignMessage, processTypedMessage, processPersonalMessage, - getPendingNonce + getPendingNonce, }) { const metamaskMiddleware = mergeMiddleware([ createScaffoldMiddleware({ @@ -28,7 +28,7 @@ function createMetamaskMiddleware({ processPersonalMessage, }), createPendingNonceMiddleware({ getPendingNonce }), - }) + ]) return metamaskMiddleware } -- cgit From 08dc238c9fdb23997a7fbdf57de5305455d1d930 Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 16 May 2018 22:46:11 -0700 Subject: deps - fix incorrect dep paths and versions --- app/scripts/controllers/network/createMetamaskMiddleware.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/scripts/controllers/network/createMetamaskMiddleware.js') diff --git a/app/scripts/controllers/network/createMetamaskMiddleware.js b/app/scripts/controllers/network/createMetamaskMiddleware.js index 7dbd90d7f..8b17829b7 100644 --- a/app/scripts/controllers/network/createMetamaskMiddleware.js +++ b/app/scripts/controllers/network/createMetamaskMiddleware.js @@ -1,5 +1,5 @@ const mergeMiddleware = require('json-rpc-engine/src/mergeMiddleware') -const createScaffoldMiddleware = require('json-rpc-engine/src/scaffold') +const createScaffoldMiddleware = require('json-rpc-engine/src/createScaffoldMiddleware') const createAsyncMiddleware = require('json-rpc-engine/src/createAsyncMiddleware') const createWalletSubprovider = require('eth-json-rpc-middleware/wallet') -- cgit From 19d72c9b0b4539f55624f6e9d41ded46c31d38d5 Mon Sep 17 00:00:00 2001 From: Dan Miller Date: Fri, 21 Sep 2018 15:04:21 -0230 Subject: Adds getPendingNonce method to provider initialization options in metamask-controller. --- app/scripts/controllers/network/createMetamaskMiddleware.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/scripts/controllers/network/createMetamaskMiddleware.js') diff --git a/app/scripts/controllers/network/createMetamaskMiddleware.js b/app/scripts/controllers/network/createMetamaskMiddleware.js index 8b17829b7..9e6a45888 100644 --- a/app/scripts/controllers/network/createMetamaskMiddleware.js +++ b/app/scripts/controllers/network/createMetamaskMiddleware.js @@ -38,6 +38,6 @@ function createPendingNonceMiddleware ({ getPendingNonce }) { const address = req.params[0] const blockRef = req.params[1] if (blockRef !== 'pending') return next() - req.result = await getPendingNonce(address) + res.result = await getPendingNonce(address) }) } -- cgit