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:
commit
34fd23803d
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user