分层确定性钱包 HD Wallet 钱包归集

魏书
2023-12-01

分层确定性的概念早在 BIP32 提案提出。根据比特币核心开发者 Gregory Maxwell 的原始描述和讨论,Pieter Wuille 在2012 年 02月 11日整理完善提交 BIP32, 后续的BIP43 、 BIP34 、BIP44的规则使得 HD 钱包非常强大,用户只需要保存一个种子,就能控制所有币种,所有账户的钱包。具体可以查看(https://github.com/bitcoin/bips)

很多交易所都使用HD 钱包做为冷钱包,每新加入一个用户通过HD公钥生成一个地址,因此也需要多散落在分散HD 地址里的地址进行归集。

国内企业钱包服务商 ET 钱包开源了他们的归集工具,本文他们的代码为蓝本讲解。

相关代码在 https://github.com/etwallet/etpay 的etPayCollects 目录下

首先讲解ETH 以及Erc20代币的归集
1.准备gas费用
Erc 20的归集需要支付gas费用,具体根据实际情况让相应地址里有对应的eth 即可。

2.通过助记词生成私钥。
EthUtils 工具类里面 调用静态类函数getPrivateKeyByMnemonicCode
就可以实现

3.构建交易
EthUtils 调用静态类函数createEthTx 根据传入进来的地址 金额 gas费用等 调用ethereumj 组成交易(在组交易的过程中需要到eth节点获取一个once)

4.签名交易

5.广播交易到 eth网络
Erc20 的代币归集类似 具体封装在EthTokenUtils 有需要的童鞋可以参考一下。

 类似资料: