openzeppelin_rs/contracts/
GovernorTimelockControl.rs

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