Saltar al contenido principal

Desafío de llamada de contrato EVM

EVM Contract Call Challenge es un mecanismo antispam que verifica las condiciones en la cadena antes de permitir una publicación. Permite a los propietarios de comunidades exigir a los autores que cumplan con criterios definidos por contratos inteligentes (por ejemplo, mantener un saldo mínimo de tokens) para poder publicar.

Código fuente: github.com/bitsocialnet/evm-contract-call

Requisitos

  • Nodo.js >= 22
  • Solo ESM: este paquete no incluye compilaciones de CommonJS.

Instalación

npm install @bitsocial/evm-contract-challenge

Opciones de configuración

OpciónTipoDescripción
chainTickerstringLa cadena a consultar (por ejemplo, eth, matic, avax).
addressstringLa dirección del contrato inteligente para llamar.
abistringEl fragmento ABI de la función que se llama.
conditionstringUna expresión de comparación evaluada con respecto al valor de retorno del contrato (por ejemplo, > 1000).
errorstringEl mensaje de error se muestra a los autores que no cumplen la condición.

Ejemplo

Un propietario de comunidad que quiera restringir la publicación a autores que posean más de 1000 tokens ERC-20 en particular configuraría el desafío con:

  • chainTicker: "eth"
  • address: la dirección del contrato del token
  • abi: el ABI para balanceOf(address)
  • condition: "> 1000"
  • error: "You must hold more than 1,000 tokens to post in this community."

Cuando un autor intenta publicar, el desafío llama a balanceOf con la dirección del autor y verifica si el valor devuelto cumple la condición. Si es así, procede la publicación; de lo contrario, se devuelve el mensaje de error configurado.

Cuando usarlo

El desafío de llamada de contrato EVM es ideal para:

  • Comunidades controladas por tokens que restringen la publicación a los poseedores de tokens.
  • Acceso controlado por NFT donde se requiere la propiedad de un NFT específico.
  • Espacios de gobernanza DAO donde la participación se limita a los poseedores de tokens de gobernanza.

Para las comunidades que no dependen de la identidad en cadena, considere Bloqueador de spam o Desafío de vales en su lugar.