Skip to content

Commit a59260b

Browse files
committed
fix: cpi context
1 parent d5909fd commit a59260b

9 files changed

+41
-11
lines changed

cli/accounts/cpi_context_cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cli/accounts/cpi_context_cpi1uHzrEhBG733DoEJNgHCyRS3XmmyVNZx5fonubE4.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cli/accounts/cpi_context_cpi2cdhkH5roePvcudTgUL8ppEBfTay1desGh8G8QxK.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cli/accounts/cpi_context_cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cli/accounts/cpi_context_cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cli/accounts/cpi_context_cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

cli/accounts/cpi_context_cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

program-tests/system-cpi-test/tests/test_program_owned_trees.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![cfg(feature = "test-sbf")]
1+
// #![cfg(feature = "test-sbf")]
22

33
use account_compression::{
44
utils::constants::{CPI_AUTHORITY_PDA_SEED, STATE_NULLIFIER_QUEUE_VALUES},
@@ -126,7 +126,13 @@ async fn test_program_owned_merkle_tree() {
126126
assert_ne!(post_merkle_tree.root(), pre_merkle_tree.root());
127127
assert_eq!(
128128
post_merkle_tree.root(),
129-
test_indexer.state_merkle_trees[2].merkle_tree.root()
129+
test_indexer
130+
.state_merkle_trees
131+
.iter()
132+
.find(|e| e.accounts.merkle_tree == program_owned_merkle_tree_pubkey)
133+
.unwrap()
134+
.merkle_tree
135+
.root()
130136
);
131137

132138
let invalid_program_owned_merkle_tree_keypair = Keypair::new();

sdk-libs/program-test/src/program_test/light_program_test.rs

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,19 @@ impl LightProgramTest {
159159
}
160160
context.set_account(nullifier_queue_pubkey, queue_account_data);
161161

162-
context.set_account(cpi_context_pubkey, cpi_acc.clone());
162+
// Update CPI context account with correct associated merkle tree and queue
163+
let mut cpi_account_data = cpi_acc.clone();
164+
{
165+
let associated_merkle_tree_offset = 8 + 32; // discriminator + fee_payer
166+
let associated_queue_offset = 8 + 32 + 32; // discriminator + fee_payer + associated_merkle_tree
167+
cpi_account_data.data_as_mut_slice()
168+
[associated_merkle_tree_offset..associated_merkle_tree_offset + 32]
169+
.copy_from_slice(&state_mt.to_bytes());
170+
cpi_account_data.data_as_mut_slice()
171+
[associated_queue_offset..associated_queue_offset + 32]
172+
.copy_from_slice(&nullifier_queue_pubkey.to_bytes());
173+
}
174+
context.set_account(cpi_context_pubkey, cpi_account_data);
163175
}
164176
}
165177
}
@@ -227,7 +239,19 @@ impl LightProgramTest {
227239
}
228240
context.set_account(output_queue_pubkey, queue_account_data);
229241

230-
context.set_account(cpi_context_pubkey, cpi_acc.clone());
242+
// Update CPI context account with correct associated merkle tree and queue
243+
let mut cpi_account_data = cpi_acc.clone();
244+
{
245+
let associated_merkle_tree_offset = 8 + 32; // discriminator + fee_payer
246+
let associated_queue_offset = 8 + 32 + 32; // discriminator + fee_payer + associated_merkle_tree
247+
cpi_account_data.data_as_mut_slice()
248+
[associated_merkle_tree_offset..associated_merkle_tree_offset + 32]
249+
.copy_from_slice(&merkle_tree_pubkey.to_bytes());
250+
cpi_account_data.data_as_mut_slice()
251+
[associated_queue_offset..associated_queue_offset + 32]
252+
.copy_from_slice(&output_queue_pubkey.to_bytes());
253+
}
254+
context.set_account(cpi_context_pubkey, cpi_account_data);
231255
}
232256
}
233257
}

0 commit comments

Comments
 (0)