Commit c258163f authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

Merge branch 'develop' into deps/forge-std

parents 9c8b1f00 725b0261
---
'@eth-optimism/foundry': minor
---
Initial release, pin to b7b1ec471bdd38221773e1a569dc4f20297bd7db
---
'@eth-optimism/ci-builder': patch
---
Use ethereumoptimism/foundry:latest
---
'@eth-optimism/contracts-bedrock': patch
---
Update typechain pipeline
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
- 'packages/batch-submitter/**/*' - 'packages/batch-submitter/**/*'
- 'packages/contracts/**/*' - 'packages/contracts/**/*'
- 'packages/contracts-periphery/**/*' - 'packages/contracts-periphery/**/*'
- 'packages/contracts-bedrock/**/*'
- 'packages/data-transport-layer/**/*' - 'packages/data-transport-layer/**/*'
- 'packages/drippie-mon/**/*' - 'packages/drippie-mon/**/*'
- 'packages/message-relayer/**/*' - 'packages/message-relayer/**/*'
...@@ -30,6 +31,9 @@ M-contracts: ...@@ -30,6 +31,9 @@ M-contracts:
M-contracts-periphery: M-contracts-periphery:
- any: ['packages/contracts-periphery/**/*'] - any: ['packages/contracts-periphery/**/*']
M-contracts-bedrock:
- any: ['packages/contracts-bedrock/**/*']
M-core-utils: M-core-utils:
- any: ['packages/core-utils/**/*'] - any: ['packages/core-utils/**/*']
......
...@@ -30,6 +30,7 @@ jobs: ...@@ -30,6 +30,7 @@ jobs:
go-builder: ${{ steps.packages.outputs.go-builder }} go-builder: ${{ steps.packages.outputs.go-builder }}
js-builder: ${{ steps.packages.outputs.js-builder }} js-builder: ${{ steps.packages.outputs.js-builder }}
ci-builder: ${{ steps.packages.outputs.ci-builder }} ci-builder: ${{ steps.packages.outputs.ci-builder }}
foundry: ${{ steps.packages.outputs.foundry }}
steps: steps:
- name: Checkout Repo - name: Checkout Repo
...@@ -236,6 +237,32 @@ jobs: ...@@ -236,6 +237,32 @@ jobs:
push: true push: true
tags: ethereumoptimism/ci-builder:${{ needs.release.outputs.ci-builder }},ethereumoptimism/ci-builder:latest tags: ethereumoptimism/ci-builder:${{ needs.release.outputs.ci-builder }},ethereumoptimism/ci-builder:latest
foundry:
name: Publish foundry ${{ needs.release.outputs.foundry }}
needs: release
if: needs.release.outputs.foundry != ''
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_ACCESS_TOKEN_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN_SECRET }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Publish foundry
uses: docker/build-push-action@v2
with:
context: .
file: ./ops/docker/foundry/Dockerfile
push: true
tags: ethereumoptimism/foundry:${{ needs.release.outputs.foundry }},ethereumoptimism/foundry:latest
proxyd: proxyd:
name: Publish proxyd Version ${{ needs.release.outputs.proxyd }} name: Publish proxyd Version ${{ needs.release.outputs.proxyd }}
needs: release needs: release
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# be used to build any of the follow-on services # be used to build any of the follow-on services
# #
# ### BASE: Install deps # ### BASE: Install deps
FROM ghcr.io/foundry-rs/foundry:latest as foundry FROM ethereumoptimism/foundry:latest as foundry
FROM node:16-alpine3.14 as base FROM node:16-alpine3.14 as base
RUN apk --no-cache add curl jq python3 ca-certificates git make gcc musl-dev linux-headers bash build-base RUN apk --no-cache add curl jq python3 ca-certificates git make gcc musl-dev linux-headers bash build-base
......
FROM ethereum/client-go:alltools-v1.10.17 as geth FROM ethereum/client-go:alltools-v1.10.17 as geth
FROM ghcr.io/foundry-rs/foundry:nightly as foundry FROM ethereumoptimism/foundry:latest as foundry
FROM python:3.8.12-slim-buster FROM python:3.8.12-slim-buster
......
from alpine as build-environment
WORKDIR /opt
RUN apk add clang lld curl build-base linux-headers git \
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh \
&& chmod +x ./rustup.sh \
&& ./rustup.sh -y
WORKDIR /opt/foundry
# Only diff from upstream docker image is this clone instead
# of COPY. We select a specific commit to use.
RUN git clone https://github.com/foundry-rs/foundry.git . \
&& git checkout b7b1ec471bdd38221773e1a569dc4f20297bd7db
RUN source $HOME/.profile && cargo build --release \
&& strip /opt/foundry/target/release/forge \
&& strip /opt/foundry/target/release/cast \
&& strip /opt/foundry/target/release/anvil
from alpine as foundry-client
ENV GLIBC_KEY=https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
ENV GLIBC_KEY_FILE=/etc/apk/keys/sgerrand.rsa.pub
ENV GLIBC_RELEASE=https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-2.35-r0.apk
RUN apk add linux-headers gcompat
RUN wget -q -O ${GLIBC_KEY_FILE} ${GLIBC_KEY} \
&& wget -O glibc.apk ${GLIBC_RELEASE} \
&& apk add glibc.apk --force
COPY --from=build-environment /opt/foundry/target/release/forge /usr/local/bin/forge
COPY --from=build-environment /opt/foundry/target/release/cast /usr/local/bin/cast
COPY --from=build-environment /opt/foundry/target/release/anvil /usr/local/bin/anvil
ENTRYPOINT ["/bin/sh", "-c"]
{
"name": "@eth-optimism/foundry",
"version": "0.0.0",
"scripts": {},
"license": "MIT",
"dependencies": {}
}
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
"ops/docker/go-builder", "ops/docker/go-builder",
"ops/docker/js-builder", "ops/docker/js-builder",
"ops/docker/ci-builder", "ops/docker/ci-builder",
"ops/docker/foundry",
"proxyd", "proxyd",
"teleportr" "teleportr"
], ],
...@@ -28,6 +29,8 @@ ...@@ -28,6 +29,8 @@
"@eth-optimism/contracts-bedrock/forge-std", "@eth-optimism/contracts-bedrock/forge-std",
"@eth-optimism/contracts-bedrock/@rari-capital/solmate", "@eth-optimism/contracts-bedrock/@rari-capital/solmate",
"@eth-optimism/contracts-bedrock/excessively-safe-call", "@eth-optimism/contracts-bedrock/excessively-safe-call",
"@eth-optimism/contracts-bedrock/@openzeppelin/contracts",
"@eth-optimism/contracts-bedrock/@openzeppelin/contracts-upgradeable",
"@eth-optimism/contracts-periphery/ds-test", "@eth-optimism/contracts-periphery/ds-test",
"@eth-optimism/contracts-periphery/forge-std", "@eth-optimism/contracts-periphery/forge-std",
"@eth-optimism/contracts-periphery/@rari-capital/solmate" "@eth-optimism/contracts-periphery/@rari-capital/solmate"
......
...@@ -4,7 +4,6 @@ import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/ta ...@@ -4,7 +4,6 @@ import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/ta
// Hardhat plugins // Hardhat plugins
import '@nomiclabs/hardhat-ethers' import '@nomiclabs/hardhat-ethers'
import '@typechain/hardhat'
import 'hardhat-deploy' import 'hardhat-deploy'
import '@foundry-rs/hardhat-forge' import '@foundry-rs/hardhat-forge'
import '@eth-optimism/hardhat-deploy-config' import '@eth-optimism/hardhat-deploy-config'
...@@ -48,16 +47,15 @@ const config: HardhatUserConfig = { ...@@ -48,16 +47,15 @@ const config: HardhatUserConfig = {
}, },
foundry: { foundry: {
buildInfo: true, buildInfo: true,
// call runSuper in the hardhat task so that
// other things execute
runSuper: true,
}, },
paths: { paths: {
deploy: './deploy', deploy: './deploy',
deployments: './deployments', deployments: './deployments',
deployConfig: './deploy-config', deployConfig: './deploy-config',
}, },
typechain: {
outDir: 'dist/types',
target: 'ethers-v5',
},
namedAccounts: { namedAccounts: {
deployer: { deployer: {
default: 0, default: 0,
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
"scripts": { "scripts": {
"build:forge": "forge build", "build:forge": "forge build",
"prebuild": "yarn ts-node scripts/verifyFoundryInstall.ts", "prebuild": "yarn ts-node scripts/verifyFoundryInstall.ts",
"build": "hardhat compile && tsc && hardhat typechain", "build": "hardhat compile && yarn build:ts && yarn typechain",
"build:ts": "tsc", "build:ts": "tsc -p tsconfig.json",
"deploy": "hardhat deploy", "deploy": "hardhat deploy",
"test": "forge test", "test": "forge test",
"gas-snapshot": "forge snapshot", "gas-snapshot": "forge snapshot",
...@@ -30,7 +30,8 @@ ...@@ -30,7 +30,8 @@
"lint:ts:fix": "yarn prettier --write .", "lint:ts:fix": "yarn prettier --write .",
"lint:contracts:fix": "yarn prettier --write 'contracts/**/*.sol'", "lint:contracts:fix": "yarn prettier --write 'contracts/**/*.sol'",
"lint:fix": "yarn lint:contracts:fix && yarn lint:ts:fix", "lint:fix": "yarn lint:contracts:fix && yarn lint:ts:fix",
"lint": "yarn lint:fix && yarn lint:check" "lint": "yarn lint:fix && yarn lint:check",
"typechain": "typechain --target ethers-v5 --out-dir dist/types --glob 'artifacts/!(build-info)/**/+([a-zA-Z0-9_]).json'"
}, },
"dependencies": { "dependencies": {
"@eth-optimism/core-utils": "^0.9.0", "@eth-optimism/core-utils": "^0.9.0",
...@@ -50,11 +51,10 @@ ...@@ -50,11 +51,10 @@
"devDependencies": { "devDependencies": {
"@eth-optimism/hardhat-deploy-config": "^0.2.0", "@eth-optimism/hardhat-deploy-config": "^0.2.0",
"@defi-wonderland/smock": "^2.0.2", "@defi-wonderland/smock": "^2.0.2",
"@foundry-rs/hardhat-forge": "^0.1.10", "@foundry-rs/hardhat-forge": "^0.1.11",
"@nomiclabs/hardhat-ethers": "^2.0.0", "@nomiclabs/hardhat-ethers": "^2.0.0",
"@nomiclabs/hardhat-waffle": "^2.0.0", "@nomiclabs/hardhat-waffle": "^2.0.0",
"@typechain/ethers-v5": "^10.1.0", "@typechain/ethers-v5": "^10.1.0",
"@typechain/hardhat": "^6.1.2",
"@typescript-eslint/eslint-plugin": "^5.26.0", "@typescript-eslint/eslint-plugin": "^5.26.0",
"@typescript-eslint/parser": "^4.29.1", "@typescript-eslint/parser": "^4.29.1",
"chai": "^4.2.0", "chai": "^4.2.0",
......
...@@ -1614,10 +1614,10 @@ ...@@ -1614,10 +1614,10 @@
command-exists "^1.2.9" command-exists "^1.2.9"
ts-interface-checker "^0.1.9" ts-interface-checker "^0.1.9"
"@foundry-rs/hardhat-forge@^0.1.10": "@foundry-rs/hardhat-forge@^0.1.11":
version "0.1.10" version "0.1.11"
resolved "https://registry.yarnpkg.com/@foundry-rs/hardhat-forge/-/hardhat-forge-0.1.10.tgz#031a85c1c8e51bbf72390d950721611d83f089df" resolved "https://registry.yarnpkg.com/@foundry-rs/hardhat-forge/-/hardhat-forge-0.1.11.tgz#64f604ea6d69d1fec3bbccf1b86e6766453f31ec"
integrity sha512-L5E+zXF/AazR2yO0ZoHtj74uyetO/mXxjSx5hOtjEpUX6czRbGP+tPbbTGjKnoMUzUP5uF1N0TjfCe7T9UpBbA== integrity sha512-2/52ucRcr2N21UB6qj8zbhceb6Gtac6J6uKvsvUBG1DTafWRtOQotQFo0rPq1BIi7mbUmczUlU6pwEIXZDhp6w==
dependencies: dependencies:
"@foundry-rs/easy-foundryup" "^0.1.3" "@foundry-rs/easy-foundryup" "^0.1.3"
"@nomiclabs/hardhat-ethers" "^2.0.0" "@nomiclabs/hardhat-ethers" "^2.0.0"
...@@ -3190,14 +3190,6 @@ ...@@ -3190,14 +3190,6 @@
dependencies: dependencies:
fs-extra "^9.1.0" fs-extra "^9.1.0"
"@typechain/hardhat@^6.1.2":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-6.1.2.tgz#d3beccc6937d93f9b437616b741f839a8b953693"
integrity sha512-k4Ea3pVITKB2DH8p1a5U38cyy7KZPD04Spo4q5b4wO+n2mT+uAz5dxckPtbczn/Kk5wiFq+ZkuOtw5ZKFhL/+w==
dependencies:
fs-extra "^9.1.0"
lodash "^4.17.15"
"@types/abstract-leveldown@*": "@types/abstract-leveldown@*":
version "5.0.2" version "5.0.2"
resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.2.tgz#ee81917fe38f770e29eec8139b6f16ee4a8b0a5f" resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.2.tgz#ee81917fe38f770e29eec8139b6f16ee4a8b0a5f"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment