]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - src/js/index.js
Add ETC, PIRL, CLO, MIX, MUSIC, POA, EXP, and coinomi/ledger client option in bip32 tab
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / src / js / index.js
index fc7e13b0e10822e8695e604948c58d89b51255f9..7d04a0540d862e2628e72ca9eb5e8c8426448c5b 100644 (file)
@@ -91,8 +91,8 @@
     DOM.generatedStrength = $(".generate-container .strength");
     DOM.generatedStrengthWarning = $(".generate-container .warning");
     DOM.hardenedAddresses = $(".hardened-addresses");
-    DOM.useBitpayAddressesContainer = $(".use-bitpay-addresses-container");
-    DOM.useBitpayAddresses = $(".use-bitpay-addresses");
+    DOM.bitcoinCashAddressTypeContainer = $(".bch-addr-type-container");
+    DOM.bitcoinCashAddressType = $("[name=bch-addr-type]")
     DOM.useBip38 = $(".use-bip38");
     DOM.bip38Password = $(".bip38-password");
     DOM.addresses = $(".addresses");
         DOM.privateKeyToggle.on("click", togglePrivateKeys);
         DOM.csvTab.on("click", updateCsv);
         DOM.languages.on("click", languageChanged);
-        DOM.useBitpayAddresses.on("change", useBitpayAddressesChange);
+        DOM.bitcoinCashAddressType.on("change", bitcoinCashAddressTypeChange);
         setQrEvents(DOM.showQrEls);
         disableForms();
         hidePending();
         clearDerivedKeys();
         clearAddressesList();
         DOM.litecoinLtubContainer.addClass("hidden");
-        DOM.useBitpayAddressesContainer.addClass("hidden");
+        DOM.bitcoinCashAddressTypeContainer.addClass("hidden");
         var networkIndex = e.target.value;
         var network = networks[networkIndex];
         network.onSelect();
         }, 50);
     }
 
-    function useBitpayAddressesChange() {
-        setBitcoinCashNetworkValues();
+    function bitcoinCashAddressTypeChange() {
         phraseChanged();
     }
 
                     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")) {
                     var privKeyBuffer = keyPair.d.toBuffer(32);
                     privkey = privKeyBuffer.toString('hex');
                     var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
                     privkey = convertRipplePriv(privkey);
                     address = convertRippleAdrr(address);
                 }
+                // Bitcoin Cash address format may vary
+                if (networks[DOM.network.val()].name == "BCH - Bitcoin Cash") {
+                    var bchAddrType = DOM.bitcoinCashAddressType.filter(":checked").val();
+                    if (bchAddrType == "cashaddr") {
+                        address = bchaddr.toCashAddress(address);
+                    }
+                    else if (bchAddrType == "bitpay") {
+                        address = bchaddr.toBitpayAddress(address);
+                    }
+                }
                 // Segwit addresses are different
                 if (isSegwit) {
                     if (!segwitAvailable) {
     function wordArrayToPhrase(words) {
         var phrase = words.join(" ");
         var language = getLanguageFromPhrase(phrase);
-        if (language == "japanese" || language == "korean") {
+        if (language == "japanese") {
             phrase = words.join("\u3000");
         }
         return phrase;
         DOM.bip141unavailable.removeClass("hidden");
     }
 
-    function useBitpayAddresses() {
-        return !(DOM.useBitpayAddresses.prop("checked"));
-    }
-
-    function setBitcoinCashNetworkValues() {
-        if (useBitpayAddresses()) {
-            network = bitcoinjs.bitcoin.networks.bitcoin;
-        }
-        else {
-            network = bitcoinjs.bitcoin.networks.bitcoinCashBitbpay;
-        }
-    }
-
     function adjustNetworkForSegwit() {
         // If segwit is selected the xpub/xprv prefixes need to be adjusted
         // to avoid accidentally importing BIP49 xpub to BIP44 watch only
             segwitAvailable: false,
             onSelect: function() {
                 network = bitcoinjs.bitcoin.networks.axe;
-                setHdCoin(0);
+                setHdCoin(4242);
             },
         },
         {
             name: "BCH - Bitcoin Cash",
             segwitAvailable: false,
             onSelect: function() {
-                DOM.useBitpayAddressesContainer.removeClass("hidden");
-                setBitcoinCashNetworkValues();
+                DOM.bitcoinCashAddressTypeContainer.removeClass("hidden");
                 setHdCoin(145);
             },
         },
                 setHdCoin(1);
             },
         },
+        {
+            name: "BTCP - Bitcoin Private",
+            segwitAvailable: true,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoinprivate;
+                setHdCoin(183);
+            },
+        },
+        {
+            name: "BTCZ - Bitcoinz",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoinz;
+                setHdCoin(177);
+            },
+        },
         {
             name: "BTG - Bitcoin Gold",
             segwitAvailable: true,
                 setHdCoin(23);
             },
         },
+        {
+            name: "CLO - Callisto",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoin;
+                setHdCoin(820);
+            },
+        },
         {
             name: "CLUB - Clubcoin",
             segwitAvailable: false,
                 setHdCoin(151);
             },
         },
+        {
+            name: "ETC - Ethereum Classic",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoin;
+                setHdCoin(61);
+            },
+        },
         {
             name: "ETH - Ethereum",
             segwitAvailable: false,
                 setHdCoin(190);
             },
         },
+        {
+            name: "EXP - Expanse",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoin;
+                setHdCoin(40);
+            },
+        },
         {
             name: "FJC - Fujicoin",
             segwitAvailable: true,
                 setHdCoin(13);
             },
         },
+        {
+            name: "MIX - MIX",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoin;
+                setHdCoin(76);
+            },
+        },
         {
             name: "MNX - Minexcoin",
             segwitAvailable: true,
                 setHdCoin(22);
             },
         },
+        {
+            name: "MUSIC - Musicoin",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoin;
+                setHdCoin(184);
+            },
+        },
         {
             name: "NAV - Navcoin",
             segwitAvailable: true,
                 setHdCoin(7);
             },
         },
+        {
+            name: "NRG - Energi",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.energi;
+                setHdCoin(204);
+            },
+        },
         {
             name: "NRO - Neurocoin",
             segwitAvailable: false,
                 setHdCoin(117);
             },
         },
+        {
+            name: "PIRL - Pirl",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoin;
+                setHdCoin(164);
+            },
+        },
         {
             name: "PIVX - PIVX",
             segwitAvailable: false,
                 setHdCoin(1);
             },
         },
+        {
+            name: "POA - Poa",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.bitcoin;
+                setHdCoin(178);
+            },
+        },
         {
             name: "POSW - POSWcoin",
             segwitAvailable: false,
                 setHdCoin(77);
             },
         },
+        {
+            name: "XUEZ - Xuez",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.xuez;
+                setHdCoin(225);
+            },
+        },
         {
             name: "XWC - Whitecoin",
             segwitAvailable: false,
                 setHdCoin(136);
             },
         },
+        {
+            name: "ZCL - Zclassic",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.zclassic;
+                setHdCoin(147);
+            },
+        },
         {
             name: "ZEC - Zcash",
             segwitAvailable: false,
                 setHdCoin(133);
             },
         },
+        {
+            name: "ZEN - Zencash",
+            segwitAvailable: false,
+            onSelect: function() {
+                network = bitcoinjs.bitcoin.networks.zencash;
+                setHdCoin(121);
+            },
+        },
     ]
 
     var clients = [
                 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);
+            },
         }
     ]