1#[allow(
90 non_camel_case_types,
91 non_snake_case,
92 clippy::pub_underscore_fields,
93 clippy::style,
94 clippy::empty_structs_with_brackets
95)]
96pub mod ERC1967Proxy {
97 use super::*;
98 use alloy::sol_types as alloy_sol_types;
99 #[rustfmt::skip]
105 #[allow(clippy::all)]
106 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
107 b"`\x80`@R`@Qa\x03\xA78\x03\x80a\x03\xA7\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x02<V[a\0,\x82\x82a\x003V[PPa\x03!V[a\0<\x82a\0\x91V[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90_\x90\xA2\x80Q\x15a\0\x85Wa\0\x80\x82\x82a\x01\x0CV[PPPV[a\0\x8Da\x01\x7FV[PPV[\x80`\x01`\x01`\xA0\x1B\x03\x16;_\x03a\0\xCBW`@QcL\x9C\x8C\xE3`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16`\x04\x82\x01R`$\x01[`@Q\x80\x91\x03\x90\xFD[\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBC\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[``__\x84`\x01`\x01`\xA0\x1B\x03\x16\x84`@Qa\x01(\x91\x90a\x03\x0BV[_`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80_\x81\x14a\x01`W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x01eV[``\x91P[P\x90\x92P\x90Pa\x01v\x85\x83\x83a\x01\xA0V[\x95\x94PPPPPV[4\x15a\x01\x9EW`@Qc\xB3\x98\x97\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[V[``\x82a\x01\xB5Wa\x01\xB0\x82a\x01\xFFV[a\x01\xF8V[\x81Q\x15\x80\x15a\x01\xCCWP`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15[\x15a\x01\xF5W`@Qc\x99\x96\xB3\x15`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16`\x04\x82\x01R`$\x01a\0\xC2V[P\x80[\x93\x92PPPV[\x80Q\x15a\x02\x0FW\x80Q\x80\x82` \x01\xFD[`@Qc\n\x12\xF5!`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[__`@\x83\x85\x03\x12\x15a\x02MW__\xFD[\x82Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02cW__\xFD[` \x84\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02~W__\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\x02\x8EW__\xFD[\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02\xA7Wa\x02\xA7a\x02(V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x02\xD5Wa\x02\xD5a\x02(V[`@R\x81\x81R\x82\x82\x01` \x01\x87\x10\x15a\x02\xECW__\xFD[\x81` \x84\x01` \x83\x01^_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92\x90PV[_\x82Q\x80` \x85\x01\x84^_\x92\x01\x91\x82RP\x91\x90PV[`z\x80a\x03-_9_\xF3\xFE`\x80`@R`\n`\x0CV[\0[`\x18`\x14`\x1AV[`PV[V[_`K\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90P\x90V[6__7__6_\x84Z\xF4=__>\x80\x80\x15`iW=_\xF3[=_\xFD\xFE\xA1dsolcC\0\x08\x1C\0\n",
108 );
109 #[rustfmt::skip]
115 #[allow(clippy::all)]
116 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
117 b"`\x80`@R`\n`\x0CV[\0[`\x18`\x14`\x1AV[`PV[V[_`K\x7F6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCT`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90P\x90V[6__7__6_\x84Z\xF4=__>\x80\x80\x15`iW=_\xF3[=_\xFD\xFE\xA1dsolcC\0\x08\x1C\0\n",
118 );
119 #[derive(serde::Serialize, serde::Deserialize)]
120 #[derive(Default, Debug, PartialEq, Eq, Hash)]
121 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
126 #[derive(Clone)]
127 pub struct AddressEmptyCode {
128 #[allow(missing_docs)]
129 pub target: alloy::sol_types::private::Address,
130 }
131 #[allow(
132 non_camel_case_types,
133 non_snake_case,
134 clippy::pub_underscore_fields,
135 clippy::style
136 )]
137 const _: () = {
138 use alloy::sol_types as alloy_sol_types;
139 #[doc(hidden)]
140 #[allow(dead_code)]
141 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
142 #[doc(hidden)]
143 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
144 #[cfg(test)]
145 #[allow(dead_code, unreachable_patterns)]
146 fn _type_assertion(
147 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
148 ) {
149 match _t {
150 alloy_sol_types::private::AssertTypeEq::<
151 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
152 >(_) => {}
153 }
154 }
155 #[automatically_derived]
156 #[doc(hidden)]
157 impl ::core::convert::From<AddressEmptyCode> for UnderlyingRustTuple<'_> {
158 fn from(value: AddressEmptyCode) -> Self {
159 (value.target,)
160 }
161 }
162 #[automatically_derived]
163 #[doc(hidden)]
164 impl ::core::convert::From<UnderlyingRustTuple<'_>> for AddressEmptyCode {
165 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
166 Self { target: tuple.0 }
167 }
168 }
169 #[automatically_derived]
170 impl alloy_sol_types::SolError for AddressEmptyCode {
171 type Parameters<'a> = UnderlyingSolTuple<'a>;
172 type Token<'a> = <Self::Parameters<
173 'a,
174 > as alloy_sol_types::SolType>::Token<'a>;
175 const SIGNATURE: &'static str = "AddressEmptyCode(address)";
176 const SELECTOR: [u8; 4] = [153u8, 150u8, 179u8, 21u8];
177 #[inline]
178 fn new<'a>(
179 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
180 ) -> Self {
181 tuple.into()
182 }
183 #[inline]
184 fn tokenize(&self) -> Self::Token<'_> {
185 (
186 <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
187 &self.target,
188 ),
189 )
190 }
191 #[inline]
192 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
193 <Self::Parameters<
194 '_,
195 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
196 .map(Self::new)
197 }
198 }
199 };
200 #[derive(serde::Serialize, serde::Deserialize)]
201 #[derive(Default, Debug, PartialEq, Eq, Hash)]
202 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
207 #[derive(Clone)]
208 pub struct ERC1967InvalidImplementation {
209 #[allow(missing_docs)]
210 pub implementation: alloy::sol_types::private::Address,
211 }
212 #[allow(
213 non_camel_case_types,
214 non_snake_case,
215 clippy::pub_underscore_fields,
216 clippy::style
217 )]
218 const _: () = {
219 use alloy::sol_types as alloy_sol_types;
220 #[doc(hidden)]
221 #[allow(dead_code)]
222 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
223 #[doc(hidden)]
224 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
225 #[cfg(test)]
226 #[allow(dead_code, unreachable_patterns)]
227 fn _type_assertion(
228 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
229 ) {
230 match _t {
231 alloy_sol_types::private::AssertTypeEq::<
232 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
233 >(_) => {}
234 }
235 }
236 #[automatically_derived]
237 #[doc(hidden)]
238 impl ::core::convert::From<ERC1967InvalidImplementation>
239 for UnderlyingRustTuple<'_> {
240 fn from(value: ERC1967InvalidImplementation) -> Self {
241 (value.implementation,)
242 }
243 }
244 #[automatically_derived]
245 #[doc(hidden)]
246 impl ::core::convert::From<UnderlyingRustTuple<'_>>
247 for ERC1967InvalidImplementation {
248 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
249 Self { implementation: tuple.0 }
250 }
251 }
252 #[automatically_derived]
253 impl alloy_sol_types::SolError for ERC1967InvalidImplementation {
254 type Parameters<'a> = UnderlyingSolTuple<'a>;
255 type Token<'a> = <Self::Parameters<
256 'a,
257 > as alloy_sol_types::SolType>::Token<'a>;
258 const SIGNATURE: &'static str = "ERC1967InvalidImplementation(address)";
259 const SELECTOR: [u8; 4] = [76u8, 156u8, 140u8, 227u8];
260 #[inline]
261 fn new<'a>(
262 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
263 ) -> Self {
264 tuple.into()
265 }
266 #[inline]
267 fn tokenize(&self) -> Self::Token<'_> {
268 (
269 <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
270 &self.implementation,
271 ),
272 )
273 }
274 #[inline]
275 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
276 <Self::Parameters<
277 '_,
278 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
279 .map(Self::new)
280 }
281 }
282 };
283 #[derive(serde::Serialize, serde::Deserialize)]
284 #[derive(Default, Debug, PartialEq, Eq, Hash)]
285 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
290 #[derive(Clone)]
291 pub struct ERC1967NonPayable;
292 #[allow(
293 non_camel_case_types,
294 non_snake_case,
295 clippy::pub_underscore_fields,
296 clippy::style
297 )]
298 const _: () = {
299 use alloy::sol_types as alloy_sol_types;
300 #[doc(hidden)]
301 #[allow(dead_code)]
302 type UnderlyingSolTuple<'a> = ();
303 #[doc(hidden)]
304 type UnderlyingRustTuple<'a> = ();
305 #[cfg(test)]
306 #[allow(dead_code, unreachable_patterns)]
307 fn _type_assertion(
308 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
309 ) {
310 match _t {
311 alloy_sol_types::private::AssertTypeEq::<
312 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
313 >(_) => {}
314 }
315 }
316 #[automatically_derived]
317 #[doc(hidden)]
318 impl ::core::convert::From<ERC1967NonPayable> for UnderlyingRustTuple<'_> {
319 fn from(value: ERC1967NonPayable) -> Self {
320 ()
321 }
322 }
323 #[automatically_derived]
324 #[doc(hidden)]
325 impl ::core::convert::From<UnderlyingRustTuple<'_>> for ERC1967NonPayable {
326 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
327 Self
328 }
329 }
330 #[automatically_derived]
331 impl alloy_sol_types::SolError for ERC1967NonPayable {
332 type Parameters<'a> = UnderlyingSolTuple<'a>;
333 type Token<'a> = <Self::Parameters<
334 'a,
335 > as alloy_sol_types::SolType>::Token<'a>;
336 const SIGNATURE: &'static str = "ERC1967NonPayable()";
337 const SELECTOR: [u8; 4] = [179u8, 152u8, 151u8, 159u8];
338 #[inline]
339 fn new<'a>(
340 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
341 ) -> Self {
342 tuple.into()
343 }
344 #[inline]
345 fn tokenize(&self) -> Self::Token<'_> {
346 ()
347 }
348 #[inline]
349 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
350 <Self::Parameters<
351 '_,
352 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
353 .map(Self::new)
354 }
355 }
356 };
357 #[derive(serde::Serialize, serde::Deserialize)]
358 #[derive(Default, Debug, PartialEq, Eq, Hash)]
359 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
364 #[derive(Clone)]
365 pub struct FailedInnerCall;
366 #[allow(
367 non_camel_case_types,
368 non_snake_case,
369 clippy::pub_underscore_fields,
370 clippy::style
371 )]
372 const _: () = {
373 use alloy::sol_types as alloy_sol_types;
374 #[doc(hidden)]
375 #[allow(dead_code)]
376 type UnderlyingSolTuple<'a> = ();
377 #[doc(hidden)]
378 type UnderlyingRustTuple<'a> = ();
379 #[cfg(test)]
380 #[allow(dead_code, unreachable_patterns)]
381 fn _type_assertion(
382 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
383 ) {
384 match _t {
385 alloy_sol_types::private::AssertTypeEq::<
386 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
387 >(_) => {}
388 }
389 }
390 #[automatically_derived]
391 #[doc(hidden)]
392 impl ::core::convert::From<FailedInnerCall> for UnderlyingRustTuple<'_> {
393 fn from(value: FailedInnerCall) -> Self {
394 ()
395 }
396 }
397 #[automatically_derived]
398 #[doc(hidden)]
399 impl ::core::convert::From<UnderlyingRustTuple<'_>> for FailedInnerCall {
400 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
401 Self
402 }
403 }
404 #[automatically_derived]
405 impl alloy_sol_types::SolError for FailedInnerCall {
406 type Parameters<'a> = UnderlyingSolTuple<'a>;
407 type Token<'a> = <Self::Parameters<
408 'a,
409 > as alloy_sol_types::SolType>::Token<'a>;
410 const SIGNATURE: &'static str = "FailedInnerCall()";
411 const SELECTOR: [u8; 4] = [20u8, 37u8, 234u8, 66u8];
412 #[inline]
413 fn new<'a>(
414 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
415 ) -> Self {
416 tuple.into()
417 }
418 #[inline]
419 fn tokenize(&self) -> Self::Token<'_> {
420 ()
421 }
422 #[inline]
423 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
424 <Self::Parameters<
425 '_,
426 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
427 .map(Self::new)
428 }
429 }
430 };
431 #[derive(serde::Serialize, serde::Deserialize)]
432 #[derive(Default, Debug, PartialEq, Eq, Hash)]
433 #[allow(
438 non_camel_case_types,
439 non_snake_case,
440 clippy::pub_underscore_fields,
441 clippy::style
442 )]
443 #[derive(Clone)]
444 pub struct Upgraded {
445 #[allow(missing_docs)]
446 pub implementation: alloy::sol_types::private::Address,
447 }
448 #[allow(
449 non_camel_case_types,
450 non_snake_case,
451 clippy::pub_underscore_fields,
452 clippy::style
453 )]
454 const _: () = {
455 use alloy::sol_types as alloy_sol_types;
456 #[automatically_derived]
457 impl alloy_sol_types::SolEvent for Upgraded {
458 type DataTuple<'a> = ();
459 type DataToken<'a> = <Self::DataTuple<
460 'a,
461 > as alloy_sol_types::SolType>::Token<'a>;
462 type TopicList = (
463 alloy_sol_types::sol_data::FixedBytes<32>,
464 alloy::sol_types::sol_data::Address,
465 );
466 const SIGNATURE: &'static str = "Upgraded(address)";
467 const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
468 188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
469 179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
470 12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
471 ]);
472 const ANONYMOUS: bool = false;
473 #[allow(unused_variables)]
474 #[inline]
475 fn new(
476 topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
477 data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
478 ) -> Self {
479 Self { implementation: topics.1 }
480 }
481 #[inline]
482 fn check_signature(
483 topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
484 ) -> alloy_sol_types::Result<()> {
485 if topics.0 != Self::SIGNATURE_HASH {
486 return Err(
487 alloy_sol_types::Error::invalid_event_signature_hash(
488 Self::SIGNATURE,
489 topics.0,
490 Self::SIGNATURE_HASH,
491 ),
492 );
493 }
494 Ok(())
495 }
496 #[inline]
497 fn tokenize_body(&self) -> Self::DataToken<'_> {
498 ()
499 }
500 #[inline]
501 fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
502 (Self::SIGNATURE_HASH.into(), self.implementation.clone())
503 }
504 #[inline]
505 fn encode_topics_raw(
506 &self,
507 out: &mut [alloy_sol_types::abi::token::WordToken],
508 ) -> alloy_sol_types::Result<()> {
509 if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
510 return Err(alloy_sol_types::Error::Overrun);
511 }
512 out[0usize] = alloy_sol_types::abi::token::WordToken(
513 Self::SIGNATURE_HASH,
514 );
515 out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
516 &self.implementation,
517 );
518 Ok(())
519 }
520 }
521 #[automatically_derived]
522 impl alloy_sol_types::private::IntoLogData for Upgraded {
523 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
524 From::from(self)
525 }
526 fn into_log_data(self) -> alloy_sol_types::private::LogData {
527 From::from(&self)
528 }
529 }
530 #[automatically_derived]
531 impl From<&Upgraded> for alloy_sol_types::private::LogData {
532 #[inline]
533 fn from(this: &Upgraded) -> alloy_sol_types::private::LogData {
534 alloy_sol_types::SolEvent::encode_log_data(this)
535 }
536 }
537 };
538 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
543 #[derive(Clone)]
544 pub struct constructorCall {
545 #[allow(missing_docs)]
546 pub implementation: alloy::sol_types::private::Address,
547 #[allow(missing_docs)]
548 pub _data: alloy::sol_types::private::Bytes,
549 }
550 const _: () = {
551 use alloy::sol_types as alloy_sol_types;
552 {
553 #[doc(hidden)]
554 #[allow(dead_code)]
555 type UnderlyingSolTuple<'a> = (
556 alloy::sol_types::sol_data::Address,
557 alloy::sol_types::sol_data::Bytes,
558 );
559 #[doc(hidden)]
560 type UnderlyingRustTuple<'a> = (
561 alloy::sol_types::private::Address,
562 alloy::sol_types::private::Bytes,
563 );
564 #[cfg(test)]
565 #[allow(dead_code, unreachable_patterns)]
566 fn _type_assertion(
567 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
568 ) {
569 match _t {
570 alloy_sol_types::private::AssertTypeEq::<
571 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
572 >(_) => {}
573 }
574 }
575 #[automatically_derived]
576 #[doc(hidden)]
577 impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
578 fn from(value: constructorCall) -> Self {
579 (value.implementation, value._data)
580 }
581 }
582 #[automatically_derived]
583 #[doc(hidden)]
584 impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
585 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
586 Self {
587 implementation: tuple.0,
588 _data: tuple.1,
589 }
590 }
591 }
592 }
593 #[automatically_derived]
594 impl alloy_sol_types::SolConstructor for constructorCall {
595 type Parameters<'a> = (
596 alloy::sol_types::sol_data::Address,
597 alloy::sol_types::sol_data::Bytes,
598 );
599 type Token<'a> = <Self::Parameters<
600 'a,
601 > as alloy_sol_types::SolType>::Token<'a>;
602 #[inline]
603 fn new<'a>(
604 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
605 ) -> Self {
606 tuple.into()
607 }
608 #[inline]
609 fn tokenize(&self) -> Self::Token<'_> {
610 (
611 <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
612 &self.implementation,
613 ),
614 <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
615 &self._data,
616 ),
617 )
618 }
619 }
620 };
621 #[derive(Clone)]
623 #[derive(serde::Serialize, serde::Deserialize)]
624 #[derive(Debug, PartialEq, Eq, Hash)]
625 pub enum ERC1967ProxyErrors {
626 #[allow(missing_docs)]
627 AddressEmptyCode(AddressEmptyCode),
628 #[allow(missing_docs)]
629 ERC1967InvalidImplementation(ERC1967InvalidImplementation),
630 #[allow(missing_docs)]
631 ERC1967NonPayable(ERC1967NonPayable),
632 #[allow(missing_docs)]
633 FailedInnerCall(FailedInnerCall),
634 }
635 impl ERC1967ProxyErrors {
636 pub const SELECTORS: &'static [[u8; 4usize]] = &[
643 [20u8, 37u8, 234u8, 66u8],
644 [76u8, 156u8, 140u8, 227u8],
645 [153u8, 150u8, 179u8, 21u8],
646 [179u8, 152u8, 151u8, 159u8],
647 ];
648 pub const VARIANT_NAMES: &'static [&'static str] = &[
650 ::core::stringify!(FailedInnerCall),
651 ::core::stringify!(ERC1967InvalidImplementation),
652 ::core::stringify!(AddressEmptyCode),
653 ::core::stringify!(ERC1967NonPayable),
654 ];
655 pub const SIGNATURES: &'static [&'static str] = &[
657 <FailedInnerCall as alloy_sol_types::SolError>::SIGNATURE,
658 <ERC1967InvalidImplementation as alloy_sol_types::SolError>::SIGNATURE,
659 <AddressEmptyCode as alloy_sol_types::SolError>::SIGNATURE,
660 <ERC1967NonPayable as alloy_sol_types::SolError>::SIGNATURE,
661 ];
662 #[inline]
664 pub fn signature_by_selector(
665 selector: [u8; 4usize],
666 ) -> ::core::option::Option<&'static str> {
667 match Self::SELECTORS.binary_search(&selector) {
668 ::core::result::Result::Ok(idx) => {
669 ::core::option::Option::Some(Self::SIGNATURES[idx])
670 }
671 ::core::result::Result::Err(_) => ::core::option::Option::None,
672 }
673 }
674 #[inline]
676 pub fn name_by_selector(
677 selector: [u8; 4usize],
678 ) -> ::core::option::Option<&'static str> {
679 let sig = Self::signature_by_selector(selector)?;
680 sig.split_once('(').map(|(name, _)| name)
681 }
682 }
683 #[automatically_derived]
684 impl alloy_sol_types::SolInterface for ERC1967ProxyErrors {
685 const NAME: &'static str = "ERC1967ProxyErrors";
686 const MIN_DATA_LENGTH: usize = 0usize;
687 const COUNT: usize = 4usize;
688 #[inline]
689 fn selector(&self) -> [u8; 4] {
690 match self {
691 Self::AddressEmptyCode(_) => {
692 <AddressEmptyCode as alloy_sol_types::SolError>::SELECTOR
693 }
694 Self::ERC1967InvalidImplementation(_) => {
695 <ERC1967InvalidImplementation as alloy_sol_types::SolError>::SELECTOR
696 }
697 Self::ERC1967NonPayable(_) => {
698 <ERC1967NonPayable as alloy_sol_types::SolError>::SELECTOR
699 }
700 Self::FailedInnerCall(_) => {
701 <FailedInnerCall as alloy_sol_types::SolError>::SELECTOR
702 }
703 }
704 }
705 #[inline]
706 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
707 Self::SELECTORS.get(i).copied()
708 }
709 #[inline]
710 fn valid_selector(selector: [u8; 4]) -> bool {
711 Self::SELECTORS.binary_search(&selector).is_ok()
712 }
713 #[inline]
714 #[allow(non_snake_case)]
715 fn abi_decode_raw(
716 selector: [u8; 4],
717 data: &[u8],
718 ) -> alloy_sol_types::Result<Self> {
719 static DECODE_SHIMS: &[fn(
720 &[u8],
721 ) -> alloy_sol_types::Result<ERC1967ProxyErrors>] = &[
722 {
723 fn FailedInnerCall(
724 data: &[u8],
725 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
726 <FailedInnerCall as alloy_sol_types::SolError>::abi_decode_raw(
727 data,
728 )
729 .map(ERC1967ProxyErrors::FailedInnerCall)
730 }
731 FailedInnerCall
732 },
733 {
734 fn ERC1967InvalidImplementation(
735 data: &[u8],
736 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
737 <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_decode_raw(
738 data,
739 )
740 .map(ERC1967ProxyErrors::ERC1967InvalidImplementation)
741 }
742 ERC1967InvalidImplementation
743 },
744 {
745 fn AddressEmptyCode(
746 data: &[u8],
747 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
748 <AddressEmptyCode as alloy_sol_types::SolError>::abi_decode_raw(
749 data,
750 )
751 .map(ERC1967ProxyErrors::AddressEmptyCode)
752 }
753 AddressEmptyCode
754 },
755 {
756 fn ERC1967NonPayable(
757 data: &[u8],
758 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
759 <ERC1967NonPayable as alloy_sol_types::SolError>::abi_decode_raw(
760 data,
761 )
762 .map(ERC1967ProxyErrors::ERC1967NonPayable)
763 }
764 ERC1967NonPayable
765 },
766 ];
767 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
768 return Err(
769 alloy_sol_types::Error::unknown_selector(
770 <Self as alloy_sol_types::SolInterface>::NAME,
771 selector,
772 ),
773 );
774 };
775 DECODE_SHIMS[idx](data)
776 }
777 #[inline]
778 #[allow(non_snake_case)]
779 fn abi_decode_raw_validate(
780 selector: [u8; 4],
781 data: &[u8],
782 ) -> alloy_sol_types::Result<Self> {
783 static DECODE_VALIDATE_SHIMS: &[fn(
784 &[u8],
785 ) -> alloy_sol_types::Result<ERC1967ProxyErrors>] = &[
786 {
787 fn FailedInnerCall(
788 data: &[u8],
789 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
790 <FailedInnerCall as alloy_sol_types::SolError>::abi_decode_raw_validate(
791 data,
792 )
793 .map(ERC1967ProxyErrors::FailedInnerCall)
794 }
795 FailedInnerCall
796 },
797 {
798 fn ERC1967InvalidImplementation(
799 data: &[u8],
800 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
801 <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_decode_raw_validate(
802 data,
803 )
804 .map(ERC1967ProxyErrors::ERC1967InvalidImplementation)
805 }
806 ERC1967InvalidImplementation
807 },
808 {
809 fn AddressEmptyCode(
810 data: &[u8],
811 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
812 <AddressEmptyCode as alloy_sol_types::SolError>::abi_decode_raw_validate(
813 data,
814 )
815 .map(ERC1967ProxyErrors::AddressEmptyCode)
816 }
817 AddressEmptyCode
818 },
819 {
820 fn ERC1967NonPayable(
821 data: &[u8],
822 ) -> alloy_sol_types::Result<ERC1967ProxyErrors> {
823 <ERC1967NonPayable as alloy_sol_types::SolError>::abi_decode_raw_validate(
824 data,
825 )
826 .map(ERC1967ProxyErrors::ERC1967NonPayable)
827 }
828 ERC1967NonPayable
829 },
830 ];
831 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
832 return Err(
833 alloy_sol_types::Error::unknown_selector(
834 <Self as alloy_sol_types::SolInterface>::NAME,
835 selector,
836 ),
837 );
838 };
839 DECODE_VALIDATE_SHIMS[idx](data)
840 }
841 #[inline]
842 fn abi_encoded_size(&self) -> usize {
843 match self {
844 Self::AddressEmptyCode(inner) => {
845 <AddressEmptyCode as alloy_sol_types::SolError>::abi_encoded_size(
846 inner,
847 )
848 }
849 Self::ERC1967InvalidImplementation(inner) => {
850 <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_encoded_size(
851 inner,
852 )
853 }
854 Self::ERC1967NonPayable(inner) => {
855 <ERC1967NonPayable as alloy_sol_types::SolError>::abi_encoded_size(
856 inner,
857 )
858 }
859 Self::FailedInnerCall(inner) => {
860 <FailedInnerCall as alloy_sol_types::SolError>::abi_encoded_size(
861 inner,
862 )
863 }
864 }
865 }
866 #[inline]
867 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
868 match self {
869 Self::AddressEmptyCode(inner) => {
870 <AddressEmptyCode as alloy_sol_types::SolError>::abi_encode_raw(
871 inner,
872 out,
873 )
874 }
875 Self::ERC1967InvalidImplementation(inner) => {
876 <ERC1967InvalidImplementation as alloy_sol_types::SolError>::abi_encode_raw(
877 inner,
878 out,
879 )
880 }
881 Self::ERC1967NonPayable(inner) => {
882 <ERC1967NonPayable as alloy_sol_types::SolError>::abi_encode_raw(
883 inner,
884 out,
885 )
886 }
887 Self::FailedInnerCall(inner) => {
888 <FailedInnerCall as alloy_sol_types::SolError>::abi_encode_raw(
889 inner,
890 out,
891 )
892 }
893 }
894 }
895 }
896 #[derive(Clone)]
898 #[derive(serde::Serialize, serde::Deserialize)]
899 #[derive(Debug, PartialEq, Eq, Hash)]
900 pub enum ERC1967ProxyEvents {
901 #[allow(missing_docs)]
902 Upgraded(Upgraded),
903 }
904 impl ERC1967ProxyEvents {
905 pub const SELECTORS: &'static [[u8; 32usize]] = &[
912 [
913 188u8, 124u8, 215u8, 90u8, 32u8, 238u8, 39u8, 253u8, 154u8, 222u8, 186u8,
914 179u8, 32u8, 65u8, 247u8, 85u8, 33u8, 77u8, 188u8, 107u8, 255u8, 169u8,
915 12u8, 192u8, 34u8, 91u8, 57u8, 218u8, 46u8, 92u8, 45u8, 59u8,
916 ],
917 ];
918 pub const VARIANT_NAMES: &'static [&'static str] = &[
920 ::core::stringify!(Upgraded),
921 ];
922 pub const SIGNATURES: &'static [&'static str] = &[
924 <Upgraded as alloy_sol_types::SolEvent>::SIGNATURE,
925 ];
926 #[inline]
928 pub fn signature_by_selector(
929 selector: [u8; 32usize],
930 ) -> ::core::option::Option<&'static str> {
931 match Self::SELECTORS.binary_search(&selector) {
932 ::core::result::Result::Ok(idx) => {
933 ::core::option::Option::Some(Self::SIGNATURES[idx])
934 }
935 ::core::result::Result::Err(_) => ::core::option::Option::None,
936 }
937 }
938 #[inline]
940 pub fn name_by_selector(
941 selector: [u8; 32usize],
942 ) -> ::core::option::Option<&'static str> {
943 let sig = Self::signature_by_selector(selector)?;
944 sig.split_once('(').map(|(name, _)| name)
945 }
946 }
947 #[automatically_derived]
948 impl alloy_sol_types::SolEventInterface for ERC1967ProxyEvents {
949 const NAME: &'static str = "ERC1967ProxyEvents";
950 const COUNT: usize = 1usize;
951 fn decode_raw_log(
952 topics: &[alloy_sol_types::Word],
953 data: &[u8],
954 ) -> alloy_sol_types::Result<Self> {
955 match topics.first().copied() {
956 Some(<Upgraded as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
957 <Upgraded as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
958 .map(Self::Upgraded)
959 }
960 _ => {
961 alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
962 name: <Self as alloy_sol_types::SolEventInterface>::NAME,
963 log: alloy_sol_types::private::Box::new(
964 alloy_sol_types::private::LogData::new_unchecked(
965 topics.to_vec(),
966 data.to_vec().into(),
967 ),
968 ),
969 })
970 }
971 }
972 }
973 }
974 #[automatically_derived]
975 impl alloy_sol_types::private::IntoLogData for ERC1967ProxyEvents {
976 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
977 match self {
978 Self::Upgraded(inner) => {
979 alloy_sol_types::private::IntoLogData::to_log_data(inner)
980 }
981 }
982 }
983 fn into_log_data(self) -> alloy_sol_types::private::LogData {
984 match self {
985 Self::Upgraded(inner) => {
986 alloy_sol_types::private::IntoLogData::into_log_data(inner)
987 }
988 }
989 }
990 }
991 use alloy::contract as alloy_contract;
992 #[inline]
996 pub const fn new<
997 P: alloy_contract::private::Provider<N>,
998 N: alloy_contract::private::Network,
999 >(
1000 address: alloy_sol_types::private::Address,
1001 __provider: P,
1002 ) -> ERC1967ProxyInstance<P, N> {
1003 ERC1967ProxyInstance::<P, N>::new(address, __provider)
1004 }
1005 #[inline]
1011 pub fn deploy<
1012 P: alloy_contract::private::Provider<N>,
1013 N: alloy_contract::private::Network,
1014 >(
1015 __provider: P,
1016 implementation: alloy::sol_types::private::Address,
1017 _data: alloy::sol_types::private::Bytes,
1018 ) -> impl ::core::future::Future<
1019 Output = alloy_contract::Result<ERC1967ProxyInstance<P, N>>,
1020 > {
1021 ERC1967ProxyInstance::<P, N>::deploy(__provider, implementation, _data)
1022 }
1023 #[inline]
1029 pub fn deploy_builder<
1030 P: alloy_contract::private::Provider<N>,
1031 N: alloy_contract::private::Network,
1032 >(
1033 __provider: P,
1034 implementation: alloy::sol_types::private::Address,
1035 _data: alloy::sol_types::private::Bytes,
1036 ) -> alloy_contract::RawCallBuilder<P, N> {
1037 ERC1967ProxyInstance::<P, N>::deploy_builder(__provider, implementation, _data)
1038 }
1039 #[derive(Clone)]
1051 pub struct ERC1967ProxyInstance<P, N = alloy_contract::private::Ethereum> {
1052 address: alloy_sol_types::private::Address,
1053 provider: P,
1054 _network: ::core::marker::PhantomData<N>,
1055 }
1056 #[automatically_derived]
1057 impl<P, N> ::core::fmt::Debug for ERC1967ProxyInstance<P, N> {
1058 #[inline]
1059 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1060 f.debug_tuple("ERC1967ProxyInstance").field(&self.address).finish()
1061 }
1062 }
1063 impl<
1065 P: alloy_contract::private::Provider<N>,
1066 N: alloy_contract::private::Network,
1067 > ERC1967ProxyInstance<P, N> {
1068 #[inline]
1072 pub const fn new(
1073 address: alloy_sol_types::private::Address,
1074 __provider: P,
1075 ) -> Self {
1076 Self {
1077 address,
1078 provider: __provider,
1079 _network: ::core::marker::PhantomData,
1080 }
1081 }
1082 #[inline]
1088 pub async fn deploy(
1089 __provider: P,
1090 implementation: alloy::sol_types::private::Address,
1091 _data: alloy::sol_types::private::Bytes,
1092 ) -> alloy_contract::Result<ERC1967ProxyInstance<P, N>> {
1093 let call_builder = Self::deploy_builder(__provider, implementation, _data);
1094 let contract_address = call_builder.deploy().await?;
1095 Ok(Self::new(contract_address, call_builder.provider))
1096 }
1097 #[inline]
1103 pub fn deploy_builder(
1104 __provider: P,
1105 implementation: alloy::sol_types::private::Address,
1106 _data: alloy::sol_types::private::Bytes,
1107 ) -> alloy_contract::RawCallBuilder<P, N> {
1108 alloy_contract::RawCallBuilder::new_raw_deploy(
1109 __provider,
1110 [
1111 &BYTECODE[..],
1112 &alloy_sol_types::SolConstructor::abi_encode(
1113 &constructorCall {
1114 implementation,
1115 _data,
1116 },
1117 )[..],
1118 ]
1119 .concat()
1120 .into(),
1121 )
1122 }
1123 #[inline]
1125 pub const fn address(&self) -> &alloy_sol_types::private::Address {
1126 &self.address
1127 }
1128 #[inline]
1130 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1131 self.address = address;
1132 }
1133 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1135 self.set_address(address);
1136 self
1137 }
1138 #[inline]
1140 pub const fn provider(&self) -> &P {
1141 &self.provider
1142 }
1143 }
1144 impl<P: ::core::clone::Clone, N> ERC1967ProxyInstance<&P, N> {
1145 #[inline]
1147 pub fn with_cloned_provider(self) -> ERC1967ProxyInstance<P, N> {
1148 ERC1967ProxyInstance {
1149 address: self.address,
1150 provider: ::core::clone::Clone::clone(&self.provider),
1151 _network: ::core::marker::PhantomData,
1152 }
1153 }
1154 }
1155 impl<
1157 P: alloy_contract::private::Provider<N>,
1158 N: alloy_contract::private::Network,
1159 > ERC1967ProxyInstance<P, N> {
1160 pub fn call_builder<C: alloy_sol_types::SolCall>(
1165 &self,
1166 call: &C,
1167 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
1168 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1169 }
1170 }
1171 impl<
1173 P: alloy_contract::private::Provider<N>,
1174 N: alloy_contract::private::Network,
1175 > ERC1967ProxyInstance<P, N> {
1176 pub fn event_filter<E: alloy_sol_types::SolEvent>(
1181 &self,
1182 ) -> alloy_contract::Event<&P, E, N> {
1183 alloy_contract::Event::new_sol(&self.provider, &self.address)
1184 }
1185 pub fn Upgraded_filter(&self) -> alloy_contract::Event<&P, Upgraded, N> {
1187 self.event_filter::<Upgraded>()
1188 }
1189 }
1190}