]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/blobdiff - bip39-standalone.html
Merge pull request #81 from mikeyb/naming
[perso/Immae/Projets/Cryptomonnaies/BIP39.git] / bip39-standalone.html
index 98a33b2cde95a7b3ef12712e94d2eaef9b77a9e3..a00cb688c5fad5cb6a411bbd41a76e8b843b89e3 100644 (file)
                 border-bottom: 1px dashed #000;
                 text-decoration: none;
             }
+            .version {
+                position: absolute;
+                top: 5px;
+                right: 5px;
+            }
         </style>
     </head>
     <body>
         <div class="container">
 
             <h1 class="text-center">Mnemonic Code Converter</h1>
+            <p class="version">v0.1.1</p>
             <hr>
             <div class="row">
                 <div class="col-md-12">
                                 <div class="col-sm-7">
                                     <textarea id="entropy" rows="2" class="entropy form-control" placeholder="Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder></textarea>
                                     <div class="row">
-                                        <label class="col-sm-3 control-label" data-translate>Strength</label>
-                                        <div class="strength col-sm-3 form-control-static"></div>
+                                        <label class="col-sm-3 control-label" data-translate><span class="more-info" data-translate-title title="Based on estimates from zxcvbn using Filtered Entropy">Time To Crack</span></label>
+                                        <div class="crack-time col-sm-3 form-control-static"></div>
                                         <label class="col-sm-3 control-label" data-translate>Event Count</label>
                                         <div class="event-count col-sm-3 form-control-static"></div>
                                     </div>
                                         <div class="bits-per-event col-sm-3 form-control-static"></div>
                                     </div>
                                     <div class="row">
-                                        <label class="col-sm-3 control-label" data-translate>Word Count</label>
+                                        <label class="col-sm-3 control-label" data-translate>Raw Entropy Words</label>
                                         <div class="word-count col-sm-3 form-control-static"></div>
                                         <label class="col-sm-3 control-label" data-translate><span class="more-info" data-translate-title title="Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits</span></label>
                                         <div class="bits col-sm-3 form-control-static"></div>
@@ -19896,6 +19902,16 @@ bitcoin.networks.clam = {
   wif: 0x85,
 };
 
