Bridge contracts: implement require(cond, error) pattern and update to solc 0.8.27 #2484
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Checks | |
on: | |
pull_request: | |
types: | |
- labeled | |
- opened | |
- synchronize | |
push: | |
branches: | |
- '**' | |
jobs: | |
build: | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
- os: macos-13-latest | |
arch: arm64 | |
runs-on: macos-13-xlarge | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: cachix/cachix-action@v15 | |
with: | |
name: movementlabs | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Run Cargo Check in nix environment | |
run: | | |
nix develop --command bash -c "cargo check --all-targets" | |
unit-tests: | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
- os: macos-13-latest | |
arch: arm64 | |
runs-on: macos-13-xlarge | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Run unit tests in nix environment | |
run: | | |
nix develop --command bash <<EOF | |
cargo test \ | |
-p maptos-opt-executor \ | |
-p memseq \ | |
-p move-rocks \ | |
-p movement-types | |
EOF | |
suzuka-full-node-local: | |
if: github.event.label.name == 'cicd:suzuka-full-node' || github.ref == 'refs/heads/main' | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-16vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: cachix/cachix-action@v15 | |
with: | |
name: movementlabs | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Run Suzuka Full Node Tests Against Local ETH and Local Celestia | |
env: | |
CELESTIA_LOG_LEVEL: FATAL # adjust the log level while debugging | |
run: | | |
nix develop --command bash -c "just suzuka-full-node native build.setup.eth-local.celestia-local.test -t=false" | |
nix develop --command bash -c "just suzuka-full-node native build.setup.eth-local.celestia-local.test -t=false" | |
suzuka-full-node-malicious: | |
if: github.event.label.name == 'cicd:suzuka-full-node-malicious' || github.ref == 'refs/heads/main' | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-16vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Run Suzuka Full Node Gas DoS Test | |
env: | |
CELESTIA_LOG_LEVEL: FATAL # adjust the log level while debugging | |
run: | | |
nix develop --command bash -c "just suzuka-full-node native build.setup.eth-local.celestia-local.gas-dos -t=false" | |
suzuka-multi-node-local: | |
if: github.event.label.name == 'cicd:suzuka-multi-node-local' || github.ref == 'refs/heads/main' | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-16vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Run Suzuka Full Node Tests Against Local ETH and Local Celestia | |
env: | |
CELESTIA_LOG_LEVEL: FATAL # adjust the log level while debugging | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
run: | | |
nix develop --command bash -c "just suzuka-full-node native build.setup.eth-local.celestia-local.test-followers -t=false" | |
suzuka-indexer-local: | |
if: github.event.label.name == 'cicd:suzuka-full-node' || github.ref == 'refs/heads/main' | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-16vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- name: Run Suzuka Full Node + indexer Tests Against Local ETH and Local Celestia | |
env: | |
CELESTIA_LOG_LEVEL: FATAL # adjust the log level while debugging | |
run: | | |
nix develop --command bash -c "just suzuka-full-node native build.celestia-local.indexer.hasura.indexer-test -t=false" | |
suzuka-full-node-remote: | |
if: false | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: cachix/cachix-action@v15 | |
with: | |
name: movementlabs | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Run Suzuka Full Node Tests Against Holesky and Local Celestia | |
env: | |
CELESTIA_LOG_LEVEL: FATAL # adjust the log level while debugging | |
MCR_DEPLOYMENT_ACCOUNT_PRIVATE_KEY: ${{ secrets.MCR_DEPLOYMENT_ACCOUNT_PRIVATE_KEY }} | |
run: | | |
nix develop --command bash -c "just suzuka-full-node native build.setup.eth-holesky.celestia-local.test -t=false" | |
nix develop --command bash -c "just suzuka-full-node native build.setup.eth-holesky.celestia-local.test -t=false" | |
m1-da-light-node: | |
if: false # this is effectively tested by the above | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: cachix/cachix-action@v15 | |
with: | |
name: movementlabs | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Run M1 DA Light Node tests in nix environment | |
# adjust the log level while debugging | |
run: CELESTIA_LOG_LEVEL=FATAL nix develop --command bash -c "just m1-da-light-node native build.setup.test.local -t=false" | |
- name: Run foundry tests | |
# Run the foundry solidity contracts using the WETH9 contract on sepolia | |
run: cd protocol-units/bridge/contracts && forge test --fork-url https://ethereum-sepolia-rpc.publicnode.com -vv | |
mcr: | |
if: github.event.label.name == 'cicd:mcr' || github.ref == 'refs/heads/main' | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: cachix/cachix-action@v15 | |
with: | |
name: movementlabs | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Run MCR Client Tests | |
run: nix develop --command bash -c "just mcr-client native build.local.test -t=false" | |
## any use of Move CLI requires ubuntu-24.04 and to not run on buildjet | |
move-modules-test: | |
if: github.event.label.name == 'cicd:bridge' || github.ref == 'refs/heads/main' | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-24.04 | |
arch: x86_64 | |
runs-on: ubuntu-24.04 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Aptos CLI | |
run: | | |
curl -fsSL "https://aptos.dev/scripts/install_cli.py" | python3 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: cachix/cachix-action@v15 | |
with: | |
name: movementlabs | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Run Aptos Tests | |
run: | | |
nix develop --command bash -c " | |
set -e | |
set -x | |
chmod +x .github/scripts/update_move_toml.sh && \ | |
./.github/scripts/update_move_toml.sh && \ | |
cd protocol-units/bridge/move-modules && \ | |
aptos move test | |
" | |
solidity-bridge-tests: | |
if: github.event.label.name == 'cicd:bridge' || github.ref == 'refs/heads/main' | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
arch: x86_64 | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Nix | |
uses: DeterminateSystems/nix-installer-action@main | |
- uses: cachix/cachix-action@v15 | |
with: | |
name: movementlabs | |
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
- name: Run foundry tests | |
run: | | |
nix develop --command bash -c " | |
cd protocol-units/bridge/contracts && \ | |
forge test --fork-url https://ethereum-sepolia-rpc.publicnode.com -vv | |
" | |
## any use of Move CLI requires ubuntu-24.04 and to not run on buildjet | |
# bridge-client-integration: | |
# if: github.event.label.name == 'cicd:bridge' || github.ref == 'refs/heads/main' | |
# strategy: | |
# matrix: | |
# include: | |
# - os: ubuntu-24.04 | |
# arch: x86_64 | |
# runs-on: ubuntu-24.04 | |
# | |
# runs-on: ${{ matrix.runs-on }} | |
# | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# | |
# - name: Install Movement CLI | |
# run: | | |
# sudo apt-get update | |
# sudo apt-get install -y build-essential | |
# sudo apt-get install -y binutils | |
# sudo apt-get install -y lld | |
# sudo apt-get install -y libudev-dev | |
# sudo apt-get install -y libdw-dev | |
# which ld | |
# which lld | |
# which gcc | |
# which cc | |
# echo $PATH | |
# export GIT_CLONE_PROTECTION_ACTIVE=false | |
# git clone https://github.com/movementlabsxyz/aptos-core/ | |
# cd aptos-core | |
# cargo build -p movement | |
# sudo cp target/debug/movement /usr/local/bin/ | |
# cd - | |
# | |
# - name: Install Nix | |
# uses: DeterminateSystems/nix-installer-action@main | |
# | |
# - uses: cachix/cachix-action@v15 | |
# with: | |
# name: movementlabs | |
# authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' | |
# | |
# - name: Run eth_movement tests | |
# run: | | |
# nix develop --command bash -c "rust_backtrace=1 cargo test --test eth_movement -- --nocapture --test-threads=1" | |
# | |
# - name: Run movement_eth tests | |
# run: | | |
# nix develop --command bash -c "rust_backtrace=1 cargo test --test movement_eth -- --nocapture --test-threads=1" | |
# Indexer: | |
# strategy: | |
# matrix: | |
# include: | |
# - os: ubuntu-22.04 | |
# arch: x86_64 | |
# runs-on: buildjet-8vcpu-ubuntu-2204 | |
# | |
# runs-on: ${{ matrix.runs-on }} | |
# | |
# steps: | |
# - name: Checkout repository | |
# uses: actions/checkout@v4 | |
# | |
# - name: Install Nix | |
# uses: DeterminateSystems/nix-installer-action@main | |
# | |
# - name: Run Indexer tests in nix environment | |
# # adjust the log level while debugging | |
# run: CELESTIA_LOG_LEVEL=FATAL nix develop --command bash -c "just suzuka-full-node native build.celestia-local.indexer.hasura.indexer-test -t=false" |