Go-Ethereum

解碼原始交易

  • March 9, 2022

如何使用 Go / go-ethereum 解碼原始交易?沒有將原始字節或十六進制讀取到交易中的方法/功能https://godoc.org/github.com/ethereum/go-ethereum/core/types。基本上我只想提取目標地址和發送的金額。

使用官方的 go-ethereum 包:

import (
   "encoding/hex"

   "github.com/ethereum/go-ethereum/common"
   "github.com/ethereum/go-ethereum/core/types"
   "github.com/ethereum/go-ethereum/rlp"
)

func GetToAddressFromRawTransaction(rawTxHex string) (*common.Address, error) {
   rawTxData, err := hex.DecodeString(rawTxHex[2:]) // Remove hex prefix "0x..."
   if err != nil {
       return nil, err
   }

   var tx types.Transaction
   err = rlp.DecodeBytes(rawTxData, &tx)
   if err != nil {
       return nil, err
   }

   return tx.To(), nil
}

查看該Transaction類型的方法來訪問 tx 對像中的數據。

這是github上的工作程式碼

這是我從這個答案中找到的一個包:

https://github.com/ConsenSys/abi-decoder

請參閱標題為Decode Tx data的程式碼塊。我認為這應該做你想要的。

引用自:https://ethereum.stackexchange.com/questions/37377