ساخت یک صرافی غیرمتمرکز (DEX) با استفاده از زبان برنامه‌نویسی سالیدیتی و پلتفرم اتریوم می‌تواند پیچیده باشد ولی در اینجا روند کلی کار را به صورت گام‌به‌گام توضیح می‌دهیم.

پیش‌ نیازها

  1. دانش ابتدایی از اتریوم: آشنایی با بلاکچین اتریوم و مفاهیم پایه آن.
  2. محیط برنامه‌نویسی: نصب Remix IDE، که یک محیط توسعه آنلاین برای نوشتن و تست قراردادهای هوشمند است.
  3. کیف پول: داشتن یک کیف پول مانند Metamask برای تعامل با شبکه اتریوم.
  4. گاز شبکه: مقداری اتر برای انجام تراکنش‌ها در شبکه اتریوم.

گام ۱: نوشتن قرارداد

در این گام، یک قرارداد ساده برای ایجاد یک صرافی غیرمتمرکز را بررسی می‌کنیم. قرارداد زیر به شما امکان می‌دهد تا توکن‌های اتریوم و ERC20 را مبادله کنید.

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

interface IERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
}

contract DEX {
    event Swap(address indexed user, address indexed tokenIn, address indexed tokenOut, uint256 amountIn, uint256 amountOut);

    function swap(IERC20 tokenIn, IERC20 tokenOut, uint256 amountIn) external {
        require(amountIn > , "Amount must be greater than ");
        
        // انتقال توکن‌ها به این قرارداد
        tokenIn.transferFrom(msg.sender, address(this), amountIn);

        // فرض کنید نرخ تبدیل 1:1 باشد برای سادگی
        uint256 amountOut = amountIn;

        // انتقال توکن‌ها به کاربر
        tokenOut.transfer(msg.sender, amountOut);
        
        emit Swap(msg.sender, address(tokenIn), address(tokenOut), amountIn, amountOut);
    }
}

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

گام ۲: کامپایل و دیپلوی قرارداد

  1. در Remix، کد بالا را در یک فایل جدید (مثلاً DEX.sol) قرار دهید.
  2. کامپایل: بر روی زبانه “Solidity Compiler” کلیک کرده و بر روی “Compile DEX.sol” کلیک کنید.
  3. دیپلوی: به زبانه “Deploy & Run Transactions” بروید و قرارداد خود را با کیت Rinkeby یا کلاستری دیگر دیپلوی کنید.

گام ۳: تست قرارداد

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

گام ۴: ایجاد رابط کاربری (اختیاری)

می‌توانید از کتابخانه‌هایی مانند React.js برای ایجاد یک رابط کاربری برای صرافی خود استفاده کنید. این رابط کاربری می‌تواند کاربر را قادر سازد تا توکن‌ها را راحت‌تر مبادله کند.

نکات مهم

  • آدرس‌های توکن: برای انجام مبادلات نیاز دارید که آدرس توکن‌های ERC20 را داشته باشید.
  • مدیریت گاز: توجه کنید که هر تراکنش در شبکه اتریوم نیاز به پرداخت هزینه گاز دارد.
  • تست در شبکه‌های تستی: همواره در شبکه‌های تستی مانند Rinkeby یا Kovan قراردادهای خود را تست کنید.

نتیجه‌ گیری

ساخت صرافی غیرمتمرکز با استفاده از سالیدیتی یک پروژه هیجان‌انگیز و آموزشی است که می‌تواند به شما کمک کند با زبان‌های برنامه‌نویسی بلاکچین آشنا شوید. با گام‌های فوق می‌توانید یک دکس ساده برای مبادله توکن‌ها بسازید و به تدریج آن را توسعه دهید.