Merge pull request #522 from secinthenet/fix-seed-only-coin-switch2

fix "blank mnemonic" errors when using only seed
This commit is contained in:
iancoleman
2021-10-08 14:17:01 +11:00
committed by GitHub
2 changed files with 25 additions and 9 deletions

View File

@@ -217,7 +217,7 @@
network.onSelect();
adjustNetworkForSegwit();
if (seed != null) {
phraseChanged();
seedChanged()
}
else {
rootKeyChanged();
@@ -232,12 +232,7 @@
else {
DOM.bip32path.prop("readonly", true);
clients[clientIndex].onSelect();
if (seed != null) {
phraseChanged();
}
else {
rootKeyChanged();
}
rootKeyChanged();
}
}
@@ -491,7 +486,9 @@
else {
network = libs.bitcoin.networks.litecoinXprv;
}
phraseChanged();
// Can't use rootKeyChanged because validation will fail as we changed
// the network but the version bytes stayed as previously.
seedChanged();
}
function toggleSplitMnemonic() {
@@ -637,7 +634,7 @@
}
function bitcoinCashAddressTypeChange() {
phraseChanged();
rootKeyChanged();
}
function toggleIndexes() {

View File

@@ -3076,6 +3076,25 @@ it('Uses the correct derivation for altcoins with root keys', function(done) {
});
});
// Changing the coin when only using a seed (without a mnemonic phrase) should
// work the same as the previous test.
// See https://github.com/iancoleman/bip39/pull/486
it('Uses the correct derivation for altcoins with seed and without mnemonic phrase', function(done) {
driver.findElement(By.css('.seed'))
.sendKeys("20da140d3dd1df8713cefcc4d54ce0e445b4151027a1ab567b832f6da5fcc5afc1c3a3f199ab78b8e0ab4652efd7f414ac2c9a3b81bceb879a70f377aa0a58f3");
driver.sleep(generateDelay).then(function() {
// 4) switch from bitcoin to viacoin
selectNetwork("VIA - Viacoin");
driver.sleep(generateDelay).then(function() {
// 5) ensure the derived address is correct
getFirstAddress(function(address) {
expect(address).toBe("Vq9Eq4N5SQnjqZvxtxzo7hZPW5XnyJsmXT");
done();
});
});
});
});
// Selecting a language with no existing phrase should generate a phrase in
// that language.
it('Generate a random phrase when language is selected and no current phrase', function(done) {