aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Coleman <coleman.ian@gmail.com>2014-10-13 12:08:14 +1100
committerIan Coleman <coleman.ian@gmail.com>2014-10-13 12:08:14 +1100
commitdc55c6b063a1f9d1fa8677d82a77ce53b0cecce5 (patch)
tree521a77d68adcc92a05ef5d9c29634ffefef6ce10
parentbae07be32bebd2185d65a2e66f080f1b12ee8810 (diff)
downloadBIP39-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.html150
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 ) {
15772return jQuery; 15787return 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){
17894var assert = _dereq_('assert') 17909var 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>
33419WORDLISTS = {}; 33434WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
33420 </script>
33421 <script>
33422WORDLISTS["english"] = [ 33435WORDLISTS["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>