From 0fff0d1560fce8ef5d39bf61cc72faecc27b53fc Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 12 Nov 2020 22:43:11 +0800 Subject: [PATCH] Fix #919. Gen consistent privateKey with other eth libs (#1259) * Fix #919. Gen consistent privateKey with others. * Fix format issues. * Fix format issues with spotlessJavaApply Co-authored-by: mawenpeng --- .../main/java/org/web3j/crypto/Bip44WalletUtils.java | 4 ++-- .../java/org/web3j/crypto/Bip44WalletUtilsTest.java | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/web3j/crypto/Bip44WalletUtils.java b/core/src/main/java/org/web3j/crypto/Bip44WalletUtils.java index e0d2876336..c0c3d39aad 100644 --- a/core/src/main/java/org/web3j/crypto/Bip44WalletUtils.java +++ b/core/src/main/java/org/web3j/crypto/Bip44WalletUtils.java @@ -70,8 +70,8 @@ public static Bip32ECKeyPair generateBip44KeyPair(Bip32ECKeyPair master, boolean final int[] path = {44 | HARDENED_BIT, 0 | HARDENED_BIT, 0 | HARDENED_BIT, 0}; return Bip32ECKeyPair.deriveKeyPair(master, path); } else { - // m/44'/60'/0'/0 - final int[] path = {44 | HARDENED_BIT, 60 | HARDENED_BIT, 0 | HARDENED_BIT, 0}; + // m/44'/60'/0'/0/0 + final int[] path = {44 | HARDENED_BIT, 60 | HARDENED_BIT, 0 | HARDENED_BIT, 0, 0}; return Bip32ECKeyPair.deriveKeyPair(master, path); } } diff --git a/core/src/test/java/org/web3j/crypto/Bip44WalletUtilsTest.java b/core/src/test/java/org/web3j/crypto/Bip44WalletUtilsTest.java index 2b64a7e7dc..e8b2506fd5 100644 --- a/core/src/test/java/org/web3j/crypto/Bip44WalletUtilsTest.java +++ b/core/src/test/java/org/web3j/crypto/Bip44WalletUtilsTest.java @@ -60,11 +60,18 @@ public void generateBip44KeyPair() { Bip32ECKeyPair bip44Keypair = Bip44WalletUtils.generateBip44KeyPair(masterKeypair); assertEquals( - "xprv9zvpunws9gusoXVkmqAXWQm5z5hjR5kY3ifRGL7M8Kpjn8kRhavkGnFLjnFWPGGS2gAUw8rP33Lmj6SwZUpwy2mn2fXRYWzGa9WRTnE8DPz", + "xprvA3p5nTrBJcdEvUQAK64rZ4oJTwsTiMg7JQrqNh6JNWe3VUW2tcLb7GW1wj1fNDAoymUTSFERZ2LxPxJNmqoMZPs9y3TMNMuBN8MS9eigoWq", Base58.encode(addChecksum(serializePrivate(bip44Keypair)))); assertEquals( - "xpub6DvBKJUkz4UB21aDsrhXsYhpY7YDpYUPQwb24iWxgfMiew5aF8EzpaZpb567bYYbMfUnPwFNuRYvVpMGQUcaGPMoXUEUZKFvx7LaU5b7zBD", + "xpub6GoSByP58zBY8xUdR7brvCk31yhx7pPxfdnSB5VuvrB2NGqBS9eqf4pVo1xev4GEmip5Wuky9KUtJVxq4fvYfFchS6SA6C4cCRyQkLqNNjq", Base58.encode(addChecksum(serializePublic(bip44Keypair)))); + + Credentials credentials = + Bip44WalletUtils.loadBip44Credentials( + "", mnemonic); // Verify address according to https://iancoleman.io/bip39/ + assertEquals( + "0xece62451ca8fba33746d6dafd0d0ebdef84778b7", + credentials.getAddress().toLowerCase()); } @Test