Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ env:
POLYGON_EXECUTION_RPC: ${{secrets.POLYGON_EXECUTION_RPC}}
SEI_RPC_URL: ${{secrets.SEI_RPC_URL}}
KAVA_RPC_URL: ${{secrets.KAVA_RPC_URL}}
BEACONKIT_BEACON_API: ${{secrets.BEACONKIT_BEACON_API}}

jobs:
check-wasm:
Expand Down Expand Up @@ -764,3 +765,82 @@ jobs:
- name: Run Tendermint Tests
run: |
RUST_LOG=tendermint_prover=trace,tesseract=trace,tendermint_verifier=trace cargo test -p tendermint-prover -- --nocapture --ignored

beacon-kit-tests:
name: Beacon Kit 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@v2
with:
version: 8

- 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/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_KEY }}

- uses: Swatinem/rust-cache@v2

- name: Run Beacon Kit Tests
run: |
cargo test -p pallet-ismp-testsuite --lib beaconkit_verify_consensus -- --nocapture --ignored
88 changes: 83 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 9 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ members = [
"modules/ismp/clients/ismp-optimism",
"modules/ismp/clients/polygon",
"modules/ismp/clients/tendermint",
"modules/ismp/clients/beacon-kit",
"modules/pallets/collator-manager",

# cryptography
Expand Down Expand Up @@ -117,6 +118,7 @@ members = [
"tesseract/consensus/relayer",
"tesseract/consensus/polygon",
"tesseract/consensus/tendermint",
"tesseract/consensus/beaconkit",


# Airdrop
Expand Down Expand Up @@ -229,11 +231,11 @@ impl-trait-for-tuples = "0.2.3"
ark-ec = { version = "0.4.2", default-features = false }
bls = { package = "bls_on_arkworks", version = "0.2.2", default-features = false }

# tendermint/cometbft
cometbft = { git = "https://github.com/cometbft/cometbft-rs", rev = "ac3db79c5807cd1d0b8b14a7b8199b8d79d6408d", default-features = false, features = ["secp256k1"]}
cometbft-rpc = { git = "https://github.com/cometbft/cometbft-rs", package = "cometbft-rpc", features = ["http-client", "secp256k1"], rev = "ac3db79c5807cd1d0b8b14a7b8199b8d79d6408d"}
cometbft-proto = { git = "https://github.com/cometbft/cometbft-rs", package = "cometbft-proto", rev = "ac3db79c5807cd1d0b8b14a7b8199b8d79d6408d", default-features = false }
cometbft-light-client-verifier = { git = "https://github.com/cometbft/cometbft-rs", package = "cometbft-light-client-verifier", rev = "ac3db79c5807cd1d0b8b14a7b8199b8d79d6408d", default-features = false }
# tendermint/cometbft (with BLS aggregation support for BeaconKit)
cometbft = { git = "https://github.com/polytope-labs/cometbft-rs", rev = "69747b2e15d9ebf91bbe4057d072b96a3e9e9a9d", default-features = false, features = ["secp256k1"]}
cometbft-rpc = { git = "https://github.com/polytope-labs/cometbft-rs", package = "cometbft-rpc", features = ["http-client", "secp256k1"], rev = "69747b2e15d9ebf91bbe4057d072b96a3e9e9a9d"}
cometbft-proto = { git = "https://github.com/polytope-labs/cometbft-rs", package = "cometbft-proto", rev = "69747b2e15d9ebf91bbe4057d072b96a3e9e9a9d", default-features = false }
cometbft-light-client-verifier = { git = "https://github.com/polytope-labs/cometbft-rs", package = "cometbft-light-client-verifier", rev = "69747b2e15d9ebf91bbe4057d072b96a3e9e9a9d", default-features = false }
ics23 = { version = "0.12.0", default-features = false }
ibc-core-commitment-types = { version = "0.57.0", default-features = false }
ibc-core-host = { version = "0.57.0", default-features = false }
Expand Down Expand Up @@ -279,7 +281,6 @@ tendermint-verifier = { path = "./modules/consensus/tendermint/verifier", defaul
tendermint-primitives = { path = "./modules/consensus/tendermint/primitives", default-features = false }
tendermint-prover = { path = "./modules/consensus/tendermint/prover", default-features = false }
tendermint-ics23-primitives = { path = "./modules/consensus/tendermint/ics23-primitives", default-features = false }

# consensus clients
ismp-bsc = { path = "./modules/ismp/clients/bsc", default-features = false }
ismp-sync-committee = { path = "./modules/ismp/clients/sync-committee", default-features = false }
Expand All @@ -289,6 +290,7 @@ ismp-arbitrum = { path = "modules/ismp/clients/ismp-arbitrum", default-features
ismp-optimism = { path = "modules/ismp/clients/ismp-optimism", default-features = false }
ismp-polygon = { path = "modules/ismp/clients/polygon", default-features = false }
ismp-tendermint = { path = "modules/ismp/clients/tendermint", default-features = false }
ismp-beacon-kit = { path = "modules/ismp/clients/beacon-kit", default-features = false }

# state machine clients
evm-state-machine = { path = "./modules/ismp/state-machines/evm", default-features = false }
Expand Down Expand Up @@ -348,6 +350,7 @@ tesseract-grandpa = { path = "tesseract/consensus/grandpa" }
tesseract-consensus = { path = "tesseract/consensus/relayer" }
tesseract-polygon = { path = "tesseract/consensus/polygon" }
tesseract-tendermint = { path = "tesseract/consensus/tendermint" }
tesseract-beaconkit = { path = "tesseract/consensus/beaconkit" }


[workspace.dependencies.codec]
Expand Down
Loading