在短短2分钟内使用Hardhat创建和部署自己的令牌
#javascript #web3 #区块链 #solidity

在本教程中,我将指导您使用HardHat开发环境创建和部署自己的ERC20令牌的过程。

先决条件:

在开始之前,请确保您在计算机上设置了以下设置:

  • node.js和npm(节点软件包管理器)安装
  • 坚固编程语言的基本知识
  • 熟悉以太坊生态系统和ERC20代币

步骤1:设置项目

  1. 为您的项目创建一个新目录,并在您的终端中导航到它。
  2. 通过运行命令:npm init -y
  3. 初始化一个新的node.js项目
  4. 通过运行:npm install --save-dev hardhat
  5. 在您首选的代码编辑器中打开项目。

步骤2:编写ERC20令牌合同

  1. 安装OpenZeppelin合同库,该库提供了预审核和安全的合同实施:npm install @openzeppelin/contracts
  2. contracts目录中创建一个名为Zen.sol的新文件。
  3. 将以下代码添加到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:编写部署脚本

  1. 创建一个名为scripts的新目录。
  2. scripts目录中,创建一个名为deploy.js的新文件。
  3. 将以下代码添加到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:配置硬汉

  1. 在项目root目录中打开hardhat.config.js文件。
  2. 使用以下配置更新文件:
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令牌

  1. 通过执行命令:npx hardhat run scripts/deploy.js --network <network>来运行部署脚本。 将<network>替换为所需的网络,例如用于孟买Polygon Testnet的mumbai
  2. 脚本将部署Zen合同并输出部署者的地址和已部署的合同地址。
  3. 合同的ABI将保存到./abi/zen.json文件中。

结论:

恭喜!您已经成功地创建了自己的ERC20令牌,并使用HardHat创建了自己的ERC20令牌。现在,您可以使用合同地址和ABI与以太坊网络上的令牌进行交互。 ERC20代币是分散应用程序的基础,可实现各种用例,例如数字货币,忠诚度点等。尝试您的令牌并探索分散财务的无尽可能性。

可以根据您的特定要求随意自定义和扩展ERC20令牌合同的功能。愉快的编码!