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
Параметры конфигурации
| Вариант | Тип | Описание |
|---|---|---|
chainTicker | string | Цепочка для запроса (например, eth, matic, avax). |
address | string | Адрес смарт-контракта для вызова. |
abi | string | Фрагмент ABI для вызываемой функции. |
condition | string | Выражение сравнения, вычисляемое по возвращаемому значению контракта (например, > 1000). |
error | string | Сообщение об ошибке, отображаемое авторам, не соответствующим условию. |
Пример
Владелец сообщества, который хочет ограничить публикацию публикаций авторами, имеющими более 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.