From b1553109ae52d1bef7b968c0336384d33b46d56d Mon Sep 17 00:00:00 2001 From: Moudy Date: Thu, 16 Apr 2026 00:01:25 +0200 Subject: [PATCH] fix: validate no duplicate entries in private_pda_info --- .../guest/src/bin/privacy_preserving_circuit.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/program_methods/guest/src/bin/privacy_preserving_circuit.rs b/program_methods/guest/src/bin/privacy_preserving_circuit.rs index 5320e560..ba40a27f 100644 --- a/program_methods/guest/src/bin/privacy_preserving_circuit.rs +++ b/program_methods/guest/src/bin/privacy_preserving_circuit.rs @@ -603,6 +603,16 @@ fn main() { private_pda_info, } = env::read(); + // Validate no duplicate (program_id, seed) pairs in private_pda_info + for (i, (pid_a, seed_a, _)) in private_pda_info.iter().enumerate() { + assert!( + !private_pda_info[..i] + .iter() + .any(|(pid_b, seed_b, _)| pid_a == pid_b && seed_a == seed_b), + "Duplicate (program_id, seed) in private_pda_info" + ); + } + let execution_state = ExecutionState::derive_from_outputs( &visibility_mask, program_id,