Goals
- Mechanism by which users can trade tokens with each other
- Optimised for long term distributions as well as general trading
- Be very clear why this isn't just another curve based AMM
- Works for ERC20 but has a clear path to NFT trading as a future upgrade
Current situation
We have a finite Sale contract where a sale can start, facilitating one-way buys where the seller defines a curve and a buyer accepts it. The sale ends and at this point is judged "success" or "fail". In the failure case all the purchases can be rolled back by buyers, in the success case all the proceeds are forwarded to the seller in a single transaction.