openzeppelin_rs/contracts/
GovernorVotes.rs

1pub use governor_votes::*;
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 governor_votes {
13    #[rustfmt::skip]
14    const __ABI: &str = "[{\"inputs\":[],\"type\":\"error\",\"name\":\"Empty\",\"outputs\":[]},{\"inputs\":[],\"type\":\"error\",\"name\":\"InvalidShortString\",\"outputs\":[]},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\",\"components\":[]}],\"type\":\"error\",\"name\":\"StringTooLong\",\"outputs\":[]},{\"inputs\":[],\"type\":\"event\",\"name\":\"EIP712DomainChanged\",\"outputs\":[],\"anonymous\":false},{\"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\":\"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\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"components\":[]}]},{\"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\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\",\"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\":\"\",\"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\":\"\",\"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\":\"\",\"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\":\"\",\"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\":\"\",\"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\":\"\",\"type\":\"uint256\",\"components\":[]}]},{\"inputs\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\",\"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\":\"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\":\"\",\"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\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\",\"components\":[]}]},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"nonpayable\",\"type\":\"function\",\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\",\"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\":\"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\":[],\"stateMutability\":\"view\",\"type\":\"function\",\"name\":\"proposalThreshold\",\"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\":\"\",\"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\":\"address\",\"name\":\"target\",\"type\":\"address\",\"components\":[]},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\",\"components\":[]},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\",\"components\":[]}],\"stateMutability\":\"payable\",\"type\":\"function\",\"name\":\"relay\",\"outputs\":[]},{\"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\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC5805\",\"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\":[]}]},{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"receive\",\"outputs\":[]}]";
15    ///The parsed JSON ABI of the contract.
16    pub static GOVERNORVOTES_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 GovernorVotes<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for GovernorVotes<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for GovernorVotes<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 GovernorVotes<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for GovernorVotes<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(GovernorVotes)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> GovernorVotes<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                    GOVERNORVOTES_ABI.clone(),
51                    client,
52                ),
53            )
54        }
55        ///Calls the contract's `BALLOT_TYPEHASH` (0xdeaaa7cc) function
56        pub fn ballot_typehash(
57            &self,
58        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
59            self.0
60                .method_hash([222, 170, 167, 204], ())
61                .expect("method not found (this should never happen)")
62        }
63        ///Calls the contract's `CLOCK_MODE` (0x4bf5d7e9) function
64        pub fn clock_mode(
65            &self,
66        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
67            self.0
68                .method_hash([75, 245, 215, 233], ())
69                .expect("method not found (this should never happen)")
70        }
71        ///Calls the contract's `COUNTING_MODE` (0xdd4e2ba5) function
72        pub fn counting_mode(
73            &self,
74        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
75            self.0
76                .method_hash([221, 78, 43, 165], ())
77                .expect("method not found (this should never happen)")
78        }
79        ///Calls the contract's `EXTENDED_BALLOT_TYPEHASH` (0x2fe3e261) function
80        pub fn extended_ballot_typehash(
81            &self,
82        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 32]> {
83            self.0
84                .method_hash([47, 227, 226, 97], ())
85                .expect("method not found (this should never happen)")
86        }
87        ///Calls the contract's `cancel` (0x452115d6) function
88        pub fn cancel(
89            &self,
90            targets: ::std::vec::Vec<::ethers_core::types::Address>,
91            values: ::std::vec::Vec<::ethers_core::types::U256>,
92            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
93            description_hash: [u8; 32],
94        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
95            self.0
96                .method_hash(
97                    [69, 33, 21, 214],
98                    (targets, values, calldatas, description_hash),
99                )
100                .expect("method not found (this should never happen)")
101        }
102        ///Calls the contract's `castVote` (0x56781388) function
103        pub fn cast_vote(
104            &self,
105            proposal_id: ::ethers_core::types::U256,
106            support: u8,
107        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
108            self.0
109                .method_hash([86, 120, 19, 136], (proposal_id, support))
110                .expect("method not found (this should never happen)")
111        }
112        ///Calls the contract's `castVoteBySig` (0x3bccf4fd) function
113        pub fn cast_vote_by_sig(
114            &self,
115            proposal_id: ::ethers_core::types::U256,
116            support: u8,
117            v: u8,
118            r: [u8; 32],
119            s: [u8; 32],
120        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
121            self.0
122                .method_hash([59, 204, 244, 253], (proposal_id, support, v, r, s))
123                .expect("method not found (this should never happen)")
124        }
125        ///Calls the contract's `castVoteWithReason` (0x7b3c71d3) function
126        pub fn cast_vote_with_reason(
127            &self,
128            proposal_id: ::ethers_core::types::U256,
129            support: u8,
130            reason: ::std::string::String,
131        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
132            self.0
133                .method_hash([123, 60, 113, 211], (proposal_id, support, reason))
134                .expect("method not found (this should never happen)")
135        }
136        ///Calls the contract's `castVoteWithReasonAndParams` (0x5f398a14) function
137        pub fn cast_vote_with_reason_and_params(
138            &self,
139            proposal_id: ::ethers_core::types::U256,
140            support: u8,
141            reason: ::std::string::String,
142            params: ::ethers_core::types::Bytes,
143        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
144            self.0
145                .method_hash([95, 57, 138, 20], (proposal_id, support, reason, params))
146                .expect("method not found (this should never happen)")
147        }
148        ///Calls the contract's `castVoteWithReasonAndParamsBySig` (0x03420181) function
149        pub fn cast_vote_with_reason_and_params_by_sig(
150            &self,
151            proposal_id: ::ethers_core::types::U256,
152            support: u8,
153            reason: ::std::string::String,
154            params: ::ethers_core::types::Bytes,
155            v: u8,
156            r: [u8; 32],
157            s: [u8; 32],
158        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
159            self.0
160                .method_hash(
161                    [3, 66, 1, 129],
162                    (proposal_id, support, reason, params, v, r, s),
163                )
164                .expect("method not found (this should never happen)")
165        }
166        ///Calls the contract's `clock` (0x91ddadf4) function
167        pub fn clock(&self) -> ::ethers_contract::builders::ContractCall<M, u64> {
168            self.0
169                .method_hash([145, 221, 173, 244], ())
170                .expect("method not found (this should never happen)")
171        }
172        ///Calls the contract's `eip712Domain` (0x84b0196e) function
173        pub fn eip_712_domain(
174            &self,
175        ) -> ::ethers_contract::builders::ContractCall<
176            M,
177            (
178                [u8; 1],
179                ::std::string::String,
180                ::std::string::String,
181                ::ethers_core::types::U256,
182                ::ethers_core::types::Address,
183                [u8; 32],
184                ::std::vec::Vec<::ethers_core::types::U256>,
185            ),
186        > {
187            self.0
188                .method_hash([132, 176, 25, 110], ())
189                .expect("method not found (this should never happen)")
190        }
191        ///Calls the contract's `execute` (0x2656227d) function
192        pub fn execute(
193            &self,
194            targets: ::std::vec::Vec<::ethers_core::types::Address>,
195            values: ::std::vec::Vec<::ethers_core::types::U256>,
196            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
197            description_hash: [u8; 32],
198        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
199            self.0
200                .method_hash(
201                    [38, 86, 34, 125],
202                    (targets, values, calldatas, description_hash),
203                )
204                .expect("method not found (this should never happen)")
205        }
206        ///Calls the contract's `getVotes` (0xeb9019d4) function
207        pub fn get_votes(
208            &self,
209            account: ::ethers_core::types::Address,
210            timepoint: ::ethers_core::types::U256,
211        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
212            self.0
213                .method_hash([235, 144, 25, 212], (account, timepoint))
214                .expect("method not found (this should never happen)")
215        }
216        ///Calls the contract's `getVotesWithParams` (0x9a802a6d) function
217        pub fn get_votes_with_params(
218            &self,
219            account: ::ethers_core::types::Address,
220            timepoint: ::ethers_core::types::U256,
221            params: ::ethers_core::types::Bytes,
222        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
223            self.0
224                .method_hash([154, 128, 42, 109], (account, timepoint, params))
225                .expect("method not found (this should never happen)")
226        }
227        ///Calls the contract's `hasVoted` (0x43859632) function
228        pub fn has_voted(
229            &self,
230            proposal_id: ::ethers_core::types::U256,
231            account: ::ethers_core::types::Address,
232        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
233            self.0
234                .method_hash([67, 133, 150, 50], (proposal_id, account))
235                .expect("method not found (this should never happen)")
236        }
237        ///Calls the contract's `hashProposal` (0xc59057e4) function
238        pub fn hash_proposal(
239            &self,
240            targets: ::std::vec::Vec<::ethers_core::types::Address>,
241            values: ::std::vec::Vec<::ethers_core::types::U256>,
242            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
243            description_hash: [u8; 32],
244        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
245            self.0
246                .method_hash(
247                    [197, 144, 87, 228],
248                    (targets, values, calldatas, description_hash),
249                )
250                .expect("method not found (this should never happen)")
251        }
252        ///Calls the contract's `name` (0x06fdde03) function
253        pub fn name(
254            &self,
255        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
256            self.0
257                .method_hash([6, 253, 222, 3], ())
258                .expect("method not found (this should never happen)")
259        }
260        ///Calls the contract's `onERC1155BatchReceived` (0xbc197c81) function
261        pub fn on_erc1155_batch_received(
262            &self,
263            p0: ::ethers_core::types::Address,
264            p1: ::ethers_core::types::Address,
265            p2: ::std::vec::Vec<::ethers_core::types::U256>,
266            p3: ::std::vec::Vec<::ethers_core::types::U256>,
267            p4: ::ethers_core::types::Bytes,
268        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 4]> {
269            self.0
270                .method_hash([188, 25, 124, 129], (p0, p1, p2, p3, p4))
271                .expect("method not found (this should never happen)")
272        }
273        ///Calls the contract's `onERC1155Received` (0xf23a6e61) function
274        pub fn on_erc1155_received(
275            &self,
276            p0: ::ethers_core::types::Address,
277            p1: ::ethers_core::types::Address,
278            p2: ::ethers_core::types::U256,
279            p3: ::ethers_core::types::U256,
280            p4: ::ethers_core::types::Bytes,
281        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 4]> {
282            self.0
283                .method_hash([242, 58, 110, 97], (p0, p1, p2, p3, p4))
284                .expect("method not found (this should never happen)")
285        }
286        ///Calls the contract's `onERC721Received` (0x150b7a02) function
287        pub fn on_erc721_received(
288            &self,
289            p0: ::ethers_core::types::Address,
290            p1: ::ethers_core::types::Address,
291            p2: ::ethers_core::types::U256,
292            p3: ::ethers_core::types::Bytes,
293        ) -> ::ethers_contract::builders::ContractCall<M, [u8; 4]> {
294            self.0
295                .method_hash([21, 11, 122, 2], (p0, p1, p2, p3))
296                .expect("method not found (this should never happen)")
297        }
298        ///Calls the contract's `proposalDeadline` (0xc01f9e37) function
299        pub fn proposal_deadline(
300            &self,
301            proposal_id: ::ethers_core::types::U256,
302        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
303            self.0
304                .method_hash([192, 31, 158, 55], proposal_id)
305                .expect("method not found (this should never happen)")
306        }
307        ///Calls the contract's `proposalProposer` (0x143489d0) function
308        pub fn proposal_proposer(
309            &self,
310            proposal_id: ::ethers_core::types::U256,
311        ) -> ::ethers_contract::builders::ContractCall<
312            M,
313            ::ethers_core::types::Address,
314        > {
315            self.0
316                .method_hash([20, 52, 137, 208], proposal_id)
317                .expect("method not found (this should never happen)")
318        }
319        ///Calls the contract's `proposalSnapshot` (0x2d63f693) function
320        pub fn proposal_snapshot(
321            &self,
322            proposal_id: ::ethers_core::types::U256,
323        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
324            self.0
325                .method_hash([45, 99, 246, 147], proposal_id)
326                .expect("method not found (this should never happen)")
327        }
328        ///Calls the contract's `proposalThreshold` (0xb58131b0) function
329        pub fn proposal_threshold(
330            &self,
331        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
332            self.0
333                .method_hash([181, 129, 49, 176], ())
334                .expect("method not found (this should never happen)")
335        }
336        ///Calls the contract's `propose` (0x7d5e81e2) function
337        pub fn propose(
338            &self,
339            targets: ::std::vec::Vec<::ethers_core::types::Address>,
340            values: ::std::vec::Vec<::ethers_core::types::U256>,
341            calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
342            description: ::std::string::String,
343        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
344            self.0
345                .method_hash(
346                    [125, 94, 129, 226],
347                    (targets, values, calldatas, description),
348                )
349                .expect("method not found (this should never happen)")
350        }
351        ///Calls the contract's `quorum` (0xf8ce560a) function
352        pub fn quorum(
353            &self,
354            timepoint: ::ethers_core::types::U256,
355        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
356            self.0
357                .method_hash([248, 206, 86, 10], timepoint)
358                .expect("method not found (this should never happen)")
359        }
360        ///Calls the contract's `relay` (0xc28bc2fa) function
361        pub fn relay(
362            &self,
363            target: ::ethers_core::types::Address,
364            value: ::ethers_core::types::U256,
365            data: ::ethers_core::types::Bytes,
366        ) -> ::ethers_contract::builders::ContractCall<M, ()> {
367            self.0
368                .method_hash([194, 139, 194, 250], (target, value, data))
369                .expect("method not found (this should never happen)")
370        }
371        ///Calls the contract's `state` (0x3e4f49e6) function
372        pub fn state(
373            &self,
374            proposal_id: ::ethers_core::types::U256,
375        ) -> ::ethers_contract::builders::ContractCall<M, u8> {
376            self.0
377                .method_hash([62, 79, 73, 230], proposal_id)
378                .expect("method not found (this should never happen)")
379        }
380        ///Calls the contract's `supportsInterface` (0x01ffc9a7) function
381        pub fn supports_interface(
382            &self,
383            interface_id: [u8; 4],
384        ) -> ::ethers_contract::builders::ContractCall<M, bool> {
385            self.0
386                .method_hash([1, 255, 201, 167], interface_id)
387                .expect("method not found (this should never happen)")
388        }
389        ///Calls the contract's `token` (0xfc0c546a) function
390        pub fn token(
391            &self,
392        ) -> ::ethers_contract::builders::ContractCall<
393            M,
394            ::ethers_core::types::Address,
395        > {
396            self.0
397                .method_hash([252, 12, 84, 106], ())
398                .expect("method not found (this should never happen)")
399        }
400        ///Calls the contract's `version` (0x54fd4d50) function
401        pub fn version(
402            &self,
403        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
404            self.0
405                .method_hash([84, 253, 77, 80], ())
406                .expect("method not found (this should never happen)")
407        }
408        ///Calls the contract's `votingDelay` (0x3932abb1) function
409        pub fn voting_delay(
410            &self,
411        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
412            self.0
413                .method_hash([57, 50, 171, 177], ())
414                .expect("method not found (this should never happen)")
415        }
416        ///Calls the contract's `votingPeriod` (0x02a251a3) function
417        pub fn voting_period(
418            &self,
419        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
420            self.0
421                .method_hash([2, 162, 81, 163], ())
422                .expect("method not found (this should never happen)")
423        }
424        ///Gets the contract's `EIP712DomainChanged` event
425        pub fn eip712_domain_changed_filter(
426            &self,
427        ) -> ::ethers_contract::builders::Event<
428            ::std::sync::Arc<M>,
429            M,
430            Eip712DomainChangedFilter,
431        > {
432            self.0.event()
433        }
434        ///Gets the contract's `ProposalCanceled` event
435        pub fn proposal_canceled_filter(
436            &self,
437        ) -> ::ethers_contract::builders::Event<
438            ::std::sync::Arc<M>,
439            M,
440            ProposalCanceledFilter,
441        > {
442            self.0.event()
443        }
444        ///Gets the contract's `ProposalCreated` event
445        pub fn proposal_created_filter(
446            &self,
447        ) -> ::ethers_contract::builders::Event<
448            ::std::sync::Arc<M>,
449            M,
450            ProposalCreatedFilter,
451        > {
452            self.0.event()
453        }
454        ///Gets the contract's `ProposalExecuted` event
455        pub fn proposal_executed_filter(
456            &self,
457        ) -> ::ethers_contract::builders::Event<
458            ::std::sync::Arc<M>,
459            M,
460            ProposalExecutedFilter,
461        > {
462            self.0.event()
463        }
464        ///Gets the contract's `VoteCast` event
465        pub fn vote_cast_filter(
466            &self,
467        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, VoteCastFilter> {
468            self.0.event()
469        }
470        ///Gets the contract's `VoteCastWithParams` event
471        pub fn vote_cast_with_params_filter(
472            &self,
473        ) -> ::ethers_contract::builders::Event<
474            ::std::sync::Arc<M>,
475            M,
476            VoteCastWithParamsFilter,
477        > {
478            self.0.event()
479        }
480        /// Returns an `Event` builder for all the events of this contract.
481        pub fn events(
482            &self,
483        ) -> ::ethers_contract::builders::Event<
484            ::std::sync::Arc<M>,
485            M,
486            GovernorVotesEvents,
487        > {
488            self.0.event_with_filter(::core::default::Default::default())
489        }
490    }
491    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
492    for GovernorVotes<M> {
493        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
494            Self::new(contract.address(), contract.client())
495        }
496    }
497    ///Custom Error type `Empty` with signature `Empty()` and selector `0x3db2a12a`
498    #[derive(
499        Clone,
500        ::ethers_contract::EthError,
501        ::ethers_contract::EthDisplay,
502        Default,
503        Debug,
504        PartialEq,
505        Eq,
506        Hash
507    )]
508    #[etherror(name = "Empty", abi = "Empty()")]
509    pub struct Empty;
510    ///Custom Error type `InvalidShortString` with signature `InvalidShortString()` and selector `0xb3512b0c`
511    #[derive(
512        Clone,
513        ::ethers_contract::EthError,
514        ::ethers_contract::EthDisplay,
515        Default,
516        Debug,
517        PartialEq,
518        Eq,
519        Hash
520    )]
521    #[etherror(name = "InvalidShortString", abi = "InvalidShortString()")]
522    pub struct InvalidShortString;
523    ///Custom Error type `StringTooLong` with signature `StringTooLong(string)` and selector `0x305a27a9`
524    #[derive(
525        Clone,
526        ::ethers_contract::EthError,
527        ::ethers_contract::EthDisplay,
528        Default,
529        Debug,
530        PartialEq,
531        Eq,
532        Hash
533    )]
534    #[etherror(name = "StringTooLong", abi = "StringTooLong(string)")]
535    pub struct StringTooLong {
536        pub str: ::std::string::String,
537    }
538    ///Container type for all of the contract's custom errors
539    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
540    pub enum GovernorVotesErrors {
541        Empty(Empty),
542        InvalidShortString(InvalidShortString),
543        StringTooLong(StringTooLong),
544        /// The standard solidity revert string, with selector
545        /// Error(string) -- 0x08c379a0
546        RevertString(::std::string::String),
547    }
548    impl ::ethers_core::abi::AbiDecode for GovernorVotesErrors {
549        fn decode(
550            data: impl AsRef<[u8]>,
551        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
552            let data = data.as_ref();
553            if let Ok(decoded)
554                = <::std::string::String as ::ethers_core::abi::AbiDecode>::decode(
555                    data,
556                ) {
557                return Ok(Self::RevertString(decoded));
558            }
559            if let Ok(decoded) = <Empty as ::ethers_core::abi::AbiDecode>::decode(data) {
560                return Ok(Self::Empty(decoded));
561            }
562            if let Ok(decoded)
563                = <InvalidShortString as ::ethers_core::abi::AbiDecode>::decode(data) {
564                return Ok(Self::InvalidShortString(decoded));
565            }
566            if let Ok(decoded)
567                = <StringTooLong as ::ethers_core::abi::AbiDecode>::decode(data) {
568                return Ok(Self::StringTooLong(decoded));
569            }
570            Err(::ethers_core::abi::Error::InvalidData.into())
571        }
572    }
573    impl ::ethers_core::abi::AbiEncode for GovernorVotesErrors {
574        fn encode(self) -> ::std::vec::Vec<u8> {
575            match self {
576                Self::Empty(element) => ::ethers_core::abi::AbiEncode::encode(element),
577                Self::InvalidShortString(element) => {
578                    ::ethers_core::abi::AbiEncode::encode(element)
579                }
580                Self::StringTooLong(element) => {
581                    ::ethers_core::abi::AbiEncode::encode(element)
582                }
583                Self::RevertString(s) => ::ethers_core::abi::AbiEncode::encode(s),
584            }
585        }
586    }
587    impl ::ethers_contract::ContractRevert for GovernorVotesErrors {
588        fn valid_selector(selector: [u8; 4]) -> bool {
589            match selector {
590                [0x08, 0xc3, 0x79, 0xa0] => true,
591                _ if selector == <Empty as ::ethers_contract::EthError>::selector() => {
592                    true
593                }
594                _ if selector
595                    == <InvalidShortString as ::ethers_contract::EthError>::selector() => {
596                    true
597                }
598                _ if selector
599                    == <StringTooLong as ::ethers_contract::EthError>::selector() => true,
600                _ => false,
601            }
602        }
603    }
604    impl ::core::fmt::Display for GovernorVotesErrors {
605        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
606            match self {
607                Self::Empty(element) => ::core::fmt::Display::fmt(element, f),
608                Self::InvalidShortString(element) => {
609                    ::core::fmt::Display::fmt(element, f)
610                }
611                Self::StringTooLong(element) => ::core::fmt::Display::fmt(element, f),
612                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
613            }
614        }
615    }
616    impl ::core::convert::From<::std::string::String> for GovernorVotesErrors {
617        fn from(value: String) -> Self {
618            Self::RevertString(value)
619        }
620    }
621    impl ::core::convert::From<Empty> for GovernorVotesErrors {
622        fn from(value: Empty) -> Self {
623            Self::Empty(value)
624        }
625    }
626    impl ::core::convert::From<InvalidShortString> for GovernorVotesErrors {
627        fn from(value: InvalidShortString) -> Self {
628            Self::InvalidShortString(value)
629        }
630    }
631    impl ::core::convert::From<StringTooLong> for GovernorVotesErrors {
632        fn from(value: StringTooLong) -> Self {
633            Self::StringTooLong(value)
634        }
635    }
636    #[derive(
637        Clone,
638        ::ethers_contract::EthEvent,
639        ::ethers_contract::EthDisplay,
640        Default,
641        Debug,
642        PartialEq,
643        Eq,
644        Hash
645    )]
646    #[ethevent(name = "EIP712DomainChanged", abi = "EIP712DomainChanged()")]
647    pub struct Eip712DomainChangedFilter;
648    #[derive(
649        Clone,
650        ::ethers_contract::EthEvent,
651        ::ethers_contract::EthDisplay,
652        Default,
653        Debug,
654        PartialEq,
655        Eq,
656        Hash
657    )]
658    #[ethevent(name = "ProposalCanceled", abi = "ProposalCanceled(uint256)")]
659    pub struct ProposalCanceledFilter {
660        pub proposal_id: ::ethers_core::types::U256,
661    }
662    #[derive(
663        Clone,
664        ::ethers_contract::EthEvent,
665        ::ethers_contract::EthDisplay,
666        Default,
667        Debug,
668        PartialEq,
669        Eq,
670        Hash
671    )]
672    #[ethevent(
673        name = "ProposalCreated",
674        abi = "ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)"
675    )]
676    pub struct ProposalCreatedFilter {
677        pub proposal_id: ::ethers_core::types::U256,
678        pub proposer: ::ethers_core::types::Address,
679        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
680        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
681        pub signatures: ::std::vec::Vec<::std::string::String>,
682        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
683        pub vote_start: ::ethers_core::types::U256,
684        pub vote_end: ::ethers_core::types::U256,
685        pub description: ::std::string::String,
686    }
687    #[derive(
688        Clone,
689        ::ethers_contract::EthEvent,
690        ::ethers_contract::EthDisplay,
691        Default,
692        Debug,
693        PartialEq,
694        Eq,
695        Hash
696    )]
697    #[ethevent(name = "ProposalExecuted", abi = "ProposalExecuted(uint256)")]
698    pub struct ProposalExecutedFilter {
699        pub proposal_id: ::ethers_core::types::U256,
700    }
701    #[derive(
702        Clone,
703        ::ethers_contract::EthEvent,
704        ::ethers_contract::EthDisplay,
705        Default,
706        Debug,
707        PartialEq,
708        Eq,
709        Hash
710    )]
711    #[ethevent(
712        name = "VoteCast",
713        abi = "VoteCast(address,uint256,uint8,uint256,string)"
714    )]
715    pub struct VoteCastFilter {
716        #[ethevent(indexed)]
717        pub voter: ::ethers_core::types::Address,
718        pub proposal_id: ::ethers_core::types::U256,
719        pub support: u8,
720        pub weight: ::ethers_core::types::U256,
721        pub reason: ::std::string::String,
722    }
723    #[derive(
724        Clone,
725        ::ethers_contract::EthEvent,
726        ::ethers_contract::EthDisplay,
727        Default,
728        Debug,
729        PartialEq,
730        Eq,
731        Hash
732    )]
733    #[ethevent(
734        name = "VoteCastWithParams",
735        abi = "VoteCastWithParams(address,uint256,uint8,uint256,string,bytes)"
736    )]
737    pub struct VoteCastWithParamsFilter {
738        #[ethevent(indexed)]
739        pub voter: ::ethers_core::types::Address,
740        pub proposal_id: ::ethers_core::types::U256,
741        pub support: u8,
742        pub weight: ::ethers_core::types::U256,
743        pub reason: ::std::string::String,
744        pub params: ::ethers_core::types::Bytes,
745    }
746    ///Container type for all of the contract's events
747    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
748    pub enum GovernorVotesEvents {
749        Eip712DomainChangedFilter(Eip712DomainChangedFilter),
750        ProposalCanceledFilter(ProposalCanceledFilter),
751        ProposalCreatedFilter(ProposalCreatedFilter),
752        ProposalExecutedFilter(ProposalExecutedFilter),
753        VoteCastFilter(VoteCastFilter),
754        VoteCastWithParamsFilter(VoteCastWithParamsFilter),
755    }
756    impl ::ethers_contract::EthLogDecode for GovernorVotesEvents {
757        fn decode_log(
758            log: &::ethers_core::abi::RawLog,
759        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
760            if let Ok(decoded) = Eip712DomainChangedFilter::decode_log(log) {
761                return Ok(GovernorVotesEvents::Eip712DomainChangedFilter(decoded));
762            }
763            if let Ok(decoded) = ProposalCanceledFilter::decode_log(log) {
764                return Ok(GovernorVotesEvents::ProposalCanceledFilter(decoded));
765            }
766            if let Ok(decoded) = ProposalCreatedFilter::decode_log(log) {
767                return Ok(GovernorVotesEvents::ProposalCreatedFilter(decoded));
768            }
769            if let Ok(decoded) = ProposalExecutedFilter::decode_log(log) {
770                return Ok(GovernorVotesEvents::ProposalExecutedFilter(decoded));
771            }
772            if let Ok(decoded) = VoteCastFilter::decode_log(log) {
773                return Ok(GovernorVotesEvents::VoteCastFilter(decoded));
774            }
775            if let Ok(decoded) = VoteCastWithParamsFilter::decode_log(log) {
776                return Ok(GovernorVotesEvents::VoteCastWithParamsFilter(decoded));
777            }
778            Err(::ethers_core::abi::Error::InvalidData)
779        }
780    }
781    impl ::core::fmt::Display for GovernorVotesEvents {
782        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
783            match self {
784                Self::Eip712DomainChangedFilter(element) => {
785                    ::core::fmt::Display::fmt(element, f)
786                }
787                Self::ProposalCanceledFilter(element) => {
788                    ::core::fmt::Display::fmt(element, f)
789                }
790                Self::ProposalCreatedFilter(element) => {
791                    ::core::fmt::Display::fmt(element, f)
792                }
793                Self::ProposalExecutedFilter(element) => {
794                    ::core::fmt::Display::fmt(element, f)
795                }
796                Self::VoteCastFilter(element) => ::core::fmt::Display::fmt(element, f),
797                Self::VoteCastWithParamsFilter(element) => {
798                    ::core::fmt::Display::fmt(element, f)
799                }
800            }
801        }
802    }
803    impl ::core::convert::From<Eip712DomainChangedFilter> for GovernorVotesEvents {
804        fn from(value: Eip712DomainChangedFilter) -> Self {
805            Self::Eip712DomainChangedFilter(value)
806        }
807    }
808    impl ::core::convert::From<ProposalCanceledFilter> for GovernorVotesEvents {
809        fn from(value: ProposalCanceledFilter) -> Self {
810            Self::ProposalCanceledFilter(value)
811        }
812    }
813    impl ::core::convert::From<ProposalCreatedFilter> for GovernorVotesEvents {
814        fn from(value: ProposalCreatedFilter) -> Self {
815            Self::ProposalCreatedFilter(value)
816        }
817    }
818    impl ::core::convert::From<ProposalExecutedFilter> for GovernorVotesEvents {
819        fn from(value: ProposalExecutedFilter) -> Self {
820            Self::ProposalExecutedFilter(value)
821        }
822    }
823    impl ::core::convert::From<VoteCastFilter> for GovernorVotesEvents {
824        fn from(value: VoteCastFilter) -> Self {
825            Self::VoteCastFilter(value)
826        }
827    }
828    impl ::core::convert::From<VoteCastWithParamsFilter> for GovernorVotesEvents {
829        fn from(value: VoteCastWithParamsFilter) -> Self {
830            Self::VoteCastWithParamsFilter(value)
831        }
832    }
833    ///Container type for all input parameters for the `BALLOT_TYPEHASH` function with signature `BALLOT_TYPEHASH()` and selector `0xdeaaa7cc`
834    #[derive(
835        Clone,
836        ::ethers_contract::EthCall,
837        ::ethers_contract::EthDisplay,
838        Default,
839        Debug,
840        PartialEq,
841        Eq,
842        Hash
843    )]
844    #[ethcall(name = "BALLOT_TYPEHASH", abi = "BALLOT_TYPEHASH()")]
845    pub struct BallotTypehashCall;
846    ///Container type for all input parameters for the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
847    #[derive(
848        Clone,
849        ::ethers_contract::EthCall,
850        ::ethers_contract::EthDisplay,
851        Default,
852        Debug,
853        PartialEq,
854        Eq,
855        Hash
856    )]
857    #[ethcall(name = "CLOCK_MODE", abi = "CLOCK_MODE()")]
858    pub struct ClockModeCall;
859    ///Container type for all input parameters for the `COUNTING_MODE` function with signature `COUNTING_MODE()` and selector `0xdd4e2ba5`
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(name = "COUNTING_MODE", abi = "COUNTING_MODE()")]
871    pub struct CountingModeCall;
872    ///Container type for all input parameters for the `EXTENDED_BALLOT_TYPEHASH` function with signature `EXTENDED_BALLOT_TYPEHASH()` and selector `0x2fe3e261`
873    #[derive(
874        Clone,
875        ::ethers_contract::EthCall,
876        ::ethers_contract::EthDisplay,
877        Default,
878        Debug,
879        PartialEq,
880        Eq,
881        Hash
882    )]
883    #[ethcall(name = "EXTENDED_BALLOT_TYPEHASH", abi = "EXTENDED_BALLOT_TYPEHASH()")]
884    pub struct ExtendedBallotTypehashCall;
885    ///Container type for all input parameters for the `cancel` function with signature `cancel(address[],uint256[],bytes[],bytes32)` and selector `0x452115d6`
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 = "cancel", abi = "cancel(address[],uint256[],bytes[],bytes32)")]
897    pub struct CancelCall {
898        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
899        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
900        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
901        pub description_hash: [u8; 32],
902    }
903    ///Container type for all input parameters for the `castVote` function with signature `castVote(uint256,uint8)` and selector `0x56781388`
904    #[derive(
905        Clone,
906        ::ethers_contract::EthCall,
907        ::ethers_contract::EthDisplay,
908        Default,
909        Debug,
910        PartialEq,
911        Eq,
912        Hash
913    )]
914    #[ethcall(name = "castVote", abi = "castVote(uint256,uint8)")]
915    pub struct CastVoteCall {
916        pub proposal_id: ::ethers_core::types::U256,
917        pub support: u8,
918    }
919    ///Container type for all input parameters for the `castVoteBySig` function with signature `castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)` and selector `0x3bccf4fd`
920    #[derive(
921        Clone,
922        ::ethers_contract::EthCall,
923        ::ethers_contract::EthDisplay,
924        Default,
925        Debug,
926        PartialEq,
927        Eq,
928        Hash
929    )]
930    #[ethcall(
931        name = "castVoteBySig",
932        abi = "castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)"
933    )]
934    pub struct CastVoteBySigCall {
935        pub proposal_id: ::ethers_core::types::U256,
936        pub support: u8,
937        pub v: u8,
938        pub r: [u8; 32],
939        pub s: [u8; 32],
940    }
941    ///Container type for all input parameters for the `castVoteWithReason` function with signature `castVoteWithReason(uint256,uint8,string)` and selector `0x7b3c71d3`
942    #[derive(
943        Clone,
944        ::ethers_contract::EthCall,
945        ::ethers_contract::EthDisplay,
946        Default,
947        Debug,
948        PartialEq,
949        Eq,
950        Hash
951    )]
952    #[ethcall(
953        name = "castVoteWithReason",
954        abi = "castVoteWithReason(uint256,uint8,string)"
955    )]
956    pub struct CastVoteWithReasonCall {
957        pub proposal_id: ::ethers_core::types::U256,
958        pub support: u8,
959        pub reason: ::std::string::String,
960    }
961    ///Container type for all input parameters for the `castVoteWithReasonAndParams` function with signature `castVoteWithReasonAndParams(uint256,uint8,string,bytes)` and selector `0x5f398a14`
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(
973        name = "castVoteWithReasonAndParams",
974        abi = "castVoteWithReasonAndParams(uint256,uint8,string,bytes)"
975    )]
976    pub struct CastVoteWithReasonAndParamsCall {
977        pub proposal_id: ::ethers_core::types::U256,
978        pub support: u8,
979        pub reason: ::std::string::String,
980        pub params: ::ethers_core::types::Bytes,
981    }
982    ///Container type for all input parameters for the `castVoteWithReasonAndParamsBySig` function with signature `castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)` and selector `0x03420181`
983    #[derive(
984        Clone,
985        ::ethers_contract::EthCall,
986        ::ethers_contract::EthDisplay,
987        Default,
988        Debug,
989        PartialEq,
990        Eq,
991        Hash
992    )]
993    #[ethcall(
994        name = "castVoteWithReasonAndParamsBySig",
995        abi = "castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)"
996    )]
997    pub struct CastVoteWithReasonAndParamsBySigCall {
998        pub proposal_id: ::ethers_core::types::U256,
999        pub support: u8,
1000        pub reason: ::std::string::String,
1001        pub params: ::ethers_core::types::Bytes,
1002        pub v: u8,
1003        pub r: [u8; 32],
1004        pub s: [u8; 32],
1005    }
1006    ///Container type for all input parameters for the `clock` function with signature `clock()` and selector `0x91ddadf4`
1007    #[derive(
1008        Clone,
1009        ::ethers_contract::EthCall,
1010        ::ethers_contract::EthDisplay,
1011        Default,
1012        Debug,
1013        PartialEq,
1014        Eq,
1015        Hash
1016    )]
1017    #[ethcall(name = "clock", abi = "clock()")]
1018    pub struct ClockCall;
1019    ///Container type for all input parameters for the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e`
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 = "eip712Domain", abi = "eip712Domain()")]
1031    pub struct Eip712DomainCall;
1032    ///Container type for all input parameters for the `execute` function with signature `execute(address[],uint256[],bytes[],bytes32)` and selector `0x2656227d`
1033    #[derive(
1034        Clone,
1035        ::ethers_contract::EthCall,
1036        ::ethers_contract::EthDisplay,
1037        Default,
1038        Debug,
1039        PartialEq,
1040        Eq,
1041        Hash
1042    )]
1043    #[ethcall(name = "execute", abi = "execute(address[],uint256[],bytes[],bytes32)")]
1044    pub struct ExecuteCall {
1045        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
1046        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
1047        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
1048        pub description_hash: [u8; 32],
1049    }
1050    ///Container type for all input parameters for the `getVotes` function with signature `getVotes(address,uint256)` and selector `0xeb9019d4`
1051    #[derive(
1052        Clone,
1053        ::ethers_contract::EthCall,
1054        ::ethers_contract::EthDisplay,
1055        Default,
1056        Debug,
1057        PartialEq,
1058        Eq,
1059        Hash
1060    )]
1061    #[ethcall(name = "getVotes", abi = "getVotes(address,uint256)")]
1062    pub struct GetVotesCall {
1063        pub account: ::ethers_core::types::Address,
1064        pub timepoint: ::ethers_core::types::U256,
1065    }
1066    ///Container type for all input parameters for the `getVotesWithParams` function with signature `getVotesWithParams(address,uint256,bytes)` and selector `0x9a802a6d`
1067    #[derive(
1068        Clone,
1069        ::ethers_contract::EthCall,
1070        ::ethers_contract::EthDisplay,
1071        Default,
1072        Debug,
1073        PartialEq,
1074        Eq,
1075        Hash
1076    )]
1077    #[ethcall(
1078        name = "getVotesWithParams",
1079        abi = "getVotesWithParams(address,uint256,bytes)"
1080    )]
1081    pub struct GetVotesWithParamsCall {
1082        pub account: ::ethers_core::types::Address,
1083        pub timepoint: ::ethers_core::types::U256,
1084        pub params: ::ethers_core::types::Bytes,
1085    }
1086    ///Container type for all input parameters for the `hasVoted` function with signature `hasVoted(uint256,address)` and selector `0x43859632`
1087    #[derive(
1088        Clone,
1089        ::ethers_contract::EthCall,
1090        ::ethers_contract::EthDisplay,
1091        Default,
1092        Debug,
1093        PartialEq,
1094        Eq,
1095        Hash
1096    )]
1097    #[ethcall(name = "hasVoted", abi = "hasVoted(uint256,address)")]
1098    pub struct HasVotedCall {
1099        pub proposal_id: ::ethers_core::types::U256,
1100        pub account: ::ethers_core::types::Address,
1101    }
1102    ///Container type for all input parameters for the `hashProposal` function with signature `hashProposal(address[],uint256[],bytes[],bytes32)` and selector `0xc59057e4`
1103    #[derive(
1104        Clone,
1105        ::ethers_contract::EthCall,
1106        ::ethers_contract::EthDisplay,
1107        Default,
1108        Debug,
1109        PartialEq,
1110        Eq,
1111        Hash
1112    )]
1113    #[ethcall(
1114        name = "hashProposal",
1115        abi = "hashProposal(address[],uint256[],bytes[],bytes32)"
1116    )]
1117    pub struct HashProposalCall {
1118        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
1119        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
1120        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
1121        pub description_hash: [u8; 32],
1122    }
1123    ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03`
1124    #[derive(
1125        Clone,
1126        ::ethers_contract::EthCall,
1127        ::ethers_contract::EthDisplay,
1128        Default,
1129        Debug,
1130        PartialEq,
1131        Eq,
1132        Hash
1133    )]
1134    #[ethcall(name = "name", abi = "name()")]
1135    pub struct NameCall;
1136    ///Container type for all input parameters for the `onERC1155BatchReceived` function with signature `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)` and selector `0xbc197c81`
1137    #[derive(
1138        Clone,
1139        ::ethers_contract::EthCall,
1140        ::ethers_contract::EthDisplay,
1141        Default,
1142        Debug,
1143        PartialEq,
1144        Eq,
1145        Hash
1146    )]
1147    #[ethcall(
1148        name = "onERC1155BatchReceived",
1149        abi = "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"
1150    )]
1151    pub struct OnERC1155BatchReceivedCall(
1152        pub ::ethers_core::types::Address,
1153        pub ::ethers_core::types::Address,
1154        pub ::std::vec::Vec<::ethers_core::types::U256>,
1155        pub ::std::vec::Vec<::ethers_core::types::U256>,
1156        pub ::ethers_core::types::Bytes,
1157    );
1158    ///Container type for all input parameters for the `onERC1155Received` function with signature `onERC1155Received(address,address,uint256,uint256,bytes)` and selector `0xf23a6e61`
1159    #[derive(
1160        Clone,
1161        ::ethers_contract::EthCall,
1162        ::ethers_contract::EthDisplay,
1163        Default,
1164        Debug,
1165        PartialEq,
1166        Eq,
1167        Hash
1168    )]
1169    #[ethcall(
1170        name = "onERC1155Received",
1171        abi = "onERC1155Received(address,address,uint256,uint256,bytes)"
1172    )]
1173    pub struct OnERC1155ReceivedCall(
1174        pub ::ethers_core::types::Address,
1175        pub ::ethers_core::types::Address,
1176        pub ::ethers_core::types::U256,
1177        pub ::ethers_core::types::U256,
1178        pub ::ethers_core::types::Bytes,
1179    );
1180    ///Container type for all input parameters for the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02`
1181    #[derive(
1182        Clone,
1183        ::ethers_contract::EthCall,
1184        ::ethers_contract::EthDisplay,
1185        Default,
1186        Debug,
1187        PartialEq,
1188        Eq,
1189        Hash
1190    )]
1191    #[ethcall(
1192        name = "onERC721Received",
1193        abi = "onERC721Received(address,address,uint256,bytes)"
1194    )]
1195    pub struct OnERC721ReceivedCall(
1196        pub ::ethers_core::types::Address,
1197        pub ::ethers_core::types::Address,
1198        pub ::ethers_core::types::U256,
1199        pub ::ethers_core::types::Bytes,
1200    );
1201    ///Container type for all input parameters for the `proposalDeadline` function with signature `proposalDeadline(uint256)` and selector `0xc01f9e37`
1202    #[derive(
1203        Clone,
1204        ::ethers_contract::EthCall,
1205        ::ethers_contract::EthDisplay,
1206        Default,
1207        Debug,
1208        PartialEq,
1209        Eq,
1210        Hash
1211    )]
1212    #[ethcall(name = "proposalDeadline", abi = "proposalDeadline(uint256)")]
1213    pub struct ProposalDeadlineCall {
1214        pub proposal_id: ::ethers_core::types::U256,
1215    }
1216    ///Container type for all input parameters for the `proposalProposer` function with signature `proposalProposer(uint256)` and selector `0x143489d0`
1217    #[derive(
1218        Clone,
1219        ::ethers_contract::EthCall,
1220        ::ethers_contract::EthDisplay,
1221        Default,
1222        Debug,
1223        PartialEq,
1224        Eq,
1225        Hash
1226    )]
1227    #[ethcall(name = "proposalProposer", abi = "proposalProposer(uint256)")]
1228    pub struct ProposalProposerCall {
1229        pub proposal_id: ::ethers_core::types::U256,
1230    }
1231    ///Container type for all input parameters for the `proposalSnapshot` function with signature `proposalSnapshot(uint256)` and selector `0x2d63f693`
1232    #[derive(
1233        Clone,
1234        ::ethers_contract::EthCall,
1235        ::ethers_contract::EthDisplay,
1236        Default,
1237        Debug,
1238        PartialEq,
1239        Eq,
1240        Hash
1241    )]
1242    #[ethcall(name = "proposalSnapshot", abi = "proposalSnapshot(uint256)")]
1243    pub struct ProposalSnapshotCall {
1244        pub proposal_id: ::ethers_core::types::U256,
1245    }
1246    ///Container type for all input parameters for the `proposalThreshold` function with signature `proposalThreshold()` and selector `0xb58131b0`
1247    #[derive(
1248        Clone,
1249        ::ethers_contract::EthCall,
1250        ::ethers_contract::EthDisplay,
1251        Default,
1252        Debug,
1253        PartialEq,
1254        Eq,
1255        Hash
1256    )]
1257    #[ethcall(name = "proposalThreshold", abi = "proposalThreshold()")]
1258    pub struct ProposalThresholdCall;
1259    ///Container type for all input parameters for the `propose` function with signature `propose(address[],uint256[],bytes[],string)` and selector `0x7d5e81e2`
1260    #[derive(
1261        Clone,
1262        ::ethers_contract::EthCall,
1263        ::ethers_contract::EthDisplay,
1264        Default,
1265        Debug,
1266        PartialEq,
1267        Eq,
1268        Hash
1269    )]
1270    #[ethcall(name = "propose", abi = "propose(address[],uint256[],bytes[],string)")]
1271    pub struct ProposeCall {
1272        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
1273        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
1274        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
1275        pub description: ::std::string::String,
1276    }
1277    ///Container type for all input parameters for the `quorum` function with signature `quorum(uint256)` and selector `0xf8ce560a`
1278    #[derive(
1279        Clone,
1280        ::ethers_contract::EthCall,
1281        ::ethers_contract::EthDisplay,
1282        Default,
1283        Debug,
1284        PartialEq,
1285        Eq,
1286        Hash
1287    )]
1288    #[ethcall(name = "quorum", abi = "quorum(uint256)")]
1289    pub struct QuorumCall {
1290        pub timepoint: ::ethers_core::types::U256,
1291    }
1292    ///Container type for all input parameters for the `relay` function with signature `relay(address,uint256,bytes)` and selector `0xc28bc2fa`
1293    #[derive(
1294        Clone,
1295        ::ethers_contract::EthCall,
1296        ::ethers_contract::EthDisplay,
1297        Default,
1298        Debug,
1299        PartialEq,
1300        Eq,
1301        Hash
1302    )]
1303    #[ethcall(name = "relay", abi = "relay(address,uint256,bytes)")]
1304    pub struct RelayCall {
1305        pub target: ::ethers_core::types::Address,
1306        pub value: ::ethers_core::types::U256,
1307        pub data: ::ethers_core::types::Bytes,
1308    }
1309    ///Container type for all input parameters for the `state` function with signature `state(uint256)` and selector `0x3e4f49e6`
1310    #[derive(
1311        Clone,
1312        ::ethers_contract::EthCall,
1313        ::ethers_contract::EthDisplay,
1314        Default,
1315        Debug,
1316        PartialEq,
1317        Eq,
1318        Hash
1319    )]
1320    #[ethcall(name = "state", abi = "state(uint256)")]
1321    pub struct StateCall {
1322        pub proposal_id: ::ethers_core::types::U256,
1323    }
1324    ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
1325    #[derive(
1326        Clone,
1327        ::ethers_contract::EthCall,
1328        ::ethers_contract::EthDisplay,
1329        Default,
1330        Debug,
1331        PartialEq,
1332        Eq,
1333        Hash
1334    )]
1335    #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")]
1336    pub struct SupportsInterfaceCall {
1337        pub interface_id: [u8; 4],
1338    }
1339    ///Container type for all input parameters for the `token` function with signature `token()` and selector `0xfc0c546a`
1340    #[derive(
1341        Clone,
1342        ::ethers_contract::EthCall,
1343        ::ethers_contract::EthDisplay,
1344        Default,
1345        Debug,
1346        PartialEq,
1347        Eq,
1348        Hash
1349    )]
1350    #[ethcall(name = "token", abi = "token()")]
1351    pub struct TokenCall;
1352    ///Container type for all input parameters for the `version` function with signature `version()` and selector `0x54fd4d50`
1353    #[derive(
1354        Clone,
1355        ::ethers_contract::EthCall,
1356        ::ethers_contract::EthDisplay,
1357        Default,
1358        Debug,
1359        PartialEq,
1360        Eq,
1361        Hash
1362    )]
1363    #[ethcall(name = "version", abi = "version()")]
1364    pub struct VersionCall;
1365    ///Container type for all input parameters for the `votingDelay` function with signature `votingDelay()` and selector `0x3932abb1`
1366    #[derive(
1367        Clone,
1368        ::ethers_contract::EthCall,
1369        ::ethers_contract::EthDisplay,
1370        Default,
1371        Debug,
1372        PartialEq,
1373        Eq,
1374        Hash
1375    )]
1376    #[ethcall(name = "votingDelay", abi = "votingDelay()")]
1377    pub struct VotingDelayCall;
1378    ///Container type for all input parameters for the `votingPeriod` function with signature `votingPeriod()` and selector `0x02a251a3`
1379    #[derive(
1380        Clone,
1381        ::ethers_contract::EthCall,
1382        ::ethers_contract::EthDisplay,
1383        Default,
1384        Debug,
1385        PartialEq,
1386        Eq,
1387        Hash
1388    )]
1389    #[ethcall(name = "votingPeriod", abi = "votingPeriod()")]
1390    pub struct VotingPeriodCall;
1391    ///Container type for all of the contract's call
1392    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
1393    pub enum GovernorVotesCalls {
1394        BallotTypehash(BallotTypehashCall),
1395        ClockMode(ClockModeCall),
1396        CountingMode(CountingModeCall),
1397        ExtendedBallotTypehash(ExtendedBallotTypehashCall),
1398        Cancel(CancelCall),
1399        CastVote(CastVoteCall),
1400        CastVoteBySig(CastVoteBySigCall),
1401        CastVoteWithReason(CastVoteWithReasonCall),
1402        CastVoteWithReasonAndParams(CastVoteWithReasonAndParamsCall),
1403        CastVoteWithReasonAndParamsBySig(CastVoteWithReasonAndParamsBySigCall),
1404        Clock(ClockCall),
1405        Eip712Domain(Eip712DomainCall),
1406        Execute(ExecuteCall),
1407        GetVotes(GetVotesCall),
1408        GetVotesWithParams(GetVotesWithParamsCall),
1409        HasVoted(HasVotedCall),
1410        HashProposal(HashProposalCall),
1411        Name(NameCall),
1412        OnERC1155BatchReceived(OnERC1155BatchReceivedCall),
1413        OnERC1155Received(OnERC1155ReceivedCall),
1414        OnERC721Received(OnERC721ReceivedCall),
1415        ProposalDeadline(ProposalDeadlineCall),
1416        ProposalProposer(ProposalProposerCall),
1417        ProposalSnapshot(ProposalSnapshotCall),
1418        ProposalThreshold(ProposalThresholdCall),
1419        Propose(ProposeCall),
1420        Quorum(QuorumCall),
1421        Relay(RelayCall),
1422        State(StateCall),
1423        SupportsInterface(SupportsInterfaceCall),
1424        Token(TokenCall),
1425        Version(VersionCall),
1426        VotingDelay(VotingDelayCall),
1427        VotingPeriod(VotingPeriodCall),
1428    }
1429    impl ::ethers_core::abi::AbiDecode for GovernorVotesCalls {
1430        fn decode(
1431            data: impl AsRef<[u8]>,
1432        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
1433            let data = data.as_ref();
1434            if let Ok(decoded)
1435                = <BallotTypehashCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1436                return Ok(Self::BallotTypehash(decoded));
1437            }
1438            if let Ok(decoded)
1439                = <ClockModeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1440                return Ok(Self::ClockMode(decoded));
1441            }
1442            if let Ok(decoded)
1443                = <CountingModeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1444                return Ok(Self::CountingMode(decoded));
1445            }
1446            if let Ok(decoded)
1447                = <ExtendedBallotTypehashCall as ::ethers_core::abi::AbiDecode>::decode(
1448                    data,
1449                ) {
1450                return Ok(Self::ExtendedBallotTypehash(decoded));
1451            }
1452            if let Ok(decoded)
1453                = <CancelCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1454                return Ok(Self::Cancel(decoded));
1455            }
1456            if let Ok(decoded)
1457                = <CastVoteCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1458                return Ok(Self::CastVote(decoded));
1459            }
1460            if let Ok(decoded)
1461                = <CastVoteBySigCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1462                return Ok(Self::CastVoteBySig(decoded));
1463            }
1464            if let Ok(decoded)
1465                = <CastVoteWithReasonCall as ::ethers_core::abi::AbiDecode>::decode(
1466                    data,
1467                ) {
1468                return Ok(Self::CastVoteWithReason(decoded));
1469            }
1470            if let Ok(decoded)
1471                = <CastVoteWithReasonAndParamsCall as ::ethers_core::abi::AbiDecode>::decode(
1472                    data,
1473                ) {
1474                return Ok(Self::CastVoteWithReasonAndParams(decoded));
1475            }
1476            if let Ok(decoded)
1477                = <CastVoteWithReasonAndParamsBySigCall as ::ethers_core::abi::AbiDecode>::decode(
1478                    data,
1479                ) {
1480                return Ok(Self::CastVoteWithReasonAndParamsBySig(decoded));
1481            }
1482            if let Ok(decoded)
1483                = <ClockCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1484                return Ok(Self::Clock(decoded));
1485            }
1486            if let Ok(decoded)
1487                = <Eip712DomainCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1488                return Ok(Self::Eip712Domain(decoded));
1489            }
1490            if let Ok(decoded)
1491                = <ExecuteCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1492                return Ok(Self::Execute(decoded));
1493            }
1494            if let Ok(decoded)
1495                = <GetVotesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1496                return Ok(Self::GetVotes(decoded));
1497            }
1498            if let Ok(decoded)
1499                = <GetVotesWithParamsCall as ::ethers_core::abi::AbiDecode>::decode(
1500                    data,
1501                ) {
1502                return Ok(Self::GetVotesWithParams(decoded));
1503            }
1504            if let Ok(decoded)
1505                = <HasVotedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1506                return Ok(Self::HasVoted(decoded));
1507            }
1508            if let Ok(decoded)
1509                = <HashProposalCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1510                return Ok(Self::HashProposal(decoded));
1511            }
1512            if let Ok(decoded)
1513                = <NameCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1514                return Ok(Self::Name(decoded));
1515            }
1516            if let Ok(decoded)
1517                = <OnERC1155BatchReceivedCall as ::ethers_core::abi::AbiDecode>::decode(
1518                    data,
1519                ) {
1520                return Ok(Self::OnERC1155BatchReceived(decoded));
1521            }
1522            if let Ok(decoded)
1523                = <OnERC1155ReceivedCall as ::ethers_core::abi::AbiDecode>::decode(
1524                    data,
1525                ) {
1526                return Ok(Self::OnERC1155Received(decoded));
1527            }
1528            if let Ok(decoded)
1529                = <OnERC721ReceivedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1530                return Ok(Self::OnERC721Received(decoded));
1531            }
1532            if let Ok(decoded)
1533                = <ProposalDeadlineCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1534                return Ok(Self::ProposalDeadline(decoded));
1535            }
1536            if let Ok(decoded)
1537                = <ProposalProposerCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1538                return Ok(Self::ProposalProposer(decoded));
1539            }
1540            if let Ok(decoded)
1541                = <ProposalSnapshotCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1542                return Ok(Self::ProposalSnapshot(decoded));
1543            }
1544            if let Ok(decoded)
1545                = <ProposalThresholdCall as ::ethers_core::abi::AbiDecode>::decode(
1546                    data,
1547                ) {
1548                return Ok(Self::ProposalThreshold(decoded));
1549            }
1550            if let Ok(decoded)
1551                = <ProposeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1552                return Ok(Self::Propose(decoded));
1553            }
1554            if let Ok(decoded)
1555                = <QuorumCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1556                return Ok(Self::Quorum(decoded));
1557            }
1558            if let Ok(decoded)
1559                = <RelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1560                return Ok(Self::Relay(decoded));
1561            }
1562            if let Ok(decoded)
1563                = <StateCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1564                return Ok(Self::State(decoded));
1565            }
1566            if let Ok(decoded)
1567                = <SupportsInterfaceCall as ::ethers_core::abi::AbiDecode>::decode(
1568                    data,
1569                ) {
1570                return Ok(Self::SupportsInterface(decoded));
1571            }
1572            if let Ok(decoded)
1573                = <TokenCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1574                return Ok(Self::Token(decoded));
1575            }
1576            if let Ok(decoded)
1577                = <VersionCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1578                return Ok(Self::Version(decoded));
1579            }
1580            if let Ok(decoded)
1581                = <VotingDelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1582                return Ok(Self::VotingDelay(decoded));
1583            }
1584            if let Ok(decoded)
1585                = <VotingPeriodCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1586                return Ok(Self::VotingPeriod(decoded));
1587            }
1588            Err(::ethers_core::abi::Error::InvalidData.into())
1589        }
1590    }
1591    impl ::ethers_core::abi::AbiEncode for GovernorVotesCalls {
1592        fn encode(self) -> Vec<u8> {
1593            match self {
1594                Self::BallotTypehash(element) => {
1595                    ::ethers_core::abi::AbiEncode::encode(element)
1596                }
1597                Self::ClockMode(element) => {
1598                    ::ethers_core::abi::AbiEncode::encode(element)
1599                }
1600                Self::CountingMode(element) => {
1601                    ::ethers_core::abi::AbiEncode::encode(element)
1602                }
1603                Self::ExtendedBallotTypehash(element) => {
1604                    ::ethers_core::abi::AbiEncode::encode(element)
1605                }
1606                Self::Cancel(element) => ::ethers_core::abi::AbiEncode::encode(element),
1607                Self::CastVote(element) => ::ethers_core::abi::AbiEncode::encode(element),
1608                Self::CastVoteBySig(element) => {
1609                    ::ethers_core::abi::AbiEncode::encode(element)
1610                }
1611                Self::CastVoteWithReason(element) => {
1612                    ::ethers_core::abi::AbiEncode::encode(element)
1613                }
1614                Self::CastVoteWithReasonAndParams(element) => {
1615                    ::ethers_core::abi::AbiEncode::encode(element)
1616                }
1617                Self::CastVoteWithReasonAndParamsBySig(element) => {
1618                    ::ethers_core::abi::AbiEncode::encode(element)
1619                }
1620                Self::Clock(element) => ::ethers_core::abi::AbiEncode::encode(element),
1621                Self::Eip712Domain(element) => {
1622                    ::ethers_core::abi::AbiEncode::encode(element)
1623                }
1624                Self::Execute(element) => ::ethers_core::abi::AbiEncode::encode(element),
1625                Self::GetVotes(element) => ::ethers_core::abi::AbiEncode::encode(element),
1626                Self::GetVotesWithParams(element) => {
1627                    ::ethers_core::abi::AbiEncode::encode(element)
1628                }
1629                Self::HasVoted(element) => ::ethers_core::abi::AbiEncode::encode(element),
1630                Self::HashProposal(element) => {
1631                    ::ethers_core::abi::AbiEncode::encode(element)
1632                }
1633                Self::Name(element) => ::ethers_core::abi::AbiEncode::encode(element),
1634                Self::OnERC1155BatchReceived(element) => {
1635                    ::ethers_core::abi::AbiEncode::encode(element)
1636                }
1637                Self::OnERC1155Received(element) => {
1638                    ::ethers_core::abi::AbiEncode::encode(element)
1639                }
1640                Self::OnERC721Received(element) => {
1641                    ::ethers_core::abi::AbiEncode::encode(element)
1642                }
1643                Self::ProposalDeadline(element) => {
1644                    ::ethers_core::abi::AbiEncode::encode(element)
1645                }
1646                Self::ProposalProposer(element) => {
1647                    ::ethers_core::abi::AbiEncode::encode(element)
1648                }
1649                Self::ProposalSnapshot(element) => {
1650                    ::ethers_core::abi::AbiEncode::encode(element)
1651                }
1652                Self::ProposalThreshold(element) => {
1653                    ::ethers_core::abi::AbiEncode::encode(element)
1654                }
1655                Self::Propose(element) => ::ethers_core::abi::AbiEncode::encode(element),
1656                Self::Quorum(element) => ::ethers_core::abi::AbiEncode::encode(element),
1657                Self::Relay(element) => ::ethers_core::abi::AbiEncode::encode(element),
1658                Self::State(element) => ::ethers_core::abi::AbiEncode::encode(element),
1659                Self::SupportsInterface(element) => {
1660                    ::ethers_core::abi::AbiEncode::encode(element)
1661                }
1662                Self::Token(element) => ::ethers_core::abi::AbiEncode::encode(element),
1663                Self::Version(element) => ::ethers_core::abi::AbiEncode::encode(element),
1664                Self::VotingDelay(element) => {
1665                    ::ethers_core::abi::AbiEncode::encode(element)
1666                }
1667                Self::VotingPeriod(element) => {
1668                    ::ethers_core::abi::AbiEncode::encode(element)
1669                }
1670            }
1671        }
1672    }
1673    impl ::core::fmt::Display for GovernorVotesCalls {
1674        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1675            match self {
1676                Self::BallotTypehash(element) => ::core::fmt::Display::fmt(element, f),
1677                Self::ClockMode(element) => ::core::fmt::Display::fmt(element, f),
1678                Self::CountingMode(element) => ::core::fmt::Display::fmt(element, f),
1679                Self::ExtendedBallotTypehash(element) => {
1680                    ::core::fmt::Display::fmt(element, f)
1681                }
1682                Self::Cancel(element) => ::core::fmt::Display::fmt(element, f),
1683                Self::CastVote(element) => ::core::fmt::Display::fmt(element, f),
1684                Self::CastVoteBySig(element) => ::core::fmt::Display::fmt(element, f),
1685                Self::CastVoteWithReason(element) => {
1686                    ::core::fmt::Display::fmt(element, f)
1687                }
1688                Self::CastVoteWithReasonAndParams(element) => {
1689                    ::core::fmt::Display::fmt(element, f)
1690                }
1691                Self::CastVoteWithReasonAndParamsBySig(element) => {
1692                    ::core::fmt::Display::fmt(element, f)
1693                }
1694                Self::Clock(element) => ::core::fmt::Display::fmt(element, f),
1695                Self::Eip712Domain(element) => ::core::fmt::Display::fmt(element, f),
1696                Self::Execute(element) => ::core::fmt::Display::fmt(element, f),
1697                Self::GetVotes(element) => ::core::fmt::Display::fmt(element, f),
1698                Self::GetVotesWithParams(element) => {
1699                    ::core::fmt::Display::fmt(element, f)
1700                }
1701                Self::HasVoted(element) => ::core::fmt::Display::fmt(element, f),
1702                Self::HashProposal(element) => ::core::fmt::Display::fmt(element, f),
1703                Self::Name(element) => ::core::fmt::Display::fmt(element, f),
1704                Self::OnERC1155BatchReceived(element) => {
1705                    ::core::fmt::Display::fmt(element, f)
1706                }
1707                Self::OnERC1155Received(element) => ::core::fmt::Display::fmt(element, f),
1708                Self::OnERC721Received(element) => ::core::fmt::Display::fmt(element, f),
1709                Self::ProposalDeadline(element) => ::core::fmt::Display::fmt(element, f),
1710                Self::ProposalProposer(element) => ::core::fmt::Display::fmt(element, f),
1711                Self::ProposalSnapshot(element) => ::core::fmt::Display::fmt(element, f),
1712                Self::ProposalThreshold(element) => ::core::fmt::Display::fmt(element, f),
1713                Self::Propose(element) => ::core::fmt::Display::fmt(element, f),
1714                Self::Quorum(element) => ::core::fmt::Display::fmt(element, f),
1715                Self::Relay(element) => ::core::fmt::Display::fmt(element, f),
1716                Self::State(element) => ::core::fmt::Display::fmt(element, f),
1717                Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
1718                Self::Token(element) => ::core::fmt::Display::fmt(element, f),
1719                Self::Version(element) => ::core::fmt::Display::fmt(element, f),
1720                Self::VotingDelay(element) => ::core::fmt::Display::fmt(element, f),
1721                Self::VotingPeriod(element) => ::core::fmt::Display::fmt(element, f),
1722            }
1723        }
1724    }
1725    impl ::core::convert::From<BallotTypehashCall> for GovernorVotesCalls {
1726        fn from(value: BallotTypehashCall) -> Self {
1727            Self::BallotTypehash(value)
1728        }
1729    }
1730    impl ::core::convert::From<ClockModeCall> for GovernorVotesCalls {
1731        fn from(value: ClockModeCall) -> Self {
1732            Self::ClockMode(value)
1733        }
1734    }
1735    impl ::core::convert::From<CountingModeCall> for GovernorVotesCalls {
1736        fn from(value: CountingModeCall) -> Self {
1737            Self::CountingMode(value)
1738        }
1739    }
1740    impl ::core::convert::From<ExtendedBallotTypehashCall> for GovernorVotesCalls {
1741        fn from(value: ExtendedBallotTypehashCall) -> Self {
1742            Self::ExtendedBallotTypehash(value)
1743        }
1744    }
1745    impl ::core::convert::From<CancelCall> for GovernorVotesCalls {
1746        fn from(value: CancelCall) -> Self {
1747            Self::Cancel(value)
1748        }
1749    }
1750    impl ::core::convert::From<CastVoteCall> for GovernorVotesCalls {
1751        fn from(value: CastVoteCall) -> Self {
1752            Self::CastVote(value)
1753        }
1754    }
1755    impl ::core::convert::From<CastVoteBySigCall> for GovernorVotesCalls {
1756        fn from(value: CastVoteBySigCall) -> Self {
1757            Self::CastVoteBySig(value)
1758        }
1759    }
1760    impl ::core::convert::From<CastVoteWithReasonCall> for GovernorVotesCalls {
1761        fn from(value: CastVoteWithReasonCall) -> Self {
1762            Self::CastVoteWithReason(value)
1763        }
1764    }
1765    impl ::core::convert::From<CastVoteWithReasonAndParamsCall> for GovernorVotesCalls {
1766        fn from(value: CastVoteWithReasonAndParamsCall) -> Self {
1767            Self::CastVoteWithReasonAndParams(value)
1768        }
1769    }
1770    impl ::core::convert::From<CastVoteWithReasonAndParamsBySigCall>
1771    for GovernorVotesCalls {
1772        fn from(value: CastVoteWithReasonAndParamsBySigCall) -> Self {
1773            Self::CastVoteWithReasonAndParamsBySig(value)
1774        }
1775    }
1776    impl ::core::convert::From<ClockCall> for GovernorVotesCalls {
1777        fn from(value: ClockCall) -> Self {
1778            Self::Clock(value)
1779        }
1780    }
1781    impl ::core::convert::From<Eip712DomainCall> for GovernorVotesCalls {
1782        fn from(value: Eip712DomainCall) -> Self {
1783            Self::Eip712Domain(value)
1784        }
1785    }
1786    impl ::core::convert::From<ExecuteCall> for GovernorVotesCalls {
1787        fn from(value: ExecuteCall) -> Self {
1788            Self::Execute(value)
1789        }
1790    }
1791    impl ::core::convert::From<GetVotesCall> for GovernorVotesCalls {
1792        fn from(value: GetVotesCall) -> Self {
1793            Self::GetVotes(value)
1794        }
1795    }
1796    impl ::core::convert::From<GetVotesWithParamsCall> for GovernorVotesCalls {
1797        fn from(value: GetVotesWithParamsCall) -> Self {
1798            Self::GetVotesWithParams(value)
1799        }
1800    }
1801    impl ::core::convert::From<HasVotedCall> for GovernorVotesCalls {
1802        fn from(value: HasVotedCall) -> Self {
1803            Self::HasVoted(value)
1804        }
1805    }
1806    impl ::core::convert::From<HashProposalCall> for GovernorVotesCalls {
1807        fn from(value: HashProposalCall) -> Self {
1808            Self::HashProposal(value)
1809        }
1810    }
1811    impl ::core::convert::From<NameCall> for GovernorVotesCalls {
1812        fn from(value: NameCall) -> Self {
1813            Self::Name(value)
1814        }
1815    }
1816    impl ::core::convert::From<OnERC1155BatchReceivedCall> for GovernorVotesCalls {
1817        fn from(value: OnERC1155BatchReceivedCall) -> Self {
1818            Self::OnERC1155BatchReceived(value)
1819        }
1820    }
1821    impl ::core::convert::From<OnERC1155ReceivedCall> for GovernorVotesCalls {
1822        fn from(value: OnERC1155ReceivedCall) -> Self {
1823            Self::OnERC1155Received(value)
1824        }
1825    }
1826    impl ::core::convert::From<OnERC721ReceivedCall> for GovernorVotesCalls {
1827        fn from(value: OnERC721ReceivedCall) -> Self {
1828            Self::OnERC721Received(value)
1829        }
1830    }
1831    impl ::core::convert::From<ProposalDeadlineCall> for GovernorVotesCalls {
1832        fn from(value: ProposalDeadlineCall) -> Self {
1833            Self::ProposalDeadline(value)
1834        }
1835    }
1836    impl ::core::convert::From<ProposalProposerCall> for GovernorVotesCalls {
1837        fn from(value: ProposalProposerCall) -> Self {
1838            Self::ProposalProposer(value)
1839        }
1840    }
1841    impl ::core::convert::From<ProposalSnapshotCall> for GovernorVotesCalls {
1842        fn from(value: ProposalSnapshotCall) -> Self {
1843            Self::ProposalSnapshot(value)
1844        }
1845    }
1846    impl ::core::convert::From<ProposalThresholdCall> for GovernorVotesCalls {
1847        fn from(value: ProposalThresholdCall) -> Self {
1848            Self::ProposalThreshold(value)
1849        }
1850    }
1851    impl ::core::convert::From<ProposeCall> for GovernorVotesCalls {
1852        fn from(value: ProposeCall) -> Self {
1853            Self::Propose(value)
1854        }
1855    }
1856    impl ::core::convert::From<QuorumCall> for GovernorVotesCalls {
1857        fn from(value: QuorumCall) -> Self {
1858            Self::Quorum(value)
1859        }
1860    }
1861    impl ::core::convert::From<RelayCall> for GovernorVotesCalls {
1862        fn from(value: RelayCall) -> Self {
1863            Self::Relay(value)
1864        }
1865    }
1866    impl ::core::convert::From<StateCall> for GovernorVotesCalls {
1867        fn from(value: StateCall) -> Self {
1868            Self::State(value)
1869        }
1870    }
1871    impl ::core::convert::From<SupportsInterfaceCall> for GovernorVotesCalls {
1872        fn from(value: SupportsInterfaceCall) -> Self {
1873            Self::SupportsInterface(value)
1874        }
1875    }
1876    impl ::core::convert::From<TokenCall> for GovernorVotesCalls {
1877        fn from(value: TokenCall) -> Self {
1878            Self::Token(value)
1879        }
1880    }
1881    impl ::core::convert::From<VersionCall> for GovernorVotesCalls {
1882        fn from(value: VersionCall) -> Self {
1883            Self::Version(value)
1884        }
1885    }
1886    impl ::core::convert::From<VotingDelayCall> for GovernorVotesCalls {
1887        fn from(value: VotingDelayCall) -> Self {
1888            Self::VotingDelay(value)
1889        }
1890    }
1891    impl ::core::convert::From<VotingPeriodCall> for GovernorVotesCalls {
1892        fn from(value: VotingPeriodCall) -> Self {
1893            Self::VotingPeriod(value)
1894        }
1895    }
1896    ///Container type for all return fields from the `BALLOT_TYPEHASH` function with signature `BALLOT_TYPEHASH()` and selector `0xdeaaa7cc`
1897    #[derive(
1898        Clone,
1899        ::ethers_contract::EthAbiType,
1900        ::ethers_contract::EthAbiCodec,
1901        Default,
1902        Debug,
1903        PartialEq,
1904        Eq,
1905        Hash
1906    )]
1907    pub struct BallotTypehashReturn(pub [u8; 32]);
1908    ///Container type for all return fields from the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
1909    #[derive(
1910        Clone,
1911        ::ethers_contract::EthAbiType,
1912        ::ethers_contract::EthAbiCodec,
1913        Default,
1914        Debug,
1915        PartialEq,
1916        Eq,
1917        Hash
1918    )]
1919    pub struct ClockModeReturn(pub ::std::string::String);
1920    ///Container type for all return fields from the `COUNTING_MODE` function with signature `COUNTING_MODE()` and selector `0xdd4e2ba5`
1921    #[derive(
1922        Clone,
1923        ::ethers_contract::EthAbiType,
1924        ::ethers_contract::EthAbiCodec,
1925        Default,
1926        Debug,
1927        PartialEq,
1928        Eq,
1929        Hash
1930    )]
1931    pub struct CountingModeReturn(pub ::std::string::String);
1932    ///Container type for all return fields from the `EXTENDED_BALLOT_TYPEHASH` function with signature `EXTENDED_BALLOT_TYPEHASH()` and selector `0x2fe3e261`
1933    #[derive(
1934        Clone,
1935        ::ethers_contract::EthAbiType,
1936        ::ethers_contract::EthAbiCodec,
1937        Default,
1938        Debug,
1939        PartialEq,
1940        Eq,
1941        Hash
1942    )]
1943    pub struct ExtendedBallotTypehashReturn(pub [u8; 32]);
1944    ///Container type for all return fields from the `cancel` function with signature `cancel(address[],uint256[],bytes[],bytes32)` and selector `0x452115d6`
1945    #[derive(
1946        Clone,
1947        ::ethers_contract::EthAbiType,
1948        ::ethers_contract::EthAbiCodec,
1949        Default,
1950        Debug,
1951        PartialEq,
1952        Eq,
1953        Hash
1954    )]
1955    pub struct CancelReturn(pub ::ethers_core::types::U256);
1956    ///Container type for all return fields from the `castVote` function with signature `castVote(uint256,uint8)` and selector `0x56781388`
1957    #[derive(
1958        Clone,
1959        ::ethers_contract::EthAbiType,
1960        ::ethers_contract::EthAbiCodec,
1961        Default,
1962        Debug,
1963        PartialEq,
1964        Eq,
1965        Hash
1966    )]
1967    pub struct CastVoteReturn(pub ::ethers_core::types::U256);
1968    ///Container type for all return fields from the `castVoteBySig` function with signature `castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)` and selector `0x3bccf4fd`
1969    #[derive(
1970        Clone,
1971        ::ethers_contract::EthAbiType,
1972        ::ethers_contract::EthAbiCodec,
1973        Default,
1974        Debug,
1975        PartialEq,
1976        Eq,
1977        Hash
1978    )]
1979    pub struct CastVoteBySigReturn(pub ::ethers_core::types::U256);
1980    ///Container type for all return fields from the `castVoteWithReason` function with signature `castVoteWithReason(uint256,uint8,string)` and selector `0x7b3c71d3`
1981    #[derive(
1982        Clone,
1983        ::ethers_contract::EthAbiType,
1984        ::ethers_contract::EthAbiCodec,
1985        Default,
1986        Debug,
1987        PartialEq,
1988        Eq,
1989        Hash
1990    )]
1991    pub struct CastVoteWithReasonReturn(pub ::ethers_core::types::U256);
1992    ///Container type for all return fields from the `castVoteWithReasonAndParams` function with signature `castVoteWithReasonAndParams(uint256,uint8,string,bytes)` and selector `0x5f398a14`
1993    #[derive(
1994        Clone,
1995        ::ethers_contract::EthAbiType,
1996        ::ethers_contract::EthAbiCodec,
1997        Default,
1998        Debug,
1999        PartialEq,
2000        Eq,
2001        Hash
2002    )]
2003    pub struct CastVoteWithReasonAndParamsReturn(pub ::ethers_core::types::U256);
2004    ///Container type for all return fields from the `castVoteWithReasonAndParamsBySig` function with signature `castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)` and selector `0x03420181`
2005    #[derive(
2006        Clone,
2007        ::ethers_contract::EthAbiType,
2008        ::ethers_contract::EthAbiCodec,
2009        Default,
2010        Debug,
2011        PartialEq,
2012        Eq,
2013        Hash
2014    )]
2015    pub struct CastVoteWithReasonAndParamsBySigReturn(pub ::ethers_core::types::U256);
2016    ///Container type for all return fields from the `clock` function with signature `clock()` and selector `0x91ddadf4`
2017    #[derive(
2018        Clone,
2019        ::ethers_contract::EthAbiType,
2020        ::ethers_contract::EthAbiCodec,
2021        Default,
2022        Debug,
2023        PartialEq,
2024        Eq,
2025        Hash
2026    )]
2027    pub struct ClockReturn(pub u64);
2028    ///Container type for all return fields from the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e`
2029    #[derive(
2030        Clone,
2031        ::ethers_contract::EthAbiType,
2032        ::ethers_contract::EthAbiCodec,
2033        Default,
2034        Debug,
2035        PartialEq,
2036        Eq,
2037        Hash
2038    )]
2039    pub struct Eip712DomainReturn {
2040        pub fields: [u8; 1],
2041        pub name: ::std::string::String,
2042        pub version: ::std::string::String,
2043        pub chain_id: ::ethers_core::types::U256,
2044        pub verifying_contract: ::ethers_core::types::Address,
2045        pub salt: [u8; 32],
2046        pub extensions: ::std::vec::Vec<::ethers_core::types::U256>,
2047    }
2048    ///Container type for all return fields from the `execute` function with signature `execute(address[],uint256[],bytes[],bytes32)` and selector `0x2656227d`
2049    #[derive(
2050        Clone,
2051        ::ethers_contract::EthAbiType,
2052        ::ethers_contract::EthAbiCodec,
2053        Default,
2054        Debug,
2055        PartialEq,
2056        Eq,
2057        Hash
2058    )]
2059    pub struct ExecuteReturn(pub ::ethers_core::types::U256);
2060    ///Container type for all return fields from the `getVotes` function with signature `getVotes(address,uint256)` and selector `0xeb9019d4`
2061    #[derive(
2062        Clone,
2063        ::ethers_contract::EthAbiType,
2064        ::ethers_contract::EthAbiCodec,
2065        Default,
2066        Debug,
2067        PartialEq,
2068        Eq,
2069        Hash
2070    )]
2071    pub struct GetVotesReturn(pub ::ethers_core::types::U256);
2072    ///Container type for all return fields from the `getVotesWithParams` function with signature `getVotesWithParams(address,uint256,bytes)` and selector `0x9a802a6d`
2073    #[derive(
2074        Clone,
2075        ::ethers_contract::EthAbiType,
2076        ::ethers_contract::EthAbiCodec,
2077        Default,
2078        Debug,
2079        PartialEq,
2080        Eq,
2081        Hash
2082    )]
2083    pub struct GetVotesWithParamsReturn(pub ::ethers_core::types::U256);
2084    ///Container type for all return fields from the `hasVoted` function with signature `hasVoted(uint256,address)` and selector `0x43859632`
2085    #[derive(
2086        Clone,
2087        ::ethers_contract::EthAbiType,
2088        ::ethers_contract::EthAbiCodec,
2089        Default,
2090        Debug,
2091        PartialEq,
2092        Eq,
2093        Hash
2094    )]
2095    pub struct HasVotedReturn(pub bool);
2096    ///Container type for all return fields from the `hashProposal` function with signature `hashProposal(address[],uint256[],bytes[],bytes32)` and selector `0xc59057e4`
2097    #[derive(
2098        Clone,
2099        ::ethers_contract::EthAbiType,
2100        ::ethers_contract::EthAbiCodec,
2101        Default,
2102        Debug,
2103        PartialEq,
2104        Eq,
2105        Hash
2106    )]
2107    pub struct HashProposalReturn(pub ::ethers_core::types::U256);
2108    ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03`
2109    #[derive(
2110        Clone,
2111        ::ethers_contract::EthAbiType,
2112        ::ethers_contract::EthAbiCodec,
2113        Default,
2114        Debug,
2115        PartialEq,
2116        Eq,
2117        Hash
2118    )]
2119    pub struct NameReturn(pub ::std::string::String);
2120    ///Container type for all return fields from the `onERC1155BatchReceived` function with signature `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)` and selector `0xbc197c81`
2121    #[derive(
2122        Clone,
2123        ::ethers_contract::EthAbiType,
2124        ::ethers_contract::EthAbiCodec,
2125        Default,
2126        Debug,
2127        PartialEq,
2128        Eq,
2129        Hash
2130    )]
2131    pub struct OnERC1155BatchReceivedReturn(pub [u8; 4]);
2132    ///Container type for all return fields from the `onERC1155Received` function with signature `onERC1155Received(address,address,uint256,uint256,bytes)` and selector `0xf23a6e61`
2133    #[derive(
2134        Clone,
2135        ::ethers_contract::EthAbiType,
2136        ::ethers_contract::EthAbiCodec,
2137        Default,
2138        Debug,
2139        PartialEq,
2140        Eq,
2141        Hash
2142    )]
2143    pub struct OnERC1155ReceivedReturn(pub [u8; 4]);
2144    ///Container type for all return fields from the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02`
2145    #[derive(
2146        Clone,
2147        ::ethers_contract::EthAbiType,
2148        ::ethers_contract::EthAbiCodec,
2149        Default,
2150        Debug,
2151        PartialEq,
2152        Eq,
2153        Hash
2154    )]
2155    pub struct OnERC721ReceivedReturn(pub [u8; 4]);
2156    ///Container type for all return fields from the `proposalDeadline` function with signature `proposalDeadline(uint256)` and selector `0xc01f9e37`
2157    #[derive(
2158        Clone,
2159        ::ethers_contract::EthAbiType,
2160        ::ethers_contract::EthAbiCodec,
2161        Default,
2162        Debug,
2163        PartialEq,
2164        Eq,
2165        Hash
2166    )]
2167    pub struct ProposalDeadlineReturn(pub ::ethers_core::types::U256);
2168    ///Container type for all return fields from the `proposalProposer` function with signature `proposalProposer(uint256)` and selector `0x143489d0`
2169    #[derive(
2170        Clone,
2171        ::ethers_contract::EthAbiType,
2172        ::ethers_contract::EthAbiCodec,
2173        Default,
2174        Debug,
2175        PartialEq,
2176        Eq,
2177        Hash
2178    )]
2179    pub struct ProposalProposerReturn(pub ::ethers_core::types::Address);
2180    ///Container type for all return fields from the `proposalSnapshot` function with signature `proposalSnapshot(uint256)` and selector `0x2d63f693`
2181    #[derive(
2182        Clone,
2183        ::ethers_contract::EthAbiType,
2184        ::ethers_contract::EthAbiCodec,
2185        Default,
2186        Debug,
2187        PartialEq,
2188        Eq,
2189        Hash
2190    )]
2191    pub struct ProposalSnapshotReturn(pub ::ethers_core::types::U256);
2192    ///Container type for all return fields from the `proposalThreshold` function with signature `proposalThreshold()` and selector `0xb58131b0`
2193    #[derive(
2194        Clone,
2195        ::ethers_contract::EthAbiType,
2196        ::ethers_contract::EthAbiCodec,
2197        Default,
2198        Debug,
2199        PartialEq,
2200        Eq,
2201        Hash
2202    )]
2203    pub struct ProposalThresholdReturn(pub ::ethers_core::types::U256);
2204    ///Container type for all return fields from the `propose` function with signature `propose(address[],uint256[],bytes[],string)` and selector `0x7d5e81e2`
2205    #[derive(
2206        Clone,
2207        ::ethers_contract::EthAbiType,
2208        ::ethers_contract::EthAbiCodec,
2209        Default,
2210        Debug,
2211        PartialEq,
2212        Eq,
2213        Hash
2214    )]
2215    pub struct ProposeReturn(pub ::ethers_core::types::U256);
2216    ///Container type for all return fields from the `quorum` function with signature `quorum(uint256)` and selector `0xf8ce560a`
2217    #[derive(
2218        Clone,
2219        ::ethers_contract::EthAbiType,
2220        ::ethers_contract::EthAbiCodec,
2221        Default,
2222        Debug,
2223        PartialEq,
2224        Eq,
2225        Hash
2226    )]
2227    pub struct QuorumReturn(pub ::ethers_core::types::U256);
2228    ///Container type for all return fields from the `state` function with signature `state(uint256)` and selector `0x3e4f49e6`
2229    #[derive(
2230        Clone,
2231        ::ethers_contract::EthAbiType,
2232        ::ethers_contract::EthAbiCodec,
2233        Default,
2234        Debug,
2235        PartialEq,
2236        Eq,
2237        Hash
2238    )]
2239    pub struct StateReturn(pub u8);
2240    ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
2241    #[derive(
2242        Clone,
2243        ::ethers_contract::EthAbiType,
2244        ::ethers_contract::EthAbiCodec,
2245        Default,
2246        Debug,
2247        PartialEq,
2248        Eq,
2249        Hash
2250    )]
2251    pub struct SupportsInterfaceReturn(pub bool);
2252    ///Container type for all return fields from the `token` function with signature `token()` and selector `0xfc0c546a`
2253    #[derive(
2254        Clone,
2255        ::ethers_contract::EthAbiType,
2256        ::ethers_contract::EthAbiCodec,
2257        Default,
2258        Debug,
2259        PartialEq,
2260        Eq,
2261        Hash
2262    )]
2263    pub struct TokenReturn(pub ::ethers_core::types::Address);
2264    ///Container type for all return fields from the `version` function with signature `version()` and selector `0x54fd4d50`
2265    #[derive(
2266        Clone,
2267        ::ethers_contract::EthAbiType,
2268        ::ethers_contract::EthAbiCodec,
2269        Default,
2270        Debug,
2271        PartialEq,
2272        Eq,
2273        Hash
2274    )]
2275    pub struct VersionReturn(pub ::std::string::String);
2276    ///Container type for all return fields from the `votingDelay` function with signature `votingDelay()` and selector `0x3932abb1`
2277    #[derive(
2278        Clone,
2279        ::ethers_contract::EthAbiType,
2280        ::ethers_contract::EthAbiCodec,
2281        Default,
2282        Debug,
2283        PartialEq,
2284        Eq,
2285        Hash
2286    )]
2287    pub struct VotingDelayReturn(pub ::ethers_core::types::U256);
2288    ///Container type for all return fields from the `votingPeriod` function with signature `votingPeriod()` and selector `0x02a251a3`
2289    #[derive(
2290        Clone,
2291        ::ethers_contract::EthAbiType,
2292        ::ethers_contract::EthAbiCodec,
2293        Default,
2294        Debug,
2295        PartialEq,
2296        Eq,
2297        Hash
2298    )]
2299    pub struct VotingPeriodReturn(pub ::ethers_core::types::U256);
2300}