一、需要的依赖
<dependency>
<groupId>org.bitcoinj</groupId>
<artifactId>bitcoinj-core</artifactId>
<version>0.16.1</version>
<dependency>
<!-- https://mvnrepository.com/artifact/org.scala-js/scalajs-java-securerandom -->
<dependency>
<groupId>org.scala-js</groupId>
<artifactId>scalajs-java-securerandom_sjs1_2.13</artifactId>
<version>1.0.0</version>
</dependency>
二、代码
- 先设定一个Path路径
private final static ImmutableList<ChildNumber> BIP44_ETH_ACCOUNT_ZERO_PATH =
ImmutableList.of(new ChildNumber(44, true), new ChildNumber(195, true),
ChildNumber.ZERO_HARDENED, ChildNumber.ZERO);
波场的Path路径是----m/44’/195
如果想创建什么网络账户,就去这个网址查一下,可以找到相应的Path路径
https://github.com/satoshilabs/slips/blob/master/slip-0044.md
- 编写生成助记词
@Test
void activateaccount() {
SecureRandom secureRandom=new SecureRandom();
byte[] bytes=new byte[DeterministicSeed.DEFAULT_SEED_ENTROPY_BITS / 8];
secureRandom.engineNextBytes(bytes);
try {
List<String> stringList= MnemonicCode.INSTANCE.toMnemonic(bytes);
System.out.println(stringList);
byte[] seed = MnemonicCode.toSeed(stringList, "");
DeterministicKey masterPrivateKey = HDKeyDerivation.createMasterPrivateKey(seed);
DeterministicHierarchy deterministicHierarchy = new DeterministicHierarchy(masterPrivateKey);
DeterministicKey deterministicKey = deterministicHierarchy
.deriveChild(BIP44_ETH_ACCOUNT_ZERO_PATH, false, true, new ChildNumber(0));
byte[] byte2 = deterministicKey.getPrivKeyBytes();
SECP256K1.PrivateKey privateKey= SECP256K1.PrivateKey.create(Bytes32.wrap(byte2));
SECP256K1.KeyPair keyPair2= SECP256K1.KeyPair.create(privateKey);
KeyPair keyPair1=new KeyPair(keyPair2);
System.out.println(keyPair1.toPrivateKey());
System.out.println(keyPair1.toHexAddress());
System.out.println(keyPair1.toBase58CheckAddress());
} catch (MnemonicException.MnemonicLengthException e) {
throw new RuntimeException(e);
}
}
三、输出结果


1万+

被折叠的 条评论
为什么被折叠?



