pub async fn validate_envelope(
parsed: &ParsedEnvelope,
history: &[IdentityUpdate],
verifier: impl SmartContractSignatureVerifier,
chain: &dyn ChainBlocks,
) -> Result<Option<AssociationValidation>, ValidationError>Expand description
Validate one parsed envelope after duplicate lookup.
Key packages receive their existing package checks. Identity updates are
folded against the caller’s snapshot and return a projection diff; only the
new update, never the stored history, must first pass check_freshness. Other
kinds need no cryptographic admission beyond the parsing phase.