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
ตัวเลือกการกำหนดค่า
| ตัวเลือก | พิมพ์ | คำอธิบาย |
|---|---|---|
chainTicker | string | สายการสืบค้น (เช่น eth, matic, avax) |
address | string | ที่อยู่สัญญาอัจฉริยะที่จะโทร |
abi | string | ส่วนของ ABI สำหรับฟังก์ชันที่ถูกเรียก |
condition | string | นิพจน์การเปรียบเทียบที่ประเมินกับมูลค่าส่งคืนสัญญา (เช่น > 1000) |
error | string | ข้อความแสดงข้อผิดพลาดที่แสดงแก่ผู้เขียนที่ไม่ตรงตามเงื่อนไข |
ตัวอย่าง
เจ้าของชุมชนที่ต้องการจำกัดการโพสต์ไว้เฉพาะผู้เขียนที่ถือโทเค็น 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 แทน