From 09236578b2ea55993a062c68a6027ffeddb5f0d6 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Mon, 23 Mar 2026 21:55:34 +0000 Subject: [PATCH] migrate all Anchor projects from 0.32.1 to 1.0.0-rc.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rust changes (48 Anchor programs): - anchor-lang 0.32.1 → 1.0.0-rc.5 - anchor-spl 0.32.1 → 1.0.0-rc.5 - CpiContext::new() program arg: .to_account_info() → .key() (Anchor 1.0 takes Pubkey) - Context lifetime params: 4 → 2 (transfer-fee project) - Removed interface-instructions feature (transfer-hook projects) - Removed [registry] section from all Anchor.toml files TypeScript changes: - @coral-xyz/anchor → @anchor-lang/core 1.0.0-rc.5 - TypeScript bumped to ^5.3.3 where needed Transfer-hook projects (7): - Added .map_err() wrappers on spl-tlv-account-resolution calls to bridge solana-program-error 2.x → 3.x ProgramError type gap - transmute_pubkey() helper for solana-pubkey 2.x → 3.x in transfer-cost - Fixed #[instruction] attribute mismatches in transfer-switch (stricter in 1.0) - AccountInfo → UncheckedAccount in Accounts structs Compression projects (3): - Replaced mpl-bubblegum 2.1.1 and spl-account-compression 1.0.0 CPI wrappers with raw invoke()/invoke_signed() — these crates depend on Solana 2.x types and have no Solana 3.x compatible release yet - New bubblegum_types.rs in cutils with reimplemented types using borsh 1.x - Added sha3 crate for keccak256 (solana_program::keccak removed in Solana 3.x) Why: Anchor 1.0 is the current release candidate. This migration ensures all program-examples build against the latest framework. Pin to RC until stable. --- .reference/ANCHOR-1.0-MIGRATION.md | 41 + Cargo.lock | 564 +++--- basics/account-data/anchor/Anchor.toml | 3 +- basics/account-data/anchor/package.json | 4 +- .../anchor-program-example/Cargo.toml | 3 +- .../account-data/anchor/tests/litesvm.test.ts | 2 +- basics/account-data/anchor/tests/test.ts | 2 +- basics/checking-accounts/anchor/Anchor.toml | 3 +- basics/checking-accounts/anchor/package.json | 4 +- .../anchor-program-example/Cargo.toml | 3 +- .../anchor/tests/bankrun.test.ts | 2 +- basics/checking-accounts/anchor/tests/test.ts | 2 +- basics/close-account/anchor/Anchor.toml | 3 +- .../close-account/anchor/migrations/deploy.ts | 2 +- basics/close-account/anchor/package.json | 4 +- .../anchor/programs/close-account/Cargo.toml | 3 +- .../anchor/tests/litesvm.test.ts | 2 +- basics/close-account/anchor/tests/test.ts | 4 +- basics/counter/anchor/Anchor.toml | 3 +- basics/counter/anchor/migrations/deploy.ts | 2 +- basics/counter/anchor/package.json | 4 +- basics/counter/anchor/pnpm-lock.yaml | 100 +- .../anchor/programs/counter_anchor/Cargo.toml | 3 +- basics/counter/anchor/tests/litesvm.test.ts | 2 +- basics/counter/anchor/tests/test.ts | 4 +- basics/create-account/anchor/Anchor.toml | 3 +- basics/create-account/anchor/package.json | 4 +- .../programs/create-system-account/Cargo.toml | 3 +- .../programs/create-system-account/src/lib.rs | 2 +- .../anchor/tests/litesvm.test.ts | 2 +- basics/create-account/anchor/tests/test.ts | 2 +- .../anchor/Anchor.toml | 3 +- .../anchor/migrations/deploy.ts | 2 +- .../anchor/package.json | 4 +- .../anchor/programs/hand/Cargo.toml | 3 +- .../anchor/programs/hand/src/lib.rs | 2 +- .../anchor/programs/lever/Cargo.toml | 3 +- .../anchor/tests/litesvm.test.ts | 2 +- .../anchor/tests/test.ts | 4 +- basics/favorites/anchor/Anchor.toml | 3 +- basics/favorites/anchor/migrations/deploy.ts | 2 +- basics/favorites/anchor/package.json | 4 +- .../anchor/programs/favorites/Cargo.toml | 2 +- basics/favorites/anchor/tests/litesvm.test.ts | 2 +- basics/favorites/anchor/tests/test.ts | 4 +- basics/hello-solana/anchor/Anchor.toml | 3 +- basics/hello-solana/anchor/package.json | 4 +- .../anchor/programs/hello-solana/Cargo.toml | 3 +- .../hello-solana/anchor/tests/litesvm.test.ts | 2 +- basics/hello-solana/anchor/tests/test.ts | 2 +- basics/pda-rent-payer/anchor/Anchor.toml | 3 +- basics/pda-rent-payer/anchor/package.json | 4 +- .../anchor-program-example/Cargo.toml | 3 +- .../src/instructions/create_new_account.rs | 2 +- .../src/instructions/init_rent_vault.rs | 2 +- .../anchor/tests/litesvm.test.ts | 2 +- basics/pda-rent-payer/anchor/tests/test.ts | 2 +- .../anchor/Anchor.toml | 3 +- .../anchor/package.json | 4 +- .../processing-instructions/Cargo.toml | 3 +- .../anchor/tests/litesvm.test.ts | 2 +- .../anchor/tests/test.ts | 2 +- .../anchor/Anchor.toml | 3 +- .../anchor/package.json | 4 +- .../anchor-program-example/Cargo.toml | 3 +- .../anchor/tests/litesvm.test.ts | 2 +- .../anchor/tests/test.ts | 2 +- basics/realloc/anchor/Anchor.toml | 3 +- basics/realloc/anchor/migrations/deploy.ts | 2 +- basics/realloc/anchor/package.json | 4 +- .../anchor/programs/anchor-realloc/Cargo.toml | 3 +- basics/realloc/anchor/tests/litesvm.test.ts | 2 +- basics/realloc/anchor/tests/test.ts | 4 +- basics/rent/anchor/Anchor.toml | 3 +- basics/rent/anchor/package.json | 4 +- .../anchor/programs/rent-example/Cargo.toml | 3 +- .../anchor/programs/rent-example/src/lib.rs | 2 +- basics/rent/anchor/tests/litesvm.test.ts | 2 +- basics/rent/anchor/tests/test.ts | 2 +- basics/repository-layout/anchor/Anchor.toml | 3 +- basics/repository-layout/anchor/package.json | 4 +- .../anchor/programs/carnival/Cargo.toml | 3 +- .../anchor/tests/litesvm.test.ts | 2 +- basics/repository-layout/anchor/tests/test.ts | 2 +- basics/transfer-sol/anchor/Anchor.toml | 3 +- basics/transfer-sol/anchor/package.json | 4 +- .../anchor/programs/transfer-sol/Cargo.toml | 3 +- .../anchor/programs/transfer-sol/src/lib.rs | 2 +- .../transfer-sol/anchor/tests/litesvm.test.ts | 2 +- basics/transfer-sol/anchor/tests/test.ts | 2 +- compression/cnft-burn/anchor/Anchor.toml | 3 +- .../cnft-burn/anchor/migrations/deploy.ts | 2 +- compression/cnft-burn/anchor/package.json | 4 +- .../anchor/programs/cnft-burn/Cargo.toml | 9 +- .../anchor/programs/cnft-burn/src/lib.rs | 131 +- .../cnft-burn/anchor/tests/cnft-burn.ts | 4 +- .../cnft-burn/anchor/tests/createAndMint.ts | 2 +- compression/cnft-vault/anchor/Anchor.toml | 3 +- compression/cnft-vault/anchor/package.json | 4 +- .../anchor/programs/cnft-vault/Cargo.toml | 9 +- .../anchor/programs/cnft-vault/src/lib.rs | 263 ++- .../anchor/tests/scripts/constants.ts | 2 +- .../anchor/tests/scripts/withdraw.ts | 2 +- .../anchor/tests/scripts/withdrawTwo.ts | 2 +- .../tests/scripts/withdrawWithLookup.ts | 2 +- compression/cnft-vault/anchor/tests/tests.ts | 2 +- compression/cutils/anchor/Anchor.toml | 3 +- compression/cutils/anchor/package.json | 4 +- .../cutils/anchor/programs/cutils/Cargo.toml | 11 +- .../programs/cutils/src/actions/mint.rs | 201 +- .../programs/cutils/src/actions/verify.rs | 37 +- .../programs/cutils/src/bubblegum_types.rs | 113 ++ .../cutils/anchor/programs/cutils/src/lib.rs | 22 +- compression/cutils/anchor/tests/tests.ts | 2 +- oracles/pyth/anchor/Anchor.toml | 3 +- .../anchor/programs/pythexample/Cargo.toml | 3 +- package.json | 2 +- tokens/create-token/anchor/Anchor.toml | 3 +- tokens/create-token/anchor/package.json | 4 +- .../anchor/programs/create-token/Cargo.toml | 5 +- .../anchor/programs/create-token/src/lib.rs | 2 +- .../create-token/anchor/tests/bankrun.test.ts | 2 +- tokens/create-token/anchor/tests/test.ts | 2 +- tokens/escrow/anchor/Anchor.toml | 3 +- tokens/escrow/anchor/migrations/deploy.ts | 2 +- tokens/escrow/anchor/package.json | 2 +- .../escrow/anchor/programs/escrow/Cargo.toml | 5 +- .../escrow/src/instructions/shared.rs | 2 +- .../escrow/src/instructions/take_offer.rs | 4 +- tokens/escrow/anchor/tests/bankrun.test.ts | 2 +- tokens/escrow/anchor/tests/escrow.test.ts | 2 +- .../anchor/Anchor.toml | 3 +- .../anchor/package.json | 4 +- .../external-delegate-token-master/Cargo.toml | 5 +- .../external-delegate-token-master/src/lib.rs | 4 +- tokens/nft-minter/anchor/Anchor.toml | 3 +- tokens/nft-minter/anchor/package.json | 4 +- .../anchor/programs/nft-minter/Cargo.toml | 5 +- .../anchor/programs/nft-minter/src/lib.rs | 6 +- .../nft-minter/anchor/tests/bankrun.test.ts | 2 +- tokens/nft-minter/anchor/tests/test.ts | 2 +- tokens/nft-operations/anchor/Anchor.toml | 3 +- tokens/nft-operations/anchor/Cargo.lock | 1542 +++++++--------- tokens/nft-operations/anchor/package.json | 4 +- .../anchor/programs/mint-nft/Cargo.toml | 4 +- .../src/contexts/create_collection.rs | 3 +- .../mint-nft/src/contexts/mint_nft.rs | 3 +- .../src/contexts/verify_collection.rs | 5 +- .../anchor/tests/bankrun.test.ts | 4 +- .../nft-operations/anchor/tests/mint-nft.ts | 8 +- tokens/pda-mint-authority/anchor/Anchor.toml | 3 +- tokens/pda-mint-authority/anchor/package.json | 4 +- .../anchor/programs/token-minter/Cargo.toml | 4 +- .../token-minter/src/instructions/create.rs | 2 +- .../token-minter/src/instructions/mint.rs | 2 +- .../anchor/tests/bankrun.test.ts | 2 +- .../pda-mint-authority/anchor/tests/test.ts | 2 +- tokens/spl-token-minter/anchor/Anchor.toml | 3 +- tokens/spl-token-minter/anchor/package.json | 4 +- .../programs/spl-token-minter/Cargo.toml | 4 +- .../src/instructions/create.rs | 2 +- .../spl-token-minter/src/instructions/mint.rs | 2 +- .../anchor/tests/bankrun.test.ts | 2 +- tokens/spl-token-minter/anchor/tests/test.ts | 2 +- tokens/token-2022/basics/anchor/Anchor.toml | 3 +- .../basics/anchor/migrations/deploy.ts | 2 +- tokens/token-2022/basics/anchor/package.json | 4 +- .../basics/anchor/programs/basics/Cargo.toml | 4 +- .../basics/anchor/programs/basics/src/lib.rs | 4 +- .../token-2022/basics/anchor/tests/anchor.ts | 4 +- .../basics/anchor/tests/bankrun.test.ts | 2 +- .../token-2022/cpi-guard/anchor/Anchor.toml | 3 +- .../cpi-guard/anchor/migrations/deploy.ts | 2 +- .../token-2022/cpi-guard/anchor/package.json | 4 +- .../anchor/programs/cpi-guard/Cargo.toml | 4 +- .../anchor/programs/cpi-guard/src/lib.rs | 2 +- .../cpi-guard/anchor/tests/cpi-guard.ts | 4 +- .../default-account-state/anchor/Anchor.toml | 3 +- .../anchor/migrations/deploy.ts | 2 +- .../default-account-state/anchor/package.json | 4 +- .../programs/default-account-state/Cargo.toml | 4 +- .../programs/default-account-state/src/lib.rs | 8 +- .../anchor/tests/default-account-state.ts | 4 +- tokens/token-2022/group/anchor/Anchor.toml | 3 +- .../group/anchor/migrations/deploy.ts | 2 +- tokens/token-2022/group/anchor/package.json | 4 +- .../group/anchor/programs/group/Cargo.toml | 4 +- tokens/token-2022/group/anchor/tests/group.ts | 4 +- .../immutable-owner/anchor/Anchor.toml | 3 +- .../anchor/migrations/deploy.ts | 2 +- .../immutable-owner/anchor/package.json | 4 +- .../programs/immutable-owner/Cargo.toml | 4 +- .../programs/immutable-owner/src/lib.rs | 6 +- .../anchor/tests/immutable-owner.ts | 4 +- .../interest-bearing/anchor/Anchor.toml | 3 +- .../anchor/migrations/deploy.ts | 2 +- .../interest-bearing/anchor/package.json | 4 +- .../programs/interest-bearing/Cargo.toml | 4 +- .../programs/interest-bearing/src/lib.rs | 8 +- .../anchor/tests/interest-bearing.ts | 4 +- .../memo-transfer/anchor/Anchor.toml | 3 +- .../memo-transfer/anchor/migrations/deploy.ts | 2 +- .../memo-transfer/anchor/package.json | 4 +- .../anchor/programs/memo-transfer/Cargo.toml | 4 +- .../anchor/programs/memo-transfer/src/lib.rs | 8 +- .../anchor/tests/memo-transfer.ts | 4 +- tokens/token-2022/metadata/anchor/Anchor.toml | 3 +- .../metadata/anchor/migrations/deploy.ts | 2 +- .../token-2022/metadata/anchor/package.json | 4 +- .../anchor/programs/metadata/Cargo.toml | 4 +- .../metadata/src/instructions/initialize.rs | 4 +- .../src/instructions/update_authority.rs | 2 +- .../metadata/src/instructions/update_field.rs | 4 +- .../metadata/anchor/tests/metadata.ts | 4 +- .../mint-close-authority/anchor/Anchor.toml | 3 +- .../anchor/migrations/deploy.ts | 2 +- .../mint-close-authority/anchor/package.json | 4 +- .../programs/mint-close-authority/Cargo.toml | 4 +- .../programs/mint-close-authority/src/lib.rs | 2 +- .../anchor/tests/mint-close-authority.ts | 4 +- .../anchor-example/anchor/package.json | 2 +- .../anchor/programs/extension_nft/Cargo.toml | 8 +- .../src/instructions/mint_nft.rs | 12 +- .../anchor-example/anchor/tests/lumberjack.ts | 4 +- .../anchor-example/app/package.json | 2 +- .../anchor-example/app/utils/anchor.ts | 2 +- .../non-transferable/anchor/Anchor.toml | 3 +- .../anchor/migrations/deploy.ts | 2 +- .../non-transferable/anchor/package.json | 4 +- .../programs/non-transferable/Cargo.toml | 4 +- .../programs/non-transferable/src/lib.rs | 6 +- .../anchor/tests/non-transferable.ts | 4 +- .../permanent-delegate/anchor/Anchor.toml | 3 +- .../anchor/migrations/deploy.ts | 2 +- .../permanent-delegate/anchor/package.json | 4 +- .../programs/permanent-delegate/Cargo.toml | 4 +- .../anchor/tests/permanent-delegate.ts | 4 +- .../transfer-fee/anchor/Anchor.toml | 3 +- .../transfer-fee/anchor/migrations/deploy.ts | 2 +- .../transfer-fee/anchor/package.json | 4 +- .../anchor/programs/transfer-fee/Cargo.toml | 4 +- .../transfer-fee/src/instructions/harvest.rs | 4 +- .../src/instructions/initialize.rs | 6 +- .../transfer-fee/src/instructions/transfer.rs | 2 +- .../src/instructions/update_fee.rs | 2 +- .../transfer-fee/src/instructions/withdraw.rs | 2 +- .../anchor/programs/transfer-fee/src/lib.rs | 2 +- .../transfer-fee/anchor/tests/transfer-fee.ts | 6 +- .../account-data-as-seed/anchor/Anchor.toml | 8 +- .../anchor/migrations/deploy.ts | 2 +- .../account-data-as-seed/anchor/package.json | 4 +- .../anchor/programs/transfer-hook/Cargo.toml | 6 +- .../anchor/programs/transfer-hook/src/lib.rs | 37 +- .../anchor/tests/transfer-hook.ts | 4 +- .../allow-block-list-token/anchor/Anchor.toml | 3 +- .../anchor/programs/abl-token/Cargo.toml | 7 +- .../src/instructions/attach_to_mint.rs | 2 +- .../abl-token/src/instructions/change_mode.rs | 4 +- .../abl-token/src/instructions/init_mint.rs | 6 +- .../anchor/src/abl-token-exports.ts | 2 +- .../anchor/tests/basic.test.ts | 4 +- .../allow-block-list-token/package.json | 2 +- .../abl-token/abl-token-data-access.tsx | 2 +- .../abl-token-manage-token-detail.tsx | 2 +- .../src/components/abl-token/abl-token-ui.tsx | 2 +- .../src/components/solana/solana-provider.tsx | 2 +- .../transfer-hook/counter/anchor/Anchor.toml | 8 +- .../counter/anchor/migrations/deploy.ts | 2 +- .../transfer-hook/counter/anchor/package.json | 4 +- .../anchor/programs/transfer-hook/Cargo.toml | 6 +- .../anchor/programs/transfer-hook/src/lib.rs | 27 +- .../counter/anchor/tests/transfer-hook.ts | 4 +- .../hello-world/anchor/Anchor.toml | 3 +- .../hello-world/anchor/migrations/deploy.ts | 2 +- .../hello-world/anchor/package.json | 4 +- .../anchor/programs/transfer-hook/Cargo.toml | 6 +- .../anchor/programs/transfer-hook/src/lib.rs | 45 +- .../hello-world/anchor/tests/transfer-hook.ts | 4 +- .../transfer-cost/anchor/Anchor.toml | 3 +- .../transfer-cost/anchor/migrations/deploy.ts | 2 +- .../transfer-cost/anchor/package.json | 4 +- .../anchor/programs/transfer-hook/Cargo.toml | 6 +- .../anchor/programs/transfer-hook/src/lib.rs | 73 +- .../anchor/tests/transfer-hook.ts | 4 +- .../transfer-switch/anchor/Anchor.toml | 3 +- .../transfer-switch/anchor/package.json | 2 +- .../programs/transfer-switch/Cargo.toml | 6 +- .../initialise_extra_account_metas_list.rs | 11 +- .../src/instructions/switch.rs | 1 - .../src/instructions/transfer_hook.rs | 9 +- .../programs/transfer-switch/src/lib.rs | 10 +- .../anchor/tests/transfer-switch.ts | 2 +- .../whitelist/anchor/Anchor.toml | 3 +- .../whitelist/anchor/migrations/deploy.ts | 2 +- .../whitelist/anchor/package.json | 4 +- .../anchor/programs/transfer-hook/Cargo.toml | 6 +- .../anchor/programs/transfer-hook/src/lib.rs | 39 +- .../whitelist/anchor/tests/transfer-hook.ts | 4 +- tokens/token-fundraiser/anchor/Anchor.toml | 3 +- tokens/token-fundraiser/anchor/Cargo.lock | 1617 +++++------------ tokens/token-fundraiser/anchor/package.json | 4 +- .../anchor/programs/fundraiser/Cargo.toml | 4 +- .../fundraiser/src/instructions/checker.rs | 2 +- .../fundraiser/src/instructions/contribute.rs | 2 +- .../fundraiser/src/instructions/refund.rs | 2 +- .../anchor/tests/bankrun.test.ts | 2 +- .../anchor/tests/fundraiser.ts | 6 +- tokens/token-swap/anchor/Anchor.toml | 3 +- tokens/token-swap/anchor/package.json | 4 +- .../anchor/programs/token-swap/Cargo.toml | 4 +- .../src/instructions/deposit_liquidity.rs | 6 +- .../swap_exact_tokens_for_tokens.rs | 8 +- .../src/instructions/withdraw_liquidity.rs | 6 +- tokens/token-swap/anchor/tests/create-amm.ts | 4 +- tokens/token-swap/anchor/tests/create-pool.ts | 4 +- .../anchor/tests/deposit-liquidity.ts | 4 +- tokens/token-swap/anchor/tests/swap.ts | 4 +- tokens/token-swap/anchor/tests/utils.ts | 2 +- .../anchor/tests/withdraw-liquidity.ts | 4 +- tokens/transfer-tokens/anchor/Anchor.toml | 3 +- tokens/transfer-tokens/anchor/package.json | 4 +- .../programs/transfer-tokens/Cargo.toml | 4 +- .../src/instructions/create.rs | 2 +- .../transfer-tokens/src/instructions/mint.rs | 2 +- .../src/instructions/transfer.rs | 2 +- .../anchor/tests/bankrun.test.ts | 2 +- tokens/transfer-tokens/anchor/tests/test.ts | 2 +- 327 files changed, 2819 insertions(+), 3101 deletions(-) create mode 100644 .reference/ANCHOR-1.0-MIGRATION.md create mode 100644 compression/cutils/anchor/programs/cutils/src/bubblegum_types.rs diff --git a/.reference/ANCHOR-1.0-MIGRATION.md b/.reference/ANCHOR-1.0-MIGRATION.md new file mode 100644 index 000000000..d68e5634e --- /dev/null +++ b/.reference/ANCHOR-1.0-MIGRATION.md @@ -0,0 +1,41 @@ +# Anchor 1.0.0-rc.5 Migration Reference + +## Proven pattern (from basics/counter/anchor) + +### Cargo.toml +- Change `anchor-lang = "0.32.1"` → `anchor-lang = "1.0.0-rc.5"` +- Change `anchor-lang = { version = "0.32.1", ... }` → `anchor-lang = { version = "1.0.0-rc.5", ... }` +- Same for `anchor-spl` if present — change to `1.0.0-rc.5` +- Add comment: `# Anchor 1.0.0-rc.5 — pin to RC until stable release` +- **REMOVE `interface-instructions` feature** if present (removed in Anchor 1.0). This affects transfer-hook projects. +- Keep all other features as-is (`idl-build`, `init-if-needed`, `cpi`, etc.) + +### Anchor.toml +- Remove `[registry]` section if present (no longer used in Anchor 1.0) +- Keep everything else + +### package.json +- Replace `"@coral-xyz/anchor": "..."` with `"@anchor-lang/core": "1.0.0-rc.5"` +- Bump `"typescript"` to `"^5.3.3"` if it's on 4.x (required for @solana/web3.js peer dep) +- Keep everything else + +### TypeScript files (tests/*.ts, migrations/*.ts) +- Replace `import ... from "@coral-xyz/anchor"` → `import ... from "@anchor-lang/core"` +- Replace `import ... from '@coral-xyz/anchor'` → `import ... from '@anchor-lang/core'` +- Replace `require("@coral-xyz/anchor")` → `require("@anchor-lang/core")` if any + +### Rust source code (lib.rs etc.) +- Usually NO changes needed +- If `AccountInfo` is used in an Accounts struct, replace with `UncheckedAccount` +- If duplicate mutable accounts exist, add `#[account(dup)]` constraint + +### Build verification +- Run `cargo build-sbf` in the anchor project directory to verify Rust builds +- Run `pnpm install` to verify deps install +- Do NOT run tests (no validator available) + +### interface-instructions removal (transfer-hook projects) +For projects that had `features = ["interface-instructions"]`: +- Remove that feature from Cargo.toml +- The `#[interface]` attribute is removed — check if the program source uses it +- If it does, this needs manual intervention to refactor diff --git a/Cargo.lock b/Cargo.lock index 0eaa3c5cd..baa0a8097 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,7 +110,7 @@ dependencies = [ "solana-message 3.0.1", "solana-precompile-error", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-secp256k1-program", "solana-secp256r1-program", ] @@ -123,7 +123,7 @@ checksum = "d31eb6b96ba26b7af016232a31f40194309a81530c9695e7dd7967fe7edffd9f" dependencies = [ "agave-feature-set", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -136,11 +136,11 @@ dependencies = [ "libsecp256k1", "num-traits", "solana-account 3.1.0", - "solana-account-info 3.0.0", + "solana-account-info 3.1.1", "solana-big-mod-exp 3.0.0", "solana-blake3-hasher 3.0.0", "solana-bn254", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-cpi 3.0.0", "solana-curve25519 3.0.7", "solana-hash 3.0.0", @@ -148,23 +148,23 @@ dependencies = [ "solana-keccak-hasher 3.0.0", "solana-loader-v3-interface 6.1.0", "solana-poseidon", - "solana-program-entrypoint 3.1.0", + "solana-program-entrypoint 3.1.1", "solana-program-runtime", "solana-pubkey 3.0.0", "solana-sbpf", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-secp256k1-recover 3.0.0", "solana-sha256-hasher 3.0.0", "solana-stable-layout 3.0.0", - "solana-stake-interface 2.0.1", + "solana-stake-interface 2.0.2", "solana-svm-callback", "solana-svm-feature-set", "solana-svm-log-collector", "solana-svm-measure", "solana-svm-timings", "solana-svm-type-overrides", - "solana-sysvar 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", "solana-transaction-context", "thiserror 2.0.17", ] @@ -204,11 +204,10 @@ dependencies = [ [[package]] name = "anchor-attribute-access-control" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a883ca44ef14b2113615fc6d3a85fefc68b5002034e88db37f7f1f802f88aa9" +checksum = "f3db7f5f8a6b16fa2b6e1b0222e656249c3abedf052e3943babf248929571204" dependencies = [ - "anchor-syn", "proc-macro2", "quote", "syn 1.0.109", @@ -216,12 +215,11 @@ dependencies = [ [[package]] name = "anchor-attribute-account" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c4d97763b29030412b4b80715076377edc9cc63bc3c9e667297778384b9fd2" +checksum = "0a12661acaba9866a5f2d8d8d46a1eed8b484f41dc9f94f808c3b07d35726816" dependencies = [ "anchor-syn", - "bs58", "proc-macro2", "quote", "syn 1.0.109", @@ -229,9 +227,9 @@ dependencies = [ [[package]] name = "anchor-attribute-constant" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae3328bbf9bbd517a51621b1ba6cbec06cbbc25e8cfc7403bddf69bcf088206" +checksum = "6dff08bc0187aafc559da8f63b5adeab0bcdf97128765c72dd9a4861f70627fc" dependencies = [ "anchor-syn", "quote", @@ -240,9 +238,9 @@ dependencies = [ [[package]] name = "anchor-attribute-error" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2398a6d9e16df1ee9d7d37d970a8246756de898c8dd16ef6bdbe4da20cf39a" +checksum = "c2af8ce12fb8cf782a3e127d376698a4548a518e38b4686f9c439adce4730b48" dependencies = [ "anchor-syn", "quote", @@ -251,9 +249,9 @@ dependencies = [ [[package]] name = "anchor-attribute-event" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12758f4ec2f0e98d4d56916c6fe95cb23d74b8723dd902c762c5ef46ebe7b65" +checksum = "338be5df076369b99585264aaa46c66229ead67568d61bd38c3ab0fa7a15e554" dependencies = [ "anchor-syn", "proc-macro2", @@ -263,26 +261,24 @@ dependencies = [ [[package]] name = "anchor-attribute-program" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7193b5af2649813584aae6e3569c46fd59616a96af2083c556b13136c3830f" +checksum = "e5c4ec70cef4ef7e2d87b4e9c550f727a43d691d3d7f3e4d6b2e3bd530ae098d" dependencies = [ "anchor-lang-idl", "anchor-syn", "anyhow", - "bs58", "heck", "proc-macro2", "quote", - "serde_json", "syn 1.0.109", ] [[package]] name = "anchor-derive-accounts" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d332d1a13c0fca1a446de140b656e66110a5e8406977dcb6a41e5d6f323760b0" +checksum = "f610cb50e10e4c404cc774f20a4eb602b904f68ea04590f8b1eb22a1e28b33e5" dependencies = [ "anchor-syn", "quote", @@ -291,12 +287,12 @@ dependencies = [ [[package]] name = "anchor-derive-serde" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8656e4af182edaeae665fa2d2d7ee81148518b5bd0be9a67f2a381bb17da7d46" +checksum = "be9ead49a9689493f8857a61dd1abf1d70eeeeb0683f8c1e09b015ab5bdd382d" dependencies = [ "anchor-syn", - "borsh-derive-internal 0.10.4", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", "syn 1.0.109", @@ -304,9 +300,9 @@ dependencies = [ [[package]] name = "anchor-derive-space" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcff2a083560cd79817db07d89a4de39a2c4b2eaa00c1742cf0df49b25ff2bed" +checksum = "ea4d1372743444967347b60f9311d2ee54a630152fd1d6d805adebd7fcd72056" dependencies = [ "proc-macro2", "quote", @@ -315,9 +311,9 @@ dependencies = [ [[package]] name = "anchor-lang" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67d85d5376578f12d840c29ff323190f6eecd65b00a0b5f2b2f232751d049cc" +checksum = "254d0cb160ea5c4c6a8c2f847bbd0f384fef733ebc36ef8426ae95f1bfda5757" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -331,28 +327,30 @@ dependencies = [ "anchor-lang-idl", "base64 0.21.7", "bincode", - "borsh 0.10.4", + "borsh 1.5.7", "bytemuck", - "solana-account-info 2.3.0", - "solana-clock 2.2.2", - "solana-cpi 2.2.1", - "solana-define-syscall 2.3.0", - "solana-feature-gate-interface", - "solana-instruction 2.3.0", - "solana-instructions-sysvar 2.2.2", + "const-crypto", + "solana-account-info 3.1.1", + "solana-clock 3.0.1", + "solana-cpi 3.0.0", + "solana-define-syscall 3.0.0", + "solana-feature-gate-interface 3.1.0", + "solana-instruction 3.0.0", + "solana-instructions-sysvar 3.0.0", "solana-invoke", - "solana-loader-v3-interface 3.0.0", - "solana-msg 2.2.1", - "solana-program-entrypoint 2.3.0", - "solana-program-error 2.2.2", - "solana-program-memory 2.3.1", - "solana-program-option 2.2.1", - "solana-program-pack 2.2.1", - "solana-pubkey 2.4.0", - "solana-sdk-ids 2.2.1", - "solana-system-interface 1.0.0", - "solana-sysvar 2.3.0", - "solana-sysvar-id 2.2.1", + "solana-loader-v3-interface 6.1.0", + "solana-msg 3.1.0", + "solana-program-entrypoint 3.1.1", + "solana-program-error 3.0.0", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", + "solana-pubkey 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", + "solana-system-interface 2.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", "thiserror 1.0.69", ] @@ -390,9 +388,9 @@ dependencies = [ [[package]] name = "anchor-syn" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93b69aa7d099b59378433f6d7e20e1008fc10c69e48b220270e5b3f2ec4c8be" +checksum = "c9a855d34b1b0488f37ccc759c8bd4a696cd3a7bba8cb0734c2a965109f707da" dependencies = [ "anyhow", "bs58", @@ -401,7 +399,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "serde_json", "sha2 0.10.9", "syn 1.0.109", "thiserror 1.0.69", @@ -703,7 +700,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -984,6 +981,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "const-crypto" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" +dependencies = [ + "keccak-const", + "sha2-const-stable", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -1609,9 +1616,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "heck" @@ -1688,12 +1695,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.9.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown 0.16.1", ] [[package]] @@ -1771,6 +1778,12 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + [[package]] name = "lazy_static" version = "1.5.0" @@ -1870,7 +1883,7 @@ dependencies = [ "solana-address-lookup-table-interface 3.0.0", "solana-bpf-loader-program", "solana-builtins", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-compute-budget", "solana-compute-budget-instruction", "solana-epoch-rewards 3.0.0", @@ -1893,21 +1906,21 @@ dependencies = [ "solana-program-runtime", "solana-pubkey 3.0.0", "solana-rent 3.1.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sha256-hasher 3.0.0", "solana-signature", "solana-signer", "solana-slot-hashes 3.0.0", "solana-slot-history 3.0.0", - "solana-stake-interface 2.0.1", + "solana-stake-interface 2.0.2", "solana-svm-callback", "solana-svm-log-collector", "solana-svm-timings", "solana-svm-transaction", "solana-system-interface 2.0.0", "solana-system-program", - "solana-sysvar 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", "solana-transaction", "solana-transaction-context", "solana-transaction-error 3.0.0", @@ -2079,7 +2092,7 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -2251,7 +2264,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06810dac15a4ef83d3dabdb4f2f22fb39c9adff669cd2781da4f716510a647c" dependencies = [ "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.4.0", "solana-define-syscall 4.0.1", "solana-instruction-view", "solana-program-error 3.0.0", @@ -2295,7 +2308,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24044a0815753862b558e179e78f03f7344cb755de48617a09d7d23b50883b6c" dependencies = [ "pinocchio 0.10.2", - "solana-address 2.0.0", + "solana-address 2.4.0", ] [[package]] @@ -2346,11 +2359,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit", + "toml_edit 0.25.8+spec-1.1.0", ] [[package]] @@ -2967,12 +2980,12 @@ dependencies = [ "serde", "serde_bytes", "serde_derive", - "solana-account-info 3.0.0", - "solana-clock 3.0.0", + "solana-account-info 3.1.1", + "solana-clock 3.0.1", "solana-instruction-error", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", - "solana-sysvar 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar 3.1.1", ] [[package]] @@ -2990,15 +3003,15 @@ dependencies = [ [[package]] name = "solana-account-info" -version = "3.0.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82f4691b69b172c687d218dd2f1f23fc7ea5e9aa79df9ac26dab3d8dd829ce48" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" dependencies = [ "bincode", - "serde", + "serde_core", + "solana-address 2.4.0", "solana-program-error 3.0.0", - "solana-program-memory 3.0.0", - "solana-pubkey 3.0.0", + "solana-program-memory 3.1.0", ] [[package]] @@ -3007,7 +3020,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37ca34c37f92ee341b73d5ce7c8ef5bb38e9a87955b4bd343c63fa18b149215" dependencies = [ - "solana-address 2.0.0", + "solana-address 2.4.0", "solana-program-error 3.0.0", ] @@ -3035,14 +3048,15 @@ dependencies = [ [[package]] name = "solana-address" -version = "2.0.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37320fd2945c5d654b2c6210624a52d66c3f1f73b653ed211ab91a703b35bdd" +checksum = "7f67735365edc7fb19ed74ec950597107c8ee9cbfebac57b8868b3e78fb6df16" dependencies = [ "five8 1.0.0", "five8_const 1.0.0", - "solana-define-syscall 4.0.1", + "solana-define-syscall 5.0.0", "solana-program-error 3.0.0", + "solana-sanitize 3.0.1", ] [[package]] @@ -3072,11 +3086,11 @@ dependencies = [ "bytemuck", "serde", "serde_derive", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-instruction 3.0.0", "solana-instruction-error", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-slot-hashes 3.0.0", ] @@ -3210,16 +3224,16 @@ dependencies = [ "qualifier_attr", "solana-account 3.1.0", "solana-bincode 3.0.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-instruction 3.0.0", "solana-loader-v3-interface 6.1.0", "solana-loader-v4-interface 3.1.0", "solana-packet", - "solana-program-entrypoint 3.1.0", + "solana-program-entrypoint 3.1.1", "solana-program-runtime", "solana-pubkey 3.0.0", "solana-sbpf", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-svm-feature-set", "solana-svm-log-collector", "solana-svm-measure", @@ -3241,7 +3255,7 @@ dependencies = [ "solana-loader-v4-program", "solana-program-runtime", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-stake-program", "solana-system-program", "solana-vote-program", @@ -3262,7 +3276,7 @@ dependencies = [ "solana-compute-budget-program", "solana-loader-v4-program", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-stake-program", "solana-system-program", "solana-vote-program", @@ -3283,15 +3297,15 @@ dependencies = [ [[package]] name = "solana-clock" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb62e9381182459a4520b5fe7fb22d423cae736239a6427fc398a88743d0ed59" +checksum = "95cf11109c3b6115cc510f1e31f06fdd52f504271bc24ef5f1249fbbcae5f9f3" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", - "solana-sysvar-id 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -3328,7 +3342,7 @@ dependencies = [ "solana-instruction 3.0.0", "solana-packet", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-svm-transaction", "solana-transaction-error 3.0.0", "thiserror 2.0.17", @@ -3342,7 +3356,7 @@ checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" dependencies = [ "borsh 1.5.7", "solana-instruction 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -3366,7 +3380,7 @@ dependencies = [ "solana-account 3.1.0", "solana-instruction 3.0.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-short-vec 3.0.0", "solana-system-interface 2.0.0", ] @@ -3391,7 +3405,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16238feb63d1cbdf915fb287f29ef7a7ebf81469bd6214f8b72a53866b593f8f" dependencies = [ - "solana-account-info 3.0.0", + "solana-account-info 3.1.1", "solana-define-syscall 3.0.0", "solana-instruction 3.0.0", "solana-program-error 3.0.0", @@ -3454,6 +3468,12 @@ version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" +[[package]] +name = "solana-define-syscall" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03aacdd7a61e2109887a7a7f046caebafce97ddf1150f33722eeac04f9039c73" + [[package]] name = "solana-derivation-path" version = "3.0.0" @@ -3474,7 +3494,7 @@ dependencies = [ "bytemuck", "bytemuck_derive", "solana-instruction 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -3510,9 +3530,9 @@ dependencies = [ "serde", "serde_derive", "solana-hash 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", - "solana-sysvar-id 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -3547,9 +3567,9 @@ checksum = "6e5481e72cc4d52c169db73e4c0cd16de8bc943078aac587ec4817a75cc6388f" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", - "solana-sysvar-id 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -3592,14 +3612,14 @@ dependencies = [ "serde", "serde_derive", "solana-address-lookup-table-interface 3.0.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-hash 3.0.0", "solana-instruction 3.0.0", "solana-keccak-hasher 3.0.0", "solana-message 3.0.1", "solana-nonce 3.0.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-system-interface 2.0.0", "thiserror 2.0.17", ] @@ -3623,6 +3643,17 @@ dependencies = [ "solana-system-interface 1.0.0", ] +[[package]] +name = "solana-feature-gate-interface" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" +dependencies = [ + "solana-program-error 3.0.0", + "solana-pubkey 4.1.0", + "solana-sdk-ids 3.1.0", +] + [[package]] name = "solana-fee" version = "3.0.7" @@ -3676,7 +3707,7 @@ dependencies = [ "chrono", "memmap2", "solana-account 3.1.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-cluster-type", "solana-epoch-schedule 3.0.0", "solana-fee-calculator 3.0.0", @@ -3686,7 +3717,7 @@ dependencies = [ "solana-poh-config", "solana-pubkey 3.0.0", "solana-rent 3.1.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sha256-hasher 3.0.0", "solana-shred-version", "solana-signer", @@ -3733,6 +3764,16 @@ dependencies = [ "solana-sanitize 3.0.1", ] +[[package]] +name = "solana-hash" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8064ea1d591ec791be95245058ca40f4f5345d390c200069d0f79bbf55bfae55" +dependencies = [ + "bytemuck", + "bytemuck_derive", +] + [[package]] name = "solana-inflation" version = "3.0.0" @@ -3795,7 +3836,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60147e4d0a4620013df40bf30a86dd299203ff12fcb8b593cd51014fce0875d8" dependencies = [ "solana-account-view", - "solana-address 2.0.0", + "solana-address 2.4.0", "solana-define-syscall 4.0.1", "solana-program-error 3.0.0", ] @@ -3824,28 +3865,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ddf67876c541aa1e21ee1acae35c95c6fbc61119814bfef70579317a5e26955" dependencies = [ "bitflags", - "solana-account-info 3.0.0", + "solana-account-info 3.1.1", "solana-instruction 3.0.0", "solana-instruction-error", "solana-program-error 3.0.0", "solana-pubkey 3.0.0", "solana-sanitize 3.0.1", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-serialize-utils 3.1.0", - "solana-sysvar-id 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] name = "solana-invoke" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f5693c6de226b3626658377168b0184e94e8292ff16e3d31d4766e65627565" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" dependencies = [ - "solana-account-info 2.3.0", - "solana-define-syscall 2.3.0", - "solana-instruction 2.3.0", - "solana-program-entrypoint 2.3.0", - "solana-stable-layout 2.2.1", + "solana-account-info 3.1.1", + "solana-define-syscall 3.0.0", + "solana-instruction 3.0.0", + "solana-program-entrypoint 3.1.1", + "solana-stable-layout 3.0.0", ] [[package]] @@ -3910,9 +3951,9 @@ checksum = "dcda154ec827f5fc1e4da0af3417951b7e9b8157540f81f936c4a8b1156134d0" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", - "solana-sysvar-id 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -3929,21 +3970,6 @@ dependencies = [ "solana-sdk-ids 2.2.1", ] -[[package]] -name = "solana-loader-v3-interface" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4be76cfa9afd84ca2f35ebc09f0da0f0092935ccdac0595d98447f259538c2" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction 2.3.0", - "solana-pubkey 2.4.0", - "solana-sdk-ids 2.2.1", - "solana-system-interface 1.0.0", -] - [[package]] name = "solana-loader-v3-interface" version = "5.0.0" @@ -3970,7 +3996,8 @@ dependencies = [ "serde_derive", "solana-instruction 3.0.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-system-interface 2.0.0", ] [[package]] @@ -3999,7 +4026,7 @@ dependencies = [ "serde_derive", "solana-instruction 3.0.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-system-interface 2.0.0", ] @@ -4021,7 +4048,7 @@ dependencies = [ "solana-program-runtime", "solana-pubkey 3.0.0", "solana-sbpf", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-svm-log-collector", "solana-svm-measure", "solana-svm-type-overrides", @@ -4066,7 +4093,7 @@ dependencies = [ "solana-hash 3.0.0", "solana-instruction 3.0.0", "solana-sanitize 3.0.1", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-short-vec 3.0.0", "solana-transaction-error 3.0.0", ] @@ -4082,11 +4109,11 @@ dependencies = [ [[package]] name = "solana-msg" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "264275c556ea7e22b9d3f87d56305546a38d4eee8ec884f3b126236cb7dcbbb4" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" dependencies = [ - "solana-define-syscall 3.0.0", + "solana-define-syscall 5.0.0", ] [[package]] @@ -4138,7 +4165,7 @@ dependencies = [ "solana-account 3.1.0", "solana-hash 3.0.0", "solana-nonce 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -4243,7 +4270,7 @@ dependencies = [ "solana-epoch-rewards 2.2.1", "solana-epoch-schedule 2.2.1", "solana-example-mocks 2.2.1", - "solana-feature-gate-interface", + "solana-feature-gate-interface 2.2.2", "solana-fee-calculator 2.2.1", "solana-hash 2.3.0", "solana-instruction 2.3.0", @@ -4291,11 +4318,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" dependencies = [ "memoffset", - "solana-account-info 3.0.0", + "solana-account-info 3.1.1", "solana-big-mod-exp 3.0.0", "solana-blake3-hasher 3.0.0", "solana-borsh 3.0.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-cpi 3.0.0", "solana-define-syscall 3.0.0", "solana-epoch-rewards 3.0.0", @@ -4309,16 +4336,16 @@ dependencies = [ "solana-instructions-sysvar 3.0.0", "solana-keccak-hasher 3.0.0", "solana-last-restart-slot 3.0.0", - "solana-msg 3.0.0", + "solana-msg 3.1.0", "solana-native-token 3.0.0", - "solana-program-entrypoint 3.1.0", + "solana-program-entrypoint 3.1.1", "solana-program-error 3.0.0", - "solana-program-memory 3.0.0", - "solana-program-option 3.0.0", - "solana-program-pack 3.0.0", + "solana-program-memory 3.1.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", "solana-pubkey 3.0.0", "solana-rent 3.1.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-secp256k1-recover 3.0.0", "solana-serde-varint 3.0.0", "solana-serialize-utils 3.1.0", @@ -4327,8 +4354,8 @@ dependencies = [ "solana-slot-hashes 3.0.0", "solana-slot-history 3.0.0", "solana-stable-layout 3.0.0", - "solana-sysvar 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4345,15 +4372,14 @@ dependencies = [ [[package]] name = "solana-program-entrypoint" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6557cf5b5e91745d1667447438a1baa7823c6086e4ece67f8e6ebfa7a8f72660" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" dependencies = [ - "solana-account-info 3.0.0", - "solana-define-syscall 3.0.0", - "solana-msg 3.0.0", + "solana-account-info 3.1.1", + "solana-define-syscall 4.0.1", "solana-program-error 3.0.0", - "solana-pubkey 3.0.0", + "solana-pubkey 4.1.0", ] [[package]] @@ -4394,11 +4420,11 @@ dependencies = [ [[package]] name = "solana-program-memory" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10e5660c60749c7bfb30b447542529758e4dbcecd31b1e8af1fdc92e2bdde90a" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" dependencies = [ - "solana-define-syscall 3.0.0", + "solana-define-syscall 4.0.1", ] [[package]] @@ -4409,9 +4435,9 @@ checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" [[package]] name = "solana-program-option" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e7b4ddb464f274deb4a497712664c3b612e3f5f82471d4e47710fc4ab1c3095" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" [[package]] name = "solana-program-pack" @@ -4424,9 +4450,9 @@ dependencies = [ [[package]] name = "solana-program-pack" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c169359de21f6034a63ebf96d6b380980307df17a8d371344ff04a883ec4e9d0" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" dependencies = [ "solana-program-error 3.0.0", ] @@ -4445,20 +4471,20 @@ dependencies = [ "rand 0.8.5", "serde", "solana-account 3.1.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-epoch-rewards 3.0.0", "solana-epoch-schedule 3.0.0", "solana-fee-structure", "solana-hash 3.0.0", "solana-instruction 3.0.0", "solana-last-restart-slot 3.0.0", - "solana-program-entrypoint 3.1.0", + "solana-program-entrypoint 3.1.1", "solana-pubkey 3.0.0", "solana-rent 3.1.0", "solana-sbpf", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-slot-hashes 3.0.0", - "solana-stake-interface 2.0.1", + "solana-stake-interface 2.0.2", "solana-svm-callback", "solana-svm-feature-set", "solana-svm-log-collector", @@ -4467,8 +4493,8 @@ dependencies = [ "solana-svm-transaction", "solana-svm-type-overrides", "solana-system-interface 2.0.0", - "solana-sysvar 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", "solana-transaction-context", ] @@ -4508,6 +4534,15 @@ dependencies = [ "solana-address 1.0.0", ] +[[package]] +name = "solana-pubkey" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b06bd918d60111ee1f97de817113e2040ca0cedb740099ee8d646233f6b906c" +dependencies = [ + "solana-address 2.4.0", +] + [[package]] name = "solana-rent" version = "2.2.1" @@ -4529,9 +4564,9 @@ checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" dependencies = [ "serde", "serde_derive", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", - "solana-sysvar-id 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4591,10 +4626,10 @@ dependencies = [ "solana-offchain-message", "solana-presigner", "solana-program 3.0.0", - "solana-program-memory 3.0.0", + "solana-program-memory 3.1.0", "solana-pubkey 3.0.0", "solana-sanitize 3.0.1", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", "solana-seed-derivable", "solana-seed-phrase", @@ -4621,11 +4656,11 @@ dependencies = [ [[package]] name = "solana-sdk-ids" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1b6d6aaf60669c592838d382266b173881c65fb1cdec83b37cb8ce7cb89f9ad" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" dependencies = [ - "solana-pubkey 3.0.0", + "solana-address 2.4.0", ] [[package]] @@ -4697,7 +4732,7 @@ dependencies = [ "bytemuck", "openssl", "solana-instruction 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -4868,8 +4903,8 @@ dependencies = [ "serde", "serde_derive", "solana-hash 3.0.0", - "solana-sdk-ids 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4894,8 +4929,8 @@ dependencies = [ "bv", "serde", "serde_derive", - "solana-sdk-ids 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sdk-ids 3.1.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4941,21 +4976,21 @@ dependencies = [ [[package]] name = "solana-stake-interface" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f912ae679b683365348dea482dbd9468d22ff258b554fd36e3d3683c2122e3" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" dependencies = [ "num-traits", "serde", "serde_derive", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-cpi 3.0.0", "solana-instruction 3.0.0", "solana-program-error 3.0.0", "solana-pubkey 3.0.0", "solana-system-interface 2.0.0", - "solana-sysvar 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sysvar 3.1.1", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -4969,7 +5004,7 @@ dependencies = [ "log", "solana-account 3.1.0", "solana-bincode 3.0.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-config-interface", "solana-genesis-config", "solana-instruction 3.0.0", @@ -4978,11 +5013,11 @@ dependencies = [ "solana-program-runtime", "solana-pubkey 3.0.0", "solana-rent 3.1.0", - "solana-sdk-ids 3.0.0", - "solana-stake-interface 2.0.1", + "solana-sdk-ids 3.1.0", + "solana-stake-interface 2.0.2", "solana-svm-log-collector", "solana-svm-type-overrides", - "solana-sysvar 3.0.0", + "solana-sysvar 3.1.1", "solana-transaction-context", "solana-vote-interface 3.0.0", ] @@ -4994,7 +5029,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a591bceb6b4ed365b6bddaace64469a736c5f2ab6ac0b6f7171c39c275977588" dependencies = [ "solana-account 3.1.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-precompile-error", "solana-pubkey 3.0.0", ] @@ -5040,7 +5075,7 @@ dependencies = [ "solana-hash 3.0.0", "solana-message 3.0.1", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-signature", "solana-transaction", ] @@ -5080,7 +5115,7 @@ dependencies = [ "serde", "serde_derive", "solana-instruction 3.0.0", - "solana-msg 3.0.0", + "solana-msg 3.1.0", "solana-program-error 3.0.0", "solana-pubkey 3.0.0", ] @@ -5104,11 +5139,11 @@ dependencies = [ "solana-packet", "solana-program-runtime", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-svm-log-collector", "solana-svm-type-overrides", "solana-system-interface 2.0.0", - "solana-sysvar 3.0.0", + "solana-sysvar 3.1.1", "solana-transaction-context", ] @@ -5151,9 +5186,9 @@ dependencies = [ [[package]] name = "solana-sysvar" -version = "3.0.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63205e68d680bcc315337dec311b616ab32fea0a612db3b883ce4de02e0953f9" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" dependencies = [ "base64 0.22.1", "bincode", @@ -5162,25 +5197,25 @@ dependencies = [ "lazy_static", "serde", "serde_derive", - "solana-account-info 3.0.0", - "solana-clock 3.0.0", - "solana-define-syscall 3.0.0", + "solana-account-info 3.1.1", + "solana-clock 3.0.1", + "solana-define-syscall 4.0.1", "solana-epoch-rewards 3.0.0", "solana-epoch-schedule 3.0.0", "solana-fee-calculator 3.0.0", - "solana-hash 3.0.0", + "solana-hash 4.2.0", "solana-instruction 3.0.0", "solana-last-restart-slot 3.0.0", - "solana-program-entrypoint 3.1.0", + "solana-program-entrypoint 3.1.1", "solana-program-error 3.0.0", - "solana-program-memory 3.0.0", - "solana-pubkey 3.0.0", + "solana-program-memory 3.1.0", + "solana-pubkey 4.1.0", "solana-rent 3.1.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-sdk-macro 3.0.1", "solana-slot-hashes 3.0.0", "solana-slot-history 3.0.0", - "solana-sysvar-id 3.0.0", + "solana-sysvar-id 3.1.0", ] [[package]] @@ -5195,12 +5230,12 @@ dependencies = [ [[package]] name = "solana-sysvar-id" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5051bc1a16d5d96a96bc33b5b2ec707495c48fe978097bdaba68d3c47987eb32" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" dependencies = [ - "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-address 2.4.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -5224,7 +5259,7 @@ dependencies = [ "solana-instruction-error", "solana-message 3.0.1", "solana-sanitize 3.0.1", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-short-vec 3.0.0", "solana-signature", "solana-signer", @@ -5246,7 +5281,7 @@ dependencies = [ "solana-pubkey 3.0.0", "solana-rent 3.1.0", "solana-sbpf", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", ] [[package]] @@ -5308,13 +5343,13 @@ dependencies = [ "serde", "serde_derive", "serde_with", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-hash 3.0.0", "solana-instruction 3.0.0", "solana-instruction-error", "solana-pubkey 3.0.0", "solana-rent 3.1.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-serde-varint 3.0.0", "solana-serialize-utils 3.1.0", "solana-short-vec 3.0.0", @@ -5336,7 +5371,7 @@ dependencies = [ "serde_derive", "solana-account 3.1.0", "solana-bincode 3.0.0", - "solana-clock 3.0.0", + "solana-clock 3.0.1", "solana-epoch-schedule 3.0.0", "solana-hash 3.0.0", "solana-instruction 3.0.0", @@ -5345,7 +5380,7 @@ dependencies = [ "solana-program-runtime", "solana-pubkey 3.0.0", "solana-rent 3.1.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-signer", "solana-slot-hashes 3.0.0", "solana-transaction", @@ -5366,7 +5401,7 @@ dependencies = [ "num-traits", "solana-instruction 3.0.0", "solana-program-runtime", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-svm-log-collector", "solana-zk-sdk", ] @@ -5397,7 +5432,7 @@ dependencies = [ "solana-derivation-path", "solana-instruction 3.0.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-seed-derivable", "solana-seed-phrase", "solana-signature", @@ -5420,7 +5455,7 @@ dependencies = [ "num-traits", "solana-instruction 3.0.0", "solana-program-runtime", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-svm-log-collector", "solana-zk-token-sdk", ] @@ -5450,7 +5485,7 @@ dependencies = [ "solana-derivation-path", "solana-instruction 3.0.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-seed-derivable", "solana-seed-phrase", "solana-signature", @@ -5529,7 +5564,7 @@ dependencies = [ "num-traits", "num_enum", "solana-program-error 3.0.0", - "solana-program-option 3.0.0", + "solana-program-option 3.1.0", "solana-pubkey 3.0.0", "solana-zk-sdk", "thiserror 2.0.17", @@ -5546,13 +5581,13 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-account-info 3.0.0", + "solana-account-info 3.1.1", "solana-instruction 3.0.0", "solana-program-error 3.0.0", - "solana-program-option 3.0.0", - "solana-program-pack 3.0.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-zk-sdk", "spl-pod", "spl-token-confidential-transfer-proof-extraction", @@ -5570,14 +5605,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a22217af69b7a61ca813f47c018afb0b00b02a74a4c70ff099cd4287740bc3d" dependencies = [ "bytemuck", - "solana-account-info 3.0.0", + "solana-account-info 3.1.1", "solana-curve25519 2.3.12", "solana-instruction 3.0.0", "solana-instructions-sysvar 3.0.0", - "solana-msg 3.0.0", + "solana-msg 3.1.0", "solana-program-error 3.0.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "solana-zk-sdk", "spl-pod", "thiserror 2.0.17", @@ -5625,10 +5660,10 @@ dependencies = [ "num_enum", "solana-instruction 3.0.0", "solana-program-error 3.0.0", - "solana-program-option 3.0.0", - "solana-program-pack 3.0.0", + "solana-program-option 3.1.0", + "solana-program-pack 3.1.0", "solana-pubkey 3.0.0", - "solana-sdk-ids 3.0.0", + "solana-sdk-ids 3.1.0", "thiserror 2.0.17", ] @@ -5661,8 +5696,8 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-account-info 3.0.0", - "solana-msg 3.0.0", + "solana-account-info 3.1.1", + "solana-msg 3.1.0", "solana-program-error 3.0.0", "spl-discriminator", "spl-pod", @@ -5832,8 +5867,8 @@ checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.9", + "toml_edit 0.22.26", ] [[package]] @@ -5845,6 +5880,15 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "1.1.0+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.22.26" @@ -5854,9 +5898,30 @@ dependencies = [ "indexmap", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.9", "toml_write", - "winnow", + "winnow 0.7.10", +] + +[[package]] +name = "toml_edit" +version = "0.25.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" +dependencies = [ + "indexmap", + "toml_datetime 1.1.0+spec-1.1.0", + "toml_parser", + "winnow 1.0.0", +] + +[[package]] +name = "toml_parser" +version = "1.1.0+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +dependencies = [ + "winnow 1.0.0", ] [[package]] @@ -6153,6 +6218,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +dependencies = [ + "memchr", +] + [[package]] name = "wit-bindgen" version = "0.46.0" diff --git a/basics/account-data/anchor/Anchor.toml b/basics/account-data/anchor/Anchor.toml index 1669d98df..b3e350150 100644 --- a/basics/account-data/anchor/Anchor.toml +++ b/basics/account-data/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] account_data_anchor_program = "GpVcgWdgVErgLqsn8VYUch6EqDerMgNqoLSmGyKrd6MR" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/account-data/anchor/package.json b/basics/account-data/anchor/package.json index 3c4669625..fcb292b38 100644 --- a/basics/account-data/anchor/package.json +++ b/basics/account-data/anchor/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4" }, "devDependencies": { @@ -11,7 +11,7 @@ "litesvm": "^0.3.3", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" }, "type": "module" } diff --git a/basics/account-data/anchor/programs/anchor-program-example/Cargo.toml b/basics/account-data/anchor/programs/anchor-program-example/Cargo.toml index 1790fff0d..2d23f9606 100644 --- a/basics/account-data/anchor/programs/anchor-program-example/Cargo.toml +++ b/basics/account-data/anchor/programs/anchor-program-example/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/account-data/anchor/tests/litesvm.test.ts b/basics/account-data/anchor/tests/litesvm.test.ts index ce8e546d8..2136f1caa 100644 --- a/basics/account-data/anchor/tests/litesvm.test.ts +++ b/basics/account-data/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import { BorshCoder } from "@coral-xyz/anchor"; +import { BorshCoder } from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/account-data/anchor/tests/test.ts b/basics/account-data/anchor/tests/test.ts index 1cecc2c22..b8822eabd 100644 --- a/basics/account-data/anchor/tests/test.ts +++ b/basics/account-data/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { Keypair } from "@solana/web3.js"; import type { AccountDataAnchorProgram } from "../target/types/account_data_anchor_program"; diff --git a/basics/checking-accounts/anchor/Anchor.toml b/basics/checking-accounts/anchor/Anchor.toml index c66fb6e73..cc8f9ed12 100644 --- a/basics/checking-accounts/anchor/Anchor.toml +++ b/basics/checking-accounts/anchor/Anchor.toml @@ -6,8 +6,7 @@ seeds = false [programs.localnet] checking_account_program = "ECWPhR3rJbaPfyNFgphnjxSEexbTArc7vxD8fnW6tgKw" -[registry] -url = "https://anchor.projectserum.com" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/basics/checking-accounts/anchor/package.json b/basics/checking-accounts/anchor/package.json index 90f0797e7..31ba94982 100644 --- a/basics/checking-accounts/anchor/package.json +++ b/basics/checking-accounts/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4" }, "devDependencies": { @@ -13,6 +13,6 @@ "mocha": "^9.0.3", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/checking-accounts/anchor/programs/anchor-program-example/Cargo.toml b/basics/checking-accounts/anchor/programs/anchor-program-example/Cargo.toml index cb62dce74..a38a4ffcd 100644 --- a/basics/checking-accounts/anchor/programs/anchor-program-example/Cargo.toml +++ b/basics/checking-accounts/anchor/programs/anchor-program-example/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/checking-accounts/anchor/tests/bankrun.test.ts b/basics/checking-accounts/anchor/tests/bankrun.test.ts index e3e089cd7..d47712601 100644 --- a/basics/checking-accounts/anchor/tests/bankrun.test.ts +++ b/basics/checking-accounts/anchor/tests/bankrun.test.ts @@ -1,5 +1,5 @@ import { describe, it } from "node:test"; -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/checking-accounts/anchor/tests/test.ts b/basics/checking-accounts/anchor/tests/test.ts index 9c5aa6875..9b5599e18 100644 --- a/basics/checking-accounts/anchor/tests/test.ts +++ b/basics/checking-accounts/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { Keypair, SystemProgram, diff --git a/basics/close-account/anchor/Anchor.toml b/basics/close-account/anchor/Anchor.toml index 7f4e0a29e..abe70b718 100644 --- a/basics/close-account/anchor/Anchor.toml +++ b/basics/close-account/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] close_account_program = "99TQtoDdQ5NS2v5Ppha93aqEmv3vV9VZVfHTP5rGST3c" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/close-account/anchor/migrations/deploy.ts b/basics/close-account/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/basics/close-account/anchor/migrations/deploy.ts +++ b/basics/close-account/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/basics/close-account/anchor/package.json b/basics/close-account/anchor/package.json index 307d6fb0f..0955a189f 100644 --- a/basics/close-account/anchor/package.json +++ b/basics/close-account/anchor/package.json @@ -4,7 +4,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -17,7 +17,7 @@ "mocha": "^9.0.3", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" }, "type": "module" } diff --git a/basics/close-account/anchor/programs/close-account/Cargo.toml b/basics/close-account/anchor/programs/close-account/Cargo.toml index e489b846e..6a257d0ce 100644 --- a/basics/close-account/anchor/programs/close-account/Cargo.toml +++ b/basics/close-account/anchor/programs/close-account/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/close-account/anchor/tests/litesvm.test.ts b/basics/close-account/anchor/tests/litesvm.test.ts index c1b8e5433..5dead96f1 100644 --- a/basics/close-account/anchor/tests/litesvm.test.ts +++ b/basics/close-account/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, LAMPORTS_PER_SOL, diff --git a/basics/close-account/anchor/tests/test.ts b/basics/close-account/anchor/tests/test.ts index a546f72e4..4623c0d19 100644 --- a/basics/close-account/anchor/tests/test.ts +++ b/basics/close-account/anchor/tests/test.ts @@ -1,5 +1,5 @@ -import type { Program } from "@coral-xyz/anchor"; -import * as anchor from "@coral-xyz/anchor"; +import type { Program } from "@anchor-lang/core"; +import * as anchor from "@anchor-lang/core"; import { PublicKey, SystemProgram } from "@solana/web3.js"; import { assert } from "chai"; import type { CloseAccountProgram } from "../target/types/close_account_program.ts"; diff --git a/basics/counter/anchor/Anchor.toml b/basics/counter/anchor/Anchor.toml index 383b84bb1..a07cc9353 100644 --- a/basics/counter/anchor/Anchor.toml +++ b/basics/counter/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] counter_anchor = "BmDHboaj1kBUoinJKKSRqKfMeRKJqQqEbUj1VgzeQe4A" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/counter/anchor/migrations/deploy.ts b/basics/counter/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/basics/counter/anchor/migrations/deploy.ts +++ b/basics/counter/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/basics/counter/anchor/package.json b/basics/counter/anchor/package.json index 56b0eb577..21d106e4d 100644 --- a/basics/counter/anchor/package.json +++ b/basics/counter/anchor/package.json @@ -4,7 +4,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -16,7 +16,7 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" }, "type": "module" } diff --git a/basics/counter/anchor/pnpm-lock.yaml b/basics/counter/anchor/pnpm-lock.yaml index 04c7df186..ca3afd7ff 100644 --- a/basics/counter/anchor/pnpm-lock.yaml +++ b/basics/counter/anchor/pnpm-lock.yaml @@ -8,15 +8,15 @@ importers: .: dependencies: - '@coral-xyz/anchor': - specifier: 0.32.1 - version: 0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10) + '@anchor-lang/core': + specifier: 1.0.0-rc.5 + version: 1.0.0-rc.5(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/web3.js': specifier: ^1.98.4 - version: 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10) + version: 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) litesvm: specifier: ^0.4.0 - version: 0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10) + version: 0.4.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) devDependencies: '@types/bn.js': specifier: ^5.1.0 @@ -40,28 +40,28 @@ importers: specifier: ^10.0.0 version: 10.0.0(mocha@9.2.2) typescript: - specifier: ^4.3.5 - version: 4.9.5 + specifier: ^5.3.3 + version: 5.9.3 packages: - '@babel/runtime@7.25.0': - resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} - engines: {node: '>=6.9.0'} - - '@coral-xyz/anchor-errors@0.31.1': - resolution: {integrity: sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ==} + '@anchor-lang/borsh@1.0.0-rc.5': + resolution: {integrity: sha512-17a+xOmvrn7zSIqlbsjqgz4f64vQEvAmZ7qyQuETCHSskC23LTtjRI0DqAl/r/vC6kosPJGWyOr9ddVIqUVtww==} engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.69.0 - '@coral-xyz/anchor@0.32.1': - resolution: {integrity: sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg==} + '@anchor-lang/core@1.0.0-rc.5': + resolution: {integrity: sha512-4iPy4RiEFn6obzYY7zx8IaGAXz2fvJ0uCTF6agAcUBjGNZeypfEb4ZZh6TfLnJy78Lh06JeB7XGqKsaBCMEmQA==} engines: {node: '>=17'} - '@coral-xyz/borsh@0.31.1': - resolution: {integrity: sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw==} + '@anchor-lang/errors@1.0.0-rc.5': + resolution: {integrity: sha512-kLx7oLGVCRhtWeS9PQWGkzZTDpNrGkiJQBrx1rAhEiFemL4YumhUuEbXaaEVuLBt7qZcT1eBPN4LQxYGj3QWyw==} engines: {node: '>=10'} - peerDependencies: - '@solana/web3.js': ^1.69.0 + + '@babel/runtime@7.25.0': + resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} + engines: {node: '>=6.9.0'} '@noble/curves@1.4.2': resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} @@ -458,24 +458,28 @@ packages: engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [glibc] litesvm-linux-arm64-musl@0.4.0: resolution: {integrity: sha512-YMMqwEWJUSWwL0Rwp8dFwl3jvgNU21eI7Qc+BpH9u2yeIRYQTn3rNGDnsK8v3QIZPHQdMo7NrPhzk4XoB1aKPg==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [musl] litesvm-linux-x64-gnu@0.4.0: resolution: {integrity: sha512-brZ3tFABDVQEYCgci7AO8iVYLw10UXVo97/lpTy75bTzNoqkggg8wFQOrbgCdb9NRwt06Y4Zf8cpIZAoDQq2mw==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [glibc] litesvm-linux-x64-musl@0.4.0: resolution: {integrity: sha512-D98qdIOuWg4fOewIIiH1D23AtM4I7/3vLKXIL8uQz06D5ev5fsBzNp2gM7libAywTkCYy/u666xgD6PsWhrTaw==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [musl] litesvm@0.4.0: resolution: {integrity: sha512-ySr5mB2ap4SzJpmVR2I5+gjzTH8NJbkg7DYPormzA2U9F4LhfvTTrD17X/k5N3Bn4b5Db6/CwSyX2qc0HrJtNA==} @@ -675,9 +679,9 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} hasBin: true undici-types@5.26.5: @@ -762,18 +766,18 @@ packages: snapshots: - '@babel/runtime@7.25.0': + '@anchor-lang/borsh@1.0.0-rc.5(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10))': dependencies: - regenerator-runtime: 0.14.1 - - '@coral-xyz/anchor-errors@0.31.1': {} + '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) + bn.js: 5.2.2 + buffer-layout: 1.2.2 - '@coral-xyz/anchor@0.32.1(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)': + '@anchor-lang/core@1.0.0-rc.5(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: - '@coral-xyz/anchor-errors': 0.31.1 - '@coral-xyz/borsh': 0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)) + '@anchor-lang/borsh': 1.0.0-rc.5(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)) + '@anchor-lang/errors': 1.0.0-rc.5 '@noble/hashes': 1.8.0 - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) bn.js: 5.2.2 bs58: 4.0.1 buffer-layout: 1.2.2 @@ -789,11 +793,11 @@ snapshots: - typescript - utf-8-validate - '@coral-xyz/borsh@0.31.1(@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10))': + '@anchor-lang/errors@1.0.0-rc.5': {} + + '@babel/runtime@7.25.0': dependencies: - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10) - bn.js: 5.2.2 - buffer-layout: 1.2.2 + regenerator-runtime: 0.14.1 '@noble/curves@1.4.2': dependencies: @@ -807,30 +811,30 @@ snapshots: dependencies: buffer: 6.0.3 - '@solana/codecs-core@2.3.0(typescript@4.9.5)': + '@solana/codecs-core@2.3.0(typescript@5.9.3)': dependencies: - '@solana/errors': 2.3.0(typescript@4.9.5) - typescript: 4.9.5 + '@solana/errors': 2.3.0(typescript@5.9.3) + typescript: 5.9.3 - '@solana/codecs-numbers@2.3.0(typescript@4.9.5)': + '@solana/codecs-numbers@2.3.0(typescript@5.9.3)': dependencies: - '@solana/codecs-core': 2.3.0(typescript@4.9.5) - '@solana/errors': 2.3.0(typescript@4.9.5) - typescript: 4.9.5 + '@solana/codecs-core': 2.3.0(typescript@5.9.3) + '@solana/errors': 2.3.0(typescript@5.9.3) + typescript: 5.9.3 - '@solana/errors@2.3.0(typescript@4.9.5)': + '@solana/errors@2.3.0(typescript@5.9.3)': dependencies: chalk: 5.6.2 commander: 14.0.2 - typescript: 4.9.5 + typescript: 5.9.3 - '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10)': + '@solana/web3.js@1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.25.0 '@noble/curves': 1.4.2 '@noble/hashes': 1.4.0 '@solana/buffer-layout': 4.0.1 - '@solana/codecs-numbers': 2.3.0(typescript@4.9.5) + '@solana/codecs-numbers': 2.3.0(typescript@5.9.3) agentkeepalive: 4.5.0 bn.js: 5.2.1 borsh: 0.7.0 @@ -1185,9 +1189,9 @@ snapshots: litesvm-linux-x64-musl@0.4.0: optional: true - litesvm@0.4.0(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10): + litesvm@0.4.0(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10): dependencies: - '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@4.9.5)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.4(bufferutil@4.0.8)(typescript@5.9.3)(utf-8-validate@5.0.10) fastestsmallesttextencoderdecoder: 1.0.22 optionalDependencies: litesvm-darwin-arm64: 0.4.0 @@ -1404,7 +1408,7 @@ snapshots: type-detect@4.0.8: {} - typescript@4.9.5: {} + typescript@5.9.3: {} undici-types@5.26.5: {} diff --git a/basics/counter/anchor/programs/counter_anchor/Cargo.toml b/basics/counter/anchor/programs/counter_anchor/Cargo.toml index 0c656668f..5f0d1ce44 100644 --- a/basics/counter/anchor/programs/counter_anchor/Cargo.toml +++ b/basics/counter/anchor/programs/counter_anchor/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/counter/anchor/tests/litesvm.test.ts b/basics/counter/anchor/tests/litesvm.test.ts index d3f6d8923..90e80ad85 100644 --- a/basics/counter/anchor/tests/litesvm.test.ts +++ b/basics/counter/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/counter/anchor/tests/test.ts b/basics/counter/anchor/tests/test.ts index 06909a3c8..12f93fde9 100644 --- a/basics/counter/anchor/tests/test.ts +++ b/basics/counter/anchor/tests/test.ts @@ -1,5 +1,5 @@ -import type { Program } from "@coral-xyz/anchor"; -import * as anchor from "@coral-xyz/anchor"; +import type { Program } from "@anchor-lang/core"; +import * as anchor from "@anchor-lang/core"; import { Keypair } from "@solana/web3.js"; import { assert } from "chai"; import type { CounterAnchor } from "../target/types/counter_anchor.ts"; diff --git a/basics/create-account/anchor/Anchor.toml b/basics/create-account/anchor/Anchor.toml index da7c43b15..920804801 100644 --- a/basics/create-account/anchor/Anchor.toml +++ b/basics/create-account/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] create_system_account = "ARVNCsYKDQsCLHbwUTJLpFXVrJdjhWZStyzvxmKe2xHi" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/create-account/anchor/package.json b/basics/create-account/anchor/package.json index 49eb3af2a..0432a3a0d 100644 --- a/basics/create-account/anchor/package.json +++ b/basics/create-account/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.4.1", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/create-account/anchor/programs/create-system-account/Cargo.toml b/basics/create-account/anchor/programs/create-system-account/Cargo.toml index c53a00b57..25b52353b 100644 --- a/basics/create-account/anchor/programs/create-system-account/Cargo.toml +++ b/basics/create-account/anchor/programs/create-system-account/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/create-account/anchor/programs/create-system-account/src/lib.rs b/basics/create-account/anchor/programs/create-system-account/src/lib.rs index c36cfa31c..644fc3004 100644 --- a/basics/create-account/anchor/programs/create-system-account/src/lib.rs +++ b/basics/create-account/anchor/programs/create-system-account/src/lib.rs @@ -19,7 +19,7 @@ pub mod create_system_account { create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.payer.to_account_info(), // From pubkey to: ctx.accounts.new_account.to_account_info(), // To pubkey diff --git a/basics/create-account/anchor/tests/litesvm.test.ts b/basics/create-account/anchor/tests/litesvm.test.ts index 2900c3b2b..36053080e 100644 --- a/basics/create-account/anchor/tests/litesvm.test.ts +++ b/basics/create-account/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/create-account/anchor/tests/test.ts b/basics/create-account/anchor/tests/test.ts index a39d86124..57a3cc900 100644 --- a/basics/create-account/anchor/tests/test.ts +++ b/basics/create-account/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { Keypair } from "@solana/web3.js"; import { assert } from "chai"; import type { CreateSystemAccount } from "../target/types/create_system_account.ts"; diff --git a/basics/cross-program-invocation/anchor/Anchor.toml b/basics/cross-program-invocation/anchor/Anchor.toml index aabd6ae06..8134bd54e 100644 --- a/basics/cross-program-invocation/anchor/Anchor.toml +++ b/basics/cross-program-invocation/anchor/Anchor.toml @@ -9,8 +9,7 @@ skip-lint = false hand = "Bi5N7SUQhpGknVcqPTzdFFVueQoxoUu8YTLz75J6fT8A" lever = "E64FVeubGC4NPNF2UBJYX4AkrVowf74fRJD9q6YhwstN" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/cross-program-invocation/anchor/migrations/deploy.ts b/basics/cross-program-invocation/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/basics/cross-program-invocation/anchor/migrations/deploy.ts +++ b/basics/cross-program-invocation/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/basics/cross-program-invocation/anchor/package.json b/basics/cross-program-invocation/anchor/package.json index 507738dfd..6856081db 100644 --- a/basics/cross-program-invocation/anchor/package.json +++ b/basics/cross-program-invocation/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -17,6 +17,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/cross-program-invocation/anchor/programs/hand/Cargo.toml b/basics/cross-program-invocation/anchor/programs/hand/Cargo.toml index c79a0f2a1..ef3b6bd4f 100644 --- a/basics/cross-program-invocation/anchor/programs/hand/Cargo.toml +++ b/basics/cross-program-invocation/anchor/programs/hand/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/cross-program-invocation/anchor/programs/hand/src/lib.rs b/basics/cross-program-invocation/anchor/programs/hand/src/lib.rs index 99164d557..2602e0e8d 100644 --- a/basics/cross-program-invocation/anchor/programs/hand/src/lib.rs +++ b/basics/cross-program-invocation/anchor/programs/hand/src/lib.rs @@ -15,7 +15,7 @@ pub mod hand { pub fn pull_lever(ctx: Context, name: String) -> Result<()> { let cpi_ctx = CpiContext::new( - ctx.accounts.lever_program.to_account_info(), + ctx.accounts.lever_program.key(), SwitchPower { power: ctx.accounts.power.to_account_info(), }, diff --git a/basics/cross-program-invocation/anchor/programs/lever/Cargo.toml b/basics/cross-program-invocation/anchor/programs/lever/Cargo.toml index 6ff97cca7..50e9488ce 100644 --- a/basics/cross-program-invocation/anchor/programs/lever/Cargo.toml +++ b/basics/cross-program-invocation/anchor/programs/lever/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/cross-program-invocation/anchor/tests/litesvm.test.ts b/basics/cross-program-invocation/anchor/tests/litesvm.test.ts index f11abc9c9..dcd966ddb 100644 --- a/basics/cross-program-invocation/anchor/tests/litesvm.test.ts +++ b/basics/cross-program-invocation/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/cross-program-invocation/anchor/tests/test.ts b/basics/cross-program-invocation/anchor/tests/test.ts index 69146ad30..d01c1c3ec 100644 --- a/basics/cross-program-invocation/anchor/tests/test.ts +++ b/basics/cross-program-invocation/anchor/tests/test.ts @@ -1,5 +1,5 @@ -import type { Program } from "@coral-xyz/anchor"; -import * as anchor from "@coral-xyz/anchor"; +import type { Program } from "@anchor-lang/core"; +import * as anchor from "@anchor-lang/core"; import { assert } from "chai"; import type { Hand } from "../target/types/hand.ts"; import type { Lever } from "../target/types/lever.ts"; diff --git a/basics/favorites/anchor/Anchor.toml b/basics/favorites/anchor/Anchor.toml index d0db73e59..97b3b5968 100644 --- a/basics/favorites/anchor/Anchor.toml +++ b/basics/favorites/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] favorites = "ww9C83noARSQVBnqmCUmaVdbJjmiwcV9j2LkXYMoUCV" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/favorites/anchor/migrations/deploy.ts b/basics/favorites/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/basics/favorites/anchor/migrations/deploy.ts +++ b/basics/favorites/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/basics/favorites/anchor/package.json b/basics/favorites/anchor/package.json index 31041ff82..7cf70d1bb 100644 --- a/basics/favorites/anchor/package.json +++ b/basics/favorites/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -18,6 +18,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/favorites/anchor/programs/favorites/Cargo.toml b/basics/favorites/anchor/programs/favorites/Cargo.toml index 645ee6c27..10723e99c 100644 --- a/basics/favorites/anchor/programs/favorites/Cargo.toml +++ b/basics/favorites/anchor/programs/favorites/Cargo.toml @@ -20,7 +20,7 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = {version = "0.32.1", features = ["init-if-needed"]} +anchor-lang = {version = "1.0.0-rc.5", features = ["init-if-needed"]} [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/favorites/anchor/tests/litesvm.test.ts b/basics/favorites/anchor/tests/litesvm.test.ts index 89fffe52e..c3d7c031d 100644 --- a/basics/favorites/anchor/tests/litesvm.test.ts +++ b/basics/favorites/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/favorites/anchor/tests/test.ts b/basics/favorites/anchor/tests/test.ts index 6a2c1b95f..c39d43a6f 100644 --- a/basics/favorites/anchor/tests/test.ts +++ b/basics/favorites/anchor/tests/test.ts @@ -1,5 +1,5 @@ -import type { Program } from "@coral-xyz/anchor"; -import * as anchor from "@coral-xyz/anchor"; +import type { Program } from "@anchor-lang/core"; +import * as anchor from "@anchor-lang/core"; import { BN } from "bn.js"; import { assert } from "chai"; import type { Favorites } from "../target/types/favorites.ts"; diff --git a/basics/hello-solana/anchor/Anchor.toml b/basics/hello-solana/anchor/Anchor.toml index 5cbd0e4d8..7ac88bd13 100644 --- a/basics/hello-solana/anchor/Anchor.toml +++ b/basics/hello-solana/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] hello_solana = "2phbC62wekpw95XuBk4i1KX4uA8zBUWmYbiTMhicSuBV" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/hello-solana/anchor/package.json b/basics/hello-solana/anchor/package.json index 9d86fae3d..0696e9344 100644 --- a/basics/hello-solana/anchor/package.json +++ b/basics/hello-solana/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.3.4", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/hello-solana/anchor/programs/hello-solana/Cargo.toml b/basics/hello-solana/anchor/programs/hello-solana/Cargo.toml index c2acd10cd..455794ab9 100644 --- a/basics/hello-solana/anchor/programs/hello-solana/Cargo.toml +++ b/basics/hello-solana/anchor/programs/hello-solana/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/hello-solana/anchor/tests/litesvm.test.ts b/basics/hello-solana/anchor/tests/litesvm.test.ts index 77ebaa8df..30f9e5b74 100644 --- a/basics/hello-solana/anchor/tests/litesvm.test.ts +++ b/basics/hello-solana/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/hello-solana/anchor/tests/test.ts b/basics/hello-solana/anchor/tests/test.ts index 99461bc30..18f4ab831 100644 --- a/basics/hello-solana/anchor/tests/test.ts +++ b/basics/hello-solana/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import type { HelloSolana } from "../target/types/hello_solana.ts"; describe("Anchor: hello-solana", () => { diff --git a/basics/pda-rent-payer/anchor/Anchor.toml b/basics/pda-rent-payer/anchor/Anchor.toml index 9dbb3e07a..50b35bcf2 100644 --- a/basics/pda-rent-payer/anchor/Anchor.toml +++ b/basics/pda-rent-payer/anchor/Anchor.toml @@ -6,8 +6,7 @@ seeds = false [programs.localnet] pda_rent_payer = "7Hm9nsYVuBZ9rf8z9AMUHreZRv8Q4vLhqwdVTCawRZtA" -[registry] -url = "https://anchor.projectserum.com" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/basics/pda-rent-payer/anchor/package.json b/basics/pda-rent-payer/anchor/package.json index 9d86fae3d..0696e9344 100644 --- a/basics/pda-rent-payer/anchor/package.json +++ b/basics/pda-rent-payer/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.3.4", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/pda-rent-payer/anchor/programs/anchor-program-example/Cargo.toml b/basics/pda-rent-payer/anchor/programs/anchor-program-example/Cargo.toml index 167e632ca..3a5db53ef 100644 --- a/basics/pda-rent-payer/anchor/programs/anchor-program-example/Cargo.toml +++ b/basics/pda-rent-payer/anchor/programs/anchor-program-example/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/create_new_account.rs b/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/create_new_account.rs index 816c42527..706746382 100644 --- a/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/create_new_account.rs +++ b/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/create_new_account.rs @@ -27,7 +27,7 @@ pub fn create_new_account(ctx: Context) -> Result<()> { // Create the new account, transferring lamports from the rent vault to the new account create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.rent_vault.to_account_info(), // From pubkey to: ctx.accounts.new_account.to_account_info(), // To pubkey diff --git a/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/init_rent_vault.rs b/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/init_rent_vault.rs index 7ec01f044..fe1117815 100644 --- a/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/init_rent_vault.rs +++ b/basics/pda-rent-payer/anchor/programs/anchor-program-example/src/instructions/init_rent_vault.rs @@ -22,7 +22,7 @@ pub struct InitRentVault<'info> { pub fn init_rent_vault(ctx: Context, fund_lamports: u64) -> Result<()> { transfer( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), Transfer { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.rent_vault.to_account_info(), diff --git a/basics/pda-rent-payer/anchor/tests/litesvm.test.ts b/basics/pda-rent-payer/anchor/tests/litesvm.test.ts index b7bf80451..35c9a3108 100644 --- a/basics/pda-rent-payer/anchor/tests/litesvm.test.ts +++ b/basics/pda-rent-payer/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, LAMPORTS_PER_SOL, diff --git a/basics/pda-rent-payer/anchor/tests/test.ts b/basics/pda-rent-payer/anchor/tests/test.ts index 5467255ed..153d95d3f 100644 --- a/basics/pda-rent-payer/anchor/tests/test.ts +++ b/basics/pda-rent-payer/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { Keypair, LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; import BN from "bn.js"; import { assert } from "chai"; diff --git a/basics/processing-instructions/anchor/Anchor.toml b/basics/processing-instructions/anchor/Anchor.toml index 4d0a28640..f08cbe3f0 100644 --- a/basics/processing-instructions/anchor/Anchor.toml +++ b/basics/processing-instructions/anchor/Anchor.toml @@ -6,8 +6,7 @@ seeds = false [programs.localnet] processing_instructions = "DgoL5J44aspizyUs9fcnpGEUJjWTLJRCfx8eYtUMYczf" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/basics/processing-instructions/anchor/package.json b/basics/processing-instructions/anchor/package.json index 9d86fae3d..0696e9344 100644 --- a/basics/processing-instructions/anchor/package.json +++ b/basics/processing-instructions/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.3.4", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/processing-instructions/anchor/programs/processing-instructions/Cargo.toml b/basics/processing-instructions/anchor/programs/processing-instructions/Cargo.toml index 5b5084554..8731d6e16 100644 --- a/basics/processing-instructions/anchor/programs/processing-instructions/Cargo.toml +++ b/basics/processing-instructions/anchor/programs/processing-instructions/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/processing-instructions/anchor/tests/litesvm.test.ts b/basics/processing-instructions/anchor/tests/litesvm.test.ts index 4e45307d0..096d394ee 100644 --- a/basics/processing-instructions/anchor/tests/litesvm.test.ts +++ b/basics/processing-instructions/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/processing-instructions/anchor/tests/test.ts b/basics/processing-instructions/anchor/tests/test.ts index 925d2fde7..debaf2f63 100644 --- a/basics/processing-instructions/anchor/tests/test.ts +++ b/basics/processing-instructions/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import type { ProcessingInstructions } from '../target/types/processing_instructions'; describe('custom-instruction-data', () => { diff --git a/basics/program-derived-addresses/anchor/Anchor.toml b/basics/program-derived-addresses/anchor/Anchor.toml index e215bbe56..846ff33de 100644 --- a/basics/program-derived-addresses/anchor/Anchor.toml +++ b/basics/program-derived-addresses/anchor/Anchor.toml @@ -6,8 +6,7 @@ seeds = false [programs.localnet] program_derived_addresses_program = "oCCQRZyAbVxujyd8m57MPmDzZDmy2FoKW4ULS7KofCE" -[registry] -url = "https://anchor.projectserum.com" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/basics/program-derived-addresses/anchor/package.json b/basics/program-derived-addresses/anchor/package.json index 9d86fae3d..0696e9344 100644 --- a/basics/program-derived-addresses/anchor/package.json +++ b/basics/program-derived-addresses/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.3.4", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/program-derived-addresses/anchor/programs/anchor-program-example/Cargo.toml b/basics/program-derived-addresses/anchor/programs/anchor-program-example/Cargo.toml index b0360bd11..05229b066 100644 --- a/basics/program-derived-addresses/anchor/programs/anchor-program-example/Cargo.toml +++ b/basics/program-derived-addresses/anchor/programs/anchor-program-example/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/program-derived-addresses/anchor/tests/litesvm.test.ts b/basics/program-derived-addresses/anchor/tests/litesvm.test.ts index 8a6544cf7..84c78cb7c 100644 --- a/basics/program-derived-addresses/anchor/tests/litesvm.test.ts +++ b/basics/program-derived-addresses/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/program-derived-addresses/anchor/tests/test.ts b/basics/program-derived-addresses/anchor/tests/test.ts index 57ae493da..da096db2a 100644 --- a/basics/program-derived-addresses/anchor/tests/test.ts +++ b/basics/program-derived-addresses/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { PublicKey } from "@solana/web3.js"; import { assert } from "chai"; import type { ProgramDerivedAddressesProgram } from "../target/types/program_derived_addresses_program.ts"; diff --git a/basics/realloc/anchor/Anchor.toml b/basics/realloc/anchor/Anchor.toml index a0f3a9588..f6b6906d1 100644 --- a/basics/realloc/anchor/Anchor.toml +++ b/basics/realloc/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] anchor_realloc = "Fod47xKXjdHVQDzkFPBvfdWLm8gEAV4iMSXkfUzCHiSD" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/basics/realloc/anchor/migrations/deploy.ts b/basics/realloc/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/basics/realloc/anchor/migrations/deploy.ts +++ b/basics/realloc/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/basics/realloc/anchor/package.json b/basics/realloc/anchor/package.json index 974de97a3..3335c7917 100644 --- a/basics/realloc/anchor/package.json +++ b/basics/realloc/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -17,6 +17,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/realloc/anchor/programs/anchor-realloc/Cargo.toml b/basics/realloc/anchor/programs/anchor-realloc/Cargo.toml index c0d3e5704..d7a7d349a 100644 --- a/basics/realloc/anchor/programs/anchor-realloc/Cargo.toml +++ b/basics/realloc/anchor/programs/anchor-realloc/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/realloc/anchor/tests/litesvm.test.ts b/basics/realloc/anchor/tests/litesvm.test.ts index f974526a4..e45976d50 100644 --- a/basics/realloc/anchor/tests/litesvm.test.ts +++ b/basics/realloc/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, PublicKey, diff --git a/basics/realloc/anchor/tests/test.ts b/basics/realloc/anchor/tests/test.ts index 13edd3df6..be04c637d 100644 --- a/basics/realloc/anchor/tests/test.ts +++ b/basics/realloc/anchor/tests/test.ts @@ -1,5 +1,5 @@ -import type { Program } from "@coral-xyz/anchor"; -import * as anchor from "@coral-xyz/anchor"; +import type { Program } from "@anchor-lang/core"; +import * as anchor from "@anchor-lang/core"; import { Keypair } from "@solana/web3.js"; import { assert } from "chai"; import type { AnchorRealloc } from "../target/types/anchor_realloc.ts"; diff --git a/basics/rent/anchor/Anchor.toml b/basics/rent/anchor/Anchor.toml index f2a16eef2..89a73d190 100644 --- a/basics/rent/anchor/Anchor.toml +++ b/basics/rent/anchor/Anchor.toml @@ -6,8 +6,7 @@ seeds = false [programs.localnet] rent_example = "ED6f4gweAE7hWPQPXMt4kWxzDJne8VQEm9zkb1tMpFNB" -[registry] -url = "https://anchor.projectserum.com" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/basics/rent/anchor/package.json b/basics/rent/anchor/package.json index 9d86fae3d..0696e9344 100644 --- a/basics/rent/anchor/package.json +++ b/basics/rent/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.3.4", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/rent/anchor/programs/rent-example/Cargo.toml b/basics/rent/anchor/programs/rent-example/Cargo.toml index 8a55bac1d..648979a7b 100644 --- a/basics/rent/anchor/programs/rent-example/Cargo.toml +++ b/basics/rent/anchor/programs/rent-example/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/rent/anchor/programs/rent-example/src/lib.rs b/basics/rent/anchor/programs/rent-example/src/lib.rs index 19d35c5b6..84b088b89 100644 --- a/basics/rent/anchor/programs/rent-example/src/lib.rs +++ b/basics/rent/anchor/programs/rent-example/src/lib.rs @@ -27,7 +27,7 @@ pub mod rent_example { system_program::create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), system_program::CreateAccount { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.new_account.to_account_info(), diff --git a/basics/rent/anchor/tests/litesvm.test.ts b/basics/rent/anchor/tests/litesvm.test.ts index eb9dcbe30..b102af9f0 100644 --- a/basics/rent/anchor/tests/litesvm.test.ts +++ b/basics/rent/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, LAMPORTS_PER_SOL, diff --git a/basics/rent/anchor/tests/test.ts b/basics/rent/anchor/tests/test.ts index 26362b30a..7755d3d47 100644 --- a/basics/rent/anchor/tests/test.ts +++ b/basics/rent/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { assert } from "chai"; import Idl from "../target/idl/rent_example.json" with { type: "json" }; import type { RentExample } from "../target/types/rent_example.ts"; diff --git a/basics/repository-layout/anchor/Anchor.toml b/basics/repository-layout/anchor/Anchor.toml index 6e2f543ef..8d4faedce 100644 --- a/basics/repository-layout/anchor/Anchor.toml +++ b/basics/repository-layout/anchor/Anchor.toml @@ -6,8 +6,7 @@ seeds = false [programs.localnet] carnival = "8t94SEJh9jVjDwV7cbiuT6BvEsHo4YHP9x9a5rYH1NpP" -[registry] -url = "https://anchor.projectserum.com" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/basics/repository-layout/anchor/package.json b/basics/repository-layout/anchor/package.json index 9d86fae3d..0696e9344 100644 --- a/basics/repository-layout/anchor/package.json +++ b/basics/repository-layout/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.3.4", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/repository-layout/anchor/programs/carnival/Cargo.toml b/basics/repository-layout/anchor/programs/carnival/Cargo.toml index 4a6ca93e3..71a3df21d 100644 --- a/basics/repository-layout/anchor/programs/carnival/Cargo.toml +++ b/basics/repository-layout/anchor/programs/carnival/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/repository-layout/anchor/tests/litesvm.test.ts b/basics/repository-layout/anchor/tests/litesvm.test.ts index caf8f3354..a77a18431 100644 --- a/basics/repository-layout/anchor/tests/litesvm.test.ts +++ b/basics/repository-layout/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, LAMPORTS_PER_SOL, diff --git a/basics/repository-layout/anchor/tests/test.ts b/basics/repository-layout/anchor/tests/test.ts index c0baaa6bd..497a11edd 100644 --- a/basics/repository-layout/anchor/tests/test.ts +++ b/basics/repository-layout/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import type { Carnival } from "../target/types/carnival.ts"; describe("Carnival", () => { diff --git a/basics/transfer-sol/anchor/Anchor.toml b/basics/transfer-sol/anchor/Anchor.toml index 82ff8f1df..7e5ef2b8f 100644 --- a/basics/transfer-sol/anchor/Anchor.toml +++ b/basics/transfer-sol/anchor/Anchor.toml @@ -6,8 +6,7 @@ seeds = false [programs.localnet] transfer_sol = "4fQVnLWKKKYxtxgGn7Haw8v2g2Hzbu8K61JvWKvqAi7W" -[registry] -url = "https://anchor.projectserum.com" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/basics/transfer-sol/anchor/package.json b/basics/transfer-sol/anchor/package.json index 9d86fae3d..0696e9344 100644 --- a/basics/transfer-sol/anchor/package.json +++ b/basics/transfer-sol/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "litesvm": "^0.4.0" }, @@ -12,6 +12,6 @@ "chai": "^4.3.4", "mocha": "^9.0.3", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/basics/transfer-sol/anchor/programs/transfer-sol/Cargo.toml b/basics/transfer-sol/anchor/programs/transfer-sol/Cargo.toml index 64d30e344..08eb4312d 100644 --- a/basics/transfer-sol/anchor/programs/transfer-sol/Cargo.toml +++ b/basics/transfer-sol/anchor/programs/transfer-sol/Cargo.toml @@ -20,7 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/basics/transfer-sol/anchor/programs/transfer-sol/src/lib.rs b/basics/transfer-sol/anchor/programs/transfer-sol/src/lib.rs index a2fef1afc..7f8e92542 100644 --- a/basics/transfer-sol/anchor/programs/transfer-sol/src/lib.rs +++ b/basics/transfer-sol/anchor/programs/transfer-sol/src/lib.rs @@ -10,7 +10,7 @@ pub mod transfer_sol { pub fn transfer_sol_with_cpi(ctx: Context, amount: u64) -> Result<()> { system_program::transfer( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), system_program::Transfer { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.recipient.to_account_info(), diff --git a/basics/transfer-sol/anchor/tests/litesvm.test.ts b/basics/transfer-sol/anchor/tests/litesvm.test.ts index 03f8e674a..536e796f6 100644 --- a/basics/transfer-sol/anchor/tests/litesvm.test.ts +++ b/basics/transfer-sol/anchor/tests/litesvm.test.ts @@ -1,4 +1,4 @@ -import anchor from "@coral-xyz/anchor"; +import anchor from "@anchor-lang/core"; import { Keypair, LAMPORTS_PER_SOL, diff --git a/basics/transfer-sol/anchor/tests/test.ts b/basics/transfer-sol/anchor/tests/test.ts index 05705380a..c43f5f122 100644 --- a/basics/transfer-sol/anchor/tests/test.ts +++ b/basics/transfer-sol/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { Keypair, LAMPORTS_PER_SOL, diff --git a/compression/cnft-burn/anchor/Anchor.toml b/compression/cnft-burn/anchor/Anchor.toml index b0f7e9190..8917c2a49 100644 --- a/compression/cnft-burn/anchor/Anchor.toml +++ b/compression/cnft-burn/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.devnet] cnft_burn = "C6qxH8n6mZxrrbtMtYWYSp8JR8vkQ55X1o4EBg7twnMv" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "devnet" diff --git a/compression/cnft-burn/anchor/migrations/deploy.ts b/compression/cnft-burn/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/compression/cnft-burn/anchor/migrations/deploy.ts +++ b/compression/cnft-burn/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/compression/cnft-burn/anchor/package.json b/compression/cnft-burn/anchor/package.json index 56d389c27..bfbe65494 100644 --- a/compression/cnft-burn/anchor/package.json +++ b/compression/cnft-burn/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@metaplex-foundation/js": "^0.19.4", "@metaplex-foundation/mpl-bubblegum": "^0.7.0", "@metaplex-foundation/mpl-token-metadata": "^2.12.0", @@ -22,6 +22,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml b/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml index fd6933b4d..b63449767 100644 --- a/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml +++ b/compression/cnft-burn/anchor/programs/cnft-burn/Cargo.toml @@ -20,9 +20,12 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -mpl-bubblegum = "2.1.1" -spl-account-compression = { version = "1.0.0", features = ["no-entrypoint", "cpi"] } +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +# mpl-bubblegum and spl-account-compression removed: they depend on solana-program 2.x +# which is incompatible with Anchor 1.0's solana 3.x types. CPI calls are built manually +# using raw invoke() with hardcoded program IDs and discriminators. +borsh = "1" ahash = "=0.8.7" [lints.rust] diff --git a/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs b/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs index 086058545..58d303426 100644 --- a/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs +++ b/compression/cnft-burn/anchor/programs/cnft-burn/src/lib.rs @@ -1,13 +1,45 @@ use anchor_lang::prelude::*; +use anchor_lang::solana_program::{ + instruction::{AccountMeta, Instruction}, + program::invoke, +}; +use borsh::BorshSerialize; declare_id!("C6qxH8n6mZxrrbtMtYWYSp8JR8vkQ55X1o4EBg7twnMv"); +/// mpl-bubblegum program ID (BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY) +const MPL_BUBBLEGUM_ID: Pubkey = Pubkey::new_from_array([ + 0x98, 0x8b, 0x80, 0xeb, 0x79, 0x35, 0x28, 0x69, 0xb2, 0x24, 0x74, 0x5f, 0x59, 0xdd, 0xbf, + 0x8a, 0x26, 0x58, 0xca, 0x13, 0xdc, 0x68, 0x81, 0x21, 0x26, 0x35, 0x1c, 0xae, 0x07, 0xc1, + 0xa5, 0xa5, +]); + +/// SPL Account Compression program ID (cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK) +const SPL_ACCOUNT_COMPRESSION_ID: Pubkey = Pubkey::new_from_array([ + 0x09, 0x2a, 0x13, 0xee, 0x95, 0xc4, 0x1c, 0xba, 0x08, 0xa6, 0x7f, 0x5a, 0xc6, 0x7e, 0x8d, + 0xf7, 0xe1, 0xda, 0x11, 0x62, 0x5e, 0x1d, 0x64, 0x13, 0x7f, 0x8f, 0x4f, 0x23, 0x83, 0x03, + 0x7f, 0x14, +]); + +/// Burn instruction discriminator from mpl-bubblegum +const BURN_DISCRIMINATOR: [u8; 8] = [116, 110, 29, 56, 107, 219, 42, 93]; + +/// Instruction arguments for mpl-bubblegum Burn, serialized with borsh +#[derive(BorshSerialize)] +struct BurnArgs { + root: [u8; 32], + data_hash: [u8; 32], + creator_hash: [u8; 32], + nonce: u64, + index: u32, +} + #[derive(Clone)] pub struct SPLCompression; impl anchor_lang::Id for SPLCompression { fn id() -> Pubkey { - spl_account_compression::id() + SPL_ACCOUNT_COMPRESSION_ID } } @@ -16,47 +48,78 @@ pub mod cnft_burn { use super::*; pub fn burn_cnft<'info>( - ctx: Context<'_, '_, '_, 'info, BurnCnft<'info>>, + ctx: Context<'info, BurnCnft<'info>>, root: [u8; 32], data_hash: [u8; 32], creator_hash: [u8; 32], nonce: u64, index: u32, ) -> Result<()> { - let tree_config = ctx.accounts.tree_authority.to_account_info(); - let leaf_owner = ctx.accounts.leaf_owner.to_account_info(); - let merkle_tree = ctx.accounts.merkle_tree.to_account_info(); - let log_wrapper = ctx.accounts.log_wrapper.to_account_info(); - let compression_program = ctx.accounts.compression_program.to_account_info(); - let system_program = ctx.accounts.system_program.to_account_info(); + // Build instruction data: discriminator + borsh-serialized args + let args = BurnArgs { + root, + data_hash, + creator_hash, + nonce, + index, + }; + let mut data = BURN_DISCRIMINATOR.to_vec(); + args.serialize(&mut data)?; + + // Build account metas matching mpl-bubblegum Burn instruction layout + let mut accounts = Vec::with_capacity(7 + ctx.remaining_accounts.len()); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.tree_authority.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.leaf_owner.key(), + true, + )); + // leaf_delegate = leaf_owner, not a signer in this call + accounts.push(AccountMeta::new_readonly( + ctx.accounts.leaf_owner.key(), + false, + )); + accounts.push(AccountMeta::new(ctx.accounts.merkle_tree.key(), false)); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.log_wrapper.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.compression_program.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.system_program.key(), + false, + )); + // Append remaining accounts (proof nodes) + for acc in ctx.remaining_accounts.iter() { + accounts.push(AccountMeta::new_readonly(acc.key(), false)); + } + + let instruction = Instruction { + program_id: MPL_BUBBLEGUM_ID, + accounts, + data, + }; - let cnft_burn_cpi = mpl_bubblegum::instructions::BurnCpi::new( - &ctx.accounts.bubblegum_program, - mpl_bubblegum::instructions::BurnCpiAccounts { - tree_config: &tree_config, - leaf_owner: (&leaf_owner, true), - leaf_delegate: (&leaf_owner, false), - merkle_tree: &merkle_tree, - log_wrapper: &log_wrapper, - compression_program: &compression_program, - system_program: &system_program, - }, - mpl_bubblegum::instructions::BurnInstructionArgs { - root, - data_hash, - creator_hash, - nonce, - index, - }, - ); + // Gather all account infos for the CPI + let mut account_infos = vec![ + ctx.accounts.bubblegum_program.to_account_info(), + ctx.accounts.tree_authority.to_account_info(), + ctx.accounts.leaf_owner.to_account_info(), + ctx.accounts.merkle_tree.to_account_info(), + ctx.accounts.log_wrapper.to_account_info(), + ctx.accounts.compression_program.to_account_info(), + ctx.accounts.system_program.to_account_info(), + ]; + for acc in ctx.remaining_accounts.iter() { + account_infos.push(acc.to_account_info()); + } - cnft_burn_cpi.invoke_with_remaining_accounts( - ctx.remaining_accounts - .iter() - .map(|account| (account, false, false)) - .collect::>() - .as_slice(), - )?; + invoke(&instruction, &account_infos)?; Ok(()) } diff --git a/compression/cnft-burn/anchor/tests/cnft-burn.ts b/compression/cnft-burn/anchor/tests/cnft-burn.ts index 44a54fbe6..c2e9464ef 100644 --- a/compression/cnft-burn/anchor/tests/cnft-burn.ts +++ b/compression/cnft-burn/anchor/tests/cnft-burn.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { PROGRAM_ID as BUBBLEGUM_PROGRAM_ID } from '@metaplex-foundation/mpl-bubblegum'; import { SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, SPL_NOOP_PROGRAM_ID } from '@solana/spl-account-compression'; import type { CnftBurn } from '../target/types/cnft_burn'; diff --git a/compression/cnft-burn/anchor/tests/createAndMint.ts b/compression/cnft-burn/anchor/tests/createAndMint.ts index fdf195ac6..add25d3cd 100644 --- a/compression/cnft-burn/anchor/tests/createAndMint.ts +++ b/compression/cnft-burn/anchor/tests/createAndMint.ts @@ -12,7 +12,7 @@ less console logging and explanation of what is occurring */ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { type MetadataArgs, TokenProgramVersion, TokenStandard } from '@metaplex-foundation/mpl-bubblegum'; import type { CreateMetadataAccountArgsV3 } from '@metaplex-foundation/mpl-token-metadata'; import type { ValidDepthSizePair } from '@solana/spl-account-compression'; diff --git a/compression/cnft-vault/anchor/Anchor.toml b/compression/cnft-vault/anchor/Anchor.toml index 1173cac4a..b3f3533c9 100644 --- a/compression/cnft-vault/anchor/Anchor.toml +++ b/compression/cnft-vault/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.devnet] cnft_vault = "Fd4iwpPWaCU8BNwGQGtvvrcvG4Tfizq3RgLm8YLBJX6D" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "devnet" diff --git a/compression/cnft-vault/anchor/package.json b/compression/cnft-vault/anchor/package.json index e55d288f2..4aeee309a 100644 --- a/compression/cnft-vault/anchor/package.json +++ b/compression/cnft-vault/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@metaplex-foundation/mpl-bubblegum": "^0.6.2", "@solana/spl-account-compression": "^0.1.8", "axios": "^1.4.0" @@ -18,6 +18,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml b/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml index 2d49fbd3e..1cea9f3d6 100644 --- a/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml +++ b/compression/cnft-vault/anchor/programs/cnft-vault/Cargo.toml @@ -20,9 +20,12 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -mpl-bubblegum = "2.1.1" -spl-account-compression = { version = "1.0.0", features = ["no-entrypoint", "cpi"] } +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +# mpl-bubblegum and spl-account-compression removed: they depend on solana-program 2.x +# which is incompatible with Anchor 1.0's solana 3.x types. CPI calls are built manually +# using raw invoke_signed() with hardcoded program IDs and discriminators. +borsh = "1" ahash = "=0.8.7" [lints.rust] diff --git a/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs b/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs index 2d1f69e30..429498eaa 100644 --- a/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs +++ b/compression/cnft-vault/anchor/programs/cnft-vault/src/lib.rs @@ -1,22 +1,91 @@ use anchor_lang::prelude::*; +use anchor_lang::solana_program::{ + instruction::{AccountMeta, Instruction}, + program::invoke_signed, +}; +use borsh::BorshSerialize; declare_id!("Fd4iwpPWaCU8BNwGQGtvvrcvG4Tfizq3RgLm8YLBJX6D"); +/// mpl-bubblegum program ID (BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY) +const MPL_BUBBLEGUM_ID: Pubkey = Pubkey::new_from_array([ + 0x98, 0x8b, 0x80, 0xeb, 0x79, 0x35, 0x28, 0x69, 0xb2, 0x24, 0x74, 0x5f, 0x59, 0xdd, 0xbf, + 0x8a, 0x26, 0x58, 0xca, 0x13, 0xdc, 0x68, 0x81, 0x21, 0x26, 0x35, 0x1c, 0xae, 0x07, 0xc1, + 0xa5, 0xa5, +]); + +/// SPL Account Compression program ID (cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK) +const SPL_ACCOUNT_COMPRESSION_ID: Pubkey = Pubkey::new_from_array([ + 0x09, 0x2a, 0x13, 0xee, 0x95, 0xc4, 0x1c, 0xba, 0x08, 0xa6, 0x7f, 0x5a, 0xc6, 0x7e, 0x8d, + 0xf7, 0xe1, 0xda, 0x11, 0x62, 0x5e, 0x1d, 0x64, 0x13, 0x7f, 0x8f, 0x4f, 0x23, 0x83, 0x03, + 0x7f, 0x14, +]); + +/// Transfer instruction discriminator from mpl-bubblegum +const TRANSFER_DISCRIMINATOR: [u8; 8] = [163, 52, 200, 231, 140, 3, 69, 186]; + +/// Instruction arguments for mpl-bubblegum Transfer, serialized with borsh +#[derive(BorshSerialize)] +struct TransferArgs { + root: [u8; 32], + data_hash: [u8; 32], + creator_hash: [u8; 32], + nonce: u64, + index: u32, +} + #[derive(Clone)] pub struct SPLCompression; impl anchor_lang::Id for SPLCompression { fn id() -> Pubkey { - spl_account_compression::id() + SPL_ACCOUNT_COMPRESSION_ID } } +/// Build a mpl-bubblegum Transfer instruction from pubkeys and args. +/// This avoids using mpl-bubblegum's CPI wrapper which requires solana-program 2.x AccountInfo. +fn build_transfer_instruction( + tree_config: Pubkey, + leaf_owner: Pubkey, + leaf_delegate: Pubkey, + new_leaf_owner: Pubkey, + merkle_tree: Pubkey, + log_wrapper: Pubkey, + compression_program: Pubkey, + system_program: Pubkey, + remaining_accounts: &[AccountMeta], + args: TransferArgs, +) -> Result { + let mut accounts = Vec::with_capacity(8 + remaining_accounts.len()); + accounts.push(AccountMeta::new_readonly(tree_config, false)); + // leaf_owner is a signer (PDA signs via invoke_signed) + accounts.push(AccountMeta::new_readonly(leaf_owner, true)); + // leaf_delegate = leaf_owner, not an additional signer + accounts.push(AccountMeta::new_readonly(leaf_delegate, false)); + accounts.push(AccountMeta::new_readonly(new_leaf_owner, false)); + accounts.push(AccountMeta::new(merkle_tree, false)); + accounts.push(AccountMeta::new_readonly(log_wrapper, false)); + accounts.push(AccountMeta::new_readonly(compression_program, false)); + accounts.push(AccountMeta::new_readonly(system_program, false)); + accounts.extend_from_slice(remaining_accounts); + + let mut data = TRANSFER_DISCRIMINATOR.to_vec(); + args.serialize(&mut data)?; + + Ok(Instruction { + program_id: MPL_BUBBLEGUM_ID, + accounts, + data, + }) +} + #[program] pub mod cnft_vault { use super::*; pub fn withdraw_cnft<'info>( - ctx: Context<'_, '_, '_, 'info, Withdraw<'info>>, + ctx: Context<'info, Withdraw<'info>>, root: [u8; 32], data_hash: [u8; 32], creator_hash: [u8; 32], @@ -29,42 +98,50 @@ pub mod cnft_vault { ctx.accounts.merkle_tree.key() ); - let tree_config = ctx.accounts.tree_authority.to_account_info(); - let leaf_owner = ctx.accounts.leaf_owner.to_account_info(); - let new_leaf_owner = ctx.accounts.new_leaf_owner.to_account_info(); - let merkle_tree = ctx.accounts.merkle_tree.to_account_info(); - let log_wrapper = ctx.accounts.log_wrapper.to_account_info(); - let compression_program = ctx.accounts.compression_program.to_account_info(); - let system_program = ctx.accounts.system_program.to_account_info(); - - let transfer_cpi = mpl_bubblegum::instructions::TransferCpi::new( - &ctx.accounts.bubblegum_program, - mpl_bubblegum::instructions::TransferCpiAccounts { - tree_config: &tree_config, - leaf_owner: (&leaf_owner, true), - leaf_delegate: (&leaf_owner, false), - new_leaf_owner: &new_leaf_owner, - merkle_tree: &merkle_tree, - log_wrapper: &log_wrapper, - compression_program: &compression_program, - system_program: &system_program, - }, - mpl_bubblegum::instructions::TransferInstructionArgs { + let proof_metas: Vec = ctx + .remaining_accounts + .iter() + .map(|acc| AccountMeta::new_readonly(acc.key(), false)) + .collect(); + + let instruction = build_transfer_instruction( + ctx.accounts.tree_authority.key(), + ctx.accounts.leaf_owner.key(), + ctx.accounts.leaf_owner.key(), + ctx.accounts.new_leaf_owner.key(), + ctx.accounts.merkle_tree.key(), + ctx.accounts.log_wrapper.key(), + ctx.accounts.compression_program.key(), + ctx.accounts.system_program.key(), + &proof_metas, + TransferArgs { root, data_hash, creator_hash, nonce, index, }, - ); + )?; + + // Gather all account infos for the CPI + let mut account_infos = vec![ + ctx.accounts.bubblegum_program.to_account_info(), + ctx.accounts.tree_authority.to_account_info(), + ctx.accounts.leaf_owner.to_account_info(), + ctx.accounts.new_leaf_owner.to_account_info(), + ctx.accounts.merkle_tree.to_account_info(), + ctx.accounts.log_wrapper.to_account_info(), + ctx.accounts.compression_program.to_account_info(), + ctx.accounts.system_program.to_account_info(), + ]; + for acc in ctx.remaining_accounts.iter() { + account_infos.push(acc.to_account_info()); + } - transfer_cpi.invoke_signed_with_remaining_accounts( + invoke_signed( + &instruction, + &account_infos, &[&[b"cNFT-vault", &[ctx.bumps.leaf_owner]]], - ctx.remaining_accounts - .iter() - .map(|account| (account, false, false)) - .collect::>() - .as_slice(), )?; Ok(()) @@ -72,7 +149,7 @@ pub mod cnft_vault { #[allow(clippy::too_many_arguments)] pub fn withdraw_two_cnfts<'info>( - ctx: Context<'_, '_, '_, 'info, WithdrawTwo<'info>>, + ctx: Context<'info, WithdrawTwo<'info>>, root1: [u8; 32], data_hash1: [u8; 32], creator_hash1: [u8; 32], @@ -94,88 +171,96 @@ pub mod cnft_vault { merkle_tree2 ); - // Note: in this example anyone can withdraw any NFT from the vault - // in productions you should check if nft transfers are valid (correct NFT, correct authority) - - let tree_config1 = ctx.accounts.tree_authority1.to_account_info(); - let tree_config2 = ctx.accounts.tree_authority2.to_account_info(); - let leaf_owner = ctx.accounts.leaf_owner.to_account_info(); - let new_leaf_owner1 = ctx.accounts.new_leaf_owner1.to_account_info(); - let new_leaf_owner2 = ctx.accounts.new_leaf_owner2.to_account_info(); - let merkle_tree1_info = ctx.accounts.merkle_tree1.to_account_info(); - let merkle_tree2_info = ctx.accounts.merkle_tree2.to_account_info(); - let log_wrapper = ctx.accounts.log_wrapper.to_account_info(); - let compression_program = ctx.accounts.compression_program.to_account_info(); - let system_program = ctx.accounts.system_program.to_account_info(); - let signer_seeds: &[&[u8]] = &[b"cNFT-vault", &[ctx.bumps.leaf_owner]]; // Split remaining accounts into proof1 and proof2 let (proof1_accounts, proof2_accounts) = ctx.remaining_accounts.split_at(proof_1_length as usize); + let proof1_metas: Vec = proof1_accounts + .iter() + .map(|acc| AccountMeta::new_readonly(acc.key(), false)) + .collect(); + + let proof2_metas: Vec = proof2_accounts + .iter() + .map(|acc| AccountMeta::new_readonly(acc.key(), false)) + .collect(); + + // Withdraw cNFT#1 msg!("withdrawing cNFT#1"); - let transfer_cpi1 = mpl_bubblegum::instructions::TransferCpi::new( - &ctx.accounts.bubblegum_program, - mpl_bubblegum::instructions::TransferCpiAccounts { - tree_config: &tree_config1, - leaf_owner: (&leaf_owner, true), - leaf_delegate: (&leaf_owner, false), - new_leaf_owner: &new_leaf_owner1, - merkle_tree: &merkle_tree1_info, - log_wrapper: &log_wrapper, - compression_program: &compression_program, - system_program: &system_program, - }, - mpl_bubblegum::instructions::TransferInstructionArgs { + let instruction1 = build_transfer_instruction( + ctx.accounts.tree_authority1.key(), + ctx.accounts.leaf_owner.key(), + ctx.accounts.leaf_owner.key(), + ctx.accounts.new_leaf_owner1.key(), + ctx.accounts.merkle_tree1.key(), + ctx.accounts.log_wrapper.key(), + ctx.accounts.compression_program.key(), + ctx.accounts.system_program.key(), + &proof1_metas, + TransferArgs { root: root1, data_hash: data_hash1, creator_hash: creator_hash1, nonce: nonce1, index: index1, }, - ); - - transfer_cpi1.invoke_signed_with_remaining_accounts( - &[signer_seeds], - proof1_accounts - .iter() - .map(|account| (account, false, false)) - .collect::>() - .as_slice(), )?; + let mut account_infos1 = vec![ + ctx.accounts.bubblegum_program.to_account_info(), + ctx.accounts.tree_authority1.to_account_info(), + ctx.accounts.leaf_owner.to_account_info(), + ctx.accounts.new_leaf_owner1.to_account_info(), + ctx.accounts.merkle_tree1.to_account_info(), + ctx.accounts.log_wrapper.to_account_info(), + ctx.accounts.compression_program.to_account_info(), + ctx.accounts.system_program.to_account_info(), + ]; + for acc in proof1_accounts.iter() { + account_infos1.push(acc.to_account_info()); + } + + invoke_signed(&instruction1, &account_infos1, &[signer_seeds])?; + + // Withdraw cNFT#2 msg!("withdrawing cNFT#2"); - let transfer_cpi2 = mpl_bubblegum::instructions::TransferCpi::new( - &ctx.accounts.bubblegum_program, - mpl_bubblegum::instructions::TransferCpiAccounts { - tree_config: &tree_config2, - leaf_owner: (&leaf_owner, true), - leaf_delegate: (&leaf_owner, false), - new_leaf_owner: &new_leaf_owner2, - merkle_tree: &merkle_tree2_info, - log_wrapper: &log_wrapper, - compression_program: &compression_program, - system_program: &system_program, - }, - mpl_bubblegum::instructions::TransferInstructionArgs { + let instruction2 = build_transfer_instruction( + ctx.accounts.tree_authority2.key(), + ctx.accounts.leaf_owner.key(), + ctx.accounts.leaf_owner.key(), + ctx.accounts.new_leaf_owner2.key(), + ctx.accounts.merkle_tree2.key(), + ctx.accounts.log_wrapper.key(), + ctx.accounts.compression_program.key(), + ctx.accounts.system_program.key(), + &proof2_metas, + TransferArgs { root: root2, data_hash: data_hash2, creator_hash: creator_hash2, nonce: nonce2, index: index2, }, - ); - - transfer_cpi2.invoke_signed_with_remaining_accounts( - &[signer_seeds], - proof2_accounts - .iter() - .map(|account| (account, false, false)) - .collect::>() - .as_slice(), )?; + let mut account_infos2 = vec![ + ctx.accounts.bubblegum_program.to_account_info(), + ctx.accounts.tree_authority2.to_account_info(), + ctx.accounts.leaf_owner.to_account_info(), + ctx.accounts.new_leaf_owner2.to_account_info(), + ctx.accounts.merkle_tree2.to_account_info(), + ctx.accounts.log_wrapper.to_account_info(), + ctx.accounts.compression_program.to_account_info(), + ctx.accounts.system_program.to_account_info(), + ]; + for acc in proof2_accounts.iter() { + account_infos2.push(acc.to_account_info()); + } + + invoke_signed(&instruction2, &account_infos2, &[signer_seeds])?; + msg!("successfully sent cNFTs"); Ok(()) } diff --git a/compression/cnft-vault/anchor/tests/scripts/constants.ts b/compression/cnft-vault/anchor/tests/scripts/constants.ts index 05398b3bf..2727afc0c 100644 --- a/compression/cnft-vault/anchor/tests/scripts/constants.ts +++ b/compression/cnft-vault/anchor/tests/scripts/constants.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import type { CnftVault } from "../../target/types/cnft_vault"; import IDL from "../../target/types/cnft_vault"; import { loadWalletKey } from "../utils"; diff --git a/compression/cnft-vault/anchor/tests/scripts/withdraw.ts b/compression/cnft-vault/anchor/tests/scripts/withdraw.ts index 389db2d23..133857d15 100644 --- a/compression/cnft-vault/anchor/tests/scripts/withdraw.ts +++ b/compression/cnft-vault/anchor/tests/scripts/withdraw.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { PROGRAM_ID as BUBBLEGUM_PROGRAM_ID } from '@metaplex-foundation/mpl-bubblegum'; import { SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, SPL_NOOP_PROGRAM_ID } from '@solana/spl-account-compression'; import { getAsset, getAssetProof } from '../readAPI'; diff --git a/compression/cnft-vault/anchor/tests/scripts/withdrawTwo.ts b/compression/cnft-vault/anchor/tests/scripts/withdrawTwo.ts index 089a31dad..65785c658 100644 --- a/compression/cnft-vault/anchor/tests/scripts/withdrawTwo.ts +++ b/compression/cnft-vault/anchor/tests/scripts/withdrawTwo.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { PROGRAM_ID as BUBBLEGUM_PROGRAM_ID } from '@metaplex-foundation/mpl-bubblegum'; import { SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, SPL_NOOP_PROGRAM_ID } from '@solana/spl-account-compression'; import type { AccountMeta } from '@solana/web3.js'; diff --git a/compression/cnft-vault/anchor/tests/scripts/withdrawWithLookup.ts b/compression/cnft-vault/anchor/tests/scripts/withdrawWithLookup.ts index 45fdc8a9c..20cf63fc4 100644 --- a/compression/cnft-vault/anchor/tests/scripts/withdrawWithLookup.ts +++ b/compression/cnft-vault/anchor/tests/scripts/withdrawWithLookup.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { PROGRAM_ID as BUBBLEGUM_PROGRAM_ID } from '@metaplex-foundation/mpl-bubblegum'; import { SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, SPL_NOOP_PROGRAM_ID } from '@solana/spl-account-compression'; import { diff --git a/compression/cnft-vault/anchor/tests/tests.ts b/compression/cnft-vault/anchor/tests/tests.ts index e5d8251d6..28031d448 100644 --- a/compression/cnft-vault/anchor/tests/tests.ts +++ b/compression/cnft-vault/anchor/tests/tests.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { PROGRAM_ID as BUBBLEGUM_PROGRAM_ID } from '@metaplex-foundation/mpl-bubblegum'; import { SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, SPL_NOOP_PROGRAM_ID } from '@solana/spl-account-compression'; import type { AccountMeta } from '@solana/web3.js'; diff --git a/compression/cutils/anchor/Anchor.toml b/compression/cutils/anchor/Anchor.toml index 743be3156..1e5158a3c 100644 --- a/compression/cutils/anchor/Anchor.toml +++ b/compression/cutils/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.devnet] cutils = "BuFyrgRYzg2nPhqYrxZ7d9uYUs4VXtxH71U8EcoAfTQZ" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "devnet" diff --git a/compression/cutils/anchor/package.json b/compression/cutils/anchor/package.json index 878c19104..d0a67bfdb 100644 --- a/compression/cutils/anchor/package.json +++ b/compression/cutils/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@metaplex-foundation/js": "^0.19.4", "@metaplex-foundation/mpl-bubblegum": "^0.7.0", "@solana/spl-account-compression": "^0.1.8", @@ -22,6 +22,6 @@ "prettier": "^2.6.2", "ts-mocha": "^10.0.0", "ts-node": "^10.9.1", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/compression/cutils/anchor/programs/cutils/Cargo.toml b/compression/cutils/anchor/programs/cutils/Cargo.toml index 836b55a65..c2b4aa431 100644 --- a/compression/cutils/anchor/programs/cutils/Cargo.toml +++ b/compression/cutils/anchor/programs/cutils/Cargo.toml @@ -20,10 +20,15 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -mpl-bubblegum = "2.1.1" -spl-account-compression = { version = "1.0.0", features = ["no-entrypoint", "cpi"] } +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +# mpl-bubblegum and spl-account-compression removed: they depend on solana-program 2.x +# which is incompatible with Anchor 1.0's solana 3.x types. CPI calls are built manually +# using raw invoke() with hardcoded program IDs and discriminators. Bubblegum types +# (MetadataArgs, LeafSchema, etc.) are re-implemented in bubblegum_types.rs. +borsh = "1" sha2 = "0.10" +sha3 = "0.10" ahash = "=0.8.7" [lints.rust] diff --git a/compression/cutils/anchor/programs/cutils/src/actions/mint.rs b/compression/cutils/anchor/programs/cutils/src/actions/mint.rs index a9d8a33a5..f8b879193 100644 --- a/compression/cutils/anchor/programs/cutils/src/actions/mint.rs +++ b/compression/cutils/anchor/programs/cutils/src/actions/mint.rs @@ -1,5 +1,13 @@ +use crate::bubblegum_types::{ + Collection, Creator, MetadataArgs, MintToCollectionV1InstructionArgs, + TokenProgramVersion, TokenStandard, MINT_TO_COLLECTION_V1_DISCRIMINATOR, +}; use crate::*; -use mpl_bubblegum::types::{Collection, Creator, MetadataArgs, TokenProgramVersion, TokenStandard}; +use anchor_lang::solana_program::{ + instruction::{AccountMeta, Instruction}, + program::invoke, +}; +use borsh::BorshSerialize; #[derive(Accounts)] #[instruction(params: MintParams)] @@ -16,10 +24,10 @@ pub struct Mint<'info> { pub tree_authority: UncheckedAccount<'info>, /// CHECK: This account is neither written to nor read from. - pub leaf_owner: AccountInfo<'info>, + pub leaf_owner: UncheckedAccount<'info>, /// CHECK: This account is neither written to nor read from. - pub leaf_delegate: AccountInfo<'info>, + pub leaf_delegate: UncheckedAccount<'info>, #[account(mut)] /// CHECK: unsafe @@ -68,75 +76,130 @@ impl Mint<'_> { } pub fn actuate<'info>( - ctx: Context<'_, '_, '_, 'info, Mint<'info>>, + ctx: Context<'info, Mint<'info>>, params: MintParams, ) -> Result<()> { - let tree_authority = ctx.accounts.tree_authority.to_account_info(); - let leaf_owner = ctx.accounts.leaf_owner.to_account_info(); - let leaf_delegate = ctx.accounts.leaf_delegate.to_account_info(); - let merkle_tree = ctx.accounts.merkle_tree.to_account_info(); - let payer = ctx.accounts.payer.to_account_info(); - let tree_delegate = ctx.accounts.tree_delegate.to_account_info(); - let collection_authority = ctx.accounts.collection_authority.to_account_info(); - let collection_authority_record_pda = ctx - .accounts - .collection_authority_record_pda - .to_account_info(); - let collection_mint = ctx.accounts.collection_mint.to_account_info(); - let collection_metadata = ctx.accounts.collection_metadata.to_account_info(); - let edition_account = ctx.accounts.edition_account.to_account_info(); - let bubblegum_signer = ctx.accounts.bubblegum_signer.to_account_info(); - let log_wrapper = ctx.accounts.log_wrapper.to_account_info(); - let compression_program = ctx.accounts.compression_program.to_account_info(); - let token_metadata_program = ctx.accounts.token_metadata_program.to_account_info(); - let system_program = ctx.accounts.system_program.to_account_info(); - - let mint_cpi = mpl_bubblegum::instructions::MintToCollectionV1Cpi::new( - &ctx.accounts.bubblegum_program, - mpl_bubblegum::instructions::MintToCollectionV1CpiAccounts { - tree_config: &tree_authority, - leaf_owner: &leaf_owner, - leaf_delegate: &leaf_delegate, - merkle_tree: &merkle_tree, - payer: &payer, - tree_creator_or_delegate: &tree_delegate, - collection_authority: &collection_authority, - collection_authority_record_pda: Some(&collection_authority_record_pda), - collection_mint: &collection_mint, - collection_metadata: &collection_metadata, - collection_edition: &edition_account, - bubblegum_signer: &bubblegum_signer, - log_wrapper: &log_wrapper, - compression_program: &compression_program, - token_metadata_program: &token_metadata_program, - system_program: &system_program, + // Build MintToCollectionV1 instruction data + let args = MintToCollectionV1InstructionArgs { + metadata: MetadataArgs { + name: "BURGER".to_string(), + symbol: "BURG".to_string(), + uri: params.uri, + creators: vec![Creator { + address: ctx.accounts.collection_authority.key(), + verified: false, + share: 100, + }], + seller_fee_basis_points: 0, + primary_sale_happened: false, + is_mutable: false, + edition_nonce: Some(0), + uses: None, + collection: Some(Collection { + verified: false, + key: ctx.accounts.collection_mint.key(), + }), + token_program_version: TokenProgramVersion::Original, + token_standard: Some(TokenStandard::NonFungible), }, - mpl_bubblegum::instructions::MintToCollectionV1InstructionArgs { - metadata: MetadataArgs { - name: "BURGER".to_string(), - symbol: "BURG".to_string(), - uri: params.uri, - creators: vec![Creator { - address: ctx.accounts.collection_authority.key(), - verified: false, - share: 100, - }], - seller_fee_basis_points: 0, - primary_sale_happened: false, - is_mutable: false, - edition_nonce: Some(0), - uses: None, - collection: Some(Collection { - verified: false, - key: ctx.accounts.collection_mint.key(), - }), - token_program_version: TokenProgramVersion::Original, - token_standard: Some(TokenStandard::NonFungible), - }, - }, - ); - - mint_cpi.invoke()?; + }; + + let mut data = MINT_TO_COLLECTION_V1_DISCRIMINATOR.to_vec(); + args.serialize(&mut data)?; + + // Build account metas matching MintToCollectionV1 instruction layout + let mut accounts = Vec::with_capacity(16); + accounts.push(AccountMeta::new( + ctx.accounts.tree_authority.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.leaf_owner.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.leaf_delegate.key(), + false, + )); + accounts.push(AccountMeta::new(ctx.accounts.merkle_tree.key(), false)); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.payer.key(), + true, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.tree_delegate.key(), + true, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.collection_authority.key(), + true, + )); + // collection_authority_record_pda — pass as-is + accounts.push(AccountMeta::new_readonly( + ctx.accounts.collection_authority_record_pda.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.collection_mint.key(), + false, + )); + accounts.push(AccountMeta::new( + ctx.accounts.collection_metadata.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.edition_account.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.bubblegum_signer.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.log_wrapper.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.compression_program.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.token_metadata_program.key(), + false, + )); + accounts.push(AccountMeta::new_readonly( + ctx.accounts.system_program.key(), + false, + )); + + let instruction = Instruction { + program_id: MPL_BUBBLEGUM_ID, + accounts, + data, + }; + + // Gather all account infos for the CPI + let account_infos = vec![ + ctx.accounts.bubblegum_program.to_account_info(), + ctx.accounts.tree_authority.to_account_info(), + ctx.accounts.leaf_owner.to_account_info(), + ctx.accounts.leaf_delegate.to_account_info(), + ctx.accounts.merkle_tree.to_account_info(), + ctx.accounts.payer.to_account_info(), + ctx.accounts.tree_delegate.to_account_info(), + ctx.accounts.collection_authority.to_account_info(), + ctx.accounts.collection_authority_record_pda.to_account_info(), + ctx.accounts.collection_mint.to_account_info(), + ctx.accounts.collection_metadata.to_account_info(), + ctx.accounts.edition_account.to_account_info(), + ctx.accounts.bubblegum_signer.to_account_info(), + ctx.accounts.log_wrapper.to_account_info(), + ctx.accounts.compression_program.to_account_info(), + ctx.accounts.token_metadata_program.to_account_info(), + ctx.accounts.system_program.to_account_info(), + ]; + + invoke(&instruction, &account_infos)?; Ok(()) } diff --git a/compression/cutils/anchor/programs/cutils/src/actions/verify.rs b/compression/cutils/anchor/programs/cutils/src/actions/verify.rs index 7ee691c2e..87f282b2e 100644 --- a/compression/cutils/anchor/programs/cutils/src/actions/verify.rs +++ b/compression/cutils/anchor/programs/cutils/src/actions/verify.rs @@ -1,6 +1,6 @@ +use crate::bubblegum_types::{get_asset_id, leaf_schema_v1_hash}; use crate::*; -use mpl_bubblegum::types::LeafSchema; -use mpl_bubblegum::utils::get_asset_id; +use anchor_lang::solana_program::instruction::{AccountMeta, Instruction}; #[derive(Accounts)] #[instruction(params: VerifyParams)] @@ -8,7 +8,7 @@ pub struct Verify<'info> { pub leaf_owner: Signer<'info>, /// CHECK: This account is neither written to nor read from. - pub leaf_delegate: AccountInfo<'info>, + pub leaf_delegate: UncheckedAccount<'info>, /// CHECK: unsafe pub merkle_tree: UncheckedAccount<'info>, @@ -31,24 +31,22 @@ impl Verify<'_> { } pub fn actuate<'info>( - ctx: Context<'_, '_, '_, 'info, Verify<'info>>, + ctx: Context<'info, Verify<'info>>, params: &VerifyParams, ) -> Result<()> { let asset_id = get_asset_id(&ctx.accounts.merkle_tree.key(), params.nonce); - let leaf = LeafSchema::V1 { - id: asset_id, - owner: ctx.accounts.leaf_owner.key(), - delegate: ctx.accounts.leaf_delegate.key(), - nonce: params.nonce, - data_hash: params.data_hash, - creator_hash: params.creator_hash, - }; + let leaf_hash = leaf_schema_v1_hash( + &asset_id, + &ctx.accounts.leaf_owner.key(), + &ctx.accounts.leaf_delegate.key(), + params.nonce, + ¶ms.data_hash, + ¶ms.creator_hash, + ); - // Build verify_leaf instruction manually because spl-account-compression 1.0.0's - // CPI module is built against anchor-lang 0.31, which has incompatible traits with - // anchor-lang 0.32.1. Once spl-account-compression rebuilds against 0.32.1+, replace - // this with spl_account_compression::cpi::verify_leaf(). - use anchor_lang::solana_program::instruction::{AccountMeta, Instruction}; + // Build verify_leaf instruction manually because spl-account-compression 1.0.0 + // depends on solana-program 2.x which is incompatible with Anchor 1.0's solana 3.x + // types. Once a compatible version is available, replace this with the CPI wrapper. use sha2::{Digest, Sha256}; let mut accounts = vec![AccountMeta::new_readonly( @@ -59,13 +57,14 @@ impl Verify<'_> { accounts.push(AccountMeta::new_readonly(acc.key(), false)); } - // Compute the Anchor instruction discriminator: sha256("global:verify_leaf")[..8] + // Compute the spl-account-compression verify_leaf discriminator: + // sha256("global:verify_leaf")[..8] let discriminator: [u8; 8] = Sha256::digest(b"global:verify_leaf")[..8] .try_into() .unwrap(); let mut data = discriminator.to_vec(); data.extend_from_slice(¶ms.root); - data.extend_from_slice(&leaf.hash()); + data.extend_from_slice(&leaf_hash); data.extend_from_slice(¶ms.index.to_le_bytes()); let mut account_infos = vec![ctx.accounts.merkle_tree.to_account_info()]; diff --git a/compression/cutils/anchor/programs/cutils/src/bubblegum_types.rs b/compression/cutils/anchor/programs/cutils/src/bubblegum_types.rs new file mode 100644 index 000000000..b51e444bc --- /dev/null +++ b/compression/cutils/anchor/programs/cutils/src/bubblegum_types.rs @@ -0,0 +1,113 @@ +/// Re-implementation of mpl-bubblegum types using borsh 1.x and Anchor 1.0's Pubkey. +/// +/// mpl-bubblegum 2.1.1 depends on solana-program 2.x which is incompatible with +/// Anchor 1.0's solana 3.x types. These types are borsh-compatible reproductions +/// that produce identical binary serialization. +use anchor_lang::prelude::*; +use borsh::BorshSerialize; + +/// Mirrors mpl_bubblegum::types::Creator +#[derive(BorshSerialize, Clone, Debug)] +pub struct Creator { + pub address: Pubkey, + pub verified: bool, + pub share: u8, +} + +/// Mirrors mpl_bubblegum::types::Collection +#[derive(BorshSerialize, Clone, Debug)] +pub struct Collection { + pub verified: bool, + pub key: Pubkey, +} + +/// Mirrors mpl_bubblegum::types::TokenProgramVersion +#[derive(BorshSerialize, Clone, Debug)] +pub enum TokenProgramVersion { + Original, + Token2022, +} + +/// Mirrors mpl_bubblegum::types::TokenStandard +#[derive(BorshSerialize, Clone, Debug)] +pub enum TokenStandard { + NonFungible, + FungibleAsset, + Fungible, + NonFungibleEdition, +} + +/// Mirrors mpl_bubblegum::types::UseMethod +#[derive(BorshSerialize, Clone, Debug)] +pub enum UseMethod { + Burn, + Multiple, + Single, +} + +/// Mirrors mpl_bubblegum::types::Uses +#[derive(BorshSerialize, Clone, Debug)] +pub struct Uses { + pub use_method: UseMethod, + pub remaining: u64, + pub total: u64, +} + +/// Mirrors mpl_bubblegum::types::MetadataArgs +#[derive(BorshSerialize, Clone, Debug)] +pub struct MetadataArgs { + pub name: String, + pub symbol: String, + pub uri: String, + pub seller_fee_basis_points: u16, + pub primary_sale_happened: bool, + pub is_mutable: bool, + pub edition_nonce: Option, + pub token_standard: Option, + pub collection: Option, + pub uses: Option, + pub token_program_version: TokenProgramVersion, + pub creators: Vec, +} + +/// MintToCollectionV1 instruction discriminator from mpl-bubblegum +pub const MINT_TO_COLLECTION_V1_DISCRIMINATOR: [u8; 8] = [153, 18, 178, 47, 197, 158, 86, 15]; + +/// MintToCollectionV1 instruction args (wraps MetadataArgs) +#[derive(BorshSerialize)] +pub struct MintToCollectionV1InstructionArgs { + pub metadata: MetadataArgs, +} + +/// Compute the leaf hash for a V1 LeafSchema, matching mpl_bubblegum::types::LeafSchema::hash(). +/// Uses keccak256 over the version byte and all fields. +pub fn leaf_schema_v1_hash( + id: &Pubkey, + owner: &Pubkey, + delegate: &Pubkey, + nonce: u64, + data_hash: &[u8; 32], + creator_hash: &[u8; 32], +) -> [u8; 32] { + use sha3::{Digest, Keccak256}; + let mut hasher = Keccak256::new(); + hasher.update([1u8]); // Version::V1 = 1 + hasher.update(id.as_ref()); + hasher.update(owner.as_ref()); + hasher.update(delegate.as_ref()); + hasher.update(nonce.to_le_bytes()); + hasher.update(data_hash); + hasher.update(creator_hash); + hasher.finalize().into() +} + +/// Compute the asset id from tree and nonce, matching mpl_bubblegum::utils::get_asset_id(). +pub fn get_asset_id(tree: &Pubkey, nonce: u64) -> Pubkey { + // mpl-bubblegum program ID + let bubblegum_id = Pubkey::new_from_array([ + 0x98, 0x8b, 0x80, 0xeb, 0x79, 0x35, 0x28, 0x69, 0xb2, 0x24, 0x74, 0x5f, 0x59, 0xdd, + 0xbf, 0x8a, 0x26, 0x58, 0xca, 0x13, 0xdc, 0x68, 0x81, 0x21, 0x26, 0x35, 0x1c, 0xae, + 0x07, 0xc1, 0xa5, 0xa5, + ]); + Pubkey::find_program_address(&[b"asset", tree.as_ref(), &nonce.to_le_bytes()], &bubblegum_id).0 +} diff --git a/compression/cutils/anchor/programs/cutils/src/lib.rs b/compression/cutils/anchor/programs/cutils/src/lib.rs index a2cf0c61d..abe1c46fe 100644 --- a/compression/cutils/anchor/programs/cutils/src/lib.rs +++ b/compression/cutils/anchor/programs/cutils/src/lib.rs @@ -1,17 +1,33 @@ pub mod actions; pub use actions::*; +pub mod bubblegum_types; + pub mod state; pub use state::*; use anchor_lang::prelude::*; +/// SPL Account Compression program ID (cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK) +const SPL_ACCOUNT_COMPRESSION_ID: Pubkey = Pubkey::new_from_array([ + 0x09, 0x2a, 0x13, 0xee, 0x95, 0xc4, 0x1c, 0xba, 0x08, 0xa6, 0x7f, 0x5a, 0xc6, 0x7e, 0x8d, + 0xf7, 0xe1, 0xda, 0x11, 0x62, 0x5e, 0x1d, 0x64, 0x13, 0x7f, 0x8f, 0x4f, 0x23, 0x83, 0x03, + 0x7f, 0x14, +]); + +/// mpl-bubblegum program ID (BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY) +const MPL_BUBBLEGUM_ID: Pubkey = Pubkey::new_from_array([ + 0x98, 0x8b, 0x80, 0xeb, 0x79, 0x35, 0x28, 0x69, 0xb2, 0x24, 0x74, 0x5f, 0x59, 0xdd, 0xbf, + 0x8a, 0x26, 0x58, 0xca, 0x13, 0xdc, 0x68, 0x81, 0x21, 0x26, 0x35, 0x1c, 0xae, 0x07, 0xc1, + 0xa5, 0xa5, +]); + #[derive(Clone)] pub struct SPLCompression; impl anchor_lang::Id for SPLCompression { fn id() -> Pubkey { - spl_account_compression::id() + SPL_ACCOUNT_COMPRESSION_ID } } @@ -23,7 +39,7 @@ pub mod cutils { #[access_control(ctx.accounts.validate(&ctx, ¶ms))] pub fn mint<'info>( - ctx: Context<'_, '_, '_, 'info, Mint<'info>>, + ctx: Context<'info, Mint<'info>>, params: MintParams, ) -> Result<()> { Mint::actuate(ctx, params) @@ -31,7 +47,7 @@ pub mod cutils { #[access_control(ctx.accounts.validate(&ctx, ¶ms))] pub fn verify<'info>( - ctx: Context<'_, '_, '_, 'info, Verify<'info>>, + ctx: Context<'info, Verify<'info>>, params: VerifyParams, ) -> Result<()> { Verify::actuate(ctx, ¶ms) diff --git a/compression/cutils/anchor/tests/tests.ts b/compression/cutils/anchor/tests/tests.ts index 2594198ce..ca62754f9 100644 --- a/compression/cutils/anchor/tests/tests.ts +++ b/compression/cutils/anchor/tests/tests.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { PROGRAM_ID as BUBBLEGUM_PROGRAM_ID } from '@metaplex-foundation/mpl-bubblegum/dist/src/generated'; import type { Cutils } from '../target/types/cutils'; import { loadOrGenerateKeypair, loadPublicKeysFromFile } from './utils/helpers'; diff --git a/oracles/pyth/anchor/Anchor.toml b/oracles/pyth/anchor/Anchor.toml index 0e44326bc..aaead0ef0 100644 --- a/oracles/pyth/anchor/Anchor.toml +++ b/oracles/pyth/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] pythexample = "GUkjQmrLPFXXNK1bFLKt8XQi6g3TjxcHVspbjDoHvMG2" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/oracles/pyth/anchor/programs/pythexample/Cargo.toml b/oracles/pyth/anchor/programs/pythexample/Cargo.toml index b25dc97de..54cb09608 100644 --- a/oracles/pyth/anchor/programs/pythexample/Cargo.toml +++ b/oracles/pyth/anchor/programs/pythexample/Cargo.toml @@ -21,7 +21,8 @@ custom-panic = [] [dependencies] -anchor-lang = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" pyth-solana-receiver-sdk = "1.1.0" [lints.rust] diff --git a/package.json b/package.json index 9f2e31a5b..3ed3f9c7f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "typescript": "^5.2.2" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4", "anchor-bankrun": "^0.4.0", "chai": "^5.1.1", diff --git a/tokens/create-token/anchor/Anchor.toml b/tokens/create-token/anchor/Anchor.toml index b7e655f00..5ea5f5207 100644 --- a/tokens/create-token/anchor/Anchor.toml +++ b/tokens/create-token/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] create_token = "GwvQ53QTu1xz3XXYfG5m5jEqwhMBvVBudPS8TUuFYnhT" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/create-token/anchor/package.json b/tokens/create-token/anchor/package.json index 08f7c13cd..9dec90fba 100644 --- a/tokens/create-token/anchor/package.json +++ b/tokens/create-token/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1" + "@anchor-lang/core": "1.0.0-rc.5" }, "scripts": { "postinstall": "zx prepare.mjs" @@ -15,7 +15,7 @@ "mocha": "^9.0.3", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5", + "typescript": "^5.3.3", "zx": "^8.1.4" } } diff --git a/tokens/create-token/anchor/programs/create-token/Cargo.toml b/tokens/create-token/anchor/programs/create-token/Cargo.toml index bb01ec06e..88ec78c89 100644 --- a/tokens/create-token/anchor/programs/create-token/Cargo.toml +++ b/tokens/create-token/anchor/programs/create-token/Cargo.toml @@ -21,8 +21,9 @@ custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = { version = "0.32.1", features = ["metadata"] } +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/create-token/anchor/programs/create-token/src/lib.rs b/tokens/create-token/anchor/programs/create-token/src/lib.rs index 0c347a3a5..599dfd9d6 100644 --- a/tokens/create-token/anchor/programs/create-token/src/lib.rs +++ b/tokens/create-token/anchor/programs/create-token/src/lib.rs @@ -32,7 +32,7 @@ pub mod create_token { // Invoking the create_metadata_account_v3 instruction on the token metadata program create_metadata_accounts_v3( CpiContext::new( - ctx.accounts.token_metadata_program.to_account_info(), + ctx.accounts.token_metadata_program.key(), CreateMetadataAccountsV3 { metadata: ctx.accounts.metadata_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/create-token/anchor/tests/bankrun.test.ts b/tokens/create-token/anchor/tests/bankrun.test.ts index bbf7ab24d..e2ce027f3 100644 --- a/tokens/create-token/anchor/tests/bankrun.test.ts +++ b/tokens/create-token/anchor/tests/bankrun.test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { Keypair, PublicKey } from "@solana/web3.js"; import { BankrunProvider } from "anchor-bankrun"; import { startAnchor } from "solana-bankrun"; diff --git a/tokens/create-token/anchor/tests/test.ts b/tokens/create-token/anchor/tests/test.ts index 4a4333dd3..4f673627b 100644 --- a/tokens/create-token/anchor/tests/test.ts +++ b/tokens/create-token/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { Keypair } from '@solana/web3.js'; import type { CreateToken } from '../target/types/create_token'; diff --git a/tokens/escrow/anchor/Anchor.toml b/tokens/escrow/anchor/Anchor.toml index 7a60c0311..95d4c4342 100644 --- a/tokens/escrow/anchor/Anchor.toml +++ b/tokens/escrow/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] escrow = "qbuMdeYxYJXBjU6C6qFKjZKjXmrU83eDQomHdrch826" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/escrow/anchor/migrations/deploy.ts b/tokens/escrow/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/escrow/anchor/migrations/deploy.ts +++ b/tokens/escrow/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/escrow/anchor/package.json b/tokens/escrow/anchor/package.json index 104dd8f87..06fd044a4 100644 --- a/tokens/escrow/anchor/package.json +++ b/tokens/escrow/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana-developers/helpers": "^2.8.1", "@solana/spl-token": "^0.4.14", "@solana/web3.js": "^1.98.4" diff --git a/tokens/escrow/anchor/programs/escrow/Cargo.toml b/tokens/escrow/anchor/programs/escrow/Cargo.toml index c11324d71..5cab9dff0 100644 --- a/tokens/escrow/anchor/programs/escrow/Cargo.toml +++ b/tokens/escrow/anchor/programs/escrow/Cargo.toml @@ -20,8 +20,9 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"]} -anchor-spl = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"]} +anchor-spl = "1.0.0-rc.5" [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/escrow/anchor/programs/escrow/src/instructions/shared.rs b/tokens/escrow/anchor/programs/escrow/src/instructions/shared.rs index 3152521d9..dcac21164 100644 --- a/tokens/escrow/anchor/programs/escrow/src/instructions/shared.rs +++ b/tokens/escrow/anchor/programs/escrow/src/instructions/shared.rs @@ -19,7 +19,7 @@ pub fn transfer_tokens<'info>( authority: authority.to_account_info(), }; - let cpi_context = CpiContext::new(token_program.to_account_info(), transfer_accounts); + let cpi_context = CpiContext::new(token_program.key(), transfer_accounts); transfer_checked(cpi_context, *amount, mint.decimals) } diff --git a/tokens/escrow/anchor/programs/escrow/src/instructions/take_offer.rs b/tokens/escrow/anchor/programs/escrow/src/instructions/take_offer.rs index a3fecb7f0..86296b7e3 100644 --- a/tokens/escrow/anchor/programs/escrow/src/instructions/take_offer.rs +++ b/tokens/escrow/anchor/programs/escrow/src/instructions/take_offer.rs @@ -102,7 +102,7 @@ pub fn withdraw_and_close_vault(ctx: Context) -> Result<()> { }; let cpi_context = CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), accounts, &signer_seeds, ); @@ -120,7 +120,7 @@ pub fn withdraw_and_close_vault(ctx: Context) -> Result<()> { }; let cpi_context = CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), accounts, &signer_seeds, ); diff --git a/tokens/escrow/anchor/tests/bankrun.test.ts b/tokens/escrow/anchor/tests/bankrun.test.ts index 6265253d8..d5cfa0768 100644 --- a/tokens/escrow/anchor/tests/bankrun.test.ts +++ b/tokens/escrow/anchor/tests/bankrun.test.ts @@ -1,5 +1,5 @@ import { randomBytes } from 'node:crypto'; -import anchor from '@coral-xyz/anchor'; +import anchor from '@anchor-lang/core'; const BN = anchor.BN; import { createAssociatedTokenAccountIdempotentInstruction, diff --git a/tokens/escrow/anchor/tests/escrow.test.ts b/tokens/escrow/anchor/tests/escrow.test.ts index aa252e400..db5f9d96a 100644 --- a/tokens/escrow/anchor/tests/escrow.test.ts +++ b/tokens/escrow/anchor/tests/escrow.test.ts @@ -1,5 +1,5 @@ import { randomBytes } from 'node:crypto'; -import anchor from '@coral-xyz/anchor'; +import anchor from '@anchor-lang/core'; const BN = anchor.BN; import { getAssociatedTokenAddressSync, diff --git a/tokens/external-delegate-token-master/anchor/Anchor.toml b/tokens/external-delegate-token-master/anchor/Anchor.toml index 924d0ae8a..59bdd22d4 100644 --- a/tokens/external-delegate-token-master/anchor/Anchor.toml +++ b/tokens/external-delegate-token-master/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] external_delegate_token_master = "FYPkt5VWMvtyWZDMGCwoKFkE3wXTzphicTpnNGuHWVbD" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/external-delegate-token-master/anchor/package.json b/tokens/external-delegate-token-master/anchor/package.json index 39317e279..7b479380b 100644 --- a/tokens/external-delegate-token-master/anchor/package.json +++ b/tokens/external-delegate-token-master/anchor/package.json @@ -11,7 +11,7 @@ "build": "anchor build" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.3.9", "@solana/web3.js": "^1.98.4", "ethers": "^5.7.2" @@ -30,6 +30,6 @@ "prettier": "^2.6.2", "solana-bankrun": "^0.2.0", "ts-jest": "^29.1.1", - "typescript": "^4.9.5" + "typescript": "^5.3.3" } } diff --git a/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/Cargo.toml b/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/Cargo.toml index cde7c1006..45a99dc2e 100644 --- a/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/Cargo.toml +++ b/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/Cargo.toml @@ -20,8 +20,9 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1", features = ["metadata"] } +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } sha3 = "0.10.8" solana-secp256k1-recover = "2.0.0" diff --git a/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/src/lib.rs b/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/src/lib.rs index 128cf70e0..425bf8aee 100644 --- a/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/src/lib.rs +++ b/tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master/src/lib.rs @@ -47,7 +47,7 @@ pub mod external_delegate_token_master { token::transfer( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), transfer_instruction, &[&[user_account.key().as_ref(), &[ctx.bumps.user_pda]]], ), @@ -67,7 +67,7 @@ pub mod external_delegate_token_master { token::transfer( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), transfer_instruction, &[&[ ctx.accounts.user_account.key().as_ref(), diff --git a/tokens/nft-minter/anchor/Anchor.toml b/tokens/nft-minter/anchor/Anchor.toml index 5fbadd9a0..8335d19a6 100644 --- a/tokens/nft-minter/anchor/Anchor.toml +++ b/tokens/nft-minter/anchor/Anchor.toml @@ -9,8 +9,7 @@ seeds = true [programs.localnet] nft_minter = "52quezNUzc1Ej6Jh6L4bvtxPW8j6TEFHuLVAWiFvdnsc" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/nft-minter/anchor/package.json b/tokens/nft-minter/anchor/package.json index 4491aa390..3b548a433 100644 --- a/tokens/nft-minter/anchor/package.json +++ b/tokens/nft-minter/anchor/package.json @@ -4,7 +4,7 @@ "postinstall": "zx prepare.mjs" }, "devDependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.3.11", "@types/bn.js": "^5.1.0", "@types/chai": "^4.3.0", @@ -14,7 +14,7 @@ "mocha": "^9.0.3", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5", + "typescript": "^5.3.3", "zx": "^8.1.4" } } diff --git a/tokens/nft-minter/anchor/programs/nft-minter/Cargo.toml b/tokens/nft-minter/anchor/programs/nft-minter/Cargo.toml index 43fe98c7f..1f2a9e5b6 100644 --- a/tokens/nft-minter/anchor/programs/nft-minter/Cargo.toml +++ b/tokens/nft-minter/anchor/programs/nft-minter/Cargo.toml @@ -20,8 +20,9 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1", features = ["metadata"] } +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/nft-minter/anchor/programs/nft-minter/src/lib.rs b/tokens/nft-minter/anchor/programs/nft-minter/src/lib.rs index 05d9034eb..3f5af3893 100644 --- a/tokens/nft-minter/anchor/programs/nft-minter/src/lib.rs +++ b/tokens/nft-minter/anchor/programs/nft-minter/src/lib.rs @@ -28,7 +28,7 @@ pub mod nft_minter { // Invoking the mint_to instruction on the token program mint_to( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MintTo { mint: ctx.accounts.mint_account.to_account_info(), to: ctx.accounts.associated_token_account.to_account_info(), @@ -43,7 +43,7 @@ pub mod nft_minter { // Invoking the create_metadata_account_v3 instruction on the token metadata program create_metadata_accounts_v3( CpiContext::new( - ctx.accounts.token_metadata_program.to_account_info(), + ctx.accounts.token_metadata_program.key(), CreateMetadataAccountsV3 { metadata: ctx.accounts.metadata_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), @@ -73,7 +73,7 @@ pub mod nft_minter { // Invoking the create_master_edition_v3 instruction on the token metadata program create_master_edition_v3( CpiContext::new( - ctx.accounts.token_metadata_program.to_account_info(), + ctx.accounts.token_metadata_program.key(), CreateMasterEditionV3 { edition: ctx.accounts.edition_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/nft-minter/anchor/tests/bankrun.test.ts b/tokens/nft-minter/anchor/tests/bankrun.test.ts index c386e538f..77a9e535a 100644 --- a/tokens/nft-minter/anchor/tests/bankrun.test.ts +++ b/tokens/nft-minter/anchor/tests/bankrun.test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { Keypair, PublicKey } from "@solana/web3.js"; import { BankrunProvider } from "anchor-bankrun"; diff --git a/tokens/nft-minter/anchor/tests/test.ts b/tokens/nft-minter/anchor/tests/test.ts index 527cb94f7..4b0bd3fda 100644 --- a/tokens/nft-minter/anchor/tests/test.ts +++ b/tokens/nft-minter/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { getAssociatedTokenAddressSync } from '@solana/spl-token'; import { Keypair } from '@solana/web3.js'; import type { NftMinter } from '../target/types/nft_minter'; diff --git a/tokens/nft-operations/anchor/Anchor.toml b/tokens/nft-operations/anchor/Anchor.toml index 4f51ebfa3..63d8c9a00 100644 --- a/tokens/nft-operations/anchor/Anchor.toml +++ b/tokens/nft-operations/anchor/Anchor.toml @@ -11,8 +11,7 @@ mint_nft = "3EMcczaGi9ivdLxvvFwRbGYeEUEHpGwabXegARw4jLxa" [programs.devnet] mint_nft = "3EMcczaGi9ivdLxvvFwRbGYeEUEHpGwabXegARw4jLxa" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/nft-operations/anchor/Cargo.lock b/tokens/nft-operations/anchor/Cargo.lock index a6505a1d3..239b185ee 100644 --- a/tokens/nft-operations/anchor/Cargo.lock +++ b/tokens/nft-operations/anchor/Cargo.lock @@ -61,11 +61,10 @@ dependencies = [ [[package]] name = "anchor-attribute-access-control" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a883ca44ef14b2113615fc6d3a85fefc68b5002034e88db37f7f1f802f88aa9" +checksum = "f3db7f5f8a6b16fa2b6e1b0222e656249c3abedf052e3943babf248929571204" dependencies = [ - "anchor-syn", "proc-macro2", "quote", "syn 1.0.109", @@ -73,12 +72,11 @@ dependencies = [ [[package]] name = "anchor-attribute-account" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c4d97763b29030412b4b80715076377edc9cc63bc3c9e667297778384b9fd2" +checksum = "0a12661acaba9866a5f2d8d8d46a1eed8b484f41dc9f94f808c3b07d35726816" dependencies = [ "anchor-syn", - "bs58", "proc-macro2", "quote", "syn 1.0.109", @@ -86,9 +84,9 @@ dependencies = [ [[package]] name = "anchor-attribute-constant" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae3328bbf9bbd517a51621b1ba6cbec06cbbc25e8cfc7403bddf69bcf088206" +checksum = "6dff08bc0187aafc559da8f63b5adeab0bcdf97128765c72dd9a4861f70627fc" dependencies = [ "anchor-syn", "quote", @@ -97,9 +95,9 @@ dependencies = [ [[package]] name = "anchor-attribute-error" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2398a6d9e16df1ee9d7d37d970a8246756de898c8dd16ef6bdbe4da20cf39a" +checksum = "c2af8ce12fb8cf782a3e127d376698a4548a518e38b4686f9c439adce4730b48" dependencies = [ "anchor-syn", "quote", @@ -108,9 +106,9 @@ dependencies = [ [[package]] name = "anchor-attribute-event" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12758f4ec2f0e98d4d56916c6fe95cb23d74b8723dd902c762c5ef46ebe7b65" +checksum = "338be5df076369b99585264aaa46c66229ead67568d61bd38c3ab0fa7a15e554" dependencies = [ "anchor-syn", "proc-macro2", @@ -120,26 +118,24 @@ dependencies = [ [[package]] name = "anchor-attribute-program" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7193b5af2649813584aae6e3569c46fd59616a96af2083c556b13136c3830f" +checksum = "e5c4ec70cef4ef7e2d87b4e9c550f727a43d691d3d7f3e4d6b2e3bd530ae098d" dependencies = [ "anchor-lang-idl", "anchor-syn", "anyhow", - "bs58", "heck", "proc-macro2", "quote", - "serde_json", "syn 1.0.109", ] [[package]] name = "anchor-derive-accounts" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d332d1a13c0fca1a446de140b656e66110a5e8406977dcb6a41e5d6f323760b0" +checksum = "f610cb50e10e4c404cc774f20a4eb602b904f68ea04590f8b1eb22a1e28b33e5" dependencies = [ "anchor-syn", "quote", @@ -148,12 +144,12 @@ dependencies = [ [[package]] name = "anchor-derive-serde" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8656e4af182edaeae665fa2d2d7ee81148518b5bd0be9a67f2a381bb17da7d46" +checksum = "be9ead49a9689493f8857a61dd1abf1d70eeeeb0683f8c1e09b015ab5bdd382d" dependencies = [ "anchor-syn", - "borsh-derive-internal", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", "syn 1.0.109", @@ -161,9 +157,9 @@ dependencies = [ [[package]] name = "anchor-derive-space" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcff2a083560cd79817db07d89a4de39a2c4b2eaa00c1742cf0df49b25ff2bed" +checksum = "ea4d1372743444967347b60f9311d2ee54a630152fd1d6d805adebd7fcd72056" dependencies = [ "proc-macro2", "quote", @@ -172,9 +168,9 @@ dependencies = [ [[package]] name = "anchor-lang" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67d85d5376578f12d840c29ff323190f6eecd65b00a0b5f2b2f232751d049cc" +checksum = "254d0cb160ea5c4c6a8c2f847bbd0f384fef733ebc36ef8426ae95f1bfda5757" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -188,25 +184,27 @@ dependencies = [ "anchor-lang-idl", "base64 0.21.7", "bincode", - "borsh 0.10.3", + "borsh 1.5.7", "bytemuck", + "const-crypto", "solana-account-info", "solana-clock", "solana-cpi", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-feature-gate-interface", "solana-instruction", "solana-instructions-sysvar", "solana-invoke", - "solana-loader-v3-interface 3.0.0", + "solana-loader-v3-interface", "solana-msg", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", + "solana-stake-interface", "solana-system-interface", "solana-sysvar", "solana-sysvar-id", @@ -225,7 +223,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -240,25 +238,26 @@ dependencies = [ [[package]] name = "anchor-spl" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3397ab3fc5b198bbfe55d827ff58bd69f2a8d3f9f71c3732c23c2093fec4d3ef" +checksum = "b3f1da81d6a7486339833833db9285f3771c1c368db418d481b5584a901cd675" dependencies = [ "anchor-lang", "mpl-token-metadata", - "spl-associated-token-account", + "solana-sysvar", + "spl-associated-token-account-interface", "spl-pod", - "spl-token", - "spl-token-2022", + "spl-token-2022-interface", "spl-token-group-interface", + "spl-token-interface", "spl-token-metadata-interface", ] [[package]] name = "anchor-syn" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93b69aa7d099b59378433f6d7e20e1008fc10c69e48b220270e5b3f2ec4c8be" +checksum = "c9a855d34b1b0488f37ccc759c8bd4a696cd3a7bba8cb0734c2a965109f707da" dependencies = [ "anyhow", "bs58", @@ -267,8 +266,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "serde_json", - "sha2 0.10.8", + "sha2", "syn 1.0.109", "thiserror 1.0.69", ] @@ -298,10 +296,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] -name = "base64" -version = "0.12.3" +name = "base16ct" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" @@ -315,6 +313,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + [[package]] name = "bincode" version = "1.3.3" @@ -341,16 +345,6 @@ dependencies = [ "cc", "cfg-if", "constant_time_eq", - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", ] [[package]] @@ -402,10 +396,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -472,7 +466,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -524,24 +518,20 @@ dependencies = [ ] [[package]] -name = "console_error_panic_hook" -version = "0.1.7" +name = "const-crypto" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" dependencies = [ - "cfg-if", - "wasm-bindgen", + "keccak-const", + "sha2-const-stable", ] [[package]] -name = "console_log" -version = "0.2.2" +name = "const-oid" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" -dependencies = [ - "log", - "web-sys", -] +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "constant_time_eq" @@ -559,10 +549,16 @@ dependencies = [ ] [[package]] -name = "crunchy" -version = "0.2.2" +name = "crypto-bigint" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] [[package]] name = "crypto-common" @@ -571,7 +567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", "typenum", ] @@ -593,9 +589,9 @@ dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", - "digest 0.10.7", + "digest", "fiat-crypto", - "rand_core 0.6.4", + "rand_core", "rustc_version", "serde", "subtle", @@ -610,41 +606,111 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] -name = "derivation-path" -version = "0.2.0" +name = "darling" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] [[package]] -name = "digest" -version = "0.9.0" +name = "darling_core" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ - "generic-array", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", ] +[[package]] +name = "derivation-path" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" + [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", + "const-oid", "crypto-common", "subtle", ] +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + [[package]] name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -657,6 +723,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core", + "subtle", +] + [[package]] name = "fiat-crypto" version = "0.2.9" @@ -671,18 +747,18 @@ checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "five8" -version = "0.2.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" dependencies = [ "five8_core", ] [[package]] name = "five8_const" -version = "0.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" dependencies = [ "five8_core", ] @@ -707,30 +783,31 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] name = "getrandom" -version = "0.1.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi", + "wasm-bindgen", ] [[package]] -name = "getrandom" -version = "0.2.15" +name = "group" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", + "ff", + "rand_core", + "subtle", ] [[package]] @@ -744,9 +821,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "heck" @@ -763,17 +840,23 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "indexmap" -version = "2.2.6" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.16.1", ] [[package]] @@ -811,71 +894,54 @@ dependencies = [ ] [[package]] -name = "keccak" -version = "0.1.5" +name = "k256" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ - "cpufeatures", + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", ] [[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.155" +name = "kaigan" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "4f25ded719a2354f6b1a51d0c0741c25bc7afe038617664eb37f6418439eb084" +dependencies = [ + "borsh 0.10.3", +] [[package]] -name = "libsecp256k1" -version = "0.6.0" +name = "keccak" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.7.3", - "serde", - "sha2 0.9.9", + "cpufeatures", ] [[package]] -name = "libsecp256k1-core" -version = "0.2.2" +name = "keccak-const" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" [[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.2.1" +name = "lazy_static" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core", -] +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" +name = "libc" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core", -] +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "lock_api" @@ -916,7 +982,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.6.4", + "rand_core", "zeroize", ] @@ -930,14 +996,16 @@ dependencies = [ [[package]] name = "mpl-token-metadata" -version = "5.1.1" +version = "5.1.2-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046f0779684ec348e2759661361c8798d79021707b1392cb49f3b5eb911340ff" +checksum = "9824d84a8e23b634256591ce2f05b3180f7be5fcd193d939c43764c804aac5ef" dependencies = [ - "borsh 0.10.3", + "borsh 1.5.7", + "kaigan", "num-derive 0.3.3", "num-traits", "solana-program", + "solana-program-error", "thiserror 1.0.69", ] @@ -970,7 +1038,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -993,9 +1061,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -1003,14 +1071,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1048,13 +1116,19 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "pastey" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b867cad97c0791bbd3aaa6472142568c6c9e8f71937e98379f584cfb0cf35bec" + [[package]] name = "pbkdf2" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -1063,6 +1137,16 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "polyval" version = "0.6.2" @@ -1092,18 +1176,18 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.21.1", + "toml_edit 0.25.8+spec-1.1.0", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -1119,26 +1203,13 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.36" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -1146,18 +1217,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", ] [[package]] @@ -1167,16 +1228,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -1185,16 +1237,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "getrandom", ] [[package]] @@ -1235,6 +1278,16 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + [[package]] name = "rustc_version" version = "0.4.0" @@ -1262,6 +1315,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + [[package]] name = "semver" version = "1.0.23" @@ -1304,7 +1371,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1331,27 +1398,20 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.9" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "block-buffer 0.9.0", "cfg-if", "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "digest", ] [[package]] -name = "sha2" -version = "0.10.8" +name = "sha2-const-stable" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" [[package]] name = "sha3" @@ -1359,7 +1419,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.7", + "digest", "keccak", ] @@ -1369,6 +1429,16 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + [[package]] name = "smallvec" version = "1.13.2" @@ -1376,106 +1446,108 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] -name = "solana-account" -version = "2.2.1" +name = "solana-account-info" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" dependencies = [ - "solana-account-info", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", + "bincode", + "serde_core", + "solana-address 2.4.0", + "solana-program-error", + "solana-program-memory", ] [[package]] -name = "solana-account-info" -version = "2.3.0" +name = "solana-address" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" dependencies = [ - "bincode", - "serde", - "solana-program-error", - "solana-program-memory", - "solana-pubkey", + "solana-address 2.4.0", ] [[package]] -name = "solana-address-lookup-table-interface" -version = "2.2.2" +name = "solana-address" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +checksum = "7f67735365edc7fb19ed74ec950597107c8ee9cbfebac57b8868b3e78fb6df16" dependencies = [ - "bincode", + "borsh 1.5.7", "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8", + "five8_const", "serde", "serde_derive", + "sha2-const-stable", + "solana-atomic-u64", + "solana-define-syscall 5.0.0", + "solana-nullable", + "solana-program-error", + "solana-sanitize", + "solana-sha256-hasher", + "wincode", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e8df0b083c10ce32490410f3795016b1b5d9b4d094658c0a5e496753645b7cd" +dependencies = [ "solana-clock", - "solana-instruction", - "solana-pubkey", + "solana-pubkey 4.1.0", "solana-sdk-ids", "solana-slot-hashes", ] [[package]] name = "solana-atomic-u64" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" dependencies = [ "parking_lot", ] [[package]] name = "solana-big-mod-exp" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +checksum = "30c80fb6d791b3925d5ec4bf23a7c169ef5090c013059ec3ed7d0b2c04efa085" dependencies = [ "num-bigint", "num-traits", - "solana-define-syscall", + "solana-define-syscall 3.0.0", ] [[package]] -name = "solana-bincode" -version = "2.2.1" +name = "solana-blake3-hasher" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" -dependencies = [ - "bincode", - "serde", - "solana-instruction", -] - -[[package]] -name = "solana-blake3-hasher" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +checksum = "7116e1d942a2432ca3f514625104757ab8a56233787e95144c93950029e31176" dependencies = [ "blake3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "solana-define-syscall 4.0.1", + "solana-hash 4.2.0", ] [[package]] name = "solana-borsh" -version = "2.2.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" dependencies = [ - "borsh 0.10.3", "borsh 1.5.7", ] [[package]] name = "solana-clock" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb482ab70fced82ad3d7d3d87be33d466a3498eb8aa856434ff3c0dfc2e2e31" +checksum = "95cf11109c3b6115cc510f1e31f06fdd52f504271bc24ef5f1249fbbcae5f9f3" dependencies = [ "serde", "serde_derive", @@ -1486,52 +1558,55 @@ dependencies = [ [[package]] name = "solana-cpi" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" dependencies = [ "solana-account-info", - "solana-define-syscall", + "solana-define-syscall 4.0.1", "solana-instruction", "solana-program-error", - "solana-pubkey", + "solana-pubkey 4.1.0", "solana-stable-layout", ] [[package]] name = "solana-curve25519" -version = "2.3.13" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae4261b9a8613d10e77ac831a8fa60b6fa52b9b103df46d641deff9f9812a23" +checksum = "9a9eaec815ed773919bc7269c027933fc2472d7b9876f68ea6f1281c7daa5278" dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] -name = "solana-decode-error" -version = "2.3.0" +name = "solana-define-syscall" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee" + +[[package]] +name = "solana-define-syscall" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" -dependencies = [ - "num-traits", -] +checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" [[package]] name = "solana-define-syscall" -version = "2.3.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" +checksum = "03aacdd7a61e2109887a7a7f046caebafce97ddf1150f33722eeac04f9039c73" [[package]] name = "solana-derivation-path" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "939756d798b25c5ec3cca10e06212bdca3b1443cb9bb740a38124f58b258737b" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" dependencies = [ "derivation-path", "qstring", @@ -1540,13 +1615,13 @@ dependencies = [ [[package]] name = "solana-epoch-rewards" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +checksum = "f5e7b0ba210593ba8ddd39d6d234d81795d1671cebf3026baa10d5dc23ac42f0" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-hash 4.2.0", "solana-sdk-ids", "solana-sdk-macro", "solana-sysvar-id", @@ -1554,9 +1629,9 @@ dependencies = [ [[package]] name = "solana-epoch-schedule" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +checksum = "6e5481e72cc4d52c169db73e4c0cd16de8bc943078aac587ec4817a75cc6388f" dependencies = [ "serde", "serde_derive", @@ -1565,51 +1640,53 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.0.0", + "solana-pubkey 4.1.0", +] + [[package]] name = "solana-example-mocks" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +checksum = "978855d164845c1b0235d4b4d101cadc55373fffaf0b5b6cfa2194d25b2ed658" dependencies = [ "serde", "serde_derive", "solana-address-lookup-table-interface", "solana-clock", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", "solana-keccak-hasher", "solana-message", "solana-nonce", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-system-interface", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "solana-feature-gate-interface" -version = "2.2.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" dependencies = [ - "bincode", - "serde", - "serde_derive", - "solana-account", - "solana-account-info", - "solana-instruction", "solana-program-error", - "solana-pubkey", - "solana-rent", + "solana-pubkey 4.1.0", "solana-sdk-ids", - "solana-system-interface", ] [[package]] name = "solana-fee-calculator" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +checksum = "4b2a5675b2cf8d407c672dc1776492b1f382337720ddf566645ae43237a3d8c3" dependencies = [ "log", "serde", @@ -1618,51 +1695,67 @@ dependencies = [ [[package]] name = "solana-hash" -version = "2.3.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +checksum = "337c246447142f660f778cf6cb582beba8e28deb05b3b24bfb9ffd7c562e5f41" +dependencies = [ + "solana-hash 4.2.0", +] + +[[package]] +name = "solana-hash" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8064ea1d591ec791be95245058ca40f4f5345d390c200069d0f79bbf55bfae55" dependencies = [ "borsh 1.5.7", "bytemuck", "bytemuck_derive", "five8", - "js-sys", "serde", "serde_derive", "solana-atomic-u64", "solana-sanitize", - "wasm-bindgen", + "wincode", ] [[package]] name = "solana-instruction" -version = "2.3.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47298e2ce82876b64f71e9d13a46bc4b9056194e7f9937ad3084385befa50885" +checksum = "a97881335fc698deb46c6571945969aae6d93a14e2fff792a368b4fac872f116" dependencies = [ "bincode", "borsh 1.5.7", - "getrandom 0.2.15", - "js-sys", - "num-traits", "serde", "serde_derive", - "solana-define-syscall", - "solana-pubkey", - "wasm-bindgen", + "solana-define-syscall 5.0.0", + "solana-instruction-error", + "solana-pubkey 4.1.0", +] + +[[package]] +name = "solana-instruction-error" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3d048edaaeef5a3dc8c01853e585539a74417e4c2d43a9e2c161270045b838" +dependencies = [ + "num-traits", + "solana-program-error", ] [[package]] name = "solana-instructions-sysvar" -version = "2.2.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +checksum = "7ddf67876c541aa1e21ee1acae35c95c6fbc61119814bfef70579317a5e26955" dependencies = [ "bitflags", "solana-account-info", "solana-instruction", + "solana-instruction-error", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sanitize", "solana-sdk-ids", "solana-serialize-utils", @@ -1671,12 +1764,12 @@ dependencies = [ [[package]] name = "solana-invoke" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f5693c6de226b3626658377168b0184e94e8292ff16e3d31d4766e65627565" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" dependencies = [ "solana-account-info", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-instruction", "solana-program-entrypoint", "solana-stable-layout", @@ -1684,21 +1777,20 @@ dependencies = [ [[package]] name = "solana-keccak-hasher" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +checksum = "ed1c0d16d6fdeba12291a1f068cdf0d479d9bff1141bf44afd7aa9d485f65ef8" dependencies = [ "sha3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", + "solana-define-syscall 4.0.1", + "solana-hash 4.2.0", ] [[package]] name = "solana-last-restart-slot" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +checksum = "dcda154ec827f5fc1e4da0af3417951b7e9b8157540f81f936c4a8b1156134d0" dependencies = [ "serde", "serde_derive", @@ -1707,180 +1799,110 @@ dependencies = [ "solana-sysvar-id", ] -[[package]] -name = "solana-loader-v2-interface" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", -] - -[[package]] -name = "solana-loader-v3-interface" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4be76cfa9afd84ca2f35ebc09f0da0f0092935ccdac0595d98447f259538c2" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", -] - [[package]] name = "solana-loader-v3-interface" -version = "5.0.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" +checksum = "dee44c9b1328c5c712c68966fb8de07b47f3e7bac006e74ddd1bb053d3e46e5d" dependencies = [ "serde", "serde_bytes", "serde_derive", "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", -] - -[[package]] -name = "solana-loader-v4-interface" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-system-interface", ] [[package]] name = "solana-message" -version = "2.4.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" +checksum = "0448b1fd891c5f46491e5dc7d9986385ba3c852c340db2911dd29faa01d2b08d" dependencies = [ - "bincode", - "blake3", "lazy_static", "serde", "serde_derive", - "solana-bincode", - "solana-hash", + "solana-address 2.4.0", + "solana-hash 4.2.0", "solana-instruction", - "solana-pubkey", "solana-sanitize", "solana-sdk-ids", "solana-short-vec", - "solana-system-interface", "solana-transaction-error", - "wasm-bindgen", ] [[package]] name = "solana-msg" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" dependencies = [ - "solana-define-syscall", + "solana-define-syscall 5.0.0", ] [[package]] name = "solana-native-token" -version = "2.3.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" +checksum = "ae8dd4c280dca9d046139eb5b7a5ac9ad10403fbd64964c7d7571214950d758f" [[package]] name = "solana-nonce" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +checksum = "cbc469152a63284ef959b80c59cda015262a021da55d3b8fe42171d89c4b64f8" dependencies = [ - "serde", - "serde_derive", "solana-fee-calculator", - "solana-hash", - "solana-pubkey", + "solana-hash 4.2.0", + "solana-pubkey 4.1.0", "solana-sha256-hasher", ] [[package]] -name = "solana-program" -version = "2.3.0" +name = "solana-nullable" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +checksum = "a90429a75d69fdcb31952c3dea79f5f3c8157cfe88221e066103c9c237876073" dependencies = [ - "bincode", - "blake3", - "borsh 0.10.3", - "borsh 1.5.7", - "bs58", "bytemuck", - "console_error_panic_hook", - "console_log", - "getrandom 0.2.15", - "lazy_static", - "log", +] + +[[package]] +name = "solana-program" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91b12305dd81045d705f427acd0435a2e46444b65367d7179d7bdcfc3bc5f5eb" +dependencies = [ "memoffset", - "num-bigint", - "num-derive 0.4.2", - "num-traits", - "rand 0.8.5", - "serde", - "serde_bytes", - "serde_derive", "solana-account-info", - "solana-address-lookup-table-interface", - "solana-atomic-u64", "solana-big-mod-exp", - "solana-bincode", "solana-blake3-hasher", "solana-borsh", "solana-clock", "solana-cpi", - "solana-decode-error", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-epoch-rewards", "solana-epoch-schedule", + "solana-epoch-stake", "solana-example-mocks", - "solana-feature-gate-interface", "solana-fee-calculator", - "solana-hash", + "solana-hash 3.1.0", "solana-instruction", + "solana-instruction-error", "solana-instructions-sysvar", "solana-keccak-hasher", "solana-last-restart-slot", - "solana-loader-v2-interface", - "solana-loader-v3-interface 5.0.0", - "solana-loader-v4-interface", - "solana-message", "solana-msg", "solana-native-token", - "solana-nonce", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-rent", - "solana-sanitize", "solana-sdk-ids", - "solana-sdk-macro", "solana-secp256k1-recover", "solana-serde-varint", "solana-serialize-utils", @@ -1889,98 +1911,80 @@ dependencies = [ "solana-slot-hashes", "solana-slot-history", "solana-stable-layout", - "solana-stake-interface", - "solana-system-interface", "solana-sysvar", "solana-sysvar-id", - "solana-vote-interface", - "thiserror 2.0.17", - "wasm-bindgen", ] [[package]] name = "solana-program-entrypoint" -version = "2.3.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" dependencies = [ "solana-account-info", - "solana-msg", + "solana-define-syscall 4.0.1", "solana-program-error", - "solana-pubkey", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-program-error" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" dependencies = [ "borsh 1.5.7", - "num-traits", "serde", "serde_derive", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-pubkey", ] [[package]] name = "solana-program-memory" -version = "2.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" dependencies = [ - "solana-define-syscall", + "solana-define-syscall 4.0.1", ] [[package]] name = "solana-program-option" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" [[package]] name = "solana-program-pack" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" dependencies = [ "solana-program-error", ] [[package]] name = "solana-pubkey" -version = "2.4.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" dependencies = [ - "borsh 0.10.3", - "borsh 1.5.7", - "bytemuck", - "bytemuck_derive", - "curve25519-dalek", - "five8", - "five8_const", - "getrandom 0.2.15", - "js-sys", - "num-traits", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", - "wasm-bindgen", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b06bd918d60111ee1f97de817113e2040ca0cedb740099ee8d646233f6b906c" +dependencies = [ + "solana-address 2.4.0", ] [[package]] name = "solana-rent" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" dependencies = [ "serde", "serde_derive", @@ -1991,113 +1995,107 @@ dependencies = [ [[package]] name = "solana-sanitize" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" [[package]] name = "solana-sdk-ids" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" dependencies = [ - "solana-pubkey", + "solana-address 2.4.0", ] [[package]] name = "solana-sdk-macro" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "solana-secp256k1-recover" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +checksum = "e7c5f18893d62e6c73117dcba48f8f5e3266d90e5ec3d0a0a90f9785adac36c1" dependencies = [ - "libsecp256k1", - "solana-define-syscall", - "thiserror 2.0.17", + "k256", + "solana-define-syscall 5.0.0", + "thiserror 2.0.18", ] -[[package]] -name = "solana-security-txt" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" - [[package]] name = "solana-seed-derivable" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beb82b5adb266c6ea90e5cf3967235644848eac476c5a1f2f9283a143b7c97f" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" dependencies = [ "solana-derivation-path", ] [[package]] name = "solana-seed-phrase" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36187af2324f079f65a675ec22b31c24919cb4ac22c79472e85d819db9bbbc15" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" dependencies = [ "hmac", "pbkdf2", - "sha2 0.10.8", + "sha2", ] [[package]] name = "solana-serde-varint" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" +checksum = "950e5b83e839dc0f92c66afc124bb8f40e89bc90f0579e8ec5499296d27f54e3" dependencies = [ "serde", ] [[package]] name = "solana-serialize-utils" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +checksum = "5d7cc401931d178472358e6b78dc72d031dc08f752d7410f0e8bd259dd6f02fa" dependencies = [ - "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 4.1.0", "solana-sanitize", ] [[package]] name = "solana-sha256-hasher" -version = "2.3.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" dependencies = [ - "sha2 0.10.8", - "solana-define-syscall", - "solana-hash", + "sha2", + "solana-define-syscall 4.0.1", + "solana-hash 4.2.0", ] [[package]] name = "solana-short-vec" -version = "2.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +checksum = "de3bd991c2cc415291c86bb0b6b4d53e93d13bb40344e4c5a2884e0e4f5fa93f" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "solana-signature" -version = "2.3.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +checksum = "132a93134f1262aa832f1849b83bec6c9945669b866da18661a427943b9e801e" dependencies = [ "five8", "solana-sanitize", @@ -2105,33 +2103,33 @@ dependencies = [ [[package]] name = "solana-signer" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c41991508a4b02f021c1342ba00bcfa098630b213726ceadc7cb032e051975b" +checksum = "5bfea97951fee8bae0d6038f39a5efcb6230ecdfe33425ac75196d1a1e3e3235" dependencies = [ - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-transaction-error", ] [[package]] name = "solana-slot-hashes" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +checksum = "2585f70191623887329dfb5078da3a00e15e3980ea67f42c2e10b07028419f43" dependencies = [ "serde", "serde_derive", - "solana-hash", + "solana-hash 4.2.0", "solana-sdk-ids", "solana-sysvar-id", ] [[package]] name = "solana-slot-history" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +checksum = "f914f6b108f5bba14a280b458d023e3621c9973f27f015a4d755b50e88d89e97" dependencies = [ "bv", "serde", @@ -2142,56 +2140,53 @@ dependencies = [ [[package]] name = "solana-stable-layout" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" dependencies = [ "solana-instruction", - "solana-pubkey", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-stake-interface" -version = "1.2.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" dependencies = [ - "borsh 0.10.3", - "borsh 1.5.7", "num-traits", "serde", "serde_derive", "solana-clock", "solana-cpi", - "solana-decode-error", "solana-instruction", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-system-interface", + "solana-sysvar", "solana-sysvar-id", ] [[package]] name = "solana-system-interface" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" dependencies = [ - "js-sys", "num-traits", "serde", "serde_derive", - "solana-decode-error", "solana-instruction", - "solana-pubkey", - "wasm-bindgen", + "solana-msg", + "solana-program-error", + "solana-pubkey 3.0.0", ] [[package]] name = "solana-sysvar" -version = "2.3.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" dependencies = [ "base64 0.22.1", "bincode", @@ -2202,77 +2197,60 @@ dependencies = [ "serde_derive", "solana-account-info", "solana-clock", - "solana-define-syscall", + "solana-define-syscall 4.0.1", "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-calculator", - "solana-hash", + "solana-hash 4.2.0", "solana-instruction", - "solana-instructions-sysvar", "solana-last-restart-slot", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", - "solana-pubkey", + "solana-pubkey 4.1.0", "solana-rent", - "solana-sanitize", "solana-sdk-ids", "solana-sdk-macro", "solana-slot-hashes", "solana-slot-history", - "solana-stake-interface", "solana-sysvar-id", ] [[package]] name = "solana-sysvar-id" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" dependencies = [ - "solana-pubkey", + "solana-address 2.4.0", "solana-sdk-ids", ] [[package]] name = "solana-transaction-error" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +checksum = "8396904805b0b385b9de115a652fe80fd01e5b98ce0513f4fcd8184ada9bb792" dependencies = [ - "solana-instruction", + "solana-instruction-error", "solana-sanitize", ] [[package]] -name = "solana-vote-interface" -version = "2.2.6" +name = "solana-zero-copy" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +checksum = "94f52dd8f733a13f6a18e55de83cf97c4c3f5fdf27ea3830bcff0b35313efcc2" dependencies = [ - "bincode", - "num-derive 0.4.2", - "num-traits", - "serde", - "serde_derive", - "solana-clock", - "solana-decode-error", - "solana-hash", - "solana-instruction", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-serde-varint", - "solana-serialize-utils", - "solana-short-vec", - "solana-system-interface", + "bytemuck", + "bytemuck_derive", ] [[package]] name = "solana-zk-sdk" -version = "2.3.13" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b9fc6ec37d16d0dccff708ed1dd6ea9ba61796700c3bb7c3b401973f10f63b" +checksum = "9602bcb1f7af15caef92b91132ec2347e1c51a72ecdbefdaefa3eac4b8711475" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -2280,61 +2258,56 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek", + "getrandom", "itertools", "js-sys", "merlin", "num-derive 0.4.2", "num-traits", - "rand 0.8.5", + "rand", "serde", "serde_derive", "serde_json", "sha3", "solana-derivation-path", "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-seed-derivable", "solana-seed-phrase", "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", "wasm-bindgen", "zeroize", ] [[package]] -name = "spl-associated-token-account" -version = "7.0.0" +name = "spki" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae179d4a26b3c7a20c839898e6aed84cb4477adf108a366c95532f058aea041b" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ - "borsh 1.5.7", - "num-derive 0.4.2", - "num-traits", - "solana-program", - "spl-associated-token-account-client", - "spl-token", - "spl-token-2022", - "thiserror 2.0.17", + "base64ct", + "der", ] [[package]] -name = "spl-associated-token-account-client" +name = "spl-associated-token-account-interface" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f8349dbcbe575f354f9a533a21f272f3eb3808a49e2fdc1c34393b88ba76cb" +checksum = "e6433917b60441d68d99a17e121d9db0ea15a9a69c0e5afa34649cf5ba12612f" dependencies = [ "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", ] [[package]] name = "spl-discriminator" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7398da23554a31660f17718164e31d31900956054f54f52d5ec1be51cb4f4b3" +checksum = "e597c5ff9ed7c74a54dbc47bae2f06e4db8c98f4356ad280200dc11878266db1" dependencies = [ "bytemuck", "solana-program-error", @@ -2350,7 +2323,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -2361,150 +2334,35 @@ checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" dependencies = [ "proc-macro2", "quote", - "sha2 0.10.8", - "syn 2.0.106", + "sha2", + "syn 2.0.117", "thiserror 1.0.69", ] -[[package]] -name = "spl-elgamal-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65edfeed09cd4231e595616aa96022214f9c9d2be02dea62c2b30d5695a6833a" -dependencies = [ - "bytemuck", - "solana-account-info", - "solana-cpi", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-system-interface", - "solana-sysvar", - "solana-zk-sdk", - "spl-pod", - "spl-token-confidential-transfer-proof-extraction", -] - -[[package]] -name = "spl-memo" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f09647c0974e33366efeb83b8e2daebb329f0420149e74d3a4bd2c08cf9f7cb" -dependencies = [ - "solana-account-info", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", -] - [[package]] name = "spl-pod" -version = "0.5.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d994afaf86b779104b4a95ba9ca75b8ced3fdb17ee934e38cb69e72afbe17799" +checksum = "d6f3df240f67bea453d4bc5749761e45436d14b9457ed667e0300555d5c271f3" dependencies = [ "borsh 1.5.7", "bytemuck", "bytemuck_derive", "num-derive 0.4.2", "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "solana-program-option", - "solana-pubkey", - "solana-zk-sdk", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-program-error" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdebc8b42553070b75aa5106f071fef2eb798c64a7ec63375da4b1f058688c6" -dependencies = [ - "num-derive 0.4.2", - "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "spl-program-error-derive", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-program-error-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2539e259c66910d78593475540e8072f0b10f0f61d7607bbf7593899ed52d0" -dependencies = [ - "proc-macro2", - "quote", - "sha2 0.10.8", - "syn 2.0.106", -] - -[[package]] -name = "spl-tlv-account-resolution" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1408e961215688715d5a1063cbdcf982de225c45f99c82b4f7d7e1dd22b998d7" -dependencies = [ - "bytemuck", - "num-derive 0.4.2", - "num-traits", - "solana-account-info", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-program-error", - "spl-type-length-value", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-token" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053067c6a82c705004f91dae058b11b4780407e9ccd6799dc9e7d0fab5f242da" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive 0.4.2", - "num-traits", "num_enum", - "solana-account-info", - "solana-cpi", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", "solana-program-error", - "solana-program-memory", "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-sysvar", - "thiserror 2.0.17", + "solana-pubkey 3.0.0", + "solana-zk-sdk", + "thiserror 2.0.18", ] [[package]] -name = "spl-token-2022" -version = "8.0.1" +name = "spl-token-2022-interface" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f0dfbb079eebaee55e793e92ca5f433744f4b71ee04880bfd6beefba5973e5" +checksum = "2fcd81188211f4b3c8a5eba7fd534c7142f9dd026123b3472492782cc72f4dc6" dependencies = [ "arrayref", "bytemuck", @@ -2512,55 +2370,27 @@ dependencies = [ "num-traits", "num_enum", "solana-account-info", - "solana-clock", - "solana-cpi", - "solana-decode-error", "solana-instruction", - "solana-msg", - "solana-native-token", - "solana-program-entrypoint", "solana-program-error", - "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-security-txt", - "solana-system-interface", - "solana-sysvar", "solana-zk-sdk", - "spl-elgamal-registry", - "spl-memo", "spl-pod", - "spl-token", - "spl-token-confidential-transfer-ciphertext-arithmetic", "spl-token-confidential-transfer-proof-extraction", "spl-token-confidential-transfer-proof-generation", "spl-token-group-interface", "spl-token-metadata-interface", - "spl-transfer-hook-interface", "spl-type-length-value", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-token-confidential-transfer-ciphertext-arithmetic" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddd52bfc0f1c677b41493dafa3f2dbbb4b47cf0990f08905429e19dc8289b35" -dependencies = [ - "base64 0.22.1", - "bytemuck", - "solana-curve25519", - "solana-zk-sdk", + "thiserror 2.0.18", ] [[package]] name = "spl-token-confidential-transfer-proof-extraction" -version = "0.3.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2629860ff04c17bafa9ba4bed8850a404ecac81074113e1f840dbd0ebb7bd6" +checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" dependencies = [ "bytemuck", "solana-account-info", @@ -2569,107 +2399,105 @@ dependencies = [ "solana-instructions-sysvar", "solana-msg", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-zk-sdk", "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "spl-token-confidential-transfer-proof-generation" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa27b9174bea869a7ebf31e0be6890bce90b1a4288bc2bbf24bd413f80ae3fde" +checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" dependencies = [ "curve25519-dalek", "solana-zk-sdk", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "spl-token-group-interface" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5597b4cd76f85ce7cd206045b7dc22da8c25516573d42d267c8d1fd128db5129" +checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" dependencies = [ "bytemuck", "num-derive 0.4.2", "num-traits", - "solana-decode-error", + "num_enum", + "solana-address 2.4.0", "solana-instruction", - "solana-msg", + "solana-nullable", "solana-program-error", - "solana-pubkey", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] -name = "spl-token-metadata-interface" -version = "0.7.0" +name = "spl-token-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304d6e06f0de0c13a621464b1fd5d4b1bebf60d15ca71a44d3839958e0da16ee" +checksum = "8c564ac05a7c8d8b12e988a37d82695b5ba4db376d07ea98bc4882c81f96c7f3" dependencies = [ - "borsh 1.5.7", + "arrayref", + "bytemuck", "num-derive 0.4.2", "num-traits", - "solana-borsh", - "solana-decode-error", + "num_enum", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-type-length-value", - "thiserror 2.0.17", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "thiserror 2.0.18", ] [[package]] -name = "spl-transfer-hook-interface" -version = "0.10.0" +name = "spl-token-metadata-interface" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e905b849b6aba63bde8c4badac944ebb6c8e6e14817029cbe1bc16829133bd" +checksum = "9c467c7c3bd056f8fe60119e7ec34ddd6f23052c2fa8f1f51999098063b72676" dependencies = [ - "arrayref", - "bytemuck", + "borsh 1.5.7", "num-derive 0.4.2", "num-traits", - "solana-account-info", - "solana-cpi", - "solana-decode-error", + "solana-borsh", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "spl-discriminator", "spl-pod", - "spl-program-error", - "spl-tlv-account-resolution", "spl-type-length-value", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "spl-type-length-value" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d417eb548214fa822d93f84444024b4e57c13ed6719d4dcc68eec24fb481e9f5" +checksum = "2504631748c48d2a937414d64a12dcac4588d34bd07d355d648619c189d29435" dependencies = [ "bytemuck", "num-derive 0.4.2", "num-traits", + "num_enum", "solana-account-info", - "solana-decode-error", - "solana-msg", "solana-program-error", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "subtle" version = "2.6.1" @@ -2689,9 +2517,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -2709,11 +2537,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -2724,18 +2552,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -2770,7 +2598,7 @@ checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" dependencies = [ "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.6", "toml_edit 0.22.14", ] @@ -2784,14 +2612,12 @@ dependencies = [ ] [[package]] -name = "toml_edit" -version = "0.21.1" +name = "toml_datetime" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ - "indexmap", - "toml_datetime", - "winnow 0.5.40", + "serde_core", ] [[package]] @@ -2803,10 +2629,31 @@ dependencies = [ "indexmap", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.6", "winnow 0.6.13", ] +[[package]] +name = "toml_edit" +version = "0.25.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" +dependencies = [ + "indexmap", + "toml_datetime 1.1.0+spec-1.1.0", + "toml_parser", + "winnow 1.0.0", +] + +[[package]] +name = "toml_parser" +version = "1.1.0+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +dependencies = [ + "winnow 1.0.0", +] + [[package]] name = "typenum" version = "1.17.0" @@ -2851,12 +2698,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2886,7 +2727,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "wasm-bindgen-shared", ] @@ -2908,7 +2749,7 @@ checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2923,13 +2764,28 @@ dependencies = [ ] [[package]] -name = "web-sys" -version = "0.3.69" +name = "wincode" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "dc91ddd8c932a38bbec58ed536d9e93ce9cd01b6af9b6de3c501132cf98ddec6" dependencies = [ - "js-sys", - "wasm-bindgen", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca057fc9a13dd19cdb64ef558635d43c42667c0afa1ae7915ea1fa66993fd1a" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -2998,18 +2854,18 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.6.13" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -3031,7 +2887,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -3051,5 +2907,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] diff --git a/tokens/nft-operations/anchor/package.json b/tokens/nft-operations/anchor/package.json index 711f92bab..d0d9862f2 100644 --- a/tokens/nft-operations/anchor/package.json +++ b/tokens/nft-operations/anchor/package.json @@ -6,7 +6,7 @@ "postinstall": "zx prepare.mjs" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@metaplex-foundation/mpl-token-metadata": "^3.1.2", "@metaplex-foundation/umi": "^0.9.0", "@solana/spl-token": "^0.4.6", @@ -23,7 +23,7 @@ "prettier": "^2.6.2", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5", + "typescript": "^5.3.3", "zx": "^8.1.4" } } diff --git a/tokens/nft-operations/anchor/programs/mint-nft/Cargo.toml b/tokens/nft-operations/anchor/programs/mint-nft/Cargo.toml index 60af4f559..225819092 100644 --- a/tokens/nft-operations/anchor/programs/mint-nft/Cargo.toml +++ b/tokens/nft-operations/anchor/programs/mint-nft/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1", features = ["metadata"] } +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/create_collection.rs b/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/create_collection.rs index 152cc116a..5a7693b58 100644 --- a/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/create_collection.rs +++ b/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/create_collection.rs @@ -81,13 +81,12 @@ impl<'info> CreateCollection<'info> { ]; let signer_seeds = &[&seeds[..]]; - let cpi_program = self.token_program.to_account_info(); let cpi_accounts = MintTo { mint: self.mint.to_account_info(), to: self.destination.to_account_info(), authority: self.mint_authority.to_account_info(), }; - let cpi_ctx = CpiContext::new_with_signer(cpi_program, cpi_accounts, signer_seeds); + let cpi_ctx = CpiContext::new_with_signer(self.token_program.key(), cpi_accounts, signer_seeds); mint_to(cpi_ctx, 1)?; msg!("Collection NFT minted!"); diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/mint_nft.rs b/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/mint_nft.rs index b4612cffb..490f6add4 100644 --- a/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/mint_nft.rs +++ b/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/mint_nft.rs @@ -83,13 +83,12 @@ impl<'info> MintNFT<'info> { ]; let signer_seeds = &[&seeds[..]]; - let cpi_program = self.token_program.to_account_info(); let cpi_accounts = MintTo { mint: self.mint.to_account_info(), to: self.destination.to_account_info(), authority: self.mint_authority.to_account_info(), }; - let cpi_ctx = CpiContext::new_with_signer(cpi_program, cpi_accounts, signer_seeds); + let cpi_ctx = CpiContext::new_with_signer(self.token_program.key(), cpi_accounts, signer_seeds); mint_to(cpi_ctx, 1)?; msg!("Collection NFT minted!"); diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/verify_collection.rs b/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/verify_collection.rs index b1440f255..d9ebd32d5 100644 --- a/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/verify_collection.rs +++ b/tokens/nft-operations/anchor/programs/mint-nft/src/contexts/verify_collection.rs @@ -12,7 +12,8 @@ use anchor_spl::{ token::Mint, metadata::Metadata, }; -pub use anchor_lang::solana_program::sysvar::instructions::ID as INSTRUCTIONS_ID; +// In Anchor 1.0, sysvar::instructions::ID moved — use the well-known address directly +const INSTRUCTIONS_SYSVAR_ID: Pubkey = anchor_lang::solana_program::pubkey::pubkey!("Sysvar1nstructions1111111111111111111111111"); #[derive(Accounts)] pub struct VerifyCollectionMint<'info> { @@ -31,7 +32,7 @@ pub struct VerifyCollectionMint<'info> { pub collection_metadata: Account<'info, MetadataAccount>, pub collection_master_edition: Account<'info, MasterEditionAccount>, pub system_program: Program<'info, System>, - #[account(address = INSTRUCTIONS_ID)] + #[account(address = INSTRUCTIONS_SYSVAR_ID)] /// CHECK: Sysvar instruction account that is being checked with an address constraint pub sysvar_instruction: UncheckedAccount<'info>, pub token_metadata_program: Program<'info, Metadata>, diff --git a/tokens/nft-operations/anchor/tests/bankrun.test.ts b/tokens/nft-operations/anchor/tests/bankrun.test.ts index 85725af41..4babd06d9 100644 --- a/tokens/nft-operations/anchor/tests/bankrun.test.ts +++ b/tokens/nft-operations/anchor/tests/bankrun.test.ts @@ -1,5 +1,5 @@ -import * as anchor from "@coral-xyz/anchor"; -import { ASSOCIATED_PROGRAM_ID } from "@coral-xyz/anchor/dist/cjs/utils/token"; +import * as anchor from "@anchor-lang/core"; +import { ASSOCIATED_PROGRAM_ID } from "@anchor-lang/core/dist/cjs/utils/token"; import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, diff --git a/tokens/nft-operations/anchor/tests/mint-nft.ts b/tokens/nft-operations/anchor/tests/mint-nft.ts index 905d92cdb..198e93f70 100644 --- a/tokens/nft-operations/anchor/tests/mint-nft.ts +++ b/tokens/nft-operations/anchor/tests/mint-nft.ts @@ -1,7 +1,7 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; -import type NodeWallet from '@coral-xyz/anchor/dist/cjs/nodewallet'; -import { ASSOCIATED_PROGRAM_ID } from '@coral-xyz/anchor/dist/cjs/utils/token'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; +import type NodeWallet from '@anchor-lang/core/dist/cjs/nodewallet'; +import { ASSOCIATED_PROGRAM_ID } from '@anchor-lang/core/dist/cjs/utils/token'; import { ASSOCIATED_TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync, TOKEN_PROGRAM_ID } from '@solana/spl-token'; import { Keypair, SystemProgram } from '@solana/web3.js'; import type { MintNft } from '../target/types/mint_nft'; diff --git a/tokens/pda-mint-authority/anchor/Anchor.toml b/tokens/pda-mint-authority/anchor/Anchor.toml index 267c19ef0..803ab7c40 100644 --- a/tokens/pda-mint-authority/anchor/Anchor.toml +++ b/tokens/pda-mint-authority/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] token_minter = "3LFrPHqwk5jMrmiz48BFj6NV2k4NjobgTe1jChzx3JGD" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/pda-mint-authority/anchor/package.json b/tokens/pda-mint-authority/anchor/package.json index 4b29a576f..4042e17fa 100644 --- a/tokens/pda-mint-authority/anchor/package.json +++ b/tokens/pda-mint-authority/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.3.8" }, "scripts": { @@ -16,7 +16,7 @@ "mocha": "^9.0.3", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5", + "typescript": "^5.3.3", "zx": "^8.1.4" } } diff --git a/tokens/pda-mint-authority/anchor/programs/token-minter/Cargo.toml b/tokens/pda-mint-authority/anchor/programs/token-minter/Cargo.toml index b0819e103..eed800f70 100644 --- a/tokens/pda-mint-authority/anchor/programs/token-minter/Cargo.toml +++ b/tokens/pda-mint-authority/anchor/programs/token-minter/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1", features = ["metadata"] } +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/create.rs b/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/create.rs index c1f42e311..e16b37c74 100644 --- a/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/create.rs +++ b/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/create.rs @@ -60,7 +60,7 @@ pub fn create_token( // Invoking the create_metadata_account_v3 instruction on the token metadata program create_metadata_accounts_v3( CpiContext::new( - ctx.accounts.token_metadata_program.to_account_info(), + ctx.accounts.token_metadata_program.key(), CreateMetadataAccountsV3 { metadata: ctx.accounts.metadata_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/mint.rs b/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/mint.rs index cfc36b133..dfbd1781a 100644 --- a/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/mint.rs +++ b/tokens/pda-mint-authority/anchor/programs/token-minter/src/instructions/mint.rs @@ -48,7 +48,7 @@ pub fn mint_token(ctx: Context, amount: u64) -> Result<()> { // Invoke the mint_to instruction on the token program mint_to( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MintTo { mint: ctx.accounts.mint_account.to_account_info(), to: ctx.accounts.associated_token_account.to_account_info(), diff --git a/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts b/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts index 40ba63926..7c4b0a991 100644 --- a/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts +++ b/tokens/pda-mint-authority/anchor/tests/bankrun.test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; import { BankrunProvider } from "anchor-bankrun"; diff --git a/tokens/pda-mint-authority/anchor/tests/test.ts b/tokens/pda-mint-authority/anchor/tests/test.ts index 6a98dd7b6..9371ebf86 100644 --- a/tokens/pda-mint-authority/anchor/tests/test.ts +++ b/tokens/pda-mint-authority/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; import { BN } from "bn.js"; diff --git a/tokens/spl-token-minter/anchor/Anchor.toml b/tokens/spl-token-minter/anchor/Anchor.toml index 673cf8b78..85224170a 100644 --- a/tokens/spl-token-minter/anchor/Anchor.toml +++ b/tokens/spl-token-minter/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] spl_token_minter = "3of89Z9jwek9zrFgpCWc9jZvQvitpVMxpZNsrAD2vQUD" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/spl-token-minter/anchor/package.json b/tokens/spl-token-minter/anchor/package.json index 4b29a576f..4042e17fa 100644 --- a/tokens/spl-token-minter/anchor/package.json +++ b/tokens/spl-token-minter/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.3.8" }, "scripts": { @@ -16,7 +16,7 @@ "mocha": "^9.0.3", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5", + "typescript": "^5.3.3", "zx": "^8.1.4" } } diff --git a/tokens/spl-token-minter/anchor/programs/spl-token-minter/Cargo.toml b/tokens/spl-token-minter/anchor/programs/spl-token-minter/Cargo.toml index a152e5a20..2cbd907a1 100644 --- a/tokens/spl-token-minter/anchor/programs/spl-token-minter/Cargo.toml +++ b/tokens/spl-token-minter/anchor/programs/spl-token-minter/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1", features = ["metadata"] } +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/create.rs b/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/create.rs index ac29e64f5..954f9d7e6 100644 --- a/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/create.rs +++ b/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/create.rs @@ -50,7 +50,7 @@ pub fn create_token( // Invoking the create_metadata_account_v3 instruction on the token metadata program create_metadata_accounts_v3( CpiContext::new( - ctx.accounts.token_metadata_program.to_account_info(), + ctx.accounts.token_metadata_program.key(), CreateMetadataAccountsV3 { metadata: ctx.accounts.metadata_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/mint.rs b/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/mint.rs index cd345471a..9a52e49dc 100644 --- a/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/mint.rs +++ b/tokens/spl-token-minter/anchor/programs/spl-token-minter/src/instructions/mint.rs @@ -38,7 +38,7 @@ pub fn mint_token(ctx: Context, amount: u64) -> Result<()> { // Invoke the mint_to instruction on the token program mint_to( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MintTo { mint: ctx.accounts.mint_account.to_account_info(), to: ctx.accounts.associated_token_account.to_account_info(), diff --git a/tokens/spl-token-minter/anchor/tests/bankrun.test.ts b/tokens/spl-token-minter/anchor/tests/bankrun.test.ts index 182a0e5e5..c740d1ddb 100644 --- a/tokens/spl-token-minter/anchor/tests/bankrun.test.ts +++ b/tokens/spl-token-minter/anchor/tests/bankrun.test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { Keypair, PublicKey } from "@solana/web3.js"; import { BankrunProvider } from "anchor-bankrun"; diff --git a/tokens/spl-token-minter/anchor/tests/test.ts b/tokens/spl-token-minter/anchor/tests/test.ts index 31132c3ca..d06dad462 100644 --- a/tokens/spl-token-minter/anchor/tests/test.ts +++ b/tokens/spl-token-minter/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { Keypair } from "@solana/web3.js"; import { BN } from "bn.js"; diff --git a/tokens/token-2022/basics/anchor/Anchor.toml b/tokens/token-2022/basics/anchor/Anchor.toml index 0df82d1d8..be2283b26 100644 --- a/tokens/token-2022/basics/anchor/Anchor.toml +++ b/tokens/token-2022/basics/anchor/Anchor.toml @@ -7,8 +7,7 @@ skip-lint = false [programs.localnet] anchor = "6qNqxkRF791FXFeQwqYQLEzAbGiqDULC5SSHVsfRoG89" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/basics/anchor/migrations/deploy.ts b/tokens/token-2022/basics/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/basics/anchor/migrations/deploy.ts +++ b/tokens/token-2022/basics/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/basics/anchor/package.json b/tokens/token-2022/basics/anchor/package.json index 72d1a242d..5b2bb974f 100644 --- a/tokens/token-2022/basics/anchor/package.json +++ b/tokens/token-2022/basics/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/web3.js": "^1.98.4" }, "devDependencies": { @@ -18,6 +18,6 @@ "prettier": "^2.6.2", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/basics/anchor/programs/basics/Cargo.toml b/tokens/token-2022/basics/anchor/programs/basics/Cargo.toml index 132f10c7c..69e048e68 100644 --- a/tokens/token-2022/basics/anchor/programs/basics/Cargo.toml +++ b/tokens/token-2022/basics/anchor/programs/basics/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-spl = "0.32.1" -anchor-lang = { version = "0.32.1", features= ["init-if-needed"]} +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = { version = "1.0.0-rc.5", features= ["init-if-needed"]} # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/basics/anchor/programs/basics/src/lib.rs b/tokens/token-2022/basics/anchor/programs/basics/src/lib.rs index 32e4a84d1..cccd6a657 100644 --- a/tokens/token-2022/basics/anchor/programs/basics/src/lib.rs +++ b/tokens/token-2022/basics/anchor/programs/basics/src/lib.rs @@ -32,7 +32,7 @@ pub mod anchor { to: ctx.accounts.to_ata.to_account_info().clone(), authority: ctx.accounts.signer.to_account_info(), }; - let cpi_program = ctx.accounts.token_program.to_account_info(); + let cpi_program = ctx.accounts.token_program.key(); let cpi_context = CpiContext::new(cpi_program, cpi_accounts); token_interface::transfer_checked(cpi_context, amount, ctx.accounts.mint.decimals)?; msg!("Transfer Token"); @@ -44,7 +44,7 @@ pub mod anchor { to: ctx.accounts.receiver.to_account_info().clone(), authority: ctx.accounts.signer.to_account_info(), }; - let cpi_program = ctx.accounts.token_program.to_account_info(); + let cpi_program = ctx.accounts.token_program.key(); let cpi_context = CpiContext::new(cpi_program, cpi_accounts); token_interface::mint_to(cpi_context, amount)?; msg!("Mint Token"); diff --git a/tokens/token-2022/basics/anchor/tests/anchor.ts b/tokens/token-2022/basics/anchor/tests/anchor.ts index d47f83337..f46a2078f 100644 --- a/tokens/token-2022/basics/anchor/tests/anchor.ts +++ b/tokens/token-2022/basics/anchor/tests/anchor.ts @@ -1,5 +1,5 @@ -import type { Program } from "@coral-xyz/anchor"; -import * as anchor from "@coral-xyz/anchor"; +import type { Program } from "@anchor-lang/core"; +import * as anchor from "@anchor-lang/core"; import { sendAndConfirmTransaction } from "@solana/web3.js"; import BN from "bn.js"; import type { Anchor } from "../target/types/anchor"; diff --git a/tokens/token-2022/basics/anchor/tests/bankrun.test.ts b/tokens/token-2022/basics/anchor/tests/bankrun.test.ts index 792e23ae8..b62269651 100644 --- a/tokens/token-2022/basics/anchor/tests/bankrun.test.ts +++ b/tokens/token-2022/basics/anchor/tests/bankrun.test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { PublicKey } from "@solana/web3.js"; import { BankrunProvider } from "anchor-bankrun"; import BN from "bn.js"; diff --git a/tokens/token-2022/cpi-guard/anchor/Anchor.toml b/tokens/token-2022/cpi-guard/anchor/Anchor.toml index b6112f9b5..2de4c34ae 100644 --- a/tokens/token-2022/cpi-guard/anchor/Anchor.toml +++ b/tokens/token-2022/cpi-guard/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] cpi_guard = "6tU3MEowU6oxxeDZLSxEwzcEZsZrhBJsfUR6xECvShid" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/cpi-guard/anchor/migrations/deploy.ts b/tokens/token-2022/cpi-guard/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/cpi-guard/anchor/migrations/deploy.ts +++ b/tokens/token-2022/cpi-guard/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/cpi-guard/anchor/package.json b/tokens/token-2022/cpi-guard/anchor/package.json index 533a02696..ec93e2a0e 100644 --- a/tokens/token-2022/cpi-guard/anchor/package.json +++ b/tokens/token-2022/cpi-guard/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -18,6 +18,6 @@ "prettier": "^2.6.2", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/Cargo.toml b/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/Cargo.toml index ff908af63..1d2b8f3dc 100644 --- a/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/Cargo.toml +++ b/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = "0.32.1" +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/src/lib.rs b/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/src/lib.rs index cc50e00a6..25419c3f7 100644 --- a/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/src/lib.rs +++ b/tokens/token-2022/cpi-guard/anchor/programs/cpi-guard/src/lib.rs @@ -15,7 +15,7 @@ pub mod cpi_guard { pub fn cpi_transfer(ctx: Context) -> Result<()> { transfer_checked( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TransferChecked { from: ctx.accounts.sender_token_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/cpi-guard/anchor/tests/cpi-guard.ts b/tokens/token-2022/cpi-guard/anchor/tests/cpi-guard.ts index 118d56e75..6a727a599 100644 --- a/tokens/token-2022/cpi-guard/anchor/tests/cpi-guard.ts +++ b/tokens/token-2022/cpi-guard/anchor/tests/cpi-guard.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { createEnableCpiGuardInstruction, createInitializeAccountInstruction, diff --git a/tokens/token-2022/default-account-state/anchor/Anchor.toml b/tokens/token-2022/default-account-state/anchor/Anchor.toml index 5a89dd659..a6d6e4ee0 100644 --- a/tokens/token-2022/default-account-state/anchor/Anchor.toml +++ b/tokens/token-2022/default-account-state/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] default_account_state = "5LdYbHiUsFxVG8bfqoeBkhBYMRmWZb3BoLuABgYW7coB" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/default-account-state/anchor/migrations/deploy.ts b/tokens/token-2022/default-account-state/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/default-account-state/anchor/migrations/deploy.ts +++ b/tokens/token-2022/default-account-state/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/default-account-state/anchor/package.json b/tokens/token-2022/default-account-state/anchor/package.json index 0560ed783..f800607c4 100644 --- a/tokens/token-2022/default-account-state/anchor/package.json +++ b/tokens/token-2022/default-account-state/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.31.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/default-account-state/anchor/programs/default-account-state/Cargo.toml b/tokens/token-2022/default-account-state/anchor/programs/default-account-state/Cargo.toml index 3d17d2790..d596d8b63 100644 --- a/tokens/token-2022/default-account-state/anchor/programs/default-account-state/Cargo.toml +++ b/tokens/token-2022/default-account-state/anchor/programs/default-account-state/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/default-account-state/anchor/programs/default-account-state/src/lib.rs b/tokens/token-2022/default-account-state/anchor/programs/default-account-state/src/lib.rs index 4678299b1..c1b5c3da6 100644 --- a/tokens/token-2022/default-account-state/anchor/programs/default-account-state/src/lib.rs +++ b/tokens/token-2022/default-account-state/anchor/programs/default-account-state/src/lib.rs @@ -32,7 +32,7 @@ pub mod default_account_state { // Invoke System Program to create new account with space for mint and extension data create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.mint_account.to_account_info(), @@ -47,7 +47,7 @@ pub mod default_account_state { // This instruction must come before the instruction to initialize the mint data default_account_state_initialize( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), DefaultAccountStateInitialize { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), @@ -59,7 +59,7 @@ pub mod default_account_state { // Initialize the standard mint account data initialize_mint2( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InitializeMint2 { mint: ctx.accounts.mint_account.to_account_info(), }, @@ -80,7 +80,7 @@ pub mod default_account_state { default_account_state_update( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), DefaultAccountStateUpdate { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/default-account-state/anchor/tests/default-account-state.ts b/tokens/token-2022/default-account-state/anchor/tests/default-account-state.ts index 77d7b03d2..ae32cccbb 100644 --- a/tokens/token-2022/default-account-state/anchor/tests/default-account-state.ts +++ b/tokens/token-2022/default-account-state/anchor/tests/default-account-state.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { createAccount, mintTo, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'; import type { DefaultAccountState } from '../target/types/default_account_state'; diff --git a/tokens/token-2022/group/anchor/Anchor.toml b/tokens/token-2022/group/anchor/Anchor.toml index b83d7a1b6..f3192c85d 100644 --- a/tokens/token-2022/group/anchor/Anchor.toml +++ b/tokens/token-2022/group/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] group = "4XCDGMD8fsdjUzmYj6d9if8twFt1f23Ym52iDmWK8fFs" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/token-2022/group/anchor/migrations/deploy.ts b/tokens/token-2022/group/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/group/anchor/migrations/deploy.ts +++ b/tokens/token-2022/group/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/group/anchor/package.json b/tokens/token-2022/group/anchor/package.json index 1d6468a92..198383d3f 100644 --- a/tokens/token-2022/group/anchor/package.json +++ b/tokens/token-2022/group/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1" + "@anchor-lang/core": "1.0.0-rc.5" }, "devDependencies": { "@types/bn.js": "^5.1.0", @@ -15,6 +15,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/group/anchor/programs/group/Cargo.toml b/tokens/token-2022/group/anchor/programs/group/Cargo.toml index 878b4b547..ceda62bcf 100644 --- a/tokens/token-2022/group/anchor/programs/group/Cargo.toml +++ b/tokens/token-2022/group/anchor/programs/group/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release spl-token-group-interface = "0.2.5" [lints.rust] diff --git a/tokens/token-2022/group/anchor/tests/group.ts b/tokens/token-2022/group/anchor/tests/group.ts index 00fad5fac..7756b0ca3 100644 --- a/tokens/token-2022/group/anchor/tests/group.ts +++ b/tokens/token-2022/group/anchor/tests/group.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import type { Group } from '../target/types/group'; describe('group', () => { diff --git a/tokens/token-2022/immutable-owner/anchor/Anchor.toml b/tokens/token-2022/immutable-owner/anchor/Anchor.toml index 9bfbe6a9b..8716f3857 100644 --- a/tokens/token-2022/immutable-owner/anchor/Anchor.toml +++ b/tokens/token-2022/immutable-owner/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] immutable_owner = "6g5URpqqurW8RbKjuGeRCVZBKky3J4kYcLeotQ6vj6UT" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/immutable-owner/anchor/migrations/deploy.ts b/tokens/token-2022/immutable-owner/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/immutable-owner/anchor/migrations/deploy.ts +++ b/tokens/token-2022/immutable-owner/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/immutable-owner/anchor/package.json b/tokens/token-2022/immutable-owner/anchor/package.json index 572adc73a..f800607c4 100644 --- a/tokens/token-2022/immutable-owner/anchor/package.json +++ b/tokens/token-2022/immutable-owner/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/Cargo.toml b/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/Cargo.toml index d0189caa2..233e36b2c 100644 --- a/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/Cargo.toml +++ b/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/src/lib.rs b/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/src/lib.rs index b33197117..47c6a53ee 100644 --- a/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/src/lib.rs +++ b/tokens/token-2022/immutable-owner/anchor/programs/immutable-owner/src/lib.rs @@ -29,7 +29,7 @@ pub mod immutable_owner { // Invoke System Program to create new account with space for token account and extension data create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.token_account.to_account_info(), @@ -42,7 +42,7 @@ pub mod immutable_owner { // Initialize the token account with the immutable owner extension immutable_owner_initialize(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), ImmutableOwnerInitialize { token_program_id: ctx.accounts.token_program.to_account_info(), token_account: ctx.accounts.token_account.to_account_info(), @@ -51,7 +51,7 @@ pub mod immutable_owner { // Initialize the standard token account data initialize_account3(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InitializeAccount3 { account: ctx.accounts.token_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/immutable-owner/anchor/tests/immutable-owner.ts b/tokens/token-2022/immutable-owner/anchor/tests/immutable-owner.ts index 4ccfba5fd..8e2015dba 100644 --- a/tokens/token-2022/immutable-owner/anchor/tests/immutable-owner.ts +++ b/tokens/token-2022/immutable-owner/anchor/tests/immutable-owner.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { AuthorityType, createMint, setAuthority, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'; import type { ImmutableOwner } from '../target/types/immutable_owner'; diff --git a/tokens/token-2022/interest-bearing/anchor/Anchor.toml b/tokens/token-2022/interest-bearing/anchor/Anchor.toml index 235bf97d8..f37dff156 100644 --- a/tokens/token-2022/interest-bearing/anchor/Anchor.toml +++ b/tokens/token-2022/interest-bearing/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] interest_bearing = "DMQdkzRJz8uQSN8Kx2QYmQJn6xLKhsu3LcPYxs314MgC" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/interest-bearing/anchor/migrations/deploy.ts b/tokens/token-2022/interest-bearing/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/interest-bearing/anchor/migrations/deploy.ts +++ b/tokens/token-2022/interest-bearing/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/interest-bearing/anchor/package.json b/tokens/token-2022/interest-bearing/anchor/package.json index 7579ebd8d..f800607c4 100644 --- a/tokens/token-2022/interest-bearing/anchor/package.json +++ b/tokens/token-2022/interest-bearing/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/Cargo.toml b/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/Cargo.toml index abd05ed1b..45359f68b 100644 --- a/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/Cargo.toml +++ b/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/Cargo.toml @@ -21,8 +21,8 @@ custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/src/lib.rs b/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/src/lib.rs index 9a82baaed..bef10631e 100644 --- a/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/src/lib.rs +++ b/tokens/token-2022/interest-bearing/anchor/programs/interest-bearing/src/lib.rs @@ -38,7 +38,7 @@ pub mod interest_bearing { // Invoke System Program to create new account with space for mint and extension data create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.mint_account.to_account_info(), @@ -53,7 +53,7 @@ pub mod interest_bearing { // This instruction must come before the instruction to initialize the mint data interest_bearing_mint_initialize( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InterestBearingMintInitialize { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), @@ -66,7 +66,7 @@ pub mod interest_bearing { // Initialize the standard mint account data initialize_mint2( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InitializeMint2 { mint: ctx.accounts.mint_account.to_account_info(), }, @@ -86,7 +86,7 @@ pub mod interest_bearing { pub fn update_rate(ctx: Context, rate: i16) -> Result<()> { interest_bearing_mint_update_rate( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InterestBearingMintUpdateRate { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/interest-bearing/anchor/tests/interest-bearing.ts b/tokens/token-2022/interest-bearing/anchor/tests/interest-bearing.ts index 706a769e7..45a2938a7 100644 --- a/tokens/token-2022/interest-bearing/anchor/tests/interest-bearing.ts +++ b/tokens/token-2022/interest-bearing/anchor/tests/interest-bearing.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { amountToUiAmount, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'; import type { InterestBearing } from '../target/types/interest_bearing'; diff --git a/tokens/token-2022/memo-transfer/anchor/Anchor.toml b/tokens/token-2022/memo-transfer/anchor/Anchor.toml index 0c8ca56fd..5ac2fc3c0 100644 --- a/tokens/token-2022/memo-transfer/anchor/Anchor.toml +++ b/tokens/token-2022/memo-transfer/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] memo_transfer = "5BQyC7y2Pc283woThq11uZRqsgcRbBRLKz4yQ8BJadi2" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/memo-transfer/anchor/migrations/deploy.ts b/tokens/token-2022/memo-transfer/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/memo-transfer/anchor/migrations/deploy.ts +++ b/tokens/token-2022/memo-transfer/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/memo-transfer/anchor/package.json b/tokens/token-2022/memo-transfer/anchor/package.json index a2498b6f6..a3f2b8fe6 100644 --- a/tokens/token-2022/memo-transfer/anchor/package.json +++ b/tokens/token-2022/memo-transfer/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-memo": "^0.2.5", "@solana/spl-token": "^0.4.6" }, @@ -17,6 +17,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/Cargo.toml b/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/Cargo.toml index 0306b679b..e181b17b7 100644 --- a/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/Cargo.toml +++ b/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/src/lib.rs b/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/src/lib.rs index c7a1882dd..afaaabc5e 100644 --- a/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/src/lib.rs +++ b/tokens/token-2022/memo-transfer/anchor/programs/memo-transfer/src/lib.rs @@ -29,7 +29,7 @@ pub mod memo_transfer { // Invoke System Program to create new account with space for token account and extension data create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.token_account.to_account_info(), @@ -42,7 +42,7 @@ pub mod memo_transfer { // Initialize the standard token account data initialize_account3(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InitializeAccount3 { account: ctx.accounts.token_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), @@ -53,7 +53,7 @@ pub mod memo_transfer { // Initialize the memo transfer extension // This instruction must come after the token account initialization memo_transfer_initialize(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MemoTransfer { token_program_id: ctx.accounts.token_program.to_account_info(), account: ctx.accounts.token_account.to_account_info(), @@ -65,7 +65,7 @@ pub mod memo_transfer { pub fn disable(ctx: Context) -> Result<()> { memo_transfer_disable(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MemoTransfer { token_program_id: ctx.accounts.token_program.to_account_info(), account: ctx.accounts.token_account.to_account_info(), diff --git a/tokens/token-2022/memo-transfer/anchor/tests/memo-transfer.ts b/tokens/token-2022/memo-transfer/anchor/tests/memo-transfer.ts index 6e97a89b7..3a236ca14 100644 --- a/tokens/token-2022/memo-transfer/anchor/tests/memo-transfer.ts +++ b/tokens/token-2022/memo-transfer/anchor/tests/memo-transfer.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { createMemoInstruction } from '@solana/spl-memo'; import { createAccount, createMint, createTransferInstruction, mintTo, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'; import { sendAndConfirmTransaction, Transaction } from '@solana/web3.js'; diff --git a/tokens/token-2022/metadata/anchor/Anchor.toml b/tokens/token-2022/metadata/anchor/Anchor.toml index 5abe426b1..539f4bdb8 100644 --- a/tokens/token-2022/metadata/anchor/Anchor.toml +++ b/tokens/token-2022/metadata/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] metadata = "BJHEDXSQfD9kBFvhw8ZCGmPFRihzvbMoxoHUKpXdpn4D" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/metadata/anchor/migrations/deploy.ts b/tokens/token-2022/metadata/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/metadata/anchor/migrations/deploy.ts +++ b/tokens/token-2022/metadata/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/metadata/anchor/package.json b/tokens/token-2022/metadata/anchor/package.json index 4666605d3..95288be45 100644 --- a/tokens/token-2022/metadata/anchor/package.json +++ b/tokens/token-2022/metadata/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token-metadata": "^0.1.4" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/metadata/anchor/programs/metadata/Cargo.toml b/tokens/token-2022/metadata/anchor/programs/metadata/Cargo.toml index 65c7a1a1e..52389758d 100644 --- a/tokens/token-2022/metadata/anchor/programs/metadata/Cargo.toml +++ b/tokens/token-2022/metadata/anchor/programs/metadata/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release spl-token-metadata-interface = "0.3.3" spl-type-length-value = "0.4.3" diff --git a/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/initialize.rs b/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/initialize.rs index f6fb62998..f657138d1 100644 --- a/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/initialize.rs +++ b/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/initialize.rs @@ -48,7 +48,7 @@ pub fn process_initialize(ctx: Context, args: TokenMetadataArgs) -> // Transfer additional lamports to mint account transfer( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), Transfer { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.mint_account.to_account_info(), @@ -60,7 +60,7 @@ pub fn process_initialize(ctx: Context, args: TokenMetadataArgs) -> // Initialize token metadata token_metadata_initialize( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TokenMetadataInitialize { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_authority.rs b/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_authority.rs index 6e8d46e7d..994712325 100644 --- a/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_authority.rs +++ b/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_authority.rs @@ -27,7 +27,7 @@ pub fn process_update_authority(ctx: Context) -> Result<()> { // Change update authority token_metadata_update_authority( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TokenMetadataUpdateAuthority { token_program_id: ctx.accounts.token_program.to_account_info(), metadata: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_field.rs b/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_field.rs index 0ff7dae07..2e94c7b1c 100644 --- a/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_field.rs +++ b/tokens/token-2022/metadata/anchor/programs/metadata/src/instructions/update_field.rs @@ -61,7 +61,7 @@ pub fn process_update_field(ctx: Context, args: UpdateFieldArgs) -> let lamport_difference = required_lamports - current_lamports; transfer( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), Transfer { from: ctx.accounts.authority.to_account_info(), to: ctx.accounts.mint_account.to_account_info(), @@ -78,7 +78,7 @@ pub fn process_update_field(ctx: Context, args: UpdateFieldArgs) -> // Update token metadata token_metadata_update_field( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TokenMetadataUpdateField { token_program_id: ctx.accounts.token_program.to_account_info(), metadata: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/metadata/anchor/tests/metadata.ts b/tokens/token-2022/metadata/anchor/tests/metadata.ts index a3b296871..c788bd0f9 100644 --- a/tokens/token-2022/metadata/anchor/tests/metadata.ts +++ b/tokens/token-2022/metadata/anchor/tests/metadata.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { unpack } from '@solana/spl-token-metadata'; import type { Metadata } from '../target/types/metadata'; diff --git a/tokens/token-2022/mint-close-authority/anchor/Anchor.toml b/tokens/token-2022/mint-close-authority/anchor/Anchor.toml index 5e0362ca3..0f826c9c0 100644 --- a/tokens/token-2022/mint-close-authority/anchor/Anchor.toml +++ b/tokens/token-2022/mint-close-authority/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] mint_close_authority = "AcfQLsYKuzprcCNH1n96pKKgAbAnZchwpbr3gbVN742n" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/mint-close-authority/anchor/migrations/deploy.ts b/tokens/token-2022/mint-close-authority/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/mint-close-authority/anchor/migrations/deploy.ts +++ b/tokens/token-2022/mint-close-authority/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/mint-close-authority/anchor/package.json b/tokens/token-2022/mint-close-authority/anchor/package.json index 7579ebd8d..f800607c4 100644 --- a/tokens/token-2022/mint-close-authority/anchor/package.json +++ b/tokens/token-2022/mint-close-authority/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/Cargo.toml b/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/Cargo.toml index 88ee127e9..685accde4 100644 --- a/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/Cargo.toml +++ b/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/Cargo.toml @@ -17,5 +17,5 @@ no-log-ix-name = [] idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release diff --git a/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/src/lib.rs b/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/src/lib.rs index f4530b7f3..3be5a5390 100644 --- a/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/src/lib.rs +++ b/tokens/token-2022/mint-close-authority/anchor/programs/mint-close-authority/src/lib.rs @@ -28,7 +28,7 @@ pub mod mint_close_authority { // cpi to token extensions programs to close mint account // alternatively, this can also be done in the client close_account(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), CloseAccount { account: ctx.accounts.mint_account.to_account_info(), destination: ctx.accounts.authority.to_account_info(), diff --git a/tokens/token-2022/mint-close-authority/anchor/tests/mint-close-authority.ts b/tokens/token-2022/mint-close-authority/anchor/tests/mint-close-authority.ts index dc2793301..73b08722a 100644 --- a/tokens/token-2022/mint-close-authority/anchor/tests/mint-close-authority.ts +++ b/tokens/token-2022/mint-close-authority/anchor/tests/mint-close-authority.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { closeAccount, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'; import type { MintCloseAuthority } from '../target/types/mint_close_authority'; diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/package.json b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/package.json index bf165b915..691d96bb6 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/package.json +++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@coral-xyz/spl-token": "0.30.0", "@solana/spl-token": "^0.4.0" }, diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Cargo.toml b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Cargo.toml index 08fdd7bab..2456842a5 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Cargo.toml +++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Cargo.toml @@ -21,10 +21,12 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1" } +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } +anchor-spl = { version = "1.0.0-rc.5" } +# session-keys pinned to 2.0.3 — check compatibility with Anchor 1.0/Solana 3.x session-keys = { version = "2.0.3", features = ["no-entrypoint"] } -solana-program = "=2.1.15" +# Removed solana-program pin (=2.1.15) — Anchor 1.0 requires Solana 3.x deps spl-token-2022 = { version="6", features = [ "no-entrypoint" ] } spl-token = { version = "4.0.1", features = [ "no-entrypoint" ] } spl-token-metadata-interface = "0.7.0" diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mint_nft.rs b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mint_nft.rs index 32d14fee8..621fca27a 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mint_nft.rs +++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mint_nft.rs @@ -37,7 +37,7 @@ pub fn mint_nft(ctx: Context) -> Result<()> { system_program::create_account( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), system_program::CreateAccount { from: ctx.accounts.signer.to_account_info(), to: ctx.accounts.mint.to_account_info(), @@ -50,7 +50,7 @@ pub fn mint_nft(ctx: Context) -> Result<()> { // Assign the mint to the token program system_program::assign( - CpiContext::new(ctx.accounts.token_program.to_account_info(), system_program::Assign { + CpiContext::new(ctx.accounts.token_program.key(), system_program::Assign { account_to_assign: ctx.accounts.mint.to_account_info(), }), &token_2022::ID @@ -78,7 +78,7 @@ pub fn mint_nft(ctx: Context) -> Result<()> { // Initialize the mint cpi let mint_cpi_ix = CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), token_2022::InitializeMint2 { mint: ctx.accounts.mint.to_account_info(), } @@ -134,7 +134,7 @@ pub fn mint_nft(ctx: Context) -> Result<()> { // Create the associated token account associated_token::create( CpiContext::new( - ctx.accounts.associated_token_program.to_account_info(), + ctx.accounts.associated_token_program.key(), associated_token::Create { payer: ctx.accounts.signer.to_account_info(), associated_token: ctx.accounts.token_account.to_account_info(), @@ -149,7 +149,7 @@ pub fn mint_nft(ctx: Context) -> Result<()> { // Mint one token to the associated token account of the player token_2022::mint_to( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), token_2022::MintTo { mint: ctx.accounts.mint.to_account_info(), to: ctx.accounts.token_account.to_account_info(), @@ -163,7 +163,7 @@ pub fn mint_nft(ctx: Context) -> Result<()> { // Freeze the mint authority so no more tokens can be minted to make it an NFT token_2022::set_authority( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), token_2022::SetAuthority { current_authority: ctx.accounts.nft_authority.to_account_info(), account_or_mint: ctx.accounts.mint.to_account_info(), diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/tests/lumberjack.ts b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/tests/lumberjack.ts index b1b2692fc..bbba9941f 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/tests/lumberjack.ts +++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/anchor/tests/lumberjack.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { ASSOCIATED_TOKEN_PROGRAM_ID, getAssociatedTokenAddressSync, diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json b/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json index 204e8ad6e..befffb0a7 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json +++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/package.json @@ -11,7 +11,7 @@ "dependencies": { "@chakra-ui/next-js": "^2.1.3", "@chakra-ui/react": "^2.6.1", - "@coral-xyz/anchor": "^0.30.0", + "@anchor-lang/core": "1.0.0-rc.5", "@coral-xyz/spl-token": "0.30.0", "@emotion/react": "^11.11.0", "@emotion/styled": "^11.11.0", diff --git a/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/utils/anchor.ts b/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/utils/anchor.ts index 63933a1f4..fe83416f4 100644 --- a/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/utils/anchor.ts +++ b/tokens/token-2022/nft-meta-data-pointer/anchor-example/app/utils/anchor.ts @@ -1,4 +1,4 @@ -import { BN, type IdlAccounts, Program } from '@coral-xyz/anchor'; +import { BN, type IdlAccounts, Program } from '@anchor-lang/core'; import { PublicKey } from '@solana/web3.js'; import { type ExtensionNft, IDL } from '../idl/extension_nft'; import { WrappedConnection } from './wrappedConnection'; diff --git a/tokens/token-2022/non-transferable/anchor/Anchor.toml b/tokens/token-2022/non-transferable/anchor/Anchor.toml index 2c54ba3a5..ff3f4fc51 100644 --- a/tokens/token-2022/non-transferable/anchor/Anchor.toml +++ b/tokens/token-2022/non-transferable/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] non_transferable = "8Bz4wpHaUckiC169Rg5ZfaBHFemp5S8RwTSDTKzhJ9W" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/non-transferable/anchor/migrations/deploy.ts b/tokens/token-2022/non-transferable/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/non-transferable/anchor/migrations/deploy.ts +++ b/tokens/token-2022/non-transferable/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/non-transferable/anchor/package.json b/tokens/token-2022/non-transferable/anchor/package.json index 7579ebd8d..f800607c4 100644 --- a/tokens/token-2022/non-transferable/anchor/package.json +++ b/tokens/token-2022/non-transferable/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/non-transferable/anchor/programs/non-transferable/Cargo.toml b/tokens/token-2022/non-transferable/anchor/programs/non-transferable/Cargo.toml index fcc75d7ad..749c0e75b 100644 --- a/tokens/token-2022/non-transferable/anchor/programs/non-transferable/Cargo.toml +++ b/tokens/token-2022/non-transferable/anchor/programs/non-transferable/Cargo.toml @@ -17,5 +17,5 @@ no-log-ix-name = [] idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release diff --git a/tokens/token-2022/non-transferable/anchor/programs/non-transferable/src/lib.rs b/tokens/token-2022/non-transferable/anchor/programs/non-transferable/src/lib.rs index d3ff314be..05d096f72 100644 --- a/tokens/token-2022/non-transferable/anchor/programs/non-transferable/src/lib.rs +++ b/tokens/token-2022/non-transferable/anchor/programs/non-transferable/src/lib.rs @@ -28,7 +28,7 @@ pub mod non_transferable { // Invoke System Program to create new account with space for mint and extension data create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.mint_account.to_account_info(), @@ -42,7 +42,7 @@ pub mod non_transferable { // Initialize the NonTransferable extension // This instruction must come before the instruction to initialize the mint data non_transferable_mint_initialize(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), NonTransferableMintInitialize { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), @@ -52,7 +52,7 @@ pub mod non_transferable { // Initialize the standard mint account data initialize_mint2( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InitializeMint2 { mint: ctx.accounts.mint_account.to_account_info(), }, diff --git a/tokens/token-2022/non-transferable/anchor/tests/non-transferable.ts b/tokens/token-2022/non-transferable/anchor/tests/non-transferable.ts index 6e259b018..112a9eb13 100644 --- a/tokens/token-2022/non-transferable/anchor/tests/non-transferable.ts +++ b/tokens/token-2022/non-transferable/anchor/tests/non-transferable.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { ASSOCIATED_TOKEN_PROGRAM_ID, getOrCreateAssociatedTokenAccount, mintTo, TOKEN_2022_PROGRAM_ID, transfer } from '@solana/spl-token'; import type { NonTransferable } from '../target/types/non_transferable'; diff --git a/tokens/token-2022/permanent-delegate/anchor/Anchor.toml b/tokens/token-2022/permanent-delegate/anchor/Anchor.toml index 35d7414ff..5482905c8 100644 --- a/tokens/token-2022/permanent-delegate/anchor/Anchor.toml +++ b/tokens/token-2022/permanent-delegate/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] permanent_delegate = "A9rxKS84ZoJVyeTfQbCEfxME2vvAM4uwSMjkmhR5XWb1" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/permanent-delegate/anchor/migrations/deploy.ts b/tokens/token-2022/permanent-delegate/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/permanent-delegate/anchor/migrations/deploy.ts +++ b/tokens/token-2022/permanent-delegate/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/permanent-delegate/anchor/package.json b/tokens/token-2022/permanent-delegate/anchor/package.json index 572adc73a..f800607c4 100644 --- a/tokens/token-2022/permanent-delegate/anchor/package.json +++ b/tokens/token-2022/permanent-delegate/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/permanent-delegate/anchor/programs/permanent-delegate/Cargo.toml b/tokens/token-2022/permanent-delegate/anchor/programs/permanent-delegate/Cargo.toml index f55f0fe68..41b66d80e 100644 --- a/tokens/token-2022/permanent-delegate/anchor/programs/permanent-delegate/Cargo.toml +++ b/tokens/token-2022/permanent-delegate/anchor/programs/permanent-delegate/Cargo.toml @@ -21,8 +21,8 @@ custom-panic = [] [dependencies] -anchor-lang = "0.32.1" -anchor-spl = "0.32.1" +anchor-lang = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-2022/permanent-delegate/anchor/tests/permanent-delegate.ts b/tokens/token-2022/permanent-delegate/anchor/tests/permanent-delegate.ts index 67396b98b..0c9da2467 100644 --- a/tokens/token-2022/permanent-delegate/anchor/tests/permanent-delegate.ts +++ b/tokens/token-2022/permanent-delegate/anchor/tests/permanent-delegate.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { burnChecked, createAccount, getAccount, mintTo, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'; import type { PermanentDelegate } from '../target/types/permanent_delegate'; diff --git a/tokens/token-2022/transfer-fee/anchor/Anchor.toml b/tokens/token-2022/transfer-fee/anchor/Anchor.toml index a104ba9d9..6759948ba 100644 --- a/tokens/token-2022/transfer-fee/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-fee/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] transfer_fee = "4evptdGtALCNT8uTxJhbWBRZpBE8w5oNtmgfSyfQu7td" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/transfer-fee/anchor/migrations/deploy.ts b/tokens/token-2022/transfer-fee/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/transfer-fee/anchor/migrations/deploy.ts +++ b/tokens/token-2022/transfer-fee/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/transfer-fee/anchor/package.json b/tokens/token-2022/transfer-fee/anchor/package.json index 572adc73a..f800607c4 100644 --- a/tokens/token-2022/transfer-fee/anchor/package.json +++ b/tokens/token-2022/transfer-fee/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/Cargo.toml b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/Cargo.toml index 711e9f739..a3ac9f655 100644 --- a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/Cargo.toml +++ b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/Cargo.toml @@ -17,5 +17,5 @@ no-log-ix-name = [] idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = "0.32.1" +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release diff --git a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/harvest.rs b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/harvest.rs index 92975613e..8cf41c2b8 100644 --- a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/harvest.rs +++ b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/harvest.rs @@ -12,7 +12,7 @@ pub struct Harvest<'info> { // transfer fees are stored directly on the recipient token account and must be "harvested" // "harvesting" transfers fees accumulated on token accounts to the mint account -pub fn process_harvest<'info>(ctx: Context<'_, '_, 'info, 'info, Harvest<'info>>) -> Result<()> { +pub fn process_harvest<'info>(ctx: Context<'info, Harvest<'info>>) -> Result<()> { // Using remaining accounts to allow for passing in an unknown number of token accounts to harvest from // Check that remaining accounts are token accounts for the mint to harvest to let sources = ctx @@ -28,7 +28,7 @@ pub fn process_harvest<'info>(ctx: Context<'_, '_, 'info, 'info, Harvest<'info>> harvest_withheld_tokens_to_mint( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), HarvestWithheldTokensToMint { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/initialize.rs b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/initialize.rs index 4de5e2573..a80f225fb 100644 --- a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/initialize.rs +++ b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/initialize.rs @@ -47,7 +47,7 @@ pub fn process_initialize( // Invoke System Program to create new account with space for mint and extension data create_account( CpiContext::new( - ctx.accounts.system_program.to_account_info(), + ctx.accounts.system_program.key(), CreateAccount { from: ctx.accounts.payer.to_account_info(), to: ctx.accounts.mint_account.to_account_info(), @@ -62,7 +62,7 @@ pub fn process_initialize( // This instruction must come before the instruction to initialize the mint data transfer_fee_initialize( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TransferFeeInitialize { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), @@ -77,7 +77,7 @@ pub fn process_initialize( // Initialize the standard mint account data initialize_mint2( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), InitializeMint2 { mint: ctx.accounts.mint_account.to_account_info(), }, diff --git a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/transfer.rs b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/transfer.rs index a572046f3..cb23d217a 100644 --- a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/transfer.rs +++ b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/transfer.rs @@ -59,7 +59,7 @@ pub fn process_transfer(ctx: Context, amount: u64) -> Result<()> { transfer_checked_with_fee( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TransferCheckedWithFee { token_program_id: ctx.accounts.token_program.to_account_info(), source: ctx.accounts.sender_token_account.to_account_info(), diff --git a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/update_fee.rs b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/update_fee.rs index cc1a7c7ce..6df947ef5 100644 --- a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/update_fee.rs +++ b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/update_fee.rs @@ -20,7 +20,7 @@ pub fn process_update_fee( ) -> Result<()> { transfer_fee_set( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TransferFeeSetTransferFee { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/withdraw.rs b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/withdraw.rs index c54902985..c202f8bd5 100644 --- a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/withdraw.rs +++ b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/instructions/withdraw.rs @@ -19,7 +19,7 @@ pub struct Withdraw<'info> { // this transfers fees on the mint account to the specified token account pub fn process_withdraw(ctx: Context) -> Result<()> { withdraw_withheld_tokens_from_mint(CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), WithdrawWithheldTokensFromMint { token_program_id: ctx.accounts.token_program.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/lib.rs b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/lib.rs index b4167d1e6..f264757c3 100644 --- a/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/lib.rs +++ b/tokens/token-2022/transfer-fee/anchor/programs/transfer-fee/src/lib.rs @@ -21,7 +21,7 @@ pub mod transfer_fee { process_transfer(ctx, amount) } - pub fn harvest<'info>(ctx: Context<'_, '_, 'info, 'info, Harvest<'info>>) -> Result<()> { + pub fn harvest<'info>(ctx: Context<'info, Harvest<'info>>) -> Result<()> { process_harvest(ctx) } diff --git a/tokens/token-2022/transfer-fee/anchor/tests/transfer-fee.ts b/tokens/token-2022/transfer-fee/anchor/tests/transfer-fee.ts index 25c753b70..e717fb53a 100644 --- a/tokens/token-2022/transfer-fee/anchor/tests/transfer-fee.ts +++ b/tokens/token-2022/transfer-fee/anchor/tests/transfer-fee.ts @@ -1,6 +1,6 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; -import { ASSOCIATED_PROGRAM_ID } from '@coral-xyz/anchor/dist/cjs/utils/token'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; +import { ASSOCIATED_PROGRAM_ID } from '@anchor-lang/core/dist/cjs/utils/token'; import { getAssociatedTokenAddressSync, getOrCreateAssociatedTokenAccount, mintTo, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token'; import type { TransferFee } from '../target/types/transfer_fee'; diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml index 5faa62aae..3ad7e2a52 100644 --- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/Anchor.toml @@ -1,12 +1,14 @@ [toolchain] -anchor_version = "0.32.1" solana_version = "3.1.8" +[features] +resolution = true +skip-lint = false + [programs.localnet] transfer_hook = "1qahDxKHeCLZhbBU2NyMU6vQCQmEUmdeSEBrG5drffK" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/migrations/deploy.ts b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/migrations/deploy.ts +++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json index 3a8551de1..3c254f5f9 100644 --- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json +++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.0", "@solana/web3.js": "^1.98.4" }, @@ -19,6 +19,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/Cargo.toml b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/Cargo.toml index d7efe8cf5..ff4cc96fd 100644 --- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/Cargo.toml +++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/Cargo.toml @@ -20,8 +20,10 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["interface-instructions"] } -anchor-spl = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +anchor-spl = "1.0.0-rc.5" +spl-discriminator = "0.4.1" spl-tlv-account-resolution = "0.9.0" spl-transfer-hook-interface = "0.9.0" diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/src/lib.rs b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/src/lib.rs index 7979c1e93..c485708a6 100644 --- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/src/lib.rs +++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/programs/transfer-hook/src/lib.rs @@ -18,7 +18,10 @@ use anchor_spl::{ use spl_tlv_account_resolution::{ account::ExtraAccountMeta, seeds::Seed, state::ExtraAccountMetaList, }; -use spl_transfer_hook_interface::instruction::ExecuteInstruction; +use spl_discriminator::SplDiscriminate; +use spl_transfer_hook_interface::instruction::{ + ExecuteInstruction, InitializeExtraAccountMetaListInstruction, +}; declare_id!("1qahDxKHeCLZhbBU2NyMU6vQCQmEUmdeSEBrG5drffK"); @@ -34,22 +37,24 @@ pub enum TransferError { pub mod transfer_hook { use super::*; - #[interface(spl_transfer_hook_interface::initialize_extra_account_meta_list)] + #[instruction(discriminator = InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn initialize_extra_account_meta_list( ctx: Context, ) -> Result<()> { let extra_account_metas = InitializeExtraAccountMetaList::extra_account_metas()?; // initialize ExtraAccountMetaList account with extra accounts + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types ExtraAccountMetaList::init::( &mut ctx.accounts.extra_account_meta_list.try_borrow_mut_data()?, &extra_account_metas, - )?; + ).map_err(|_| ProgramError::InvalidAccountData)?; Ok(()) } - #[interface(spl_transfer_hook_interface::execute)] + #[instruction(discriminator = ExecuteInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn transfer_hook(ctx: Context, amount: u64) -> Result<()> { // Fail this instruction if it is not called from within a transfer hook check_is_transferring(&ctx)?; @@ -77,8 +82,12 @@ pub mod transfer_hook { fn check_is_transferring(ctx: &Context) -> Result<()> { let source_token_info = ctx.accounts.source_token.to_account_info(); let mut account_data_ref: RefMut<&mut [u8]> = source_token_info.try_borrow_mut_data()?; - let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref)?; - let account_extension = account.get_extension_mut::()?; + // .map_err() needed because spl-token-2022 uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types + let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref) + .map_err(|_| ProgramError::InvalidAccountData)?; + let account_extension = account.get_extension_mut::() + .map_err(|_| ProgramError::InvalidAccountData)?; if !bool::from(account_extension.transferring) { return err!(TransferError::IsNotCurrentlyTransferring); @@ -97,12 +106,13 @@ pub struct InitializeExtraAccountMetaList<'info> { init, seeds = [b"extra-account-metas", mint.key().as_ref()], bump, + // size_of returns Result with spl's ProgramError — unwrap is safe for known-good input space = ExtraAccountMetaList::size_of( - InitializeExtraAccountMetaList::extra_account_metas()?.len() - )?, + InitializeExtraAccountMetaList::extra_account_metas_count() + ).unwrap(), payer = payer )] - pub extra_account_meta_list: AccountInfo<'info>, + pub extra_account_meta_list: UncheckedAccount<'info>, pub mint: InterfaceAccount<'info, Mint>, #[account(init, seeds = [b"counter", payer.key().as_ref()], bump, payer = payer, space = 16)] pub counter_account: Account<'info, CounterAccount>, @@ -114,6 +124,8 @@ pub struct InitializeExtraAccountMetaList<'info> { // Define extra account metas to store on extra_account_meta_list account impl<'info> InitializeExtraAccountMetaList<'info> { pub fn extra_account_metas() -> Result> { + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types Ok(vec![ExtraAccountMeta::new_with_seeds( &[ Seed::Literal { @@ -127,7 +139,12 @@ impl<'info> InitializeExtraAccountMetaList<'info> { ], false, // is_signer true, // is_writable - )?]) + ).map_err(|_| ProgramError::InvalidArgument)?]) + } + + /// Returns the count of extra account metas (avoids the error conversion issue in #[account] attributes) + pub fn extra_account_metas_count() -> usize { + 1 // one extra account: the counter PDA } } diff --git a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts index 68896aa5b..cac2820fe 100644 --- a/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/account-data-as-seed/anchor/tests/transfer-hook.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { ASSOCIATED_TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml index 66e9fd32d..f449ee744 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/Anchor.toml @@ -9,8 +9,7 @@ skip-lint = false [programs.localnet] abl-token = "EYBRvArz4kb5YLtzjD4TW6DbWhS8qjcMYqBU4wHLW3qj" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml index 98e8be9db..60684ee07 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/Cargo.toml @@ -21,13 +21,14 @@ custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["interface-instructions"] } -anchor-spl = { version = "0.32.1", features = [ +# Anchor 1.0.0-rc.5 — pin to RC until stable release +# interface-instructions feature removed in Anchor 1.0 +anchor-lang = "1.0.0-rc.5" +anchor-spl = { version = "1.0.0-rc.5", features = [ "token_2022_extensions", "token_2022", ] } - spl-tlv-account-resolution = "0.11.1" spl-transfer-hook-interface = { version = "2.1.0" } spl-discriminator = "0.5.1" diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs index 74fb29138..fe8c10d54 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/attach_to_mint.rs @@ -43,7 +43,7 @@ impl AttachToMint<'_> { authority: self.payer.to_account_info(), }; - let ctx = CpiContext::new(self.token_program.to_account_info(), tx_hook_accs); + let ctx = CpiContext::new(self.token_program.key(), tx_hook_accs); transfer_hook_update(ctx, Some(crate::ID_CONST))?; diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/change_mode.rs b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/change_mode.rs index 1f790176f..f0071a45c 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/change_mode.rs +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/change_mode.rs @@ -44,7 +44,7 @@ impl ChangeMode<'_> { update_authority: self.authority.to_account_info(), program_id: self.token_program.to_account_info(), }; - let cpi_program = self.token_program.to_account_info(); + let cpi_program = self.token_program.key(); let cpi_ctx = CpiContext::new(cpi_program, cpi_accounts); token_metadata_update_field(cpi_ctx, Field::Key("AB".to_string()), args.mode.to_string())?; @@ -61,7 +61,7 @@ impl ChangeMode<'_> { update_authority: self.authority.to_account_info(), program_id: self.token_program.to_account_info(), }; - let cpi_program = self.token_program.to_account_info(); + let cpi_program = self.token_program.key(); let cpi_ctx = CpiContext::new(cpi_program, cpi_accounts); token_metadata_update_field( diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs index 027b45434..7c0e0c812 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/programs/abl-token/src/instructions/init_mint.rs @@ -59,7 +59,7 @@ impl InitMint<'_> { mint_authority: self.payer.to_account_info(), update_authority: self.payer.to_account_info(), }; - let cpi_ctx = CpiContext::new(self.token_program.to_account_info(), cpi_accounts); + let cpi_ctx = CpiContext::new(self.token_program.key(), cpi_accounts); token_metadata_initialize(cpi_ctx, args.name, args.symbol, args.uri)?; let cpi_accounts = TokenMetadataUpdateField { @@ -68,7 +68,7 @@ impl InitMint<'_> { program_id: self.token_program.to_account_info(), }; - let cpi_ctx = CpiContext::new(self.token_program.to_account_info(), cpi_accounts); + let cpi_ctx = CpiContext::new(self.token_program.key(), cpi_accounts); token_metadata_update_field(cpi_ctx, Field::Key("AB".to_string()), args.mode.to_string())?; @@ -78,7 +78,7 @@ impl InitMint<'_> { update_authority: self.payer.to_account_info(), program_id: self.token_program.to_account_info(), }; - let cpi_ctx = CpiContext::new(self.token_program.to_account_info(), cpi_accounts); + let cpi_ctx = CpiContext::new(self.token_program.key(), cpi_accounts); token_metadata_update_field( cpi_ctx, diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/src/abl-token-exports.ts b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/src/abl-token-exports.ts index b93bad846..6d4b27af6 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/src/abl-token-exports.ts +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/src/abl-token-exports.ts @@ -1,5 +1,5 @@ // Here we export some useful types and functions for interacting with the Anchor program. -import { AnchorProvider, Program } from '@coral-xyz/anchor'; +import { AnchorProvider, Program } from '@anchor-lang/core'; import { Cluster, PublicKey } from '@solana/web3.js'; import ABLTokenIDL from '../target/idl/abl_token.json'; import type { AblToken } from '../target/types/abl_token'; diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests/basic.test.ts b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests/basic.test.ts index 9089fb240..c024a5251 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests/basic.test.ts +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/anchor/tests/basic.test.ts @@ -1,5 +1,5 @@ -import * as anchor from '@coral-xyz/anchor'; -import { Program } from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; +import { Program } from '@anchor-lang/core'; import { AblToken } from '../target/types/abl_token'; describe('abl-token', () => { diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/package.json b/tokens/token-2022/transfer-hook/allow-block-list-token/package.json index 4bb92fda3..e6885b10e 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/package.json +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/package.json @@ -16,7 +16,7 @@ "start": "next start" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-label": "^2.1.7", diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-data-access.tsx b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-data-access.tsx index 3e23ab8c5..3b1194a3e 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-data-access.tsx +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-data-access.tsx @@ -9,7 +9,7 @@ import { useCluster } from '../cluster/cluster-data-access' import { useAnchorProvider } from '../solana/solana-provider' import { useTransactionToast } from '../use-transaction-toast' import { toast } from 'sonner' -import { BN } from '@coral-xyz/anchor' +import { BN } from '@anchor-lang/core' import { createAssociatedTokenAccountIdempotentInstruction, createMintToCheckedInstruction, getAssociatedTokenAddressSync, getMint, getPermanentDelegate, getTokenMetadata, getTransferHook, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token' export function useHasTransferHookEnabled(mint: PublicKey) { diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-manage-token-detail.tsx b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-manage-token-detail.tsx index f6b98ea10..22e811a7d 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-manage-token-detail.tsx +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-manage-token-detail.tsx @@ -6,7 +6,7 @@ import { useParams } from 'next/navigation' import React from 'react' import { useAblTokenProgram, useGetToken } from './abl-token-data-access' import { PublicKey } from '@solana/web3.js' -import { BN } from '@coral-xyz/anchor' +import { BN } from '@anchor-lang/core' import { Button } from '@/components/ui/button' interface TokenInfo { diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-ui.tsx b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-ui.tsx index eac24dc4b..6c0b7ff7b 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-ui.tsx +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/abl-token/abl-token-ui.tsx @@ -3,7 +3,7 @@ import { PublicKey } from '@solana/web3.js' import { useAblTokenProgram } from './abl-token-data-access' import { Button } from '@/components/ui/button' -import { BN } from '@coral-xyz/anchor' +import { BN } from '@anchor-lang/core' import React from 'react' import { useWallet } from '@solana/wallet-adapter-react' diff --git a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/solana/solana-provider.tsx b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/solana/solana-provider.tsx index 58b31c335..43e29b2ba 100644 --- a/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/solana/solana-provider.tsx +++ b/tokens/token-2022/transfer-hook/allow-block-list-token/src/components/solana/solana-provider.tsx @@ -13,7 +13,7 @@ import dynamic from 'next/dynamic' import { ReactNode, useCallback, useMemo } from 'react' import { useCluster } from '../cluster/cluster-data-access' import '@solana/wallet-adapter-react-ui/styles.css' -import { AnchorProvider } from '@coral-xyz/anchor' +import { AnchorProvider } from '@anchor-lang/core' export const WalletButton = dynamic(async () => (await import('@solana/wallet-adapter-react-ui')).WalletMultiButton, { ssr: false, diff --git a/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml index 5faa62aae..3ad7e2a52 100644 --- a/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-hook/counter/anchor/Anchor.toml @@ -1,12 +1,14 @@ [toolchain] -anchor_version = "0.32.1" solana_version = "3.1.8" +[features] +resolution = true +skip-lint = false + [programs.localnet] transfer_hook = "1qahDxKHeCLZhbBU2NyMU6vQCQmEUmdeSEBrG5drffK" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/transfer-hook/counter/anchor/migrations/deploy.ts b/tokens/token-2022/transfer-hook/counter/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/transfer-hook/counter/anchor/migrations/deploy.ts +++ b/tokens/token-2022/transfer-hook/counter/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/transfer-hook/counter/anchor/package.json b/tokens/token-2022/transfer-hook/counter/anchor/package.json index 88d262ee7..3c254f5f9 100644 --- a/tokens/token-2022/transfer-hook/counter/anchor/package.json +++ b/tokens/token-2022/transfer-hook/counter/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.0", "@solana/web3.js": "^1.98.4" }, @@ -19,6 +19,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/Cargo.toml b/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/Cargo.toml index d7efe8cf5..ff4cc96fd 100644 --- a/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/Cargo.toml +++ b/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/Cargo.toml @@ -20,8 +20,10 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["interface-instructions"] } -anchor-spl = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +anchor-spl = "1.0.0-rc.5" +spl-discriminator = "0.4.1" spl-tlv-account-resolution = "0.9.0" spl-transfer-hook-interface = "0.9.0" diff --git a/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/src/lib.rs b/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/src/lib.rs index c8e9af22b..61d6815b7 100644 --- a/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/src/lib.rs +++ b/tokens/token-2022/transfer-hook/counter/anchor/programs/transfer-hook/src/lib.rs @@ -18,7 +18,10 @@ use anchor_spl::{ use spl_tlv_account_resolution::{ account::ExtraAccountMeta, seeds::Seed, state::ExtraAccountMetaList, }; -use spl_transfer_hook_interface::instruction::ExecuteInstruction; +use spl_discriminator::SplDiscriminate; +use spl_transfer_hook_interface::instruction::{ + ExecuteInstruction, InitializeExtraAccountMetaListInstruction, +}; declare_id!("1qahDxKHeCLZhbBU2NyMU6vQCQmEUmdeSEBrG5drffK"); @@ -34,22 +37,24 @@ pub enum TransferError { pub mod transfer_hook { use super::*; - #[interface(spl_transfer_hook_interface::initialize_extra_account_meta_list)] + #[instruction(discriminator = InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn initialize_extra_account_meta_list( ctx: Context, ) -> Result<()> { let extra_account_metas = InitializeExtraAccountMetaList::extra_account_metas()?; // initialize ExtraAccountMetaList account with extra accounts + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types ExtraAccountMetaList::init::( &mut ctx.accounts.extra_account_meta_list.try_borrow_mut_data()?, &extra_account_metas, - )?; + ).map_err(|_| ProgramError::InvalidAccountData)?; Ok(()) } - #[interface(spl_transfer_hook_interface::execute)] + #[instruction(discriminator = ExecuteInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn transfer_hook(ctx: Context, amount: u64) -> Result<()> { // Fail this instruction if it is not called from within a transfer hook check_is_transferring(&ctx)?; @@ -97,9 +102,10 @@ pub struct InitializeExtraAccountMetaList<'info> { init, seeds = [b"extra-account-metas", mint.key().as_ref()], bump, + // size_of returns Result with spl's ProgramError — unwrap is safe for known-good input space = ExtraAccountMetaList::size_of( - InitializeExtraAccountMetaList::extra_account_metas()?.len() - )?, + InitializeExtraAccountMetaList::extra_account_metas_count() + ).unwrap(), payer = payer )] pub extra_account_meta_list: AccountInfo<'info>, @@ -114,13 +120,20 @@ pub struct InitializeExtraAccountMetaList<'info> { // Define extra account metas to store on extra_account_meta_list account impl<'info> InitializeExtraAccountMetaList<'info> { pub fn extra_account_metas() -> Result> { + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types Ok(vec![ExtraAccountMeta::new_with_seeds( &[Seed::Literal { bytes: b"counter".to_vec(), }], false, // is_signer true, // is_writable - )?]) + ).map_err(|_| ProgramError::InvalidArgument)?]) + } + + /// Returns the count of extra account metas (avoids the error conversion issue in #[account] attributes) + pub fn extra_account_metas_count() -> usize { + 1 // one extra account: the counter PDA } } diff --git a/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts index b90acc5ed..1ace10b1a 100644 --- a/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/counter/anchor/tests/transfer-hook.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { ASSOCIATED_TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml index a661fc8d5..9f5b53b64 100644 --- a/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-hook/hello-world/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] transfer_hook = "jY5DfVksJT8Le38LCaQhz5USeiGu4rUeVSS8QRAMoba" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/migrations/deploy.ts b/tokens/token-2022/transfer-hook/hello-world/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/transfer-hook/hello-world/anchor/migrations/deploy.ts +++ b/tokens/token-2022/transfer-hook/hello-world/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/package.json b/tokens/token-2022/transfer-hook/hello-world/anchor/package.json index 88d262ee7..3c254f5f9 100644 --- a/tokens/token-2022/transfer-hook/hello-world/anchor/package.json +++ b/tokens/token-2022/transfer-hook/hello-world/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.0", "@solana/web3.js": "^1.98.4" }, @@ -19,6 +19,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/Cargo.toml b/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/Cargo.toml index d7efe8cf5..ff4cc96fd 100644 --- a/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/Cargo.toml +++ b/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/Cargo.toml @@ -20,8 +20,10 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["interface-instructions"] } -anchor-spl = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +anchor-spl = "1.0.0-rc.5" +spl-discriminator = "0.4.1" spl-tlv-account-resolution = "0.9.0" spl-transfer-hook-interface = "0.9.0" diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/src/lib.rs b/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/src/lib.rs index a4d48b29e..c036cdf5d 100644 --- a/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/src/lib.rs +++ b/tokens/token-2022/transfer-hook/hello-world/anchor/programs/transfer-hook/src/lib.rs @@ -23,7 +23,10 @@ use anchor_spl::{ }, }; use spl_tlv_account_resolution::{account::ExtraAccountMeta, state::ExtraAccountMetaList}; -use spl_transfer_hook_interface::instruction::ExecuteInstruction; +use spl_discriminator::SplDiscriminate; +use spl_transfer_hook_interface::instruction::{ + ExecuteInstruction, InitializeExtraAccountMetaListInstruction, +}; declare_id!("jY5DfVksJT8Le38LCaQhz5USeiGu4rUeVSS8QRAMoba"); @@ -43,22 +46,24 @@ pub mod transfer_hook { Ok(()) } - #[interface(spl_transfer_hook_interface::initialize_extra_account_meta_list)] + #[instruction(discriminator = InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn initialize_extra_account_meta_list( ctx: Context, ) -> Result<()> { let extra_account_metas = InitializeExtraAccountMetaList::extra_account_metas()?; // initialize ExtraAccountMetaList account with extra accounts + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types ExtraAccountMetaList::init::( &mut ctx.accounts.extra_account_meta_list.try_borrow_mut_data()?, &extra_account_metas, - )?; + ).map_err(|_| ProgramError::InvalidAccountData)?; Ok(()) } - #[interface(spl_transfer_hook_interface::execute)] + #[instruction(discriminator = ExecuteInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn transfer_hook(ctx: Context, _amount: u64) -> Result<()> { // Fail this instruction if it is not called from within a transfer hook check_is_transferring(&ctx)?; @@ -72,8 +77,12 @@ pub mod transfer_hook { fn check_is_transferring(ctx: &Context) -> Result<()> { let source_token_info = ctx.accounts.source_token.to_account_info(); let mut account_data_ref: RefMut<&mut [u8]> = source_token_info.try_borrow_mut_data()?; - let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref)?; - let account_extension = account.get_extension_mut::()?; + // .map_err() needed because spl-token-2022 uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types + let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref) + .map_err(|_| ProgramError::InvalidAccountData)?; + let account_extension = account.get_extension_mut::() + .map_err(|_| ProgramError::InvalidAccountData)?; if !bool::from(account_extension.transferring) { return err!(TransferError::IsNotCurrentlyTransferring); @@ -106,17 +115,23 @@ impl<'info> Initialize<'info> { pub fn check_mint_data(&self) -> Result<()> { let mint = &self.mint_account.to_account_info(); let mint_data = mint.data.borrow(); - let mint_with_extension = StateWithExtensions::::unpack(&mint_data)?; - let extension_data = mint_with_extension.get_extension::()?; + // .map_err() needed because spl-token-2022 uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types + let mint_with_extension = StateWithExtensions::::unpack(&mint_data) + .map_err(|_| ProgramError::InvalidAccountData)?; + let extension_data = mint_with_extension.get_extension::() + .map_err(|_| ProgramError::InvalidAccountData)?; assert_eq!( extension_data.authority, - OptionalNonZeroPubkey::try_from(Some(self.payer.key()))? + OptionalNonZeroPubkey::try_from(Some(self.payer.key())) + .map_err(|_| ProgramError::InvalidArgument)? ); assert_eq!( extension_data.program_id, - OptionalNonZeroPubkey::try_from(Some(crate::ID))? + OptionalNonZeroPubkey::try_from(Some(crate::ID)) + .map_err(|_| ProgramError::InvalidArgument)? ); msg!("{:?}", extension_data); @@ -134,9 +149,10 @@ pub struct InitializeExtraAccountMetaList<'info> { init, seeds = [b"extra-account-metas", mint.key().as_ref()], bump, + // size_of returns Result with spl's ProgramError — unwrap is safe for known-good input space = ExtraAccountMetaList::size_of( - InitializeExtraAccountMetaList::extra_account_metas()?.len() - )?, + InitializeExtraAccountMetaList::extra_account_metas_count() + ).unwrap(), payer = payer )] pub extra_account_meta_list: UncheckedAccount<'info>, @@ -152,6 +168,11 @@ impl<'info> InitializeExtraAccountMetaList<'info> { pub fn extra_account_metas() -> Result> { Ok(vec![]) } + + /// Returns the count of extra account metas (avoids the error conversion issue in #[account] attributes) + pub fn extra_account_metas_count() -> usize { + 0 // no extra accounts in this example + } } // Order of accounts matters for this struct. diff --git a/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts index 35f195989..7f1dd1825 100644 --- a/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/hello-world/anchor/tests/transfer-hook.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { ASSOCIATED_TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, diff --git a/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml index 5aaa6cf81..51735fcb2 100644 --- a/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-hook/transfer-cost/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] transfer_hook = "FjcHckEgXcBhFmSGai3FRpDLiT6hbpV893n8iTxVd81g" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/transfer-hook/transfer-cost/anchor/migrations/deploy.ts b/tokens/token-2022/transfer-hook/transfer-cost/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/transfer-hook/transfer-cost/anchor/migrations/deploy.ts +++ b/tokens/token-2022/transfer-hook/transfer-cost/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/transfer-hook/transfer-cost/anchor/package.json b/tokens/token-2022/transfer-hook/transfer-cost/anchor/package.json index c6ba75f27..4faaff4b4 100644 --- a/tokens/token-2022/transfer-hook/transfer-cost/anchor/package.json +++ b/tokens/token-2022/transfer-hook/transfer-cost/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.0" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/Cargo.toml b/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/Cargo.toml index bf6d0aafc..ff4cc96fd 100644 --- a/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/Cargo.toml +++ b/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/Cargo.toml @@ -20,8 +20,10 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = {version = "0.32.1", features = ["interface-instructions"]} -anchor-spl = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = "1.0.0-rc.5" +anchor-spl = "1.0.0-rc.5" +spl-discriminator = "0.4.1" spl-tlv-account-resolution = "0.9.0" spl-transfer-hook-interface = "0.9.0" diff --git a/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/src/lib.rs b/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/src/lib.rs index 250432c10..21c70dbfa 100644 --- a/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/src/lib.rs +++ b/tokens/token-2022/transfer-hook/transfer-cost/anchor/programs/transfer-hook/src/lib.rs @@ -14,7 +14,10 @@ use anchor_spl::{ use spl_tlv_account_resolution::{ account::ExtraAccountMeta, seeds::Seed, state::ExtraAccountMetaList, }; -use spl_transfer_hook_interface::instruction::ExecuteInstruction; +use spl_discriminator::SplDiscriminate; +use spl_transfer_hook_interface::instruction::{ + ExecuteInstruction, InitializeExtraAccountMetaListInstruction, +}; use std::{cell::RefMut, str::FromStr}; // transfer-hook program that charges a SOL fee on token transfer @@ -22,6 +25,12 @@ use std::{cell::RefMut, str::FromStr}; declare_id!("FjcHckEgXcBhFmSGai3FRpDLiT6hbpV893n8iTxVd81g"); +/// Convert anchor-lang's Pubkey (solana-pubkey 3.x) to the spl crate's Pubkey (solana-pubkey 2.x). +/// Both are #[repr(transparent)] over [u8; 32], so byte-level conversion is safe. +fn transmute_pubkey(key: &Pubkey) -> spl_tlv_account_resolution::solana_pubkey::Pubkey { + spl_tlv_account_resolution::solana_pubkey::Pubkey::from(key.to_bytes()) +} + #[error_code] pub enum TransferError { #[msg("Amount Too big")] @@ -34,22 +43,24 @@ pub enum TransferError { pub mod transfer_hook { use super::*; - #[interface(spl_transfer_hook_interface::initialize_extra_account_meta_list)] + #[instruction(discriminator = InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn initialize_extra_account_meta_list( ctx: Context, ) -> Result<()> { let extra_account_metas = InitializeExtraAccountMetaList::extra_account_metas()?; // initialize ExtraAccountMetaList account with extra accounts + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types ExtraAccountMetaList::init::( &mut ctx.accounts.extra_account_meta_list.try_borrow_mut_data()?, &extra_account_metas, - )?; + ).map_err(|_| ProgramError::InvalidAccountData)?; Ok(()) } - #[interface(spl_transfer_hook_interface::execute)] + #[instruction(discriminator = ExecuteInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn transfer_hook(ctx: Context, amount: u64) -> Result<()> { // Fail this instruction if it is not called from within a transfer hook check_is_transferring(&ctx)?; @@ -86,7 +97,7 @@ pub mod transfer_hook { // transfer lamports amount equal to token transfer amount transfer_checked( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), TransferChecked { from: ctx.accounts.sender_wsol_token_account.to_account_info(), mint: ctx.accounts.wsol_mint.to_account_info(), @@ -105,8 +116,12 @@ pub mod transfer_hook { fn check_is_transferring(ctx: &Context) -> Result<()> { let source_token_info = ctx.accounts.source_token.to_account_info(); let mut account_data_ref: RefMut<&mut [u8]> = source_token_info.try_borrow_mut_data()?; - let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref)?; - let account_extension = account.get_extension_mut::()?; + // .map_err() needed because spl-token-2022 uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types + let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref) + .map_err(|_| ProgramError::InvalidAccountData)?; + let account_extension = account.get_extension_mut::() + .map_err(|_| ProgramError::InvalidAccountData)?; if !bool::from(account_extension.transferring) { return err!(TransferError::IsNotCurrentlyTransferring); @@ -125,12 +140,13 @@ pub struct InitializeExtraAccountMetaList<'info> { init, seeds = [b"extra-account-metas", mint.key().as_ref()], bump, + // size_of returns Result with spl's ProgramError — unwrap is safe for known-good input space = ExtraAccountMetaList::size_of( - InitializeExtraAccountMetaList::extra_account_metas()?.len() - )?, + InitializeExtraAccountMetaList::extra_account_metas_count() + ).unwrap(), payer = payer )] - pub extra_account_meta_list: AccountInfo<'info>, + pub extra_account_meta_list: UncheckedAccount<'info>, pub mint: InterfaceAccount<'info, Mint>, #[account(init, seeds = [b"counter"], bump, payer = payer, space = 9)] pub counter_account: Account<'info, CounterAccount>, @@ -145,17 +161,27 @@ impl<'info> InitializeExtraAccountMetaList<'info> { // index 0-3 are the accounts required for token transfer (source, mint, destination, owner) // index 4 is address of ExtraAccountMetaList account + + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types. + // Pubkey types also differ (solana-pubkey 2.x vs 3.x), so we convert via bytes using + // transmute_pubkey() — both are #[repr(transparent)] over [u8; 32]. + let wsol_mint = transmute_pubkey( + &Pubkey::from_str("So11111111111111111111111111111111111111112").unwrap() + ); + let token_program_id = transmute_pubkey(&Token::id()); + let ata_program_id = transmute_pubkey(&AssociatedToken::id()); + Ok(vec![ // index 5, wrapped SOL mint - ExtraAccountMeta::new_with_pubkey( - &Pubkey::from_str("So11111111111111111111111111111111111111112").unwrap(), - false, - false, - )?, + ExtraAccountMeta::new_with_pubkey(&wsol_mint, false, false) + .map_err(|_| ProgramError::InvalidArgument)?, // index 6, token program (for wsol token transfer) - ExtraAccountMeta::new_with_pubkey(&Token::id(), false, false)?, + ExtraAccountMeta::new_with_pubkey(&token_program_id, false, false) + .map_err(|_| ProgramError::InvalidArgument)?, // index 7, associated token program - ExtraAccountMeta::new_with_pubkey(&AssociatedToken::id(), false, false)?, + ExtraAccountMeta::new_with_pubkey(&ata_program_id, false, false) + .map_err(|_| ProgramError::InvalidArgument)?, // index 8, delegate PDA ExtraAccountMeta::new_with_seeds( &[Seed::Literal { @@ -163,7 +189,7 @@ impl<'info> InitializeExtraAccountMetaList<'info> { }], false, // is_signer true, // is_writable - )?, + ).map_err(|_| ProgramError::InvalidArgument)?, // index 9, delegate wrapped SOL token account ExtraAccountMeta::new_external_pda_with_seeds( 7, // associated token program index @@ -174,7 +200,7 @@ impl<'info> InitializeExtraAccountMetaList<'info> { ], false, // is_signer true, // is_writable - )?, + ).map_err(|_| ProgramError::InvalidArgument)?, // index 10, sender wrapped SOL token account ExtraAccountMeta::new_external_pda_with_seeds( 7, // associated token program index @@ -185,16 +211,21 @@ impl<'info> InitializeExtraAccountMetaList<'info> { ], false, // is_signer true, // is_writable - )?, + ).map_err(|_| ProgramError::InvalidArgument)?, ExtraAccountMeta::new_with_seeds( &[Seed::Literal { bytes: b"counter".to_vec(), }], false, // is_signer true, // is_writable - )?, + ).map_err(|_| ProgramError::InvalidArgument)?, ]) } + + /// Returns the count of extra account metas (avoids the error conversion issue in #[account] attributes) + pub fn extra_account_metas_count() -> usize { + 7 // wsol_mint, token_program, ata_program, delegate, delegate_wsol, sender_wsol, counter + } } // Order of accounts matters for this struct. diff --git a/tokens/token-2022/transfer-hook/transfer-cost/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/transfer-cost/anchor/tests/transfer-hook.ts index b1bab5e9c..d1a806bfe 100644 --- a/tokens/token-2022/transfer-hook/transfer-cost/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/transfer-cost/anchor/tests/transfer-hook.ts @@ -1,6 +1,6 @@ import assert from 'node:assert'; -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { ASSOCIATED_TOKEN_PROGRAM_ID, createApproveInstruction, diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml index 0610aa05a..b0c291690 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] transfer_switch = "FjcHckEgXcBhFmSGai3FRpDLiT6hbpV893n8iTxVd81g" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json b/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json index b54cc1457..e65993ea8 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.0" }, "devDependencies": { diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/Cargo.toml b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/Cargo.toml index 75b9842cd..c3dc99a39 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/Cargo.toml +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/Cargo.toml @@ -20,8 +20,10 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = {version="0.32.1", features=["init-if-needed", "interface-instructions"]} -anchor-spl = {version="0.32.1"} +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } +anchor-spl = "1.0.0-rc.5" +spl-discriminator = "0.4.1" spl-tlv-account-resolution = "0.9.0" spl-transfer-hook-interface = "0.9.0" diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/initialise_extra_account_metas_list.rs b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/initialise_extra_account_metas_list.rs index c4a20f139..41e4b5127 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/initialise_extra_account_metas_list.rs +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/initialise_extra_account_metas_list.rs @@ -34,6 +34,8 @@ impl<'info> InitializeExtraAccountMetas<'info> { &self, bumps: InitializeExtraAccountMetasBumps, ) -> Result<()> { + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types let account_metas = vec![ // 5 - wallet (sender) config account ExtraAccountMeta::new_with_seeds( @@ -42,11 +44,12 @@ impl<'info> InitializeExtraAccountMetas<'info> { ], false, // is_signer false, // is_writable - )?, + ).map_err(|_| ProgramError::InvalidArgument)?, ]; // calculate account size - let account_size = ExtraAccountMetaList::size_of(account_metas.len())? as u64; + // unwrap is safe for known-good input (count of metas we just created) + let account_size = ExtraAccountMetaList::size_of(account_metas.len()).unwrap() as u64; // calculate minimum required lamports let lamports = Rent::get()?.minimum_balance(account_size as usize); @@ -60,7 +63,7 @@ impl<'info> InitializeExtraAccountMetas<'info> { create_account( CpiContext::new( - self.system_program.to_account_info(), + self.system_program.key(), CreateAccount { from: self.payer.to_account_info(), to: self.extra_account_metas_list.to_account_info(), @@ -76,7 +79,7 @@ impl<'info> InitializeExtraAccountMetas<'info> { ExtraAccountMetaList::init::( &mut self.extra_account_metas_list.try_borrow_mut_data()?, &account_metas, - )?; + ).map_err(|_| ProgramError::InvalidAccountData)?; Ok(()) } diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/switch.rs b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/switch.rs index ad264e70e..723efe6ee 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/switch.rs +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/switch.rs @@ -4,7 +4,6 @@ use { }; #[derive(Accounts)] -#[instruction(decimals: u8)] pub struct Switch<'info> { /// admin that controls the switch #[account(mut)] diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/transfer_hook.rs b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/transfer_hook.rs index c79e9cbb7..feacad9ff 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/transfer_hook.rs +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/instructions/transfer_hook.rs @@ -14,7 +14,6 @@ use { }; #[derive(Accounts)] -#[instruction(decimals: u8)] pub struct TransferHook<'info> { /// CHECK: Sender token account #[account()] @@ -58,8 +57,12 @@ impl<'info> TransferHook<'info> { pub fn assert_is_transferring(&self) -> Result<()> { let source_token_info = self.source_token_account.to_account_info(); let mut account_data_ref = source_token_info.try_borrow_mut_data()?; - let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref)?; - let account_extension = account.get_extension_mut::()?; + // .map_err() needed because spl-token-2022 uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types + let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref) + .map_err(|_| ProgramError::InvalidAccountData)?; + let account_extension = account.get_extension_mut::() + .map_err(|_| ProgramError::InvalidAccountData)?; if !bool::from(account_extension.transferring) { return err!(TransferError::IsNotCurrentlyTransferring); diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/lib.rs b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/lib.rs index efaf216da..358558a06 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/lib.rs +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/programs/transfer-switch/src/lib.rs @@ -4,6 +4,10 @@ mod state; use anchor_lang::prelude::*; use instructions::*; +use spl_discriminator::SplDiscriminate; +use spl_transfer_hook_interface::instruction::{ + ExecuteInstruction, InitializeExtraAccountMetaListInstruction, +}; declare_id!("FjcHckEgXcBhFmSGai3FRpDLiT6hbpV893n8iTxVd81g"); @@ -16,7 +20,7 @@ pub mod transfer_switch { ctx.accounts.configure_admin() } - #[interface(spl_transfer_hook_interface::initialize_extra_account_meta_list)] + #[instruction(discriminator = InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn initialize_extra_account_metas_list( ctx: Context, ) -> Result<()> { @@ -27,8 +31,8 @@ pub mod transfer_switch { ctx.accounts.switch(on) } - #[interface(spl_transfer_hook_interface::execute)] - pub fn transfer_hook(ctx: Context) -> Result<()> { + #[instruction(discriminator = ExecuteInstruction::SPL_DISCRIMINATOR_SLICE)] + pub fn transfer_hook(ctx: Context, _amount: u64) -> Result<()> { ctx.accounts.assert_is_transferring()?; ctx.accounts.assert_switch_is_on() } diff --git a/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/transfer-switch.ts b/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/transfer-switch.ts index b23782fa6..85969836f 100644 --- a/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/transfer-switch.ts +++ b/tokens/token-2022/transfer-hook/transfer-switch/anchor/tests/transfer-switch.ts @@ -1,5 +1,5 @@ import { describe, it } from "node:test"; -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { AccountLayout, ASSOCIATED_TOKEN_PROGRAM_ID, diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml index 59ec947df..356cfec90 100644 --- a/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml +++ b/tokens/token-2022/transfer-hook/whitelist/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] transfer_hook = "DrWbQtYJGtsoRwzKqAbHKHKsCJJfpysudF39GBVFSxub" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/migrations/deploy.ts b/tokens/token-2022/transfer-hook/whitelist/anchor/migrations/deploy.ts index 64a1c3599..cfcedbc47 100644 --- a/tokens/token-2022/transfer-hook/whitelist/anchor/migrations/deploy.ts +++ b/tokens/token-2022/transfer-hook/whitelist/anchor/migrations/deploy.ts @@ -2,7 +2,7 @@ // single deploy script that's invoked from the CLI, injecting a provider // configured from the workspace's Anchor.toml. -const anchor = require('@coral-xyz/anchor'); +const anchor = require('@anchor-lang/core'); module.exports = async (provider) => { // Configure client to use the provider. diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/package.json b/tokens/token-2022/transfer-hook/whitelist/anchor/package.json index 66c9208fa..908f2ae4d 100644 --- a/tokens/token-2022/transfer-hook/whitelist/anchor/package.json +++ b/tokens/token-2022/transfer-hook/whitelist/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.0" }, "devDependencies": { @@ -18,6 +18,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/Cargo.toml b/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/Cargo.toml index 80a504301..cf9678574 100644 --- a/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/Cargo.toml +++ b/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/Cargo.toml @@ -20,8 +20,10 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = {version = "0.32.1", features = ["interface-instructions", "init-if-needed"]} -anchor-spl = "0.32.1" +# Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } +anchor-spl = "1.0.0-rc.5" +spl-discriminator = "0.4.1" spl-tlv-account-resolution = "0.9.0" spl-transfer-hook-interface = "0.9.0" diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/src/lib.rs b/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/src/lib.rs index c80897e20..5ac0f64c3 100644 --- a/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/src/lib.rs +++ b/tokens/token-2022/transfer-hook/whitelist/anchor/programs/transfer-hook/src/lib.rs @@ -14,7 +14,10 @@ use anchor_spl::{ use spl_tlv_account_resolution::{ account::ExtraAccountMeta, seeds::Seed, state::ExtraAccountMetaList, }; -use spl_transfer_hook_interface::instruction::ExecuteInstruction; +use spl_discriminator::SplDiscriminate; +use spl_transfer_hook_interface::instruction::{ + ExecuteInstruction, InitializeExtraAccountMetaListInstruction, +}; declare_id!("DrWbQtYJGtsoRwzKqAbHKHKsCJJfpysudF39GBVFSxub"); @@ -28,7 +31,7 @@ pub enum TransferError { pub mod transfer_hook { use super::*; - #[interface(spl_transfer_hook_interface::initialize_extra_account_meta_list)] + #[instruction(discriminator = InitializeExtraAccountMetaListInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn initialize_extra_account_meta_list( ctx: Context, ) -> Result<()> { @@ -38,14 +41,16 @@ pub mod transfer_hook { let extra_account_metas = InitializeExtraAccountMetaList::extra_account_metas()?; // initialize ExtraAccountMetaList account with extra accounts + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types ExtraAccountMetaList::init::( &mut ctx.accounts.extra_account_meta_list.try_borrow_mut_data()?, &extra_account_metas, - )?; + ).map_err(|_| ProgramError::InvalidAccountData)?; Ok(()) } - #[interface(spl_transfer_hook_interface::execute)] + #[instruction(discriminator = ExecuteInstruction::SPL_DISCRIMINATOR_SLICE)] pub fn transfer_hook(ctx: Context, _amount: u64) -> Result<()> { // Fail this instruction if it is not called from within a transfer hook check_is_transferring(&ctx)?; @@ -89,8 +94,12 @@ pub mod transfer_hook { fn check_is_transferring(ctx: &Context) -> Result<()> { let source_token_info = ctx.accounts.source_token.to_account_info(); let mut account_data_ref: RefMut<&mut [u8]> = source_token_info.try_borrow_mut_data()?; - let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref)?; - let account_extension = account.get_extension_mut::()?; + // .map_err() needed because spl-token-2022 uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types + let mut account = PodStateWithExtensionsMut::::unpack(*account_data_ref) + .map_err(|_| ProgramError::InvalidAccountData)?; + let account_extension = account.get_extension_mut::() + .map_err(|_| ProgramError::InvalidAccountData)?; if !bool::from(account_extension.transferring) { return err!(TransferError::IsNotCurrentlyTransferring); @@ -109,12 +118,13 @@ pub struct InitializeExtraAccountMetaList<'info> { init, seeds = [b"extra-account-metas", mint.key().as_ref()], bump, + // size_of returns Result with spl's ProgramError — unwrap is safe for known-good input space = ExtraAccountMetaList::size_of( - InitializeExtraAccountMetaList::extra_account_metas()?.len() - )?, + InitializeExtraAccountMetaList::extra_account_metas_count() + ).unwrap(), payer = payer )] - pub extra_account_meta_list: AccountInfo<'info>, + pub extra_account_meta_list: UncheckedAccount<'info>, pub mint: InterfaceAccount<'info, Mint>, pub system_program: Program<'info, System>, #[account(init_if_needed, seeds = [b"white_list"], bump, payer = payer, space = 400)] @@ -124,13 +134,20 @@ pub struct InitializeExtraAccountMetaList<'info> { // Define extra account metas to store on extra_account_meta_list account impl<'info> InitializeExtraAccountMetaList<'info> { pub fn extra_account_metas() -> Result> { + // .map_err() needed because spl-tlv-account-resolution uses solana-program-error 2.x + // while anchor-lang 1.0 uses 3.x — structurally identical but different semver types Ok(vec![ExtraAccountMeta::new_with_seeds( &[Seed::Literal { bytes: "white_list".as_bytes().to_vec(), }], false, // is_signer true, // is_writable - )?]) + ).map_err(|_| ProgramError::InvalidArgument)?]) + } + + /// Returns the count of extra account metas (avoids the error conversion issue in #[account] attributes) + pub fn extra_account_metas_count() -> usize { + 1 // one extra account: the whitelist PDA } } @@ -158,7 +175,7 @@ pub struct TransferHook<'info> { pub struct AddToWhiteList<'info> { /// CHECK: New account to add to white list #[account()] - pub new_account: AccountInfo<'info>, + pub new_account: UncheckedAccount<'info>, #[account( mut, seeds = [b"white_list"], diff --git a/tokens/token-2022/transfer-hook/whitelist/anchor/tests/transfer-hook.ts b/tokens/token-2022/transfer-hook/whitelist/anchor/tests/transfer-hook.ts index 8701a5cda..3dd06a21c 100644 --- a/tokens/token-2022/transfer-hook/whitelist/anchor/tests/transfer-hook.ts +++ b/tokens/token-2022/transfer-hook/whitelist/anchor/tests/transfer-hook.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { ASSOCIATED_TOKEN_PROGRAM_ID, createAssociatedTokenAccountInstruction, diff --git a/tokens/token-fundraiser/anchor/Anchor.toml b/tokens/token-fundraiser/anchor/Anchor.toml index cf128d70d..237dbed3c 100644 --- a/tokens/token-fundraiser/anchor/Anchor.toml +++ b/tokens/token-fundraiser/anchor/Anchor.toml @@ -11,8 +11,7 @@ fundraiser = "Eoiuq1dXvHxh6dLx3wh9gj8kSAUpga11krTrbfF5XYsC" [programs.devnet] fundraiser = "Eoiuq1dXvHxh6dLx3wh9gj8kSAUpga11krTrbfF5XYsC" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "Localnet" diff --git a/tokens/token-fundraiser/anchor/Cargo.lock b/tokens/token-fundraiser/anchor/Cargo.lock index a61e8d524..2c19ef810 100644 --- a/tokens/token-fundraiser/anchor/Cargo.lock +++ b/tokens/token-fundraiser/anchor/Cargo.lock @@ -38,18 +38,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -61,11 +49,10 @@ dependencies = [ [[package]] name = "anchor-attribute-access-control" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a883ca44ef14b2113615fc6d3a85fefc68b5002034e88db37f7f1f802f88aa9" +checksum = "f3db7f5f8a6b16fa2b6e1b0222e656249c3abedf052e3943babf248929571204" dependencies = [ - "anchor-syn", "proc-macro2", "quote", "syn 1.0.109", @@ -73,12 +60,11 @@ dependencies = [ [[package]] name = "anchor-attribute-account" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c4d97763b29030412b4b80715076377edc9cc63bc3c9e667297778384b9fd2" +checksum = "0a12661acaba9866a5f2d8d8d46a1eed8b484f41dc9f94f808c3b07d35726816" dependencies = [ "anchor-syn", - "bs58", "proc-macro2", "quote", "syn 1.0.109", @@ -86,9 +72,9 @@ dependencies = [ [[package]] name = "anchor-attribute-constant" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae3328bbf9bbd517a51621b1ba6cbec06cbbc25e8cfc7403bddf69bcf088206" +checksum = "6dff08bc0187aafc559da8f63b5adeab0bcdf97128765c72dd9a4861f70627fc" dependencies = [ "anchor-syn", "quote", @@ -97,9 +83,9 @@ dependencies = [ [[package]] name = "anchor-attribute-error" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2398a6d9e16df1ee9d7d37d970a8246756de898c8dd16ef6bdbe4da20cf39a" +checksum = "c2af8ce12fb8cf782a3e127d376698a4548a518e38b4686f9c439adce4730b48" dependencies = [ "anchor-syn", "quote", @@ -108,9 +94,9 @@ dependencies = [ [[package]] name = "anchor-attribute-event" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12758f4ec2f0e98d4d56916c6fe95cb23d74b8723dd902c762c5ef46ebe7b65" +checksum = "338be5df076369b99585264aaa46c66229ead67568d61bd38c3ab0fa7a15e554" dependencies = [ "anchor-syn", "proc-macro2", @@ -120,26 +106,24 @@ dependencies = [ [[package]] name = "anchor-attribute-program" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7193b5af2649813584aae6e3569c46fd59616a96af2083c556b13136c3830f" +checksum = "e5c4ec70cef4ef7e2d87b4e9c550f727a43d691d3d7f3e4d6b2e3bd530ae098d" dependencies = [ "anchor-lang-idl", "anchor-syn", "anyhow", - "bs58", "heck", "proc-macro2", "quote", - "serde_json", "syn 1.0.109", ] [[package]] name = "anchor-derive-accounts" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d332d1a13c0fca1a446de140b656e66110a5e8406977dcb6a41e5d6f323760b0" +checksum = "f610cb50e10e4c404cc774f20a4eb602b904f68ea04590f8b1eb22a1e28b33e5" dependencies = [ "anchor-syn", "quote", @@ -148,12 +132,12 @@ dependencies = [ [[package]] name = "anchor-derive-serde" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8656e4af182edaeae665fa2d2d7ee81148518b5bd0be9a67f2a381bb17da7d46" +checksum = "be9ead49a9689493f8857a61dd1abf1d70eeeeb0683f8c1e09b015ab5bdd382d" dependencies = [ "anchor-syn", - "borsh-derive-internal", + "proc-macro-crate", "proc-macro2", "quote", "syn 1.0.109", @@ -161,9 +145,9 @@ dependencies = [ [[package]] name = "anchor-derive-space" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcff2a083560cd79817db07d89a4de39a2c4b2eaa00c1742cf0df49b25ff2bed" +checksum = "ea4d1372743444967347b60f9311d2ee54a630152fd1d6d805adebd7fcd72056" dependencies = [ "proc-macro2", "quote", @@ -172,9 +156,9 @@ dependencies = [ [[package]] name = "anchor-lang" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67d85d5376578f12d840c29ff323190f6eecd65b00a0b5f2b2f232751d049cc" +checksum = "254d0cb160ea5c4c6a8c2f847bbd0f384fef733ebc36ef8426ae95f1bfda5757" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -188,25 +172,27 @@ dependencies = [ "anchor-lang-idl", "base64 0.21.7", "bincode", - "borsh 0.10.3", + "borsh", "bytemuck", + "const-crypto", "solana-account-info", "solana-clock", "solana-cpi", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-feature-gate-interface", "solana-instruction", "solana-instructions-sysvar", "solana-invoke", - "solana-loader-v3-interface 3.0.0", + "solana-loader-v3-interface", "solana-msg", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", + "solana-stake-interface", "solana-system-interface", "solana-sysvar", "solana-sysvar-id", @@ -225,7 +211,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha2 0.10.8", + "sha2", ] [[package]] @@ -240,24 +226,24 @@ dependencies = [ [[package]] name = "anchor-spl" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3397ab3fc5b198bbfe55d827ff58bd69f2a8d3f9f71c3732c23c2093fec4d3ef" +checksum = "b3f1da81d6a7486339833833db9285f3771c1c368db418d481b5584a901cd675" dependencies = [ "anchor-lang", - "spl-associated-token-account", + "spl-associated-token-account-interface", "spl-pod", - "spl-token", - "spl-token-2022", + "spl-token-2022-interface", "spl-token-group-interface", + "spl-token-interface", "spl-token-metadata-interface", ] [[package]] name = "anchor-syn" -version = "0.32.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93b69aa7d099b59378433f6d7e20e1008fc10c69e48b220270e5b3f2ec4c8be" +checksum = "c9a855d34b1b0488f37ccc759c8bd4a696cd3a7bba8cb0734c2a965109f707da" dependencies = [ "anyhow", "bs58", @@ -266,8 +252,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "serde_json", - "sha2 0.10.8", + "sha2", "syn 1.0.109", "thiserror 1.0.69", ] @@ -284,24 +269,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - [[package]] name = "autocfg" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.21.7" @@ -329,29 +302,6 @@ version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" -[[package]] -name = "blake3" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", - "digest 0.10.7", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -361,39 +311,16 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borsh" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" -dependencies = [ - "borsh-derive 0.10.3", - "hashbrown 0.13.2", -] - [[package]] name = "borsh" version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ - "borsh-derive 1.5.7", + "borsh-derive", "cfg_aliases", ] -[[package]] -name = "borsh-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" -dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate 0.1.5", - "proc-macro2", - "syn 1.0.109", -] - [[package]] name = "borsh-derive" version = "1.5.7" @@ -401,32 +328,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ "once_cell", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "borsh-derive-internal" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" -dependencies = [ + "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.117", ] [[package]] @@ -471,7 +376,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -487,17 +392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" dependencies = [ "serde", - "toml 0.8.14", -] - -[[package]] -name = "cc" -version = "1.2.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" -dependencies = [ - "find-msvc-tools", - "shlex", + "toml", ] [[package]] @@ -523,31 +418,15 @@ dependencies = [ ] [[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - -[[package]] -name = "console_log" -version = "0.2.2" +name = "const-crypto" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" +checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52" dependencies = [ - "log", - "web-sys", + "keccak-const", + "sha2-const-stable", ] -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - [[package]] name = "cpufeatures" version = "0.2.12" @@ -557,12 +436,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-common" version = "0.1.6" @@ -570,7 +443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", + "rand_core", "typenum", ] @@ -592,9 +465,9 @@ dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", - "digest 0.10.7", + "digest", "fiat-crypto", - "rand_core 0.6.4", + "rand_core", "rustc_version", "serde", "subtle", @@ -609,31 +482,57 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] -name = "derivation-path" -version = "0.2.0" +name = "darling" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core", + "darling_macro", +] [[package]] -name = "digest" -version = "0.9.0" +name = "darling_core" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ - "generic-array", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", ] +[[package]] +name = "derivation-path" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" + [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "crypto-common", "subtle", ] @@ -662,26 +561,20 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" -[[package]] -name = "find-msvc-tools" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" - [[package]] name = "five8" -version = "0.2.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75b8549488b4715defcb0d8a8a1c1c76a80661b5fa106b4ca0e7fce59d7d875" +checksum = "23f76610e969fa1784327ded240f1e28a3fd9520c9cec93b636fcf62dd37f772" dependencies = [ "five8_core", ] [[package]] name = "five8_const" -version = "0.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" +checksum = "1a0f1728185f277989ca573a402716ae0beaaea3f76a8ff87ef9dd8fb19436c5" dependencies = [ "five8_core", ] @@ -716,17 +609,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -736,24 +618,15 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "heck" @@ -770,17 +643,23 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.7", + "digest", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "indexmap" -version = "2.2.6" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown", ] [[package]] @@ -826,6 +705,12 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "keccak-const" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea" + [[package]] name = "lazy_static" version = "1.5.0" @@ -838,52 +723,6 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" -[[package]] -name = "libsecp256k1" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.7.3", - "serde", - "sha2 0.9.9", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core", -] - [[package]] name = "lock_api" version = "0.4.12" @@ -906,15 +745,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "merlin" version = "3.0.0" @@ -923,20 +753,10 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.6.4", + "rand_core", "zeroize", ] -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - [[package]] name = "num-derive" version = "0.4.2" @@ -945,16 +765,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", + "syn 2.0.117", ] [[package]] @@ -968,9 +779,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -978,14 +789,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1023,13 +834,19 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "pastey" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b867cad97c0791bbd3aaa6472142568c6c9e8f71937e98379f584cfb0cf35bec" + [[package]] name = "pbkdf2" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.7", + "digest", ] [[package]] @@ -1058,27 +875,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.21.1", + "toml_edit 0.25.8+spec-1.1.0", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -1094,26 +902,13 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.36" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -1121,18 +916,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", ] [[package]] @@ -1142,16 +927,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", + "rand_core", ] [[package]] @@ -1160,16 +936,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "getrandom", ] [[package]] @@ -1279,7 +1046,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1306,27 +1073,20 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.9" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "block-buffer 0.9.0", "cfg-if", "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "digest", ] [[package]] -name = "sha2" -version = "0.10.8" +name = "sha2-const-stable" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] +checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" [[package]] name = "sha3" @@ -1334,16 +1094,10 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.7", + "digest", "keccak", ] -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - [[package]] name = "smallvec" version = "1.13.2" @@ -1351,106 +1105,72 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] -name = "solana-account" -version = "2.2.1" +name = "solana-account-info" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" dependencies = [ - "solana-account-info", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", + "solana-address 2.4.0", + "solana-program-error", + "solana-program-memory", ] [[package]] -name = "solana-account-info" -version = "2.3.0" +name = "solana-address" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8f5152a288ef1912300fc6efa6c2d1f9bb55d9398eb6c72326360b8063987da" +checksum = "a2ecac8e1b7f74c2baa9e774c42817e3e75b20787134b76cc4d45e8a604488f5" dependencies = [ - "bincode", - "serde", - "solana-program-error", - "solana-program-memory", - "solana-pubkey", + "solana-address 2.4.0", ] [[package]] -name = "solana-address-lookup-table-interface" -version = "2.2.2" +name = "solana-address" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +checksum = "7f67735365edc7fb19ed74ec950597107c8ee9cbfebac57b8868b3e78fb6df16" dependencies = [ - "bincode", + "borsh", "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8", + "five8_const", "serde", "serde_derive", - "solana-clock", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-slot-hashes", + "sha2-const-stable", + "solana-atomic-u64", + "solana-define-syscall 5.0.0", + "solana-nullable", + "solana-program-error", + "solana-sanitize", + "solana-sha256-hasher", + "wincode", ] [[package]] name = "solana-atomic-u64" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +checksum = "085db4906d89324cef2a30840d59eaecf3d4231c560ec7c9f6614a93c652f501" dependencies = [ "parking_lot", ] -[[package]] -name = "solana-big-mod-exp" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" -dependencies = [ - "num-bigint", - "num-traits", - "solana-define-syscall", -] - -[[package]] -name = "solana-bincode" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" -dependencies = [ - "bincode", - "serde", - "solana-instruction", -] - -[[package]] -name = "solana-blake3-hasher" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" -dependencies = [ - "blake3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", -] - [[package]] name = "solana-borsh" -version = "2.2.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" dependencies = [ - "borsh 0.10.3", - "borsh 1.5.7", + "borsh", ] [[package]] name = "solana-clock" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb482ab70fced82ad3d7d3d87be33d466a3498eb8aa856434ff3c0dfc2e2e31" +checksum = "95cf11109c3b6115cc510f1e31f06fdd52f504271bc24ef5f1249fbbcae5f9f3" dependencies = [ "serde", "serde_derive", @@ -1461,52 +1181,55 @@ dependencies = [ [[package]] name = "solana-cpi" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +checksum = "4dea26709d867aada85d0d3617db0944215c8bb28d3745b912de7db13a23280c" dependencies = [ "solana-account-info", - "solana-define-syscall", + "solana-define-syscall 4.0.1", "solana-instruction", "solana-program-error", - "solana-pubkey", + "solana-pubkey 4.1.0", "solana-stable-layout", ] [[package]] name = "solana-curve25519" -version = "2.3.13" +version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae4261b9a8613d10e77ac831a8fa60b6fa52b9b103df46d641deff9f9812a23" +checksum = "9a9eaec815ed773919bc7269c027933fc2472d7b9876f68ea6f1281c7daa5278" dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] -name = "solana-decode-error" -version = "2.3.0" +name = "solana-define-syscall" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9697086a4e102d28a156b8d6b521730335d6951bd39a5e766512bbe09007cee" + +[[package]] +name = "solana-define-syscall" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c781686a18db2f942e70913f7ca15dc120ec38dcab42ff7557db2c70c625a35" -dependencies = [ - "num-traits", -] +checksum = "57e5b1c0bc1d4a4d10c88a4100499d954c09d3fecfae4912c1a074dff68b1738" [[package]] name = "solana-define-syscall" -version = "2.3.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae3e2abcf541c8122eafe9a625d4d194b4023c20adde1e251f94e056bb1aee2" +checksum = "03aacdd7a61e2109887a7a7f046caebafce97ddf1150f33722eeac04f9039c73" [[package]] name = "solana-derivation-path" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "939756d798b25c5ec3cca10e06212bdca3b1443cb9bb740a38124f58b258737b" +checksum = "ff71743072690fdbdfcdc37700ae1cb77485aaad49019473a81aee099b1e0b8c" dependencies = [ "derivation-path", "qstring", @@ -1515,9 +1238,9 @@ dependencies = [ [[package]] name = "solana-epoch-rewards" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +checksum = "f5e7b0ba210593ba8ddd39d6d234d81795d1671cebf3026baa10d5dc23ac42f0" dependencies = [ "serde", "serde_derive", @@ -1529,9 +1252,9 @@ dependencies = [ [[package]] name = "solana-epoch-schedule" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +checksum = "6e5481e72cc4d52c169db73e4c0cd16de8bc943078aac587ec4817a75cc6388f" dependencies = [ "serde", "serde_derive", @@ -1540,51 +1263,22 @@ dependencies = [ "solana-sysvar-id", ] -[[package]] -name = "solana-example-mocks" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" -dependencies = [ - "serde", - "serde_derive", - "solana-address-lookup-table-interface", - "solana-clock", - "solana-hash", - "solana-instruction", - "solana-keccak-hasher", - "solana-message", - "solana-nonce", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", - "thiserror 2.0.17", -] - [[package]] name = "solana-feature-gate-interface" -version = "2.2.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f5c5382b449e8e4e3016fb05e418c53d57782d8b5c30aa372fc265654b956d" +checksum = "75ca9b5cbb6f500f7fd73db5bd95640f71a83f04d6121a0e59a43b202dca2731" dependencies = [ - "bincode", - "serde", - "serde_derive", - "solana-account", - "solana-account-info", - "solana-instruction", "solana-program-error", - "solana-pubkey", - "solana-rent", + "solana-pubkey 4.1.0", "solana-sdk-ids", - "solana-system-interface", ] [[package]] name = "solana-fee-calculator" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" +checksum = "4b2a5675b2cf8d407c672dc1776492b1f382337720ddf566645ae43237a3d8c3" dependencies = [ "log", "serde", @@ -1593,51 +1287,53 @@ dependencies = [ [[package]] name = "solana-hash" -version = "2.3.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b96e9f0300fa287b545613f007dfe20043d7812bee255f418c1eb649c93b63" +checksum = "8064ea1d591ec791be95245058ca40f4f5345d390c200069d0f79bbf55bfae55" dependencies = [ - "borsh 1.5.7", "bytemuck", "bytemuck_derive", "five8", - "js-sys", "serde", "serde_derive", - "solana-atomic-u64", - "solana-sanitize", - "wasm-bindgen", ] [[package]] name = "solana-instruction" -version = "2.3.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47298e2ce82876b64f71e9d13a46bc4b9056194e7f9937ad3084385befa50885" +checksum = "a97881335fc698deb46c6571945969aae6d93a14e2fff792a368b4fac872f116" dependencies = [ "bincode", - "borsh 1.5.7", - "getrandom 0.2.15", - "js-sys", - "num-traits", "serde", "serde_derive", - "solana-define-syscall", - "solana-pubkey", - "wasm-bindgen", + "solana-define-syscall 5.0.0", + "solana-instruction-error", + "solana-pubkey 4.1.0", +] + +[[package]] +name = "solana-instruction-error" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3d048edaaeef5a3dc8c01853e585539a74417e4c2d43a9e2c161270045b838" +dependencies = [ + "num-traits", + "solana-program-error", ] [[package]] name = "solana-instructions-sysvar" -version = "2.2.2" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e85a6fad5c2d0c4f5b91d34b8ca47118fc593af706e523cdbedf846a954f57" +checksum = "7ddf67876c541aa1e21ee1acae35c95c6fbc61119814bfef70579317a5e26955" dependencies = [ "bitflags", "solana-account-info", "solana-instruction", + "solana-instruction-error", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sanitize", "solana-sdk-ids", "solana-serialize-utils", @@ -1646,34 +1342,22 @@ dependencies = [ [[package]] name = "solana-invoke" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f5693c6de226b3626658377168b0184e94e8292ff16e3d31d4766e65627565" +checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94" dependencies = [ "solana-account-info", - "solana-define-syscall", + "solana-define-syscall 3.0.0", "solana-instruction", "solana-program-entrypoint", "solana-stable-layout", ] -[[package]] -name = "solana-keccak-hasher" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" -dependencies = [ - "sha3", - "solana-define-syscall", - "solana-hash", - "solana-sanitize", -] - [[package]] name = "solana-last-restart-slot" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +checksum = "dcda154ec827f5fc1e4da0af3417951b7e9b8157540f81f936c4a8b1156134d0" dependencies = [ "serde", "serde_derive", @@ -1682,280 +1366,107 @@ dependencies = [ "solana-sysvar-id", ] -[[package]] -name = "solana-loader-v2-interface" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", -] - [[package]] name = "solana-loader-v3-interface" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4be76cfa9afd84ca2f35ebc09f0da0f0092935ccdac0595d98447f259538c2" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", -] - -[[package]] -name = "solana-loader-v3-interface" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f7162a05b8b0773156b443bccd674ea78bb9aa406325b467ea78c06c99a63a2" -dependencies = [ - "serde", - "serde_bytes", - "serde_derive", - "solana-instruction", - "solana-pubkey", - "solana-sdk-ids", - "solana-system-interface", -] - -[[package]] -name = "solana-loader-v4-interface" -version = "2.2.1" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +checksum = "dee44c9b1328c5c712c68966fb8de07b47f3e7bac006e74ddd1bb053d3e46e5d" dependencies = [ "serde", "serde_bytes", "serde_derive", "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-system-interface", ] -[[package]] -name = "solana-message" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1796aabce376ff74bf89b78d268fa5e683d7d7a96a0a4e4813ec34de49d5314b" -dependencies = [ - "bincode", - "blake3", - "lazy_static", - "serde", - "serde_derive", - "solana-bincode", - "solana-hash", - "solana-instruction", - "solana-pubkey", - "solana-sanitize", - "solana-sdk-ids", - "solana-short-vec", - "solana-system-interface", - "solana-transaction-error", - "wasm-bindgen", -] - [[package]] name = "solana-msg" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" -dependencies = [ - "solana-define-syscall", -] - -[[package]] -name = "solana-native-token" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61515b880c36974053dd499c0510066783f0cc6ac17def0c7ef2a244874cf4a9" - -[[package]] -name = "solana-nonce" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +checksum = "726b7cbbc6be6f1c6f29146ac824343b9415133eee8cce156452ad1db93f8008" dependencies = [ - "serde", - "serde_derive", - "solana-fee-calculator", - "solana-hash", - "solana-pubkey", - "solana-sha256-hasher", + "solana-define-syscall 5.0.0", ] [[package]] -name = "solana-program" -version = "2.3.0" +name = "solana-nullable" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98eca145bd3545e2fbb07166e895370576e47a00a7d824e325390d33bf467210" +checksum = "a90429a75d69fdcb31952c3dea79f5f3c8157cfe88221e066103c9c237876073" dependencies = [ - "bincode", - "blake3", - "borsh 0.10.3", - "borsh 1.5.7", - "bs58", "bytemuck", - "console_error_panic_hook", - "console_log", - "getrandom 0.2.15", - "lazy_static", - "log", - "memoffset", - "num-bigint", - "num-derive", - "num-traits", - "rand 0.8.5", - "serde", - "serde_bytes", - "serde_derive", - "solana-account-info", - "solana-address-lookup-table-interface", - "solana-atomic-u64", - "solana-big-mod-exp", - "solana-bincode", - "solana-blake3-hasher", - "solana-borsh", - "solana-clock", - "solana-cpi", - "solana-decode-error", - "solana-define-syscall", - "solana-epoch-rewards", - "solana-epoch-schedule", - "solana-example-mocks", - "solana-feature-gate-interface", - "solana-fee-calculator", - "solana-hash", - "solana-instruction", - "solana-instructions-sysvar", - "solana-keccak-hasher", - "solana-last-restart-slot", - "solana-loader-v2-interface", - "solana-loader-v3-interface 5.0.0", - "solana-loader-v4-interface", - "solana-message", - "solana-msg", - "solana-native-token", - "solana-nonce", - "solana-program-entrypoint", - "solana-program-error", - "solana-program-memory", - "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sanitize", - "solana-sdk-ids", - "solana-sdk-macro", - "solana-secp256k1-recover", - "solana-serde-varint", - "solana-serialize-utils", - "solana-sha256-hasher", - "solana-short-vec", - "solana-slot-hashes", - "solana-slot-history", - "solana-stable-layout", - "solana-stake-interface", - "solana-system-interface", - "solana-sysvar", - "solana-sysvar-id", - "solana-vote-interface", - "thiserror 2.0.17", - "wasm-bindgen", ] [[package]] name = "solana-program-entrypoint" -version = "2.3.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ce041b1a0ed275290a5008ee1a4a6c48f5054c8a3d78d313c08958a06aedbd" +checksum = "84c9b0a1ff494e05f503a08b3d51150b73aa639544631e510279d6375f290997" dependencies = [ "solana-account-info", - "solana-msg", + "solana-define-syscall 4.0.1", "solana-program-error", - "solana-pubkey", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-program-error" -version = "2.2.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee2e0217d642e2ea4bee237f37bd61bb02aec60da3647c48ff88f6556ade775" +checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" dependencies = [ - "borsh 1.5.7", - "num-traits", - "serde", - "serde_derive", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-pubkey", + "borsh", ] [[package]] name = "solana-program-memory" -version = "2.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5426090c6f3fd6cfdc10685322fede9ca8e5af43cd6a59e98bfe4e91671712" +checksum = "4068648649653c2c50546e9a7fb761791b5ab0cda054c771bb5808d3a4b9eb52" dependencies = [ - "solana-define-syscall", + "solana-define-syscall 4.0.1", ] [[package]] name = "solana-program-option" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" +checksum = "7a88006a9b8594088cec9027ab77caaaa258a2aaa2083d3f086c44b42e50aeab" [[package]] name = "solana-program-pack" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +checksum = "3d7701cb15b90667ae1c89ef4ac35a59c61e66ce58ddee13d729472af7f41d59" dependencies = [ "solana-program-error", ] [[package]] name = "solana-pubkey" -version = "2.4.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b62adb9c3261a052ca1f999398c388f1daf558a1b492f60a6d9e64857db4ff1" +checksum = "8909d399deb0851aa524420beeb5646b115fd253ef446e35fe4504c904da3941" dependencies = [ - "borsh 0.10.3", - "borsh 1.5.7", - "bytemuck", - "bytemuck_derive", - "curve25519-dalek", - "five8", - "five8_const", - "getrandom 0.2.15", - "js-sys", - "num-traits", - "serde", - "serde_derive", - "solana-atomic-u64", - "solana-decode-error", - "solana-define-syscall", - "solana-sanitize", - "solana-sha256-hasher", - "wasm-bindgen", + "solana-address 1.1.0", +] + +[[package]] +name = "solana-pubkey" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b06bd918d60111ee1f97de817113e2040ca0cedb740099ee8d646233f6b906c" +dependencies = [ + "solana-address 2.4.0", ] [[package]] name = "solana-rent" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +checksum = "e860d5499a705369778647e97d760f7670adfb6fc8419dd3d568deccd46d5487" dependencies = [ "serde", "serde_derive", @@ -1966,113 +1477,78 @@ dependencies = [ [[package]] name = "solana-sanitize" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" +checksum = "dcf09694a0fc14e5ffb18f9b7b7c0f15ecb6eac5b5610bf76a1853459d19daf9" [[package]] name = "solana-sdk-ids" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +checksum = "def234c1956ff616d46c9dd953f251fa7096ddbaa6d52b165218de97882b7280" dependencies = [ - "solana-pubkey", + "solana-address 2.4.0", ] [[package]] name = "solana-sdk-macro" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" +checksum = "8765316242300c48242d84a41614cb3388229ec353ba464f6fe62a733e41806f" dependencies = [ "bs58", "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "solana-secp256k1-recover" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" -dependencies = [ - "libsecp256k1", - "solana-define-syscall", - "thiserror 2.0.17", + "syn 2.0.117", ] -[[package]] -name = "solana-security-txt" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" - [[package]] name = "solana-seed-derivable" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beb82b5adb266c6ea90e5cf3967235644848eac476c5a1f2f9283a143b7c97f" +checksum = "ff7bdb72758e3bec33ed0e2658a920f1f35dfb9ed576b951d20d63cb61ecd95c" dependencies = [ "solana-derivation-path", ] [[package]] name = "solana-seed-phrase" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36187af2324f079f65a675ec22b31c24919cb4ac22c79472e85d819db9bbbc15" +checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de" dependencies = [ "hmac", "pbkdf2", - "sha2 0.10.8", -] - -[[package]] -name = "solana-serde-varint" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7e155eba458ecfb0107b98236088c3764a09ddf0201ec29e52a0be40857113" -dependencies = [ - "serde", + "sha2", ] [[package]] name = "solana-serialize-utils" -version = "2.2.1" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +checksum = "5d7cc401931d178472358e6b78dc72d031dc08f752d7410f0e8bd259dd6f02fa" dependencies = [ - "solana-instruction", - "solana-pubkey", + "solana-instruction-error", + "solana-pubkey 4.1.0", "solana-sanitize", ] [[package]] name = "solana-sha256-hasher" -version = "2.3.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa3feb32c28765f6aa1ce8f3feac30936f16c5c3f7eb73d63a5b8f6f8ecdc44" +checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f" dependencies = [ - "sha2 0.10.8", - "solana-define-syscall", + "sha2", + "solana-define-syscall 4.0.1", "solana-hash", ] -[[package]] -name = "solana-short-vec" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" -dependencies = [ - "serde", -] - [[package]] name = "solana-signature" -version = "2.3.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c8ec8e657aecfc187522fc67495142c12f35e55ddeca8698edbb738b8dbd8c" +checksum = "132a93134f1262aa832f1849b83bec6c9945669b866da18661a427943b9e801e" dependencies = [ "five8", "solana-sanitize", @@ -2080,20 +1556,20 @@ dependencies = [ [[package]] name = "solana-signer" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c41991508a4b02f021c1342ba00bcfa098630b213726ceadc7cb032e051975b" +checksum = "5bfea97951fee8bae0d6038f39a5efcb6230ecdfe33425ac75196d1a1e3e3235" dependencies = [ - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-signature", "solana-transaction-error", ] [[package]] name = "solana-slot-hashes" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +checksum = "2585f70191623887329dfb5078da3a00e15e3980ea67f42c2e10b07028419f43" dependencies = [ "serde", "serde_derive", @@ -2104,9 +1580,9 @@ dependencies = [ [[package]] name = "solana-slot-history" -version = "2.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +checksum = "f914f6b108f5bba14a280b458d023e3621c9973f27f015a4d755b50e88d89e97" dependencies = [ "bv", "serde", @@ -2117,137 +1593,115 @@ dependencies = [ [[package]] name = "solana-stable-layout" -version = "2.2.1" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +checksum = "c9f6a291ba063a37780af29e7db14bdd3dc447584d8ba5b3fc4b88e2bbc982fa" dependencies = [ "solana-instruction", - "solana-pubkey", + "solana-pubkey 4.1.0", ] [[package]] name = "solana-stake-interface" -version = "1.2.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +checksum = "b9bc26191b533f9a6e5a14cca05174119819ced680a80febff2f5051a713f0db" dependencies = [ - "borsh 0.10.3", - "borsh 1.5.7", "num-traits", "serde", "serde_derive", "solana-clock", "solana-cpi", - "solana-decode-error", "solana-instruction", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-system-interface", + "solana-sysvar", "solana-sysvar-id", ] [[package]] name = "solana-system-interface" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +checksum = "4e1790547bfc3061f1ee68ea9d8dc6c973c02a163697b24263a8e9f2e6d4afa2" dependencies = [ - "js-sys", "num-traits", "serde", "serde_derive", - "solana-decode-error", "solana-instruction", - "solana-pubkey", - "wasm-bindgen", + "solana-msg", + "solana-program-error", + "solana-pubkey 3.0.0", ] [[package]] name = "solana-sysvar" -version = "2.3.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8c3595f95069f3d90f275bb9bd235a1973c4d059028b0a7f81baca2703815db" +checksum = "6690d3dd88f15c21edff68eb391ef8800df7a1f5cec84ee3e8d1abf05affdf74" dependencies = [ "base64 0.22.1", "bincode", - "bytemuck", - "bytemuck_derive", "lazy_static", "serde", "serde_derive", "solana-account-info", "solana-clock", - "solana-define-syscall", + "solana-define-syscall 4.0.1", "solana-epoch-rewards", "solana-epoch-schedule", "solana-fee-calculator", "solana-hash", "solana-instruction", - "solana-instructions-sysvar", "solana-last-restart-slot", "solana-program-entrypoint", "solana-program-error", "solana-program-memory", - "solana-pubkey", + "solana-pubkey 4.1.0", "solana-rent", - "solana-sanitize", "solana-sdk-ids", "solana-sdk-macro", "solana-slot-hashes", "solana-slot-history", - "solana-stake-interface", "solana-sysvar-id", ] [[package]] name = "solana-sysvar-id" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +checksum = "17358d1e9a13e5b9c2264d301102126cf11a47fd394cdf3dec174fe7bc96e1de" dependencies = [ - "solana-pubkey", + "solana-address 2.4.0", "solana-sdk-ids", ] [[package]] name = "solana-transaction-error" -version = "2.2.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +checksum = "8396904805b0b385b9de115a652fe80fd01e5b98ce0513f4fcd8184ada9bb792" dependencies = [ - "solana-instruction", + "solana-instruction-error", "solana-sanitize", ] [[package]] -name = "solana-vote-interface" -version = "2.2.6" +name = "solana-zero-copy" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b80d57478d6599d30acc31cc5ae7f93ec2361a06aefe8ea79bc81739a08af4c3" +checksum = "94f52dd8f733a13f6a18e55de83cf97c4c3f5fdf27ea3830bcff0b35313efcc2" dependencies = [ - "bincode", - "num-derive", - "num-traits", - "serde", - "serde_derive", - "solana-clock", - "solana-decode-error", - "solana-hash", - "solana-instruction", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-serde-varint", - "solana-serialize-utils", - "solana-short-vec", - "solana-system-interface", + "bytemuck", + "bytemuck_derive", ] [[package]] name = "solana-zk-sdk" -version = "2.3.13" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b9fc6ec37d16d0dccff708ed1dd6ea9ba61796700c3bb7c3b401973f10f63b" +checksum = "9602bcb1f7af15caef92b91132ec2347e1c51a72ecdbefdaefa3eac4b8711475" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -2255,61 +1709,46 @@ dependencies = [ "bytemuck", "bytemuck_derive", "curve25519-dalek", + "getrandom", "itertools", "js-sys", "merlin", "num-derive", "num-traits", - "rand 0.8.5", + "rand", "serde", "serde_derive", "serde_json", "sha3", "solana-derivation-path", "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-seed-derivable", "solana-seed-phrase", "solana-signature", "solana-signer", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", "wasm-bindgen", "zeroize", ] [[package]] -name = "spl-associated-token-account" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae179d4a26b3c7a20c839898e6aed84cb4477adf108a366c95532f058aea041b" -dependencies = [ - "borsh 1.5.7", - "num-derive", - "num-traits", - "solana-program", - "spl-associated-token-account-client", - "spl-token", - "spl-token-2022", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-associated-token-account-client" +name = "spl-associated-token-account-interface" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f8349dbcbe575f354f9a533a21f272f3eb3808a49e2fdc1c34393b88ba76cb" +checksum = "e6433917b60441d68d99a17e121d9db0ea15a9a69c0e5afa34649cf5ba12612f" dependencies = [ "solana-instruction", - "solana-pubkey", + "solana-pubkey 3.0.0", ] [[package]] name = "spl-discriminator" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7398da23554a31660f17718164e31d31900956054f54f52d5ec1be51cb4f4b3" +checksum = "e597c5ff9ed7c74a54dbc47bae2f06e4db8c98f4356ad280200dc11878266db1" dependencies = [ "bytemuck", "solana-program-error", @@ -2325,7 +1764,7 @@ checksum = "d9e8418ea6269dcfb01c712f0444d2c75542c04448b480e87de59d2865edc750" dependencies = [ "quote", "spl-discriminator-syn", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -2336,150 +1775,35 @@ checksum = "8c1f05593b7ca9eac7caca309720f2eafb96355e037e6d373b909a80fe7b69b9" dependencies = [ "proc-macro2", "quote", - "sha2 0.10.8", - "syn 2.0.106", + "sha2", + "syn 2.0.117", "thiserror 1.0.69", ] -[[package]] -name = "spl-elgamal-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65edfeed09cd4231e595616aa96022214f9c9d2be02dea62c2b30d5695a6833a" -dependencies = [ - "bytemuck", - "solana-account-info", - "solana-cpi", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-system-interface", - "solana-sysvar", - "solana-zk-sdk", - "spl-pod", - "spl-token-confidential-transfer-proof-extraction", -] - -[[package]] -name = "spl-memo" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f09647c0974e33366efeb83b8e2daebb329f0420149e74d3a4bd2c08cf9f7cb" -dependencies = [ - "solana-account-info", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", - "solana-program-error", - "solana-pubkey", -] - [[package]] name = "spl-pod" -version = "0.5.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d994afaf86b779104b4a95ba9ca75b8ced3fdb17ee934e38cb69e72afbe17799" +checksum = "d6f3df240f67bea453d4bc5749761e45436d14b9457ed667e0300555d5c271f3" dependencies = [ - "borsh 1.5.7", + "borsh", "bytemuck", "bytemuck_derive", "num-derive", "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "solana-program-option", - "solana-pubkey", - "solana-zk-sdk", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-program-error" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdebc8b42553070b75aa5106f071fef2eb798c64a7ec63375da4b1f058688c6" -dependencies = [ - "num-derive", - "num-traits", - "solana-decode-error", - "solana-msg", - "solana-program-error", - "spl-program-error-derive", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-program-error-derive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2539e259c66910d78593475540e8072f0b10f0f61d7607bbf7593899ed52d0" -dependencies = [ - "proc-macro2", - "quote", - "sha2 0.10.8", - "syn 2.0.106", -] - -[[package]] -name = "spl-tlv-account-resolution" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1408e961215688715d5a1063cbdcf982de225c45f99c82b4f7d7e1dd22b998d7" -dependencies = [ - "bytemuck", - "num-derive", - "num-traits", - "solana-account-info", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-program-error", - "spl-type-length-value", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-token" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053067c6a82c705004f91dae058b11b4780407e9ccd6799dc9e7d0fab5f242da" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", "num_enum", - "solana-account-info", - "solana-cpi", - "solana-decode-error", - "solana-instruction", - "solana-msg", - "solana-program-entrypoint", "solana-program-error", - "solana-program-memory", "solana-program-option", - "solana-program-pack", - "solana-pubkey", - "solana-rent", - "solana-sdk-ids", - "solana-sysvar", - "thiserror 2.0.17", + "solana-pubkey 3.0.0", + "solana-zk-sdk", + "thiserror 2.0.18", ] [[package]] -name = "spl-token-2022" -version = "8.0.1" +name = "spl-token-2022-interface" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f0dfbb079eebaee55e793e92ca5f433744f4b71ee04880bfd6beefba5973e5" +checksum = "2fcd81188211f4b3c8a5eba7fd534c7142f9dd026123b3472492782cc72f4dc6" dependencies = [ "arrayref", "bytemuck", @@ -2487,55 +1811,27 @@ dependencies = [ "num-traits", "num_enum", "solana-account-info", - "solana-clock", - "solana-cpi", - "solana-decode-error", "solana-instruction", - "solana-msg", - "solana-native-token", - "solana-program-entrypoint", "solana-program-error", - "solana-program-memory", "solana-program-option", "solana-program-pack", - "solana-pubkey", - "solana-rent", + "solana-pubkey 3.0.0", "solana-sdk-ids", - "solana-security-txt", - "solana-system-interface", - "solana-sysvar", "solana-zk-sdk", - "spl-elgamal-registry", - "spl-memo", "spl-pod", - "spl-token", - "spl-token-confidential-transfer-ciphertext-arithmetic", "spl-token-confidential-transfer-proof-extraction", "spl-token-confidential-transfer-proof-generation", "spl-token-group-interface", "spl-token-metadata-interface", - "spl-transfer-hook-interface", "spl-type-length-value", - "thiserror 2.0.17", -] - -[[package]] -name = "spl-token-confidential-transfer-ciphertext-arithmetic" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddd52bfc0f1c677b41493dafa3f2dbbb4b47cf0990f08905429e19dc8289b35" -dependencies = [ - "base64 0.22.1", - "bytemuck", - "solana-curve25519", - "solana-zk-sdk", + "thiserror 2.0.18", ] [[package]] name = "spl-token-confidential-transfer-proof-extraction" -version = "0.3.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2629860ff04c17bafa9ba4bed8850a404ecac81074113e1f840dbd0ebb7bd6" +checksum = "879a9ebad0d77383d3ea71e7de50503554961ff0f4ef6cbca39ad126e6f6da3a" dependencies = [ "bytemuck", "solana-account-info", @@ -2544,107 +1840,105 @@ dependencies = [ "solana-instructions-sysvar", "solana-msg", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "solana-sdk-ids", "solana-zk-sdk", "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "spl-token-confidential-transfer-proof-generation" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa27b9174bea869a7ebf31e0be6890bce90b1a4288bc2bbf24bd413f80ae3fde" +checksum = "a0cd59fce3dc00f563c6fa364d67c3f200d278eae681f4dc250240afcfe044b1" dependencies = [ "curve25519-dalek", "solana-zk-sdk", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "spl-token-group-interface" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5597b4cd76f85ce7cd206045b7dc22da8c25516573d42d267c8d1fd128db5129" +checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22" dependencies = [ "bytemuck", "num-derive", "num-traits", - "solana-decode-error", + "num_enum", + "solana-address 2.4.0", "solana-instruction", - "solana-msg", + "solana-nullable", "solana-program-error", - "solana-pubkey", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] -name = "spl-token-metadata-interface" -version = "0.7.0" +name = "spl-token-interface" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "304d6e06f0de0c13a621464b1fd5d4b1bebf60d15ca71a44d3839958e0da16ee" +checksum = "8c564ac05a7c8d8b12e988a37d82695b5ba4db376d07ea98bc4882c81f96c7f3" dependencies = [ - "borsh 1.5.7", + "arrayref", + "bytemuck", "num-derive", "num-traits", - "solana-borsh", - "solana-decode-error", + "num_enum", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", - "spl-discriminator", - "spl-pod", - "spl-type-length-value", - "thiserror 2.0.17", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 3.0.0", + "solana-sdk-ids", + "thiserror 2.0.18", ] [[package]] -name = "spl-transfer-hook-interface" -version = "0.10.0" +name = "spl-token-metadata-interface" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e905b849b6aba63bde8c4badac944ebb6c8e6e14817029cbe1bc16829133bd" +checksum = "9c467c7c3bd056f8fe60119e7ec34ddd6f23052c2fa8f1f51999098063b72676" dependencies = [ - "arrayref", - "bytemuck", + "borsh", "num-derive", "num-traits", - "solana-account-info", - "solana-cpi", - "solana-decode-error", + "solana-borsh", "solana-instruction", - "solana-msg", "solana-program-error", - "solana-pubkey", + "solana-pubkey 3.0.0", "spl-discriminator", "spl-pod", - "spl-program-error", - "spl-tlv-account-resolution", "spl-type-length-value", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "spl-type-length-value" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d417eb548214fa822d93f84444024b4e57c13ed6719d4dcc68eec24fb481e9f5" +checksum = "2504631748c48d2a937414d64a12dcac4588d34bd07d355d648619c189d29435" dependencies = [ "bytemuck", "num-derive", "num-traits", + "num_enum", "solana-account-info", - "solana-decode-error", - "solana-msg", "solana-program-error", + "solana-zero-copy", "spl-discriminator", - "spl-pod", - "thiserror 2.0.17", + "thiserror 2.0.18", ] +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "subtle" version = "2.6.1" @@ -2664,9 +1958,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -2684,11 +1978,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -2699,18 +1993,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -2728,15 +2022,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.8.14" @@ -2745,7 +2030,7 @@ checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" dependencies = [ "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.6", "toml_edit 0.22.14", ] @@ -2759,14 +2044,12 @@ dependencies = [ ] [[package]] -name = "toml_edit" -version = "0.21.1" +name = "toml_datetime" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ - "indexmap", - "toml_datetime", - "winnow 0.5.40", + "serde_core", ] [[package]] @@ -2778,10 +2061,31 @@ dependencies = [ "indexmap", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.6", "winnow 0.6.13", ] +[[package]] +name = "toml_edit" +version = "0.25.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" +dependencies = [ + "indexmap", + "toml_datetime 1.1.0+spec-1.1.0", + "toml_parser", + "winnow 1.0.0", +] + +[[package]] +name = "toml_parser" +version = "1.1.0+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +dependencies = [ + "winnow 1.0.0", +] + [[package]] name = "typenum" version = "1.17.0" @@ -2826,12 +2130,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2861,7 +2159,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "wasm-bindgen-shared", ] @@ -2883,7 +2181,7 @@ checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2898,13 +2196,28 @@ dependencies = [ ] [[package]] -name = "web-sys" -version = "0.3.69" +name = "wincode" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "dc91ddd8c932a38bbec58ed536d9e93ce9cd01b6af9b6de3c501132cf98ddec6" dependencies = [ - "js-sys", - "wasm-bindgen", + "pastey", + "proc-macro2", + "quote", + "thiserror 2.0.18", + "wincode-derive", +] + +[[package]] +name = "wincode-derive" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fca057fc9a13dd19cdb64ef558635d43c42667c0afa1ae7915ea1fa66993fd1a" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -2971,15 +2284,6 @@ version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.6.13" @@ -2990,23 +2294,12 @@ dependencies = [ ] [[package]] -name = "zerocopy" -version = "0.7.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.34" +name = "winnow" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "memchr", ] [[package]] @@ -3026,5 +2319,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] diff --git a/tokens/token-fundraiser/anchor/package.json b/tokens/token-fundraiser/anchor/package.json index 4fa2a9489..ec93e2a0e 100644 --- a/tokens/token-fundraiser/anchor/package.json +++ b/tokens/token-fundraiser/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.4.6" }, "devDependencies": { @@ -18,6 +18,6 @@ "prettier": "^2.6.2", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/Cargo.toml b/tokens/token-fundraiser/anchor/programs/fundraiser/Cargo.toml index 8e338be97..092f60dcf 100644 --- a/tokens/token-fundraiser/anchor/programs/fundraiser/Cargo.toml +++ b/tokens/token-fundraiser/anchor/programs/fundraiser/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = "0.32.1" +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = "1.0.0-rc.5" # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs b/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs index 4a8f8fb1d..4299ff73d 100644 --- a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs +++ b/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/checker.rs @@ -56,7 +56,7 @@ impl<'info> CheckContributions<'info> { // Transfer the funds to the maker // CPI to the token program to transfer the funds - let cpi_program = self.token_program.to_account_info(); + let cpi_program = self.token_program.key(); // Transfer the funds from the vault to the maker let cpi_accounts = Transfer { diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs b/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs index d6cfc7d8b..1415cce52 100644 --- a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs +++ b/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/contribute.rs @@ -84,7 +84,7 @@ impl<'info> Contribute<'info> { // Transfer the funds to the vault // CPI to the token program to transfer the funds - let cpi_program = self.token_program.to_account_info(); + let cpi_program = self.token_program.key(); // Transfer the funds from the contributor to the vault let cpi_accounts = Transfer { diff --git a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs b/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs index 45e6c1108..86c4c9028 100644 --- a/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs +++ b/tokens/token-fundraiser/anchor/programs/fundraiser/src/instructions/refund.rs @@ -69,7 +69,7 @@ impl<'info> Refund<'info> { // Transfer the funds back to the contributor // CPI to the token program to transfer the funds - let cpi_program = self.token_program.to_account_info(); + let cpi_program = self.token_program.key(); // Transfer the funds from the vault to the contributor let cpi_accounts = Transfer { diff --git a/tokens/token-fundraiser/anchor/tests/bankrun.test.ts b/tokens/token-fundraiser/anchor/tests/bankrun.test.ts index f8cdb4851..86baeb62d 100644 --- a/tokens/token-fundraiser/anchor/tests/bankrun.test.ts +++ b/tokens/token-fundraiser/anchor/tests/bankrun.test.ts @@ -1,5 +1,5 @@ import { describe, it } from "node:test"; -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, diff --git a/tokens/token-fundraiser/anchor/tests/fundraiser.ts b/tokens/token-fundraiser/anchor/tests/fundraiser.ts index f323b96b8..5f86d630f 100644 --- a/tokens/token-fundraiser/anchor/tests/fundraiser.ts +++ b/tokens/token-fundraiser/anchor/tests/fundraiser.ts @@ -1,6 +1,6 @@ -import type { Program } from "@coral-xyz/anchor"; -import * as anchor from "@coral-xyz/anchor"; -import type NodeWallet from "@coral-xyz/anchor/dist/cjs/nodewallet"; +import type { Program } from "@anchor-lang/core"; +import * as anchor from "@anchor-lang/core"; +import type NodeWallet from "@anchor-lang/core/dist/cjs/nodewallet"; import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, diff --git a/tokens/token-swap/anchor/Anchor.toml b/tokens/token-swap/anchor/Anchor.toml index 98677722e..e119b88d6 100644 --- a/tokens/token-swap/anchor/Anchor.toml +++ b/tokens/token-swap/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.devnet] swap_example = "AsGVFxWqEn8icRBFQApxJe68x3r9zvfSbmiEzYFATGYn" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/token-swap/anchor/package.json b/tokens/token-swap/anchor/package.json index a57289c06..088bde1fe 100644 --- a/tokens/token-swap/anchor/package.json +++ b/tokens/token-swap/anchor/package.json @@ -5,7 +5,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { - "@coral-xyz/anchor": "^0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.3.8" }, "devDependencies": { @@ -16,6 +16,6 @@ "mocha": "^9.0.3", "prettier": "^2.6.2", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.3" } } diff --git a/tokens/token-swap/anchor/programs/token-swap/Cargo.toml b/tokens/token-swap/anchor/programs/token-swap/Cargo.toml index dc4dee02b..5df2b828c 100644 --- a/tokens/token-swap/anchor/programs/token-swap/Cargo.toml +++ b/tokens/token-swap/anchor/programs/token-swap/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1", features = ["metadata"] } +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release fixed = "1.27.0" [lints.rust] diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs b/tokens/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs index 21c6f2af0..555e1fdfa 100644 --- a/tokens/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs +++ b/tokens/token-swap/anchor/programs/token-swap/src/instructions/deposit_liquidity.rs @@ -78,7 +78,7 @@ pub fn deposit_liquidity( // Transfer tokens to the pool token::transfer( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.depositor_account_a.to_account_info(), to: ctx.accounts.pool_account_a.to_account_info(), @@ -89,7 +89,7 @@ pub fn deposit_liquidity( )?; token::transfer( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.depositor_account_b.to_account_info(), to: ctx.accounts.pool_account_b.to_account_info(), @@ -111,7 +111,7 @@ pub fn deposit_liquidity( let signer_seeds = &[&authority_seeds[..]]; token::mint_to( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MintTo { mint: ctx.accounts.mint_liquidity.to_account_info(), to: ctx.accounts.depositor_account_liquidity.to_account_info(), diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/swap_exact_tokens_for_tokens.rs b/tokens/token-swap/anchor/programs/token-swap/src/instructions/swap_exact_tokens_for_tokens.rs index fb99e65aa..db6938581 100644 --- a/tokens/token-swap/anchor/programs/token-swap/src/instructions/swap_exact_tokens_for_tokens.rs +++ b/tokens/token-swap/anchor/programs/token-swap/src/instructions/swap_exact_tokens_for_tokens.rs @@ -75,7 +75,7 @@ pub fn swap_exact_tokens_for_tokens( if swap_a { token::transfer( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.trader_account_a.to_account_info(), to: ctx.accounts.pool_account_a.to_account_info(), @@ -86,7 +86,7 @@ pub fn swap_exact_tokens_for_tokens( )?; token::transfer( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.pool_account_b.to_account_info(), to: ctx.accounts.trader_account_b.to_account_info(), @@ -99,7 +99,7 @@ pub fn swap_exact_tokens_for_tokens( } else { token::transfer( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.pool_account_a.to_account_info(), to: ctx.accounts.trader_account_a.to_account_info(), @@ -111,7 +111,7 @@ pub fn swap_exact_tokens_for_tokens( )?; token::transfer( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.trader_account_b.to_account_info(), to: ctx.accounts.pool_account_b.to_account_info(), diff --git a/tokens/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs b/tokens/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs index 692cd0df3..6c78292aa 100644 --- a/tokens/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs +++ b/tokens/token-swap/anchor/programs/token-swap/src/instructions/withdraw_liquidity.rs @@ -33,7 +33,7 @@ pub fn withdraw_liquidity(ctx: Context, amount: u64) -> Resul .to_num::(); token::transfer( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.pool_account_a.to_account_info(), to: ctx.accounts.depositor_account_a.to_account_info(), @@ -55,7 +55,7 @@ pub fn withdraw_liquidity(ctx: Context, amount: u64) -> Resul .to_num::(); token::transfer( CpiContext::new_with_signer( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.pool_account_b.to_account_info(), to: ctx.accounts.depositor_account_b.to_account_info(), @@ -70,7 +70,7 @@ pub fn withdraw_liquidity(ctx: Context, amount: u64) -> Resul // It will fail if the amount is invalid token::burn( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Burn { mint: ctx.accounts.mint_liquidity.to_account_info(), from: ctx.accounts.depositor_account_liquidity.to_account_info(), diff --git a/tokens/token-swap/anchor/tests/create-amm.ts b/tokens/token-swap/anchor/tests/create-amm.ts index 3fe2c7b75..7eee680c4 100644 --- a/tokens/token-swap/anchor/tests/create-amm.ts +++ b/tokens/token-swap/anchor/tests/create-amm.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { expect } from 'chai'; import type { SwapExample } from '../target/types/swap_example'; import { createValues, expectRevert, type TestValues } from './utils'; diff --git a/tokens/token-swap/anchor/tests/create-pool.ts b/tokens/token-swap/anchor/tests/create-pool.ts index 67f141394..cdab62af2 100644 --- a/tokens/token-swap/anchor/tests/create-pool.ts +++ b/tokens/token-swap/anchor/tests/create-pool.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { PublicKey } from '@solana/web3.js'; import type { SwapExample } from '../target/types/swap_example'; import { createValues, expectRevert, mintingTokens, type TestValues } from './utils'; diff --git a/tokens/token-swap/anchor/tests/deposit-liquidity.ts b/tokens/token-swap/anchor/tests/deposit-liquidity.ts index 7cc600086..10b6d2fee 100644 --- a/tokens/token-swap/anchor/tests/deposit-liquidity.ts +++ b/tokens/token-swap/anchor/tests/deposit-liquidity.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { expect } from 'chai'; import type { SwapExample } from '../target/types/swap_example'; import { createValues, mintingTokens, type TestValues } from './utils'; diff --git a/tokens/token-swap/anchor/tests/swap.ts b/tokens/token-swap/anchor/tests/swap.ts index 7cc34196b..71afb6c91 100644 --- a/tokens/token-swap/anchor/tests/swap.ts +++ b/tokens/token-swap/anchor/tests/swap.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { BN } from 'bn.js'; import { expect } from 'chai'; import type { SwapExample } from '../target/types/swap_example'; diff --git a/tokens/token-swap/anchor/tests/utils.ts b/tokens/token-swap/anchor/tests/utils.ts index a9b7a98e5..44b0b1079 100644 --- a/tokens/token-swap/anchor/tests/utils.ts +++ b/tokens/token-swap/anchor/tests/utils.ts @@ -1,4 +1,4 @@ -import * as anchor from '@coral-xyz/anchor'; +import * as anchor from '@anchor-lang/core'; import { createMint, getAssociatedTokenAddressSync, getOrCreateAssociatedTokenAccount, mintTo } from '@solana/spl-token'; import { type Connection, Keypair, PublicKey, type Signer } from '@solana/web3.js'; import { BN } from 'bn.js'; diff --git a/tokens/token-swap/anchor/tests/withdraw-liquidity.ts b/tokens/token-swap/anchor/tests/withdraw-liquidity.ts index bb2d14c6c..e2f5ac7f0 100644 --- a/tokens/token-swap/anchor/tests/withdraw-liquidity.ts +++ b/tokens/token-swap/anchor/tests/withdraw-liquidity.ts @@ -1,5 +1,5 @@ -import type { Program } from '@coral-xyz/anchor'; -import * as anchor from '@coral-xyz/anchor'; +import type { Program } from '@anchor-lang/core'; +import * as anchor from '@anchor-lang/core'; import { expect } from 'chai'; import type { SwapExample } from '../target/types/swap_example'; import { createValues, mintingTokens, type TestValues } from './utils'; diff --git a/tokens/transfer-tokens/anchor/Anchor.toml b/tokens/transfer-tokens/anchor/Anchor.toml index 0aeeadacb..59dd54e57 100644 --- a/tokens/transfer-tokens/anchor/Anchor.toml +++ b/tokens/transfer-tokens/anchor/Anchor.toml @@ -8,8 +8,7 @@ skip-lint = false [programs.localnet] transfer_tokens = "nHi9DdNjuupjQ3c8AJU9sChB5gLbZvTLsJQouY4hU67" -[registry] -url = "https://api.apr.dev" +# [registry] section removed — no longer used in Anchor 1.0 [provider] cluster = "localnet" diff --git a/tokens/transfer-tokens/anchor/package.json b/tokens/transfer-tokens/anchor/package.json index 6099025b6..5fce1099c 100644 --- a/tokens/transfer-tokens/anchor/package.json +++ b/tokens/transfer-tokens/anchor/package.json @@ -1,7 +1,7 @@ { "type": "module", "dependencies": { - "@coral-xyz/anchor": "0.32.1", + "@anchor-lang/core": "1.0.0-rc.5", "@solana/spl-token": "^0.3.8", "bn.js": "^5.2.1" }, @@ -17,7 +17,7 @@ "mocha": "^9.0.3", "solana-bankrun": "^0.3.0", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5", + "typescript": "^5.3.3", "zx": "^8.1.4" } } diff --git a/tokens/transfer-tokens/anchor/programs/transfer-tokens/Cargo.toml b/tokens/transfer-tokens/anchor/programs/transfer-tokens/Cargo.toml index 8dcf1270e..3cc201520 100644 --- a/tokens/transfer-tokens/anchor/programs/transfer-tokens/Cargo.toml +++ b/tokens/transfer-tokens/anchor/programs/transfer-tokens/Cargo.toml @@ -20,8 +20,8 @@ custom-heap = [] custom-panic = [] [dependencies] -anchor-lang = { version = "0.32.1", features = ["init-if-needed"] } -anchor-spl = { version = "0.32.1", features = ["metadata"] } +anchor-lang = { version = "1.0.0-rc.5", features = ["init-if-needed"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release +anchor-spl = { version = "1.0.0-rc.5", features = ["metadata"] } # Anchor 1.0.0-rc.5 — pin to RC until stable release [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/create.rs b/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/create.rs index 7ebfd2483..bbb904834 100644 --- a/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/create.rs +++ b/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/create.rs @@ -51,7 +51,7 @@ pub fn create_token( // Invoking the create_metadata_account_v3 instruction on the token metadata program create_metadata_accounts_v3( CpiContext::new( - ctx.accounts.token_metadata_program.to_account_info(), + ctx.accounts.token_metadata_program.key(), CreateMetadataAccountsV3 { metadata: ctx.accounts.metadata_account.to_account_info(), mint: ctx.accounts.mint_account.to_account_info(), diff --git a/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/mint.rs b/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/mint.rs index d299bb565..59e15f627 100644 --- a/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/mint.rs +++ b/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/mint.rs @@ -38,7 +38,7 @@ pub fn mint_token(ctx: Context, amount: u64) -> Result<()> { // Invoke the mint_to instruction on the token program mint_to( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), MintTo { mint: ctx.accounts.mint_account.to_account_info(), to: ctx.accounts.associated_token_account.to_account_info(), diff --git a/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/transfer.rs b/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/transfer.rs index 443891d73..fb6d6b357 100644 --- a/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/transfer.rs +++ b/tokens/transfer-tokens/anchor/programs/transfer-tokens/src/instructions/transfer.rs @@ -51,7 +51,7 @@ pub fn transfer_tokens(ctx: Context, amount: u64) -> Result<()> // Invoke the transfer instruction on the token program transfer( CpiContext::new( - ctx.accounts.token_program.to_account_info(), + ctx.accounts.token_program.key(), Transfer { from: ctx.accounts.sender_token_account.to_account_info(), to: ctx.accounts.recipient_token_account.to_account_info(), diff --git a/tokens/transfer-tokens/anchor/tests/bankrun.test.ts b/tokens/transfer-tokens/anchor/tests/bankrun.test.ts index d58200cfc..175cda746 100644 --- a/tokens/transfer-tokens/anchor/tests/bankrun.test.ts +++ b/tokens/transfer-tokens/anchor/tests/bankrun.test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { Keypair, PublicKey } from "@solana/web3.js"; import { BankrunProvider } from "anchor-bankrun"; diff --git a/tokens/transfer-tokens/anchor/tests/test.ts b/tokens/transfer-tokens/anchor/tests/test.ts index 284bb43bc..4bc0c8213 100644 --- a/tokens/transfer-tokens/anchor/tests/test.ts +++ b/tokens/transfer-tokens/anchor/tests/test.ts @@ -1,4 +1,4 @@ -import * as anchor from "@coral-xyz/anchor"; +import * as anchor from "@anchor-lang/core"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { Keypair } from "@solana/web3.js"; import { BN } from "bn.js";