Skip to content

[OZ] N-03

[OZ] N-03 #236

Workflow file for this run

on: [pull_request, workflow_dispatch]
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
jobs:
prettify:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
node_version:
- 20
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
- name: Run Prettier
run: npx prettier -c '**/*.{md,yml,yaml}'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Check Solidity formatting with forge fmt
run: |
forge fmt --check
# Optional: Revert changes made by forge fmt to leave the working directory clean
- name: Revert formatting changes
if: failure()
run: git reset --hard $BEFORE_FMT
codespell:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run codespell
uses: codespell-project/actions-codespell@v2.0
with:
check_filenames: true
ignore_words_list: we
skip: ./.git,./lib,./certora
validate-links:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
ruby_version:
- 3.3
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby_version }}
bundler-cache: true
- name: Install awesome_bot
run: gem install awesome_bot
- name: Validate URLs
run: awesome_bot ./*.md src/**/*.sol --allow-dupe --allow-redirect --request-delay 0.4 --white-list mainnet.infura.io/v3,localhost
solhint:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
node_version:
- 20
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run solhint
run: |
yarn install
yarn solhint
slither:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
node_version:
- 20
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install dependencies
run: |
wget https://github.com/ethereum/solidity/releases/download/v0.8.7/solc-static-linux
chmod +x solc-static-linux
sudo mv solc-static-linux /usr/local/bin/solc
pip3 install slither-analyzer
pip3 inspect
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Run Slither
run: |
slither src
storage-check:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
node_version:
- 20
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Install Foundry
uses: onbjerg/foundry-toolchain@v1
with:
version: nightly
- name: Check storage layout
uses: Rubilmax/foundry-storage-check@v3.7
with:
contract: src/IonPool.sol:IonPool
address: "0x00000000005a1de4c0eb34609e211ad8831707e0" # the address at which the contract check is deployed