Developers
Blueprint Event Listeners
EVM Contract Listeners

EVM Contract Listeners

EVM Contract Listeners are a powerful feature in the Gadget SDK that allow your blueprint to react to events emitted by smart contracts on EVM-compatible chains. These listeners use the alloy crate, which provides a robust and efficient way to interact with EVM chains.

Overview

EVM Contract Listeners enable your blueprint to:

  1. Monitor specific smart contracts for events
  2. React to these events in real-time
  3. Trigger custom logic based on the event data

EvmContractEventListener

The EvmContractEventListener is a type that listens to the Ethereum Virtual Machine (EVM) for events.

Like the TangleEventListener, the EvmContractEventListener is already implemented and ready to use. Simply register it in the job macro, and your application will automatically work with the EVM.

/// Returns x^2 saturating to [`u64::MAX`] if overflow occurs.
#[job(
    id = 0,
    params(x),
    result(_),
    event_listener(EvmContractEventListener(
        instance = IncredibleSquaringTaskManager,
        event = IncredibleSquaringTaskManager::NewTaskCreated,
        event_converter = convert_event_to_inputs,
        callback = IncredibleSquaringTaskManager::IncredibleSquaringTaskManagerCalls::respondToTask
    )),
)]
pub fn xsquare(
    x: u64,
) -> Result<u64, Infallible> {
    Ok(x.saturating_pow(2u32))
}