手机版

使用原生反应创建以太坊钱包实现转账等功能

时间:2021-08-21 来源:互联网 编辑:宝哥软件园 浏览:

之前想用原生反应开发一版以太坊钱包app,但在生成账户那块遇见了问题,没有秘密党员等开发包,原生反应是运行在JavaScriptCore环境里面,是没有缓冲、加密跟溪流这些库的,所以为了解决,就跟同事开发了基于开发的web3go,然后使用gomoble工具编译成ios需要的结构以及机器人需要的jar aar,完美解决问题

演示

dapp-demo-1.jpg

dapp-demo-2.jpg

安装web3go

饭桶克隆https://github.com/bcl-chain/web3.go.git使用马尔他手机编译成框架,jar,aar

//生成框架gomobile bind-target=IOs ./github。com/bcl-chain/web 3。go/mobile//生成arr jargomobile bind-target=Android ./github。com/bcl-chain/web 3。移动电话把生成的包环到原生应用里面

link-web3go.jpg

andoir-getbalence.jpg

下载埃塞俄比亚本地测试工具ganache-cli

gan-cli.jpg

安装依赖

yarnreact-本机运行-安德洛反应-本机运行-iosgetBalance代码分析

//IORCT _ EXport _ METHoD(GetBalancee :(NSString *)地址:(RCTPromiseResolveBlock)解析reject block :(rctpromisereobjectblock)拒绝){//IP地址web 3 goereumclient * client=web 3 gonewereumclient(NodeIP,nil);web 3 go context * CTX=web 3 gonewcontext();//账户地址web 3驱地址*地址1=web 3 gonewaddress from hex(地址,无);@尝试{ web 3 goginit * a=[客户端getbalanceat : CTX帐户:地址1号码:-1错误: nil];NSString * am ount=[a getstring 336010];NSLog(@'%@ ',ammount);解决(金额);} @ catch(NSError * exception){ NSLog(@ ' NSError :% @ ',exception);拒绝(@'NSError: %@ ',@ '没有事件,异常);} @ finally { NSLog(@ ' finally ');} }//Android @ react method public void getBalance(字符串地址,Promise promise) {试试{ web3go .以太网客户端客户端=web3go。新以太网客户端(NodeIP);web3go .上下文CTX=web3go。新上下文();web3go .地址1=web3go。十六进制新地址(地址);web3go .BigInt a=客户端。getbalanceeat(CTX,地址1,-1);string amut=a . GetString(10);承诺。决心(ammut);} catch(例外e){承诺。拒绝(e . getmessage());} }//react-native easync getBalance(){ try { var amount=wait NativeModules .web3go。getbalance(这个。国家。defgaaaddress);这个。setstate({ gaam mount : amount })} catch(e){ console。错误(e);}}如果有用,给个开始

web3go

反应-原生-Dapp

总结

以上所述是小编给大家介绍的使用原生反应创建以太坊钱包实现转账等功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

版权声明:使用原生反应创建以太坊钱包实现转账等功能是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。