Skip to content

Commit 243cbe5

Browse files
refactor: update constants to use usize for tree heights, improve function naming, remove commented code (#1552)
* perf: account compression zero copy perf: unify acp cpi wip wip: unified cpi, batch_invoke_test runs optimized ix data system program refactor: folder structure system program and cleanup test: fix sum check test, replace panics with errors chore: add readonly feature stash event refactor fixed: system, e2e tests fixed: clippy errors cleanup fix: compressed token and registry program tests fix: sdk-program tests fix: token-escrow test && clippy fix: account compression & system cpi tests chore: fix rebase cleanup fix lint chore: light-utils add bytemuck feature chore: moved offset to concurrent Merkle tree, fixed light utils test, added bytemuck feature to light utils chore: update photon-indexer installation branch to feat/parse-event-from-ixs (#1536) regenerated accounts fix install script fix:lint fix: account-compression program for direct cpis chore: update photon-indexer installation command fix: fix sequence number emit chore: fix lint fix: batched tree tests fix: test coverage of light zero copy fix: examples tests send_with_public_event fix: e2e tests chore: fix e2e tests and add ts insert into queues ix data deserialization chore: improve test chore: fix light_utils pubkey to anchor pubkey conversion chore: move system program sdk -> test-utils, rename accounts -> account-traits feat: typescript event parsing (#1548) * feat: add support for new instruction data structures and enhance event parsing * wip (#1549) * chore: remove winston logger and clean up package dependencies --------- Co-authored-by: Swen Schäferjohann <42959314+SwenSchaeferjohann@users.noreply.github.com> chore: remove unnecessary logs from tests and layout encoding (#1550) * chore: enable prover restore in test_create_pda_in_program_owned_merkle_trees * refactor: update constants to use usize for tree heights, improve function naming, remove commented code * refactor: change tree height constants from usize to u32 and update related usages --------- Co-authored-by: ananas-block <jorrit@lightprotocol.com>
1 parent cee1899 commit 243cbe5

File tree

19 files changed

+80
-165
lines changed

19 files changed

+80
-165
lines changed

program-libs/batched-merkle-tree/src/initialize_state_tree.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -295,37 +295,37 @@ pub fn get_state_merkle_tree_account_size_from_params(
295295
}
296296

297297
#[cfg(not(target_os = "solana"))]
298-
pub fn assert_state_mt_zero_copy_inited(
298+
pub fn assert_state_mt_zero_copy_initialized(
299299
account_data: &mut [u8],
300300
ref_account: crate::merkle_tree_metadata::BatchedMerkleTreeMetadata,
301301
) {
302302
let account = BatchedMerkleTreeAccount::state_from_bytes(account_data)
303303
.expect("from_bytes_unchecked_mut failed");
304-
_assert_mt_zero_copy_inited::<{ crate::constants::BATCHED_STATE_TREE_TYPE }>(
304+
_assert_mt_zero_copy_initialized::<{ crate::constants::BATCHED_STATE_TREE_TYPE }>(
305305
account,
306306
ref_account,
307307
TreeType::BatchedState as u64,
308308
);
309309
}
310310

311311
#[cfg(not(target_os = "solana"))]
312-
pub fn assert_address_mt_zero_copy_inited(
312+
pub fn assert_address_mt_zero_copy_initialized(
313313
account_data: &mut [u8],
314314
ref_account: crate::merkle_tree_metadata::BatchedMerkleTreeMetadata,
315315
) {
316316
use crate::{constants::BATCHED_ADDRESS_TREE_TYPE, merkle_tree::BatchedMerkleTreeAccount};
317317

318318
let account = BatchedMerkleTreeAccount::address_from_bytes(account_data)
319319
.expect("from_bytes_unchecked_mut failed");
320-
_assert_mt_zero_copy_inited::<BATCHED_ADDRESS_TREE_TYPE>(
320+
_assert_mt_zero_copy_initialized::<BATCHED_ADDRESS_TREE_TYPE>(
321321
account,
322322
ref_account,
323323
TreeType::Address as u64,
324324
);
325325
}
326326

327327
#[cfg(not(target_os = "solana"))]
328-
fn _assert_mt_zero_copy_inited<const TREE_TYPE: u64>(
328+
fn _assert_mt_zero_copy_initialized<const TREE_TYPE: u64>(
329329
account: BatchedMerkleTreeAccount,
330330
ref_account: crate::merkle_tree_metadata::BatchedMerkleTreeMetadata,
331331
tree_type: u64,

program-libs/batched-merkle-tree/src/rollover_address_tree.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ pub fn assert_address_mt_roll_over(
123123
let old_mt_account =
124124
BatchedMerkleTreeAccount::address_from_bytes(&mut old_mt_account_data).unwrap();
125125
assert_eq!(*old_mt_account.get_metadata(), old_ref_mt_account);
126-
crate::initialize_state_tree::assert_address_mt_zero_copy_inited(
126+
crate::initialize_state_tree::assert_address_mt_zero_copy_initialized(
127127
&mut new_mt_account_data,
128128
new_ref_mt_account,
129129
);

program-libs/batched-merkle-tree/src/rollover_state_tree.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ pub fn assert_mt_roll_over(params: MtRollOverAssertParams) {
325325
let zero_copy_mt = BatchedMerkleTreeAccount::state_from_bytes(&mut mt_account_data).unwrap();
326326
assert_eq!(*zero_copy_mt.get_metadata(), ref_rolledover_mt);
327327

328-
crate::initialize_state_tree::assert_state_mt_zero_copy_inited(
328+
crate::initialize_state_tree::assert_state_mt_zero_copy_initialized(
329329
&mut new_mt_account_data,
330330
ref_mt_account,
331331
);

program-libs/batched-merkle-tree/tests/initialize_address_tree.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use light_batched_merkle_tree::{
33
initialize_address_tree::{
44
init_batched_address_merkle_tree_account, InitAddressTreeAccountsInstructionData,
55
},
6-
initialize_state_tree::assert_address_mt_zero_copy_inited,
6+
initialize_state_tree::assert_address_mt_zero_copy_initialized,
77
merkle_tree::{get_merkle_tree_account_size, get_merkle_tree_account_size_default},
88
merkle_tree_metadata::{BatchedMerkleTreeMetadata, CreateTreeParams},
99
};
@@ -32,7 +32,7 @@ fn test_account_init() {
3232
)
3333
.unwrap();
3434

35-
assert_address_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
35+
assert_address_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
3636
}
3737

3838
#[test]
@@ -112,6 +112,6 @@ fn test_rnd_account_init() {
112112
let mt_params = CreateTreeParams::from_address_ix_params(params, owner, tree_pubkey);
113113
let ref_mt_account =
114114
BatchedMerkleTreeMetadata::new_address_tree(mt_params, merkle_tree_rent);
115-
assert_address_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
115+
assert_address_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
116116
}
117117
}

program-libs/batched-merkle-tree/tests/initialize_state_tree.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use light_batched_merkle_tree::{
22
constants::NUM_BATCHES,
33
initialize_state_tree::{
4-
assert_state_mt_zero_copy_inited, create_output_queue_account,
4+
assert_state_mt_zero_copy_initialized, create_output_queue_account,
55
init_batched_state_merkle_tree_accounts, CreateOutputQueueParams,
66
InitStateTreeAccountsInstructionData,
77
},
@@ -72,7 +72,7 @@ fn test_different_parameters() {
7272
let mt_params = CreateTreeParams::from_state_ix_params(params, owner, mt_pubkey);
7373
let ref_mt_account =
7474
BatchedMerkleTreeMetadata::new_state_tree(mt_params, output_queue_pubkey);
75-
assert_state_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
75+
assert_state_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
7676
}
7777
}
7878

@@ -120,7 +120,7 @@ fn test_account_init() {
120120
);
121121
let mt_params = CreateTreeParams::from_state_ix_params(params, owner, mt_pubkey);
122122
let ref_mt_account = BatchedMerkleTreeMetadata::new_state_tree(mt_params, output_queue_pubkey);
123-
assert_state_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
123+
assert_state_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
124124
}
125125

126126
#[test]
@@ -253,6 +253,6 @@ fn test_rnd_account_init() {
253253

254254
let ref_mt_account =
255255
BatchedMerkleTreeMetadata::new_state_tree(mt_params, output_queue_pubkey);
256-
assert_state_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
256+
assert_state_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
257257
}
258258
}

program-libs/batched-merkle-tree/tests/merkle_tree.rs

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use light_merkle_tree_metadata::merkle_tree::TreeType;
3333
use light_merkle_tree_reference::MerkleTree;
3434
use light_prover_client::{
3535
gnark::helpers::{spawn_prover, ProofType, ProverConfig},
36-
mock_batched_forester::{self, MockBatchedAddressForester, MockBatchedForester, MockTxEvent},
36+
mock_batched_forester::{MockBatchedAddressForester, MockBatchedForester, MockTxEvent},
3737
};
3838
use light_utils::{
3939
hashchain::create_hash_chain_from_slice, instruction::compressed_proof::CompressedProof,
@@ -170,7 +170,7 @@ pub fn assert_input_queue_insert(
170170
inserted_batch_index
171171
);
172172
// New value exists in the current batch bloom filter
173-
let mut bloom_filter = light_bloom_filter::BloomFilter::new(
173+
let mut bloom_filter = BloomFilter::new(
174174
merkle_tree_account.queue_metadata.batches[inserted_batch_index].num_iters as usize,
175175
merkle_tree_account.queue_metadata.batches[inserted_batch_index].bloom_filter_capacity,
176176
merkle_tree_account.bloom_filter_stores[inserted_batch_index],
@@ -197,8 +197,7 @@ pub fn assert_input_queue_insert(
197197
// Skip current batch it is already checked above
198198
if i != inserted_batch_index {
199199
let mut bloom_filter =
200-
light_bloom_filter::BloomFilter::new(num_iters, bloom_filter_capacity, store)
201-
.unwrap();
200+
BloomFilter::new(num_iters, bloom_filter_capacity, store).unwrap();
202201
assert!(!bloom_filter.contains(insert_value));
203202
}
204203
}
@@ -303,11 +302,11 @@ pub fn assert_output_queue_insert(
303302
.to_vec()
304303
.contains(insert_value));
305304
if expected_batch.get_num_zkp_batches() == expected_batch.get_current_zkp_batch_index() {
306-
assert!(
305+
assert_eq!(
307306
output_account.batch_metadata.batches
308307
[pre_account.batch_metadata.currently_processing_batch_index as usize]
309-
.get_state()
310-
== BatchState::Full
308+
.get_state(),
309+
BatchState::Full
311310
);
312311
pre_account.batch_metadata.currently_processing_batch_index += 1;
313312
pre_account.batch_metadata.currently_processing_batch_index %=
@@ -435,9 +434,8 @@ async fn test_simulate_transactions() {
435434
},
436435
)
437436
.await;
438-
let mut mock_indexer = mock_batched_forester::MockBatchedForester::<
439-
{ DEFAULT_BATCH_STATE_TREE_HEIGHT as usize },
440-
>::default();
437+
let mut mock_indexer =
438+
MockBatchedForester::<{ DEFAULT_BATCH_STATE_TREE_HEIGHT as usize }>::default();
441439

442440
let num_tx = 2200;
443441
let owner = Pubkey::new_unique();
@@ -871,9 +869,8 @@ async fn test_e2e() {
871869
},
872870
)
873871
.await;
874-
let mut mock_indexer = mock_batched_forester::MockBatchedForester::<
875-
{ DEFAULT_BATCH_STATE_TREE_HEIGHT as usize },
876-
>::default();
872+
let mut mock_indexer =
873+
MockBatchedForester::<{ DEFAULT_BATCH_STATE_TREE_HEIGHT as usize }>::default();
877874

878875
let num_tx = 2200;
879876
let owner = Pubkey::new_unique();
@@ -1436,9 +1433,8 @@ async fn test_fill_state_queues_completely() {
14361433
.await;
14371434
let roothistory_capacity = vec![17, 80]; //
14381435
for root_history_capacity in roothistory_capacity {
1439-
let mut mock_indexer = mock_batched_forester::MockBatchedForester::<
1440-
{ DEFAULT_BATCH_STATE_TREE_HEIGHT as usize },
1441-
>::default();
1436+
let mut mock_indexer =
1437+
MockBatchedForester::<{ DEFAULT_BATCH_STATE_TREE_HEIGHT as usize }>::default();
14421438

14431439
let mut params = InitStateTreeAccountsInstructionData::test_default();
14441440
params.output_queue_batch_size = params.input_queue_batch_size * 10;
@@ -1825,9 +1821,8 @@ async fn test_fill_address_tree_completely() {
18251821
.await;
18261822
let roothistory_capacity = vec![17, 80]; //
18271823
for root_history_capacity in roothistory_capacity {
1828-
let mut mock_indexer = mock_batched_forester::MockBatchedAddressForester::<
1829-
{ DEFAULT_BATCH_ADDRESS_TREE_HEIGHT as usize },
1830-
>::default();
1824+
let mut mock_indexer =
1825+
MockBatchedAddressForester::<{ DEFAULT_BATCH_ADDRESS_TREE_HEIGHT as usize }>::default();
18311826

18321827
let mut params = InitAddressTreeAccountsInstructionData::test_default();
18331828
// Root history capacity which is greater than the input updates

program-libs/batched-merkle-tree/tests/rollover_address_tree.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use light_batched_merkle_tree::{
44
initialize_address_tree::{
55
init_batched_address_merkle_tree_account, InitAddressTreeAccountsInstructionData,
66
},
7-
initialize_state_tree::assert_address_mt_zero_copy_inited,
7+
initialize_state_tree::assert_address_mt_zero_copy_initialized,
88
merkle_tree::{
99
get_merkle_tree_account_size, get_merkle_tree_account_size_default,
1010
BatchedMerkleTreeAccount,
@@ -52,7 +52,7 @@ fn test_rollover() {
5252

5353
let ref_mt_account =
5454
BatchedMerkleTreeMetadata::new_address_tree(create_tree_params, merkle_tree_rent);
55-
assert_address_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
55+
assert_address_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
5656

5757
let mut new_mt_account_data = vec![0; mt_account_size];
5858
let new_mt_pubkey = Pubkey::new_unique();
@@ -226,7 +226,7 @@ fn test_rnd_rollover() {
226226

227227
let ref_mt_account =
228228
BatchedMerkleTreeMetadata::new_address_tree(create_tree_params, merkle_tree_rent);
229-
assert_address_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
229+
assert_address_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
230230
let mut new_mt_data = vec![0; mt_account_size];
231231
let new_mt_rent = merkle_tree_rent;
232232
let network_fee = params.network_fee;

program-libs/batched-merkle-tree/tests/rollover_state_tree.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use light_batched_merkle_tree::{
22
errors::BatchedMerkleTreeError,
33
initialize_state_tree::{
4-
assert_state_mt_zero_copy_inited, create_output_queue_account,
4+
assert_state_mt_zero_copy_initialized, create_output_queue_account,
55
init_batched_state_merkle_tree_accounts, CreateOutputQueueParams,
66
InitStateTreeAccountsInstructionData,
77
},
@@ -72,7 +72,7 @@ fn test_rollover() {
7272
let create_tree_params = CreateTreeParams::from_state_ix_params(params, owner, mt_pubkey);
7373
let ref_mt_account =
7474
BatchedMerkleTreeMetadata::new_state_tree(create_tree_params, queue_pubkey);
75-
assert_state_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
75+
assert_state_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
7676
let total_rent = merkle_tree_rent + additional_bytes_rent + queue_rent;
7777
let output_queue_params =
7878
CreateOutputQueueParams::from(params, owner, total_rent, mt_pubkey, queue_pubkey);
@@ -578,7 +578,7 @@ fn test_rnd_rollover() {
578578

579579
let ref_mt_account =
580580
BatchedMerkleTreeMetadata::new_state_tree(create_tree_params, output_queue_pubkey);
581-
assert_state_mt_zero_copy_inited(&mut mt_account_data, ref_mt_account);
581+
assert_state_mt_zero_copy_initialized(&mut mt_account_data, ref_mt_account);
582582

583583
let mut new_mt_account_data = vec![0; mt_account_size];
584584
let new_mt_pubkey = Pubkey::new_unique();

program-tests/account-compression-test/tests/batched_merkle_tree_test.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use light_batched_merkle_tree::{
99
errors::BatchedMerkleTreeError,
1010
initialize_address_tree::InitAddressTreeAccountsInstructionData,
1111
initialize_state_tree::{
12-
assert_address_mt_zero_copy_inited, assert_state_mt_zero_copy_inited,
12+
assert_address_mt_zero_copy_initialized, assert_state_mt_zero_copy_initialized,
1313
create_output_queue_account, CreateOutputQueueParams, InitStateTreeAccountsInstructionData,
1414
},
1515
merkle_tree::{
@@ -175,7 +175,10 @@ async fn test_batch_state_merkle_tree() {
175175
let ref_mt_account =
176176
BatchedMerkleTreeMetadata::new_state_tree(mt_params, output_queue_pubkey.into());
177177

178-
assert_state_mt_zero_copy_inited(merkle_tree.account.data.as_mut_slice(), ref_mt_account);
178+
assert_state_mt_zero_copy_initialized(
179+
merkle_tree.account.data.as_mut_slice(),
180+
ref_mt_account,
181+
);
179182
let output_queue_params = CreateOutputQueueParams::from(
180183
params,
181184
owner.into(),
@@ -898,7 +901,7 @@ async fn test_init_batch_state_merkle_trees() {
898901
BatchedMerkleTreeMetadata::new_state_tree(mt_params, output_queue_pubkey.into());
899902

900903
let mut tree_data = merkle_tree.account.data.clone();
901-
assert_state_mt_zero_copy_inited(tree_data.as_mut_slice(), ref_mt_account);
904+
assert_state_mt_zero_copy_initialized(tree_data.as_mut_slice(), ref_mt_account);
902905
let output_queue_params = CreateOutputQueueParams::from(
903906
*params,
904907
owner.into(),
@@ -1451,7 +1454,7 @@ async fn test_init_batch_address_merkle_trees() {
14511454
let ref_mt_account = BatchedMerkleTreeMetadata::new_address_tree(mt_params, mt_rent);
14521455

14531456
let mut tree_data = merkle_tree.account.data.clone();
1454-
assert_address_mt_zero_copy_inited(tree_data.as_mut_slice(), ref_mt_account);
1457+
assert_address_mt_zero_copy_initialized(tree_data.as_mut_slice(), ref_mt_account);
14551458
}
14561459
}
14571460
pub async fn perform_init_batch_address_merkle_tree(

program-tests/account-compression-test/tests/merkle_tree_tests.rs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,15 +1823,6 @@ pub async fn fail_2_append_leaves_with_invalid_inputs<R: RpcConnection>(
18231823
ix_data.leaves[i].leaf = *leaf;
18241824
ix_data.leaves[i].index = *index;
18251825
}
1826-
// let mut bytes = Vec::new();
1827-
// let leaves = leaves
1828-
// .iter()
1829-
// .map(|(i, leaf)| AppendLeavesInput {
1830-
// index: *i,
1831-
// leaf: *leaf,
1832-
// })
1833-
// .collect::<Vec<_>>();
1834-
// leaves.serialize(&mut bytes).unwrap();
18351826
let instruction_data = account_compression::instruction::InsertIntoQueues { bytes };
18361827

18371828
let accounts = account_compression::accounts::GenericInstruction {
@@ -1949,15 +1940,6 @@ pub async fn fail_4_append_leaves_with_invalid_authority<R: RpcConnection>(
19491940
ix_data.leaves[0].leaf = [1; 32];
19501941
ix_data.leaves[0].index = 0;
19511942

1952-
// let instruction = account_compression::instruction::InsertIntoQueues { bytes };
1953-
// let mut bytes = Vec::new();
1954-
// let leaves: vec![AppendLeavesInput {
1955-
// index: 0,
1956-
// leaf: [1; 32],
1957-
// }];
1958-
1959-
// leaves.serialize(&mut bytes).unwrap();
1960-
// let instruction_data = account_compression::instruction::AppendLeavesToMerkleTrees { bytes };
19611943
let instruction_data = account_compression::instruction::InsertIntoQueues { bytes };
19621944
let accounts = account_compression::accounts::GenericInstruction {
19631945
authority: invalid_autority.pubkey(),

0 commit comments

Comments
 (0)