Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor[test]: bypass
eth-tester
and interface with evm backend di…
…rectly (#3846) Refactor the test suite to use the EVM backend directly. Get rid of `eth-tester` and `web3`, add support for pyrevm. How: - Create a `BaseEnv` abstraction which has both `py-evm` and `pyrevm` backends - Implementing multiple backends gives us flexibility between EVM backends (especially if there is feature disparity between backends, e.g. regarding EIP implementation), and additionally serves as a form of differential testing by using different backend implementations. - Add `ABIContract` abstraction to interface between EVM and contracts - `BaseEnv` and `ABIContract` are substantially "inspired by" titanoboa, but we did not introduce titanoboa as a dependency because it increases the coupling between `vyper` and `titanoboa` repos. - Install pyrevm and update tests - Remove `eth-tester` and `web3` dependencies Misc/refactoring: - Prune a bunch of unneeded functionality in `tests/conftest.py` - `tx_failed()` does not need to snapshot (that is handled by reverting) - Protect every test with `env.anchor()` - Remove unneeded `get_contract*` duplicate implementations
- Loading branch information