]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/commitdiff
Merge branch 'master' into master
authorSuat Özgür <s.oezguer@gmail.com>
Sat, 25 May 2019 12:18:15 +0000 (14:18 +0200)
committerGitHub <noreply@github.com>
Sat, 25 May 2019 12:18:15 +0000 (14:18 +0200)
1  2 
src/index.html
src/js/index.js

diff --combined src/index.html
index a3d6c0ce929b6c36c22e76f6de4cc2c72d5276bc,cc8dcaddeb4152a4d4daa1fa6705268ae4040c92..d64d27e282ea18718e89ec5b350c6ef3df4be7cb
@@@ -15,7 -15,7 +15,7 @@@
          <div class="container">
  
              <h1 class="text-center">Mnemonic Code Converter</h1>
-             <p class="version">v0.3.9</p>
+             <p class="version">v0.3.11</p>
              <hr>
              <div class="row">
                  <div class="col-md-12">
@@@ -69,7 -69,7 +69,7 @@@
                              <div class="form-group">
                                  <label for="entropy" class="col-sm-2 control-label">Entropy</label>
                                  <div class="col-sm-7">
-                                     <textarea id="entropy" rows="2" class="entropy private-data form-control" placeholder="Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards"></textarea>
+                                     <textarea id="entropy" rows="2" class="entropy private-data form-control" placeholder="Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                                      <div class="row filter-warning text-danger hidden">
                                          <p class="col-sm-12">
                                          <strong>
                          <div class="form-group">
                              <label for="phrase" class="col-sm-2 control-label">BIP39 Mnemonic</label>
                              <div class="col-sm-10">
-                                 <textarea id="phrase" class="phrase private-data form-control" data-show-qr></textarea>
+                                 <textarea id="phrase" class="phrase private-data form-control" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                              </div>
                          </div>
                          <div class="form-group">
                              <label for="passphrase" class="col-sm-2 control-label">BIP39 Passphrase (optional)</label>
                              <div class="col-sm-10">
-                                 <textarea id="passphrase" class="passphrase private-data form-control"></textarea>
+                                 <textarea id="passphrase" class="passphrase private-data form-control" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                              </div>
                          </div>
                          <div class="form-group">
                              <label for="seed" class="col-sm-2 control-label">BIP39 Seed</label>
                              <div class="col-sm-10">
-                                 <textarea id="seed" class="seed private-data form-control" readonly="readonly" data-show-qr></textarea>
+                                 <textarea id="seed" class="seed private-data form-control" readonly="readonly" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                              </div>
                          </div>
                          <div class="form-group">
                          <div class="form-group">
                              <label for="root-key" class="col-sm-2 control-label">BIP32 Root Key</label>
                              <div class="col-sm-10">
-                                 <textarea id="root-key" class="root-key private-data form-control" data-show-qr></textarea>
+                                 <textarea id="root-key" class="root-key private-data form-control" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                              </div>
                          </div>
                          <div class="form-group litecoin-ltub-container hidden">
                                          <span>Account Extended Private Key</span>
                                      </label>
                                      <div class="col-sm-10">
-                                         <textarea id="account-xprv-bip44" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
+                                         <textarea id="account-xprv-bip44" type="text" class="account-xprv private-data form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                                      </div>
                                  </div>
                                  <div class="form-group">
                                          <span>Account Extended Public Key</span>
                                      </label>
                                      <div class="col-sm-10">
-                                         <textarea id="account-xpub-bip44" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
+                                         <textarea id="account-xpub-bip44" type="text" class="account-xpub form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                                      </div>
                                  </div>
                                  <div class="form-group">
                                              <span>Account Extended Private Key</span>
                                          </label>
                                          <div class="col-sm-10">
-                                             <textarea id="account-xprv-bip49" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
+                                             <textarea id="account-xprv-bip49" type="text" class="account-xprv private-data form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                                          </div>
                                      </div>
                                      <div class="form-group">
                                              <span>Account Extended Public Key</span>
                                          </label>
                                          <div class="col-sm-10">
