From 45d16d975b3e7b981821aabfe356efd2c7a06e6e Mon Sep 17 00:00:00 2001
From: kumavis <aaron@kumavis.me>
Date: Tue, 21 Jun 2016 13:14:21 -0700
Subject: background - batch rpc fix for origin domain

---
 app/scripts/background.js | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

(limited to 'app/scripts')

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) {
-- 
cgit v1.2.3