pub fn verify_transfer_proof(
    account_info_iter: &mut Iter<'_, AccountInfo<'_>>,
    proof_instruction_offset: i64,
    split_proof_context_state_accounts: bool,
    no_op_on_split_proof_context_state: bool,
    close_split_context_state_on_execution: bool,
    source_decrypt_handles: &SourceDecryptHandles,
) -> Result<Option<TransferProofContextInfo>, ProgramError>
Expand description

Verify zero-knowledge proof needed for a [Transfer] instruction without fee and return the corresponding proof context.

This returns a Result type for an Option<TransferProofContextInfo> type. If the proof verification fails, then the function returns a suitable error variant. If the proof succeeds to verify, then the function returns a TransferProofContextInfo that is wrapped inside Ok(Some(TransferProofContextInfo)). If no_op_on_split_proof_context_state is true and some a split context state account is not initialized, then it returns Ok(None).