怎樣通過java用web3j查詢以太坊交易資訊?

馬拉喀什發表於2018-07-20

剛開始使用web3j,我有一些基本的麻煩。

我已經可以成功如何獲得一個EthBlock,並檢索裡面的所有資訊。我想看看這個塊中的交易列表,我該怎麼做?

我可以呼叫:

 List<TransactionResult> transactions = ethBlock.getBlock().getTransactions();

我應該能夠瀏覽這個列表並獲得有關每筆交易的資訊。但是,我所能做到的似乎都是交易處理結果,把它轉換成非常無效的交易處理。我想要一個可以從中提取大量資訊的交易物件。

如何獲取真實的交易資料?

另一個注意事項:有什麼相關的文件推薦?web3j JavaDoc?

問題的解答

你的呼叫並沒錯,只是混淆了一些概念。看下該如何使用泛型。比如下面的示例將在最新的塊中輸出每個交易的傳送方:

List<EthBlock.TransactionResult> txs = web3j.ethGetBlockByNumber(DefaultBlockParameterName.LATEST, true).send().getBlock().getTransactions();
txs.forEach(tx -> {
  EthBlock.TransactionObject transaction = (EthBlock.TransactionObject) tx.get();

  System.out.println(transaction.getFrom());
});

請記住,這是TransactionObject物件( TX 傳送 ) ,而不是包含TX挖掘結果的TransactionReceipt收據。

原文《以太坊常見問題和錯誤》中的:
http://cw.hubwiz.com/card/c/ethereum-FAQ/1/1/16/

另外推薦幾個很受歡迎全網稀缺的互動教程:

另外推薦幾個很受歡迎全網稀缺的互動教程:

  • python以太坊,主要是針對python圍繞web3.py進行區塊鏈以太坊應用開發的講解。
  • web3j,主要是針對java和android程式設計師圍繞web3j庫進行區塊鏈以太坊開發的講解。
  • php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和事件等內容。
  • 以太坊開發,主要是介紹使用node.js、mongodb、區塊鏈、ipfs實現去中心化電商DApp實戰,適合進階。
  • 以太坊教程,主要介紹智慧合約與dapp應用開發,適合入門。


相關文章