feat: add private_pda_info field to PrivacyPreservingCircuitInput

This commit is contained in:
Moudy 2026-04-15 00:22:13 +02:00
parent ac98fba1b1
commit 3b78462e2d

View File

@ -5,7 +5,7 @@ use crate::{
NullifierSecretKey, SharedSecretKey,
account::{Account, AccountWithMetadata},
encryption::Ciphertext,
program::{BlockValidityWindow, ProgramId, ProgramOutput, TimestampValidityWindow},
program::{BlockValidityWindow, PdaSeed, ProgramId, ProgramOutput, TimestampValidityWindow},
};
#[derive(Serialize, Deserialize)]
@ -26,6 +26,11 @@ pub struct PrivacyPreservingCircuitInput {
pub private_account_membership_proofs: Vec<Option<MembershipProof>>,
/// Program ID.
pub program_id: ProgramId,
/// Private PDA info for mask-3 accounts.
/// Unlike the other private_account_* fields which are parallel arrays indexed by private
/// account position, this is a separate lookup table. The circuit matches entries by
/// (program_id, seed) against the chained calls' pda_seeds to resolve private PDA authorization.
pub private_pda_info: Vec<(ProgramId, PdaSeed, NullifierPublicKey)>,
}
#[derive(Serialize, Deserialize)]