Skip to content

[intent-coprocessor]: Price Discovery Protocol #3707

[intent-coprocessor]: Price Discovery Protocol

[intent-coprocessor]: Price Discovery Protocol #3707

Workflow file for this run

name: CI
on:
push:
branches:
- main
paths:
- "**/*.rs"
- "**/Cargo.toml"
- "**/Cargo.lock"
- ".github/workflows/ci.yml"
- "!sdk/**"
pull_request_target:
types: [opened, synchronize]
paths:
- "**/*.rs"
- "**/Cargo.toml"
- "**/Cargo.lock"
- ".github/workflows/ci.yml"
- "!sdk/**"
# pull_request:
# branches:
# - main
# paths:
# - "**/*.rs"
# - "**/Cargo.toml"
# - "**/Cargo.lock"
# - ".github/workflows/ci.yml"
concurrency:
group: ci-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
FOUNDRY_PROFILE: default
BSC_URL: ${{ secrets.BSC_URL }}
OP_URL: ${{ secrets.OP_URL }}
SEPOLIA_URL: ${{ secrets.SEPOLIA_URL }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
POLYGON_RPC: ${{ secrets.POLYGON_RPC }}
WASM_BINDGEN_TEST_TIMEOUT: 5400
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
MAINNET_FORK_URL: ${{ secrets.MAINNET_FORK_URL }}
TELEMETRY_SECRET_KEY: ${{ secrets.TELEMETRY_SECRET_KEY }}
STANDARD_TENDERMINT_URL: ${{secrets.STANDARD_TENDERMINT_URL}}
POLYGON_HEIMDALL: ${{secrets.POLYGON_HEIMDALL}}
POLYGON_HEIMDALL_REST: ${{secrets.POLYGON_HEIMDALL_REST}}
POLYGON_EXECUTION_RPC: ${{secrets.POLYGON_EXECUTION_RPC}}
SEI_RPC_URL: ${{secrets.SEI_RPC_URL}}
KAVA_RPC_URL: ${{secrets.KAVA_RPC_URL}}
jobs:
check-wasm:
name: Check Wasm Crates
runs-on: arc-runner-set
if: github.event.pull_request.draft != true
strategy:
matrix:
crate: [gargantua-runtime, nexus-runtime]
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- uses: Swatinem/rust-cache@v2
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- name: check no-std
env:
RUSTFLAGS: "--cfg substrate_runtime"
run: |
cargo check -p ${{ matrix.crate }} --no-default-features --target=wasm32-unknown-unknown --locked
check-workspace:
name: Check Workspace
runs-on: arc-runner-set
if: github.event.pull_request.draft != true
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
curl -L https://sp1.succinct.xyz | bash
~/.sp1/bin/sp1up --token $GITHUB_TOKEN
~/.sp1/bin/cargo-prove prove --version
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.24"
- name: check workspace
run: |
cargo check --all --benches --locked
unit-tests:
name: Unit Tests
runs-on: arc-runner-set
if: github.event.pull_request.draft != true
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
curl -L https://sp1.succinct.xyz | bash
~/.sp1/bin/sp1up --token $GITHUB_TOKEN
~/.sp1/bin/cargo-prove prove --version
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "1.24"
- uses: Swatinem/rust-cache@v2
- name: Run unit tests
run: |
cargo test --all-targets --locked
simnet-tests:
name: Simnet Tests
runs-on: arc-runner-set
if: github.event.pull_request.draft != true
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
- name: Run Simnet Tests
run: |
cargo build -p hyperbridge --release
./target/release/hyperbridge simnode --chain=gargantua-2000 --name=alice --tmp --state-pruning=archive --blocks-pruning=archive --rpc-port=9990 --port 40337 --log="mmr=trace" --rpc-cors=all --unsafe-rpc-external --rpc-methods=unsafe --pool-type=single-state &
./scripts/wait_for_tcp_port_opening.sh localhost 9990
cargo test -p simtests -- --nocapture --ignored --test-threads=1 --skip test_runtime_upgrade_and_fee_migration
- name: Cleanup
if: always()
run: |
pkill -f "hyperbridge simnode" || true
fuser -k 9990/tcp || true
xcm-tests:
name: XCM Integration Tests
runs-on: arc-runner-set
if: github.event.pull_request.draft != true
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
- name: Build Hyperbridge Binary
run: cargo build --release -p hyperbridge
- name: Setup Parachain Devnet
run: |
cd ../
mkdir -p polkadot-sdk/target/release
cd polkadot-sdk/target/release
wget -O ./polkadot -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot'
wget -O ./polkadot-parachain -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot-parachain'
wget -O ./polkadot-execute-worker -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot-execute-worker'
wget -O ./polkadot-prepare-worker -q --show-progress 'https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot-prepare-worker'
sudo chmod +x ./polkadot
sudo chmod +x ./polkadot-parachain
sudo chmod +x ./polkadot-execute-worker
sudo chmod +x ./polkadot-prepare-worker
cd ../../../hyperbridge
wget -O ./zombienet -q --show-progress https://github.com/paritytech/zombienet/releases/download/v1.3.133/zombienet-linux-x64
sudo chmod +x ./zombienet
nohup ./zombienet spawn --provider native ./scripts/zombienet/local-testnet.toml & disown
./scripts/wait_for_tcp_port_opening.sh localhost 9922
./scripts/wait_for_tcp_port_opening.sh localhost 9990
./scripts/wait_for_tcp_port_opening.sh localhost 9910
- name: Run XCM Tests
run: |
cargo test -p pallet-ismp-testsuite --lib xcm_integration_test -- --nocapture --ignored
- name: Cleanup
if: always()
run: |
pkill -f "hyperbridge" || true
pkill -f "polkadot" || true
pkill -f "zombienet" || true
sudo rm -rf ./zombienet
cd ../
sudo rm -rf ./polkadot-sdk
ethereum-tests:
name: Ethereum Sync Committee Tests
runs-on: ubuntu-22.04
if: github.event.pull_request.draft != true
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
- name: Setup Eth POS Devnet
run: |
git clone --branch david/electra https://github.com/polytope-labs/eth-pos-devnet.git
DOCKER_CLIENT_TIMEOUT=300 COMPOSE_HTTP_TIMEOUT=300 docker compose -f ./eth-pos-devnet/docker-compose.yml up -d
./scripts/wait_for_tcp_port_opening.sh localhost 3500
./scripts/wait_for_tcp_port_opening.sh localhost 8545
- name: Run Sync Committee Tests
run: |
cargo test -p sync-committee-prover -- --nocapture --ignored
- name: Cleanup
if: always()
run: |
docker-compose -f ./eth-pos-devnet/docker-compose.yml down || true
sudo rm -rf ./eth-pos-devnet
bsc-tests:
name: Binance Smart Chain Tests
runs-on: ubuntu-22.04
if: github.event.pull_request.draft != true
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
- name: Run BSC Tests
run: |
cargo test -p bsc-prover -- --nocapture --ignored
tendermint-tests:
name: Tendermint Tests
runs-on: ubuntu-22.04
if: github.event.pull_request.draft != true
steps:
- name: Get User Permission
id: checkAccess
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.triggering_actor }}
- name: Check User Permission
if: steps.checkAccess.outputs.require-result == 'false'
run: |
echo "${{ github.triggering_actor }} does not have permissions on this repo."
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}"
echo "Job originally triggered by ${{ github.actor }}"
exit 1
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
token: ${{ secrets.GH_TOKEN }}
submodules: recursive
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: stable
- name: Add wasm toolchain
run: |
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown
rustup component add rust-src
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang netcat wget curl libssl-dev llvm libclang-dev libudev-dev make libprotobuf-dev protobuf-compiler pkg-config
echo "LIBCLANG_PATH=/usr/lib/llvm-14/lib" >> $GITHUB_ENV
- uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 22
cache-dependency-path: "evm/pnpm-lock.yaml"
cache: "pnpm"
- name: Install npm dependencies
working-directory: evm
run: |
pnpm install
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Foundry artifacts
working-directory: evm
run: forge build
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.SSH_KEY }}
- uses: Swatinem/rust-cache@v2
- name: Run Tendermint Tests
run: |
RUST_LOG=tendermint_prover=trace,tesseract=trace,tendermint_verifier=trace cargo test -p tendermint-prover -- --nocapture --ignored