拿erc20转账构造data举例:

import (
ethcommon "github.com/ethereum/go-ethereum/common"
)
const (
TRANSFER_METHOD_ID = "0xa9059cbb"
)
func MakeERC20TransferData(toAddress string, amount *big.Int) ([]byte, error) {
var data []byte
methodId, err := hexutil.Decode(TRANSFER_METHOD_ID)
if err != nil {
return methodId, err
}
data = append(data, methodId...)
paddedAddress := ethcommon.LeftPadBytes(ethcommon.HexToAddress(toAddress).Bytes(), 32)
data = append(data, paddedAddress...)
paddedAmount := ethcommon.LeftPadBytes(amount.Bytes(), 32)
data = append(data, paddedAmount...)
return data, nil
}
// use:
data, err := MakeERC20TransferData(toAddress, big.NewInt(1000000000))
if err != nil {
panic(err)
}