比特币钱包开发:新建子账号与导出子账号私钥

当前位置:首页 > 币圈百科 > 比特币钱包开发:新建子账号与导出子账号私钥

比特币钱包开发:新建子账号与导出子账号私钥

2023-01-17币圈百科231

Target

获取钱包子帐户地址

获取钱包余额

获取BTC测试货币

创建新的钱包子帐户地址

导出子帐户私钥

前言

1 .获取钱包的子账户地址

余额会在每次交易时转移到一个新的子地址,交易会通过新的子地址生成。这样做的目的是为了提高帐户的安全性。同样,接受他人转账时,最好提供新的子账户地址来接受。那我们先获取钱包的子账户地址。

为获取bitcore-wallet-client库中的子账户地址而提供的API是getMainAddresses()方法。您可以检查特定参数的文档细节,我们不需要在这里传递参数。例子如下

?输出如下

c8d7b 051-47 E4-402d-B053-2b7e 512722 cf

注意:必须使用import()方法解锁钱包。C8D7B051-47E4-402D-B053-2B7E512722CF蓑衣网小编2022

返回的数据地址是一个数组,元素是帐户地址对象。wallet1钱包目前只有一个word账户地址,路径为“m/0/0”,地址为“移动F5 KCAS 5ZL WU9CGW TW3G H25CIC 51kqz”。

二获取钱包余额

bit core-wallet-client库中为获取钱包余额提供的API是getBalance()方法。您可以查看特定参数的文档细节,这里我们不需要传递参数。示例如下

。输出如下

c 0ed 20 de-93 C1-44 蓑衣网小编2022 F6-BD8F-15115 e 62 e 56 b

返回的数据是一个对象,包含以下连字符

C0ED20DE-93C1-44F6-BD8F-15115E62E56BtotalAmount:总余额。

lockedAmount:锁定余额。

totalConfirmedAmount:所有确认的余额。

锁定确认金额:锁定余额。

可用数量:可用余额。

可用确认金额:可用确认余额。

byAddress:金额来自哪个子地址?它是一个数组,元素是对象,包含的字用

地址来断:地址有余额。

path:这个地址的路径。

amount:该地址拥有的余额。

从输出中可以看到,余额为0。我怎样才能得到BTC天平?

BTC可以通过以下方式在主网获得:

提供自己的任意子账号地址,通过他人转账获得。

通过钱包应用中的货币交易获得。

通过BTC在交易所获得。

BTC在考网可以通过以下方式获得:

提供自己的任意子账号地址,通过他人转账获得。

去coins水龙头网站获得BTC测试硬币。

测试网的第二种方式“从coins龙头网站获取BTC测试币”在下面介绍,第一种方式在下一章介绍。第三部分。求BTC测试币

在开发过程中,需要有BTC平衡,方便开发和测试,而且测试是在正规网络中进行的,传送需要气,速度慢,所以我们会在测试网络中开发和测试。调试成功后,将网络类型替换为“livenet”即可切换到比特币官方网络。

第一步:打开coin水龙头网站,如下图

76f 1075 f-FF34-4c f1-AFAE-75 c 49 fc 9545

第二步:说说上面解锁的钱包“wallet1”的地址。

8 a 461 cf 6-698 f-4b7b-92 F9-82c 73387006 e

第三步:验证码通过后,会提示货币已经转账到指定账户地址,然后这个IP地址需要12个小时才能再次获得BTC测试货币。

76F1075F-FF34-4CF1-AFAE-75C49FCC9545

b7b 5d 886-C952-473d-815 b-ce 5a 10 bb 6082

第四步:我们再次运行代码,获取钱包余额,输出如下。[X][X][X]3c 9 FB 67-7861-4d 27-860d-FEBC 8d 3 e 3a 59[X]可以看到,账号“Move F5 KCAS 5ZL Wu 9 cgw TW3G h 25 CIC 51k qz”的可用余额为12121737。

8A461CF6-698F-4B7B-92F9-82C73387006E注:代码中的比特币余额是以Satoshi单位计算和传输的,所以我们在前端显示时需要换算成BTC单位,进位数为10 ^ 8。 所以这个账户目前的余额是0.12121737BTC.

四、给钱包新建一个子账户地址B7B5D886-C952-473D-815B-CE5A10BB6082

到目前为止,我们的钱包只有一个子账户地址。为了获得更多的子账户地址,我们应该获得路径“m/0/1”和“m/0/2”.“m/0/2 31。让我们看看它的完整实现。

3C9FFB67-7861-4D27-860D-FEBC8D3E3A59

输出如下

e 79 CB 8 b 4-39AA-4ed 8-97DD-4 B3 db 718 e2a

再次为wallet1 wallet创建一个子账户地址,因为只为这个wallet创建了路径“m/0/0”的地址。

我们再核对一下这个钱包的子账户地址和余额。

E79CB8B4-39AA-4ED8-97DD-4AB3DB718E2A可以看出,0.12121737BTC的钱包余额仍然归第一个账户所有,有两个子账户地址,分别是“m/0/0”和“m/0/1”。

验证2:使用助记符转换网站

然后打开助记符转换网站验证wallet1钱包。它的助记符是“同一个地铁开发趣味图书馆沙雨汉堡船楼层定义”,它的密码是“1234qwer”。

2be 72 ba 3-CB F4-46fc-a195-f 51388 ef 8 fc 8

可以看出结果与规范一致。

五、导出子账户私钥

现在我们来导出钱包“wallet1”中“m/0/1”路径的私钥。需要通过credentials authentication对象调用getDerivedXPrivKey()方法获取derivedXPrivKey,然后通过path获取指定账户的keyPair,这样keyPair中就有了私钥。

?输出如下2BE72BA3-CBF4-46FC-A195-F51388EF8FC8

40b 18343-5b 78-4a 70-9ce 8-f 5c 2e 60 b 5782

根据输出,我们可以看到已经成功获取了“m/0/1”路径的私钥、公钥和地址数据,这也与助记符转换网站的数据一致。

六。完整源代码

1。controllers/wallet.js

编辑controllers文件夹下的wallet.js文件,实现获取钱包子账户地址、获取钱包余额、创建钱包子账户地址、导出子账户私钥的功能。

40B18343-5B78-4A70-9CE8-F5C2E60B5782

2。controllers/web.js

编辑controllers文件夹下的web.js文件,后端实现返回钱包账户详情页面。

?七。项目运营效果

786 e 6166-Fa63-4b 85-9486-6e 71 c8 CDC 8[X]项目来源Github地址[X][X]版权声明:博客中的文章归博主所有,未经授权禁止转载。请联系作者(微信

未经授权禁止转载和改编。转载请注明出处!

比特币钱包开发:新建子账号与导出子账号私钥 | 分享给朋友: