aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/random-id.js
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2016-11-18 06:05:12 +0800
committerDan Finlay <dan@danfinlay.com>2016-11-18 06:05:12 +0800
commit8eb91e89bf62fd835d5e59bd01ac54e0df7c22ed (patch)
tree975275cc991cdc4f2a0b8decd2db4f429e2f9096 /app/scripts/lib/random-id.js
parentb0ccde66f62ae69c5818ddd43e22fb517f8f13e2 (diff)
downloadtangerine-wallet-browser-8eb91e89bf62fd835d5e59bd01ac54e0df7c22ed.tar.gz
tangerine-wallet-browser-8eb91e89bf62fd835d5e59bd01ac54e0df7c22ed.tar.zst
tangerine-wallet-browser-8eb91e89bf62fd835d5e59bd01ac54e0df7c22ed.zip
Increment tx ids to avoid collisions
Fixes #791 It was possible for two requests to have the same ID, causing a crash and loss of StreamProvider connection. This new id generation strategy creates a random ID, and increments it for each request. In case the id generator is included from two different processes, I'm initializing the counter at a random number, and rolling it over a large number when it gets too big.
Diffstat (limited to 'app/scripts/lib/random-id.js')
-rw-r--r--app/scripts/lib/random-id.js9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/scripts/lib/random-id.js b/app/scripts/lib/random-id.js
new file mode 100644
index 000000000..3c5ae5600
--- /dev/null
+++ b/app/scripts/lib/random-id.js
@@ -0,0 +1,9 @@
+const MAX = 1000000000
+
+let idCounter = Math.round( Math.random() * MAX )
+function createRandomId() {
+ idCounter = idCounter % MAX
+ return idCounter++
+}
+
+module.exports = createRandomId