Skip to content

Commit 32345bd

Browse files
authored
Merge pull request #601 from MetaMask/filterfix
inpage - remap ids on response
2 parents d26dd53 + 532737a commit 32345bd

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

app/scripts/lib/inpage-provider.js

+18-4
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,29 @@ function MetamaskInpageProvider (connectionStream) {
3333
})
3434
asyncProvider.on('error', console.error.bind(console))
3535
self.asyncProvider = asyncProvider
36+
37+
self.idMap = {}
3638
// handle sendAsync requests via asyncProvider
3739
self.sendAsync = function(payload, cb){
3840
// rewrite request ids
39-
var request = jsonrpcMessageTransform(payload, (message) => {
40-
message.id = createRandomId()
41+
var request = eachJsonMessage(payload, (message) => {
42+
var newId = createRandomId()
43+
self.idMap[newId] = message.id
44+
message.id = newId
4145
return message
4246
})
4347
// forward to asyncProvider
44-
asyncProvider.sendAsync(request, cb)
48+
asyncProvider.sendAsync(request, function(err, res){
49+
if (err) return cb(err)
50+
// transform messages to original ids
51+
eachJsonMessage(res, (message) => {
52+
var oldId = self.idMap[message.id]
53+
delete self.idMap[message.id]
54+
message.id = oldId
55+
return message
56+
})
57+
cb(null, res)
58+
})
4559
}
4660
}
4761

@@ -111,7 +125,7 @@ function createRandomId(){
111125
return datePart + extraPart
112126
}
113127

114-
function jsonrpcMessageTransform(payload, transformFn){
128+
function eachJsonMessage(payload, transformFn){
115129
if (Array.isArray(payload)) {
116130
return payload.map(transformFn)
117131
} else {

0 commit comments

Comments
 (0)