Phoenix Chain SDK Doc
  • Introduction
  • Client
    • Initializing a Client
  • Accounts
    • Querying Balances
  • Blocks and Transactions
    • Querying Blocks
    • Querying Transactions
  • Smart Contracts
    • Installing Dev Tools
    • Generating Go Contracts File
    • Deploying Contracts
    • Querying Contracts
    • Writing to Contracts
  • Event logs
    • Filtering Event logs
    • Subscribing to Event Logs
Powered by GitBook
On this page
  1. Blocks and Transactions

Querying Transactions

Loop through the transactions in the block, you can get transaction details.

Import the types packages:

import (
    "github.com/PhoenixGlobal/Phoenix-Chain-SDK/ethereum/core/types"
)

Query transaction details:

for _, trans := range block.Transactions() {
    fmt.Println(trans.Hash().Hex())	// get transaction hash
    fmt.Println(trans.Value().String()) // get transaction value
    chianID, err := client.ChainID(context.Background())
    if err != nil{
    fmt.Println(err)
    }
    msg, err := trans.AsMessage(types.NewEIP155Signer(chianID))
    if err != nil{
    fmt.Println(err)
    } else{
    fmt.Println(msg.From().Hex()) // get from address
    }
    fmt.Println(trans.To().Hex()) // get to address
}

Or get transaction details directly by transaction hash:

txHash := common.HexToHash("0xdc52533193e5b31707d7a8cacb06eb78acbcd13dfc4917c61a2215806ad7ece6")
tx, isPending, err := client.TransactionByHash(context.Background(), txHash)
if err != nil {
    log.Fatal(err)
}
fmt.Println(tx.Hash().Hex())
fmt.Println(isPending)

You can also get the transaction receipt by a transaction hash:

txHash := common.HexToHash("0xdc52533193e5b31707d7a8cacb06eb78acbcd13dfc4917c61a2215806ad7ece6")
receipt, err := client.TransactionReceipt(context.Background(), txHash)
fmt.Println(receipt.Status)
fmt.Println(receipt.Logs)
PreviousQuerying BlocksNextSmart Contracts

Last updated 2 years ago