Skip to content

Handling Receipt Posting

Purpose

Record vault inflows into the controller without double counting, misclassifying rewards, or enabling claims from unsafe source data.

Required Authority

CenturionEconomicController.owner for recordVaultReceipt and recordVaultReceiptFinalModel.

Preconditions

  • Vault is factory-registered and seat-initialized.
  • Receipt amount and kind are supported by evidence.
  • Consensus epoch is finalized when relevant.
  • economicSourceGroupId is unique for the source group when using final-model posting.
  • No conflicting governance, risk, or stale-oracle alert is active.

Procedure

  1. Classify receipt kind: reward withdrawal, correction, recovery reward, final exit withdrawal, manual partial withdrawal, or unknown/unclassified.
  2. Confirm amount physically arrived at the vault or is otherwise supported by source evidence.
  3. Select recordVaultReceiptFinalModel when source grouping is required.
  4. Verify source kind matches receipt kind.
  5. Submit transaction from the operations Safe.
  6. Read ledger, claimability, reserve exposure, and pending-claim state after posting.
  7. Archive source proof and event logs.

Abort Conditions

Abort if source id was used, source group was used incompatibly, amount is not reconciled to vault inflow, epoch is not safe, or claim state would be enabled from stale/conflicting data.

Events To Monitor

VaultReceiptRecorded, ReceiptClassified, ReserveAdvanceBooked, ReserveAdvanceRepaid, HoldbackReleasedToRewards, ClaimCancelled, and dust/reserve events.

Evidence To Archive

Receipt id, source group id, amount proof, vault balance proof, epoch/finality evidence, transaction hash, emitted events, and post-ledger snapshot.