آنچه در این مقاله میخوانید [پنهانسازی]
در این راهنما به شما آموزش میدهیم که چگونگی ساخت توکن ERC20 با استفاده از OpenZeppelin و Hardhat بسازید. این مراحل شامل نصب ابزارها، نوشتن کد توکن، و اجرای مراحل کامپایل و تست توکن است.
سرفصل های مقاله
مرحله ۱: نصب پیشنیازها
-
نصب Node.js: ابتدا اطمینان حاصل کنید که Node.js روی سیستم شما نصب شده باشد. میتوانید آن را از وبسایت Node.js دانلود و نصب کنید.
-
ایجاد پروژه 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 را انجام دادید و تستهای اولیه آن را نوشتید. این روش به شما امکان میدهد که به راحتی توکنهای جدید را بسازید و آنها را بررسی کنید. اگر سوالی دارید یا نیاز به اطلاعات بیشتری دارید، خوشحال میشوم کمک کنم!