在本教程中,我将指导您使用HardHat开发环境创建和部署自己的ERC20令牌的过程。
先决条件:
在开始之前,请确保您在计算机上设置了以下设置:
- node.js和npm(节点软件包管理器)安装
- 坚固编程语言的基本知识
- 熟悉以太坊生态系统和ERC20代币
步骤1:设置项目
- 为您的项目创建一个新目录,并在您的终端中导航到它。
- 通过运行命令:
npm init -y
。 初始化一个新的node.js项目
- 通过运行:
npm install --save-dev hardhat
。 - 在您首选的代码编辑器中打开项目。
步骤2:编写ERC20令牌合同
- 安装OpenZeppelin合同库,该库提供了预审核和安全的合同实施:
npm install @openzeppelin/contracts
。 - 在
contracts
目录中创建一个名为Zen.sol
的新文件。 - 将以下代码添加到
Zen.sol
文件:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract Zen is ERC20 {
uint256 constant initialSupply = 1000000 * (10 ** 18);
constructor() ERC20("Zen", "ZEN") {
_mint(msg.sender, initialSupply);
}
function decimals() public pure override returns (uint8) {
return 18;
}
}
步骤3:编写部署脚本
- 创建一个名为
scripts
的新目录。 - 在
scripts
目录中,创建一个名为deploy.js
的新文件。 - 将以下代码添加到
deploy.js
文件:
const hre = require("hardhat");
const fs = require("fs");
async function main() {
const [deployer] = await hre.ethers.getSigners();
console.log("Deployer address:", deployer.address);
const zen = await hre.ethers.deployContract("Zen");
await zen.waitForDeployment();
const contractAddress = zen.target;
console.log("Contract Address:", contractAddress);
const zenArtifact = require("../artifacts/contracts/Zen.sol/Zen.json");
const zenAbi = zenArtifact.abi;
const contractData = {
address: contractAddress,
abi: zenAbi,
};
fs.writeFileSync("./abi/zen.json", JSON.stringify(contractData, null, 2));
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
步骤4:配置硬汉
- 在项目root目录中打开
hardhat.config.js
文件。 - 使用以下配置更新文件:
require("@nomicfoundation/hardhat-toolbox");
require("dotenv").config();
const { POLYGON_MUMBAI_RPC_PROVIDER, PRIVATE_KEY, POLYGONSCAN_API_KEY } = process.env;
module.exports = {
defaultNetwork: "hardhat",
networks: {
hardhat: {
chainId: 1337,
},
mumbai: {
url: POLYGON
_MUMBAI_RPC_PROVIDER,
accounts: [`0x${PRIVATE_KEY}`],
},
},
solidity: {
version: "0.8.9",
settings: {
optimizer: {
enabled: true,
runs: 200,
},
},
},
etherscan: {
apiKey: POLYGONSCAN_API_KEY,
},
};
步骤5:部署ERC20令牌
- 通过执行命令:
npx hardhat run scripts/deploy.js --network <network>
来运行部署脚本。 将<network>
替换为所需的网络,例如用于孟买Polygon Testnet的mumbai
。 - 脚本将部署
Zen
合同并输出部署者的地址和已部署的合同地址。 - 合同的ABI将保存到
./abi/zen.json
文件中。
结论:
恭喜!您已经成功地创建了自己的ERC20令牌,并使用HardHat创建了自己的ERC20令牌。现在,您可以使用合同地址和ABI与以太坊网络上的令牌进行交互。 ERC20代币是分散应用程序的基础,可实现各种用例,例如数字货币,忠诚度点等。尝试您的令牌并探索分散财务的无尽可能性。
可以根据您的特定要求随意自定义和扩展ERC20令牌合同的功能。愉快的编码!