بناء منصة تداول NFT اللامركزية من الصفر: شرح تفصيلي للعقود الذكية والتنفيذ الأمامي

robot
إنشاء الملخص قيد التقدم

بناء منصة تداول NFT اللامركزية من الصفر

في هذه المقالة، سوف نستكشف كيفية إنشاء منصة تداول NFT اللامركزية القائمة على العقود الذكية. على عكس تداول رموز ERC-20 من خلال آلية صانع السوق التلقائي، فإن تداول NFT عادة ما يتبع نموذج دفتر الطلبات. سنقوم بتنفيذ وظيفة التداول اللامركزية لـ NFT من خلال كتابة عقود ذكية وصفحة واجهة أمامية بسيطة.

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

ميزات تداول NFT

NFT( الرموز غير القابلة للاستبدال) تتبع بروتوكول ERC-721، كل رمز فريد من نوعه. نظرًا لعدم قابلية استبدال NFT، لا يمكن تسعيرها مثل الرموز القابلة للاستبدال من خلال منحنى الأسعار. الطريقة السائدة حاليًا لتداول NFT هي استخدام نموذج دفتر الطلبات، مشابه لعرض السلع على رفوف السوبر ماركت.

توجد نمطين رئيسيين لتداول دفتر الطلبات:

  1. أمر التسعير: يحدد البائع السعر، ويمكن للمشتري الشراء إذا اعتبره مناسباً.
  2. طلب الشراء: يقوم المشتري بإصدار طلب شراء، وإذا اعتبر البائع أن السعر مناسب يمكنه البيع

سيركز هذا المقال على تنفيذ نموذج تسعير الطلب.

! سلسلة Web3 Newbie: تنفيذ NFT DEX من البداية

الوظائف الأساسية لمنصة NFT

يجب أن تحتوي منصة NFT الأساسية على الوظائف التالية:

  1. إضافة منتج: يسمح للبائع بتحديد سعر لإدراج NFT
  2. شراء السلع: يسمح للمشتري بشراء NFT حسب السعر المحدد
  3. استلام الرسوم: يتم استلام رسوم المعاملات بنسبة مئوية من سعر الصفقة

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

تنفيذ العقود الذكية

تحتاج العقود الذكية لدينا إلى تنفيذ الطرق الرئيسية التالية:

1. إدراج NFT

يستخدم البائع هذه الطريقة لإدراج NFT للبيع:

صلابه function listNFT(address nftAddress, uint256 tokenId, uint256 price) public { // تحقق من ملكية NFT // إضافة سجل الإدراج
// تفعيل حدث الإدراج }

2. شراء NFT

يستدعي المشتري هذه الطريقة لشراء NFT المدرجة:

السوليديتي وظيفة purchaseNFT(address nftAddress, uint256 tokenId) عامة مستحقة الدفع { // الحصول على معلومات عرض NFT // حساب وخصم الرسوم // نقل NFT إلى المشتري // تحويل إلى البائع // حدث شراء }

3. إلغاء الإدراج

يمكن للبائع إلغاء الـNFT الذي تم إدراجه:

صلابه وظيفة cancelListing(address nftAddress, uint256 tokenId) public { // التحقق من صلاحيات المتصل // ضع علامة حالة الإدراج على أنها غير صالحة // حدث إلغاء التشغيل }

4. رسوم السحب

يمكن لمالكي المنصة سحب الرسوم المتراكمة:

صلابه وظيفة withdrawFees() العامة فقطالمالك { // نقل رسوم المعاملة من العقد إلى العنوان المحدد }

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

تطوير الواجهة الأمامية

تتضمن الصفحة الأمامية بشكل أساسي الأجزاء التالية:

  1. ربط المحفظة: استخدام Ant Design Web3 لتنفيذ وظيفة ربط المحفظة

  2. صفحة Mint: تستخدم لصك NFT التجريبي

  3. صفحة المحفظة: تعرض NFT التي يمتلكها المستخدم، تدعم عمليات الإدراج والإزالة

  4. صفحة الشراء: تعرض جميع NFT المعروضة للبيع، تدعم عمليات الشراء

نستخدم Next.js لتطوير الواجهة الأمامية، ونقوم بنشرها على منصة Vercel.

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

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

وتجدر الإشارة إلى أن هذه المقالة مخصصة فقط للتعلم المرجعي ، وتحتاج منصات تداول NFT في بيئة الإنتاج الفعلية أيضا إلى مراعاة المزيد من الأمان وقابلية التوسع وعوامل أخرى.

! سلسلة Web3 Newbie: تنفيذ NFT DEX من البداية

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية

! سلسلة Web3 Newbie: تنفيذ NFT DEX من الصفر

شاهد النسخة الأصلية
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • أعجبني
  • 4
  • مشاركة
تعليق
0/400
faded_wojak.ethvip
· 07-11 21:31
فتح الطائرةing هذه الدورة ستأخذني للقمر
شاهد النسخة الأصليةرد0
TeaTimeTradervip
· 07-09 09:42
لعب ثم نتحدث، قد تخسر حتى السروال الداخلي.
شاهد النسخة الأصليةرد0
MetadataExplorervip
· 07-09 09:33
هذا ليس سوى نسخة مبسطة من نظام التشغيل
شاهد النسخة الأصليةرد0
just_here_for_vibesvip
· 07-09 09:26
التطوير سهل جداً أليس كذلك؟
شاهد النسخة الأصليةرد0
  • تثبيت