aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Coleman <coleman.ian@gmail.com>2016-11-07 11:51:12 +1100
committerIan Coleman <coleman.ian@gmail.com>2016-11-07 13:16:47 +1100
commit057722b034672d240eea2ff01a7a5a01a4706e00 (patch)
treedaf3832605dadb2e9403468570447d8a54562a20 /src
parent52e6eb81c8e464e12cea1ffc75104ca726daaa1a (diff)
downloadBIP39-057722b034672d240eea2ff01a7a5a01a4706e00.tar.gz
BIP39-057722b034672d240eea2ff01a7a5a01a4706e00.tar.zst
BIP39-057722b034672d240eea2ff01a7a5a01a4706e00.zip
Blank entropy does not generate addresses
Diffstat (limited to 'src')
-rw-r--r--src/js/index.js36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/js/index.js b/src/js/index.js
index cd7f281..1cc77d3 100644
--- a/src/js/index.js
+++ b/src/js/index.js
@@ -109,6 +109,7 @@
109 DOM.entropyContainer.addClass("hidden"); 109 DOM.entropyContainer.addClass("hidden");
110 DOM.generateContainer.removeClass("hidden"); 110 DOM.generateContainer.removeClass("hidden");
111 DOM.phrase.prop("readonly", false); 111 DOM.phrase.prop("readonly", false);
112 hidePending();
112 } 113 }
113 } 114 }
114 115
@@ -149,8 +150,31 @@
149 } 150 }
150 151
151 function entropyChanged() { 152 function entropyChanged() {
153 // If blank entropy, clear mnemonic, addresses, errors
154 if (DOM.entropy.val().trim().length == 0) {
155 clearDisplay();
156 hideEntropyError();
157 DOM.phrase.val("");
158 showValidationError("Blank entropy");
159 return;
160 }
161 // Get the current phrase to detect changes
162 var phrase = DOM.phrase.val();
163 // Set the phrase from the entropy
152 setMnemonicFromEntropy(); 164 setMnemonicFromEntropy();
153 phraseChanged(); 165 // Recalc addresses if the phrase has changed
166 var newPhrase = DOM.phrase.val();
167 if (newPhrase != phrase) {
168 if (newPhrase.length == 0) {
169 clearDisplay();
170 }
171 else {
172 phraseChanged();
173 }
174 }
175 else {
176 hidePending();
177 }
154 } 178 }
155 179
156 function delayedRootKeyChanged() { 180 function delayedRootKeyChanged() {
@@ -311,10 +335,13 @@
311 } 335 }
312 336
313 function findPhraseErrors(phrase) { 337 function findPhraseErrors(phrase) {
314 // TODO make this right
315 // Preprocess the words 338 // Preprocess the words
316 phrase = mnemonic.normalizeString(phrase); 339 phrase = mnemonic.normalizeString(phrase);
317 var words = phraseToWordArray(phrase); 340 var words = phraseToWordArray(phrase);
341 // Detect blank phrase
342 if (words.length == 0) {
343 return "Blank mnemonic";
344 }
318 // Check each word 345 // Check each word
319 for (var i=0; i<words.length; i++) { 346 for (var i=0; i<words.length; i++) {
320 var word = words[i]; 347 var word = words[i];
@@ -701,10 +728,11 @@
701 728
702 function setMnemonicFromEntropy() { 729 function setMnemonicFromEntropy() {
703 hideEntropyError(); 730 hideEntropyError();
704 // Work out minimum base for entropy 731 // Get entropy value
705 var entropyStr = DOM.entropy.val(); 732 var entropyStr = DOM.entropy.val();
733 // Work out minimum base for entropy
706 var entropy = Entropy.fromString(entropyStr); 734 var entropy = Entropy.fromString(entropyStr);
707 if (entropy.hexStr.length == 0) { 735 if (entropy.binaryStr.length == 0) {
708 return; 736 return;
709 } 737 }
710 // Show entropy details 738 // Show entropy details