|
|
|
@ -569,6 +569,45 @@ var bindTests = []struct { |
|
|
|
|
nil, |
|
|
|
|
nil, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
`NonExistentStruct`, |
|
|
|
|
` |
|
|
|
|
contract NonExistentStruct { |
|
|
|
|
function Struct() public view returns(uint256 a, uint256 b) { |
|
|
|
|
return (10, 10); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
`, |
|
|
|
|
[]string{`6080604052348015600f57600080fd5b5060888061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063d5f6622514602d575b600080fd5b6033604c565b6040805192835260208301919091528051918290030190f35b600a809156fea264697066735822beefbeefbeefbeefbeefbeefbeefbeefbeefbeefbeefbeefbeefbeefbeefbeefbeef64736f6c6343decafe0033`}, |
|
|
|
|
[]string{`[{"inputs":[],"name":"Struct","outputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"stateMutability":"pure","type":"function"}]`}, |
|
|
|
|
` |
|
|
|
|
"github.com/ethereum/go-ethereum/accounts/abi/bind" |
|
|
|
|
"github.com/ethereum/go-ethereum/accounts/abi/bind/backends" |
|
|
|
|
"github.com/ethereum/go-ethereum/common" |
|
|
|
|
"github.com/ethereum/go-ethereum/core" |
|
|
|
|
`, |
|
|
|
|
` |
|
|
|
|
// Create a simulator and wrap a non-deployed contract
|
|
|
|
|
|
|
|
|
|
sim := backends.NewSimulatedBackend(core.GenesisAlloc{}, uint64(10000000000)) |
|
|
|
|
defer sim.Close() |
|
|
|
|
|
|
|
|
|
nonexistent, err := NewNonExistentStruct(common.Address{}, sim) |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("Failed to access non-existent contract: %v", err) |
|
|
|
|
} |
|
|
|
|
// Ensure that contract calls fail with the appropriate error
|
|
|
|
|
if res, err := nonexistent.Struct(nil); err == nil { |
|
|
|
|
t.Fatalf("Call succeeded on non-existent contract: %v", res) |
|
|
|
|
} else if (err != bind.ErrNoCode) { |
|
|
|
|
t.Fatalf("Error mismatch: have %v, want %v", err, bind.ErrNoCode) |
|
|
|
|
} |
|
|
|
|
`, |
|
|
|
|
nil, |
|
|
|
|
nil, |
|
|
|
|
nil, |
|
|
|
|
nil, |
|
|
|
|
}, |
|
|
|
|
// Tests that gas estimation works for contracts with weird gas mechanics too.
|
|
|
|
|
{ |
|
|
|
|
`FunkyGasPattern`, |
|
|
|
|