شبکه تست

مستندات فنی زنجیر

اطلاعات شبکه

NameZanjir
RPC URLhttps://rpc.zanjir.xyz:443
Chain ID192837
Currency SymbolETH

آموزش ساخت و استقرار توکن ERC20

در این آموزش، نحوه ایجاد یک توکن ERC20 ساده و استقرار آن روی شبکه زنجیر با استفاده از Forge/Foundry را یاد خواهیم گرفت.

گام ۱: نصب Foundry

اگر هنوز Foundry را نصب نکرده‌اید، با استفاده از دستور زیر آن را نصب کنید:

curl -L https://foundry.paradigm.xyz | bash
foundryup

گام ۲: ایجاد پروژه جدید

یک پروژه جدید Forge ایجاد کنید:

forge init my_erc20_token
cd my_erc20_token

گام ۳: نصب کتابخانه OpenZeppelin

کتابخانه OpenZeppelin را برای استفاده از قرارداد ERC20 استاندارد نصب کنید:

forge install OpenZeppelin/openzeppelin-contracts

گام ۴: ایجاد قرارداد ERC20

یک فایل جدید به نام MyToken.sol در پوشه src/ ایجاد کنید و کد زیر را در آن قرار دهید:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

گام ۵: کامپایل قرارداد

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

forge build

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

برای استقرار قرارداد روی شبکه زنجیر، از دستور زیر استفاده کنید:

forge create --rpc-url https://api.zanjir.xyz:443 --private-key YOUR_PRIVATE_KEY src/MyToken.sol:MyToken --constructor-args 1000000000000000000000000

توجه: YOUR_PRIVATE_KEY را با کلید خصوصی حساب خود جایگزین کنید. مقدار 1000000000000000000000000 برابر با 1 میلیون توکن است (با در نظر گرفتن 18 رقم اعشار).

گام ۷: تأیید استقرار

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

گام ۸: تعامل با قرارداد

برای تعامل با قرارداد، می‌توانید از ابزارهایی مانند cast (بخشی از Foundry) استفاده کنید. مثلاً برای بررسی موجودی یک آدرس:

cast call --rpc-url https://api.zanjir.xyz:443 CONTRACT_ADDRESS "balanceOf(address)(uint256)" ACCOUNT_ADDRESS

توجه: CONTRACT_ADDRESS را با آدرس قرارداد مستقر شده و ACCOUNT_ADDRESS را با آدرس حساب مورد نظر جایگزین کنید.

با این آموزش، شما یک توکن ERC20 ساده ایجاد کرده و آن را روی شبکه زنجیر مستقر کردید. می‌توانید این قرارداد پایه را برای ایجاد توکن‌های پیچیده‌تر با ویژگی‌های اضافی گسترش دهید.

افزودن شبکه زنجیر به صرافی

برای افزودن شبکه زنجیر به صرافی خود، می‌توانید از API زنجیر برای شناسایی تراکنش‌های ورودی استفاده کنید. این روش به شما امکان می‌دهد تا تراکنش‌های ورودی به یک آدرس خاص را دریافت و پردازش کنید.

استفاده از API تراکنش‌های ورودی

برای دریافت تراکنش‌های ورودی به یک آدرس خاص، می‌توانید از endpoint زیر استفاده کنید:

https://api.zanjir.xyz/api/history/{address}

جایگزین کنید {address} را با آدرس کیف پول مورد نظر خود.

نمونه پاسخ API

پاسخ API به صورت یک شیء JSON با ساختار زیر خواهد بود:

{
    "history": [
        {
            "token": {
                "PseudoErc20": "0x36e6dc3cf44fdb8c62c5a11b457a28041f4c6eef"
            },
            "amount": "0x56fdb8c62c5a11b457a28041f4c6eef"
            },
            "amount": "0x56bc75e2d63100000",
            "tx_hash": "0x5a6f4c8e70735c441e3bafaed803cf696af8bed92722f8602fabe3363ab596c0"
        },
        {
            "token": "Native",
            "amount": "0x3782dace9d900000",
            "tx_hash": "0x05f417cfa9e1374a0cd8728b6efae9a79e141465948a81acd84575769847eb74"
        },
        {
            "token": {
                "PseudoErc20": "0x36e6dc3cf44fdb8c62c5a11b457a28041f4c6eef"
            },
            "amount": "0xde0b6b3a7640000",
            "tx_hash": "0x8df70e204f906d34c37d8bab810c607d31d7b0e6b15f2e5726c78a938c6fd80f"
        },
        {
            "token": "Native",
            "amount": "0x6f05b59d3b200000",
            "tx_hash": "0x1ab43f42ea128c4d69e0a873c67770b3245e5b423745762feda29e71676e295f"
        }
    ]
}

تفسیر داده‌های API

اطلاعات مهم در پاسخ API به شرح زیر است:

  • token: نوع توکن. می‌تواند "Native" (برای ETH) یا یک آدرس قرارداد ERC20 باشد.
  • amount: مقدار توکن به صورت هگزادسیمال. برای تبدیل به دسیمال، باید آن را تقسیم بر 10^18 کنید.
  • tx_hash: هش تراکنش که می‌توانید از آن برای بررسی جزئیات بیشتر در یک اکسپلورر بلاکچین استفاده کنید.

پیاده‌سازی در صرافی

برای پیاده‌سازی این سیستم در صرافی خود، می‌توانید مراحل زیر را دنبال کنید:

  1. یک آدرس اختصاصی برای دریافت سپرده‌ها در شبکه زنجیر ایجاد کنید.
  2. به صورت دوره‌ای (مثلاً هر چند دقیقه) API را برای این آدرس فراخوانی کنید.
  3. تراکنش‌های جدید را با مقایسه با تراکنش‌های قبلی که قبلاً پردازش کرده‌اید، شناسایی کنید.
  4. برای هر تراکنش جدید، موجودی کاربر را در صرافی به‌روزرسانی کنید.
  5. هش تراکنش را برای جلوگیری از پردازش مجدد در آینده ذخیره کنید.

کیف پول گرم صرافی

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