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

Merge branch 'master' into i566-NoPopupWhenOpen

This commit is contained in:
Dan Finlay 2016-09-01 11:34:38 -07:00 committed by GitHub
commit 34fd23803d

View File

@ -33,15 +33,29 @@ function MetamaskInpageProvider (connectionStream) {
}) })
asyncProvider.on('error', console.error.bind(console)) asyncProvider.on('error', console.error.bind(console))
self.asyncProvider = asyncProvider self.asyncProvider = asyncProvider
self.idMap = {}
// handle sendAsync requests via asyncProvider // handle sendAsync requests via asyncProvider
self.sendAsync = function(payload, cb){ self.sendAsync = function(payload, cb){
// rewrite request ids // rewrite request ids
var request = jsonrpcMessageTransform(payload, (message) => { var request = eachJsonMessage(payload, (message) => {
message.id = createRandomId() var newId = createRandomId()
self.idMap[newId] = message.id
message.id = newId
return message return message
}) })
// forward to asyncProvider // forward to asyncProvider
asyncProvider.sendAsync(request, cb) asyncProvider.sendAsync(request, function(err, res){
if (err) return cb(err)
// transform messages to original ids
eachJsonMessage(res, (message) => {
var oldId = self.idMap[message.id]
delete self.idMap[message.id]
message.id = oldId
return message
})
cb(null, res)
})
} }
} }
@ -111,7 +125,7 @@ function createRandomId(){
return datePart + extraPart return datePart + extraPart
} }
function jsonrpcMessageTransform(payload, transformFn){ function eachJsonMessage(payload, transformFn){
if (Array.isArray(payload)) { if (Array.isArray(payload)) {
return payload.map(transformFn) return payload.map(transformFn)
} else { } else {