Bump up - #277
Merged
Merged
Conversation
no printprogramerror impl no printprogramerror impl updated vault program out-dated references more token* program replaces more vault program more vault program working local build - ci needs attention
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the workspace to newer Rust/Borsh/Solana dependency families and adjusts the SDKs, on-chain programs, clients, CLI, and tests to match the newer interfaces (notably replacing legacy SPL crates and try_to_vec()).
Changes:
- Bump Rust toolchain and CI Solana toolchain/docker images; update workspace dependency set (Borsh 1.x, newer Solana/Anchor ecosystem crates).
- Migrate instruction serialization from
BorshSerialize::try_to_vec()toborsh::to_vec(...)across SDKs and generated Rust clients; add a post-gen rewrite script and wire it intomake generate-code. - Switch many call sites from legacy
spl-token/spl-associated-token-account/system_instructionto the corresponding*-interfacecrates andsolana-system-interface.
Reviewed changes
Copilot reviewed 75 out of 137 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| vault_sdk/src/sdk.rs | Switch instruction serialization to borsh::to_vec and migrate program ids to interface crates. |
| vault_sdk/src/inline_mpl_token_metadata.rs | Use solana-system-interface system program ID in inline token-metadata instruction builder. |
| vault_sdk/src/error.rs | Move DecodeError import to solana-decode-error and annotate deprecated trait usage. |
| vault_sdk/Cargo.toml | Add solana-decode-error / solana-system-interface and migrate SPL deps to interface crates. |
| vault_program/src/update_vault_balance.rs | Use spl-token-interface for mint_to CPI builder calls. |
| vault_program/src/revoke_delegate_token_account.rs | Use spl-token-2022-interface revoke instruction builder. |
| vault_program/src/mint_to.rs | Use spl-token-interface CPI builders for transfer/mint operations. |
| vault_program/src/initialize_vault.rs | Migrate system + token/ATA CPIs to interface crates and update account slice usage. |
| vault_program/src/enqueue_withdrawal.rs | Use spl-token-interface transfer CPI builder. |
| vault_program/src/delegate_token_account.rs | Use spl-token-2022-interface approve instruction builder. |
| vault_program/src/burn_withdrawal_ticket.rs | Swap SPL token instruction/state imports to interface crates. |
| vault_program/Cargo.toml | Replace legacy SPL deps with interface crates; add solana-system-interface. |
| vault_core/src/vault.rs | Minor API tweaks (e.g., const fn) and test AccountInfo construction updates. |
| vault_core/src/config.rs | Make set_admin a const fn. |
| vault_core/src/burn_vault.rs | Use solana-system-interface system program ID and update tests accordingly. |
| vault_core/Cargo.toml | Replace legacy SPL deps with interface crates; add solana-system-interface. |
| scripts/update-rust-borsh.js | New post-gen rewrite script for borsh 1.x (try_to_vec → borsh::to_vec) and PrintProgramError removal. |
| rust-toolchain.toml | Bump Rust toolchain version. |
| restaking_sdk/src/sdk.rs | Switch instruction serialization to borsh::to_vec and use solana-system-interface. |
| restaking_sdk/src/error.rs | Move DecodeError import to solana-decode-error and annotate deprecated trait usage. |
| restaking_sdk/Cargo.toml | Add solana-decode-error and solana-system-interface. |
| restaking_program/src/operator_delegate_token_account.rs | Use spl-token-2022-interface approve instruction builder. |
| restaking_program/src/ncn_delegate_token_account.rs | Use spl-token-2022-interface approve instruction builder. |
| restaking_program/Cargo.toml | Replace legacy SPL deps with interface crates. |
| restaking_core/src/config.rs | Make set_admin a const fn. |
| restaking_core/Cargo.toml | Replace legacy SPL deps with interface crates. |
| package.json | Add update-rust-borsh script. |
| makefile | Run update-rust-borsh and cargo fmt during code generation. |
| integration_tests/tests/vault/revoke_delegate_token_account.rs | Migrate ATA/token program references to interface crates. |
| integration_tests/tests/vault/initialize_vault.rs | Migrate ATA/token program references to interface crates. |
| integration_tests/tests/vault/enqueue_withdrawal.rs | Migrate ATA helper import to interface crate. |
| integration_tests/tests/vault/delegate_token_account.rs | Migrate ATA/token program references to interface crates. |
| integration_tests/tests/vault/create_token_metadata.rs | Use spl-token-interface id in mint creation helper call. |
| integration_tests/tests/vault/crank_vault_update_state_tracker.rs | Migrate ATA helper import to interface crate. |
| integration_tests/tests/vault/burn_withdrawal_ticket.rs | Migrate ATA/token program references to interface crates. |
| integration_tests/tests/restaking/operator_delegate_token_account.rs | Migrate ATA/token program references to interface crates. |
| integration_tests/tests/restaking/ncn_delegate_token_account.rs | Migrate ATA/token program references to interface crates. |
| integration_tests/tests/fixtures/vault_client.rs | Update test client to interface crates and move commitment config/lamports helper. |
| integration_tests/tests/fixtures/restaking_client.rs | Update test client imports for commitment config/system transfer. |
| integration_tests/tests/fixtures/mod.rs | Add local sol_to_lamports helper for tests. |
| integration_tests/tests/fixtures/fixture.rs | Update fixture helpers to interface crates + commitment config + local sol_to_lamports. |
| integration_tests/Cargo.toml | Replace legacy SPL deps with interface crates; add new Solana split crates. |
| crankers/src/vault_handler.rs | Update Solana imports (commitment/compute budget interface) and annotate deprecated RPC call. |
| crankers/src/restaking_handler.rs | Move CommitmentConfig import to solana-commitment-config. |
| crankers/src/metrics.rs | Migrate ATA/token state imports to interface crates. |
| crankers/src/core.rs | Move CommitmentConfig import to solana-commitment-config. |
| crankers/Cargo.toml | Replace legacy SPL deps with interface crates; add commitment/compute budget interface crates. |
| core/src/loader.rs | Migrate ATA/token program IDs and token state unpacking to interface crates. |
| core/src/lib.rs | Migrate system instructions + system program id to solana-system-interface and update realloc/close logic accordingly. |
| core/src/error.rs | Annotate deprecated DecodeError usage and adjust test accordingly. |
| core/Cargo.toml | Replace legacy SPL deps with interface crates; add solana-system-interface. |
| clients/rust/vault_client/src/log/vault.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/vault_update_state_tracker.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/vault_staker_withdrawal_ticket.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/vault_operator_delegation.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/vault_ncn_ticket.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/vault_ncn_slasher_ticket.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/vault_ncn_slasher_operator_ticket.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/metadata.rs | Remove Anchor Pubkey dependency; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/log/config.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/vault_client/src/generated/instructions/warmup_vault_ncn_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/warmup_vault_ncn_slasher_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/update_vault_balance.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/update_token_metadata.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/set_secondary_admin.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/set_program_fee.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/set_program_fee_wallet.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/set_is_paused.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/set_fees.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/set_deposit_capacity.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/set_config_secondary_admin.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/set_config_admin.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/set_admin.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/revoke_delegate_token_account.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/mint_to.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/initialize_vault.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/initialize_vault_with_mint.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/initialize_vault_update_state_tracker.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/initialize_vault_operator_delegation.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/initialize_vault_ncn_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/initialize_vault_ncn_slasher_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/initialize_vault_ncn_slasher_operator_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/initialize_config.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/enqueue_withdrawal.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/delegate_token_account.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/create_token_metadata.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/crank_vault_update_state_tracker.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/cooldown_vault_ncn_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/cooldown_vault_ncn_slasher_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/cooldown_delegation.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/close_vault_update_state_tracker.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/instructions/change_withdrawal_ticket_owner.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/burn_withdrawal_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/vault_client/src/generated/instructions/add_delegation.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/vault_client/src/generated/errors/jito_vault.rs | Generated client: remove PrintProgramError impl (no longer available). |
| clients/rust/restaking_client/src/log/operator.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/restaking_client/src/log/operator_vault_ticket.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/restaking_client/src/log/ncn.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/restaking_client/src/log/ncn_vault_ticket.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/restaking_client/src/log/ncn_vault_slasher_ticket.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/restaking_client/src/log/ncn_operator_state.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/restaking_client/src/log/config.rs | Remove Anchor Pubkey usage in tests; use solana_program::pubkey::Pubkey. |
| clients/rust/restaking_client/src/generated/instructions/warmup_operator_vault_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/warmup_ncn_vault_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/warmup_ncn_vault_slasher_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/set_config_admin.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/operator_warmup_ncn.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/operator_set_secondary_admin.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/restaking_client/src/generated/instructions/operator_set_fee.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/restaking_client/src/generated/instructions/operator_set_admin.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/operator_delegate_token_account.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/operator_cooldown_ncn.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/ncn_warmup_operator.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/ncn_set_secondary_admin.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/restaking_client/src/generated/instructions/ncn_set_admin.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/ncn_delegate_token_account.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/ncn_cooldown_operator.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/initialize_operator.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/restaking_client/src/generated/instructions/initialize_operator_vault_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/initialize_ncn.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/initialize_ncn_vault_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/initialize_ncn_vault_slasher_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec (data + args). |
| clients/rust/restaking_client/src/generated/instructions/initialize_ncn_operator_state.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/initialize_config.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/cooldown_operator_vault_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/cooldown_ncn_vault_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/instructions/cooldown_ncn_vault_slasher_ticket.rs | Generated client: replace try_to_vec with borsh::to_vec. |
| clients/rust/restaking_client/src/generated/errors/jito_restaking.rs | Generated client: remove PrintProgramError impl (no longer available). |
| cli/src/vault_handler.rs | Migrate ATA/token instruction usage to interface crates. |
| cli/src/restaking_handler.rs | Migrate ATA helper usage and token program id references to interface crates. |
| cli/src/cli_signer.rs | Move derivation path import to solana-derivation-path. |
| cli/src/cli_config.rs | Move commitment config import to solana-commitment-config. |
| cli/src/bin/main.rs | Move commitment config import to solana-commitment-config. |
| cli/Cargo.toml | Add new Solana split crates and replace legacy SPL deps with interface crates. |
| Cargo.toml | Major dependency bumps (Rust ecosystem + Solana/Anchor/Borsh) and introduce Solana split crates + SPL interface crates. |
| .github/workflows/ci.yaml | Bump toolchains/images and adjust SBF build step to per-program manifests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ebatsell
approved these changes
Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.