# قراردادها و کنترل‌های روی زنجیره

خانواده قراردادهای موجود، محدودیت‌های توکن و تفاوت ثبت محلی، اجرای EVM و پیام میان‌زنجیره‌ای.

وضعیت: پیاده‌سازی‌شده | مخاطب: توسعه‌دهندگان قرارداد و ارزیابان فنی
بازبینی مستندات: ۲۰۲۶/۰۹/۲۴ · ۲ مهر ۱۴۰۵

## دوازده قرارداد در زنجیره ابزار

درخت سورس خانواده‌ای شامل PlankToken، ProjectGovernance، PlankOrganizationRegistry، PlankProjectRegistry، PlankApprovalManager، PlankMintController، PlankActiveTokenRegistry، PlankOracleReportRegistry، PlankTokenPriceRegistry، PlankPublicizationController و دو قرارداد CCIP Sender/Receiver دارد.

فایل Solidity و artifact قرارداد نشان‌دهنده وجود کد قابل کامپایل است. برای معرفی قرارداد مستقر باید آدرس، Chain ID، نسخه bytecode و تراکنش استقرار همان شبکه به‌صورت جدا ثبت و تأیید شوند؛ فهرست نام قراردادها جای این شواهد را نمی‌گیرد.

## توکن پایه و حاکمیت پروژه

PlankToken موجودی و allowance، انتقال، ضرب، سوزاندن، سقف عرضه، توقف، تنظیم انتقال، نقش minter و قفل زمانی موجودی را پیاده می‌کند. دقت ثابت توکن ۱۸ رقم اعشار است. فراداده دارایی و سیاست درآمد و تبدیل نیز در مدل قرارداد وجود دارند.

ProjectGovernance دو الگوی رأی بر اساس وزن توکن و یک کیف‌پول/یک رأی دارد. وجود این امکان در قرارداد اثبات هویت یکتای اشخاص یا ارزش حقوقی یک رأی نیست؛ معیار مشارکت و سازوکار احراز باید برای همان پروژه روشن شوند.

## کنترل عرضه و مجوز ضرب

Mint Controller پیش از ضرب، اختیار operator، وضعیت توقف، گیرنده، شناسه مجوز و عدم استفاده قبلی مجوز را کنترل می‌کند. رجیستری پروژه باید امکان ضرب مقدار موردنظر را تأیید کند و ثبت نتیجه نیز انجام می‌شود.

عرضه مجاز، عرضه ضرب‌شده و عرضه توزیع‌شده مفاهیم متفاوت‌اند. وضعیت محلی پروژه باید با رویداد و نتیجه تراکنش زنجیره تطبیق داده شود؛ گزارش داخلی به‌تنهایی اثبات موجودی قابل معامله کاربران نیست.

## گزارش اوراکل و عرضه عمومی

کنترل‌گر عرضه عمومی وضعیت‌هایی مانند انتظار مشاهده‌گر، مجاز، اجراشده، لغوشده و منقضی دارد و به اعتبار پروژه و گزارش اوراکل وابسته است. در کد، سیاست و شواهد پیش از انتقال وضعیت بررسی می‌شوند.

ثبت داده اوراکل صحت دارایی بیرونی را خودکار تضمین نمی‌کند. منبع، تازگی داده، سیاست پذیرش و اعتبار امضا باید جدا تعریف شوند؛ امکان نگهداری گزارش در قرارداد جای ارزیابی حقوقی یا مالی دارایی را نمی‌گیرد.

## مرز پیام میان‌زنجیره‌ای

قراردادهای CCIP بررسی‌شده برای پیام داده و شواهد طراحی شده‌اند. Sender مسیر و گیرنده مجاز و محدودیت ارسال دارد؛ Receiver روتر، شبکه و فرستنده مجاز، جلوگیری از تکرار و اعتبار payload را کنترل می‌کند. مسیر دریافت، انتقال توکن همراه پیام را پشتیبانی‌شده فرض نمی‌کند.

پس این کد را نباید «پل آماده انتقال همه دارایی‌ها» معرفی کرد. فعال‌سازی واقعی نیازمند شبکه و مسیر پشتیبانی‌شده ارائه‌دهنده، قراردادهای مستقر، پیکربندی و آزمون ارسال و تأیید مقصد است. آزمون محلی EVM یا mock روتر، موفقیت مسیر واقعی را ثابت نمی‌کند.

## مراجع پیاده‌سازی

- admin-main-new/contracts/PlankToken.sol
- admin-main-new/contracts/ProjectGovernance.sol
- admin-main-new/contracts/PlankMintController.sol
- admin-main-new/contracts/PlankPublicizationController.sol
- admin-main-new/contracts/PlankCCIPSender.sol
- admin-main-new/contracts/PlankCCIPReceiver.sol
- admin-main-new/backend/tests/test_onchain_control_plane.py
