mirror of
https://github.com/OneKeyHQ/bip39.git
synced 2026-04-05 18:43:47 +00:00
Make seed field editable
This commit is contained in:
@@ -221,7 +221,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="seed" class="col-sm-2 control-label">BIP39 Seed</label>
|
<label for="seed" class="col-sm-2 control-label">BIP39 Seed</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<textarea id="seed" class="seed private-data form-control" readonly="readonly" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
|
<textarea id="seed" class="seed private-data form-control" data-show-qr autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
var entropyTypeAutoDetect = true;
|
var entropyTypeAutoDetect = true;
|
||||||
var entropyChangeTimeoutEvent = null;
|
var entropyChangeTimeoutEvent = null;
|
||||||
var phraseChangeTimeoutEvent = null;
|
var phraseChangeTimeoutEvent = null;
|
||||||
|
var seedChangedTimeoutEvent = null;
|
||||||
var rootKeyChangedTimeoutEvent = null;
|
var rootKeyChangedTimeoutEvent = null;
|
||||||
|
|
||||||
var generationProcesses = [];
|
var generationProcesses = [];
|
||||||
@@ -135,6 +136,7 @@
|
|||||||
DOM.passphrase.on("input", delayedPhraseChanged);
|
DOM.passphrase.on("input", delayedPhraseChanged);
|
||||||
DOM.generate.on("click", generateClicked);
|
DOM.generate.on("click", generateClicked);
|
||||||
DOM.more.on("click", showMore);
|
DOM.more.on("click", showMore);
|
||||||
|
DOM.seed.on("input", delayedSeedChanged);
|
||||||
DOM.rootKey.on("input", delayedRootKeyChanged);
|
DOM.rootKey.on("input", delayedRootKeyChanged);
|
||||||
DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
|
DOM.litecoinUseLtub.on("change", litecoinUseLtubChanged);
|
||||||
DOM.bip32path.on("input", calcForDerivationPath);
|
DOM.bip32path.on("input", calcForDerivationPath);
|
||||||
@@ -340,6 +342,30 @@
|
|||||||
entropyChanged();
|
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() {
|
function delayedRootKeyChanged() {
|
||||||
// Warn if there is an existing mnemonic or passphrase.
|
// Warn if there is an existing mnemonic or passphrase.
|
||||||
if (DOM.phrase.val().length > 0 || DOM.passphrase.val().length > 0) {
|
if (DOM.phrase.val().length > 0 || DOM.passphrase.val().length > 0) {
|
||||||
@@ -361,6 +387,22 @@
|
|||||||
rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged, 400);
|
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() {
|
function rootKeyChanged() {
|
||||||
showPending();
|
showPending();
|
||||||
hideValidationError();
|
hideValidationError();
|
||||||
|
|||||||
@@ -4336,4 +4336,17 @@ it('Allows entropy type to be manually selected', function(done) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 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();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user