每當(dāng)我嘗試部署我的智能合約進(jìn)行測(cè)試時(shí),我都會(huì)收到一條錯(cuò)誤消息,指出“不支持交易類型”。下面是源代碼。我正在嘗試使用 abigen 的 Go 綁定部署我的簡(jiǎn)單智能合約。版本:go1.16.7 Solidity0.8.9+commit.e5eed63a.Darwin.appleclangSolidity 源代碼。我已經(jīng)在 Remix 中對(duì)此進(jìn)行了測(cè)試,并且每次都有效:contract SendMSG { function Send(address sendTo, bytes calldata message) public { OtherContract other = OtherContract(sendTo); other.send(message); }}這是我使用忽略語(yǔ)法錯(cuò)誤的合同,因?yàn)樗赡苁悄涿麜r(shí)的人為錯(cuò)誤。然后我運(yùn)行這條線來(lái)開發(fā) abi 綁定并將它們放在正確的位置。我可以確認(rèn)這是有效的,因?yàn)榭偸莿?chuàng)建 go 文件: abigen --sol ../../contracts/Contract.sol --pkg Contract --out Contract.go去代碼。我相信不應(yīng)該有任何問(wèn)題。我正在使用模擬后端/區(qū)塊鏈進(jìn)行測(cè)試:package Contractimport ( "testing" "github.com/ethereum/go-ethereum/accounts/abi/bind/backends" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/common" "math/big")// Test inbox contract gets deployed correctlyfunc TestMain(t *testing.T) { //Setup simulated block chain key, _ := crypto.GenerateKey() auth := bind.NewKeyedTransactor(key) alloc := make(core.GenesisAlloc) alloc[auth.From] = core.GenesisAccount{Balance: big.NewInt(133700000)} gasLimit := 300000 sim := backends.NewSimulatedBackend(alloc, gasLimit) //Deploy contract address, _, _, err := DeploySameBindings( auth, sim, ) // commit all pending transactions blockchain.Commit() if err != nil { t.Fatalf("Failed to deploy the contract: %v", err) }}總是,它給出了相同的錯(cuò)誤,“不支持事務(wù)類型”。我知道錯(cuò)誤來(lái)源[GitHub]所在的行。從那里,也許我沒有設(shè)置付款機(jī)制?但是我看到的所有教程都不包括一個(gè),如果有人可以提供如何做到這一點(diǎn)的指南。
1 回答

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是愚蠢的。
Geth 更新了他們的代碼并且沒有任何教程,所以對(duì)于任何希望運(yùn)行模擬背景的人來(lái)說(shuō),答案如下:
您必須手動(dòng)設(shè)置汽油價(jià)格。在定義客戶端并進(jìn)行身份驗(yàn)證后進(jìn)行此操作并對(duì)其進(jìn)行修復(fù)。
gasPrice, err := client.SuggestGasPrice(context.Background())
auth.GasPrice=gasPrice
- 1 回答
- 0 關(guān)注
- 91 瀏覽
添加回答
舉報(bào)
0/150
提交
取消