From f6e4e3a96e2f52ff1dad516defe04b15c858141f Mon Sep 17 00:00:00 2001 From: ananas Date: Sun, 1 Mar 2026 01:31:08 +0000 Subject: [PATCH 1/3] fix: init v1 tree with custom forester --- programs/registry/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/programs/registry/src/lib.rs b/programs/registry/src/lib.rs index 0bd6dc01af..a4882c4ede 100644 --- a/programs/registry/src/lib.rs +++ b/programs/registry/src/lib.rs @@ -833,6 +833,9 @@ pub fn check_forester( } Ok(()) } else if metadata.access_metadata.forester == authority { + if metadata.rollover_metadata.network_fee != 0 { + return err!(RegistryError::InvalidNetworkFee); + } Ok(()) } else { err!(RegistryError::InvalidSigner) From a0183dc12dad4ab84673c70aad96ebf310c06ba1 Mon Sep 17 00:00:00 2001 From: ananas Date: Mon, 2 Mar 2026 19:04:02 +0000 Subject: [PATCH 2/3] fix ci --- external/photon | 2 +- program-tests/utils/src/e2e_test_env.rs | 6 ++++++ sdk-libs/program-test/src/indexer/state_tree.rs | 1 + sdk-libs/program-test/src/indexer/test_indexer.rs | 7 +++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/external/photon b/external/photon index a252934447..0df2397c2c 160000 --- a/external/photon +++ b/external/photon @@ -1 +1 @@ -Subproject commit a2529344477d889b6c23c121f915a91f3678d861 +Subproject commit 0df2397c2c7d8458f45df9279e999a730ba56482 diff --git a/program-tests/utils/src/e2e_test_env.rs b/program-tests/utils/src/e2e_test_env.rs index f5ecfdb405..b7ae6acc99 100644 --- a/program-tests/utils/src/e2e_test_env.rs +++ b/program-tests/utils/src/e2e_test_env.rs @@ -1281,6 +1281,7 @@ where .metadata .rollover_metadata .rollover_fee as i64, + network_fee: FeeConfig::default().network_fee, accounts: StateMerkleTreeAccounts { merkle_tree: merkle_tree_keypair.pubkey(), nullifier_queue: nullifier_queue_keypair.pubkey(), @@ -1547,6 +1548,7 @@ where TreeType::StateV2 => bundle.accounts.nullifier_queue, _ => panic!("Unsupported version"), }; + let network_fee = bundle.network_fee; let recipients = vec![*to]; let transaction_params = if self.keypair_action_config.fee_assert { let (inputs, is_v2) = if bundle.tree_type == TreeType::StateV2 { @@ -1562,6 +1564,7 @@ where compress: 0, fee_config: FeeConfig { state_merkle_tree_rollover: rollover_fee as u64, + network_fee, ..Default::default() }, }) @@ -1700,6 +1703,7 @@ where }; let bundle = self.indexer.get_state_merkle_trees()[tree_index.unwrap_or(0)].clone(); let rollover_fee = bundle.rollover_fee; + let network_fee = bundle.network_fee; let output_merkle_tree = match bundle.tree_type { TreeType::StateV1 => bundle.accounts.merkle_tree, // Output queue for batched trees @@ -1721,6 +1725,7 @@ where compress: amount as i64, fee_config: FeeConfig { state_merkle_tree_rollover: rollover_fee as u64, + network_fee, ..Default::default() }, }) @@ -2406,6 +2411,7 @@ where .push(StateMerkleTreeBundle { // TODO: fetch correct fee when this property is used rollover_fee: 0, + network_fee: FeeConfig::default().network_fee, accounts: StateMerkleTreeAccounts { merkle_tree: new_merkle_tree_keypair.pubkey(), nullifier_queue: new_nullifier_queue_keypair.pubkey(), diff --git a/sdk-libs/program-test/src/indexer/state_tree.rs b/sdk-libs/program-test/src/indexer/state_tree.rs index 832fb962ed..b0f1407f1f 100644 --- a/sdk-libs/program-test/src/indexer/state_tree.rs +++ b/sdk-libs/program-test/src/indexer/state_tree.rs @@ -15,6 +15,7 @@ pub struct LeafIndexInfo { #[derive(Debug, Clone)] pub struct StateMerkleTreeBundle { pub rollover_fee: i64, + pub network_fee: u64, pub merkle_tree: Box>, pub accounts: StateMerkleTreeAccounts, pub tree_type: TreeType, diff --git a/sdk-libs/program-test/src/indexer/test_indexer.rs b/sdk-libs/program-test/src/indexer/test_indexer.rs index 6218a75fd4..f01b9ec8e9 100644 --- a/sdk-libs/program-test/src/indexer/test_indexer.rs +++ b/sdk-libs/program-test/src/indexer/test_indexer.rs @@ -1328,6 +1328,7 @@ impl TestIndexer { accounts: *state_merkle_tree_account, merkle_tree, rollover_fee: FeeConfig::default().state_merkle_tree_rollover as i64, + network_fee: FeeConfig::default().network_fee, tree_type, output_queue_elements: vec![], input_leaf_indices: vec![], @@ -1709,10 +1710,16 @@ impl TestIndexer { tree_type, }; + let network_fee = if forester.is_some() { + 0 + } else { + FeeConfig::default().network_fee + }; self.state_merkle_trees.push(StateMerkleTreeBundle { merkle_tree, accounts: state_merkle_tree_account, rollover_fee, + network_fee, tree_type, output_queue_elements: vec![], input_leaf_indices: vec![], From da0fc6ac317fd03e06aa5d5044dbbb4eaccc23cb Mon Sep 17 00:00:00 2001 From: ananas Date: Mon, 2 Mar 2026 20:02:40 +0000 Subject: [PATCH 3/3] revert accidental photon submodule bump --- external/photon | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/photon b/external/photon index 0df2397c2c..a252934447 160000 --- a/external/photon +++ b/external/photon @@ -1 +1 @@ -Subproject commit 0df2397c2c7d8458f45df9279e999a730ba56482 +Subproject commit a2529344477d889b6c23c121f915a91f3678d861