Skip to content

Commit

Permalink
feat: Frax middleman example (#41)
Browse files Browse the repository at this point in the history
* feat: Frax middleman example

* feat: tests on FRAX incentivization handler

* feat: deployment scripts

* fix: reentrancy

* feat: updatng sdk

* feat: build

* frax handler

* feat: remove slither from ci
  • Loading branch information
sogipec authored Jan 31, 2024
1 parent a060f9d commit e7e7e2d
Show file tree
Hide file tree
Showing 14 changed files with 998 additions and 369 deletions.
35 changes: 35 additions & 0 deletions .github/actions/setup-repo/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Setup repo
description: Runs all steps to setup the repo (install node_modules, build, etc...)
inputs:
registry-token:
description: 'PAT to access registries'
runs:
using: 'composite'
steps:
- name: Get yarn cache directory path
id: yarn-cache-dir-path
shell: bash
run: |
echo "::set-output name=dir::$(yarn cache dir)"
echo "::set-output name=version::$(yarn -v)"
- uses: actions/setup-node@v3
with:
node-version: '20'

- uses: actions/cache@v2
id: yarn-cache
with:
path: |
**/node_modules
${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
shell: bash
run: echo "//npm.pkg.github.com/:_authToken=$GH_REGISTRY_ACCESS_TOKEN" >> .npmrc && yarn install --frozen-lockfile --verbose && rm -f .npmrc
env:
GH_REGISTRY_ACCESS_TOKEN: ${{ inputs.registry-token }}
60 changes: 35 additions & 25 deletions .github/workflows/ci-deep.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
name: "CI Deep"
name: 'CI Deep'

on:
schedule:
- cron: "0 3 * * 0" # at 3:00am UTC every Sunday
- cron: '0 3 * * 0' # at 3:00am UTC every Sunday
workflow_dispatch:
inputs:
fuzzRuns:
default: "10000"
description: "Unit: number of fuzz runs."
default: '10000'
description: 'Unit: number of fuzz runs.'
required: false

jobs:
Expand All @@ -19,15 +19,20 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 18
cache: "yarn"
cache: 'yarn'

- name: Setup repo
uses: ./.github/actions/setup-repo
with:
registry-token: ${{ secrets.GH_REGISTRY_ACCESS_TOKEN }}

- name: Install dependencies
run: yarn install

- name: Run solhint
run: yarn lint:check

- name: "Add lint summary"
- name: 'Add lint summary'
run: |
echo "## Lint result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
Expand All @@ -37,12 +42,17 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
submodules: 'recursive'

- uses: actions/setup-node@v3
with:
node-version: 18
cache: "yarn"
cache: 'yarn'

- name: Setup repo
uses: ./.github/actions/setup-repo
with:
registry-token: ${{ secrets.GH_REGISTRY_ACCESS_TOKEN }}

- name: Install dependencies
run: yarn install --frozen-lockfile
Expand All @@ -58,10 +68,10 @@ jobs:
- name: Compile foundry
run: yarn foundry:compile --sizes

- name: "Cache the build so that it can be re-used by the other jobs"
uses: "actions/cache/save@v3"
- name: 'Cache the build so that it can be re-used by the other jobs'
uses: 'actions/cache/save@v3'
with:
key: "build-${{ github.sha }}"
key: 'build-${{ github.sha }}'
path: |
cache-forge
out
Expand All @@ -70,27 +80,27 @@ jobs:
typechain
node_modules
- name: "Add build summary"
- name: 'Add build summary'
run: |
echo "## Build result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
hardhat-tests:
needs: ["build", "lint"]
needs: ['build', 'lint']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- uses: actions/setup-node@v3
with:
node-version: 18
cache: "yarn"
cache: 'yarn'

- name: "Restore the cached build"
uses: "actions/cache/restore@v3"
- name: 'Restore the cached build'
uses: 'actions/cache/restore@v3'
with:
fail-on-cache-miss: true
key: "build-${{ github.sha }}"
key: 'build-${{ github.sha }}'
path: |
cache-forge
out
Expand All @@ -108,29 +118,29 @@ jobs:
CI: true
ETH_NODE_URI_ARBITRUM: ${{ secrets.ETH_NODE_URI_ARBITRUM }}

- name: "Add test summary"
- name: 'Add test summary'
run: |
echo "## Hardhat Unit tests result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
foundry-tests:
needs: ["build", "lint"]
needs: ['build', 'lint']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
submodules: 'recursive'

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: "Restore the cached build"
uses: "actions/cache/restore@v3"
- name: 'Restore the cached build'
uses: 'actions/cache/restore@v3'
with:
fail-on-cache-miss: true
key: "build-${{ github.sha }}"
key: 'build-${{ github.sha }}'
path: |
cache-forge
out
Expand All @@ -145,7 +155,7 @@ jobs:
ETH_NODE_URI_OPTIMISM: ${{ secrets.ETH_NODE_URI_OPTIMISM }}
FOUNDRY_FUZZ_RUNS: ${{ github.event.inputs.fuzzRuns || '10000' }}

- name: "Add test summary"
- name: 'Add test summary'
run: |
echo "## Foundry Unit tests result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
84 changes: 32 additions & 52 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
pull_request:
push:
branches:
- "main"
- 'main'

jobs:
lint:
Expand All @@ -16,15 +16,20 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 18
cache: "yarn"
cache: 'yarn'

- name: Setup repo
uses: ./.github/actions/setup-repo
with:
registry-token: ${{ secrets.GH_REGISTRY_ACCESS_TOKEN }}

- name: Install dependencies
run: yarn install

- name: Run solhint
run: yarn lint:check

- name: "Add lint summary"
- name: 'Add lint summary'
run: |
echo "## Lint result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
Expand All @@ -33,12 +38,17 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
submodules: 'recursive'

- uses: actions/setup-node@v3
with:
node-version: 18
cache: "yarn"
cache: 'yarn'

- name: Setup repo
uses: ./.github/actions/setup-repo
with:
registry-token: ${{ secrets.GH_REGISTRY_ACCESS_TOKEN }}

- name: Install dependencies
run: yarn install --frozen-lockfile
Expand All @@ -54,10 +64,10 @@ jobs:
- name: Compile foundry
run: yarn foundry:compile --sizes

- name: "Cache the build so that it can be re-used by the other jobs"
uses: "actions/cache/save@v3"
- name: 'Cache the build so that it can be re-used by the other jobs'
uses: 'actions/cache/save@v3'
with:
key: "build-${{ github.sha }}"
key: 'build-${{ github.sha }}'
path: |
cache-forge
out
Expand All @@ -66,27 +76,27 @@ jobs:
typechain
node_modules
- name: "Add build summary"
- name: 'Add build summary'
run: |
echo "## Build result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
hardhat-tests:
needs: ["build", "lint"]
needs: ['build', 'lint']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- uses: actions/setup-node@v3
with:
node-version: 18
cache: "yarn"
cache: 'yarn'

- name: "Restore the cached build"
uses: "actions/cache/restore@v3"
- name: 'Restore the cached build'
uses: 'actions/cache/restore@v3'
with:
fail-on-cache-miss: true
key: "build-${{ github.sha }}"
key: 'build-${{ github.sha }}'
path: |
cache-forge
out
Expand All @@ -95,37 +105,36 @@ jobs:
typechain
node_modules
- run: export NODE_OPTIONS=--max_old_space_size=11264

- name: Run unit tests
run: yarn hardhat:test
env:
ENABLE_GAS_REPORT: true
CI: true
ETH_NODE_URI_ARBITRUM: ${{ secrets.ETH_NODE_URI_ARBITRUM }}

- name: "Add test summary"
- name: 'Add test summary'
run: |
echo "## Hardhat Unit tests result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
foundry-tests:
needs: ["build", "lint"]
needs: ['build', 'lint']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: "recursive"
submodules: 'recursive'

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: "Restore the cached build"
uses: "actions/cache/restore@v3"
- name: 'Restore the cached build'
uses: 'actions/cache/restore@v3'
with:
fail-on-cache-miss: true
key: "build-${{ github.sha }}"
key: 'build-${{ github.sha }}'
path: |
cache-forge
out
Expand All @@ -137,39 +146,10 @@ jobs:
- name: Run Foundry tests
run: yarn foundry:test
env:
FOUNDRY_FUZZ_RUNS: "5000"
FOUNDRY_FUZZ_RUNS: '5000'
ETH_NODE_URI_OPTIMISM: ${{ secrets.ETH_NODE_URI_OPTIMISM }}

- name: "Add test summary"
- name: 'Add test summary'
run: |
echo "## Foundry Unit tests result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
slither-analyze:
needs: ["build", "lint"]
permissions:
actions: "read"
contents: "read"
security-events: "write"
runs-on: "ubuntu-latest"
steps:
- name: "Check out the repo"
uses: "actions/checkout@v3"

- name: "Run Slither analysis"
uses: "crytic/[email protected]"
id: "slither"
with:
fail-on: "none"
sarif: "results.sarif"
node-version: 18

- name: "Upload SARIF file to GitHub code scanning"
uses: "github/codeql-action/upload-sarif@v2"
with:
sarif_file: ${{ steps.slither.outputs.sarif }}

- name: "Add Slither summary"
run: |
echo "## Slither result" >> $GITHUB_STEP_SUMMARY
echo "✅ Uploaded to GitHub code scanning" >> $GITHUB_STEP_SUMMARY
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@angleprotocol:registry=https://npm.pkg.github.com
Loading

0 comments on commit e7e7e2d

Please sign in to comment.