var entropyTypeAutoDetect = true;
var entropyChangeTimeoutEvent = null;
var phraseChangeTimeoutEvent = null;
+ var seedChangedTimeoutEvent = null;
var rootKeyChangedTimeoutEvent = null;
var generationProcesses = [];
DOM.passphrase.on("input", delayedPhraseChanged);
DOM.generate.on("click", generateClicked);
DOM.more.on("click", showMore);
+ DOM.seed.on("input", delayedSeedChanged);
DOM.rootKey.on("input", delayedRootKeyChanged);
DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
DOM.bip32path.on("input", calcForDerivationPath);
entropyChanged();
}
+ function delayedSeedChanged() {
+ // Warn if there is an existing mnemonic or passphrase.
+ if (DOM.phrase.val().length > 0 || DOM.passphrase.val().length > 0) {
+ if (!confirm("This will clear existing mnemonic and passphrase")) {
+ DOM.seed.val(seed);
+ return
+ }
+ }
+ hideValidationError();
+ showPending();
+ // Clear existing mnemonic and passphrase
+ DOM.phrase.val("");
+ DOM.phraseSplit.val("");
+ DOM.passphrase.val("");
+ DOM.rootKey.val("");
+ clearAddressesList();
+ clearDerivedKeys();
+ seed = null;
+ if (seedChangedTimeoutEvent != null) {
+ clearTimeout(seedChangedTimeoutEvent);
+ }
+ seedChangedTimeoutEvent = setTimeout(seedChanged, 400);
+ }
+
function delayedRootKeyChanged() {
// Warn if there is an existing mnemonic or passphrase.
if (DOM.phrase.val().length > 0 || DOM.passphrase.val().length > 0) {
rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged, 400);
}
+ function seedChanged() {
+ showPending();
+ hideValidationError();
+ seed = DOM.seed.val();
+ bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
+ var rootKeyBase58 = bip32RootKey.toBase58();
+ DOM.rootKey.val(rootKeyBase58);
+ var errorText = validateRootKey(rootKeyBase58);
+ if (errorText) {
+ showValidationError(errorText);
+ return;
+ }
+ // Calculate and display
+ calcForDerivationPath();
+ }
+
function rootKeyChanged() {
showPending();
hideValidationError();
});
});
+// https://github.com/iancoleman/bip39/issues/388
+// Make field for bip39 seed editable
+it('Generates addresses when seed is set', function(done) {
+ driver.findElement(By.css('.seed'))
+ .sendKeys("20da140d3dd1df8713cefcc4d54ce0e445b4151027a1ab567b832f6da5fcc5afc1c3a3f199ab78b8e0ab4652efd7f414ac2c9a3b81bceb879a70f377aa0a58f3");
+ driver.sleep(generateDelay).then(function() {
+ getFirstAddress(function(address) {
+ expect(address).toBe("1Di3Vp7tBWtyQaDABLAjfWtF6V7hYKJtug");
+ done();
+ });
+ });
+});
+
});