您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Web3j 4.x手機錢包Java開發(fā)方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Web3j 4.x手機錢包Java開發(fā)方法是什么”吧!
使用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' }
要系統(tǒng)高效地學(xué)習(xí)web3j,推薦匯智網(wǎng)的在線互動教程 《web3j以太坊開發(fā)詳解》, 教程內(nèi)容涵蓋以太坊中的核心概念,例如賬戶管理、狀態(tài)與交易、智能合約開發(fā)與交互、過濾器 和事件等,同時也詳細說明如何使用web3j與以太坊區(qū)塊鏈進行交互,是java工程師學(xué)習(xí) 以太坊應(yīng)用開發(fā)的不二選擇。
錢包應(yīng)用必須通過一個以太坊節(jié)點才能與以太坊區(qū)塊鏈通信,我們可以部署自己的節(jié)點,也可以使用第三方提供的云端節(jié)點,例如Infura的開放節(jié)點。我決定使用Infura的原因在于不需要自己同步區(qū)塊鏈數(shù)據(jù),因為這個同步過程要花不少時間而且很繁瑣,因此我希望盡量避免搭建自己的節(jié)點。
你可以在Infura注冊然后得到一個API Key,就可以像下面這樣創(chuàng)建一個Web3j對象接入Rinkeby測試網(wǎng)絡(luò)了:
// 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,就可以接入以太坊的主網(wǎng)了,例如:
https://mainnet.infura.io/v3/YOURKEY
一切正常的話,上面的代碼就可以接入以太坊的Rinkeby測試鏈了!
現(xiàn)在讓我們創(chuàng)建一個錢包來發(fā)送或接收一些測試鏈的以太幣。為此我們需要首先在用戶的設(shè)備中創(chuàng)建一個錢包文件:
//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 }
很好,現(xiàn)在我們有了一個錢包,現(xiàn)在來獲取錢包地址,然后從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 }
錢包里現(xiàn)在已經(jīng)有了一些以太幣,讓我們再把這些測試幣轉(zhuǎn)回去:
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開發(fā)方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。