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.js56
1 files changed, 54 insertions, 2 deletions
diff --git a/src/js/index.js b/src/js/index.js
index 9c9ad58..e63c65f 100644
--- a/src/js/index.js
+++ b/src/js/index.js
@@ -53,6 +53,7 @@
53 DOM.bip32tab = $("#bip32-tab"); 53 DOM.bip32tab = $("#bip32-tab");
54 DOM.bip44tab = $("#bip44-tab"); 54 DOM.bip44tab = $("#bip44-tab");
55 DOM.bip49tab = $("#bip49-tab"); 55 DOM.bip49tab = $("#bip49-tab");
56 DOM.bip84tab = $("#bip84-tab");
56 DOM.bip141tab = $("#bip141-tab"); 57 DOM.bip141tab = $("#bip141-tab");
57 DOM.bip32panel = $("#bip32"); 58 DOM.bip32panel = $("#bip32");
58 DOM.bip44panel = $("#bip44"); 59 DOM.bip44panel = $("#bip44");
@@ -74,6 +75,13 @@
74 DOM.bip49accountXprv = $("#bip49 .account-xprv"); 75 DOM.bip49accountXprv = $("#bip49 .account-xprv");
75 DOM.bip49accountXpub = $("#bip49 .account-xpub"); 76 DOM.bip49accountXpub = $("#bip49 .account-xpub");
76 DOM.bip49change = $("#bip49 .change"); 77 DOM.bip49change = $("#bip49 .change");
78 DOM.bip84path = $("#bip84-path");
79 DOM.bip84purpose = $("#bip84 .purpose");
80 DOM.bip84coin = $("#bip84 .coin");
81 DOM.bip84account = $("#bip84 .account");
82 DOM.bip84accountXprv = $("#bip84 .account-xprv");
83 DOM.bip84accountXpub = $("#bip84 .account-xpub");
84 DOM.bip84change = $("#bip84 .change");
77 DOM.bip141unavailable = $("#bip141 .unavailable"); 85 DOM.bip141unavailable = $("#bip141 .unavailable");
78 DOM.bip141available = $("#bip141 .available"); 86 DOM.bip141available = $("#bip141 .available");
79 DOM.bip141path = $("#bip141-path"); 87 DOM.bip141path = $("#bip141-path");
@@ -117,6 +125,8 @@
117 DOM.bip44change.on("input", calcForDerivationPath); 125 DOM.bip44change.on("input", calcForDerivationPath);
118 DOM.bip49account.on("input", calcForDerivationPath); 126 DOM.bip49account.on("input", calcForDerivationPath);
119 DOM.bip49change.on("input", calcForDerivationPath); 127 DOM.bip49change.on("input", calcForDerivationPath);
128 DOM.bip84account.on("input", calcForDerivationPath);
129 DOM.bip84change.on("input", calcForDerivationPath);
120 DOM.bip141path.on("input", calcForDerivationPath); 130 DOM.bip141path.on("input", calcForDerivationPath);
121 DOM.bip141semantics.on("change", tabChanged); 131 DOM.bip141semantics.on("change", tabChanged);
122 DOM.tab.on("shown.bs.tab", tabChanged); 132 DOM.tab.on("shown.bs.tab", tabChanged);
@@ -357,6 +367,9 @@
357 else if (bip49TabSelected()) { 367 else if (bip49TabSelected()) {
358 displayBip49Info(); 368 displayBip49Info();
359 } 369 }
370 else if (bip84TabSelected()) {
371 displayBip84Info();
372 }
360 displayBip32Info(); 373 displayBip32Info();
361 } 374 }
362 375
@@ -559,6 +572,21 @@
559 console.log("Using derivation path from BIP49 tab: " + derivationPath); 572 console.log("Using derivation path from BIP49 tab: " + derivationPath);
560 return derivationPath; 573 return derivationPath;
561 } 574 }
575 else if (bip84TabSelected()) {
576 var purpose = parseIntNoNaN(DOM.bip84purpose.val(), 84);
577 var coin = parseIntNoNaN(DOM.bip84coin.val(), 0);
578 var account = parseIntNoNaN(DOM.bip84account.val(), 0);
579 var change = parseIntNoNaN(DOM.bip84change.val(), 0);
580 var path = "m/";
581 path += purpose + "'/";
582 path += coin + "'/";
583 path += account + "'/";
584 path += change;
585 DOM.bip84path.val(path);
586 var derivationPath = DOM.bip84path.val();
587 console.log("Using derivation path from BIP84 tab: " + derivationPath);
588 return derivationPath;
589 }
562 else if (bip32TabSelected()) { 590 else if (bip32TabSelected()) {
563 var derivationPath = DOM.bip32path.val(); 591 var derivationPath = DOM.bip32path.val();
564 console.log("Using derivation path from BIP32 tab: " + derivationPath); 592 console.log("Using derivation path from BIP32 tab: " + derivationPath);
@@ -659,6 +687,24 @@
659 DOM.bip49accountXpub.val(accountXpub); 687 DOM.bip49accountXpub.val(accountXpub);
660 } 688 }
661 689
690 function displayBip84Info() {
691 // Get the derivation path for the account
692 var purpose = parseIntNoNaN(DOM.bip84purpose.val(), 84);
693 var coin = parseIntNoNaN(DOM.bip84coin.val(), 0);
694 var account = parseIntNoNaN(DOM.bip84account.val(), 0);
695 var path = "m/";
696 path += purpose + "'/";
697 path += coin + "'/";
698 path += account + "'/";
699 // Calculate the account extended keys
700 var accountExtendedKey = calcBip32ExtendedKey(path);
701 var accountXprv = accountExtendedKey.toBase58();
702 var accountXpub = accountExtendedKey.neutered().toBase58();
703 // Display the extended keys
704 DOM.bip84accountXprv.val(accountXprv);
705 DOM.bip84accountXpub.val(accountXpub);
706 }
707
662 function displayBip32Info() { 708 function displayBip32Info() {
663 // Display the key 709 // Display the key
664 DOM.seed.val(seed); 710 DOM.seed.val(seed);
@@ -699,11 +745,12 @@
699 } 745 }
700 746
701 function segwitSelected() { 747 function segwitSelected() {
702 return bip49TabSelected() || bip141TabSelected(); 748 return bip49TabSelected() || bip84TabSelected() || bip141TabSelected();
703 } 749 }
704 750
705 function p2wpkhSelected() { 751 function p2wpkhSelected() {
706 return bip141TabSelected() && DOM.bip141semantics.val() == "p2wpkh"; 752 return bip84TabSelected() ||
753 bip141TabSelected() && DOM.bip141semantics.val() == "p2wpkh";
707 } 754 }
708 755
709 function p2wpkhInP2shSelected() { 756 function p2wpkhInP2shSelected() {
@@ -1284,6 +1331,10 @@
1284 return DOM.bip49tab.hasClass("active"); 1331 return DOM.bip49tab.hasClass("active");
1285 } 1332 }
1286 1333
1334 function bip84TabSelected() {
1335 return DOM.bip84tab.hasClass("active");
1336 }
1337
1287 function bip141TabSelected() { 1338 function bip141TabSelected() {
1288 return DOM.bip141tab.hasClass("active"); 1339 return DOM.bip141tab.hasClass("active");
1289 } 1340 }
@@ -1291,6 +1342,7 @@
1291 function setHdCoin(coinValue) { 1342 function setHdCoin(coinValue) {
1292 DOM.bip44coin.val(coinValue); 1343 DOM.bip44coin.val(coinValue);
1293 DOM.bip49coin.val(coinValue); 1344 DOM.bip49coin.val(coinValue);
1345 DOM.bip84coin.val(coinValue);
1294 } 1346 }
1295 1347
1296 function showSegwitAvailable() { 1348 function showSegwitAvailable() {