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

مراحل تبدیل erc20 به erc777

برای تبدیل یک قرارداد ERC20 به ERC777، باید مراحل زیر را دنبال کنید:

1. بررسی قرارداد ERC20

ابتدا باید کد قرارداد ERC20 خود را بررسی کنید. این کد باید شامل توابع اصلی ERC20 مانند transferapprove, و transferFrom باشد. نمونه زیر یک قرارداد ساده ERC20 را نشان می‌دهد:

pragma solidity ^.8.;

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

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

2. استفاده از استاندارد ERC777

حالا، برای تبدیل به ERC777، ما به جای استفاده از ERC20 از کتابخانه ERC777 استفاده خواهیم کرد. برای این کار می‌توانید از OpenZeppelin کمک بگیرید، که یک مجموعه کتابخانه‌های قابل اعتماد برای قراردادهای هوشمند است.

آموزش سالیدیتی + 5 پروژه عملی

3. ایجاد قرارداد ERC777

حال، به عقب رفته و قرارداد ERC20 خود را به ERC777 به شکل زیر تبدیل کنید:

pragma solidity ^.8.;

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

contract MyToken is ERC777 {
    constructor(uint256 initialSupply, address[] memory defaultOperators) 
        ERC777("My Token", "MTK", defaultOperators) {
        _mint(msg.sender, initialSupply, "", "");
    }
}

4. توابع جدید در ERC777

ERC777 توابع جدیدی مانند send و burn را ارائه می‌کند. همچنین جایگزین توابع approve و transfer به طور غیرمستقیم می‌شود. اینکار باعث می‌شود که امنیت و کارایی بیشتری ایجاد شود.

5. به‌روز رسانی توابع

تغییراتی که در هنگام تبدیل به ERC777 باید اعمال کنید، شامل موارد زیر می‌شود:

  • حذف توابع approve و transfer.
  • استفاده از توابع send و burn به جای آنها.

6. آزمایش قرارداد

پس از اتمام کدنویسی، قرارداد جدید را در محیط‌های آزمایشی مانند Remix یا Truffle تست کنید. اطمینان حاصل کنید که همه توابع به درستی کار می‌کنند و همچنین از قابلیت‌های جدید ERC777 استفاده می‌شود.

نتیجه‌ گیری

تبدیل این نوع قراردادها نسبتاً ساده است و می‌تواند منجر به ارائه راحت‌تر و امن‌تر توکن‌ها شود. با استفاده از کتابخانه‌های معروف مانند OpenZeppelin می‌توان به راحتی این تغییرات را پیاده‌سازی کرد.