【发布时间】:2021-12-16 14:51:32
【问题描述】:
我正在尝试使用eth.sendTransaction 发送原始交易,但我收到一条错误消息,显示为{"code":-32000,"message":"unknown account"}。我不确定是什么原因造成的,我似乎无法在互联网上找到答案。谁能帮我弄清楚?这是我的代码:
func ExecuteSignedTransaction(rawTransaction string) {
var hash web3.Hash
data := make(map[string]interface{})
data["data"] = rawTransaction
err := Web3HTTPClient.Call("eth_sendTransaction", &hash, data)
if err != nil{
fmt.Println(err)
Os.Exit(1)
}
fmt.Println("Sent tx hash:", hash)
}
【问题讨论】:
-
您需要使用类似
*bind.TransactOpts的实例来签署交易。我的一般建议是使用类似于 go-ethereum 包中已有的*ethclient.Client的东西,它提供了非常有用的接口来做这样的事情——还有更多关于它的文档,你可能已经能够否则找到。但是,如果您不想使用*ethclient.Client,请考虑使用您控制的帐户的私钥签署您的 rawTransaction。
标签: ethereum web3 go-ethereum