From 3a39dcb090107236ef2d33513ff8270e67f75287 Mon Sep 17 00:00:00 2001 From: ananas Date: Thu, 16 Oct 2025 20:32:28 +0100 Subject: [PATCH] chore: bump anchor to v0.32.2 --- Cargo.lock | 237 +++++++++--------- Cargo.toml | 9 +- js/stateless.js/src/rpc.ts | 1 - .../src/create_pda.rs | 2 +- .../create-address-test-program/src/lib.rs | 3 - .../system-cpi-test/src/create_pda.rs | 6 +- .../src/invalidate_not_owned_account.rs | 12 +- program-tests/system-cpi-test/src/lib.rs | 15 +- program-tests/utils/Cargo.toml | 1 + .../utils/src/assert_ctoken_transfer.rs | 3 +- programs/compressed-token/anchor/src/burn.rs | 2 +- .../anchor/src/process_mint.rs | 5 +- .../anchor/src/process_transfer.rs | 2 +- .../anchor/src/spl_compression.rs | 2 +- programs/registry/Cargo.toml | 1 + .../account_compression_cpi/batch_append.rs | 5 +- .../account_compression_cpi/batch_nullify.rs | 5 +- .../batch_update_address_tree.rs | 5 +- .../initialize_batched_address_tree.rs | 5 +- .../initialize_batched_state_tree.rs | 5 +- .../initialize_tree_and_queue.rs | 12 +- .../account_compression_cpi/migrate_state.rs | 5 +- .../src/account_compression_cpi/nullify.rs | 5 +- .../rollover_batched_address_tree.rs | 5 +- .../rollover_batched_state_tree.rs | 5 +- .../rollover_state_tree.rs | 10 +- .../update_address_tree.rs | 5 +- programs/registry/src/epoch/register_epoch.rs | 3 +- programs/registry/src/lib.rs | 10 +- scripts/devenv/versions.sh | 2 +- .../src/process_create_compressed_account.rs | 10 +- 31 files changed, 223 insertions(+), 175 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e73f80dd78..a584575a1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -214,9 +214,8 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "anchor-attribute-access-control" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f70fd141a4d18adf11253026b32504f885447048c7494faf5fa83b01af9c0cf" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-syn", "proc-macro2", @@ -226,9 +225,8 @@ dependencies = [ [[package]] name = "anchor-attribute-account" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715a261c57c7679581e06f07a74fa2af874ac30f86bd8ea07cca4a7e5388a064" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-syn", "bs58", @@ -239,9 +237,8 @@ dependencies = [ [[package]] name = "anchor-attribute-constant" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730d6df8ae120321c5c25e0779e61789e4b70dc8297102248902022f286102e4" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-syn", "quote", @@ -250,9 +247,8 @@ dependencies = [ [[package]] name = "anchor-attribute-error" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27e6e449cc3a37b2880b74dcafb8e5a17b954c0e58e376432d7adc646fb333ef" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-syn", "quote", @@ -261,9 +257,8 @@ dependencies = [ [[package]] name = "anchor-attribute-event" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7710e4c54adf485affcd9be9adec5ef8846d9c71d7f31e16ba86ff9fc1dd49f" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-syn", "proc-macro2", @@ -273,9 +268,8 @@ dependencies = [ [[package]] name = "anchor-attribute-program" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ecfd49b2aeadeb32f35262230db402abed76ce87e27562b34f61318b2ec83c" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-lang-idl", "anchor-syn", @@ -313,9 +307,8 @@ dependencies = [ [[package]] name = "anchor-derive-accounts" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be89d160793a88495af462a7010b3978e48e30a630c91de47ce2c1d3cb7a6149" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-syn", "quote", @@ -324,9 +317,8 @@ dependencies = [ [[package]] name = "anchor-derive-serde" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc6ee78acb7bfe0c2dd2abc677aaa4789c0281a0c0ef01dbf6fe85e0fd9e6e4" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-syn", "borsh-derive-internal", @@ -337,9 +329,8 @@ dependencies = [ [[package]] name = "anchor-derive-space" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134a01c0703f6fd355a0e472c033f6f3e41fac1ef6e370b20c50f4c8d022cea7" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "proc-macro2", "quote", @@ -348,9 +339,8 @@ dependencies = [ [[package]] name = "anchor-lang" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6bab117055905e930f762c196e08f861f8dfe7241b92cee46677a3b15561a0a" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", @@ -366,15 +356,34 @@ dependencies = [ "bincode", "borsh 0.10.4", "bytemuck", - "solana-program", + "const-crypto", + "solana-account-info", + "solana-clock", + "solana-cpi", + "solana-define-syscall 2.3.0", + "solana-feature-gate-interface", + "solana-instruction", + "solana-instructions-sysvar", + "solana-invoke", + "solana-loader-v3-interface 3.0.0", + "solana-msg 2.2.1", + "solana-program-entrypoint", + "solana-program-error 2.2.2", + "solana-program-memory", + "solana-program-option", + "solana-program-pack", + "solana-pubkey 2.4.0", + "solana-sdk-ids", + "solana-system-interface 1.0.0", + "solana-sysvar", + "solana-sysvar-id", "thiserror 1.0.69", ] [[package]] name = "anchor-lang-idl" version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e8599d21995f68e296265aa5ab0c3cef582fd58afec014d01bd0bce18a4418" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-lang-idl-spec", "anyhow", @@ -388,8 +397,7 @@ dependencies = [ [[package]] name = "anchor-lang-idl-spec" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anyhow", "serde", @@ -397,24 +405,22 @@ dependencies = [ [[package]] name = "anchor-spl" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c08cb5d762c0694f74bd02c9a5b04ea53cefc496e2c27b3234acffca5cd076b" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anchor-lang", - "spl-associated-token-account 6.0.0", + "spl-associated-token-account", "spl-pod", - "spl-token 7.0.0", - "spl-token-2022 6.0.0", - "spl-token-group-interface 0.5.0", - "spl-token-metadata-interface 0.6.0", + "spl-token 8.0.0", + "spl-token-2022 8.0.1", + "spl-token-group-interface 0.6.0", + "spl-token-metadata-interface 0.7.0", ] [[package]] name = "anchor-syn" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc7a6d90cc643df0ed2744862cdf180587d1e5d28936538c18fc8908489ed67" +version = "0.32.1" +source = "git+https://github.com/solana-foundation/anchor?branch=master#dd1a038761524e09f67c716eb093955ff50c44bd" dependencies = [ "anyhow", "bs58", @@ -1212,9 +1218,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -1480,6 +1486,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 = "constant_time_eq" version = "0.3.1" @@ -2607,12 +2623,6 @@ dependencies = [ "allocator-api2", ] -[[package]] -name = "hashbrown" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" - [[package]] name = "headers" version = "0.3.9" @@ -3083,7 +3093,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.15.5", "serde", "serde_core", ] @@ -3274,6 +3284,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" @@ -3900,6 +3916,7 @@ dependencies = [ "light-compressible", "light-merkle-tree-metadata", "light-system-program-anchor", + "solana-program", "solana-sdk", "solana-security-txt", ] @@ -4072,6 +4089,7 @@ dependencies = [ "rand 0.8.5", "reqwest 0.12.24", "solana-banks-client", + "solana-program", "solana-sdk", "spl-token 7.0.0", "spl-token-2022 7.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4177,7 +4195,7 @@ dependencies = [ "solana-instructions-sysvar", "solana-keypair", "solana-last-restart-slot", - "solana-loader-v3-interface", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-message", @@ -4570,9 +4588,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" dependencies = [ "bitflags 2.9.4", "cfg-if", @@ -4611,9 +4629,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" dependencies = [ "cc", "libc", @@ -5542,9 +5560,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" dependencies = [ "openssl-probe", "rustls-pki-types", @@ -6212,7 +6230,7 @@ dependencies = [ "solana-epoch-schedule", "solana-fee-calculator", "solana-instruction", - "solana-loader-v3-interface", + "solana-loader-v3-interface 5.0.0", "solana-nonce", "solana-program-option", "solana-program-pack", @@ -6442,7 +6460,7 @@ dependencies = [ "solana-hash 2.3.0", "solana-instruction", "solana-keccak-hasher", - "solana-loader-v3-interface", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -7113,6 +7131,19 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-invoke" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58f5693c6de226b3626658377168b0184e94e8292ff16e3d31d4766e65627565" +dependencies = [ + "solana-account-info", + "solana-define-syscall 2.3.0", + "solana-instruction", + "solana-program-entrypoint", + "solana-stable-layout", +] + [[package]] name = "solana-keccak-hasher" version = "2.2.1" @@ -7171,6 +7202,21 @@ dependencies = [ "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 2.4.0", + "solana-sdk-ids", + "solana-system-interface 1.0.0", +] + [[package]] name = "solana-loader-v3-interface" version = "5.0.0" @@ -7213,7 +7259,7 @@ dependencies = [ "solana-bincode", "solana-bpf-loader-program", "solana-instruction", - "solana-loader-v3-interface", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-log-collector", "solana-measure", @@ -7548,7 +7594,7 @@ dependencies = [ "solana-keccak-hasher", "solana-last-restart-slot", "solana-loader-v2-interface", - "solana-loader-v3-interface", + "solana-loader-v3-interface 5.0.0", "solana-loader-v4-interface", "solana-message", "solana-msg 2.2.1", @@ -8742,7 +8788,7 @@ dependencies = [ "solana-hash 2.3.0", "solana-instruction", "solana-loader-v2-interface", - "solana-loader-v3-interface", + "solana-loader-v3-interface 5.0.0", "solana-message", "solana-program-option", "solana-pubkey 2.4.0", @@ -8755,7 +8801,7 @@ dependencies = [ "solana-transaction-error", "solana-transaction-status-client-types", "solana-vote-interface", - "spl-associated-token-account 7.0.0", + "spl-associated-token-account", "spl-memo", "spl-token 8.0.0", "spl-token-2022 8.0.1", @@ -9011,22 +9057,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spl-associated-token-account" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76fee7d65013667032d499adc3c895e286197a35a0d3a4643c80e7fd3e9969e3" -dependencies = [ - "borsh 1.5.7", - "num-derive", - "num-traits", - "solana-program", - "spl-associated-token-account-client", - "spl-token 7.0.0", - "spl-token-2022 6.0.0", - "thiserror 1.0.69", -] - [[package]] name = "spl-associated-token-account" version = "7.0.0" @@ -9320,34 +9350,6 @@ dependencies = [ "thiserror 2.0.17", ] -[[package]] -name = "spl-token-2022" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b27f7405010ef816587c944536b0eafbcc35206ab6ba0f2ca79f1d28e488f4f" -dependencies = [ - "arrayref", - "bytemuck", - "num-derive", - "num-traits", - "num_enum", - "solana-program", - "solana-security-txt", - "solana-zk-sdk", - "spl-elgamal-registry 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "spl-memo", - "spl-pod", - "spl-token 7.0.0", - "spl-token-confidential-transfer-ciphertext-arithmetic 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "spl-token-confidential-transfer-proof-extraction 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "spl-token-confidential-transfer-proof-generation 0.2.0", - "spl-token-group-interface 0.5.0", - "spl-token-metadata-interface 0.6.0", - "spl-transfer-hook-interface 0.9.0", - "spl-type-length-value 0.7.0", - "thiserror 1.0.69", -] - [[package]] name = "spl-token-2022" version = "7.0.0" @@ -9529,17 +9531,6 @@ dependencies = [ "thiserror 2.0.17", ] -[[package]] -name = "spl-token-confidential-transfer-proof-generation" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8627184782eec1894de8ea26129c61303f1f0adeed65c20e0b10bc584f09356d" -dependencies = [ - "curve25519-dalek 4.1.3", - "solana-zk-sdk", - "thiserror 1.0.69", -] - [[package]] name = "spl-token-confidential-transfer-proof-generation" version = "0.3.0" diff --git a/Cargo.toml b/Cargo.toml index e040022d48..6776291832 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -121,8 +121,8 @@ pinocchio-system = { version = "0.3.0" } bs58 = "^0.5.1" litesvm = "0.7" # Anchor -anchor-lang = { version = "=0.31.1" } -anchor-spl = "=0.31.1" +anchor-lang = { version = "0.32.0" } +anchor-spl = "0.32.0" # Anchor compatibility borsh = "0.10.0" @@ -247,3 +247,8 @@ solana-bpf-loader-program = { git = "https://github.com/Lightprotocol/agave", re # Patch solana-program-memory to use older version where is_nonoverlapping is public solana-program-memory = { git = "https://github.com/anza-xyz/solana-sdk", rev = "1c1d667f161666f12f5a43ebef8eda9470a8c6ee" } litesvm = { git = "https://github.com/Lightprotocol/litesvm", rev = "a04cb80b6847eb720c840a5e5d9a6f74ce630cc6" } +# Fix anchor-syn 0.32.1 local_file() error with proc_macro2 +# Using latest master with the fix merged +anchor-lang = { git = "https://github.com/solana-foundation/anchor", branch = "master" } +anchor-syn = { git = "https://github.com/solana-foundation/anchor", branch = "master" } +anchor-spl = { git = "https://github.com/solana-foundation/anchor", branch = "master" } diff --git a/js/stateless.js/src/rpc.ts b/js/stateless.js/src/rpc.ts index 9ec26b2b4b..66a05256b0 100644 --- a/js/stateless.js/src/rpc.ts +++ b/js/stateless.js/src/rpc.ts @@ -1590,7 +1590,6 @@ export class Rpc extends Connection implements CompressionApiInterface { const timeout = isLocalTest(this.rpcEndpoint) ? 10000 : 20000; const interval = isLocalTest(this.rpcEndpoint) ? 100 : 200; const startTime = Date.now(); - // eslint-disable-next-line no-constant-condition while (true) { const indexerSlot = await this.getIndexerSlot(); diff --git a/program-tests/create-address-test-program/src/create_pda.rs b/program-tests/create-address-test-program/src/create_pda.rs index eceefaceeb..3d9aca49fe 100644 --- a/program-tests/create-address-test-program/src/create_pda.rs +++ b/program-tests/create-address-test-program/src/create_pda.rs @@ -74,7 +74,7 @@ fn cpi_compressed_pda_transfer_as_program<'info>( let signer_seeds: [&[&[u8]]; 1] = [&seeds[..]]; let mut cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.light_system_program.to_account_info(), + *ctx.accounts.light_system_program.to_account_info().key, cpi_accounts, &signer_seeds, ); diff --git a/program-tests/create-address-test-program/src/lib.rs b/program-tests/create-address-test-program/src/lib.rs index f272cf581c..6bfe100c8c 100644 --- a/program-tests/create-address-test-program/src/lib.rs +++ b/program-tests/create-address-test-program/src/lib.rs @@ -139,7 +139,6 @@ pub fn process_invoke_cpi<'info>( inputs: Vec, bump: u8, ) -> Result<()> { - anchor_lang::solana_program::log::sol_log_compute_units(); let cpi_accounts = light_system_program::cpi::accounts::InvokeCpiInstruction { fee_payer: ctx.accounts.signer.to_account_info(), authority: ctx.accounts.cpi_signer.to_account_info(), @@ -175,8 +174,6 @@ pub fn process_invoke_cpi<'info>( data: inputs, }; - anchor_lang::solana_program::log::sol_log_compute_units(); - // Invoke the instruction with signer seeds anchor_lang::solana_program::program::invoke_signed( &instruction, diff --git a/program-tests/system-cpi-test/src/create_pda.rs b/program-tests/system-cpi-test/src/create_pda.rs index 0009c4a0ca..d8ff6e1504 100644 --- a/program-tests/system-cpi-test/src/create_pda.rs +++ b/program-tests/system-cpi-test/src/create_pda.rs @@ -220,7 +220,7 @@ fn cpi_compressed_pda_transfer_as_non_program<'info>( cpi_context_account: None, }; let mut cpi_ctx = CpiContext::new( - ctx.accounts.light_system_program.to_account_info(), + *ctx.accounts.light_system_program.to_account_info().key, cpi_accounts, ); @@ -429,7 +429,7 @@ fn cpi_compressed_pda_transfer_as_program<'info>( let signer_seeds: [&[&[u8]]; 1] = [&seeds[..]]; let mut cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.light_system_program.to_account_info(), + *ctx.accounts.light_system_program.to_account_info().key, cpi_accounts, &signer_seeds, ); @@ -458,7 +458,7 @@ fn cpi_compressed_pda_transfer_as_program<'info>( let signer_seeds: [&[&[u8]]; 1] = [&seeds[..]]; let mut cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.light_system_program.to_account_info(), + *ctx.accounts.light_system_program.to_account_info().key, cpi_accounts, &signer_seeds, ); diff --git a/program-tests/system-cpi-test/src/invalidate_not_owned_account.rs b/program-tests/system-cpi-test/src/invalidate_not_owned_account.rs index e44f2a98b7..73f50c7b5a 100644 --- a/program-tests/system-cpi-test/src/invalidate_not_owned_account.rs +++ b/program-tests/system-cpi-test/src/invalidate_not_owned_account.rs @@ -174,7 +174,7 @@ pub fn process_invalidate_not_owned_compressed_account<'info>( let signer_seeds: [&[&[u8]]; 1] = [&seeds[..]]; let mut cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.light_system_program.to_account_info(), + *ctx.accounts.light_system_program.to_account_info().key, cpi_accounts, &signer_seeds, ); @@ -361,7 +361,7 @@ pub fn cpi_compressed_token_transfer<'info>( }; let mut cpi_ctx = CpiContext::new( - ctx.accounts.compressed_token_program.to_account_info(), + *ctx.accounts.compressed_token_program.to_account_info().key, cpi_accounts, ); @@ -442,7 +442,7 @@ pub fn cpi_compressed_token_approve_revoke<'info>( }; let mut cpi_ctx = CpiContext::new( - ctx.accounts.compressed_token_program.to_account_info(), + *ctx.accounts.compressed_token_program.to_account_info().key, cpi_accounts, ); @@ -509,7 +509,7 @@ pub fn cpi_compressed_token_burn<'info>( }; let mut cpi_ctx = CpiContext::new( - ctx.accounts.compressed_token_program.to_account_info(), + *ctx.accounts.compressed_token_program.to_account_info().key, cpi_accounts, ); @@ -583,7 +583,7 @@ pub fn cpi_compressed_token_freeze_or_thaw<'info>( }; let mut cpi_ctx = CpiContext::new( - ctx.accounts.compressed_token_program.to_account_info(), + *ctx.accounts.compressed_token_program.to_account_info().key, cpi_accounts, ); @@ -654,7 +654,7 @@ fn write_into_cpi_account<'info>( let signer_seeds: [&[&[u8]]; 1] = [&seeds[..]]; let mut cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.light_system_program.to_account_info(), + *ctx.accounts.light_system_program.to_account_info().key, cpi_accounts, &signer_seeds, ); diff --git a/program-tests/system-cpi-test/src/lib.rs b/program-tests/system-cpi-test/src/lib.rs index fdb4dce7ff..46ca8a3a88 100644 --- a/program-tests/system-cpi-test/src/lib.rs +++ b/program-tests/system-cpi-test/src/lib.rs @@ -99,7 +99,10 @@ pub mod system_cpi_test { let bump = &[bump]; let seeds = [&[CPI_AUTHORITY_PDA_SEED, bump][..]]; let mut cpi_context = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, &seeds, ); @@ -158,7 +161,10 @@ pub mod system_cpi_test { registered_program_pda: Some(ctx.accounts.registered_program_pda.clone()), }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); @@ -194,7 +200,10 @@ pub mod system_cpi_test { registered_program_pda: Some(ctx.accounts.registered_program_pda.clone()), }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/program-tests/utils/Cargo.toml b/program-tests/utils/Cargo.toml index db00f731a0..9b3f03f0c2 100644 --- a/program-tests/utils/Cargo.toml +++ b/program-tests/utils/Cargo.toml @@ -18,6 +18,7 @@ anchor-spl = { workspace = true } num-bigint = { workspace = true, features = ["rand"] } num-traits = { workspace = true } solana-sdk = { workspace = true } +solana-program = { workspace = true } thiserror = { workspace = true } account-compression = { workspace = true, features = ["cpi"] } light-compressed-token = { workspace = true, features = ["cpi"] } diff --git a/program-tests/utils/src/assert_ctoken_transfer.rs b/program-tests/utils/src/assert_ctoken_transfer.rs index 2cc7256e81..54ca01a4b1 100644 --- a/program-tests/utils/src/assert_ctoken_transfer.rs +++ b/program-tests/utils/src/assert_ctoken_transfer.rs @@ -1,8 +1,9 @@ -use anchor_spl::token_2022::spl_token_2022::{self, solana_program::program_pack::Pack}; +use anchor_spl::token_2022::spl_token_2022; use light_client::rpc::Rpc; use light_ctoken_types::state::CToken; use light_program_test::LightProgramTest; use light_zero_copy::traits::ZeroCopyAt; +use solana_program::program_pack::Pack; use solana_sdk::pubkey::Pubkey; /// Assert compressible extension properties for an account, using cached pre-transaction state diff --git a/programs/compressed-token/anchor/src/burn.rs b/programs/compressed-token/anchor/src/burn.rs index ec1b9faf08..fc11764315 100644 --- a/programs/compressed-token/anchor/src/burn.rs +++ b/programs/compressed-token/anchor/src/burn.rs @@ -101,7 +101,7 @@ pub fn spl_burn_cpi<'info>( }; let signer_seeds = get_cpi_signer_seeds(); let signer_seeds_ref = &[&signer_seeds[..]]; - let cpi_ctx = CpiContext::new_with_signer(token_program, cpi_accounts, signer_seeds_ref); + let cpi_ctx = CpiContext::new_with_signer(*token_program.key, cpi_accounts, signer_seeds_ref); anchor_spl::token_interface::burn(cpi_ctx, burn_amount)?; let post_token_balance = TokenAccount::try_deserialize(&mut &token_pool_pda.data.borrow()[..])?.amount; diff --git a/programs/compressed-token/anchor/src/process_mint.rs b/programs/compressed-token/anchor/src/process_mint.rs index 15196d6de2..a39d7f6343 100644 --- a/programs/compressed-token/anchor/src/process_mint.rs +++ b/programs/compressed-token/anchor/src/process_mint.rs @@ -335,7 +335,10 @@ pub fn mint_spl_to_pool_pda( authority: ctx.accounts.authority.to_account_info(), }; - let cpi_ctx = CpiContext::new(ctx.accounts.token_program.to_account_info(), cpi_accounts); + let cpi_ctx = CpiContext::new( + *ctx.accounts.token_program.to_account_info().key, + cpi_accounts, + ); anchor_spl::token_interface::mint_to(cpi_ctx, mint_amount)?; let post_token_balance = TokenAccount::try_deserialize( diff --git a/programs/compressed-token/anchor/src/process_transfer.rs b/programs/compressed-token/anchor/src/process_transfer.rs index c560879f7f..5a6293d6c5 100644 --- a/programs/compressed-token/anchor/src/process_transfer.rs +++ b/programs/compressed-token/anchor/src/process_transfer.rs @@ -467,7 +467,7 @@ pub fn cpi_execute_compressed_transaction_transfer< cpi_context_account, }; let mut cpi_ctx = CpiContext::new_with_signer( - _system_program_account_info, + *_system_program_account_info.key, cpi_accounts, signer_seeds_ref, ); diff --git a/programs/compressed-token/anchor/src/spl_compression.rs b/programs/compressed-token/anchor/src/spl_compression.rs index 9cfa82e0df..790212545e 100644 --- a/programs/compressed-token/anchor/src/spl_compression.rs +++ b/programs/compressed-token/anchor/src/spl_compression.rs @@ -234,7 +234,7 @@ pub fn spl_token_transfer_cpi_with_signer<'info>( to, authority, }; - let cpi_ctx = CpiContext::new_with_signer(token_program, accounts, signer_seeds_ref); + let cpi_ctx = CpiContext::new_with_signer(*token_program.key, accounts, signer_seeds_ref); anchor_spl::token_interface::transfer(cpi_ctx, amount) } diff --git a/programs/registry/Cargo.toml b/programs/registry/Cargo.toml index aa2a1a6ab7..0401c0a45b 100644 --- a/programs/registry/Cargo.toml +++ b/programs/registry/Cargo.toml @@ -28,6 +28,7 @@ light-compressible = { workspace = true, features = ["anchor"] } light-compressed-token-sdk = { workspace = true , features = ["anchor"]} light-system-program-anchor = { workspace = true, features = ["cpi"] } solana-security-txt = "1.1.0" +solana-program = { workspace = true } light-merkle-tree-metadata = { workspace = true, features = ["anchor"] } light-batched-merkle-tree = { workspace = true } [target.'cfg(not(target_os = "solana"))'.dependencies] diff --git a/programs/registry/src/account_compression_cpi/batch_append.rs b/programs/registry/src/account_compression_cpi/batch_append.rs index 36ba9f8ac7..60519a21a1 100644 --- a/programs/registry/src/account_compression_cpi/batch_append.rs +++ b/programs/registry/src/account_compression_cpi/batch_append.rs @@ -38,7 +38,10 @@ pub fn process_batch_append(ctx: &Context, bump: u8, data: Vec) }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/programs/registry/src/account_compression_cpi/batch_nullify.rs b/programs/registry/src/account_compression_cpi/batch_nullify.rs index f6756f4757..dec3a391d7 100644 --- a/programs/registry/src/account_compression_cpi/batch_nullify.rs +++ b/programs/registry/src/account_compression_cpi/batch_nullify.rs @@ -34,7 +34,10 @@ pub fn process_batch_nullify(ctx: &Context, bump: u8, data: Vec( cpi_context_account, associated_merkle_tree, }; - let cpi_ctx = CpiContext::new_with_signer(light_system_program, accounts, signer_seeds); + let cpi_ctx = CpiContext::new_with_signer(*light_system_program.key, accounts, signer_seeds); light_system_program::cpi::init_cpi_context_account(cpi_ctx) } diff --git a/programs/registry/src/account_compression_cpi/migrate_state.rs b/programs/registry/src/account_compression_cpi/migrate_state.rs index 69e5a26930..38e01abd1b 100644 --- a/programs/registry/src/account_compression_cpi/migrate_state.rs +++ b/programs/registry/src/account_compression_cpi/migrate_state.rs @@ -43,7 +43,10 @@ pub fn process_migrate_state( output_queue: ctx.accounts.output_queue.to_account_info(), }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/programs/registry/src/account_compression_cpi/nullify.rs b/programs/registry/src/account_compression_cpi/nullify.rs index 161a948f82..20720ad0ac 100644 --- a/programs/registry/src/account_compression_cpi/nullify.rs +++ b/programs/registry/src/account_compression_cpi/nullify.rs @@ -46,7 +46,10 @@ pub fn process_nullify( nullifier_queue: ctx.accounts.nullifier_queue.to_account_info(), }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/programs/registry/src/account_compression_cpi/rollover_batched_address_tree.rs b/programs/registry/src/account_compression_cpi/rollover_batched_address_tree.rs index 3d4a747894..ae6ab00d13 100644 --- a/programs/registry/src/account_compression_cpi/rollover_batched_address_tree.rs +++ b/programs/registry/src/account_compression_cpi/rollover_batched_address_tree.rs @@ -42,7 +42,10 @@ pub fn process_rollover_batched_address_merkle_tree( }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/programs/registry/src/account_compression_cpi/rollover_batched_state_tree.rs b/programs/registry/src/account_compression_cpi/rollover_batched_state_tree.rs index fccd776b67..e536c3e701 100644 --- a/programs/registry/src/account_compression_cpi/rollover_batched_state_tree.rs +++ b/programs/registry/src/account_compression_cpi/rollover_batched_state_tree.rs @@ -54,7 +54,10 @@ pub fn process_rollover_batched_state_merkle_tree( }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/programs/registry/src/account_compression_cpi/rollover_state_tree.rs b/programs/registry/src/account_compression_cpi/rollover_state_tree.rs index e34e11527b..5c9a1292e0 100644 --- a/programs/registry/src/account_compression_cpi/rollover_state_tree.rs +++ b/programs/registry/src/account_compression_cpi/rollover_state_tree.rs @@ -84,7 +84,10 @@ pub fn process_rollover_address_merkle_tree_and_queue( old_queue: ctx.accounts.old_queue.to_account_info(), }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); @@ -110,7 +113,10 @@ pub fn process_rollover_state_merkle_tree_and_queue( old_nullifier_queue: ctx.accounts.old_queue.to_account_info(), }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/programs/registry/src/account_compression_cpi/update_address_tree.rs b/programs/registry/src/account_compression_cpi/update_address_tree.rs index 4c7e252d18..50204e9466 100644 --- a/programs/registry/src/account_compression_cpi/update_address_tree.rs +++ b/programs/registry/src/account_compression_cpi/update_address_tree.rs @@ -52,7 +52,10 @@ pub fn process_update_address_merkle_tree( merkle_tree: ctx.accounts.merkle_tree.to_account_info(), }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/programs/registry/src/epoch/register_epoch.rs b/programs/registry/src/epoch/register_epoch.rs index 4845025b60..a637815c51 100644 --- a/programs/registry/src/epoch/register_epoch.rs +++ b/programs/registry/src/epoch/register_epoch.rs @@ -1,5 +1,6 @@ use aligned_sized::aligned_sized; use anchor_lang::{prelude::*, solana_program::pubkey::Pubkey}; +use solana_program::hash::Hasher; use crate::{ constants::FORESTER_EPOCH_SEED, @@ -67,7 +68,7 @@ impl ForesterEpochPda { epoch: u64, ) -> Result { // Domain separation using the pubkey and current_light_slot. - let mut hasher = anchor_lang::solana_program::hash::Hasher::default(); + let mut hasher = Hasher::default(); hasher.hashv(&[ pubkey.to_bytes().as_slice(), &epoch.to_be_bytes(), diff --git a/programs/registry/src/lib.rs b/programs/registry/src/lib.rs index 2f5dccd7d0..aaf26f12cb 100644 --- a/programs/registry/src/lib.rs +++ b/programs/registry/src/lib.rs @@ -125,7 +125,10 @@ pub mod light_registry { }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); @@ -146,7 +149,10 @@ pub mod light_registry { }; let cpi_ctx = CpiContext::new_with_signer( - ctx.accounts.account_compression_program.to_account_info(), + *ctx.accounts + .account_compression_program + .to_account_info() + .key, accounts, signer_seeds, ); diff --git a/scripts/devenv/versions.sh b/scripts/devenv/versions.sh index a9204c1667..57cfaf5a0a 100755 --- a/scripts/devenv/versions.sh +++ b/scripts/devenv/versions.sh @@ -10,7 +10,7 @@ export PNPM_VERSION=$(grep 'packageManager' "${REPO_ROOT}/package.json" | sed 's # Versions to bump manually (edit below) export NODE_VERSION="22.16.0" export SOLANA_VERSION="2.2.15" -export ANCHOR_VERSION="0.31.1" +export ANCHOR_VERSION="0.32.1" export JQ_VERSION="1.8.0" export PHOTON_VERSION="0.51.0" export PHOTON_COMMIT="ad49094e59195c664a683b7c7814e26563640d57" diff --git a/sdk-tests/sdk-token-test/src/process_create_compressed_account.rs b/sdk-tests/sdk-token-test/src/process_create_compressed_account.rs index 0f002d9055..9bb3a1de37 100644 --- a/sdk-tests/sdk-token-test/src/process_create_compressed_account.rs +++ b/sdk-tests/sdk-token-test/src/process_create_compressed_account.rs @@ -1,4 +1,4 @@ -use anchor_lang::{prelude::*, solana_program::log::sol_log_compute_units}; +use anchor_lang::prelude::*; use light_compressed_account::instruction_data::cpi_context::CompressedCpiContext; use light_compressed_token_sdk::{ account::CTokenAccount, @@ -42,12 +42,10 @@ pub fn process_create_compressed_account<'a, 'info>( my_compressed_account.owner = *cpi_accounts.fee_payer().key; msg!("invoke"); - sol_log_compute_units(); LightSystemProgramCpi::new_cpi(crate::LIGHT_CPI_SIGNER, proof) .with_light_account(my_compressed_account)? .with_new_addresses(&[new_address_params]) .invoke(cpi_accounts)?; - sol_log_compute_units(); Ok(()) } @@ -105,10 +103,8 @@ pub fn deposit_tokens<'a, 'info>( // msg!("instruction {:?}", instruction); // We can use the property that account infos don't have to be in order if you use // solana program invoke. - sol_log_compute_units(); msg!("create_account_infos"); - sol_log_compute_units(); // TODO: initialize from CpiAccounts, use with_compressed_pda() offchain. // let account_infos: TransferAccountInfos<'_, 'info, MAX_ACCOUNT_INFOS> = TransferAccountInfos { // fee_payer: cpi_accounts.fee_payer(), @@ -126,13 +122,9 @@ pub fn deposit_tokens<'a, 'info>( &remaining_accounts[..len], ] .concat(); - sol_log_compute_units(); - sol_log_compute_units(); msg!("invoke"); - sol_log_compute_units(); anchor_lang::solana_program::program::invoke(&instruction, account_infos.as_slice())?; - sol_log_compute_units(); Ok(()) }