# Phase 2 ## Stage 1 (Staking) * Sushi-swap farming for % * Stake $LPOOL * Accumulate % of pool that you can claim in ETH after completion * $LPOOL locked (can only be unstaked for ETH or after stage 2 (defaults on staked %)) Note: No up front reward Requirements for setting up a pool: - ~~Block number when staking starts~~ Staking can start whenever up to ETH pledge funding block number - last Block number when Eth pledge is required - Number greater than staking end block - No eth after this block numer - Vesting lengths in blocks - Number of blocks after ETH funding deadline that vesting lasts (if eth deposited) - Target raise - TBC if only ETH or stable coin or both For vesting we can use the existing reward distribution logic. For a given pool: - Start block = Eth deadline block (or maybe the block when rewards are sent as the tokens won't have been sent by the deadline) - End block = Start block + vesting length - Reward per block = Tokens sent / vesting length (set in stage 3) ## Stage 2 (Sending ETH) We need a method to allow a user to send the required ETH ## Stage 3 (Sending rewards token) Client sends reward token for the pool We need to set rewards per block here for a pool as the tokens sent by the client will vary based on who sent their ETH by the deadline We also need to set the start block for vesting. Before which, no rewards should be issued. This then kicks in the standard sushi chef logic for distributing rewards The key is we no longer have a global reward per block etc, it's on a per pool basis allowing multiple projects to be supported by the contract ## Stage 4 (Vesting rewards) * If you didn't send ETH you can withdraw your locked $LPOOL now * If you sent ETH you have tokens that with vest over x blocks ## Admin * Withdraw ETH (project) * Set ETH x USD rate for % share * When we set up the pool, should we store the ETH target raise? * For example, pool ID `0` hopes to raise `10,000 ETH` stored in `PoolInfo` * Then, your stake is the % of the ETH that you need to pay in stage 2? * Hope that makes sense but can jump on a call * The more I think of it the more I think we should avoid a conversion to dollars. The raise should be simply in ETH or USDC/DAI etc to make life easier and safer