در این راهنما به شما آموزش می‌دهیم که چگونگی ساخت توکن ERC20 با استفاده از OpenZeppelin و Hardhat بسازید. این مراحل شامل نصب ابزارها، نوشتن کد توکن، و اجرای مراحل کامپایل و تست توکن است.

مرحله ۱: نصب پیش‌نیازها

  1. نصب Node.js: ابتدا اطمینان حاصل کنید که Node.js روی سیستم شما نصب شده باشد. می‌توانید آن را از وب‌سایت Node.js دانلود و نصب کنید.

  2. ایجاد پروژه Hardhat:

    در یک دایرکتوری جدید، ترمینال را باز کرده و مراحل زیر را دنبال کنید:

    mkdir my-erc20-token
    cd my-erc20-token
    npm init -y
    npm install --save-dev hardhat
    

    سپس Hardhat را با دستور زیر راه‌اندازی کنید:

    npx hardhat
    

    گزینه “Create a sample project” را انتخاب کنید تا یک پروژه نمونه ایجاد شود.

مرحله ۲: نصب OpenZeppelin

برای استفاده از کتابخانه‌های OpenZeppelin، باید آن‌ها را نصب کنید:

npm install @openzeppelin/contracts

مرحله ۳: نوشتن کد توکن

حالا یک فایل جدید برای نوشتن کد توکن خود ایجاد کنید. به پوشه contracts بروید و یک فایل به نام MyToken.sol بسازید:

// contracts/MyToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^.8.;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply);
    }
}

آموزش سالیدیتی

مرحله ۴: اضافه کردن اسکریپت برای استقرار (Deploy)

یک فایل جدید به نام deploy.js در پوشه scripts ایجاد کنید:

// scripts/deploy.js
async function main() {
    const initialSupply = 100000; // تعداد توکن‌های اولیه
    const MyToken = await ethers.getContractFactory("MyToken");
    const myToken = await MyToken.deploy(initialSupply);

    await myToken.deployed();
    console.log(`Token deployed to: ${myToken.address}`);
}

main()
    .then(() => process.exit())
    .catch((error) => {
        console.error(error);
        process.exit(1);
    });

مرحله ۵: استقرار توکن

حالا می‌توانید توکن خود را استقرار دهید. ابتدا یک شبکه تست (مثل Hardhat Network) راه‌اندازی کنید:

npx hardhat node

سپس، در یک ترمینال جدید، اسکریپت استقرار را اجرا کنید:

npx hardhat run scripts/deploy.js --network localhost

مرحله ۶: تست توکن

شما می‌توانید از Hardhat برای تست توکن خود استفاده کنید. برای این کار می‌توانید یک فایل تست در پوشه test ایجاد کنید:

// test/MyToken.test.js
const { expect } = require("chai");

describe("MyToken", function () {
    it("Should have the correct name and symbol", async function () {
        const MyToken = await ethers.getContractFactory("MyToken");
        const myToken = await MyToken.deploy(100000);
        await myToken.deployed();

        expect(await myToken.name()).to.equal("MyToken");
        expect(await myToken.symbol()).to.equal("MTK");
    });

    it("Should assign the initial supply to the owner", async function () {
        const [owner] = await ethers.getSigners();
        const MyToken = await ethers.getContractFactory("MyToken");
        const myToken = await MyToken.deploy(100000);
        await myToken.deployed();

        const ownerBalance = await myToken.balanceOf(owner.address);
        expect(ownerBalance).to.equal(100000);
    });
});

اجرای تست‌ها

برای اجرای تست‌ها کافی است دستور زیر را در ترمینال وارد کنید:

npx hardhat test

نتیجه‌ گیری

با این مراحل، شما ساخت توکن erc20 با استفاده از OpenZeppelin و Hardhat را انجام دادید و تست‌های اولیه آن را نوشتید. این روش به شما امکان می‌دهد که به راحتی توکن‌های جدید را بسازید و آن‌ها را بررسی کنید. اگر سوالی دارید یا نیاز به اطلاعات بیشتری دارید، خوشحال می‌شوم کمک کنم!