1#[allow(
12 non_camel_case_types,
13 non_snake_case,
14 clippy::pub_underscore_fields,
15 clippy::style,
16 clippy::empty_structs_with_brackets
17)]
18pub mod BN254 {
19 use alloy::sol_types as alloy_sol_types;
20
21 use super::*;
22 #[derive(Default, Debug, PartialEq, Eq, Hash)]
23 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
24 #[derive(Clone)]
25 pub struct BaseField(alloy::sol_types::private::primitives::aliases::U256);
26 const _: () = {
27 use alloy::sol_types as alloy_sol_types;
28 #[automatically_derived]
29 impl alloy_sol_types::private::SolTypeValue<BaseField>
30 for alloy::sol_types::private::primitives::aliases::U256
31 {
32 #[inline]
33 fn stv_to_tokens(
34 &self,
35 ) -> <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'_>
36 {
37 alloy_sol_types::private::SolTypeValue::<
38 alloy::sol_types::sol_data::Uint<256>,
39 >::stv_to_tokens(self)
40 }
41 #[inline]
42 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
43 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(self)
44 .0
45 }
46 #[inline]
47 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
48 <alloy::sol_types::sol_data::Uint<
49 256,
50 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
51 }
52 #[inline]
53 fn stv_abi_packed_encoded_size(&self) -> usize {
54 <alloy::sol_types::sol_data::Uint<
55 256,
56 > as alloy_sol_types::SolType>::abi_encoded_size(self)
57 }
58 }
59 #[automatically_derived]
60 impl BaseField {
61 pub const NAME: &'static str = stringify!(@ name);
63 #[inline]
65 pub const fn from(value: alloy::sol_types::private::primitives::aliases::U256) -> Self {
66 Self(value)
67 }
68 #[inline]
70 pub const fn into(self) -> alloy::sol_types::private::primitives::aliases::U256 {
71 self.0
72 }
73 #[inline]
76 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
77 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
78 }
79 #[inline]
82 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
83 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
84 }
85 }
86 #[automatically_derived]
87 impl alloy_sol_types::SolType for BaseField {
88 type RustType = alloy::sol_types::private::primitives::aliases::U256;
89 type Token<'a> =
90 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'a>;
91 const SOL_NAME: &'static str = Self::NAME;
92 const ENCODED_SIZE: Option<usize> =
93 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::ENCODED_SIZE;
94 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
95 256,
96 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
97 #[inline]
98 fn valid_token(token: &Self::Token<'_>) -> bool {
99 Self::type_check(token).is_ok()
100 }
101 #[inline]
102 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
103 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::type_check(
104 token,
105 )
106 }
107 #[inline]
108 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
109 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::detokenize(
110 token,
111 )
112 }
113 }
114 #[automatically_derived]
115 impl alloy_sol_types::EventTopic for BaseField {
116 #[inline]
117 fn topic_preimage_length(rust: &Self::RustType) -> usize {
118 <alloy::sol_types::sol_data::Uint<
119 256,
120 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
121 }
122 #[inline]
123 fn encode_topic_preimage(
124 rust: &Self::RustType,
125 out: &mut alloy_sol_types::private::Vec<u8>,
126 ) {
127 <alloy::sol_types::sol_data::Uint<
128 256,
129 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
130 }
131 #[inline]
132 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
133 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::EventTopic>::encode_topic(
134 rust,
135 )
136 }
137 }
138 };
139 #[derive(Default, Debug, PartialEq, Eq, Hash)]
140 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
141 #[derive(Clone)]
142 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
143 const _: () = {
144 use alloy::sol_types as alloy_sol_types;
145 #[automatically_derived]
146 impl alloy_sol_types::private::SolTypeValue<ScalarField>
147 for alloy::sol_types::private::primitives::aliases::U256
148 {
149 #[inline]
150 fn stv_to_tokens(
151 &self,
152 ) -> <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'_>
153 {
154 alloy_sol_types::private::SolTypeValue::<
155 alloy::sol_types::sol_data::Uint<256>,
156 >::stv_to_tokens(self)
157 }
158 #[inline]
159 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
160 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(self)
161 .0
162 }
163 #[inline]
164 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
165 <alloy::sol_types::sol_data::Uint<
166 256,
167 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
168 }
169 #[inline]
170 fn stv_abi_packed_encoded_size(&self) -> usize {
171 <alloy::sol_types::sol_data::Uint<
172 256,
173 > as alloy_sol_types::SolType>::abi_encoded_size(self)
174 }
175 }
176 #[automatically_derived]
177 impl ScalarField {
178 pub const NAME: &'static str = stringify!(@ name);
180 #[inline]
182 pub const fn from(value: alloy::sol_types::private::primitives::aliases::U256) -> Self {
183 Self(value)
184 }
185 #[inline]
187 pub const fn into(self) -> alloy::sol_types::private::primitives::aliases::U256 {
188 self.0
189 }
190 #[inline]
193 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
194 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
195 }
196 #[inline]
199 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
200 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
201 }
202 }
203 #[automatically_derived]
204 impl alloy_sol_types::SolType for ScalarField {
205 type RustType = alloy::sol_types::private::primitives::aliases::U256;
206 type Token<'a> =
207 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::Token<'a>;
208 const SOL_NAME: &'static str = Self::NAME;
209 const ENCODED_SIZE: Option<usize> =
210 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::ENCODED_SIZE;
211 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
212 256,
213 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
214 #[inline]
215 fn valid_token(token: &Self::Token<'_>) -> bool {
216 Self::type_check(token).is_ok()
217 }
218 #[inline]
219 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
220 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::type_check(
221 token,
222 )
223 }
224 #[inline]
225 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
226 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::detokenize(
227 token,
228 )
229 }
230 }
231 #[automatically_derived]
232 impl alloy_sol_types::EventTopic for ScalarField {
233 #[inline]
234 fn topic_preimage_length(rust: &Self::RustType) -> usize {
235 <alloy::sol_types::sol_data::Uint<
236 256,
237 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
238 }
239 #[inline]
240 fn encode_topic_preimage(
241 rust: &Self::RustType,
242 out: &mut alloy_sol_types::private::Vec<u8>,
243 ) {
244 <alloy::sol_types::sol_data::Uint<
245 256,
246 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
247 }
248 #[inline]
249 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
250 <alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::EventTopic>::encode_topic(
251 rust,
252 )
253 }
254 }
255 };
256 #[derive(Default, Debug, PartialEq, Eq, Hash)]
257 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
261 #[derive(Clone)]
262 pub struct G1Point {
263 #[allow(missing_docs)]
264 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
265 #[allow(missing_docs)]
266 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
267 }
268 #[allow(
269 non_camel_case_types,
270 non_snake_case,
271 clippy::pub_underscore_fields,
272 clippy::style
273 )]
274 const _: () = {
275 use alloy::sol_types as alloy_sol_types;
276 #[doc(hidden)]
277 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
278 #[doc(hidden)]
279 type UnderlyingRustTuple<'a> = (
280 <BaseField as alloy::sol_types::SolType>::RustType,
281 <BaseField as alloy::sol_types::SolType>::RustType,
282 );
283 #[cfg(test)]
284 #[allow(dead_code, unreachable_patterns)]
285 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
286 match _t {
287 alloy_sol_types::private::AssertTypeEq::<
288 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
289 >(_) => {},
290 }
291 }
292 #[automatically_derived]
293 #[doc(hidden)]
294 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
295 fn from(value: G1Point) -> Self {
296 (value.x, value.y)
297 }
298 }
299 #[automatically_derived]
300 #[doc(hidden)]
301 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
302 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
303 Self {
304 x: tuple.0,
305 y: tuple.1,
306 }
307 }
308 }
309 #[automatically_derived]
310 impl alloy_sol_types::SolValue for G1Point {
311 type SolType = Self;
312 }
313 #[automatically_derived]
314 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
315 #[inline]
316 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
317 (
318 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
319 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
320 )
321 }
322 #[inline]
323 fn stv_abi_encoded_size(&self) -> usize {
324 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
325 return size;
326 }
327 let tuple =
328 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
329 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
330 }
331 #[inline]
332 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
333 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
334 }
335 #[inline]
336 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
337 let tuple =
338 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
339 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
340 &tuple, out,
341 )
342 }
343 #[inline]
344 fn stv_abi_packed_encoded_size(&self) -> usize {
345 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
346 return size;
347 }
348 let tuple =
349 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
350 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
351 &tuple,
352 )
353 }
354 }
355 #[automatically_derived]
356 impl alloy_sol_types::SolType for G1Point {
357 type RustType = Self;
358 type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
359 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
360 const ENCODED_SIZE: Option<usize> =
361 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
362 const PACKED_ENCODED_SIZE: Option<usize> =
363 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
364 #[inline]
365 fn valid_token(token: &Self::Token<'_>) -> bool {
366 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
367 }
368 #[inline]
369 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
370 let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
371 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
372 }
373 }
374 #[automatically_derived]
375 impl alloy_sol_types::SolStruct for G1Point {
376 const NAME: &'static str = "G1Point";
377 #[inline]
378 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
379 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
380 }
381 #[inline]
382 fn eip712_components(
383 ) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
384 {
385 alloy_sol_types::private::Vec::new()
386 }
387 #[inline]
388 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
389 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
390 }
391 #[inline]
392 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
393 [
394 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
395 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
396 ]
397 .concat()
398 }
399 }
400 #[automatically_derived]
401 impl alloy_sol_types::EventTopic for G1Point {
402 #[inline]
403 fn topic_preimage_length(rust: &Self::RustType) -> usize {
404 0usize
405 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.x)
406 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.y)
407 }
408 #[inline]
409 fn encode_topic_preimage(
410 rust: &Self::RustType,
411 out: &mut alloy_sol_types::private::Vec<u8>,
412 ) {
413 out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
414 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.x, out);
415 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.y, out);
416 }
417 #[inline]
418 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
419 let mut out = alloy_sol_types::private::Vec::new();
420 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
421 alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
422 }
423 }
424 };
425 use alloy::contract as alloy_contract;
426 #[inline]
430 pub const fn new<
431 T: alloy_contract::private::Transport + ::core::clone::Clone,
432 P: alloy_contract::private::Provider<T, N>,
433 N: alloy_contract::private::Network,
434 >(
435 address: alloy_sol_types::private::Address,
436 provider: P,
437 ) -> BN254Instance<T, P, N> {
438 BN254Instance::<T, P, N>::new(address, provider)
439 }
440 #[derive(Clone)]
452 pub struct BN254Instance<T, P, N = alloy_contract::private::Ethereum> {
453 address: alloy_sol_types::private::Address,
454 provider: P,
455 _network_transport: ::core::marker::PhantomData<(N, T)>,
456 }
457 #[automatically_derived]
458 impl<T, P, N> ::core::fmt::Debug for BN254Instance<T, P, N> {
459 #[inline]
460 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
461 f.debug_tuple("BN254Instance").field(&self.address).finish()
462 }
463 }
464 #[automatically_derived]
466 impl<
467 T: alloy_contract::private::Transport + ::core::clone::Clone,
468 P: alloy_contract::private::Provider<T, N>,
469 N: alloy_contract::private::Network,
470 > BN254Instance<T, P, N>
471 {
472 #[inline]
476 pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
477 Self {
478 address,
479 provider,
480 _network_transport: ::core::marker::PhantomData,
481 }
482 }
483 #[inline]
485 pub const fn address(&self) -> &alloy_sol_types::private::Address {
486 &self.address
487 }
488 #[inline]
490 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
491 self.address = address;
492 }
493 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
495 self.set_address(address);
496 self
497 }
498 #[inline]
500 pub const fn provider(&self) -> &P {
501 &self.provider
502 }
503 }
504 impl<T, P: ::core::clone::Clone, N> BN254Instance<T, &P, N> {
505 #[inline]
507 pub fn with_cloned_provider(self) -> BN254Instance<T, P, N> {
508 BN254Instance {
509 address: self.address,
510 provider: ::core::clone::Clone::clone(&self.provider),
511 _network_transport: ::core::marker::PhantomData,
512 }
513 }
514 }
515 #[automatically_derived]
517 impl<
518 T: alloy_contract::private::Transport + ::core::clone::Clone,
519 P: alloy_contract::private::Provider<T, N>,
520 N: alloy_contract::private::Network,
521 > BN254Instance<T, P, N>
522 {
523 pub fn call_builder<C: alloy_sol_types::SolCall>(
528 &self,
529 call: &C,
530 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
531 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
532 }
533 }
534 #[automatically_derived]
536 impl<
537 T: alloy_contract::private::Transport + ::core::clone::Clone,
538 P: alloy_contract::private::Provider<T, N>,
539 N: alloy_contract::private::Network,
540 > BN254Instance<T, P, N>
541 {
542 pub fn event_filter<E: alloy_sol_types::SolEvent>(
547 &self,
548 ) -> alloy_contract::Event<T, &P, E, N> {
549 alloy_contract::Event::new_sol(&self.provider, &self.address)
550 }
551 }
552}
553#[allow(
1257 non_camel_case_types,
1258 non_snake_case,
1259 clippy::pub_underscore_fields,
1260 clippy::style,
1261 clippy::empty_structs_with_brackets
1262)]
1263pub mod IPlonkVerifier {
1264 use alloy::sol_types as alloy_sol_types;
1265
1266 use super::*;
1267 #[rustfmt::skip]
1273 #[allow(clippy::all)]
1274 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
1275 b"",
1276 );
1277 #[rustfmt::skip]
1283 #[allow(clippy::all)]
1284 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
1285 b"",
1286 );
1287 #[derive()]
1288 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1292 #[derive(Clone)]
1293 pub struct PlonkProof {
1294 #[allow(missing_docs)]
1295 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1296 #[allow(missing_docs)]
1297 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1298 #[allow(missing_docs)]
1299 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1300 #[allow(missing_docs)]
1301 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1302 #[allow(missing_docs)]
1303 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1304 #[allow(missing_docs)]
1305 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1306 #[allow(missing_docs)]
1307 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1308 #[allow(missing_docs)]
1309 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1310 #[allow(missing_docs)]
1311 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1312 #[allow(missing_docs)]
1313 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1314 #[allow(missing_docs)]
1315 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1316 #[allow(missing_docs)]
1317 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1318 #[allow(missing_docs)]
1319 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1320 #[allow(missing_docs)]
1321 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1322 #[allow(missing_docs)]
1323 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1324 #[allow(missing_docs)]
1325 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1326 #[allow(missing_docs)]
1327 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1328 #[allow(missing_docs)]
1329 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1330 #[allow(missing_docs)]
1331 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1332 #[allow(missing_docs)]
1333 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1334 #[allow(missing_docs)]
1335 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1336 #[allow(missing_docs)]
1337 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1338 #[allow(missing_docs)]
1339 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1340 }
1341 #[allow(
1342 non_camel_case_types,
1343 non_snake_case,
1344 clippy::pub_underscore_fields,
1345 clippy::style
1346 )]
1347 const _: () = {
1348 use alloy::sol_types as alloy_sol_types;
1349 #[doc(hidden)]
1350 type UnderlyingSolTuple<'a> = (
1351 BN254::G1Point,
1352 BN254::G1Point,
1353 BN254::G1Point,
1354 BN254::G1Point,
1355 BN254::G1Point,
1356 BN254::G1Point,
1357 BN254::G1Point,
1358 BN254::G1Point,
1359 BN254::G1Point,
1360 BN254::G1Point,
1361 BN254::G1Point,
1362 BN254::G1Point,
1363 BN254::G1Point,
1364 BN254::ScalarField,
1365 BN254::ScalarField,
1366 BN254::ScalarField,
1367 BN254::ScalarField,
1368 BN254::ScalarField,
1369 BN254::ScalarField,
1370 BN254::ScalarField,
1371 BN254::ScalarField,
1372 BN254::ScalarField,
1373 BN254::ScalarField,
1374 );
1375 #[doc(hidden)]
1376 type UnderlyingRustTuple<'a> = (
1377 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1378 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1379 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1380 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1381 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1382 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1383 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1384 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1385 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1386 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1387 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1388 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1389 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1390 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1391 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1392 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1393 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1394 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1395 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1396 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1397 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1398 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1399 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1400 );
1401 #[cfg(test)]
1402 #[allow(dead_code, unreachable_patterns)]
1403 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
1404 match _t {
1405 alloy_sol_types::private::AssertTypeEq::<
1406 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1407 >(_) => {},
1408 }
1409 }
1410 #[automatically_derived]
1411 #[doc(hidden)]
1412 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
1413 fn from(value: PlonkProof) -> Self {
1414 (
1415 value.wire0,
1416 value.wire1,
1417 value.wire2,
1418 value.wire3,
1419 value.wire4,
1420 value.prodPerm,
1421 value.split0,
1422 value.split1,
1423 value.split2,
1424 value.split3,
1425 value.split4,
1426 value.zeta,
1427 value.zetaOmega,
1428 value.wireEval0,
1429 value.wireEval1,
1430 value.wireEval2,
1431 value.wireEval3,
1432 value.wireEval4,
1433 value.sigmaEval0,
1434 value.sigmaEval1,
1435 value.sigmaEval2,
1436 value.sigmaEval3,
1437 value.prodPermZetaOmegaEval,
1438 )
1439 }
1440 }
1441 #[automatically_derived]
1442 #[doc(hidden)]
1443 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
1444 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1445 Self {
1446 wire0: tuple.0,
1447 wire1: tuple.1,
1448 wire2: tuple.2,
1449 wire3: tuple.3,
1450 wire4: tuple.4,
1451 prodPerm: tuple.5,
1452 split0: tuple.6,
1453 split1: tuple.7,
1454 split2: tuple.8,
1455 split3: tuple.9,
1456 split4: tuple.10,
1457 zeta: tuple.11,
1458 zetaOmega: tuple.12,
1459 wireEval0: tuple.13,
1460 wireEval1: tuple.14,
1461 wireEval2: tuple.15,
1462 wireEval3: tuple.16,
1463 wireEval4: tuple.17,
1464 sigmaEval0: tuple.18,
1465 sigmaEval1: tuple.19,
1466 sigmaEval2: tuple.20,
1467 sigmaEval3: tuple.21,
1468 prodPermZetaOmegaEval: tuple.22,
1469 }
1470 }
1471 }
1472 #[automatically_derived]
1473 impl alloy_sol_types::SolValue for PlonkProof {
1474 type SolType = Self;
1475 }
1476 #[automatically_derived]
1477 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
1478 #[inline]
1479 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1480 (
1481 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
1482 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
1483 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
1484 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
1485 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
1486 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.prodPerm),
1487 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
1488 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
1489 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
1490 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
1491 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
1492 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
1493 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zetaOmega),
1494 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval0),
1495 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval1),
1496 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval2),
1497 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval3),
1498 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.wireEval4),
1499 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval0),
1500 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval1),
1501 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval2),
1502 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(&self.sigmaEval3),
1503 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1504 &self.prodPermZetaOmegaEval,
1505 ),
1506 )
1507 }
1508 #[inline]
1509 fn stv_abi_encoded_size(&self) -> usize {
1510 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1511 return size;
1512 }
1513 let tuple =
1514 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
1515 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1516 }
1517 #[inline]
1518 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1519 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1520 }
1521 #[inline]
1522 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
1523 let tuple =
1524 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
1525 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
1526 &tuple, out,
1527 )
1528 }
1529 #[inline]
1530 fn stv_abi_packed_encoded_size(&self) -> usize {
1531 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1532 return size;
1533 }
1534 let tuple =
1535 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
1536 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
1537 &tuple,
1538 )
1539 }
1540 }
1541 #[automatically_derived]
1542 impl alloy_sol_types::SolType for PlonkProof {
1543 type RustType = Self;
1544 type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
1545 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1546 const ENCODED_SIZE: Option<usize> =
1547 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
1548 const PACKED_ENCODED_SIZE: Option<usize> =
1549 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1550 #[inline]
1551 fn valid_token(token: &Self::Token<'_>) -> bool {
1552 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1553 }
1554 #[inline]
1555 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1556 let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
1557 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1558 }
1559 }
1560 #[automatically_derived]
1561 impl alloy_sol_types::SolStruct for PlonkProof {
1562 const NAME: &'static str = "PlonkProof";
1563 #[inline]
1564 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1565 alloy_sol_types::private::Cow::Borrowed(
1566 "PlonkProof(BN254.G1Point wire0,BN254.G1Point wire1,BN254.G1Point wire2,BN254.G1Point wire3,BN254.G1Point wire4,BN254.G1Point prodPerm,BN254.G1Point split0,BN254.G1Point split1,BN254.G1Point split2,BN254.G1Point split3,BN254.G1Point split4,BN254.G1Point zeta,BN254.G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
1567 )
1568 }
1569 #[inline]
1570 fn eip712_components(
1571 ) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
1572 {
1573 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
1574 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1575 components
1576 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1577 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1578 components
1579 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1580 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1581 components
1582 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1583 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1584 components
1585 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1586 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1587 components
1588 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1589 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1590 components
1591 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1592 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1593 components
1594 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1595 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1596 components
1597 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1598 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1599 components
1600 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1601 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1602 components
1603 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1604 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1605 components
1606 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1607 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1608 components
1609 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1610 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
1611 components
1612 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
1613 components
1614 }
1615 #[inline]
1616 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1617 [
1618 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire0).0,
1619 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire1).0,
1620 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire2).0,
1621 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire3).0,
1622 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.wire4).0,
1623 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.prodPerm)
1624 .0,
1625 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split0).0,
1626 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split1).0,
1627 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split2).0,
1628 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split3).0,
1629 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.split4).0,
1630 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.zeta).0,
1631 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.zetaOmega)
1632 .0,
1633 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1634 &self.wireEval0,
1635 )
1636 .0,
1637 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1638 &self.wireEval1,
1639 )
1640 .0,
1641 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1642 &self.wireEval2,
1643 )
1644 .0,
1645 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1646 &self.wireEval3,
1647 )
1648 .0,
1649 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1650 &self.wireEval4,
1651 )
1652 .0,
1653 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1654 &self.sigmaEval0,
1655 )
1656 .0,
1657 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1658 &self.sigmaEval1,
1659 )
1660 .0,
1661 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1662 &self.sigmaEval2,
1663 )
1664 .0,
1665 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1666 &self.sigmaEval3,
1667 )
1668 .0,
1669 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1670 &self.prodPermZetaOmegaEval,
1671 )
1672 .0,
1673 ]
1674 .concat()
1675 }
1676 }
1677 #[automatically_derived]
1678 impl alloy_sol_types::EventTopic for PlonkProof {
1679 #[inline]
1680 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1681 0usize
1682 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1683 &rust.wire0,
1684 )
1685 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1686 &rust.wire1,
1687 )
1688 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1689 &rust.wire2,
1690 )
1691 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1692 &rust.wire3,
1693 )
1694 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1695 &rust.wire4,
1696 )
1697 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1698 &rust.prodPerm,
1699 )
1700 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1701 &rust.split0,
1702 )
1703 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1704 &rust.split1,
1705 )
1706 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1707 &rust.split2,
1708 )
1709 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1710 &rust.split3,
1711 )
1712 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1713 &rust.split4,
1714 )
1715 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1716 &rust.zeta,
1717 )
1718 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1719 &rust.zetaOmega,
1720 )
1721 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1722 &rust.wireEval0,
1723 )
1724 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1725 &rust.wireEval1,
1726 )
1727 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1728 &rust.wireEval2,
1729 )
1730 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1731 &rust.wireEval3,
1732 )
1733 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1734 &rust.wireEval4,
1735 )
1736 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1737 &rust.sigmaEval0,
1738 )
1739 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1740 &rust.sigmaEval1,
1741 )
1742 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1743 &rust.sigmaEval2,
1744 )
1745 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1746 &rust.sigmaEval3,
1747 )
1748 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1749 &rust.prodPermZetaOmegaEval,
1750 )
1751 }
1752 #[inline]
1753 fn encode_topic_preimage(
1754 rust: &Self::RustType,
1755 out: &mut alloy_sol_types::private::Vec<u8>,
1756 ) {
1757 out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
1758 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1759 &rust.wire0,
1760 out,
1761 );
1762 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1763 &rust.wire1,
1764 out,
1765 );
1766 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1767 &rust.wire2,
1768 out,
1769 );
1770 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1771 &rust.wire3,
1772 out,
1773 );
1774 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1775 &rust.wire4,
1776 out,
1777 );
1778 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1779 &rust.prodPerm,
1780 out,
1781 );
1782 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1783 &rust.split0,
1784 out,
1785 );
1786 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1787 &rust.split1,
1788 out,
1789 );
1790 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1791 &rust.split2,
1792 out,
1793 );
1794 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1795 &rust.split3,
1796 out,
1797 );
1798 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1799 &rust.split4,
1800 out,
1801 );
1802 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1803 &rust.zeta, out,
1804 );
1805 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1806 &rust.zetaOmega,
1807 out,
1808 );
1809 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1810 &rust.wireEval0,
1811 out,
1812 );
1813 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1814 &rust.wireEval1,
1815 out,
1816 );
1817 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1818 &rust.wireEval2,
1819 out,
1820 );
1821 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1822 &rust.wireEval3,
1823 out,
1824 );
1825 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1826 &rust.wireEval4,
1827 out,
1828 );
1829 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1830 &rust.sigmaEval0,
1831 out,
1832 );
1833 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1834 &rust.sigmaEval1,
1835 out,
1836 );
1837 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1838 &rust.sigmaEval2,
1839 out,
1840 );
1841 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1842 &rust.sigmaEval3,
1843 out,
1844 );
1845 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1846 &rust.prodPermZetaOmegaEval,
1847 out,
1848 );
1849 }
1850 #[inline]
1851 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
1852 let mut out = alloy_sol_types::private::Vec::new();
1853 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
1854 alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
1855 }
1856 }
1857 };
1858 #[derive()]
1859 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1863 #[derive(Clone)]
1864 pub struct VerifyingKey {
1865 #[allow(missing_docs)]
1866 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1867 #[allow(missing_docs)]
1868 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1869 #[allow(missing_docs)]
1870 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1871 #[allow(missing_docs)]
1872 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1873 #[allow(missing_docs)]
1874 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1875 #[allow(missing_docs)]
1876 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1877 #[allow(missing_docs)]
1878 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1879 #[allow(missing_docs)]
1880 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1881 #[allow(missing_docs)]
1882 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1883 #[allow(missing_docs)]
1884 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1885 #[allow(missing_docs)]
1886 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1887 #[allow(missing_docs)]
1888 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1889 #[allow(missing_docs)]
1890 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1891 #[allow(missing_docs)]
1892 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1893 #[allow(missing_docs)]
1894 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1895 #[allow(missing_docs)]
1896 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1897 #[allow(missing_docs)]
1898 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1899 #[allow(missing_docs)]
1900 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1901 #[allow(missing_docs)]
1902 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1903 #[allow(missing_docs)]
1904 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1905 #[allow(missing_docs)]
1906 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1907 #[allow(missing_docs)]
1908 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1909 }
1910 #[allow(
1911 non_camel_case_types,
1912 non_snake_case,
1913 clippy::pub_underscore_fields,
1914 clippy::style
1915 )]
1916 const _: () = {
1917 use alloy::sol_types as alloy_sol_types;
1918 #[doc(hidden)]
1919 type UnderlyingSolTuple<'a> = (
1920 alloy::sol_types::sol_data::Uint<256>,
1921 alloy::sol_types::sol_data::Uint<256>,
1922 BN254::G1Point,
1923 BN254::G1Point,
1924 BN254::G1Point,
1925 BN254::G1Point,
1926 BN254::G1Point,
1927 BN254::G1Point,
1928 BN254::G1Point,
1929 BN254::G1Point,
1930 BN254::G1Point,
1931 BN254::G1Point,
1932 BN254::G1Point,
1933 BN254::G1Point,
1934 BN254::G1Point,
1935 BN254::G1Point,
1936 BN254::G1Point,
1937 BN254::G1Point,
1938 BN254::G1Point,
1939 BN254::G1Point,
1940 alloy::sol_types::sol_data::FixedBytes<32>,
1941 alloy::sol_types::sol_data::FixedBytes<32>,
1942 );
1943 #[doc(hidden)]
1944 type UnderlyingRustTuple<'a> = (
1945 alloy::sol_types::private::primitives::aliases::U256,
1946 alloy::sol_types::private::primitives::aliases::U256,
1947 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1948 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1949 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1950 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1951 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1952 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1953 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1954 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1955 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1956 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1957 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1958 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1959 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1960 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1961 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1962 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1963 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1964 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1965 alloy::sol_types::private::FixedBytes<32>,
1966 alloy::sol_types::private::FixedBytes<32>,
1967 );
1968 #[cfg(test)]
1969 #[allow(dead_code, unreachable_patterns)]
1970 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
1971 match _t {
1972 alloy_sol_types::private::AssertTypeEq::<
1973 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1974 >(_) => {},
1975 }
1976 }
1977 #[automatically_derived]
1978 #[doc(hidden)]
1979 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1980 fn from(value: VerifyingKey) -> Self {
1981 (
1982 value.domainSize,
1983 value.numInputs,
1984 value.sigma0,
1985 value.sigma1,
1986 value.sigma2,
1987 value.sigma3,
1988 value.sigma4,
1989 value.q1,
1990 value.q2,
1991 value.q3,
1992 value.q4,
1993 value.qM12,
1994 value.qM34,
1995 value.qO,
1996 value.qC,
1997 value.qH1,
1998 value.qH2,
1999 value.qH3,
2000 value.qH4,
2001 value.qEcc,
2002 value.g2LSB,
2003 value.g2MSB,
2004 )
2005 }
2006 }
2007 #[automatically_derived]
2008 #[doc(hidden)]
2009 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
2010 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2011 Self {
2012 domainSize: tuple.0,
2013 numInputs: tuple.1,
2014 sigma0: tuple.2,
2015 sigma1: tuple.3,
2016 sigma2: tuple.4,
2017 sigma3: tuple.5,
2018 sigma4: tuple.6,
2019 q1: tuple.7,
2020 q2: tuple.8,
2021 q3: tuple.9,
2022 q4: tuple.10,
2023 qM12: tuple.11,
2024 qM34: tuple.12,
2025 qO: tuple.13,
2026 qC: tuple.14,
2027 qH1: tuple.15,
2028 qH2: tuple.16,
2029 qH3: tuple.17,
2030 qH4: tuple.18,
2031 qEcc: tuple.19,
2032 g2LSB: tuple.20,
2033 g2MSB: tuple.21,
2034 }
2035 }
2036 }
2037 #[automatically_derived]
2038 impl alloy_sol_types::SolValue for VerifyingKey {
2039 type SolType = Self;
2040 }
2041 #[automatically_derived]
2042 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
2043 #[inline]
2044 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
2045 (
2046 <alloy::sol_types::sol_data::Uint<
2047 256,
2048 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
2049 <alloy::sol_types::sol_data::Uint<
2050 256,
2051 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
2052 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
2053 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
2054 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
2055 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
2056 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
2057 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
2058 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
2059 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
2060 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
2061 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
2062 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
2063 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
2064 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
2065 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
2066 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
2067 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
2068 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
2069 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
2070 <alloy::sol_types::sol_data::FixedBytes<
2071 32,
2072 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
2073 <alloy::sol_types::sol_data::FixedBytes<
2074 32,
2075 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
2076 )
2077 }
2078 #[inline]
2079 fn stv_abi_encoded_size(&self) -> usize {
2080 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
2081 return size;
2082 }
2083 let tuple =
2084 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
2085 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
2086 }
2087 #[inline]
2088 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
2089 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
2090 }
2091 #[inline]
2092 fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
2093 let tuple =
2094 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
2095 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
2096 &tuple, out,
2097 )
2098 }
2099 #[inline]
2100 fn stv_abi_packed_encoded_size(&self) -> usize {
2101 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
2102 return size;
2103 }
2104 let tuple =
2105 <UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
2106 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
2107 &tuple,
2108 )
2109 }
2110 }
2111 #[automatically_derived]
2112 impl alloy_sol_types::SolType for VerifyingKey {
2113 type RustType = Self;
2114 type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
2115 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
2116 const ENCODED_SIZE: Option<usize> =
2117 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
2118 const PACKED_ENCODED_SIZE: Option<usize> =
2119 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
2120 #[inline]
2121 fn valid_token(token: &Self::Token<'_>) -> bool {
2122 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
2123 }
2124 #[inline]
2125 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
2126 let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
2127 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
2128 }
2129 }
2130 #[automatically_derived]
2131 impl alloy_sol_types::SolStruct for VerifyingKey {
2132 const NAME: &'static str = "VerifyingKey";
2133 #[inline]
2134 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
2135 alloy_sol_types::private::Cow::Borrowed(
2136 "VerifyingKey(uint256 domainSize,uint256 numInputs,BN254.G1Point sigma0,BN254.G1Point sigma1,BN254.G1Point sigma2,BN254.G1Point sigma3,BN254.G1Point sigma4,BN254.G1Point q1,BN254.G1Point q2,BN254.G1Point q3,BN254.G1Point q4,BN254.G1Point qM12,BN254.G1Point qM34,BN254.G1Point qO,BN254.G1Point qC,BN254.G1Point qH1,BN254.G1Point qH2,BN254.G1Point qH3,BN254.G1Point qH4,BN254.G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
2137 )
2138 }
2139 #[inline]
2140 fn eip712_components(
2141 ) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
2142 {
2143 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
2144 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2145 components
2146 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2147 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2148 components
2149 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2150 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2151 components
2152 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2153 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2154 components
2155 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2156 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2157 components
2158 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2159 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2160 components
2161 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2162 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2163 components
2164 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2165 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2166 components
2167 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2168 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2169 components
2170 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2171 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2172 components
2173 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2174 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2175 components
2176 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2177 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2178 components
2179 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2180 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2181 components
2182 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2183 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2184 components
2185 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2186 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2187 components
2188 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2189 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2190 components
2191 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2192 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2193 components
2194 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2195 components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
2196 components
2197 .extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
2198 components
2199 }
2200 #[inline]
2201 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
2202 [
2203 <alloy::sol_types::sol_data::Uint<
2204 256,
2205 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
2206 .0,
2207 <alloy::sol_types::sol_data::Uint<
2208 256,
2209 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
2210 .0,
2211 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2212 &self.sigma0,
2213 )
2214 .0,
2215 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2216 &self.sigma1,
2217 )
2218 .0,
2219 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2220 &self.sigma2,
2221 )
2222 .0,
2223 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2224 &self.sigma3,
2225 )
2226 .0,
2227 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2228 &self.sigma4,
2229 )
2230 .0,
2231 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2232 &self.q1,
2233 )
2234 .0,
2235 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2236 &self.q2,
2237 )
2238 .0,
2239 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2240 &self.q3,
2241 )
2242 .0,
2243 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2244 &self.q4,
2245 )
2246 .0,
2247 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2248 &self.qM12,
2249 )
2250 .0,
2251 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2252 &self.qM34,
2253 )
2254 .0,
2255 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2256 &self.qO,
2257 )
2258 .0,
2259 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2260 &self.qC,
2261 )
2262 .0,
2263 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2264 &self.qH1,
2265 )
2266 .0,
2267 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2268 &self.qH2,
2269 )
2270 .0,
2271 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2272 &self.qH3,
2273 )
2274 .0,
2275 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2276 &self.qH4,
2277 )
2278 .0,
2279 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2280 &self.qEcc,
2281 )
2282 .0,
2283 <alloy::sol_types::sol_data::FixedBytes<
2284 32,
2285 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
2286 .0,
2287 <alloy::sol_types::sol_data::FixedBytes<
2288 32,
2289 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
2290 .0,
2291 ]
2292 .concat()
2293 }
2294 }
2295 #[automatically_derived]
2296 impl alloy_sol_types::EventTopic for VerifyingKey {
2297 #[inline]
2298 fn topic_preimage_length(rust: &Self::RustType) -> usize {
2299 0usize
2300 + <alloy::sol_types::sol_data::Uint<
2301 256,
2302 > as alloy_sol_types::EventTopic>::topic_preimage_length(
2303 &rust.domainSize,
2304 )
2305 + <alloy::sol_types::sol_data::Uint<
2306 256,
2307 > as alloy_sol_types::EventTopic>::topic_preimage_length(
2308 &rust.numInputs,
2309 )
2310 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2311 &rust.sigma0,
2312 )
2313 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2314 &rust.sigma1,
2315 )
2316 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2317 &rust.sigma2,
2318 )
2319 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2320 &rust.sigma3,
2321 )
2322 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2323 &rust.sigma4,
2324 )
2325 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2326 &rust.q1,
2327 )
2328 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2329 &rust.q2,
2330 )
2331 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2332 &rust.q3,
2333 )
2334 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2335 &rust.q4,
2336 )
2337 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2338 &rust.qM12,
2339 )
2340 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2341 &rust.qM34,
2342 )
2343 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2344 &rust.qO,
2345 )
2346 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2347 &rust.qC,
2348 )
2349 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2350 &rust.qH1,
2351 )
2352 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2353 &rust.qH2,
2354 )
2355 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2356 &rust.qH3,
2357 )
2358 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2359 &rust.qH4,
2360 )
2361 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2362 &rust.qEcc,
2363 )
2364 + <alloy::sol_types::sol_data::FixedBytes<
2365 32,
2366 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
2367 + <alloy::sol_types::sol_data::FixedBytes<
2368 32,
2369 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
2370 }
2371 #[inline]
2372 fn encode_topic_preimage(
2373 rust: &Self::RustType,
2374 out: &mut alloy_sol_types::private::Vec<u8>,
2375 ) {
2376 out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
2377 <alloy::sol_types::sol_data::Uint<
2378 256,
2379 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2380 &rust.domainSize,
2381 out,
2382 );
2383 <alloy::sol_types::sol_data::Uint<
2384 256,
2385 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2386 &rust.numInputs,
2387 out,
2388 );
2389 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2390 &rust.sigma0,
2391 out,
2392 );
2393 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2394 &rust.sigma1,
2395 out,
2396 );
2397 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2398 &rust.sigma2,
2399 out,
2400 );
2401 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2402 &rust.sigma3,
2403 out,
2404 );
2405 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2406 &rust.sigma4,
2407 out,
2408 );
2409 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2410 &rust.q1, out,
2411 );
2412 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2413 &rust.q2, out,
2414 );
2415 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2416 &rust.q3, out,
2417 );
2418 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2419 &rust.q4, out,
2420 );
2421 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2422 &rust.qM12, out,
2423 );
2424 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2425 &rust.qM34, out,
2426 );
2427 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2428 &rust.qO, out,
2429 );
2430 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2431 &rust.qC, out,
2432 );
2433 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2434 &rust.qH1, out,
2435 );
2436 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2437 &rust.qH2, out,
2438 );
2439 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2440 &rust.qH3, out,
2441 );
2442 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2443 &rust.qH4, out,
2444 );
2445 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2446 &rust.qEcc, out,
2447 );
2448 <alloy::sol_types::sol_data::FixedBytes<
2449 32,
2450 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2451 &rust.g2LSB,
2452 out,
2453 );
2454 <alloy::sol_types::sol_data::FixedBytes<
2455 32,
2456 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2457 &rust.g2MSB,
2458 out,
2459 );
2460 }
2461 #[inline]
2462 fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
2463 let mut out = alloy_sol_types::private::Vec::new();
2464 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
2465 alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
2466 }
2467 }
2468 };
2469 #[derive()]
2470 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2475 #[derive(Clone)]
2476 pub struct verifyCall {
2477 #[allow(missing_docs)]
2478 pub verifyingKey: <VerifyingKey as alloy::sol_types::SolType>::RustType,
2479 #[allow(missing_docs)]
2480 pub publicInput:
2481 alloy::sol_types::private::Vec<alloy::sol_types::private::primitives::aliases::U256>,
2482 #[allow(missing_docs)]
2483 pub proof: <PlonkProof as alloy::sol_types::SolType>::RustType,
2484 }
2485 #[derive(Default, Debug, PartialEq, Eq, Hash)]
2486 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2488 #[derive(Clone)]
2489 pub struct verifyReturn {
2490 #[allow(missing_docs)]
2491 pub _0: bool,
2492 }
2493 #[allow(
2494 non_camel_case_types,
2495 non_snake_case,
2496 clippy::pub_underscore_fields,
2497 clippy::style
2498 )]
2499 const _: () = {
2500 use alloy::sol_types as alloy_sol_types;
2501 {
2502 #[doc(hidden)]
2503 type UnderlyingSolTuple<'a> = (
2504 VerifyingKey,
2505 alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
2506 PlonkProof,
2507 );
2508 #[doc(hidden)]
2509 type UnderlyingRustTuple<'a> = (
2510 <VerifyingKey as alloy::sol_types::SolType>::RustType,
2511 alloy::sol_types::private::Vec<
2512 alloy::sol_types::private::primitives::aliases::U256,
2513 >,
2514 <PlonkProof as alloy::sol_types::SolType>::RustType,
2515 );
2516 #[cfg(test)]
2517 #[allow(dead_code, unreachable_patterns)]
2518 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
2519 match _t {
2520 alloy_sol_types::private::AssertTypeEq::<
2521 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2522 >(_) => {},
2523 }
2524 }
2525 #[automatically_derived]
2526 #[doc(hidden)]
2527 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
2528 fn from(value: verifyCall) -> Self {
2529 (value.verifyingKey, value.publicInput, value.proof)
2530 }
2531 }
2532 #[automatically_derived]
2533 #[doc(hidden)]
2534 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
2535 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2536 Self {
2537 verifyingKey: tuple.0,
2538 publicInput: tuple.1,
2539 proof: tuple.2,
2540 }
2541 }
2542 }
2543 }
2544 {
2545 #[doc(hidden)]
2546 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
2547 #[doc(hidden)]
2548 type UnderlyingRustTuple<'a> = (bool,);
2549 #[cfg(test)]
2550 #[allow(dead_code, unreachable_patterns)]
2551 fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
2552 match _t {
2553 alloy_sol_types::private::AssertTypeEq::<
2554 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2555 >(_) => {},
2556 }
2557 }
2558 #[automatically_derived]
2559 #[doc(hidden)]
2560 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
2561 fn from(value: verifyReturn) -> Self {
2562 (value._0,)
2563 }
2564 }
2565 #[automatically_derived]
2566 #[doc(hidden)]
2567 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
2568 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2569 Self { _0: tuple.0 }
2570 }
2571 }
2572 }
2573 #[automatically_derived]
2574 impl alloy_sol_types::SolCall for verifyCall {
2575 type Parameters<'a> = (
2576 VerifyingKey,
2577 alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
2578 PlonkProof,
2579 );
2580 type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
2581 type Return = verifyReturn;
2582 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
2583 type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
2584 const SIGNATURE: &'static str = "verify((uint256,uint256,(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),bytes32,bytes32),uint256[],((uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))";
2585 const SELECTOR: [u8; 4] = [226u8, 96u8, 80u8, 16u8];
2586 #[inline]
2587 fn new<'a>(
2588 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2589 ) -> Self {
2590 tuple.into()
2591 }
2592 #[inline]
2593 fn tokenize(&self) -> Self::Token<'_> {
2594 (
2595 <VerifyingKey as alloy_sol_types::SolType>::tokenize(
2596 &self.verifyingKey,
2597 ),
2598 <alloy::sol_types::sol_data::Array<
2599 alloy::sol_types::sol_data::Uint<256>,
2600 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
2601 <PlonkProof as alloy_sol_types::SolType>::tokenize(&self.proof),
2602 )
2603 }
2604 #[inline]
2605 fn abi_decode_returns(
2606 data: &[u8],
2607 validate: bool,
2608 ) -> alloy_sol_types::Result<Self::Return> {
2609 <Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(
2610 data, validate,
2611 )
2612 .map(Into::into)
2613 }
2614 }
2615 };
2616 #[derive()]
2618 pub enum IPlonkVerifierCalls {
2619 #[allow(missing_docs)]
2620 verify(verifyCall),
2621 }
2622 #[automatically_derived]
2623 impl IPlonkVerifierCalls {
2624 pub const SELECTORS: &'static [[u8; 4usize]] = &[[226u8, 96u8, 80u8, 16u8]];
2631 }
2632 #[automatically_derived]
2633 impl alloy_sol_types::SolInterface for IPlonkVerifierCalls {
2634 const NAME: &'static str = "IPlonkVerifierCalls";
2635 const MIN_DATA_LENGTH: usize = 512usize;
2636 const COUNT: usize = 1usize;
2637 #[inline]
2638 fn selector(&self) -> [u8; 4] {
2639 match self {
2640 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
2641 }
2642 }
2643 #[inline]
2644 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
2645 Self::SELECTORS.get(i).copied()
2646 }
2647 #[inline]
2648 fn valid_selector(selector: [u8; 4]) -> bool {
2649 Self::SELECTORS.binary_search(&selector).is_ok()
2650 }
2651 #[inline]
2652 #[allow(non_snake_case)]
2653 fn abi_decode_raw(
2654 selector: [u8; 4],
2655 data: &[u8],
2656 validate: bool,
2657 ) -> alloy_sol_types::Result<Self> {
2658 static DECODE_SHIMS: &[fn(
2659 &[u8],
2660 bool,
2661 )
2662 -> alloy_sol_types::Result<IPlonkVerifierCalls>] = &[{
2663 fn verify(
2664 data: &[u8],
2665 validate: bool,
2666 ) -> alloy_sol_types::Result<IPlonkVerifierCalls> {
2667 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(data, validate)
2668 .map(IPlonkVerifierCalls::verify)
2669 }
2670 verify
2671 }];
2672 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
2673 return Err(alloy_sol_types::Error::unknown_selector(
2674 <Self as alloy_sol_types::SolInterface>::NAME,
2675 selector,
2676 ));
2677 };
2678 DECODE_SHIMS[idx](data, validate)
2679 }
2680 #[inline]
2681 fn abi_encoded_size(&self) -> usize {
2682 match self {
2683 Self::verify(inner) => {
2684 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
2685 },
2686 }
2687 }
2688 #[inline]
2689 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
2690 match self {
2691 Self::verify(inner) => {
2692 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
2693 },
2694 }
2695 }
2696 }
2697 use alloy::contract as alloy_contract;
2698 #[inline]
2702 pub const fn new<
2703 T: alloy_contract::private::Transport + ::core::clone::Clone,
2704 P: alloy_contract::private::Provider<T, N>,
2705 N: alloy_contract::private::Network,
2706 >(
2707 address: alloy_sol_types::private::Address,
2708 provider: P,
2709 ) -> IPlonkVerifierInstance<T, P, N> {
2710 IPlonkVerifierInstance::<T, P, N>::new(address, provider)
2711 }
2712 #[inline]
2718 pub fn deploy<
2719 T: alloy_contract::private::Transport + ::core::clone::Clone,
2720 P: alloy_contract::private::Provider<T, N>,
2721 N: alloy_contract::private::Network,
2722 >(
2723 provider: P,
2724 ) -> impl ::core::future::Future<Output = alloy_contract::Result<IPlonkVerifierInstance<T, P, N>>>
2725 {
2726 IPlonkVerifierInstance::<T, P, N>::deploy(provider)
2727 }
2728 #[inline]
2734 pub fn deploy_builder<
2735 T: alloy_contract::private::Transport + ::core::clone::Clone,
2736 P: alloy_contract::private::Provider<T, N>,
2737 N: alloy_contract::private::Network,
2738 >(
2739 provider: P,
2740 ) -> alloy_contract::RawCallBuilder<T, P, N> {
2741 IPlonkVerifierInstance::<T, P, N>::deploy_builder(provider)
2742 }
2743 #[derive(Clone)]
2755 pub struct IPlonkVerifierInstance<T, P, N = alloy_contract::private::Ethereum> {
2756 address: alloy_sol_types::private::Address,
2757 provider: P,
2758 _network_transport: ::core::marker::PhantomData<(N, T)>,
2759 }
2760 #[automatically_derived]
2761 impl<T, P, N> ::core::fmt::Debug for IPlonkVerifierInstance<T, P, N> {
2762 #[inline]
2763 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2764 f.debug_tuple("IPlonkVerifierInstance")
2765 .field(&self.address)
2766 .finish()
2767 }
2768 }
2769 #[automatically_derived]
2771 impl<
2772 T: alloy_contract::private::Transport + ::core::clone::Clone,
2773 P: alloy_contract::private::Provider<T, N>,
2774 N: alloy_contract::private::Network,
2775 > IPlonkVerifierInstance<T, P, N>
2776 {
2777 #[inline]
2781 pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
2782 Self {
2783 address,
2784 provider,
2785 _network_transport: ::core::marker::PhantomData,
2786 }
2787 }
2788 #[inline]
2794 pub async fn deploy(
2795 provider: P,
2796 ) -> alloy_contract::Result<IPlonkVerifierInstance<T, P, N>> {
2797 let call_builder = Self::deploy_builder(provider);
2798 let contract_address = call_builder.deploy().await?;
2799 Ok(Self::new(contract_address, call_builder.provider))
2800 }
2801 #[inline]
2807 pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<T, P, N> {
2808 alloy_contract::RawCallBuilder::new_raw_deploy(
2809 provider,
2810 ::core::clone::Clone::clone(&BYTECODE),
2811 )
2812 }
2813 #[inline]
2815 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2816 &self.address
2817 }
2818 #[inline]
2820 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2821 self.address = address;
2822 }
2823 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2825 self.set_address(address);
2826 self
2827 }
2828 #[inline]
2830 pub const fn provider(&self) -> &P {
2831 &self.provider
2832 }
2833 }
2834 impl<T, P: ::core::clone::Clone, N> IPlonkVerifierInstance<T, &P, N> {
2835 #[inline]
2837 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<T, P, N> {
2838 IPlonkVerifierInstance {
2839 address: self.address,
2840 provider: ::core::clone::Clone::clone(&self.provider),
2841 _network_transport: ::core::marker::PhantomData,
2842 }
2843 }
2844 }
2845 #[automatically_derived]
2847 impl<
2848 T: alloy_contract::private::Transport + ::core::clone::Clone,
2849 P: alloy_contract::private::Provider<T, N>,
2850 N: alloy_contract::private::Network,
2851 > IPlonkVerifierInstance<T, P, N>
2852 {
2853 pub fn call_builder<C: alloy_sol_types::SolCall>(
2858 &self,
2859 call: &C,
2860 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
2861 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2862 }
2863 pub fn verify(
2865 &self,
2866 verifyingKey: <VerifyingKey as alloy::sol_types::SolType>::RustType,
2867 publicInput: alloy::sol_types::private::Vec<
2868 alloy::sol_types::private::primitives::aliases::U256,
2869 >,
2870 proof: <PlonkProof as alloy::sol_types::SolType>::RustType,
2871 ) -> alloy_contract::SolCallBuilder<T, &P, verifyCall, N> {
2872 self.call_builder(&verifyCall {
2873 verifyingKey,
2874 publicInput,
2875 proof,
2876 })
2877 }
2878 }
2879 #[automatically_derived]
2881 impl<
2882 T: alloy_contract::private::Transport + ::core::clone::Clone,
2883 P: alloy_contract::private::Provider<T, N>,
2884 N: alloy_contract::private::Network,
2885 > IPlonkVerifierInstance<T, P, N>
2886 {
2887 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2892 &self,
2893 ) -> alloy_contract::Event<T, &P, E, N> {
2894 alloy_contract::Event::new_sol(&self.provider, &self.address)
2895 }
2896 }
2897}