ข้ามไปที่เนื้อหาหลัก

EVM Contract Call Challenge

การตั้งชื่อมรดก

แพคเกจนี้ถูกเผยแพร่ครั้งแรกภายใต้ขอบเขต @plebbit เปลี่ยนชื่อเป็น @bitsocial/evm-contract-challenge แล้ว การอ้างอิงถึงชื่อเก่าอาจยังคงปรากฏในเอกสารหรือฐานรหัสเก่า

EVM Contract Call Challenge เป็นกลไกป้องกันสแปมที่ตรวจสอบเงื่อนไขออนไลน์ก่อนที่จะอนุญาตให้เผยแพร่ เดิมทีดึงมาจาก plebbit-js ในรูปแบบแพ็คเกจแบบสแตนด์อโลน ช่วยให้เจ้าของชุมชนกำหนดให้ผู้เขียนมีคุณสมบัติตรงตามเกณฑ์ที่กำหนดโดยสัญญาอัจฉริยะ เช่น ถือยอดโทเค็นขั้นต่ำจึงจะโพสต์ได้

ซอร์สโค้ด: github.com/bitsocialnet/evm-contract-call

ความต้องการ

  • Node.js >= 22
  • ESM เท่านั้น -- แพ็คเกจนี้ไม่ได้จัดส่ง CommonJS builds
  • การพึ่งพารันไทม์เพียร์: @plebbit/plebbit-js (ย้ายไปยัง @pkc/pkc-js)

การติดตั้ง

npm install @bitsocial/evm-contract-challenge

ตัวเลือกการกำหนดค่า

ตัวเลือกพิมพ์คำอธิบาย
chainTickerstringสายการสืบค้น (เช่น eth, matic, avax)
addressstringที่อยู่สัญญาอัจฉริยะที่จะโทร
abistringส่วนของ ABI สำหรับฟังก์ชันที่ถูกเรียก
conditionstringนิพจน์การเปรียบเทียบที่ประเมินกับมูลค่าส่งคืนสัญญา (เช่น > 1000)
errorstringข้อความแสดงข้อผิดพลาดที่แสดงแก่ผู้เขียนที่ไม่ตรงตามเงื่อนไข

ตัวอย่าง

เจ้าของชุมชนที่ต้องการจำกัดการโพสต์ไว้เฉพาะผู้เขียนที่ถือโทเค็น ERC-20 มากกว่า 1,000 รายการจะต้องกำหนดค่าความท้าทายด้วย:

  • chainTicker: "eth"
  • address: ที่อยู่สัญญาโทเค็น
  • abi: ABI สำหรับ balanceOf(address)
  • condition: "> 1000"
  • error: "You must hold more than 1,000 tokens to post in this community."

เมื่อผู้เขียนพยายามเผยแพร่ ความท้าทายจะเรียก balanceOf พร้อมที่อยู่ของผู้เขียน และตรวจสอบว่าค่าที่ส่งคืนตรงตามเงื่อนไขหรือไม่ หากเป็นเช่นนั้น การตีพิมพ์จะดำเนินต่อไป มิฉะนั้น ข้อความแสดงข้อผิดพลาดที่กำหนดค่าไว้จะถูกส่งกลับ

เมื่อใดควรใช้มัน

EVM Contract Call Challenge เหมาะสำหรับ:

  • ชุมชนที่มีรั้วรอบขอบชิดโทเค็น ที่จำกัดการโพสต์เฉพาะผู้ถือโทเค็น
  • การเข้าถึงแบบมีรั้วรอบขอบชิด NFT โดยจำเป็นต้องเป็นเจ้าของ NFT ที่เฉพาะเจาะจง
  • พื้นที่การกำกับดูแลของ DAO ซึ่งการเข้าร่วมจำกัดเฉพาะผู้ถือโทเค็นการกำกับดูแล

สำหรับชุมชนที่ไม่พึ่งพาข้อมูลประจำตัวแบบออนไลน์ โปรดพิจารณา Spam Blocker หรือ Voucher Challenge แทน