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