golang geth 查询交易
import (
"context"
"fmt"
"log"
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
var url string = "http://localhost:8545"
client, err := ethclient.Dial(url)
if err != nil {
log.Fatal(err)
}
// 依据区块查询交易,设置区块编码
blockNumber := big.NewInt(137)
block, err := client.BlockByNumber(context.Background(), blockNumber)
if err != nil {
log.Fatal(err)
}
// 遍历区块下的交易
for _, tx := range block.Transactions() {
fmt.Println(tx.Hash().Hex()) //
fmt.Println("value: ", tx.Value().String()) // 10000000000000000
fmt.Println(tx.Gas()) // 105000
fmt.Println(tx.GasPrice().Uint64()) // 102000000000
fmt.Println(tx.Nonce()) // 110644
fmt.Println(tx.Data()) // []
// 查询事务数据 1 成功 0失败
receipt, err := client.TransactionReceipt(context.Background(), tx.Hash())
if err != nil {
log.Fatal("receipt failed,", err)
}
fmt.Println("receipt.Status,", receipt.Status)
}
txHash := common.HexToHash("0x2d470cde76abba4ea10a2d973dfb89f60d49064ab801cba7389af5954f01aa03")
tx, isPending, err := client.TransactionByHash(context.Background(), txHash)
if err != nil {
log.Fatal("isPending error", err)
}
fmt.Println("sss", tx.Hash().Hex()) //
fmt.Println("sss22", isPending) // false
}
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
上一篇:Web3 极客日报 #1618 下一篇:我们共同的 Optimism
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。