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

اطلاعات شبکه

NameZanjir
RPC URLhttps://rpc.zanjir.xyz:443
Chain ID192839
Currency SymbolUSDT

توکن‌های بومی شبکه

توکنآدرسعملیات
USDT logoUSDT
0x9ac3...50cb
IRT logoIRT
0x09e5...a8a9
BTC logoBTC
0x3b05...9f0b
ETH logoETH
0x681e...724e
SOL logoSOL
0x36e6...6eef
DOGE logoDOGE
0xc7d2...2f69
AMOU logoAMOU
0xc9b4...61d2
ZAR logoZAR
0xf172...50a6

زنجیر چیست؟!

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

زنجیر با پشتیبانی از قراردادهای هوشمند سازگار با اتریوم، به توسعه‌دهندگان اجازه می‌دهد تا برنامه‌های غیرمتمرکز (DApps) خود را با سهولت ایجاد کنند. این شبکه همچنین از توکن‌های متنوعی پشتیبانی می‌کند که امکان تعامل با سایر بلاکچین‌ها و دارایی‌های دیجیتال را فراهم می‌سازد. هدف نهایی زنجیر، دموکراتیزه کردن دسترسی به خدمات مالی و ایجاد یک اکوسیستم مالی باز و شفاف برای همه کاربران است.

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

آموزش ساخت و استقرار توکن 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}?page={page}

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

نمونه پاسخ API

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

{
    "history": [
        {
            "direction": "In",
            "token": "0x9ac37093d6eF6cb5fC0944DCed3AA56eBCE050cb",
            "amount": "0x56bc75e2d63100000",
            "tx_hash": "0x5a6f4c8e70735c441e3bafaed803cf696af8bed92722f8602fabe3363ab596c0"
        },
        {
            "direction": "In",
            "token": "0x9ac37093d6eF6cb5fC0944DCed3AA56eBCE050cb",
            "amount": "0x3782dace9d900000",
            "tx_hash": "0x05f417cfa9e1374a0cd8728b6efae9a79e141465948a81acd84575769847eb74"
        },
        {
            "direction": "Out",
            "token": "0x36e6dc3cf44fdb8c62c5a11b457a28041f4c6eef",
            "amount": "0xde0b6b3a7640000",
            "tx_hash": "0x8df70e204f906d34c37d8bab810c607d31d7b0e6b15f2e5726c78a938c6fd80f"
        },
        {
            "direction": "In",
            "token": "0x9ac37093d6eF6cb5fC0944DCed3AA56eBCE050cb",
            "amount": "0x6f05b59d3b200000",
            "tx_hash": "0x1ab43f42ea128c4d69e0a873c67770b3245e5b423745762feda29e71676e295f"
        }
    ]
}

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

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

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

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

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

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

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

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