golang geth 查询交易

  • lovo1
  • 发布于 2024-10-31 21:25
  • 阅读 1643

go getch 查询交易


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
}
  • 原创
  • 学分: 0
  • 分类: Go
  • 标签:
点赞 0
收藏 0
分享

0 条评论

请先 登录 后评论
lovo1
lovo1
0x604b...4e95
MY