Launch Lifecycle
A LaunchSale has three on-chain states:
Active
├─ full curve sold -> Graduated
└─ deadline passes -> expire() -> Failed
Active
The bonding curve is open before its immutable deadline. Users can buy and sell curve tokens, subject to quote and slippage constraints.
Graduated
Graduation is one-way and can happen only when the curve allocation is fully sold. The sale reserve is consumed/distributed according to the graduation process, the pool is bootstrapped and the creator vesting contract is created.
Failed
A launch becomes failed only after the deadline has passed and expire() is called while the curve is incomplete. Holders can redeem their curve tokens pro-rata against the remaining reserve.
See Statuses for application-level creation states and on-chain launch states.