-                                             <textarea id="account-xpub-bip49" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
+                                             <textarea id="account-xpub-bip49" type="text" class="account-xpub form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                                          </div>
                                      </div>
                                      <div class="form-group">
                                              <span>Account Extended Private Key</span>
                                          </label>
                                          <div class="col-sm-10">
-                                             <textarea id="account-xprv-bip84" type="text" class="account-xprv private-data form-control" readonly data-show-qr></textarea>
+                                             <textarea id="account-xprv-bip84" type="text" class="account-xprv private-data form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                                          </div>
                                      </div>
                                      <div class="form-group">
                                              <span>Account Extended Public Key</span>
                                          </label>
                                          <div class="col-sm-10">
-                                             <textarea id="account-xpub-bip84" type="text" class="account-xpub form-control" readonly data-show-qr></textarea>
+                                             <textarea id="account-xpub-bip84" type="text" class="account-xpub form-control" readonly data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                                          </div>
                                      </div>
                                      <div class="form-group">
                          <div class="form-group">
                              <label for="extended-priv-key" class="col-sm-2 control-label">BIP32 Extended Private Key</label>
                              <div class="col-sm-10">
-                                 <textarea id="extended-priv-key" class="extended-priv-key private-data form-control" readonly="readonly" data-show-qr></textarea>
+                                 <textarea id="extended-priv-key" class="extended-priv-key private-data form-control" readonly="readonly" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                              </div>
                          </div>
                          <div class="form-group">
                              <label for="extended-pub-key" class="col-sm-2 control-label">BIP32 Extended Public Key</label>
                              <div class="col-sm-10">
-                                 <textarea id="extended-pub-key" class="extended-pub-key form-control" readonly="readonly" data-show-qr></textarea>
+                                 <textarea id="extended-pub-key" class="extended-pub-key form-control" readonly="readonly" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                              </div>
                          </div>
                      </form>
                              <input type="checkbox" class="use-bip38">
                              <span>Encrypt private keys using BIP38 and this password:</span>
                          </label>
-                         <input class="bip38-password private-data">
+                         <input class="bip38-password private-data" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
                          <span>Enabling BIP38 means each key will take several minutes to generate.</span>
                      </div>
                  </div>
                      </div>
                      <div id="csv" class="tab-pane">
                          <div class="col-md-12">
-                             <textarea class="csv form-control" rows="25" readonly></textarea>
+                             <textarea class="csv form-control" rows="25" readonly autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
                          </div>
                      </div>
                  </div>
                          Read more at the
                          <a href="https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target="_blank">official BIP49 spec</a>
                      </p>
-                     <h3>Private Keys</h3>
-                     <p>
-                         <span>
-                             Use private keys at
-                             <a href="https://web.archive.org/web/20150707020924/https://brainwallet.org/" target="_blank">brainwallet.org</a>.
-                         </span>
-                         <span>Be careful - it can be easy to make mistakes if you don't know what you're doing.</span>
-                     </p>
                      <h3 id="entropy-notes">Entropy</h3>
                      <p>
                          <span>Entropy values should not include the BIP39 checksum. This is automatically added by the tool.</span>
          <script src="js/ethereumjs-util.js"></script>
          <script src="js/ripple-util.js"></script>
          <script src="js/bchaddrjs-0.2.1.js"></script>
+         <script src="js/nebulas-account.js"></script>
          <script src="js/sjcl-bip39.js"></script>
          <script src="js/wordlist_english.js"></script>
          <script src="js/wordlist_japanese.js"></script>
          <script src="js/biginteger.js"></script>
          <script src="js/zxcvbn.js"></script>
          <script src="js/entropy.js"></script>
 +        <script src="js/stellar-util.js"></script>
          <script src="js/index.js"></script>
      </body>
  </html>
