From: Ian Coleman Date: Fri, 12 Feb 2021 23:33:19 +0000 (+0000) Subject: Pad eth private keys correctly X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FBIP39.git;a=commitdiff_plain;h=a362ff2f626b8dbf0302c1d55a55ccd3ee2da221 Pad eth private keys correctly Fixes #469 --- diff --git a/src/js/index.js b/src/js/index.js index 96fc451..c502208 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -1238,7 +1238,7 @@ address = libs.ethUtil.addHexPrefix(checksumAddress); pubkey = libs.ethUtil.addHexPrefix(pubkey); if (hasPrivkey) { - privkey = libs.ethUtil.bufferToHex(keyPair.d.toBuffer()); + privkey = libs.ethUtil.bufferToHex(keyPair.d.toBuffer(32)); } } //TRX is different diff --git a/tests/spec/tests.js b/tests/spec/tests.js index 10575ef..d57b753 100644 --- a/tests/spec/tests.js +++ b/tests/spec/tests.js @@ -5122,4 +5122,26 @@ it('Generates ethereum addresses from a public key', function(done) { }); }); +// https://github.com/iancoleman/bip39/issues/469 +fit('Generates ethereum private keys with the correct padding', function(done) { + var phrase = "flip vicious divorce angle toward say derive blue refuse load word creek once expire bounce"; + let withoutPadding = "0x53121fc5d193e623d2dbf43b2a96640bbed16bd530947fff8dda12f1aec828"; + let withPadding = "0x0053121fc5d193e623d2dbf43b2a96640bbed16bd530947fff8dda12f1aec828"; + let skIndex = 15; + driver.findElement(By.css('.phrase')) + .sendKeys(phrase); + selectNetwork('ETH - Ethereum'); + driver.sleep(generateDelay).then(function() { + driver.findElements(By.css(".privkey")) + .then(function(els) { + els[skIndex].getText() + .then(function(sk) { + expect(sk).toBe(withPadding); + expect(sk).not.toBe(withoutPadding); + done(); + }); + }) + }); +}); + });