Skip to content

feat: add Hoodi testnet support and update ERC20Mock contract #144

feat: add Hoodi testnet support and update ERC20Mock contract

feat: add Hoodi testnet support and update ERC20Mock contract #144

# Check that selectors.txt is up-to-date with all contract packages
name: contracts-check-selectors
on:
pull_request:
paths:
- '.github/workflows/contracts-check-selectors.yml'
- 'contracts/**/*.sol'
- 'contracts/selectors.txt'
push:
branches:
- main
workflow_dispatch:
permissions: {}
env:
# Safe-chain enforces its own minimum-package-age check independently,
# mirror both the age (72 h) and the exclusion here. This job installs every
# contract package, including confidential-wrapper's @zama-fhe/relayer-sdk.
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_HOURS: "72"
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: "@zama-fhe/relayer-sdk"
concurrency:
group: ci-contracts-check-selectors-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
check-selectors:
name: contracts-check-selectors/check-selectors (bpr)
runs-on: ubuntu-latest
permissions:
contents: 'read' # Required to checkout repository code
steps:
# TODO: remove once GitHub runner images ship the CVE-2026-31431 kernel fix
- name: Workaround CVE-2026-31431 (copy.fail)
run: |
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
if lsmod | grep -q algif_aead; then
sudo rmmod algif_aead || echo "WARNING: rmmod failed - module may be in use"
elif modinfo algif_aead 2>/dev/null | grep -q builtin; then
echo "WARNING: algif_aead built-in - modprobe.d blacklist has no effect"
fi
- name: Checkout project
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: 'false'
- name: Install pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
with:
version: 9
- name: Setup Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@8789b3e21e6c11b2697f5eb56eddae542f746c10 # v1.7.0
with:
version: v1.3.1
- name: Cache node_modules
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
contracts/confidential-token-wrappers-registry/node_modules
contracts/confidential-wrapper/node_modules
contracts/feesBurner/node_modules
contracts/governance/node_modules
contracts/pauserSetWrapper/node_modules
contracts/safe/node_modules
contracts/solanaOFT/node_modules
contracts/staking/node_modules
contracts/token/node_modules
key: contracts-node-modules-${{ hashFiles('contracts/*/package-lock.json', 'contracts/*/pnpm-lock.yaml') }}
- name: Install safe-chain (Aikido malicious-package guard)
shell: bash
run: curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.8/install-safe-chain.sh | sh -s -- --ci
- name: Check selectors
working-directory: contracts
run: make check-selectors