diff options
background - batch rpc fix for origin domain
Diffstat (limited to 'app')
-rw-r--r-- | app/scripts/background.js | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js index 3ad95d3e9..66108c251 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -152,19 +152,22 @@ function setupPublicConfig(stream){ } function setupProviderConnection(stream, originDomain){ - - stream.on('data', function onRpcRequest(payload){ - // Append origin to rpc payload - payload.origin = originDomain - // Append origin to signature request - if (payload.method === 'eth_sendTransaction') { - payload.params[0].origin = originDomain - } else if (payload.method === 'eth_sign') { - payload.params.push({ origin: originDomain }) - } + // decorate all payloads with origin domain + stream.on('data', function onRpcRequest(request){ + var payloads = Array.isArray(request) ? request : [request] + payloads.forEach(function(payload){ + // Append origin to rpc payload + payload.origin = originDomain + // Append origin to signature request + if (payload.method === 'eth_sendTransaction') { + payload.params[0].origin = originDomain + } else if (payload.method === 'eth_sign') { + payload.params.push({ origin: originDomain }) + } + }) // handle rpc request - provider.sendAsync(payload, function onPayloadHandled(err, response){ - logger(null, payload, response) + provider.sendAsync(request, function onPayloadHandled(err, response){ + logger(null, request, response) try { stream.write(response) } catch (err) { |