إطلاق رمز مكتسب / حلقة مغلقة

Sui CLT مع نقل محكوم بقائمة معتمدة + إيقاف. يحرك المالكون النقاط فقط بين العناوين التي وافقت عليها مسبقاً.

تعمل نقاط المكافآت والأرصدة الداخلية بشكل أفضل عندما تبقى في النظام البيئي الذي تتحكم فيه. تنشر هذه الإعدادات مسبقة Sui Closed-Loop Token حيث يحتفظ المنشر بقائمة معتمدة من العناوين المستلمة المعتمدة (تجار، شركاء، محافظ عاملة). لا توجد مسار هروب من خلال المحافظ التعسفية، لا تبديل إلى Coin عام، لا قائمة DEX افتراضية.

What's included

لماذا هذه المجموعة

Sui's `sui::token` Closed-Loop Token هو البدائي الوحيد الذي يحكم النقل على مستوى نظام النوع — يتلقى المالكون `Token<T>` (لا `store` ability، لا `public_transfer`) وكل نقل ينتج ActionRequest يجب أن يكون معتمداً مقابل TokenPolicy المنشور. قاعدة قائمة المعتمدين هي تكوين `VecSet<address>` يدير المنشر عبر وظيفتين إداريتين (add_to_allowlist, remove_from_allowlist) مسيّرتين بواسطة TokenPolicyCap. الإيقاف يغطي الحالة التي تحتاج فيها الحلقة المغلقة نفسها إلى توقف طوارئ.

هل يمكنني جعل رموز المالكين soulbound بشكل دائم بدلاً من ذلك؟

نعم — أسقط closed-loop-policy من الحزمة وفعّل non-transferable. يسجل TokenPolicy فارغاً: يجهض كل ActionRequest نقل في confirm_request. الحالة non-transferable + Identity-SBT preset على Sui يغطي تلك الحالة.

كيف أضيف عناوين إلى قائمة المعتمدين بعد النشر؟

الوحدة المنشورة تكشف `add_to_allowlist(policy, cap, addr, ctx)` و `remove_from_allowlist`. اتصل بهما من صفحة الإدارة أو أي محفظة تحتفظ بـ TokenPolicyCap — المحفظة نفسها التي نشرت الرمز افتراضياً.

ماذا يحدث للرموز المرسلة إلى عناوين غير معتمدة؟

استدعاء `token::transfer` يعيد ActionRequest؛ `verify_allowlist_transfer` يؤكد المستلم على القائمة، وإلا فإن المعاملة تجهض. الرموز لا تغادر أبداً عنوان المُرسل — لا يوجد توازن فاشل ومعلق للتنظيف.