Explanation
Forks and resolution in Trading
A pair closes when its market can no longer be traded safely, but it never traps a position. This page explains which events close it and what a holder does next.
What closes a pair
Swaps, initialization, and added liquidity close at question end, when the pool is non-operational or awaiting continuation, when its universe has forked, or when the forker exposes a final outcome. LP removal deliberately has none of those guards.
After a fork
- LP → Parent pair:
removeLiquidity() - Parent pair → LP: parent YES + NO
- LP → ShareToken:
migrate(fromId, chosen outcomes) - ShareToken → LP: selected child shares
- Wait until migration and any Truth Auction return the child pool to Operational
- LP → Factory:
createPair(exact child pool) - Factory → LP: isolated child pair
A fork does not select a branch or migrate LP. Parent and child pools may share one ShareToken contract, but they have different universe-specific token IDs and different pair addresses. Handle a universe fork gives the step-by-step procedure.
After resolution
- Pair → Forker:
getQuestionOutcome(pool) - Forker → Pair: current YES / NO / INVALID outcome
- Pair → Pair: swaps and additions closed
- Holder → Pair:
removeLiquidityremains available - Pair → Holder: raw YES + NO
- Holder → SecurityPool:
redeemShares()for the winning token - SecurityPool → Holder: current collateral value
On INVALID, the matching wallet INVALID is the settlement insurance. Pair YES and NO fee growth creates no INVALID-branch redemption value. Handle resolution gives the procedure.