When ever I try to deploy my smart contract to test, I receive an error indicating "transaction type not supported". Below is the source code. I'm trying to deploy my simple smart contract using abigen's Go bindings.
Versions:
go1.16.7
Solidity 0.8.9+commit.e5eed63a.Darwin.appleclang
Solidity Source code. I've tested this in Remix and it has worked everytime:
contract SendMSG { function Send(address sendTo, bytes calldata message) public { OtherContract other = OtherContract(sendTo); other.send(message); } } This is the contract I'm using ignore syntax errors as it may be human error while anonymizing.
I then run this line to develop the abi bindings and put them in the right place. I can confirm this works as the go file is always created: abigen --sol ../../contracts/Contract.sol --pkg Contract --out Contract.go
Go Code. I believe there shouldn't be any issues. I'm using a simulated backend/blockchain for testing:
package Contract import ( "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 correctly func 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) } } Always, it gives the same err, "transaction type not supported". I know the line where the error origin [GitHub]. From there, maybe I didn't set a payment mechanism? But all the tutorials I've seen didn't include one and if anyone could provide a guide as to how to do that.
Thank you.