如果是发行一个token,其实就是几分钟搞定事情。能够在ETH以及各种L2都能跑起来。从环境安装,写代码,部署。轻轻松松详细教程。 反正就是有手就会的事情。
一、安装环境
- 安装Node.js: 确保你的计算机上安装了Node.js。你可以从Node.js官网下载并安装。
添加图片注释,不超过 140 字(可选)
- 安装Hardhat: 打开你的命令行工具(如cmd、Terminal或PowerShell),运行以下命令来全局安装Hardhat: npm install -g hardhat
- 创建Hardhat项目: 创建一个新的文件夹作为你的项目目录,并在该目录中运行以下命令来初始化Hardhat项目: npx hardhat
- 按照提示选择项目设置(对于ERC-20代币,选择默认设置或自定义设置均可)。
- 安装OpenZeppelin Contracts: 在项目根目录下,运行以下命令来安装OpenZeppelin Contracts库: npm install @openzeppelin/contracts
二、编写ERC-20代码
添加图片注释,不超过 140 字(可选)
在Hardhat项目中,你通常会在contracts文件夹下编写Solidity代码。利用OpenZeppelin的做ERC-20代币合约的示例:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
_mint(msg.sender, initialSupply * (10 ** uint256(decimals())));
}
// 你可以添加其他函数或修改现有函数
}
注意:上面的代码假设你已经知道如何设置decimals()的值,这通常在ERC20的父类中定义。如果你需要自定义,你可能需要扩展ERC20基类或直接在构造函数中设置_setupDecimals(uint8 decimals_)(取决于你使用的OpenZeppelin版本)。
三、部署操作
- 配置Hardhat以连接到网络: 在hardhat.config.js或hardhat.config.ts文件中,配置你要部署到的网络(如Ropsten测试网络)。你可能需要设置url、accounts(用于部署合约的钱包私钥)和network_id等参数。
- 编写部署脚本: 在scripts文件夹下创建一个新的JavaScript文件(例如deploy.js),并使用Hardhat的部署API来部署你的代币合约。
const hre = require("hardhat");
const { ethers } = hre;
async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying contracts with the account:", deployer.address);
const MyToken = await ethers.getContractFactory("MyToken");
const myToken = await MyToken.deploy(1000000); // 假设初始供应量为1,000,000个代币
await myToken.deployed();
console.log("MyToken deployed to:", myToken.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
添加图片注释,不超过 140 字(可选)
- 运行部署脚本: 在项目根目录下,运行以下命令来部署你的代币合约: npx hardhat run scripts/deploy.js --network ropsten 注意替换ropsten为你实际要部署到的网络名称。
- 验证合约: 如果你是在以太坊主网或知名的测试网络上部署,你可能还希望在Etherscan等区块链浏览器上验证你的合约源代码,以提高透明度和可信度。这通常涉及到上传编译后的合约代码和ABI到区块链浏览器网站。