ethbridge-events 0.24.1

Namada Ethereum bridge Rust compatible types
Documentation
#![allow(dead_code)]
#![allow(unused_imports)]
use ::ethbridge_bridge_events::*;
use ::ethers::abi::AbiDecode;
use ::ethers::contract::{AbiError, EthEvent};
#[doc = r"[`EventCodec`] as a static reference trait object."]
pub type DynEventCodec = &'static (dyn EventCodec + Sync);
#[doc = r"Codec to deserialize Ethereum events."]
pub trait EventCodec {
    #[doc = r"ABI signature of the Ethereum event."]
    fn event_signature(&self) -> ::std::borrow::Cow<'static, str>;
    #[doc = r"The kind of event."]
    fn kind(&self) -> EventKind;
    #[doc = r"Decode an Ethereum event."]
    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError>;
}
#[doc = "Event codec for [`TransferToChainFilter`]."]
pub static TRANSFER_TO_CHAIN_CODEC: DynEventCodec =
    &::std::marker::PhantomData::<TransferToChainFilter>;
impl TryFrom<Events> for TransferToChainFilter {
    type Error = ();
    fn try_from(ev: Events) -> Result<Self, ()> {
        match ev {
            Events::Bridge(BridgeEvents::TransferToChainFilter(ev)) => Ok(ev),
            _ => Err(()),
        }
    }
}
impl EventCodec for ::std::marker::PhantomData<TransferToChainFilter> {
    fn event_signature(&self) -> ::std::borrow::Cow<'static, str> {
        TransferToChainFilter::abi_signature()
    }
    fn kind(&self) -> EventKind {
        EventKind::Bridge
    }
    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError> {
        let event = TransferToChainFilter::decode_log(log)?;
        Ok(Events::Bridge(BridgeEvents::TransferToChainFilter(event)))
    }
}
#[doc = "Event codec for [`TransferToErcFilter`]."]
pub static TRANSFER_TO_ERC_CODEC: DynEventCodec =
    &::std::marker::PhantomData::<TransferToErcFilter>;
impl TryFrom<Events> for TransferToErcFilter {
    type Error = ();
    fn try_from(ev: Events) -> Result<Self, ()> {
        match ev {
            Events::Bridge(BridgeEvents::TransferToErcFilter(ev)) => Ok(ev),
            _ => Err(()),
        }
    }
}
impl EventCodec for ::std::marker::PhantomData<TransferToErcFilter> {
    fn event_signature(&self) -> ::std::borrow::Cow<'static, str> {
        TransferToErcFilter::abi_signature()
    }
    fn kind(&self) -> EventKind {
        EventKind::Bridge
    }
    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError> {
        let event = TransferToErcFilter::decode_log(log)?;
        Ok(Events::Bridge(BridgeEvents::TransferToErcFilter(event)))
    }
}
#[doc = "Event codec for [`ValidatorSetUpdateFilter`]."]
pub static VALIDATOR_SET_UPDATE_CODEC: DynEventCodec =
    &::std::marker::PhantomData::<ValidatorSetUpdateFilter>;
impl TryFrom<Events> for ValidatorSetUpdateFilter {
    type Error = ();
    fn try_from(ev: Events) -> Result<Self, ()> {
        match ev {
            Events::Bridge(BridgeEvents::ValidatorSetUpdateFilter(ev)) => Ok(ev),
            _ => Err(()),
        }
    }
}
impl EventCodec for ::std::marker::PhantomData<ValidatorSetUpdateFilter> {
    fn event_signature(&self) -> ::std::borrow::Cow<'static, str> {
        ValidatorSetUpdateFilter::abi_signature()
    }
    fn kind(&self) -> EventKind {
        EventKind::Bridge
    }
    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError> {
        let event = ValidatorSetUpdateFilter::decode_log(log)?;
        Ok(Events::Bridge(BridgeEvents::ValidatorSetUpdateFilter(
            event,
        )))
    }
}
#[doc = r"Return all Ethereum event codecs."]
pub fn event_codecs() -> [DynEventCodec; 3usize] {
    [
        TRANSFER_TO_CHAIN_CODEC,
        TRANSFER_TO_ERC_CODEC,
        VALIDATOR_SET_UPDATE_CODEC,
    ]
}
#[doc = r"The Ethereum events generated by `ethbridge-rs`."]
#[derive(Debug)]
pub enum Events {
    #[doc = r" Bridge events."]
    Bridge(BridgeEvents),
}
#[doc = r"The kinds of Ethereum events generated by `ethbridge-rs`."]
#[derive(Debug)]
pub enum EventKind {
    #[doc = r" Bridge events."]
    Bridge,
}