X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2Fjs%2Findex.js;h=1f4cc1fe12ab203ff39474804ac1e63c44c1463b;hb=6d2e202083c4166aa4be8557789a8a461df6bd5c;hp=80b78bca7f42065f53f9bbf1c8c2069f74e41c58;hpb=877b8bdfecabed14e8d5e8a84365743b81da0175;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git diff --git a/src/js/index.js b/src/js/index.js index 80b78bc..1f4cc1f 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -96,7 +96,7 @@ DOM.bip84change = $("#bip84 .change"); DOM.bip85 = $('.bip85'); DOM.showBip85 = $('.showBip85'); - DOM.bip85Field = $('.bip85Field'); + DOM.bip85Field = $('.bip85Field'); DOM.bip85application = $('#bip85-application'); DOM.bip85mnemonicLanguage = $('#bip85-mnemonic-language'); DOM.bip85mnemonicLanguageInput = $('.bip85-mnemonic-language-input'); @@ -105,7 +105,7 @@ DOM.bip85index = $('#bip85-index'); DOM.bip85indexInput = $('.bip85-index-input'); DOM.bip85bytes = $('#bip85-bytes'); - DOM.bip85bytesInput = $('.bip85-bytes-input'); + DOM.bip85bytesInput = $('.bip85-bytes-input'); DOM.bip141unavailable = $("#bip141 .unavailable"); DOM.bip141available = $("#bip141 .available"); DOM.bip141path = $("#bip141-path"); @@ -166,7 +166,7 @@ DOM.bip85mnemonicLanguage.on('change', calcBip85); DOM.bip85mnemonicLength.on('change', calcBip85); DOM.bip85index.on('input', calcBip85); - DOM.bip85bytes.on('input', calcBip85); + DOM.bip85bytes.on('input', calcBip85); DOM.bip141path.on("input", calcForDerivationPath); DOM.bip141semantics.on("change", tabChanged); DOM.tab.on("shown.bs.tab", tabChanged); @@ -464,18 +464,18 @@ function toggleBip85() { if (DOM.showBip85.prop('checked')) { DOM.bip85.removeClass('hidden'); - toggleBip85Fields(); + calcBip85(); } else { DOM.bip85.addClass('hidden'); } } - + function toggleBip85Fields() { if (DOM.showBip85.prop('checked')) { DOM.bip85mnemonicLanguageInput.addClass('hidden'); DOM.bip85mnemonicLengthInput.addClass('hidden'); DOM.bip85bytesInput.addClass('hidden'); - + var app = DOM.bip85application.val(); if (app === 'bip39') { DOM.bip85mnemonicLanguageInput.removeClass('hidden'); @@ -485,12 +485,16 @@ } } } - + function calcBip85() { + if (!DOM.showBip85.prop('checked')) { + return + } + toggleBip85Fields(); - + var app = DOM.bip85application.val(); - + var phrase = DOM.phrase.val(); var passphrase = DOM.passphrase.val(); if (!phrase) { @@ -498,15 +502,15 @@ } try { var master = libs.bip85.BIP85.fromMnemonic(phrase, passphrase); - + var result; - + const index = parseInt(DOM.bip85index.val(), 10); - + if (app === 'bip39') { const language = parseInt(DOM.bip85mnemonicLanguage.val(), 10); const length = parseInt(DOM.bip85mnemonicLength.val(), 10); - + result = master.deriveBIP39(language, length, index).toMnemonic(); } else if (app === 'wif') { result = master.deriveWIF(index).toWIF(); @@ -514,10 +518,10 @@ result = master.deriveXPRV(index).toXPRV(); } else if (app === 'hex') { const bytes = parseInt(DOM.bip85bytes.val(), 10); - + result = master.deriveHex(bytes, index).toEntropy(); } - + hideValidationError(); DOM.bip85Field.val(result); } catch (e) { @@ -1344,6 +1348,27 @@ address = libs.bchaddrSlp.toSlpAddress(address); } } + + // ZooBC address format may vary + if (networks[DOM.network.val()].name == "ZBC - ZooBlockchain") { + + var purpose = parseIntNoNaN(DOM.bip44purpose.val(), 44); + var coin = parseIntNoNaN(DOM.bip44coin.val(), 0); + var path = "m/"; + path += purpose + "'/"; + path += coin + "'/" + index + "'"; + var result = libs.zoobcUtil.getKeypair(path, seed); + + let publicKey = result.pubKey.slice(1, 33); + let privateKey = result.key; + + privkey = privateKey.toString('hex'); + pubkey = publicKey.toString('hex'); + + indexText = path; + address = libs.zoobcUtil.getZBCAddress(publicKey, 'ZBC'); + } + // Segwit addresses are different if (isSegwit) { if (!segwitAvailable) { @@ -2679,7 +2704,14 @@ network = libs.bitcoin.networks.bitcoin; setHdCoin(235); }, - }, + }, + { + name: "FIRO - Firo (Zcoin rebrand)", + onSelect: function() { + network = libs.bitcoin.networks.firo; + setHdCoin(136); + }, + }, { name: "FIX - FIX", onSelect: function() { @@ -3523,12 +3555,19 @@ }, }, { - name: "XZC - Zcoin", + name: "XZC - Zcoin (rebranded to Firo)", onSelect: function() { network = libs.bitcoin.networks.zcoin; setHdCoin(136); }, }, + { + name: "ZBC - ZooBlockchain", + onSelect: function () { + network = libs.bitcoin.networks.zoobc; + setHdCoin(883); + }, + }, { name: "ZCL - Zclassic", onSelect: function() {