بنية شبكة البروتوكول
يمكن لتنفيذ متوافق مع CPP ربط العديد من القسائم والصناديق من خلال سجلات وفهارس ووحدات عروض أسعار واكتشاف مسارات على مستوى التطبيق، وكلها اختيارية. ويظل كل صندوق خزنة مستقلة لها سيولتها ومالكها ومدير وكيلها وإعداداتها ومكوناتها التابعة.
تدير Grassroots Economics Foundation التطبيق العام على cosmolocal.credit. ويمكن لواجهات وتنفيذات أخرى استخدام البروتوكول العام نفسه. ولا يجعل تشغيل التطبيق GEF تلقائيًا مالكةً أو جهة مصدرة أو مشرف صندوق أو مستلمة رسوم أو ضامنة لكل عقد يظهر أدناه.
راجع المفاهيم والمصطلحات لفهم الفصل بين الأدوار المسؤولة والصلاحيات التقنية.
المسارات المرشحة والتنفيذ
ينشئ الأصل المشترك مسارًا محتملًا في الرسم الشبكي، وليس مسارًا مضمونًا. في هذا المثال، يمكن استبدال Voucher A بأصل وسيط في Pool A، ثم استبدال الأصل الوسيط بـ Voucher B في Pool B. وتظل كل خطوة معتمدة على قبول الرموز الحالي وحدود الصندوق والمخزون المتاح وإعداد عروض الأسعار والرسوم وحالة الأوراكل والموافقات وحدود المعاملة وتنفيذ الشبكة.
لا يفعل SwapRouter سوى استدعاء دوال عرض الأسعار في الصناديق عبر مسار مقترح. فهو لا يحتفظ بالأموال ولا يوافق على الرموز ولا ينفذ المبادلات. ويمكن لمتكامل أو تطبيق متوافق استخدام هذه النتائج لبناء استدعاءات مرتبة للموافقات والصناديق ضمن حزمة موقعة من حساب ذكي؛ ولا يعني ذلك أن التطبيق العام الحالي يوفر تنفيذًا متعدد الخطوات. وتُسوّى كل خطوة إلى المحفظة قبل أن تقدم المحفظة الأصل الوسيط إلى الصندوق التالي، ويمكن للمتكامل ضبط الحزمة بحيث تتراجع إذا فشل استدعاء.
عروض الأسعار لقطات لحظية. وقد يفشل مسار حصل على عرض سعر ناجح، أو تتم تسويته بصورة مختلفة، إذا تغيرت الحالة ذات الصلة قبل التنفيذ. وتضيف النسخة المحددة من SwapPool.withdraw حمايتي minAmountOut وdeadline لكل خطوة، وعلى المتكاملين تحديد طريقة تطبيق الحدود على المسار الكامل.
تبقى رسوم الصندوق لدى الصندوق المعني لتحصيلها لاحقًا. ويكون أي رسم بروتوكول إضافيًا وينتقل مباشرة من ذلك الصندوق إلى مستلم البروتوكول المضبوط أثناء المبادلة.
المكونات الداخلية للصندوق
السجل ومحدد الحدود وعارض الأسعار وسياسة الرسوم ومتحكم رسوم البروتوكول مكونات اختيارية. ففي غياب السجل يمر أي رمز باختبار القبول، وفي غياب محدد الحدود لا يكون للإيداعات سقف، وفي غياب عارض الأسعار يستخدم الصندوق تكافؤ الوحدات الخام، وفي غياب وحدات الرسوم تكون الرسوم المقابلة صفرًا.
الخانات الخمس القابلة للإغلاق هي feePolicy وfeeAddress وquoter وtokenRegistry وtokenLimiter. ويمنع الإغلاق مالك الصندوق الحالي من استبدال ذلك العنوان عبر دالته الضابطة، لكنه لا يجمد الحالة الداخلية للمكوّن التابع. ولا يغطي الإغلاق عنوان protocolFeeController أو وضع feesDecoupled. كما أن قدرة مدير الوكيل على ترقية الصندوق منفصلة عن الإغلاق.
يستطيع مالك العقد سحب سيولة الصندوق المتاحة إلى عنوان يختاره. وفي وضع فصل الرسوم، تُحجز الرسوم المتراكمة من هذا المسار؛ لكن تظل سلطة سحب بقية السيولة قائمة. وينبغي للمشاركين فحص المالك ومدير الوكيل والمتحكمين في المكونات التابعة وحالة الإغلاق ومستلمي الرسوم وقواعد الصندوق المنشورة قبل الاعتماد على صندوق.
للاطلاع على التصميم المفاهيمي وراء هذه العقود، بما فيه التنسيق والتقييم ووضع الحدود والتبادل والحوكمة، راجع الورقة البيضاء.