Skip to main content

ethbridge_events/
lib.rs

1#![allow(dead_code)]
2#![allow(unused_imports)]
3use ::ethbridge_bridge_events::*;
4use ::ethers::abi::AbiDecode;
5use ::ethers::contract::{AbiError, EthEvent};
6#[doc = r"[`EventCodec`] as a static reference trait object."]
7pub type DynEventCodec = &'static (dyn EventCodec + Sync);
8#[doc = r"Codec to deserialize Ethereum events."]
9pub trait EventCodec {
10    #[doc = r"ABI signature of the Ethereum event."]
11    fn event_signature(&self) -> ::std::borrow::Cow<'static, str>;
12    #[doc = r"The kind of event."]
13    fn kind(&self) -> EventKind;
14    #[doc = r"Decode an Ethereum event."]
15    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError>;
16}
17#[doc = "Event codec for [`TransferToChainFilter`]."]
18pub static TRANSFER_TO_CHAIN_CODEC: DynEventCodec =
19    &::std::marker::PhantomData::<TransferToChainFilter>;
20impl TryFrom<Events> for TransferToChainFilter {
21    type Error = ();
22    fn try_from(ev: Events) -> Result<Self, ()> {
23        match ev {
24            Events::Bridge(BridgeEvents::TransferToChainFilter(ev)) => Ok(ev),
25            _ => Err(()),
26        }
27    }
28}
29impl EventCodec for ::std::marker::PhantomData<TransferToChainFilter> {
30    fn event_signature(&self) -> ::std::borrow::Cow<'static, str> {
31        TransferToChainFilter::abi_signature()
32    }
33    fn kind(&self) -> EventKind {
34        EventKind::Bridge
35    }
36    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError> {
37        let event = TransferToChainFilter::decode_log(log)?;
38        Ok(Events::Bridge(BridgeEvents::TransferToChainFilter(event)))
39    }
40}
41#[doc = "Event codec for [`TransferToErcFilter`]."]
42pub static TRANSFER_TO_ERC_CODEC: DynEventCodec =
43    &::std::marker::PhantomData::<TransferToErcFilter>;
44impl TryFrom<Events> for TransferToErcFilter {
45    type Error = ();
46    fn try_from(ev: Events) -> Result<Self, ()> {
47        match ev {
48            Events::Bridge(BridgeEvents::TransferToErcFilter(ev)) => Ok(ev),
49            _ => Err(()),
50        }
51    }
52}
53impl EventCodec for ::std::marker::PhantomData<TransferToErcFilter> {
54    fn event_signature(&self) -> ::std::borrow::Cow<'static, str> {
55        TransferToErcFilter::abi_signature()
56    }
57    fn kind(&self) -> EventKind {
58        EventKind::Bridge
59    }
60    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError> {
61        let event = TransferToErcFilter::decode_log(log)?;
62        Ok(Events::Bridge(BridgeEvents::TransferToErcFilter(event)))
63    }
64}
65#[doc = "Event codec for [`ValidatorSetUpdateFilter`]."]
66pub static VALIDATOR_SET_UPDATE_CODEC: DynEventCodec =
67    &::std::marker::PhantomData::<ValidatorSetUpdateFilter>;
68impl TryFrom<Events> for ValidatorSetUpdateFilter {
69    type Error = ();
70    fn try_from(ev: Events) -> Result<Self, ()> {
71        match ev {
72            Events::Bridge(BridgeEvents::ValidatorSetUpdateFilter(ev)) => Ok(ev),
73            _ => Err(()),
74        }
75    }
76}
77impl EventCodec for ::std::marker::PhantomData<ValidatorSetUpdateFilter> {
78    fn event_signature(&self) -> ::std::borrow::Cow<'static, str> {
79        ValidatorSetUpdateFilter::abi_signature()
80    }
81    fn kind(&self) -> EventKind {
82        EventKind::Bridge
83    }
84    fn decode(&self, log: &::ethers::abi::RawLog) -> Result<Events, AbiError> {
85        let event = ValidatorSetUpdateFilter::decode_log(log)?;
86        Ok(Events::Bridge(BridgeEvents::ValidatorSetUpdateFilter(
87            event,
88        )))
89    }
90}
91#[doc = r"Return all Ethereum event codecs."]
92pub fn event_codecs() -> [DynEventCodec; 3usize] {
93    [
94        TRANSFER_TO_CHAIN_CODEC,
95        TRANSFER_TO_ERC_CODEC,
96        VALIDATOR_SET_UPDATE_CODEC,
97    ]
98}
99#[doc = r"The Ethereum events generated by `ethbridge-rs`."]
100#[derive(Debug)]
101pub enum Events {
102    #[doc = r" Bridge events."]
103    Bridge(BridgeEvents),
104}
105#[doc = r"The kinds of Ethereum events generated by `ethbridge-rs`."]
106#[derive(Debug)]
107pub enum EventKind {
108    #[doc = r" Bridge events."]
109    Bridge,
110}