openzeppelin_rs/contracts/
ICompoundTimelock.rs

1pub use i_compound_timelock::*;
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 i_compound_timelock {
13    #[rustfmt::skip]
14    const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\",\"components\":[],\"indexed\":false},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"CancelTransaction\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\",\"components\":[],\"indexed\":false},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ExecuteTransaction\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"NewAdmin\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"NewDelay\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"NewPendingAdmin\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\",\"components\":[],\"indexed\":false},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"QueueTransaction\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"MAXIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"MINIMUM_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"acceptAdmin\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"cancelTransaction\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setDelay\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"setPendingAdmin\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static ICOMPOUNDTIMELOCK_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 ICompoundTimelock<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for ICompoundTimelock<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for ICompoundTimelock<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 ICompoundTimelock<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for ICompoundTimelock<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(ICompoundTimelock)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> ICompoundTimelock<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                    ICOMPOUNDTIMELOCK_ABI.clone(),
51                    client,
52                ),
53            )
54        }
55        ///Calls the contract's `GRACE_PERIOD` (0xc1a287e2) function
56        pub fn grace_period(
57            &self,
58        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
59            self.0
60                .method_hash([193, 162, 135, 226], ())
61                .expect("method not found (this should never happen)")
62        }
63        ///Calls the contract's `MAXIMUM_DELAY` (0x7d645fab) function
64        pub fn maximum_delay(
65            &self,
66        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
67            self.0
68                .method_hash([125, 100, 95, 171], ())
69                .expect("method not found (this should never happen)")
70        }
71        ///Calls the contract's `MINIMUM_DELAY` (0xb1b43ae5) function
72        pub fn minimum_delay(
73            &self,
74        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
75            self.0
76                .method_hash([177, 180, 58, 229], ())
77                .expect("method not found (this should never happen)")
78        }
79        ///Calls the contract's `acceptAdmin` (0x0e18b681) function
80        pub fn accept_admin(&self) -> ::ethers_contract::builders::ContractCall<M, ()> {
81            self.0
82                .method_hash([14, 24, 182, 129], ())
83                .expect("method not found (this should never happen)")
84        }
85        ///Calls the contract's `admin` (0xf851a440) function
86        pub fn admin(
87            &self,
88        ) -> ::ethers_contract::builders::ContractCall<
89            M,
90            ::ethers_core::types::Address,
91        > {
92            self.0
93                .method_hash([248, 81, 164, 64], ())
94                .expect("method not found (this should never happen)")
95        }
96        ///Calls the contract's `cancelTransaction` (0x591fcdfe) function
97        pub fn cancel_transaction(
98            &self,
99            target: ::ethers_core::types::Address,
100            value: ::ethers_core::types::U256,
101            signature: ::std::string::String,
102            data: ::ethers_core::types::Bytes,
103            eta: ::ethers_core::types::U256,
104        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
105            self.0
106                .method_hash([89, 31, 205, 254], (target, value, signature, data, eta))
107                .expect("method not found (this should never happen)")
108        }
109        ///Calls the contract's `delay` (0x6a42b8f8) function
110        pub fn delay(
111            &self,
112        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
113            self.0
114                .method_hash([106, 66, 184, 248], ())
115                .expect("method not found (this should never happen)")
116        }
117        ///Calls the contract's `executeTransaction` (0x0825f38f) function
118        pub fn execute_transaction(
119            &self,
120            target: ::ethers_core::types::Address,
121            value: ::ethers_core::types::U256,
122            signature: ::std::string::String,
123            data: ::ethers_core::types::Bytes,
124            eta: ::ethers_core::types::U256,
125        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::Bytes> {
126            self.0
127                .method_hash([8, 37, 243, 143], (target, value, signature, data, eta))
128                .expect("method not found (this should never happen)")
129        }
130        ///Calls the contract's `pendingAdmin` (0x26782247) function
131        pub fn pending_admin(
132            &self,
133        ) -> ::ethers_contract::builders::ContractCall<
134            M,
135            ::ethers_core::types::Address,
136        > {
137            self.0
138                .method_hash([38, 120, 34, 71], ())
139                .expect("method not found (this should never happen)")
140        }
141        ///Calls the contract's `queueTransaction` (0x3a66f901) function
142        pub fn queue_transaction(
143            &self,
144            target: ::ethers_core::types::Address,
145            value: ::ethers_core::types::U256,
146            signature: ::std::string::String,
147            data: ::ethers_core::types::Bytes,
148            eta: ::ethers_core::types::U256,
149        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
150            self.0
151                .method_hash([58, 102, 249, 1], (target, value, signature, data, eta))
152                .expect("method not found (this should never happen)")
153        }
154        ///Calls the contract's `queuedTransactions` (0xf2b06537) function
155        pub fn queued_transactions(
156            &self,
157            p0: [u8; 32],
158        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
159            self.0
160                .method_hash([242, 176, 101, 55], p0)
161                .expect("method not found (this should never happen)")
162        }
163        ///Calls the contract's `setDelay` (0xe177246e) function
164        pub fn set_delay(
165            &self,
166            p0: ::ethers_core::types::U256,
167        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
168            self.0
169                .method_hash([225, 119, 36, 110], p0)
170                .expect("method not found (this should never happen)")
171        }
172        ///Calls the contract's `setPendingAdmin` (0x4dd18bf5) function
173        pub fn set_pending_admin(
174            &self,
175            p0: ::ethers_core::types::Address,
176        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
177            self.0
178                .method_hash([77, 209, 139, 245], p0)
179                .expect("method not found (this should never happen)")
180        }
181        ///Gets the contract's `CancelTransaction` event
182        pub fn cancel_transaction_filter(
183            &self,
184        ) -> ::ethers_contract::builders::Event<
185            ::std::sync::Arc<M>,
186            M,
187            CancelTransactionFilter,
188        > {
189            self.0.event()
190        }
191        ///Gets the contract's `ExecuteTransaction` event
192        pub fn execute_transaction_filter(
193            &self,
194        ) -> ::ethers_contract::builders::Event<
195            ::std::sync::Arc<M>,
196            M,
197            ExecuteTransactionFilter,
198        > {
199            self.0.event()
200        }
201        ///Gets the contract's `NewAdmin` event
202        pub fn new_admin_filter(
203            &self,
204        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, NewAdminFilter> {
205            self.0.event()
206        }
207        ///Gets the contract's `NewDelay` event
208        pub fn new_delay_filter(
209            &self,
210        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, NewDelayFilter> {
211            self.0.event()
212        }
213        ///Gets the contract's `NewPendingAdmin` event
214        pub fn new_pending_admin_filter(
215            &self,
216        ) -> ::ethers_contract::builders::Event<
217            ::std::sync::Arc<M>,
218            M,
219            NewPendingAdminFilter,
220        > {
221            self.0.event()
222        }
223        ///Gets the contract's `QueueTransaction` event
224        pub fn queue_transaction_filter(
225            &self,
226        ) -> ::ethers_contract::builders::Event<
227            ::std::sync::Arc<M>,
228            M,
229            QueueTransactionFilter,
230        > {
231            self.0.event()
232        }
233        /// Returns an `Event` builder for all the events of this contract.
234        pub fn events(
235            &self,
236        ) -> ::ethers_contract::builders::Event<
237            ::std::sync::Arc<M>,
238            M,
239            ICompoundTimelockEvents,
240        > {
241            self.0.event_with_filter(::core::default::Default::default())
242        }
243    }
244    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
245    for ICompoundTimelock<M> {
246        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
247            Self::new(contract.address(), contract.client())
248        }
249    }
250    #[derive(
251        Clone,
252        ::ethers_contract::EthEvent,
253        ::ethers_contract::EthDisplay,
254        Default,
255        Debug,
256        PartialEq,
257        Eq,
258        Hash
259    )]
260    #[ethevent(
261        name = "CancelTransaction",
262        abi = "CancelTransaction(bytes32,address,uint256,string,bytes,uint256)"
263    )]
264    pub struct CancelTransactionFilter {
265        #[ethevent(indexed)]
266        pub tx_hash: [u8; 32],
267        #[ethevent(indexed)]
268        pub target: ::ethers_core::types::Address,
269        pub value: ::ethers_core::types::U256,
270        pub signature: ::std::string::String,
271        pub data: ::ethers_core::types::Bytes,
272        pub eta: ::ethers_core::types::U256,
273    }
274    #[derive(
275        Clone,
276        ::ethers_contract::EthEvent,
277        ::ethers_contract::EthDisplay,
278        Default,
279        Debug,
280        PartialEq,
281        Eq,
282        Hash
283    )]
284    #[ethevent(
285        name = "ExecuteTransaction",
286        abi = "ExecuteTransaction(bytes32,address,uint256,string,bytes,uint256)"
287    )]
288    pub struct ExecuteTransactionFilter {
289        #[ethevent(indexed)]
290        pub tx_hash: [u8; 32],
291        #[ethevent(indexed)]
292        pub target: ::ethers_core::types::Address,
293        pub value: ::ethers_core::types::U256,
294        pub signature: ::std::string::String,
295        pub data: ::ethers_core::types::Bytes,
296        pub eta: ::ethers_core::types::U256,
297    }
298    #[derive(
299        Clone,
300        ::ethers_contract::EthEvent,
301        ::ethers_contract::EthDisplay,
302        Default,
303        Debug,
304        PartialEq,
305        Eq,
306        Hash
307    )]
308    #[ethevent(name = "NewAdmin", abi = "NewAdmin(address)")]
309    pub struct NewAdminFilter {
310        #[ethevent(indexed)]
311        pub new_admin: ::ethers_core::types::Address,
312    }
313    #[derive(
314        Clone,
315        ::ethers_contract::EthEvent,
316        ::ethers_contract::EthDisplay,
317        Default,
318        Debug,
319        PartialEq,
320        Eq,
321        Hash
322    )]
323    #[ethevent(name = "NewDelay", abi = "NewDelay(uint256)")]
324    pub struct NewDelayFilter {
325        #[ethevent(indexed)]
326        pub new_delay: ::ethers_core::types::U256,
327    }
328    #[derive(
329        Clone,
330        ::ethers_contract::EthEvent,
331        ::ethers_contract::EthDisplay,
332        Default,
333        Debug,
334        PartialEq,
335        Eq,
336        Hash
337    )]
338    #[ethevent(name = "NewPendingAdmin", abi = "NewPendingAdmin(address)")]
339    pub struct NewPendingAdminFilter {
340        #[ethevent(indexed)]
341        pub new_pending_admin: ::ethers_core::types::Address,
342    }
343    #[derive(
344        Clone,
345        ::ethers_contract::EthEvent,
346        ::ethers_contract::EthDisplay,
347        Default,
348        Debug,
349        PartialEq,
350        Eq,
351        Hash
352    )]
353    #[ethevent(
354        name = "QueueTransaction",
355        abi = "QueueTransaction(bytes32,address,uint256,string,bytes,uint256)"
356    )]
357    pub struct QueueTransactionFilter {
358        #[ethevent(indexed)]
359        pub tx_hash: [u8; 32],
360        #[ethevent(indexed)]
361        pub target: ::ethers_core::types::Address,
362        pub value: ::ethers_core::types::U256,
363        pub signature: ::std::string::String,
364        pub data: ::ethers_core::types::Bytes,
365        pub eta: ::ethers_core::types::U256,
366    }
367    ///Container type for all of the contract's events
368    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
369    pub enum ICompoundTimelockEvents {
370        CancelTransactionFilter(CancelTransactionFilter),
371        ExecuteTransactionFilter(ExecuteTransactionFilter),
372        NewAdminFilter(NewAdminFilter),
373        NewDelayFilter(NewDelayFilter),
374        NewPendingAdminFilter(NewPendingAdminFilter),
375        QueueTransactionFilter(QueueTransactionFilter),
376    }
377    impl ::ethers_contract::EthLogDecode for ICompoundTimelockEvents {
378        fn decode_log(
379            log: &::ethers_core::abi::RawLog,
380        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
381            if let Ok(decoded) = CancelTransactionFilter::decode_log(log) {
382                return Ok(ICompoundTimelockEvents::CancelTransactionFilter(decoded));
383            }
384            if let Ok(decoded) = ExecuteTransactionFilter::decode_log(log) {
385                return Ok(ICompoundTimelockEvents::ExecuteTransactionFilter(decoded));
386            }
387            if let Ok(decoded) = NewAdminFilter::decode_log(log) {
388                return Ok(ICompoundTimelockEvents::NewAdminFilter(decoded));
389            }
390            if let Ok(decoded) = NewDelayFilter::decode_log(log) {
391                return Ok(ICompoundTimelockEvents::NewDelayFilter(decoded));
392            }
393            if let Ok(decoded) = NewPendingAdminFilter::decode_log(log) {
394                return Ok(ICompoundTimelockEvents::NewPendingAdminFilter(decoded));
395            }
396            if let Ok(decoded) = QueueTransactionFilter::decode_log(log) {
397                return Ok(ICompoundTimelockEvents::QueueTransactionFilter(decoded));
398            }
399            Err(::ethers_core::abi::Error::InvalidData)
400        }
401    }
402    impl ::core::fmt::Display for ICompoundTimelockEvents {
403        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
404            match self {
405                Self::CancelTransactionFilter(element) => {
406                    ::core::fmt::Display::fmt(element, f)
407                }
408                Self::ExecuteTransactionFilter(element) => {
409                    ::core::fmt::Display::fmt(element, f)
410                }
411                Self::NewAdminFilter(element) => ::core::fmt::Display::fmt(element, f),
412                Self::NewDelayFilter(element) => ::core::fmt::Display::fmt(element, f),
413                Self::NewPendingAdminFilter(element) => {
414                    ::core::fmt::Display::fmt(element, f)
415                }
416                Self::QueueTransactionFilter(element) => {
417                    ::core::fmt::Display::fmt(element, f)
418                }
419            }
420        }
421    }
422    impl ::core::convert::From<CancelTransactionFilter> for ICompoundTimelockEvents {
423        fn from(value: CancelTransactionFilter) -> Self {
424            Self::CancelTransactionFilter(value)
425        }
426    }
427    impl ::core::convert::From<ExecuteTransactionFilter> for ICompoundTimelockEvents {
428        fn from(value: ExecuteTransactionFilter) -> Self {
429            Self::ExecuteTransactionFilter(value)
430        }
431    }
432    impl ::core::convert::From<NewAdminFilter> for ICompoundTimelockEvents {
433        fn from(value: NewAdminFilter) -> Self {
434            Self::NewAdminFilter(value)
435        }
436    }
437    impl ::core::convert::From<NewDelayFilter> for ICompoundTimelockEvents {
438        fn from(value: NewDelayFilter) -> Self {
439            Self::NewDelayFilter(value)
440        }
441    }
442    impl ::core::convert::From<NewPendingAdminFilter> for ICompoundTimelockEvents {
443        fn from(value: NewPendingAdminFilter) -> Self {
444            Self::NewPendingAdminFilter(value)
445        }
446    }
447    impl ::core::convert::From<QueueTransactionFilter> for ICompoundTimelockEvents {
448        fn from(value: QueueTransactionFilter) -> Self {
449            Self::QueueTransactionFilter(value)
450        }
451    }
452    ///Container type for all input parameters for the `GRACE_PERIOD` function with signature `GRACE_PERIOD()` and selector `0xc1a287e2`
453    #[derive(
454        Clone,
455        ::ethers_contract::EthCall,
456        ::ethers_contract::EthDisplay,
457        Default,
458        Debug,
459        PartialEq,
460        Eq,
461        Hash
462    )]
463    #[ethcall(name = "GRACE_PERIOD", abi = "GRACE_PERIOD()")]
464    pub struct GracePeriodCall;
465    ///Container type for all input parameters for the `MAXIMUM_DELAY` function with signature `MAXIMUM_DELAY()` and selector `0x7d645fab`
466    #[derive(
467        Clone,
468        ::ethers_contract::EthCall,
469        ::ethers_contract::EthDisplay,
470        Default,
471        Debug,
472        PartialEq,
473        Eq,
474        Hash
475    )]
476    #[ethcall(name = "MAXIMUM_DELAY", abi = "MAXIMUM_DELAY()")]
477    pub struct MaximumDelayCall;
478    ///Container type for all input parameters for the `MINIMUM_DELAY` function with signature `MINIMUM_DELAY()` and selector `0xb1b43ae5`
479    #[derive(
480        Clone,
481        ::ethers_contract::EthCall,
482        ::ethers_contract::EthDisplay,
483        Default,
484        Debug,
485        PartialEq,
486        Eq,
487        Hash
488    )]
489    #[ethcall(name = "MINIMUM_DELAY", abi = "MINIMUM_DELAY()")]
490    pub struct MinimumDelayCall;
491    ///Container type for all input parameters for the `acceptAdmin` function with signature `acceptAdmin()` and selector `0x0e18b681`
492    #[derive(
493        Clone,
494        ::ethers_contract::EthCall,
495        ::ethers_contract::EthDisplay,
496        Default,
497        Debug,
498        PartialEq,
499        Eq,
500        Hash
501    )]
502    #[ethcall(name = "acceptAdmin", abi = "acceptAdmin()")]
503    pub struct AcceptAdminCall;
504    ///Container type for all input parameters for the `admin` function with signature `admin()` and selector `0xf851a440`
505    #[derive(
506        Clone,
507        ::ethers_contract::EthCall,
508        ::ethers_contract::EthDisplay,
509        Default,
510        Debug,
511        PartialEq,
512        Eq,
513        Hash
514    )]
515    #[ethcall(name = "admin", abi = "admin()")]
516    pub struct AdminCall;
517    ///Container type for all input parameters for the `cancelTransaction` function with signature `cancelTransaction(address,uint256,string,bytes,uint256)` and selector `0x591fcdfe`
518    #[derive(
519        Clone,
520        ::ethers_contract::EthCall,
521        ::ethers_contract::EthDisplay,
522        Default,
523        Debug,
524        PartialEq,
525        Eq,
526        Hash
527    )]
528    #[ethcall(
529        name = "cancelTransaction",
530        abi = "cancelTransaction(address,uint256,string,bytes,uint256)"
531    )]
532    pub struct CancelTransactionCall {
533        pub target: ::ethers_core::types::Address,
534        pub value: ::ethers_core::types::U256,
535        pub signature: ::std::string::String,
536        pub data: ::ethers_core::types::Bytes,
537        pub eta: ::ethers_core::types::U256,
538    }
539    ///Container type for all input parameters for the `delay` function with signature `delay()` and selector `0x6a42b8f8`
540    #[derive(
541        Clone,
542        ::ethers_contract::EthCall,
543        ::ethers_contract::EthDisplay,
544        Default,
545        Debug,
546        PartialEq,
547        Eq,
548        Hash
549    )]
550    #[ethcall(name = "delay", abi = "delay()")]
551    pub struct DelayCall;
552    ///Container type for all input parameters for the `executeTransaction` function with signature `executeTransaction(address,uint256,string,bytes,uint256)` and selector `0x0825f38f`
553    #[derive(
554        Clone,
555        ::ethers_contract::EthCall,
556        ::ethers_contract::EthDisplay,
557        Default,
558        Debug,
559        PartialEq,
560        Eq,
561        Hash
562    )]
563    #[ethcall(
564        name = "executeTransaction",
565        abi = "executeTransaction(address,uint256,string,bytes,uint256)"
566    )]
567    pub struct ExecuteTransactionCall {
568        pub target: ::ethers_core::types::Address,
569        pub value: ::ethers_core::types::U256,
570        pub signature: ::std::string::String,
571        pub data: ::ethers_core::types::Bytes,
572        pub eta: ::ethers_core::types::U256,
573    }
574    ///Container type for all input parameters for the `pendingAdmin` function with signature `pendingAdmin()` and selector `0x26782247`
575    #[derive(
576        Clone,
577        ::ethers_contract::EthCall,
578        ::ethers_contract::EthDisplay,
579        Default,
580        Debug,
581        PartialEq,
582        Eq,
583        Hash
584    )]
585    #[ethcall(name = "pendingAdmin", abi = "pendingAdmin()")]
586    pub struct PendingAdminCall;
587    ///Container type for all input parameters for the `queueTransaction` function with signature `queueTransaction(address,uint256,string,bytes,uint256)` and selector `0x3a66f901`
588    #[derive(
589        Clone,
590        ::ethers_contract::EthCall,
591        ::ethers_contract::EthDisplay,
592        Default,
593        Debug,
594        PartialEq,
595        Eq,
596        Hash
597    )]
598    #[ethcall(
599        name = "queueTransaction",
600        abi = "queueTransaction(address,uint256,string,bytes,uint256)"
601    )]
602    pub struct QueueTransactionCall {
603        pub target: ::ethers_core::types::Address,
604        pub value: ::ethers_core::types::U256,
605        pub signature: ::std::string::String,
606        pub data: ::ethers_core::types::Bytes,
607        pub eta: ::ethers_core::types::U256,
608    }
609    ///Container type for all input parameters for the `queuedTransactions` function with signature `queuedTransactions(bytes32)` and selector `0xf2b06537`
610    #[derive(
611        Clone,
612        ::ethers_contract::EthCall,
613        ::ethers_contract::EthDisplay,
614        Default,
615        Debug,
616        PartialEq,
617        Eq,
618        Hash
619    )]
620    #[ethcall(name = "queuedTransactions", abi = "queuedTransactions(bytes32)")]
621    pub struct QueuedTransactionsCall(pub [u8; 32]);
622    ///Container type for all input parameters for the `setDelay` function with signature `setDelay(uint256)` and selector `0xe177246e`
623    #[derive(
624        Clone,
625        ::ethers_contract::EthCall,
626        ::ethers_contract::EthDisplay,
627        Default,
628        Debug,
629        PartialEq,
630        Eq,
631        Hash
632    )]
633    #[ethcall(name = "setDelay", abi = "setDelay(uint256)")]
634    pub struct SetDelayCall(pub ::ethers_core::types::U256);
635    ///Container type for all input parameters for the `setPendingAdmin` function with signature `setPendingAdmin(address)` and selector `0x4dd18bf5`
636    #[derive(
637        Clone,
638        ::ethers_contract::EthCall,
639        ::ethers_contract::EthDisplay,
640        Default,
641        Debug,
642        PartialEq,
643        Eq,
644        Hash
645    )]
646    #[ethcall(name = "setPendingAdmin", abi = "setPendingAdmin(address)")]
647    pub struct SetPendingAdminCall(pub ::ethers_core::types::Address);
648    ///Container type for all of the contract's call
649    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
650    pub enum ICompoundTimelockCalls {
651        GracePeriod(GracePeriodCall),
652        MaximumDelay(MaximumDelayCall),
653        MinimumDelay(MinimumDelayCall),
654        AcceptAdmin(AcceptAdminCall),
655        Admin(AdminCall),
656        CancelTransaction(CancelTransactionCall),
657        Delay(DelayCall),
658        ExecuteTransaction(ExecuteTransactionCall),
659        PendingAdmin(PendingAdminCall),
660        QueueTransaction(QueueTransactionCall),
661        QueuedTransactions(QueuedTransactionsCall),
662        SetDelay(SetDelayCall),
663        SetPendingAdmin(SetPendingAdminCall),
664    }
665    impl ::ethers_core::abi::AbiDecode for ICompoundTimelockCalls {
666        fn decode(
667            data: impl AsRef<[u8]>,
668        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
669            let data = data.as_ref();
670            if let Ok(decoded)
671                = <GracePeriodCall as ::ethers_core::abi::AbiDecode>::decode(data) {
672                return Ok(Self::GracePeriod(decoded));
673            }
674            if let Ok(decoded)
675                = <MaximumDelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
676                return Ok(Self::MaximumDelay(decoded));
677            }
678            if let Ok(decoded)
679                = <MinimumDelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
680                return Ok(Self::MinimumDelay(decoded));
681            }
682            if let Ok(decoded)
683                = <AcceptAdminCall as ::ethers_core::abi::AbiDecode>::decode(data) {
684                return Ok(Self::AcceptAdmin(decoded));
685            }
686            if let Ok(decoded)
687                = <AdminCall as ::ethers_core::abi::AbiDecode>::decode(data) {
688                return Ok(Self::Admin(decoded));
689            }
690            if let Ok(decoded)
691                = <CancelTransactionCall as ::ethers_core::abi::AbiDecode>::decode(
692                    data,
693                ) {
694                return Ok(Self::CancelTransaction(decoded));
695            }
696            if let Ok(decoded)
697                = <DelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
698                return Ok(Self::Delay(decoded));
699            }
700            if let Ok(decoded)
701                = <ExecuteTransactionCall as ::ethers_core::abi::AbiDecode>::decode(
702                    data,
703                ) {
704                return Ok(Self::ExecuteTransaction(decoded));
705            }
706            if let Ok(decoded)
707                = <PendingAdminCall as ::ethers_core::abi::AbiDecode>::decode(data) {
708                return Ok(Self::PendingAdmin(decoded));
709            }
710            if let Ok(decoded)
711                = <QueueTransactionCall as ::ethers_core::abi::AbiDecode>::decode(data) {
712                return Ok(Self::QueueTransaction(decoded));
713            }
714            if let Ok(decoded)
715                = <QueuedTransactionsCall as ::ethers_core::abi::AbiDecode>::decode(
716                    data,
717                ) {
718                return Ok(Self::QueuedTransactions(decoded));
719            }
720            if let Ok(decoded)
721                = <SetDelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
722                return Ok(Self::SetDelay(decoded));
723            }
724            if let Ok(decoded)
725                = <SetPendingAdminCall as ::ethers_core::abi::AbiDecode>::decode(data) {
726                return Ok(Self::SetPendingAdmin(decoded));
727            }
728            Err(::ethers_core::abi::Error::InvalidData.into())
729        }
730    }
731    impl ::ethers_core::abi::AbiEncode for ICompoundTimelockCalls {
732        fn encode(self) -> Vec<u8> {
733            match self {
734                Self::GracePeriod(element) => {
735                    ::ethers_core::abi::AbiEncode::encode(element)
736                }
737                Self::MaximumDelay(element) => {
738                    ::ethers_core::abi::AbiEncode::encode(element)
739                }
740                Self::MinimumDelay(element) => {
741                    ::ethers_core::abi::AbiEncode::encode(element)
742                }
743                Self::AcceptAdmin(element) => {
744                    ::ethers_core::abi::AbiEncode::encode(element)
745                }
746                Self::Admin(element) => ::ethers_core::abi::AbiEncode::encode(element),
747                Self::CancelTransaction(element) => {
748                    ::ethers_core::abi::AbiEncode::encode(element)
749                }
750                Self::Delay(element) => ::ethers_core::abi::AbiEncode::encode(element),
751                Self::ExecuteTransaction(element) => {
752                    ::ethers_core::abi::AbiEncode::encode(element)
753                }
754                Self::PendingAdmin(element) => {
755                    ::ethers_core::abi::AbiEncode::encode(element)
756                }
757                Self::QueueTransaction(element) => {
758                    ::ethers_core::abi::AbiEncode::encode(element)
759                }
760                Self::QueuedTransactions(element) => {
761                    ::ethers_core::abi::AbiEncode::encode(element)
762                }
763                Self::SetDelay(element) => ::ethers_core::abi::AbiEncode::encode(element),
764                Self::SetPendingAdmin(element) => {
765                    ::ethers_core::abi::AbiEncode::encode(element)
766                }
767            }
768        }
769    }
770    impl ::core::fmt::Display for ICompoundTimelockCalls {
771        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
772            match self {
773                Self::GracePeriod(element) => ::core::fmt::Display::fmt(element, f),
774                Self::MaximumDelay(element) => ::core::fmt::Display::fmt(element, f),
775                Self::MinimumDelay(element) => ::core::fmt::Display::fmt(element, f),
776                Self::AcceptAdmin(element) => ::core::fmt::Display::fmt(element, f),
777                Self::Admin(element) => ::core::fmt::Display::fmt(element, f),
778                Self::CancelTransaction(element) => ::core::fmt::Display::fmt(element, f),
779                Self::Delay(element) => ::core::fmt::Display::fmt(element, f),
780                Self::ExecuteTransaction(element) => {
781                    ::core::fmt::Display::fmt(element, f)
782                }
783                Self::PendingAdmin(element) => ::core::fmt::Display::fmt(element, f),
784                Self::QueueTransaction(element) => ::core::fmt::Display::fmt(element, f),
785                Self::QueuedTransactions(element) => {
786                    ::core::fmt::Display::fmt(element, f)
787                }
788                Self::SetDelay(element) => ::core::fmt::Display::fmt(element, f),
789                Self::SetPendingAdmin(element) => ::core::fmt::Display::fmt(element, f),
790            }
791        }
792    }
793    impl ::core::convert::From<GracePeriodCall> for ICompoundTimelockCalls {
794        fn from(value: GracePeriodCall) -> Self {
795            Self::GracePeriod(value)
796        }
797    }
798    impl ::core::convert::From<MaximumDelayCall> for ICompoundTimelockCalls {
799        fn from(value: MaximumDelayCall) -> Self {
800            Self::MaximumDelay(value)
801        }
802    }
803    impl ::core::convert::From<MinimumDelayCall> for ICompoundTimelockCalls {
804        fn from(value: MinimumDelayCall) -> Self {
805            Self::MinimumDelay(value)
806        }
807    }
808    impl ::core::convert::From<AcceptAdminCall> for ICompoundTimelockCalls {
809        fn from(value: AcceptAdminCall) -> Self {
810            Self::AcceptAdmin(value)
811        }
812    }
813    impl ::core::convert::From<AdminCall> for ICompoundTimelockCalls {
814        fn from(value: AdminCall) -> Self {
815            Self::Admin(value)
816        }
817    }
818    impl ::core::convert::From<CancelTransactionCall> for ICompoundTimelockCalls {
819        fn from(value: CancelTransactionCall) -> Self {
820            Self::CancelTransaction(value)
821        }
822    }
823    impl ::core::convert::From<DelayCall> for ICompoundTimelockCalls {
824        fn from(value: DelayCall) -> Self {
825            Self::Delay(value)
826        }
827    }
828    impl ::core::convert::From<ExecuteTransactionCall> for ICompoundTimelockCalls {
829        fn from(value: ExecuteTransactionCall) -> Self {
830            Self::ExecuteTransaction(value)
831        }
832    }
833    impl ::core::convert::From<PendingAdminCall> for ICompoundTimelockCalls {
834        fn from(value: PendingAdminCall) -> Self {
835            Self::PendingAdmin(value)
836        }
837    }
838    impl ::core::convert::From<QueueTransactionCall> for ICompoundTimelockCalls {
839        fn from(value: QueueTransactionCall) -> Self {
840            Self::QueueTransaction(value)
841        }
842    }
843    impl ::core::convert::From<QueuedTransactionsCall> for ICompoundTimelockCalls {
844        fn from(value: QueuedTransactionsCall) -> Self {
845            Self::QueuedTransactions(value)
846        }
847    }
848    impl ::core::convert::From<SetDelayCall> for ICompoundTimelockCalls {
849        fn from(value: SetDelayCall) -> Self {
850            Self::SetDelay(value)
851        }
852    }
853    impl ::core::convert::From<SetPendingAdminCall> for ICompoundTimelockCalls {
854        fn from(value: SetPendingAdminCall) -> Self {
855            Self::SetPendingAdmin(value)
856        }
857    }
858    ///Container type for all return fields from the `GRACE_PERIOD` function with signature `GRACE_PERIOD()` and selector `0xc1a287e2`
859    #[derive(
860        Clone,
861        ::ethers_contract::EthAbiType,
862        ::ethers_contract::EthAbiCodec,
863        Default,
864        Debug,
865        PartialEq,
866        Eq,
867        Hash
868    )]
869    pub struct GracePeriodReturn(pub ::ethers_core::types::U256);
870    ///Container type for all return fields from the `MAXIMUM_DELAY` function with signature `MAXIMUM_DELAY()` and selector `0x7d645fab`
871    #[derive(
872        Clone,
873        ::ethers_contract::EthAbiType,
874        ::ethers_contract::EthAbiCodec,
875        Default,
876        Debug,
877        PartialEq,
878        Eq,
879        Hash
880    )]
881    pub struct MaximumDelayReturn(pub ::ethers_core::types::U256);
882    ///Container type for all return fields from the `MINIMUM_DELAY` function with signature `MINIMUM_DELAY()` and selector `0xb1b43ae5`
883    #[derive(
884        Clone,
885        ::ethers_contract::EthAbiType,
886        ::ethers_contract::EthAbiCodec,
887        Default,
888        Debug,
889        PartialEq,
890        Eq,
891        Hash
892    )]
893    pub struct MinimumDelayReturn(pub ::ethers_core::types::U256);
894    ///Container type for all return fields from the `admin` function with signature `admin()` and selector `0xf851a440`
895    #[derive(
896        Clone,
897        ::ethers_contract::EthAbiType,
898        ::ethers_contract::EthAbiCodec,
899        Default,
900        Debug,
901        PartialEq,
902        Eq,
903        Hash
904    )]
905    pub struct AdminReturn(pub ::ethers_core::types::Address);
906    ///Container type for all return fields from the `delay` function with signature `delay()` and selector `0x6a42b8f8`
907    #[derive(
908        Clone,
909        ::ethers_contract::EthAbiType,
910        ::ethers_contract::EthAbiCodec,
911        Default,
912        Debug,
913        PartialEq,
914        Eq,
915        Hash
916    )]
917    pub struct DelayReturn(pub ::ethers_core::types::U256);
918    ///Container type for all return fields from the `executeTransaction` function with signature `executeTransaction(address,uint256,string,bytes,uint256)` and selector `0x0825f38f`
919    #[derive(
920        Clone,
921        ::ethers_contract::EthAbiType,
922        ::ethers_contract::EthAbiCodec,
923        Default,
924        Debug,
925        PartialEq,
926        Eq,
927        Hash
928    )]
929    pub struct ExecuteTransactionReturn(pub ::ethers_core::types::Bytes);
930    ///Container type for all return fields from the `pendingAdmin` function with signature `pendingAdmin()` and selector `0x26782247`
931    #[derive(
932        Clone,
933        ::ethers_contract::EthAbiType,
934        ::ethers_contract::EthAbiCodec,
935        Default,
936        Debug,
937        PartialEq,
938        Eq,
939        Hash
940    )]
941    pub struct PendingAdminReturn(pub ::ethers_core::types::Address);
942    ///Container type for all return fields from the `queueTransaction` function with signature `queueTransaction(address,uint256,string,bytes,uint256)` and selector `0x3a66f901`
943    #[derive(
944        Clone,
945        ::ethers_contract::EthAbiType,
946        ::ethers_contract::EthAbiCodec,
947        Default,
948        Debug,
949        PartialEq,
950        Eq,
951        Hash
952    )]
953    pub struct QueueTransactionReturn(pub [u8; 32]);
954    ///Container type for all return fields from the `queuedTransactions` function with signature `queuedTransactions(bytes32)` and selector `0xf2b06537`
955    #[derive(
956        Clone,
957        ::ethers_contract::EthAbiType,
958        ::ethers_contract::EthAbiCodec,
959        Default,
960        Debug,
961        PartialEq,
962        Eq,
963        Hash
964    )]
965    pub struct QueuedTransactionsReturn(pub bool);
966}