Перейти к основному содержанию

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.
  • Зависимость однорангового узла во время выполнения: @plebbit/plebbit-js (переход на @pkc/pkc-js)

Установка

npm install @bitsocial/evm-contract-challenge

Параметры конфигурации

ВариантТипОписание
chainTickerstringЦепочка для запроса (например, eth, matic, avax).
addressstringАдрес смарт-контракта для вызова.
abistringФрагмент ABI для вызываемой функции.
conditionstringВыражение сравнения, вычисляемое по возвращаемому значению контракта (например, > 1000).
errorstringСообщение об ошибке, отображаемое авторам, не соответствующим условию.

Пример

Владелец сообщества, который хочет ограничить публикацию публикаций авторами, имеющими более 1000 определенных токенов ERC-20, может настроить задачу следующим образом:

  • 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.