Derive Macro ethers_contract::EthEvent

source ·
#[derive(EthEvent)]
{
    // Attributes available to this derive:
    #[ethevent]
}
Available on crate feature abigen only.
Expand description

Derives the EthEvent and Tokenizeable trait for the labeled type.

Additional arguments can be specified using the #[ethevent(...)] attribute:

For the struct:

  • name, name = "...": Overrides the generated EthEvent name, default is the struct’s name.
  • signature, signature = "...": The signature as hex string to override the event’s signature.
  • abi, abi = "...": The ABI signature for the event this event’s data corresponds to. The abi should be solidity event definition or a tuple of the event’s types in case the event has non elementary (other EthAbiType) types as members
  • anonymous: A flag to mark this as an anonymous event

For fields:

  • indexed: flag to mark a field as an indexed event input
  • name: override the name of an indexed event input, default is the rust field name

Example

use ethers_contract::EthCall;
use ethers_core::types::Address;

#[derive(Debug, EthAbiType)]
struct Inner {
    inner: Address,
    msg: String,
}

#[derive(Debug, EthEvent)]
#[ethevent(abi = "ValueChangedEvent((address,string),string)")]
struct ValueChangedEvent {
    #[ethevent(indexed, name = "_target")]
    target: Address,
    msg: String,
    inner: Inner,
}