openzeppelin_rs/contracts/
ERC20VotesComp.rs

1pub use erc20_votes_comp::*;
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 erc20_votes_comp {
13    #[rustfmt::skip]
14    const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidShortString\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\",\"components\":[]}],\"type\":\"error\",\"name\":\"StringTooLong\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Approval\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\",\"components\":[],\"indexed\":true}],\"type\":\"event\",\"name\":\"DelegateChanged\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\",\"components\":[],\"indexed\":false},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"DelegateVotesChanged\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"type\":\"event\",\"name\":\"EIP712DomainChanged\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[],\"indexed\":true},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[],\"indexed\":false}],\"type\":\"event\",\"name\":\"Transfer\",\"outputs\":[],\"anonymous\":false},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"CLOCK_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint32\",\"name\":\"pos\",\"type\":\"uint32\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"checkpoints\",\"outputs\":[{\"internalType\":\"struct ERC20Votes.Checkpoint\",\"name\":\"\",\"type\":\"tuple\",\"components\":[{\"internalType\":\"uint32\",\"name\":\"fromBlock\",\"type\":\"uint32\",\"components\":[]},{\"internalType\":\"uint224\",\"name\":\"votes\",\"type\":\"uint224\",\"components\":[]}]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"delegate\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\",\"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\":\"delegateBySig\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getCurrentVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\",\"components\":[]}],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\",\"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\":\"permit\",\"outputs\":[]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\",\"components\":[]}]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static ERC20VOTESCOMP_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 ERC20VotesComp<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for ERC20VotesComp<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for ERC20VotesComp<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 ERC20VotesComp<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for ERC20VotesComp<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(ERC20VotesComp)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> ERC20VotesComp<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                    ERC20VOTESCOMP_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 `DOMAIN_SEPARATOR` (0x3644e515) function
64        pub fn domain_separator(
65            &self,
66        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
67            self.0
68                .method_hash([54, 68, 229, 21], ())
69                .expect("method not found (this should never happen)")
70        }
71        ///Calls the contract's `allowance` (0xdd62ed3e) function
72        pub fn allowance(
73            &self,
74            owner: ::ethers_core::types::Address,
75            spender: ::ethers_core::types::Address,
76        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
77            self.0
78                .method_hash([221, 98, 237, 62], (owner, spender))
79                .expect("method not found (this should never happen)")
80        }
81        ///Calls the contract's `approve` (0x095ea7b3) function
82        pub fn approve(
83            &self,
84            spender: ::ethers_core::types::Address,
85            amount: ::ethers_core::types::U256,
86        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
87            self.0
88                .method_hash([9, 94, 167, 179], (spender, amount))
89                .expect("method not found (this should never happen)")
90        }
91        ///Calls the contract's `balanceOf` (0x70a08231) function
92        pub fn balance_of(
93            &self,
94            account: ::ethers_core::types::Address,
95        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
96            self.0
97                .method_hash([112, 160, 130, 49], account)
98                .expect("method not found (this should never happen)")
99        }
100        ///Calls the contract's `checkpoints` (0xf1127ed8) function
101        pub fn checkpoints(
102            &self,
103            account: ::ethers_core::types::Address,
104            pos: u32,
105        ) -> ::ethers_contract::builders::ContractCall<M, Checkpoint> {
106            self.0
107                .method_hash([241, 18, 126, 216], (account, pos))
108                .expect("method not found (this should never happen)")
109        }
110        ///Calls the contract's `clock` (0x91ddadf4) function
111        pub fn clock(&self) -> ::ethers_contract::builders::ContractCall<M, u64> {
112            self.0
113                .method_hash([145, 221, 173, 244], ())
114                .expect("method not found (this should never happen)")
115        }
116        ///Calls the contract's `decimals` (0x313ce567) function
117        pub fn decimals(&self) -> ::ethers_contract::builders::ContractCall<M, u8> {
118            self.0
119                .method_hash([49, 60, 229, 103], ())
120                .expect("method not found (this should never happen)")
121        }
122        ///Calls the contract's `decreaseAllowance` (0xa457c2d7) function
123        pub fn decrease_allowance(
124            &self,
125            spender: ::ethers_core::types::Address,
126            subtracted_value: ::ethers_core::types::U256,
127        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
128            self.0
129                .method_hash([164, 87, 194, 215], (spender, subtracted_value))
130                .expect("method not found (this should never happen)")
131        }
132        ///Calls the contract's `delegate` (0x5c19a95c) function
133        pub fn delegate(
134            &self,
135            delegatee: ::ethers_core::types::Address,
136        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
137            self.0
138                .method_hash([92, 25, 169, 92], delegatee)
139                .expect("method not found (this should never happen)")
140        }
141        ///Calls the contract's `delegateBySig` (0xc3cda520) function
142        pub fn delegate_by_sig(
143            &self,
144            delegatee: ::ethers_core::types::Address,
145            nonce: ::ethers_core::types::U256,
146            expiry: ::ethers_core::types::U256,
147            v: u8,
148            r: [u8; 32],
149            s: [u8; 32],
150        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
151            self.0
152                .method_hash([195, 205, 165, 32], (delegatee, nonce, expiry, v, r, s))
153                .expect("method not found (this should never happen)")
154        }
155        ///Calls the contract's `delegates` (0x587cde1e) function
156        pub fn delegates(
157            &self,
158            account: ::ethers_core::types::Address,
159        ) -> ::ethers_contract::builders::ContractCall<
160            M,
161            ::ethers_core::types::Address,
162        > {
163            self.0
164                .method_hash([88, 124, 222, 30], account)
165                .expect("method not found (this should never happen)")
166        }
167        ///Calls the contract's `eip712Domain` (0x84b0196e) function
168        pub fn eip_712_domain(
169            &self,
170        ) -> ::ethers_contract::builders::ContractCall<
171            M,
172            (
173                [u8; 1],
174                ::std::string::String,
175                ::std::string::String,
176                ::ethers_core::types::U256,
177                ::ethers_core::types::Address,
178                [u8; 32],
179                ::std::vec::Vec<::ethers_core::types::U256>,
180            ),
181        > {
182            self.0
183                .method_hash([132, 176, 25, 110], ())
184                .expect("method not found (this should never happen)")
185        }
186        ///Calls the contract's `getCurrentVotes` (0xb4b5ea57) function
187        pub fn get_current_votes(
188            &self,
189            account: ::ethers_core::types::Address,
190        ) -> ::ethers_contract::builders::ContractCall<M, u128> {
191            self.0
192                .method_hash([180, 181, 234, 87], account)
193                .expect("method not found (this should never happen)")
194        }
195        ///Calls the contract's `getPastTotalSupply` (0x8e539e8c) function
196        pub fn get_past_total_supply(
197            &self,
198            timepoint: ::ethers_core::types::U256,
199        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
200            self.0
201                .method_hash([142, 83, 158, 140], timepoint)
202                .expect("method not found (this should never happen)")
203        }
204        ///Calls the contract's `getPastVotes` (0x3a46b1a8) function
205        pub fn get_past_votes(
206            &self,
207            account: ::ethers_core::types::Address,
208            timepoint: ::ethers_core::types::U256,
209        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
210            self.0
211                .method_hash([58, 70, 177, 168], (account, timepoint))
212                .expect("method not found (this should never happen)")
213        }
214        ///Calls the contract's `getPriorVotes` (0x782d6fe1) function
215        pub fn get_prior_votes(
216            &self,
217            account: ::ethers_core::types::Address,
218            block_number: ::ethers_core::types::U256,
219        ) -> ::ethers_contract::builders::ContractCall<M, u128> {
220            self.0
221                .method_hash([120, 45, 111, 225], (account, block_number))
222                .expect("method not found (this should never happen)")
223        }
224        ///Calls the contract's `getVotes` (0x9ab24eb0) function
225        pub fn get_votes(
226            &self,
227            account: ::ethers_core::types::Address,
228        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
229            self.0
230                .method_hash([154, 178, 78, 176], account)
231                .expect("method not found (this should never happen)")
232        }
233        ///Calls the contract's `increaseAllowance` (0x39509351) function
234        pub fn increase_allowance(
235            &self,
236            spender: ::ethers_core::types::Address,
237            added_value: ::ethers_core::types::U256,
238        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
239            self.0
240                .method_hash([57, 80, 147, 81], (spender, added_value))
241                .expect("method not found (this should never happen)")
242        }
243        ///Calls the contract's `name` (0x06fdde03) function
244        pub fn name(
245            &self,
246        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
247            self.0
248                .method_hash([6, 253, 222, 3], ())
249                .expect("method not found (this should never happen)")
250        }
251        ///Calls the contract's `nonces` (0x7ecebe00) function
252        pub fn nonces(
253            &self,
254            owner: ::ethers_core::types::Address,
255        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
256            self.0
257                .method_hash([126, 206, 190, 0], owner)
258                .expect("method not found (this should never happen)")
259        }
260        ///Calls the contract's `numCheckpoints` (0x6fcfff45) function
261        pub fn num_checkpoints(
262            &self,
263            account: ::ethers_core::types::Address,
264        ) -> ::ethers_contract::builders::ContractCall<M, u32> {
265            self.0
266                .method_hash([111, 207, 255, 69], account)
267                .expect("method not found (this should never happen)")
268        }
269        ///Calls the contract's `permit` (0xd505accf) function
270        pub fn permit(
271            &self,
272            owner: ::ethers_core::types::Address,
273            spender: ::ethers_core::types::Address,
274            value: ::ethers_core::types::U256,
275            deadline: ::ethers_core::types::U256,
276            v: u8,
277            r: [u8; 32],
278            s: [u8; 32],
279        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
280            self.0
281                .method_hash(
282                    [213, 5, 172, 207],
283                    (owner, spender, value, deadline, v, r, s),
284                )
285                .expect("method not found (this should never happen)")
286        }
287        ///Calls the contract's `symbol` (0x95d89b41) function
288        pub fn symbol(
289            &self,
290        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
291            self.0
292                .method_hash([149, 216, 155, 65], ())
293                .expect("method not found (this should never happen)")
294        }
295        ///Calls the contract's `totalSupply` (0x18160ddd) function
296        pub fn total_supply(
297            &self,
298        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
299            self.0
300                .method_hash([24, 22, 13, 221], ())
301                .expect("method not found (this should never happen)")
302        }
303        ///Calls the contract's `transfer` (0xa9059cbb) function
304        pub fn transfer(
305            &self,
306            to: ::ethers_core::types::Address,
307            amount: ::ethers_core::types::U256,
308        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
309            self.0
310                .method_hash([169, 5, 156, 187], (to, amount))
311                .expect("method not found (this should never happen)")
312        }
313        ///Calls the contract's `transferFrom` (0x23b872dd) function
314        pub fn transfer_from(
315            &self,
316            from: ::ethers_core::types::Address,
317            to: ::ethers_core::types::Address,
318            amount: ::ethers_core::types::U256,
319        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
320            self.0
321                .method_hash([35, 184, 114, 221], (from, to, amount))
322                .expect("method not found (this should never happen)")
323        }
324        ///Gets the contract's `Approval` event
325        pub fn approval_filter(
326            &self,
327        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, ApprovalFilter> {
328            self.0.event()
329        }
330        ///Gets the contract's `DelegateChanged` event
331        pub fn delegate_changed_filter(
332            &self,
333        ) -> ::ethers_contract::builders::Event<
334            ::std::sync::Arc<M>,
335            M,
336            DelegateChangedFilter,
337        > {
338            self.0.event()
339        }
340        ///Gets the contract's `DelegateVotesChanged` event
341        pub fn delegate_votes_changed_filter(
342            &self,
343        ) -> ::ethers_contract::builders::Event<
344            ::std::sync::Arc<M>,
345            M,
346            DelegateVotesChangedFilter,
347        > {
348            self.0.event()
349        }
350        ///Gets the contract's `EIP712DomainChanged` event
351        pub fn eip712_domain_changed_filter(
352            &self,
353        ) -> ::ethers_contract::builders::Event<
354            ::std::sync::Arc<M>,
355            M,
356            Eip712DomainChangedFilter,
357        > {
358            self.0.event()
359        }
360        ///Gets the contract's `Transfer` event
361        pub fn transfer_filter(
362            &self,
363        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, TransferFilter> {
364            self.0.event()
365        }
366        /// Returns an `Event` builder for all the events of this contract.
367        pub fn events(
368            &self,
369        ) -> ::ethers_contract::builders::Event<
370            ::std::sync::Arc<M>,
371            M,
372            ERC20VotesCompEvents,
373        > {
374            self.0.event_with_filter(::core::default::Default::default())
375        }
376    }
377    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
378    for ERC20VotesComp<M> {
379        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
380            Self::new(contract.address(), contract.client())
381        }
382    }
383    ///Custom Error type `InvalidShortString` with signature `InvalidShortString()` and selector `0xb3512b0c`
384    #[derive(
385        Clone,
386        ::ethers_contract::EthError,
387        ::ethers_contract::EthDisplay,
388        Default,
389        Debug,
390        PartialEq,
391        Eq,
392        Hash
393    )]
394    #[etherror(name = "InvalidShortString", abi = "InvalidShortString()")]
395    pub struct InvalidShortString;
396    ///Custom Error type `StringTooLong` with signature `StringTooLong(string)` and selector `0x305a27a9`
397    #[derive(
398        Clone,
399        ::ethers_contract::EthError,
400        ::ethers_contract::EthDisplay,
401        Default,
402        Debug,
403        PartialEq,
404        Eq,
405        Hash
406    )]
407    #[etherror(name = "StringTooLong", abi = "StringTooLong(string)")]
408    pub struct StringTooLong {
409        pub str: ::std::string::String,
410    }
411    ///Container type for all of the contract's custom errors
412    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
413    pub enum ERC20VotesCompErrors {
414        InvalidShortString(InvalidShortString),
415        StringTooLong(StringTooLong),
416        /// The standard solidity revert string, with selector
417        /// Error(string) -- 0x08c379a0
418        RevertString(::std::string::String),
419    }
420    impl ::ethers_core::abi::AbiDecode for ERC20VotesCompErrors {
421        fn decode(
422            data: impl AsRef<[u8]>,
423        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
424            let data = data.as_ref();
425            if let Ok(decoded)
426                = <::std::string::String as ::ethers_core::abi::AbiDecode>::decode(
427                    data,
428                ) {
429                return Ok(Self::RevertString(decoded));
430            }
431            if let Ok(decoded)
432                = <InvalidShortString as ::ethers_core::abi::AbiDecode>::decode(data) {
433                return Ok(Self::InvalidShortString(decoded));
434            }
435            if let Ok(decoded)
436                = <StringTooLong as ::ethers_core::abi::AbiDecode>::decode(data) {
437                return Ok(Self::StringTooLong(decoded));
438            }
439            Err(::ethers_core::abi::Error::InvalidData.into())
440        }
441    }
442    impl ::ethers_core::abi::AbiEncode for ERC20VotesCompErrors {
443        fn encode(self) -> ::std::vec::Vec<u8> {
444            match self {
445                Self::InvalidShortString(element) => {
446                    ::ethers_core::abi::AbiEncode::encode(element)
447                }
448                Self::StringTooLong(element) => {
449                    ::ethers_core::abi::AbiEncode::encode(element)
450                }
451                Self::RevertString(s) => ::ethers_core::abi::AbiEncode::encode(s),
452            }
453        }
454    }
455    impl ::ethers_contract::ContractRevert for ERC20VotesCompErrors {
456        fn valid_selector(selector: [u8; 4]) -> bool {
457            match selector {
458                [0x08, 0xc3, 0x79, 0xa0] => true,
459                _ if selector
460                    == <InvalidShortString as ::ethers_contract::EthError>::selector() => {
461                    true
462                }
463                _ if selector
464                    == <StringTooLong as ::ethers_contract::EthError>::selector() => true,
465                _ => false,
466            }
467        }
468    }
469    impl ::core::fmt::Display for ERC20VotesCompErrors {
470        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
471            match self {
472                Self::InvalidShortString(element) => {
473                    ::core::fmt::Display::fmt(element, f)
474                }
475                Self::StringTooLong(element) => ::core::fmt::Display::fmt(element, f),
476                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
477            }
478        }
479    }
480    impl ::core::convert::From<::std::string::String> for ERC20VotesCompErrors {
481        fn from(value: String) -> Self {
482            Self::RevertString(value)
483        }
484    }
485    impl ::core::convert::From<InvalidShortString> for ERC20VotesCompErrors {
486        fn from(value: InvalidShortString) -> Self {
487            Self::InvalidShortString(value)
488        }
489    }
490    impl ::core::convert::From<StringTooLong> for ERC20VotesCompErrors {
491        fn from(value: StringTooLong) -> Self {
492            Self::StringTooLong(value)
493        }
494    }
495    #[derive(
496        Clone,
497        ::ethers_contract::EthEvent,
498        ::ethers_contract::EthDisplay,
499        Default,
500        Debug,
501        PartialEq,
502        Eq,
503        Hash
504    )]
505    #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")]
506    pub struct ApprovalFilter {
507        #[ethevent(indexed)]
508        pub owner: ::ethers_core::types::Address,
509        #[ethevent(indexed)]
510        pub spender: ::ethers_core::types::Address,
511        pub value: ::ethers_core::types::U256,
512    }
513    #[derive(
514        Clone,
515        ::ethers_contract::EthEvent,
516        ::ethers_contract::EthDisplay,
517        Default,
518        Debug,
519        PartialEq,
520        Eq,
521        Hash
522    )]
523    #[ethevent(
524        name = "DelegateChanged",
525        abi = "DelegateChanged(address,address,address)"
526    )]
527    pub struct DelegateChangedFilter {
528        #[ethevent(indexed)]
529        pub delegator: ::ethers_core::types::Address,
530        #[ethevent(indexed)]
531        pub from_delegate: ::ethers_core::types::Address,
532        #[ethevent(indexed)]
533        pub to_delegate: ::ethers_core::types::Address,
534    }
535    #[derive(
536        Clone,
537        ::ethers_contract::EthEvent,
538        ::ethers_contract::EthDisplay,
539        Default,
540        Debug,
541        PartialEq,
542        Eq,
543        Hash
544    )]
545    #[ethevent(
546        name = "DelegateVotesChanged",
547        abi = "DelegateVotesChanged(address,uint256,uint256)"
548    )]
549    pub struct DelegateVotesChangedFilter {
550        #[ethevent(indexed)]
551        pub delegate: ::ethers_core::types::Address,
552        pub previous_balance: ::ethers_core::types::U256,
553        pub new_balance: ::ethers_core::types::U256,
554    }
555    #[derive(
556        Clone,
557        ::ethers_contract::EthEvent,
558        ::ethers_contract::EthDisplay,
559        Default,
560        Debug,
561        PartialEq,
562        Eq,
563        Hash
564    )]
565    #[ethevent(name = "EIP712DomainChanged", abi = "EIP712DomainChanged()")]
566    pub struct Eip712DomainChangedFilter;
567    #[derive(
568        Clone,
569        ::ethers_contract::EthEvent,
570        ::ethers_contract::EthDisplay,
571        Default,
572        Debug,
573        PartialEq,
574        Eq,
575        Hash
576    )]
577    #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")]
578    pub struct TransferFilter {
579        #[ethevent(indexed)]
580        pub from: ::ethers_core::types::Address,
581        #[ethevent(indexed)]
582        pub to: ::ethers_core::types::Address,
583        pub value: ::ethers_core::types::U256,
584    }
585    ///Container type for all of the contract's events
586    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
587    pub enum ERC20VotesCompEvents {
588        ApprovalFilter(ApprovalFilter),
589        DelegateChangedFilter(DelegateChangedFilter),
590        DelegateVotesChangedFilter(DelegateVotesChangedFilter),
591        Eip712DomainChangedFilter(Eip712DomainChangedFilter),
592        TransferFilter(TransferFilter),
593    }
594    impl ::ethers_contract::EthLogDecode for ERC20VotesCompEvents {
595        fn decode_log(
596            log: &::ethers_core::abi::RawLog,
597        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
598            if let Ok(decoded) = ApprovalFilter::decode_log(log) {
599                return Ok(ERC20VotesCompEvents::ApprovalFilter(decoded));
600            }
601            if let Ok(decoded) = DelegateChangedFilter::decode_log(log) {
602                return Ok(ERC20VotesCompEvents::DelegateChangedFilter(decoded));
603            }
604            if let Ok(decoded) = DelegateVotesChangedFilter::decode_log(log) {
605                return Ok(ERC20VotesCompEvents::DelegateVotesChangedFilter(decoded));
606            }
607            if let Ok(decoded) = Eip712DomainChangedFilter::decode_log(log) {
608                return Ok(ERC20VotesCompEvents::Eip712DomainChangedFilter(decoded));
609            }
610            if let Ok(decoded) = TransferFilter::decode_log(log) {
611                return Ok(ERC20VotesCompEvents::TransferFilter(decoded));
612            }
613            Err(::ethers_core::abi::Error::InvalidData)
614        }
615    }
616    impl ::core::fmt::Display for ERC20VotesCompEvents {
617        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
618            match self {
619                Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f),
620                Self::DelegateChangedFilter(element) => {
621                    ::core::fmt::Display::fmt(element, f)
622                }
623                Self::DelegateVotesChangedFilter(element) => {
624                    ::core::fmt::Display::fmt(element, f)
625                }
626                Self::Eip712DomainChangedFilter(element) => {
627                    ::core::fmt::Display::fmt(element, f)
628                }
629                Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f),
630            }
631        }
632    }
633    impl ::core::convert::From<ApprovalFilter> for ERC20VotesCompEvents {
634        fn from(value: ApprovalFilter) -> Self {
635            Self::ApprovalFilter(value)
636        }
637    }
638    impl ::core::convert::From<DelegateChangedFilter> for ERC20VotesCompEvents {
639        fn from(value: DelegateChangedFilter) -> Self {
640            Self::DelegateChangedFilter(value)
641        }
642    }
643    impl ::core::convert::From<DelegateVotesChangedFilter> for ERC20VotesCompEvents {
644        fn from(value: DelegateVotesChangedFilter) -> Self {
645            Self::DelegateVotesChangedFilter(value)
646        }
647    }
648    impl ::core::convert::From<Eip712DomainChangedFilter> for ERC20VotesCompEvents {
649        fn from(value: Eip712DomainChangedFilter) -> Self {
650            Self::Eip712DomainChangedFilter(value)
651        }
652    }
653    impl ::core::convert::From<TransferFilter> for ERC20VotesCompEvents {
654        fn from(value: TransferFilter) -> Self {
655            Self::TransferFilter(value)
656        }
657    }
658    ///Container type for all input parameters for the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
659    #[derive(
660        Clone,
661        ::ethers_contract::EthCall,
662        ::ethers_contract::EthDisplay,
663        Default,
664        Debug,
665        PartialEq,
666        Eq,
667        Hash
668    )]
669    #[ethcall(name = "CLOCK_MODE", abi = "CLOCK_MODE()")]
670    pub struct ClockModeCall;
671    ///Container type for all input parameters for the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515`
672    #[derive(
673        Clone,
674        ::ethers_contract::EthCall,
675        ::ethers_contract::EthDisplay,
676        Default,
677        Debug,
678        PartialEq,
679        Eq,
680        Hash
681    )]
682    #[ethcall(name = "DOMAIN_SEPARATOR", abi = "DOMAIN_SEPARATOR()")]
683    pub struct DomainSeparatorCall;
684    ///Container type for all input parameters for the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e`
685    #[derive(
686        Clone,
687        ::ethers_contract::EthCall,
688        ::ethers_contract::EthDisplay,
689        Default,
690        Debug,
691        PartialEq,
692        Eq,
693        Hash
694    )]
695    #[ethcall(name = "allowance", abi = "allowance(address,address)")]
696    pub struct AllowanceCall {
697        pub owner: ::ethers_core::types::Address,
698        pub spender: ::ethers_core::types::Address,
699    }
700    ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3`
701    #[derive(
702        Clone,
703        ::ethers_contract::EthCall,
704        ::ethers_contract::EthDisplay,
705        Default,
706        Debug,
707        PartialEq,
708        Eq,
709        Hash
710    )]
711    #[ethcall(name = "approve", abi = "approve(address,uint256)")]
712    pub struct ApproveCall {
713        pub spender: ::ethers_core::types::Address,
714        pub amount: ::ethers_core::types::U256,
715    }
716    ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
717    #[derive(
718        Clone,
719        ::ethers_contract::EthCall,
720        ::ethers_contract::EthDisplay,
721        Default,
722        Debug,
723        PartialEq,
724        Eq,
725        Hash
726    )]
727    #[ethcall(name = "balanceOf", abi = "balanceOf(address)")]
728    pub struct BalanceOfCall {
729        pub account: ::ethers_core::types::Address,
730    }
731    ///Container type for all input parameters for the `checkpoints` function with signature `checkpoints(address,uint32)` and selector `0xf1127ed8`
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(name = "checkpoints", abi = "checkpoints(address,uint32)")]
743    pub struct CheckpointsCall {
744        pub account: ::ethers_core::types::Address,
745        pub pos: u32,
746    }
747    ///Container type for all input parameters for the `clock` function with signature `clock()` and selector `0x91ddadf4`
748    #[derive(
749        Clone,
750        ::ethers_contract::EthCall,
751        ::ethers_contract::EthDisplay,
752        Default,
753        Debug,
754        PartialEq,
755        Eq,
756        Hash
757    )]
758    #[ethcall(name = "clock", abi = "clock()")]
759    pub struct ClockCall;
760    ///Container type for all input parameters for the `decimals` function with signature `decimals()` and selector `0x313ce567`
761    #[derive(
762        Clone,
763        ::ethers_contract::EthCall,
764        ::ethers_contract::EthDisplay,
765        Default,
766        Debug,
767        PartialEq,
768        Eq,
769        Hash
770    )]
771    #[ethcall(name = "decimals", abi = "decimals()")]
772    pub struct DecimalsCall;
773    ///Container type for all input parameters for the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7`
774    #[derive(
775        Clone,
776        ::ethers_contract::EthCall,
777        ::ethers_contract::EthDisplay,
778        Default,
779        Debug,
780        PartialEq,
781        Eq,
782        Hash
783    )]
784    #[ethcall(name = "decreaseAllowance", abi = "decreaseAllowance(address,uint256)")]
785    pub struct DecreaseAllowanceCall {
786        pub spender: ::ethers_core::types::Address,
787        pub subtracted_value: ::ethers_core::types::U256,
788    }
789    ///Container type for all input parameters for the `delegate` function with signature `delegate(address)` and selector `0x5c19a95c`
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 = "delegate", abi = "delegate(address)")]
801    pub struct DelegateCall {
802        pub delegatee: ::ethers_core::types::Address,
803    }
804    ///Container type for all input parameters for the `delegateBySig` function with signature `delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xc3cda520`
805    #[derive(
806        Clone,
807        ::ethers_contract::EthCall,
808        ::ethers_contract::EthDisplay,
809        Default,
810        Debug,
811        PartialEq,
812        Eq,
813        Hash
814    )]
815    #[ethcall(
816        name = "delegateBySig",
817        abi = "delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)"
818    )]
819    pub struct DelegateBySigCall {
820        pub delegatee: ::ethers_core::types::Address,
821        pub nonce: ::ethers_core::types::U256,
822        pub expiry: ::ethers_core::types::U256,
823        pub v: u8,
824        pub r: [u8; 32],
825        pub s: [u8; 32],
826    }
827    ///Container type for all input parameters for the `delegates` function with signature `delegates(address)` and selector `0x587cde1e`
828    #[derive(
829        Clone,
830        ::ethers_contract::EthCall,
831        ::ethers_contract::EthDisplay,
832        Default,
833        Debug,
834        PartialEq,
835        Eq,
836        Hash
837    )]
838    #[ethcall(name = "delegates", abi = "delegates(address)")]
839    pub struct DelegatesCall {
840        pub account: ::ethers_core::types::Address,
841    }
842    ///Container type for all input parameters for the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e`
843    #[derive(
844        Clone,
845        ::ethers_contract::EthCall,
846        ::ethers_contract::EthDisplay,
847        Default,
848        Debug,
849        PartialEq,
850        Eq,
851        Hash
852    )]
853    #[ethcall(name = "eip712Domain", abi = "eip712Domain()")]
854    pub struct Eip712DomainCall;
855    ///Container type for all input parameters for the `getCurrentVotes` function with signature `getCurrentVotes(address)` and selector `0xb4b5ea57`
856    #[derive(
857        Clone,
858        ::ethers_contract::EthCall,
859        ::ethers_contract::EthDisplay,
860        Default,
861        Debug,
862        PartialEq,
863        Eq,
864        Hash
865    )]
866    #[ethcall(name = "getCurrentVotes", abi = "getCurrentVotes(address)")]
867    pub struct GetCurrentVotesCall {
868        pub account: ::ethers_core::types::Address,
869    }
870    ///Container type for all input parameters for the `getPastTotalSupply` function with signature `getPastTotalSupply(uint256)` and selector `0x8e539e8c`
871    #[derive(
872        Clone,
873        ::ethers_contract::EthCall,
874        ::ethers_contract::EthDisplay,
875        Default,
876        Debug,
877        PartialEq,
878        Eq,
879        Hash
880    )]
881    #[ethcall(name = "getPastTotalSupply", abi = "getPastTotalSupply(uint256)")]
882    pub struct GetPastTotalSupplyCall {
883        pub timepoint: ::ethers_core::types::U256,
884    }
885    ///Container type for all input parameters for the `getPastVotes` function with signature `getPastVotes(address,uint256)` and selector `0x3a46b1a8`
886    #[derive(
887        Clone,
888        ::ethers_contract::EthCall,
889        ::ethers_contract::EthDisplay,
890        Default,
891        Debug,
892        PartialEq,
893        Eq,
894        Hash
895    )]
896    #[ethcall(name = "getPastVotes", abi = "getPastVotes(address,uint256)")]
897    pub struct GetPastVotesCall {
898        pub account: ::ethers_core::types::Address,
899        pub timepoint: ::ethers_core::types::U256,
900    }
901    ///Container type for all input parameters for the `getPriorVotes` function with signature `getPriorVotes(address,uint256)` and selector `0x782d6fe1`
902    #[derive(
903        Clone,
904        ::ethers_contract::EthCall,
905        ::ethers_contract::EthDisplay,
906        Default,
907        Debug,
908        PartialEq,
909        Eq,
910        Hash
911    )]
912    #[ethcall(name = "getPriorVotes", abi = "getPriorVotes(address,uint256)")]
913    pub struct GetPriorVotesCall {
914        pub account: ::ethers_core::types::Address,
915        pub block_number: ::ethers_core::types::U256,
916    }
917    ///Container type for all input parameters for the `getVotes` function with signature `getVotes(address)` and selector `0x9ab24eb0`
918    #[derive(
919        Clone,
920        ::ethers_contract::EthCall,
921        ::ethers_contract::EthDisplay,
922        Default,
923        Debug,
924        PartialEq,
925        Eq,
926        Hash
927    )]
928    #[ethcall(name = "getVotes", abi = "getVotes(address)")]
929    pub struct GetVotesCall {
930        pub account: ::ethers_core::types::Address,
931    }
932    ///Container type for all input parameters for the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351`
933    #[derive(
934        Clone,
935        ::ethers_contract::EthCall,
936        ::ethers_contract::EthDisplay,
937        Default,
938        Debug,
939        PartialEq,
940        Eq,
941        Hash
942    )]
943    #[ethcall(name = "increaseAllowance", abi = "increaseAllowance(address,uint256)")]
944    pub struct IncreaseAllowanceCall {
945        pub spender: ::ethers_core::types::Address,
946        pub added_value: ::ethers_core::types::U256,
947    }
948    ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03`
949    #[derive(
950        Clone,
951        ::ethers_contract::EthCall,
952        ::ethers_contract::EthDisplay,
953        Default,
954        Debug,
955        PartialEq,
956        Eq,
957        Hash
958    )]
959    #[ethcall(name = "name", abi = "name()")]
960    pub struct NameCall;
961    ///Container type for all input parameters for the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00`
962    #[derive(
963        Clone,
964        ::ethers_contract::EthCall,
965        ::ethers_contract::EthDisplay,
966        Default,
967        Debug,
968        PartialEq,
969        Eq,
970        Hash
971    )]
972    #[ethcall(name = "nonces", abi = "nonces(address)")]
973    pub struct NoncesCall {
974        pub owner: ::ethers_core::types::Address,
975    }
976    ///Container type for all input parameters for the `numCheckpoints` function with signature `numCheckpoints(address)` and selector `0x6fcfff45`
977    #[derive(
978        Clone,
979        ::ethers_contract::EthCall,
980        ::ethers_contract::EthDisplay,
981        Default,
982        Debug,
983        PartialEq,
984        Eq,
985        Hash
986    )]
987    #[ethcall(name = "numCheckpoints", abi = "numCheckpoints(address)")]
988    pub struct NumCheckpointsCall {
989        pub account: ::ethers_core::types::Address,
990    }
991    ///Container type for all input parameters for the `permit` function with signature `permit(address,address,uint256,uint256,uint8,bytes32,bytes32)` and selector `0xd505accf`
992    #[derive(
993        Clone,
994        ::ethers_contract::EthCall,
995        ::ethers_contract::EthDisplay,
996        Default,
997        Debug,
998        PartialEq,
999        Eq,
1000        Hash
1001    )]
1002    #[ethcall(
1003        name = "permit",
1004        abi = "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"
1005    )]
1006    pub struct PermitCall {
1007        pub owner: ::ethers_core::types::Address,
1008        pub spender: ::ethers_core::types::Address,
1009        pub value: ::ethers_core::types::U256,
1010        pub deadline: ::ethers_core::types::U256,
1011        pub v: u8,
1012        pub r: [u8; 32],
1013        pub s: [u8; 32],
1014    }
1015    ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41`
1016    #[derive(
1017        Clone,
1018        ::ethers_contract::EthCall,
1019        ::ethers_contract::EthDisplay,
1020        Default,
1021        Debug,
1022        PartialEq,
1023        Eq,
1024        Hash
1025    )]
1026    #[ethcall(name = "symbol", abi = "symbol()")]
1027    pub struct SymbolCall;
1028    ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd`
1029    #[derive(
1030        Clone,
1031        ::ethers_contract::EthCall,
1032        ::ethers_contract::EthDisplay,
1033        Default,
1034        Debug,
1035        PartialEq,
1036        Eq,
1037        Hash
1038    )]
1039    #[ethcall(name = "totalSupply", abi = "totalSupply()")]
1040    pub struct TotalSupplyCall;
1041    ///Container type for all input parameters for the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb`
1042    #[derive(
1043        Clone,
1044        ::ethers_contract::EthCall,
1045        ::ethers_contract::EthDisplay,
1046        Default,
1047        Debug,
1048        PartialEq,
1049        Eq,
1050        Hash
1051    )]
1052    #[ethcall(name = "transfer", abi = "transfer(address,uint256)")]
1053    pub struct TransferCall {
1054        pub to: ::ethers_core::types::Address,
1055        pub amount: ::ethers_core::types::U256,
1056    }
1057    ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`
1058    #[derive(
1059        Clone,
1060        ::ethers_contract::EthCall,
1061        ::ethers_contract::EthDisplay,
1062        Default,
1063        Debug,
1064        PartialEq,
1065        Eq,
1066        Hash
1067    )]
1068    #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")]
1069    pub struct TransferFromCall {
1070        pub from: ::ethers_core::types::Address,
1071        pub to: ::ethers_core::types::Address,
1072        pub amount: ::ethers_core::types::U256,
1073    }
1074    ///Container type for all of the contract's call
1075    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
1076    pub enum ERC20VotesCompCalls {
1077        ClockMode(ClockModeCall),
1078        DomainSeparator(DomainSeparatorCall),
1079        Allowance(AllowanceCall),
1080        Approve(ApproveCall),
1081        BalanceOf(BalanceOfCall),
1082        Checkpoints(CheckpointsCall),
1083        Clock(ClockCall),
1084        Decimals(DecimalsCall),
1085        DecreaseAllowance(DecreaseAllowanceCall),
1086        Delegate(DelegateCall),
1087        DelegateBySig(DelegateBySigCall),
1088        Delegates(DelegatesCall),
1089        Eip712Domain(Eip712DomainCall),
1090        GetCurrentVotes(GetCurrentVotesCall),
1091        GetPastTotalSupply(GetPastTotalSupplyCall),
1092        GetPastVotes(GetPastVotesCall),
1093        GetPriorVotes(GetPriorVotesCall),
1094        GetVotes(GetVotesCall),
1095        IncreaseAllowance(IncreaseAllowanceCall),
1096        Name(NameCall),
1097        Nonces(NoncesCall),
1098        NumCheckpoints(NumCheckpointsCall),
1099        Permit(PermitCall),
1100        Symbol(SymbolCall),
1101        TotalSupply(TotalSupplyCall),
1102        Transfer(TransferCall),
1103        TransferFrom(TransferFromCall),
1104    }
1105    impl ::ethers_core::abi::AbiDecode for ERC20VotesCompCalls {
1106        fn decode(
1107            data: impl AsRef<[u8]>,
1108        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
1109            let data = data.as_ref();
1110            if let Ok(decoded)
1111                = <ClockModeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1112                return Ok(Self::ClockMode(decoded));
1113            }
1114            if let Ok(decoded)
1115                = <DomainSeparatorCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1116                return Ok(Self::DomainSeparator(decoded));
1117            }
1118            if let Ok(decoded)
1119                = <AllowanceCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1120                return Ok(Self::Allowance(decoded));
1121            }
1122            if let Ok(decoded)
1123                = <ApproveCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1124                return Ok(Self::Approve(decoded));
1125            }
1126            if let Ok(decoded)
1127                = <BalanceOfCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1128                return Ok(Self::BalanceOf(decoded));
1129            }
1130            if let Ok(decoded)
1131                = <CheckpointsCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1132                return Ok(Self::Checkpoints(decoded));
1133            }
1134            if let Ok(decoded)
1135                = <ClockCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1136                return Ok(Self::Clock(decoded));
1137            }
1138            if let Ok(decoded)
1139                = <DecimalsCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1140                return Ok(Self::Decimals(decoded));
1141            }
1142            if let Ok(decoded)
1143                = <DecreaseAllowanceCall as ::ethers_core::abi::AbiDecode>::decode(
1144                    data,
1145                ) {
1146                return Ok(Self::DecreaseAllowance(decoded));
1147            }
1148            if let Ok(decoded)
1149                = <DelegateCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1150                return Ok(Self::Delegate(decoded));
1151            }
1152            if let Ok(decoded)
1153                = <DelegateBySigCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1154                return Ok(Self::DelegateBySig(decoded));
1155            }
1156            if let Ok(decoded)
1157                = <DelegatesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1158                return Ok(Self::Delegates(decoded));
1159            }
1160            if let Ok(decoded)
1161                = <Eip712DomainCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1162                return Ok(Self::Eip712Domain(decoded));
1163            }
1164            if let Ok(decoded)
1165                = <GetCurrentVotesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1166                return Ok(Self::GetCurrentVotes(decoded));
1167            }
1168            if let Ok(decoded)
1169                = <GetPastTotalSupplyCall as ::ethers_core::abi::AbiDecode>::decode(
1170                    data,
1171                ) {
1172                return Ok(Self::GetPastTotalSupply(decoded));
1173            }
1174            if let Ok(decoded)
1175                = <GetPastVotesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1176                return Ok(Self::GetPastVotes(decoded));
1177            }
1178            if let Ok(decoded)
1179                = <GetPriorVotesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1180                return Ok(Self::GetPriorVotes(decoded));
1181            }
1182            if let Ok(decoded)
1183                = <GetVotesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1184                return Ok(Self::GetVotes(decoded));
1185            }
1186            if let Ok(decoded)
1187                = <IncreaseAllowanceCall as ::ethers_core::abi::AbiDecode>::decode(
1188                    data,
1189                ) {
1190                return Ok(Self::IncreaseAllowance(decoded));
1191            }
1192            if let Ok(decoded)
1193                = <NameCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1194                return Ok(Self::Name(decoded));
1195            }
1196            if let Ok(decoded)
1197                = <NoncesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1198                return Ok(Self::Nonces(decoded));
1199            }
1200            if let Ok(decoded)
1201                = <NumCheckpointsCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1202                return Ok(Self::NumCheckpoints(decoded));
1203            }
1204            if let Ok(decoded)
1205                = <PermitCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1206                return Ok(Self::Permit(decoded));
1207            }
1208            if let Ok(decoded)
1209                = <SymbolCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1210                return Ok(Self::Symbol(decoded));
1211            }
1212            if let Ok(decoded)
1213                = <TotalSupplyCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1214                return Ok(Self::TotalSupply(decoded));
1215            }
1216            if let Ok(decoded)
1217                = <TransferCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1218                return Ok(Self::Transfer(decoded));
1219            }
1220            if let Ok(decoded)
1221                = <TransferFromCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1222                return Ok(Self::TransferFrom(decoded));
1223            }
1224            Err(::ethers_core::abi::Error::InvalidData.into())
1225        }
1226    }
1227    impl ::ethers_core::abi::AbiEncode for ERC20VotesCompCalls {
1228        fn encode(self) -> Vec<u8> {
1229            match self {
1230                Self::ClockMode(element) => {
1231                    ::ethers_core::abi::AbiEncode::encode(element)
1232                }
1233                Self::DomainSeparator(element) => {
1234                    ::ethers_core::abi::AbiEncode::encode(element)
1235                }
1236                Self::Allowance(element) => {
1237                    ::ethers_core::abi::AbiEncode::encode(element)
1238                }
1239                Self::Approve(element) => ::ethers_core::abi::AbiEncode::encode(element),
1240                Self::BalanceOf(element) => {
1241                    ::ethers_core::abi::AbiEncode::encode(element)
1242                }
1243                Self::Checkpoints(element) => {
1244                    ::ethers_core::abi::AbiEncode::encode(element)
1245                }
1246                Self::Clock(element) => ::ethers_core::abi::AbiEncode::encode(element),
1247                Self::Decimals(element) => ::ethers_core::abi::AbiEncode::encode(element),
1248                Self::DecreaseAllowance(element) => {
1249                    ::ethers_core::abi::AbiEncode::encode(element)
1250                }
1251                Self::Delegate(element) => ::ethers_core::abi::AbiEncode::encode(element),
1252                Self::DelegateBySig(element) => {
1253                    ::ethers_core::abi::AbiEncode::encode(element)
1254                }
1255                Self::Delegates(element) => {
1256                    ::ethers_core::abi::AbiEncode::encode(element)
1257                }
1258                Self::Eip712Domain(element) => {
1259                    ::ethers_core::abi::AbiEncode::encode(element)
1260                }
1261                Self::GetCurrentVotes(element) => {
1262                    ::ethers_core::abi::AbiEncode::encode(element)
1263                }
1264                Self::GetPastTotalSupply(element) => {
1265                    ::ethers_core::abi::AbiEncode::encode(element)
1266                }
1267                Self::GetPastVotes(element) => {
1268                    ::ethers_core::abi::AbiEncode::encode(element)
1269                }
1270                Self::GetPriorVotes(element) => {
1271                    ::ethers_core::abi::AbiEncode::encode(element)
1272                }
1273                Self::GetVotes(element) => ::ethers_core::abi::AbiEncode::encode(element),
1274                Self::IncreaseAllowance(element) => {
1275                    ::ethers_core::abi::AbiEncode::encode(element)
1276                }
1277                Self::Name(element) => ::ethers_core::abi::AbiEncode::encode(element),
1278                Self::Nonces(element) => ::ethers_core::abi::AbiEncode::encode(element),
1279                Self::NumCheckpoints(element) => {
1280                    ::ethers_core::abi::AbiEncode::encode(element)
1281                }
1282                Self::Permit(element) => ::ethers_core::abi::AbiEncode::encode(element),
1283                Self::Symbol(element) => ::ethers_core::abi::AbiEncode::encode(element),
1284                Self::TotalSupply(element) => {
1285                    ::ethers_core::abi::AbiEncode::encode(element)
1286                }
1287                Self::Transfer(element) => ::ethers_core::abi::AbiEncode::encode(element),
1288                Self::TransferFrom(element) => {
1289                    ::ethers_core::abi::AbiEncode::encode(element)
1290                }
1291            }
1292        }
1293    }
1294    impl ::core::fmt::Display for ERC20VotesCompCalls {
1295        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1296            match self {
1297                Self::ClockMode(element) => ::core::fmt::Display::fmt(element, f),
1298                Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f),
1299                Self::Allowance(element) => ::core::fmt::Display::fmt(element, f),
1300                Self::Approve(element) => ::core::fmt::Display::fmt(element, f),
1301                Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f),
1302                Self::Checkpoints(element) => ::core::fmt::Display::fmt(element, f),
1303                Self::Clock(element) => ::core::fmt::Display::fmt(element, f),
1304                Self::Decimals(element) => ::core::fmt::Display::fmt(element, f),
1305                Self::DecreaseAllowance(element) => ::core::fmt::Display::fmt(element, f),
1306                Self::Delegate(element) => ::core::fmt::Display::fmt(element, f),
1307                Self::DelegateBySig(element) => ::core::fmt::Display::fmt(element, f),
1308                Self::Delegates(element) => ::core::fmt::Display::fmt(element, f),
1309                Self::Eip712Domain(element) => ::core::fmt::Display::fmt(element, f),
1310                Self::GetCurrentVotes(element) => ::core::fmt::Display::fmt(element, f),
1311                Self::GetPastTotalSupply(element) => {
1312                    ::core::fmt::Display::fmt(element, f)
1313                }
1314                Self::GetPastVotes(element) => ::core::fmt::Display::fmt(element, f),
1315                Self::GetPriorVotes(element) => ::core::fmt::Display::fmt(element, f),
1316                Self::GetVotes(element) => ::core::fmt::Display::fmt(element, f),
1317                Self::IncreaseAllowance(element) => ::core::fmt::Display::fmt(element, f),
1318                Self::Name(element) => ::core::fmt::Display::fmt(element, f),
1319                Self::Nonces(element) => ::core::fmt::Display::fmt(element, f),
1320                Self::NumCheckpoints(element) => ::core::fmt::Display::fmt(element, f),
1321                Self::Permit(element) => ::core::fmt::Display::fmt(element, f),
1322                Self::Symbol(element) => ::core::fmt::Display::fmt(element, f),
1323                Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f),
1324                Self::Transfer(element) => ::core::fmt::Display::fmt(element, f),
1325                Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f),
1326            }
1327        }
1328    }
1329    impl ::core::convert::From<ClockModeCall> for ERC20VotesCompCalls {
1330        fn from(value: ClockModeCall) -> Self {
1331            Self::ClockMode(value)
1332        }
1333    }
1334    impl ::core::convert::From<DomainSeparatorCall> for ERC20VotesCompCalls {
1335        fn from(value: DomainSeparatorCall) -> Self {
1336            Self::DomainSeparator(value)
1337        }
1338    }
1339    impl ::core::convert::From<AllowanceCall> for ERC20VotesCompCalls {
1340        fn from(value: AllowanceCall) -> Self {
1341            Self::Allowance(value)
1342        }
1343    }
1344    impl ::core::convert::From<ApproveCall> for ERC20VotesCompCalls {
1345        fn from(value: ApproveCall) -> Self {
1346            Self::Approve(value)
1347        }
1348    }
1349    impl ::core::convert::From<BalanceOfCall> for ERC20VotesCompCalls {
1350        fn from(value: BalanceOfCall) -> Self {
1351            Self::BalanceOf(value)
1352        }
1353    }
1354    impl ::core::convert::From<CheckpointsCall> for ERC20VotesCompCalls {
1355        fn from(value: CheckpointsCall) -> Self {
1356            Self::Checkpoints(value)
1357        }
1358    }
1359    impl ::core::convert::From<ClockCall> for ERC20VotesCompCalls {
1360        fn from(value: ClockCall) -> Self {
1361            Self::Clock(value)
1362        }
1363    }
1364    impl ::core::convert::From<DecimalsCall> for ERC20VotesCompCalls {
1365        fn from(value: DecimalsCall) -> Self {
1366            Self::Decimals(value)
1367        }
1368    }
1369    impl ::core::convert::From<DecreaseAllowanceCall> for ERC20VotesCompCalls {
1370        fn from(value: DecreaseAllowanceCall) -> Self {
1371            Self::DecreaseAllowance(value)
1372        }
1373    }
1374    impl ::core::convert::From<DelegateCall> for ERC20VotesCompCalls {
1375        fn from(value: DelegateCall) -> Self {
1376            Self::Delegate(value)
1377        }
1378    }
1379    impl ::core::convert::From<DelegateBySigCall> for ERC20VotesCompCalls {
1380        fn from(value: DelegateBySigCall) -> Self {
1381            Self::DelegateBySig(value)
1382        }
1383    }
1384    impl ::core::convert::From<DelegatesCall> for ERC20VotesCompCalls {
1385        fn from(value: DelegatesCall) -> Self {
1386            Self::Delegates(value)
1387        }
1388    }
1389    impl ::core::convert::From<Eip712DomainCall> for ERC20VotesCompCalls {
1390        fn from(value: Eip712DomainCall) -> Self {
1391            Self::Eip712Domain(value)
1392        }
1393    }
1394    impl ::core::convert::From<GetCurrentVotesCall> for ERC20VotesCompCalls {
1395        fn from(value: GetCurrentVotesCall) -> Self {
1396            Self::GetCurrentVotes(value)
1397        }
1398    }
1399    impl ::core::convert::From<GetPastTotalSupplyCall> for ERC20VotesCompCalls {
1400        fn from(value: GetPastTotalSupplyCall) -> Self {
1401            Self::GetPastTotalSupply(value)
1402        }
1403    }
1404    impl ::core::convert::From<GetPastVotesCall> for ERC20VotesCompCalls {
1405        fn from(value: GetPastVotesCall) -> Self {
1406            Self::GetPastVotes(value)
1407        }
1408    }
1409    impl ::core::convert::From<GetPriorVotesCall> for ERC20VotesCompCalls {
1410        fn from(value: GetPriorVotesCall) -> Self {
1411            Self::GetPriorVotes(value)
1412        }
1413    }
1414    impl ::core::convert::From<GetVotesCall> for ERC20VotesCompCalls {
1415        fn from(value: GetVotesCall) -> Self {
1416            Self::GetVotes(value)
1417        }
1418    }
1419    impl ::core::convert::From<IncreaseAllowanceCall> for ERC20VotesCompCalls {
1420        fn from(value: IncreaseAllowanceCall) -> Self {
1421            Self::IncreaseAllowance(value)
1422        }
1423    }
1424    impl ::core::convert::From<NameCall> for ERC20VotesCompCalls {
1425        fn from(value: NameCall) -> Self {
1426            Self::Name(value)
1427        }
1428    }
1429    impl ::core::convert::From<NoncesCall> for ERC20VotesCompCalls {
1430        fn from(value: NoncesCall) -> Self {
1431            Self::Nonces(value)
1432        }
1433    }
1434    impl ::core::convert::From<NumCheckpointsCall> for ERC20VotesCompCalls {
1435        fn from(value: NumCheckpointsCall) -> Self {
1436            Self::NumCheckpoints(value)
1437        }
1438    }
1439    impl ::core::convert::From<PermitCall> for ERC20VotesCompCalls {
1440        fn from(value: PermitCall) -> Self {
1441            Self::Permit(value)
1442        }
1443    }
1444    impl ::core::convert::From<SymbolCall> for ERC20VotesCompCalls {
1445        fn from(value: SymbolCall) -> Self {
1446            Self::Symbol(value)
1447        }
1448    }
1449    impl ::core::convert::From<TotalSupplyCall> for ERC20VotesCompCalls {
1450        fn from(value: TotalSupplyCall) -> Self {
1451            Self::TotalSupply(value)
1452        }
1453    }
1454    impl ::core::convert::From<TransferCall> for ERC20VotesCompCalls {
1455        fn from(value: TransferCall) -> Self {
1456            Self::Transfer(value)
1457        }
1458    }
1459    impl ::core::convert::From<TransferFromCall> for ERC20VotesCompCalls {
1460        fn from(value: TransferFromCall) -> Self {
1461            Self::TransferFrom(value)
1462        }
1463    }
1464    ///Container type for all return fields from the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
1465    #[derive(
1466        Clone,
1467        ::ethers_contract::EthAbiType,
1468        ::ethers_contract::EthAbiCodec,
1469        Default,
1470        Debug,
1471        PartialEq,
1472        Eq,
1473        Hash
1474    )]
1475    pub struct ClockModeReturn(pub ::std::string::String);
1476    ///Container type for all return fields from the `DOMAIN_SEPARATOR` function with signature `DOMAIN_SEPARATOR()` and selector `0x3644e515`
1477    #[derive(
1478        Clone,
1479        ::ethers_contract::EthAbiType,
1480        ::ethers_contract::EthAbiCodec,
1481        Default,
1482        Debug,
1483        PartialEq,
1484        Eq,
1485        Hash
1486    )]
1487    pub struct DomainSeparatorReturn(pub [u8; 32]);
1488    ///Container type for all return fields from the `allowance` function with signature `allowance(address,address)` and selector `0xdd62ed3e`
1489    #[derive(
1490        Clone,
1491        ::ethers_contract::EthAbiType,
1492        ::ethers_contract::EthAbiCodec,
1493        Default,
1494        Debug,
1495        PartialEq,
1496        Eq,
1497        Hash
1498    )]
1499    pub struct AllowanceReturn(pub ::ethers_core::types::U256);
1500    ///Container type for all return fields from the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3`
1501    #[derive(
1502        Clone,
1503        ::ethers_contract::EthAbiType,
1504        ::ethers_contract::EthAbiCodec,
1505        Default,
1506        Debug,
1507        PartialEq,
1508        Eq,
1509        Hash
1510    )]
1511    pub struct ApproveReturn(pub bool);
1512    ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
1513    #[derive(
1514        Clone,
1515        ::ethers_contract::EthAbiType,
1516        ::ethers_contract::EthAbiCodec,
1517        Default,
1518        Debug,
1519        PartialEq,
1520        Eq,
1521        Hash
1522    )]
1523    pub struct BalanceOfReturn(pub ::ethers_core::types::U256);
1524    ///Container type for all return fields from the `checkpoints` function with signature `checkpoints(address,uint32)` and selector `0xf1127ed8`
1525    #[derive(
1526        Clone,
1527        ::ethers_contract::EthAbiType,
1528        ::ethers_contract::EthAbiCodec,
1529        Default,
1530        Debug,
1531        PartialEq,
1532        Eq,
1533        Hash
1534    )]
1535    pub struct CheckpointsReturn(pub Checkpoint);
1536    ///Container type for all return fields from the `clock` function with signature `clock()` and selector `0x91ddadf4`
1537    #[derive(
1538        Clone,
1539        ::ethers_contract::EthAbiType,
1540        ::ethers_contract::EthAbiCodec,
1541        Default,
1542        Debug,
1543        PartialEq,
1544        Eq,
1545        Hash
1546    )]
1547    pub struct ClockReturn(pub u64);
1548    ///Container type for all return fields from the `decimals` function with signature `decimals()` and selector `0x313ce567`
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 DecimalsReturn(pub u8);
1560    ///Container type for all return fields from the `decreaseAllowance` function with signature `decreaseAllowance(address,uint256)` and selector `0xa457c2d7`
1561    #[derive(
1562        Clone,
1563        ::ethers_contract::EthAbiType,
1564        ::ethers_contract::EthAbiCodec,
1565        Default,
1566        Debug,
1567        PartialEq,
1568        Eq,
1569        Hash
1570    )]
1571    pub struct DecreaseAllowanceReturn(pub bool);
1572    ///Container type for all return fields from the `delegates` function with signature `delegates(address)` and selector `0x587cde1e`
1573    #[derive(
1574        Clone,
1575        ::ethers_contract::EthAbiType,
1576        ::ethers_contract::EthAbiCodec,
1577        Default,
1578        Debug,
1579        PartialEq,
1580        Eq,
1581        Hash
1582    )]
1583    pub struct DelegatesReturn(pub ::ethers_core::types::Address);
1584    ///Container type for all return fields from the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e`
1585    #[derive(
1586        Clone,
1587        ::ethers_contract::EthAbiType,
1588        ::ethers_contract::EthAbiCodec,
1589        Default,
1590        Debug,
1591        PartialEq,
1592        Eq,
1593        Hash
1594    )]
1595    pub struct Eip712DomainReturn {
1596        pub fields: [u8; 1],
1597        pub name: ::std::string::String,
1598        pub version: ::std::string::String,
1599        pub chain_id: ::ethers_core::types::U256,
1600        pub verifying_contract: ::ethers_core::types::Address,
1601        pub salt: [u8; 32],
1602        pub extensions: ::std::vec::Vec<::ethers_core::types::U256>,
1603    }
1604    ///Container type for all return fields from the `getCurrentVotes` function with signature `getCurrentVotes(address)` and selector `0xb4b5ea57`
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 GetCurrentVotesReturn(pub u128);
1616    ///Container type for all return fields from the `getPastTotalSupply` function with signature `getPastTotalSupply(uint256)` and selector `0x8e539e8c`
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 GetPastTotalSupplyReturn(pub ::ethers_core::types::U256);
1628    ///Container type for all return fields from the `getPastVotes` function with signature `getPastVotes(address,uint256)` and selector `0x3a46b1a8`
1629    #[derive(
1630        Clone,
1631        ::ethers_contract::EthAbiType,
1632        ::ethers_contract::EthAbiCodec,
1633        Default,
1634        Debug,
1635        PartialEq,
1636        Eq,
1637        Hash
1638    )]
1639    pub struct GetPastVotesReturn(pub ::ethers_core::types::U256);
1640    ///Container type for all return fields from the `getPriorVotes` function with signature `getPriorVotes(address,uint256)` and selector `0x782d6fe1`
1641    #[derive(
1642        Clone,
1643        ::ethers_contract::EthAbiType,
1644        ::ethers_contract::EthAbiCodec,
1645        Default,
1646        Debug,
1647        PartialEq,
1648        Eq,
1649        Hash
1650    )]
1651    pub struct GetPriorVotesReturn(pub u128);
1652    ///Container type for all return fields from the `getVotes` function with signature `getVotes(address)` and selector `0x9ab24eb0`
1653    #[derive(
1654        Clone,
1655        ::ethers_contract::EthAbiType,
1656        ::ethers_contract::EthAbiCodec,
1657        Default,
1658        Debug,
1659        PartialEq,
1660        Eq,
1661        Hash
1662    )]
1663    pub struct GetVotesReturn(pub ::ethers_core::types::U256);
1664    ///Container type for all return fields from the `increaseAllowance` function with signature `increaseAllowance(address,uint256)` and selector `0x39509351`
1665    #[derive(
1666        Clone,
1667        ::ethers_contract::EthAbiType,
1668        ::ethers_contract::EthAbiCodec,
1669        Default,
1670        Debug,
1671        PartialEq,
1672        Eq,
1673        Hash
1674    )]
1675    pub struct IncreaseAllowanceReturn(pub bool);
1676    ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03`
1677    #[derive(
1678        Clone,
1679        ::ethers_contract::EthAbiType,
1680        ::ethers_contract::EthAbiCodec,
1681        Default,
1682        Debug,
1683        PartialEq,
1684        Eq,
1685        Hash
1686    )]
1687    pub struct NameReturn(pub ::std::string::String);
1688    ///Container type for all return fields from the `nonces` function with signature `nonces(address)` and selector `0x7ecebe00`
1689    #[derive(
1690        Clone,
1691        ::ethers_contract::EthAbiType,
1692        ::ethers_contract::EthAbiCodec,
1693        Default,
1694        Debug,
1695        PartialEq,
1696        Eq,
1697        Hash
1698    )]
1699    pub struct NoncesReturn(pub ::ethers_core::types::U256);
1700    ///Container type for all return fields from the `numCheckpoints` function with signature `numCheckpoints(address)` and selector `0x6fcfff45`
1701    #[derive(
1702        Clone,
1703        ::ethers_contract::EthAbiType,
1704        ::ethers_contract::EthAbiCodec,
1705        Default,
1706        Debug,
1707        PartialEq,
1708        Eq,
1709        Hash
1710    )]
1711    pub struct NumCheckpointsReturn(pub u32);
1712    ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41`
1713    #[derive(
1714        Clone,
1715        ::ethers_contract::EthAbiType,
1716        ::ethers_contract::EthAbiCodec,
1717        Default,
1718        Debug,
1719        PartialEq,
1720        Eq,
1721        Hash
1722    )]
1723    pub struct SymbolReturn(pub ::std::string::String);
1724    ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd`
1725    #[derive(
1726        Clone,
1727        ::ethers_contract::EthAbiType,
1728        ::ethers_contract::EthAbiCodec,
1729        Default,
1730        Debug,
1731        PartialEq,
1732        Eq,
1733        Hash
1734    )]
1735    pub struct TotalSupplyReturn(pub ::ethers_core::types::U256);
1736    ///Container type for all return fields from the `transfer` function with signature `transfer(address,uint256)` and selector `0xa9059cbb`
1737    #[derive(
1738        Clone,
1739        ::ethers_contract::EthAbiType,
1740        ::ethers_contract::EthAbiCodec,
1741        Default,
1742        Debug,
1743        PartialEq,
1744        Eq,
1745        Hash
1746    )]
1747    pub struct TransferReturn(pub bool);
1748    ///Container type for all return fields from the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`
1749    #[derive(
1750        Clone,
1751        ::ethers_contract::EthAbiType,
1752        ::ethers_contract::EthAbiCodec,
1753        Default,
1754        Debug,
1755        PartialEq,
1756        Eq,
1757        Hash
1758    )]
1759    pub struct TransferFromReturn(pub bool);
1760    ///`Checkpoint(uint32,uint224)`
1761    #[derive(
1762        Clone,
1763        ::ethers_contract::EthAbiType,
1764        ::ethers_contract::EthAbiCodec,
1765        Default,
1766        Debug,
1767        PartialEq,
1768        Eq,
1769        Hash
1770    )]
1771    pub struct Checkpoint {
1772        pub from_block: u32,
1773        pub votes: ::ethers_core::types::U256,
1774    }
1775}