Skip to content
Open
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
50 changes: 25 additions & 25 deletions rust/main/Cargo.lock

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

24 changes: 16 additions & 8 deletions rust/main/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -301,42 +301,50 @@ version = "=0.5.2"

[patch.crates-io.solana-account-decoder]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
Comment on lines +304 to +305
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

style: Consider using a tagged release instead of branch = "jeff/encoded-tx-2" once the changes are stable. Branch references can change unexpectedly and make builds non-reproducible.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: rust/main/Cargo.toml
Line: 304:305

Comment:
**style:** Consider using a tagged release instead of `branch = "jeff/encoded-tx-2"` once the changes are stable. Branch references can change unexpectedly and make builds non-reproducible.

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

version = "=1.14.13"

[patch.crates-io.solana-clap-utils]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
version = "=1.14.13"

[patch.crates-io.solana-cli-config]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
version = "=1.14.13"

[patch.crates-io.solana-client]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
version = "=1.14.13"

[patch.crates-io.solana-program]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
version = "=1.14.13"

[patch.crates-io.solana-sdk]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
version = "=1.14.13"

[patch.crates-io.solana-transaction-status]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
version = "=1.14.13"

[patch.crates-io.solana-zk-token-sdk]
git = "https://github.com/hyperlane-xyz/solana.git"
tag = "hyperlane-1.14.13-2025-05-21"
branch = "jeff/encoded-tx-2"
# tag = "hyperlane-1.14.13-2025-05-21"
version = "=1.14.13"
Comment on lines 302 to 348
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# Verify the Solana fork branch exists
curl -s "https://api.github.com/repos/hyperlane-xyz/solana/branches/jeff/encoded-tx-2" | jq -r '.name, .commit.sha, .commit.commit.message' 2>/dev/null | head -20

Repository: hyperlane-xyz/hyperlane-monorepo

Length of output: 193


🏁 Script executed:

# Search for BorshIoError in the rust codebase to understand the changes
rg "BorshIoError" rust/ -A 2 -B 2 | head -100

Repository: hyperlane-xyz/hyperlane-monorepo

Length of output: 7768


🏁 Script executed:

# Look at Cargo.toml to understand the full context of Solana patches
cat -n rust/main/Cargo.toml | sed -n '295,355p'

Repository: hyperlane-xyz/hyperlane-monorepo

Length of output: 2253


🏁 Script executed:

# Search for any references to upstream merge plans, PR discussions, or future plans
rg -i "upstream|merge.*branch|pr.*1\.14|solana.*upstream" rust/ --type md --type txt -B 2 -A 2

Repository: hyperlane-xyz/hyperlane-monorepo

Length of output: 58


🏁 Script executed:

# Check if there are any comments or TODOs related to this branch or API change
rg -i "jeff/encoded|BorshError.*plan|TODO.*solana|FIXME.*upstream" rust/ -B 1 -A 1

Repository: hyperlane-xyz/hyperlane-monorepo

Length of output: 2537


🏁 Script executed:

# Look at the main Cargo.toml comment section to see if there's any explanation
head -350 rust/main/Cargo.toml | tail -100

Repository: hyperlane-xyz/hyperlane-monorepo

Length of output: 2895


The Solana branch check passes, but there's no documented plan for upstream.

Good news: the jeff/encoded-tx-2 branch exists (commit 88288713965aca854f6caa50136ed705f71f8660) and the commit message itself is "feat: remove deprecated field and remove BorshError string"—exactly what you'd expect.

The ProgramError::BorshIoError change is real too. Throughout the sealevel programs (validator-announce, mailbox, ism modules), it's consistently used as a unit variant without string arguments, matching the API change in the branch.

The gap: there's no documented upstream merge strategy anywhere in the codebase. No TODOs, no comments about when or if this gets upstreamed to Solana proper. The commented-out tag (# tag = "hyperlane-1.14.13-2025-05-21") suggests you had a release path once, but right now this is a custom fork dependency with layers of reliance. Before merging, your team should clarify the long-term plan—whether this stays as a branch dependency indefinitely, waits for Solana to adopt similar changes, or something else entirely.

🤖 Prompt for AI Agents
rust/main/Cargo.toml around lines 302-348: the patch entries point to a
fork/branch (jeff/encoded-tx-2) with no documented upstreaming plan; add a
short, explicit note in the repo (preferably in Cargo.toml near these patches
and in CONTRIBUTING or DEPENDENCIES.md) stating the intended strategy (stay
forked indefinitely, upstream to Solana and track a PR/merge timeline, or pin to
a release tag), include the commit hash and rationale, assign an owner and
target milestone or issue/PR link for tracking, and update the commented tag or
replace it with an explicit TODO and link so future maintainers know how and
when this will be reconciled with upstream.


[patch.crates-io.spl-associated-token-account]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,6 @@ pub fn encoded_svm_transaction() -> EncodedConfirmedTransactionWithStatusMeta {
transaction: EncodedTransaction::LegacyBinary("binary".to_string()),
meta: Some(UiTransactionStatusMeta {
err: None,
status: Ok(()),
fee: 0,
pre_balances: Vec::new(),
post_balances: Vec::new(),
Expand Down
1 change: 0 additions & 1 deletion rust/main/lander/tests/integration_sealevel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,6 @@ fn encoded_svm_transaction() -> EncodedConfirmedTransactionWithStatusMeta {
transaction: EncodedTransaction::LegacyBinary("binary".to_string()),
meta: Some(UiTransactionStatusMeta {
err: None,
status: Ok(()),
fee: 0,
pre_balances: Vec::new(),
post_balances: Vec::new(),
Expand Down
Loading
Loading