ADD: Refactor Aezeed wallet to use this.passphrase

This commit is contained in:
Ivan Vershigora 2021-07-07 10:52:42 +03:00
parent 5938a8f8c1
commit a70781180c
2 changed files with 15 additions and 8 deletions

View file

@ -21,7 +21,7 @@ export class HDAezeedWallet extends AbstractHDElectrumWallet {
setSecret(newSecret) { setSecret(newSecret) {
this.secret = newSecret.trim(); this.secret = newSecret.trim();
this.secret = this.secret.replace(/[^a-zA-Z0-9:]/g, ' ').replace(/\s+/g, ' '); this.secret = this.secret.replace(/[^a-zA-Z0-9]/g, ' ').replace(/\s+/g, ' ');
return this; return this;
} }
@ -56,9 +56,9 @@ export class HDAezeedWallet extends AbstractHDElectrumWallet {
} }
async validateMnemonicAsync() { async validateMnemonicAsync() {
const [mnemonic3, password] = this.secret.split(':'); const passphrase = this.getPassphrase() || 'aezeed';
try { try {
const cipherSeed1 = await CipherSeed.fromMnemonic(mnemonic3, password || 'aezeed'); const cipherSeed1 = await CipherSeed.fromMnemonic(this.secret, passphrase);
this._entropyHex = cipherSeed1.entropy.toString('hex'); // save cache this._entropyHex = cipherSeed1.entropy.toString('hex'); // save cache
return !!cipherSeed1.entropy; return !!cipherSeed1.entropy;
} catch (_) { } catch (_) {
@ -67,9 +67,9 @@ export class HDAezeedWallet extends AbstractHDElectrumWallet {
} }
async mnemonicInvalidPassword() { async mnemonicInvalidPassword() {
const [mnemonic3, password] = this.secret.split(':'); const passphrase = this.getPassphrase() || 'aezeed';
try { try {
const cipherSeed1 = await CipherSeed.fromMnemonic(mnemonic3, password || 'aezeed'); const cipherSeed1 = await CipherSeed.fromMnemonic(this.secret, passphrase);
this._entropyHex = cipherSeed1.entropy.toString('hex'); // save cache this._entropyHex = cipherSeed1.entropy.toString('hex'); // save cache
} catch (error) { } catch (error) {
return error.message === 'Invalid Password'; return error.message === 'Invalid Password';

View file

@ -11,8 +11,9 @@ describe('HDAezeedWallet', () => {
// correct pass: // correct pass:
aezeed.setSecret( aezeed.setSecret(
'able mix price funny host express lawsuit congress antique float pig exchange vapor drip wide cup style apple tumble verb fix blush tongue market:strongPassword', 'able mix price funny host express lawsuit congress antique float pig exchange vapor drip wide cup style apple tumble verb fix blush tongue market',
); );
aezeed.setPassphrase('strongPassword');
assert.ok(await aezeed.validateMnemonicAsync()); assert.ok(await aezeed.validateMnemonicAsync());
assert.ok(!(await aezeed.mnemonicInvalidPassword())); assert.ok(!(await aezeed.mnemonicInvalidPassword()));
@ -20,31 +21,37 @@ describe('HDAezeedWallet', () => {
aezeed.setSecret( aezeed.setSecret(
'able mix price funny host express lawsuit congress antique float pig exchange vapor drip wide cup style apple tumble verb fix blush tongue market', 'able mix price funny host express lawsuit congress antique float pig exchange vapor drip wide cup style apple tumble verb fix blush tongue market',
); );
aezeed.setPassphrase();
assert.ok(!(await aezeed.validateMnemonicAsync())); assert.ok(!(await aezeed.validateMnemonicAsync()));
assert.ok(await aezeed.mnemonicInvalidPassword()); assert.ok(await aezeed.mnemonicInvalidPassword());
// wrong pass: // wrong pass:
aezeed.setSecret( aezeed.setSecret(
'able mix price funny host express lawsuit congress antique float pig exchange vapor drip wide cup style apple tumble verb fix blush tongue market:badpassword', 'able mix price funny host express lawsuit congress antique float pig exchange vapor drip wide cup style apple tumble verb fix blush tongue market',
); );
aezeed.setPassphrase('badpassword');
assert.ok(!(await aezeed.validateMnemonicAsync())); assert.ok(!(await aezeed.validateMnemonicAsync()));
assert.ok(await aezeed.mnemonicInvalidPassword()); assert.ok(await aezeed.mnemonicInvalidPassword());
aezeed.setSecret( aezeed.setSecret(
'able concert slush lend olive cost wagon dawn board robot park snap dignity churn fiction quote shrimp hammer wing jump immune skill sunset west', 'able concert slush lend olive cost wagon dawn board robot park snap dignity churn fiction quote shrimp hammer wing jump immune skill sunset west',
); );
aezeed.setPassphrase();
assert.ok(await aezeed.validateMnemonicAsync()); assert.ok(await aezeed.validateMnemonicAsync());
assert.ok(!(await aezeed.mnemonicInvalidPassword())); assert.ok(!(await aezeed.mnemonicInvalidPassword()));
aezeed.setSecret( aezeed.setSecret(
'able concert slush lend olive cost wagon dawn board robot park snap dignity churn fiction quote shrimp hammer wing jump immune skill sunset west:aezeed', 'able concert slush lend olive cost wagon dawn board robot park snap dignity churn fiction quote shrimp hammer wing jump immune skill sunset west',
); );
aezeed.setPassphrase();
aezeed.setPassphrase('aezeed');
assert.ok(await aezeed.validateMnemonicAsync()); assert.ok(await aezeed.validateMnemonicAsync());
assert.ok(!(await aezeed.mnemonicInvalidPassword())); assert.ok(!(await aezeed.mnemonicInvalidPassword()));
aezeed.setSecret( aezeed.setSecret(
'abstract rhythm weird food attract treat mosquito sight royal actor surround ride strike remove guilt catch filter summer mushroom protect poverty cruel chaos pattern', 'abstract rhythm weird food attract treat mosquito sight royal actor surround ride strike remove guilt catch filter summer mushroom protect poverty cruel chaos pattern',
); );
aezeed.setPassphrase();
assert.ok(await aezeed.validateMnemonicAsync()); assert.ok(await aezeed.validateMnemonicAsync());
assert.ok(!(await aezeed.mnemonicInvalidPassword())); assert.ok(!(await aezeed.mnemonicInvalidPassword()));