From a362ff2f626b8dbf0302c1d55a55ccd3ee2da221 Mon Sep 17 00:00:00 2001 From: Ian Coleman Date: Fri, 12 Feb 2021 23:33:19 +0000 Subject: [PATCH] Pad eth private keys correctly Fixes #469 --- src/js/index.js | 2 +- tests/spec/tests.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) 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(); + }); + }) + }); +}); + }); -- 2.41.0