+bitcoin.networks.crown = {
+  bip32: {
+    public: 0x0488b21e,
+    private: 0x0488ade4
+  },
+  pubKeyHash: 0x00,
+  scriptHash: 0x05,
+  wif: 0x80,
+};
+
 bitcoin.networks.dash = {
   bip32: {
     public: 0x0488b21e,
@@ -19906,6 +19922,16 @@ bitcoin.networks.dash = {
   wif: 0xcc,
 };
 
+bitcoin.networks.dashtn = {
+  bip32: {
+    public: 0x043587cf,
+    private: 0x04358394
+  },
+  pubKeyHash: 0x8c,
+  scriptHash: 0x13,
+  wif: 0xef,
+};
+
 bitcoin.networks.game = {
   bip32: {
     public: 0x0488b21e,
@@ -19936,6 +19962,26 @@ bitcoin.networks.peercoin = {
   wif: 0xb7,
 };
 
+bitcoin.networks.slimcoin = {
+  bip32: {
+    public: 0xef6adf10,
+    private: 0xef69ea80
+  },
+  pubKeyHash: 0x3f,
+  scriptHash: 0x7d,
+  wif: 0x46,
+};
+
+bitcoin.networks.slimcointn = {
+  bip32: {
+    public: 0x043587CF,
+    private: 0x04358394
+  },
+  pubKeyHash: 0x6f,
+  scriptHash: 0xc4,
+  wif: 0x57,
+};
+
 </script>
         <script>(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ethUtil = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
 (function (global){
@@ -38706,7 +38752,7 @@ module.exports = function stripHexPrefix(str) {
       }
 
 function convertRipplePriv(priv)   {
-        return window.basex('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(2)
+        return window.basex('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(2,66)
 }   
       
 </script>
@@ -43728,7 +43774,7 @@ window.Entropy = new (function() {
     DOM.entropy = $(".entropy");
     DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
     DOM.entropyType = DOM.entropyContainer.find(".type");
-    DOM.entropyStrength = DOM.entropyContainer.find(".strength");
+    DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
     DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
     DOM.entropyBits = DOM.entropyContainer.find(".bits");
     DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
@@ -44283,16 +44329,18 @@ window.Entropy = new (function() {
                     indexText = indexText + "'";
                 }
                 // Ethereum values are different
-                if (networks[DOM.network.val()].name == "Ethereum") {
+                if (networks[DOM.network.val()].name == "ETH - 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);
+                    privkey = ethUtil.addHexPrefix(privkey);
+                    pubkey = ethUtil.addHexPrefix(pubkey);
                 }
                 // Ripple values are different
-                if (networks[DOM.network.val()].name == "Ripple") {
+                if (networks[DOM.network.val()].name == "XRP - Ripple") {
                     privkey = convertRipplePriv(privkey);
                     address = convertRippleAdrr(address);
                 }
@@ -44611,7 +44659,7 @@ window.Entropy = new (function() {
     }
 
     function clearEntropyFeedback() {
-        DOM.entropyStrength.text("...");
+        DOM.entropyCrackTime.text("...");
         DOM.entropyType.text("");
         DOM.entropyWordCount.text("0");
         DOM.entropyEventCount.text("0");
@@ -44623,37 +44671,15 @@ window.Entropy = new (function() {
 
     function showEntropyFeedback(entropy) {
         var numberOfBits = entropy.binaryStr.length;
-        var strength = "extremely weak";
-        if (numberOfBits >= 64) {
-            strength = "very weak";
-        }
-        if (numberOfBits >= 96) {
-            strength = "weak";
-        }
-        if (numberOfBits >= 128) {
-            strength = "strong";
-        }
-        if (numberOfBits >= 160) {
-            strength = "very strong";
-        }
-        if (numberOfBits >= 192) {
-            strength = "extremely strong";
-        }
-        // If time to crack is less than one day, and password is considered
-        // strong or better based on the number of bits, rename strength to
-        // 'easily cracked'.
+        var timeToCrack = "unknown";
         try {
             var z = zxcvbn(entropy.base.parts.join(""));
-            var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
-            if (timeToCrack < 86400 && entropy.binaryStr.length >= 128) {
-                strength = "easily cracked";
-                if (z.feedback.warning != "") {
-                    strength = strength + " - " + z.feedback.warning;
-                };
-            }
+            timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
+            if (z.feedback.warning != "") {
+                timeToCrack = timeToCrack + " - " + z.feedback.warning;
+            };
         }
         catch (e) {
-            strength = "unknown";
             console.log("Error detecting entropy strength with zxcvbn:");
             console.log(e);
         }
@@ -44662,7 +44688,7 @@ window.Entropy = new (function() {
         var bitsPerEvent = entropy.bitsPerEvent.toFixed(2);
         DOM.entropyFiltered.html(entropy.cleanHtml);
         DOM.entropyType.text(entropyTypeStr);
-        DOM.entropyStrength.text(strength);
+        DOM.entropyCrackTime.text(timeToCrack);
         DOM.entropyEventCount.text(entropy.base.ints.length);
         DOM.entropyBits.text(numberOfBits);
         DOM.entropyWordCount.text(wordCount);
@@ -44775,117 +44801,145 @@ window.Entropy = new (function() {
 
     var networks = [
         {
-            name: "Bitcoin",
+            name: "BTC - Bitcoin",
             onSelect: function() {
                 network = bitcoin.networks.bitcoin;
                 DOM.bip44coin.val(0);
             },
         },
         {
-            name: "Bitcoin Testnet",
+            name: "BTC - Bitcoin Testnet",
             onSelect: function() {
                 network = bitcoin.networks.testnet;
                 DOM.bip44coin.val(1);
             },
         },
         {
-            name: "CLAM",
+            name: "CLAM - Clams",
             onSelect: function() {
                 network = bitcoin.networks.clam;
                 DOM.bip44coin.val(23);
             },
         },
         {
-            name: "Dogecoin",
+            name: "CRW - Crown",
             onSelect: function() {
-                network = bitcoin.networks.dogecoin;
-                DOM.bip44coin.val(3);
+                network = bitcoin.networks.crown;
+                DOM.bip44coin.val(72);
             },
         },
         {
-            name: "DASH",
+            name: "DASH - Dash",
             onSelect: function() {
                 network = bitcoin.networks.dash;
                 DOM.bip44coin.val(5);
             },
         },
         {
-            name: "Ethereum",
+            name: "DASH - Dash Testnet",
+            onSelect: function() {
+                network = bitcoin.networks.dashtn;
+                DOM.bip44coin.val(1);
+            },
+        },
+        {
+            name: "DOGE - Dogecoin",
+            onSelect: function() {
+                network = bitcoin.networks.dogecoin;
+                DOM.bip44coin.val(3);
+            },
+        },
+        {
+            name: "ETH - Ethereum",
             onSelect: function() {
                 network = bitcoin.networks.bitcoin;
                 DOM.bip44coin.val(60);
             },
         },
         {
-            name: "GAME",
+            name: "GAME - GameCredits",
             onSelect: function() {
                 network = bitcoin.networks.game;
                 DOM.bip44coin.val(101);
             },
         },
         {
-            name: "Jumbucks",
+            name: "JBS - Jumbucks",
             onSelect: function() {
                 network = bitcoin.networks.jumbucks;
                 DOM.bip44coin.val(26);
             },
         },
         {
-            name: "Litecoin",
+            name: "LTC - Litecoin",
             onSelect: function() {
                 network = bitcoin.networks.litecoin;
                 DOM.bip44coin.val(2);
             },
         },
         {
-            name: "Namecoin",
+            name: "NMC - Namecoin",
             onSelect: function() {
                 network = bitcoin.networks.namecoin;
                 DOM.bip44coin.val(7);
             },
         },
         {
-            name: "Peercoin",
+            name: "PPC - Peercoin",
             onSelect: function() {
                 network = bitcoin.networks.peercoin;
                 DOM.bip44coin.val(6);
             },
         },
         {
-            name: "Ripple",
-            onSelect: function() {
-                network = bitcoin.networks.bitcoin;
-                DOM.bip44coin.val(144);
-            },
-        },
-        {
-            name: "ShadowCash",
+            name: "SDC - ShadowCash",
             onSelect: function() {
                 network = bitcoin.networks.shadow;
                 DOM.bip44coin.val(35);
             },
         },
         {
-            name: "ShadowCash Testnet",
+            name: "SDC - ShadowCash Testnet",
             onSelect: function() {
                 network = bitcoin.networks.shadowtn;
                 DOM.bip44coin.val(1);
             },
         },
         {
-            name: "Viacoin",
+            name: "SLM - Slimcoin",
+            onSelect: function() {
+                network = bitcoin.networks.slimcoin;
+                DOM.bip44coin.val(63);
+            },
+        },
+        {
+            name: "SLM - Slimcoin Testnet",
+            onSelect: function() {
+                network = bitcoin.networks.slimcointn;
+                DOM.bip44coin.val(111);
+            },
+        },
+        {
+            name: "VIA - Viacoin",
             onSelect: function() {
                 network = bitcoin.networks.viacoin;
                 DOM.bip44coin.val(14);
             },
         },
         {
-            name: "Viacoin Testnet",
+            name: "VIA - Viacoin Testnet",
             onSelect: function() {
                 network = bitcoin.networks.viacointestnet;
                 DOM.bip44coin.val(1);
             },
         },
+        {
+            name: "XRP - Ripple",
+            onSelect: function() {
+                network = bitcoin.networks.bitcoin;
+                DOM.bip44coin.val(144);
+            },
+        }
     ]
 
     var clients = [