aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/manifest.json3
-rw-r--r--app/scripts/lib/tx-state-history-helper.js3
-rw-r--r--package.json2
-rw-r--r--test/unit/tx-state-history-helper.js22
4 files changed, 27 insertions, 3 deletions
diff --git a/app/manifest.json b/app/manifest.json
index e71018211..0fc43c7d4 100644
--- a/app/manifest.json
+++ b/app/manifest.json
@@ -57,7 +57,8 @@
"permissions": [
"storage",
"clipboardWrite",
- "http://localhost:8545/"
+ "http://localhost:8545/",
+ "https://*.infura.io/"
],
"web_accessible_resources": [
"scripts/inpage.js"
diff --git a/app/scripts/lib/tx-state-history-helper.js b/app/scripts/lib/tx-state-history-helper.js
index 304069d57..5ebd78689 100644
--- a/app/scripts/lib/tx-state-history-helper.js
+++ b/app/scripts/lib/tx-state-history-helper.js
@@ -24,7 +24,8 @@ function generateHistoryEntry(previousState, newState) {
return jsonDiffer.compare(previousState, newState)
}
-function replayHistory(shortHistory) {
+function replayHistory(_shortHistory) {
+ const shortHistory = clone(_shortHistory)
return shortHistory.reduce((val, entry) => jsonDiffer.applyPatch(val, entry).newDocument)
}
diff --git a/package.json b/package.json
index b9a38ac71..918531f15 100644
--- a/package.json
+++ b/package.json
@@ -141,7 +141,7 @@
"valid-url": "^1.0.9",
"vreme": "^3.0.2",
"web3": "^0.20.1",
- "web3-provider-engine": "^13.2.12",
+ "web3-provider-engine": "^13.3.1",
"web3-stream-provider": "^3.0.1",
"xtend": "^4.0.1"
},
diff --git a/test/unit/tx-state-history-helper.js b/test/unit/tx-state-history-helper.js
index 5bb6c9bee..e5075af88 100644
--- a/test/unit/tx-state-history-helper.js
+++ b/test/unit/tx-state-history-helper.js
@@ -20,4 +20,26 @@ describe('tx-state-history-helper', function () {
})
})
})
+
+ it('replaying history does not mutate the original obj', function () {
+ const initialState = { test: true, message: 'hello', value: 1 }
+ const diff1 = {
+ "op": "replace",
+ "path": "/message",
+ "value": "haay",
+ }
+ const diff2 = {
+ "op": "replace",
+ "path": "/value",
+ "value": 2,
+ }
+ const history = [initialState, diff1, diff2]
+
+ const beforeStateSnapshot = JSON.stringify(initialState)
+ const latestState = txStateHistoryHelper.replayHistory(history)
+ const afterStateSnapshot = JSON.stringify(initialState)
+
+ assert.notEqual(initialState, latestState, 'initial state is not the same obj as the latest state')
+ assert.equal(beforeStateSnapshot, afterStateSnapshot, 'initial state is not modified during run')
+ })
})