Przejdź do głównej zawartości

Wyzwanie wywołania kontraktu EVM

EVM Contract Call Challenge to mechanizm antyspamowy, który weryfikuje warunki w łańcuchu przed zezwoleniem na publikację. Dzięki temu właściciele społeczności mogą wymagać od autorów spełnienia kryteriów określonych w inteligentnych kontraktach – na przykład posiadania minimalnego salda tokenów – aby móc publikować.

Kod źródłowy: github.com/bitsocialnet/evm-contract-call

Wymagania

  • Node.js >= 22
  • Tylko ESM — ten pakiet nie zawiera kompilacji CommonJS.

Instalacja

npm install @bitsocial/evm-contract-challenge

Opcje konfiguracji

OpcjaWpiszOpis
chainTickerstringŁańcuch do zapytania (np. eth, matic, avax).
addressstringAdres inteligentnej umowy, pod który należy zadzwonić.
abistringFragment ABI wywoływanej funkcji.
conditionstringWyrażenie porównawcze oceniane na podstawie wartości zwracanej kontraktu (np. > 1000).
errorstringKomunikat o błędzie wyświetlany autorom, którzy nie spełniają warunku.

Przykład

Właściciel społeczności, który chce ograniczyć publikowanie do autorów posiadających ponad 1000 danego tokena ERC-20, mógłby skonfigurować wyzwanie w następujący sposób:

  • chainTicker: "eth"
  • address: adres kontraktu tokena
  • abi: ABI dla balanceOf(address)
  • condition: "> 1000"
  • error: "You must hold more than 1,000 tokens to post in this community."

Gdy autor próbuje opublikować, wyzwanie wywołuje balanceOf z adresem autora i sprawdza, czy zwrócona wartość spełnia warunek. Jeśli tak, publikacja będzie kontynuowana; w przeciwnym razie zwracany jest skonfigurowany komunikat o błędzie.

Kiedy go używać

Wyzwanie wywołania kontraktu EVM jest idealne dla:

  • Społeczności z bramką tokenową, które ograniczają publikowanie do posiadaczy tokenów.
  • Dostęp bramkowany NFT, gdzie wymagane jest posiadanie określonego NFT.
  • Przestrzenie zarządzania DAO, w których udział jest ograniczony do posiadaczy tokenów zarządzania.

W przypadku społeczności, które nie polegają na tożsamości w łańcuchu, rozważ zamiast tego opcję Spam Blocker lub Voucher Challenge.