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 super::*;
20 use alloy::sol_types as alloy_sol_types;
21 #[derive(serde::Serialize, serde::Deserialize)]
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 #[inline]
32 fn stv_to_tokens(
33 &self,
34 ) -> <alloy::sol_types::sol_data::Uint<
35 256,
36 > as alloy_sol_types::SolType>::Token<'_> {
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<
44 256,
45 > as alloy_sol_types::SolType>::tokenize(self)
46 .0
47 }
48 #[inline]
49 fn stv_abi_encode_packed_to(
50 &self,
51 out: &mut alloy_sol_types::private::Vec<u8>,
52 ) {
53 <alloy::sol_types::sol_data::Uint<
54 256,
55 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
56 }
57 #[inline]
58 fn stv_abi_packed_encoded_size(&self) -> usize {
59 <alloy::sol_types::sol_data::Uint<
60 256,
61 > as alloy_sol_types::SolType>::abi_encoded_size(self)
62 }
63 }
64 impl BaseField {
65 pub const NAME: &'static str = stringify!(@ name);
67 #[inline]
69 pub const fn from_underlying(
70 value: alloy::sol_types::private::primitives::aliases::U256,
71 ) -> Self {
72 Self(value)
73 }
74 #[inline]
76 pub const fn into_underlying(
77 self,
78 ) -> alloy::sol_types::private::primitives::aliases::U256 {
79 self.0
80 }
81 #[inline]
84 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
85 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
86 }
87 #[inline]
90 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
91 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
92 }
93 }
94 #[automatically_derived]
95 impl From<alloy::sol_types::private::primitives::aliases::U256> for BaseField {
96 fn from(
97 value: alloy::sol_types::private::primitives::aliases::U256,
98 ) -> Self {
99 Self::from_underlying(value)
100 }
101 }
102 #[automatically_derived]
103 impl From<BaseField> for alloy::sol_types::private::primitives::aliases::U256 {
104 fn from(value: BaseField) -> Self {
105 value.into_underlying()
106 }
107 }
108 #[automatically_derived]
109 impl alloy_sol_types::SolType for BaseField {
110 type RustType = alloy::sol_types::private::primitives::aliases::U256;
111 type Token<'a> = <alloy::sol_types::sol_data::Uint<
112 256,
113 > as alloy_sol_types::SolType>::Token<'a>;
114 const SOL_NAME: &'static str = Self::NAME;
115 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
116 256,
117 > as alloy_sol_types::SolType>::ENCODED_SIZE;
118 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
119 256,
120 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
121 #[inline]
122 fn valid_token(token: &Self::Token<'_>) -> bool {
123 Self::type_check(token).is_ok()
124 }
125 #[inline]
126 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
127 <alloy::sol_types::sol_data::Uint<
128 256,
129 > as alloy_sol_types::SolType>::type_check(token)
130 }
131 #[inline]
132 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
133 <alloy::sol_types::sol_data::Uint<
134 256,
135 > as alloy_sol_types::SolType>::detokenize(token)
136 }
137 }
138 #[automatically_derived]
139 impl alloy_sol_types::EventTopic for BaseField {
140 #[inline]
141 fn topic_preimage_length(rust: &Self::RustType) -> usize {
142 <alloy::sol_types::sol_data::Uint<
143 256,
144 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
145 }
146 #[inline]
147 fn encode_topic_preimage(
148 rust: &Self::RustType,
149 out: &mut alloy_sol_types::private::Vec<u8>,
150 ) {
151 <alloy::sol_types::sol_data::Uint<
152 256,
153 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
154 }
155 #[inline]
156 fn encode_topic(
157 rust: &Self::RustType,
158 ) -> alloy_sol_types::abi::token::WordToken {
159 <alloy::sol_types::sol_data::Uint<
160 256,
161 > as alloy_sol_types::EventTopic>::encode_topic(rust)
162 }
163 }
164 };
165 #[derive(serde::Serialize, serde::Deserialize)]
166 #[derive(Default, Debug, PartialEq, Eq, Hash)]
167 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
168 #[derive(Clone)]
169 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
170 const _: () = {
171 use alloy::sol_types as alloy_sol_types;
172 #[automatically_derived]
173 impl alloy_sol_types::private::SolTypeValue<ScalarField>
174 for alloy::sol_types::private::primitives::aliases::U256 {
175 #[inline]
176 fn stv_to_tokens(
177 &self,
178 ) -> <alloy::sol_types::sol_data::Uint<
179 256,
180 > as alloy_sol_types::SolType>::Token<'_> {
181 alloy_sol_types::private::SolTypeValue::<
182 alloy::sol_types::sol_data::Uint<256>,
183 >::stv_to_tokens(self)
184 }
185 #[inline]
186 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
187 <alloy::sol_types::sol_data::Uint<
188 256,
189 > as alloy_sol_types::SolType>::tokenize(self)
190 .0
191 }
192 #[inline]
193 fn stv_abi_encode_packed_to(
194 &self,
195 out: &mut alloy_sol_types::private::Vec<u8>,
196 ) {
197 <alloy::sol_types::sol_data::Uint<
198 256,
199 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
200 }
201 #[inline]
202 fn stv_abi_packed_encoded_size(&self) -> usize {
203 <alloy::sol_types::sol_data::Uint<
204 256,
205 > as alloy_sol_types::SolType>::abi_encoded_size(self)
206 }
207 }
208 impl ScalarField {
209 pub const NAME: &'static str = stringify!(@ name);
211 #[inline]
213 pub const fn from_underlying(
214 value: alloy::sol_types::private::primitives::aliases::U256,
215 ) -> Self {
216 Self(value)
217 }
218 #[inline]
220 pub const fn into_underlying(
221 self,
222 ) -> alloy::sol_types::private::primitives::aliases::U256 {
223 self.0
224 }
225 #[inline]
228 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
229 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
230 }
231 #[inline]
234 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
235 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
236 }
237 }
238 #[automatically_derived]
239 impl From<alloy::sol_types::private::primitives::aliases::U256> for ScalarField {
240 fn from(
241 value: alloy::sol_types::private::primitives::aliases::U256,
242 ) -> Self {
243 Self::from_underlying(value)
244 }
245 }
246 #[automatically_derived]
247 impl From<ScalarField> for alloy::sol_types::private::primitives::aliases::U256 {
248 fn from(value: ScalarField) -> Self {
249 value.into_underlying()
250 }
251 }
252 #[automatically_derived]
253 impl alloy_sol_types::SolType for ScalarField {
254 type RustType = alloy::sol_types::private::primitives::aliases::U256;
255 type Token<'a> = <alloy::sol_types::sol_data::Uint<
256 256,
257 > as alloy_sol_types::SolType>::Token<'a>;
258 const SOL_NAME: &'static str = Self::NAME;
259 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
260 256,
261 > as alloy_sol_types::SolType>::ENCODED_SIZE;
262 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
263 256,
264 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
265 #[inline]
266 fn valid_token(token: &Self::Token<'_>) -> bool {
267 Self::type_check(token).is_ok()
268 }
269 #[inline]
270 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
271 <alloy::sol_types::sol_data::Uint<
272 256,
273 > as alloy_sol_types::SolType>::type_check(token)
274 }
275 #[inline]
276 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
277 <alloy::sol_types::sol_data::Uint<
278 256,
279 > as alloy_sol_types::SolType>::detokenize(token)
280 }
281 }
282 #[automatically_derived]
283 impl alloy_sol_types::EventTopic for ScalarField {
284 #[inline]
285 fn topic_preimage_length(rust: &Self::RustType) -> usize {
286 <alloy::sol_types::sol_data::Uint<
287 256,
288 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
289 }
290 #[inline]
291 fn encode_topic_preimage(
292 rust: &Self::RustType,
293 out: &mut alloy_sol_types::private::Vec<u8>,
294 ) {
295 <alloy::sol_types::sol_data::Uint<
296 256,
297 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
298 }
299 #[inline]
300 fn encode_topic(
301 rust: &Self::RustType,
302 ) -> alloy_sol_types::abi::token::WordToken {
303 <alloy::sol_types::sol_data::Uint<
304 256,
305 > as alloy_sol_types::EventTopic>::encode_topic(rust)
306 }
307 }
308 };
309 #[derive(serde::Serialize, serde::Deserialize)]
310 #[derive(Default, Debug, PartialEq, Eq, Hash)]
311 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
315 #[derive(Clone)]
316 pub struct G1Point {
317 #[allow(missing_docs)]
318 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
319 #[allow(missing_docs)]
320 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
321 }
322 #[allow(
323 non_camel_case_types,
324 non_snake_case,
325 clippy::pub_underscore_fields,
326 clippy::style
327 )]
328 const _: () = {
329 use alloy::sol_types as alloy_sol_types;
330 #[doc(hidden)]
331 #[allow(dead_code)]
332 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
333 #[doc(hidden)]
334 type UnderlyingRustTuple<'a> = (
335 <BaseField as alloy::sol_types::SolType>::RustType,
336 <BaseField as alloy::sol_types::SolType>::RustType,
337 );
338 #[cfg(test)]
339 #[allow(dead_code, unreachable_patterns)]
340 fn _type_assertion(
341 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
342 ) {
343 match _t {
344 alloy_sol_types::private::AssertTypeEq::<
345 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
346 >(_) => {}
347 }
348 }
349 #[automatically_derived]
350 #[doc(hidden)]
351 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
352 fn from(value: G1Point) -> Self {
353 (value.x, value.y)
354 }
355 }
356 #[automatically_derived]
357 #[doc(hidden)]
358 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
359 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
360 Self { x: tuple.0, y: tuple.1 }
361 }
362 }
363 #[automatically_derived]
364 impl alloy_sol_types::SolValue for G1Point {
365 type SolType = Self;
366 }
367 #[automatically_derived]
368 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
369 #[inline]
370 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
371 (
372 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
373 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
374 )
375 }
376 #[inline]
377 fn stv_abi_encoded_size(&self) -> usize {
378 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
379 return size;
380 }
381 let tuple = <UnderlyingRustTuple<
382 '_,
383 > as ::core::convert::From<Self>>::from(self.clone());
384 <UnderlyingSolTuple<
385 '_,
386 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
387 }
388 #[inline]
389 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
390 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
391 }
392 #[inline]
393 fn stv_abi_encode_packed_to(
394 &self,
395 out: &mut alloy_sol_types::private::Vec<u8>,
396 ) {
397 let tuple = <UnderlyingRustTuple<
398 '_,
399 > as ::core::convert::From<Self>>::from(self.clone());
400 <UnderlyingSolTuple<
401 '_,
402 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
403 }
404 #[inline]
405 fn stv_abi_packed_encoded_size(&self) -> usize {
406 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
407 return size;
408 }
409 let tuple = <UnderlyingRustTuple<
410 '_,
411 > as ::core::convert::From<Self>>::from(self.clone());
412 <UnderlyingSolTuple<
413 '_,
414 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
415 }
416 }
417 #[automatically_derived]
418 impl alloy_sol_types::SolType for G1Point {
419 type RustType = Self;
420 type Token<'a> = <UnderlyingSolTuple<
421 'a,
422 > as alloy_sol_types::SolType>::Token<'a>;
423 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
424 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
425 '_,
426 > as alloy_sol_types::SolType>::ENCODED_SIZE;
427 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
428 '_,
429 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
430 #[inline]
431 fn valid_token(token: &Self::Token<'_>) -> bool {
432 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
433 }
434 #[inline]
435 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
436 let tuple = <UnderlyingSolTuple<
437 '_,
438 > as alloy_sol_types::SolType>::detokenize(token);
439 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
440 }
441 }
442 #[automatically_derived]
443 impl alloy_sol_types::SolStruct for G1Point {
444 const NAME: &'static str = "G1Point";
445 #[inline]
446 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
447 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
448 }
449 #[inline]
450 fn eip712_components() -> alloy_sol_types::private::Vec<
451 alloy_sol_types::private::Cow<'static, str>,
452 > {
453 alloy_sol_types::private::Vec::new()
454 }
455 #[inline]
456 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
457 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
458 }
459 #[inline]
460 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
461 [
462 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
463 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
464 ]
465 .concat()
466 }
467 }
468 #[automatically_derived]
469 impl alloy_sol_types::EventTopic for G1Point {
470 #[inline]
471 fn topic_preimage_length(rust: &Self::RustType) -> usize {
472 0usize
473 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
474 &rust.x,
475 )
476 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
477 &rust.y,
478 )
479 }
480 #[inline]
481 fn encode_topic_preimage(
482 rust: &Self::RustType,
483 out: &mut alloy_sol_types::private::Vec<u8>,
484 ) {
485 out.reserve(
486 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
487 );
488 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
489 &rust.x,
490 out,
491 );
492 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
493 &rust.y,
494 out,
495 );
496 }
497 #[inline]
498 fn encode_topic(
499 rust: &Self::RustType,
500 ) -> alloy_sol_types::abi::token::WordToken {
501 let mut out = alloy_sol_types::private::Vec::new();
502 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
503 rust,
504 &mut out,
505 );
506 alloy_sol_types::abi::token::WordToken(
507 alloy_sol_types::private::keccak256(out),
508 )
509 }
510 }
511 };
512 use alloy::contract as alloy_contract;
513 #[inline]
517 pub const fn new<
518 P: alloy_contract::private::Provider<N>,
519 N: alloy_contract::private::Network,
520 >(address: alloy_sol_types::private::Address, __provider: P) -> BN254Instance<P, N> {
521 BN254Instance::<P, N>::new(address, __provider)
522 }
523 #[derive(Clone)]
535 pub struct BN254Instance<P, N = alloy_contract::private::Ethereum> {
536 address: alloy_sol_types::private::Address,
537 provider: P,
538 _network: ::core::marker::PhantomData<N>,
539 }
540 #[automatically_derived]
541 impl<P, N> ::core::fmt::Debug for BN254Instance<P, N> {
542 #[inline]
543 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
544 f.debug_tuple("BN254Instance").field(&self.address).finish()
545 }
546 }
547 impl<
549 P: alloy_contract::private::Provider<N>,
550 N: alloy_contract::private::Network,
551 > BN254Instance<P, N> {
552 #[inline]
556 pub const fn new(
557 address: alloy_sol_types::private::Address,
558 __provider: P,
559 ) -> Self {
560 Self {
561 address,
562 provider: __provider,
563 _network: ::core::marker::PhantomData,
564 }
565 }
566 #[inline]
568 pub const fn address(&self) -> &alloy_sol_types::private::Address {
569 &self.address
570 }
571 #[inline]
573 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
574 self.address = address;
575 }
576 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
578 self.set_address(address);
579 self
580 }
581 #[inline]
583 pub const fn provider(&self) -> &P {
584 &self.provider
585 }
586 }
587 impl<P: ::core::clone::Clone, N> BN254Instance<&P, N> {
588 #[inline]
590 pub fn with_cloned_provider(self) -> BN254Instance<P, N> {
591 BN254Instance {
592 address: self.address,
593 provider: ::core::clone::Clone::clone(&self.provider),
594 _network: ::core::marker::PhantomData,
595 }
596 }
597 }
598 impl<
600 P: alloy_contract::private::Provider<N>,
601 N: alloy_contract::private::Network,
602 > BN254Instance<P, N> {
603 pub fn call_builder<C: alloy_sol_types::SolCall>(
608 &self,
609 call: &C,
610 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
611 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
612 }
613 }
614 impl<
616 P: alloy_contract::private::Provider<N>,
617 N: alloy_contract::private::Network,
618 > BN254Instance<P, N> {
619 pub fn event_filter<E: alloy_sol_types::SolEvent>(
624 &self,
625 ) -> alloy_contract::Event<&P, E, N> {
626 alloy_contract::Event::new_sol(&self.provider, &self.address)
627 }
628 }
629}
630#[allow(
1334 non_camel_case_types,
1335 non_snake_case,
1336 clippy::pub_underscore_fields,
1337 clippy::style,
1338 clippy::empty_structs_with_brackets
1339)]
1340pub mod IPlonkVerifier {
1341 use super::*;
1342 use alloy::sol_types as alloy_sol_types;
1343 #[rustfmt::skip]
1349 #[allow(clippy::all)]
1350 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
1351 b"",
1352 );
1353 #[rustfmt::skip]
1359 #[allow(clippy::all)]
1360 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
1361 b"",
1362 );
1363 #[derive(serde::Serialize, serde::Deserialize)]
1364 #[derive()]
1365 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1369 #[derive(Clone)]
1370 pub struct PlonkProof {
1371 #[allow(missing_docs)]
1372 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1373 #[allow(missing_docs)]
1374 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1375 #[allow(missing_docs)]
1376 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1377 #[allow(missing_docs)]
1378 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1379 #[allow(missing_docs)]
1380 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1381 #[allow(missing_docs)]
1382 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1383 #[allow(missing_docs)]
1384 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1385 #[allow(missing_docs)]
1386 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1387 #[allow(missing_docs)]
1388 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1389 #[allow(missing_docs)]
1390 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1391 #[allow(missing_docs)]
1392 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1393 #[allow(missing_docs)]
1394 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1395 #[allow(missing_docs)]
1396 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1397 #[allow(missing_docs)]
1398 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1399 #[allow(missing_docs)]
1400 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1401 #[allow(missing_docs)]
1402 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1403 #[allow(missing_docs)]
1404 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1405 #[allow(missing_docs)]
1406 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1407 #[allow(missing_docs)]
1408 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1409 #[allow(missing_docs)]
1410 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1411 #[allow(missing_docs)]
1412 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1413 #[allow(missing_docs)]
1414 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1415 #[allow(missing_docs)]
1416 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1417 }
1418 #[allow(
1419 non_camel_case_types,
1420 non_snake_case,
1421 clippy::pub_underscore_fields,
1422 clippy::style
1423 )]
1424 const _: () = {
1425 use alloy::sol_types as alloy_sol_types;
1426 #[doc(hidden)]
1427 #[allow(dead_code)]
1428 type UnderlyingSolTuple<'a> = (
1429 BN254::G1Point,
1430 BN254::G1Point,
1431 BN254::G1Point,
1432 BN254::G1Point,
1433 BN254::G1Point,
1434 BN254::G1Point,
1435 BN254::G1Point,
1436 BN254::G1Point,
1437 BN254::G1Point,
1438 BN254::G1Point,
1439 BN254::G1Point,
1440 BN254::G1Point,
1441 BN254::G1Point,
1442 BN254::ScalarField,
1443 BN254::ScalarField,
1444 BN254::ScalarField,
1445 BN254::ScalarField,
1446 BN254::ScalarField,
1447 BN254::ScalarField,
1448 BN254::ScalarField,
1449 BN254::ScalarField,
1450 BN254::ScalarField,
1451 BN254::ScalarField,
1452 );
1453 #[doc(hidden)]
1454 type UnderlyingRustTuple<'a> = (
1455 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1456 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1457 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1458 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1459 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1460 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1461 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1462 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1463 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1464 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1465 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1466 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1467 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1468 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1469 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1470 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1471 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1472 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1473 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1474 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1475 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1476 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1477 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
1478 );
1479 #[cfg(test)]
1480 #[allow(dead_code, unreachable_patterns)]
1481 fn _type_assertion(
1482 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1483 ) {
1484 match _t {
1485 alloy_sol_types::private::AssertTypeEq::<
1486 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1487 >(_) => {}
1488 }
1489 }
1490 #[automatically_derived]
1491 #[doc(hidden)]
1492 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
1493 fn from(value: PlonkProof) -> Self {
1494 (
1495 value.wire0,
1496 value.wire1,
1497 value.wire2,
1498 value.wire3,
1499 value.wire4,
1500 value.prodPerm,
1501 value.split0,
1502 value.split1,
1503 value.split2,
1504 value.split3,
1505 value.split4,
1506 value.zeta,
1507 value.zetaOmega,
1508 value.wireEval0,
1509 value.wireEval1,
1510 value.wireEval2,
1511 value.wireEval3,
1512 value.wireEval4,
1513 value.sigmaEval0,
1514 value.sigmaEval1,
1515 value.sigmaEval2,
1516 value.sigmaEval3,
1517 value.prodPermZetaOmegaEval,
1518 )
1519 }
1520 }
1521 #[automatically_derived]
1522 #[doc(hidden)]
1523 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
1524 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1525 Self {
1526 wire0: tuple.0,
1527 wire1: tuple.1,
1528 wire2: tuple.2,
1529 wire3: tuple.3,
1530 wire4: tuple.4,
1531 prodPerm: tuple.5,
1532 split0: tuple.6,
1533 split1: tuple.7,
1534 split2: tuple.8,
1535 split3: tuple.9,
1536 split4: tuple.10,
1537 zeta: tuple.11,
1538 zetaOmega: tuple.12,
1539 wireEval0: tuple.13,
1540 wireEval1: tuple.14,
1541 wireEval2: tuple.15,
1542 wireEval3: tuple.16,
1543 wireEval4: tuple.17,
1544 sigmaEval0: tuple.18,
1545 sigmaEval1: tuple.19,
1546 sigmaEval2: tuple.20,
1547 sigmaEval3: tuple.21,
1548 prodPermZetaOmegaEval: tuple.22,
1549 }
1550 }
1551 }
1552 #[automatically_derived]
1553 impl alloy_sol_types::SolValue for PlonkProof {
1554 type SolType = Self;
1555 }
1556 #[automatically_derived]
1557 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
1558 #[inline]
1559 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1560 (
1561 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
1562 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
1563 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
1564 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
1565 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
1566 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
1567 &self.prodPerm,
1568 ),
1569 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
1570 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
1571 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
1572 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
1573 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
1574 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
1575 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
1576 &self.zetaOmega,
1577 ),
1578 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1579 &self.wireEval0,
1580 ),
1581 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1582 &self.wireEval1,
1583 ),
1584 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1585 &self.wireEval2,
1586 ),
1587 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1588 &self.wireEval3,
1589 ),
1590 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1591 &self.wireEval4,
1592 ),
1593 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1594 &self.sigmaEval0,
1595 ),
1596 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1597 &self.sigmaEval1,
1598 ),
1599 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1600 &self.sigmaEval2,
1601 ),
1602 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1603 &self.sigmaEval3,
1604 ),
1605 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
1606 &self.prodPermZetaOmegaEval,
1607 ),
1608 )
1609 }
1610 #[inline]
1611 fn stv_abi_encoded_size(&self) -> usize {
1612 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1613 return size;
1614 }
1615 let tuple = <UnderlyingRustTuple<
1616 '_,
1617 > as ::core::convert::From<Self>>::from(self.clone());
1618 <UnderlyingSolTuple<
1619 '_,
1620 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1621 }
1622 #[inline]
1623 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1624 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1625 }
1626 #[inline]
1627 fn stv_abi_encode_packed_to(
1628 &self,
1629 out: &mut alloy_sol_types::private::Vec<u8>,
1630 ) {
1631 let tuple = <UnderlyingRustTuple<
1632 '_,
1633 > as ::core::convert::From<Self>>::from(self.clone());
1634 <UnderlyingSolTuple<
1635 '_,
1636 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1637 }
1638 #[inline]
1639 fn stv_abi_packed_encoded_size(&self) -> usize {
1640 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1641 return size;
1642 }
1643 let tuple = <UnderlyingRustTuple<
1644 '_,
1645 > as ::core::convert::From<Self>>::from(self.clone());
1646 <UnderlyingSolTuple<
1647 '_,
1648 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1649 }
1650 }
1651 #[automatically_derived]
1652 impl alloy_sol_types::SolType for PlonkProof {
1653 type RustType = Self;
1654 type Token<'a> = <UnderlyingSolTuple<
1655 'a,
1656 > as alloy_sol_types::SolType>::Token<'a>;
1657 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1658 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1659 '_,
1660 > as alloy_sol_types::SolType>::ENCODED_SIZE;
1661 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1662 '_,
1663 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1664 #[inline]
1665 fn valid_token(token: &Self::Token<'_>) -> bool {
1666 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1667 }
1668 #[inline]
1669 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1670 let tuple = <UnderlyingSolTuple<
1671 '_,
1672 > as alloy_sol_types::SolType>::detokenize(token);
1673 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1674 }
1675 }
1676 #[automatically_derived]
1677 impl alloy_sol_types::SolStruct for PlonkProof {
1678 const NAME: &'static str = "PlonkProof";
1679 #[inline]
1680 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1681 alloy_sol_types::private::Cow::Borrowed(
1682 "PlonkProof(G1Point wire0,G1Point wire1,G1Point wire2,G1Point wire3,G1Point wire4,G1Point prodPerm,G1Point split0,G1Point split1,G1Point split2,G1Point split3,G1Point split4,G1Point zeta,G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
1683 )
1684 }
1685 #[inline]
1686 fn eip712_components() -> alloy_sol_types::private::Vec<
1687 alloy_sol_types::private::Cow<'static, str>,
1688 > {
1689 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
1690 components
1691 .push(
1692 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1693 );
1694 components
1695 .extend(
1696 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1697 );
1698 components
1699 .push(
1700 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1701 );
1702 components
1703 .extend(
1704 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1705 );
1706 components
1707 .push(
1708 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1709 );
1710 components
1711 .extend(
1712 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1713 );
1714 components
1715 .push(
1716 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1717 );
1718 components
1719 .extend(
1720 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1721 );
1722 components
1723 .push(
1724 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1725 );
1726 components
1727 .extend(
1728 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1729 );
1730 components
1731 .push(
1732 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1733 );
1734 components
1735 .extend(
1736 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1737 );
1738 components
1739 .push(
1740 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1741 );
1742 components
1743 .extend(
1744 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1745 );
1746 components
1747 .push(
1748 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1749 );
1750 components
1751 .extend(
1752 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1753 );
1754 components
1755 .push(
1756 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1757 );
1758 components
1759 .extend(
1760 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1761 );
1762 components
1763 .push(
1764 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1765 );
1766 components
1767 .extend(
1768 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1769 );
1770 components
1771 .push(
1772 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1773 );
1774 components
1775 .extend(
1776 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1777 );
1778 components
1779 .push(
1780 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1781 );
1782 components
1783 .extend(
1784 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1785 );
1786 components
1787 .push(
1788 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1789 );
1790 components
1791 .extend(
1792 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1793 );
1794 components
1795 }
1796 #[inline]
1797 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1798 [
1799 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1800 &self.wire0,
1801 )
1802 .0,
1803 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1804 &self.wire1,
1805 )
1806 .0,
1807 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1808 &self.wire2,
1809 )
1810 .0,
1811 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1812 &self.wire3,
1813 )
1814 .0,
1815 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1816 &self.wire4,
1817 )
1818 .0,
1819 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1820 &self.prodPerm,
1821 )
1822 .0,
1823 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1824 &self.split0,
1825 )
1826 .0,
1827 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1828 &self.split1,
1829 )
1830 .0,
1831 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1832 &self.split2,
1833 )
1834 .0,
1835 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1836 &self.split3,
1837 )
1838 .0,
1839 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1840 &self.split4,
1841 )
1842 .0,
1843 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1844 &self.zeta,
1845 )
1846 .0,
1847 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1848 &self.zetaOmega,
1849 )
1850 .0,
1851 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1852 &self.wireEval0,
1853 )
1854 .0,
1855 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1856 &self.wireEval1,
1857 )
1858 .0,
1859 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1860 &self.wireEval2,
1861 )
1862 .0,
1863 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1864 &self.wireEval3,
1865 )
1866 .0,
1867 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1868 &self.wireEval4,
1869 )
1870 .0,
1871 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1872 &self.sigmaEval0,
1873 )
1874 .0,
1875 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1876 &self.sigmaEval1,
1877 )
1878 .0,
1879 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1880 &self.sigmaEval2,
1881 )
1882 .0,
1883 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1884 &self.sigmaEval3,
1885 )
1886 .0,
1887 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1888 &self.prodPermZetaOmegaEval,
1889 )
1890 .0,
1891 ]
1892 .concat()
1893 }
1894 }
1895 #[automatically_derived]
1896 impl alloy_sol_types::EventTopic for PlonkProof {
1897 #[inline]
1898 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1899 0usize
1900 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1901 &rust.wire0,
1902 )
1903 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1904 &rust.wire1,
1905 )
1906 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1907 &rust.wire2,
1908 )
1909 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1910 &rust.wire3,
1911 )
1912 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1913 &rust.wire4,
1914 )
1915 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1916 &rust.prodPerm,
1917 )
1918 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1919 &rust.split0,
1920 )
1921 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1922 &rust.split1,
1923 )
1924 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1925 &rust.split2,
1926 )
1927 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1928 &rust.split3,
1929 )
1930 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1931 &rust.split4,
1932 )
1933 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1934 &rust.zeta,
1935 )
1936 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1937 &rust.zetaOmega,
1938 )
1939 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1940 &rust.wireEval0,
1941 )
1942 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1943 &rust.wireEval1,
1944 )
1945 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1946 &rust.wireEval2,
1947 )
1948 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1949 &rust.wireEval3,
1950 )
1951 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1952 &rust.wireEval4,
1953 )
1954 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1955 &rust.sigmaEval0,
1956 )
1957 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1958 &rust.sigmaEval1,
1959 )
1960 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1961 &rust.sigmaEval2,
1962 )
1963 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1964 &rust.sigmaEval3,
1965 )
1966 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1967 &rust.prodPermZetaOmegaEval,
1968 )
1969 }
1970 #[inline]
1971 fn encode_topic_preimage(
1972 rust: &Self::RustType,
1973 out: &mut alloy_sol_types::private::Vec<u8>,
1974 ) {
1975 out.reserve(
1976 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1977 );
1978 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1979 &rust.wire0,
1980 out,
1981 );
1982 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1983 &rust.wire1,
1984 out,
1985 );
1986 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1987 &rust.wire2,
1988 out,
1989 );
1990 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1991 &rust.wire3,
1992 out,
1993 );
1994 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1995 &rust.wire4,
1996 out,
1997 );
1998 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1999 &rust.prodPerm,
2000 out,
2001 );
2002 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2003 &rust.split0,
2004 out,
2005 );
2006 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2007 &rust.split1,
2008 out,
2009 );
2010 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2011 &rust.split2,
2012 out,
2013 );
2014 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2015 &rust.split3,
2016 out,
2017 );
2018 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2019 &rust.split4,
2020 out,
2021 );
2022 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2023 &rust.zeta,
2024 out,
2025 );
2026 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2027 &rust.zetaOmega,
2028 out,
2029 );
2030 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2031 &rust.wireEval0,
2032 out,
2033 );
2034 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2035 &rust.wireEval1,
2036 out,
2037 );
2038 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2039 &rust.wireEval2,
2040 out,
2041 );
2042 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2043 &rust.wireEval3,
2044 out,
2045 );
2046 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2047 &rust.wireEval4,
2048 out,
2049 );
2050 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2051 &rust.sigmaEval0,
2052 out,
2053 );
2054 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2055 &rust.sigmaEval1,
2056 out,
2057 );
2058 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2059 &rust.sigmaEval2,
2060 out,
2061 );
2062 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2063 &rust.sigmaEval3,
2064 out,
2065 );
2066 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
2067 &rust.prodPermZetaOmegaEval,
2068 out,
2069 );
2070 }
2071 #[inline]
2072 fn encode_topic(
2073 rust: &Self::RustType,
2074 ) -> alloy_sol_types::abi::token::WordToken {
2075 let mut out = alloy_sol_types::private::Vec::new();
2076 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2077 rust,
2078 &mut out,
2079 );
2080 alloy_sol_types::abi::token::WordToken(
2081 alloy_sol_types::private::keccak256(out),
2082 )
2083 }
2084 }
2085 };
2086 #[derive(serde::Serialize, serde::Deserialize)]
2087 #[derive()]
2088 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2092 #[derive(Clone)]
2093 pub struct VerifyingKey {
2094 #[allow(missing_docs)]
2095 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
2096 #[allow(missing_docs)]
2097 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
2098 #[allow(missing_docs)]
2099 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2100 #[allow(missing_docs)]
2101 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2102 #[allow(missing_docs)]
2103 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2104 #[allow(missing_docs)]
2105 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2106 #[allow(missing_docs)]
2107 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2108 #[allow(missing_docs)]
2109 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2110 #[allow(missing_docs)]
2111 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2112 #[allow(missing_docs)]
2113 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2114 #[allow(missing_docs)]
2115 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2116 #[allow(missing_docs)]
2117 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2118 #[allow(missing_docs)]
2119 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2120 #[allow(missing_docs)]
2121 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2122 #[allow(missing_docs)]
2123 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2124 #[allow(missing_docs)]
2125 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2126 #[allow(missing_docs)]
2127 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2128 #[allow(missing_docs)]
2129 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2130 #[allow(missing_docs)]
2131 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2132 #[allow(missing_docs)]
2133 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2134 #[allow(missing_docs)]
2135 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
2136 #[allow(missing_docs)]
2137 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
2138 }
2139 #[allow(
2140 non_camel_case_types,
2141 non_snake_case,
2142 clippy::pub_underscore_fields,
2143 clippy::style
2144 )]
2145 const _: () = {
2146 use alloy::sol_types as alloy_sol_types;
2147 #[doc(hidden)]
2148 #[allow(dead_code)]
2149 type UnderlyingSolTuple<'a> = (
2150 alloy::sol_types::sol_data::Uint<256>,
2151 alloy::sol_types::sol_data::Uint<256>,
2152 BN254::G1Point,
2153 BN254::G1Point,
2154 BN254::G1Point,
2155 BN254::G1Point,
2156 BN254::G1Point,
2157 BN254::G1Point,
2158 BN254::G1Point,
2159 BN254::G1Point,
2160 BN254::G1Point,
2161 BN254::G1Point,
2162 BN254::G1Point,
2163 BN254::G1Point,
2164 BN254::G1Point,
2165 BN254::G1Point,
2166 BN254::G1Point,
2167 BN254::G1Point,
2168 BN254::G1Point,
2169 BN254::G1Point,
2170 alloy::sol_types::sol_data::FixedBytes<32>,
2171 alloy::sol_types::sol_data::FixedBytes<32>,
2172 );
2173 #[doc(hidden)]
2174 type UnderlyingRustTuple<'a> = (
2175 alloy::sol_types::private::primitives::aliases::U256,
2176 alloy::sol_types::private::primitives::aliases::U256,
2177 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2178 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2179 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2180 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2181 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2182 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2183 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2184 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2185 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2186 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2187 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2188 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2189 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2190 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2191 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2192 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2193 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2194 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
2195 alloy::sol_types::private::FixedBytes<32>,
2196 alloy::sol_types::private::FixedBytes<32>,
2197 );
2198 #[cfg(test)]
2199 #[allow(dead_code, unreachable_patterns)]
2200 fn _type_assertion(
2201 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2202 ) {
2203 match _t {
2204 alloy_sol_types::private::AssertTypeEq::<
2205 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2206 >(_) => {}
2207 }
2208 }
2209 #[automatically_derived]
2210 #[doc(hidden)]
2211 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
2212 fn from(value: VerifyingKey) -> Self {
2213 (
2214 value.domainSize,
2215 value.numInputs,
2216 value.sigma0,
2217 value.sigma1,
2218 value.sigma2,
2219 value.sigma3,
2220 value.sigma4,
2221 value.q1,
2222 value.q2,
2223 value.q3,
2224 value.q4,
2225 value.qM12,
2226 value.qM34,
2227 value.qO,
2228 value.qC,
2229 value.qH1,
2230 value.qH2,
2231 value.qH3,
2232 value.qH4,
2233 value.qEcc,
2234 value.g2LSB,
2235 value.g2MSB,
2236 )
2237 }
2238 }
2239 #[automatically_derived]
2240 #[doc(hidden)]
2241 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
2242 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2243 Self {
2244 domainSize: tuple.0,
2245 numInputs: tuple.1,
2246 sigma0: tuple.2,
2247 sigma1: tuple.3,
2248 sigma2: tuple.4,
2249 sigma3: tuple.5,
2250 sigma4: tuple.6,
2251 q1: tuple.7,
2252 q2: tuple.8,
2253 q3: tuple.9,
2254 q4: tuple.10,
2255 qM12: tuple.11,
2256 qM34: tuple.12,
2257 qO: tuple.13,
2258 qC: tuple.14,
2259 qH1: tuple.15,
2260 qH2: tuple.16,
2261 qH3: tuple.17,
2262 qH4: tuple.18,
2263 qEcc: tuple.19,
2264 g2LSB: tuple.20,
2265 g2MSB: tuple.21,
2266 }
2267 }
2268 }
2269 #[automatically_derived]
2270 impl alloy_sol_types::SolValue for VerifyingKey {
2271 type SolType = Self;
2272 }
2273 #[automatically_derived]
2274 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
2275 #[inline]
2276 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
2277 (
2278 <alloy::sol_types::sol_data::Uint<
2279 256,
2280 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
2281 <alloy::sol_types::sol_data::Uint<
2282 256,
2283 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
2284 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
2285 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
2286 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
2287 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
2288 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
2289 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
2290 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
2291 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
2292 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
2293 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
2294 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
2295 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
2296 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
2297 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
2298 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
2299 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
2300 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
2301 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
2302 <alloy::sol_types::sol_data::FixedBytes<
2303 32,
2304 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
2305 <alloy::sol_types::sol_data::FixedBytes<
2306 32,
2307 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
2308 )
2309 }
2310 #[inline]
2311 fn stv_abi_encoded_size(&self) -> usize {
2312 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
2313 return size;
2314 }
2315 let tuple = <UnderlyingRustTuple<
2316 '_,
2317 > as ::core::convert::From<Self>>::from(self.clone());
2318 <UnderlyingSolTuple<
2319 '_,
2320 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
2321 }
2322 #[inline]
2323 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
2324 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
2325 }
2326 #[inline]
2327 fn stv_abi_encode_packed_to(
2328 &self,
2329 out: &mut alloy_sol_types::private::Vec<u8>,
2330 ) {
2331 let tuple = <UnderlyingRustTuple<
2332 '_,
2333 > as ::core::convert::From<Self>>::from(self.clone());
2334 <UnderlyingSolTuple<
2335 '_,
2336 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
2337 }
2338 #[inline]
2339 fn stv_abi_packed_encoded_size(&self) -> usize {
2340 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
2341 return size;
2342 }
2343 let tuple = <UnderlyingRustTuple<
2344 '_,
2345 > as ::core::convert::From<Self>>::from(self.clone());
2346 <UnderlyingSolTuple<
2347 '_,
2348 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
2349 }
2350 }
2351 #[automatically_derived]
2352 impl alloy_sol_types::SolType for VerifyingKey {
2353 type RustType = Self;
2354 type Token<'a> = <UnderlyingSolTuple<
2355 'a,
2356 > as alloy_sol_types::SolType>::Token<'a>;
2357 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
2358 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
2359 '_,
2360 > as alloy_sol_types::SolType>::ENCODED_SIZE;
2361 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
2362 '_,
2363 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
2364 #[inline]
2365 fn valid_token(token: &Self::Token<'_>) -> bool {
2366 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
2367 }
2368 #[inline]
2369 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
2370 let tuple = <UnderlyingSolTuple<
2371 '_,
2372 > as alloy_sol_types::SolType>::detokenize(token);
2373 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
2374 }
2375 }
2376 #[automatically_derived]
2377 impl alloy_sol_types::SolStruct for VerifyingKey {
2378 const NAME: &'static str = "VerifyingKey";
2379 #[inline]
2380 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
2381 alloy_sol_types::private::Cow::Borrowed(
2382 "VerifyingKey(uint256 domainSize,uint256 numInputs,G1Point sigma0,G1Point sigma1,G1Point sigma2,G1Point sigma3,G1Point sigma4,G1Point q1,G1Point q2,G1Point q3,G1Point q4,G1Point qM12,G1Point qM34,G1Point qO,G1Point qC,G1Point qH1,G1Point qH2,G1Point qH3,G1Point qH4,G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
2383 )
2384 }
2385 #[inline]
2386 fn eip712_components() -> alloy_sol_types::private::Vec<
2387 alloy_sol_types::private::Cow<'static, str>,
2388 > {
2389 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
2390 components
2391 .push(
2392 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2393 );
2394 components
2395 .extend(
2396 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2397 );
2398 components
2399 .push(
2400 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2401 );
2402 components
2403 .extend(
2404 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2405 );
2406 components
2407 .push(
2408 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2409 );
2410 components
2411 .extend(
2412 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2413 );
2414 components
2415 .push(
2416 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2417 );
2418 components
2419 .extend(
2420 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2421 );
2422 components
2423 .push(
2424 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2425 );
2426 components
2427 .extend(
2428 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2429 );
2430 components
2431 .push(
2432 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2433 );
2434 components
2435 .extend(
2436 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2437 );
2438 components
2439 .push(
2440 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2441 );
2442 components
2443 .extend(
2444 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2445 );
2446 components
2447 .push(
2448 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2449 );
2450 components
2451 .extend(
2452 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2453 );
2454 components
2455 .push(
2456 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2457 );
2458 components
2459 .extend(
2460 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2461 );
2462 components
2463 .push(
2464 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2465 );
2466 components
2467 .extend(
2468 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2469 );
2470 components
2471 .push(
2472 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2473 );
2474 components
2475 .extend(
2476 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2477 );
2478 components
2479 .push(
2480 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2481 );
2482 components
2483 .extend(
2484 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2485 );
2486 components
2487 .push(
2488 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2489 );
2490 components
2491 .extend(
2492 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2493 );
2494 components
2495 .push(
2496 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2497 );
2498 components
2499 .extend(
2500 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2501 );
2502 components
2503 .push(
2504 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2505 );
2506 components
2507 .extend(
2508 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2509 );
2510 components
2511 .push(
2512 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2513 );
2514 components
2515 .extend(
2516 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2517 );
2518 components
2519 .push(
2520 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2521 );
2522 components
2523 .extend(
2524 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2525 );
2526 components
2527 .push(
2528 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
2529 );
2530 components
2531 .extend(
2532 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
2533 );
2534 components
2535 }
2536 #[inline]
2537 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
2538 [
2539 <alloy::sol_types::sol_data::Uint<
2540 256,
2541 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
2542 .0,
2543 <alloy::sol_types::sol_data::Uint<
2544 256,
2545 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
2546 .0,
2547 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2548 &self.sigma0,
2549 )
2550 .0,
2551 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2552 &self.sigma1,
2553 )
2554 .0,
2555 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2556 &self.sigma2,
2557 )
2558 .0,
2559 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2560 &self.sigma3,
2561 )
2562 .0,
2563 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2564 &self.sigma4,
2565 )
2566 .0,
2567 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2568 &self.q1,
2569 )
2570 .0,
2571 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2572 &self.q2,
2573 )
2574 .0,
2575 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2576 &self.q3,
2577 )
2578 .0,
2579 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2580 &self.q4,
2581 )
2582 .0,
2583 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2584 &self.qM12,
2585 )
2586 .0,
2587 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2588 &self.qM34,
2589 )
2590 .0,
2591 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2592 &self.qO,
2593 )
2594 .0,
2595 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2596 &self.qC,
2597 )
2598 .0,
2599 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2600 &self.qH1,
2601 )
2602 .0,
2603 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2604 &self.qH2,
2605 )
2606 .0,
2607 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2608 &self.qH3,
2609 )
2610 .0,
2611 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2612 &self.qH4,
2613 )
2614 .0,
2615 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
2616 &self.qEcc,
2617 )
2618 .0,
2619 <alloy::sol_types::sol_data::FixedBytes<
2620 32,
2621 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
2622 .0,
2623 <alloy::sol_types::sol_data::FixedBytes<
2624 32,
2625 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
2626 .0,
2627 ]
2628 .concat()
2629 }
2630 }
2631 #[automatically_derived]
2632 impl alloy_sol_types::EventTopic for VerifyingKey {
2633 #[inline]
2634 fn topic_preimage_length(rust: &Self::RustType) -> usize {
2635 0usize
2636 + <alloy::sol_types::sol_data::Uint<
2637 256,
2638 > as alloy_sol_types::EventTopic>::topic_preimage_length(
2639 &rust.domainSize,
2640 )
2641 + <alloy::sol_types::sol_data::Uint<
2642 256,
2643 > as alloy_sol_types::EventTopic>::topic_preimage_length(
2644 &rust.numInputs,
2645 )
2646 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2647 &rust.sigma0,
2648 )
2649 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2650 &rust.sigma1,
2651 )
2652 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2653 &rust.sigma2,
2654 )
2655 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2656 &rust.sigma3,
2657 )
2658 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2659 &rust.sigma4,
2660 )
2661 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2662 &rust.q1,
2663 )
2664 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2665 &rust.q2,
2666 )
2667 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2668 &rust.q3,
2669 )
2670 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2671 &rust.q4,
2672 )
2673 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2674 &rust.qM12,
2675 )
2676 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2677 &rust.qM34,
2678 )
2679 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2680 &rust.qO,
2681 )
2682 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2683 &rust.qC,
2684 )
2685 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2686 &rust.qH1,
2687 )
2688 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2689 &rust.qH2,
2690 )
2691 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2692 &rust.qH3,
2693 )
2694 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2695 &rust.qH4,
2696 )
2697 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
2698 &rust.qEcc,
2699 )
2700 + <alloy::sol_types::sol_data::FixedBytes<
2701 32,
2702 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
2703 + <alloy::sol_types::sol_data::FixedBytes<
2704 32,
2705 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
2706 }
2707 #[inline]
2708 fn encode_topic_preimage(
2709 rust: &Self::RustType,
2710 out: &mut alloy_sol_types::private::Vec<u8>,
2711 ) {
2712 out.reserve(
2713 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
2714 );
2715 <alloy::sol_types::sol_data::Uint<
2716 256,
2717 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2718 &rust.domainSize,
2719 out,
2720 );
2721 <alloy::sol_types::sol_data::Uint<
2722 256,
2723 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2724 &rust.numInputs,
2725 out,
2726 );
2727 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2728 &rust.sigma0,
2729 out,
2730 );
2731 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2732 &rust.sigma1,
2733 out,
2734 );
2735 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2736 &rust.sigma2,
2737 out,
2738 );
2739 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2740 &rust.sigma3,
2741 out,
2742 );
2743 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2744 &rust.sigma4,
2745 out,
2746 );
2747 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2748 &rust.q1,
2749 out,
2750 );
2751 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2752 &rust.q2,
2753 out,
2754 );
2755 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2756 &rust.q3,
2757 out,
2758 );
2759 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2760 &rust.q4,
2761 out,
2762 );
2763 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2764 &rust.qM12,
2765 out,
2766 );
2767 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2768 &rust.qM34,
2769 out,
2770 );
2771 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2772 &rust.qO,
2773 out,
2774 );
2775 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2776 &rust.qC,
2777 out,
2778 );
2779 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2780 &rust.qH1,
2781 out,
2782 );
2783 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2784 &rust.qH2,
2785 out,
2786 );
2787 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2788 &rust.qH3,
2789 out,
2790 );
2791 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2792 &rust.qH4,
2793 out,
2794 );
2795 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2796 &rust.qEcc,
2797 out,
2798 );
2799 <alloy::sol_types::sol_data::FixedBytes<
2800 32,
2801 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2802 &rust.g2LSB,
2803 out,
2804 );
2805 <alloy::sol_types::sol_data::FixedBytes<
2806 32,
2807 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2808 &rust.g2MSB,
2809 out,
2810 );
2811 }
2812 #[inline]
2813 fn encode_topic(
2814 rust: &Self::RustType,
2815 ) -> alloy_sol_types::abi::token::WordToken {
2816 let mut out = alloy_sol_types::private::Vec::new();
2817 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2818 rust,
2819 &mut out,
2820 );
2821 alloy_sol_types::abi::token::WordToken(
2822 alloy_sol_types::private::keccak256(out),
2823 )
2824 }
2825 }
2826 };
2827 #[derive(serde::Serialize, serde::Deserialize)]
2828 #[derive()]
2829 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2834 #[derive(Clone)]
2835 pub struct verifyCall {
2836 #[allow(missing_docs)]
2837 pub verifyingKey: <VerifyingKey as alloy::sol_types::SolType>::RustType,
2838 #[allow(missing_docs)]
2839 pub publicInput: alloy::sol_types::private::Vec<
2840 alloy::sol_types::private::primitives::aliases::U256,
2841 >,
2842 #[allow(missing_docs)]
2843 pub proof: <PlonkProof as alloy::sol_types::SolType>::RustType,
2844 }
2845 #[derive(serde::Serialize, serde::Deserialize)]
2846 #[derive(Default, Debug, PartialEq, Eq, Hash)]
2847 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
2849 #[derive(Clone)]
2850 pub struct verifyReturn {
2851 #[allow(missing_docs)]
2852 pub _0: bool,
2853 }
2854 #[allow(
2855 non_camel_case_types,
2856 non_snake_case,
2857 clippy::pub_underscore_fields,
2858 clippy::style
2859 )]
2860 const _: () = {
2861 use alloy::sol_types as alloy_sol_types;
2862 {
2863 #[doc(hidden)]
2864 #[allow(dead_code)]
2865 type UnderlyingSolTuple<'a> = (
2866 VerifyingKey,
2867 alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
2868 PlonkProof,
2869 );
2870 #[doc(hidden)]
2871 type UnderlyingRustTuple<'a> = (
2872 <VerifyingKey as alloy::sol_types::SolType>::RustType,
2873 alloy::sol_types::private::Vec<
2874 alloy::sol_types::private::primitives::aliases::U256,
2875 >,
2876 <PlonkProof as alloy::sol_types::SolType>::RustType,
2877 );
2878 #[cfg(test)]
2879 #[allow(dead_code, unreachable_patterns)]
2880 fn _type_assertion(
2881 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2882 ) {
2883 match _t {
2884 alloy_sol_types::private::AssertTypeEq::<
2885 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2886 >(_) => {}
2887 }
2888 }
2889 #[automatically_derived]
2890 #[doc(hidden)]
2891 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
2892 fn from(value: verifyCall) -> Self {
2893 (value.verifyingKey, value.publicInput, value.proof)
2894 }
2895 }
2896 #[automatically_derived]
2897 #[doc(hidden)]
2898 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
2899 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2900 Self {
2901 verifyingKey: tuple.0,
2902 publicInput: tuple.1,
2903 proof: tuple.2,
2904 }
2905 }
2906 }
2907 }
2908 {
2909 #[doc(hidden)]
2910 #[allow(dead_code)]
2911 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
2912 #[doc(hidden)]
2913 type UnderlyingRustTuple<'a> = (bool,);
2914 #[cfg(test)]
2915 #[allow(dead_code, unreachable_patterns)]
2916 fn _type_assertion(
2917 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
2918 ) {
2919 match _t {
2920 alloy_sol_types::private::AssertTypeEq::<
2921 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
2922 >(_) => {}
2923 }
2924 }
2925 #[automatically_derived]
2926 #[doc(hidden)]
2927 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
2928 fn from(value: verifyReturn) -> Self {
2929 (value._0,)
2930 }
2931 }
2932 #[automatically_derived]
2933 #[doc(hidden)]
2934 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
2935 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
2936 Self { _0: tuple.0 }
2937 }
2938 }
2939 }
2940 #[automatically_derived]
2941 impl alloy_sol_types::SolCall for verifyCall {
2942 type Parameters<'a> = (
2943 VerifyingKey,
2944 alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<256>>,
2945 PlonkProof,
2946 );
2947 type Token<'a> = <Self::Parameters<
2948 'a,
2949 > as alloy_sol_types::SolType>::Token<'a>;
2950 type Return = bool;
2951 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
2952 type ReturnToken<'a> = <Self::ReturnTuple<
2953 'a,
2954 > as alloy_sol_types::SolType>::Token<'a>;
2955 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))";
2956 const SELECTOR: [u8; 4] = [226u8, 96u8, 80u8, 16u8];
2957 #[inline]
2958 fn new<'a>(
2959 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2960 ) -> Self {
2961 tuple.into()
2962 }
2963 #[inline]
2964 fn tokenize(&self) -> Self::Token<'_> {
2965 (
2966 <VerifyingKey as alloy_sol_types::SolType>::tokenize(
2967 &self.verifyingKey,
2968 ),
2969 <alloy::sol_types::sol_data::Array<
2970 alloy::sol_types::sol_data::Uint<256>,
2971 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
2972 <PlonkProof as alloy_sol_types::SolType>::tokenize(&self.proof),
2973 )
2974 }
2975 #[inline]
2976 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
2977 (
2978 <alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(
2979 ret,
2980 ),
2981 )
2982 }
2983 #[inline]
2984 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
2985 <Self::ReturnTuple<
2986 '_,
2987 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
2988 .map(|r| {
2989 let r: verifyReturn = r.into();
2990 r._0
2991 })
2992 }
2993 #[inline]
2994 fn abi_decode_returns_validate(
2995 data: &[u8],
2996 ) -> alloy_sol_types::Result<Self::Return> {
2997 <Self::ReturnTuple<
2998 '_,
2999 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
3000 .map(|r| {
3001 let r: verifyReturn = r.into();
3002 r._0
3003 })
3004 }
3005 }
3006 };
3007 #[derive(Clone)]
3009 #[derive(serde::Serialize, serde::Deserialize)]
3010 #[derive()]
3011 pub enum IPlonkVerifierCalls {
3012 #[allow(missing_docs)]
3013 verify(verifyCall),
3014 }
3015 impl IPlonkVerifierCalls {
3016 pub const SELECTORS: &'static [[u8; 4usize]] = &[[226u8, 96u8, 80u8, 16u8]];
3023 pub const VARIANT_NAMES: &'static [&'static str] = &[::core::stringify!(verify)];
3025 pub const SIGNATURES: &'static [&'static str] = &[
3027 <verifyCall as alloy_sol_types::SolCall>::SIGNATURE,
3028 ];
3029 #[inline]
3031 pub fn signature_by_selector(
3032 selector: [u8; 4usize],
3033 ) -> ::core::option::Option<&'static str> {
3034 match Self::SELECTORS.binary_search(&selector) {
3035 ::core::result::Result::Ok(idx) => {
3036 ::core::option::Option::Some(Self::SIGNATURES[idx])
3037 }
3038 ::core::result::Result::Err(_) => ::core::option::Option::None,
3039 }
3040 }
3041 #[inline]
3043 pub fn name_by_selector(
3044 selector: [u8; 4usize],
3045 ) -> ::core::option::Option<&'static str> {
3046 let sig = Self::signature_by_selector(selector)?;
3047 sig.split_once('(').map(|(name, _)| name)
3048 }
3049 }
3050 #[automatically_derived]
3051 impl alloy_sol_types::SolInterface for IPlonkVerifierCalls {
3052 const NAME: &'static str = "IPlonkVerifierCalls";
3053 const MIN_DATA_LENGTH: usize = 512usize;
3054 const COUNT: usize = 1usize;
3055 #[inline]
3056 fn selector(&self) -> [u8; 4] {
3057 match self {
3058 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
3059 }
3060 }
3061 #[inline]
3062 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
3063 Self::SELECTORS.get(i).copied()
3064 }
3065 #[inline]
3066 fn valid_selector(selector: [u8; 4]) -> bool {
3067 Self::SELECTORS.binary_search(&selector).is_ok()
3068 }
3069 #[inline]
3070 #[allow(non_snake_case)]
3071 fn abi_decode_raw(
3072 selector: [u8; 4],
3073 data: &[u8],
3074 ) -> alloy_sol_types::Result<Self> {
3075 static DECODE_SHIMS: &[fn(
3076 &[u8],
3077 ) -> alloy_sol_types::Result<IPlonkVerifierCalls>] = &[
3078 {
3079 fn verify(
3080 data: &[u8],
3081 ) -> alloy_sol_types::Result<IPlonkVerifierCalls> {
3082 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
3083 .map(IPlonkVerifierCalls::verify)
3084 }
3085 verify
3086 },
3087 ];
3088 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
3089 return Err(
3090 alloy_sol_types::Error::unknown_selector(
3091 <Self as alloy_sol_types::SolInterface>::NAME,
3092 selector,
3093 ),
3094 );
3095 };
3096 DECODE_SHIMS[idx](data)
3097 }
3098 #[inline]
3099 #[allow(non_snake_case)]
3100 fn abi_decode_raw_validate(
3101 selector: [u8; 4],
3102 data: &[u8],
3103 ) -> alloy_sol_types::Result<Self> {
3104 static DECODE_VALIDATE_SHIMS: &[fn(
3105 &[u8],
3106 ) -> alloy_sol_types::Result<IPlonkVerifierCalls>] = &[
3107 {
3108 fn verify(
3109 data: &[u8],
3110 ) -> alloy_sol_types::Result<IPlonkVerifierCalls> {
3111 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
3112 data,
3113 )
3114 .map(IPlonkVerifierCalls::verify)
3115 }
3116 verify
3117 },
3118 ];
3119 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
3120 return Err(
3121 alloy_sol_types::Error::unknown_selector(
3122 <Self as alloy_sol_types::SolInterface>::NAME,
3123 selector,
3124 ),
3125 );
3126 };
3127 DECODE_VALIDATE_SHIMS[idx](data)
3128 }
3129 #[inline]
3130 fn abi_encoded_size(&self) -> usize {
3131 match self {
3132 Self::verify(inner) => {
3133 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
3134 }
3135 }
3136 }
3137 #[inline]
3138 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
3139 match self {
3140 Self::verify(inner) => {
3141 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
3142 }
3143 }
3144 }
3145 }
3146 use alloy::contract as alloy_contract;
3147 #[inline]
3151 pub const fn new<
3152 P: alloy_contract::private::Provider<N>,
3153 N: alloy_contract::private::Network,
3154 >(
3155 address: alloy_sol_types::private::Address,
3156 __provider: P,
3157 ) -> IPlonkVerifierInstance<P, N> {
3158 IPlonkVerifierInstance::<P, N>::new(address, __provider)
3159 }
3160 #[inline]
3166 pub fn deploy<
3167 P: alloy_contract::private::Provider<N>,
3168 N: alloy_contract::private::Network,
3169 >(
3170 __provider: P,
3171 ) -> impl ::core::future::Future<
3172 Output = alloy_contract::Result<IPlonkVerifierInstance<P, N>>,
3173 > {
3174 IPlonkVerifierInstance::<P, N>::deploy(__provider)
3175 }
3176 #[inline]
3182 pub fn deploy_builder<
3183 P: alloy_contract::private::Provider<N>,
3184 N: alloy_contract::private::Network,
3185 >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
3186 IPlonkVerifierInstance::<P, N>::deploy_builder(__provider)
3187 }
3188 #[derive(Clone)]
3200 pub struct IPlonkVerifierInstance<P, N = alloy_contract::private::Ethereum> {
3201 address: alloy_sol_types::private::Address,
3202 provider: P,
3203 _network: ::core::marker::PhantomData<N>,
3204 }
3205 #[automatically_derived]
3206 impl<P, N> ::core::fmt::Debug for IPlonkVerifierInstance<P, N> {
3207 #[inline]
3208 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3209 f.debug_tuple("IPlonkVerifierInstance").field(&self.address).finish()
3210 }
3211 }
3212 impl<
3214 P: alloy_contract::private::Provider<N>,
3215 N: alloy_contract::private::Network,
3216 > IPlonkVerifierInstance<P, N> {
3217 #[inline]
3221 pub const fn new(
3222 address: alloy_sol_types::private::Address,
3223 __provider: P,
3224 ) -> Self {
3225 Self {
3226 address,
3227 provider: __provider,
3228 _network: ::core::marker::PhantomData,
3229 }
3230 }
3231 #[inline]
3237 pub async fn deploy(
3238 __provider: P,
3239 ) -> alloy_contract::Result<IPlonkVerifierInstance<P, N>> {
3240 let call_builder = Self::deploy_builder(__provider);
3241 let contract_address = call_builder.deploy().await?;
3242 Ok(Self::new(contract_address, call_builder.provider))
3243 }
3244 #[inline]
3250 pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
3251 alloy_contract::RawCallBuilder::new_raw_deploy(
3252 __provider,
3253 ::core::clone::Clone::clone(&BYTECODE),
3254 )
3255 }
3256 #[inline]
3258 pub const fn address(&self) -> &alloy_sol_types::private::Address {
3259 &self.address
3260 }
3261 #[inline]
3263 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
3264 self.address = address;
3265 }
3266 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
3268 self.set_address(address);
3269 self
3270 }
3271 #[inline]
3273 pub const fn provider(&self) -> &P {
3274 &self.provider
3275 }
3276 }
3277 impl<P: ::core::clone::Clone, N> IPlonkVerifierInstance<&P, N> {
3278 #[inline]
3280 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<P, N> {
3281 IPlonkVerifierInstance {
3282 address: self.address,
3283 provider: ::core::clone::Clone::clone(&self.provider),
3284 _network: ::core::marker::PhantomData,
3285 }
3286 }
3287 }
3288 impl<
3290 P: alloy_contract::private::Provider<N>,
3291 N: alloy_contract::private::Network,
3292 > IPlonkVerifierInstance<P, N> {
3293 pub fn call_builder<C: alloy_sol_types::SolCall>(
3298 &self,
3299 call: &C,
3300 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
3301 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
3302 }
3303 pub fn verify(
3305 &self,
3306 verifyingKey: <VerifyingKey as alloy::sol_types::SolType>::RustType,
3307 publicInput: alloy::sol_types::private::Vec<
3308 alloy::sol_types::private::primitives::aliases::U256,
3309 >,
3310 proof: <PlonkProof as alloy::sol_types::SolType>::RustType,
3311 ) -> alloy_contract::SolCallBuilder<&P, verifyCall, N> {
3312 self.call_builder(
3313 &verifyCall {
3314 verifyingKey,
3315 publicInput,
3316 proof,
3317 },
3318 )
3319 }
3320 }
3321 impl<
3323 P: alloy_contract::private::Provider<N>,
3324 N: alloy_contract::private::Network,
3325 > IPlonkVerifierInstance<P, N> {
3326 pub fn event_filter<E: alloy_sol_types::SolEvent>(
3331 &self,
3332 ) -> alloy_contract::Event<&P, E, N> {
3333 alloy_contract::Event::new_sol(&self.provider, &self.address)
3334 }
3335 }
3336}