扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容主要讲解“Web3j 4.x手机钱包Java开发方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Web3j 4.x手机钱包Java开发方法是什么”吧!
成都创新互联服务项目包括洛宁网站建设、洛宁网站制作、洛宁网页制作以及洛宁网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,洛宁网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到洛宁省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
使用Web3j的第一步是在Android项目中添加Web3j依赖。由于Web3j有一个maven插件,这就很简单了:只需要在你项目的build.gradle文件中添加mavencentral,然后将web3j作为一个依赖项加入build.gradle文件(确保你使用的是android版本)。
repositories { mavenCentral() google() jcenter() } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'org.web3j:core:4.1.0-android' }
要系统高效地学习web3j,推荐汇智网的在线互动教程 《web3j以太坊开发详解》, 教程内容涵盖以太坊中的核心概念,例如账户管理、状态与交易、智能合约开发与交互、过滤器 和事件等,同时也详细说明如何使用web3j与以太坊区块链进行交互,是java工程师学习 以太坊应用开发的不二选择。
钱包应用必须通过一个以太坊节点才能与以太坊区块链通信,我们可以部署自己的节点,也可以使用第三方提供的云端节点,例如Infura的开放节点。我决定使用Infura的原因在于不需要自己同步区块链数据,因为这个同步过程要花不少时间而且很繁琐,因此我希望尽量避免搭建自己的节点。
你可以在Infura注册然后得到一个API Key,就可以像下面这样创建一个Web3j对象接入Rinkeby测试网络了:
// FIXME: Add your own API key here web3 = Web3j.build(new HttpService("https://rinkeby.infura.io/v3/YOURKEY")); try { Web3ClientVersion clientVersion = web3.web3ClientVersion().sendAsync().get(); if(!clientVersion.hasError()){ //Connected } else { //Show Error } } catch (Exception e) { //Show Error }
注意上面代码中的URL ——https://rinkeby.infura.io/v3/YOURKEY
,YOURKEY需要用你的API KEY替换掉,这个url中的rinkeby表示可以使用这个url接入以太坊的rinkeby测试链,容易理解,把rinkeby换成mainnet,就可以接入以太坊的主网了,例如:
https://mainnet.infura.io/v3/YOURKEY
一切正常的话,上面的代码就可以接入以太坊的Rinkeby测试链了!
现在让我们创建一个钱包来发送或接收一些测试链的以太币。为此我们需要首先在用户的设备中创建一个钱包文件:
//FIXME: Use your own password here private final String password = "medium"; private String walletPath = getFilesDir().getAbsolutePath(); private File walletDir = new File(walletPath); try{ WalletUtils.generateNewWalletFile(password, walletDir); } catch (Exception e){ //Display an Error }
很好,现在我们有了一个钱包,现在来获取钱包地址,然后从Rinkeby Faucet为该地址获取一些测试用的以太币:
try { Credentials credentials = WalletUtils.loadCredentials(password, walletDir); Toast.makeText(this, "Your address is " + credentials.getAddress(), Toast.LENGTH_LONG).show(); } catch (Exception e){ //Show Error }
钱包里现在已经有了一些以太币,让我们再把这些测试币转回去:
try{ Credentials credentials = WalletUtils.loadCredentials(password, walletDir); TransactionReceipt receipt = Transfer.sendFunds(web3,credentials,"0x31B98D14007bDEe637298086988A0bBd31184523",new BigDecimal(1),Convert.Unit.ETHER).sendAsync().get(); Toast.makeText(this, "Transaction complete: " +receipt.getTransactionHash(), Toast.LENGTH_LONG).show(); } catch (Exception e){ //Show Error }
到此,相信大家对“Web3j 4.x手机钱包Java开发方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流