zksync-era
zksync-era copied to clipboard
Evm equivalence (updated with latest changes from `main`)
What ❔
This PR includes only the necessary changes from #1612 for EVM equivalance, starting from the current main
branch.
Currently the PR adds the evm_simulator
as a new BaseSystemContract
along with the necessary sql migrations and dal
changes that add the evm_simulator_code_hash
column to the protocol_versions
, l1_batches
, and miniblocks
tables.
Things left to port from the original PR:
- Vm changes that implement the evm interpreter logic.
- Changes to the operator and rpc endpoints making the
to
field of transactions anOption<Address>
, which turnsNone
values into evm contract execution. - Typescript script that publishes the evm interpreter's bytecode in the same way as the defaultaa/bootloader
Why ❔
Checklist
- [ ] PR title corresponds to the body of PR (we generate changelog entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via
zk fmt
andzk lint
.