Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Log Trigger: Workflows Basados en Eventos

El concepto nuevo de hoy: Log Triggers.

Estos permiten que tu workflow reaccione a eventos on-chain automáticamente.

Familiarízate con la capacidad

El EVM Log Trigger se activa cuando un smart contract emite un evento específico. Creas un Log Trigger llamando a EVMClient.logTrigger() con una configuración que especifica qué direcciones de contrato y topics de eventos escuchar.

Esto es poderoso porque:

  • Reactivo: Tu workflow se ejecuta solo cuando algo sucede on-chain
  • Eficiente: No necesitas hacer polling o verificar periódicamente
  • Preciso: Filtra por dirección de contrato, firma del evento y topics

Entendiendo el código del Log trigger

import { cre, getNetwork } from "@chainlink/cre-sdk";
import { keccak256, toHex } from "viem";

// Get the network
const network = getNetwork({
  chainFamily: "evm",
  chainSelectorName: "ethereum-testnet-sepolia",
  isTestnet: true,
});

const evmClient = new cre.capabilities.EVMClient(network.chainSelector.selector);

// Compute the event signature hash
const eventHash = keccak256(toHex("Transfer(address,address,uint256)"));

// Create the trigger
const trigger = evmClient.logTrigger({
  addresses: ["0x..."], // Contract addresses to watch
  topics: [{ values: [eventHash] }], // Event signatures to filter
  confidence: "CONFIDENCE_LEVEL_FINALIZED", // Wait for finality
});

Configuración

El método logTrigger() acepta un objeto de configuración:

CampoTipoDescripción
addressesstring[]Direcciones de contratos a monitorear (al menos una requerida)
topicsTopicValues[]Opcional. Filtrar por firma del evento y parámetros indexados
confidencestringNivel de confirmación de bloque: CONFIDENCE_LEVEL_LATEST, CONFIDENCE_LEVEL_SAFE (predeterminado), o CONFIDENCE_LEVEL_FINALIZED

Log Trigger vs CRON Trigger

PatrónLog TriggerCRON Trigger
CuándoEvento on-chain emitidoHorario (cada hora, etc.)
TipoReactivoProactivo
Caso de uso“Cuando suceda X, hacer Y”“Verificar cada hora si hay X”
EjemploLiquidación solicitada -> LiquidarCada hora -> Verificar todos los mercados

Entendiendo el Payload EVMLog

Cuando CRE activa el callback de logTrigger, proporciona:

PropiedadTipoDescripción
topicsUint8Array[]Topics del evento (parámetros indexados)
dataUint8ArrayDatos no indexados del evento
addressUint8ArrayDirección del contrato que emitió
blockNumberbigintBloque donde ocurrió el evento
txHashUint8ArrayHash de la transacción