hopr_bindings/codegen/
hoprnetworkregistryevents.rs

1/**
2
3Generated by the following Solidity interface...
4```solidity
5interface HoprNetworkRegistryEvents {
6    event Deregistered(address indexed stakingAccount, address indexed nodeAddress);
7    event DeregisteredByManager(address indexed stakingAccount, address indexed nodeAddress);
8    event EligibilityUpdated(address indexed stakingAccount, bool indexed eligibility);
9    event NetworkRegistryStatusUpdated(bool indexed isEnabled);
10    event Registered(address indexed stakingAccount, address indexed nodeAddress);
11    event RegisteredByManager(address indexed stakingAccount, address indexed nodeAddress);
12    event RequirementUpdated(address indexed requirementImplementation);
13}
14```
15
16...which was generated by the following JSON ABI:
17```json
18[
19  {
20    "type": "event",
21    "name": "Deregistered",
22    "inputs": [
23      {
24        "name": "stakingAccount",
25        "type": "address",
26        "indexed": true,
27        "internalType": "address"
28      },
29      {
30        "name": "nodeAddress",
31        "type": "address",
32        "indexed": true,
33        "internalType": "address"
34      }
35    ],
36    "anonymous": false
37  },
38  {
39    "type": "event",
40    "name": "DeregisteredByManager",
41    "inputs": [
42      {
43        "name": "stakingAccount",
44        "type": "address",
45        "indexed": true,
46        "internalType": "address"
47      },
48      {
49        "name": "nodeAddress",
50        "type": "address",
51        "indexed": true,
52        "internalType": "address"
53      }
54    ],
55    "anonymous": false
56  },
57  {
58    "type": "event",
59    "name": "EligibilityUpdated",
60    "inputs": [
61      {
62        "name": "stakingAccount",
63        "type": "address",
64        "indexed": true,
65        "internalType": "address"
66      },
67      {
68        "name": "eligibility",
69        "type": "bool",
70        "indexed": true,
71        "internalType": "bool"
72      }
73    ],
74    "anonymous": false
75  },
76  {
77    "type": "event",
78    "name": "NetworkRegistryStatusUpdated",
79    "inputs": [
80      {
81        "name": "isEnabled",
82        "type": "bool",
83        "indexed": true,
84        "internalType": "bool"
85      }
86    ],
87    "anonymous": false
88  },
89  {
90    "type": "event",
91    "name": "Registered",
92    "inputs": [
93      {
94        "name": "stakingAccount",
95        "type": "address",
96        "indexed": true,
97        "internalType": "address"
98      },
99      {
100        "name": "nodeAddress",
101        "type": "address",
102        "indexed": true,
103        "internalType": "address"
104      }
105    ],
106    "anonymous": false
107  },
108  {
109    "type": "event",
110    "name": "RegisteredByManager",
111    "inputs": [
112      {
113        "name": "stakingAccount",
114        "type": "address",
115        "indexed": true,
116        "internalType": "address"
117      },
118      {
119        "name": "nodeAddress",
120        "type": "address",
121        "indexed": true,
122        "internalType": "address"
123      }
124    ],
125    "anonymous": false
126  },
127  {
128    "type": "event",
129    "name": "RequirementUpdated",
130    "inputs": [
131      {
132        "name": "requirementImplementation",
133        "type": "address",
134        "indexed": true,
135        "internalType": "address"
136      }
137    ],
138    "anonymous": false
139  }
140]
141```*/
142#[allow(
143    non_camel_case_types,
144    non_snake_case,
145    clippy::pub_underscore_fields,
146    clippy::style,
147    clippy::empty_structs_with_brackets
148)]
149pub mod HoprNetworkRegistryEvents {
150    use super::*;
151    use alloy::sol_types as alloy_sol_types;
152    /// The creation / init bytecode of the contract.
153    ///
154    /// ```text
155    ///0x
156    /// ```
157    #[rustfmt::skip]
158    #[allow(clippy::all)]
159    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
160        b"",
161    );
162    /// The runtime bytecode of the contract, as deployed on the network.
163    ///
164    /// ```text
165    ///0x
166    /// ```
167    #[rustfmt::skip]
168    #[allow(clippy::all)]
169    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
170        b"",
171    );
172    #[derive(serde::Serialize, serde::Deserialize)]
173    #[derive(Default, Debug, PartialEq, Eq, Hash)]
174    /**Event with signature `Deregistered(address,address)` and selector `0x159a8ae948fcc6e7f8b5495c0d73e91598440af8a62817246c09edc2c28dba8a`.
175```solidity
176event Deregistered(address indexed stakingAccount, address indexed nodeAddress);
177```*/
178    #[allow(
179        non_camel_case_types,
180        non_snake_case,
181        clippy::pub_underscore_fields,
182        clippy::style
183    )]
184    #[derive(Clone)]
185    pub struct Deregistered {
186        #[allow(missing_docs)]
187        pub stakingAccount: alloy::sol_types::private::Address,
188        #[allow(missing_docs)]
189        pub nodeAddress: alloy::sol_types::private::Address,
190    }
191    #[allow(
192        non_camel_case_types,
193        non_snake_case,
194        clippy::pub_underscore_fields,
195        clippy::style
196    )]
197    const _: () = {
198        use alloy::sol_types as alloy_sol_types;
199        #[automatically_derived]
200        impl alloy_sol_types::SolEvent for Deregistered {
201            type DataTuple<'a> = ();
202            type DataToken<'a> = <Self::DataTuple<
203                'a,
204            > as alloy_sol_types::SolType>::Token<'a>;
205            type TopicList = (
206                alloy_sol_types::sol_data::FixedBytes<32>,
207                alloy::sol_types::sol_data::Address,
208                alloy::sol_types::sol_data::Address,
209            );
210            const SIGNATURE: &'static str = "Deregistered(address,address)";
211            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
212                21u8, 154u8, 138u8, 233u8, 72u8, 252u8, 198u8, 231u8, 248u8, 181u8, 73u8,
213                92u8, 13u8, 115u8, 233u8, 21u8, 152u8, 68u8, 10u8, 248u8, 166u8, 40u8,
214                23u8, 36u8, 108u8, 9u8, 237u8, 194u8, 194u8, 141u8, 186u8, 138u8,
215            ]);
216            const ANONYMOUS: bool = false;
217            #[allow(unused_variables)]
218            #[inline]
219            fn new(
220                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
221                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
222            ) -> Self {
223                Self {
224                    stakingAccount: topics.1,
225                    nodeAddress: topics.2,
226                }
227            }
228            #[inline]
229            fn check_signature(
230                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
231            ) -> alloy_sol_types::Result<()> {
232                if topics.0 != Self::SIGNATURE_HASH {
233                    return Err(
234                        alloy_sol_types::Error::invalid_event_signature_hash(
235                            Self::SIGNATURE,
236                            topics.0,
237                            Self::SIGNATURE_HASH,
238                        ),
239                    );
240                }
241                Ok(())
242            }
243            #[inline]
244            fn tokenize_body(&self) -> Self::DataToken<'_> {
245                ()
246            }
247            #[inline]
248            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
249                (
250                    Self::SIGNATURE_HASH.into(),
251                    self.stakingAccount.clone(),
252                    self.nodeAddress.clone(),
253                )
254            }
255            #[inline]
256            fn encode_topics_raw(
257                &self,
258                out: &mut [alloy_sol_types::abi::token::WordToken],
259            ) -> alloy_sol_types::Result<()> {
260                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
261                    return Err(alloy_sol_types::Error::Overrun);
262                }
263                out[0usize] = alloy_sol_types::abi::token::WordToken(
264                    Self::SIGNATURE_HASH,
265                );
266                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
267                    &self.stakingAccount,
268                );
269                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
270                    &self.nodeAddress,
271                );
272                Ok(())
273            }
274        }
275        #[automatically_derived]
276        impl alloy_sol_types::private::IntoLogData for Deregistered {
277            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
278                From::from(self)
279            }
280            fn into_log_data(self) -> alloy_sol_types::private::LogData {
281                From::from(&self)
282            }
283        }
284        #[automatically_derived]
285        impl From<&Deregistered> for alloy_sol_types::private::LogData {
286            #[inline]
287            fn from(this: &Deregistered) -> alloy_sol_types::private::LogData {
288                alloy_sol_types::SolEvent::encode_log_data(this)
289            }
290        }
291    };
292    #[derive(serde::Serialize, serde::Deserialize)]
293    #[derive(Default, Debug, PartialEq, Eq, Hash)]
294    /**Event with signature `DeregisteredByManager(address,address)` and selector `0x91760a1001f531ec2bee8602be55ad2b1159465edff5bbcd41d20703742a4d42`.
295```solidity
296event DeregisteredByManager(address indexed stakingAccount, address indexed nodeAddress);
297```*/
298    #[allow(
299        non_camel_case_types,
300        non_snake_case,
301        clippy::pub_underscore_fields,
302        clippy::style
303    )]
304    #[derive(Clone)]
305    pub struct DeregisteredByManager {
306        #[allow(missing_docs)]
307        pub stakingAccount: alloy::sol_types::private::Address,
308        #[allow(missing_docs)]
309        pub nodeAddress: alloy::sol_types::private::Address,
310    }
311    #[allow(
312        non_camel_case_types,
313        non_snake_case,
314        clippy::pub_underscore_fields,
315        clippy::style
316    )]
317    const _: () = {
318        use alloy::sol_types as alloy_sol_types;
319        #[automatically_derived]
320        impl alloy_sol_types::SolEvent for DeregisteredByManager {
321            type DataTuple<'a> = ();
322            type DataToken<'a> = <Self::DataTuple<
323                'a,
324            > as alloy_sol_types::SolType>::Token<'a>;
325            type TopicList = (
326                alloy_sol_types::sol_data::FixedBytes<32>,
327                alloy::sol_types::sol_data::Address,
328                alloy::sol_types::sol_data::Address,
329            );
330            const SIGNATURE: &'static str = "DeregisteredByManager(address,address)";
331            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
332                145u8, 118u8, 10u8, 16u8, 1u8, 245u8, 49u8, 236u8, 43u8, 238u8, 134u8,
333                2u8, 190u8, 85u8, 173u8, 43u8, 17u8, 89u8, 70u8, 94u8, 223u8, 245u8,
334                187u8, 205u8, 65u8, 210u8, 7u8, 3u8, 116u8, 42u8, 77u8, 66u8,
335            ]);
336            const ANONYMOUS: bool = false;
337            #[allow(unused_variables)]
338            #[inline]
339            fn new(
340                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
341                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
342            ) -> Self {
343                Self {
344                    stakingAccount: topics.1,
345                    nodeAddress: topics.2,
346                }
347            }
348            #[inline]
349            fn check_signature(
350                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
351            ) -> alloy_sol_types::Result<()> {
352                if topics.0 != Self::SIGNATURE_HASH {
353                    return Err(
354                        alloy_sol_types::Error::invalid_event_signature_hash(
355                            Self::SIGNATURE,
356                            topics.0,
357                            Self::SIGNATURE_HASH,
358                        ),
359                    );
360                }
361                Ok(())
362            }
363            #[inline]
364            fn tokenize_body(&self) -> Self::DataToken<'_> {
365                ()
366            }
367            #[inline]
368            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
369                (
370                    Self::SIGNATURE_HASH.into(),
371                    self.stakingAccount.clone(),
372                    self.nodeAddress.clone(),
373                )
374            }
375            #[inline]
376            fn encode_topics_raw(
377                &self,
378                out: &mut [alloy_sol_types::abi::token::WordToken],
379            ) -> alloy_sol_types::Result<()> {
380                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
381                    return Err(alloy_sol_types::Error::Overrun);
382                }
383                out[0usize] = alloy_sol_types::abi::token::WordToken(
384                    Self::SIGNATURE_HASH,
385                );
386                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
387                    &self.stakingAccount,
388                );
389                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
390                    &self.nodeAddress,
391                );
392                Ok(())
393            }
394        }
395        #[automatically_derived]
396        impl alloy_sol_types::private::IntoLogData for DeregisteredByManager {
397            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
398                From::from(self)
399            }
400            fn into_log_data(self) -> alloy_sol_types::private::LogData {
401                From::from(&self)
402            }
403        }
404        #[automatically_derived]
405        impl From<&DeregisteredByManager> for alloy_sol_types::private::LogData {
406            #[inline]
407            fn from(this: &DeregisteredByManager) -> alloy_sol_types::private::LogData {
408                alloy_sol_types::SolEvent::encode_log_data(this)
409            }
410        }
411    };
412    #[derive(serde::Serialize, serde::Deserialize)]
413    #[derive(Default, Debug, PartialEq, Eq, Hash)]
414    /**Event with signature `EligibilityUpdated(address,bool)` and selector `0xe2994f8d6f600ad473dba82c0a890ab7affacb860d3365f474baa3dc04a2e557`.
415```solidity
416event EligibilityUpdated(address indexed stakingAccount, bool indexed eligibility);
417```*/
418    #[allow(
419        non_camel_case_types,
420        non_snake_case,
421        clippy::pub_underscore_fields,
422        clippy::style
423    )]
424    #[derive(Clone)]
425    pub struct EligibilityUpdated {
426        #[allow(missing_docs)]
427        pub stakingAccount: alloy::sol_types::private::Address,
428        #[allow(missing_docs)]
429        pub eligibility: bool,
430    }
431    #[allow(
432        non_camel_case_types,
433        non_snake_case,
434        clippy::pub_underscore_fields,
435        clippy::style
436    )]
437    const _: () = {
438        use alloy::sol_types as alloy_sol_types;
439        #[automatically_derived]
440        impl alloy_sol_types::SolEvent for EligibilityUpdated {
441            type DataTuple<'a> = ();
442            type DataToken<'a> = <Self::DataTuple<
443                'a,
444            > as alloy_sol_types::SolType>::Token<'a>;
445            type TopicList = (
446                alloy_sol_types::sol_data::FixedBytes<32>,
447                alloy::sol_types::sol_data::Address,
448                alloy::sol_types::sol_data::Bool,
449            );
450            const SIGNATURE: &'static str = "EligibilityUpdated(address,bool)";
451            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
452                226u8, 153u8, 79u8, 141u8, 111u8, 96u8, 10u8, 212u8, 115u8, 219u8, 168u8,
453                44u8, 10u8, 137u8, 10u8, 183u8, 175u8, 250u8, 203u8, 134u8, 13u8, 51u8,
454                101u8, 244u8, 116u8, 186u8, 163u8, 220u8, 4u8, 162u8, 229u8, 87u8,
455            ]);
456            const ANONYMOUS: bool = false;
457            #[allow(unused_variables)]
458            #[inline]
459            fn new(
460                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
461                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
462            ) -> Self {
463                Self {
464                    stakingAccount: topics.1,
465                    eligibility: topics.2,
466                }
467            }
468            #[inline]
469            fn check_signature(
470                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
471            ) -> alloy_sol_types::Result<()> {
472                if topics.0 != Self::SIGNATURE_HASH {
473                    return Err(
474                        alloy_sol_types::Error::invalid_event_signature_hash(
475                            Self::SIGNATURE,
476                            topics.0,
477                            Self::SIGNATURE_HASH,
478                        ),
479                    );
480                }
481                Ok(())
482            }
483            #[inline]
484            fn tokenize_body(&self) -> Self::DataToken<'_> {
485                ()
486            }
487            #[inline]
488            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
489                (
490                    Self::SIGNATURE_HASH.into(),
491                    self.stakingAccount.clone(),
492                    self.eligibility.clone(),
493                )
494            }
495            #[inline]
496            fn encode_topics_raw(
497                &self,
498                out: &mut [alloy_sol_types::abi::token::WordToken],
499            ) -> alloy_sol_types::Result<()> {
500                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
501                    return Err(alloy_sol_types::Error::Overrun);
502                }
503                out[0usize] = alloy_sol_types::abi::token::WordToken(
504                    Self::SIGNATURE_HASH,
505                );
506                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
507                    &self.stakingAccount,
508                );
509                out[2usize] = <alloy::sol_types::sol_data::Bool as alloy_sol_types::EventTopic>::encode_topic(
510                    &self.eligibility,
511                );
512                Ok(())
513            }
514        }
515        #[automatically_derived]
516        impl alloy_sol_types::private::IntoLogData for EligibilityUpdated {
517            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
518                From::from(self)
519            }
520            fn into_log_data(self) -> alloy_sol_types::private::LogData {
521                From::from(&self)
522            }
523        }
524        #[automatically_derived]
525        impl From<&EligibilityUpdated> for alloy_sol_types::private::LogData {
526            #[inline]
527            fn from(this: &EligibilityUpdated) -> alloy_sol_types::private::LogData {
528                alloy_sol_types::SolEvent::encode_log_data(this)
529            }
530        }
531    };
532    #[derive(serde::Serialize, serde::Deserialize)]
533    #[derive(Default, Debug, PartialEq, Eq, Hash)]
534    /**Event with signature `NetworkRegistryStatusUpdated(bool)` and selector `0x8bc85f25e3e933978f099408b3bb3eb7630b76f7455f2e205bcbc0a780e17e72`.
535```solidity
536event NetworkRegistryStatusUpdated(bool indexed isEnabled);
537```*/
538    #[allow(
539        non_camel_case_types,
540        non_snake_case,
541        clippy::pub_underscore_fields,
542        clippy::style
543    )]
544    #[derive(Clone)]
545    pub struct NetworkRegistryStatusUpdated {
546        #[allow(missing_docs)]
547        pub isEnabled: bool,
548    }
549    #[allow(
550        non_camel_case_types,
551        non_snake_case,
552        clippy::pub_underscore_fields,
553        clippy::style
554    )]
555    const _: () = {
556        use alloy::sol_types as alloy_sol_types;
557        #[automatically_derived]
558        impl alloy_sol_types::SolEvent for NetworkRegistryStatusUpdated {
559            type DataTuple<'a> = ();
560            type DataToken<'a> = <Self::DataTuple<
561                'a,
562            > as alloy_sol_types::SolType>::Token<'a>;
563            type TopicList = (
564                alloy_sol_types::sol_data::FixedBytes<32>,
565                alloy::sol_types::sol_data::Bool,
566            );
567            const SIGNATURE: &'static str = "NetworkRegistryStatusUpdated(bool)";
568            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
569                139u8, 200u8, 95u8, 37u8, 227u8, 233u8, 51u8, 151u8, 143u8, 9u8, 148u8,
570                8u8, 179u8, 187u8, 62u8, 183u8, 99u8, 11u8, 118u8, 247u8, 69u8, 95u8,
571                46u8, 32u8, 91u8, 203u8, 192u8, 167u8, 128u8, 225u8, 126u8, 114u8,
572            ]);
573            const ANONYMOUS: bool = false;
574            #[allow(unused_variables)]
575            #[inline]
576            fn new(
577                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
578                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
579            ) -> Self {
580                Self { isEnabled: topics.1 }
581            }
582            #[inline]
583            fn check_signature(
584                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
585            ) -> alloy_sol_types::Result<()> {
586                if topics.0 != Self::SIGNATURE_HASH {
587                    return Err(
588                        alloy_sol_types::Error::invalid_event_signature_hash(
589                            Self::SIGNATURE,
590                            topics.0,
591                            Self::SIGNATURE_HASH,
592                        ),
593                    );
594                }
595                Ok(())
596            }
597            #[inline]
598            fn tokenize_body(&self) -> Self::DataToken<'_> {
599                ()
600            }
601            #[inline]
602            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
603                (Self::SIGNATURE_HASH.into(), self.isEnabled.clone())
604            }
605            #[inline]
606            fn encode_topics_raw(
607                &self,
608                out: &mut [alloy_sol_types::abi::token::WordToken],
609            ) -> alloy_sol_types::Result<()> {
610                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
611                    return Err(alloy_sol_types::Error::Overrun);
612                }
613                out[0usize] = alloy_sol_types::abi::token::WordToken(
614                    Self::SIGNATURE_HASH,
615                );
616                out[1usize] = <alloy::sol_types::sol_data::Bool as alloy_sol_types::EventTopic>::encode_topic(
617                    &self.isEnabled,
618                );
619                Ok(())
620            }
621        }
622        #[automatically_derived]
623        impl alloy_sol_types::private::IntoLogData for NetworkRegistryStatusUpdated {
624            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
625                From::from(self)
626            }
627            fn into_log_data(self) -> alloy_sol_types::private::LogData {
628                From::from(&self)
629            }
630        }
631        #[automatically_derived]
632        impl From<&NetworkRegistryStatusUpdated> for alloy_sol_types::private::LogData {
633            #[inline]
634            fn from(
635                this: &NetworkRegistryStatusUpdated,
636            ) -> alloy_sol_types::private::LogData {
637                alloy_sol_types::SolEvent::encode_log_data(this)
638            }
639        }
640    };
641    #[derive(serde::Serialize, serde::Deserialize)]
642    #[derive(Default, Debug, PartialEq, Eq, Hash)]
643    /**Event with signature `Registered(address,address)` and selector `0x0a31ee9d46a828884b81003c8498156ea6aa15b9b54bdd0ef0b533d9eba57e55`.
644```solidity
645event Registered(address indexed stakingAccount, address indexed nodeAddress);
646```*/
647    #[allow(
648        non_camel_case_types,
649        non_snake_case,
650        clippy::pub_underscore_fields,
651        clippy::style
652    )]
653    #[derive(Clone)]
654    pub struct Registered {
655        #[allow(missing_docs)]
656        pub stakingAccount: alloy::sol_types::private::Address,
657        #[allow(missing_docs)]
658        pub nodeAddress: alloy::sol_types::private::Address,
659    }
660    #[allow(
661        non_camel_case_types,
662        non_snake_case,
663        clippy::pub_underscore_fields,
664        clippy::style
665    )]
666    const _: () = {
667        use alloy::sol_types as alloy_sol_types;
668        #[automatically_derived]
669        impl alloy_sol_types::SolEvent for Registered {
670            type DataTuple<'a> = ();
671            type DataToken<'a> = <Self::DataTuple<
672                'a,
673            > as alloy_sol_types::SolType>::Token<'a>;
674            type TopicList = (
675                alloy_sol_types::sol_data::FixedBytes<32>,
676                alloy::sol_types::sol_data::Address,
677                alloy::sol_types::sol_data::Address,
678            );
679            const SIGNATURE: &'static str = "Registered(address,address)";
680            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
681                10u8, 49u8, 238u8, 157u8, 70u8, 168u8, 40u8, 136u8, 75u8, 129u8, 0u8,
682                60u8, 132u8, 152u8, 21u8, 110u8, 166u8, 170u8, 21u8, 185u8, 181u8, 75u8,
683                221u8, 14u8, 240u8, 181u8, 51u8, 217u8, 235u8, 165u8, 126u8, 85u8,
684            ]);
685            const ANONYMOUS: bool = false;
686            #[allow(unused_variables)]
687            #[inline]
688            fn new(
689                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
690                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
691            ) -> Self {
692                Self {
693                    stakingAccount: topics.1,
694                    nodeAddress: topics.2,
695                }
696            }
697            #[inline]
698            fn check_signature(
699                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
700            ) -> alloy_sol_types::Result<()> {
701                if topics.0 != Self::SIGNATURE_HASH {
702                    return Err(
703                        alloy_sol_types::Error::invalid_event_signature_hash(
704                            Self::SIGNATURE,
705                            topics.0,
706                            Self::SIGNATURE_HASH,
707                        ),
708                    );
709                }
710                Ok(())
711            }
712            #[inline]
713            fn tokenize_body(&self) -> Self::DataToken<'_> {
714                ()
715            }
716            #[inline]
717            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
718                (
719                    Self::SIGNATURE_HASH.into(),
720                    self.stakingAccount.clone(),
721                    self.nodeAddress.clone(),
722                )
723            }
724            #[inline]
725            fn encode_topics_raw(
726                &self,
727                out: &mut [alloy_sol_types::abi::token::WordToken],
728            ) -> alloy_sol_types::Result<()> {
729                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
730                    return Err(alloy_sol_types::Error::Overrun);
731                }
732                out[0usize] = alloy_sol_types::abi::token::WordToken(
733                    Self::SIGNATURE_HASH,
734                );
735                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
736                    &self.stakingAccount,
737                );
738                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
739                    &self.nodeAddress,
740                );
741                Ok(())
742            }
743        }
744        #[automatically_derived]
745        impl alloy_sol_types::private::IntoLogData for Registered {
746            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
747                From::from(self)
748            }
749            fn into_log_data(self) -> alloy_sol_types::private::LogData {
750                From::from(&self)
751            }
752        }
753        #[automatically_derived]
754        impl From<&Registered> for alloy_sol_types::private::LogData {
755            #[inline]
756            fn from(this: &Registered) -> alloy_sol_types::private::LogData {
757                alloy_sol_types::SolEvent::encode_log_data(this)
758            }
759        }
760    };
761    #[derive(serde::Serialize, serde::Deserialize)]
762    #[derive(Default, Debug, PartialEq, Eq, Hash)]
763    /**Event with signature `RegisteredByManager(address,address)` and selector `0x04e1eaa4da18f7e742a4edbbe9ede36cdf75f793bb03ab2158c0877f1caf2b93`.
764```solidity
765event RegisteredByManager(address indexed stakingAccount, address indexed nodeAddress);
766```*/
767    #[allow(
768        non_camel_case_types,
769        non_snake_case,
770        clippy::pub_underscore_fields,
771        clippy::style
772    )]
773    #[derive(Clone)]
774    pub struct RegisteredByManager {
775        #[allow(missing_docs)]
776        pub stakingAccount: alloy::sol_types::private::Address,
777        #[allow(missing_docs)]
778        pub nodeAddress: alloy::sol_types::private::Address,
779    }
780    #[allow(
781        non_camel_case_types,
782        non_snake_case,
783        clippy::pub_underscore_fields,
784        clippy::style
785    )]
786    const _: () = {
787        use alloy::sol_types as alloy_sol_types;
788        #[automatically_derived]
789        impl alloy_sol_types::SolEvent for RegisteredByManager {
790            type DataTuple<'a> = ();
791            type DataToken<'a> = <Self::DataTuple<
792                'a,
793            > as alloy_sol_types::SolType>::Token<'a>;
794            type TopicList = (
795                alloy_sol_types::sol_data::FixedBytes<32>,
796                alloy::sol_types::sol_data::Address,
797                alloy::sol_types::sol_data::Address,
798            );
799            const SIGNATURE: &'static str = "RegisteredByManager(address,address)";
800            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
801                4u8, 225u8, 234u8, 164u8, 218u8, 24u8, 247u8, 231u8, 66u8, 164u8, 237u8,
802                187u8, 233u8, 237u8, 227u8, 108u8, 223u8, 117u8, 247u8, 147u8, 187u8,
803                3u8, 171u8, 33u8, 88u8, 192u8, 135u8, 127u8, 28u8, 175u8, 43u8, 147u8,
804            ]);
805            const ANONYMOUS: bool = false;
806            #[allow(unused_variables)]
807            #[inline]
808            fn new(
809                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
810                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
811            ) -> Self {
812                Self {
813                    stakingAccount: topics.1,
814                    nodeAddress: topics.2,
815                }
816            }
817            #[inline]
818            fn check_signature(
819                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
820            ) -> alloy_sol_types::Result<()> {
821                if topics.0 != Self::SIGNATURE_HASH {
822                    return Err(
823                        alloy_sol_types::Error::invalid_event_signature_hash(
824                            Self::SIGNATURE,
825                            topics.0,
826                            Self::SIGNATURE_HASH,
827                        ),
828                    );
829                }
830                Ok(())
831            }
832            #[inline]
833            fn tokenize_body(&self) -> Self::DataToken<'_> {
834                ()
835            }
836            #[inline]
837            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
838                (
839                    Self::SIGNATURE_HASH.into(),
840                    self.stakingAccount.clone(),
841                    self.nodeAddress.clone(),
842                )
843            }
844            #[inline]
845            fn encode_topics_raw(
846                &self,
847                out: &mut [alloy_sol_types::abi::token::WordToken],
848            ) -> alloy_sol_types::Result<()> {
849                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
850                    return Err(alloy_sol_types::Error::Overrun);
851                }
852                out[0usize] = alloy_sol_types::abi::token::WordToken(
853                    Self::SIGNATURE_HASH,
854                );
855                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
856                    &self.stakingAccount,
857                );
858                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
859                    &self.nodeAddress,
860                );
861                Ok(())
862            }
863        }
864        #[automatically_derived]
865        impl alloy_sol_types::private::IntoLogData for RegisteredByManager {
866            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
867                From::from(self)
868            }
869            fn into_log_data(self) -> alloy_sol_types::private::LogData {
870                From::from(&self)
871            }
872        }
873        #[automatically_derived]
874        impl From<&RegisteredByManager> for alloy_sol_types::private::LogData {
875            #[inline]
876            fn from(this: &RegisteredByManager) -> alloy_sol_types::private::LogData {
877                alloy_sol_types::SolEvent::encode_log_data(this)
878            }
879        }
880    };
881    #[derive(serde::Serialize, serde::Deserialize)]
882    #[derive(Default, Debug, PartialEq, Eq, Hash)]
883    /**Event with signature `RequirementUpdated(address)` and selector `0x8ac4b2eb7749f75c5b99b898e547fd615dd7a424e68356ea196b7dae742d6c32`.
884```solidity
885event RequirementUpdated(address indexed requirementImplementation);
886```*/
887    #[allow(
888        non_camel_case_types,
889        non_snake_case,
890        clippy::pub_underscore_fields,
891        clippy::style
892    )]
893    #[derive(Clone)]
894    pub struct RequirementUpdated {
895        #[allow(missing_docs)]
896        pub requirementImplementation: alloy::sol_types::private::Address,
897    }
898    #[allow(
899        non_camel_case_types,
900        non_snake_case,
901        clippy::pub_underscore_fields,
902        clippy::style
903    )]
904    const _: () = {
905        use alloy::sol_types as alloy_sol_types;
906        #[automatically_derived]
907        impl alloy_sol_types::SolEvent for RequirementUpdated {
908            type DataTuple<'a> = ();
909            type DataToken<'a> = <Self::DataTuple<
910                'a,
911            > as alloy_sol_types::SolType>::Token<'a>;
912            type TopicList = (
913                alloy_sol_types::sol_data::FixedBytes<32>,
914                alloy::sol_types::sol_data::Address,
915            );
916            const SIGNATURE: &'static str = "RequirementUpdated(address)";
917            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
918                138u8, 196u8, 178u8, 235u8, 119u8, 73u8, 247u8, 92u8, 91u8, 153u8, 184u8,
919                152u8, 229u8, 71u8, 253u8, 97u8, 93u8, 215u8, 164u8, 36u8, 230u8, 131u8,
920                86u8, 234u8, 25u8, 107u8, 125u8, 174u8, 116u8, 45u8, 108u8, 50u8,
921            ]);
922            const ANONYMOUS: bool = false;
923            #[allow(unused_variables)]
924            #[inline]
925            fn new(
926                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
927                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
928            ) -> Self {
929                Self {
930                    requirementImplementation: topics.1,
931                }
932            }
933            #[inline]
934            fn check_signature(
935                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
936            ) -> alloy_sol_types::Result<()> {
937                if topics.0 != Self::SIGNATURE_HASH {
938                    return Err(
939                        alloy_sol_types::Error::invalid_event_signature_hash(
940                            Self::SIGNATURE,
941                            topics.0,
942                            Self::SIGNATURE_HASH,
943                        ),
944                    );
945                }
946                Ok(())
947            }
948            #[inline]
949            fn tokenize_body(&self) -> Self::DataToken<'_> {
950                ()
951            }
952            #[inline]
953            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
954                (Self::SIGNATURE_HASH.into(), self.requirementImplementation.clone())
955            }
956            #[inline]
957            fn encode_topics_raw(
958                &self,
959                out: &mut [alloy_sol_types::abi::token::WordToken],
960            ) -> alloy_sol_types::Result<()> {
961                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
962                    return Err(alloy_sol_types::Error::Overrun);
963                }
964                out[0usize] = alloy_sol_types::abi::token::WordToken(
965                    Self::SIGNATURE_HASH,
966                );
967                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
968                    &self.requirementImplementation,
969                );
970                Ok(())
971            }
972        }
973        #[automatically_derived]
974        impl alloy_sol_types::private::IntoLogData for RequirementUpdated {
975            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
976                From::from(self)
977            }
978            fn into_log_data(self) -> alloy_sol_types::private::LogData {
979                From::from(&self)
980            }
981        }
982        #[automatically_derived]
983        impl From<&RequirementUpdated> for alloy_sol_types::private::LogData {
984            #[inline]
985            fn from(this: &RequirementUpdated) -> alloy_sol_types::private::LogData {
986                alloy_sol_types::SolEvent::encode_log_data(this)
987            }
988        }
989    };
990    ///Container for all the [`HoprNetworkRegistryEvents`](self) events.
991    #[derive(serde::Serialize, serde::Deserialize)]
992    #[derive(Debug, PartialEq, Eq, Hash)]
993    pub enum HoprNetworkRegistryEventsEvents {
994        #[allow(missing_docs)]
995        Deregistered(Deregistered),
996        #[allow(missing_docs)]
997        DeregisteredByManager(DeregisteredByManager),
998        #[allow(missing_docs)]
999        EligibilityUpdated(EligibilityUpdated),
1000        #[allow(missing_docs)]
1001        NetworkRegistryStatusUpdated(NetworkRegistryStatusUpdated),
1002        #[allow(missing_docs)]
1003        Registered(Registered),
1004        #[allow(missing_docs)]
1005        RegisteredByManager(RegisteredByManager),
1006        #[allow(missing_docs)]
1007        RequirementUpdated(RequirementUpdated),
1008    }
1009    #[automatically_derived]
1010    impl HoprNetworkRegistryEventsEvents {
1011        /// All the selectors of this enum.
1012        ///
1013        /// Note that the selectors might not be in the same order as the variants.
1014        /// No guarantees are made about the order of the selectors.
1015        ///
1016        /// Prefer using `SolInterface` methods instead.
1017        pub const SELECTORS: &'static [[u8; 32usize]] = &[
1018            [
1019                4u8, 225u8, 234u8, 164u8, 218u8, 24u8, 247u8, 231u8, 66u8, 164u8, 237u8,
1020                187u8, 233u8, 237u8, 227u8, 108u8, 223u8, 117u8, 247u8, 147u8, 187u8,
1021                3u8, 171u8, 33u8, 88u8, 192u8, 135u8, 127u8, 28u8, 175u8, 43u8, 147u8,
1022            ],
1023            [
1024                10u8, 49u8, 238u8, 157u8, 70u8, 168u8, 40u8, 136u8, 75u8, 129u8, 0u8,
1025                60u8, 132u8, 152u8, 21u8, 110u8, 166u8, 170u8, 21u8, 185u8, 181u8, 75u8,
1026                221u8, 14u8, 240u8, 181u8, 51u8, 217u8, 235u8, 165u8, 126u8, 85u8,
1027            ],
1028            [
1029                21u8, 154u8, 138u8, 233u8, 72u8, 252u8, 198u8, 231u8, 248u8, 181u8, 73u8,
1030                92u8, 13u8, 115u8, 233u8, 21u8, 152u8, 68u8, 10u8, 248u8, 166u8, 40u8,
1031                23u8, 36u8, 108u8, 9u8, 237u8, 194u8, 194u8, 141u8, 186u8, 138u8,
1032            ],
1033            [
1034                138u8, 196u8, 178u8, 235u8, 119u8, 73u8, 247u8, 92u8, 91u8, 153u8, 184u8,
1035                152u8, 229u8, 71u8, 253u8, 97u8, 93u8, 215u8, 164u8, 36u8, 230u8, 131u8,
1036                86u8, 234u8, 25u8, 107u8, 125u8, 174u8, 116u8, 45u8, 108u8, 50u8,
1037            ],
1038            [
1039                139u8, 200u8, 95u8, 37u8, 227u8, 233u8, 51u8, 151u8, 143u8, 9u8, 148u8,
1040                8u8, 179u8, 187u8, 62u8, 183u8, 99u8, 11u8, 118u8, 247u8, 69u8, 95u8,
1041                46u8, 32u8, 91u8, 203u8, 192u8, 167u8, 128u8, 225u8, 126u8, 114u8,
1042            ],
1043            [
1044                145u8, 118u8, 10u8, 16u8, 1u8, 245u8, 49u8, 236u8, 43u8, 238u8, 134u8,
1045                2u8, 190u8, 85u8, 173u8, 43u8, 17u8, 89u8, 70u8, 94u8, 223u8, 245u8,
1046                187u8, 205u8, 65u8, 210u8, 7u8, 3u8, 116u8, 42u8, 77u8, 66u8,
1047            ],
1048            [
1049                226u8, 153u8, 79u8, 141u8, 111u8, 96u8, 10u8, 212u8, 115u8, 219u8, 168u8,
1050                44u8, 10u8, 137u8, 10u8, 183u8, 175u8, 250u8, 203u8, 134u8, 13u8, 51u8,
1051                101u8, 244u8, 116u8, 186u8, 163u8, 220u8, 4u8, 162u8, 229u8, 87u8,
1052            ],
1053        ];
1054    }
1055    #[automatically_derived]
1056    impl alloy_sol_types::SolEventInterface for HoprNetworkRegistryEventsEvents {
1057        const NAME: &'static str = "HoprNetworkRegistryEventsEvents";
1058        const COUNT: usize = 7usize;
1059        fn decode_raw_log(
1060            topics: &[alloy_sol_types::Word],
1061            data: &[u8],
1062        ) -> alloy_sol_types::Result<Self> {
1063            match topics.first().copied() {
1064                Some(<Deregistered as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1065                    <Deregistered as alloy_sol_types::SolEvent>::decode_raw_log(
1066                            topics,
1067                            data,
1068                        )
1069                        .map(Self::Deregistered)
1070                }
1071                Some(
1072                    <DeregisteredByManager as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
1073                ) => {
1074                    <DeregisteredByManager as alloy_sol_types::SolEvent>::decode_raw_log(
1075                            topics,
1076                            data,
1077                        )
1078                        .map(Self::DeregisteredByManager)
1079                }
1080                Some(
1081                    <EligibilityUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
1082                ) => {
1083                    <EligibilityUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
1084                            topics,
1085                            data,
1086                        )
1087                        .map(Self::EligibilityUpdated)
1088                }
1089                Some(
1090                    <NetworkRegistryStatusUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
1091                ) => {
1092                    <NetworkRegistryStatusUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
1093                            topics,
1094                            data,
1095                        )
1096                        .map(Self::NetworkRegistryStatusUpdated)
1097                }
1098                Some(<Registered as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1099                    <Registered as alloy_sol_types::SolEvent>::decode_raw_log(
1100                            topics,
1101                            data,
1102                        )
1103                        .map(Self::Registered)
1104                }
1105                Some(
1106                    <RegisteredByManager as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
1107                ) => {
1108                    <RegisteredByManager as alloy_sol_types::SolEvent>::decode_raw_log(
1109                            topics,
1110                            data,
1111                        )
1112                        .map(Self::RegisteredByManager)
1113                }
1114                Some(
1115                    <RequirementUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
1116                ) => {
1117                    <RequirementUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
1118                            topics,
1119                            data,
1120                        )
1121                        .map(Self::RequirementUpdated)
1122                }
1123                _ => {
1124                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
1125                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
1126                        log: alloy_sol_types::private::Box::new(
1127                            alloy_sol_types::private::LogData::new_unchecked(
1128                                topics.to_vec(),
1129                                data.to_vec().into(),
1130                            ),
1131                        ),
1132                    })
1133                }
1134            }
1135        }
1136    }
1137    #[automatically_derived]
1138    impl alloy_sol_types::private::IntoLogData for HoprNetworkRegistryEventsEvents {
1139        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
1140            match self {
1141                Self::Deregistered(inner) => {
1142                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1143                }
1144                Self::DeregisteredByManager(inner) => {
1145                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1146                }
1147                Self::EligibilityUpdated(inner) => {
1148                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1149                }
1150                Self::NetworkRegistryStatusUpdated(inner) => {
1151                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1152                }
1153                Self::Registered(inner) => {
1154                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1155                }
1156                Self::RegisteredByManager(inner) => {
1157                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1158                }
1159                Self::RequirementUpdated(inner) => {
1160                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
1161                }
1162            }
1163        }
1164        fn into_log_data(self) -> alloy_sol_types::private::LogData {
1165            match self {
1166                Self::Deregistered(inner) => {
1167                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1168                }
1169                Self::DeregisteredByManager(inner) => {
1170                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1171                }
1172                Self::EligibilityUpdated(inner) => {
1173                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1174                }
1175                Self::NetworkRegistryStatusUpdated(inner) => {
1176                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1177                }
1178                Self::Registered(inner) => {
1179                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1180                }
1181                Self::RegisteredByManager(inner) => {
1182                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1183                }
1184                Self::RequirementUpdated(inner) => {
1185                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
1186                }
1187            }
1188        }
1189    }
1190    use alloy::contract as alloy_contract;
1191    /**Creates a new wrapper around an on-chain [`HoprNetworkRegistryEvents`](self) contract instance.
1192
1193See the [wrapper's documentation](`HoprNetworkRegistryEventsInstance`) for more details.*/
1194    #[inline]
1195    pub const fn new<
1196        P: alloy_contract::private::Provider<N>,
1197        N: alloy_contract::private::Network,
1198    >(
1199        address: alloy_sol_types::private::Address,
1200        provider: P,
1201    ) -> HoprNetworkRegistryEventsInstance<P, N> {
1202        HoprNetworkRegistryEventsInstance::<P, N>::new(address, provider)
1203    }
1204    /**Deploys this contract using the given `provider` and constructor arguments, if any.
1205
1206Returns a new instance of the contract, if the deployment was successful.
1207
1208For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
1209    #[inline]
1210    pub fn deploy<
1211        P: alloy_contract::private::Provider<N>,
1212        N: alloy_contract::private::Network,
1213    >(
1214        provider: P,
1215    ) -> impl ::core::future::Future<
1216        Output = alloy_contract::Result<HoprNetworkRegistryEventsInstance<P, N>>,
1217    > {
1218        HoprNetworkRegistryEventsInstance::<P, N>::deploy(provider)
1219    }
1220    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
1221and constructor arguments, if any.
1222
1223This is a simple wrapper around creating a `RawCallBuilder` with the data set to
1224the bytecode concatenated with the constructor's ABI-encoded arguments.*/
1225    #[inline]
1226    pub fn deploy_builder<
1227        P: alloy_contract::private::Provider<N>,
1228        N: alloy_contract::private::Network,
1229    >(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
1230        HoprNetworkRegistryEventsInstance::<P, N>::deploy_builder(provider)
1231    }
1232    /**A [`HoprNetworkRegistryEvents`](self) instance.
1233
1234Contains type-safe methods for interacting with an on-chain instance of the
1235[`HoprNetworkRegistryEvents`](self) contract located at a given `address`, using a given
1236provider `P`.
1237
1238If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
1239documentation on how to provide it), the `deploy` and `deploy_builder` methods can
1240be used to deploy a new instance of the contract.
1241
1242See the [module-level documentation](self) for all the available methods.*/
1243    #[derive(Clone)]
1244    pub struct HoprNetworkRegistryEventsInstance<
1245        P,
1246        N = alloy_contract::private::Ethereum,
1247    > {
1248        address: alloy_sol_types::private::Address,
1249        provider: P,
1250        _network: ::core::marker::PhantomData<N>,
1251    }
1252    #[automatically_derived]
1253    impl<P, N> ::core::fmt::Debug for HoprNetworkRegistryEventsInstance<P, N> {
1254        #[inline]
1255        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1256            f.debug_tuple("HoprNetworkRegistryEventsInstance")
1257                .field(&self.address)
1258                .finish()
1259        }
1260    }
1261    /// Instantiation and getters/setters.
1262    #[automatically_derived]
1263    impl<
1264        P: alloy_contract::private::Provider<N>,
1265        N: alloy_contract::private::Network,
1266    > HoprNetworkRegistryEventsInstance<P, N> {
1267        /**Creates a new wrapper around an on-chain [`HoprNetworkRegistryEvents`](self) contract instance.
1268
1269See the [wrapper's documentation](`HoprNetworkRegistryEventsInstance`) for more details.*/
1270        #[inline]
1271        pub const fn new(
1272            address: alloy_sol_types::private::Address,
1273            provider: P,
1274        ) -> Self {
1275            Self {
1276                address,
1277                provider,
1278                _network: ::core::marker::PhantomData,
1279            }
1280        }
1281        /**Deploys this contract using the given `provider` and constructor arguments, if any.
1282
1283Returns a new instance of the contract, if the deployment was successful.
1284
1285For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
1286        #[inline]
1287        pub async fn deploy(
1288            provider: P,
1289        ) -> alloy_contract::Result<HoprNetworkRegistryEventsInstance<P, N>> {
1290            let call_builder = Self::deploy_builder(provider);
1291            let contract_address = call_builder.deploy().await?;
1292            Ok(Self::new(contract_address, call_builder.provider))
1293        }
1294        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
1295and constructor arguments, if any.
1296
1297This is a simple wrapper around creating a `RawCallBuilder` with the data set to
1298the bytecode concatenated with the constructor's ABI-encoded arguments.*/
1299        #[inline]
1300        pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
1301            alloy_contract::RawCallBuilder::new_raw_deploy(
1302                provider,
1303                ::core::clone::Clone::clone(&BYTECODE),
1304            )
1305        }
1306        /// Returns a reference to the address.
1307        #[inline]
1308        pub const fn address(&self) -> &alloy_sol_types::private::Address {
1309            &self.address
1310        }
1311        /// Sets the address.
1312        #[inline]
1313        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1314            self.address = address;
1315        }
1316        /// Sets the address and returns `self`.
1317        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1318            self.set_address(address);
1319            self
1320        }
1321        /// Returns a reference to the provider.
1322        #[inline]
1323        pub const fn provider(&self) -> &P {
1324            &self.provider
1325        }
1326    }
1327    impl<P: ::core::clone::Clone, N> HoprNetworkRegistryEventsInstance<&P, N> {
1328        /// Clones the provider and returns a new instance with the cloned provider.
1329        #[inline]
1330        pub fn with_cloned_provider(self) -> HoprNetworkRegistryEventsInstance<P, N> {
1331            HoprNetworkRegistryEventsInstance {
1332                address: self.address,
1333                provider: ::core::clone::Clone::clone(&self.provider),
1334                _network: ::core::marker::PhantomData,
1335            }
1336        }
1337    }
1338    /// Function calls.
1339    #[automatically_derived]
1340    impl<
1341        P: alloy_contract::private::Provider<N>,
1342        N: alloy_contract::private::Network,
1343    > HoprNetworkRegistryEventsInstance<P, N> {
1344        /// Creates a new call builder using this contract instance's provider and address.
1345        ///
1346        /// Note that the call can be any function call, not just those defined in this
1347        /// contract. Prefer using the other methods for building type-safe contract calls.
1348        pub fn call_builder<C: alloy_sol_types::SolCall>(
1349            &self,
1350            call: &C,
1351        ) -> alloy_contract::SolCallBuilder<&P, C, N> {
1352            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1353        }
1354    }
1355    /// Event filters.
1356    #[automatically_derived]
1357    impl<
1358        P: alloy_contract::private::Provider<N>,
1359        N: alloy_contract::private::Network,
1360    > HoprNetworkRegistryEventsInstance<P, N> {
1361        /// Creates a new event filter using this contract instance's provider and address.
1362        ///
1363        /// Note that the type can be any event, not just those defined in this contract.
1364        /// Prefer using the other methods for building type-safe event filters.
1365        pub fn event_filter<E: alloy_sol_types::SolEvent>(
1366            &self,
1367        ) -> alloy_contract::Event<&P, E, N> {
1368            alloy_contract::Event::new_sol(&self.provider, &self.address)
1369        }
1370        ///Creates a new event filter for the [`Deregistered`] event.
1371        pub fn Deregistered_filter(&self) -> alloy_contract::Event<&P, Deregistered, N> {
1372            self.event_filter::<Deregistered>()
1373        }
1374        ///Creates a new event filter for the [`DeregisteredByManager`] event.
1375        pub fn DeregisteredByManager_filter(
1376            &self,
1377        ) -> alloy_contract::Event<&P, DeregisteredByManager, N> {
1378            self.event_filter::<DeregisteredByManager>()
1379        }
1380        ///Creates a new event filter for the [`EligibilityUpdated`] event.
1381        pub fn EligibilityUpdated_filter(
1382            &self,
1383        ) -> alloy_contract::Event<&P, EligibilityUpdated, N> {
1384            self.event_filter::<EligibilityUpdated>()
1385        }
1386        ///Creates a new event filter for the [`NetworkRegistryStatusUpdated`] event.
1387        pub fn NetworkRegistryStatusUpdated_filter(
1388            &self,
1389        ) -> alloy_contract::Event<&P, NetworkRegistryStatusUpdated, N> {
1390            self.event_filter::<NetworkRegistryStatusUpdated>()
1391        }
1392        ///Creates a new event filter for the [`Registered`] event.
1393        pub fn Registered_filter(&self) -> alloy_contract::Event<&P, Registered, N> {
1394            self.event_filter::<Registered>()
1395        }
1396        ///Creates a new event filter for the [`RegisteredByManager`] event.
1397        pub fn RegisteredByManager_filter(
1398            &self,
1399        ) -> alloy_contract::Event<&P, RegisteredByManager, N> {
1400            self.event_filter::<RegisteredByManager>()
1401        }
1402        ///Creates a new event filter for the [`RequirementUpdated`] event.
1403        pub fn RequirementUpdated_filter(
1404            &self,
1405        ) -> alloy_contract::Event<&P, RequirementUpdated, N> {
1406            self.event_filter::<RequirementUpdated>()
1407        }
1408    }
1409}