openzeppelin_rs/contracts/
IAMB.rs

1pub use iamb::*;
2/// This module was auto-generated with ethers-rs Abigen.
3/// More information at: <https://github.com/gakonst/ethers-rs>
4#[allow(
5    clippy::enum_variant_names,
6    clippy::too_many_arguments,
7    clippy::upper_case_acronyms,
8    clippy::type_complexity,
9    dead_code,
10    non_camel_case_types,
11)]
12pub mod iamb {
13    #[rustfmt::skip]
14    const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"AffirmationCompleted\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"RelayedMessage\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"bytes\",\"name\":\"encodedData\",\"type\":\"bytes\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UserRequestForAffirmation\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"bytes\",\"name\":\"encodedData\",\"type\":\"bytes\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"UserRequestForSignature\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"destinationChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_messageId\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"failedMessageDataHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_messageId\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"failedMessageReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_messageId\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"failedMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"maxGasPerTx\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_messageId\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"messageCallStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"messageId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"messageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"messageSourceChainId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"requireToConfirmMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"_gas\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"requireToPassMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"sourceChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"transactionHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static IAMB_ABI: ::ethers_contract::Lazy<::ethers_core::abi::Abi> = ::ethers_contract::Lazy::new(||
17    ::ethers_core::utils::__serde_json::from_str(__ABI).expect("ABI is always valid"));
18    pub struct IAMB<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for IAMB<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for IAMB<M> {
25        type Target = ::ethers_contract::Contract<M>;
26        fn deref(&self) -> &Self::Target {
27            &self.0
28        }
29    }
30    impl<M> ::core::ops::DerefMut for IAMB<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for IAMB<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(IAMB)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> IAMB<M> {
41        /// Creates a new contract instance with the specified `ethers` client at
42        /// `address`. The contract derefs to a `ethers::Contract` object.
43        pub fn new<T: Into<::ethers_core::types::Address>>(
44            address: T,
45            client: ::std::sync::Arc<M>,
46        ) -> Self {
47            Self(
48                ::ethers_contract::Contract::new(
49                    address.into(),
50                    IAMB_ABI.clone(),
51                    client,
52                ),
53            )
54        }
55        ///Calls the contract's `destinationChainId` (0xb0750611) function
56        pub fn destination_chain_id(
57            &self,
58        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
59            self.0
60                .method_hash([176, 117, 6, 17], ())
61                .expect("method not found (this should never happen)")
62        }
63        ///Calls the contract's `failedMessageDataHash` (0xe37c3289) function
64        pub fn failed_message_data_hash(
65            &self,
66            message_id: [u8; 32],
67        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
68            self.0
69                .method_hash([227, 124, 50, 137], message_id)
70                .expect("method not found (this should never happen)")
71        }
72        ///Calls the contract's `failedMessageReceiver` (0x3f9a8e7e) function
73        pub fn failed_message_receiver(
74            &self,
75            message_id: [u8; 32],
76        ) -> ::ethers_contract::builders::ContractCall<
77            M,
78            ::ethers_core::types::Address,
79        > {
80            self.0
81                .method_hash([63, 154, 142, 126], message_id)
82                .expect("method not found (this should never happen)")
83        }
84        ///Calls the contract's `failedMessageSender` (0x4a610b04) function
85        pub fn failed_message_sender(
86            &self,
87            message_id: [u8; 32],
88        ) -> ::ethers_contract::builders::ContractCall<
89            M,
90            ::ethers_core::types::Address,
91        > {
92            self.0
93                .method_hash([74, 97, 11, 4], message_id)
94                .expect("method not found (this should never happen)")
95        }
96        ///Calls the contract's `maxGasPerTx` (0xe5789d03) function
97        pub fn max_gas_per_tx(
98            &self,
99        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
100            self.0
101                .method_hash([229, 120, 157, 3], ())
102                .expect("method not found (this should never happen)")
103        }
104        ///Calls the contract's `messageCallStatus` (0xcb08a10c) function
105        pub fn message_call_status(
106            &self,
107            message_id: [u8; 32],
108        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
109            self.0
110                .method_hash([203, 8, 161, 12], message_id)
111                .expect("method not found (this should never happen)")
112        }
113        ///Calls the contract's `messageId` (0x669f618b) function
114        pub fn message_id(
115            &self,
116        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
117            self.0
118                .method_hash([102, 159, 97, 139], ())
119                .expect("method not found (this should never happen)")
120        }
121        ///Calls the contract's `messageSender` (0xd67bdd25) function
122        pub fn message_sender(
123            &self,
124        ) -> ::ethers_contract::builders::ContractCall<
125            M,
126            ::ethers_core::types::Address,
127        > {
128            self.0
129                .method_hash([214, 123, 221, 37], ())
130                .expect("method not found (this should never happen)")
131        }
132        ///Calls the contract's `messageSourceChainId` (0x9e307dff) function
133        pub fn message_source_chain_id(
134            &self,
135        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
136            self.0
137                .method_hash([158, 48, 125, 255], ())
138                .expect("method not found (this should never happen)")
139        }
140        ///Calls the contract's `requireToConfirmMessage` (0x94643f71) function
141        pub fn require_to_confirm_message(
142            &self,
143            contract: ::ethers_core::types::Address,
144            data: ::ethers_core::types::Bytes,
145            gas: ::ethers_core::types::U256,
146        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
147            self.0
148                .method_hash([148, 100, 63, 113], (contract, data, gas))
149                .expect("method not found (this should never happen)")
150        }
151        ///Calls the contract's `requireToPassMessage` (0xdc8601b3) function
152        pub fn require_to_pass_message(
153            &self,
154            contract: ::ethers_core::types::Address,
155            data: ::ethers_core::types::Bytes,
156            gas: ::ethers_core::types::U256,
157        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
158            self.0
159                .method_hash([220, 134, 1, 179], (contract, data, gas))
160                .expect("method not found (this should never happen)")
161        }
162        ///Calls the contract's `sourceChainId` (0x1544298e) function
163        pub fn source_chain_id(
164            &self,
165        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
166            self.0
167                .method_hash([21, 68, 41, 142], ())
168                .expect("method not found (this should never happen)")
169        }
170        ///Calls the contract's `transactionHash` (0x0ac1c313) function
171        pub fn transaction_hash(
172            &self,
173        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
174            self.0
175                .method_hash([10, 193, 195, 19], ())
176                .expect("method not found (this should never happen)")
177        }
178        ///Gets the contract's `AffirmationCompleted` event
179        pub fn affirmation_completed_filter(
180            &self,
181        ) -> ::ethers_contract::builders::Event<
182            ::std::sync::Arc<M>,
183            M,
184            AffirmationCompletedFilter,
185        > {
186            self.0.event()
187        }
188        ///Gets the contract's `RelayedMessage` event
189        pub fn relayed_message_filter(
190            &self,
191        ) -> ::ethers_contract::builders::Event<
192            ::std::sync::Arc<M>,
193            M,
194            RelayedMessageFilter,
195        > {
196            self.0.event()
197        }
198        ///Gets the contract's `UserRequestForAffirmation` event
199        pub fn user_request_for_affirmation_filter(
200            &self,
201        ) -> ::ethers_contract::builders::Event<
202            ::std::sync::Arc<M>,
203            M,
204            UserRequestForAffirmationFilter,
205        > {
206            self.0.event()
207        }
208        ///Gets the contract's `UserRequestForSignature` event
209        pub fn user_request_for_signature_filter(
210            &self,
211        ) -> ::ethers_contract::builders::Event<
212            ::std::sync::Arc<M>,
213            M,
214            UserRequestForSignatureFilter,
215        > {
216            self.0.event()
217        }
218        /// Returns an `Event` builder for all the events of this contract.
219        pub fn events(
220            &self,
221        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, IAMBEvents> {
222            self.0.event_with_filter(::core::default::Default::default())
223        }
224    }
225    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
226    for IAMB<M> {
227        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
228            Self::new(contract.address(), contract.client())
229        }
230    }
231    #[derive(
232        Clone,
233        ::ethers_contract::EthEvent,
234        ::ethers_contract::EthDisplay,
235        Default,
236        Debug,
237        PartialEq,
238        Eq,
239        Hash
240    )]
241    #[ethevent(
242        name = "AffirmationCompleted",
243        abi = "AffirmationCompleted(address,address,bytes32,bool)"
244    )]
245    pub struct AffirmationCompletedFilter {
246        #[ethevent(indexed)]
247        pub sender: ::ethers_core::types::Address,
248        #[ethevent(indexed)]
249        pub executor: ::ethers_core::types::Address,
250        #[ethevent(indexed)]
251        pub message_id: [u8; 32],
252        pub status: bool,
253    }
254    #[derive(
255        Clone,
256        ::ethers_contract::EthEvent,
257        ::ethers_contract::EthDisplay,
258        Default,
259        Debug,
260        PartialEq,
261        Eq,
262        Hash
263    )]
264    #[ethevent(
265        name = "RelayedMessage",
266        abi = "RelayedMessage(address,address,bytes32,bool)"
267    )]
268    pub struct RelayedMessageFilter {
269        #[ethevent(indexed)]
270        pub sender: ::ethers_core::types::Address,
271        #[ethevent(indexed)]
272        pub executor: ::ethers_core::types::Address,
273        #[ethevent(indexed)]
274        pub message_id: [u8; 32],
275        pub status: bool,
276    }
277    #[derive(
278        Clone,
279        ::ethers_contract::EthEvent,
280        ::ethers_contract::EthDisplay,
281        Default,
282        Debug,
283        PartialEq,
284        Eq,
285        Hash
286    )]
287    #[ethevent(
288        name = "UserRequestForAffirmation",
289        abi = "UserRequestForAffirmation(bytes32,bytes)"
290    )]
291    pub struct UserRequestForAffirmationFilter {
292        #[ethevent(indexed)]
293        pub message_id: [u8; 32],
294        pub encoded_data: ::ethers_core::types::Bytes,
295    }
296    #[derive(
297        Clone,
298        ::ethers_contract::EthEvent,
299        ::ethers_contract::EthDisplay,
300        Default,
301        Debug,
302        PartialEq,
303        Eq,
304        Hash
305    )]
306    #[ethevent(
307        name = "UserRequestForSignature",
308        abi = "UserRequestForSignature(bytes32,bytes)"
309    )]
310    pub struct UserRequestForSignatureFilter {
311        #[ethevent(indexed)]
312        pub message_id: [u8; 32],
313        pub encoded_data: ::ethers_core::types::Bytes,
314    }
315    ///Container type for all of the contract's events
316    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
317    pub enum IAMBEvents {
318        AffirmationCompletedFilter(AffirmationCompletedFilter),
319        RelayedMessageFilter(RelayedMessageFilter),
320        UserRequestForAffirmationFilter(UserRequestForAffirmationFilter),
321        UserRequestForSignatureFilter(UserRequestForSignatureFilter),
322    }
323    impl ::ethers_contract::EthLogDecode for IAMBEvents {
324        fn decode_log(
325            log: &::ethers_core::abi::RawLog,
326        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
327            if let Ok(decoded) = AffirmationCompletedFilter::decode_log(log) {
328                return Ok(IAMBEvents::AffirmationCompletedFilter(decoded));
329            }
330            if let Ok(decoded) = RelayedMessageFilter::decode_log(log) {
331                return Ok(IAMBEvents::RelayedMessageFilter(decoded));
332            }
333            if let Ok(decoded) = UserRequestForAffirmationFilter::decode_log(log) {
334                return Ok(IAMBEvents::UserRequestForAffirmationFilter(decoded));
335            }
336            if let Ok(decoded) = UserRequestForSignatureFilter::decode_log(log) {
337                return Ok(IAMBEvents::UserRequestForSignatureFilter(decoded));
338            }
339            Err(::ethers_core::abi::Error::InvalidData)
340        }
341    }
342    impl ::core::fmt::Display for IAMBEvents {
343        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
344            match self {
345                Self::AffirmationCompletedFilter(element) => {
346                    ::core::fmt::Display::fmt(element, f)
347                }
348                Self::RelayedMessageFilter(element) => {
349                    ::core::fmt::Display::fmt(element, f)
350                }
351                Self::UserRequestForAffirmationFilter(element) => {
352                    ::core::fmt::Display::fmt(element, f)
353                }
354                Self::UserRequestForSignatureFilter(element) => {
355                    ::core::fmt::Display::fmt(element, f)
356                }
357            }
358        }
359    }
360    impl ::core::convert::From<AffirmationCompletedFilter> for IAMBEvents {
361        fn from(value: AffirmationCompletedFilter) -> Self {
362            Self::AffirmationCompletedFilter(value)
363        }
364    }
365    impl ::core::convert::From<RelayedMessageFilter> for IAMBEvents {
366        fn from(value: RelayedMessageFilter) -> Self {
367            Self::RelayedMessageFilter(value)
368        }
369    }
370    impl ::core::convert::From<UserRequestForAffirmationFilter> for IAMBEvents {
371        fn from(value: UserRequestForAffirmationFilter) -> Self {
372            Self::UserRequestForAffirmationFilter(value)
373        }
374    }
375    impl ::core::convert::From<UserRequestForSignatureFilter> for IAMBEvents {
376        fn from(value: UserRequestForSignatureFilter) -> Self {
377            Self::UserRequestForSignatureFilter(value)
378        }
379    }
380    ///Container type for all input parameters for the `destinationChainId` function with signature `destinationChainId()` and selector `0xb0750611`
381    #[derive(
382        Clone,
383        ::ethers_contract::EthCall,
384        ::ethers_contract::EthDisplay,
385        Default,
386        Debug,
387        PartialEq,
388        Eq,
389        Hash
390    )]
391    #[ethcall(name = "destinationChainId", abi = "destinationChainId()")]
392    pub struct DestinationChainIdCall;
393    ///Container type for all input parameters for the `failedMessageDataHash` function with signature `failedMessageDataHash(bytes32)` and selector `0xe37c3289`
394    #[derive(
395        Clone,
396        ::ethers_contract::EthCall,
397        ::ethers_contract::EthDisplay,
398        Default,
399        Debug,
400        PartialEq,
401        Eq,
402        Hash
403    )]
404    #[ethcall(name = "failedMessageDataHash", abi = "failedMessageDataHash(bytes32)")]
405    pub struct FailedMessageDataHashCall {
406        pub message_id: [u8; 32],
407    }
408    ///Container type for all input parameters for the `failedMessageReceiver` function with signature `failedMessageReceiver(bytes32)` and selector `0x3f9a8e7e`
409    #[derive(
410        Clone,
411        ::ethers_contract::EthCall,
412        ::ethers_contract::EthDisplay,
413        Default,
414        Debug,
415        PartialEq,
416        Eq,
417        Hash
418    )]
419    #[ethcall(name = "failedMessageReceiver", abi = "failedMessageReceiver(bytes32)")]
420    pub struct FailedMessageReceiverCall {
421        pub message_id: [u8; 32],
422    }
423    ///Container type for all input parameters for the `failedMessageSender` function with signature `failedMessageSender(bytes32)` and selector `0x4a610b04`
424    #[derive(
425        Clone,
426        ::ethers_contract::EthCall,
427        ::ethers_contract::EthDisplay,
428        Default,
429        Debug,
430        PartialEq,
431        Eq,
432        Hash
433    )]
434    #[ethcall(name = "failedMessageSender", abi = "failedMessageSender(bytes32)")]
435    pub struct FailedMessageSenderCall {
436        pub message_id: [u8; 32],
437    }
438    ///Container type for all input parameters for the `maxGasPerTx` function with signature `maxGasPerTx()` and selector `0xe5789d03`
439    #[derive(
440        Clone,
441        ::ethers_contract::EthCall,
442        ::ethers_contract::EthDisplay,
443        Default,
444        Debug,
445        PartialEq,
446        Eq,
447        Hash
448    )]
449    #[ethcall(name = "maxGasPerTx", abi = "maxGasPerTx()")]
450    pub struct MaxGasPerTxCall;
451    ///Container type for all input parameters for the `messageCallStatus` function with signature `messageCallStatus(bytes32)` and selector `0xcb08a10c`
452    #[derive(
453        Clone,
454        ::ethers_contract::EthCall,
455        ::ethers_contract::EthDisplay,
456        Default,
457        Debug,
458        PartialEq,
459        Eq,
460        Hash
461    )]
462    #[ethcall(name = "messageCallStatus", abi = "messageCallStatus(bytes32)")]
463    pub struct MessageCallStatusCall {
464        pub message_id: [u8; 32],
465    }
466    ///Container type for all input parameters for the `messageId` function with signature `messageId()` and selector `0x669f618b`
467    #[derive(
468        Clone,
469        ::ethers_contract::EthCall,
470        ::ethers_contract::EthDisplay,
471        Default,
472        Debug,
473        PartialEq,
474        Eq,
475        Hash
476    )]
477    #[ethcall(name = "messageId", abi = "messageId()")]
478    pub struct MessageIdCall;
479    ///Container type for all input parameters for the `messageSender` function with signature `messageSender()` and selector `0xd67bdd25`
480    #[derive(
481        Clone,
482        ::ethers_contract::EthCall,
483        ::ethers_contract::EthDisplay,
484        Default,
485        Debug,
486        PartialEq,
487        Eq,
488        Hash
489    )]
490    #[ethcall(name = "messageSender", abi = "messageSender()")]
491    pub struct MessageSenderCall;
492    ///Container type for all input parameters for the `messageSourceChainId` function with signature `messageSourceChainId()` and selector `0x9e307dff`
493    #[derive(
494        Clone,
495        ::ethers_contract::EthCall,
496        ::ethers_contract::EthDisplay,
497        Default,
498        Debug,
499        PartialEq,
500        Eq,
501        Hash
502    )]
503    #[ethcall(name = "messageSourceChainId", abi = "messageSourceChainId()")]
504    pub struct MessageSourceChainIdCall;
505    ///Container type for all input parameters for the `requireToConfirmMessage` function with signature `requireToConfirmMessage(address,bytes,uint256)` and selector `0x94643f71`
506    #[derive(
507        Clone,
508        ::ethers_contract::EthCall,
509        ::ethers_contract::EthDisplay,
510        Default,
511        Debug,
512        PartialEq,
513        Eq,
514        Hash
515    )]
516    #[ethcall(
517        name = "requireToConfirmMessage",
518        abi = "requireToConfirmMessage(address,bytes,uint256)"
519    )]
520    pub struct RequireToConfirmMessageCall {
521        pub contract: ::ethers_core::types::Address,
522        pub data: ::ethers_core::types::Bytes,
523        pub gas: ::ethers_core::types::U256,
524    }
525    ///Container type for all input parameters for the `requireToPassMessage` function with signature `requireToPassMessage(address,bytes,uint256)` and selector `0xdc8601b3`
526    #[derive(
527        Clone,
528        ::ethers_contract::EthCall,
529        ::ethers_contract::EthDisplay,
530        Default,
531        Debug,
532        PartialEq,
533        Eq,
534        Hash
535    )]
536    #[ethcall(
537        name = "requireToPassMessage",
538        abi = "requireToPassMessage(address,bytes,uint256)"
539    )]
540    pub struct RequireToPassMessageCall {
541        pub contract: ::ethers_core::types::Address,
542        pub data: ::ethers_core::types::Bytes,
543        pub gas: ::ethers_core::types::U256,
544    }
545    ///Container type for all input parameters for the `sourceChainId` function with signature `sourceChainId()` and selector `0x1544298e`
546    #[derive(
547        Clone,
548        ::ethers_contract::EthCall,
549        ::ethers_contract::EthDisplay,
550        Default,
551        Debug,
552        PartialEq,
553        Eq,
554        Hash
555    )]
556    #[ethcall(name = "sourceChainId", abi = "sourceChainId()")]
557    pub struct SourceChainIdCall;
558    ///Container type for all input parameters for the `transactionHash` function with signature `transactionHash()` and selector `0x0ac1c313`
559    #[derive(
560        Clone,
561        ::ethers_contract::EthCall,
562        ::ethers_contract::EthDisplay,
563        Default,
564        Debug,
565        PartialEq,
566        Eq,
567        Hash
568    )]
569    #[ethcall(name = "transactionHash", abi = "transactionHash()")]
570    pub struct TransactionHashCall;
571    ///Container type for all of the contract's call
572    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
573    pub enum IAMBCalls {
574        DestinationChainId(DestinationChainIdCall),
575        FailedMessageDataHash(FailedMessageDataHashCall),
576        FailedMessageReceiver(FailedMessageReceiverCall),
577        FailedMessageSender(FailedMessageSenderCall),
578        MaxGasPerTx(MaxGasPerTxCall),
579        MessageCallStatus(MessageCallStatusCall),
580        MessageId(MessageIdCall),
581        MessageSender(MessageSenderCall),
582        MessageSourceChainId(MessageSourceChainIdCall),
583        RequireToConfirmMessage(RequireToConfirmMessageCall),
584        RequireToPassMessage(RequireToPassMessageCall),
585        SourceChainId(SourceChainIdCall),
586        TransactionHash(TransactionHashCall),
587    }
588    impl ::ethers_core::abi::AbiDecode for IAMBCalls {
589        fn decode(
590            data: impl AsRef<[u8]>,
591        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
592            let data = data.as_ref();
593            if let Ok(decoded)
594                = <DestinationChainIdCall as ::ethers_core::abi::AbiDecode>::decode(
595                    data,
596                ) {
597                return Ok(Self::DestinationChainId(decoded));
598            }
599            if let Ok(decoded)
600                = <FailedMessageDataHashCall as ::ethers_core::abi::AbiDecode>::decode(
601                    data,
602                ) {
603                return Ok(Self::FailedMessageDataHash(decoded));
604            }
605            if let Ok(decoded)
606                = <FailedMessageReceiverCall as ::ethers_core::abi::AbiDecode>::decode(
607                    data,
608                ) {
609                return Ok(Self::FailedMessageReceiver(decoded));
610            }
611            if let Ok(decoded)
612                = <FailedMessageSenderCall as ::ethers_core::abi::AbiDecode>::decode(
613                    data,
614                ) {
615                return Ok(Self::FailedMessageSender(decoded));
616            }
617            if let Ok(decoded)
618                = <MaxGasPerTxCall as ::ethers_core::abi::AbiDecode>::decode(data) {
619                return Ok(Self::MaxGasPerTx(decoded));
620            }
621            if let Ok(decoded)
622                = <MessageCallStatusCall as ::ethers_core::abi::AbiDecode>::decode(
623                    data,
624                ) {
625                return Ok(Self::MessageCallStatus(decoded));
626            }
627            if let Ok(decoded)
628                = <MessageIdCall as ::ethers_core::abi::AbiDecode>::decode(data) {
629                return Ok(Self::MessageId(decoded));
630            }
631            if let Ok(decoded)
632                = <MessageSenderCall as ::ethers_core::abi::AbiDecode>::decode(data) {
633                return Ok(Self::MessageSender(decoded));
634            }
635            if let Ok(decoded)
636                = <MessageSourceChainIdCall as ::ethers_core::abi::AbiDecode>::decode(
637                    data,
638                ) {
639                return Ok(Self::MessageSourceChainId(decoded));
640            }
641            if let Ok(decoded)
642                = <RequireToConfirmMessageCall as ::ethers_core::abi::AbiDecode>::decode(
643                    data,
644                ) {
645                return Ok(Self::RequireToConfirmMessage(decoded));
646            }
647            if let Ok(decoded)
648                = <RequireToPassMessageCall as ::ethers_core::abi::AbiDecode>::decode(
649                    data,
650                ) {
651                return Ok(Self::RequireToPassMessage(decoded));
652            }
653            if let Ok(decoded)
654                = <SourceChainIdCall as ::ethers_core::abi::AbiDecode>::decode(data) {
655                return Ok(Self::SourceChainId(decoded));
656            }
657            if let Ok(decoded)
658                = <TransactionHashCall as ::ethers_core::abi::AbiDecode>::decode(data) {
659                return Ok(Self::TransactionHash(decoded));
660            }
661            Err(::ethers_core::abi::Error::InvalidData.into())
662        }
663    }
664    impl ::ethers_core::abi::AbiEncode for IAMBCalls {
665        fn encode(self) -> Vec<u8> {
666            match self {
667                Self::DestinationChainId(element) => {
668                    ::ethers_core::abi::AbiEncode::encode(element)
669                }
670                Self::FailedMessageDataHash(element) => {
671                    ::ethers_core::abi::AbiEncode::encode(element)
672                }
673                Self::FailedMessageReceiver(element) => {
674                    ::ethers_core::abi::AbiEncode::encode(element)
675                }
676                Self::FailedMessageSender(element) => {
677                    ::ethers_core::abi::AbiEncode::encode(element)
678                }
679                Self::MaxGasPerTx(element) => {
680                    ::ethers_core::abi::AbiEncode::encode(element)
681                }
682                Self::MessageCallStatus(element) => {
683                    ::ethers_core::abi::AbiEncode::encode(element)
684                }
685                Self::MessageId(element) => {
686                    ::ethers_core::abi::AbiEncode::encode(element)
687                }
688                Self::MessageSender(element) => {
689                    ::ethers_core::abi::AbiEncode::encode(element)
690                }
691                Self::MessageSourceChainId(element) => {
692                    ::ethers_core::abi::AbiEncode::encode(element)
693                }
694                Self::RequireToConfirmMessage(element) => {
695                    ::ethers_core::abi::AbiEncode::encode(element)
696                }
697                Self::RequireToPassMessage(element) => {
698                    ::ethers_core::abi::AbiEncode::encode(element)
699                }
700                Self::SourceChainId(element) => {
701                    ::ethers_core::abi::AbiEncode::encode(element)
702                }
703                Self::TransactionHash(element) => {
704                    ::ethers_core::abi::AbiEncode::encode(element)
705                }
706            }
707        }
708    }
709    impl ::core::fmt::Display for IAMBCalls {
710        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
711            match self {
712                Self::DestinationChainId(element) => {
713                    ::core::fmt::Display::fmt(element, f)
714                }
715                Self::FailedMessageDataHash(element) => {
716                    ::core::fmt::Display::fmt(element, f)
717                }
718                Self::FailedMessageReceiver(element) => {
719                    ::core::fmt::Display::fmt(element, f)
720                }
721                Self::FailedMessageSender(element) => {
722                    ::core::fmt::Display::fmt(element, f)
723                }
724                Self::MaxGasPerTx(element) => ::core::fmt::Display::fmt(element, f),
725                Self::MessageCallStatus(element) => ::core::fmt::Display::fmt(element, f),
726                Self::MessageId(element) => ::core::fmt::Display::fmt(element, f),
727                Self::MessageSender(element) => ::core::fmt::Display::fmt(element, f),
728                Self::MessageSourceChainId(element) => {
729                    ::core::fmt::Display::fmt(element, f)
730                }
731                Self::RequireToConfirmMessage(element) => {
732                    ::core::fmt::Display::fmt(element, f)
733                }
734                Self::RequireToPassMessage(element) => {
735                    ::core::fmt::Display::fmt(element, f)
736                }
737                Self::SourceChainId(element) => ::core::fmt::Display::fmt(element, f),
738                Self::TransactionHash(element) => ::core::fmt::Display::fmt(element, f),
739            }
740        }
741    }
742    impl ::core::convert::From<DestinationChainIdCall> for IAMBCalls {
743        fn from(value: DestinationChainIdCall) -> Self {
744            Self::DestinationChainId(value)
745        }
746    }
747    impl ::core::convert::From<FailedMessageDataHashCall> for IAMBCalls {
748        fn from(value: FailedMessageDataHashCall) -> Self {
749            Self::FailedMessageDataHash(value)
750        }
751    }
752    impl ::core::convert::From<FailedMessageReceiverCall> for IAMBCalls {
753        fn from(value: FailedMessageReceiverCall) -> Self {
754            Self::FailedMessageReceiver(value)
755        }
756    }
757    impl ::core::convert::From<FailedMessageSenderCall> for IAMBCalls {
758        fn from(value: FailedMessageSenderCall) -> Self {
759            Self::FailedMessageSender(value)
760        }
761    }
762    impl ::core::convert::From<MaxGasPerTxCall> for IAMBCalls {
763        fn from(value: MaxGasPerTxCall) -> Self {
764            Self::MaxGasPerTx(value)
765        }
766    }
767    impl ::core::convert::From<MessageCallStatusCall> for IAMBCalls {
768        fn from(value: MessageCallStatusCall) -> Self {
769            Self::MessageCallStatus(value)
770        }
771    }
772    impl ::core::convert::From<MessageIdCall> for IAMBCalls {
773        fn from(value: MessageIdCall) -> Self {
774            Self::MessageId(value)
775        }
776    }
777    impl ::core::convert::From<MessageSenderCall> for IAMBCalls {
778        fn from(value: MessageSenderCall) -> Self {
779            Self::MessageSender(value)
780        }
781    }
782    impl ::core::convert::From<MessageSourceChainIdCall> for IAMBCalls {
783        fn from(value: MessageSourceChainIdCall) -> Self {
784            Self::MessageSourceChainId(value)
785        }
786    }
787    impl ::core::convert::From<RequireToConfirmMessageCall> for IAMBCalls {
788        fn from(value: RequireToConfirmMessageCall) -> Self {
789            Self::RequireToConfirmMessage(value)
790        }
791    }
792    impl ::core::convert::From<RequireToPassMessageCall> for IAMBCalls {
793        fn from(value: RequireToPassMessageCall) -> Self {
794            Self::RequireToPassMessage(value)
795        }
796    }
797    impl ::core::convert::From<SourceChainIdCall> for IAMBCalls {
798        fn from(value: SourceChainIdCall) -> Self {
799            Self::SourceChainId(value)
800        }
801    }
802    impl ::core::convert::From<TransactionHashCall> for IAMBCalls {
803        fn from(value: TransactionHashCall) -> Self {
804            Self::TransactionHash(value)
805        }
806    }
807    ///Container type for all return fields from the `destinationChainId` function with signature `destinationChainId()` and selector `0xb0750611`
808    #[derive(
809        Clone,
810        ::ethers_contract::EthAbiType,
811        ::ethers_contract::EthAbiCodec,
812        Default,
813        Debug,
814        PartialEq,
815        Eq,
816        Hash
817    )]
818    pub struct DestinationChainIdReturn(pub ::ethers_core::types::U256);
819    ///Container type for all return fields from the `failedMessageDataHash` function with signature `failedMessageDataHash(bytes32)` and selector `0xe37c3289`
820    #[derive(
821        Clone,
822        ::ethers_contract::EthAbiType,
823        ::ethers_contract::EthAbiCodec,
824        Default,
825        Debug,
826        PartialEq,
827        Eq,
828        Hash
829    )]
830    pub struct FailedMessageDataHashReturn(pub [u8; 32]);
831    ///Container type for all return fields from the `failedMessageReceiver` function with signature `failedMessageReceiver(bytes32)` and selector `0x3f9a8e7e`
832    #[derive(
833        Clone,
834        ::ethers_contract::EthAbiType,
835        ::ethers_contract::EthAbiCodec,
836        Default,
837        Debug,
838        PartialEq,
839        Eq,
840        Hash
841    )]
842    pub struct FailedMessageReceiverReturn(pub ::ethers_core::types::Address);
843    ///Container type for all return fields from the `failedMessageSender` function with signature `failedMessageSender(bytes32)` and selector `0x4a610b04`
844    #[derive(
845        Clone,
846        ::ethers_contract::EthAbiType,
847        ::ethers_contract::EthAbiCodec,
848        Default,
849        Debug,
850        PartialEq,
851        Eq,
852        Hash
853    )]
854    pub struct FailedMessageSenderReturn(pub ::ethers_core::types::Address);
855    ///Container type for all return fields from the `maxGasPerTx` function with signature `maxGasPerTx()` and selector `0xe5789d03`
856    #[derive(
857        Clone,
858        ::ethers_contract::EthAbiType,
859        ::ethers_contract::EthAbiCodec,
860        Default,
861        Debug,
862        PartialEq,
863        Eq,
864        Hash
865    )]
866    pub struct MaxGasPerTxReturn(pub ::ethers_core::types::U256);
867    ///Container type for all return fields from the `messageCallStatus` function with signature `messageCallStatus(bytes32)` and selector `0xcb08a10c`
868    #[derive(
869        Clone,
870        ::ethers_contract::EthAbiType,
871        ::ethers_contract::EthAbiCodec,
872        Default,
873        Debug,
874        PartialEq,
875        Eq,
876        Hash
877    )]
878    pub struct MessageCallStatusReturn(pub bool);
879    ///Container type for all return fields from the `messageId` function with signature `messageId()` and selector `0x669f618b`
880    #[derive(
881        Clone,
882        ::ethers_contract::EthAbiType,
883        ::ethers_contract::EthAbiCodec,
884        Default,
885        Debug,
886        PartialEq,
887        Eq,
888        Hash
889    )]
890    pub struct MessageIdReturn(pub [u8; 32]);
891    ///Container type for all return fields from the `messageSender` function with signature `messageSender()` and selector `0xd67bdd25`
892    #[derive(
893        Clone,
894        ::ethers_contract::EthAbiType,
895        ::ethers_contract::EthAbiCodec,
896        Default,
897        Debug,
898        PartialEq,
899        Eq,
900        Hash
901    )]
902    pub struct MessageSenderReturn(pub ::ethers_core::types::Address);
903    ///Container type for all return fields from the `messageSourceChainId` function with signature `messageSourceChainId()` and selector `0x9e307dff`
904    #[derive(
905        Clone,
906        ::ethers_contract::EthAbiType,
907        ::ethers_contract::EthAbiCodec,
908        Default,
909        Debug,
910        PartialEq,
911        Eq,
912        Hash
913    )]
914    pub struct MessageSourceChainIdReturn(pub [u8; 32]);
915    ///Container type for all return fields from the `requireToConfirmMessage` function with signature `requireToConfirmMessage(address,bytes,uint256)` and selector `0x94643f71`
916    #[derive(
917        Clone,
918        ::ethers_contract::EthAbiType,
919        ::ethers_contract::EthAbiCodec,
920        Default,
921        Debug,
922        PartialEq,
923        Eq,
924        Hash
925    )]
926    pub struct RequireToConfirmMessageReturn(pub [u8; 32]);
927    ///Container type for all return fields from the `requireToPassMessage` function with signature `requireToPassMessage(address,bytes,uint256)` and selector `0xdc8601b3`
928    #[derive(
929        Clone,
930        ::ethers_contract::EthAbiType,
931        ::ethers_contract::EthAbiCodec,
932        Default,
933        Debug,
934        PartialEq,
935        Eq,
936        Hash
937    )]
938    pub struct RequireToPassMessageReturn(pub [u8; 32]);
939    ///Container type for all return fields from the `sourceChainId` function with signature `sourceChainId()` and selector `0x1544298e`
940    #[derive(
941        Clone,
942        ::ethers_contract::EthAbiType,
943        ::ethers_contract::EthAbiCodec,
944        Default,
945        Debug,
946        PartialEq,
947        Eq,
948        Hash
949    )]
950    pub struct SourceChainIdReturn(pub ::ethers_core::types::U256);
951    ///Container type for all return fields from the `transactionHash` function with signature `transactionHash()` and selector `0x0ac1c313`
952    #[derive(
953        Clone,
954        ::ethers_contract::EthAbiType,
955        ::ethers_contract::EthAbiCodec,
956        Default,
957        Debug,
958        PartialEq,
959        Eq,
960        Hash
961    )]
962    pub struct TransactionHashReturn(pub [u8; 32]);
963}