openzeppelin_rs/contracts/
IGovernorTimelock.rs

1pub use i_governor_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_governor_timelock {
13    #[rustfmt::skip]
14    const __ABI: &str = "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ProposalCanceled\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\",\"components\":[],\"indexed\":false},{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\",\"components\":[],\"indexed\":false},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\",\"components\":[],\"indexed\":false},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"voteStart\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"voteEnd\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ProposalCreated\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ProposalExecuted\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"ProposalQueued\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"VoteCast\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\",\"components\":[],\"indexed\":false},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"VoteCastWithParams\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"CLOCK_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"cancel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\",\"components\":[]},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"pure\",\"type\":\"function\",\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"proposalProposer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static IGOVERNORTIMELOCK_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 IGovernorTimelock<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for IGovernorTimelock<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for IGovernorTimelock<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 IGovernorTimelock<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for IGovernorTimelock<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(IGovernorTimelock)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> IGovernorTimelock<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                    IGOVERNORTIMELOCK_ABI.clone(),
51                    client,
52                ),
53            )
54        }
55        ///Calls the contract's `CLOCK_MODE` (0x4bf5d7e9) function
56        pub fn clock_mode(
57            &self,
58        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
59            self.0
60                .method_hash([75, 245, 215, 233], ())
61                .expect("method not found (this should never happen)")
62        }
63        ///Calls the contract's `COUNTING_MODE` (0xdd4e2ba5) function
64        pub fn counting_mode(
65            &self,
66        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
67            self.0
68                .method_hash([221, 78, 43, 165], ())
69                .expect("method not found (this should never happen)")
70        }
71        ///Calls the contract's `cancel` (0x452115d6) function
72        pub fn cancel(
73            &self,
74            targets: ::std::vec::Vec<::ethers_core::types::Address>,
75            values: ::std::vec::Vec<::ethers_core::types::U256>,
76            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
77            description_hash: [u8; 32],
78        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
79            self.0
80                .method_hash(
81                    [69, 33, 21, 214],
82                    (targets, values, calldatas, description_hash),
83                )
84                .expect("method not found (this should never happen)")
85        }
86        ///Calls the contract's `castVote` (0x56781388) function
87        pub fn cast_vote(
88            &self,
89            proposal_id: ::ethers_core::types::U256,
90            support: u8,
91        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
92            self.0
93                .method_hash([86, 120, 19, 136], (proposal_id, support))
94                .expect("method not found (this should never happen)")
95        }
96        ///Calls the contract's `castVoteBySig` (0x3bccf4fd) function
97        pub fn cast_vote_by_sig(
98            &self,
99            proposal_id: ::ethers_core::types::U256,
100            support: u8,
101            v: u8,
102            r: [u8; 32],
103            s: [u8; 32],
104        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
105            self.0
106                .method_hash([59, 204, 244, 253], (proposal_id, support, v, r, s))
107                .expect("method not found (this should never happen)")
108        }
109        ///Calls the contract's `castVoteWithReason` (0x7b3c71d3) function
110        pub fn cast_vote_with_reason(
111            &self,
112            proposal_id: ::ethers_core::types::U256,
113            support: u8,
114            reason: ::std::string::String,
115        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
116            self.0
117                .method_hash([123, 60, 113, 211], (proposal_id, support, reason))
118                .expect("method not found (this should never happen)")
119        }
120        ///Calls the contract's `castVoteWithReasonAndParams` (0x5f398a14) function
121        pub fn cast_vote_with_reason_and_params(
122            &self,
123            proposal_id: ::ethers_core::types::U256,
124            support: u8,
125            reason: ::std::string::String,
126            params: ::ethers_core::types::Bytes,
127        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
128            self.0
129                .method_hash([95, 57, 138, 20], (proposal_id, support, reason, params))
130                .expect("method not found (this should never happen)")
131        }
132        ///Calls the contract's `castVoteWithReasonAndParamsBySig` (0x03420181) function
133        pub fn cast_vote_with_reason_and_params_by_sig(
134            &self,
135            proposal_id: ::ethers_core::types::U256,
136            support: u8,
137            reason: ::std::string::String,
138            params: ::ethers_core::types::Bytes,
139            v: u8,
140            r: [u8; 32],
141            s: [u8; 32],
142        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
143            self.0
144                .method_hash(
145                    [3, 66, 1, 129],
146                    (proposal_id, support, reason, params, v, r, s),
147                )
148                .expect("method not found (this should never happen)")
149        }
150        ///Calls the contract's `clock` (0x91ddadf4) function
151        pub fn clock(&self) -> ::ethers_contract::builders::ContractCall<M, u64> {
152            self.0
153                .method_hash([145, 221, 173, 244], ())
154                .expect("method not found (this should never happen)")
155        }
156        ///Calls the contract's `execute` (0x2656227d) function
157        pub fn execute(
158            &self,
159            targets: ::std::vec::Vec<::ethers_core::types::Address>,
160            values: ::std::vec::Vec<::ethers_core::types::U256>,
161            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
162            description_hash: [u8; 32],
163        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
164            self.0
165                .method_hash(
166                    [38, 86, 34, 125],
167                    (targets, values, calldatas, description_hash),
168                )
169                .expect("method not found (this should never happen)")
170        }
171        ///Calls the contract's `getVotes` (0xeb9019d4) function
172        pub fn get_votes(
173            &self,
174            account: ::ethers_core::types::Address,
175            timepoint: ::ethers_core::types::U256,
176        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
177            self.0
178                .method_hash([235, 144, 25, 212], (account, timepoint))
179                .expect("method not found (this should never happen)")
180        }
181        ///Calls the contract's `getVotesWithParams` (0x9a802a6d) function
182        pub fn get_votes_with_params(
183            &self,
184            account: ::ethers_core::types::Address,
185            timepoint: ::ethers_core::types::U256,
186            params: ::ethers_core::types::Bytes,
187        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
188            self.0
189                .method_hash([154, 128, 42, 109], (account, timepoint, params))
190                .expect("method not found (this should never happen)")
191        }
192        ///Calls the contract's `hasVoted` (0x43859632) function
193        pub fn has_voted(
194            &self,
195            proposal_id: ::ethers_core::types::U256,
196            account: ::ethers_core::types::Address,
197        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
198            self.0
199                .method_hash([67, 133, 150, 50], (proposal_id, account))
200                .expect("method not found (this should never happen)")
201        }
202        ///Calls the contract's `hashProposal` (0xc59057e4) function
203        pub fn hash_proposal(
204            &self,
205            targets: ::std::vec::Vec<::ethers_core::types::Address>,
206            values: ::std::vec::Vec<::ethers_core::types::U256>,
207            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
208            description_hash: [u8; 32],
209        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
210            self.0
211                .method_hash(
212                    [197, 144, 87, 228],
213                    (targets, values, calldatas, description_hash),
214                )
215                .expect("method not found (this should never happen)")
216        }
217        ///Calls the contract's `name` (0x06fdde03) function
218        pub fn name(
219            &self,
220        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
221            self.0
222                .method_hash([6, 253, 222, 3], ())
223                .expect("method not found (this should never happen)")
224        }
225        ///Calls the contract's `proposalDeadline` (0xc01f9e37) function
226        pub fn proposal_deadline(
227            &self,
228            proposal_id: ::ethers_core::types::U256,
229        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
230            self.0
231                .method_hash([192, 31, 158, 55], proposal_id)
232                .expect("method not found (this should never happen)")
233        }
234        ///Calls the contract's `proposalEta` (0xab58fb8e) function
235        pub fn proposal_eta(
236            &self,
237            proposal_id: ::ethers_core::types::U256,
238        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
239            self.0
240                .method_hash([171, 88, 251, 142], proposal_id)
241                .expect("method not found (this should never happen)")
242        }
243        ///Calls the contract's `proposalProposer` (0x143489d0) function
244        pub fn proposal_proposer(
245            &self,
246            proposal_id: ::ethers_core::types::U256,
247        ) -> ::ethers_contract::builders::ContractCall<
248            M,
249            ::ethers_core::types::Address,
250        > {
251            self.0
252                .method_hash([20, 52, 137, 208], proposal_id)
253                .expect("method not found (this should never happen)")
254        }
255        ///Calls the contract's `proposalSnapshot` (0x2d63f693) function
256        pub fn proposal_snapshot(
257            &self,
258            proposal_id: ::ethers_core::types::U256,
259        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
260            self.0
261                .method_hash([45, 99, 246, 147], proposal_id)
262                .expect("method not found (this should never happen)")
263        }
264        ///Calls the contract's `propose` (0x7d5e81e2) function
265        pub fn propose(
266            &self,
267            targets: ::std::vec::Vec<::ethers_core::types::Address>,
268            values: ::std::vec::Vec<::ethers_core::types::U256>,
269            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
270            description: ::std::string::String,
271        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
272            self.0
273                .method_hash(
274                    [125, 94, 129, 226],
275                    (targets, values, calldatas, description),
276                )
277                .expect("method not found (this should never happen)")
278        }
279        ///Calls the contract's `queue` (0x160cbed7) function
280        pub fn queue(
281            &self,
282            targets: ::std::vec::Vec<::ethers_core::types::Address>,
283            values: ::std::vec::Vec<::ethers_core::types::U256>,
284            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
285            description_hash: [u8; 32],
286        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
287            self.0
288                .method_hash(
289                    [22, 12, 190, 215],
290                    (targets, values, calldatas, description_hash),
291                )
292                .expect("method not found (this should never happen)")
293        }
294        ///Calls the contract's `quorum` (0xf8ce560a) function
295        pub fn quorum(
296            &self,
297            timepoint: ::ethers_core::types::U256,
298        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
299            self.0
300                .method_hash([248, 206, 86, 10], timepoint)
301                .expect("method not found (this should never happen)")
302        }
303        ///Calls the contract's `state` (0x3e4f49e6) function
304        pub fn state(
305            &self,
306            proposal_id: ::ethers_core::types::U256,
307        ) -> ::ethers_contract::builders::ContractCall<M, u8> {
308            self.0
309                .method_hash([62, 79, 73, 230], proposal_id)
310                .expect("method not found (this should never happen)")
311        }
312        ///Calls the contract's `supportsInterface` (0x01ffc9a7) function
313        pub fn supports_interface(
314            &self,
315            interface_id: [u8; 4],
316        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
317            self.0
318                .method_hash([1, 255, 201, 167], interface_id)
319                .expect("method not found (this should never happen)")
320        }
321        ///Calls the contract's `timelock` (0xd33219b4) function
322        pub fn timelock(
323            &self,
324        ) -> ::ethers_contract::builders::ContractCall<
325            M,
326            ::ethers_core::types::Address,
327        > {
328            self.0
329                .method_hash([211, 50, 25, 180], ())
330                .expect("method not found (this should never happen)")
331        }
332        ///Calls the contract's `version` (0x54fd4d50) function
333        pub fn version(
334            &self,
335        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
336            self.0
337                .method_hash([84, 253, 77, 80], ())
338                .expect("method not found (this should never happen)")
339        }
340        ///Calls the contract's `votingDelay` (0x3932abb1) function
341        pub fn voting_delay(
342            &self,
343        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
344            self.0
345                .method_hash([57, 50, 171, 177], ())
346                .expect("method not found (this should never happen)")
347        }
348        ///Calls the contract's `votingPeriod` (0x02a251a3) function
349        pub fn voting_period(
350            &self,
351        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
352            self.0
353                .method_hash([2, 162, 81, 163], ())
354                .expect("method not found (this should never happen)")
355        }
356        ///Gets the contract's `ProposalCanceled` event
357        pub fn proposal_canceled_filter(
358            &self,
359        ) -> ::ethers_contract::builders::Event<
360            ::std::sync::Arc<M>,
361            M,
362            ProposalCanceledFilter,
363        > {
364            self.0.event()
365        }
366        ///Gets the contract's `ProposalCreated` event
367        pub fn proposal_created_filter(
368            &self,
369        ) -> ::ethers_contract::builders::Event<
370            ::std::sync::Arc<M>,
371            M,
372            ProposalCreatedFilter,
373        > {
374            self.0.event()
375        }
376        ///Gets the contract's `ProposalExecuted` event
377        pub fn proposal_executed_filter(
378            &self,
379        ) -> ::ethers_contract::builders::Event<
380            ::std::sync::Arc<M>,
381            M,
382            ProposalExecutedFilter,
383        > {
384            self.0.event()
385        }
386        ///Gets the contract's `ProposalQueued` event
387        pub fn proposal_queued_filter(
388            &self,
389        ) -> ::ethers_contract::builders::Event<
390            ::std::sync::Arc<M>,
391            M,
392            ProposalQueuedFilter,
393        > {
394            self.0.event()
395        }
396        ///Gets the contract's `VoteCast` event
397        pub fn vote_cast_filter(
398            &self,
399        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, VoteCastFilter> {
400            self.0.event()
401        }
402        ///Gets the contract's `VoteCastWithParams` event
403        pub fn vote_cast_with_params_filter(
404            &self,
405        ) -> ::ethers_contract::builders::Event<
406            ::std::sync::Arc<M>,
407            M,
408            VoteCastWithParamsFilter,
409        > {
410            self.0.event()
411        }
412        /// Returns an `Event` builder for all the events of this contract.
413        pub fn events(
414            &self,
415        ) -> ::ethers_contract::builders::Event<
416            ::std::sync::Arc<M>,
417            M,
418            IGovernorTimelockEvents,
419        > {
420            self.0.event_with_filter(::core::default::Default::default())
421        }
422    }
423    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
424    for IGovernorTimelock<M> {
425        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
426            Self::new(contract.address(), contract.client())
427        }
428    }
429    #[derive(
430        Clone,
431        ::ethers_contract::EthEvent,
432        ::ethers_contract::EthDisplay,
433        Default,
434        Debug,
435        PartialEq,
436        Eq,
437        Hash
438    )]
439    #[ethevent(name = "ProposalCanceled", abi = "ProposalCanceled(uint256)")]
440    pub struct ProposalCanceledFilter {
441        pub proposal_id: ::ethers_core::types::U256,
442    }
443    #[derive(
444        Clone,
445        ::ethers_contract::EthEvent,
446        ::ethers_contract::EthDisplay,
447        Default,
448        Debug,
449        PartialEq,
450        Eq,
451        Hash
452    )]
453    #[ethevent(
454        name = "ProposalCreated",
455        abi = "ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)"
456    )]
457    pub struct ProposalCreatedFilter {
458        pub proposal_id: ::ethers_core::types::U256,
459        pub proposer: ::ethers_core::types::Address,
460        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
461        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
462        pub signatures: ::std::vec::Vec<::std::string::String>,
463        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
464        pub vote_start: ::ethers_core::types::U256,
465        pub vote_end: ::ethers_core::types::U256,
466        pub description: ::std::string::String,
467    }
468    #[derive(
469        Clone,
470        ::ethers_contract::EthEvent,
471        ::ethers_contract::EthDisplay,
472        Default,
473        Debug,
474        PartialEq,
475        Eq,
476        Hash
477    )]
478    #[ethevent(name = "ProposalExecuted", abi = "ProposalExecuted(uint256)")]
479    pub struct ProposalExecutedFilter {
480        pub proposal_id: ::ethers_core::types::U256,
481    }
482    #[derive(
483        Clone,
484        ::ethers_contract::EthEvent,
485        ::ethers_contract::EthDisplay,
486        Default,
487        Debug,
488        PartialEq,
489        Eq,
490        Hash
491    )]
492    #[ethevent(name = "ProposalQueued", abi = "ProposalQueued(uint256,uint256)")]
493    pub struct ProposalQueuedFilter {
494        pub proposal_id: ::ethers_core::types::U256,
495        pub eta: ::ethers_core::types::U256,
496    }
497    #[derive(
498        Clone,
499        ::ethers_contract::EthEvent,
500        ::ethers_contract::EthDisplay,
501        Default,
502        Debug,
503        PartialEq,
504        Eq,
505        Hash
506    )]
507    #[ethevent(
508        name = "VoteCast",
509        abi = "VoteCast(address,uint256,uint8,uint256,string)"
510    )]
511    pub struct VoteCastFilter {
512        #[ethevent(indexed)]
513        pub voter: ::ethers_core::types::Address,
514        pub proposal_id: ::ethers_core::types::U256,
515        pub support: u8,
516        pub weight: ::ethers_core::types::U256,
517        pub reason: ::std::string::String,
518    }
519    #[derive(
520        Clone,
521        ::ethers_contract::EthEvent,
522        ::ethers_contract::EthDisplay,
523        Default,
524        Debug,
525        PartialEq,
526        Eq,
527        Hash
528    )]
529    #[ethevent(
530        name = "VoteCastWithParams",
531        abi = "VoteCastWithParams(address,uint256,uint8,uint256,string,bytes)"
532    )]
533    pub struct VoteCastWithParamsFilter {
534        #[ethevent(indexed)]
535        pub voter: ::ethers_core::types::Address,
536        pub proposal_id: ::ethers_core::types::U256,
537        pub support: u8,
538        pub weight: ::ethers_core::types::U256,
539        pub reason: ::std::string::String,
540        pub params: ::ethers_core::types::Bytes,
541    }
542    ///Container type for all of the contract's events
543    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
544    pub enum IGovernorTimelockEvents {
545        ProposalCanceledFilter(ProposalCanceledFilter),
546        ProposalCreatedFilter(ProposalCreatedFilter),
547        ProposalExecutedFilter(ProposalExecutedFilter),
548        ProposalQueuedFilter(ProposalQueuedFilter),
549        VoteCastFilter(VoteCastFilter),
550        VoteCastWithParamsFilter(VoteCastWithParamsFilter),
551    }
552    impl ::ethers_contract::EthLogDecode for IGovernorTimelockEvents {
553        fn decode_log(
554            log: &::ethers_core::abi::RawLog,
555        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
556            if let Ok(decoded) = ProposalCanceledFilter::decode_log(log) {
557                return Ok(IGovernorTimelockEvents::ProposalCanceledFilter(decoded));
558            }
559            if let Ok(decoded) = ProposalCreatedFilter::decode_log(log) {
560                return Ok(IGovernorTimelockEvents::ProposalCreatedFilter(decoded));
561            }
562            if let Ok(decoded) = ProposalExecutedFilter::decode_log(log) {
563                return Ok(IGovernorTimelockEvents::ProposalExecutedFilter(decoded));
564            }
565            if let Ok(decoded) = ProposalQueuedFilter::decode_log(log) {
566                return Ok(IGovernorTimelockEvents::ProposalQueuedFilter(decoded));
567            }
568            if let Ok(decoded) = VoteCastFilter::decode_log(log) {
569                return Ok(IGovernorTimelockEvents::VoteCastFilter(decoded));
570            }
571            if let Ok(decoded) = VoteCastWithParamsFilter::decode_log(log) {
572                return Ok(IGovernorTimelockEvents::VoteCastWithParamsFilter(decoded));
573            }
574            Err(::ethers_core::abi::Error::InvalidData)
575        }
576    }
577    impl ::core::fmt::Display for IGovernorTimelockEvents {
578        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
579            match self {
580                Self::ProposalCanceledFilter(element) => {
581                    ::core::fmt::Display::fmt(element, f)
582                }
583                Self::ProposalCreatedFilter(element) => {
584                    ::core::fmt::Display::fmt(element, f)
585                }
586                Self::ProposalExecutedFilter(element) => {
587                    ::core::fmt::Display::fmt(element, f)
588                }
589                Self::ProposalQueuedFilter(element) => {
590                    ::core::fmt::Display::fmt(element, f)
591                }
592                Self::VoteCastFilter(element) => ::core::fmt::Display::fmt(element, f),
593                Self::VoteCastWithParamsFilter(element) => {
594                    ::core::fmt::Display::fmt(element, f)
595                }
596            }
597        }
598    }
599    impl ::core::convert::From<ProposalCanceledFilter> for IGovernorTimelockEvents {
600        fn from(value: ProposalCanceledFilter) -> Self {
601            Self::ProposalCanceledFilter(value)
602        }
603    }
604    impl ::core::convert::From<ProposalCreatedFilter> for IGovernorTimelockEvents {
605        fn from(value: ProposalCreatedFilter) -> Self {
606            Self::ProposalCreatedFilter(value)
607        }
608    }
609    impl ::core::convert::From<ProposalExecutedFilter> for IGovernorTimelockEvents {
610        fn from(value: ProposalExecutedFilter) -> Self {
611            Self::ProposalExecutedFilter(value)
612        }
613    }
614    impl ::core::convert::From<ProposalQueuedFilter> for IGovernorTimelockEvents {
615        fn from(value: ProposalQueuedFilter) -> Self {
616            Self::ProposalQueuedFilter(value)
617        }
618    }
619    impl ::core::convert::From<VoteCastFilter> for IGovernorTimelockEvents {
620        fn from(value: VoteCastFilter) -> Self {
621            Self::VoteCastFilter(value)
622        }
623    }
624    impl ::core::convert::From<VoteCastWithParamsFilter> for IGovernorTimelockEvents {
625        fn from(value: VoteCastWithParamsFilter) -> Self {
626            Self::VoteCastWithParamsFilter(value)
627        }
628    }
629    ///Container type for all input parameters for the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
630    #[derive(
631        Clone,
632        ::ethers_contract::EthCall,
633        ::ethers_contract::EthDisplay,
634        Default,
635        Debug,
636        PartialEq,
637        Eq,
638        Hash
639    )]
640    #[ethcall(name = "CLOCK_MODE", abi = "CLOCK_MODE()")]
641    pub struct ClockModeCall;
642    ///Container type for all input parameters for the `COUNTING_MODE` function with signature `COUNTING_MODE()` and selector `0xdd4e2ba5`
643    #[derive(
644        Clone,
645        ::ethers_contract::EthCall,
646        ::ethers_contract::EthDisplay,
647        Default,
648        Debug,
649        PartialEq,
650        Eq,
651        Hash
652    )]
653    #[ethcall(name = "COUNTING_MODE", abi = "COUNTING_MODE()")]
654    pub struct CountingModeCall;
655    ///Container type for all input parameters for the `cancel` function with signature `cancel(address[],uint256[],bytes[],bytes32)` and selector `0x452115d6`
656    #[derive(
657        Clone,
658        ::ethers_contract::EthCall,
659        ::ethers_contract::EthDisplay,
660        Default,
661        Debug,
662        PartialEq,
663        Eq,
664        Hash
665    )]
666    #[ethcall(name = "cancel", abi = "cancel(address[],uint256[],bytes[],bytes32)")]
667    pub struct CancelCall {
668        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
669        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
670        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
671        pub description_hash: [u8; 32],
672    }
673    ///Container type for all input parameters for the `castVote` function with signature `castVote(uint256,uint8)` and selector `0x56781388`
674    #[derive(
675        Clone,
676        ::ethers_contract::EthCall,
677        ::ethers_contract::EthDisplay,
678        Default,
679        Debug,
680        PartialEq,
681        Eq,
682        Hash
683    )]
684    #[ethcall(name = "castVote", abi = "castVote(uint256,uint8)")]
685    pub struct CastVoteCall {
686        pub proposal_id: ::ethers_core::types::U256,
687        pub support: u8,
688    }
689    ///Container type for all input parameters for the `castVoteBySig` function with signature `castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)` and selector `0x3bccf4fd`
690    #[derive(
691        Clone,
692        ::ethers_contract::EthCall,
693        ::ethers_contract::EthDisplay,
694        Default,
695        Debug,
696        PartialEq,
697        Eq,
698        Hash
699    )]
700    #[ethcall(
701        name = "castVoteBySig",
702        abi = "castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)"
703    )]
704    pub struct CastVoteBySigCall {
705        pub proposal_id: ::ethers_core::types::U256,
706        pub support: u8,
707        pub v: u8,
708        pub r: [u8; 32],
709        pub s: [u8; 32],
710    }
711    ///Container type for all input parameters for the `castVoteWithReason` function with signature `castVoteWithReason(uint256,uint8,string)` and selector `0x7b3c71d3`
712    #[derive(
713        Clone,
714        ::ethers_contract::EthCall,
715        ::ethers_contract::EthDisplay,
716        Default,
717        Debug,
718        PartialEq,
719        Eq,
720        Hash
721    )]
722    #[ethcall(
723        name = "castVoteWithReason",
724        abi = "castVoteWithReason(uint256,uint8,string)"
725    )]
726    pub struct CastVoteWithReasonCall {
727        pub proposal_id: ::ethers_core::types::U256,
728        pub support: u8,
729        pub reason: ::std::string::String,
730    }
731    ///Container type for all input parameters for the `castVoteWithReasonAndParams` function with signature `castVoteWithReasonAndParams(uint256,uint8,string,bytes)` and selector `0x5f398a14`
732    #[derive(
733        Clone,
734        ::ethers_contract::EthCall,
735        ::ethers_contract::EthDisplay,
736        Default,
737        Debug,
738        PartialEq,
739        Eq,
740        Hash
741    )]
742    #[ethcall(
743        name = "castVoteWithReasonAndParams",
744        abi = "castVoteWithReasonAndParams(uint256,uint8,string,bytes)"
745    )]
746    pub struct CastVoteWithReasonAndParamsCall {
747        pub proposal_id: ::ethers_core::types::U256,
748        pub support: u8,
749        pub reason: ::std::string::String,
750        pub params: ::ethers_core::types::Bytes,
751    }
752    ///Container type for all input parameters for the `castVoteWithReasonAndParamsBySig` function with signature `castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)` and selector `0x03420181`
753    #[derive(
754        Clone,
755        ::ethers_contract::EthCall,
756        ::ethers_contract::EthDisplay,
757        Default,
758        Debug,
759        PartialEq,
760        Eq,
761        Hash
762    )]
763    #[ethcall(
764        name = "castVoteWithReasonAndParamsBySig",
765        abi = "castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)"
766    )]
767    pub struct CastVoteWithReasonAndParamsBySigCall {
768        pub proposal_id: ::ethers_core::types::U256,
769        pub support: u8,
770        pub reason: ::std::string::String,
771        pub params: ::ethers_core::types::Bytes,
772        pub v: u8,
773        pub r: [u8; 32],
774        pub s: [u8; 32],
775    }
776    ///Container type for all input parameters for the `clock` function with signature `clock()` and selector `0x91ddadf4`
777    #[derive(
778        Clone,
779        ::ethers_contract::EthCall,
780        ::ethers_contract::EthDisplay,
781        Default,
782        Debug,
783        PartialEq,
784        Eq,
785        Hash
786    )]
787    #[ethcall(name = "clock", abi = "clock()")]
788    pub struct ClockCall;
789    ///Container type for all input parameters for the `execute` function with signature `execute(address[],uint256[],bytes[],bytes32)` and selector `0x2656227d`
790    #[derive(
791        Clone,
792        ::ethers_contract::EthCall,
793        ::ethers_contract::EthDisplay,
794        Default,
795        Debug,
796        PartialEq,
797        Eq,
798        Hash
799    )]
800    #[ethcall(name = "execute", abi = "execute(address[],uint256[],bytes[],bytes32)")]
801    pub struct ExecuteCall {
802        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
803        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
804        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
805        pub description_hash: [u8; 32],
806    }
807    ///Container type for all input parameters for the `getVotes` function with signature `getVotes(address,uint256)` and selector `0xeb9019d4`
808    #[derive(
809        Clone,
810        ::ethers_contract::EthCall,
811        ::ethers_contract::EthDisplay,
812        Default,
813        Debug,
814        PartialEq,
815        Eq,
816        Hash
817    )]
818    #[ethcall(name = "getVotes", abi = "getVotes(address,uint256)")]
819    pub struct GetVotesCall {
820        pub account: ::ethers_core::types::Address,
821        pub timepoint: ::ethers_core::types::U256,
822    }
823    ///Container type for all input parameters for the `getVotesWithParams` function with signature `getVotesWithParams(address,uint256,bytes)` and selector `0x9a802a6d`
824    #[derive(
825        Clone,
826        ::ethers_contract::EthCall,
827        ::ethers_contract::EthDisplay,
828        Default,
829        Debug,
830        PartialEq,
831        Eq,
832        Hash
833    )]
834    #[ethcall(
835        name = "getVotesWithParams",
836        abi = "getVotesWithParams(address,uint256,bytes)"
837    )]
838    pub struct GetVotesWithParamsCall {
839        pub account: ::ethers_core::types::Address,
840        pub timepoint: ::ethers_core::types::U256,
841        pub params: ::ethers_core::types::Bytes,
842    }
843    ///Container type for all input parameters for the `hasVoted` function with signature `hasVoted(uint256,address)` and selector `0x43859632`
844    #[derive(
845        Clone,
846        ::ethers_contract::EthCall,
847        ::ethers_contract::EthDisplay,
848        Default,
849        Debug,
850        PartialEq,
851        Eq,
852        Hash
853    )]
854    #[ethcall(name = "hasVoted", abi = "hasVoted(uint256,address)")]
855    pub struct HasVotedCall {
856        pub proposal_id: ::ethers_core::types::U256,
857        pub account: ::ethers_core::types::Address,
858    }
859    ///Container type for all input parameters for the `hashProposal` function with signature `hashProposal(address[],uint256[],bytes[],bytes32)` and selector `0xc59057e4`
860    #[derive(
861        Clone,
862        ::ethers_contract::EthCall,
863        ::ethers_contract::EthDisplay,
864        Default,
865        Debug,
866        PartialEq,
867        Eq,
868        Hash
869    )]
870    #[ethcall(
871        name = "hashProposal",
872        abi = "hashProposal(address[],uint256[],bytes[],bytes32)"
873    )]
874    pub struct HashProposalCall {
875        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
876        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
877        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
878        pub description_hash: [u8; 32],
879    }
880    ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03`
881    #[derive(
882        Clone,
883        ::ethers_contract::EthCall,
884        ::ethers_contract::EthDisplay,
885        Default,
886        Debug,
887        PartialEq,
888        Eq,
889        Hash
890    )]
891    #[ethcall(name = "name", abi = "name()")]
892    pub struct NameCall;
893    ///Container type for all input parameters for the `proposalDeadline` function with signature `proposalDeadline(uint256)` and selector `0xc01f9e37`
894    #[derive(
895        Clone,
896        ::ethers_contract::EthCall,
897        ::ethers_contract::EthDisplay,
898        Default,
899        Debug,
900        PartialEq,
901        Eq,
902        Hash
903    )]
904    #[ethcall(name = "proposalDeadline", abi = "proposalDeadline(uint256)")]
905    pub struct ProposalDeadlineCall {
906        pub proposal_id: ::ethers_core::types::U256,
907    }
908    ///Container type for all input parameters for the `proposalEta` function with signature `proposalEta(uint256)` and selector `0xab58fb8e`
909    #[derive(
910        Clone,
911        ::ethers_contract::EthCall,
912        ::ethers_contract::EthDisplay,
913        Default,
914        Debug,
915        PartialEq,
916        Eq,
917        Hash
918    )]
919    #[ethcall(name = "proposalEta", abi = "proposalEta(uint256)")]
920    pub struct ProposalEtaCall {
921        pub proposal_id: ::ethers_core::types::U256,
922    }
923    ///Container type for all input parameters for the `proposalProposer` function with signature `proposalProposer(uint256)` and selector `0x143489d0`
924    #[derive(
925        Clone,
926        ::ethers_contract::EthCall,
927        ::ethers_contract::EthDisplay,
928        Default,
929        Debug,
930        PartialEq,
931        Eq,
932        Hash
933    )]
934    #[ethcall(name = "proposalProposer", abi = "proposalProposer(uint256)")]
935    pub struct ProposalProposerCall {
936        pub proposal_id: ::ethers_core::types::U256,
937    }
938    ///Container type for all input parameters for the `proposalSnapshot` function with signature `proposalSnapshot(uint256)` and selector `0x2d63f693`
939    #[derive(
940        Clone,
941        ::ethers_contract::EthCall,
942        ::ethers_contract::EthDisplay,
943        Default,
944        Debug,
945        PartialEq,
946        Eq,
947        Hash
948    )]
949    #[ethcall(name = "proposalSnapshot", abi = "proposalSnapshot(uint256)")]
950    pub struct ProposalSnapshotCall {
951        pub proposal_id: ::ethers_core::types::U256,
952    }
953    ///Container type for all input parameters for the `propose` function with signature `propose(address[],uint256[],bytes[],string)` and selector `0x7d5e81e2`
954    #[derive(
955        Clone,
956        ::ethers_contract::EthCall,
957        ::ethers_contract::EthDisplay,
958        Default,
959        Debug,
960        PartialEq,
961        Eq,
962        Hash
963    )]
964    #[ethcall(name = "propose", abi = "propose(address[],uint256[],bytes[],string)")]
965    pub struct ProposeCall {
966        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
967        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
968        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
969        pub description: ::std::string::String,
970    }
971    ///Container type for all input parameters for the `queue` function with signature `queue(address[],uint256[],bytes[],bytes32)` and selector `0x160cbed7`
972    #[derive(
973        Clone,
974        ::ethers_contract::EthCall,
975        ::ethers_contract::EthDisplay,
976        Default,
977        Debug,
978        PartialEq,
979        Eq,
980        Hash
981    )]
982    #[ethcall(name = "queue", abi = "queue(address[],uint256[],bytes[],bytes32)")]
983    pub struct QueueCall {
984        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
985        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
986        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
987        pub description_hash: [u8; 32],
988    }
989    ///Container type for all input parameters for the `quorum` function with signature `quorum(uint256)` and selector `0xf8ce560a`
990    #[derive(
991        Clone,
992        ::ethers_contract::EthCall,
993        ::ethers_contract::EthDisplay,
994        Default,
995        Debug,
996        PartialEq,
997        Eq,
998        Hash
999    )]
1000    #[ethcall(name = "quorum", abi = "quorum(uint256)")]
1001    pub struct QuorumCall {
1002        pub timepoint: ::ethers_core::types::U256,
1003    }
1004    ///Container type for all input parameters for the `state` function with signature `state(uint256)` and selector `0x3e4f49e6`
1005    #[derive(
1006        Clone,
1007        ::ethers_contract::EthCall,
1008        ::ethers_contract::EthDisplay,
1009        Default,
1010        Debug,
1011        PartialEq,
1012        Eq,
1013        Hash
1014    )]
1015    #[ethcall(name = "state", abi = "state(uint256)")]
1016    pub struct StateCall {
1017        pub proposal_id: ::ethers_core::types::U256,
1018    }
1019    ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
1020    #[derive(
1021        Clone,
1022        ::ethers_contract::EthCall,
1023        ::ethers_contract::EthDisplay,
1024        Default,
1025        Debug,
1026        PartialEq,
1027        Eq,
1028        Hash
1029    )]
1030    #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")]
1031    pub struct SupportsInterfaceCall {
1032        pub interface_id: [u8; 4],
1033    }
1034    ///Container type for all input parameters for the `timelock` function with signature `timelock()` and selector `0xd33219b4`
1035    #[derive(
1036        Clone,
1037        ::ethers_contract::EthCall,
1038        ::ethers_contract::EthDisplay,
1039        Default,
1040        Debug,
1041        PartialEq,
1042        Eq,
1043        Hash
1044    )]
1045    #[ethcall(name = "timelock", abi = "timelock()")]
1046    pub struct TimelockCall;
1047    ///Container type for all input parameters for the `version` function with signature `version()` and selector `0x54fd4d50`
1048    #[derive(
1049        Clone,
1050        ::ethers_contract::EthCall,
1051        ::ethers_contract::EthDisplay,
1052        Default,
1053        Debug,
1054        PartialEq,
1055        Eq,
1056        Hash
1057    )]
1058    #[ethcall(name = "version", abi = "version()")]
1059    pub struct VersionCall;
1060    ///Container type for all input parameters for the `votingDelay` function with signature `votingDelay()` and selector `0x3932abb1`
1061    #[derive(
1062        Clone,
1063        ::ethers_contract::EthCall,
1064        ::ethers_contract::EthDisplay,
1065        Default,
1066        Debug,
1067        PartialEq,
1068        Eq,
1069        Hash
1070    )]
1071    #[ethcall(name = "votingDelay", abi = "votingDelay()")]
1072    pub struct VotingDelayCall;
1073    ///Container type for all input parameters for the `votingPeriod` function with signature `votingPeriod()` and selector `0x02a251a3`
1074    #[derive(
1075        Clone,
1076        ::ethers_contract::EthCall,
1077        ::ethers_contract::EthDisplay,
1078        Default,
1079        Debug,
1080        PartialEq,
1081        Eq,
1082        Hash
1083    )]
1084    #[ethcall(name = "votingPeriod", abi = "votingPeriod()")]
1085    pub struct VotingPeriodCall;
1086    ///Container type for all of the contract's call
1087    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
1088    pub enum IGovernorTimelockCalls {
1089        ClockMode(ClockModeCall),
1090        CountingMode(CountingModeCall),
1091        Cancel(CancelCall),
1092        CastVote(CastVoteCall),
1093        CastVoteBySig(CastVoteBySigCall),
1094        CastVoteWithReason(CastVoteWithReasonCall),
1095        CastVoteWithReasonAndParams(CastVoteWithReasonAndParamsCall),
1096        CastVoteWithReasonAndParamsBySig(CastVoteWithReasonAndParamsBySigCall),
1097        Clock(ClockCall),
1098        Execute(ExecuteCall),
1099        GetVotes(GetVotesCall),
1100        GetVotesWithParams(GetVotesWithParamsCall),
1101        HasVoted(HasVotedCall),
1102        HashProposal(HashProposalCall),
1103        Name(NameCall),
1104        ProposalDeadline(ProposalDeadlineCall),
1105        ProposalEta(ProposalEtaCall),
1106        ProposalProposer(ProposalProposerCall),
1107        ProposalSnapshot(ProposalSnapshotCall),
1108        Propose(ProposeCall),
1109        Queue(QueueCall),
1110        Quorum(QuorumCall),
1111        State(StateCall),
1112        SupportsInterface(SupportsInterfaceCall),
1113        Timelock(TimelockCall),
1114        Version(VersionCall),
1115        VotingDelay(VotingDelayCall),
1116        VotingPeriod(VotingPeriodCall),
1117    }
1118    impl ::ethers_core::abi::AbiDecode for IGovernorTimelockCalls {
1119        fn decode(
1120            data: impl AsRef<[u8]>,
1121        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
1122            let data = data.as_ref();
1123            if let Ok(decoded)
1124                = <ClockModeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1125                return Ok(Self::ClockMode(decoded));
1126            }
1127            if let Ok(decoded)
1128                = <CountingModeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1129                return Ok(Self::CountingMode(decoded));
1130            }
1131            if let Ok(decoded)
1132                = <CancelCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1133                return Ok(Self::Cancel(decoded));
1134            }
1135            if let Ok(decoded)
1136                = <CastVoteCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1137                return Ok(Self::CastVote(decoded));
1138            }
1139            if let Ok(decoded)
1140                = <CastVoteBySigCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1141                return Ok(Self::CastVoteBySig(decoded));
1142            }
1143            if let Ok(decoded)
1144                = <CastVoteWithReasonCall as ::ethers_core::abi::AbiDecode>::decode(
1145                    data,
1146                ) {
1147                return Ok(Self::CastVoteWithReason(decoded));
1148            }
1149            if let Ok(decoded)
1150                = <CastVoteWithReasonAndParamsCall as ::ethers_core::abi::AbiDecode>::decode(
1151                    data,
1152                ) {
1153                return Ok(Self::CastVoteWithReasonAndParams(decoded));
1154            }
1155            if let Ok(decoded)
1156                = <CastVoteWithReasonAndParamsBySigCall as ::ethers_core::abi::AbiDecode>::decode(
1157                    data,
1158                ) {
1159                return Ok(Self::CastVoteWithReasonAndParamsBySig(decoded));
1160            }
1161            if let Ok(decoded)
1162                = <ClockCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1163                return Ok(Self::Clock(decoded));
1164            }
1165            if let Ok(decoded)
1166                = <ExecuteCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1167                return Ok(Self::Execute(decoded));
1168            }
1169            if let Ok(decoded)
1170                = <GetVotesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1171                return Ok(Self::GetVotes(decoded));
1172            }
1173            if let Ok(decoded)
1174                = <GetVotesWithParamsCall as ::ethers_core::abi::AbiDecode>::decode(
1175                    data,
1176                ) {
1177                return Ok(Self::GetVotesWithParams(decoded));
1178            }
1179            if let Ok(decoded)
1180                = <HasVotedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1181                return Ok(Self::HasVoted(decoded));
1182            }
1183            if let Ok(decoded)
1184                = <HashProposalCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1185                return Ok(Self::HashProposal(decoded));
1186            }
1187            if let Ok(decoded)
1188                = <NameCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1189                return Ok(Self::Name(decoded));
1190            }
1191            if let Ok(decoded)
1192                = <ProposalDeadlineCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1193                return Ok(Self::ProposalDeadline(decoded));
1194            }
1195            if let Ok(decoded)
1196                = <ProposalEtaCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1197                return Ok(Self::ProposalEta(decoded));
1198            }
1199            if let Ok(decoded)
1200                = <ProposalProposerCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1201                return Ok(Self::ProposalProposer(decoded));
1202            }
1203            if let Ok(decoded)
1204                = <ProposalSnapshotCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1205                return Ok(Self::ProposalSnapshot(decoded));
1206            }
1207            if let Ok(decoded)
1208                = <ProposeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1209                return Ok(Self::Propose(decoded));
1210            }
1211            if let Ok(decoded)
1212                = <QueueCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1213                return Ok(Self::Queue(decoded));
1214            }
1215            if let Ok(decoded)
1216                = <QuorumCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1217                return Ok(Self::Quorum(decoded));
1218            }
1219            if let Ok(decoded)
1220                = <StateCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1221                return Ok(Self::State(decoded));
1222            }
1223            if let Ok(decoded)
1224                = <SupportsInterfaceCall as ::ethers_core::abi::AbiDecode>::decode(
1225                    data,
1226                ) {
1227                return Ok(Self::SupportsInterface(decoded));
1228            }
1229            if let Ok(decoded)
1230                = <TimelockCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1231                return Ok(Self::Timelock(decoded));
1232            }
1233            if let Ok(decoded)
1234                = <VersionCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1235                return Ok(Self::Version(decoded));
1236            }
1237            if let Ok(decoded)
1238                = <VotingDelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1239                return Ok(Self::VotingDelay(decoded));
1240            }
1241            if let Ok(decoded)
1242                = <VotingPeriodCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1243                return Ok(Self::VotingPeriod(decoded));
1244            }
1245            Err(::ethers_core::abi::Error::InvalidData.into())
1246        }
1247    }
1248    impl ::ethers_core::abi::AbiEncode for IGovernorTimelockCalls {
1249        fn encode(self) -> Vec<u8> {
1250            match self {
1251                Self::ClockMode(element) => {
1252                    ::ethers_core::abi::AbiEncode::encode(element)
1253                }
1254                Self::CountingMode(element) => {
1255                    ::ethers_core::abi::AbiEncode::encode(element)
1256                }
1257                Self::Cancel(element) => ::ethers_core::abi::AbiEncode::encode(element),
1258                Self::CastVote(element) => ::ethers_core::abi::AbiEncode::encode(element),
1259                Self::CastVoteBySig(element) => {
1260                    ::ethers_core::abi::AbiEncode::encode(element)
1261                }
1262                Self::CastVoteWithReason(element) => {
1263                    ::ethers_core::abi::AbiEncode::encode(element)
1264                }
1265                Self::CastVoteWithReasonAndParams(element) => {
1266                    ::ethers_core::abi::AbiEncode::encode(element)
1267                }
1268                Self::CastVoteWithReasonAndParamsBySig(element) => {
1269                    ::ethers_core::abi::AbiEncode::encode(element)
1270                }
1271                Self::Clock(element) => ::ethers_core::abi::AbiEncode::encode(element),
1272                Self::Execute(element) => ::ethers_core::abi::AbiEncode::encode(element),
1273                Self::GetVotes(element) => ::ethers_core::abi::AbiEncode::encode(element),
1274                Self::GetVotesWithParams(element) => {
1275                    ::ethers_core::abi::AbiEncode::encode(element)
1276                }
1277                Self::HasVoted(element) => ::ethers_core::abi::AbiEncode::encode(element),
1278                Self::HashProposal(element) => {
1279                    ::ethers_core::abi::AbiEncode::encode(element)
1280                }
1281                Self::Name(element) => ::ethers_core::abi::AbiEncode::encode(element),
1282                Self::ProposalDeadline(element) => {
1283                    ::ethers_core::abi::AbiEncode::encode(element)
1284                }
1285                Self::ProposalEta(element) => {
1286                    ::ethers_core::abi::AbiEncode::encode(element)
1287                }
1288                Self::ProposalProposer(element) => {
1289                    ::ethers_core::abi::AbiEncode::encode(element)
1290                }
1291                Self::ProposalSnapshot(element) => {
1292                    ::ethers_core::abi::AbiEncode::encode(element)
1293                }
1294                Self::Propose(element) => ::ethers_core::abi::AbiEncode::encode(element),
1295                Self::Queue(element) => ::ethers_core::abi::AbiEncode::encode(element),
1296                Self::Quorum(element) => ::ethers_core::abi::AbiEncode::encode(element),
1297                Self::State(element) => ::ethers_core::abi::AbiEncode::encode(element),
1298                Self::SupportsInterface(element) => {
1299                    ::ethers_core::abi::AbiEncode::encode(element)
1300                }
1301                Self::Timelock(element) => ::ethers_core::abi::AbiEncode::encode(element),
1302                Self::Version(element) => ::ethers_core::abi::AbiEncode::encode(element),
1303                Self::VotingDelay(element) => {
1304                    ::ethers_core::abi::AbiEncode::encode(element)
1305                }
1306                Self::VotingPeriod(element) => {
1307                    ::ethers_core::abi::AbiEncode::encode(element)
1308                }
1309            }
1310        }
1311    }
1312    impl ::core::fmt::Display for IGovernorTimelockCalls {
1313        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1314            match self {
1315                Self::ClockMode(element) => ::core::fmt::Display::fmt(element, f),
1316                Self::CountingMode(element) => ::core::fmt::Display::fmt(element, f),
1317                Self::Cancel(element) => ::core::fmt::Display::fmt(element, f),
1318                Self::CastVote(element) => ::core::fmt::Display::fmt(element, f),
1319                Self::CastVoteBySig(element) => ::core::fmt::Display::fmt(element, f),
1320                Self::CastVoteWithReason(element) => {
1321                    ::core::fmt::Display::fmt(element, f)
1322                }
1323                Self::CastVoteWithReasonAndParams(element) => {
1324                    ::core::fmt::Display::fmt(element, f)
1325                }
1326                Self::CastVoteWithReasonAndParamsBySig(element) => {
1327                    ::core::fmt::Display::fmt(element, f)
1328                }
1329                Self::Clock(element) => ::core::fmt::Display::fmt(element, f),
1330                Self::Execute(element) => ::core::fmt::Display::fmt(element, f),
1331                Self::GetVotes(element) => ::core::fmt::Display::fmt(element, f),
1332                Self::GetVotesWithParams(element) => {
1333                    ::core::fmt::Display::fmt(element, f)
1334                }
1335                Self::HasVoted(element) => ::core::fmt::Display::fmt(element, f),
1336                Self::HashProposal(element) => ::core::fmt::Display::fmt(element, f),
1337                Self::Name(element) => ::core::fmt::Display::fmt(element, f),
1338                Self::ProposalDeadline(element) => ::core::fmt::Display::fmt(element, f),
1339                Self::ProposalEta(element) => ::core::fmt::Display::fmt(element, f),
1340                Self::ProposalProposer(element) => ::core::fmt::Display::fmt(element, f),
1341                Self::ProposalSnapshot(element) => ::core::fmt::Display::fmt(element, f),
1342                Self::Propose(element) => ::core::fmt::Display::fmt(element, f),
1343                Self::Queue(element) => ::core::fmt::Display::fmt(element, f),
1344                Self::Quorum(element) => ::core::fmt::Display::fmt(element, f),
1345                Self::State(element) => ::core::fmt::Display::fmt(element, f),
1346                Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
1347                Self::Timelock(element) => ::core::fmt::Display::fmt(element, f),
1348                Self::Version(element) => ::core::fmt::Display::fmt(element, f),
1349                Self::VotingDelay(element) => ::core::fmt::Display::fmt(element, f),
1350                Self::VotingPeriod(element) => ::core::fmt::Display::fmt(element, f),
1351            }
1352        }
1353    }
1354    impl ::core::convert::From<ClockModeCall> for IGovernorTimelockCalls {
1355        fn from(value: ClockModeCall) -> Self {
1356            Self::ClockMode(value)
1357        }
1358    }
1359    impl ::core::convert::From<CountingModeCall> for IGovernorTimelockCalls {
1360        fn from(value: CountingModeCall) -> Self {
1361            Self::CountingMode(value)
1362        }
1363    }
1364    impl ::core::convert::From<CancelCall> for IGovernorTimelockCalls {
1365        fn from(value: CancelCall) -> Self {
1366            Self::Cancel(value)
1367        }
1368    }
1369    impl ::core::convert::From<CastVoteCall> for IGovernorTimelockCalls {
1370        fn from(value: CastVoteCall) -> Self {
1371            Self::CastVote(value)
1372        }
1373    }
1374    impl ::core::convert::From<CastVoteBySigCall> for IGovernorTimelockCalls {
1375        fn from(value: CastVoteBySigCall) -> Self {
1376            Self::CastVoteBySig(value)
1377        }
1378    }
1379    impl ::core::convert::From<CastVoteWithReasonCall> for IGovernorTimelockCalls {
1380        fn from(value: CastVoteWithReasonCall) -> Self {
1381            Self::CastVoteWithReason(value)
1382        }
1383    }
1384    impl ::core::convert::From<CastVoteWithReasonAndParamsCall>
1385    for IGovernorTimelockCalls {
1386        fn from(value: CastVoteWithReasonAndParamsCall) -> Self {
1387            Self::CastVoteWithReasonAndParams(value)
1388        }
1389    }
1390    impl ::core::convert::From<CastVoteWithReasonAndParamsBySigCall>
1391    for IGovernorTimelockCalls {
1392        fn from(value: CastVoteWithReasonAndParamsBySigCall) -> Self {
1393            Self::CastVoteWithReasonAndParamsBySig(value)
1394        }
1395    }
1396    impl ::core::convert::From<ClockCall> for IGovernorTimelockCalls {
1397        fn from(value: ClockCall) -> Self {
1398            Self::Clock(value)
1399        }
1400    }
1401    impl ::core::convert::From<ExecuteCall> for IGovernorTimelockCalls {
1402        fn from(value: ExecuteCall) -> Self {
1403            Self::Execute(value)
1404        }
1405    }
1406    impl ::core::convert::From<GetVotesCall> for IGovernorTimelockCalls {
1407        fn from(value: GetVotesCall) -> Self {
1408            Self::GetVotes(value)
1409        }
1410    }
1411    impl ::core::convert::From<GetVotesWithParamsCall> for IGovernorTimelockCalls {
1412        fn from(value: GetVotesWithParamsCall) -> Self {
1413            Self::GetVotesWithParams(value)
1414        }
1415    }
1416    impl ::core::convert::From<HasVotedCall> for IGovernorTimelockCalls {
1417        fn from(value: HasVotedCall) -> Self {
1418            Self::HasVoted(value)
1419        }
1420    }
1421    impl ::core::convert::From<HashProposalCall> for IGovernorTimelockCalls {
1422        fn from(value: HashProposalCall) -> Self {
1423            Self::HashProposal(value)
1424        }
1425    }
1426    impl ::core::convert::From<NameCall> for IGovernorTimelockCalls {
1427        fn from(value: NameCall) -> Self {
1428            Self::Name(value)
1429        }
1430    }
1431    impl ::core::convert::From<ProposalDeadlineCall> for IGovernorTimelockCalls {
1432        fn from(value: ProposalDeadlineCall) -> Self {
1433            Self::ProposalDeadline(value)
1434        }
1435    }
1436    impl ::core::convert::From<ProposalEtaCall> for IGovernorTimelockCalls {
1437        fn from(value: ProposalEtaCall) -> Self {
1438            Self::ProposalEta(value)
1439        }
1440    }
1441    impl ::core::convert::From<ProposalProposerCall> for IGovernorTimelockCalls {
1442        fn from(value: ProposalProposerCall) -> Self {
1443            Self::ProposalProposer(value)
1444        }
1445    }
1446    impl ::core::convert::From<ProposalSnapshotCall> for IGovernorTimelockCalls {
1447        fn from(value: ProposalSnapshotCall) -> Self {
1448            Self::ProposalSnapshot(value)
1449        }
1450    }
1451    impl ::core::convert::From<ProposeCall> for IGovernorTimelockCalls {
1452        fn from(value: ProposeCall) -> Self {
1453            Self::Propose(value)
1454        }
1455    }
1456    impl ::core::convert::From<QueueCall> for IGovernorTimelockCalls {
1457        fn from(value: QueueCall) -> Self {
1458            Self::Queue(value)
1459        }
1460    }
1461    impl ::core::convert::From<QuorumCall> for IGovernorTimelockCalls {
1462        fn from(value: QuorumCall) -> Self {
1463            Self::Quorum(value)
1464        }
1465    }
1466    impl ::core::convert::From<StateCall> for IGovernorTimelockCalls {
1467        fn from(value: StateCall) -> Self {
1468            Self::State(value)
1469        }
1470    }
1471    impl ::core::convert::From<SupportsInterfaceCall> for IGovernorTimelockCalls {
1472        fn from(value: SupportsInterfaceCall) -> Self {
1473            Self::SupportsInterface(value)
1474        }
1475    }
1476    impl ::core::convert::From<TimelockCall> for IGovernorTimelockCalls {
1477        fn from(value: TimelockCall) -> Self {
1478            Self::Timelock(value)
1479        }
1480    }
1481    impl ::core::convert::From<VersionCall> for IGovernorTimelockCalls {
1482        fn from(value: VersionCall) -> Self {
1483            Self::Version(value)
1484        }
1485    }
1486    impl ::core::convert::From<VotingDelayCall> for IGovernorTimelockCalls {
1487        fn from(value: VotingDelayCall) -> Self {
1488            Self::VotingDelay(value)
1489        }
1490    }
1491    impl ::core::convert::From<VotingPeriodCall> for IGovernorTimelockCalls {
1492        fn from(value: VotingPeriodCall) -> Self {
1493            Self::VotingPeriod(value)
1494        }
1495    }
1496    ///Container type for all return fields from the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
1497    #[derive(
1498        Clone,
1499        ::ethers_contract::EthAbiType,
1500        ::ethers_contract::EthAbiCodec,
1501        Default,
1502        Debug,
1503        PartialEq,
1504        Eq,
1505        Hash
1506    )]
1507    pub struct ClockModeReturn(pub ::std::string::String);
1508    ///Container type for all return fields from the `COUNTING_MODE` function with signature `COUNTING_MODE()` and selector `0xdd4e2ba5`
1509    #[derive(
1510        Clone,
1511        ::ethers_contract::EthAbiType,
1512        ::ethers_contract::EthAbiCodec,
1513        Default,
1514        Debug,
1515        PartialEq,
1516        Eq,
1517        Hash
1518    )]
1519    pub struct CountingModeReturn(pub ::std::string::String);
1520    ///Container type for all return fields from the `cancel` function with signature `cancel(address[],uint256[],bytes[],bytes32)` and selector `0x452115d6`
1521    #[derive(
1522        Clone,
1523        ::ethers_contract::EthAbiType,
1524        ::ethers_contract::EthAbiCodec,
1525        Default,
1526        Debug,
1527        PartialEq,
1528        Eq,
1529        Hash
1530    )]
1531    pub struct CancelReturn {
1532        pub proposal_id: ::ethers_core::types::U256,
1533    }
1534    ///Container type for all return fields from the `castVote` function with signature `castVote(uint256,uint8)` and selector `0x56781388`
1535    #[derive(
1536        Clone,
1537        ::ethers_contract::EthAbiType,
1538        ::ethers_contract::EthAbiCodec,
1539        Default,
1540        Debug,
1541        PartialEq,
1542        Eq,
1543        Hash
1544    )]
1545    pub struct CastVoteReturn {
1546        pub balance: ::ethers_core::types::U256,
1547    }
1548    ///Container type for all return fields from the `castVoteBySig` function with signature `castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)` and selector `0x3bccf4fd`
1549    #[derive(
1550        Clone,
1551        ::ethers_contract::EthAbiType,
1552        ::ethers_contract::EthAbiCodec,
1553        Default,
1554        Debug,
1555        PartialEq,
1556        Eq,
1557        Hash
1558    )]
1559    pub struct CastVoteBySigReturn {
1560        pub balance: ::ethers_core::types::U256,
1561    }
1562    ///Container type for all return fields from the `castVoteWithReason` function with signature `castVoteWithReason(uint256,uint8,string)` and selector `0x7b3c71d3`
1563    #[derive(
1564        Clone,
1565        ::ethers_contract::EthAbiType,
1566        ::ethers_contract::EthAbiCodec,
1567        Default,
1568        Debug,
1569        PartialEq,
1570        Eq,
1571        Hash
1572    )]
1573    pub struct CastVoteWithReasonReturn {
1574        pub balance: ::ethers_core::types::U256,
1575    }
1576    ///Container type for all return fields from the `castVoteWithReasonAndParams` function with signature `castVoteWithReasonAndParams(uint256,uint8,string,bytes)` and selector `0x5f398a14`
1577    #[derive(
1578        Clone,
1579        ::ethers_contract::EthAbiType,
1580        ::ethers_contract::EthAbiCodec,
1581        Default,
1582        Debug,
1583        PartialEq,
1584        Eq,
1585        Hash
1586    )]
1587    pub struct CastVoteWithReasonAndParamsReturn {
1588        pub balance: ::ethers_core::types::U256,
1589    }
1590    ///Container type for all return fields from the `castVoteWithReasonAndParamsBySig` function with signature `castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)` and selector `0x03420181`
1591    #[derive(
1592        Clone,
1593        ::ethers_contract::EthAbiType,
1594        ::ethers_contract::EthAbiCodec,
1595        Default,
1596        Debug,
1597        PartialEq,
1598        Eq,
1599        Hash
1600    )]
1601    pub struct CastVoteWithReasonAndParamsBySigReturn {
1602        pub balance: ::ethers_core::types::U256,
1603    }
1604    ///Container type for all return fields from the `clock` function with signature `clock()` and selector `0x91ddadf4`
1605    #[derive(
1606        Clone,
1607        ::ethers_contract::EthAbiType,
1608        ::ethers_contract::EthAbiCodec,
1609        Default,
1610        Debug,
1611        PartialEq,
1612        Eq,
1613        Hash
1614    )]
1615    pub struct ClockReturn(pub u64);
1616    ///Container type for all return fields from the `execute` function with signature `execute(address[],uint256[],bytes[],bytes32)` and selector `0x2656227d`
1617    #[derive(
1618        Clone,
1619        ::ethers_contract::EthAbiType,
1620        ::ethers_contract::EthAbiCodec,
1621        Default,
1622        Debug,
1623        PartialEq,
1624        Eq,
1625        Hash
1626    )]
1627    pub struct ExecuteReturn {
1628        pub proposal_id: ::ethers_core::types::U256,
1629    }
1630    ///Container type for all return fields from the `getVotes` function with signature `getVotes(address,uint256)` and selector `0xeb9019d4`
1631    #[derive(
1632        Clone,
1633        ::ethers_contract::EthAbiType,
1634        ::ethers_contract::EthAbiCodec,
1635        Default,
1636        Debug,
1637        PartialEq,
1638        Eq,
1639        Hash
1640    )]
1641    pub struct GetVotesReturn(pub ::ethers_core::types::U256);
1642    ///Container type for all return fields from the `getVotesWithParams` function with signature `getVotesWithParams(address,uint256,bytes)` and selector `0x9a802a6d`
1643    #[derive(
1644        Clone,
1645        ::ethers_contract::EthAbiType,
1646        ::ethers_contract::EthAbiCodec,
1647        Default,
1648        Debug,
1649        PartialEq,
1650        Eq,
1651        Hash
1652    )]
1653    pub struct GetVotesWithParamsReturn(pub ::ethers_core::types::U256);
1654    ///Container type for all return fields from the `hasVoted` function with signature `hasVoted(uint256,address)` and selector `0x43859632`
1655    #[derive(
1656        Clone,
1657        ::ethers_contract::EthAbiType,
1658        ::ethers_contract::EthAbiCodec,
1659        Default,
1660        Debug,
1661        PartialEq,
1662        Eq,
1663        Hash
1664    )]
1665    pub struct HasVotedReturn(pub bool);
1666    ///Container type for all return fields from the `hashProposal` function with signature `hashProposal(address[],uint256[],bytes[],bytes32)` and selector `0xc59057e4`
1667    #[derive(
1668        Clone,
1669        ::ethers_contract::EthAbiType,
1670        ::ethers_contract::EthAbiCodec,
1671        Default,
1672        Debug,
1673        PartialEq,
1674        Eq,
1675        Hash
1676    )]
1677    pub struct HashProposalReturn(pub ::ethers_core::types::U256);
1678    ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03`
1679    #[derive(
1680        Clone,
1681        ::ethers_contract::EthAbiType,
1682        ::ethers_contract::EthAbiCodec,
1683        Default,
1684        Debug,
1685        PartialEq,
1686        Eq,
1687        Hash
1688    )]
1689    pub struct NameReturn(pub ::std::string::String);
1690    ///Container type for all return fields from the `proposalDeadline` function with signature `proposalDeadline(uint256)` and selector `0xc01f9e37`
1691    #[derive(
1692        Clone,
1693        ::ethers_contract::EthAbiType,
1694        ::ethers_contract::EthAbiCodec,
1695        Default,
1696        Debug,
1697        PartialEq,
1698        Eq,
1699        Hash
1700    )]
1701    pub struct ProposalDeadlineReturn(pub ::ethers_core::types::U256);
1702    ///Container type for all return fields from the `proposalEta` function with signature `proposalEta(uint256)` and selector `0xab58fb8e`
1703    #[derive(
1704        Clone,
1705        ::ethers_contract::EthAbiType,
1706        ::ethers_contract::EthAbiCodec,
1707        Default,
1708        Debug,
1709        PartialEq,
1710        Eq,
1711        Hash
1712    )]
1713    pub struct ProposalEtaReturn(pub ::ethers_core::types::U256);
1714    ///Container type for all return fields from the `proposalProposer` function with signature `proposalProposer(uint256)` and selector `0x143489d0`
1715    #[derive(
1716        Clone,
1717        ::ethers_contract::EthAbiType,
1718        ::ethers_contract::EthAbiCodec,
1719        Default,
1720        Debug,
1721        PartialEq,
1722        Eq,
1723        Hash
1724    )]
1725    pub struct ProposalProposerReturn(pub ::ethers_core::types::Address);
1726    ///Container type for all return fields from the `proposalSnapshot` function with signature `proposalSnapshot(uint256)` and selector `0x2d63f693`
1727    #[derive(
1728        Clone,
1729        ::ethers_contract::EthAbiType,
1730        ::ethers_contract::EthAbiCodec,
1731        Default,
1732        Debug,
1733        PartialEq,
1734        Eq,
1735        Hash
1736    )]
1737    pub struct ProposalSnapshotReturn(pub ::ethers_core::types::U256);
1738    ///Container type for all return fields from the `propose` function with signature `propose(address[],uint256[],bytes[],string)` and selector `0x7d5e81e2`
1739    #[derive(
1740        Clone,
1741        ::ethers_contract::EthAbiType,
1742        ::ethers_contract::EthAbiCodec,
1743        Default,
1744        Debug,
1745        PartialEq,
1746        Eq,
1747        Hash
1748    )]
1749    pub struct ProposeReturn {
1750        pub proposal_id: ::ethers_core::types::U256,
1751    }
1752    ///Container type for all return fields from the `queue` function with signature `queue(address[],uint256[],bytes[],bytes32)` and selector `0x160cbed7`
1753    #[derive(
1754        Clone,
1755        ::ethers_contract::EthAbiType,
1756        ::ethers_contract::EthAbiCodec,
1757        Default,
1758        Debug,
1759        PartialEq,
1760        Eq,
1761        Hash
1762    )]
1763    pub struct QueueReturn {
1764        pub proposal_id: ::ethers_core::types::U256,
1765    }
1766    ///Container type for all return fields from the `quorum` function with signature `quorum(uint256)` and selector `0xf8ce560a`
1767    #[derive(
1768        Clone,
1769        ::ethers_contract::EthAbiType,
1770        ::ethers_contract::EthAbiCodec,
1771        Default,
1772        Debug,
1773        PartialEq,
1774        Eq,
1775        Hash
1776    )]
1777    pub struct QuorumReturn(pub ::ethers_core::types::U256);
1778    ///Container type for all return fields from the `state` function with signature `state(uint256)` and selector `0x3e4f49e6`
1779    #[derive(
1780        Clone,
1781        ::ethers_contract::EthAbiType,
1782        ::ethers_contract::EthAbiCodec,
1783        Default,
1784        Debug,
1785        PartialEq,
1786        Eq,
1787        Hash
1788    )]
1789    pub struct StateReturn(pub u8);
1790    ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
1791    #[derive(
1792        Clone,
1793        ::ethers_contract::EthAbiType,
1794        ::ethers_contract::EthAbiCodec,
1795        Default,
1796        Debug,
1797        PartialEq,
1798        Eq,
1799        Hash
1800    )]
1801    pub struct SupportsInterfaceReturn(pub bool);
1802    ///Container type for all return fields from the `timelock` function with signature `timelock()` and selector `0xd33219b4`
1803    #[derive(
1804        Clone,
1805        ::ethers_contract::EthAbiType,
1806        ::ethers_contract::EthAbiCodec,
1807        Default,
1808        Debug,
1809        PartialEq,
1810        Eq,
1811        Hash
1812    )]
1813    pub struct TimelockReturn(pub ::ethers_core::types::Address);
1814    ///Container type for all return fields from the `version` function with signature `version()` and selector `0x54fd4d50`
1815    #[derive(
1816        Clone,
1817        ::ethers_contract::EthAbiType,
1818        ::ethers_contract::EthAbiCodec,
1819        Default,
1820        Debug,
1821        PartialEq,
1822        Eq,
1823        Hash
1824    )]
1825    pub struct VersionReturn(pub ::std::string::String);
1826    ///Container type for all return fields from the `votingDelay` function with signature `votingDelay()` and selector `0x3932abb1`
1827    #[derive(
1828        Clone,
1829        ::ethers_contract::EthAbiType,
1830        ::ethers_contract::EthAbiCodec,
1831        Default,
1832        Debug,
1833        PartialEq,
1834        Eq,
1835        Hash
1836    )]
1837    pub struct VotingDelayReturn(pub ::ethers_core::types::U256);
1838    ///Container type for all return fields from the `votingPeriod` function with signature `votingPeriod()` and selector `0x02a251a3`
1839    #[derive(
1840        Clone,
1841        ::ethers_contract::EthAbiType,
1842        ::ethers_contract::EthAbiCodec,
1843        Default,
1844        Debug,
1845        PartialEq,
1846        Eq,
1847        Hash
1848    )]
1849    pub struct VotingPeriodReturn(pub ::ethers_core::types::U256);
1850}