# NFTAuction **Repository Path**: luoxiang723/NFTAuction ## Basic Information - **Project Name**: NFTAuction - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-11 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大作业:实现一个 NFT 拍卖市场 ## 任务目标 使用 Hardhat 框架开发一个 NFT 拍卖市场。 - 使用 Chainlink 的 feedData 预言机功能,计算 ERC20 和以太坊到美元的价格。 - 使用 UUPS/透明代理模式实现合约升级。 - 使用类似于 Uniswap V2 的工厂模式管理每场拍卖。 ## 任务步骤 ### 项目初始化 - 使用 Hardhat 初始化项目: `npx hardhat init` - 安装必要的依赖: `npm install @openzeppelin/contracts @chainlink/contracts @nomiclabs/hardhat-ethers hardhat-deploy` ### 实现 NFT 拍卖市场 #### NFT 合约 - 使用 ERC721 标准实现一个 NFT 合约。 - 支持 NFT 的铸造和转移。 #### 拍卖合约 实现一个拍卖合约,支持以下功能: - **创建拍卖**:允许用户将 NFT 上架拍卖。 - **出价**:允许用户以 ERC20 或以太坊出价。 - **结束拍卖**:拍卖结束后,NFT 转移给出价最高者,资金转移给卖家。 #### 工厂模式 - 使用类似于 Uniswap V2 的工厂模式,管理每场拍卖。 - 工厂合约负责创建和管理拍卖合约实例。 ### 集成 Chainlink 预言机 #### 价格计算 - 使用 Chainlink 的 feedData 预言机,获取 ERC20 和以太坊到美元的价格。 - 在拍卖合约中,将出价金额转换为美元,方便用户比较。 #### 跨链拍卖(可选扩展) - 使用 Chainlink 的 CCIP 功能,实现 NFT 跨链拍卖。 - 允许用户在不同链上参与拍卖。 ### 合约升级 - 使用 UUPS 或透明代理模式实现合约升级。 - 确保拍卖合约和工厂合约可以安全升级。 ### 测试与部署 - **测试**: - 编写单元测试和集成测试,覆盖所有功能。 - **部署**: - 使用 Hardhat 部署脚本,将合约部署到测试网(如 Goerli 或 Sepolia)。 ## 任务要求 - **代码质量**:代码清晰、规范,符合 Solidity 最佳实践。 - **功能完整性**:实现所有要求的功能,包括 NFT 拍卖、价格计算和合约升级。 - **测试覆盖率**:编写全面的测试,覆盖所有功能。 - **文档**:提供详细的文档,包括项目结构、功能说明和部署步骤。 ## 提交内容 1. **代码**:提交完整的 Hardhat 项目代码。 2. **测试报告**:提交测试报告,包括测试覆盖率和测试结果。 3. **部署地址**:提交部署到测试网的合约地址。 4. **文档**:提交项目文档,包括功能说明和部署步骤。 ## 额外挑战(可选) - 实现动态手续费功能:根据拍卖金额动态调整手续费。