Token vesting یک روش مفید برای مدیریت توزیع توکن‌ها به تیم‌های توسعه، سرمایه‌گذاران و سایر همکاری‌هاست. این روش به اطمینان از این که افراد به طور منظم و مطابق با یک برنامه مشخص توکن‌ها را دریافت می‌کنند، کمک می‌کند. در این مقاله، به شما آموزش می‌دهیم که چگونه یک قرارداد Token Vesting ساده با سالیدیتی بسازید.

مراحل ایجاد Token Vesting

1. شرایط اولیه

برای شروع، اطمینان حاصل کنید که ابزارهای زیر را نصب کرده‌اید:

  • Node.js
  • Truffle: برای توسعه و تست قراردادهای هوشمند.
  • Ganache: برای شبیه‌سازی بلاک‌چین محلی.

2. ایجاد پروژه جدید با Truffle

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

mkdir token_vesting
cd token_vesting
truffle init

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

3. نوشتن قرارداد Token Vesting

در پوشه contracts، یک فایل جدید به نام TokenVesting.sol ایجاد کنید و کد زیر را در آن قرار دهید:

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

contract TokenVesting {
    address public beneficiary;
    uint256 public releaseTime;
    uint256 public amount;
    bool public released;

    constructor(
        address _beneficiary,
        uint256 _amount,
        uint256 _vestingDuration,
        uint256 _startTime
    ) {
        require(_beneficiary != address(), "Beneficiary address cannot be zero");
        require(_amount > , "Amount must be greater than zero");
        
        beneficiary = _beneficiary;
        amount = _amount;
        releaseTime = _startTime + _vestingDuration;
        released = false;
    }

    function release() public {
        require(msg.sender == beneficiary, "Only the beneficiary can release tokens");
        require(block.timestamp >= releaseTime, "Tokens are not yet vested");
        require(!released, "Tokens have already been released");

        // توکن‌ها را به آدرس beneficiaries ارسال کنید
        payable(beneficiary).transfer(amount);
        released = true;
    }
}

4. توضیح کد

  • متغیرهای قرارداد:

    • beneficiary: آدرس دریافت‌کننده توکن‌ها.
    • releaseTime: زمانی که توکن‌ها قابل دریافت خواهند بود.
    • amount: مقدار توکن‌هایی که قرار است به دریافت‌کننده تسلیم شود.
    • released: نشان می‌دهد که آیا توکن‌ها آزاد شده‌اند یا خیر.
  • تابع constructor: برای تنظیم موارد اولیه قرارداد هنگام ایجاد آن استفاده می‌شود.

  • تابع release: این تابع مسئول آزادسازی توکن‌ها است. تنها در صورتی که زمان آزادسازی فرا رسیده باشد و تنها توسط دریافت‌کننده قابل فراخوانی است.

5. تست قرارداد

بعد از نوشتن کد قرارداد، می‌توانید آن را با استفاده از Truffle تست کنید. ابتدا یک فایل تست در پوشه test ایجاد کنید و آزمون‌های لازم را بنویسید.

جمع‌ بندی

با استفاده از این راهنما، شما توانسته‌اید یک قرارداد Token Vesting ساده با سالیدیتی ایجاد کنید. این روش به شما کمک می‌کند تا توکن‌ها را به طور منظم و طبق زمان‌بندی مشخصی به دریافت‌کنندگان ارسال کنید.

این مقاله به شما کمک می‌کند تا با مفهوم و نحوه ساخت Token Vesting در سالیدیتی آشنا شوید و در پروژه‌های خود از آن استفاده کنید.