]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - src/js/index.js
Add Slimcoin
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / src / js / index.js
index f593b3a937a427e46511a036b1c3a311d35bd530..8d756379560456c82f063a4605b5f3eb1a9d5fad 100644 (file)
@@ -23,9 +23,8 @@
 
     var DOM = {};
     DOM.network = $(".network");
-    DOM.client = $(".client");
+    DOM.bip32Client = $("#bip32-client");
     DOM.phraseNetwork = $("#network-phrase");
-    DOM.phraseClient = $("#client-phrase");
     DOM.useEntropy = $(".use-entropy");
     DOM.entropyContainer = $(".entropy-container");
     DOM.entropy = $(".entropy");
@@ -79,7 +78,7 @@
     function init() {
         // Events
         DOM.network.on("change", networkChanged);
-        DOM.client.on("change", clientChanged);
+        DOM.bip32Client.on("change", bip32ClientChanged);
         DOM.useEntropy.on("change", setEntropyVisibility);
         DOM.entropy.on("input", delayedEntropyChanged);
         DOM.entropyMnemonicLength.on("change", entropyChanged);
             rootKeyChanged();
         }
     }
-    
-    function clientChanged(e) {
-        var clientIndex = e.target.value;
-        clients[clientIndex].onSelect();
-        if (seed != null) {
-            phraseChanged();
+
+    function bip32ClientChanged(e) {
+        var clientIndex = DOM.bip32Client.val();
+        if (clientIndex == "custom") {
+            DOM.bip32path.prop("readonly", false);
         }
         else {
-            rootKeyChanged();
+            DOM.bip32path.prop("readonly", true);
+            clients[clientIndex].onSelect();
+            if (seed != null) {
+                phraseChanged();
+            }
+            else {
+                rootKeyChanged();
+            }
         }
     }
 
                 if (useHardenedAddresses) {
                     indexText = indexText + "'";
                 }
+                // Ethereum values are different
+                if (networks[DOM.network.val()].name == "Ethereum") {
+                    var privKeyBuffer = key.privKey.d.toBuffer();
+                    privkey = privKeyBuffer.toString('hex');
+                    var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
+                    var hexAddress = addressBuffer.toString('hex');
+                    var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
+                    address = ethUtil.addHexPrefix(checksumAddress);
+                }
                 addAddressToList(indexText, address, pubkey, privkey);
             }, 50)
         }
             DOM.phraseNetwork.append(option);
         }
     }
-    
+
     function populateClientSelect() {
         for (var i=0; i<clients.length; i++) {
             var client = clients[i];
             var option = $("<option>");
             option.attr("value", i);
             option.text(client.name);
-            DOM.phraseClient.append(option);
+            DOM.bip32Client.append(option);
         }
     }
 
             },
         },
         {
-            name: "Litecoin",
+            name: "CLAM",
             onSelect: function() {
-                network = bitcoin.networks.litecoin;
-                DOM.bip44coin.val(2);
+                network = bitcoin.networks.clam;
+                DOM.bip44coin.val(23);
             },
         },
         {
             },
         },
         {
-            name: "ShadowCash",
-            onSelect: function() {
-                network = bitcoin.networks.shadow;
-                DOM.bip44coin.val(35);
-            },
-        },
-        {
-            name: "ShadowCash Testnet",
+            name: "DASH",
             onSelect: function() {
-                network = bitcoin.networks.shadowtn;
-                DOM.bip44coin.val(1);
+                network = bitcoin.networks.dash;
+                DOM.bip44coin.val(5);
             },
         },
         {
-            name: "Viacoin",
+            name: "Ethereum",
             onSelect: function() {
-                network = bitcoin.networks.viacoin;
-                DOM.bip44coin.val(14);
+                network = bitcoin.networks.bitcoin;
+                DOM.bip44coin.val(60);
             },
         },
         {
-            name: "Viacoin Testnet",
+            name: "GAME",
             onSelect: function() {
-                network = bitcoin.networks.viacointestnet;
-                DOM.bip44coin.val(1);
+                network = bitcoin.networks.game;
+                DOM.bip44coin.val(101);
             },
         },
         {
             },
         },
         {
-            name: "CLAM",
-            onSelect: function() {
-                network = bitcoin.networks.clam;
-                DOM.bip44coin.val(23);
-            },
-        },
-        {
-            name: "DASH",
+            name: "Litecoin",
             onSelect: function() {
-                network = bitcoin.networks.dash;
-                DOM.bip44coin.val(5);
+                network = bitcoin.networks.litecoin;
+                DOM.bip44coin.val(2);
             },
         },
         {
                 DOM.bip44coin.val(6);
             },
         },
+        {
+            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);
+            },
+        },
+        {
+            name: "Slimcoin",
+            onSelect: function() {
+                network = bitcoin.networks.slimcoin;
+                DOM.bip44coin.val(63);
+            },
+        },
+        {
+            name: "Slimcoin Testnet",
+            onSelect: function() {
+                network = bitcoin.networks.slimcointn;
+                DOM.bip44coin.val(111);
+            },
+        },
+        {
+            name: "Viacoin",
+            onSelect: function() {
+                network = bitcoin.networks.viacoin;
+                DOM.bip44coin.val(14);
+            },
+        },
+        {
+            name: "Viacoin Testnet",
+            onSelect: function() {
+                network = bitcoin.networks.viacointestnet;
+                DOM.bip44coin.val(1);
+            },
+        },
     ]
-    
+
     var clients = [
         {
             name: "Bitcoin Core",