搭建一个 Web3 项目其实没那么复杂,尤其是用上 Hardhat 和 React 这两大工具,能让开发流程变得高效又顺畅。下面直接带你一步步搞定,从智能合约开发到前端交互,全流程覆盖。
1. 搭建智能合约开发环境 ——Hardhat 入门#
Hardhat 是以太坊智能合约开发的利器,支持本地测试链、合约编译、部署和调试。
-
初始化项目
在项目根目录打开终端,执行:`npm init -ynpm install --save-dev hardhat
npx hardhat`
选择 “创建一个 JavaScript 项目”,Hardhat 会帮你生成基础配置和示例合约。 -
编写智能合约
在contracts
文件夹下,新建或修改合约文件,比如MyToken.sol
,用 Solidity 写你的逻辑。 -
编译合约
执行:npx hardhat compile
确保合约没有语法错误,生成对应的 ABI 和字节码。 -
本地测试链启动
Hardhat 自带本地链,运行:npx hardhat node
这个节点会自动生成测试账户和私钥,方便调试。 -
部署合约
在scripts
目录写部署脚本,比如deploy.js
:`async function main() {const MyToken = await ethers.getContractFactory("MyToken");
const token = await MyToken.deploy();
await token.deployed();
console.log("MyToken deployed to:", token.address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
执行:
npx hardhat run scripts/deploy.js --network localhost`部署到本地测试链。
-
写测试用例
在test
目录写 JavaScript 测试,利用 Mocha 和 Chai 验证合约功能,保证合约稳定。
2. 搭建前端环境 ——React 快速启动#
React 是构建用户界面的首选框架,配合 Web3.js 或 Ethers.js 实现链上交互。
-
创建 React 项目
执行:`npx create-react-app web3-react-appcd web3-react-app`
-
安装依赖
安装 Ethers.js(推荐):npm install ethers
也可以用 Web3.js,根据喜好选择。
-
连接钱包
在 React 组件中,添加连接 MetaMask 的逻辑:`import {useState} from"react";import { ethers } from "ethers";
function App() {
const [account, setAccount] = useState(null);
async function connectWallet() {
if (window.ethereum) { try { const accounts = await window.ethereum.request({ method: "eth_requestAccounts" }); setAccount(accounts[0]); } catch (error) { console.error("用户拒绝连接钱包"); } } else { alert("请安装 MetaMask 钱包"); }
}
return (
<div> <button onClick={connectWallet}>连接钱包</button> {account &&
已连接账户: {account}
}</div>
);
}
export default App;`
-
调用智能合约
将 Hardhat 部署合约的地址和 ABI 导入 React,调用合约方法:`import {ethers} from"ethers";import MyTokenABI from "./MyToken.json";
const contractAddress = "部署合约时打印的地址";
async function getTokenName() {
if (!window.ethereum) return;
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contract = new ethers.Contract(contractAddress, MyTokenABI.abi, provider);
const name = await contract.name();
console.log ("代币名称:", name);
}`
-
实现交互功能
根据合约功能,设计前端按钮和输入框,调用合约的读写方法,实现转账、查询余额等功能。
3. 部署与上线#
-
部署合约到测试网或主网
修改 Hardhat 配置文件hardhat.config.js
,添加网络配置,使用官方 RPC 或第三方服务。部署时用:npx hardhat run scripts/deploy.js --network rinkeby
或其他网络。 -
前端托管
React 项目构建:npm run build
生成静态文件,上传到任何静态网站托管服务即可。 -
备用域名访问交易所
国内用户访问交易所时,可以使用 超链导航 提供的备用域名,保证访问稳定:
总结#
用 Hardhat 搭建智能合约开发环境,配合 React 实现前端交互,能快速搭建一个完整的 Web3 项目。Hardhat 提供本地链和自动化工具,方便合约编写、测试和部署。React 则让用户界面灵活易用,结合 Ethers.js 实现链上操作。通过合理分工,开发效率大幅提升。国内用户访问交易所时,借助 超链导航 的备用域名,能保证交易所访问顺畅。掌握这套流程,入门 Web3 开发不再难。