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 #[automatically_derived]
62 impl Timestamp {
63 pub const NAME: &'static str = stringify!(@ name);
65 #[inline]
67 pub const fn from_underlying(value: u64) -> Self {
68 Self(value)
69 }
70 #[inline]
72 pub const fn into_underlying(self) -> u64 {
73 self.0
74 }
75 #[inline]
78 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
79 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
80 }
81 #[inline]
84 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
85 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
86 }
87 }
88 #[automatically_derived]
89 impl From<u64> for Timestamp {
90 fn from(value: u64) -> Self {
91 Self::from_underlying(value)
92 }
93 }
94 #[automatically_derived]
95 impl From<Timestamp> for u64 {
96 fn from(value: Timestamp) -> Self {
97 value.into_underlying()
98 }
99 }
100 #[automatically_derived]
101 impl alloy_sol_types::SolType for Timestamp {
102 type RustType = u64;
103 type Token<'a> = <alloy::sol_types::sol_data::Uint<
104 64,
105 > as alloy_sol_types::SolType>::Token<'a>;
106 const SOL_NAME: &'static str = Self::NAME;
107 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
108 64,
109 > as alloy_sol_types::SolType>::ENCODED_SIZE;
110 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
111 64,
112 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
113 #[inline]
114 fn valid_token(token: &Self::Token<'_>) -> bool {
115 Self::type_check(token).is_ok()
116 }
117 #[inline]
118 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
119 <alloy::sol_types::sol_data::Uint<
120 64,
121 > as alloy_sol_types::SolType>::type_check(token)
122 }
123 #[inline]
124 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
125 <alloy::sol_types::sol_data::Uint<
126 64,
127 > as alloy_sol_types::SolType>::detokenize(token)
128 }
129 }
130 #[automatically_derived]
131 impl alloy_sol_types::EventTopic for Timestamp {
132 #[inline]
133 fn topic_preimage_length(rust: &Self::RustType) -> usize {
134 <alloy::sol_types::sol_data::Uint<
135 64,
136 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
137 }
138 #[inline]
139 fn encode_topic_preimage(
140 rust: &Self::RustType,
141 out: &mut alloy_sol_types::private::Vec<u8>,
142 ) {
143 <alloy::sol_types::sol_data::Uint<
144 64,
145 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
146 }
147 #[inline]
148 fn encode_topic(
149 rust: &Self::RustType,
150 ) -> alloy_sol_types::abi::token::WordToken {
151 <alloy::sol_types::sol_data::Uint<
152 64,
153 > as alloy_sol_types::EventTopic>::encode_topic(rust)
154 }
155 }
156 };
157 use alloy::contract as alloy_contract;
158 #[inline]
162 pub const fn new<
163 P: alloy_contract::private::Provider<N>,
164 N: alloy_contract::private::Network,
165 >(address: alloy_sol_types::private::Address, provider: P) -> TimeInstance<P, N> {
166 TimeInstance::<P, N>::new(address, provider)
167 }
168 #[derive(Clone)]
180 pub struct TimeInstance<P, N = alloy_contract::private::Ethereum> {
181 address: alloy_sol_types::private::Address,
182 provider: P,
183 _network: ::core::marker::PhantomData<N>,
184 }
185 #[automatically_derived]
186 impl<P, N> ::core::fmt::Debug for TimeInstance<P, N> {
187 #[inline]
188 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
189 f.debug_tuple("TimeInstance").field(&self.address).finish()
190 }
191 }
192 #[automatically_derived]
194 impl<
195 P: alloy_contract::private::Provider<N>,
196 N: alloy_contract::private::Network,
197 > TimeInstance<P, N> {
198 #[inline]
202 pub const fn new(
203 address: alloy_sol_types::private::Address,
204 provider: P,
205 ) -> Self {
206 Self {
207 address,
208 provider,
209 _network: ::core::marker::PhantomData,
210 }
211 }
212 #[inline]
214 pub const fn address(&self) -> &alloy_sol_types::private::Address {
215 &self.address
216 }
217 #[inline]
219 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
220 self.address = address;
221 }
222 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
224 self.set_address(address);
225 self
226 }
227 #[inline]
229 pub const fn provider(&self) -> &P {
230 &self.provider
231 }
232 }
233 impl<P: ::core::clone::Clone, N> TimeInstance<&P, N> {
234 #[inline]
236 pub fn with_cloned_provider(self) -> TimeInstance<P, N> {
237 TimeInstance {
238 address: self.address,
239 provider: ::core::clone::Clone::clone(&self.provider),
240 _network: ::core::marker::PhantomData,
241 }
242 }
243 }
244 #[automatically_derived]
246 impl<
247 P: alloy_contract::private::Provider<N>,
248 N: alloy_contract::private::Network,
249 > TimeInstance<P, N> {
250 pub fn call_builder<C: alloy_sol_types::SolCall>(
255 &self,
256 call: &C,
257 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
258 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
259 }
260 }
261 #[automatically_derived]
263 impl<
264 P: alloy_contract::private::Provider<N>,
265 N: alloy_contract::private::Network,
266 > TimeInstance<P, N> {
267 pub fn event_filter<E: alloy_sol_types::SolEvent>(
272 &self,
273 ) -> alloy_contract::Event<&P, E, N> {
274 alloy_contract::Event::new_sol(&self.provider, &self.address)
275 }
276 }
277}
278#[allow(
510 non_camel_case_types,
511 non_snake_case,
512 clippy::pub_underscore_fields,
513 clippy::style,
514 clippy::empty_structs_with_brackets
515)]
516pub mod Voting {
517 use super::*;
518 use alloy::sol_types as alloy_sol_types;
519 #[rustfmt::skip]
525 #[allow(clippy::all)]
526 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
527 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",
528 );
529 #[rustfmt::skip]
535 #[allow(clippy::all)]
536 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
537 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",
538 );
539 #[derive(serde::Serialize, serde::Deserialize)]
540 #[derive(Default, Debug, PartialEq, Eq, Hash)]
541 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
545 #[derive(Clone)]
546 pub struct VotingInfo {
547 #[allow(missing_docs)]
548 pub threshold: alloy::sol_types::private::primitives::aliases::U256,
549 #[allow(missing_docs)]
550 pub deadline: <Time::Timestamp as alloy::sol_types::SolType>::RustType,
551 #[allow(missing_docs)]
552 pub nonce: alloy::sol_types::private::primitives::aliases::U256,
553 #[allow(missing_docs)]
554 pub owner: alloy::sol_types::private::Address,
555 }
556 #[allow(
557 non_camel_case_types,
558 non_snake_case,
559 clippy::pub_underscore_fields,
560 clippy::style
561 )]
562 const _: () = {
563 use alloy::sol_types as alloy_sol_types;
564 #[doc(hidden)]
565 type UnderlyingSolTuple<'a> = (
566 alloy::sol_types::sol_data::Uint<256>,
567 Time::Timestamp,
568 alloy::sol_types::sol_data::Uint<256>,
569 alloy::sol_types::sol_data::Address,
570 );
571 #[doc(hidden)]
572 type UnderlyingRustTuple<'a> = (
573 alloy::sol_types::private::primitives::aliases::U256,
574 <Time::Timestamp as alloy::sol_types::SolType>::RustType,
575 alloy::sol_types::private::primitives::aliases::U256,
576 alloy::sol_types::private::Address,
577 );
578 #[cfg(test)]
579 #[allow(dead_code, unreachable_patterns)]
580 fn _type_assertion(
581 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
582 ) {
583 match _t {
584 alloy_sol_types::private::AssertTypeEq::<
585 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
586 >(_) => {}
587 }
588 }
589 #[automatically_derived]
590 #[doc(hidden)]
591 impl ::core::convert::From<VotingInfo> for UnderlyingRustTuple<'_> {
592 fn from(value: VotingInfo) -> Self {
593 (value.threshold, value.deadline, value.nonce, value.owner)
594 }
595 }
596 #[automatically_derived]
597 #[doc(hidden)]
598 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VotingInfo {
599 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
600 Self {
601 threshold: tuple.0,
602 deadline: tuple.1,
603 nonce: tuple.2,
604 owner: tuple.3,
605 }
606 }
607 }
608 #[automatically_derived]
609 impl alloy_sol_types::SolValue for VotingInfo {
610 type SolType = Self;
611 }
612 #[automatically_derived]
613 impl alloy_sol_types::private::SolTypeValue<Self> for VotingInfo {
614 #[inline]
615 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
616 (
617 <alloy::sol_types::sol_data::Uint<
618 256,
619 > as alloy_sol_types::SolType>::tokenize(&self.threshold),
620 <Time::Timestamp as alloy_sol_types::SolType>::tokenize(
621 &self.deadline,
622 ),
623 <alloy::sol_types::sol_data::Uint<
624 256,
625 > as alloy_sol_types::SolType>::tokenize(&self.nonce),
626 <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
627 &self.owner,
628 ),
629 )
630 }
631 #[inline]
632 fn stv_abi_encoded_size(&self) -> usize {
633 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
634 return size;
635 }
636 let tuple = <UnderlyingRustTuple<
637 '_,
638 > as ::core::convert::From<Self>>::from(self.clone());
639 <UnderlyingSolTuple<
640 '_,
641 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
642 }
643 #[inline]
644 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
645 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
646 }
647 #[inline]
648 fn stv_abi_encode_packed_to(
649 &self,
650 out: &mut alloy_sol_types::private::Vec<u8>,
651 ) {
652 let tuple = <UnderlyingRustTuple<
653 '_,
654 > as ::core::convert::From<Self>>::from(self.clone());
655 <UnderlyingSolTuple<
656 '_,
657 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
658 }
659 #[inline]
660 fn stv_abi_packed_encoded_size(&self) -> usize {
661 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
662 return size;
663 }
664 let tuple = <UnderlyingRustTuple<
665 '_,
666 > as ::core::convert::From<Self>>::from(self.clone());
667 <UnderlyingSolTuple<
668 '_,
669 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
670 }
671 }
672 #[automatically_derived]
673 impl alloy_sol_types::SolType for VotingInfo {
674 type RustType = Self;
675 type Token<'a> = <UnderlyingSolTuple<
676 'a,
677 > as alloy_sol_types::SolType>::Token<'a>;
678 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
679 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
680 '_,
681 > as alloy_sol_types::SolType>::ENCODED_SIZE;
682 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
683 '_,
684 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
685 #[inline]
686 fn valid_token(token: &Self::Token<'_>) -> bool {
687 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
688 }
689 #[inline]
690 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
691 let tuple = <UnderlyingSolTuple<
692 '_,
693 > as alloy_sol_types::SolType>::detokenize(token);
694 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
695 }
696 }
697 #[automatically_derived]
698 impl alloy_sol_types::SolStruct for VotingInfo {
699 const NAME: &'static str = "VotingInfo";
700 #[inline]
701 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
702 alloy_sol_types::private::Cow::Borrowed(
703 "VotingInfo(uint256 threshold,uint64 deadline,uint256 nonce,address owner)",
704 )
705 }
706 #[inline]
707 fn eip712_components() -> alloy_sol_types::private::Vec<
708 alloy_sol_types::private::Cow<'static, str>,
709 > {
710 alloy_sol_types::private::Vec::new()
711 }
712 #[inline]
713 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
714 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
715 }
716 #[inline]
717 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
718 [
719 <alloy::sol_types::sol_data::Uint<
720 256,
721 > as alloy_sol_types::SolType>::eip712_data_word(&self.threshold)
722 .0,
723 <Time::Timestamp as alloy_sol_types::SolType>::eip712_data_word(
724 &self.deadline,
725 )
726 .0,
727 <alloy::sol_types::sol_data::Uint<
728 256,
729 > as alloy_sol_types::SolType>::eip712_data_word(&self.nonce)
730 .0,
731 <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
732 &self.owner,
733 )
734 .0,
735 ]
736 .concat()
737 }
738 }
739 #[automatically_derived]
740 impl alloy_sol_types::EventTopic for VotingInfo {
741 #[inline]
742 fn topic_preimage_length(rust: &Self::RustType) -> usize {
743 0usize
744 + <alloy::sol_types::sol_data::Uint<
745 256,
746 > as alloy_sol_types::EventTopic>::topic_preimage_length(
747 &rust.threshold,
748 )
749 + <Time::Timestamp as alloy_sol_types::EventTopic>::topic_preimage_length(
750 &rust.deadline,
751 )
752 + <alloy::sol_types::sol_data::Uint<
753 256,
754 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.nonce)
755 + <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
756 &rust.owner,
757 )
758 }
759 #[inline]
760 fn encode_topic_preimage(
761 rust: &Self::RustType,
762 out: &mut alloy_sol_types::private::Vec<u8>,
763 ) {
764 out.reserve(
765 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
766 );
767 <alloy::sol_types::sol_data::Uint<
768 256,
769 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
770 &rust.threshold,
771 out,
772 );
773 <Time::Timestamp as alloy_sol_types::EventTopic>::encode_topic_preimage(
774 &rust.deadline,
775 out,
776 );
777 <alloy::sol_types::sol_data::Uint<
778 256,
779 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
780 &rust.nonce,
781 out,
782 );
783 <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
784 &rust.owner,
785 out,
786 );
787 }
788 #[inline]
789 fn encode_topic(
790 rust: &Self::RustType,
791 ) -> alloy_sol_types::abi::token::WordToken {
792 let mut out = alloy_sol_types::private::Vec::new();
793 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
794 rust,
795 &mut out,
796 );
797 alloy_sol_types::abi::token::WordToken(
798 alloy_sol_types::private::keccak256(out),
799 )
800 }
801 }
802 };
803 #[derive(serde::Serialize, serde::Deserialize)]
804 #[derive(Default, Debug, PartialEq, Eq, Hash)]
805 #[allow(
810 non_camel_case_types,
811 non_snake_case,
812 clippy::pub_underscore_fields,
813 clippy::style
814 )]
815 #[derive(Clone)]
816 pub struct Voted {
817 #[allow(missing_docs)]
818 pub votingId: alloy::sol_types::private::FixedBytes<32>,
819 #[allow(missing_docs)]
820 pub voter: alloy::sol_types::private::Address,
821 #[allow(missing_docs)]
822 pub choice: alloy::sol_types::private::primitives::aliases::U256,
823 }
824 #[allow(
825 non_camel_case_types,
826 non_snake_case,
827 clippy::pub_underscore_fields,
828 clippy::style
829 )]
830 const _: () = {
831 use alloy::sol_types as alloy_sol_types;
832 #[automatically_derived]
833 impl alloy_sol_types::SolEvent for Voted {
834 type DataTuple<'a> = ();
835 type DataToken<'a> = <Self::DataTuple<
836 'a,
837 > as alloy_sol_types::SolType>::Token<'a>;
838 type TopicList = (
839 alloy_sol_types::sol_data::FixedBytes<32>,
840 alloy::sol_types::sol_data::FixedBytes<32>,
841 alloy::sol_types::sol_data::Address,
842 alloy::sol_types::sol_data::Uint<256>,
843 );
844 const SIGNATURE: &'static str = "Voted(bytes32,address,uint256)";
845 const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
846 228u8, 171u8, 197u8, 56u8, 15u8, 166u8, 147u8, 157u8, 29u8, 194u8, 59u8,
847 94u8, 144u8, 179u8, 168u8, 160u8, 227u8, 40u8, 240u8, 241u8, 168u8, 42u8,
848 95u8, 66u8, 191u8, 183u8, 149u8, 191u8, 156u8, 113u8, 117u8, 5u8,
849 ]);
850 const ANONYMOUS: bool = false;
851 #[allow(unused_variables)]
852 #[inline]
853 fn new(
854 topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
855 data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
856 ) -> Self {
857 Self {
858 votingId: topics.1,
859 voter: topics.2,
860 choice: topics.3,
861 }
862 }
863 #[inline]
864 fn check_signature(
865 topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
866 ) -> alloy_sol_types::Result<()> {
867 if topics.0 != Self::SIGNATURE_HASH {
868 return Err(
869 alloy_sol_types::Error::invalid_event_signature_hash(
870 Self::SIGNATURE,
871 topics.0,
872 Self::SIGNATURE_HASH,
873 ),
874 );
875 }
876 Ok(())
877 }
878 #[inline]
879 fn tokenize_body(&self) -> Self::DataToken<'_> {
880 ()
881 }
882 #[inline]
883 fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
884 (
885 Self::SIGNATURE_HASH.into(),
886 self.votingId.clone(),
887 self.voter.clone(),
888 self.choice.clone(),
889 )
890 }
891 #[inline]
892 fn encode_topics_raw(
893 &self,
894 out: &mut [alloy_sol_types::abi::token::WordToken],
895 ) -> alloy_sol_types::Result<()> {
896 if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
897 return Err(alloy_sol_types::Error::Overrun);
898 }
899 out[0usize] = alloy_sol_types::abi::token::WordToken(
900 Self::SIGNATURE_HASH,
901 );
902 out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
903 32,
904 > as alloy_sol_types::EventTopic>::encode_topic(&self.votingId);
905 out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
906 &self.voter,
907 );
908 out[3usize] = <alloy::sol_types::sol_data::Uint<
909 256,
910 > as alloy_sol_types::EventTopic>::encode_topic(&self.choice);
911 Ok(())
912 }
913 }
914 #[automatically_derived]
915 impl alloy_sol_types::private::IntoLogData for Voted {
916 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
917 From::from(self)
918 }
919 fn into_log_data(self) -> alloy_sol_types::private::LogData {
920 From::from(&self)
921 }
922 }
923 #[automatically_derived]
924 impl From<&Voted> for alloy_sol_types::private::LogData {
925 #[inline]
926 fn from(this: &Voted) -> alloy_sol_types::private::LogData {
927 alloy_sol_types::SolEvent::encode_log_data(this)
928 }
929 }
930 };
931 #[derive(serde::Serialize, serde::Deserialize)]
932 #[derive(Default, Debug, PartialEq, Eq, Hash)]
933 #[allow(
938 non_camel_case_types,
939 non_snake_case,
940 clippy::pub_underscore_fields,
941 clippy::style
942 )]
943 #[derive(Clone)]
944 pub struct Winner {
945 #[allow(missing_docs)]
946 pub votingId: alloy::sol_types::private::FixedBytes<32>,
947 #[allow(missing_docs)]
948 pub choice: alloy::sol_types::private::primitives::aliases::U256,
949 }
950 #[allow(
951 non_camel_case_types,
952 non_snake_case,
953 clippy::pub_underscore_fields,
954 clippy::style
955 )]
956 const _: () = {
957 use alloy::sol_types as alloy_sol_types;
958 #[automatically_derived]
959 impl alloy_sol_types::SolEvent for Winner {
960 type DataTuple<'a> = ();
961 type DataToken<'a> = <Self::DataTuple<
962 'a,
963 > as alloy_sol_types::SolType>::Token<'a>;
964 type TopicList = (
965 alloy_sol_types::sol_data::FixedBytes<32>,
966 alloy::sol_types::sol_data::FixedBytes<32>,
967 alloy::sol_types::sol_data::Uint<256>,
968 );
969 const SIGNATURE: &'static str = "Winner(bytes32,uint256)";
970 const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
971 38u8, 157u8, 58u8, 36u8, 113u8, 36u8, 54u8, 247u8, 125u8, 241u8, 93u8,
972 99u8, 222u8, 125u8, 35u8, 55u8, 160u8, 96u8, 201u8, 16u8, 45u8, 238u8,
973 111u8, 70u8, 201u8, 9u8, 251u8, 15u8, 162u8, 213u8, 47u8, 12u8,
974 ]);
975 const ANONYMOUS: bool = false;
976 #[allow(unused_variables)]
977 #[inline]
978 fn new(
979 topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
980 data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
981 ) -> Self {
982 Self {
983 votingId: topics.1,
984 choice: topics.2,
985 }
986 }
987 #[inline]
988 fn check_signature(
989 topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
990 ) -> alloy_sol_types::Result<()> {
991 if topics.0 != Self::SIGNATURE_HASH {
992 return Err(
993 alloy_sol_types::Error::invalid_event_signature_hash(
994 Self::SIGNATURE,
995 topics.0,
996 Self::SIGNATURE_HASH,
997 ),
998 );
999 }
1000 Ok(())
1001 }
1002 #[inline]
1003 fn tokenize_body(&self) -> Self::DataToken<'_> {
1004 ()
1005 }
1006 #[inline]
1007 fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
1008 (Self::SIGNATURE_HASH.into(), self.votingId.clone(), self.choice.clone())
1009 }
1010 #[inline]
1011 fn encode_topics_raw(
1012 &self,
1013 out: &mut [alloy_sol_types::abi::token::WordToken],
1014 ) -> alloy_sol_types::Result<()> {
1015 if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
1016 return Err(alloy_sol_types::Error::Overrun);
1017 }
1018 out[0usize] = alloy_sol_types::abi::token::WordToken(
1019 Self::SIGNATURE_HASH,
1020 );
1021 out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
1022 32,
1023 > as alloy_sol_types::EventTopic>::encode_topic(&self.votingId);
1024 out[2usize] = <alloy::sol_types::sol_data::Uint<
1025 256,
1026 > as alloy_sol_types::EventTopic>::encode_topic(&self.choice);
1027 Ok(())
1028 }
1029 }
1030 #[automatically_derived]
1031 impl alloy_sol_types::private::IntoLogData for Winner {
1032 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
1033 From::from(self)
1034 }
1035 fn into_log_data(self) -> alloy_sol_types::private::LogData {
1036 From::from(&self)
1037 }
1038 }
1039 #[automatically_derived]
1040 impl From<&Winner> for alloy_sol_types::private::LogData {
1041 #[inline]
1042 fn from(this: &Winner) -> alloy_sol_types::private::LogData {
1043 alloy_sol_types::SolEvent::encode_log_data(this)
1044 }
1045 }
1046 };
1047 #[derive(serde::Serialize, serde::Deserialize)]
1048 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1049 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1054 #[derive(Clone)]
1055 pub struct registerCall {
1056 #[allow(missing_docs)]
1057 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1058 }
1059 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1061 #[derive(Clone)]
1062 pub struct registerReturn {}
1063 #[allow(
1064 non_camel_case_types,
1065 non_snake_case,
1066 clippy::pub_underscore_fields,
1067 clippy::style
1068 )]
1069 const _: () = {
1070 use alloy::sol_types as alloy_sol_types;
1071 {
1072 #[doc(hidden)]
1073 type UnderlyingSolTuple<'a> = (VotingInfo,);
1074 #[doc(hidden)]
1075 type UnderlyingRustTuple<'a> = (
1076 <VotingInfo as alloy::sol_types::SolType>::RustType,
1077 );
1078 #[cfg(test)]
1079 #[allow(dead_code, unreachable_patterns)]
1080 fn _type_assertion(
1081 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1082 ) {
1083 match _t {
1084 alloy_sol_types::private::AssertTypeEq::<
1085 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1086 >(_) => {}
1087 }
1088 }
1089 #[automatically_derived]
1090 #[doc(hidden)]
1091 impl ::core::convert::From<registerCall> for UnderlyingRustTuple<'_> {
1092 fn from(value: registerCall) -> Self {
1093 (value.v,)
1094 }
1095 }
1096 #[automatically_derived]
1097 #[doc(hidden)]
1098 impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerCall {
1099 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1100 Self { v: tuple.0 }
1101 }
1102 }
1103 }
1104 {
1105 #[doc(hidden)]
1106 type UnderlyingSolTuple<'a> = ();
1107 #[doc(hidden)]
1108 type UnderlyingRustTuple<'a> = ();
1109 #[cfg(test)]
1110 #[allow(dead_code, unreachable_patterns)]
1111 fn _type_assertion(
1112 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1113 ) {
1114 match _t {
1115 alloy_sol_types::private::AssertTypeEq::<
1116 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1117 >(_) => {}
1118 }
1119 }
1120 #[automatically_derived]
1121 #[doc(hidden)]
1122 impl ::core::convert::From<registerReturn> for UnderlyingRustTuple<'_> {
1123 fn from(value: registerReturn) -> Self {
1124 ()
1125 }
1126 }
1127 #[automatically_derived]
1128 #[doc(hidden)]
1129 impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerReturn {
1130 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1131 Self {}
1132 }
1133 }
1134 }
1135 impl registerReturn {
1136 fn _tokenize(
1137 &self,
1138 ) -> <registerCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
1139 ()
1140 }
1141 }
1142 #[automatically_derived]
1143 impl alloy_sol_types::SolCall for registerCall {
1144 type Parameters<'a> = (VotingInfo,);
1145 type Token<'a> = <Self::Parameters<
1146 'a,
1147 > as alloy_sol_types::SolType>::Token<'a>;
1148 type Return = registerReturn;
1149 type ReturnTuple<'a> = ();
1150 type ReturnToken<'a> = <Self::ReturnTuple<
1151 'a,
1152 > as alloy_sol_types::SolType>::Token<'a>;
1153 const SIGNATURE: &'static str = "register((uint256,uint64,uint256,address))";
1154 const SELECTOR: [u8; 4] = [153u8, 93u8, 93u8, 145u8];
1155 #[inline]
1156 fn new<'a>(
1157 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1158 ) -> Self {
1159 tuple.into()
1160 }
1161 #[inline]
1162 fn tokenize(&self) -> Self::Token<'_> {
1163 (<VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),)
1164 }
1165 #[inline]
1166 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1167 registerReturn::_tokenize(ret)
1168 }
1169 #[inline]
1170 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1171 <Self::ReturnTuple<
1172 '_,
1173 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1174 .map(Into::into)
1175 }
1176 #[inline]
1177 fn abi_decode_returns_validate(
1178 data: &[u8],
1179 ) -> alloy_sol_types::Result<Self::Return> {
1180 <Self::ReturnTuple<
1181 '_,
1182 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1183 .map(Into::into)
1184 }
1185 }
1186 };
1187 #[derive(serde::Serialize, serde::Deserialize)]
1188 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1189 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1194 #[derive(Clone)]
1195 pub struct setWinnerCall {
1196 #[allow(missing_docs)]
1197 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1198 #[allow(missing_docs)]
1199 pub choice: alloy::sol_types::private::primitives::aliases::U256,
1200 }
1201 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1203 #[derive(Clone)]
1204 pub struct setWinnerReturn {}
1205 #[allow(
1206 non_camel_case_types,
1207 non_snake_case,
1208 clippy::pub_underscore_fields,
1209 clippy::style
1210 )]
1211 const _: () = {
1212 use alloy::sol_types as alloy_sol_types;
1213 {
1214 #[doc(hidden)]
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 type UnderlyingSolTuple<'a> = ();
1256 #[doc(hidden)]
1257 type UnderlyingRustTuple<'a> = ();
1258 #[cfg(test)]
1259 #[allow(dead_code, unreachable_patterns)]
1260 fn _type_assertion(
1261 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1262 ) {
1263 match _t {
1264 alloy_sol_types::private::AssertTypeEq::<
1265 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1266 >(_) => {}
1267 }
1268 }
1269 #[automatically_derived]
1270 #[doc(hidden)]
1271 impl ::core::convert::From<setWinnerReturn> for UnderlyingRustTuple<'_> {
1272 fn from(value: setWinnerReturn) -> Self {
1273 ()
1274 }
1275 }
1276 #[automatically_derived]
1277 #[doc(hidden)]
1278 impl ::core::convert::From<UnderlyingRustTuple<'_>> for setWinnerReturn {
1279 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1280 Self {}
1281 }
1282 }
1283 }
1284 impl setWinnerReturn {
1285 fn _tokenize(
1286 &self,
1287 ) -> <setWinnerCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
1288 ()
1289 }
1290 }
1291 #[automatically_derived]
1292 impl alloy_sol_types::SolCall for setWinnerCall {
1293 type Parameters<'a> = (VotingInfo, alloy::sol_types::sol_data::Uint<256>);
1294 type Token<'a> = <Self::Parameters<
1295 'a,
1296 > as alloy_sol_types::SolType>::Token<'a>;
1297 type Return = setWinnerReturn;
1298 type ReturnTuple<'a> = ();
1299 type ReturnToken<'a> = <Self::ReturnTuple<
1300 'a,
1301 > as alloy_sol_types::SolType>::Token<'a>;
1302 const SIGNATURE: &'static str = "setWinner((uint256,uint64,uint256,address),uint256)";
1303 const SELECTOR: [u8; 4] = [232u8, 2u8, 24u8, 34u8];
1304 #[inline]
1305 fn new<'a>(
1306 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1307 ) -> Self {
1308 tuple.into()
1309 }
1310 #[inline]
1311 fn tokenize(&self) -> Self::Token<'_> {
1312 (
1313 <VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),
1314 <alloy::sol_types::sol_data::Uint<
1315 256,
1316 > as alloy_sol_types::SolType>::tokenize(&self.choice),
1317 )
1318 }
1319 #[inline]
1320 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1321 setWinnerReturn::_tokenize(ret)
1322 }
1323 #[inline]
1324 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1325 <Self::ReturnTuple<
1326 '_,
1327 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1328 .map(Into::into)
1329 }
1330 #[inline]
1331 fn abi_decode_returns_validate(
1332 data: &[u8],
1333 ) -> alloy_sol_types::Result<Self::Return> {
1334 <Self::ReturnTuple<
1335 '_,
1336 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1337 .map(Into::into)
1338 }
1339 }
1340 };
1341 #[derive(serde::Serialize, serde::Deserialize)]
1342 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1343 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1348 #[derive(Clone)]
1349 pub struct voteCall {
1350 #[allow(missing_docs)]
1351 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1352 #[allow(missing_docs)]
1353 pub choice: alloy::sol_types::private::primitives::aliases::U256,
1354 }
1355 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1357 #[derive(Clone)]
1358 pub struct voteReturn {}
1359 #[allow(
1360 non_camel_case_types,
1361 non_snake_case,
1362 clippy::pub_underscore_fields,
1363 clippy::style
1364 )]
1365 const _: () = {
1366 use alloy::sol_types as alloy_sol_types;
1367 {
1368 #[doc(hidden)]
1369 type UnderlyingSolTuple<'a> = (
1370 VotingInfo,
1371 alloy::sol_types::sol_data::Uint<256>,
1372 );
1373 #[doc(hidden)]
1374 type UnderlyingRustTuple<'a> = (
1375 <VotingInfo as alloy::sol_types::SolType>::RustType,
1376 alloy::sol_types::private::primitives::aliases::U256,
1377 );
1378 #[cfg(test)]
1379 #[allow(dead_code, unreachable_patterns)]
1380 fn _type_assertion(
1381 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1382 ) {
1383 match _t {
1384 alloy_sol_types::private::AssertTypeEq::<
1385 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1386 >(_) => {}
1387 }
1388 }
1389 #[automatically_derived]
1390 #[doc(hidden)]
1391 impl ::core::convert::From<voteCall> for UnderlyingRustTuple<'_> {
1392 fn from(value: voteCall) -> Self {
1393 (value.v, value.choice)
1394 }
1395 }
1396 #[automatically_derived]
1397 #[doc(hidden)]
1398 impl ::core::convert::From<UnderlyingRustTuple<'_>> for voteCall {
1399 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1400 Self {
1401 v: tuple.0,
1402 choice: tuple.1,
1403 }
1404 }
1405 }
1406 }
1407 {
1408 #[doc(hidden)]
1409 type UnderlyingSolTuple<'a> = ();
1410 #[doc(hidden)]
1411 type UnderlyingRustTuple<'a> = ();
1412 #[cfg(test)]
1413 #[allow(dead_code, unreachable_patterns)]
1414 fn _type_assertion(
1415 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1416 ) {
1417 match _t {
1418 alloy_sol_types::private::AssertTypeEq::<
1419 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1420 >(_) => {}
1421 }
1422 }
1423 #[automatically_derived]
1424 #[doc(hidden)]
1425 impl ::core::convert::From<voteReturn> for UnderlyingRustTuple<'_> {
1426 fn from(value: voteReturn) -> Self {
1427 ()
1428 }
1429 }
1430 #[automatically_derived]
1431 #[doc(hidden)]
1432 impl ::core::convert::From<UnderlyingRustTuple<'_>> for voteReturn {
1433 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1434 Self {}
1435 }
1436 }
1437 }
1438 impl voteReturn {
1439 fn _tokenize(
1440 &self,
1441 ) -> <voteCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
1442 ()
1443 }
1444 }
1445 #[automatically_derived]
1446 impl alloy_sol_types::SolCall for voteCall {
1447 type Parameters<'a> = (VotingInfo, alloy::sol_types::sol_data::Uint<256>);
1448 type Token<'a> = <Self::Parameters<
1449 'a,
1450 > as alloy_sol_types::SolType>::Token<'a>;
1451 type Return = voteReturn;
1452 type ReturnTuple<'a> = ();
1453 type ReturnToken<'a> = <Self::ReturnTuple<
1454 'a,
1455 > as alloy_sol_types::SolType>::Token<'a>;
1456 const SIGNATURE: &'static str = "vote((uint256,uint64,uint256,address),uint256)";
1457 const SELECTOR: [u8; 4] = [167u8, 212u8, 196u8, 115u8];
1458 #[inline]
1459 fn new<'a>(
1460 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1461 ) -> Self {
1462 tuple.into()
1463 }
1464 #[inline]
1465 fn tokenize(&self) -> Self::Token<'_> {
1466 (
1467 <VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),
1468 <alloy::sol_types::sol_data::Uint<
1469 256,
1470 > as alloy_sol_types::SolType>::tokenize(&self.choice),
1471 )
1472 }
1473 #[inline]
1474 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1475 voteReturn::_tokenize(ret)
1476 }
1477 #[inline]
1478 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1479 <Self::ReturnTuple<
1480 '_,
1481 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1482 .map(Into::into)
1483 }
1484 #[inline]
1485 fn abi_decode_returns_validate(
1486 data: &[u8],
1487 ) -> alloy_sol_types::Result<Self::Return> {
1488 <Self::ReturnTuple<
1489 '_,
1490 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1491 .map(Into::into)
1492 }
1493 }
1494 };
1495 #[derive(serde::Serialize, serde::Deserialize)]
1496 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1497 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1502 #[derive(Clone)]
1503 pub struct votingIdCall {
1504 #[allow(missing_docs)]
1505 pub v: <VotingInfo as alloy::sol_types::SolType>::RustType,
1506 }
1507 #[derive(serde::Serialize, serde::Deserialize)]
1508 #[derive(Default, Debug, PartialEq, Eq, Hash)]
1509 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1511 #[derive(Clone)]
1512 pub struct votingIdReturn {
1513 #[allow(missing_docs)]
1514 pub _0: alloy::sol_types::private::FixedBytes<32>,
1515 }
1516 #[allow(
1517 non_camel_case_types,
1518 non_snake_case,
1519 clippy::pub_underscore_fields,
1520 clippy::style
1521 )]
1522 const _: () = {
1523 use alloy::sol_types as alloy_sol_types;
1524 {
1525 #[doc(hidden)]
1526 type UnderlyingSolTuple<'a> = (VotingInfo,);
1527 #[doc(hidden)]
1528 type UnderlyingRustTuple<'a> = (
1529 <VotingInfo as alloy::sol_types::SolType>::RustType,
1530 );
1531 #[cfg(test)]
1532 #[allow(dead_code, unreachable_patterns)]
1533 fn _type_assertion(
1534 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1535 ) {
1536 match _t {
1537 alloy_sol_types::private::AssertTypeEq::<
1538 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1539 >(_) => {}
1540 }
1541 }
1542 #[automatically_derived]
1543 #[doc(hidden)]
1544 impl ::core::convert::From<votingIdCall> for UnderlyingRustTuple<'_> {
1545 fn from(value: votingIdCall) -> Self {
1546 (value.v,)
1547 }
1548 }
1549 #[automatically_derived]
1550 #[doc(hidden)]
1551 impl ::core::convert::From<UnderlyingRustTuple<'_>> for votingIdCall {
1552 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1553 Self { v: tuple.0 }
1554 }
1555 }
1556 }
1557 {
1558 #[doc(hidden)]
1559 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1560 #[doc(hidden)]
1561 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
1562 #[cfg(test)]
1563 #[allow(dead_code, unreachable_patterns)]
1564 fn _type_assertion(
1565 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1566 ) {
1567 match _t {
1568 alloy_sol_types::private::AssertTypeEq::<
1569 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1570 >(_) => {}
1571 }
1572 }
1573 #[automatically_derived]
1574 #[doc(hidden)]
1575 impl ::core::convert::From<votingIdReturn> for UnderlyingRustTuple<'_> {
1576 fn from(value: votingIdReturn) -> Self {
1577 (value._0,)
1578 }
1579 }
1580 #[automatically_derived]
1581 #[doc(hidden)]
1582 impl ::core::convert::From<UnderlyingRustTuple<'_>> for votingIdReturn {
1583 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1584 Self { _0: tuple.0 }
1585 }
1586 }
1587 }
1588 #[automatically_derived]
1589 impl alloy_sol_types::SolCall for votingIdCall {
1590 type Parameters<'a> = (VotingInfo,);
1591 type Token<'a> = <Self::Parameters<
1592 'a,
1593 > as alloy_sol_types::SolType>::Token<'a>;
1594 type Return = alloy::sol_types::private::FixedBytes<32>;
1595 type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
1596 type ReturnToken<'a> = <Self::ReturnTuple<
1597 'a,
1598 > as alloy_sol_types::SolType>::Token<'a>;
1599 const SIGNATURE: &'static str = "votingId((uint256,uint64,uint256,address))";
1600 const SELECTOR: [u8; 4] = [36u8, 198u8, 227u8, 196u8];
1601 #[inline]
1602 fn new<'a>(
1603 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1604 ) -> Self {
1605 tuple.into()
1606 }
1607 #[inline]
1608 fn tokenize(&self) -> Self::Token<'_> {
1609 (<VotingInfo as alloy_sol_types::SolType>::tokenize(&self.v),)
1610 }
1611 #[inline]
1612 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
1613 (
1614 <alloy::sol_types::sol_data::FixedBytes<
1615 32,
1616 > as alloy_sol_types::SolType>::tokenize(ret),
1617 )
1618 }
1619 #[inline]
1620 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
1621 <Self::ReturnTuple<
1622 '_,
1623 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
1624 .map(|r| {
1625 let r: votingIdReturn = r.into();
1626 r._0
1627 })
1628 }
1629 #[inline]
1630 fn abi_decode_returns_validate(
1631 data: &[u8],
1632 ) -> alloy_sol_types::Result<Self::Return> {
1633 <Self::ReturnTuple<
1634 '_,
1635 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
1636 .map(|r| {
1637 let r: votingIdReturn = r.into();
1638 r._0
1639 })
1640 }
1641 }
1642 };
1643 #[derive(serde::Serialize, serde::Deserialize)]
1645 #[derive()]
1646 pub enum VotingCalls {
1647 #[allow(missing_docs)]
1648 register(registerCall),
1649 #[allow(missing_docs)]
1650 setWinner(setWinnerCall),
1651 #[allow(missing_docs)]
1652 vote(voteCall),
1653 #[allow(missing_docs)]
1654 votingId(votingIdCall),
1655 }
1656 #[automatically_derived]
1657 impl VotingCalls {
1658 pub const SELECTORS: &'static [[u8; 4usize]] = &[
1665 [36u8, 198u8, 227u8, 196u8],
1666 [153u8, 93u8, 93u8, 145u8],
1667 [167u8, 212u8, 196u8, 115u8],
1668 [232u8, 2u8, 24u8, 34u8],
1669 ];
1670 }
1671 #[automatically_derived]
1672 impl alloy_sol_types::SolInterface for VotingCalls {
1673 const NAME: &'static str = "VotingCalls";
1674 const MIN_DATA_LENGTH: usize = 128usize;
1675 const COUNT: usize = 4usize;
1676 #[inline]
1677 fn selector(&self) -> [u8; 4] {
1678 match self {
1679 Self::register(_) => <registerCall as alloy_sol_types::SolCall>::SELECTOR,
1680 Self::setWinner(_) => {
1681 <setWinnerCall as alloy_sol_types::SolCall>::SELECTOR
1682 }
1683 Self::vote(_) => <voteCall as alloy_sol_types::SolCall>::SELECTOR,
1684 Self::votingId(_) => <votingIdCall as alloy_sol_types::SolCall>::SELECTOR,
1685 }
1686 }
1687 #[inline]
1688 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
1689 Self::SELECTORS.get(i).copied()
1690 }
1691 #[inline]
1692 fn valid_selector(selector: [u8; 4]) -> bool {
1693 Self::SELECTORS.binary_search(&selector).is_ok()
1694 }
1695 #[inline]
1696 #[allow(non_snake_case)]
1697 fn abi_decode_raw(
1698 selector: [u8; 4],
1699 data: &[u8],
1700 ) -> alloy_sol_types::Result<Self> {
1701 static DECODE_SHIMS: &[fn(&[u8]) -> alloy_sol_types::Result<VotingCalls>] = &[
1702 {
1703 fn votingId(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1704 <votingIdCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1705 .map(VotingCalls::votingId)
1706 }
1707 votingId
1708 },
1709 {
1710 fn register(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1711 <registerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1712 .map(VotingCalls::register)
1713 }
1714 register
1715 },
1716 {
1717 fn vote(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1718 <voteCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1719 .map(VotingCalls::vote)
1720 }
1721 vote
1722 },
1723 {
1724 fn setWinner(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1725 <setWinnerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
1726 .map(VotingCalls::setWinner)
1727 }
1728 setWinner
1729 },
1730 ];
1731 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
1732 return Err(
1733 alloy_sol_types::Error::unknown_selector(
1734 <Self as alloy_sol_types::SolInterface>::NAME,
1735 selector,
1736 ),
1737 );
1738 };
1739 DECODE_SHIMS[idx](data)
1740 }
1741 #[inline]
1742 #[allow(non_snake_case)]
1743 fn abi_decode_raw_validate(
1744 selector: [u8; 4],
1745 data: &[u8],
1746 ) -> alloy_sol_types::Result<Self> {
1747 static DECODE_VALIDATE_SHIMS: &[fn(
1748 &[u8],
1749 ) -> alloy_sol_types::Result<VotingCalls>] = &[
1750 {
1751 fn votingId(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1752 <votingIdCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1753 data,
1754 )
1755 .map(VotingCalls::votingId)
1756 }
1757 votingId
1758 },
1759 {
1760 fn register(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1761 <registerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1762 data,
1763 )
1764 .map(VotingCalls::register)
1765 }
1766 register
1767 },
1768 {
1769 fn vote(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1770 <voteCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1771 data,
1772 )
1773 .map(VotingCalls::vote)
1774 }
1775 vote
1776 },
1777 {
1778 fn setWinner(data: &[u8]) -> alloy_sol_types::Result<VotingCalls> {
1779 <setWinnerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
1780 data,
1781 )
1782 .map(VotingCalls::setWinner)
1783 }
1784 setWinner
1785 },
1786 ];
1787 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
1788 return Err(
1789 alloy_sol_types::Error::unknown_selector(
1790 <Self as alloy_sol_types::SolInterface>::NAME,
1791 selector,
1792 ),
1793 );
1794 };
1795 DECODE_VALIDATE_SHIMS[idx](data)
1796 }
1797 #[inline]
1798 fn abi_encoded_size(&self) -> usize {
1799 match self {
1800 Self::register(inner) => {
1801 <registerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1802 }
1803 Self::setWinner(inner) => {
1804 <setWinnerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1805 }
1806 Self::vote(inner) => {
1807 <voteCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1808 }
1809 Self::votingId(inner) => {
1810 <votingIdCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
1811 }
1812 }
1813 }
1814 #[inline]
1815 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
1816 match self {
1817 Self::register(inner) => {
1818 <registerCall as alloy_sol_types::SolCall>::abi_encode_raw(
1819 inner,
1820 out,
1821 )
1822 }
1823 Self::setWinner(inner) => {
1824 <setWinnerCall as alloy_sol_types::SolCall>::abi_encode_raw(
1825 inner,
1826 out,
1827 )
1828 }
1829 Self::vote(inner) => {
1830 <voteCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
1831 }
1832 Self::votingId(inner) => {
1833 <votingIdCall as alloy_sol_types::SolCall>::abi_encode_raw(
1834 inner,
1835 out,
1836 )
1837 }
1838 }
1839 }
1840 }
1841 #[derive(serde::Serialize, serde::Deserialize)]
1843 #[derive(Debug, PartialEq, Eq, Hash)]
1844 pub enum VotingEvents {
1845 #[allow(missing_docs)]
1846 Voted(Voted),
1847 #[allow(missing_docs)]
1848 Winner(Winner),
1849 }
1850 #[automatically_derived]
1851 impl VotingEvents {
1852 pub const SELECTORS: &'static [[u8; 32usize]] = &[
1859 [
1860 38u8, 157u8, 58u8, 36u8, 113u8, 36u8, 54u8, 247u8, 125u8, 241u8, 93u8,
1861 99u8, 222u8, 125u8, 35u8, 55u8, 160u8, 96u8, 201u8, 16u8, 45u8, 238u8,
1862 111u8, 70u8, 201u8, 9u8, 251u8, 15u8, 162u8, 213u8, 47u8, 12u8,
1863 ],
1864 [
1865 228u8, 171u8, 197u8, 56u8, 15u8, 166u8, 147u8, 157u8, 29u8, 194u8, 59u8,
1866 94u8, 144u8, 179u8, 168u8, 160u8, 227u8, 40u8, 240u8, 241u8, 168u8, 42u8,
1867 95u8, 66u8, 191u8, 183u8, 149u8, 191u8, 156u8, 113u8, 117u8, 5u8,
1868 ],
1869 ];
1870 }
1871 #[automatically_derived]
1872 impl alloy_sol_types::SolEventInterface for VotingEvents {
1873 const NAME: &'static str = "VotingEvents";
1874 const COUNT: usize = 2usize;
1875 fn decode_raw_log(
1876 topics: &[alloy_sol_types::Word],
1877 data: &[u8],
1878 ) -> alloy_sol_types::Result<Self> {
1879 match topics.first().copied() {
1880 Some(<Voted as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1881 <Voted as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
1882 .map(Self::Voted)
1883 }
1884 Some(<Winner as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1885 <Winner as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
1886 .map(Self::Winner)
1887 }
1888 _ => {
1889 alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
1890 name: <Self as alloy_sol_types::SolEventInterface>::NAME,
1891 log: alloy_sol_types::private::Box::new(
1892 alloy_sol_types::private::LogData::new_unchecked(
1893 topics.to_vec(),
1894 data.to_vec().into(),
1895 ),
1896 ),
1897 })
1898 }
1899 }
1900 }
1901 }
1902 #[automatically_derived]
1903 impl alloy_sol_types::private::IntoLogData for VotingEvents {
1904 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
1905 match self {
1906 Self::Voted(inner) => {
1907 alloy_sol_types::private::IntoLogData::to_log_data(inner)
1908 }
1909 Self::Winner(inner) => {
1910 alloy_sol_types::private::IntoLogData::to_log_data(inner)
1911 }
1912 }
1913 }
1914 fn into_log_data(self) -> alloy_sol_types::private::LogData {
1915 match self {
1916 Self::Voted(inner) => {
1917 alloy_sol_types::private::IntoLogData::into_log_data(inner)
1918 }
1919 Self::Winner(inner) => {
1920 alloy_sol_types::private::IntoLogData::into_log_data(inner)
1921 }
1922 }
1923 }
1924 }
1925 use alloy::contract as alloy_contract;
1926 #[inline]
1930 pub const fn new<
1931 P: alloy_contract::private::Provider<N>,
1932 N: alloy_contract::private::Network,
1933 >(address: alloy_sol_types::private::Address, provider: P) -> VotingInstance<P, N> {
1934 VotingInstance::<P, N>::new(address, provider)
1935 }
1936 #[inline]
1942 pub fn deploy<
1943 P: alloy_contract::private::Provider<N>,
1944 N: alloy_contract::private::Network,
1945 >(
1946 provider: P,
1947 ) -> impl ::core::future::Future<
1948 Output = alloy_contract::Result<VotingInstance<P, N>>,
1949 > {
1950 VotingInstance::<P, N>::deploy(provider)
1951 }
1952 #[inline]
1958 pub fn deploy_builder<
1959 P: alloy_contract::private::Provider<N>,
1960 N: alloy_contract::private::Network,
1961 >(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
1962 VotingInstance::<P, N>::deploy_builder(provider)
1963 }
1964 #[derive(Clone)]
1976 pub struct VotingInstance<P, N = alloy_contract::private::Ethereum> {
1977 address: alloy_sol_types::private::Address,
1978 provider: P,
1979 _network: ::core::marker::PhantomData<N>,
1980 }
1981 #[automatically_derived]
1982 impl<P, N> ::core::fmt::Debug for VotingInstance<P, N> {
1983 #[inline]
1984 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1985 f.debug_tuple("VotingInstance").field(&self.address).finish()
1986 }
1987 }
1988 #[automatically_derived]
1990 impl<
1991 P: alloy_contract::private::Provider<N>,
1992 N: alloy_contract::private::Network,
1993 > VotingInstance<P, N> {
1994 #[inline]
1998 pub const fn new(
1999 address: alloy_sol_types::private::Address,
2000 provider: P,
2001 ) -> Self {
2002 Self {
2003 address,
2004 provider,
2005 _network: ::core::marker::PhantomData,
2006 }
2007 }
2008 #[inline]
2014 pub async fn deploy(
2015 provider: P,
2016 ) -> alloy_contract::Result<VotingInstance<P, N>> {
2017 let call_builder = Self::deploy_builder(provider);
2018 let contract_address = call_builder.deploy().await?;
2019 Ok(Self::new(contract_address, call_builder.provider))
2020 }
2021 #[inline]
2027 pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
2028 alloy_contract::RawCallBuilder::new_raw_deploy(
2029 provider,
2030 ::core::clone::Clone::clone(&BYTECODE),
2031 )
2032 }
2033 #[inline]
2035 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2036 &self.address
2037 }
2038 #[inline]
2040 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2041 self.address = address;
2042 }
2043 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2045 self.set_address(address);
2046 self
2047 }
2048 #[inline]
2050 pub const fn provider(&self) -> &P {
2051 &self.provider
2052 }
2053 }
2054 impl<P: ::core::clone::Clone, N> VotingInstance<&P, N> {
2055 #[inline]
2057 pub fn with_cloned_provider(self) -> VotingInstance<P, N> {
2058 VotingInstance {
2059 address: self.address,
2060 provider: ::core::clone::Clone::clone(&self.provider),
2061 _network: ::core::marker::PhantomData,
2062 }
2063 }
2064 }
2065 #[automatically_derived]
2067 impl<
2068 P: alloy_contract::private::Provider<N>,
2069 N: alloy_contract::private::Network,
2070 > VotingInstance<P, N> {
2071 pub fn call_builder<C: alloy_sol_types::SolCall>(
2076 &self,
2077 call: &C,
2078 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
2079 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2080 }
2081 pub fn register(
2083 &self,
2084 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2085 ) -> alloy_contract::SolCallBuilder<&P, registerCall, N> {
2086 self.call_builder(®isterCall { v })
2087 }
2088 pub fn setWinner(
2090 &self,
2091 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2092 choice: alloy::sol_types::private::primitives::aliases::U256,
2093 ) -> alloy_contract::SolCallBuilder<&P, setWinnerCall, N> {
2094 self.call_builder(&setWinnerCall { v, choice })
2095 }
2096 pub fn vote(
2098 &self,
2099 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2100 choice: alloy::sol_types::private::primitives::aliases::U256,
2101 ) -> alloy_contract::SolCallBuilder<&P, voteCall, N> {
2102 self.call_builder(&voteCall { v, choice })
2103 }
2104 pub fn votingId(
2106 &self,
2107 v: <VotingInfo as alloy::sol_types::SolType>::RustType,
2108 ) -> alloy_contract::SolCallBuilder<&P, votingIdCall, N> {
2109 self.call_builder(&votingIdCall { v })
2110 }
2111 }
2112 #[automatically_derived]
2114 impl<
2115 P: alloy_contract::private::Provider<N>,
2116 N: alloy_contract::private::Network,
2117 > VotingInstance<P, N> {
2118 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2123 &self,
2124 ) -> alloy_contract::Event<&P, E, N> {
2125 alloy_contract::Event::new_sol(&self.provider, &self.address)
2126 }
2127 pub fn Voted_filter(&self) -> alloy_contract::Event<&P, Voted, N> {
2129 self.event_filter::<Voted>()
2130 }
2131 pub fn Winner_filter(&self) -> alloy_contract::Event<&P, Winner, N> {
2133 self.event_filter::<Winner>()
2134 }
2135 }
2136}