diff --git a/program_methods/guest/src/bin/privacy_preserving_circuit/execution_state.rs b/program_methods/guest/src/bin/privacy_preserving_circuit/execution_state.rs index 85765121..eff40a0b 100644 --- a/program_methods/guest/src/bin/privacy_preserving_circuit/execution_state.rs +++ b/program_methods/guest/src/bin/privacy_preserving_circuit/execution_state.rs @@ -527,15 +527,16 @@ fn resolve_authorization_and_record_bindings( caller_pda_seeds: &[PdaSeed], previous_is_authorized: bool, ) -> bool { + let pda_address = account_identities + .get(pre_state_position) + .and_then(InputAccountIdentity::private_pda_address); let matched_caller_seed: Option<(PdaSeed, bool, ProgramId)> = caller_program_id.and_then(|caller| { caller_pda_seeds.iter().find_map(|seed| { if AccountId::for_public_pda(&caller, seed) == pre_account_id { return Some((*seed, false, caller)); } - if let Some(address) = account_identities - .get(pre_state_position) - .and_then(InputAccountIdentity::private_pda_address) + if let Some(address) = &pda_address && address.pda_account_id(&caller, seed) == pre_account_id { return Some((*seed, true, caller));