mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #1474 from MetaMask/i1458-StreamingSubprovider
Fix filter polling leak
This commit is contained in:
commit
8520fe5afe
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## Current Master
|
## Current Master
|
||||||
|
|
||||||
|
- Fix bug where website filters would pile up and not deallocate when leaving a site.
|
||||||
|
|
||||||
## 3.6.5 2017-5-17
|
## 3.6.5 2017-5-17
|
||||||
|
|
||||||
- Fix bug where edited gas parameters would not take effect.
|
- Fix bug where edited gas parameters would not take effect.
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
const pipe = require('pump')
|
const pipe = require('pump')
|
||||||
const StreamProvider = require('web3-stream-provider')
|
const ProviderEngine = require('web3-provider-engine')
|
||||||
|
const FilterSubprovider = require('web3-provider-engine/subproviders/filters')
|
||||||
|
const StreamSubprovider = require('web3-provider-engine/subproviders/stream')
|
||||||
const LocalStorageStore = require('obs-store')
|
const LocalStorageStore = require('obs-store')
|
||||||
const ObjectMultiplex = require('./obj-multiplex')
|
const ObjectMultiplex = require('./obj-multiplex')
|
||||||
const createRandomId = require('./random-id')
|
const createRandomId = require('./random-id')
|
||||||
@ -27,14 +29,24 @@ function MetamaskInpageProvider (connectionStream) {
|
|||||||
)
|
)
|
||||||
|
|
||||||
// connect to async provider
|
// connect to async provider
|
||||||
const asyncProvider = self.asyncProvider = new StreamProvider()
|
const engine = new ProviderEngine()
|
||||||
|
|
||||||
|
const filterSubprovider = new FilterSubprovider()
|
||||||
|
engine.addProvider(filterSubprovider)
|
||||||
|
|
||||||
|
const streamSubprovider = new StreamSubprovider()
|
||||||
|
engine.addProvider(streamSubprovider)
|
||||||
|
|
||||||
pipe(
|
pipe(
|
||||||
asyncProvider,
|
streamSubprovider,
|
||||||
multiStream.createStream('provider'),
|
multiStream.createStream('provider'),
|
||||||
asyncProvider,
|
streamSubprovider,
|
||||||
(err) => logStreamDisconnectWarning('MetaMask RpcProvider', err)
|
(err) => logStreamDisconnectWarning('MetaMask RpcProvider', err)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// start polling
|
||||||
|
engine.start()
|
||||||
|
|
||||||
self.idMap = {}
|
self.idMap = {}
|
||||||
// handle sendAsync requests via asyncProvider
|
// handle sendAsync requests via asyncProvider
|
||||||
self.sendAsync = function (payload, cb) {
|
self.sendAsync = function (payload, cb) {
|
||||||
@ -46,7 +58,7 @@ function MetamaskInpageProvider (connectionStream) {
|
|||||||
return message
|
return message
|
||||||
})
|
})
|
||||||
// forward to asyncProvider
|
// forward to asyncProvider
|
||||||
asyncProvider.sendAsync(request, function (err, res) {
|
engine.sendAsync(request, function (err, res) {
|
||||||
if (err) return cb(err)
|
if (err) return cb(err)
|
||||||
// transform messages to original ids
|
// transform messages to original ids
|
||||||
eachJsonMessage(res, (message) => {
|
eachJsonMessage(res, (message) => {
|
||||||
|
@ -121,7 +121,7 @@
|
|||||||
"valid-url": "^1.0.9",
|
"valid-url": "^1.0.9",
|
||||||
"vreme": "^3.0.2",
|
"vreme": "^3.0.2",
|
||||||
"web3": "0.18.2",
|
"web3": "0.18.2",
|
||||||
"web3-provider-engine": "^12.0.6",
|
"web3-provider-engine": "^12.1.0",
|
||||||
"web3-stream-provider": "^2.0.6",
|
"web3-stream-provider": "^2.0.6",
|
||||||
"xtend": "^4.0.1"
|
"xtend": "^4.0.1"
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user