1#[allow(
10 non_camel_case_types,
11 non_snake_case,
12 clippy::pub_underscore_fields,
13 clippy::style,
14 clippy::empty_structs_with_brackets
15)]
16pub mod Time {
17 use super::*;
18 use alloy::sol_types as alloy_sol_types;
19 #[derive(serde::Serialize, serde::Deserialize)]
20 #[derive(Default, Debug, PartialEq, Eq, Hash)]
21 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
22 #[derive(Clone)]
23 pub struct Timestamp(u64);
24 const _: () = {
25 use alloy::sol_types as alloy_sol_types;
26 #[automatically_derived]
27 impl alloy_sol_types::private::SolTypeValue<Timestamp> for u64 {
28 #[inline]
29 fn stv_to_tokens(
30 &self,
31 ) -> <alloy::sol_types::sol_data::Uint<
32 64,
33 > as alloy_sol_types::SolType>::Token<'_> {
34 alloy_sol_types::private::SolTypeValue::<
35 alloy::sol_types::sol_data::Uint<64>,
36 >::stv_to_tokens(self)
37 }
38 #[inline]
39 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
40 <alloy::sol_types::sol_data::Uint<
41 64,
42 > as alloy_sol_types::SolType>::tokenize(self)
43 .0
44 }
45 #[inline]
46 fn stv_abi_encode_packed_to(
47 &self,
48 out: &mut alloy_sol_types::private::Vec<u8>,
49 ) {
50 <alloy::sol_types::sol_data::Uint<
51 64,
52 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
53 }
54 #[inline]
55 fn stv_abi_packed_encoded_size(&self) -> usize {
56 <alloy::sol_types::sol_data::Uint<
57 64,
58 > as alloy_sol_types::SolType>::abi_encoded_size(self)
59 }
60 }
61 impl Timestamp {
62 pub const NAME: &'static str = stringify!(@ name);
64 #[inline]
66 pub const fn from_underlying(value: u64) -> Self {
67 Self(value)
68 }
69 #[inline]
71 pub const fn into_underlying(self) -> u64 {
72 self.0
73 }
74 #[inline]
77 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
78 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
79 }
80 #[inline]
83 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
84 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
85 }
86 }
87 #[automatically_derived]
88 impl From<u64> for Timestamp {
89 fn from(value: u64) -> Self {
90 Self::from_underlying(value)
91 }
92 }
93 #[automatically_derived]
94 impl From<Timestamp> for u64 {
95 fn from(value: Timestamp) -> Self {
96 value.into_underlying()
97 }
98 }
99 #[automatically_derived]
100 impl alloy_sol_types::SolType for Timestamp {
101 type RustType = u64;
102 type Token<'a> = <alloy::sol_types::sol_data::Uint<
103 64,
104 > as alloy_sol_types::SolType>::Token<'a>;
105 const SOL_NAME: &'static str = Self::NAME;
106 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
107 64,
108 > as alloy_sol_types::SolType>::ENCODED_SIZE;
109 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
110 64,
111 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
112 #[inline]
113 fn valid_token(token: &Self::Token<'_>) -> bool {
114 Self::type_check(token).is_ok()
115 }
116 #[inline]
117 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
118 <alloy::sol_types::sol_data::Uint<
119 64,
120 > as alloy_sol_types::SolType>::type_check(token)
121 }
122 #[inline]
123 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
124 <alloy::sol_types::sol_data::Uint<
125 64,
126 > as alloy_sol_types::SolType>::detokenize(token)
127 }
128 }
129 #[automatically_derived]
130 impl alloy_sol_types::EventTopic for Timestamp {
131 #[inline]
132 fn topic_preimage_length(rust: &Self::RustType) -> usize {
133 <alloy::sol_types::sol_data::Uint<
134 64,
135 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
136 }
137 #[inline]
138 fn encode_topic_preimage(
139 rust: &Self::RustType,
140 out: &mut alloy_sol_types::private::Vec<u8>,
141 ) {
142 <alloy::sol_types::sol_data::Uint<
143 64,
144 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
145 }
146 #[inline]
147 fn encode_topic(
148 rust: &Self::RustType,
149 ) -> alloy_sol_types::abi::token::WordToken {
150 <alloy::sol_types::sol_data::Uint<
151 64,
152 > as alloy_sol_types::EventTopic>::encode_topic(rust)
153 }
154 }
155 };
156 use alloy::contract as alloy_contract;
157 #[inline]
161 pub const fn new<
162 P: alloy_contract::private::Provider<N>,
163 N: alloy_contract::private::Network,
164 >(address: alloy_sol_types::private::Address, __provider: P) -> TimeInstance<P, N> {
165 TimeInstance::<P, N>::new(address, __provider)
166 }
167 #[derive(Clone)]
179 pub struct TimeInstance<P, N = alloy_contract::private::Ethereum> {
180 address: alloy_sol_types::private::Address,
181 provider: P,
182 _network: ::core::marker::PhantomData<N>,
183 }
184 #[automatically_derived]
185 impl<P, N> ::core::fmt::Debug for TimeInstance<P, N> {
186 #[inline]
187 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
188 f.debug_tuple("TimeInstance").field(&self.address).finish()
189 }
190 }
191 impl<
193 P: alloy_contract::private::Provider<N>,
194 N: alloy_contract::private::Network,
195 > TimeInstance<P, N> {
196 #[inline]
200 pub const fn new(
201 address: alloy_sol_types::private::Address,
202 __provider: P,
203 ) -> Self {
204 Self {
205 address,
206 provider: __provider,
207 _network: ::core::marker::PhantomData,
208 }
209 }
210 #[inline]
212 pub const fn address(&self) -> &alloy_sol_types::private::Address {
213 &self.address
214 }
215 #[inline]
217 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
218 self.address = address;
219 }
220 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
222 self.set_address(address);
223 self
224 }
225 #[inline]
227 pub const fn provider(&self) -> &P {
228 &self.provider
229 }
230 }
231 impl<P: ::core::clone::Clone, N> TimeInstance<&P, N> {
232 #[inline]
234 pub fn with_cloned_provider(self) -> TimeInstance<P, N> {
235 TimeInstance {
236 address: self.address,
237 provider: ::core::clone::Clone::clone(&self.provider),
238 _network: ::core::marker::PhantomData,
239 }
240 }
241 }
242 impl<
244 P: alloy_contract::private::Provider<N>,
245 N: alloy_contract::private::Network,
246 > TimeInstance<P, N> {
247 pub fn call_builder<C: alloy_sol_types::SolCall>(
252 &self,
253 call: &C,
254 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
255 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
256 }
257 }
258 impl<
260 P: alloy_contract::private::Provider<N>,
261 N: alloy_contract::private::Network,
262 > TimeInstance<P, N> {
263 pub fn event_filter<E: alloy_sol_types::SolEvent>(
268 &self,
269 ) -> alloy_contract::Event<&P, E, N> {
270 alloy_contract::Event::new_sol(&self.provider, &self.address)
271 }
272 }
273}
274#[allow(
506 non_camel_case_types,
507 non_snake_case,
508 clippy::pub_underscore_fields,
509 clippy::style,
510 clippy::empty_structs_with_brackets
511)]
512pub mod Voting {
513 use super::*;
514 use alloy::sol_types as alloy_sol_types;
515 #[rustfmt::skip]
521 #[allow(clippy::all)]
522 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
523 b"`\x80`@R4\x80\x15`\x0EW__\xFD[Pa\x10Q\x80a\0\x1C_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\0JW_5`\xE0\x1C\x80c$\xC6\xE3\xC4\x14a\0NW\x80c\x99]]\x91\x14a\0~W\x80c\xA7\xD4\xC4s\x14a\0\x9AW\x80c\xE8\x02\x18\"\x14a\0\xB6W[__\xFD[a\0h`\x04\x806\x03\x81\x01\x90a\0c\x91\x90a\t9V[a\0\xD2V[`@Qa\0u\x91\x90a\t|V[`@Q\x80\x91\x03\x90\xF3[a\0\x98`\x04\x806\x03\x81\x01\x90a\0\x93\x91\x90a\t9V[a\x01\x01V[\0[a\0\xB4`\x04\x806\x03\x81\x01\x90a\0\xAF\x91\x90a\t\xC8V[a\x01`V[\0[a\0\xD0`\x04\x806\x03\x81\x01\x90a\0\xCB\x91\x90a\t\xC8V[a\x02\xCEV[\0[_\x81`@Q` \x01a\0\xE4\x91\x90a\x0B\xA9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[\x80``\x01` \x81\x01\x90a\x01\x14\x91\x90a\x0B\xC2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x01JW__\xFD[a\x01]3_a\x03\xA1\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[PV[a\x01\xB1\x82` \x01` \x81\x01\x90a\x01v\x91\x90a\x0B\xEDV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FCannot vote after deadline\0\0\0\0\0\0\x81RPa\x03\xC9V[_a\x01\xBB\x83a\0\xD2V[\x90Pa\x02\x073`@Q\x80`@\x01`@R\x80`\x1D\x81R` \x01\x7FCannot vote if not registered\0\0\0\x81RP_a\x03\xFA\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[_a\x02\x1E\x823`\x02a\x04$\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x14a\x02'W__\xFD[a\x02@\x813`\x01`\x02a\x04\xEA\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[_\x81\x83`@Q` \x01a\x02T\x92\x91\x90a\x0C'V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90Pa\x02\x83\x81`\x01`\x03a\x05\xB0\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x823s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83\x7F\xE4\xAB\xC58\x0F\xA6\x93\x9D\x1D\xC2;^\x90\xB3\xA8\xA0\xE3(\xF0\xF1\xA8*_B\xBF\xB7\x95\xBF\x9Cqu\x05`@Q`@Q\x80\x91\x03\x90\xA4PPPPV[a\x03\x02\x82` \x01` \x81\x01\x90a\x02\xE4\x91\x90a\x0B\xEDV[`@Q\x80``\x01`@R\x80`$\x81R` \x01a\x0F\xFD`$\x919a\x05\xDDV[_a\x03\x0C\x83a\0\xD2V[\x90P_\x81\x83`@Q` \x01a\x03\"\x92\x91\x90a\x0C'V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90Pa\x03m\x81\x85_\x015`@Q\x80``\x01`@R\x80`0\x81R` \x01a\x10!`0\x919`\x03a\x06\x0E\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82\x82\x7F&\x9D:$q$6\xF7}\xF1]c\xDE}#7\xA0`\xC9\x10-\xEEoF\xC9\t\xFB\x0F\xA2\xD5/\x0C`@Q`@Q\x80\x91\x03\x90\xA3PPPPV[a\x03\xC5\x82_\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x1Ba\x063V[PPV[a\x03\xF6a\x03\xF0\x83a\x03\xD8a\x06\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x07\xBF\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82a\x07\xDFV[PPV[a\x04\x1F\x83_\x01\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x1B\x83a\x08\xD0V[PPPV[_2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x04\x93W`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x04\x8A\x90a\x0C\xCEV[`@Q\x80\x91\x03\x90\xFD[\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ T\x90P\x93\x92PPPV[2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05XW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x05O\x90a\x0C\xCEV[`@Q\x80\x91\x03\x90\xFD[\x80\x84_\x01_\x85\x81R` \x01\x90\x81R` \x01_ _\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ \x81\x90UPPPPPV[\x80\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x82\x82Ta\x05\xD1\x91\x90a\r\x19V[\x92PP\x81\x90UPPPPV[a\x06\na\x06\x04\x83a\x05\xECa\x06\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x08\xF3\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82a\x07\xDFV[PPV[a\x06-\x82\x85_\x01_\x86\x81R` \x01\x90\x81R` \x01_ T\x10\x15\x82a\x07\xDFV[PPPPV[_\x82_\x01_\x83\x81R` \x01\x90\x81R` \x01_ T\x03a\x06\x8DW`\x01\x82`\x01\x01Ta\x06]\x91\x90a\r\x19V[\x82_\x01_\x83\x81R` \x01\x90\x81R` \x01_ \x81\x90UP\x81`\x01\x01_\x81T\x80\x92\x91\x90a\x06\x87\x90a\rLV[\x91\x90PUP[PPV[___\x7F\xBA(nM\x89\xDA\xBFK(x\xE8\x96B;\xB1#\xD9\xD5\x14>f&\x06\xFD4;gf\xD7\xBC\xF7!_\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@Qa\x06\xD9\x90a\r\xC0V[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a\x07\x11W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x07\x16V[``\x91P[P\x91P\x91P\x81a\x07[W`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x07R\x90a\x0E\x1EV[`@Q\x80\x91\x03\x90\xFD[` \x81Q\x14a\x07\x9FW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x07\x96\x90a\x0E\x86V[`@Q\x80\x91\x03\x90\xFD[_\x81\x80` \x01\x90Q\x81\x01\x90a\x07\xB4\x91\x90a\x0E\xCEV[\x90P\x80\x93PPPP\x90V[_\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x90P\x92\x91PPV[_\x7F=\xCD\xF6;A\xC1\x03V}r%\x97j\xD9\x14^\x86lz}\xCC\xC6\xC2w\xEA\x86\xAB\xBD&\x8F\xBA\xC9_\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83`@Q` \x01a\x08*\x91\x90a\x0F\x13V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`@Qa\x08F\x91\x90a\x0FtV[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a\x08~W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x08\x83V[``\x91P[PP\x90P\x80\x82\x90a\x08\xCAW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x08\xC1\x91\x90a\x0F\xDCV[`@Q\x80\x91\x03\x90\xFD[PPPPV[a\x08\xEE_\x84_\x01_\x85\x81R` \x01\x90\x81R` \x01_ T\x11\x82a\x07\xDFV[PPPV[_\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x90P\x92\x91PPV[__\xFD[__\xFD[_`\x80\x82\x84\x03\x12\x15a\t0Wa\t/a\t\x17V[[\x81\x90P\x92\x91PPV[_`\x80\x82\x84\x03\x12\x15a\tNWa\tMa\t\x13V[[_a\t[\x84\x82\x85\x01a\t\x1BV[\x91PP\x92\x91PPV[_\x81\x90P\x91\x90PV[a\tv\x81a\tdV[\x82RPPV[_` \x82\x01\x90Pa\t\x8F_\x83\x01\x84a\tmV[\x92\x91PPV[_\x81\x90P\x91\x90PV[a\t\xA7\x81a\t\x95V[\x81\x14a\t\xB1W__\xFD[PV[_\x815\x90Pa\t\xC2\x81a\t\x9EV[\x92\x91PPV[__`\xA0\x83\x85\x03\x12\x15a\t\xDEWa\t\xDDa\t\x13V[[_a\t\xEB\x85\x82\x86\x01a\t\x1BV[\x92PP`\x80a\t\xFC\x85\x82\x86\x01a\t\xB4V[\x91PP\x92P\x92\x90PV[_a\n\x14` \x84\x01\x84a\t\xB4V[\x90P\x92\x91PPV[a\n%\x81a\t\x95V[\x82RPPV[_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[a\nG\x81a\n+V[\x81\x14a\nQW__\xFD[PV[_\x815\x90Pa\nb\x81a\n>V[\x92\x91PPV[_a\nv` \x84\x01\x84a\nTV[\x90P\x92\x91PPV[_\x81\x90P\x91\x90PV[_a\n\xA1a\n\x9Ca\n\x97\x84a\n+V[a\n~V[a\n+V[\x90P\x91\x90PV[a\n\xB1\x81a\n\x87V[\x82RPPV[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[_a\n\xE0\x82a\n\xB7V[\x90P\x91\x90PV[a\n\xF0\x81a\n\xD6V[\x81\x14a\n\xFAW__\xFD[PV[_\x815\x90Pa\x0B\x0B\x81a\n\xE7V[\x92\x91PPV[_a\x0B\x1F` \x84\x01\x84a\n\xFDV[\x90P\x92\x91PPV[a\x0B0\x81a\n\xD6V[\x82RPPV[`\x80\x82\x01a\x0BF_\x83\x01\x83a\n\x06V[a\x0BR_\x85\x01\x82a\n\x1CV[Pa\x0B`` \x83\x01\x83a\nhV[a\x0Bm` \x85\x01\x82a\n\xA8V[Pa\x0B{`@\x83\x01\x83a\n\x06V[a\x0B\x88`@\x85\x01\x82a\n\x1CV[Pa\x0B\x96``\x83\x01\x83a\x0B\x11V[a\x0B\xA3``\x85\x01\x82a\x0B'V[PPPPV[_`\x80\x82\x01\x90Pa\x0B\xBC_\x83\x01\x84a\x0B6V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0B\xD7Wa\x0B\xD6a\t\x13V[[_a\x0B\xE4\x84\x82\x85\x01a\n\xFDV[\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0C\x02Wa\x0C\x01a\t\x13V[[_a\x0C\x0F\x84\x82\x85\x01a\nTV[\x91PP\x92\x91PPV[a\x0C!\x81a\t\x95V[\x82RPPV[_`@\x82\x01\x90Pa\x0C:_\x83\x01\x85a\tmV[a\x0CG` \x83\x01\x84a\x0C\x18V[\x93\x92PPPV[_\x82\x82R` \x82\x01\x90P\x92\x91PPV[\x7FCannot access OwnedCounter owned_\x82\x01R\x7F by another address\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01RPV[_a\x0C\xB8`3\x83a\x0CNV[\x91Pa\x0C\xC3\x82a\x0C^V[`@\x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0C\xE5\x81a\x0C\xACV[\x90P\x91\x90PV[\x7FNH{q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_R`\x11`\x04R`$_\xFD[_a\r#\x82a\t\x95V[\x91Pa\r.\x83a\t\x95V[\x92P\x82\x82\x01\x90P\x80\x82\x11\x15a\rFWa\rEa\x0C\xECV[[\x92\x91PPV[_a\rV\x82a\t\x95V[\x91P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\r\x88Wa\r\x87a\x0C\xECV[[`\x01\x82\x01\x90P\x91\x90PV[_\x81\x90P\x92\x91PPV[PV[_a\r\xAB_\x83a\r\x93V[\x91Pa\r\xB6\x82a\r\x9DV[_\x82\x01\x90P\x91\x90PV[_a\r\xCA\x82a\r\xA0V[\x91P\x81\x90P\x91\x90PV[\x7FPrecompile call failed\0\0\0\0\0\0\0\0\0\0_\x82\x01RPV[_a\x0E\x08`\x16\x83a\x0CNV[\x91Pa\x0E\x13\x82a\r\xD4V[` \x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0E5\x81a\r\xFCV[\x90P\x91\x90PV[\x7FInvalid output length\0\0\0\0\0\0\0\0\0\0\0_\x82\x01RPV[_a\x0Ep`\x15\x83a\x0CNV[\x91Pa\x0E{\x82a\x0E<V[` \x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0E\x9D\x81a\x0EdV[\x90P\x91\x90PV[a\x0E\xAD\x81a\n+V[\x81\x14a\x0E\xB7W__\xFD[PV[_\x81Q\x90Pa\x0E\xC8\x81a\x0E\xA4V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0E\xE3Wa\x0E\xE2a\t\x13V[[_a\x0E\xF0\x84\x82\x85\x01a\x0E\xBAV[\x91PP\x92\x91PPV[_\x81\x15\x15\x90P\x91\x90PV[a\x0F\r\x81a\x0E\xF9V[\x82RPPV[_` \x82\x01\x90Pa\x0F&_\x83\x01\x84a\x0F\x04V[\x92\x91PPV[_\x81Q\x90P\x91\x90PV[\x82\x81\x83^_\x83\x83\x01RPPPV[_a\x0FN\x82a\x0F,V[a\x0FX\x81\x85a\r\x93V[\x93Pa\x0Fh\x81\x85` \x86\x01a\x0F6V[\x80\x84\x01\x91PP\x92\x91PPV[_a\x0F\x7F\x82\x84a\x0FDV[\x91P\x81\x90P\x92\x91PPV[_\x81Q\x90P\x91\x90PV[_`\x1F\x19`\x1F\x83\x01\x16\x90P\x91\x90PV[_a\x0F\xAE\x82a\x0F\x8AV[a\x0F\xB8\x81\x85a\x0CNV[\x93Pa\x0F\xC8\x81\x85` \x86\x01a\x0F6V[a\x0F\xD1\x81a\x0F\x94V[\x84\x01\x91PP\x92\x91PPV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0F\xF4\x81\x84a\x0F\xA4V[\x90P\x92\x91PPV\xFECannot decide winner before deadlineCannot set winner with less votes than threshold",
524 );
525 #[rustfmt::skip]
531 #[allow(clippy::all)]
532 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
533 b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\0JW_5`\xE0\x1C\x80c$\xC6\xE3\xC4\x14a\0NW\x80c\x99]]\x91\x14a\0~W\x80c\xA7\xD4\xC4s\x14a\0\x9AW\x80c\xE8\x02\x18\"\x14a\0\xB6W[__\xFD[a\0h`\x04\x806\x03\x81\x01\x90a\0c\x91\x90a\t9V[a\0\xD2V[`@Qa\0u\x91\x90a\t|V[`@Q\x80\x91\x03\x90\xF3[a\0\x98`\x04\x806\x03\x81\x01\x90a\0\x93\x91\x90a\t9V[a\x01\x01V[\0[a\0\xB4`\x04\x806\x03\x81\x01\x90a\0\xAF\x91\x90a\t\xC8V[a\x01`V[\0[a\0\xD0`\x04\x806\x03\x81\x01\x90a\0\xCB\x91\x90a\t\xC8V[a\x02\xCEV[\0[_\x81`@Q` \x01a\0\xE4\x91\x90a\x0B\xA9V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x91\x90PV[\x80``\x01` \x81\x01\x90a\x01\x14\x91\x90a\x0B\xC2V[s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x163s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x01JW__\xFD[a\x01]3_a\x03\xA1\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[PV[a\x01\xB1\x82` \x01` \x81\x01\x90a\x01v\x91\x90a\x0B\xEDV[`@Q\x80`@\x01`@R\x80`\x1A\x81R` \x01\x7FCannot vote after deadline\0\0\0\0\0\0\x81RPa\x03\xC9V[_a\x01\xBB\x83a\0\xD2V[\x90Pa\x02\x073`@Q\x80`@\x01`@R\x80`\x1D\x81R` \x01\x7FCannot vote if not registered\0\0\0\x81RP_a\x03\xFA\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[_a\x02\x1E\x823`\x02a\x04$\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x14a\x02'W__\xFD[a\x02@\x813`\x01`\x02a\x04\xEA\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[_\x81\x83`@Q` \x01a\x02T\x92\x91\x90a\x0C'V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90Pa\x02\x83\x81`\x01`\x03a\x05\xB0\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x823s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83\x7F\xE4\xAB\xC58\x0F\xA6\x93\x9D\x1D\xC2;^\x90\xB3\xA8\xA0\xE3(\xF0\xF1\xA8*_B\xBF\xB7\x95\xBF\x9Cqu\x05`@Q`@Q\x80\x91\x03\x90\xA4PPPPV[a\x03\x02\x82` \x01` \x81\x01\x90a\x02\xE4\x91\x90a\x0B\xEDV[`@Q\x80``\x01`@R\x80`$\x81R` \x01a\x0F\xFD`$\x919a\x05\xDDV[_a\x03\x0C\x83a\0\xD2V[\x90P_\x81\x83`@Q` \x01a\x03\"\x92\x91\x90a\x0C'V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90Pa\x03m\x81\x85_\x015`@Q\x80``\x01`@R\x80`0\x81R` \x01a\x10!`0\x919`\x03a\x06\x0E\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82\x82\x7F&\x9D:$q$6\xF7}\xF1]c\xDE}#7\xA0`\xC9\x10-\xEEoF\xC9\t\xFB\x0F\xA2\xD5/\x0C`@Q`@Q\x80\x91\x03\x90\xA3PPPPV[a\x03\xC5\x82_\x01\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x1Ba\x063V[PPV[a\x03\xF6a\x03\xF0\x83a\x03\xD8a\x06\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x07\xBF\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82a\x07\xDFV[PPV[a\x04\x1F\x83_\x01\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16_\x1B\x83a\x08\xD0V[PPPV[_2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x04\x93W`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x04\x8A\x90a\x0C\xCEV[`@Q\x80\x91\x03\x90\xFD[\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ T\x90P\x93\x92PPPV[2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x05XW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x05O\x90a\x0C\xCEV[`@Q\x80\x91\x03\x90\xFD[\x80\x84_\x01_\x85\x81R` \x01\x90\x81R` \x01_ _\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ \x81\x90UPPPPPV[\x80\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x82\x82Ta\x05\xD1\x91\x90a\r\x19V[\x92PP\x81\x90UPPPPV[a\x06\na\x06\x04\x83a\x05\xECa\x06\x91V[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16a\x08\xF3\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x82a\x07\xDFV[PPV[a\x06-\x82\x85_\x01_\x86\x81R` \x01\x90\x81R` \x01_ T\x10\x15\x82a\x07\xDFV[PPPPV[_\x82_\x01_\x83\x81R` \x01\x90\x81R` \x01_ T\x03a\x06\x8DW`\x01\x82`\x01\x01Ta\x06]\x91\x90a\r\x19V[\x82_\x01_\x83\x81R` \x01\x90\x81R` \x01_ \x81\x90UP\x81`\x01\x01_\x81T\x80\x92\x91\x90a\x06\x87\x90a\rLV[\x91\x90PUP[PPV[___\x7F\xBA(nM\x89\xDA\xBFK(x\xE8\x96B;\xB1#\xD9\xD5\x14>f&\x06\xFD4;gf\xD7\xBC\xF7!_\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`@Qa\x06\xD9\x90a\r\xC0V[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a\x07\x11W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x07\x16V[``\x91P[P\x91P\x91P\x81a\x07[W`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x07R\x90a\x0E\x1EV[`@Q\x80\x91\x03\x90\xFD[` \x81Q\x14a\x07\x9FW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x07\x96\x90a\x0E\x86V[`@Q\x80\x91\x03\x90\xFD[_\x81\x80` \x01\x90Q\x81\x01\x90a\x07\xB4\x91\x90a\x0E\xCEV[\x90P\x80\x93PPPP\x90V[_\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10\x90P\x92\x91PPV[_\x7F=\xCD\xF6;A\xC1\x03V}r%\x97j\xD9\x14^\x86lz}\xCC\xC6\xC2w\xEA\x86\xAB\xBD&\x8F\xBA\xC9_\x1Cs\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83`@Q` \x01a\x08*\x91\x90a\x0F\x13V[`@Q` \x81\x83\x03\x03\x81R\x90`@R`@Qa\x08F\x91\x90a\x0FtV[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a\x08~W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x08\x83V[``\x91P[PP\x90P\x80\x82\x90a\x08\xCAW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x08\xC1\x91\x90a\x0F\xDCV[`@Q\x80\x91\x03\x90\xFD[PPPPV[a\x08\xEE_\x84_\x01_\x85\x81R` \x01\x90\x81R` \x01_ T\x11\x82a\x07\xDFV[PPPV[_\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x11\x90P\x92\x91PPV[__\xFD[__\xFD[_`\x80\x82\x84\x03\x12\x15a\t0Wa\t/a\t\x17V[[\x81\x90P\x92\x91PPV[_`\x80\x82\x84\x03\x12\x15a\tNWa\tMa\t\x13V[[_a\t[\x84\x82\x85\x01a\t\x1BV[\x91PP\x92\x91PPV[_\x81\x90P\x91\x90PV[a\tv\x81a\tdV[\x82RPPV[_` \x82\x01\x90Pa\t\x8F_\x83\x01\x84a\tmV[\x92\x91PPV[_\x81\x90P\x91\x90PV[a\t\xA7\x81a\t\x95V[\x81\x14a\t\xB1W__\xFD[PV[_\x815\x90Pa\t\xC2\x81a\t\x9EV[\x92\x91PPV[__`\xA0\x83\x85\x03\x12\x15a\t\xDEWa\t\xDDa\t\x13V[[_a\t\xEB\x85\x82\x86\x01a\t\x1BV[\x92PP`\x80a\t\xFC\x85\x82\x86\x01a\t\xB4V[\x91PP\x92P\x92\x90PV[_a\n\x14` \x84\x01\x84a\t\xB4V[\x90P\x92\x91PPV[a\n%\x81a\t\x95V[\x82RPPV[_g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[a\nG\x81a\n+V[\x81\x14a\nQW__\xFD[PV[_\x815\x90Pa\nb\x81a\n>V[\x92\x91PPV[_a\nv` \x84\x01\x84a\nTV[\x90P\x92\x91PPV[_\x81\x90P\x91\x90PV[_a\n\xA1a\n\x9Ca\n\x97\x84a\n+V[a\n~V[a\n+V[\x90P\x91\x90PV[a\n\xB1\x81a\n\x87V[\x82RPPV[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[_a\n\xE0\x82a\n\xB7V[\x90P\x91\x90PV[a\n\xF0\x81a\n\xD6V[\x81\x14a\n\xFAW__\xFD[PV[_\x815\x90Pa\x0B\x0B\x81a\n\xE7V[\x92\x91PPV[_a\x0B\x1F` \x84\x01\x84a\n\xFDV[\x90P\x92\x91PPV[a\x0B0\x81a\n\xD6V[\x82RPPV[`\x80\x82\x01a\x0BF_\x83\x01\x83a\n\x06V[a\x0BR_\x85\x01\x82a\n\x1CV[Pa\x0B`` \x83\x01\x83a\nhV[a\x0Bm` \x85\x01\x82a\n\xA8V[Pa\x0B{`@\x83\x01\x83a\n\x06V[a\x0B\x88`@\x85\x01\x82a\n\x1CV[Pa\x0B\x96``\x83\x01\x83a\x0B\x11V[a\x0B\xA3``\x85\x01\x82a\x0B'V[PPPPV[_`\x80\x82\x01\x90Pa\x0B\xBC_\x83\x01\x84a\x0B6V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0B\xD7Wa\x0B\xD6a\t\x13V[[_a\x0B\xE4\x84\x82\x85\x01a\n\xFDV[\x91PP\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0C\x02Wa\x0C\x01a\t\x13V[[_a\x0C\x0F\x84\x82\x85\x01a\nTV[\x91PP\x92\x91PPV[a\x0C!\x81a\t\x95V[\x82RPPV[_`@\x82\x01\x90Pa\x0C:_\x83\x01\x85a\tmV[a\x0CG` \x83\x01\x84a\x0C\x18V[\x93\x92PPPV[_\x82\x82R` \x82\x01\x90P\x92\x91PPV[\x7FCannot access OwnedCounter owned_\x82\x01R\x7F by another address\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01RPV[_a\x0C\xB8`3\x83a\x0CNV[\x91Pa\x0C\xC3\x82a\x0C^V[`@\x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0C\xE5\x81a\x0C\xACV[\x90P\x91\x90PV[\x7FNH{q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_R`\x11`\x04R`$_\xFD[_a\r#\x82a\t\x95V[\x91Pa\r.\x83a\t\x95V[\x92P\x82\x82\x01\x90P\x80\x82\x11\x15a\rFWa\rEa\x0C\xECV[[\x92\x91PPV[_a\rV\x82a\t\x95V[\x91P\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x03a\r\x88Wa\r\x87a\x0C\xECV[[`\x01\x82\x01\x90P\x91\x90PV[_\x81\x90P\x92\x91PPV[PV[_a\r\xAB_\x83a\r\x93V[\x91Pa\r\xB6\x82a\r\x9DV[_\x82\x01\x90P\x91\x90PV[_a\r\xCA\x82a\r\xA0V[\x91P\x81\x90P\x91\x90PV[\x7FPrecompile call failed\0\0\0\0\0\0\0\0\0\0_\x82\x01RPV[_a\x0E\x08`\x16\x83a\x0CNV[\x91Pa\x0E\x13\x82a\r\xD4V[` \x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0E5\x81a\r\xFCV[\x90P\x91\x90PV[\x7FInvalid output length\0\0\0\0\0\0\0\0\0\0\0_\x82\x01RPV[_a\x0Ep`\x15\x83a\x0CNV[\x91Pa\x0E{\x82a\x0E<V[` \x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0E\x9D\x81a\x0EdV[\x90P\x91\x90PV[a\x0E\xAD\x81a\n+V[\x81\x14a\x0E\xB7W__\xFD[PV[_\x81Q\x90Pa\x0E\xC8\x81a\x0E\xA4V[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x0E\xE3Wa\x0E\xE2a\t\x13V[[_a\x0E\xF0\x84\x82\x85\x01a\x0E\xBAV[\x91PP\x92\x91PPV[_\x81\x15\x15\x90P\x91\x90PV[a\x0F\r\x81a\x0E\xF9V[\x82RPPV[_` \x82\x01\x90Pa\x0F&_\x83\x01\x84a\x0F\x04V[\x92\x91PPV[_\x81Q\x90P\x91\x90PV[\x82\x81\x83^_\x83\x83\x01RPPPV[_a\x0FN\x82a\x0F,V[a\x0FX\x81\x85a\r\x93V[\x93Pa\x0Fh\x81\x85` \x86\x01a\x0F6V[\x80\x84\x01\x91PP\x92\x91PPV[_a\x0F\x7F\x82\x84a\x0FDV[\x91P\x81\x90P\x92\x91PPV[_\x81Q\x90P\x91\x90PV[_`\x1F\x19`\x1F\x83\x01\x16\x90P\x91\x90PV[_a\x0F\xAE\x82a\x0F\x8AV[a\x0F\xB8\x81\x85a\x0CNV[\x93Pa\x0F\xC8\x81\x85` \x86\x01a\x0F6V[a\x0F\xD1\x81a\x0F\x94V[\x84\x01\x91PP\x92\x91PPV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x0F\xF4\x81\x84a\x0F\xA4V[\x90P\x92\x91PPV\xFECannot decide winner before deadlineCannot set winner with less votes than threshold",
534 );
535 #[derive(serde::Serialize, serde::Deserialize)]
536 #[derive(Default, Debug, PartialEq, Eq, Hash)]
537 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
541 #[derive(Clone)]
542 pub struct VotingInfo {
543 #[allow(missing_docs)]
544 pub threshold: alloy::sol_types::private::primitives::aliases::U256,
545 #[allow(missing_docs)]
546 pub deadline: <Time::Timestamp as alloy::sol_types::SolType>::RustType,
547 #[allow(missing_docs)]
548 pub nonce: alloy::sol_types::private::primitives::aliases::U256,
549 #[allow(missing_docs)]
550 pub owner: alloy::sol_types::private::Address,
551 }
552 #[allow(
553 non_camel_case_types,
554 non_snake_case,
555 clippy::pub_underscore_fields,
556 clippy::style
557 )]
558 const _: () = {
559 use alloy::sol_types as alloy_sol_types;
560 #[doc(hidden)]
561 #[allow(dead_code)]
562 type UnderlyingSolTuple<'a> = (
563 alloy::sol_types::sol_data::Uint<256>,
564 Time::Timestamp,
565 alloy::sol_types::sol_data::Uint<256>,
566 alloy::sol_types::sol_data::Address,
567 );
568 #[doc(hidden)]
569 type UnderlyingRustTuple<'a> = (
570 alloy::sol_types::private::primitives::aliases::U256,
571 <Time::Timestamp as alloy::sol_types::SolType>::RustType,
572 alloy::sol_types::private::primitives::aliases::U256,
573 alloy::sol_types::private::Address,
574 );
575 #[cfg(test)]
576 #[allow(dead_code, unreachable_patterns)]
577 fn _type_assertion(
578 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
579 ) {
580 match _t {
581 alloy_sol_types::private::AssertTypeEq::<
582 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
583 >(_) => {}
584 }
585 }
586 #[automatically_derived]
587 #[doc(hidden)]
588 impl ::core::convert::From<VotingInfo> for UnderlyingRustTuple<'_> {
589 fn from(value: VotingInfo) -> Self {
590 (value.threshold, value.deadline, value.nonce, value.owner)
591 }
592 }
593 #[automatically_derived]
594 #[doc(hidden)]
595 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VotingInfo {
596 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
597 Self {
598 threshold: tuple.0,
599 deadline: tuple.1,
600 nonce: tuple.2,
601 owner: tuple.3,
602 }
603 }
604 }
605 #[automatically_derived]
606 impl alloy_sol_types::SolValue for VotingInfo {
607 type SolType = Self;
608 }
609 #[automatically_derived]
610 impl alloy_sol_types::private::SolTypeValue<Self> for VotingInfo {
611 #[inline]
612 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
613 (
614 <alloy::sol_types::sol_data::Uint<
615 256,
616 > as alloy_sol_types::SolType>::tokenize(&self.threshold),
617 <Time::Timestamp as alloy_sol_types::SolType>::tokenize(
618 &self.deadline,
619 ),
620 <alloy::sol_types::sol_data::Uint<
621 256,
622 > as alloy_sol_types::SolType>::tokenize(&self.nonce),
623 <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
624 &self.owner,
625 ),
626 )
627 }
628 #[inline]
629 fn stv_abi_encoded_size(&self) -> usize {
630 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
631 return size;
632 }
633 let tuple = <UnderlyingRustTuple<
634 '_,
635 > as ::core::convert::From<Self>>::from(self.clone());
636 <UnderlyingSolTuple<
637 '_,
638 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
639 }
640 #[inline]
641 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
642 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
643 }
644 #[inline]
645 fn stv_abi_encode_packed_to(
646 &self,
647 out: &mut alloy_sol_types::private::Vec<u8>,
648 ) {
649 let tuple = <UnderlyingRustTuple<
650 '_,
651 > as ::core::convert::From<Self>>::from(self.clone());
652 <UnderlyingSolTuple<
653 '_,
654 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
655 }
656 #[inline]
657 fn stv_abi_packed_encoded_size(&self) -> usize {
658 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
659 return size;
660 }
661 let tuple = <UnderlyingRustTuple<
662 '_,
663 > as ::core::convert::From<Self>>::from(self.clone());
664 <UnderlyingSolTuple<
665 '_,
666 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
667 }
668 }
669 #[automatically_derived]
670 impl alloy_sol_types::SolType for VotingInfo {
671 type RustType = Self;
672 type Token<'a> = <UnderlyingSolTuple<
673 'a,
674 > as alloy_sol_types::SolType>::Token<'a>;
675 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
676 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
677 '_,
678 > as alloy_sol_types::SolType>::ENCODED_SIZE;
679 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
680 '_,
681 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
682 #[inline]
683 fn valid_token(token: &Self::Token<'_>) -> bool {
684 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
685 }
686 #[inline]
687 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
688 let tuple = <UnderlyingSolTuple<
689 '_,
690 > as alloy_sol_types::SolType>::detokenize(token);
691 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
692 }
693 }
694 #[automatically_derived]
695 impl alloy_sol_types::SolStruct for VotingInfo {
696 const NAME: &'static str = "VotingInfo";
697 #[inline]
698 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
699 alloy_sol_types::private::Cow::Borrowed(
700 "VotingInfo(uint256 threshold,uint64 deadline,uint256 nonce,address owner)",
701 )
702 }
703 #[inline]
704 fn eip712_components() -> alloy_sol_types::private::Vec<
705 alloy_sol_types::private::Cow<'static, str>,
706 > {
707 alloy_sol_types::private::Vec::new()
708 }
709 #[inline]
710 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
711 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
712 }
713 #[inline]
714 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
715 [
716 <alloy::sol_types::sol_data::Uint<
717 256,
718 > as alloy_sol_types::SolType>::eip712_data_word(&self.threshold)
719 .0,
720 <Time::Timestamp as alloy_sol_types::SolType>::eip712_data_word(
721 &self.deadline,
722 )
723 .0,
724 <alloy::sol_types::sol_data::Uint<
725 256,
726 > as alloy_sol_types::SolType>::eip712_data_word(&self.nonce)
727 .0,
728 <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
729 &self.owner,
730 )
731 .0,
732 ]
733 .concat()
734 }
735 }
736 #[automatically_derived]
737 impl alloy_sol_types::EventTopic for VotingInfo {
738 #[inline]
739 fn topic_preimage_length(rust: &Self::RustType) -> usize {
740 0usize
741 + <alloy::sol_types::sol_data::Uint<
742 256,
743 > as alloy_sol_types::EventTopic>::topic_preimage_length(
744 &rust.threshold,
745 )
746 + <Time::Timestamp as alloy_sol_types::EventTopic>::topic_preimage_length(
747 &rust.deadline,
748 )
749 + <alloy::sol_types::sol_data::Uint<
750 256,
751 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce)
752 + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
753 &rust.owner,
754 )
755 }
756 #[inline]
757 fn encode_topic_preimage(
758 rust: &Self::RustType,
759 out: &mut alloy_sol_types::private::Vec<u8>,
760 ) {
761 out.reserve(
762 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
763 );
764 <alloy::sol_types::sol_data::Uint<
765 256,
766 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
767 &rust.threshold,
768 out,
769 );
770 <Time::Timestamp as alloy_sol_types::EventTopic>::encode_topic_preimage(
771 &rust.deadline,
772 out,
773 );
774 <alloy::sol_types::sol_data::Uint<
775 256,
776 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
777 &rust.nonce,
778 out,
779 );
780 <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
781 &rust.owner,
782 out,
783 );
784 }
785 #[inline]
786 fn encode_topic(
787 rust: &Self::RustType,
788 ) -> alloy_sol_types::abi::token::WordToken {
789 let mut out = alloy_sol_types::private::Vec::new();
790 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
791 rust,
792 &mut out,
793 );
794 alloy_sol_types::abi::token::WordToken(
795 alloy_sol_types::private::keccak256(out),
796 )
797 }
798 }
799 };
800 #[derive(serde::Serialize, serde::Deserialize)]
801 #[derive(Default, Debug, PartialEq, Eq, Hash)]
802 #[allow(
807 non_camel_case_types,
808 non_snake_case,
809 clippy::pub_underscore_fields,
810 clippy::style
811 )]
812 #[derive(Clone)]
813 pub struct Voted {
814 #[allow(missing_docs)]
815 pub votingId: alloy::sol_types::private::FixedBytes<32>,
816 #[allow(missing_docs)]
817 pub voter: alloy::sol_types::private::Address,
818 #[allow(missing_docs)]
819 pub choice: alloy::sol_types::private::primitives::aliases::U256,
820 }
821 #[allow(
822 non_camel_case_types,
823 non_snake_case,
824 clippy::pub_underscore_fields,
825 clippy::style
826 )]
827 const _: () = {
828 use alloy::sol_types as alloy_sol_types;
829 #[automatically_derived]
830 impl alloy_sol_types::SolEvent for Voted {
831 type DataTuple<'a> = ();
832 type DataToken<'a> = <Self::DataTuple<
833 'a,
834 > as alloy_sol_types::SolType>::Token<'a>;
835 type TopicList = (
836 alloy_sol_types::sol_data::FixedBytes<32>,
837 alloy::sol_types::sol_data::FixedBytes<32>,
838 alloy::sol_types::sol_data::Address,
839 alloy::sol_types::sol_data::Uint<256>,
840 );
841 const SIGNATURE: &'static str = "Voted(bytes32,address,uint256)";
842 const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
843 228u8, 171u8, 197u8, 56u8, 15u8, 166u8, 147u8, 157u8, 29u8, 194u8, 59u8,
844 94u8, 144u8, 179u8, 168u8, 160u8, 227u8, 40u8, 240u8, 241u8, 168u8, 42u8,
845 95u8, 66u8, 191u8, 183u8, 149u8, 191u8, 156u8, 113u8, 117u8, 5u8,
846 ]);
847 const ANONYMOUS: bool = false;
848 #[allow(unused_variables)]
849 #[inline]
850 fn new(
851 topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
852 data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
853 ) -> Self {
854 Self {
855 votingId: topics.1,
856 voter: topics.2,
857 choice: topics.3,
858 }
859 }
860 #[inline]
861 fn check_signature(
862 topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
863 ) -> alloy_sol_types::Result<()> {
864 if topics.0 != Self::SIGNATURE_HASH {
865 return Err(
866 alloy_sol_types::Error::invalid_event_signature_hash(
867 Self::SIGNATURE,
868 topics.0,
869 Self::SIGNATURE_HASH,
870 ),
871 );
872 }
873 Ok(())
874 }
875 #[inline]
876 fn tokenize_body(&self) -> Self::DataToken<'_> {
877 ()
878 }
879 #[inline]
880 fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
881 (
882 Self::SIGNATURE_HASH.into(),
883 self.votingId.clone(),
884 self.voter.clone(),
885 self.choice.clone(),
886 )
887 }
888 #[inline]
889 fn encode_topics_raw(
890 &self,
891 out: &mut [alloy_sol_types::abi::token::WordToken],
892 ) -> alloy_sol_types::Result<()> {
893 if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
894 return Err(alloy_sol_types::Error::Overrun);
895 }
896 out[0usize] = alloy_sol_types::abi::token::WordToken(
897 Self::SIGNATURE_HASH,
898 );
899 out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
900 32,
901 > as alloy_sol_types::EventTopic>::encode_topic(&self.votingId);
902 out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
903 &self.voter,
904 );
905 out[3usize] = <alloy::sol_types::sol_data::Uint<
906 256,
907 > as alloy_sol_types::EventTopic>::encode_topic(&self.choice);
908 Ok(())
909 }
910 }
911 #[automatically_derived]
912 impl alloy_sol_types::private::IntoLogData for Voted {
913 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
914 From::from(self)
915 }
916 fn into_log_data(self) -> alloy_sol_types::private::LogData {
917 From::from(&self)
918 }
919 }
920 #[automatically_derived]
921 impl From<&Voted> for alloy_sol_types::private::LogData {
922 #[inline]
923 fn from(this: &Voted) -> alloy_sol_types::private::LogData {
924 alloy_sol_types::SolEvent::encode_log_data(this)
925 }
926 }
927 };
928 #[derive(serde::Serialize, serde::Deserialize)]
929 #[derive(Default, Debug, PartialEq, Eq, Hash)]
930 #[allow(
935 non_camel_case_types,
936 non_snake_case,
937 clippy::pub_underscore_fields,
938 clippy::style
939 )]
940 #[derive(Clone)]
941 pub struct Winner {
942 #[allow(missing_docs)]
943 pub votingId: alloy::sol_types::private::FixedBytes<32>,
944 #[allow(missing_docs)]
945 pub choice: alloy::sol_types::private::primitives::aliases::U256,
946 }
947 #[allow(
948 non_camel_case_types,
949 non_snake_case,
950 clippy::pub_underscore_fields,
951 clippy::style
952 )]
953 const _: () = {
954 use alloy::sol_types as alloy_sol_types;
955 #[automatically_derived]
956 impl alloy_sol_types::SolEvent for Winner {
957 type DataTuple<'a> = ();
958 type DataToken<'a> = <Self::DataTuple<
959 'a,
960 > as alloy_sol_types::SolType>::Token<'a>;
961 type TopicList = (
962 alloy_sol_types::sol_data::FixedBytes<32>,
963 alloy::sol_types::sol_data::FixedBytes<32>,
964 alloy::sol_types::sol_data::Uint<256>,
965 );
966 const SIGNATURE: &'static str = "Winner(bytes32,uint256)";
967 const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
968 38u8, 157u8, 58u8, 36u8, 113u8, 36u8, 54u8, 247u8, 125u8, 241u8, 93u8,
969 99u8, 222u8, 125u8, 35u8, 55u8, 160u8, 96u8, 201u8, 16u8, 45u8, 238u8,
970 111u8, 70u8, 201u8, 9u8, 251u8, 15u8, 162u8, 213u8, 47u8, 12u8,
971 ]);
972 const ANONYMOUS: bool = false;
973 #[allow(unused_variables)]
974 #[inline]
975 fn new(
976 topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
977 data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
978 ) -> Self {
979 Self {
980 votingId: topics.1,
981 choice: topics.2,
982 }
983 }
984 #[inline]
985 fn check_signature(
986 topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
987 ) -> alloy_sol_types::Result<()> {
988 if topics.0 != Self::SIGNATURE_HASH {
989 return Err(
990 alloy_sol_types::Error::invalid_event_signature_hash(
991 Self::SIGNATURE,
992 topics.0,
993 Self::SIGNATURE_HASH,
994 ),
995 );
996 }
997 Ok(())
998 }
999 #[inline]
1000 fn tokenize_body(&self) -> Self::DataToken<'_> {
1001 ()
1002 }
1003 #[inline]
1004 fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
1005 (Self::SIGNATURE_HASH.into(), self.votingId.clone(), self.choice.clone())
1006 }
1007 #[inline]
1008 fn encode_topics_raw(
1009 &self,
1010 out: &mut [alloy_sol_types::abi::token::WordToken],
1011 ) -> alloy_sol_types::Result<()> {
1012 if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
1013 return Err(alloy_sol_types::Error::Overrun);
1014 }
1015 out[0usize] = alloy_sol_types::abi::token::WordToken(
1016 Self::SIGNATURE_HASH,
1017 );
1018 out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
1019 32,
1020 > as alloy_sol_types::EventTopic>::encode_topic(&self.votingId);
1021 out[2usize] = <alloy::sol_types::sol_data::Uint<
1022 256,
1023 > as alloy_sol_types::EventTopic>::encode_topic(&self.choice);
1024 Ok(())
1025 }
1026 }
1027 #[automatically_derived]
1028 impl alloy_sol_types::private::IntoLogData for Winner {
1029 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
1030 From::from(self)
1031 }
1032 fn into_log_data(self) -> alloy_sol_types::private::LogData {
1033 From::from(&self)
1034 }
1035 }
1036 #[automatically_derived]
1037 impl From<&Winner> for alloy_sol_types::private::LogData {
1038 #[inline]
1039 fn from(this: &Winner) -> alloy_sol_types::private::LogData {
1040 alloy_sol_types::SolEvent::encode_log_data(this)
1041 }
1042 }
1043 };
1044 #[derive(serde::Serialize, serde::Deserialize)]
1045 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1046 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1051 #[derive(Clone)]
1052 pub struct registerCall {
1053 #[allow(missing_docs)]
1054 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1055 }
1056 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1058 #[derive(Clone)]
1059 pub struct registerReturn {}
1060 #[allow(
1061 non_camel_case_types,
1062 non_snake_case,
1063 clippy::pub_underscore_fields,
1064 clippy::style
1065 )]
1066 const _: () = {
1067 use alloy::sol_types as alloy_sol_types;
1068 {
1069 #[doc(hidden)]
1070 #[allow(dead_code)]
1071 type UnderlyingSolTuple<'a> = (VotingInfo,);
1072 #[doc(hidden)]
1073 type UnderlyingRustTuple<'a> = (
1074 <VotingInfo as alloy::sol_types::SolType>::RustType,
1075 );
1076 #[cfg(test)]
1077 #[allow(dead_code, unreachable_patterns)]
1078 fn _type_assertion(
1079 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1080 ) {
1081 match _t {
1082 alloy_sol_types::private::AssertTypeEq::<
1083 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1084 >(_) => {}
1085 }
1086 }
1087 #[automatically_derived]
1088 #[doc(hidden)]
1089 impl ::core::convert::From<registerCall> for UnderlyingRustTuple<'_> {
1090 fn from(value: registerCall) -> Self {
1091 (value.v,)
1092 }
1093 }
1094 #[automatically_derived]
1095 #[doc(hidden)]
1096 impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerCall {
1097 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1098 Self { v: tuple.0 }
1099 }
1100 }
1101 }
1102 {
1103 #[doc(hidden)]
1104 #[allow(dead_code)]
1105 type UnderlyingSolTuple<'a> = ();
1106 #[doc(hidden)]
1107 type UnderlyingRustTuple<'a> = ();
1108 #[cfg(test)]
1109 #[allow(dead_code, unreachable_patterns)]
1110 fn _type_assertion(
1111 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1112 ) {
1113 match _t {
1114 alloy_sol_types::private::AssertTypeEq::<
1115 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1116 >(_) => {}
1117 }
1118 }
1119 #[automatically_derived]
1120 #[doc(hidden)]
1121 impl ::core::convert::From<registerReturn> for UnderlyingRustTuple<'_> {
1122 fn from(value: registerReturn) -> Self {
1123 ()
1124 }
1125 }
1126 #[automatically_derived]
1127 #[doc(hidden)]
1128 impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerReturn {
1129 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1130 Self {}
1131 }
1132 }
1133 }
1134 impl registerReturn {
1135 fn _tokenize(
1136 &self,
1137 ) -> <registerCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
1138 ()
1139 }
1140 }
1141 #[automatically_derived]
1142 impl alloy_sol_types::SolCall for registerCall {
1143 type Parameters<'a> = (VotingInfo,);
1144 type Token<'a> = <Self::Parameters<
1145 'a,
1146 > as alloy_sol_types::SolType>::Token<'a>;
1147 type Return = registerReturn;
1148 type ReturnTuple<'a> = ();
1149 type ReturnToken<'a> = <Self::ReturnTuple<
1150 'a,
1151 > as alloy_sol_types::SolType>::Token<'a>;
1152 const SIGNATURE: &'static str = "register((uint256,uint64,uint256,address))";
1153 const SELECTOR: [u8; 4] = [153u8, 93u8, 93u8, 145u8];
1154 #[inline]
1155 fn new<'a>(
1156 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1157 ) -> Self {
1158 tuple.into()
1159 }
1160 #[inline]
1161 fn tokenize(&self) -> Self::Token<'_> {
1162 (<VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),)
1163 }
1164 #[inline]
1165 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1166 registerReturn::_tokenize(ret)
1167 }
1168 #[inline]
1169 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1170 <Self::ReturnTuple<
1171 '_,
1172 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1173 .map(Into::into)
1174 }
1175 #[inline]
1176 fn abi_decode_returns_validate(
1177 data: &[u8],
1178 ) -> alloy_sol_types::Result<Self::Return> {
1179 <Self::ReturnTuple<
1180 '_,
1181 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1182 .map(Into::into)
1183 }
1184 }
1185 };
1186 #[derive(serde::Serialize, serde::Deserialize)]
1187 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1188 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1193 #[derive(Clone)]
1194 pub struct setWinnerCall {
1195 #[allow(missing_docs)]
1196 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1197 #[allow(missing_docs)]
1198 pub choice: alloy::sol_types::private::primitives::aliases::U256,
1199 }
1200 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1202 #[derive(Clone)]
1203 pub struct setWinnerReturn {}
1204 #[allow(
1205 non_camel_case_types,
1206 non_snake_case,
1207 clippy::pub_underscore_fields,
1208 clippy::style
1209 )]
1210 const _: () = {
1211 use alloy::sol_types as alloy_sol_types;
1212 {
1213 #[doc(hidden)]
1214 #[allow(dead_code)]
1215 type UnderlyingSolTuple<'a> = (
1216 VotingInfo,
1217 alloy::sol_types::sol_data::Uint<256>,
1218 );
1219 #[doc(hidden)]
1220 type UnderlyingRustTuple<'a> = (
1221 <VotingInfo as alloy::sol_types::SolType>::RustType,
1222 alloy::sol_types::private::primitives::aliases::U256,
1223 );
1224 #[cfg(test)]
1225 #[allow(dead_code, unreachable_patterns)]
1226 fn _type_assertion(
1227 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1228 ) {
1229 match _t {
1230 alloy_sol_types::private::AssertTypeEq::<
1231 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1232 >(_) => {}
1233 }
1234 }
1235 #[automatically_derived]
1236 #[doc(hidden)]
1237 impl ::core::convert::From<setWinnerCall> for UnderlyingRustTuple<'_> {
1238 fn from(value: setWinnerCall) -> Self {
1239 (value.v, value.choice)
1240 }
1241 }
1242 #[automatically_derived]
1243 #[doc(hidden)]
1244 impl ::core::convert::From<UnderlyingRustTuple<'_>> for setWinnerCall {
1245 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1246 Self {
1247 v: tuple.0,
1248 choice: tuple.1,
1249 }
1250 }
1251 }
1252 }
1253 {
1254 #[doc(hidden)]
1255 #[allow(dead_code)]
1256 type UnderlyingSolTuple<'a> = ();
1257 #[doc(hidden)]
1258 type UnderlyingRustTuple<'a> = ();
1259 #[cfg(test)]
1260 #[allow(dead_code, unreachable_patterns)]
1261 fn _type_assertion(
1262 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1263 ) {
1264 match _t {
1265 alloy_sol_types::private::AssertTypeEq::<
1266 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1267 >(_) => {}
1268 }
1269 }
1270 #[automatically_derived]
1271 #[doc(hidden)]
1272 impl ::core::convert::From<setWinnerReturn> for UnderlyingRustTuple<'_> {
1273 fn from(value: setWinnerReturn) -> Self {
1274 ()
1275 }
1276 }
1277 #[automatically_derived]
1278 #[doc(hidden)]
1279 impl ::core::convert::From<UnderlyingRustTuple<'_>> for setWinnerReturn {
1280 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1281 Self {}
1282 }
1283 }
1284 }
1285 impl setWinnerReturn {
1286 fn _tokenize(
1287 &self,
1288 ) -> <setWinnerCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
1289 ()
1290 }
1291 }
1292 #[automatically_derived]
1293 impl alloy_sol_types::SolCall for setWinnerCall {
1294 type Parameters<'a> = (VotingInfo, alloy::sol_types::sol_data::Uint<256>);
1295 type Token<'a> = <Self::Parameters<
1296 'a,
1297 > as alloy_sol_types::SolType>::Token<'a>;
1298 type Return = setWinnerReturn;
1299 type ReturnTuple<'a> = ();
1300 type ReturnToken<'a> = <Self::ReturnTuple<
1301 'a,
1302 > as alloy_sol_types::SolType>::Token<'a>;
1303 const SIGNATURE: &'static str = "setWinner((uint256,uint64,uint256,address),uint256)";
1304 const SELECTOR: [u8; 4] = [232u8, 2u8, 24u8, 34u8];
1305 #[inline]
1306 fn new<'a>(
1307 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1308 ) -> Self {
1309 tuple.into()
1310 }
1311 #[inline]
1312 fn tokenize(&self) -> Self::Token<'_> {
1313 (
1314 <VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),
1315 <alloy::sol_types::sol_data::Uint<
1316 256,
1317 > as alloy_sol_types::SolType>::tokenize(&self.choice),
1318 )
1319 }
1320 #[inline]
1321 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1322 setWinnerReturn::_tokenize(ret)
1323 }
1324 #[inline]
1325 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1326 <Self::ReturnTuple<
1327 '_,
1328 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1329 .map(Into::into)
1330 }
1331 #[inline]
1332 fn abi_decode_returns_validate(
1333 data: &[u8],
1334 ) -> alloy_sol_types::Result<Self::Return> {
1335 <Self::ReturnTuple<
1336 '_,
1337 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1338 .map(Into::into)
1339 }
1340 }
1341 };
1342 #[derive(serde::Serialize, serde::Deserialize)]
1343 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1344 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1349 #[derive(Clone)]
1350 pub struct voteCall {
1351 #[allow(missing_docs)]
1352 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1353 #[allow(missing_docs)]
1354 pub choice: alloy::sol_types::private::primitives::aliases::U256,
1355 }
1356 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1358 #[derive(Clone)]
1359 pub struct voteReturn {}
1360 #[allow(
1361 non_camel_case_types,
1362 non_snake_case,
1363 clippy::pub_underscore_fields,
1364 clippy::style
1365 )]
1366 const _: () = {
1367 use alloy::sol_types as alloy_sol_types;
1368 {
1369 #[doc(hidden)]
1370 #[allow(dead_code)]
1371 type UnderlyingSolTuple<'a> = (
1372 VotingInfo,
1373 alloy::sol_types::sol_data::Uint<256>,
1374 );
1375 #[doc(hidden)]
1376 type UnderlyingRustTuple<'a> = (
1377 <VotingInfo as alloy::sol_types::SolType>::RustType,
1378 alloy::sol_types::private::primitives::aliases::U256,
1379 );
1380 #[cfg(test)]
1381 #[allow(dead_code, unreachable_patterns)]
1382 fn _type_assertion(
1383 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1384 ) {
1385 match _t {
1386 alloy_sol_types::private::AssertTypeEq::<
1387 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1388 >(_) => {}
1389 }
1390 }
1391 #[automatically_derived]
1392 #[doc(hidden)]
1393 impl ::core::convert::From<voteCall> for UnderlyingRustTuple<'_> {
1394 fn from(value: voteCall) -> Self {
1395 (value.v, value.choice)
1396 }
1397 }
1398 #[automatically_derived]
1399 #[doc(hidden)]
1400 impl ::core::convert::From<UnderlyingRustTuple<'_>> for voteCall {
1401 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1402 Self {
1403 v: tuple.0,
1404 choice: tuple.1,
1405 }
1406 }
1407 }
1408 }
1409 {
1410 #[doc(hidden)]
1411 #[allow(dead_code)]
1412 type UnderlyingSolTuple<'a> = ();
1413 #[doc(hidden)]
1414 type UnderlyingRustTuple<'a> = ();
1415 #[cfg(test)]
1416 #[allow(dead_code, unreachable_patterns)]
1417 fn _type_assertion(
1418 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1419 ) {
1420 match _t {
1421 alloy_sol_types::private::AssertTypeEq::<
1422 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1423 >(_) => {}
1424 }
1425 }
1426 #[automatically_derived]
1427 #[doc(hidden)]
1428 impl ::core::convert::From<voteReturn> for UnderlyingRustTuple<'_> {
1429 fn from(value: voteReturn) -> Self {
1430 ()
1431 }
1432 }
1433 #[automatically_derived]
1434 #[doc(hidden)]
1435 impl ::core::convert::From<UnderlyingRustTuple<'_>> for voteReturn {
1436 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1437 Self {}
1438 }
1439 }
1440 }
1441 impl voteReturn {
1442 fn _tokenize(
1443 &self,
1444 ) -> <voteCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
1445 ()
1446 }
1447 }
1448 #[automatically_derived]
1449 impl alloy_sol_types::SolCall for voteCall {
1450 type Parameters<'a> = (VotingInfo, alloy::sol_types::sol_data::Uint<256>);
1451 type Token<'a> = <Self::Parameters<
1452 'a,
1453 > as alloy_sol_types::SolType>::Token<'a>;
1454 type Return = voteReturn;
1455 type ReturnTuple<'a> = ();
1456 type ReturnToken<'a> = <Self::ReturnTuple<
1457 'a,
1458 > as alloy_sol_types::SolType>::Token<'a>;
1459 const SIGNATURE: &'static str = "vote((uint256,uint64,uint256,address),uint256)";
1460 const SELECTOR: [u8; 4] = [167u8, 212u8, 196u8, 115u8];
1461 #[inline]
1462 fn new<'a>(
1463 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1464 ) -> Self {
1465 tuple.into()
1466 }
1467 #[inline]
1468 fn tokenize(&self) -> Self::Token<'_> {
1469 (
1470 <VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),
1471 <alloy::sol_types::sol_data::Uint<
1472 256,
1473 > as alloy_sol_types::SolType>::tokenize(&self.choice),
1474 )
1475 }
1476 #[inline]
1477 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1478 voteReturn::_tokenize(ret)
1479 }
1480 #[inline]
1481 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1482 <Self::ReturnTuple<
1483 '_,
1484 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1485 .map(Into::into)
1486 }
1487 #[inline]
1488 fn abi_decode_returns_validate(
1489 data: &[u8],
1490 ) -> alloy_sol_types::Result<Self::Return> {
1491 <Self::ReturnTuple<
1492 '_,
1493 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1494 .map(Into::into)
1495 }
1496 }
1497 };
1498 #[derive(serde::Serialize, serde::Deserialize)]
1499 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1500 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1505 #[derive(Clone)]
1506 pub struct votingIdCall {
1507 #[allow(missing_docs)]
1508 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1509 }
1510 #[derive(serde::Serialize, serde::Deserialize)]
1511 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1512 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1514 #[derive(Clone)]
1515 pub struct votingIdReturn {
1516 #[allow(missing_docs)]
1517 pub _0: alloy::sol_types::private::FixedBytes<32>,
1518 }
1519 #[allow(
1520 non_camel_case_types,
1521 non_snake_case,
1522 clippy::pub_underscore_fields,
1523 clippy::style
1524 )]
1525 const _: () = {
1526 use alloy::sol_types as alloy_sol_types;
1527 {
1528 #[doc(hidden)]
1529 #[allow(dead_code)]
1530 type UnderlyingSolTuple<'a> = (VotingInfo,);
1531 #[doc(hidden)]
1532 type UnderlyingRustTuple<'a> = (
1533 <VotingInfo as alloy::sol_types::SolType>::RustType,
1534 );
1535 #[cfg(test)]
1536 #[allow(dead_code, unreachable_patterns)]
1537 fn _type_assertion(
1538 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1539 ) {
1540 match _t {
1541 alloy_sol_types::private::AssertTypeEq::<
1542 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1543 >(_) => {}
1544 }
1545 }
1546 #[automatically_derived]
1547 #[doc(hidden)]
1548 impl ::core::convert::From<votingIdCall> for UnderlyingRustTuple<'_> {
1549 fn from(value: votingIdCall) -> Self {
1550 (value.v,)
1551 }
1552 }
1553 #[automatically_derived]
1554 #[doc(hidden)]
1555 impl ::core::convert::From<UnderlyingRustTuple<'_>> for votingIdCall {
1556 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1557 Self { v: tuple.0 }
1558 }
1559 }
1560 }
1561 {
1562 #[doc(hidden)]
1563 #[allow(dead_code)]
1564 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1565 #[doc(hidden)]
1566 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
1567 #[cfg(test)]
1568 #[allow(dead_code, unreachable_patterns)]
1569 fn _type_assertion(
1570 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1571 ) {
1572 match _t {
1573 alloy_sol_types::private::AssertTypeEq::<
1574 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1575 >(_) => {}
1576 }
1577 }
1578 #[automatically_derived]
1579 #[doc(hidden)]
1580 impl ::core::convert::From<votingIdReturn> for UnderlyingRustTuple<'_> {
1581 fn from(value: votingIdReturn) -> Self {
1582 (value._0,)
1583 }
1584 }
1585 #[automatically_derived]
1586 #[doc(hidden)]
1587 impl ::core::convert::From<UnderlyingRustTuple<'_>> for votingIdReturn {
1588 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1589 Self { _0: tuple.0 }
1590 }
1591 }
1592 }
1593 #[automatically_derived]
1594 impl alloy_sol_types::SolCall for votingIdCall {
1595 type Parameters<'a> = (VotingInfo,);
1596 type Token<'a> = <Self::Parameters<
1597 'a,
1598 > as alloy_sol_types::SolType>::Token<'a>;
1599 type Return = alloy::sol_types::private::FixedBytes<32>;
1600 type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1601 type ReturnToken<'a> = <Self::ReturnTuple<
1602 'a,
1603 > as alloy_sol_types::SolType>::Token<'a>;
1604 const SIGNATURE: &'static str = "votingId((uint256,uint64,uint256,address))";
1605 const SELECTOR: [u8; 4] = [36u8, 198u8, 227u8, 196u8];
1606 #[inline]
1607 fn new<'a>(
1608 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1609 ) -> Self {
1610 tuple.into()
1611 }
1612 #[inline]
1613 fn tokenize(&self) -> Self::Token<'_> {
1614 (<VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),)
1615 }
1616 #[inline]
1617 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1618 (
1619 <alloy::sol_types::sol_data::FixedBytes<
1620 32,
1621 > as alloy_sol_types::SolType>::tokenize(ret),
1622 )
1623 }
1624 #[inline]
1625 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1626 <Self::ReturnTuple<
1627 '_,
1628 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1629 .map(|r| {
1630 let r: votingIdReturn = r.into();
1631 r._0
1632 })
1633 }
1634 #[inline]
1635 fn abi_decode_returns_validate(
1636 data: &[u8],
1637 ) -> alloy_sol_types::Result<Self::Return> {
1638 <Self::ReturnTuple<
1639 '_,
1640 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1641 .map(|r| {
1642 let r: votingIdReturn = r.into();
1643 r._0
1644 })
1645 }
1646 }
1647 };
1648 #[derive(Clone)]
1650 #[derive(serde::Serialize, serde::Deserialize)]
1651 #[derive()]
1652 pub enum VotingCalls {
1653 #[allow(missing_docs)]
1654 register(registerCall),
1655 #[allow(missing_docs)]
1656 setWinner(setWinnerCall),
1657 #[allow(missing_docs)]
1658 vote(voteCall),
1659 #[allow(missing_docs)]
1660 votingId(votingIdCall),
1661 }
1662 impl VotingCalls {
1663 pub const SELECTORS: &'static [[u8; 4usize]] = &[
1670 [36u8, 198u8, 227u8, 196u8],
1671 [153u8, 93u8, 93u8, 145u8],
1672 [167u8, 212u8, 196u8, 115u8],
1673 [232u8, 2u8, 24u8, 34u8],
1674 ];
1675 pub const VARIANT_NAMES: &'static [&'static str] = &[
1677 ::core::stringify!(votingId),
1678 ::core::stringify!(register),
1679 ::core::stringify!(vote),
1680 ::core::stringify!(setWinner),
1681 ];
1682 pub const SIGNATURES: &'static [&'static str] = &[
1684 <votingIdCall as alloy_sol_types::SolCall>::SIGNATURE,
1685 <registerCall as alloy_sol_types::SolCall>::SIGNATURE,
1686 <voteCall as alloy_sol_types::SolCall>::SIGNATURE,
1687 <setWinnerCall as alloy_sol_types::SolCall>::SIGNATURE,
1688 ];
1689 #[inline]
1691 pub fn signature_by_selector(
1692 selector: [u8; 4usize],
1693 ) -> ::core::option::Option<&'static str> {
1694 match Self::SELECTORS.binary_search(&selector) {
1695 ::core::result::Result::Ok(idx) => {
1696 ::core::option::Option::Some(Self::SIGNATURES[idx])
1697 }
1698 ::core::result::Result::Err(_) => ::core::option::Option::None,
1699 }
1700 }
1701 #[inline]
1703 pub fn name_by_selector(
1704 selector: [u8; 4usize],
1705 ) -> ::core::option::Option<&'static str> {
1706 let sig = Self::signature_by_selector(selector)?;
1707 sig.split_once('(').map(|(name, _)| name)
1708 }
1709 }
1710 #[automatically_derived]
1711 impl alloy_sol_types::SolInterface for VotingCalls {
1712 const NAME: &'static str = "VotingCalls";
1713 const MIN_DATA_LENGTH: usize = 128usize;
1714 const COUNT: usize = 4usize;
1715 #[inline]
1716 fn selector(&self) -> [u8; 4] {
1717 match self {
1718 Self::register(_) => <registerCall as alloy_sol_types::SolCall>::SELECTOR,
1719 Self::setWinner(_) => {
1720 <setWinnerCall as alloy_sol_types::SolCall>::SELECTOR
1721 }
1722 Self::vote(_) => <voteCall as alloy_sol_types::SolCall>::SELECTOR,
1723 Self::votingId(_) => <votingIdCall as alloy_sol_types::SolCall>::SELECTOR,
1724 }
1725 }
1726 #[inline]
1727 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
1728 Self::SELECTORS.get(i).copied()
1729 }
1730 #[inline]
1731 fn valid_selector(selector: [u8; 4]) -> bool {
1732 Self::SELECTORS.binary_search(&selector).is_ok()
1733 }
1734 #[inline]
1735 #[allow(non_snake_case)]
1736 fn abi_decode_raw(
1737 selector: [u8; 4],
1738 data: &[u8],
1739 ) -> alloy_sol_types::Result<Self> {
1740 static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result<VotingCalls>] = &[
1741 {
1742 fn votingId(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1743 <votingIdCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1744 .map(VotingCalls::votingId)
1745 }
1746 votingId
1747 },
1748 {
1749 fn register(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1750 <registerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1751 .map(VotingCalls::register)
1752 }
1753 register
1754 },
1755 {
1756 fn vote(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1757 <voteCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1758 .map(VotingCalls::vote)
1759 }
1760 vote
1761 },
1762 {
1763 fn setWinner(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1764 <setWinnerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1765 .map(VotingCalls::setWinner)
1766 }
1767 setWinner
1768 },
1769 ];
1770 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
1771 return Err(
1772 alloy_sol_types::Error::unknown_selector(
1773 <Self as alloy_sol_types::SolInterface>::NAME,
1774 selector,
1775 ),
1776 );
1777 };
1778 DECODE_SHIMS[idx](data)
1779 }
1780 #[inline]
1781 #[allow(non_snake_case)]
1782 fn abi_decode_raw_validate(
1783 selector: [u8; 4],
1784 data: &[u8],
1785 ) -> alloy_sol_types::Result<Self> {
1786 static DECODE_VALIDATE_SHIMS: &[fn(
1787 &[u8],
1788 ) -> alloy_sol_types::Result<VotingCalls>] = &[
1789 {
1790 fn votingId(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1791 <votingIdCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1792 data,
1793 )
1794 .map(VotingCalls::votingId)
1795 }
1796 votingId
1797 },
1798 {
1799 fn register(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1800 <registerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1801 data,
1802 )
1803 .map(VotingCalls::register)
1804 }
1805 register
1806 },
1807 {
1808 fn vote(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1809 <voteCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1810 data,
1811 )
1812 .map(VotingCalls::vote)
1813 }
1814 vote
1815 },
1816 {
1817 fn setWinner(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1818 <setWinnerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1819 data,
1820 )
1821 .map(VotingCalls::setWinner)
1822 }
1823 setWinner
1824 },
1825 ];
1826 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
1827 return Err(
1828 alloy_sol_types::Error::unknown_selector(
1829 <Self as alloy_sol_types::SolInterface>::NAME,
1830 selector,
1831 ),
1832 );
1833 };
1834 DECODE_VALIDATE_SHIMS[idx](data)
1835 }
1836 #[inline]
1837 fn abi_encoded_size(&self) -> usize {
1838 match self {
1839 Self::register(inner) => {
1840 <registerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1841 }
1842 Self::setWinner(inner) => {
1843 <setWinnerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1844 }
1845 Self::vote(inner) => {
1846 <voteCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1847 }
1848 Self::votingId(inner) => {
1849 <votingIdCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1850 }
1851 }
1852 }
1853 #[inline]
1854 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
1855 match self {
1856 Self::register(inner) => {
1857 <registerCall as alloy_sol_types::SolCall>::abi_encode_raw(
1858 inner,
1859 out,
1860 )
1861 }
1862 Self::setWinner(inner) => {
1863 <setWinnerCall as alloy_sol_types::SolCall>::abi_encode_raw(
1864 inner,
1865 out,
1866 )
1867 }
1868 Self::vote(inner) => {
1869 <voteCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
1870 }
1871 Self::votingId(inner) => {
1872 <votingIdCall as alloy_sol_types::SolCall>::abi_encode_raw(
1873 inner,
1874 out,
1875 )
1876 }
1877 }
1878 }
1879 }
1880 #[derive(Clone)]
1882 #[derive(serde::Serialize, serde::Deserialize)]
1883 #[derive(Debug, PartialEq, Eq, Hash)]
1884 pub enum VotingEvents {
1885 #[allow(missing_docs)]
1886 Voted(Voted),
1887 #[allow(missing_docs)]
1888 Winner(Winner),
1889 }
1890 impl VotingEvents {
1891 pub const SELECTORS: &'static [[u8; 32usize]] = &[
1898 [
1899 38u8, 157u8, 58u8, 36u8, 113u8, 36u8, 54u8, 247u8, 125u8, 241u8, 93u8,
1900 99u8, 222u8, 125u8, 35u8, 55u8, 160u8, 96u8, 201u8, 16u8, 45u8, 238u8,
1901 111u8, 70u8, 201u8, 9u8, 251u8, 15u8, 162u8, 213u8, 47u8, 12u8,
1902 ],
1903 [
1904 228u8, 171u8, 197u8, 56u8, 15u8, 166u8, 147u8, 157u8, 29u8, 194u8, 59u8,
1905 94u8, 144u8, 179u8, 168u8, 160u8, 227u8, 40u8, 240u8, 241u8, 168u8, 42u8,
1906 95u8, 66u8, 191u8, 183u8, 149u8, 191u8, 156u8, 113u8, 117u8, 5u8,
1907 ],
1908 ];
1909 pub const VARIANT_NAMES: &'static [&'static str] = &[
1911 ::core::stringify!(Winner),
1912 ::core::stringify!(Voted),
1913 ];
1914 pub const SIGNATURES: &'static [&'static str] = &[
1916 <Winner as alloy_sol_types::SolEvent>::SIGNATURE,
1917 <Voted as alloy_sol_types::SolEvent>::SIGNATURE,
1918 ];
1919 #[inline]
1921 pub fn signature_by_selector(
1922 selector: [u8; 32usize],
1923 ) -> ::core::option::Option<&'static str> {
1924 match Self::SELECTORS.binary_search(&selector) {
1925 ::core::result::Result::Ok(idx) => {
1926 ::core::option::Option::Some(Self::SIGNATURES[idx])
1927 }
1928 ::core::result::Result::Err(_) => ::core::option::Option::None,
1929 }
1930 }
1931 #[inline]
1933 pub fn name_by_selector(
1934 selector: [u8; 32usize],
1935 ) -> ::core::option::Option<&'static str> {
1936 let sig = Self::signature_by_selector(selector)?;
1937 sig.split_once('(').map(|(name, _)| name)
1938 }
1939 }
1940 #[automatically_derived]
1941 impl alloy_sol_types::SolEventInterface for VotingEvents {
1942 const NAME: &'static str = "VotingEvents";
1943 const COUNT: usize = 2usize;
1944 fn decode_raw_log(
1945 topics: &[alloy_sol_types::Word],
1946 data: &[u8],
1947 ) -> alloy_sol_types::Result<Self> {
1948 match topics.first().copied() {
1949 Some(<Voted as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1950 <Voted as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
1951 .map(Self::Voted)
1952 }
1953 Some(<Winner as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1954 <Winner as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
1955 .map(Self::Winner)
1956 }
1957 _ => {
1958 alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
1959 name: <Self as alloy_sol_types::SolEventInterface>::NAME,
1960 log: alloy_sol_types::private::Box::new(
1961 alloy_sol_types::private::LogData::new_unchecked(
1962 topics.to_vec(),
1963 data.to_vec().into(),
1964 ),
1965 ),
1966 })
1967 }
1968 }
1969 }
1970 }
1971 #[automatically_derived]
1972 impl alloy_sol_types::private::IntoLogData for VotingEvents {
1973 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
1974 match self {
1975 Self::Voted(inner) => {
1976 alloy_sol_types::private::IntoLogData::to_log_data(inner)
1977 }
1978 Self::Winner(inner) => {
1979 alloy_sol_types::private::IntoLogData::to_log_data(inner)
1980 }
1981 }
1982 }
1983 fn into_log_data(self) -> alloy_sol_types::private::LogData {
1984 match self {
1985 Self::Voted(inner) => {
1986 alloy_sol_types::private::IntoLogData::into_log_data(inner)
1987 }
1988 Self::Winner(inner) => {
1989 alloy_sol_types::private::IntoLogData::into_log_data(inner)
1990 }
1991 }
1992 }
1993 }
1994 use alloy::contract as alloy_contract;
1995 #[inline]
1999 pub const fn new<
2000 P: alloy_contract::private::Provider<N>,
2001 N: alloy_contract::private::Network,
2002 >(
2003 address: alloy_sol_types::private::Address,
2004 __provider: P,
2005 ) -> VotingInstance<P, N> {
2006 VotingInstance::<P, N>::new(address, __provider)
2007 }
2008 #[inline]
2014 pub fn deploy<
2015 P: alloy_contract::private::Provider<N>,
2016 N: alloy_contract::private::Network,
2017 >(
2018 __provider: P,
2019 ) -> impl ::core::future::Future<
2020 Output = alloy_contract::Result<VotingInstance<P, N>>,
2021 > {
2022 VotingInstance::<P, N>::deploy(__provider)
2023 }
2024 #[inline]
2030 pub fn deploy_builder<
2031 P: alloy_contract::private::Provider<N>,
2032 N: alloy_contract::private::Network,
2033 >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
2034 VotingInstance::<P, N>::deploy_builder(__provider)
2035 }
2036 #[derive(Clone)]
2048 pub struct VotingInstance<P, N = alloy_contract::private::Ethereum> {
2049 address: alloy_sol_types::private::Address,
2050 provider: P,
2051 _network: ::core::marker::PhantomData<N>,
2052 }
2053 #[automatically_derived]
2054 impl<P, N> ::core::fmt::Debug for VotingInstance<P, N> {
2055 #[inline]
2056 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2057 f.debug_tuple("VotingInstance").field(&self.address).finish()
2058 }
2059 }
2060 impl<
2062 P: alloy_contract::private::Provider<N>,
2063 N: alloy_contract::private::Network,
2064 > VotingInstance<P, N> {
2065 #[inline]
2069 pub const fn new(
2070 address: alloy_sol_types::private::Address,
2071 __provider: P,
2072 ) -> Self {
2073 Self {
2074 address,
2075 provider: __provider,
2076 _network: ::core::marker::PhantomData,
2077 }
2078 }
2079 #[inline]
2085 pub async fn deploy(
2086 __provider: P,
2087 ) -> alloy_contract::Result<VotingInstance<P, N>> {
2088 let call_builder = Self::deploy_builder(__provider);
2089 let contract_address = call_builder.deploy().await?;
2090 Ok(Self::new(contract_address, call_builder.provider))
2091 }
2092 #[inline]
2098 pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
2099 alloy_contract::RawCallBuilder::new_raw_deploy(
2100 __provider,
2101 ::core::clone::Clone::clone(&BYTECODE),
2102 )
2103 }
2104 #[inline]
2106 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2107 &self.address
2108 }
2109 #[inline]
2111 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2112 self.address = address;
2113 }
2114 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2116 self.set_address(address);
2117 self
2118 }
2119 #[inline]
2121 pub const fn provider(&self) -> &P {
2122 &self.provider
2123 }
2124 }
2125 impl<P: ::core::clone::Clone, N> VotingInstance<&P, N> {
2126 #[inline]
2128 pub fn with_cloned_provider(self) -> VotingInstance<P, N> {
2129 VotingInstance {
2130 address: self.address,
2131 provider: ::core::clone::Clone::clone(&self.provider),
2132 _network: ::core::marker::PhantomData,
2133 }
2134 }
2135 }
2136 impl<
2138 P: alloy_contract::private::Provider<N>,
2139 N: alloy_contract::private::Network,
2140 > VotingInstance<P, N> {
2141 pub fn call_builder<C: alloy_sol_types::SolCall>(
2146 &self,
2147 call: &C,
2148 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
2149 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2150 }
2151 pub fn register(
2153 &self,
2154 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2155 ) -> alloy_contract::SolCallBuilder<&P, registerCall, N> {
2156 self.call_builder(®isterCall { v })
2157 }
2158 pub fn setWinner(
2160 &self,
2161 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2162 choice: alloy::sol_types::private::primitives::aliases::U256,
2163 ) -> alloy_contract::SolCallBuilder<&P, setWinnerCall, N> {
2164 self.call_builder(&setWinnerCall { v, choice })
2165 }
2166 pub fn vote(
2168 &self,
2169 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2170 choice: alloy::sol_types::private::primitives::aliases::U256,
2171 ) -> alloy_contract::SolCallBuilder<&P, voteCall, N> {
2172 self.call_builder(&voteCall { v, choice })
2173 }
2174 pub fn votingId(
2176 &self,
2177 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2178 ) -> alloy_contract::SolCallBuilder<&P, votingIdCall, N> {
2179 self.call_builder(&votingIdCall { v })
2180 }
2181 }
2182 impl<
2184 P: alloy_contract::private::Provider<N>,
2185 N: alloy_contract::private::Network,
2186 > VotingInstance<P, N> {
2187 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2192 &self,
2193 ) -> alloy_contract::Event<&P, E, N> {
2194 alloy_contract::Event::new_sol(&self.provider, &self.address)
2195 }
2196 pub fn Voted_filter(&self) -> alloy_contract::Event<&P, Voted, N> {
2198 self.event_filter::<Voted>()
2199 }
2200 pub fn Winner_filter(&self) -> alloy_contract::Event<&P, Winner, N> {
2202 self.event_filter::<Winner>()
2203 }
2204 }
2205}