\nAbout Puppy Raffle
\n\n\n\n
\n\n# Puppy Raffle\n\nThis project is to enter a raffle to win a cute dog NFT. The protocol should do the following:\n\n1. Call the `enterRaffle` function with the following parameters:\n 1. `address[] participants`: A list of addresses that enter. You can use this to enter yourself multiple times, or yourself and a group of your friends.\n2. Duplicate addresses are not allowed\n3. Users are allowed to get a refund of their ticket & `value` if they call the `refund` function\n4. Every X seconds, the raffle will be able to draw a winner and be minted a random puppy\n5. The owner of the protocol will set a feeAddress to take a cut of the `value`, and the rest of the funds will be sent to the winner of the puppy.\n\n
\n\n---\n\nAbove we see a pretty clear description of the protocol and it's intended functionality. What I like to do is open a `notes.md` file in my project and summarize things in my own words.\n\n```\n## About\n\n> The project allows users to enter a raffle to win a dog NFT.\n```\n\nUse this notes file to record your thoughts as you go, it'll make summarizing things for our report much easier later.\n\nLet's take a look at some of the code that powers the expected functionality in the next lesson.\n",
+ "updates": []
+ },
+ {
+ "lessonId": "5efe7fcf-556b-464d-96be-e49c83a841a8",
+ "number": 8,
+ "title": "Recon: Reading the code",
+ "slug": "recon-reading-the-code",
+ "folderName": "8-recon-reading-the-code",
+ "description": "",
+ "duration": 5,
+ "videoUrl": "LPwoILK9EA00IuxBDv1vNL02doAOebBkfzjEPSQ84eZTc",
+ "rawMarkdownUrl": "/routes/security/4-puppy-raffle/8-recon-reading-the-code/+page.md",
+ "markdownContent": "---\ntitle: Recon - Reading the Code\n---\n\n_Follow along with this video:_\n\n---\n\n### Starting with the Code\n\nWhat I like to do when first assessing a codebase is to start at the `main entry point`. Sometimes this area of a protocol may be a little unclear, but using Solidity: Metrics can help us out a lot.\n\n