سبع تقنيات لمساعدتك في إتقان تطوير العقود الذكية

نصائح وتقنيات تطوير العقود الذكية

مؤخراً، أثناء مشاركتي في مشروع تعليم تطوير بورصة لا مركزية، تعلمت الكثير من تقنيات تطوير العقود القيمة من خلال دراسة تنفيذ كود Uniswap V3. باعتباري مبتدئاً في تطوير عقود Defi، قدمت لي هذه التقنيات العديد من الإلهامات، وأعتقد أنها ستفيد أيضاً المبتدئين الآخرين الذين يرغبون في تعلم تطوير العقود.

Web3 سلسلة المبتدئين: النصائح الصغيرة لتطوير العقود التي تعلمتها من كود Uniswap

عنوان العقد القابل للتنبؤ

عادةً ما يتم الحصول على عنوان عشوائي عند نشر العقد، ولكن في بعض السيناريوهات نحتاج إلى القدرة على توقع عنوان العقد. تستخدم Uniswap طريقة CREATE2 لإنشاء العقد، من خلال إضافة معامل salt، مما يجعل عنوان العقد المنشأ قابلاً للتوقع. هذا مفيد جدًا في سيناريوهات مثل تحديد صلاحيات المعاملات أو الحصول على عنوان المسبح.

Web3 سلسلة المبتدئين: النصائح الصغيرة لتطوير العقود التي تعلمتها من كود Uniswap

استخدام دوال الاستدعاء بذكاء

في بعض السيناريوهات، يكون من المفيد استدعاء العقود المتبادلة. على سبيل المثال في Uniswap، عند استدعاء طريقة swap لعقد UniswapV3Pool، يتم استدعاء swapCallback مع إدخال عدد الرموز الفعلي المطلوب المحسوب. يحتاج المستدعي إلى نقل الرموز إلى UniswapV3Pool في الاستدعاء، مما يضمن التنفيذ الكامل والأمان لطريقة swap.

نقل المعلومات عبر الاستثناء

في عقد Quoter الخاص بـ Uniswap، يتم تغليف تنفيذ طريقة swap لـ UniswapV3Pool باستخدام try-catch. وذلك لمحاكاة swap لتقدير الرموز المطلوبة للتداول، من خلال التقاط الأخطاء المحددة وتحليل معلومات الأخطاء للحصول على البيانات المطلوبة. هذه الطريقة تتجنب الحاجة إلى تعديل طريقة swap خصيصًا للتقدير، مما يجعل المنطق أكثر بساطة.

سلسلة Web3 للمبتدئين: النصائح الصغيرة لتطوير العقود التي تعلمتها من كود Uniswap

ضمان دقة الحسابات الكبيرة

يتضمن Uniswap الكثير من الحسابات، لتجنب فقدان الدقة أثناء عمليات القسمة، غالبًا ما يتم استخدام التحويل لليسار بمقدار 96 بت، ( يعادل عملية الضرب في 2^96). وبهذه الطريقة يمكن ضمان دقة الحسابات في حالة عدم تجاوز الحدود في المعاملات العادية. على الرغم من أنه نظريًا لا يزال هناك فقدان دقة طفيف، إلا أنه مقبول.

طريقة مشاركة حساب الأرباح

لتجنب استهلاك كمية كبيرة من الغاز لتسجيل رسوم المعاملات لكل LP في كل مرة يتم فيها التداول، اعتمد Uniswap طريقة مشابهة لتوزيع الأرباح على الأسهم. يكفي تسجيل إجمالي الرسوم المستحقة والرسوم التي يجب توزيعها لكل وحدة من السيولة، وعند سحب LP يمكن حساب الرسوم المستحقة بناءً على السيولة المحتفظ بها.

Web3 مبتدئين السلسلة: النصائح الصغيرة التي تعلمتها من كود Uniswap لتطوير العقود

دمج البيانات على السلسلة وخارجها

ليس من الضروري الحصول على جميع المعلومات من السلسلة. على سبيل المثال، يمكن تخزين قائمة برك التداول ومعلومات البرك في قاعدة بيانات عادية، ومزامنتها بانتظام من السلسلة. يتم تنفيذ المعاملات الرئيسية على السلسلة، بينما يمكن الحصول على المعلومات غير الرئيسية بطرق أكثر كفاءة لتحسين الأداء والكفاءة.

تقسيم العقود وإعادة استخدام العقود القياسية

تحتوي المشاريع الكبيرة عادةً على عدة عقود تم نشرها فعليًا، حتى إذا تم نشر عقد واحد فقط، يمكن تقسيمه إلى عدة عقود للصيانة من خلال الوراثة. في الوقت نفسه، يمكن أن يؤدي استخدام العقود القياسية الموجودة ( مثل ERC721) إلى تحسين كفاءة التطوير وتبسيط الإدارة.

سلسلة المبتدئين في Web3: النصائح الصغيرة في تطوير العقود التي تعلمتها من شفرة Uniswap

الممارسة هي أفضل طريقة للتعلم. من خلال القيام بتطوير نسخة بسيطة من بورصة لامركزية، يمكنك فهم تنفيذ كود Uniswap بشكل أعمق، وستتعلم المزيد من النقاط العملية في المشاريع. آمل أن تكون هذه التجارب مفيدة في طريقك لتطوير العقود.

UNI5.48%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 7
  • مشاركة
تعليق
0/400
LiquidityOraclevip
· 08-02 23:11
دمج مقالة أخرى عن تداول الأرز البارد للمبتدئين
شاهد النسخة الأصليةرد0
WhaleWatchervip
· 08-02 19:29
من الصعب فهمه قليلاً، من يمكنه توضيح create2؟
شاهد النسخة الأصليةرد0
RetailTherapistvip
· 07-31 02:40
إرسال هذا أفضل من كتابة dex والقيام بخداع الناس لتحقيق الربح
شاهد النسخة الأصليةرد0
gas_guzzlervip
· 07-31 02:40
توقع العنوان هذه الحركة تضحك حتى الموت سانت ماري uniswap
شاهد النسخة الأصليةرد0
DeFiGraylingvip
· 07-31 02:35
عاجز عن الكلام ، إنه تدريب للمبتدئين في هذا النوع من الحفرة مرة أخرى ...
شاهد النسخة الأصليةرد0
DEXRobinHoodvip
· 07-31 02:35
قال أبو الكلاب DOGE إن هذا صحيح! الجلوس في قاع الزنزانة ليس حلمًا!
شاهد النسخة الأصليةرد0
NightAirdroppervip
· 07-31 02:34
تحدثنا طويلاً لكن القروض السريعة أفضل~
شاهد النسخة الأصليةرد0
  • تثبيت