العقود الذكية
هذه الصفحة تصف عقود المجموعة الرئيسية والبطاقة في البروتوكول v1.1.0. سلوك العقد يوفر آليات تسوية لا يحل محل إفصاحات الجهة المصدرة أو قواعد المجموعة أو شروط المعاملة الأخرى التي تنطبق على استخدام معين.
الاستخدام المفاهيم والمصطلحات التمييز بين صندوق الالتزامات المسيطر عليه من SwapPool، وتسوية المبادلة من تقديم القسيمة للاسترداد، والوفاء، والإبراء.
البطاقة (GiftableToken)
GiftableToken هو رمز ERC20 مع الميكانيكيات التي يمكن للمصدر استخدامها للحصول على قسيمة:
- التصنيف المسموح به يمكن للمالك تعيين الكتاب الذين يمكنهم إصدار رموز مع
mintTo. - الإنتهاء الاختياري انتهاء صلاحية
0يعني عدم انتهاء صلاحية على مستوى العقد. وإلا، فإن التحويلات والخسارة والحرق يعودون إلى الوراء عند أو بعد العلامة الزمنية الموضحة. يمكن لأي شخص أن يستمر في وضع المحطةexpiredعن طريق الاتصال مباشرةapplyExpiry. - محاسبة الإمدادات
totalMintedوtotalBurnedتعرض نشاط الإمدادات المتراكم. وظيفةburnالمالك فقط تحرق الرموز التي تحتفظ بها عنوان المالك.
العقد الرمزي لا لا تحديد السلع أو الخدمات التي يقدمها الجهة المصدرة، وتحديد قيمة الاسترداد، وإثبات القدرة، أو وعد بالتحويل النقدي. لا تصبح GiftableToken تعهدا قابلا للاسترداد إلا من خلال الشروط والسلوكيات المنشورة بشكل منفصل من قبل الجهة المصدرة. لا يزال الجهات المصدرة مسؤولين عن وصف هذه الشروط وتحقيقها بدقة.
صندوق الالتزامات (SwapPool)
SwapPool هو صندوق رموز ومحرك تسوية تبادل. على الرغم من أنه يعرض ERC20 البيانات الأساسية لسم المجموعة، والرمز، والعشرات العشرية، فإن العقد v1.1.0 لا يصنع رموز حصة المجموعة. يتم توفير السيولة عن طريق تحويل الرموز إلى المجموعة، ويمكن لمالك العقد سحب السيولة المتاحة.
التركيب والاعتمادات الاختيارية
| التكوين | عندما لا يتم تعيينها | فتحة العناوين المختومة |
|---|---|---|
tokenRegistry | أي رمز يمكنه أن يمر بالتحقق من إدارة الصندوق | نعم |
tokenLimiter | لا يوجد سقف لميزانية الودائع على مستوى العقد | نعم |
quoter | يتم التعامل مع كمية الدخل الخام ككمية الناتج المذكورة الخام | نعم |
feePolicy | رسوم الصندوق هي صفر | نعم |
feeAddress | لا يتم تحصيل رسوم المجموعة كرسوم قابلة للسحب للمستفيد المحدد | نعم |
protocolFeeController | لا تتقاضى رسوم البروتوكول | لا , لا |
تغلق البطاقات الخمسة للخاتم بشكل دائم عناوين feePolicy، feeAddress، quoter، tokenRegistry، و tokenLimiter الحالية ضد معداتها المقابلة. protocolFeeController و feesDecoupled هي قيم البدء وليس من بين تلك البيتات الخمسة.
إغلاق فتحة العنوان لا يؤدي إلى تجميد العقد في هذا العنوان. يمكن أن يتغير سجل مغلق أو مقيد أو سياسة اقتباس أو رسوم ومدير بروتوكول مكون من رسوم لا يزال بإمكانه ذلك إذا سمحت حكمها الخاص بذلك. يمكن للمدير الوكيل ERC-1967 أيضًا تحديث تنفيذ الصندوق. وبالتالي، يعتمد مطالبة عدم التغيير ذات مغزى على حوكمة مالك المجموعة، وإدارة الوكالة، وجميع الاعتمادات التي يتم تشكيلها.
تسوية التبادل
للاستبدال، SwapPool:
- يتحقق من أن رموز الدخول والخروج تتجاوز السجل الاختياري ويختبر المدخل المطلوب مقابل الحد الاختياري لميزان المجموعة.
- يسحب رمز المدخل من المتصل ويقيس المبلغ الذي تلقى بالفعل. يستخدم التسعير هذا المبلغ المقاس، بما في ذلك رموز الرسوم على التحويل.
- يحصل على اقتباس إجمالي من المؤشر المحدد، أو يستخدم المبلغ الخام المستلم عندما لا يتم تعيين أي اقتباس.
- يحسب رسوم المجموعة وأي رسوم بروتوكول إضافية، ثم يتحقق من السيولة المتاحة في رموز الخروج.
- يرسل رسوم البروتوكول مباشرة إلى مستلم البروتوكول الذي تم تشكيله، ونقل الناتج الصافي الاسمي إلى المستلم، ويسجل رسوم المجموعة عند تشكيل عنوان رسوم.
- ينشر حدث
Swapالقديم والحدثSwapSettlementالأكثر تفصيلاً.
تسجل SwapSettlement المبدع ، وكلا الرموز ، المدخل المقياس ، الناتج المحتوى الإجمالي ، الناتج الاسمي المرسل ، الناتج الملاحظ فعليا في المستلم ، رسوم المجموعة ، والرسوم البروتوكول. يمكن أن تختلف النتائج الاسمية والملاحظة عندما تتقاضى رمز الخروج نفسه رسوم تحويل. الحقل fee في حدث Swap القديم هو رسوم المجموعة فقط.
الحمل الزائد من ستة حجج withdraw(tokenOut, tokenIn, value, recipient, minAmountOut, deadline) هو مسار التنفيذ المحدود. يتراجع بعد الموعد النهائي أو عندما يكون زيادة الميزان الملاحظ للمستفيد أقل من minAmountOut. يجب على المتكاملين تفضيل ذلك لأن الاقتباسات المعروضة مؤقتة: حالة الاقتباسات وسياسة الرسوم والسيولة والحدود والبيانات القديمة قد تتغير قبل التنفيذ. لا توفر هذه الحدود على مستوى المجموعة القديمة من الحملات الزائدة من ثلاث أو أربع حجج.
حساب الرسوم الإضافية
يتم خصم رسوم المجموعة والبروتوكول من الناتج المحتوى الإجمالي. رسوم البروتوكول هي غير مقطوعة من رسوم المجموعةويحافظ المجموعة على رسومها الكاملة المحسوبة.
على سبيل المثال، على اقتباس إجمالي 100 وحدة:
- تكلفة المجموعة 2 ٪ 2 وحدة إلى المجموعة.
- سعر بروتوكول 10٪ المطبق على هذه الرسوم المجموعة يرسل وحدة 0.2 أخرى مباشرة إلى المستفيد من بروتوكول؛ و
- يحصل المستخدم على وحدات 97.8.
يستخدم حساب البروتوكول أعلى من رسوم المجموعة المحسوبة وقاعدة رسوم افتراضية بنسبة 1٪. هذا يمنع رسوم المجموعة الصغيرة جدا من تقليل حساب البروتوكول إلى صفر تقريبا. الأسعار المشتركة غير صالحة تتراجع مع FeeTooHigh، والقائمة التي ستستقر عند الصفر تتراجع مع InsufficientOutput.
صلاحيات الملكية والترقية
يمكن لأصحاب العقد تحصيل رسوم المجموعة المستحقة ويمكنهم الاتصال بـ withdrawLiquidity لنقل أي رمز المجموعة المتاحة إلى عنوان غير صفر مختار. عندما يتم فصل الرسوم، يتم احتجاز الرسوم المستحقة من هذا مسار سحب السيولة. وإلا فإنها تبقى جزءا من رصيد المجموعة. لا ينبغي للمشاركين في المجموعة تفسير السيولة المودعة بأنها مغلقة بشكل دائم ما لم تثبت هذه النتيجة بمراقبة إضافية قابلة للتحقق من الحوكمة.
إغلاق الإعداد لا يزيل هذه القدرة على سحب السيولة. كما أنه لا يزيل طاقة ترقية إدارة الوكيل ERC-1967 منفصل.
وحدات التقييم
جميع المقدمين الثلاثة يقومون بتنفيذ وظائف المقدمة والعكسية المستخدمة من قبل SwapPool و SwapRouter:
DecimalQuoterالتطبيع العشري دون ولاية تحت افتراض 1: 1 تعادل القيمة.RelativeQuoterالتطبيع العشري بالإضافة إلى مؤشرات الأسعار النسبية التي يديرها المالك. مؤشر رموز غير محدد يتم تحديده بشكل افتراضي إلى المساواةOracleQuoterتقييم كل رمز من خلال أوراكل محدد، مع حد توقف عالمي أو لكل رمز ومضاعف خروج 0.9-to-1.0 اختياري.
OracleQuoter موثوقة فقط مثل اختيارها وإدارة الأغذية. يجب أن يكون اسم الأغذية والتوجه متسقًا، ويجب أن تكون العشرات صحيحة، ويجب أن تكون التحديثات إيجابية وجديدة، ويمكن للحوكمة استبدال الأغذية أو تغيير إعدادات الطازجة. التلاعب بالمصدر، وتأخير التحديثات، وانقطاع الشبكة، وتكوين الزوجات غير الصحيح، أو فقدان مفتاح مالك القرآن يمكن أن يسبب الاقتباسات السيئة أو تجعل المقايضات تتراجع.
OracleRelay هو إرسال واحد اختياري ، أحدث جولة متوافقة مع واجهة Oracle. كاتب معين يعيد نشر قيم المصدر؛ لا توجد دليل عبر السلسلة ولا يوجد تاريخ مخزن حولها يتقبل الإرسال قيم الكاتب مع التحقق من العلامة الزمنية المستقبلية فقط. يرفض OracleQuoter بشكل مستقل الإجابات غير الإيجابية أو القديمة، في حين يمكن لمالك الرصيف تدوير الكاتب أو إلغاء الجولة الحالية. لذلك يجب على المستخدمين تقييم تغذية المصدر، وكاتب الرصيف، ومالك الرصيف، وعملية المراقبة.
سياسة الرسوم والحدود
تخزين FeePolicy رسوم افتراضية في أجزاء في المليون وتجاوز الزوج التوجيهي الاختياري. مالكها يمكنه تغيير هذه الأسعار ما لم تقيد الحكم خارج العقد هذه السلطة.
Limiter تخزين الحد الأقصى لميزان في عنوان محدد للمجموعة. المالك أو الكاتب المعتمد يمكن أن يغير هذا الحد. الحد الصفر يمنع الودائع عندما يكون المحدد نشطًا. المحدد غير المحدد يترك الودائع غير محدودة.
هذه الحدود تصف تشكيل التعرض للأشعار في صندوق. فهي لا تصنف نفسها رصيد رمزي كقرض أو ديون قانونية، ولا تثبت قدرة الجهة المصدرة، أو تضمن الوفاء. هذه الأسئلة تعتمد على شروط الجهة المصدرة وقواعد المجموعة والمعاملة التي يتم تقديمها للمستخدم والقانون المعمول بها.
مراقب رسوم البروتوكول
ProtocolFeeController هو مكون اخياري من الرسوم على مستوى الانتشار. يمكن لصاحبها تغيير سعر البروتوكول والمستلم أو تعطيل الرسوم. يمكن مشاركة جهاز تحكم واحد من قبل مجموعة متعددة، ولكن البروتوكول لا يتطلب جهاز تحكم واحد لكل شبكة.
عند نشاطها وتكوينها، يتم دفع المستلم مباشرة في رمز الخروج خلال كل تبادل ناجح. كيف يستخدم المستفيد الأموال—على سبيل المثال لعمليات، أو مراقبة، أو دعم السيولة، أو غرض آخر نشر—هو مسألة حوكمة، وليس ضماناً يقدمها العقد.