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 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 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 \ 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..e8993307f1 --- /dev/null +++ b/suave/devenv/docker-compose.yml @@ -0,0 +1,36 @@ +version: "3.8" + +services: + suave-mevm: + image: 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: + build: ../.. + 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