Reference
Trading events
The factory and pair emit every reserve and LP state change. The router emits an event only for the two share-transfer operations it executes itself.
Factory
PairCreated(securityPool, shareToken, universeId, pair, feeBps) identifies one exact branch market and its immutable fee.
Pair
LiquidityInitialized(provider, recipient, yesAmount, noAmount, liquidity)records the first reserve contribution and circulating LP minted; locked minimum liquidity is separate.LiquidityAdded(provider, recipient, yesAmount, noAmount, liquidity)records proportional reserve use.LiquidityRemoved(provider, recipient, yesAmount, noAmount, liquidity)records raw-share output.Swap(sender, recipient, yesForNo, exactOutput, amountIn, amountOut, feeAmount, resultingYesReserve, resultingNoReserve)provides authoritative direction, mode, amounts, fee, and resulting state.Sync(yesReserve, noReserve)records reserves after synchronization or mutation.PredeploymentSharesQuarantined(invalidAmount, yesAmount, noAmount)records canonical shares removed from a counterfactual pair address during construction. The destination is the factory's immutablepredeploymentShareSink.- Standard ERC-20
TransferandApprovalevents describe LP ownership and allowances.
Router
PositionExitedByTransfer(owner, pair, completeSetShares, longSharesUsed, longSharesRefunded, payoutRecipient)records an insured exit initiated byowner's share transfer.CompleteSetRedeemedByTransfer(securityPool, completeSetShares, payoutRecipient)records a complete-set redemption initiated by share transfer.
Attributing router operations
For router-mediated operations, pair provider/sender fields and SecurityPool creator/redeemer fields identify the router, not the initiating wallet. Pair recipient identifies the explicit asset recipient. Insured exits carry the owner in PositionExitedByTransfer. For complete-set redemptions, take the owner from the ShareToken TransferBatch log's from field, since CompleteSetRedeemedByTransfer records only the pool and payout recipient. Entry and liquidity operations emit no router event, so for those an indexer must combine the transaction sender, the called router method, pair and core logs, and the explicit recipient; it must not infer wallet attribution from the immediate-caller fields alone.
Router return tuples are available from authoritative call simulation only; they are not stored in a mined receipt. Mined complete-set and ETH-flow evidence comes from the SecurityPool's CompleteSetCreated and CompleteSetRedeemed events plus transaction logs.