vaultsDocumentation

Events and receipts

Implemented

The events the protocol emits, and how a receipt attributes an outcome to one transaction.

#Vault events

EventEmitted when
Deposited(caller, receiver, assets, shares)Shares minted against a deposit
RedeemedInKind(owner, receiver, shares)Shares burned for a pro-rata basket
InKindAssetSent(receiver, token, amount)One asset transferred as part of that basket
RedemptionRequested(requestId, owner, shares, epoch)Base-asset exit requested, shares escrowed
EpochSettled(epoch, shares, assetsReserved)An epoch closed and reserved base asset
RedemptionClaimed(requestId, receiver, assets)A settled redemption collected
Synced(...)A mirror executed
SyncSkipped(...)A mirror was evaluated and declined
KeeperBountyPaid(keeper, amount)A capped bounty paid for calling sync
PerformanceFeeCrystallised(sharesMinted, newHighWaterMark)Performance fee taken above the mark
AssetTracked(token) / AssetUntracked(token)An asset entered or left the tracked set

InKindAssetSent is emitted once per asset rather than folded into RedeemedInKind, so an in-kind exit is fully reconstructible from logs without reading state.

#Receipts

A receipt is one sync outcome attributed to one transaction. Executions and skips produce receipts equally — that symmetry is the point.

FieldMeaning
vault, token, keeperWho and what
blockNumber, blockTimestamp, txHash, logIndexWhere onchain
executedWhether a trade happened
kindbuy, sell or skip
amountAmount traded, or null
previousSourceBalance, newSourceBalanceThe source movement being mirrored
skipReasonThe verbatim contract enum name, never paraphrased
divergenceValueDesired size minus capped size
snapshotAcceptedWhether the vault accepted the new snapshot
finalitysoft or final

Without recorded skips, a vault that mirrored nothing for a week would look identical to one that had nothing to mirror. Receipts make those two states distinguishable.

#Finality

finality is soft until a row is deeper than the configured confirmation depth. Robinhood Chain is an Orbit chain: the sequencer confirms quickly, but an L1 reorganisation can still reorganise unfinalised L2 blocks.

Soft rows are shown and labelled. Hiding them would be misleading; presenting them as settled would be worse.