android web3j 代币查询_Android通过web3j以太坊智能合约交互
如果要下載整個以太坊區塊鏈并保持本地節點同步。當區塊鏈占用了我計算機上超過100GB的空間。這在臺式計算機上可能有意義,但在移動設備上則不太合理。
解決此限制的一種方法是使用像Infura這樣的服務。Infura允許你連接到遠程以太坊節點并執行交易,而無需擔心維護和同步本地節點。
為了能夠使用本機Java代碼與智能合約進行交易,我們使用一個名為Web3j的庫。Web3j為你提供生成智能合約java封裝包的實用程序,以及通過HTTP和IPC完整實現以太坊的JSON-RPC客戶端API。它提供了更多功能,但剛說的這些對這個“Android Ethereum hello world”示例來說最重要的功能。
我想要與之互動的示例智能合約是一個Greeter。它在區塊鏈上存儲可以讀取或更新的問候消息。它看起來像這樣:
contract greeter is mortal {
/* define variable greeting of the type string */
string greeting;
/* this runs when the contract is executed */
function greeter(string _greeting) public {
greeting = _greeting;
}
/* change greeting */
function changeGreeting(string _greeting) public {
greeting = _greeting;
}
/* main function */
function greet() constant returns (string) {
return greeting;
}
}
為了能夠創建封裝包,我們首先要編譯這個智能合約:
solc greeter.sol --bin --abi --optimize -o /
要生成運行的封裝包:
web3j solidity generate /path/to/.bin /path/to/.abi -o /path/to/src/main/java -p com.your.organisation.name
Java部分
首先,我們需要獲得以太坊區塊鏈交互的Web3實例。它看起來像這樣:
InfuraHttpService infuraHttpService = new InfuraHttpService(url);
Web3j web3j = Web3jFactory.build("https://ropsten.infura.io/YOUR_API_KEY");
現在我們可以讀取合約幾乎是即時的。
Greeter greeter = Greeter.load(greeterContractAddress, web3j, credentials, gasPrice, gasLimit);
Future greeting = greeter.greet();
Utf8String greetingUtf8 = greeting.get();
String result = greetingUtf8.getValue();
但交易不是即時的,可能需要幾分鐘才能得到驗證。
Greeter greeter = Greeter.load(greeterContractAddress, web3j, credentials, gasPrice, gasLimit);
TransactionReceipt transactionReceipt = greeter.changeGreeting(new Utf8String(greetingToWrite)).get(timeout);
String result = "Successful transaction. Gas used: " + transactionReceipt.getGasUsed();
如果希望快速進行web3j、java、以太坊開發,那請看我們精心打造的教程:
java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
其他以太坊教程如下:
以太坊入門教程,主要介紹智能合約與dapp應用開發,適合入門。
以太坊開發進階教程,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
python以太坊,主要是針對python工程師使用web3.py進行區塊鏈以太坊開發的詳解。
php以太坊,主要是介紹使用php進行智能合約開發交互,進行賬號創建、交易、轉賬、代幣開發以及過濾器和事件等內容。
C#以太坊,主要講解如何使用C#開發基于.Net的以太坊應用,包括賬戶管理、狀態與交易、智能合約開發與交互、過濾器和事件等。
匯智網原創翻譯,轉載請標明出處。這里是原文
總結
以上是生活随笔為你收集整理的android web3j 代币查询_Android通过web3j以太坊智能合约交互的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小萝贝控机大师工具推荐(一款在PC就能控
- 下一篇: 通过 PC 远程控制 Android 的