Skip to content

Conversation

mariuszzak
Copy link
Member

Description

Remove client_id and chain_id parameters from all Program Derived Address derivation functions and account constraints across Solana programs, relayer, and E2E tests.

closes: #XXXX


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.

  - Changed module names from hyphenated to underscore format
  - Updated ModuleSolanaToCosmos from "solana-to-cosmos" to "solana_to_cosmos"
  - Updated ModuleCosmosToSolana from "cosmos-to-solana" to "cosmos_to_solana"
  - Ensures consistency with other module naming conventions
  Key additions:
  - Complete IBC flow: Add full send → relay → acknowledge pipeline for both send_transfer and send_packet
  - Bidirectional clients: WASM light client on Cosmos + Tendermint client on Solana
  - Token transfer validation: Verify IBC denom construction and minting on destination
  - Mock proof support: Enable testing with MockWasmClient flag

  Relayer fixes:
  - Fix encoding json → application/json for IBC compatibility
  - Proper hex decoding for transaction hashes (hex.DecodeString vs []byte)
  - Mock proof injection and protobuf transaction encoding

  Transaction size constraint:
  - Document Solana 1644-byte limit blocking acknowledgments (1892 bytes actual)
  - Skip oversized transactions with TODO for optimization

  Infrastructure:
  - Extract shared Solana utilities to solana/solana.go
  - Add SolDenom constant and getSolDenomOnCosmos() helper
@mariuszzak mariuszzak self-assigned this Sep 1, 2025
@mariuszzak mariuszzak changed the title feat: remove client_id and chain_id from PDA derivations feat(solana): remove client_id and chain_id from PDA derivations Sep 1, 2025
Copy link

codecov bot commented Sep 1, 2025

Codecov Report

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

Additional details and impacted files
@@              Coverage Diff               @@
##             feat/solana     #715   +/-   ##
==============================================
  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.

Base automatically changed from mariuszzak/test-e2e-sol-to-cosmos to feat/solana September 2, 2025 15:05
@mariuszzak mariuszzak marked this pull request as ready for review September 3, 2025 07:35
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.

Thanks for the work. I think all the changes in ics26 should be reverted. You can't remove client_id from commitment paths.

Comment on lines 29 to 30
PACKET_COMMITMENT_SEED,
msg.packet.source_client.as_bytes(),
&msg.packet.sequence.to_le_bytes()
Copy link
Member

Choose a reason for hiding this comment

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

I don't think you can do this is ics26 router

@mariuszzak mariuszzak marked this pull request as draft September 19, 2025 10:07
@gjermundgaraba gjermundgaraba removed their request for review October 8, 2025 14:50
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.

2 participants