var mnemonic = new Mnemonic("english");
var bip32RootKey = null;
var bip32ExtendedKey = null;
- var network = Bitcoin.networks.bitcoin;
+ var network = bitcoin.networks.bitcoin;
var addressRowTemplate = $("#address-row-template");
var showIndex = true;
var phraseChangeTimeoutEvent = null;
var DOM = {};
+ DOM.network = $(".network");
+ DOM.phraseNetwork = $("#network-phrase");
DOM.phrase = $(".phrase");
DOM.passphrase = $(".passphrase");
DOM.generate = $(".generate");
DOM.rootKey = $(".root-key");
DOM.extendedPrivKey = $(".extended-priv-key");
DOM.extendedPubKey = $(".extended-pub-key");
+ DOM.bip32tab = $("#bip32-tab");
+ DOM.bip44tab = $("#bip44-tab");
+ DOM.bip32panel = $("#bip32");
+ DOM.bip44panel = $("#bip44");
DOM.bip32path = $("#bip32-path");
DOM.bip44path = $("#bip44-path");
DOM.bip44purpose = $("#bip44 .purpose");
DOM.addressToggle = $(".address-toggle");
DOM.privateKeyToggle = $(".private-key-toggle");
- var derivationPath = DOM.bip44path.val();
+ var derivationPath = $(".tab-pane.active .path").val();
function init() {
// Events
+ DOM.network.on("change", networkChanged);
DOM.phrase.on("input", delayedPhraseChanged);
DOM.passphrase.on("input", delayedPhraseChanged);
DOM.generate.on("click", generateClicked);
disableForms();
hidePending();
hideValidationError();
+ populateNetworkSelect();
}
// Event handlers
+ function networkChanged(e) {
+ var network = e.target.value;
+ networks[network].onSelect();
+ setBip44DerivationPath();
+ delayedPhraseChanged();
+ }
+
function delayedPhraseChanged() {
hideValidationError();
showPending();
function calcBip32Seed(phrase, passphrase, path) {
var seed = mnemonic.toSeed(phrase, passphrase);
- bip32RootKey = Bitcoin.HDNode.fromSeedHex(seed, network);
+ bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
bip32ExtendedKey = bip32RootKey;
// Derive the key from the path
var pathBits = path.split("/");
.hide();
}
+ function populateNetworkSelect() {
+ for (var i=0; i<networks.length; i++) {
+ var network = networks[i];
+ var option = $("<option>");
+ option.attr("value", i);
+ option.text(network.name);
+ DOM.phraseNetwork.append(option);
+ }
+ }
+
+ var networks = [
+ {
+ name: "Bitcoin",
+ onSelect: function() {
+ network = bitcoin.networks.bitcoin;
+ DOM.bip44coin.val(0);
+ },
+ },
+ {
+ name: "Bitcoin Testnet",
+ onSelect: function() {
+ network = bitcoin.networks.testnet;
+ DOM.bip44coin.val(1);
+ },
+ },
+ {
+ name: "Litecoin",
+ onSelect: function() {
+ network = bitcoin.networks.litecoin;
+ DOM.bip44coin.val(2);
+ },
+ },
+ {
+ name: "Dogecoin",
+ onSelect: function() {
+ network = bitcoin.networks.dogecoin;
+ DOM.bip44coin.val(3);
+ },
+ },
+ {
+ name: "ShadowCash",
+ onSelect: function() {
+ network = bitcoin.networks.shadow;
+ DOM.bip44coin.val(35);
+ },
+ },
+ {
+ name: "ShadowCash Testnet",
+ onSelect: function() {
+ network = bitcoin.networks.shadowtn;
+ DOM.bip44coin.val(1);
+ },
+ },
+ ]
+
init();
})();