Skip to content

feat(solana): implement ics27-gmp ibc app#757

Merged
mariuszzak merged 6 commits intofeat/solanafrom
mariuszzak/ics27-gmp
Oct 21, 2025
Merged

feat(solana): implement ics27-gmp ibc app#757
mariuszzak merged 6 commits intofeat/solanafrom
mariuszzak/ics27-gmp

Conversation

@mariuszzak
Copy link
Collaborator

@mariuszzak mariuszzak commented Sep 19, 2025

Description

This PR implements ICS27-GMP app. More details in the ADR added in this PR.

ref: IBCSOL-267


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Linked to GitHub issue with discussion and accepted design, OR link to spec that describes this work.
  • Wrote unit and integration tests.
  • Added relevant natspec and godoc comments.
  • Provide a conventional commit message to follow the repository standards.
  • Re-reviewed Files changed in the GitHub PR explorer.
  • Review SonarCloud Report in the comment section below once CI passes.

@mariuszzak mariuszzak self-assigned this Sep 19, 2025
@linear
Copy link

linear bot commented Sep 19, 2025

@codecov
Copy link

codecov bot commented Sep 19, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (feat/solana@8d0bd41). Learn more about missing BASE report.

Additional details and impacted files
@@              Coverage Diff               @@
##             feat/solana     #757   +/-   ##
==============================================
  Coverage               ?   99.86%           
==============================================
  Files                  ?       17           
  Lines                  ?      767           
  Branches               ?        0           
==============================================
  Hits                   ?      766           
  Misses                 ?        1           
  Partials               ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mariuszzak mariuszzak force-pushed the mariuszzak/ics27-gmp branch from dc6c040 to b6f5bb3 Compare October 9, 2025 13:54
@mariuszzak
Copy link
Collaborator Author

Related PR - cosmos/ibc-go#8660

@mariuszzak mariuszzak force-pushed the mariuszzak/ics27-gmp branch from b6f5bb3 to e10d7bf Compare October 9, 2025 15:26
@linear
Copy link

linear bot commented Oct 9, 2025

@mariuszzak mariuszzak force-pushed the mariuszzak/ics27-gmp branch 3 times, most recently from 97ebeed to c8a763d Compare October 13, 2025 18:18
@mariuszzak mariuszzak changed the base branch from mariuszzak/test-e2e-cosmos-to-sol to feat/solana October 13, 2025 18:19
@mariuszzak mariuszzak force-pushed the mariuszzak/ics27-gmp branch 8 times, most recently from d3ec90b to dadce0c Compare October 14, 2025 11:35
@mariuszzak mariuszzak changed the title feat: initial ics27-gmp implementation (WIP) feat(solana): implement ics27-gmp ibc app Oct 14, 2025
@mariuszzak mariuszzak force-pushed the mariuszzak/ics27-gmp branch 3 times, most recently from 0d410ae to 9d10cf6 Compare October 15, 2025 00:17
@mariuszzak mariuszzak marked this pull request as ready for review October 15, 2025 00:17
Copy link
Member

@srdtrk srdtrk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Left some questions

