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

metamask - add jsonrpc filter middleware on per-connection engine

This commit is contained in:
kumavis 2017-09-07 21:26:25 -07:00
parent 0e8e655fdb
commit 9d4c02e57f

View File

@ -8,6 +8,7 @@ const EthStore = require('./lib/eth-store')
const EthQuery = require('eth-query') const EthQuery = require('eth-query')
const RpcEngine = require('json-rpc-engine') const RpcEngine = require('json-rpc-engine')
const createEngineStream = require('json-rpc-middleware-stream/engineStream') const createEngineStream = require('json-rpc-middleware-stream/engineStream')
const createFilterMiddleware = require('eth-json-rpc-filters')
const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex
const KeyringController = require('./keyring-controller') const KeyringController = require('./keyring-controller')
const NetworkController = require('./controllers/network') const NetworkController = require('./controllers/network')
@ -78,12 +79,13 @@ module.exports = class MetamaskController extends EventEmitter {
// rpc provider // rpc provider
this.provider = this.initializeProvider() this.provider = this.initializeProvider()
this.blockTracker = this.provider
// eth data query tools // eth data query tools
this.ethQuery = new EthQuery(this.provider) this.ethQuery = new EthQuery(this.provider)
this.ethStore = new EthStore({ this.ethStore = new EthStore({
provider: this.provider, provider: this.provider,
blockTracker: this.provider, blockTracker: this.blockTracker,
}) })
// key mgmt // key mgmt
@ -110,7 +112,7 @@ module.exports = class MetamaskController extends EventEmitter {
getNetwork: this.networkController.getNetworkState.bind(this), getNetwork: this.networkController.getNetworkState.bind(this),
signTransaction: this.keyringController.signTransaction.bind(this.keyringController), signTransaction: this.keyringController.signTransaction.bind(this.keyringController),
provider: this.provider, provider: this.provider,
blockTracker: this.provider, blockTracker: this.blockTracker,
ethQuery: this.ethQuery, ethQuery: this.ethQuery,
ethStore: this.ethStore, ethStore: this.ethStore,
}) })
@ -387,6 +389,10 @@ module.exports = class MetamaskController extends EventEmitter {
const engine = new RpcEngine() const engine = new RpcEngine()
engine.push(originMiddleware) engine.push(originMiddleware)
engine.push(loggerMiddleware) engine.push(loggerMiddleware)
engine.push(createFilterMiddleware({
provider: this.provider,
blockTracker: this.blockTracker,
}))
engine.push(createProviderMiddleware({ provider: this.provider })) engine.push(createProviderMiddleware({ provider: this.provider }))
// setup connection // setup connection