diff --combined src/js/index.js
index 353f40fca7c0280461da9d58cd3011e94f12d55e,6085f1bb2824c33d27ae22827e0defcb0c0a7905..d822b55a3b27a68924843ec795442c8b463e75a8
                      || (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 == "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);
                      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);
                          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) {
                          address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
                      }
                  }
+                 
+                 if ((networks[DOM.network.val()].name == "CRW - Crown")) {
+                     address = bitcoinjs.bitcoin.networks.crown.toNewAddress(address);
+                 }
+                 
                  addAddressToList(indexText, address, pubkey, privkey);
                  if (isLast) {
                      hidePending();
                  setHdCoin(220);
              },
          },
+         {
+             name: "BOLI - Bolivarcoin",
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.bolivarcoin;
+                 setHdCoin(278);
+             },
+         },
          {
              name: "BCA - Bitcoin Atom",
              onSelect: function() {
                  network = bitcoinjs.bitcoin.networks.blocknode;
                  setHdCoin(2941);
              },
-         },    
+         },
                {
              name: "tBND - Blocknode Testnet",
              onSelect: function() {
                  network = bitcoinjs.bitcoin.networks.bitsend;
                  setHdCoin(91);
              },
+         },
+               {
+             name: "BST - BlockStamp",
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.blockstamp;
+                 setHdCoin(254);
+             },
          },
          {
              name: "BTA - Bata",
                  setHdCoin(186);
              },
          },
+         {
+             name: "CRW - Crown (Legacy)",
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.crown;
+                 setHdCoin(72);
+             },
+         },
          {
              name: "CRW - Crown",
              onSelect: function() {
                  setHdCoin(3);
              },
          },
+         {
+             name: "DXN - DEXON",
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.bitcoin;
+                 setHdCoin(237);
+             },
+         },
          {
              name: "ECN - Ecoin",
              onSelect: function() {
                  setHdCoin(78);
              },
          },
+         {
+             name: "ELLA - Ellaism",
+             segwitAvailable: false,
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.bitcoin;
+                 setHdCoin(163);
+             },
+         },
          {
              name: "EMC2 - Einsteinium",
              onSelect: function() {
                  setHdCoin(151);
              },
          },
+         {
+             name: "ESN - Ethersocial Network",
+             segwitAvailable: false,
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.bitcoin;
+                 setHdCoin(31102);
+             },
+         },
          {
              name: "ETC - Ethereum Classic",
              segwitAvailable: false,
                  setHdCoin(114);
              },
          },
+         {
+             name: "LKR - Lkrcoin",
+             segwitAvailable: false,
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.lkrcoin;
+                 setHdCoin(557);
+             },
+         },
          {
              name: "LTC - Litecoin",
              onSelect: function() {
                  setHdCoin(130);
              },
          },
+         {
+             name: "NAS - Nebulas",
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.bitcoin;
+                 setHdCoin(2718);
+             },
+         },
          {
              name: "NEBL - Neblio",
              onSelect: function() {
                  setHdCoin(25);
              },
          },
+         {
+             name: "NIX - NIX Platform",
+             onSelect: function() {
+                 network = bitcoinjs.bitcoin.networks.nix;
+                 setHdCoin(400);
+             },
+         },
          {
              name: "NLG - Gulden",
              onSelect: function() {
                  setHdCoin(111);
              },
          },
+         {
+             name: "SLP - Simple Ledger Protocol",
+             onSelect: function() {
+                 DOM.bitcoinCashAddressTypeContainer.removeClass("hidden");
+                 setHdCoin(245);
+             },
+         },
          {
              name: "SLR - Solarcoin",
              onSelect: function() {
                  setHdCoin(65);
              },
          },
 +        {
 +            name: "XLM - Stellar",
 +            onSelect: function() {
 +                segwitAvailable: false,
 +                network =bitcoinjs.bitcoin.networks.bitcoin;
 +                setHdCoin(148);
 +            },
 +        },
          {
              name: "XMY - Myriadcoin",
              onSelect: function() {