@mariuszzak mariuszzak force-pushed the mariuszzak/ics27-gmp branch 2 times, most recently from 86071fc to 3cbee29 Compare October 20, 2025 14:07
@mariuszzak mariuszzak force-pushed the mariuszzak/ics27-gmp branch from 3cbee29 to 22fb4a3 Compare October 20, 2025 14:46
@mariuszzak mariuszzak merged commit 3983580 into feat/solana Oct 21, 2025
73 of 102 checks passed
@mariuszzak mariuszzak deleted the mariuszzak/ics27-gmp branch October 21, 2025 08:23
vaporif added a commit that referenced this pull request Nov 24, 2025
* test(e2e): added a solana test suite (#574)

* feat: solana nix tooling (#579)

Co-authored-by: srdtrk <srdtrk@hotmail.com>

* feat: solana tendermint light client core (#590)

Co-authored-by: Mariusz Zak <mariuszzak21@gmail.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>

* feat: router core (#601)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>

* feat: solana tendermint mollusk initialize test (#614)

* chore: ci router mollusk tests (#629)

* chore: router pr comments + validation tests (#633)

* feat: Add Solana fixture generation and fix update_client implementation (#615)

* chore: router cpi tests (#642)

* fix: solana ibc inconsistencies (#651)

* chore: solana storage adr (#613)

Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>

* test(e2e): initial Solana end-to-end tests (#648)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>

* chore: lock agave rust nix (#668)

* add rust in solana devshell for lsp access (#673)

* feat: adjust solana tests to use tendermint-light-client fixtures (#670)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Dmytro Onypko <vaporif@proton.me>
Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>

* ibc app & router updates (#669)

* solana update from main (#683)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Mariusz Żak <mariuszzak21@gmail.com>
Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>

* chore: solana upgrade adr (#665)

* feat: solana relayer implementation wip (#678)

* chore(solana): merge `main` into `feat/solana` (#717)

* feat: extend Solana → Cosmos IBC integration with e2e testing (#680)

* chore(solana): nix idl generation (#761)

* feat(solana): chunked header update + e2e solana->cosmos/cosmos->solana (#760)

* feat(solana): chunked router instructions + working e2e (#766)

* fix(solana): nix  (#769)

Co-authored-by: Dmytro Onypko <vaporif@proton.me>

* fix(solana): idl generation (#774)

* feat(solana): implement ics27-gmp ibc app (#757)

* feat(solana): upgradability (#773)

* chore(solana): Merge `main` into `feat/solana` (#778)

* chore(solana): nix darwin fix (#781)

* chore(solana): nix pull apple sdk 15 (#784)

* feat(solana): remove txs field in relayer, encode txs, parallel relayer packets submission (#771)

* chore: remove unused HeaderMetadata (#786)

* chore(solana): simplify misbehaviour check (#787)

* chore(solana): remove tendermint non chunked update (#789)

* chore(solana): remove unused errors (#790)

* test(solana): extend e2e test coverage for unhappy paths in GMP app (#782)

* test(solana): add missing unit test coverage for membership verification of ics07-tendermint-light-client (#788)

* chore(solana): reorganize SEED constants and PDA derivation for consistency (#792)

* feat(solana): use confirmed commitment in relayer + parallelize e2e tests (#793)

* chore(solana): docs + tests + cleanup (#800)

* fix(solana): outstanding post review issues + tests (#811)

* fix(solana): use seconds instead of nanos in non-membership (#812)

* chore(solana): remaining accounts refactoring + unit tests edgecases (#813)

* chore(solana): e2e tests for cleanup chunks (#814)

* feat(solana): chunked submit misbehaviour (#816)

* feat(solana): ics27-GMP improvements (#810)

* chore(solana): add comments for universal app unreachable + constant generation for future (#817)

* fix(solana): owner/checked validations (#819)

* feat(solana): auto init space calulcation (#825)

* perf(solana): optimize light client for mainnet headers (#826)

* perf(solana): light client update (#830)

* feat(solana): sendpacket sequence improvement (#824)

* chore(crates): switch to tendermint repo (#834)

* chore(solana): merge with main (#835)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Mariusz Żak <mariuszzak21@gmail.com>
Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>
Co-authored-by: Coder <161350311+MamunC0der@users.noreply.github.com>

* feat(solana): ics23 hostfunctions (#837)

* feat(solana): structured updateclient/relaypacket (#838)

* add signer

* lint go

---------

Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>
Co-authored-by: Mariusz Zak <mariuszzak21@gmail.com>
Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Rok Černič <rok.cernic@gmail.com>
Co-authored-by: Coder <161350311+MamunC0der@users.noreply.github.com>
vaporif added a commit that referenced this pull request Dec 2, 2025
* test(e2e): added a solana test suite (#574)

* feat: solana nix tooling (#579)

Co-authored-by: srdtrk <srdtrk@hotmail.com>

* feat: solana tendermint light client core (#590)

Co-authored-by: Mariusz Zak <mariuszzak21@gmail.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>

* feat: router core (#601)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>

* feat: solana tendermint mollusk initialize test (#614)

* chore: ci router mollusk tests (#629)

* chore: router pr comments + validation tests (#633)

* feat: Add Solana fixture generation and fix update_client implementation (#615)

* chore: router cpi tests (#642)

* fix: solana ibc inconsistencies (#651)

* chore: solana storage adr (#613)

Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>

* test(e2e): initial Solana end-to-end tests (#648)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>

* chore: lock agave rust nix (#668)

* add rust in solana devshell for lsp access (#673)

* feat: adjust solana tests to use tendermint-light-client fixtures (#670)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Dmytro Onypko <vaporif@proton.me>
Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>

* ibc app & router updates (#669)

* solana update from main (#683)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Mariusz Żak <mariuszzak21@gmail.com>
Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>

* chore: solana upgrade adr (#665)

* feat: solana relayer implementation wip (#678)

* chore(solana): merge `main` into `feat/solana` (#717)

* feat: extend Solana → Cosmos IBC integration with e2e testing (#680)

* chore(solana): nix idl generation (#761)

* feat(solana): chunked header update + e2e solana->cosmos/cosmos->solana (#760)

* feat(solana): chunked router instructions + working e2e (#766)

* fix(solana): nix  (#769)

Co-authored-by: Dmytro Onypko <vaporif@proton.me>

* fix(solana): idl generation (#774)

* feat(solana): implement ics27-gmp ibc app (#757)

* feat(solana): upgradability (#773)

* chore(solana): Merge `main` into `feat/solana` (#778)

* chore(solana): nix darwin fix (#781)

* chore(solana): nix pull apple sdk 15 (#784)

* feat(solana): remove txs field in relayer, encode txs, parallel relayer packets submission (#771)

* chore: remove unused HeaderMetadata (#786)

* chore(solana): simplify misbehaviour check (#787)

* chore(solana): remove tendermint non chunked update (#789)

* chore(solana): remove unused errors (#790)

* test(solana): extend e2e test coverage for unhappy paths in GMP app (#782)

* test(solana): add missing unit test coverage for membership verification of ics07-tendermint-light-client (#788)

* chore(solana): reorganize SEED constants and PDA derivation for consistency (#792)

* feat(solana): use confirmed commitment in relayer + parallelize e2e tests (#793)

* chore(solana): docs + tests + cleanup (#800)

* fix(solana): outstanding post review issues + tests (#811)

* fix(solana): use seconds instead of nanos in non-membership (#812)

* chore(solana): remaining accounts refactoring + unit tests edgecases (#813)

* chore(solana): e2e tests for cleanup chunks (#814)

* feat(solana): chunked submit misbehaviour (#816)

* feat(solana): ics27-GMP improvements (#810)

* chore(solana): add comments for universal app unreachable + constant generation for future (#817)

* fix(solana): owner/checked validations (#819)

* feat(solana): auto init space calulcation (#825)

* perf(solana): optimize light client for mainnet headers (#826)

* perf(solana): light client update (#830)

* feat(solana): sendpacket sequence improvement (#824)

* chore(crates): switch to tendermint repo (#834)

* chore(solana): merge with main (#835)

Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Mariusz Żak <mariuszzak21@gmail.com>
Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>
Co-authored-by: Coder <161350311+MamunC0der@users.noreply.github.com>

* feat(solana): ics23 hostfunctions (#837)

* feat(solana): structured updateclient/relaypacket (#838)

* add signer

* lint go

* solana adapter

* unordered

* commitment set

* cleanup

* condense

* warnings

* simplify

* use commitment type

* use pda fn

---------

Co-authored-by: srdtrk <59252793+srdtrk@users.noreply.github.com>
Co-authored-by: srdtrk <srdtrk@hotmail.com>
Co-authored-by: Mariusz Zak <mariuszzak21@gmail.com>
Co-authored-by: Gjermund Garaba <gjermund@garaba.net>
Co-authored-by: Rok Černič <rok.cernic@gmail.com>
Co-authored-by: Coder <161350311+MamunC0der@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants