From 7cce0bef0583ea94f5c680ca2347495c8eceaa64 Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Wed, 31 Jan 2024 16:00:29 -0500 Subject: [PATCH 1/8] Add suave/devenv. --- suave/devenv/README.md | 6 ++++ suave/devenv/docker-compose.yml | 36 +++++++++++++++++++ ...--b5feafbdd752ad52afb7e1bd2e40432a485bbb7f | 1 + suave/devenv/suave-ex-node/password.txt | 0 4 files changed, 43 insertions(+) create mode 100644 suave/devenv/README.md create mode 100644 suave/devenv/docker-compose.yml create mode 100644 suave/devenv/suave-ex-node/keystore/UTC--2023-09-04T11-50-59.559521488Z--b5feafbdd752ad52afb7e1bd2e40432a485bbb7f create mode 100644 suave/devenv/suave-ex-node/password.txt diff --git a/suave/devenv/README.md b/suave/devenv/README.md new file mode 100644 index 0000000000..636201ba52 --- /dev/null +++ b/suave/devenv/README.md @@ -0,0 +1,6 @@ +## Run the devnet: +`docker-compose up --build --force-recreate` + +## Genesis info +Execution node's address: 0xb5feafbdd752ad52afb7e1bd2e40432a485bbb7f (private key: 6c45335a22461ccdb978b78ab61b238bad2fae4544fb55c14eb096c875ccfc52) +Pre-funded private key: 0x91ab9a7e53c220e6210460b65a7a3bb2ca181412a8a7b43ff336b3df1737ce12, Address: 0xBE69d72ca5f88aCba033a063dF5DBe43a4148De0 diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml new file mode 100644 index 0000000000..699e94b429 --- /dev/null +++ b/suave/devenv/docker-compose.yml @@ -0,0 +1,36 @@ +version: "3.8" + +services: + suave-mevm: + build: flashbots/suave-geth:latest + command: + - --dev + - --dev.gaslimit=30000000 + - --http + - --http.port=8545 + - --http.addr=0.0.0.0 + - --http.vhosts=* + - --http.corsdomain=* + - --ws + - --ws.origins=* + - --ws.addr=0.0.0.0 + - --datadir=/data + - --keystore=/keystore/keystore + - --unlock=0xB5fEAfbDD752ad52Afb7e1bD2E40432A485bBB7F + - --password=/keystore/password.txt + depends_on: + - suave-enabled-chain + volumes: + - ./suave-ex-node:/keystore + ports: + - 8545:8545 + - 8546:8546 + suave-enabled-chain: + image: flashbots/suave-geth:latest + command: + - --dev + - --dev.gaslimit=30000000 + - --http + - --ws + ports: + - 8555:8545 diff --git a/suave/devenv/suave-ex-node/keystore/UTC--2023-09-04T11-50-59.559521488Z--b5feafbdd752ad52afb7e1bd2e40432a485bbb7f b/suave/devenv/suave-ex-node/keystore/UTC--2023-09-04T11-50-59.559521488Z--b5feafbdd752ad52afb7e1bd2e40432a485bbb7f new file mode 100644 index 0000000000..38d63837f4 --- /dev/null +++ b/suave/devenv/suave-ex-node/keystore/UTC--2023-09-04T11-50-59.559521488Z--b5feafbdd752ad52afb7e1bd2e40432a485bbb7f @@ -0,0 +1 @@ +{"address":"b5feafbdd752ad52afb7e1bd2e40432a485bbb7f","crypto":{"cipher":"aes-128-ctr","ciphertext":"8075ff2ed17c6cf6cd162b4bdd2926034e2067f03055990d57510e5d807ef06e","cipherparams":{"iv":"8c31b77d9518a68fda4aa6c90d62562d"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"6e55b1eea32430c4dc0b87cfc31168d552249b8ba946314e3c41dbeaeed3d125"},"mac":"5e411244fd732deb4464d247cfeb9beadc8a37558f12720c4d2ee8691436c50c"},"id":"51d12702-2276-44a9-972e-2011c56edf4e","version":3} \ No newline at end of file diff --git a/suave/devenv/suave-ex-node/password.txt b/suave/devenv/suave-ex-node/password.txt new file mode 100644 index 0000000000..e69de29bb2 From e7a8cb5296ae182fd704a88cefa621a16e679392 Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Wed, 31 Jan 2024 16:01:14 -0500 Subject: [PATCH 2/8] Add make targets for devenv. --- Makefile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Makefile b/Makefile index d885443205..003fe448f2 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,15 @@ devtools: @type "solc" 2> /dev/null || echo 'Please install solc' @type "protoc" 2> /dev/null || echo 'Please install protoc' +devnet-up: + docker-compose -f ./suave/devenv/docker-compose.yml up -d --build + +devnet-down: + docker-compose -f ./suave/devenv/docker-compose.yml down + +fmt-contracts: + cd suave && forge fmt + release: docker run \ --rm \ From 36bbcd80898d0aff997a717244e20df00d781807 Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Wed, 31 Jan 2024 16:01:34 -0500 Subject: [PATCH 3/8] build image locally for devenv testing. --- suave/devenv/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml index 699e94b429..ae1f59f008 100644 --- a/suave/devenv/docker-compose.yml +++ b/suave/devenv/docker-compose.yml @@ -26,7 +26,7 @@ services: - 8545:8545 - 8546:8546 suave-enabled-chain: - image: flashbots/suave-geth:latest + build: ../.. command: - --dev - --dev.gaslimit=30000000 From 5ddbd1a901a78383a4e78c56171092d2ee53546d Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Wed, 31 Jan 2024 16:20:46 -0500 Subject: [PATCH 4/8] Add build stage to CI pipeline. --- .github/workflows/checks.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index dced6220e3..df20ea3876 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -26,3 +26,19 @@ jobs: go-version: ${{ matrix.go-version }} - name: Run unit tests run: go test -short ./accounts ./cmd/geth ./core ./core/types ./core/vm ./eth/... ./internal/ethapi/... ./miner ./params ./suave/... + + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Set up Go 1.x + uses: actions/setup-go@v3 + with: + go-version: ^1.21 + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Build + run: make geth From eb332cd7efafc42b3b640b97d612f658f7d726cb Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Wed, 31 Jan 2024 16:24:24 -0500 Subject: [PATCH 5/8] Add devenv stage to CI pipeline. --- .github/workflows/checks.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index df20ea3876..0aba39ff7d 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -42,3 +42,28 @@ jobs: - name: Build run: make geth + + devenv: + name: Devenv + runs-on: ubuntu-latest + steps: + - name: Set up Go 1.x + uses: actions/setup-go@v3 + with: + go-version: ^1.20 + id: go + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Build contracts + run: cd suave && forge build + + - name: Run dev environment + run: make devnet-up + + # - name: Run mev-share example + # run: go run suave/devenv/cmd/main.go From f0217995f2fbb06f67719e05f1b4738ccdca0173 Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Wed, 31 Jan 2024 16:25:53 -0500 Subject: [PATCH 6/8] Fix docker-compose.yml --- suave/devenv/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/suave/devenv/docker-compose.yml b/suave/devenv/docker-compose.yml index ae1f59f008..e8993307f1 100644 --- a/suave/devenv/docker-compose.yml +++ b/suave/devenv/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.8" services: suave-mevm: - build: flashbots/suave-geth:latest + image: flashbots/suave-geth:latest command: - --dev - --dev.gaslimit=30000000 From 11c9f7df4614e4eea9103cf99e419c327c4b5ac9 Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Wed, 31 Jan 2024 16:37:35 -0500 Subject: [PATCH 7/8] On second thought, remove build stage. --- .github/workflows/checks.yml | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 0aba39ff7d..df20ea3876 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -42,28 +42,3 @@ jobs: - name: Build run: make geth - - devenv: - name: Devenv - runs-on: ubuntu-latest - steps: - - name: Set up Go 1.x - uses: actions/setup-go@v3 - with: - go-version: ^1.20 - id: go - - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - - - name: Check out code into the Go module directory - uses: actions/checkout@v2 - - - name: Build contracts - run: cd suave && forge build - - - name: Run dev environment - run: make devnet-up - - # - name: Run mev-share example - # run: go run suave/devenv/cmd/main.go From 2c7940f9d8f9e49648cbb7286ba536d7e633a0b8 Mon Sep 17 00:00:00 2001 From: Louis Thibault Date: Thu, 1 Feb 2024 16:28:25 -0500 Subject: [PATCH 8/8] Add integration testing to CI pipeline. --- .github/workflows/integration-examples.yml | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/integration-examples.yml diff --git a/.github/workflows/integration-examples.yml b/.github/workflows/integration-examples.yml new file mode 100644 index 0000000000..0ef28bca32 --- /dev/null +++ b/.github/workflows/integration-examples.yml @@ -0,0 +1,42 @@ +name: Integration examples + +on: + push: + branches: [main] + pull_request: + +jobs: + suapp-examples: + name: Devenv + runs-on: ubuntu-latest + steps: + - name: Set up Go 1.x + uses: actions/setup-go@v3 + with: + go-version: 1.21 + id: go + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: Run dev environment + run: docker-compose -f ./suave/devenv/docker-compose.yml up -d --build + + - name: Check out suapp-examples + uses: actions/checkout@v2 + with: + repository: flashbots/suapp-examples + path: suapp-examples + + - name: Build suapp-examples + run: | + cd suapp-examples + forge build + + - name: Run suapp-examples + run: | + cd suapp-examples + make run-integration