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. Parameters prefixed with indexed are log topics.
Factory
PairCreated(indexed securityPool, indexed shareToken, indexed universeId, pair, feeBps) identifies one exact branch market and its immutable fee.
Pair
LiquidityInitialized(indexed provider, indexed recipient, yesAmount, noAmount, liquidity)records the first reserve contribution and circulating LP minted; locked minimum liquidity is separate.LiquidityAdded(indexed provider, indexed recipient, yesAmount, noAmount, liquidity)records proportional reserve use.LiquidityRemoved(indexed provider, indexed recipient, yesAmount, noAmount, liquidity)records raw-share output.Swap(indexed sender, indexed 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(indexed owner, indexed pair, completeSetShares, longSharesUsed, longSharesRefunded, payoutRecipient)records an insured exit initiated byowner's share transfer.CompleteSetRedeemedByTransfer(indexed 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 only for direct pair calls and router liquidity operations; router entry and insured-exit swaps name the router, which then forwards the assets. 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 recipient from calldata or the ShareToken TransferBatch log; 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 transaction receipt. Complete-set and ETH-flow evidence comes from the SecurityPool's CompleteSetCreated and CompleteSetRedeemed events plus transaction logs.