{"id":19145406,"url":"https://github.com/paradigmxyz/foundry-alphanet","last_synced_at":"2025-05-07T01:21:36.298Z","repository":{"id":226581231,"uuid":"769048457","full_name":"paradigmxyz/foundry-alphanet","owner":"paradigmxyz","description":"Foundry tools for interfacing with Reth Alphanet's bleeding-edge EVM extensions.","archived":false,"fork":false,"pushed_at":"2024-05-03T08:51:07.000Z","size":49,"stargazers_count":31,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T17:17:08.054Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paradigmxyz.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}},"created_at":"2024-03-08T08:34:23.000Z","updated_at":"2025-02-03T16:14:39.000Z","dependencies_parsed_at":"2024-05-03T09:08:28.309Z","dependency_job_id":null,"html_url":"https://github.com/paradigmxyz/foundry-alphanet","commit_stats":null,"previous_names":["fgimenez/eip-3074-tools-action","fgimenez/eip-3074-tools","paradigmxyz/foundry-alphanet"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Ffoundry-alphanet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Ffoundry-alphanet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Ffoundry-alphanet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paradigmxyz%2Ffoundry-alphanet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paradigmxyz","download_url":"https://codeload.github.com/paradigmxyz/foundry-alphanet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252794281,"owners_count":21805170,"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":[],"created_at":"2024-11-09T07:40:04.794Z","updated_at":"2025-05-07T01:21:36.277Z","avatar_url":"https://github.com/paradigmxyz.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# foundry-alphanet\n\nTools built around the patched versions of revm, forge, and the solidity compiler from\n[anton-rs/3074-invokers], which support [EIP-3074] instructions.\n\nWe intend to further roll out Foundry patches to support other EVM modifications such as\nnew opcodes or precompiles.\n\n## Docker image\n\nThe Docker image defined in this repo contains both the patched solc and forge\nbinaries, compatible with EIP-3074 and ready to be used. The patches are avaiable\nunder the `patches` directory, during the image build process the source for\nboth binaries is checked out, the patches are applied and the binaries are built\nand put under `/usr/local/bin` in the final image.\n\nThe image also includes an entrypoint script that makes it easier to use the\npatched forge with any foundry project using EIP-3074 instructions. It provides\nthese arguments:\n* `--foundry-command`: subcommand to use with the patched forge\n* `--foundry-directory`: where to find the foundry project in the container\n* `--foundry-script`: when `--foundry-command` is script, path in the foundry\nproject of the script to execute.\n\nThere's a github actions workflow in this repo that builds and publishes the\nimage on each merge to main, it is available at: `ghcr.io/paradigmxyz/foundry-alphanet`\n\n### How to use\nContainers created from this image should mount a local directory containing a\nsource foundry project and then run a forge command on it. For example, to\nbuild a project, from the project root you can execute:\n```shell\n$ docker run --rm \\\n    -v $(pwd):/app/foundry \\\n    -u $(id -u):$(id -g) \\\n    ghcr.io/paradigmxyz/foundry-alphanet:latest \\\n    --foundry-directory /app/foundry \\\n    --foundry-command \"forge build\"\n```\nIn this command:\n* `-v $(pwd):/app/foundry` mounts the local directory in `/app/foundry` in the\ncontainer.\n* `-u $(id -u):$(id -g)` makes sure that the files created will belong to the\nsame user executing the command.\n* `ghcr.io/paradigmxyz/foundry-alphanet:latest` is the image name\n* `--foundry-directory /app/foundry` tells the entrypoint script to use\n`/app/foundry` in the container as the foundry project directory.\n* `--foundry-command \"forge build\"` tells the entrypoint script to use `forge build` as the\nfoundry command.\n\nTo run tests in a project, from the projects root:\n```shell\n$ docker run --rm \\\n    -v $(pwd):/app/foundry \\\n    -u $(id -u):$(id -g) \\\n    ghcr.io/paradigmxyz/foundry-alphanet:latest \\\n    --foundry-directory /app/foundry \\\n    --foundry-command \"forge test -vvv\"\n```\n\nIn this case we have signalled forge that we want increased verbosity in the test\noutput passing `forge test -vvvv` to `--foundry-command`.\n\nTo run Anvil:\n\n```shell\n$ docker run --rm \\\n    -v $(pwd):/app/foundry \\\n    -u $(id -u):$(id -g) \\\n    -p 8545:8545 \\\n    ghcr.io/paradigmxyz/foundry-alphanet:latest \\\n    --foundry-command \"anvil\"\n```\n\n**Note:** if you're adding either the `--rpc-url` or `--fork-url` flag to your forge command and the RPC endpoint you're pointing to is on host, you should use http://host.docker.internal:8545 instead of http://localhost:8545 as the value. See Docker's networking docs [here](https://docs.docker.com/desktop/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host).\n\n[anton-rs/3074-invokers]: https://github.com/anton-rs/3074-invokers\n[EIP-3074]: https://eips.ethereum.org/EIPS/eip-3074\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparadigmxyz%2Ffoundry-alphanet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparadigmxyz%2Ffoundry-alphanet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparadigmxyz%2Ffoundry-alphanet/lists"}