一个去中心化的留言板应用,基于以太坊智能合约和 React 前端构建。
本项目使用 pnpm workspace 管理,包含两个子项目:
packages/contract/- 智能合约项目packages/frontend/- React 前端项目
- 完成 messageLeave 智能合约的开发
- 在 Remix 上部署合约并进行测试
- 完成本地测试验证
- 完成 messageLeave Dapp 前端开发
- 将 messageLeave 合约部署到测试链
- 实现前端与测试链合约的交互功能
- 验证 Dapp 与合约的完整交互流程
- 重构项目结构,采用 monorepo 架构
- 使用 pnpm workspace 将合约和前端项目分离
- 优化项目目录组织,提高代码可维护性
- 前端重构:将
MessageBoard组件拆分为业务逻辑层 (business/MessageBoard.tsx) 和 UI 展示层 (components/MessageBoardUI.tsx),实现逻辑与视图分离。 - 合约部署:通过 Hardhat 进行本地链部署,并将合约部署至本地链上进行测试。
- 多链支持:前端通过 Wagmi 实现多链连接支持。
- 配置更新:更新 ABI 文件及 Wagmi 配置。
- 合约功能增强:
- 新增
tipUser打赏功能,支持用户向留言者发送 ETH 打赏。 - 新增
withdraw提现功能,允许用户提取收到的打赏金额。 - 引入
IMessageBoard接口,规范合约结构。
- 新增
- 前端交互更新:
- UI 新增"可提现余额"展示及提现按钮。
- 留言列表项新增"打赏"按钮,支持自定义打赏金额。
- 完成打赏与提现功能的合约交互对接。
- 合约功能扩展:
- 新增 ERC20 代币打赏功能 (
tipUserERC20),支持用户使用指定的 ERC20 代币向留言者进行打赏。 - 新增 ERC20 代币提现功能 (
withdrawERC20),允许用户提取收到的特定 ERC20 代币打赏。 - 新增
MyTokenERC20 测试代币合约用于测试与本地开发。
- 新增 ERC20 代币打赏功能 (
- 测试与部署更新:
- 完善 Hardhat 和 Foundry 测试用例,全面覆盖 ERC20 打赏和提现的业务交互流程。
- 更新 Ignition 部署模块,支持同时部署留言板合约和 ERC20 测试代币。
pnpm installcd packages/contract
pnpm install
# 编译合约
pnpm hardhat compile
# 运行测试
pnpm hardhat testcd packages/frontend
pnpm install
# 启动开发服务器
pnpm dev- 智能合约: Solidity, Hardhat
- 前端: React, TypeScript, Vite, Wagmi
- 包管理: pnpm workspace