1. dApp developer deploys the contract and pre-funds it.
2. User decides to buy a "lottery" ticket at predefined price.
3. Calls the draw() on-chain function and pays for it.
4. The on-chain RNG computes whether the user won or lost based on the (confidential) win ratio.
5. If they lost, then the payed amount is added to the (public) fortune wheel reward pool.
6. If they won, then a payout is made back to the user from a predefined share of the reward pool.
Visit https://github.com/matevz/demo-slot to access the source ;)