项目简介
本项目是一个基于Ethereum和React的全栈去中心化应用(DApp)开发教程项目。开发者能够借助此项目学习运用Solidity编写智能合约,并且通过React前端与智能合约进行交互。项目覆盖了从环境配置、智能合约开发、前端应用开发到部署上线的完整流程,适合不同经验水平的开发者学习实践。
项目的主要特性和功能
- 智能合约开发:运用Solidity编写智能合约,实现简单的Greeter合约,具备初始化问候语和更新问候语的功能,合约部署在本地Hardhat测试网络,便于测试调试。
- 前端应用开发:采用React框架开发前端应用,通过
ethers.js
库与智能合约通信,支持获取和设置问候语。 - 本地测试网络部署:使用Hardhat搭建本地测试网络,可快速部署和测试智能合约,提供20个测试账户用于多账户测试。
- MetaMask集成:项目集成MetaMask钱包,用户能通过MetaMask与智能合约交互,支持在本地测试网络进行交易和合约调用。
安装使用步骤
1. 安装依赖项
确保已安装Node.js和npm,进入项目目录,运行以下命令:
bash
npm install
2. 配置环境
安装Hardhat和ethers.js等开发工具和库,运行以下命令:
bash
npx hardhat --init
npm install ethers
3. 编译智能合约
运行以下命令编译智能合约:
bash
npx hardhat compile
编译后在src/artifacts/contracts/Greeter.sol
目录可找到生成的ABI文件。
4. 部署智能合约
启动本地测试节点:
bash
npx hardhat node
在另一个终端运行以下命令部署智能合约:
bash
npx hardhat run scripts/deploy.js --network localhost
部署成功后,将合约地址替换到src/App.js
中的greeterAddress
变量。
5. 启动前端应用
在项目根目录运行以下命令启动React应用:
bash
npm start
6. 连接MetaMask钱包
- 打开MetaMask钱包,添加本地测试网络:
- RPC URL:
http://localhost:8545
- Chain ID:
1337
- 使用Hardhat提供的测试账户私钥导入账户。
- 切换到本地测试网络,确保账户有足够测试ETH。
7. 与智能合约交互
打开React应用,点击“Fetch Greeting”按钮获取当前问候语,或输入新问候语并点击“Set Greeting”按钮更新问候语。
注意事项
- 部署到生产环境前,要对智能合约进行充分安全审计和测试。
- 确保MetaMask钱包连接正确网络,避免在错误网络交易。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】