في هذه المقالة، سوف نستكشف كيفية إنشاء منصة تداول NFT اللامركزية القائمة على العقود الذكية. على عكس تداول رموز ERC-20 من خلال آلية صانع السوق التلقائي، فإن تداول NFT عادة ما يتبع نموذج دفتر الطلبات. سنقوم بتنفيذ وظيفة التداول اللامركزية لـ NFT من خلال كتابة عقود ذكية وصفحة واجهة أمامية بسيطة.
NFT( الرموز غير القابلة للاستبدال) تتبع بروتوكول ERC-721، كل رمز فريد من نوعه. نظرًا لعدم قابلية استبدال NFT، لا يمكن تسعيرها مثل الرموز القابلة للاستبدال من خلال منحنى الأسعار. الطريقة السائدة حاليًا لتداول NFT هي استخدام نموذج دفتر الطلبات، مشابه لعرض السلع على رفوف السوبر ماركت.
توجد نمطين رئيسيين لتداول دفتر الطلبات:
أمر التسعير: يحدد البائع السعر، ويمكن للمشتري الشراء إذا اعتبره مناسباً.
طلب الشراء: يقوم المشتري بإصدار طلب شراء، وإذا اعتبر البائع أن السعر مناسب يمكنه البيع
تحتاج العقود الذكية لدينا إلى تنفيذ الطرق الرئيسية التالية:
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() العامة فقطالمالك {
// نقل رسوم المعاملة من العقد إلى العنوان المحدد
}
من خلال الخطوات السابقة، قمنا بإنشاء منصة NFT لل交易 اللامركزية تحتوي على وظائف أساسية. يعرض هذا العرض التوضيحي البسيط المنطق الأساسي ل交易 NFT، مما يمهد الطريق لتطوير نظام交易 NFT أكثر تعقيدًا.
وتجدر الإشارة إلى أن هذه المقالة مخصصة فقط للتعلم المرجعي ، وتحتاج منصات تداول NFT في بيئة الإنتاج الفعلية أيضا إلى مراعاة المزيد من الأمان وقابلية التوسع وعوامل أخرى.
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.
بناء منصة تداول NFT اللامركزية من الصفر: شرح تفصيلي للعقود الذكية والتنفيذ الأمامي
بناء منصة تداول NFT اللامركزية من الصفر
في هذه المقالة، سوف نستكشف كيفية إنشاء منصة تداول NFT اللامركزية القائمة على العقود الذكية. على عكس تداول رموز ERC-20 من خلال آلية صانع السوق التلقائي، فإن تداول NFT عادة ما يتبع نموذج دفتر الطلبات. سنقوم بتنفيذ وظيفة التداول اللامركزية لـ NFT من خلال كتابة عقود ذكية وصفحة واجهة أمامية بسيطة.
! سلسلة Web3 Starter: تنفيذ NFT DEX من البداية
ميزات تداول NFT
NFT( الرموز غير القابلة للاستبدال) تتبع بروتوكول ERC-721، كل رمز فريد من نوعه. نظرًا لعدم قابلية استبدال NFT، لا يمكن تسعيرها مثل الرموز القابلة للاستبدال من خلال منحنى الأسعار. الطريقة السائدة حاليًا لتداول NFT هي استخدام نموذج دفتر الطلبات، مشابه لعرض السلع على رفوف السوبر ماركت.
توجد نمطين رئيسيين لتداول دفتر الطلبات:
سيركز هذا المقال على تنفيذ نموذج تسعير الطلب.
! سلسلة Web3 Newbie: تنفيذ NFT DEX من البداية
الوظائف الأساسية لمنصة NFT
يجب أن تحتوي منصة NFT الأساسية على الوظائف التالية:
! سلسلة 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 من البداية
تطوير الواجهة الأمامية
تتضمن الصفحة الأمامية بشكل أساسي الأجزاء التالية:
ربط المحفظة: استخدام Ant Design Web3 لتنفيذ وظيفة ربط المحفظة
صفحة Mint: تستخدم لصك NFT التجريبي
صفحة المحفظة: تعرض NFT التي يمتلكها المستخدم، تدعم عمليات الإدراج والإزالة
صفحة الشراء: تعرض جميع 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 من الصفر