Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
4ec2ea4
test(e2e): added a solana test suite (#574)
srdtrk Jun 26, 2025
8932d93
Merge branch 'main' into feat/solana
srdtrk Jul 1, 2025
63000be
Merge branch 'main' into feat/solana
srdtrk Jul 2, 2025
bfb2896
feat: solana nix tooling (#579)
vaporif Jul 3, 2025
e3daac5
Merge branch 'main' into feat/solana
srdtrk Jul 10, 2025
09018da
Merge branch 'main' into feat/solana
srdtrk Jul 10, 2025
1cbb848
feat: solana tendermint light client core (#590)
vaporif Jul 15, 2025
7be9186
feat: router core (#601)
vaporif Jul 23, 2025
5b0700a
feat: solana tendermint mollusk initialize test (#614)
vaporif Jul 25, 2025
f6704d8
chore: ci router mollusk tests (#629)
vaporif Jul 30, 2025
50fb3d7
chore: router pr comments + validation tests (#633)
vaporif Aug 5, 2025
87312fa
Merge branch 'main' into feat/solana
srdtrk Aug 6, 2025
2aefa01
feat: Add Solana fixture generation and fix update_client implementat…
mariuszzak Aug 6, 2025
b3e2212
chore: router cpi tests (#642)
vaporif Aug 10, 2025
fab9f7c
Merge branch 'main' into feat/solana
srdtrk Aug 10, 2025
0ef0aa8
fix: solana ibc inconsistencies (#651)
srdtrk Aug 12, 2025
a205912
chore: solana storage adr (#613)
vaporif Aug 13, 2025
bea4862
test(e2e): initial Solana end-to-end tests (#648)
srdtrk Aug 14, 2025
11b39ec
merge: branch 'main' into feat/solana
srdtrk Aug 15, 2025
96b969f
chore: lock agave rust nix (#668)
vaporif Aug 18, 2025
241573b
add rust in solana devshell for lsp access (#673)
vaporif Aug 19, 2025
8a38dd6
feat: adjust solana tests to use tendermint-light-client fixtures (#670)
mariuszzak Aug 20, 2025
1d27a93
ibc app & router updates (#669)
vaporif Aug 20, 2025
8985d0a
solana update from main (#683)
vaporif Aug 21, 2025
54d1876
chore: solana upgrade adr (#665)
vaporif Aug 22, 2025
c297fb7
feat: solana relayer implementation wip (#678)
vaporif Aug 24, 2025
4aa34a5
chore(solana): merge `main` into `feat/solana` (#717)
mariuszzak Sep 1, 2025
f0757c1
feat: extend Solana → Cosmos IBC integration with e2e testing (#680)
mariuszzak Sep 2, 2025
ccdf971
chore(solana): nix idl generation (#761)
vaporif Oct 6, 2025
8d0bd41
feat(solana): chunked header update + e2e solana->cosmos/cosmos->sola…
vaporif Oct 10, 2025
3cfb694
feat(solana): chunked router instructions + working e2e (#766)
vaporif Oct 16, 2025
d8400c9
fix(solana): nix (#769)
cernicc Oct 16, 2025
308af21
fix(solana): idl generation (#774)
vaporif Oct 20, 2025
3983580
feat(solana): implement ics27-gmp ibc app (#757)
mariuszzak Oct 21, 2025
e0f50e7
feat(solana): upgradability (#773)
cernicc Oct 22, 2025
5342f1c
chore(solana): Merge `main` into `feat/solana` (#778)
mariuszzak Oct 22, 2025
ed335e9
chore(solana): nix darwin fix (#781)
vaporif Oct 22, 2025
0366f0d
chore(solana): nix pull apple sdk 15 (#784)
vaporif Oct 23, 2025
ae7bced
feat(solana): remove txs field in relayer, encode txs, parallel relay…
vaporif Oct 23, 2025
d5496ff
chore: remove unused HeaderMetadata (#786)
cernicc Oct 24, 2025
e8d94b1
chore(solana): simplify misbehaviour check (#787)
vaporif Oct 24, 2025
9506f68
chore(solana): remove tendermint non chunked update (#789)
vaporif Oct 25, 2025
f871c8d
chore(solana): remove unused errors (#790)
vaporif Oct 25, 2025
0c879e1
test(solana): extend e2e test coverage for unhappy paths in GMP app (…
mariuszzak Oct 27, 2025
13c3eed
test(solana): add missing unit test coverage for membership verificat…
mariuszzak Oct 27, 2025
c904983
chore(solana): reorganize SEED constants and PDA derivation for consi…
mariuszzak Oct 28, 2025
92a6187
feat(solana): use confirmed commitment in relayer + parallelize e2e t…
mariuszzak Oct 30, 2025
1cf300b
chore(solana): docs + tests + cleanup (#800)
vaporif Oct 31, 2025
fa410d5
fix(solana): outstanding post review issues + tests (#811)
vaporif Nov 6, 2025
30b3006
fix(solana): use seconds instead of nanos in non-membership (#812)
vaporif Nov 6, 2025
64f0420
chore(solana): remaining accounts refactoring + unit tests edgecases …
vaporif Nov 7, 2025
39fdcac
chore(solana): e2e tests for cleanup chunks (#814)
vaporif Nov 7, 2025
f9c3158
feat(solana): chunked submit misbehaviour (#816)
vaporif Nov 10, 2025
2e7983c
feat(solana): ics27-GMP improvements (#810)
mariuszzak Nov 10, 2025
28ca34b
chore(solana): add comments for universal app unreachable + constant …
vaporif Nov 10, 2025
a025498
fix(solana): owner/checked validations (#819)
vaporif Nov 12, 2025
d238b45
feat(solana): auto init space calulcation (#825)
cernicc Nov 17, 2025
2dc6863
perf(solana): optimize light client for mainnet headers (#826)
vaporif Nov 18, 2025
80b3162
perf(solana): light client update (#830)
vaporif Nov 21, 2025
42f6703
feat(solana): sendpacket sequence improvement (#824)
vaporif Nov 21, 2025
d8b4053
chore(crates): switch to tendermint repo (#834)
vaporif Nov 21, 2025
bd5e51a
chore(solana): merge with main (#835)
vaporif Nov 22, 2025
c67c52f
feat(solana): ics23 hostfunctions (#837)
vaporif Nov 23, 2025
3d503d4
feat(solana): structured updateclient/relaypacket (#838)
vaporif Nov 24, 2025
1712b96
feat(solana): add missing validations in SendCall (#833)
mariuszzak Nov 25, 2025
f5e7a25
feat(solana): Implement AccessManager (#805)
mariuszzak Nov 25, 2025
a69110a
fix(solana): remove client sequence from recv (#840)
vaporif Nov 26, 2025
f385d32
imp(solana): switch to solana microcrates (#841)
vaporif Nov 27, 2025
7eff383
chore(solana): update tendermint docs (#842)
vaporif Nov 28, 2025
1f60008
imp(solana): include update client in relay packets (#843)
vaporif Nov 29, 2025
c67103d
refactor(solana): reorg cosmos to solana txbuilder (#844)
vaporif Nov 29, 2025
d848f20
feat(solana): optimize relayer for low validators count (#845)
vaporif Dec 1, 2025
b30ddcd
imp(solana): remove solana program dep (#846)
vaporif Dec 1, 2025
1c24ef7
imp(solana): misbehavior use solana optimized fns (#847)
vaporif Dec 1, 2025
92d5cb8
fix(solana): use client counterparty prefix (#852)
vaporif Dec 3, 2025
dd05248
feat: enable whitelisting accounts in cpi (#853)
cernicc Dec 4, 2025
3519a34
imp(solana): borsch deser for misbehavior (#856)
vaporif Dec 5, 2025
4bc9081
feat(solana): validate chunk_count in assemble instructions
mariuszzak Dec 11, 2025
b43853e
cargo fmt
mariuszzak Dec 11, 2025
87a2371
satisfy clippy
mariuszzak Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Which type of ethereum testnet to run locally (pow|pos)
ETH_TESTNET_TYPE="pow"
# Preset for Ethereum PoS network configuration (minimal|mainnet)
ETHEREUM_POS_NETWORK_PRESET="minimal"

# SP1_PROVER={network|local|mock}
SP1_PROVER=mock
Expand Down
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# CODEOWNERS: https://help.github.com/articles/about-codeowners/

* @srdtrk @gjermundgaraba
* @srdtrk
2 changes: 1 addition & 1 deletion .github/actions/e2e-matrix/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ runs:
- name: Generate Test Matrix
id: generate-matrix
shell: bash
run: echo "matrix=$(${{ github.workspace }}/scripts/generate-e2e-test-matrix.sh '${{ inputs.skip-tests }}')" >> $GITHUB_OUTPUT
run: echo "matrix=$(TEST_EXCLUSIONS='${{ inputs.skip-tests }}' go run scripts/go-test-matrix/main.go -dir e2e/interchaintestv8)" >> $GITHUB_OUTPUT
46 changes: 43 additions & 3 deletions .github/actions/e2e-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ runs:
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.23
go-version: 1.25
check-latest: true
cache-dependency-path: e2e/interchaintestv8/go.sum

Expand All @@ -28,6 +28,18 @@ runs:
./programs/sp1-programs/target/elf-compilation/riscv32im-succinct-zkvm-elf/release/*
key: ${{ runner.os }}-relayer-${{ hashFiles('Cargo.lock', 'Cargo.toml', 'packages/**', 'programs/**', 'abi/**') }}

- name: Cache Solana
id: cache-solana
uses: actions/cache@v4
with:
path: |
~/.cache/solana/
~/.local/share/solana/
~/.cargo/bin/anchor
./programs/solana/target/deploy/
./programs/solana/target/sbpf-solana-solana/
key: ${{ runner.os }}-solana-${{ env.SOLANA_VERSION }}-${{ env.ANCHOR_VERSION }}-${{ hashFiles('programs/solana/**') }}

- name: Install SP1 toolchain
if: (steps.cache-relayer.outputs.cache-hit != 'true')
shell: bash
Expand All @@ -51,8 +63,8 @@ runs:
args: --bin relayer --path programs/relayer --locked

- name: Install just
if: (steps.cache-relayer.outputs.cache-hit != 'true')
uses: extractions/setup-just@v2

- name: Build SP1 Programs
if: (steps.cache-relayer.outputs.cache-hit != 'true')
shell: bash
Expand All @@ -64,7 +76,35 @@ runs:
run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kurtosis-cli=1.8.1 # Must match the kurtosis library version we use in the e2e tests
sudo apt install kurtosis-cli=1.11.2 # Must match the kurtosis library version we use in the e2e tests
kurtosis engine start
kurtosis analytics disable
echo "$(dirname $(which kurtosis))" >> $GITHUB_PATH

- name: Setup Solana Dependencies
if: steps.cache-solana.outputs.cache-hit != 'true'
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libudev-dev llvm libclang-dev protobuf-compiler libssl-dev

- name: Setup Solana
if: steps.cache-solana.outputs.cache-hit != 'true'
shell: bash
run: |
sh -c "$(curl -sSfL https://release.anza.xyz/v${SOLANA_VERSION}/install)"

- name: Add Solana to PATH
shell: bash
run: |
echo "/home/runner/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH

- name: Setup Anchor
if: steps.cache-solana.outputs.cache-hit != 'true'
shell: bash
run: cargo install --git https://github.com/coral-xyz/anchor --tag v${ANCHOR_VERSION} anchor-cli

- name: Build Solana Programs
if: steps.cache-solana.outputs.cache-hit != 'true'
shell: bash
run: just build-solana
28 changes: 14 additions & 14 deletions .github/workflows/abigen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@ on:

jobs:
check:
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up environment
uses: ./.github/actions/foundry-setup

- uses: actions/setup-go@v4
- uses: actions/setup-go@v6
with:
go-version: 1.23
go-version: 1.25

- uses: extractions/setup-just@v2
- uses: extractions/setup-just@v3

- name: Install abigen
run: go install github.com/ethereum/go-ethereum/cmd/abigen@latest
Expand All @@ -45,27 +45,27 @@ jobs:
fi

golangci:
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
with:
go-version: 1.23
go-version: 1.25
cache-dependency-path: packages/go-abigen/go.sum

- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.1
version: v2.5
working-directory: packages/go-abigen

test:
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
with:
go-version: 1.23
go-version: 1.25
cache-dependency-path: packages/go-abigen/go.sum

- name: Unit test abigen
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ concurrency:

jobs:
build-relayer:
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
permissions:
id-token: write
contents: read
packages: write
env:
registry_url: ghcr.io/cosmos/eureka-relayer
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/e2e-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,18 @@ env:
E2E_PROOF_TYPE: ${{ inputs.proof-type || 'groth16' }}
E2E_PRIVATE_CLUSTER: true
E2E_WASM_LIGHT_CLIENT_TAG: ${{ inputs.wasm-eth-light-client-tag }}
SOLANA_VERSION: "2.1.17"
ANCHOR_VERSION: "0.32.1"
permissions:
contents: read

jobs:
generate-matrix:
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04-4
outputs:
matrix: ${{ steps.get-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Generate Test Matrix
id: get-matrix
uses: ./.github/actions/e2e-matrix
Expand All @@ -54,10 +56,10 @@ jobs:
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
name: ${{ matrix.test }}
runs-on: depot-ubuntu-22.04
name: ${{ matrix.entrypoint }}/${{ matrix.test }}
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up E2E environment
uses: ./.github/actions/e2e-setup
with:
Expand All @@ -68,4 +70,4 @@ jobs:
NETWORK_PRIVATE_KEY: ${{ secrets.SP1_PRIVATE_KEY }}
run: |
cd e2e/interchaintestv8
go test -v -mod=readonly . -run "^${{ matrix.test }}$" -timeout 120m
go test -v -mod=readonly . -run "^${{ matrix.entrypoint }}$/${{ matrix.test }}$" -timeout 120m
14 changes: 8 additions & 6 deletions .github/workflows/e2e-minimal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,18 @@ env:
E2E_PROOF_TYPE: ${{ inputs.proof-type || 'groth16' }}
E2E_PRIVATE_CLUSTER: true
E2E_WASM_LIGHT_CLIENT_TAG: ${{ inputs.wasm-eth-light-client-tag }}
SOLANA_VERSION: "2.1.17"
ANCHOR_VERSION: "0.32.1"
permissions:
contents: read

jobs:
generate-matrix:
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04-4
outputs:
matrix: ${{ steps.get-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Generate Test Matrix
id: get-matrix
uses: ./.github/actions/e2e-matrix
Expand All @@ -55,10 +57,10 @@ jobs:
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
name: ${{ matrix.test }}
runs-on: depot-ubuntu-22.04
name: ${{ matrix.entrypoint }}/${{ matrix.test }}
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up E2E environment
uses: ./.github/actions/e2e-setup
with:
Expand All @@ -69,4 +71,4 @@ jobs:
NETWORK_PRIVATE_KEY: ${{ secrets.SP1_PRIVATE_KEY }}
run: |
cd e2e/interchaintestv8
go test -v -mod=readonly . -run "^${{ matrix.test }}$" -timeout 60m
go test -v -mod=readonly . -run "^${{ matrix.entrypoint }}$/${{ matrix.test }}$" -timeout 60m
25 changes: 14 additions & 11 deletions .github/workflows/e2e-mock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,35 @@ env:
ETH_TESTNET_TYPE: pow
SP1_PROVER: mock
E2E_PROOF_TYPE: groth16
SOLANA_VERSION: "2.1.17"
ANCHOR_VERSION: "0.32.1"

permissions:
contents: read

jobs:
golangci:
name: lint
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
- uses: actions/checkout@v5
- uses: actions/setup-go@v6
with:
go-version: 1.23
go-version: 1.25
cache-dependency-path: e2e/interchaintestv8/go.sum

- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.1
version: v2.5
working-directory: e2e/interchaintestv8

generate-matrix:
runs-on: ubuntu-latest
runs-on: depot-ubuntu-24.04-4
outputs:
matrix: ${{ steps.get-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Generate Test Matrix
id: get-matrix
uses: ./.github/actions/e2e-matrix
Expand All @@ -59,10 +62,10 @@ jobs:
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
name: ${{ matrix.test }}
runs-on: depot-ubuntu-22.04
name: ${{ matrix.entrypoint }}/${{ matrix.test }}
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up E2E environment
uses: ./.github/actions/e2e-setup
with:
Expand All @@ -73,4 +76,4 @@ jobs:
NETWORK_PRIVATE_KEY: ${{ secrets.SP1_PRIVATE_KEY }}
run: |
cd e2e/interchaintestv8
go test -v -mod=readonly . -run "^${{ matrix.test }}$" -timeout 40m
go test -v -mod=readonly . -run "^${{ matrix.entrypoint }}$/${{ matrix.test }}$" -timeout 40m
22 changes: 11 additions & 11 deletions .github/workflows/foundry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ on:

jobs:
lint:
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up environment
uses: ./.github/actions/foundry-setup

Expand All @@ -33,9 +33,9 @@ jobs:
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY

build:
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up environment
uses: ./.github/actions/foundry-setup

Expand All @@ -49,9 +49,9 @@ jobs:

test:
needs: [lint, build]
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up environment
uses: ./.github/actions/foundry-setup

Expand All @@ -77,9 +77,9 @@ jobs:

security:
needs: [build]
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up environment
uses: ./.github/actions/foundry-setup

Expand All @@ -99,9 +99,9 @@ jobs:

coverage:
needs: [test]
runs-on: depot-ubuntu-22.04-4
runs-on: depot-ubuntu-24.04-4
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up environment
uses: ./.github/actions/foundry-setup

Expand All @@ -125,7 +125,7 @@ jobs:
- name: Remove the test directory from the coverage report
run: lcov --remove lcov.info "test/**" "scripts/**" -o lcov.info

- uses: codecov/codecov-action@v4
- uses: codecov/codecov-action@v5
with:
exclude: test
env:
Expand Down
Loading