diff options
author | Ian Coleman <coleman.ian@gmail.com> | 2014-10-13 12:08:14 +1100 |
---|---|---|
committer | Ian Coleman <coleman.ian@gmail.com> | 2014-10-13 12:08:14 +1100 |
commit | dc55c6b063a1f9d1fa8677d82a77ce53b0cecce5 (patch) | |
tree | 521a77d68adcc92a05ef5d9c29634ffefef6ce10 | |
parent | bae07be32bebd2185d65a2e66f080f1b12ee8810 (diff) | |
download | BIP39-dc55c6b063a1f9d1fa8677d82a77ce53b0cecce5.tar.gz BIP39-dc55c6b063a1f9d1fa8677d82a77ce53b0cecce5.tar.zst BIP39-dc55c6b063a1f9d1fa8677d82a77ce53b0cecce5.zip |
Standalone update: coin select, hive and mycelium
Coin selection is simplified in the GUI.
Hive Wallet tab is added to derivation paths.
Mycelium Wallet tab is added to derivation paths.
-rw-r--r-- | bip39-standalone.html | 150 |
1 files changed, 65 insertions, 85 deletions
diff --git a/bip39-standalone.html b/bip39-standalone.html index 2769ec3..8733864 100644 --- a/bip39-standalone.html +++ b/bip39-standalone.html | |||
@@ -6256,17 +6256,6 @@ button.close { | |||
6256 | <p>For more info see the <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target="_blank">BIP39 spec</a></p> | 6256 | <p>For more info see the <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target="_blank">BIP39 spec</a></p> |
6257 | </div> | 6257 | </div> |
6258 | <div class="form-group"> | 6258 | <div class="form-group"> |
6259 | <label for="network-phrase" class="col-sm-2 control-label">Coin</label> | ||
6260 | <div class="col-sm-10"> | ||
6261 | <select id="network-phrase" class="network form-control"> | ||
6262 | <option value="bitcoin">Bitcoin</option> | ||
6263 | <option value="bitcoin-testnet">Bitcoin Testnet</option> | ||
6264 | <option value="litecoin">Litecoin</option> | ||
6265 | <option value="dogecoin">Dogecoin</option> | ||
6266 | </select> | ||
6267 | </div> | ||
6268 | </div> | ||
6269 | <div class="form-group"> | ||
6270 | <label for="phrase" class="col-sm-2 control-label">BIP39 Mnemonic</label> | 6259 | <label for="phrase" class="col-sm-2 control-label">BIP39 Mnemonic</label> |
6271 | <div class="col-sm-10"> | 6260 | <div class="col-sm-10"> |
6272 | <textarea id="phrase" class="phrase form-control"></textarea> | 6261 | <textarea id="phrase" class="phrase form-control"></textarea> |
@@ -6290,6 +6279,17 @@ button.close { | |||
6290 | </div> | 6279 | </div> |
6291 | </div> | 6280 | </div> |
6292 | <div class="form-group"> | 6281 | <div class="form-group"> |
6282 | <label for="network-phrase" class="col-sm-2 control-label">Coin</label> | ||
6283 | <div class="col-sm-10"> | ||
6284 | <select id="network-phrase" class="network form-control"> | ||
6285 | <option value="bitcoin">Bitcoin</option> | ||
6286 | <option value="bitcoin-testnet">Bitcoin Testnet</option> | ||
6287 | <option value="litecoin">Litecoin</option> | ||
6288 | <option value="dogecoin">Dogecoin</option> | ||
6289 | </select> | ||
6290 | </div> | ||
6291 | </div> | ||
6292 | <div class="form-group"> | ||
6293 | <label for="root-key" class="col-sm-2 control-label">BIP32 Root Key</label> | 6293 | <label for="root-key" class="col-sm-2 control-label">BIP32 Root Key</label> |
6294 | <div class="col-sm-10"> | 6294 | <div class="col-sm-10"> |
6295 | <textarea id="root-key" class="root-key form-control" readonly="readonly"></textarea> | 6295 | <textarea id="root-key" class="root-key form-control" readonly="readonly"></textarea> |
@@ -6305,7 +6305,13 @@ button.close { | |||
6305 | <div class="col-md-12"> | 6305 | <div class="col-md-12"> |
6306 | <h2>Derivation Path</h2> | 6306 | <h2>Derivation Path</h2> |
6307 | <ul class="derivation-type nav nav-tabs" role="tablist"> | 6307 | <ul class="derivation-type nav nav-tabs" role="tablist"> |
6308 | <li id="bip44-tab" class="active"> | 6308 | <li id="hive-tab" class="active"> |
6309 | <a href="#hive" role="tab" data-toggle="tab">Hive Wallet</a> | ||
6310 | </li> | ||
6311 | <li id="mycelium-tab"> | ||
6312 | <a href="#mycelium" role="tab" data-toggle="tab">Mycelium Wallet</a> | ||
6313 | </li> | ||
6314 | <li id="bip44-tab"> | ||
6309 | <a href="#bip44" role="tab" data-toggle="tab">BIP44</a> | 6315 | <a href="#bip44" role="tab" data-toggle="tab">BIP44</a> |
6310 | </li> | 6316 | </li> |
6311 | <li id="bip32-tab"> | 6317 | <li id="bip32-tab"> |
@@ -6313,23 +6319,43 @@ button.close { | |||
6313 | </li> | 6319 | </li> |
6314 | </ul> | 6320 | </ul> |
6315 | <div class="derivation-type tab-content"> | 6321 | <div class="derivation-type tab-content"> |
6316 | <div id="bip44" class="tab-pane active"> | 6322 | <div id="hive" class="tab-pane active"> |
6317 | <form class="form-horizontal" role="form"> | 6323 | <form class="form-horizontal" role="form"> |
6318 | <br> | 6324 | <br> |
6319 | <div class="col-sm-2"></div> | 6325 | <div class="col-sm-2"></div> |
6320 | <div class="col-sm-10"> | 6326 | <div class="col-sm-10"> |
6321 | <p>For more info see the <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">BIP44 spec</a></p> | 6327 | <p>For more info see the <a href="https://www.hivewallet.com/" target="_blank">Hive Wallet homepage</a></p> |
6322 | </div> | 6328 | </div> |
6323 | <div class="form-group"> | 6329 | <div class="form-group"> |
6324 | <label for="network-bip44" class="col-sm-2 control-label">Coin</label> | 6330 | <label for="hive-path" class="col-sm-2 control-label">BIP32 Derivation Path</label> |
6325 | <div class="col-sm-10"> | 6331 | <div class="col-sm-10"> |
6326 | <select id="network-bip44" class="network form-control"> | 6332 | <input id="hive-path" type="text" class="path form-control" value="m/0'/0" readonly="readonly"> |
6327 | <option value="bitcoin">Bitcoin</option> | ||
6328 | <option value="bitcoin-testnet">Bitcoin Testnet</option> | ||
6329 | <option value="litecoin">Litecoin</option> | ||
6330 | </select> | ||
6331 | </div> | 6333 | </div> |
6332 | </div> | 6334 | </div> |
6335 | </form> | ||
6336 | </div> | ||
6337 | <div id="mycelium" class="tab-pane"> | ||
6338 | <form class="form-horizontal" role="form"> | ||
6339 | <br> | ||
6340 | <div class="col-sm-2"></div> | ||
6341 | <div class="col-sm-10"> | ||
6342 | <p>For more info see the <a href="http://www.mycelium.com/" target="_blank">Mycelium Wallet homepage</a></p> | ||
6343 | </div> | ||
6344 | <div class="form-group"> | ||
6345 | <label for="mycelium-path" class="col-sm-2 control-label">BIP32 Derivation Path</label> | ||
6346 | <div class="col-sm-10"> | ||
6347 | <input id="mycelium-path" type="text" class="path form-control" value="m/44'/0'/0'/0" readonly="readonly"> | ||
6348 | </div> | ||
6349 | </div> | ||
6350 | </form> | ||
6351 | </div> | ||
6352 | <div id="bip44" class="tab-pane"> | ||
6353 | <form class="form-horizontal" role="form"> | ||
6354 | <br> | ||
6355 | <div class="col-sm-2"></div> | ||
6356 | <div class="col-sm-10"> | ||
6357 | <p>For more info see the <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">BIP44 spec</a></p> | ||
6358 | </div> | ||
6333 | <div class="form-group"> | 6359 | <div class="form-group"> |
6334 | <label for="purpose" class="col-sm-2 control-label"> | 6360 | <label for="purpose" class="col-sm-2 control-label"> |
6335 | <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a> | 6361 | <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target="_blank">Purpose</a> |
@@ -6409,17 +6435,6 @@ button.close { | |||
6409 | <div class="col-md-12"> | 6435 | <div class="col-md-12"> |
6410 | <h2>Derived Addresses</h2> | 6436 | <h2>Derived Addresses</h2> |
6411 | <p>Note these addreses are derived from the <strong>BIP32 Extended Key</strong></p> | 6437 | <p>Note these addreses are derived from the <strong>BIP32 Extended Key</strong></p> |
6412 | <div class="form-group"> | ||
6413 | <label for="network-address-type" class="col-sm-2 control-label">Coin</label> | ||
6414 | <div class="col-sm-10"> | ||
6415 | <select id="network-address-type" class="network form-control"> | ||
6416 | <option value="bitcoin">Bitcoin</option> | ||
6417 | <option value="bitcoin-testnet">Bitcoin Testnet</option> | ||
6418 | <option value="litecoin">Litecoin</option> | ||
6419 | <option value="dogecoin">Dogecoin</option> | ||
6420 | </select> | ||
6421 | </div> | ||
6422 | <div> | ||
6423 | <table class="table table-striped"> | 6438 | <table class="table table-striped"> |
6424 | <thead> | 6439 | <thead> |
6425 | <th> | 6440 | <th> |
@@ -6581,7 +6596,7 @@ button.close { | |||
6581 | <td class="privkey"><span></span></td> | 6596 | <td class="privkey"><span></span></td> |
6582 | </tr> | 6597 | </tr> |
6583 | </script> | 6598 | </script> |
6584 | <script> | 6599 | <script> |
6585 | /*! | 6600 | /*! |
6586 | * jQuery JavaScript Library v2.1.1 | 6601 | * jQuery JavaScript Library v2.1.1 |
6587 | * http://jquery.com/ | 6602 | * http://jquery.com/ |
@@ -15772,8 +15787,8 @@ if ( typeof noGlobal === strundefined ) { | |||
15772 | return jQuery; | 15787 | return jQuery; |
15773 | 15788 | ||
15774 | })); | 15789 | })); |
15775 | </script> | 15790 | </script> |
15776 | <script> | 15791 | <script> |
15777 | /*! | 15792 | /*! |
15778 | * Bootstrap v3.2.0 (http://getbootstrap.com) | 15793 | * Bootstrap v3.2.0 (http://getbootstrap.com) |
15779 | * Copyright 2011-2014 Twitter, Inc. | 15794 | * Copyright 2011-2014 Twitter, Inc. |
@@ -17888,8 +17903,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re | |||
17888 | }) | 17903 | }) |
17889 | 17904 | ||
17890 | }(jQuery); | 17905 | }(jQuery); |
17891 | </script> | 17906 | </script> |
17892 | <script> | 17907 | <script> |
17893 | (function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Bitcoin=e()}})(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);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.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(_dereq_,module,exports){ | 17908 | (function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Bitcoin=e()}})(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);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.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(_dereq_,module,exports){ |
17894 | var assert = _dereq_('assert') | 17909 | var assert = _dereq_('assert') |
17895 | 17910 | ||
@@ -32353,8 +32368,8 @@ module.exports = Wallet | |||
32353 | },{"./address":69,"./hdnode":78,"./networks":81,"./transaction":85,"assert":4,"buffer":8,"secure-random":68}]},{},[79]) | 32368 | },{"./address":69,"./hdnode":78,"./networks":81,"./transaction":85,"assert":4,"buffer":8,"secure-random":68}]},{},[79]) |
32354 | (79) | 32369 | (79) |
32355 | }); | 32370 | }); |
32356 | </script> | 32371 | </script> |
32357 | <script> | 32372 | <script> |
32358 | // Select components from sjcl to suit the crypto operations bip39 requires. | 32373 | // Select components from sjcl to suit the crypto operations bip39 requires. |
32359 | 32374 | ||
32360 | //// base.js | 32375 | //// base.js |
@@ -33414,11 +33429,9 @@ sjcl.hash.sha256.prototype = { | |||
33414 | h[7] = h[7]+h7 | 0; | 33429 | h[7] = h[7]+h7 | 0; |
33415 | } | 33430 | } |
33416 | }; | 33431 | }; |
33417 | </script> | 33432 | </script> |
33418 | <script> | 33433 | <script> |
33419 | WORDLISTS = {}; | 33434 | WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS; |
33420 | </script> | ||
33421 | <script> | ||
33422 | WORDLISTS["english"] = [ | 33435 | WORDLISTS["english"] = [ |
33423 | "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse", | 33436 | "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse", |
33424 | "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act", | 33437 | "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act", |
@@ -33625,8 +33638,8 @@ WORDLISTS["english"] = [ | |||
33625 | "wish","witness","wolf","woman","wonder","wood","wool","word","work","world", | 33638 | "wish","witness","wolf","woman","wonder","wood","wool","word","work","world", |
33626 | "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year", | 33639 | "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year", |
33627 | "yellow","you","young","youth","zebra","zero","zone","zoo"] | 33640 | "yellow","you","young","youth","zebra","zero","zone","zoo"] |
33628 | </script> | 33641 | </script> |
33629 | <script> | 33642 | <script> |
33630 | /* | 33643 | /* |
33631 | * Copyright (c) 2013 Pavol Rusnak | 33644 | * Copyright (c) 2013 Pavol Rusnak |
33632 | * | 33645 | * |
@@ -33836,8 +33849,8 @@ var Mnemonic = function(language) { | |||
33836 | init(); | 33849 | init(); |
33837 | 33850 | ||
33838 | } | 33851 | } |
33839 | </script> | 33852 | </script> |
33840 | <script> | 33853 | <script> |
33841 | (function() { | 33854 | (function() { |
33842 | 33855 | ||
33843 | var mnemonic = new Mnemonic("english"); | 33856 | var mnemonic = new Mnemonic("english"); |
@@ -33855,8 +33868,6 @@ var Mnemonic = function(language) { | |||
33855 | var DOM = {}; | 33868 | var DOM = {}; |
33856 | DOM.network = $(".network"); | 33869 | DOM.network = $(".network"); |
33857 | DOM.phraseNetwork = $("#network-phrase"); | 33870 | DOM.phraseNetwork = $("#network-phrase"); |
33858 | DOM.bip44Network = $("#network-bip44"); | ||
33859 | DOM.addressNetwork = $("#network-address-type"); | ||
33860 | DOM.phrase = $(".phrase"); | 33871 | DOM.phrase = $(".phrase"); |
33861 | DOM.passphrase = $(".passphrase"); | 33872 | DOM.passphrase = $(".passphrase"); |
33862 | DOM.generate = $(".generate"); | 33873 | DOM.generate = $(".generate"); |
@@ -33883,7 +33894,7 @@ var Mnemonic = function(language) { | |||
33883 | DOM.addressToggle = $(".address-toggle"); | 33894 | DOM.addressToggle = $(".address-toggle"); |
33884 | DOM.privateKeyToggle = $(".private-key-toggle"); | 33895 | DOM.privateKeyToggle = $(".private-key-toggle"); |
33885 | 33896 | ||
33886 | var derivationPath = DOM.bip44path.val(); | 33897 | var derivationPath = $(".tab-pane.active .path").val(); |
33887 | 33898 | ||
33888 | function init() { | 33899 | function init() { |
33889 | // Events | 33900 | // Events |
@@ -33913,30 +33924,21 @@ var Mnemonic = function(language) { | |||
33913 | if (n == "bitcoin") { | 33924 | if (n == "bitcoin") { |
33914 | network = Bitcoin.networks.bitcoin; | 33925 | network = Bitcoin.networks.bitcoin; |
33915 | DOM.bip44coin.val(0); | 33926 | DOM.bip44coin.val(0); |
33916 | setBip44DerivationPath(); | ||
33917 | enableBip44Tab(); | ||
33918 | } | 33927 | } |
33919 | else if (n == "bitcoin-testnet") { | 33928 | else if (n == "bitcoin-testnet") { |
33920 | network = Bitcoin.networks.testnet; | 33929 | network = Bitcoin.networks.testnet; |
33921 | DOM.bip44coin.val(1); | 33930 | DOM.bip44coin.val(1); |
33922 | setBip44DerivationPath(); | ||
33923 | enableBip44Tab(); | ||
33924 | } | 33931 | } |
33925 | else if (n == "litecoin") { | 33932 | else if (n == "litecoin") { |
33926 | network = Bitcoin.networks.litecoin; | 33933 | network = Bitcoin.networks.litecoin; |
33927 | DOM.bip44coin.val(2); | 33934 | DOM.bip44coin.val(2); |
33928 | setBip44DerivationPath(); | ||
33929 | enableBip44Tab(); | ||
33930 | } | 33935 | } |
33931 | else if (n == "dogecoin") { | 33936 | else if (n == "dogecoin") { |
33932 | network = Bitcoin.networks.dogecoin; | 33937 | network = Bitcoin.networks.dogecoin; |
33933 | //disableBip44Tab(); | 33938 | var UNOFFICIAL_BIP44_COIN = 9999; |
33934 | } | 33939 | DOM.bip44coin.val(UNOFFICIAL_BIP44_COIN); // This coin is not in BIP44 |
33935 | DOM.phraseNetwork.val(n); | ||
33936 | DOM.bip44Network.val(n); | ||
33937 | if(e.target != DOM.addressNetwork.dom){ | ||
33938 | DOM.addressNetwork.val(n); | ||
33939 | } | 33940 | } |
33941 | setBip44DerivationPath(); | ||
33940 | delayedPhraseChanged(); | 33942 | delayedPhraseChanged(); |
33941 | } | 33943 | } |
33942 | 33944 | ||
@@ -34250,31 +34252,9 @@ var Mnemonic = function(language) { | |||
34250 | .hide(); | 34252 | .hide(); |
34251 | } | 34253 | } |
34252 | 34254 | ||
34253 | function enableBip44Tab() { | ||
34254 | // show bip44 tab (but don't select it) | ||
34255 | DOM.bip44tab.removeClass("hidden"); | ||
34256 | DOM.bip44panel.removeClass("hidden"); | ||
34257 | } | ||
34258 | |||
34259 | function disableBip44Tab() { | ||
34260 | // hide bip44 tab | ||
34261 | DOM.bip44tab.addClass("hidden"); | ||
34262 | DOM.bip44tab.removeClass("active"); | ||
34263 | // hide bip44 panel | ||
34264 | DOM.bip44panel.addClass("hidden"); | ||
34265 | DOM.bip44panel.removeClass("active"); | ||
34266 | // show bip32 tab | ||
34267 | DOM.bip32tab.addClass("active"); | ||
34268 | // show bip32 panel | ||
34269 | DOM.bip32panel.addClass("active"); | ||
34270 | // set the derivation path | ||
34271 | var activePath = $("#bip32 .path"); | ||
34272 | derivationPath = activePath.val(); | ||
34273 | } | ||
34274 | |||
34275 | init(); | 34255 | init(); |
34276 | 34256 | ||
34277 | })(); | 34257 | })(); |
34278 | </script> | 34258 | </script> |
34279 | </body> | 34259 | </body> |
34280 | </html> | 34260 | </html> |