{"id":15679401,"url":"https://github.com/pcaversaccio/fork-testing-evm-compatibility","last_synced_at":"2025-05-07T08:42:40.006Z","repository":{"id":188434704,"uuid":"678736488","full_name":"pcaversaccio/fork-testing-evm-compatibility","owner":"pcaversaccio","description":"This repository implements a simple fork test on Optimism that proves that the EVM behaviour of the forked chain is not identically replicated locally.","archived":false,"fork":false,"pushed_at":"2025-04-27T13:42:26.000Z","size":100,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-27T14:32:48.949Z","etag":null,"topics":["evm","fork-testing","foundry","optimism","push0"],"latest_commit_sha":null,"homepage":"","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pcaversaccio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-15T08:51:25.000Z","updated_at":"2025-04-27T13:42:30.000Z","dependencies_parsed_at":"2024-02-02T16:26:37.151Z","dependency_job_id":"cc262749-2f48-4e8a-9165-0430e9ce1237","html_url":"https://github.com/pcaversaccio/fork-testing-evm-compatibility","commit_stats":{"total_commits":79,"total_committers":2,"mean_commits":39.5,"dds":"0.012658227848101222","last_synced_commit":"46013a10fe435a97329f204f5114ad36dce0d0ef"},"previous_names":["pcaversaccio/fork-testing-evm-compatibility"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcaversaccio%2Ffork-testing-evm-compatibility","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcaversaccio%2Ffork-testing-evm-compatibility/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcaversaccio%2Ffork-testing-evm-compatibility/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pcaversaccio%2Ffork-testing-evm-compatibility/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pcaversaccio","download_url":"https://codeload.github.com/pcaversaccio/fork-testing-evm-compatibility/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252845544,"owners_count":21813265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["evm","fork-testing","foundry","optimism","push0"],"created_at":"2024-10-03T16:30:22.020Z","updated_at":"2025-05-07T08:42:39.975Z","avatar_url":"https://github.com/pcaversaccio.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fork Testing – EVM Compatibility\n\n[![🕵️‍♂️ Test smart contracts](https://github.com/pcaversaccio/fork-testing-evm-compatibility/actions/workflows/test.yml/badge.svg)](https://github.com/pcaversaccio/fork-testing-evm-compatibility/actions/workflows/test.yml)\n[![License: WTFPL](https://img.shields.io/badge/License-WTFPL-blue.svg)](https://www.wtfpl.net/about/)\n\nThis repository implements a [simple fork test](./test/Store.t.sol) on Optimism that proves that the EVM behaviour of the forked chain is _not_ identically replicated locally. This can lead to problems due to new opcodes such as [`PUSH0`](https://www.evm.codes/#5f?fork=shanghai) which would lead to untested behaviour as the EVM behaviour is not correctly replicated as part of the test suite. The underlying issue is that fork tests are local simulations with accounts, states, and storage slot information fetched from the RPC. This means that one does not get the full behaviour of the chain and therefore cannot identify specific EVM difference problems.\n\n### Test\n\nSimply invoke:\n\n```console\nforge test\n```\n\n### `PUSH0`-Rollout\n\n![image](https://github.com/pcaversaccio/fork-testing-evm-compatibility/assets/25297591/d09ab338-511d-4211-b5ba-93e32dddd479)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpcaversaccio%2Ffork-testing-evm-compatibility","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpcaversaccio%2Ffork-testing-evm-compatibility","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpcaversaccio%2Ffork-testing-evm-compatibility/lists"}