Myth1call/PuppyRaffle-audit

GitHub: Myth1call/PuppyRaffle-audit

基于 Cyfrin Updraft 课程的智能合约安全审计实践项目,针对 PuppyRaffle 抽奖协议提供 Foundry PoC、审计发现和 PDF 报告,帮助开发者练习 Solidity 合约安全审计技能。

Stars: 0 | Forks: 0

puppy-raffle
# Puppy Raffle 本项目旨在参与抽奖以赢取一个可爱的狗狗 NFT。该协议应执行以下操作: 1. 使用以下参数调用 `enterRaffle` 函数: 1. `address[] participants`:参与者的地址列表。你可以利用此参数让自己多次参与,或者让你和一群朋友一起参与。 2. 不允许出现重复的地址。 3. 如果用户调用 `refund` 函数,允许他们退还门票以及对应的 `value`。 4. 每隔 X 秒,抽奖活动将能够抽选出一名获胜者,并为其随机铸造一个小狗 NFT。 5. 协议的 owner 将设置一个 feeAddress 来抽取一部分 `value`,剩余的资金将发送给小狗的获胜者。 - [Puppy Raffle](#puppy-raffle) - [快速入门](#getting-started) - [环境要求](#requirements) - [快速开始](#quickstart) - [可选 Gitpod](#optional-gitpod) - [使用方法](#usage) - [测试](#testing) - [测试覆盖率](#test-coverage) - [审计范围详情](#audit-scope-details) - [兼容性](#compatibilities) - [角色](#roles) - [已知问题](#known-issues) # 快速入门 ## 环境要求 - [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - 如果你运行 `git --version` 并看到类似 `git version x.x.x` 的响应,说明你安装正确。 - [foundry](https://getfoundry.sh/) - 如果你运行 `forge --version` 并看到类似 `forge 0.2.0 (816e00b 2023-03-16T00:05:26.396218Z)` 的响应,说明你安装正确。 ## 快速开始 ``` git clone https://github.com/Cyfrin/4-puppy-raffle-audit cd 4-puppy-raffle-audit make ``` ### 可选 Gitpod 如果你无法或不想在本地运行和安装,你可以通过 Gitpod 来使用此代码库。如果你选择这样做,可以跳过 `clone this repo` 部分。 [![在 Gitpod 中打开](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#github.com/Cyfrin/3-passwordstore-audit) # 使用方法 ## 测试 ``` forge test ``` ### 测试覆盖率 ``` forge coverage ``` 以及基于覆盖率的测试: ``` forge coverage --report debug ``` # 审计范围详情 - Commit Hash: e30d199697bbc822b646d76533b66b7d529b8ef5 - 审计范围内: ``` ./src/ └── PuppyRaffle.sol ``` ## 兼容性 - Solc 版本: 0.7.6 - 可部署合约的链: Ethereum # 角色 Owner - 协议的部署者,有权通过 `changeFeeAddress` 函数更改接收费用的钱包地址。 Player - 抽奖活动的参与者,有权通过 `enterRaffle` 函数参与抽奖,并通过 `refund` 函数退还价值。 # 已知问题 无

标签:Foundry, Maven, 区块链安全, 智能合约, 漏洞验证