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 @@
- 'packages/batch-submitter/**/*'
- 'packages/contracts/**/*'
- 'packages/contracts-periphery/**/*'
- 'packages/contracts-bedrock/**/*'
- 'packages/data-transport-layer/**/*'
- 'packages/drippie-mon/**/*'
- 'packages/message-relayer/**/*'
......@@ -30,6 +31,9 @@ M-contracts:
M-contracts-periphery:
- any: ['packages/contracts-periphery/**/*']
M-contracts-bedrock:
- any: ['packages/contracts-bedrock/**/*']
M-core-utils:
- any: ['packages/core-utils/**/*']
......
......@@ -30,6 +30,7 @@ jobs:
go-builder: ${{ steps.packages.outputs.go-builder }}
js-builder: ${{ steps.packages.outputs.js-builder }}
ci-builder: ${{ steps.packages.outputs.ci-builder }}
foundry: ${{ steps.packages.outputs.foundry }}
steps:
- name: Checkout Repo
......@@ -236,6 +237,32 @@ jobs:
push: true
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:
name: Publish proxyd Version ${{ needs.release.outputs.proxyd }}
needs: release
......
......@@ -2,7 +2,7 @@
# be used to build any of the follow-on services
#
# ### 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
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 ghcr.io/foundry-rs/foundry:nightly as foundry
FROM ethereumoptimism/foundry:latest as foundry
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 @@
"ops/docker/go-builder",
"ops/docker/js-builder",
"ops/docker/ci-builder",
"ops/docker/foundry",
"proxyd",
"teleportr"
],
......@@ -28,6 +29,8 @@
"@eth-optimism/contracts-bedrock/forge-std",
"@eth-optimism/contracts-bedrock/@rari-capital/solmate",
"@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/forge-std",
"@eth-optimism/contracts-periphery/@rari-capital/solmate"
......
......@@ -4,7 +4,6 @@ import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from 'hardhat/builtin-tasks/ta
// Hardhat plugins
import '@nomiclabs/hardhat-ethers'
import '@typechain/hardhat'
import 'hardhat-deploy'
import '@foundry-rs/hardhat-forge'
import '@eth-optimism/hardhat-deploy-config'
......@@ -48,16 +47,15 @@ const config: HardhatUserConfig = {
},
foundry: {
buildInfo: true,
// call runSuper in the hardhat task so that
// other things execute
runSuper: true,
},
paths: {
deploy: './deploy',
deployments: './deployments',
deployConfig: './deploy-config',
},
typechain: {
outDir: 'dist/types',
target: 'ethers-v5',
},
namedAccounts: {
deployer: {
default: 0,
......
......@@ -16,8 +16,8 @@
"scripts": {
"build:forge": "forge build",
"prebuild": "yarn ts-node scripts/verifyFoundryInstall.ts",
"build": "hardhat compile && tsc && hardhat typechain",
"build:ts": "tsc",
"build": "hardhat compile && yarn build:ts && yarn typechain",
"build:ts": "tsc -p tsconfig.json",
"deploy": "hardhat deploy",
"test": "forge test",
"gas-snapshot": "forge snapshot",
......@@ -30,7 +30,8 @@
"lint:ts:fix": "yarn prettier --write .",
"lint:contracts:fix": "yarn prettier --write 'contracts/**/*.sol'",
"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": {
"@eth-optimism/core-utils": "^0.9.0",
......@@ -50,11 +51,10 @@
"devDependencies": {
"@eth-optimism/hardhat-deploy-config": "^0.2.0",
"@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-waffle": "^2.0.0",
"@typechain/ethers-v5": "^10.1.0",
"@typechain/hardhat": "^6.1.2",
"@typescript-eslint/eslint-plugin": "^5.26.0",
"@typescript-eslint/parser": "^4.29.1",
"chai": "^4.2.0",
......
......@@ -1614,10 +1614,10 @@
command-exists "^1.2.9"
ts-interface-checker "^0.1.9"
"@foundry-rs/hardhat-forge@^0.1.10":
version "0.1.10"
resolved "https://registry.yarnpkg.com/@foundry-rs/hardhat-forge/-/hardhat-forge-0.1.10.tgz#031a85c1c8e51bbf72390d950721611d83f089df"
integrity sha512-L5E+zXF/AazR2yO0ZoHtj74uyetO/mXxjSx5hOtjEpUX6czRbGP+tPbbTGjKnoMUzUP5uF1N0TjfCe7T9UpBbA==
"@foundry-rs/hardhat-forge@^0.1.11":
version "0.1.11"
resolved "https://registry.yarnpkg.com/@foundry-rs/hardhat-forge/-/hardhat-forge-0.1.11.tgz#64f604ea6d69d1fec3bbccf1b86e6766453f31ec"
integrity sha512-2/52ucRcr2N21UB6qj8zbhceb6Gtac6J6uKvsvUBG1DTafWRtOQotQFo0rPq1BIi7mbUmczUlU6pwEIXZDhp6w==
dependencies:
"@foundry-rs/easy-foundryup" "^0.1.3"
"@nomiclabs/hardhat-ethers" "^2.0.0"
......@@ -3190,14 +3190,6 @@
dependencies:
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@*":
version "5.0.2"
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