aboutsummaryrefslogtreecommitdiff
path: root/src/js/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/index.js')
-rw-r--r--src/js/index.js35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/js/index.js b/src/js/index.js
index c198977..5318800 100644
--- a/src/js/index.js
+++ b/src/js/index.js
@@ -19,6 +19,8 @@
19 var phraseChangeTimeoutEvent = null; 19 var phraseChangeTimeoutEvent = null;
20 var rootKeyChangedTimeoutEvent = null; 20 var rootKeyChangedTimeoutEvent = null;
21 21
22 var generationProcesses = [];
23
22 var DOM = {}; 24 var DOM = {};
23 DOM.network = $(".network"); 25 DOM.network = $(".network");
24 DOM.phraseNetwork = $("#network-phrase"); 26 DOM.phraseNetwork = $("#network-phrase");
@@ -512,14 +514,28 @@
512 } 514 }
513 515
514 function displayAddresses(start, total) { 516 function displayAddresses(start, total) {
515 for (var i=0; i<total; i++) { 517 generationProcesses.push(new (function() {
516 var index = i + start; 518
517 new TableRow(index); 519 var rows = [];
518 } 520
521 this.stop = function() {
522 for (var i=0; i<rows.length; i++) {
523 rows[i].shouldGenerate = false;
524 }
525 }
526
527 for (var i=0; i<total; i++) {
528 var index = i + start;
529 rows.push(new TableRow(index));
530 }
531
532 })());
519 } 533 }
520 534
521 function TableRow(index) { 535 function TableRow(index) {
522 536
537 var self = this;
538 this.shouldGenerate = true;
523 var useHardenedAddresses = DOM.hardenedAddresses.prop("checked"); 539 var useHardenedAddresses = DOM.hardenedAddresses.prop("checked");
524 540
525 function init() { 541 function init() {
@@ -528,6 +544,9 @@
528 544
529 function calculateValues() { 545 function calculateValues() {
530 setTimeout(function() { 546 setTimeout(function() {
547 if (!self.shouldGenerate) {
548 return;
549 }
531 var key = ""; 550 var key = "";
532 if (useHardenedAddresses) { 551 if (useHardenedAddresses) {
533 key = bip32ExtendedKey.deriveHardened(index); 552 key = bip32ExtendedKey.deriveHardened(index);
@@ -578,6 +597,14 @@
578 597
579 function clearAddressesList() { 598 function clearAddressesList() {
580 DOM.addresses.empty(); 599 DOM.addresses.empty();
600 stopGenerating();
601 }
602
603 function stopGenerating() {
604 while (generationProcesses.length > 0) {
605 var generation = generationProcesses.shift();
606 generation.stop();
607 }
581 } 608 }
582 609
583 function clearKey() { 610 function clearKey() {