0g-chain/tests/e2e/contracts
Robert Pirtle 735d44ba32
support initialization of evm state in e2e tests (#1524)
* check receipt status for failed txs from evm

* make EvmSigner's Auth public

* setup evm state initialization for e2e

* add a dummy Greeter contract, deployed on start
* move WaitForEvmTxReceipt to from account to util
* add tests for interacting with the contract
* add ContractAddrs map to Chain
2023-04-03 09:58:45 -07:00
..
greeter support initialization of evm state in e2e tests (#1524) 2023-04-03 09:58:45 -07:00
readme.md support initialization of evm state in e2e tests (#1524) 2023-04-03 09:58:45 -07:00

This directory contains contract interfaces used by the e2e test suite.

Prereq

Create Contract Interfaces for Go

If you have the compiled ABI, you can skip directly to step 4.

To create new go interfaces to contracts:

  1. add the solidity file: <filename>.sol
  2. decide on a package name. this will be the name of the package you'll import into go (<pkg-name>)
  3. compile the abi & bin for the contract: solc -o <pkg-name> --abi --bin <filename>.sol
  • run from this directory
  • note that -o is the output directory. this will generate <pkg-name>/<filename>.abi
  1. generate the golang interface: abigen --abi=<pkg-name>/<filename>.abi --bin=<pkg-name>/<filename>.bin --pkg=<pkg-name> --out=<pkg-name>/main.go
  2. import and use the contract in Go.

By including the bin, the generated interface will have a Deploy* method. If you only need to interact with an existing contract, you can exclude the --bin and only an interaction method interface will be generated.

Resources