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