X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=blobdiff_plain;f=src%2Fjs%2Findex.js;h=9578146ad891b054a3495d8a2583f81737520781;hp=41011efe50e82e6593c79ee18c48067d4a8ad181;hb=e2186682ac0cfa1f301c226408cdfb438f7b4d6e;hpb=3b43552ceb7a4a55801689dcff62e1aff610c9d0 diff --git a/src/js/index.js b/src/js/index.js index 41011ef..9578146 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -910,7 +910,18 @@ indexText = indexText + "'"; } // Ethereum values are different - if (networks[DOM.network.val()].name == "ETH - Ethereum") { + if ((networks[DOM.network.val()].name == "ETH - Ethereum") + || (networks[DOM.network.val()].name == "ETC - Ethereum Classic") + || (networks[DOM.network.val()].name == "PIRL - Pirl") + || (networks[DOM.network.val()].name == "MIX - MIX") + || (networks[DOM.network.val()].name == "MUSIC - Musicoin") + || (networks[DOM.network.val()].name == "POA - Poa") + || (networks[DOM.network.val()].name == "EXP - Expanse") + || (networks[DOM.network.val()].name == "CLO - Callisto") + || (networks[DOM.network.val()].name == "DXN - DEXON") + || (networks[DOM.network.val()].name == "ELLA - Ellaism") + || (networks[DOM.network.val()].name == "ESN - Ethersocial Network") + ) { var privKeyBuffer = keyPair.d.toBuffer(32); privkey = privKeyBuffer.toString('hex'); var addressBuffer = ethUtil.privateToAddress(privKeyBuffer); @@ -920,6 +931,28 @@ privkey = ethUtil.addHexPrefix(privkey); pubkey = ethUtil.addHexPrefix(pubkey); } + + // Stellar is different + if (networks[DOM.network.val()].name == "XLM - Stellar") { + var purpose = parseIntNoNaN(DOM.bip44purpose.val(), 44); + var coin = parseIntNoNaN(DOM.bip44coin.val(), 0); + var path = "m/"; + path += purpose + "'/"; + path += coin + "'/" + index + "'"; + var keypair = stellarUtil.getKeypair(path, seed); + indexText = path; + privkey = keypair.secret(); + pubkey = address = keypair.publicKey(); + } + if ((networks[DOM.network.val()].name == "NAS - Nebulas")) { + var NasAccount = require("nebulas-account"); + var privKeyBuffer = keyPair.d.toBuffer(32); + var nebulasAccount = new NasAccount(); + nebulasAccount.setPrivateKey(privKeyBuffer); + address = nebulasAccount.getAddressString(); + privkey = nebulasAccount.getPrivateKeyString(); + pubkey = nebulasAccount.getPublicKeyString(); + } // Ripple values are different if (networks[DOM.network.val()].name == "XRP - Ripple") { privkey = convertRipplePriv(privkey); @@ -935,6 +968,13 @@ address = bchaddr.toBitpayAddress(address); } } + // Bitcoin Cash address format may vary + if (networks[DOM.network.val()].name == "SLP - Simple Ledger Protocol") { + var bchAddrType = DOM.bitcoinCashAddressType.filter(":checked").val(); + if (bchAddrType == "cashaddr") { + address = bchaddr.toSlpAddress(address); + } + } // Segwit addresses are different if (isSegwit) { if (!segwitAvailable) { @@ -953,6 +993,17 @@ address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network) } } + + if ((networks[DOM.network.val()].name == "CRW - Crown")) { + address = bitcoinjs.bitcoin.networks.crown.toNewAddress(address); + } + + if (networks[DOM.network.val()].name == "EOS - EOSIO") { + address = "" + pubkey = eosUtil.bufferToPublic(keyPair.getPublicKeyBuffer()); + privkey = eosUtil.bufferToPrivate(keyPair.d.toBuffer(32)); + } + addAddressToList(indexText, address, pubkey, privkey); if (isLast) { hidePending(); @@ -1652,6 +1703,20 @@ network = bitcoinjs.bitcoin.networks.axe; setHdCoin(4242); }, + }, + { + name: "ANON - ANON", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.anon; + setHdCoin(220); + }, + }, + { + name: "BOLI - Bolivarcoin", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bolivarcoin; + setHdCoin(278); + }, }, { name: "BCA - Bitcoin Atom", @@ -1688,6 +1753,20 @@ setHdCoin(10); }, }, + { + name: "BND - Blocknode", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.blocknode; + setHdCoin(2941); + }, + }, + { + name: "tBND - Blocknode Testnet", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.blocknode_testnet; + setHdCoin(1); + }, + }, { name: "BRIT - Britcoin", onSelect: function() { @@ -1701,6 +1780,13 @@ network = bitcoinjs.bitcoin.networks.bitsend; setHdCoin(91); }, + }, + { + name: "BST - BlockStamp", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.blockstamp; + setHdCoin(254); + }, }, { name: "BTA - Bata", @@ -1722,6 +1808,13 @@ network = bitcoinjs.bitcoin.networks.testnet; setHdCoin(1); }, + }, + { + name: "BITG - Bitcoin Green", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoingreen; + setHdCoin(222); + }, }, { name: "BTCP - Bitcoin Private", @@ -1737,6 +1830,13 @@ setHdCoin(177); }, }, + { + name: "BTDX - BitCloud", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcloud; + setHdCoin(218); + }, + }, { name: "BTG - Bitcoin Gold", onSelect: function() { @@ -1758,6 +1858,13 @@ setHdCoin(19); }, }, + { + name: "CESC - Cryptoescudo", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.cannacoin; + setHdCoin(111); + }, + }, { name: "CDN - Canadaecoin", onSelect: function() { @@ -1772,6 +1879,14 @@ setHdCoin(23); }, }, + { + name: "CLO - Callisto", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(820); + }, + }, { name: "CLUB - Clubcoin", onSelect: function() { @@ -1793,6 +1908,13 @@ setHdCoin(186); }, }, + { + name: "CRW - Crown (Legacy)", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.crown; + setHdCoin(72); + }, + }, { name: "CRW - Crown", onSelect: function() { @@ -1856,6 +1978,20 @@ setHdCoin(3); }, }, + { + name: "DOGEt - Dogecoin Testnet", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.dogecointestnet; + setHdCoin(1); + }, + }, + { + name: "DXN - DEXON", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(237); + }, + }, { name: "ECN - Ecoin", onSelect: function() { @@ -1877,6 +2013,14 @@ setHdCoin(78); }, }, + { + name: "ELLA - Ellaism", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(163); + }, + }, { name: "EMC2 - Einsteinium", onSelect: function() { @@ -1891,6 +2035,29 @@ setHdCoin(151); }, }, + { + name: "EOS - EOSIO", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(194); + }, + }, + { + name: "ESN - Ethersocial Network", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(31102); + }, + }, + { + name: "ETC - Ethereum Classic", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(61); + }, + }, { name: "ETH - Ethereum", onSelect: function() { @@ -1905,6 +2072,35 @@ setHdCoin(190); }, }, + { + name: "EXCC - ExchangeCoin", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.exchangecoin; + setHdCoin(0); + }, + }, + { + name: "EXP - Expanse", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(40); + }, + }, + { + name: "FIX - FIX", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.fix; + setHdCoin(336); + }, + }, + { + name: "FIX - FIX Testnet", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.fixtestnet; + setHdCoin(1); + }, + }, { name: "FJC - Fujicoin", onSelect: function() { @@ -1967,6 +2163,13 @@ network = bitcoinjs.bitcoin.networks.helleniccoin; setHdCoin(168); }, + }, + { + name: "HUSH - Hush", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.hush; + setHdCoin(197); + }, }, { name: "INSN - Insane", @@ -2040,6 +2243,14 @@ setHdCoin(114); }, }, + { + name: "LKR - Lkrcoin", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.lkrcoin; + setHdCoin(557); + }, + }, { name: "LTC - Litecoin", onSelect: function() { @@ -2048,6 +2259,21 @@ DOM.litecoinLtubContainer.removeClass("hidden"); }, }, + { + name: "LTCt - Litecoin Testnet", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.litecointestnet; + setHdCoin(1); + DOM.litecoinLtubContainer.removeClass("hidden"); + }, + }, + { + name: "LTZ - LitecoinZ", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.litecoinz; + setHdCoin(221); + }, + }, { name: "LYNX - Lynx", onSelect: function() { @@ -2062,6 +2288,21 @@ setHdCoin(13); }, }, + { + name: "MEC - Megacoin", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.megacoin; + setHdCoin(217); + }, + }, + { + name: "MIX - MIX", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(76); + }, + }, { name: "MNX - Minexcoin", onSelect: function() { @@ -2076,6 +2317,14 @@ setHdCoin(22); }, }, + { + name: "MUSIC - Musicoin", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(184); + }, + }, { name: "NAV - Navcoin", onSelect: function() { @@ -2083,6 +2332,13 @@ setHdCoin(130); }, }, + { + name: "NAS - Nebulas", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(2718); + }, + }, { name: "NEBL - Neblio", onSelect: function() { @@ -2097,6 +2353,13 @@ setHdCoin(25); }, }, + { + name: "NIX - NIX Platform", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.nix; + setHdCoin(400); + }, + }, { name: "NLG - Gulden", onSelect: function() { @@ -2160,12 +2423,26 @@ setHdCoin(200); }, }, + { + name: "ONION - DeepOnion", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.deeponion; + setHdCoin(305); + }, + }, { name: "ONX - Onixcoin", onSelect: function() { network = bitcoinjs.bitcoin.networks.onixcoin; setHdCoin(174); }, + }, + { + name: "PHR - Phore", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.phore; + setHdCoin(444); + }, }, { name: "PINK - Pinkcoin", @@ -2174,6 +2451,14 @@ setHdCoin(117); }, }, + { + name: "PIRL - Pirl", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(164); + }, + }, { name: "PIVX - PIVX", onSelect: function() { @@ -2188,6 +2473,14 @@ setHdCoin(1); }, }, + { + name: "POA - Poa", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.bitcoin; + setHdCoin(178); + }, + }, { name: "POSW - POSWcoin", onSelect: function() { @@ -2208,6 +2501,13 @@ network = bitcoinjs.bitcoin.networks.peercoin; setHdCoin(6); }, + }, + { + name: "PRJ - ProjectCoin", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.projectcoin; + setHdCoin(533); + }, }, { name: "PSB - Pesobit", @@ -2223,6 +2523,13 @@ setHdCoin(122); }, }, + { + name: "RVN - Ravencoin", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.ravencoin; + setHdCoin(175); + }, + }, { name: "RBY - Rubycoin", onSelect: function() { @@ -2244,6 +2551,20 @@ setHdCoin(129); }, }, + { + name: "SAFE - Safecoin", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.safecoin; + setHdCoin(19165); + }, + }, + { + name: "SLS - Salus", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.salus; + setHdCoin(63); + }, + }, { name: "SDC - ShadowCash", onSelect: function() { @@ -2272,6 +2593,13 @@ setHdCoin(111); }, }, + { + name: "SLP - Simple Ledger Protocol", + onSelect: function() { + DOM.bitcoinCashAddressTypeContainer.removeClass("hidden"); + setHdCoin(245); + }, + }, { name: "SLR - Solarcoin", onSelect: function() { @@ -2286,6 +2614,20 @@ setHdCoin(59); }, }, + { + name: "STASH - Stash", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.stash; + setHdCoin(0xC0C0); + }, + }, + { + name: "STASH - Stash Testnet", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.stashtn; + setHdCoin(0xCAFE); + }, + }, { name: "STRAT - Stratis", onSelect: function() { @@ -2321,6 +2663,20 @@ setHdCoin(159); }, }, + { + name: "TWINS - TWINS", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.twins; + setHdCoin(970); + }, + }, + { + name: "TWINS - TWINS Testnet", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.twinstestnet; + setHdCoin(1); + }, + }, { name: "USC - Ultimatesecurecash", onSelect: function() { @@ -2383,6 +2739,13 @@ network = bitcoinjs.bitcoin.networks.wincoin; setHdCoin(181); }, + }, + { + name: "XAX - Artax", + onSelect: function() { + network = bitcoinjs.bitcoin.networks.artax; + setHdCoin(219); + }, }, { name: "XBC - Bitcoinplus", @@ -2391,6 +2754,13 @@ setHdCoin(65); }, }, + { + name: "XLM - Stellar", + onSelect: function() { + network = stellarUtil.dummyNetwork; + setHdCoin(148); + }, + }, { name: "XMY - Myriadcoin", onSelect: function() { @@ -2419,6 +2789,14 @@ setHdCoin(77); }, }, + { + name: "XUEZ - Xuez", + segwitAvailable: false, + onSelect: function() { + network = bitcoinjs.bitcoin.networks.xuez; + setHdCoin(225); + }, + }, { name: "XWC - Whitecoin", onSelect: function() { @@ -2447,13 +2825,6 @@ setHdCoin(133); }, }, - { - name: "XUEZ - Xuez", - onSelect: function() { - network = bitcoinjs.bitcoin.networks.xuez; - setHdCoin(225); - }, - }, { name: "ZEN - Zencash", onSelect: function() { @@ -2484,6 +2855,13 @@ DOM.bip32path.val("m/0'/0"); DOM.hardenedAddresses.prop('checked', false); }, + }, + { + name: "Coinomi, Ledger", + onSelect: function() { + DOM.bip32path.val("m/44'/"+DOM.bip44coin.val()+"'/0'"); + DOM.hardenedAddresses.prop('checked', false); + }, } ]