mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-03 16:56:48 +00:00
Introduces VaultInvariantData, a shared data-collection class that captures vault and share-issuance snapshots from visitEntry deltas. ValidVault::finalize delegates all data collection to an instance of this class and skips the ttVAULT_CREATE switch case (now handled by VaultCreate::finalizeInvariants). VaultCreate gains visitInvariantEntry / finalizeInvariants / invariantData_ members. finalizeInvariants checks create-specific invariants (vault must be a fresh insert, must be empty, share issuance must exist and point to the correct pseudo-account) before the universal ValidVault checks run. Share resolution is now key-based (SLE key stored in Shares::sleKey) so that tampered sfIssuer fields do not prevent finding the issuance object the vault points to via sfShareMPTID.