Usé algunos servicios para escuchar un evento de mi contrato inteligente en Ethereum. Pero no puedo encontrar algún documento similar que cuando trabajo con FLow Chain. ¿Cómo puedo hacer eso?
Hay múltiples formas de hacer esto. Creo que lo más fácil es usar un servicio para esto. El que usamos en .find en este momento es https://graffle.io .
También puede crear uno propio con uno de los SDK. Kitty-items tiene un ejemplo de esto https://github.com/onflow/kitty-items/ en javascript.
Si prefiere ir, tengo un código de búsqueda de eventos en desbordamientohttps://github.com/bjartek/overflow/blob/main/overflow/event.go . Aquí hay un ejemplo de cómo se puede usar: https://github.com/bjartek/overflow/blob/main/overflow/event_integration_test.go#L13
¡Esta es una muy buena pregunta para una tarea común! El paquete @onflow/fcl le brinda un método útil events , que se puede usar para "suscribirse" a un evento específico. Puede consultar la descripción de los eventos en el sitio Flow Docs. O puede copiar/pegar el código a continuación y jugar con él:
import * as fcl from "@onflow/fcl"; // We need to point FCL to some access node. // We will use Mainnet REST endpoint for this, as the contract // we want to listen to is deployed there fcl.config({ "accessNode.api": "https://rest-mainnet.onflow.org", // we will set the poll rate for events to 3 seconds "fcl.eventPollRate": 3000 }); // FlowFees is the most active contract, since every transaction will // trigger "FeesDeducted" event, so it will be easier to see that our code // is working correctly const contractAddress = "f919ee77447b7497"; const contractName = "FlowFees"; const eventName = "FeesDeducted"; // Event name consist of 2 or 4 parts // 2 part event name have only system events // For deployed contract, event should be constructed from 4 parts // - "A" prefix, stands for "account" // - address where contract, holding definition of event is deployed // - contract name // - event name const event = `A.${contractAddress}.${contractName}.${eventName}`; console.log( `Listening for event "${eventName}" from "${contractName}" deployed on account 0x${contractAddress}` ); fcl.events(event).subscribe((eventData) => { console.log(eventData); });También puede probar y jugar con Codesandbox en funcionamiento Ejemplo