位置:芙蓉财经网 >> 区块链

小蚁NEO钱包账户创建原理分析

2023年06月29日 13:01

蚂蚁新区块链钱包账号

钱包账号

neo钱包主要包括地址、私钥、公钥、脚本hash和wif。两者之间存在一定的转换关系:NEPWIFPrivate=

public=

脚本哈希地址不是开玩笑的。唐';除了地址,不告诉任何人,地址类似于银行卡号。,当其他人想要向您

转账以创建钱包帐户

时,会使用该帐户。

从"@cityofzion/neon-js"导入{wallet};/***根据通行证酶生产一个新的新的账号*@param{*}通行阶段*@param{*}确认通行阶段*@param{*}wif*/export函数createWalletAccount(passphase:string,confirmPassphase:string,wif?字符串):WalletAccount{if(passphase!==confirmPassphase)返回nullvar账户=新钱包.账户(wif||钱包。generateprivatekey());const加密wif=wallet。加密(帐户.WIF,通相);constresult:walletaccount={address:account。地址,私有密钥:帐户.私有密钥,公共密钥:帐户.公共密钥,脚本哈希:帐户.脚本哈希,WIF:帐户.WIF,encryptedWIF,passphase,}返回结果;}

创建钱包账户的单元测试

通过jest创建钱包的方法的单元测试(';创建钱包帐户';()=

{常量传递相位=';123456'constaccount=createWalletAccount(通行阶段,通行阶段);console.log(账号);expect(account.address!==null).托比(真);});运行结果如下所示,这是当前生成的帐户信息。您可以尝试使用新钱包登录。。{地址:';aumgtjsw3KBrca7pobynaonztgmnoqznly';私有密钥:';10bb026b4015c481f0b5142aa5de36de40a99fc8c26e956011a3f820f7708FBA';公钥:';03af2ad8725c4926632d6816f5502d8f749dec9AFAdfe0bb5AC697Fe22a0ef77';脚本哈希:'a8f677c132f82d73ff138e8e8e784c25ab068a';WIF:';kwnetpm2M8WTA3qyvdvlf3vpfg77njhxr2qyi8umwk

转换

如上所述,钱包中的数据之间存在一定的转换关系。至于相互转化的详细原理,就先不讨论了。我们可以用neon-js的相关API来看看是否转换正确。.Nepwiffprivate=

public=

Anewjtestunittestfilecore.Specification.js

iscreatedbelowthescripthashaddress.

privatekey到publickey的转换

这里,上面生成的测试账号用于测试。注意,测试账号后我不会再用,所以暴露了。如果是你的个人账户,请不要';不要暴露WIF和私钥。。单元测试代码如下:从"@cityofzion/neon-js"导入{wallet};测试(';private:10bb026b4015c481f0b5142aa5de36de40a99fc8c26e956011a3f820f7708FBAgetPUb_Key';()=

{constpubKey=wallet。getpublickeyfromprivatekey(';10bb026b4015c481f0b5142aa5de36de40a99fc8c26e956011a3f820f7708FBA);期待(公钥).toBe(';03af2ad8725c4926632d6816f5502d8f749dec369afadfe0bb5AC697Fe22a0ef77));});使用命令运行单元测试:国家预防机制运行测试__test__/neo/Core.spec.js运行结果:

[XY002][XY001]allconversions

dievollstndigeumwandlunistwiefolgt:import{wallet}from'@cityofzion/neon-js'Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:EditEdit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit:Edit://WIFprivateKeytest('WIFprivateKey'()=

{constwif=wallet.getwiffromprivatekey(walletaccount.privatekey);expect(WIF)be(walletaccount)WIFI);constprivatekey=wallet.getprivatekeyfromwif(walletaccount).WIFI);Expect(privateKey)为(walletaccount.privatekey););//privateKey=

公钥测试(`私钥=

公钥:${钱包账户。私钥}`),()=

{constpubKey=wallet。getpublickeyfromprivatekey(钱包帐户。privatekey);期待(公钥).toBe(钱包账户。公钥);});//publicKey=

脚本哈希测试(`公钥=

脚本哈希:${钱包帐户。公钥}`),()=

{常量脚本哈希=wallet。getscripthashfrompublickey(钱包帐户。公钥);期望(scriptHash).toBe(钱包账户。脚本哈希);});//脚本哈希地址测试(';脚本哈希地址';()=

{常量地址=钱包。getaddressfromscripthash(钱包帐户。脚本哈希);期望(地址)。toBe(钱包账户。地址);const脚本哈希=wallet。getscripthashfromaddress(钱包帐户。地址);期望(scriptHash).toBe(钱包账户。脚本哈希);});

总结

如上所述,主要讲解neo账户的创建以及账户各字段之间的转换关系。本文使用的api是neon-js,是github社区中coz开放的neowalletapi。,里面包含了钱包开发的所有API,我觉得是学习钱包的好材料。当然,neo-gui和neo-cli也是开源的,使用它们的源代码就可以学习,但是相对于C#,对于开发跨平台的应用来说是非常重要的。我更喜欢基于电子的解决方案。为了学习如何开发neowallet,我构建了一个电子样板作为快速入门的基础,以便其他也想使用此方案的朋友不要';不需要重新建立一个环境。。该样板文件具体集成了以下技术方案:electronic、React、dva、flow、antd稍后,我将花时间集成本文中提到的jest,这样我就可以开箱即用地编写单元测试。

推荐阅读

区块链科普:如何妥善备份你的以太坊钱包?
小蚁NEO钱包账户创建原理分析
知道怎么找btc钱包地址,知道怎么找btc钱包地址
如何抢红包换钱包(抢红包一分钱)
usdt钱包地址怎么填写(usdt钱包账户名称)
莱特币钱包账户怎么设置(莱特币钱包账户怎么设置手机号)
文章来源: summer
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至405936398@qq.com 举报,一经查实,本站将立刻删除。
相关资讯
虚拟币交易平台app活动 正规的虚拟币交易平台有哪些?
虚拟币交易平台app活动 正规的虚拟币交易平台有哪些? 1970-01-01

蚂蚁新区块链钱包账号钱包账号neo钱包主要包括地址、私钥、公钥、脚本hash和wif

虚拟快币充值平台官网入口,虚拟快币充值平台官网入口下载
虚拟快币充值平台官网入口,虚拟快币充值平台官网入口下载 1970-01-01

蚂蚁新区块链钱包账号钱包账号neo钱包主要包括地址、私钥、公钥、脚本hash和wif

整治虚拟货币挖矿省份排名?欧美国家为什么没有禁止?
整治虚拟货币挖矿省份排名?欧美国家为什么没有禁止? 1970-01-01

蚂蚁新区块链钱包账号钱包账号neo钱包主要包括地址、私钥、公钥、脚本hash和wif

虚拟货币与虚拟银行学?什么是虚拟币账户
虚拟货币与虚拟银行学?什么是虚拟币账户 1970-01-01

蚂蚁新区块链钱包账号钱包账号neo钱包主要包括地址、私钥、公钥、脚本hash和wif

加强虚拟货币 关于进一步规范和处置虚拟货币交易
加强虚拟货币 关于进一步规范和处置虚拟货币交易 1970-01-01

蚂蚁新区块链钱包账号钱包账号neo钱包主要包括地址、私钥、公钥、脚本hash和wif

虚拟币 平台?虚拟币平台
虚拟币 平台?虚拟币平台 1970-01-01

蚂蚁新区块链钱包账号钱包账号neo钱包主要包括地址、私钥、公钥、脚本hash和wif