إنتقل إلى المحتوى الرئيسي

تحدي استدعاء عقد EVM

يعد تحدي EVM Contract Call Challenge عبارة عن آلية لمكافحة البريد العشوائي تتحقق من الشروط الموجودة على السلسلة قبل السماح بالنشر. فهو يتيح لأصحاب المجتمع مطالبة المؤلفين باستيفاء المعايير المحددة في العقد الذكي - على سبيل المثال، الاحتفاظ بحد أدنى من رصيد الرمز المميز - من أجل النشر.

كود المصدر: github.com/bitsocialnet/evm-contract-call

المتطلبات

  • Node.js >= 22
  • ESM فقط - لا تقوم هذه الحزمة بشحن إصدارات CommonJS.

التثبيت

npm install @bitsocial/evm-contract-challenge

خيارات التكوين

الخياراكتبالوصف
chainTickerstringالسلسلة المطلوب الاستعلام عنها (على سبيل المثال، eth، matic، avax).
addressstringعنوان العقد الذكي للاتصال به.
abistringجزء ABI للوظيفة التي يتم استدعاؤها.
conditionstringتعبير مقارنة يتم تقييمه مقابل قيمة إرجاع العقد (على سبيل المثال، > 1000).
errorstringتظهر رسالة الخطأ للمؤلفين الذين لا يستوفون الشرط.

مثال

مالك المجتمع الذي يريد قصر النشر على المؤلفين الذين يمتلكون أكثر من 1000 من رمز ERC-20 معين، سيقوم بتكوين التحدي من خلال:

  • chainTicker: "eth"
  • address: عنوان عقد الرمز المميز
  • abi: واجهة برمجة التطبيقات لـ balanceOf(address)
  • condition: "> 1000"
  • error: "You must hold more than 1,000 tokens to post in this community."

عندما يحاول مؤلف النشر، يستدعي التحدي balanceOf بعنوان المؤلف ويتحقق مما إذا كانت القيمة التي تم إرجاعها تفي بالشرط. إذا حدث ذلك، يستمر النشر؛ وإلا، يتم إرجاع رسالة الخطأ المكونة.

متى تستخدمه

يعتبر تحدي EVM Contract Call مثاليًا لما يلي:

  • مجتمعات ذات بوابات رمزية تقيد النشر على حاملي الرموز المميزة.
  • الوصول عبر بوابات NFT حيث تكون ملكية NFT محددة مطلوبة.
  • مساحات حوكمة DAO حيث تقتصر المشاركة على حاملي الرموز المميزة للحوكمة.

بالنسبة للمجتمعات التي لا تعتمد على الهوية على السلسلة، فكر في مانع البريد العشوائي أو تحدي القسيمة بدلاً من ذلك.