###### tags: `grantsDAO`
# Synthetix Lottery
### [Sgoia](https://github.com/sgoia/synthetix-lottery)
| Criteria | Rating | Comments |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Adheres to Spec | 5 | Follows everything in the technical spec |
| Extensibility | 0 | Ticket prices are hardcoded in, VRF fee is hardcoded in (what if LINK changes this fee) |
| Code Quality | 4 | Clean code, some refactor needed but relatively good |
| UI/UX (if applicable) | 3 | Well thought out sketch/diagram which is clear and high quality |
| Documentation | 5 | Great inline comments, good README file explaining the functionality |
| Functional | 3 | Looks like it'll work visually but difficult to test given the failing tests (no test-net deployment either) |
| Testing | 2 | Good test visually (covers alot of surface area), unable to run it according to steps outlined ```Error: LinkToken error: Please call setProvider() first before calling new().``` |
| Total | 22/35 | |
### [Gvladika](https://github.com/gvladika/synthetix-lottery)
| Criteria | Rating | Comments |
| --------------------- |:------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Adheres to Spec | 5 | Follows everything in the technical spec |
| Extensibility | 0 | Hardcoded values: round time, link fee, ticket price (1 sUSD) |
| Code Quality | 5 | Well thought out code structure and also made sure it runs without a working version of VRF |
| UI/UX (if applicable) | 2 | Has a diagram, but missing components showing the previous winning ids instead of just the individuals |
| Documentation | 4 | Good README.md file but incomplete or non-clear in-line comments, left out param descriptions |
| Functional | 4 | Tickets[] is prone to D.O.S attacks, the longer the game goes the more ticket entries there are and we might not be able to fetch getTickets() anymore + same for getTicketsByOwner, the loop through the tickets (```i < tickets.length```) will fail at one point by running out of gas |
| Testing | 4 | Test are not that clear, does not cover enough surface area and bulked together |
| Total | 24/35 | |
### [SkArchon](https://github.com/SkArchon/synth-lottery-app)
| Criteria | Rating | Comments |
| --------------------- |:------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Adheres to Spec | 5 | Follows everything in the technical spec |
| Extensibility | 5 | There are setters for the admin to change the round time and also the percentage splits of winners and also ticket price setter |
| Code Quality | 4 | Good split of the Lottery Game and the Lottery Ticket NFT contracts, could work on refactoring and organising code to make it easier to follow logic and read |
| UI/UX (if applicable) | 5 | Working and beautiful UI and cron jobs with user experience considerations |
| Documentation | 4 | Indepth README file, need to work on inline commenting (would be good to learn how to use NatSpec format to keep things consistent and neat) |
| Functional | 5 | Works well with demo too |
| Testing | 0 | No End to End testing and no unit test available |
| Total | 28/35 | |
|
### [sarasioux](https://github.com/sarasioux/synthetix-badges)
| Criteria | Rating | Comments |
| --------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Adheres to Spec | 5 | Follows everything in the technical spec |
| Extensibility | 1 | Although in the README.md they've mentioned the configuration values, there isn't anything in the code that specifies how to perform these changes, 1 point for considering it. |
| Code Quality | 5 | Well written and refactored |
| UI/UX (if applicable) | 5 | Working frontend and really aesthetically pleasing |
| Documentation | 5 | Nice and succinct README file and good function commenting (recommend to use NATSPEC in future) |
| Functional | 4 | Works well but there are concerns in the code that might break if there are alot of entries, in multiple places you loop through the tickets and the block can run out of gas here! |
| Testing | 0 | No test available |
| Total | 25/35 | |
### [sekmet](https://github.com/sekmet/Lotto-Synthetix)
No code submitted
| Criteria | Rating | Comments |
| --------------------- | ------ | -------- |
| Adheres to Spec | - | |
| Extensibility | - | |
| Code Quality | - | |
| UI/UX (if applicable) | - | |
| Documentation | - | |
| Functional | - | |
| Testing | - | |
| Total | 0/35 | |