openzeppelin_rs/contracts/
Governor.rs

1pub use governor::*;
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 {
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\":\"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 GOVERNOR_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 Governor<M>(::ethers_contract::Contract<M>);
19    impl<M> ::core::clone::Clone for Governor<M> {
20        fn clone(&self) -> Self {
21            Self(::core::clone::Clone::clone(&self.0))
22        }
23    }
24    impl<M> ::core::ops::Deref for Governor<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 Governor<M> {
31        fn deref_mut(&mut self) -> &mut Self::Target {
32            &mut self.0
33        }
34    }
35    impl<M> ::core::fmt::Debug for Governor<M> {
36        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
37            f.debug_tuple(stringify!(Governor)).field(&self.address()).finish()
38        }
39    }
40    impl<M: ::ethers_providers::Middleware> Governor<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                    GOVERNOR_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 `version` (0x54fd4d50) function
390        pub fn version(
391            &self,
392        ) -> ::ethers_contract::builders::ContractCall<M, ::std::string::String> {
393            self.0
394                .method_hash([84, 253, 77, 80], ())
395                .expect("method not found (this should never happen)")
396        }
397        ///Calls the contract's `votingDelay` (0x3932abb1) function
398        pub fn voting_delay(
399            &self,
400        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
401            self.0
402                .method_hash([57, 50, 171, 177], ())
403                .expect("method not found (this should never happen)")
404        }
405        ///Calls the contract's `votingPeriod` (0x02a251a3) function
406        pub fn voting_period(
407            &self,
408        ) -> ::ethers_contract::builders::ContractCall<M, ::ethers_core::types::U256> {
409            self.0
410                .method_hash([2, 162, 81, 163], ())
411                .expect("method not found (this should never happen)")
412        }
413        ///Gets the contract's `EIP712DomainChanged` event
414        pub fn eip712_domain_changed_filter(
415            &self,
416        ) -> ::ethers_contract::builders::Event<
417            ::std::sync::Arc<M>,
418            M,
419            Eip712DomainChangedFilter,
420        > {
421            self.0.event()
422        }
423        ///Gets the contract's `ProposalCanceled` event
424        pub fn proposal_canceled_filter(
425            &self,
426        ) -> ::ethers_contract::builders::Event<
427            ::std::sync::Arc<M>,
428            M,
429            ProposalCanceledFilter,
430        > {
431            self.0.event()
432        }
433        ///Gets the contract's `ProposalCreated` event
434        pub fn proposal_created_filter(
435            &self,
436        ) -> ::ethers_contract::builders::Event<
437            ::std::sync::Arc<M>,
438            M,
439            ProposalCreatedFilter,
440        > {
441            self.0.event()
442        }
443        ///Gets the contract's `ProposalExecuted` event
444        pub fn proposal_executed_filter(
445            &self,
446        ) -> ::ethers_contract::builders::Event<
447            ::std::sync::Arc<M>,
448            M,
449            ProposalExecutedFilter,
450        > {
451            self.0.event()
452        }
453        ///Gets the contract's `VoteCast` event
454        pub fn vote_cast_filter(
455            &self,
456        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, VoteCastFilter> {
457            self.0.event()
458        }
459        ///Gets the contract's `VoteCastWithParams` event
460        pub fn vote_cast_with_params_filter(
461            &self,
462        ) -> ::ethers_contract::builders::Event<
463            ::std::sync::Arc<M>,
464            M,
465            VoteCastWithParamsFilter,
466        > {
467            self.0.event()
468        }
469        /// Returns an `Event` builder for all the events of this contract.
470        pub fn events(
471            &self,
472        ) -> ::ethers_contract::builders::Event<::std::sync::Arc<M>, M, GovernorEvents> {
473            self.0.event_with_filter(::core::default::Default::default())
474        }
475    }
476    impl<M: ::ethers_providers::Middleware> From<::ethers_contract::Contract<M>>
477    for Governor<M> {
478        fn from(contract: ::ethers_contract::Contract<M>) -> Self {
479            Self::new(contract.address(), contract.client())
480        }
481    }
482    ///Custom Error type `Empty` with signature `Empty()` and selector `0x3db2a12a`
483    #[derive(
484        Clone,
485        ::ethers_contract::EthError,
486        ::ethers_contract::EthDisplay,
487        Default,
488        Debug,
489        PartialEq,
490        Eq,
491        Hash
492    )]
493    #[etherror(name = "Empty", abi = "Empty()")]
494    pub struct Empty;
495    ///Custom Error type `InvalidShortString` with signature `InvalidShortString()` and selector `0xb3512b0c`
496    #[derive(
497        Clone,
498        ::ethers_contract::EthError,
499        ::ethers_contract::EthDisplay,
500        Default,
501        Debug,
502        PartialEq,
503        Eq,
504        Hash
505    )]
506    #[etherror(name = "InvalidShortString", abi = "InvalidShortString()")]
507    pub struct InvalidShortString;
508    ///Custom Error type `StringTooLong` with signature `StringTooLong(string)` and selector `0x305a27a9`
509    #[derive(
510        Clone,
511        ::ethers_contract::EthError,
512        ::ethers_contract::EthDisplay,
513        Default,
514        Debug,
515        PartialEq,
516        Eq,
517        Hash
518    )]
519    #[etherror(name = "StringTooLong", abi = "StringTooLong(string)")]
520    pub struct StringTooLong {
521        pub str: ::std::string::String,
522    }
523    ///Container type for all of the contract's custom errors
524    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
525    pub enum GovernorErrors {
526        Empty(Empty),
527        InvalidShortString(InvalidShortString),
528        StringTooLong(StringTooLong),
529        /// The standard solidity revert string, with selector
530        /// Error(string) -- 0x08c379a0
531        RevertString(::std::string::String),
532    }
533    impl ::ethers_core::abi::AbiDecode for GovernorErrors {
534        fn decode(
535            data: impl AsRef<[u8]>,
536        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
537            let data = data.as_ref();
538            if let Ok(decoded)
539                = <::std::string::String as ::ethers_core::abi::AbiDecode>::decode(
540                    data,
541                ) {
542                return Ok(Self::RevertString(decoded));
543            }
544            if let Ok(decoded) = <Empty as ::ethers_core::abi::AbiDecode>::decode(data) {
545                return Ok(Self::Empty(decoded));
546            }
547            if let Ok(decoded)
548                = <InvalidShortString as ::ethers_core::abi::AbiDecode>::decode(data) {
549                return Ok(Self::InvalidShortString(decoded));
550            }
551            if let Ok(decoded)
552                = <StringTooLong as ::ethers_core::abi::AbiDecode>::decode(data) {
553                return Ok(Self::StringTooLong(decoded));
554            }
555            Err(::ethers_core::abi::Error::InvalidData.into())
556        }
557    }
558    impl ::ethers_core::abi::AbiEncode for GovernorErrors {
559        fn encode(self) -> ::std::vec::Vec<u8> {
560            match self {
561                Self::Empty(element) => ::ethers_core::abi::AbiEncode::encode(element),
562                Self::InvalidShortString(element) => {
563                    ::ethers_core::abi::AbiEncode::encode(element)
564                }
565                Self::StringTooLong(element) => {
566                    ::ethers_core::abi::AbiEncode::encode(element)
567                }
568                Self::RevertString(s) => ::ethers_core::abi::AbiEncode::encode(s),
569            }
570        }
571    }
572    impl ::ethers_contract::ContractRevert for GovernorErrors {
573        fn valid_selector(selector: [u8; 4]) -> bool {
574            match selector {
575                [0x08, 0xc3, 0x79, 0xa0] => true,
576                _ if selector == <Empty as ::ethers_contract::EthError>::selector() => {
577                    true
578                }
579                _ if selector
580                    == <InvalidShortString as ::ethers_contract::EthError>::selector() => {
581                    true
582                }
583                _ if selector
584                    == <StringTooLong as ::ethers_contract::EthError>::selector() => true,
585                _ => false,
586            }
587        }
588    }
589    impl ::core::fmt::Display for GovernorErrors {
590        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
591            match self {
592                Self::Empty(element) => ::core::fmt::Display::fmt(element, f),
593                Self::InvalidShortString(element) => {
594                    ::core::fmt::Display::fmt(element, f)
595                }
596                Self::StringTooLong(element) => ::core::fmt::Display::fmt(element, f),
597                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
598            }
599        }
600    }
601    impl ::core::convert::From<::std::string::String> for GovernorErrors {
602        fn from(value: String) -> Self {
603            Self::RevertString(value)
604        }
605    }
606    impl ::core::convert::From<Empty> for GovernorErrors {
607        fn from(value: Empty) -> Self {
608            Self::Empty(value)
609        }
610    }
611    impl ::core::convert::From<InvalidShortString> for GovernorErrors {
612        fn from(value: InvalidShortString) -> Self {
613            Self::InvalidShortString(value)
614        }
615    }
616    impl ::core::convert::From<StringTooLong> for GovernorErrors {
617        fn from(value: StringTooLong) -> Self {
618            Self::StringTooLong(value)
619        }
620    }
621    #[derive(
622        Clone,
623        ::ethers_contract::EthEvent,
624        ::ethers_contract::EthDisplay,
625        Default,
626        Debug,
627        PartialEq,
628        Eq,
629        Hash
630    )]
631    #[ethevent(name = "EIP712DomainChanged", abi = "EIP712DomainChanged()")]
632    pub struct Eip712DomainChangedFilter;
633    #[derive(
634        Clone,
635        ::ethers_contract::EthEvent,
636        ::ethers_contract::EthDisplay,
637        Default,
638        Debug,
639        PartialEq,
640        Eq,
641        Hash
642    )]
643    #[ethevent(name = "ProposalCanceled", abi = "ProposalCanceled(uint256)")]
644    pub struct ProposalCanceledFilter {
645        pub proposal_id: ::ethers_core::types::U256,
646    }
647    #[derive(
648        Clone,
649        ::ethers_contract::EthEvent,
650        ::ethers_contract::EthDisplay,
651        Default,
652        Debug,
653        PartialEq,
654        Eq,
655        Hash
656    )]
657    #[ethevent(
658        name = "ProposalCreated",
659        abi = "ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)"
660    )]
661    pub struct ProposalCreatedFilter {
662        pub proposal_id: ::ethers_core::types::U256,
663        pub proposer: ::ethers_core::types::Address,
664        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
665        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
666        pub signatures: ::std::vec::Vec<::std::string::String>,
667        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
668        pub vote_start: ::ethers_core::types::U256,
669        pub vote_end: ::ethers_core::types::U256,
670        pub description: ::std::string::String,
671    }
672    #[derive(
673        Clone,
674        ::ethers_contract::EthEvent,
675        ::ethers_contract::EthDisplay,
676        Default,
677        Debug,
678        PartialEq,
679        Eq,
680        Hash
681    )]
682    #[ethevent(name = "ProposalExecuted", abi = "ProposalExecuted(uint256)")]
683    pub struct ProposalExecutedFilter {
684        pub proposal_id: ::ethers_core::types::U256,
685    }
686    #[derive(
687        Clone,
688        ::ethers_contract::EthEvent,
689        ::ethers_contract::EthDisplay,
690        Default,
691        Debug,
692        PartialEq,
693        Eq,
694        Hash
695    )]
696    #[ethevent(
697        name = "VoteCast",
698        abi = "VoteCast(address,uint256,uint8,uint256,string)"
699    )]
700    pub struct VoteCastFilter {
701        #[ethevent(indexed)]
702        pub voter: ::ethers_core::types::Address,
703        pub proposal_id: ::ethers_core::types::U256,
704        pub support: u8,
705        pub weight: ::ethers_core::types::U256,
706        pub reason: ::std::string::String,
707    }
708    #[derive(
709        Clone,
710        ::ethers_contract::EthEvent,
711        ::ethers_contract::EthDisplay,
712        Default,
713        Debug,
714        PartialEq,
715        Eq,
716        Hash
717    )]
718    #[ethevent(
719        name = "VoteCastWithParams",
720        abi = "VoteCastWithParams(address,uint256,uint8,uint256,string,bytes)"
721    )]
722    pub struct VoteCastWithParamsFilter {
723        #[ethevent(indexed)]
724        pub voter: ::ethers_core::types::Address,
725        pub proposal_id: ::ethers_core::types::U256,
726        pub support: u8,
727        pub weight: ::ethers_core::types::U256,
728        pub reason: ::std::string::String,
729        pub params: ::ethers_core::types::Bytes,
730    }
731    ///Container type for all of the contract's events
732    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
733    pub enum GovernorEvents {
734        Eip712DomainChangedFilter(Eip712DomainChangedFilter),
735        ProposalCanceledFilter(ProposalCanceledFilter),
736        ProposalCreatedFilter(ProposalCreatedFilter),
737        ProposalExecutedFilter(ProposalExecutedFilter),
738        VoteCastFilter(VoteCastFilter),
739        VoteCastWithParamsFilter(VoteCastWithParamsFilter),
740    }
741    impl ::ethers_contract::EthLogDecode for GovernorEvents {
742        fn decode_log(
743            log: &::ethers_core::abi::RawLog,
744        ) -> ::core::result::Result<Self, ::ethers_core::abi::Error> {
745            if let Ok(decoded) = Eip712DomainChangedFilter::decode_log(log) {
746                return Ok(GovernorEvents::Eip712DomainChangedFilter(decoded));
747            }
748            if let Ok(decoded) = ProposalCanceledFilter::decode_log(log) {
749                return Ok(GovernorEvents::ProposalCanceledFilter(decoded));
750            }
751            if let Ok(decoded) = ProposalCreatedFilter::decode_log(log) {
752                return Ok(GovernorEvents::ProposalCreatedFilter(decoded));
753            }
754            if let Ok(decoded) = ProposalExecutedFilter::decode_log(log) {
755                return Ok(GovernorEvents::ProposalExecutedFilter(decoded));
756            }
757            if let Ok(decoded) = VoteCastFilter::decode_log(log) {
758                return Ok(GovernorEvents::VoteCastFilter(decoded));
759            }
760            if let Ok(decoded) = VoteCastWithParamsFilter::decode_log(log) {
761                return Ok(GovernorEvents::VoteCastWithParamsFilter(decoded));
762            }
763            Err(::ethers_core::abi::Error::InvalidData)
764        }
765    }
766    impl ::core::fmt::Display for GovernorEvents {
767        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
768            match self {
769                Self::Eip712DomainChangedFilter(element) => {
770                    ::core::fmt::Display::fmt(element, f)
771                }
772                Self::ProposalCanceledFilter(element) => {
773                    ::core::fmt::Display::fmt(element, f)
774                }
775                Self::ProposalCreatedFilter(element) => {
776                    ::core::fmt::Display::fmt(element, f)
777                }
778                Self::ProposalExecutedFilter(element) => {
779                    ::core::fmt::Display::fmt(element, f)
780                }
781                Self::VoteCastFilter(element) => ::core::fmt::Display::fmt(element, f),
782                Self::VoteCastWithParamsFilter(element) => {
783                    ::core::fmt::Display::fmt(element, f)
784                }
785            }
786        }
787    }
788    impl ::core::convert::From<Eip712DomainChangedFilter> for GovernorEvents {
789        fn from(value: Eip712DomainChangedFilter) -> Self {
790            Self::Eip712DomainChangedFilter(value)
791        }
792    }
793    impl ::core::convert::From<ProposalCanceledFilter> for GovernorEvents {
794        fn from(value: ProposalCanceledFilter) -> Self {
795            Self::ProposalCanceledFilter(value)
796        }
797    }
798    impl ::core::convert::From<ProposalCreatedFilter> for GovernorEvents {
799        fn from(value: ProposalCreatedFilter) -> Self {
800            Self::ProposalCreatedFilter(value)
801        }
802    }
803    impl ::core::convert::From<ProposalExecutedFilter> for GovernorEvents {
804        fn from(value: ProposalExecutedFilter) -> Self {
805            Self::ProposalExecutedFilter(value)
806        }
807    }
808    impl ::core::convert::From<VoteCastFilter> for GovernorEvents {
809        fn from(value: VoteCastFilter) -> Self {
810            Self::VoteCastFilter(value)
811        }
812    }
813    impl ::core::convert::From<VoteCastWithParamsFilter> for GovernorEvents {
814        fn from(value: VoteCastWithParamsFilter) -> Self {
815            Self::VoteCastWithParamsFilter(value)
816        }
817    }
818    ///Container type for all input parameters for the `BALLOT_TYPEHASH` function with signature `BALLOT_TYPEHASH()` and selector `0xdeaaa7cc`
819    #[derive(
820        Clone,
821        ::ethers_contract::EthCall,
822        ::ethers_contract::EthDisplay,
823        Default,
824        Debug,
825        PartialEq,
826        Eq,
827        Hash
828    )]
829    #[ethcall(name = "BALLOT_TYPEHASH", abi = "BALLOT_TYPEHASH()")]
830    pub struct BallotTypehashCall;
831    ///Container type for all input parameters for the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
832    #[derive(
833        Clone,
834        ::ethers_contract::EthCall,
835        ::ethers_contract::EthDisplay,
836        Default,
837        Debug,
838        PartialEq,
839        Eq,
840        Hash
841    )]
842    #[ethcall(name = "CLOCK_MODE", abi = "CLOCK_MODE()")]
843    pub struct ClockModeCall;
844    ///Container type for all input parameters for the `COUNTING_MODE` function with signature `COUNTING_MODE()` and selector `0xdd4e2ba5`
845    #[derive(
846        Clone,
847        ::ethers_contract::EthCall,
848        ::ethers_contract::EthDisplay,
849        Default,
850        Debug,
851        PartialEq,
852        Eq,
853        Hash
854    )]
855    #[ethcall(name = "COUNTING_MODE", abi = "COUNTING_MODE()")]
856    pub struct CountingModeCall;
857    ///Container type for all input parameters for the `EXTENDED_BALLOT_TYPEHASH` function with signature `EXTENDED_BALLOT_TYPEHASH()` and selector `0x2fe3e261`
858    #[derive(
859        Clone,
860        ::ethers_contract::EthCall,
861        ::ethers_contract::EthDisplay,
862        Default,
863        Debug,
864        PartialEq,
865        Eq,
866        Hash
867    )]
868    #[ethcall(name = "EXTENDED_BALLOT_TYPEHASH", abi = "EXTENDED_BALLOT_TYPEHASH()")]
869    pub struct ExtendedBallotTypehashCall;
870    ///Container type for all input parameters for the `cancel` function with signature `cancel(address[],uint256[],bytes[],bytes32)` and selector `0x452115d6`
871    #[derive(
872        Clone,
873        ::ethers_contract::EthCall,
874        ::ethers_contract::EthDisplay,
875        Default,
876        Debug,
877        PartialEq,
878        Eq,
879        Hash
880    )]
881    #[ethcall(name = "cancel", abi = "cancel(address[],uint256[],bytes[],bytes32)")]
882    pub struct CancelCall {
883        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
884        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
885        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
886        pub description_hash: [u8; 32],
887    }
888    ///Container type for all input parameters for the `castVote` function with signature `castVote(uint256,uint8)` and selector `0x56781388`
889    #[derive(
890        Clone,
891        ::ethers_contract::EthCall,
892        ::ethers_contract::EthDisplay,
893        Default,
894        Debug,
895        PartialEq,
896        Eq,
897        Hash
898    )]
899    #[ethcall(name = "castVote", abi = "castVote(uint256,uint8)")]
900    pub struct CastVoteCall {
901        pub proposal_id: ::ethers_core::types::U256,
902        pub support: u8,
903    }
904    ///Container type for all input parameters for the `castVoteBySig` function with signature `castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)` and selector `0x3bccf4fd`
905    #[derive(
906        Clone,
907        ::ethers_contract::EthCall,
908        ::ethers_contract::EthDisplay,
909        Default,
910        Debug,
911        PartialEq,
912        Eq,
913        Hash
914    )]
915    #[ethcall(
916        name = "castVoteBySig",
917        abi = "castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)"
918    )]
919    pub struct CastVoteBySigCall {
920        pub proposal_id: ::ethers_core::types::U256,
921        pub support: u8,
922        pub v: u8,
923        pub r: [u8; 32],
924        pub s: [u8; 32],
925    }
926    ///Container type for all input parameters for the `castVoteWithReason` function with signature `castVoteWithReason(uint256,uint8,string)` and selector `0x7b3c71d3`
927    #[derive(
928        Clone,
929        ::ethers_contract::EthCall,
930        ::ethers_contract::EthDisplay,
931        Default,
932        Debug,
933        PartialEq,
934        Eq,
935        Hash
936    )]
937    #[ethcall(
938        name = "castVoteWithReason",
939        abi = "castVoteWithReason(uint256,uint8,string)"
940    )]
941    pub struct CastVoteWithReasonCall {
942        pub proposal_id: ::ethers_core::types::U256,
943        pub support: u8,
944        pub reason: ::std::string::String,
945    }
946    ///Container type for all input parameters for the `castVoteWithReasonAndParams` function with signature `castVoteWithReasonAndParams(uint256,uint8,string,bytes)` and selector `0x5f398a14`
947    #[derive(
948        Clone,
949        ::ethers_contract::EthCall,
950        ::ethers_contract::EthDisplay,
951        Default,
952        Debug,
953        PartialEq,
954        Eq,
955        Hash
956    )]
957    #[ethcall(
958        name = "castVoteWithReasonAndParams",
959        abi = "castVoteWithReasonAndParams(uint256,uint8,string,bytes)"
960    )]
961    pub struct CastVoteWithReasonAndParamsCall {
962        pub proposal_id: ::ethers_core::types::U256,
963        pub support: u8,
964        pub reason: ::std::string::String,
965        pub params: ::ethers_core::types::Bytes,
966    }
967    ///Container type for all input parameters for the `castVoteWithReasonAndParamsBySig` function with signature `castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)` and selector `0x03420181`
968    #[derive(
969        Clone,
970        ::ethers_contract::EthCall,
971        ::ethers_contract::EthDisplay,
972        Default,
973        Debug,
974        PartialEq,
975        Eq,
976        Hash
977    )]
978    #[ethcall(
979        name = "castVoteWithReasonAndParamsBySig",
980        abi = "castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)"
981    )]
982    pub struct CastVoteWithReasonAndParamsBySigCall {
983        pub proposal_id: ::ethers_core::types::U256,
984        pub support: u8,
985        pub reason: ::std::string::String,
986        pub params: ::ethers_core::types::Bytes,
987        pub v: u8,
988        pub r: [u8; 32],
989        pub s: [u8; 32],
990    }
991    ///Container type for all input parameters for the `clock` function with signature `clock()` and selector `0x91ddadf4`
992    #[derive(
993        Clone,
994        ::ethers_contract::EthCall,
995        ::ethers_contract::EthDisplay,
996        Default,
997        Debug,
998        PartialEq,
999        Eq,
1000        Hash
1001    )]
1002    #[ethcall(name = "clock", abi = "clock()")]
1003    pub struct ClockCall;
1004    ///Container type for all input parameters for the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e`
1005    #[derive(
1006        Clone,
1007        ::ethers_contract::EthCall,
1008        ::ethers_contract::EthDisplay,
1009        Default,
1010        Debug,
1011        PartialEq,
1012        Eq,
1013        Hash
1014    )]
1015    #[ethcall(name = "eip712Domain", abi = "eip712Domain()")]
1016    pub struct Eip712DomainCall;
1017    ///Container type for all input parameters for the `execute` function with signature `execute(address[],uint256[],bytes[],bytes32)` and selector `0x2656227d`
1018    #[derive(
1019        Clone,
1020        ::ethers_contract::EthCall,
1021        ::ethers_contract::EthDisplay,
1022        Default,
1023        Debug,
1024        PartialEq,
1025        Eq,
1026        Hash
1027    )]
1028    #[ethcall(name = "execute", abi = "execute(address[],uint256[],bytes[],bytes32)")]
1029    pub struct ExecuteCall {
1030        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
1031        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
1032        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
1033        pub description_hash: [u8; 32],
1034    }
1035    ///Container type for all input parameters for the `getVotes` function with signature `getVotes(address,uint256)` and selector `0xeb9019d4`
1036    #[derive(
1037        Clone,
1038        ::ethers_contract::EthCall,
1039        ::ethers_contract::EthDisplay,
1040        Default,
1041        Debug,
1042        PartialEq,
1043        Eq,
1044        Hash
1045    )]
1046    #[ethcall(name = "getVotes", abi = "getVotes(address,uint256)")]
1047    pub struct GetVotesCall {
1048        pub account: ::ethers_core::types::Address,
1049        pub timepoint: ::ethers_core::types::U256,
1050    }
1051    ///Container type for all input parameters for the `getVotesWithParams` function with signature `getVotesWithParams(address,uint256,bytes)` and selector `0x9a802a6d`
1052    #[derive(
1053        Clone,
1054        ::ethers_contract::EthCall,
1055        ::ethers_contract::EthDisplay,
1056        Default,
1057        Debug,
1058        PartialEq,
1059        Eq,
1060        Hash
1061    )]
1062    #[ethcall(
1063        name = "getVotesWithParams",
1064        abi = "getVotesWithParams(address,uint256,bytes)"
1065    )]
1066    pub struct GetVotesWithParamsCall {
1067        pub account: ::ethers_core::types::Address,
1068        pub timepoint: ::ethers_core::types::U256,
1069        pub params: ::ethers_core::types::Bytes,
1070    }
1071    ///Container type for all input parameters for the `hasVoted` function with signature `hasVoted(uint256,address)` and selector `0x43859632`
1072    #[derive(
1073        Clone,
1074        ::ethers_contract::EthCall,
1075        ::ethers_contract::EthDisplay,
1076        Default,
1077        Debug,
1078        PartialEq,
1079        Eq,
1080        Hash
1081    )]
1082    #[ethcall(name = "hasVoted", abi = "hasVoted(uint256,address)")]
1083    pub struct HasVotedCall {
1084        pub proposal_id: ::ethers_core::types::U256,
1085        pub account: ::ethers_core::types::Address,
1086    }
1087    ///Container type for all input parameters for the `hashProposal` function with signature `hashProposal(address[],uint256[],bytes[],bytes32)` and selector `0xc59057e4`
1088    #[derive(
1089        Clone,
1090        ::ethers_contract::EthCall,
1091        ::ethers_contract::EthDisplay,
1092        Default,
1093        Debug,
1094        PartialEq,
1095        Eq,
1096        Hash
1097    )]
1098    #[ethcall(
1099        name = "hashProposal",
1100        abi = "hashProposal(address[],uint256[],bytes[],bytes32)"
1101    )]
1102    pub struct HashProposalCall {
1103        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
1104        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
1105        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
1106        pub description_hash: [u8; 32],
1107    }
1108    ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03`
1109    #[derive(
1110        Clone,
1111        ::ethers_contract::EthCall,
1112        ::ethers_contract::EthDisplay,
1113        Default,
1114        Debug,
1115        PartialEq,
1116        Eq,
1117        Hash
1118    )]
1119    #[ethcall(name = "name", abi = "name()")]
1120    pub struct NameCall;
1121    ///Container type for all input parameters for the `onERC1155BatchReceived` function with signature `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)` and selector `0xbc197c81`
1122    #[derive(
1123        Clone,
1124        ::ethers_contract::EthCall,
1125        ::ethers_contract::EthDisplay,
1126        Default,
1127        Debug,
1128        PartialEq,
1129        Eq,
1130        Hash
1131    )]
1132    #[ethcall(
1133        name = "onERC1155BatchReceived",
1134        abi = "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"
1135    )]
1136    pub struct OnERC1155BatchReceivedCall(
1137        pub ::ethers_core::types::Address,
1138        pub ::ethers_core::types::Address,
1139        pub ::std::vec::Vec<::ethers_core::types::U256>,
1140        pub ::std::vec::Vec<::ethers_core::types::U256>,
1141        pub ::ethers_core::types::Bytes,
1142    );
1143    ///Container type for all input parameters for the `onERC1155Received` function with signature `onERC1155Received(address,address,uint256,uint256,bytes)` and selector `0xf23a6e61`
1144    #[derive(
1145        Clone,
1146        ::ethers_contract::EthCall,
1147        ::ethers_contract::EthDisplay,
1148        Default,
1149        Debug,
1150        PartialEq,
1151        Eq,
1152        Hash
1153    )]
1154    #[ethcall(
1155        name = "onERC1155Received",
1156        abi = "onERC1155Received(address,address,uint256,uint256,bytes)"
1157    )]
1158    pub struct OnERC1155ReceivedCall(
1159        pub ::ethers_core::types::Address,
1160        pub ::ethers_core::types::Address,
1161        pub ::ethers_core::types::U256,
1162        pub ::ethers_core::types::U256,
1163        pub ::ethers_core::types::Bytes,
1164    );
1165    ///Container type for all input parameters for the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02`
1166    #[derive(
1167        Clone,
1168        ::ethers_contract::EthCall,
1169        ::ethers_contract::EthDisplay,
1170        Default,
1171        Debug,
1172        PartialEq,
1173        Eq,
1174        Hash
1175    )]
1176    #[ethcall(
1177        name = "onERC721Received",
1178        abi = "onERC721Received(address,address,uint256,bytes)"
1179    )]
1180    pub struct OnERC721ReceivedCall(
1181        pub ::ethers_core::types::Address,
1182        pub ::ethers_core::types::Address,
1183        pub ::ethers_core::types::U256,
1184        pub ::ethers_core::types::Bytes,
1185    );
1186    ///Container type for all input parameters for the `proposalDeadline` function with signature `proposalDeadline(uint256)` and selector `0xc01f9e37`
1187    #[derive(
1188        Clone,
1189        ::ethers_contract::EthCall,
1190        ::ethers_contract::EthDisplay,
1191        Default,
1192        Debug,
1193        PartialEq,
1194        Eq,
1195        Hash
1196    )]
1197    #[ethcall(name = "proposalDeadline", abi = "proposalDeadline(uint256)")]
1198    pub struct ProposalDeadlineCall {
1199        pub proposal_id: ::ethers_core::types::U256,
1200    }
1201    ///Container type for all input parameters for the `proposalProposer` function with signature `proposalProposer(uint256)` and selector `0x143489d0`
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 = "proposalProposer", abi = "proposalProposer(uint256)")]
1213    pub struct ProposalProposerCall {
1214        pub proposal_id: ::ethers_core::types::U256,
1215    }
1216    ///Container type for all input parameters for the `proposalSnapshot` function with signature `proposalSnapshot(uint256)` and selector `0x2d63f693`
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 = "proposalSnapshot", abi = "proposalSnapshot(uint256)")]
1228    pub struct ProposalSnapshotCall {
1229        pub proposal_id: ::ethers_core::types::U256,
1230    }
1231    ///Container type for all input parameters for the `proposalThreshold` function with signature `proposalThreshold()` and selector `0xb58131b0`
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 = "proposalThreshold", abi = "proposalThreshold()")]
1243    pub struct ProposalThresholdCall;
1244    ///Container type for all input parameters for the `propose` function with signature `propose(address[],uint256[],bytes[],string)` and selector `0x7d5e81e2`
1245    #[derive(
1246        Clone,
1247        ::ethers_contract::EthCall,
1248        ::ethers_contract::EthDisplay,
1249        Default,
1250        Debug,
1251        PartialEq,
1252        Eq,
1253        Hash
1254    )]
1255    #[ethcall(name = "propose", abi = "propose(address[],uint256[],bytes[],string)")]
1256    pub struct ProposeCall {
1257        pub targets: ::std::vec::Vec<::ethers_core::types::Address>,
1258        pub values: ::std::vec::Vec<::ethers_core::types::U256>,
1259        pub calldatas: ::std::vec::Vec<::ethers_core::types::Bytes>,
1260        pub description: ::std::string::String,
1261    }
1262    ///Container type for all input parameters for the `quorum` function with signature `quorum(uint256)` and selector `0xf8ce560a`
1263    #[derive(
1264        Clone,
1265        ::ethers_contract::EthCall,
1266        ::ethers_contract::EthDisplay,
1267        Default,
1268        Debug,
1269        PartialEq,
1270        Eq,
1271        Hash
1272    )]
1273    #[ethcall(name = "quorum", abi = "quorum(uint256)")]
1274    pub struct QuorumCall {
1275        pub timepoint: ::ethers_core::types::U256,
1276    }
1277    ///Container type for all input parameters for the `relay` function with signature `relay(address,uint256,bytes)` and selector `0xc28bc2fa`
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 = "relay", abi = "relay(address,uint256,bytes)")]
1289    pub struct RelayCall {
1290        pub target: ::ethers_core::types::Address,
1291        pub value: ::ethers_core::types::U256,
1292        pub data: ::ethers_core::types::Bytes,
1293    }
1294    ///Container type for all input parameters for the `state` function with signature `state(uint256)` and selector `0x3e4f49e6`
1295    #[derive(
1296        Clone,
1297        ::ethers_contract::EthCall,
1298        ::ethers_contract::EthDisplay,
1299        Default,
1300        Debug,
1301        PartialEq,
1302        Eq,
1303        Hash
1304    )]
1305    #[ethcall(name = "state", abi = "state(uint256)")]
1306    pub struct StateCall {
1307        pub proposal_id: ::ethers_core::types::U256,
1308    }
1309    ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
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 = "supportsInterface", abi = "supportsInterface(bytes4)")]
1321    pub struct SupportsInterfaceCall {
1322        pub interface_id: [u8; 4],
1323    }
1324    ///Container type for all input parameters for the `version` function with signature `version()` and selector `0x54fd4d50`
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 = "version", abi = "version()")]
1336    pub struct VersionCall;
1337    ///Container type for all input parameters for the `votingDelay` function with signature `votingDelay()` and selector `0x3932abb1`
1338    #[derive(
1339        Clone,
1340        ::ethers_contract::EthCall,
1341        ::ethers_contract::EthDisplay,
1342        Default,
1343        Debug,
1344        PartialEq,
1345        Eq,
1346        Hash
1347    )]
1348    #[ethcall(name = "votingDelay", abi = "votingDelay()")]
1349    pub struct VotingDelayCall;
1350    ///Container type for all input parameters for the `votingPeriod` function with signature `votingPeriod()` and selector `0x02a251a3`
1351    #[derive(
1352        Clone,
1353        ::ethers_contract::EthCall,
1354        ::ethers_contract::EthDisplay,
1355        Default,
1356        Debug,
1357        PartialEq,
1358        Eq,
1359        Hash
1360    )]
1361    #[ethcall(name = "votingPeriod", abi = "votingPeriod()")]
1362    pub struct VotingPeriodCall;
1363    ///Container type for all of the contract's call
1364    #[derive(Clone, ::ethers_contract::EthAbiType, Debug, PartialEq, Eq, Hash)]
1365    pub enum GovernorCalls {
1366        BallotTypehash(BallotTypehashCall),
1367        ClockMode(ClockModeCall),
1368        CountingMode(CountingModeCall),
1369        ExtendedBallotTypehash(ExtendedBallotTypehashCall),
1370        Cancel(CancelCall),
1371        CastVote(CastVoteCall),
1372        CastVoteBySig(CastVoteBySigCall),
1373        CastVoteWithReason(CastVoteWithReasonCall),
1374        CastVoteWithReasonAndParams(CastVoteWithReasonAndParamsCall),
1375        CastVoteWithReasonAndParamsBySig(CastVoteWithReasonAndParamsBySigCall),
1376        Clock(ClockCall),
1377        Eip712Domain(Eip712DomainCall),
1378        Execute(ExecuteCall),
1379        GetVotes(GetVotesCall),
1380        GetVotesWithParams(GetVotesWithParamsCall),
1381        HasVoted(HasVotedCall),
1382        HashProposal(HashProposalCall),
1383        Name(NameCall),
1384        OnERC1155BatchReceived(OnERC1155BatchReceivedCall),
1385        OnERC1155Received(OnERC1155ReceivedCall),
1386        OnERC721Received(OnERC721ReceivedCall),
1387        ProposalDeadline(ProposalDeadlineCall),
1388        ProposalProposer(ProposalProposerCall),
1389        ProposalSnapshot(ProposalSnapshotCall),
1390        ProposalThreshold(ProposalThresholdCall),
1391        Propose(ProposeCall),
1392        Quorum(QuorumCall),
1393        Relay(RelayCall),
1394        State(StateCall),
1395        SupportsInterface(SupportsInterfaceCall),
1396        Version(VersionCall),
1397        VotingDelay(VotingDelayCall),
1398        VotingPeriod(VotingPeriodCall),
1399    }
1400    impl ::ethers_core::abi::AbiDecode for GovernorCalls {
1401        fn decode(
1402            data: impl AsRef<[u8]>,
1403        ) -> ::core::result::Result<Self, ::ethers_core::abi::AbiError> {
1404            let data = data.as_ref();
1405            if let Ok(decoded)
1406                = <BallotTypehashCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1407                return Ok(Self::BallotTypehash(decoded));
1408            }
1409            if let Ok(decoded)
1410                = <ClockModeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1411                return Ok(Self::ClockMode(decoded));
1412            }
1413            if let Ok(decoded)
1414                = <CountingModeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1415                return Ok(Self::CountingMode(decoded));
1416            }
1417            if let Ok(decoded)
1418                = <ExtendedBallotTypehashCall as ::ethers_core::abi::AbiDecode>::decode(
1419                    data,
1420                ) {
1421                return Ok(Self::ExtendedBallotTypehash(decoded));
1422            }
1423            if let Ok(decoded)
1424                = <CancelCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1425                return Ok(Self::Cancel(decoded));
1426            }
1427            if let Ok(decoded)
1428                = <CastVoteCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1429                return Ok(Self::CastVote(decoded));
1430            }
1431            if let Ok(decoded)
1432                = <CastVoteBySigCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1433                return Ok(Self::CastVoteBySig(decoded));
1434            }
1435            if let Ok(decoded)
1436                = <CastVoteWithReasonCall as ::ethers_core::abi::AbiDecode>::decode(
1437                    data,
1438                ) {
1439                return Ok(Self::CastVoteWithReason(decoded));
1440            }
1441            if let Ok(decoded)
1442                = <CastVoteWithReasonAndParamsCall as ::ethers_core::abi::AbiDecode>::decode(
1443                    data,
1444                ) {
1445                return Ok(Self::CastVoteWithReasonAndParams(decoded));
1446            }
1447            if let Ok(decoded)
1448                = <CastVoteWithReasonAndParamsBySigCall as ::ethers_core::abi::AbiDecode>::decode(
1449                    data,
1450                ) {
1451                return Ok(Self::CastVoteWithReasonAndParamsBySig(decoded));
1452            }
1453            if let Ok(decoded)
1454                = <ClockCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1455                return Ok(Self::Clock(decoded));
1456            }
1457            if let Ok(decoded)
1458                = <Eip712DomainCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1459                return Ok(Self::Eip712Domain(decoded));
1460            }
1461            if let Ok(decoded)
1462                = <ExecuteCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1463                return Ok(Self::Execute(decoded));
1464            }
1465            if let Ok(decoded)
1466                = <GetVotesCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1467                return Ok(Self::GetVotes(decoded));
1468            }
1469            if let Ok(decoded)
1470                = <GetVotesWithParamsCall as ::ethers_core::abi::AbiDecode>::decode(
1471                    data,
1472                ) {
1473                return Ok(Self::GetVotesWithParams(decoded));
1474            }
1475            if let Ok(decoded)
1476                = <HasVotedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1477                return Ok(Self::HasVoted(decoded));
1478            }
1479            if let Ok(decoded)
1480                = <HashProposalCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1481                return Ok(Self::HashProposal(decoded));
1482            }
1483            if let Ok(decoded)
1484                = <NameCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1485                return Ok(Self::Name(decoded));
1486            }
1487            if let Ok(decoded)
1488                = <OnERC1155BatchReceivedCall as ::ethers_core::abi::AbiDecode>::decode(
1489                    data,
1490                ) {
1491                return Ok(Self::OnERC1155BatchReceived(decoded));
1492            }
1493            if let Ok(decoded)
1494                = <OnERC1155ReceivedCall as ::ethers_core::abi::AbiDecode>::decode(
1495                    data,
1496                ) {
1497                return Ok(Self::OnERC1155Received(decoded));
1498            }
1499            if let Ok(decoded)
1500                = <OnERC721ReceivedCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1501                return Ok(Self::OnERC721Received(decoded));
1502            }
1503            if let Ok(decoded)
1504                = <ProposalDeadlineCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1505                return Ok(Self::ProposalDeadline(decoded));
1506            }
1507            if let Ok(decoded)
1508                = <ProposalProposerCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1509                return Ok(Self::ProposalProposer(decoded));
1510            }
1511            if let Ok(decoded)
1512                = <ProposalSnapshotCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1513                return Ok(Self::ProposalSnapshot(decoded));
1514            }
1515            if let Ok(decoded)
1516                = <ProposalThresholdCall as ::ethers_core::abi::AbiDecode>::decode(
1517                    data,
1518                ) {
1519                return Ok(Self::ProposalThreshold(decoded));
1520            }
1521            if let Ok(decoded)
1522                = <ProposeCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1523                return Ok(Self::Propose(decoded));
1524            }
1525            if let Ok(decoded)
1526                = <QuorumCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1527                return Ok(Self::Quorum(decoded));
1528            }
1529            if let Ok(decoded)
1530                = <RelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1531                return Ok(Self::Relay(decoded));
1532            }
1533            if let Ok(decoded)
1534                = <StateCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1535                return Ok(Self::State(decoded));
1536            }
1537            if let Ok(decoded)
1538                = <SupportsInterfaceCall as ::ethers_core::abi::AbiDecode>::decode(
1539                    data,
1540                ) {
1541                return Ok(Self::SupportsInterface(decoded));
1542            }
1543            if let Ok(decoded)
1544                = <VersionCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1545                return Ok(Self::Version(decoded));
1546            }
1547            if let Ok(decoded)
1548                = <VotingDelayCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1549                return Ok(Self::VotingDelay(decoded));
1550            }
1551            if let Ok(decoded)
1552                = <VotingPeriodCall as ::ethers_core::abi::AbiDecode>::decode(data) {
1553                return Ok(Self::VotingPeriod(decoded));
1554            }
1555            Err(::ethers_core::abi::Error::InvalidData.into())
1556        }
1557    }
1558    impl ::ethers_core::abi::AbiEncode for GovernorCalls {
1559        fn encode(self) -> Vec<u8> {
1560            match self {
1561                Self::BallotTypehash(element) => {
1562                    ::ethers_core::abi::AbiEncode::encode(element)
1563                }
1564                Self::ClockMode(element) => {
1565                    ::ethers_core::abi::AbiEncode::encode(element)
1566                }
1567                Self::CountingMode(element) => {
1568                    ::ethers_core::abi::AbiEncode::encode(element)
1569                }
1570                Self::ExtendedBallotTypehash(element) => {
1571                    ::ethers_core::abi::AbiEncode::encode(element)
1572                }
1573                Self::Cancel(element) => ::ethers_core::abi::AbiEncode::encode(element),
1574                Self::CastVote(element) => ::ethers_core::abi::AbiEncode::encode(element),
1575                Self::CastVoteBySig(element) => {
1576                    ::ethers_core::abi::AbiEncode::encode(element)
1577                }
1578                Self::CastVoteWithReason(element) => {
1579                    ::ethers_core::abi::AbiEncode::encode(element)
1580                }
1581                Self::CastVoteWithReasonAndParams(element) => {
1582                    ::ethers_core::abi::AbiEncode::encode(element)
1583                }
1584                Self::CastVoteWithReasonAndParamsBySig(element) => {
1585                    ::ethers_core::abi::AbiEncode::encode(element)
1586                }
1587                Self::Clock(element) => ::ethers_core::abi::AbiEncode::encode(element),
1588                Self::Eip712Domain(element) => {
1589                    ::ethers_core::abi::AbiEncode::encode(element)
1590                }
1591                Self::Execute(element) => ::ethers_core::abi::AbiEncode::encode(element),
1592                Self::GetVotes(element) => ::ethers_core::abi::AbiEncode::encode(element),
1593                Self::GetVotesWithParams(element) => {
1594                    ::ethers_core::abi::AbiEncode::encode(element)
1595                }
1596                Self::HasVoted(element) => ::ethers_core::abi::AbiEncode::encode(element),
1597                Self::HashProposal(element) => {
1598                    ::ethers_core::abi::AbiEncode::encode(element)
1599                }
1600                Self::Name(element) => ::ethers_core::abi::AbiEncode::encode(element),
1601                Self::OnERC1155BatchReceived(element) => {
1602                    ::ethers_core::abi::AbiEncode::encode(element)
1603                }
1604                Self::OnERC1155Received(element) => {
1605                    ::ethers_core::abi::AbiEncode::encode(element)
1606                }
1607                Self::OnERC721Received(element) => {
1608                    ::ethers_core::abi::AbiEncode::encode(element)
1609                }
1610                Self::ProposalDeadline(element) => {
1611                    ::ethers_core::abi::AbiEncode::encode(element)
1612                }
1613                Self::ProposalProposer(element) => {
1614                    ::ethers_core::abi::AbiEncode::encode(element)
1615                }
1616                Self::ProposalSnapshot(element) => {
1617                    ::ethers_core::abi::AbiEncode::encode(element)
1618                }
1619                Self::ProposalThreshold(element) => {
1620                    ::ethers_core::abi::AbiEncode::encode(element)
1621                }
1622                Self::Propose(element) => ::ethers_core::abi::AbiEncode::encode(element),
1623                Self::Quorum(element) => ::ethers_core::abi::AbiEncode::encode(element),
1624                Self::Relay(element) => ::ethers_core::abi::AbiEncode::encode(element),
1625                Self::State(element) => ::ethers_core::abi::AbiEncode::encode(element),
1626                Self::SupportsInterface(element) => {
1627                    ::ethers_core::abi::AbiEncode::encode(element)
1628                }
1629                Self::Version(element) => ::ethers_core::abi::AbiEncode::encode(element),
1630                Self::VotingDelay(element) => {
1631                    ::ethers_core::abi::AbiEncode::encode(element)
1632                }
1633                Self::VotingPeriod(element) => {
1634                    ::ethers_core::abi::AbiEncode::encode(element)
1635                }
1636            }
1637        }
1638    }
1639    impl ::core::fmt::Display for GovernorCalls {
1640        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1641            match self {
1642                Self::BallotTypehash(element) => ::core::fmt::Display::fmt(element, f),
1643                Self::ClockMode(element) => ::core::fmt::Display::fmt(element, f),
1644                Self::CountingMode(element) => ::core::fmt::Display::fmt(element, f),
1645                Self::ExtendedBallotTypehash(element) => {
1646                    ::core::fmt::Display::fmt(element, f)
1647                }
1648                Self::Cancel(element) => ::core::fmt::Display::fmt(element, f),
1649                Self::CastVote(element) => ::core::fmt::Display::fmt(element, f),
1650                Self::CastVoteBySig(element) => ::core::fmt::Display::fmt(element, f),
1651                Self::CastVoteWithReason(element) => {
1652                    ::core::fmt::Display::fmt(element, f)
1653                }
1654                Self::CastVoteWithReasonAndParams(element) => {
1655                    ::core::fmt::Display::fmt(element, f)
1656                }
1657                Self::CastVoteWithReasonAndParamsBySig(element) => {
1658                    ::core::fmt::Display::fmt(element, f)
1659                }
1660                Self::Clock(element) => ::core::fmt::Display::fmt(element, f),
1661                Self::Eip712Domain(element) => ::core::fmt::Display::fmt(element, f),
1662                Self::Execute(element) => ::core::fmt::Display::fmt(element, f),
1663                Self::GetVotes(element) => ::core::fmt::Display::fmt(element, f),
1664                Self::GetVotesWithParams(element) => {
1665                    ::core::fmt::Display::fmt(element, f)
1666                }
1667                Self::HasVoted(element) => ::core::fmt::Display::fmt(element, f),
1668                Self::HashProposal(element) => ::core::fmt::Display::fmt(element, f),
1669                Self::Name(element) => ::core::fmt::Display::fmt(element, f),
1670                Self::OnERC1155BatchReceived(element) => {
1671                    ::core::fmt::Display::fmt(element, f)
1672                }
1673                Self::OnERC1155Received(element) => ::core::fmt::Display::fmt(element, f),
1674                Self::OnERC721Received(element) => ::core::fmt::Display::fmt(element, f),
1675                Self::ProposalDeadline(element) => ::core::fmt::Display::fmt(element, f),
1676                Self::ProposalProposer(element) => ::core::fmt::Display::fmt(element, f),
1677                Self::ProposalSnapshot(element) => ::core::fmt::Display::fmt(element, f),
1678                Self::ProposalThreshold(element) => ::core::fmt::Display::fmt(element, f),
1679                Self::Propose(element) => ::core::fmt::Display::fmt(element, f),
1680                Self::Quorum(element) => ::core::fmt::Display::fmt(element, f),
1681                Self::Relay(element) => ::core::fmt::Display::fmt(element, f),
1682                Self::State(element) => ::core::fmt::Display::fmt(element, f),
1683                Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
1684                Self::Version(element) => ::core::fmt::Display::fmt(element, f),
1685                Self::VotingDelay(element) => ::core::fmt::Display::fmt(element, f),
1686                Self::VotingPeriod(element) => ::core::fmt::Display::fmt(element, f),
1687            }
1688        }
1689    }
1690    impl ::core::convert::From<BallotTypehashCall> for GovernorCalls {
1691        fn from(value: BallotTypehashCall) -> Self {
1692            Self::BallotTypehash(value)
1693        }
1694    }
1695    impl ::core::convert::From<ClockModeCall> for GovernorCalls {
1696        fn from(value: ClockModeCall) -> Self {
1697            Self::ClockMode(value)
1698        }
1699    }
1700    impl ::core::convert::From<CountingModeCall> for GovernorCalls {
1701        fn from(value: CountingModeCall) -> Self {
1702            Self::CountingMode(value)
1703        }
1704    }
1705    impl ::core::convert::From<ExtendedBallotTypehashCall> for GovernorCalls {
1706        fn from(value: ExtendedBallotTypehashCall) -> Self {
1707            Self::ExtendedBallotTypehash(value)
1708        }
1709    }
1710    impl ::core::convert::From<CancelCall> for GovernorCalls {
1711        fn from(value: CancelCall) -> Self {
1712            Self::Cancel(value)
1713        }
1714    }
1715    impl ::core::convert::From<CastVoteCall> for GovernorCalls {
1716        fn from(value: CastVoteCall) -> Self {
1717            Self::CastVote(value)
1718        }
1719    }
1720    impl ::core::convert::From<CastVoteBySigCall> for GovernorCalls {
1721        fn from(value: CastVoteBySigCall) -> Self {
1722            Self::CastVoteBySig(value)
1723        }
1724    }
1725    impl ::core::convert::From<CastVoteWithReasonCall> for GovernorCalls {
1726        fn from(value: CastVoteWithReasonCall) -> Self {
1727            Self::CastVoteWithReason(value)
1728        }
1729    }
1730    impl ::core::convert::From<CastVoteWithReasonAndParamsCall> for GovernorCalls {
1731        fn from(value: CastVoteWithReasonAndParamsCall) -> Self {
1732            Self::CastVoteWithReasonAndParams(value)
1733        }
1734    }
1735    impl ::core::convert::From<CastVoteWithReasonAndParamsBySigCall> for GovernorCalls {
1736        fn from(value: CastVoteWithReasonAndParamsBySigCall) -> Self {
1737            Self::CastVoteWithReasonAndParamsBySig(value)
1738        }
1739    }
1740    impl ::core::convert::From<ClockCall> for GovernorCalls {
1741        fn from(value: ClockCall) -> Self {
1742            Self::Clock(value)
1743        }
1744    }
1745    impl ::core::convert::From<Eip712DomainCall> for GovernorCalls {
1746        fn from(value: Eip712DomainCall) -> Self {
1747            Self::Eip712Domain(value)
1748        }
1749    }
1750    impl ::core::convert::From<ExecuteCall> for GovernorCalls {
1751        fn from(value: ExecuteCall) -> Self {
1752            Self::Execute(value)
1753        }
1754    }
1755    impl ::core::convert::From<GetVotesCall> for GovernorCalls {
1756        fn from(value: GetVotesCall) -> Self {
1757            Self::GetVotes(value)
1758        }
1759    }
1760    impl ::core::convert::From<GetVotesWithParamsCall> for GovernorCalls {
1761        fn from(value: GetVotesWithParamsCall) -> Self {
1762            Self::GetVotesWithParams(value)
1763        }
1764    }
1765    impl ::core::convert::From<HasVotedCall> for GovernorCalls {
1766        fn from(value: HasVotedCall) -> Self {
1767            Self::HasVoted(value)
1768        }
1769    }
1770    impl ::core::convert::From<HashProposalCall> for GovernorCalls {
1771        fn from(value: HashProposalCall) -> Self {
1772            Self::HashProposal(value)
1773        }
1774    }
1775    impl ::core::convert::From<NameCall> for GovernorCalls {
1776        fn from(value: NameCall) -> Self {
1777            Self::Name(value)
1778        }
1779    }
1780    impl ::core::convert::From<OnERC1155BatchReceivedCall> for GovernorCalls {
1781        fn from(value: OnERC1155BatchReceivedCall) -> Self {
1782            Self::OnERC1155BatchReceived(value)
1783        }
1784    }
1785    impl ::core::convert::From<OnERC1155ReceivedCall> for GovernorCalls {
1786        fn from(value: OnERC1155ReceivedCall) -> Self {
1787            Self::OnERC1155Received(value)
1788        }
1789    }
1790    impl ::core::convert::From<OnERC721ReceivedCall> for GovernorCalls {
1791        fn from(value: OnERC721ReceivedCall) -> Self {
1792            Self::OnERC721Received(value)
1793        }
1794    }
1795    impl ::core::convert::From<ProposalDeadlineCall> for GovernorCalls {
1796        fn from(value: ProposalDeadlineCall) -> Self {
1797            Self::ProposalDeadline(value)
1798        }
1799    }
1800    impl ::core::convert::From<ProposalProposerCall> for GovernorCalls {
1801        fn from(value: ProposalProposerCall) -> Self {
1802            Self::ProposalProposer(value)
1803        }
1804    }
1805    impl ::core::convert::From<ProposalSnapshotCall> for GovernorCalls {
1806        fn from(value: ProposalSnapshotCall) -> Self {
1807            Self::ProposalSnapshot(value)
1808        }
1809    }
1810    impl ::core::convert::From<ProposalThresholdCall> for GovernorCalls {
1811        fn from(value: ProposalThresholdCall) -> Self {
1812            Self::ProposalThreshold(value)
1813        }
1814    }
1815    impl ::core::convert::From<ProposeCall> for GovernorCalls {
1816        fn from(value: ProposeCall) -> Self {
1817            Self::Propose(value)
1818        }
1819    }
1820    impl ::core::convert::From<QuorumCall> for GovernorCalls {
1821        fn from(value: QuorumCall) -> Self {
1822            Self::Quorum(value)
1823        }
1824    }
1825    impl ::core::convert::From<RelayCall> for GovernorCalls {
1826        fn from(value: RelayCall) -> Self {
1827            Self::Relay(value)
1828        }
1829    }
1830    impl ::core::convert::From<StateCall> for GovernorCalls {
1831        fn from(value: StateCall) -> Self {
1832            Self::State(value)
1833        }
1834    }
1835    impl ::core::convert::From<SupportsInterfaceCall> for GovernorCalls {
1836        fn from(value: SupportsInterfaceCall) -> Self {
1837            Self::SupportsInterface(value)
1838        }
1839    }
1840    impl ::core::convert::From<VersionCall> for GovernorCalls {
1841        fn from(value: VersionCall) -> Self {
1842            Self::Version(value)
1843        }
1844    }
1845    impl ::core::convert::From<VotingDelayCall> for GovernorCalls {
1846        fn from(value: VotingDelayCall) -> Self {
1847            Self::VotingDelay(value)
1848        }
1849    }
1850    impl ::core::convert::From<VotingPeriodCall> for GovernorCalls {
1851        fn from(value: VotingPeriodCall) -> Self {
1852            Self::VotingPeriod(value)
1853        }
1854    }
1855    ///Container type for all return fields from the `BALLOT_TYPEHASH` function with signature `BALLOT_TYPEHASH()` and selector `0xdeaaa7cc`
1856    #[derive(
1857        Clone,
1858        ::ethers_contract::EthAbiType,
1859        ::ethers_contract::EthAbiCodec,
1860        Default,
1861        Debug,
1862        PartialEq,
1863        Eq,
1864        Hash
1865    )]
1866    pub struct BallotTypehashReturn(pub [u8; 32]);
1867    ///Container type for all return fields from the `CLOCK_MODE` function with signature `CLOCK_MODE()` and selector `0x4bf5d7e9`
1868    #[derive(
1869        Clone,
1870        ::ethers_contract::EthAbiType,
1871        ::ethers_contract::EthAbiCodec,
1872        Default,
1873        Debug,
1874        PartialEq,
1875        Eq,
1876        Hash
1877    )]
1878    pub struct ClockModeReturn(pub ::std::string::String);
1879    ///Container type for all return fields from the `COUNTING_MODE` function with signature `COUNTING_MODE()` and selector `0xdd4e2ba5`
1880    #[derive(
1881        Clone,
1882        ::ethers_contract::EthAbiType,
1883        ::ethers_contract::EthAbiCodec,
1884        Default,
1885        Debug,
1886        PartialEq,
1887        Eq,
1888        Hash
1889    )]
1890    pub struct CountingModeReturn(pub ::std::string::String);
1891    ///Container type for all return fields from the `EXTENDED_BALLOT_TYPEHASH` function with signature `EXTENDED_BALLOT_TYPEHASH()` and selector `0x2fe3e261`
1892    #[derive(
1893        Clone,
1894        ::ethers_contract::EthAbiType,
1895        ::ethers_contract::EthAbiCodec,
1896        Default,
1897        Debug,
1898        PartialEq,
1899        Eq,
1900        Hash
1901    )]
1902    pub struct ExtendedBallotTypehashReturn(pub [u8; 32]);
1903    ///Container type for all return fields from the `cancel` function with signature `cancel(address[],uint256[],bytes[],bytes32)` and selector `0x452115d6`
1904    #[derive(
1905        Clone,
1906        ::ethers_contract::EthAbiType,
1907        ::ethers_contract::EthAbiCodec,
1908        Default,
1909        Debug,
1910        PartialEq,
1911        Eq,
1912        Hash
1913    )]
1914    pub struct CancelReturn(pub ::ethers_core::types::U256);
1915    ///Container type for all return fields from the `castVote` function with signature `castVote(uint256,uint8)` and selector `0x56781388`
1916    #[derive(
1917        Clone,
1918        ::ethers_contract::EthAbiType,
1919        ::ethers_contract::EthAbiCodec,
1920        Default,
1921        Debug,
1922        PartialEq,
1923        Eq,
1924        Hash
1925    )]
1926    pub struct CastVoteReturn(pub ::ethers_core::types::U256);
1927    ///Container type for all return fields from the `castVoteBySig` function with signature `castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)` and selector `0x3bccf4fd`
1928    #[derive(
1929        Clone,
1930        ::ethers_contract::EthAbiType,
1931        ::ethers_contract::EthAbiCodec,
1932        Default,
1933        Debug,
1934        PartialEq,
1935        Eq,
1936        Hash
1937    )]
1938    pub struct CastVoteBySigReturn(pub ::ethers_core::types::U256);
1939    ///Container type for all return fields from the `castVoteWithReason` function with signature `castVoteWithReason(uint256,uint8,string)` and selector `0x7b3c71d3`
1940    #[derive(
1941        Clone,
1942        ::ethers_contract::EthAbiType,
1943        ::ethers_contract::EthAbiCodec,
1944        Default,
1945        Debug,
1946        PartialEq,
1947        Eq,
1948        Hash
1949    )]
1950    pub struct CastVoteWithReasonReturn(pub ::ethers_core::types::U256);
1951    ///Container type for all return fields from the `castVoteWithReasonAndParams` function with signature `castVoteWithReasonAndParams(uint256,uint8,string,bytes)` and selector `0x5f398a14`
1952    #[derive(
1953        Clone,
1954        ::ethers_contract::EthAbiType,
1955        ::ethers_contract::EthAbiCodec,
1956        Default,
1957        Debug,
1958        PartialEq,
1959        Eq,
1960        Hash
1961    )]
1962    pub struct CastVoteWithReasonAndParamsReturn(pub ::ethers_core::types::U256);
1963    ///Container type for all return fields from the `castVoteWithReasonAndParamsBySig` function with signature `castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)` and selector `0x03420181`
1964    #[derive(
1965        Clone,
1966        ::ethers_contract::EthAbiType,
1967        ::ethers_contract::EthAbiCodec,
1968        Default,
1969        Debug,
1970        PartialEq,
1971        Eq,
1972        Hash
1973    )]
1974    pub struct CastVoteWithReasonAndParamsBySigReturn(pub ::ethers_core::types::U256);
1975    ///Container type for all return fields from the `clock` function with signature `clock()` and selector `0x91ddadf4`
1976    #[derive(
1977        Clone,
1978        ::ethers_contract::EthAbiType,
1979        ::ethers_contract::EthAbiCodec,
1980        Default,
1981        Debug,
1982        PartialEq,
1983        Eq,
1984        Hash
1985    )]
1986    pub struct ClockReturn(pub u64);
1987    ///Container type for all return fields from the `eip712Domain` function with signature `eip712Domain()` and selector `0x84b0196e`
1988    #[derive(
1989        Clone,
1990        ::ethers_contract::EthAbiType,
1991        ::ethers_contract::EthAbiCodec,
1992        Default,
1993        Debug,
1994        PartialEq,
1995        Eq,
1996        Hash
1997    )]
1998    pub struct Eip712DomainReturn {
1999        pub fields: [u8; 1],
2000        pub name: ::std::string::String,
2001        pub version: ::std::string::String,
2002        pub chain_id: ::ethers_core::types::U256,
2003        pub verifying_contract: ::ethers_core::types::Address,
2004        pub salt: [u8; 32],
2005        pub extensions: ::std::vec::Vec<::ethers_core::types::U256>,
2006    }
2007    ///Container type for all return fields from the `execute` function with signature `execute(address[],uint256[],bytes[],bytes32)` and selector `0x2656227d`
2008    #[derive(
2009        Clone,
2010        ::ethers_contract::EthAbiType,
2011        ::ethers_contract::EthAbiCodec,
2012        Default,
2013        Debug,
2014        PartialEq,
2015        Eq,
2016        Hash
2017    )]
2018    pub struct ExecuteReturn(pub ::ethers_core::types::U256);
2019    ///Container type for all return fields from the `getVotes` function with signature `getVotes(address,uint256)` and selector `0xeb9019d4`
2020    #[derive(
2021        Clone,
2022        ::ethers_contract::EthAbiType,
2023        ::ethers_contract::EthAbiCodec,
2024        Default,
2025        Debug,
2026        PartialEq,
2027        Eq,
2028        Hash
2029    )]
2030    pub struct GetVotesReturn(pub ::ethers_core::types::U256);
2031    ///Container type for all return fields from the `getVotesWithParams` function with signature `getVotesWithParams(address,uint256,bytes)` and selector `0x9a802a6d`
2032    #[derive(
2033        Clone,
2034        ::ethers_contract::EthAbiType,
2035        ::ethers_contract::EthAbiCodec,
2036        Default,
2037        Debug,
2038        PartialEq,
2039        Eq,
2040        Hash
2041    )]
2042    pub struct GetVotesWithParamsReturn(pub ::ethers_core::types::U256);
2043    ///Container type for all return fields from the `hasVoted` function with signature `hasVoted(uint256,address)` and selector `0x43859632`
2044    #[derive(
2045        Clone,
2046        ::ethers_contract::EthAbiType,
2047        ::ethers_contract::EthAbiCodec,
2048        Default,
2049        Debug,
2050        PartialEq,
2051        Eq,
2052        Hash
2053    )]
2054    pub struct HasVotedReturn(pub bool);
2055    ///Container type for all return fields from the `hashProposal` function with signature `hashProposal(address[],uint256[],bytes[],bytes32)` and selector `0xc59057e4`
2056    #[derive(
2057        Clone,
2058        ::ethers_contract::EthAbiType,
2059        ::ethers_contract::EthAbiCodec,
2060        Default,
2061        Debug,
2062        PartialEq,
2063        Eq,
2064        Hash
2065    )]
2066    pub struct HashProposalReturn(pub ::ethers_core::types::U256);
2067    ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03`
2068    #[derive(
2069        Clone,
2070        ::ethers_contract::EthAbiType,
2071        ::ethers_contract::EthAbiCodec,
2072        Default,
2073        Debug,
2074        PartialEq,
2075        Eq,
2076        Hash
2077    )]
2078    pub struct NameReturn(pub ::std::string::String);
2079    ///Container type for all return fields from the `onERC1155BatchReceived` function with signature `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)` and selector `0xbc197c81`
2080    #[derive(
2081        Clone,
2082        ::ethers_contract::EthAbiType,
2083        ::ethers_contract::EthAbiCodec,
2084        Default,
2085        Debug,
2086        PartialEq,
2087        Eq,
2088        Hash
2089    )]
2090    pub struct OnERC1155BatchReceivedReturn(pub [u8; 4]);
2091    ///Container type for all return fields from the `onERC1155Received` function with signature `onERC1155Received(address,address,uint256,uint256,bytes)` and selector `0xf23a6e61`
2092    #[derive(
2093        Clone,
2094        ::ethers_contract::EthAbiType,
2095        ::ethers_contract::EthAbiCodec,
2096        Default,
2097        Debug,
2098        PartialEq,
2099        Eq,
2100        Hash
2101    )]
2102    pub struct OnERC1155ReceivedReturn(pub [u8; 4]);
2103    ///Container type for all return fields from the `onERC721Received` function with signature `onERC721Received(address,address,uint256,bytes)` and selector `0x150b7a02`
2104    #[derive(
2105        Clone,
2106        ::ethers_contract::EthAbiType,
2107        ::ethers_contract::EthAbiCodec,
2108        Default,
2109        Debug,
2110        PartialEq,
2111        Eq,
2112        Hash
2113    )]
2114    pub struct OnERC721ReceivedReturn(pub [u8; 4]);
2115    ///Container type for all return fields from the `proposalDeadline` function with signature `proposalDeadline(uint256)` and selector `0xc01f9e37`
2116    #[derive(
2117        Clone,
2118        ::ethers_contract::EthAbiType,
2119        ::ethers_contract::EthAbiCodec,
2120        Default,
2121        Debug,
2122        PartialEq,
2123        Eq,
2124        Hash
2125    )]
2126    pub struct ProposalDeadlineReturn(pub ::ethers_core::types::U256);
2127    ///Container type for all return fields from the `proposalProposer` function with signature `proposalProposer(uint256)` and selector `0x143489d0`
2128    #[derive(
2129        Clone,
2130        ::ethers_contract::EthAbiType,
2131        ::ethers_contract::EthAbiCodec,
2132        Default,
2133        Debug,
2134        PartialEq,
2135        Eq,
2136        Hash
2137    )]
2138    pub struct ProposalProposerReturn(pub ::ethers_core::types::Address);
2139    ///Container type for all return fields from the `proposalSnapshot` function with signature `proposalSnapshot(uint256)` and selector `0x2d63f693`
2140    #[derive(
2141        Clone,
2142        ::ethers_contract::EthAbiType,
2143        ::ethers_contract::EthAbiCodec,
2144        Default,
2145        Debug,
2146        PartialEq,
2147        Eq,
2148        Hash
2149    )]
2150    pub struct ProposalSnapshotReturn(pub ::ethers_core::types::U256);
2151    ///Container type for all return fields from the `proposalThreshold` function with signature `proposalThreshold()` and selector `0xb58131b0`
2152    #[derive(
2153        Clone,
2154        ::ethers_contract::EthAbiType,
2155        ::ethers_contract::EthAbiCodec,
2156        Default,
2157        Debug,
2158        PartialEq,
2159        Eq,
2160        Hash
2161    )]
2162    pub struct ProposalThresholdReturn(pub ::ethers_core::types::U256);
2163    ///Container type for all return fields from the `propose` function with signature `propose(address[],uint256[],bytes[],string)` and selector `0x7d5e81e2`
2164    #[derive(
2165        Clone,
2166        ::ethers_contract::EthAbiType,
2167        ::ethers_contract::EthAbiCodec,
2168        Default,
2169        Debug,
2170        PartialEq,
2171        Eq,
2172        Hash
2173    )]
2174    pub struct ProposeReturn(pub ::ethers_core::types::U256);
2175    ///Container type for all return fields from the `quorum` function with signature `quorum(uint256)` and selector `0xf8ce560a`
2176    #[derive(
2177        Clone,
2178        ::ethers_contract::EthAbiType,
2179        ::ethers_contract::EthAbiCodec,
2180        Default,
2181        Debug,
2182        PartialEq,
2183        Eq,
2184        Hash
2185    )]
2186    pub struct QuorumReturn(pub ::ethers_core::types::U256);
2187    ///Container type for all return fields from the `state` function with signature `state(uint256)` and selector `0x3e4f49e6`
2188    #[derive(
2189        Clone,
2190        ::ethers_contract::EthAbiType,
2191        ::ethers_contract::EthAbiCodec,
2192        Default,
2193        Debug,
2194        PartialEq,
2195        Eq,
2196        Hash
2197    )]
2198    pub struct StateReturn(pub u8);
2199    ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
2200    #[derive(
2201        Clone,
2202        ::ethers_contract::EthAbiType,
2203        ::ethers_contract::EthAbiCodec,
2204        Default,
2205        Debug,
2206        PartialEq,
2207        Eq,
2208        Hash
2209    )]
2210    pub struct SupportsInterfaceReturn(pub bool);
2211    ///Container type for all return fields from the `version` function with signature `version()` and selector `0x54fd4d50`
2212    #[derive(
2213        Clone,
2214        ::ethers_contract::EthAbiType,
2215        ::ethers_contract::EthAbiCodec,
2216        Default,
2217        Debug,
2218        PartialEq,
2219        Eq,
2220        Hash
2221    )]
2222    pub struct VersionReturn(pub ::std::string::String);
2223    ///Container type for all return fields from the `votingDelay` function with signature `votingDelay()` and selector `0x3932abb1`
2224    #[derive(
2225        Clone,
2226        ::ethers_contract::EthAbiType,
2227        ::ethers_contract::EthAbiCodec,
2228        Default,
2229        Debug,
2230        PartialEq,
2231        Eq,
2232        Hash
2233    )]
2234    pub struct VotingDelayReturn(pub ::ethers_core::types::U256);
2235    ///Container type for all return fields from the `votingPeriod` function with signature `votingPeriod()` and selector `0x02a251a3`
2236    #[derive(
2237        Clone,
2238        ::ethers_contract::EthAbiType,
2239        ::ethers_contract::EthAbiCodec,
2240        Default,
2241        Debug,
2242        PartialEq,
2243        Eq,
2244        Hash
2245    )]
2246    pub struct VotingPeriodReturn(pub ::ethers_core::types::U256);
2247}