hopr_bindings/codegen/
hopr_staking_proxy_for_network_registry.rs

1pub use hopr_staking_proxy_for_network_registry::*;
2/// This module was auto-generated with ethers-rs Abigen.
3/// More information at: <https://github.com/gakonst/ethers-rs>
4#[allow(
5    clippy::enum_variant_names,
6    clippy::too_many_arguments,
7    clippy::upper_case_acronyms,
8    clippy::type_complexity,
9    dead_code,
10    non_camel_case_types,
11)]
12pub mod hopr_staking_proxy_for_network_registry {
13    #[allow(deprecated)]
14    fn __abi() -> ::ethers::core::abi::Abi {
15        ::ethers::core::abi::ethabi::Contract {
16            constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor {
17                inputs: ::std::vec![
18                    ::ethers::core::abi::ethabi::Param {
19                        name: ::std::borrow::ToOwned::to_owned("_stakeContract"),
20                        kind: ::ethers::core::abi::ethabi::ParamType::Address,
21                        internal_type: ::core::option::Option::Some(
22                            ::std::borrow::ToOwned::to_owned("address"),
23                        ),
24                    },
25                    ::ethers::core::abi::ethabi::Param {
26                        name: ::std::borrow::ToOwned::to_owned("_newOwner"),
27                        kind: ::ethers::core::abi::ethabi::ParamType::Address,
28                        internal_type: ::core::option::Option::Some(
29                            ::std::borrow::ToOwned::to_owned("address"),
30                        ),
31                    },
32                    ::ethers::core::abi::ethabi::Param {
33                        name: ::std::borrow::ToOwned::to_owned("_minStake"),
34                        kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
35                        internal_type: ::core::option::Option::Some(
36                            ::std::borrow::ToOwned::to_owned("uint256"),
37                        ),
38                    },
39                ],
40            }),
41            functions: ::core::convert::From::from([
42                (
43                    ::std::borrow::ToOwned::to_owned("canOperateFor"),
44                    ::std::vec![
45                        ::ethers::core::abi::ethabi::Function {
46                            name: ::std::borrow::ToOwned::to_owned("canOperateFor"),
47                            inputs: ::std::vec![
48                                ::ethers::core::abi::ethabi::Param {
49                                    name: ::std::string::String::new(),
50                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
51                                    internal_type: ::core::option::Option::Some(
52                                        ::std::borrow::ToOwned::to_owned("address"),
53                                    ),
54                                },
55                                ::ethers::core::abi::ethabi::Param {
56                                    name: ::std::string::String::new(),
57                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
58                                    internal_type: ::core::option::Option::Some(
59                                        ::std::borrow::ToOwned::to_owned("address"),
60                                    ),
61                                },
62                            ],
63                            outputs: ::std::vec![
64                                ::ethers::core::abi::ethabi::Param {
65                                    name: ::std::borrow::ToOwned::to_owned("eligiblity"),
66                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
67                                    internal_type: ::core::option::Option::Some(
68                                        ::std::borrow::ToOwned::to_owned("bool"),
69                                    ),
70                                },
71                            ],
72                            constant: ::core::option::Option::None,
73                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure,
74                        },
75                    ],
76                ),
77                (
78                    ::std::borrow::ToOwned::to_owned("eligibleNftTypeAndRank"),
79                    ::std::vec![
80                        ::ethers::core::abi::ethabi::Function {
81                            name: ::std::borrow::ToOwned::to_owned(
82                                "eligibleNftTypeAndRank",
83                            ),
84                            inputs: ::std::vec![
85                                ::ethers::core::abi::ethabi::Param {
86                                    name: ::std::string::String::new(),
87                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
88                                        256usize,
89                                    ),
90                                    internal_type: ::core::option::Option::Some(
91                                        ::std::borrow::ToOwned::to_owned("uint256"),
92                                    ),
93                                },
94                            ],
95                            outputs: ::std::vec![
96                                ::ethers::core::abi::ethabi::Param {
97                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
98                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
99                                        256usize,
100                                    ),
101                                    internal_type: ::core::option::Option::Some(
102                                        ::std::borrow::ToOwned::to_owned("uint256"),
103                                    ),
104                                },
105                                ::ethers::core::abi::ethabi::Param {
106                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
107                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
108                                    internal_type: ::core::option::Option::Some(
109                                        ::std::borrow::ToOwned::to_owned("string"),
110                                    ),
111                                },
112                            ],
113                            constant: ::core::option::Option::None,
114                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
115                        },
116                    ],
117                ),
118                (
119                    ::std::borrow::ToOwned::to_owned("maxAllowedRegistrations"),
120                    ::std::vec![
121                        ::ethers::core::abi::ethabi::Function {
122                            name: ::std::borrow::ToOwned::to_owned(
123                                "maxAllowedRegistrations",
124                            ),
125                            inputs: ::std::vec![
126                                ::ethers::core::abi::ethabi::Param {
127                                    name: ::std::borrow::ToOwned::to_owned("account"),
128                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
129                                    internal_type: ::core::option::Option::Some(
130                                        ::std::borrow::ToOwned::to_owned("address"),
131                                    ),
132                                },
133                            ],
134                            outputs: ::std::vec![
135                                ::ethers::core::abi::ethabi::Param {
136                                    name: ::std::string::String::new(),
137                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
138                                        256usize,
139                                    ),
140                                    internal_type: ::core::option::Option::Some(
141                                        ::std::borrow::ToOwned::to_owned("uint256"),
142                                    ),
143                                },
144                            ],
145                            constant: ::core::option::Option::None,
146                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
147                        },
148                    ],
149                ),
150                (
151                    ::std::borrow::ToOwned::to_owned("maxRegistrationsPerSpecialNft"),
152                    ::std::vec![
153                        ::ethers::core::abi::ethabi::Function {
154                            name: ::std::borrow::ToOwned::to_owned(
155                                "maxRegistrationsPerSpecialNft",
156                            ),
157                            inputs: ::std::vec![
158                                ::ethers::core::abi::ethabi::Param {
159                                    name: ::std::string::String::new(),
160                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
161                                        256usize,
162                                    ),
163                                    internal_type: ::core::option::Option::Some(
164                                        ::std::borrow::ToOwned::to_owned("uint256"),
165                                    ),
166                                },
167                            ],
168                            outputs: ::std::vec![
169                                ::ethers::core::abi::ethabi::Param {
170                                    name: ::std::string::String::new(),
171                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
172                                        256usize,
173                                    ),
174                                    internal_type: ::core::option::Option::Some(
175                                        ::std::borrow::ToOwned::to_owned("uint256"),
176                                    ),
177                                },
178                            ],
179                            constant: ::core::option::Option::None,
180                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
181                        },
182                    ],
183                ),
184                (
185                    ::std::borrow::ToOwned::to_owned("owner"),
186                    ::std::vec![
187                        ::ethers::core::abi::ethabi::Function {
188                            name: ::std::borrow::ToOwned::to_owned("owner"),
189                            inputs: ::std::vec![],
190                            outputs: ::std::vec![
191                                ::ethers::core::abi::ethabi::Param {
192                                    name: ::std::string::String::new(),
193                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
194                                    internal_type: ::core::option::Option::Some(
195                                        ::std::borrow::ToOwned::to_owned("address"),
196                                    ),
197                                },
198                            ],
199                            constant: ::core::option::Option::None,
200                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
201                        },
202                    ],
203                ),
204                (
205                    ::std::borrow::ToOwned::to_owned("ownerAddNftTypeAndRank"),
206                    ::std::vec![
207                        ::ethers::core::abi::ethabi::Function {
208                            name: ::std::borrow::ToOwned::to_owned(
209                                "ownerAddNftTypeAndRank",
210                            ),
211                            inputs: ::std::vec![
212                                ::ethers::core::abi::ethabi::Param {
213                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
214                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
215                                        256usize,
216                                    ),
217                                    internal_type: ::core::option::Option::Some(
218                                        ::std::borrow::ToOwned::to_owned("uint256"),
219                                    ),
220                                },
221                                ::ethers::core::abi::ethabi::Param {
222                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
223                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
224                                    internal_type: ::core::option::Option::Some(
225                                        ::std::borrow::ToOwned::to_owned("string"),
226                                    ),
227                                },
228                            ],
229                            outputs: ::std::vec![],
230                            constant: ::core::option::Option::None,
231                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
232                        },
233                    ],
234                ),
235                (
236                    ::std::borrow::ToOwned::to_owned("ownerBatchAddNftTypeAndRank"),
237                    ::std::vec![
238                        ::ethers::core::abi::ethabi::Function {
239                            name: ::std::borrow::ToOwned::to_owned(
240                                "ownerBatchAddNftTypeAndRank",
241                            ),
242                            inputs: ::std::vec![
243                                ::ethers::core::abi::ethabi::Param {
244                                    name: ::std::borrow::ToOwned::to_owned("nftTypes"),
245                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
246                                        ::std::boxed::Box::new(
247                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
248                                        ),
249                                    ),
250                                    internal_type: ::core::option::Option::Some(
251                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
252                                    ),
253                                },
254                                ::ethers::core::abi::ethabi::Param {
255                                    name: ::std::borrow::ToOwned::to_owned("nftRanks"),
256                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
257                                        ::std::boxed::Box::new(
258                                            ::ethers::core::abi::ethabi::ParamType::String,
259                                        ),
260                                    ),
261                                    internal_type: ::core::option::Option::Some(
262                                        ::std::borrow::ToOwned::to_owned("string[]"),
263                                    ),
264                                },
265                            ],
266                            outputs: ::std::vec![],
267                            constant: ::core::option::Option::None,
268                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
269                        },
270                    ],
271                ),
272                (
273                    ::std::borrow::ToOwned::to_owned(
274                        "ownerBatchAddSpecialNftTypeAndRank",
275                    ),
276                    ::std::vec![
277                        ::ethers::core::abi::ethabi::Function {
278                            name: ::std::borrow::ToOwned::to_owned(
279                                "ownerBatchAddSpecialNftTypeAndRank",
280                            ),
281                            inputs: ::std::vec![
282                                ::ethers::core::abi::ethabi::Param {
283                                    name: ::std::borrow::ToOwned::to_owned("nftTypes"),
284                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
285                                        ::std::boxed::Box::new(
286                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
287                                        ),
288                                    ),
289                                    internal_type: ::core::option::Option::Some(
290                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
291                                    ),
292                                },
293                                ::ethers::core::abi::ethabi::Param {
294                                    name: ::std::borrow::ToOwned::to_owned("nftRanks"),
295                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
296                                        ::std::boxed::Box::new(
297                                            ::ethers::core::abi::ethabi::ParamType::String,
298                                        ),
299                                    ),
300                                    internal_type: ::core::option::Option::Some(
301                                        ::std::borrow::ToOwned::to_owned("string[]"),
302                                    ),
303                                },
304                                ::ethers::core::abi::ethabi::Param {
305                                    name: ::std::borrow::ToOwned::to_owned("maxRegistrations"),
306                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
307                                        ::std::boxed::Box::new(
308                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
309                                        ),
310                                    ),
311                                    internal_type: ::core::option::Option::Some(
312                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
313                                    ),
314                                },
315                            ],
316                            outputs: ::std::vec![],
317                            constant: ::core::option::Option::None,
318                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
319                        },
320                    ],
321                ),
322                (
323                    ::std::borrow::ToOwned::to_owned("ownerBatchRemoveNftTypeAndRank"),
324                    ::std::vec![
325                        ::ethers::core::abi::ethabi::Function {
326                            name: ::std::borrow::ToOwned::to_owned(
327                                "ownerBatchRemoveNftTypeAndRank",
328                            ),
329                            inputs: ::std::vec![
330                                ::ethers::core::abi::ethabi::Param {
331                                    name: ::std::borrow::ToOwned::to_owned("nftTypes"),
332                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
333                                        ::std::boxed::Box::new(
334                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
335                                        ),
336                                    ),
337                                    internal_type: ::core::option::Option::Some(
338                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
339                                    ),
340                                },
341                                ::ethers::core::abi::ethabi::Param {
342                                    name: ::std::borrow::ToOwned::to_owned("nftRanks"),
343                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
344                                        ::std::boxed::Box::new(
345                                            ::ethers::core::abi::ethabi::ParamType::String,
346                                        ),
347                                    ),
348                                    internal_type: ::core::option::Option::Some(
349                                        ::std::borrow::ToOwned::to_owned("string[]"),
350                                    ),
351                                },
352                            ],
353                            outputs: ::std::vec![],
354                            constant: ::core::option::Option::None,
355                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
356                        },
357                    ],
358                ),
359                (
360                    ::std::borrow::ToOwned::to_owned(
361                        "ownerBatchRemoveSpecialNftTypeAndRank",
362                    ),
363                    ::std::vec![
364                        ::ethers::core::abi::ethabi::Function {
365                            name: ::std::borrow::ToOwned::to_owned(
366                                "ownerBatchRemoveSpecialNftTypeAndRank",
367                            ),
368                            inputs: ::std::vec![
369                                ::ethers::core::abi::ethabi::Param {
370                                    name: ::std::borrow::ToOwned::to_owned("nftTypes"),
371                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
372                                        ::std::boxed::Box::new(
373                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
374                                        ),
375                                    ),
376                                    internal_type: ::core::option::Option::Some(
377                                        ::std::borrow::ToOwned::to_owned("uint256[]"),
378                                    ),
379                                },
380                                ::ethers::core::abi::ethabi::Param {
381                                    name: ::std::borrow::ToOwned::to_owned("nftRanks"),
382                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
383                                        ::std::boxed::Box::new(
384                                            ::ethers::core::abi::ethabi::ParamType::String,
385                                        ),
386                                    ),
387                                    internal_type: ::core::option::Option::Some(
388                                        ::std::borrow::ToOwned::to_owned("string[]"),
389                                    ),
390                                },
391                            ],
392                            outputs: ::std::vec![],
393                            constant: ::core::option::Option::None,
394                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
395                        },
396                    ],
397                ),
398                (
399                    ::std::borrow::ToOwned::to_owned("ownerRemoveNftTypeAndRank"),
400                    ::std::vec![
401                        ::ethers::core::abi::ethabi::Function {
402                            name: ::std::borrow::ToOwned::to_owned(
403                                "ownerRemoveNftTypeAndRank",
404                            ),
405                            inputs: ::std::vec![
406                                ::ethers::core::abi::ethabi::Param {
407                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
408                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
409                                        256usize,
410                                    ),
411                                    internal_type: ::core::option::Option::Some(
412                                        ::std::borrow::ToOwned::to_owned("uint256"),
413                                    ),
414                                },
415                                ::ethers::core::abi::ethabi::Param {
416                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
417                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
418                                    internal_type: ::core::option::Option::Some(
419                                        ::std::borrow::ToOwned::to_owned("string"),
420                                    ),
421                                },
422                            ],
423                            outputs: ::std::vec![],
424                            constant: ::core::option::Option::None,
425                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
426                        },
427                    ],
428                ),
429                (
430                    ::std::borrow::ToOwned::to_owned("ownerUpdateThreshold"),
431                    ::std::vec![
432                        ::ethers::core::abi::ethabi::Function {
433                            name: ::std::borrow::ToOwned::to_owned(
434                                "ownerUpdateThreshold",
435                            ),
436                            inputs: ::std::vec![
437                                ::ethers::core::abi::ethabi::Param {
438                                    name: ::std::borrow::ToOwned::to_owned("newThreshold"),
439                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
440                                        256usize,
441                                    ),
442                                    internal_type: ::core::option::Option::Some(
443                                        ::std::borrow::ToOwned::to_owned("uint256"),
444                                    ),
445                                },
446                            ],
447                            outputs: ::std::vec![],
448                            constant: ::core::option::Option::None,
449                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
450                        },
451                    ],
452                ),
453                (
454                    ::std::borrow::ToOwned::to_owned("renounceOwnership"),
455                    ::std::vec![
456                        ::ethers::core::abi::ethabi::Function {
457                            name: ::std::borrow::ToOwned::to_owned("renounceOwnership"),
458                            inputs: ::std::vec![],
459                            outputs: ::std::vec![],
460                            constant: ::core::option::Option::None,
461                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
462                        },
463                    ],
464                ),
465                (
466                    ::std::borrow::ToOwned::to_owned("specialNftTypeAndRank"),
467                    ::std::vec![
468                        ::ethers::core::abi::ethabi::Function {
469                            name: ::std::borrow::ToOwned::to_owned(
470                                "specialNftTypeAndRank",
471                            ),
472                            inputs: ::std::vec![
473                                ::ethers::core::abi::ethabi::Param {
474                                    name: ::std::string::String::new(),
475                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
476                                        256usize,
477                                    ),
478                                    internal_type: ::core::option::Option::Some(
479                                        ::std::borrow::ToOwned::to_owned("uint256"),
480                                    ),
481                                },
482                            ],
483                            outputs: ::std::vec![
484                                ::ethers::core::abi::ethabi::Param {
485                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
486                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
487                                        256usize,
488                                    ),
489                                    internal_type: ::core::option::Option::Some(
490                                        ::std::borrow::ToOwned::to_owned("uint256"),
491                                    ),
492                                },
493                                ::ethers::core::abi::ethabi::Param {
494                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
495                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
496                                    internal_type: ::core::option::Option::Some(
497                                        ::std::borrow::ToOwned::to_owned("string"),
498                                    ),
499                                },
500                            ],
501                            constant: ::core::option::Option::None,
502                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
503                        },
504                    ],
505                ),
506                (
507                    ::std::borrow::ToOwned::to_owned("stakeContract"),
508                    ::std::vec![
509                        ::ethers::core::abi::ethabi::Function {
510                            name: ::std::borrow::ToOwned::to_owned("stakeContract"),
511                            inputs: ::std::vec![],
512                            outputs: ::std::vec![
513                                ::ethers::core::abi::ethabi::Param {
514                                    name: ::std::string::String::new(),
515                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
516                                    internal_type: ::core::option::Option::Some(
517                                        ::std::borrow::ToOwned::to_owned("contract IHoprStake"),
518                                    ),
519                                },
520                            ],
521                            constant: ::core::option::Option::None,
522                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
523                        },
524                    ],
525                ),
526                (
527                    ::std::borrow::ToOwned::to_owned("stakeThreshold"),
528                    ::std::vec![
529                        ::ethers::core::abi::ethabi::Function {
530                            name: ::std::borrow::ToOwned::to_owned("stakeThreshold"),
531                            inputs: ::std::vec![],
532                            outputs: ::std::vec![
533                                ::ethers::core::abi::ethabi::Param {
534                                    name: ::std::string::String::new(),
535                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
536                                        256usize,
537                                    ),
538                                    internal_type: ::core::option::Option::Some(
539                                        ::std::borrow::ToOwned::to_owned("uint256"),
540                                    ),
541                                },
542                            ],
543                            constant: ::core::option::Option::None,
544                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
545                        },
546                    ],
547                ),
548                (
549                    ::std::borrow::ToOwned::to_owned("transferOwnership"),
550                    ::std::vec![
551                        ::ethers::core::abi::ethabi::Function {
552                            name: ::std::borrow::ToOwned::to_owned("transferOwnership"),
553                            inputs: ::std::vec![
554                                ::ethers::core::abi::ethabi::Param {
555                                    name: ::std::borrow::ToOwned::to_owned("newOwner"),
556                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
557                                    internal_type: ::core::option::Option::Some(
558                                        ::std::borrow::ToOwned::to_owned("address"),
559                                    ),
560                                },
561                            ],
562                            outputs: ::std::vec![],
563                            constant: ::core::option::Option::None,
564                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
565                        },
566                    ],
567                ),
568                (
569                    ::std::borrow::ToOwned::to_owned("updateStakeContract"),
570                    ::std::vec![
571                        ::ethers::core::abi::ethabi::Function {
572                            name: ::std::borrow::ToOwned::to_owned(
573                                "updateStakeContract",
574                            ),
575                            inputs: ::std::vec![
576                                ::ethers::core::abi::ethabi::Param {
577                                    name: ::std::borrow::ToOwned::to_owned("_stakeContract"),
578                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
579                                    internal_type: ::core::option::Option::Some(
580                                        ::std::borrow::ToOwned::to_owned("address"),
581                                    ),
582                                },
583                            ],
584                            outputs: ::std::vec![],
585                            constant: ::core::option::Option::None,
586                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
587                        },
588                    ],
589                ),
590            ]),
591            events: ::core::convert::From::from([
592                (
593                    ::std::borrow::ToOwned::to_owned("NftTypeAndRankAdded"),
594                    ::std::vec![
595                        ::ethers::core::abi::ethabi::Event {
596                            name: ::std::borrow::ToOwned::to_owned(
597                                "NftTypeAndRankAdded",
598                            ),
599                            inputs: ::std::vec![
600                                ::ethers::core::abi::ethabi::EventParam {
601                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
602                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
603                                        256usize,
604                                    ),
605                                    indexed: true,
606                                },
607                                ::ethers::core::abi::ethabi::EventParam {
608                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
609                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
610                                    indexed: false,
611                                },
612                            ],
613                            anonymous: false,
614                        },
615                    ],
616                ),
617                (
618                    ::std::borrow::ToOwned::to_owned("NftTypeAndRankRemoved"),
619                    ::std::vec![
620                        ::ethers::core::abi::ethabi::Event {
621                            name: ::std::borrow::ToOwned::to_owned(
622                                "NftTypeAndRankRemoved",
623                            ),
624                            inputs: ::std::vec![
625                                ::ethers::core::abi::ethabi::EventParam {
626                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
627                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
628                                        256usize,
629                                    ),
630                                    indexed: true,
631                                },
632                                ::ethers::core::abi::ethabi::EventParam {
633                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
634                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
635                                    indexed: false,
636                                },
637                            ],
638                            anonymous: false,
639                        },
640                    ],
641                ),
642                (
643                    ::std::borrow::ToOwned::to_owned("OwnershipTransferred"),
644                    ::std::vec![
645                        ::ethers::core::abi::ethabi::Event {
646                            name: ::std::borrow::ToOwned::to_owned(
647                                "OwnershipTransferred",
648                            ),
649                            inputs: ::std::vec![
650                                ::ethers::core::abi::ethabi::EventParam {
651                                    name: ::std::borrow::ToOwned::to_owned("previousOwner"),
652                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
653                                    indexed: true,
654                                },
655                                ::ethers::core::abi::ethabi::EventParam {
656                                    name: ::std::borrow::ToOwned::to_owned("newOwner"),
657                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
658                                    indexed: true,
659                                },
660                            ],
661                            anonymous: false,
662                        },
663                    ],
664                ),
665                (
666                    ::std::borrow::ToOwned::to_owned("SpecialNftTypeAndRankAdded"),
667                    ::std::vec![
668                        ::ethers::core::abi::ethabi::Event {
669                            name: ::std::borrow::ToOwned::to_owned(
670                                "SpecialNftTypeAndRankAdded",
671                            ),
672                            inputs: ::std::vec![
673                                ::ethers::core::abi::ethabi::EventParam {
674                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
675                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
676                                        256usize,
677                                    ),
678                                    indexed: true,
679                                },
680                                ::ethers::core::abi::ethabi::EventParam {
681                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
682                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
683                                    indexed: false,
684                                },
685                                ::ethers::core::abi::ethabi::EventParam {
686                                    name: ::std::borrow::ToOwned::to_owned("maxRegistration"),
687                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
688                                        256usize,
689                                    ),
690                                    indexed: true,
691                                },
692                            ],
693                            anonymous: false,
694                        },
695                    ],
696                ),
697                (
698                    ::std::borrow::ToOwned::to_owned("SpecialNftTypeAndRankRemoved"),
699                    ::std::vec![
700                        ::ethers::core::abi::ethabi::Event {
701                            name: ::std::borrow::ToOwned::to_owned(
702                                "SpecialNftTypeAndRankRemoved",
703                            ),
704                            inputs: ::std::vec![
705                                ::ethers::core::abi::ethabi::EventParam {
706                                    name: ::std::borrow::ToOwned::to_owned("nftType"),
707                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
708                                        256usize,
709                                    ),
710                                    indexed: true,
711                                },
712                                ::ethers::core::abi::ethabi::EventParam {
713                                    name: ::std::borrow::ToOwned::to_owned("nftRank"),
714                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
715                                    indexed: false,
716                                },
717                            ],
718                            anonymous: false,
719                        },
720                    ],
721                ),
722                (
723                    ::std::borrow::ToOwned::to_owned("StakeContractUpdated"),
724                    ::std::vec![
725                        ::ethers::core::abi::ethabi::Event {
726                            name: ::std::borrow::ToOwned::to_owned(
727                                "StakeContractUpdated",
728                            ),
729                            inputs: ::std::vec![
730                                ::ethers::core::abi::ethabi::EventParam {
731                                    name: ::std::borrow::ToOwned::to_owned("stakeContract"),
732                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
733                                    indexed: true,
734                                },
735                            ],
736                            anonymous: false,
737                        },
738                    ],
739                ),
740                (
741                    ::std::borrow::ToOwned::to_owned("ThresholdUpdated"),
742                    ::std::vec![
743                        ::ethers::core::abi::ethabi::Event {
744                            name: ::std::borrow::ToOwned::to_owned("ThresholdUpdated"),
745                            inputs: ::std::vec![
746                                ::ethers::core::abi::ethabi::EventParam {
747                                    name: ::std::borrow::ToOwned::to_owned("threshold"),
748                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
749                                        256usize,
750                                    ),
751                                    indexed: true,
752                                },
753                            ],
754                            anonymous: false,
755                        },
756                    ],
757                ),
758            ]),
759            errors: ::core::convert::From::from([
760                (
761                    ::std::borrow::ToOwned::to_owned("MaxRegistrationsMismatch"),
762                    ::std::vec![
763                        ::ethers::core::abi::ethabi::AbiError {
764                            name: ::std::borrow::ToOwned::to_owned(
765                                "MaxRegistrationsMismatch",
766                            ),
767                            inputs: ::std::vec![],
768                        },
769                    ],
770                ),
771                (
772                    ::std::borrow::ToOwned::to_owned("NftRanksMismatch"),
773                    ::std::vec![
774                        ::ethers::core::abi::ethabi::AbiError {
775                            name: ::std::borrow::ToOwned::to_owned("NftRanksMismatch"),
776                            inputs: ::std::vec![],
777                        },
778                    ],
779                ),
780                (
781                    ::std::borrow::ToOwned::to_owned("SameStakingThreshold"),
782                    ::std::vec![
783                        ::ethers::core::abi::ethabi::AbiError {
784                            name: ::std::borrow::ToOwned::to_owned(
785                                "SameStakingThreshold",
786                            ),
787                            inputs: ::std::vec![],
788                        },
789                    ],
790                ),
791            ]),
792            receive: false,
793            fallback: false,
794        }
795    }
796    ///The parsed JSON ABI of the contract.
797    pub static HOPRSTAKINGPROXYFORNETWORKREGISTRY_ABI: ::ethers::contract::Lazy<
798        ::ethers::core::abi::Abi,
799    > = ::ethers::contract::Lazy::new(__abi);
800    #[rustfmt::skip]
801    const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0\x1Cp8\x03\x80b\0\x1Cp\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x01EV[b\0\0?3b\0\0\x8EV[b\0\0J\x83b\0\0\xDEV[b\0\0U\x82b\0\0\x8EV[`\x02\x81\x90U`@Q\x81\x90\x7F\xAD\xFA\x8E\xCB!\xB6\x96.\xBC\xD0\xAD\xBD\x9A\xB9\x85\xB7\xB4\xC5\xB5\xEB;\r\xEA\xD6\x83\x17\x15e\xC7\xBF\xE1q\x90`\0\x90\xA2PPPb\0\x01\x86V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x90\x91U`@Q\x7FW;\xBF\xA6y\xAFo\xDC\xDB\xD9\xCF\x19\x1C^\xF3\xE5&Y\x9A\xC2\xBFu\xE9\x17}G\xAD\xB8S\x0B\x9Ci\x90`\0\x90\xA2PV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x01@W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15b\0\x01[W`\0\x80\xFD[b\0\x01f\x84b\0\x01(V[\x92Pb\0\x01v` \x85\x01b\0\x01(V[\x91P`@\x84\x01Q\x90P\x92P\x92P\x92V[a\x1A\xDA\x80b\0\x01\x96`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x16W`\x005`\xE0\x1C\x80c\xB0^\x8B\xA9\x11a\0\xA2W\x80c\xDEbl\x0E\x11a\0qW\x80c\xDEbl\x0E\x14a\x02PW\x80c\xEEP\xC7\xC4\x14a\x02cW\x80c\xF1\x1Fw\xF9\x14a\x02vW\x80c\xF2\xFD\xE3\x8B\x14a\x02\x7FW\x80c\xFBf\xACW\x14a\x02\x92W`\0\x80\xFD[\x80c\xB0^\x8B\xA9\x14a\x01\xE6W\x80c\xB3TN\x82\x14a\x01\xF9W\x80c\xBA\x1C\xEF#\x14a\x02\x1AW\x80c\xD8Z\xD0D\x14a\x02-W`\0\x80\xFD[\x80cj;d\xB6\x11a\0\xE9W\x80cj;d\xB6\x14a\x01\x94W\x80cqP\x18\xA6\x14a\x01\xA7W\x80c\x83\x0Cl\xC2\x14a\x01\xAFW\x80c\x8D\xA5\xCB[\x14a\x01\xC2W\x80c\x9B\x97\x07o\x14a\x01\xD3W`\0\x80\xFD[\x80c\x1A\x18b'\x14a\x01\x1BW\x80c,>\xC8\x0B\x14a\x01KW\x80cPdr\xCC\x14a\x01lW\x80ceBQ\xEB\x14a\x01\x81W[`\0\x80\xFD[`\x01Ta\x01.\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01^a\x01Y6`\x04a\x13\xB0V[a\x02\xA5V[`@Qa\x01B\x92\x91\x90a\x14\x0FV[a\x01\x7Fa\x01z6`\x04a\x14|V[a\x03]V[\0[a\x01\x7Fa\x01\x8F6`\x04a\x14\xFEV[a\x04#V[a\x01\x7Fa\x01\xA26`\x04a\x15\xB9V[a\x049V[a\x01\x7Fa\x05<V[a\x01\x7Fa\x01\xBD6`\x04a\x16oV[a\x05PV[`\0T`\x01`\x01`\xA0\x1B\x03\x16a\x01.V[a\x01\x7Fa\x01\xE16`\x04a\x14\xFEV[a\x05dV[a\x01\x7Fa\x01\xF46`\x04a\x14|V[a\x05vV[a\x02\x0Ca\x02\x076`\x04a\x16oV[a\x065V[`@Q\x90\x81R` \x01a\x01BV[a\x02\x0Ca\x02(6`\x04a\x13\xB0V[a\t\xEAV[a\x02@a\x02;6`\x04a\x16\x8AV[a\n\x0BV[`@Q\x90\x15\x15\x81R` \x01a\x01BV[a\x01^a\x02^6`\x04a\x13\xB0V[a\n\x14V[a\x01\x7Fa\x02q6`\x04a\x13\xB0V[a\n$V[a\x02\x0C`\x02T\x81V[a\x01\x7Fa\x02\x8D6`\x04a\x16oV[a\n\x81V[a\x01\x7Fa\x02\xA06`\x04a\x14|V[a\n\xFCV[`\x05\x81\x81T\x81\x10a\x02\xB5W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x02\x90\x91\x02\x01\x80T`\x01\x82\x01\x80T\x91\x93P\x90a\x02\xDA\x90a\x16\xBDV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\x06\x90a\x16\xBDV[\x80\x15a\x03SW\x80`\x1F\x10a\x03(Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x03SV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x036W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x82V[a\x03ea\x0B\xBBV[\x82\x81\x14a\x03\x85W`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x04\x1CWa\x04\n\x85\x85\x83\x81\x81\x10a\x03\xA5Wa\x03\xA5a\x16\xF7V[\x90P` \x02\x015\x84\x84\x84\x81\x81\x10a\x03\xBEWa\x03\xBEa\x16\xF7V[\x90P` \x02\x81\x01\x90a\x03\xD0\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0C\x15\x92PPPV[\x80a\x04\x14\x81a\x17jV[\x91PPa\x03\x88V[PPPPPV[a\x04+a\x0B\xBBV[a\x045\x82\x82a\rqV[PPV[a\x04Aa\x0B\xBBV[\x84\x83\x14a\x04aW`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84\x81\x14a\x04\x81W`@Qc\x19y\x10\xE9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x85\x81\x10\x15a\x053Wa\x05!\x87\x87\x83\x81\x81\x10a\x04\xA1Wa\x04\xA1a\x16\xF7V[\x90P` \x02\x015\x86\x86\x84\x81\x81\x10a\x04\xBAWa\x04\xBAa\x16\xF7V[\x90P` \x02\x81\x01\x90a\x04\xCC\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x88\x92P\x87\x91P\x86\x90P\x81\x81\x10a\x05\x15Wa\x05\x15a\x16\xF7V[\x90P` \x02\x015a\x0E\xEFV[\x80a\x05+\x81a\x17jV[\x91PPa\x04\x84V[PPPPPPPV[a\x05Da\x0B\xBBV[a\x05N`\0a\x10\xD3V[V[a\x05Xa\x0B\xBBV[a\x05a\x81a\x11#V[PV[a\x05la\x0B\xBBV[a\x045\x82\x82a\x0C\x15V[a\x05~a\x0B\xBBV[\x82\x81\x14a\x05\x9EW`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x04\x1CWa\x06#\x85\x85\x83\x81\x81\x10a\x05\xBEWa\x05\xBEa\x16\xF7V[\x90P` \x02\x015\x84\x84\x84\x81\x81\x10a\x05\xD7Wa\x05\xD7a\x16\xF7V[\x90P` \x02\x81\x01\x90a\x05\xE9\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x11m\x92PPPV[\x80a\x06-\x81a\x17jV[\x91PPa\x05\xA1V[`\0\x80`\0[`\x05T\x81\x10\x15a\x07\xD7W`\0`\x05\x82\x81T\x81\x10a\x06ZWa\x06Za\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`@Q\x80`@\x01`@R\x90\x81`\0\x82\x01T\x81R` \x01`\x01\x82\x01\x80Ta\x06\x8D\x90a\x16\xBDV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x06\xB9\x90a\x16\xBDV[\x80\x15a\x07\x06W\x80`\x1F\x10a\x06\xDBWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x07\x06V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x06\xE9W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x90\x92RPP`\x01T\x82Q` \x84\x01Q`@Qc\x96\xA9\xCD}`\xE0\x1B\x81R\x94\x95P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x93c\x96\xA9\xCD}\x93Pa\x07K\x92\x90\x8A\x90`\x04\x01a\x17\x83V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07hW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x8C\x91\x90a\x17\xB4V[\x15a\x07\xC4Wa\x07\xC1`\x04\x83\x81T\x81\x10a\x07\xA7Wa\x07\xA7a\x16\xF7V[\x90`\0R` `\0 \x01T\x84a\x13J\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x92P[P\x80a\x07\xCF\x81a\x17jV[\x91PPa\x06;V[P`\x01T`@Qc\xF9x\xFF\xF1`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\x04\x83\x01R`\0\x92\x16\x90c\xF9x\xFF\xF1\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08#W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08G\x91\x90a\x17\xD6V[\x90P`\x02T\x81\x10\x15a\x08ZWP\x92\x91PPV[`\0[`\x03T\x81\x10\x15a\t\xE1W`\0`\x03\x82\x81T\x81\x10a\x08|Wa\x08|a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`@Q\x80`@\x01`@R\x90\x81`\0\x82\x01T\x81R` \x01`\x01\x82\x01\x80Ta\x08\xAF\x90a\x16\xBDV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x08\xDB\x90a\x16\xBDV[\x80\x15a\t(W\x80`\x1F\x10a\x08\xFDWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\t(V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\t\x0BW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x90\x92RPP`\x01T\x82Q` \x84\x01Q`@Qc\x96\xA9\xCD}`\xE0\x1B\x81R\x94\x95P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x93c\x96\xA9\xCD}\x93Pa\tm\x92\x90\x8B\x90`\x04\x01a\x17\x83V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x8AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xAE\x91\x90a\x17\xB4V[\x15a\t\xCEWa\t\xCB`\x02T\x84a\t\xC4\x91\x90a\x17\xEFV[\x85\x90a\x13JV[\x93P[P\x80a\t\xD9\x81a\x17jV[\x91PPa\x08]V[P\x90\x93\x92PPPV[`\x04\x81\x81T\x81\x10a\t\xFAW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T\x90P\x81V[`\x01[\x92\x91PPV[`\x03\x81\x81T\x81\x10a\x02\xB5W`\0\x80\xFD[a\n,a\x0B\xBBV[\x80`\x02T\x03a\nNW`@Qc \xE4{\x13`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81\x90U`@Q\x81\x90\x7F\xAD\xFA\x8E\xCB!\xB6\x96.\xBC\xD0\xAD\xBD\x9A\xB9\x85\xB7\xB4\xC5\xB5\xEB;\r\xEA\xD6\x83\x17\x15e\xC7\xBF\xE1q\x90`\0\x90\xA2PV[a\n\x89a\x0B\xBBV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\n\xF3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x05a\x81a\x10\xD3V[a\x0B\x04a\x0B\xBBV[\x82\x81\x14a\x0B$W`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x04\x1CWa\x0B\xA9\x85\x85\x83\x81\x81\x10a\x0BDWa\x0BDa\x16\xF7V[\x90P` \x02\x015\x84\x84\x84\x81\x81\x10a\x0B]Wa\x0B]a\x16\xF7V[\x90P` \x02\x81\x01\x90a\x0Bo\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\rq\x92PPPV[\x80a\x0B\xB3\x81a\x17jV[\x91PPa\x0B'V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05NW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\n\xEAV[`\0[`\x03T\x81\x10\x15a\x0C\xAFW\x82`\x03\x82\x81T\x81\x10a\x0C6Wa\x0C6a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\x0C\x93WP\x81\x80Q\x90` \x01 `\x03\x82\x81T\x81\x10a\x0CkWa\x0Cka\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\x0C\x89\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x0C\x9DWPPPV[\x80a\x0C\xA7\x81a\x17jV[\x91PPa\x0C\x18V[P`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x81\x01\x82\x81R`\x03\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x82Q`\x02\x90\x91\x02\x7F\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8[\x81\x01\x91\x82U\x91Q\x90\x91\x7F\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8\\\x01\x90a\r2\x90\x82a\x18\xD5V[PPP\x81\x7F#`\xEE>wHTA\xCF\xA0~0\xE8\xDC[\x03\x1F\xAC8EVG\xC8\x9Av44\xF5\x873\xFC\xC1\x82`@Qa\re\x91\x90a\x19\x95V[`@Q\x80\x91\x03\x90\xA2PPV[`\0[`\x03T\x81\x10\x15a\x0E\xEAW\x82`\x03\x82\x81T\x81\x10a\r\x92Wa\r\x92a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\r\xEFWP\x81\x80Q\x90` \x01 `\x03\x82\x81T\x81\x10a\r\xC7Wa\r\xC7a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\r\xE5\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x0E\xD8W`\x03\x80Ta\x0E\x04\x90`\x01\x90a\x19\xA8V[\x81T\x81\x10a\x0E\x14Wa\x0E\x14a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x03\x82\x81T\x81\x10a\x0E5Wa\x0E5a\x16\xF7V[`\0\x91\x82R` \x90\x91 \x82T`\x02\x90\x92\x02\x01\x90\x81U`\x01\x80\x82\x01\x90a\x0E\\\x90\x84\x01\x82a\x19\xBBV[P\x90PP`\x03\x80T\x80a\x0EqWa\x0Eqa\x1A\x8EV[`\0\x82\x81R` \x81 `\x02`\0\x19\x90\x93\x01\x92\x83\x02\x01\x81\x81U\x90a\x0E\x97`\x01\x83\x01\x82a\x13bV[PP\x90U\x82\x7F\xB12>B\xD9{+=E\xF9\xD4d\x1B\xF4\xB6\xB3\xF9\xD0\xD0\x1E\x90\x83*\xE7\xB7A1\t\xB7\xA5\xD3G\x83`@Qa\x0E\xCB\x91\x90a\x19\x95V[`@Q\x80\x91\x03\x90\xA2PPPV[\x80a\x0E\xE2\x81a\x17jV[\x91PPa\rtV[PPPV[`\0[`\x05T\x81\x10\x15a\x0F\xE5W\x83`\x05\x82\x81T\x81\x10a\x0F\x10Wa\x0F\x10a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\x0FmWP\x82\x80Q\x90` \x01 `\x05\x82\x81T\x81\x10a\x0FEWa\x0FEa\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\x0Fc\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x0F\xD3W\x81`\x04\x82\x81T\x81\x10a\x0F\x86Wa\x0F\x86a\x16\xF7V[\x90`\0R` `\0 \x01\x81\x90UP\x81\x84\x7F\xE4;\xF5\xF5\xF8\xA1!\x190\xE5rk\xA0\xAB\xCE\xAC\xB1t\x8F\x97\xB2\x96m\xB3\n\x81\x8B\xA1\ta\xCB\xCC\x85`@Qa\x0F\xC5\x91\x90a\x19\x95V[`@Q\x80\x91\x03\x90\xA3PPPPV[\x80a\x0F\xDD\x81a\x17jV[\x91PPa\x0E\xF2V[`@\x80Q\x80\x82\x01\x90\x91R\x84\x81R` \x81\x01\x84\x81R`\x05\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x82Q`\x02\x90\x91\x02\x7F\x03kc\x84\xB5\xEC\xA7\x91\xC6'a\x15-\x0Cy\xBB\x06\x04\xC1\x04\xA5\xFBoN\xB0p?1T\xBB=\xB0\x81\x01\x91\x82U\x91Q\x90\x91\x7F\x03kc\x84\xB5\xEC\xA7\x91\xC6'a\x15-\x0Cy\xBB\x06\x04\xC1\x04\xA5\xFBoN\xB0p?1T\xBB=\xB1\x01\x90a\x10g\x90\x82a\x18\xD5V[PP`\x04\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B\x01\x83\x90UP`@Q\x82\x90\x85\x90\x7F\xE4;\xF5\xF5\xF8\xA1!\x190\xE5rk\xA0\xAB\xCE\xAC\xB1t\x8F\x97\xB2\x96m\xB3\n\x81\x8B\xA1\ta\xCB\xCC\x90a\x0F\xC5\x90\x87\x90a\x19\x95V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x90\x91U`@Q\x7FW;\xBF\xA6y\xAFo\xDC\xDB\xD9\xCF\x19\x1C^\xF3\xE5&Y\x9A\xC2\xBFu\xE9\x17}G\xAD\xB8S\x0B\x9Ci\x90`\0\x90\xA2PV[`\0[`\x05T\x81\x10\x15a\x0E\xEAW\x82`\x05\x82\x81T\x81\x10a\x11\x8EWa\x11\x8Ea\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\x11\xEBWP\x81\x80Q\x90` \x01 `\x05\x82\x81T\x81\x10a\x11\xC3Wa\x11\xC3a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\x11\xE1\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x138W`\x05\x80Ta\x12\0\x90`\x01\x90a\x19\xA8V[\x81T\x81\x10a\x12\x10Wa\x12\x10a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x05\x82\x81T\x81\x10a\x121Wa\x121a\x16\xF7V[`\0\x91\x82R` \x90\x91 \x82T`\x02\x90\x92\x02\x01\x90\x81U`\x01\x80\x82\x01\x90a\x12X\x90\x84\x01\x82a\x19\xBBV[P\x90PP`\x05\x80T\x80a\x12mWa\x12ma\x1A\x8EV[`\0\x82\x81R` \x81 `\x02`\0\x19\x90\x93\x01\x92\x83\x02\x01\x81\x81U\x90a\x12\x93`\x01\x83\x01\x82a\x13bV[PP\x90U`\x04\x80Ta\x12\xA7\x90`\x01\x90a\x19\xA8V[\x81T\x81\x10a\x12\xB7Wa\x12\xB7a\x16\xF7V[\x90`\0R` `\0 \x01T`\x04\x82\x81T\x81\x10a\x12\xD5Wa\x12\xD5a\x16\xF7V[`\0\x91\x82R` \x90\x91 \x01U`\x04\x80T\x80a\x12\xF2Wa\x12\xF2a\x1A\x8EV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x82\x7F\xDBu\x19\x91\x03PK\xD1\xD3e=\xE7X\xD4)[\xF0\rE\x87\xE1\xD5=\xFC\x11Dd\xCCG\xED\x97\xB7\x83`@Qa\x0E\xCB\x91\x90a\x19\x95V[\x80a\x13B\x81a\x17jV[\x91PPa\x11pV[`\0\x81\x83\x11a\x13YW\x81a\x13[V[\x82[\x93\x92PPPV[P\x80Ta\x13n\x90a\x16\xBDV[`\0\x82U\x80`\x1F\x10a\x13~WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x05a\x91\x90[\x80\x82\x11\x15a\x13\xACW`\0\x81U`\x01\x01a\x13\x98V[P\x90V[`\0` \x82\x84\x03\x12\x15a\x13\xC2W`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x13\xEFW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x13\xD3V[P`\0` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[\x82\x81R`@` \x82\x01R`\0a\x14(`@\x83\x01\x84a\x13\xC9V[\x94\x93PPPPV[`\0\x80\x83`\x1F\x84\x01\x12a\x14BW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14ZW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x14uW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x14\x92W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x14\xAAW`\0\x80\xFD[a\x14\xB6\x88\x83\x89\x01a\x140V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x14\xCFW`\0\x80\xFD[Pa\x14\xDC\x87\x82\x88\x01a\x140V[\x95\x98\x94\x97P\x95PPPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x15\x11W`\0\x80\xFD[\x825\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x150W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x15DW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x15VWa\x15Va\x14\xE8V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x15~Wa\x15~a\x14\xE8V[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x15\x97W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80``\x87\x89\x03\x12\x15a\x15\xD2W`\0\x80\xFD[\x865g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x15\xEAW`\0\x80\xFD[a\x15\xF6\x8A\x83\x8B\x01a\x140V[\x90\x98P\x96P` \x89\x015\x91P\x80\x82\x11\x15a\x16\x0FW`\0\x80\xFD[a\x16\x1B\x8A\x83\x8B\x01a\x140V[\x90\x96P\x94P`@\x89\x015\x91P\x80\x82\x11\x15a\x164W`\0\x80\xFD[Pa\x16A\x89\x82\x8A\x01a\x140V[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16jW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x16\x81W`\0\x80\xFD[a\x13[\x82a\x16SV[`\0\x80`@\x83\x85\x03\x12\x15a\x16\x9DW`\0\x80\xFD[a\x16\xA6\x83a\x16SV[\x91Pa\x16\xB4` \x84\x01a\x16SV[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x16\xD1W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x16\xF1WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\x17$W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x17?W`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x14uW`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\x17|Wa\x17|a\x17TV[P`\x01\x01\x90V[\x83\x81R``` \x82\x01R`\0a\x17\x9C``\x83\x01\x85a\x13\xC9V[\x90P`\x01\x80`\xA0\x1B\x03\x83\x16`@\x83\x01R\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x17\xC6W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x13[W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x17\xE8W`\0\x80\xFD[PQ\x91\x90PV[`\0\x82a\x18\x0CWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x80\x83Ta\x18\x1F\x81a\x16\xBDV[`\x01\x82\x81\x16\x80\x15a\x187W`\x01\x81\x14a\x18LWa\x18{V[`\xFF\x19\x84\x16\x87R\x82\x15\x15\x83\x02\x87\x01\x94Pa\x18{V[\x87`\0R` \x80`\0 `\0[\x85\x81\x10\x15a\x18rW\x81T\x8A\x82\x01R\x90\x84\x01\x90\x82\x01a\x18YV[PPP\x82\x87\x01\x94P[P\x92\x96\x95PPPPPPV[`\x1F\x82\x11\x15a\x0E\xEAW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x18\xAEWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x18\xCDW\x82\x81U`\x01\x01a\x18\xBAV[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xEFWa\x18\xEFa\x14\xE8V[a\x19\x03\x81a\x18\xFD\x84Ta\x16\xBDV[\x84a\x18\x87V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x198W`\0\x84\x15a\x19 WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x18\xCDV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x19gW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x19HV[P\x85\x82\x10\x15a\x19\x85W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[` \x81R`\0a\x13[` \x83\x01\x84a\x13\xC9V[\x81\x81\x03\x81\x81\x11\x15a\n\x0EWa\n\x0Ea\x17TV[\x81\x81\x03a\x19\xC6WPPV[a\x19\xD0\x82Ta\x16\xBDV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x19\xE8Wa\x19\xE8a\x14\xE8V[a\x19\xF6\x81a\x18\xFD\x84Ta\x16\xBDV[`\0`\x1F\x82\x11`\x01\x81\x14a\x1A*W`\0\x83\x15a\x1A\x12WP\x84\x82\x01T[`\0\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x84Ua\x04\x1CV[`\0\x85\x81R` \x90 `\x1F\x19\x84\x16\x90`\0\x86\x81R` \x90 \x84[\x83\x81\x10\x15a\x1AdW\x82\x86\x01T\x82U`\x01\x95\x86\x01\x95\x90\x91\x01\x90` \x01a\x1ADV[P\x85\x83\x10\x15a\x19\x85W\x93\x01T`\0\x19`\xF8`\x03\x87\x90\x1B\x16\x1C\x19\x16\x90\x92UPP`\x01\x90\x81\x1B\x01\x90UPV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 +\x84 \xA6\xF9\xB1\xBBWX)\x1CmC\x13\xBE\x19\xA0dV(f{\xF2\xCA0\xDF\x8C$ \xC4F\x07dsolcC\0\x08\x13\x003";
802    /// The bytecode of the contract.
803    pub static HOPRSTAKINGPROXYFORNETWORKREGISTRY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
804        __BYTECODE,
805    );
806    #[rustfmt::skip]
807    const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\x16W`\x005`\xE0\x1C\x80c\xB0^\x8B\xA9\x11a\0\xA2W\x80c\xDEbl\x0E\x11a\0qW\x80c\xDEbl\x0E\x14a\x02PW\x80c\xEEP\xC7\xC4\x14a\x02cW\x80c\xF1\x1Fw\xF9\x14a\x02vW\x80c\xF2\xFD\xE3\x8B\x14a\x02\x7FW\x80c\xFBf\xACW\x14a\x02\x92W`\0\x80\xFD[\x80c\xB0^\x8B\xA9\x14a\x01\xE6W\x80c\xB3TN\x82\x14a\x01\xF9W\x80c\xBA\x1C\xEF#\x14a\x02\x1AW\x80c\xD8Z\xD0D\x14a\x02-W`\0\x80\xFD[\x80cj;d\xB6\x11a\0\xE9W\x80cj;d\xB6\x14a\x01\x94W\x80cqP\x18\xA6\x14a\x01\xA7W\x80c\x83\x0Cl\xC2\x14a\x01\xAFW\x80c\x8D\xA5\xCB[\x14a\x01\xC2W\x80c\x9B\x97\x07o\x14a\x01\xD3W`\0\x80\xFD[\x80c\x1A\x18b'\x14a\x01\x1BW\x80c,>\xC8\x0B\x14a\x01KW\x80cPdr\xCC\x14a\x01lW\x80ceBQ\xEB\x14a\x01\x81W[`\0\x80\xFD[`\x01Ta\x01.\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x01^a\x01Y6`\x04a\x13\xB0V[a\x02\xA5V[`@Qa\x01B\x92\x91\x90a\x14\x0FV[a\x01\x7Fa\x01z6`\x04a\x14|V[a\x03]V[\0[a\x01\x7Fa\x01\x8F6`\x04a\x14\xFEV[a\x04#V[a\x01\x7Fa\x01\xA26`\x04a\x15\xB9V[a\x049V[a\x01\x7Fa\x05<V[a\x01\x7Fa\x01\xBD6`\x04a\x16oV[a\x05PV[`\0T`\x01`\x01`\xA0\x1B\x03\x16a\x01.V[a\x01\x7Fa\x01\xE16`\x04a\x14\xFEV[a\x05dV[a\x01\x7Fa\x01\xF46`\x04a\x14|V[a\x05vV[a\x02\x0Ca\x02\x076`\x04a\x16oV[a\x065V[`@Q\x90\x81R` \x01a\x01BV[a\x02\x0Ca\x02(6`\x04a\x13\xB0V[a\t\xEAV[a\x02@a\x02;6`\x04a\x16\x8AV[a\n\x0BV[`@Q\x90\x15\x15\x81R` \x01a\x01BV[a\x01^a\x02^6`\x04a\x13\xB0V[a\n\x14V[a\x01\x7Fa\x02q6`\x04a\x13\xB0V[a\n$V[a\x02\x0C`\x02T\x81V[a\x01\x7Fa\x02\x8D6`\x04a\x16oV[a\n\x81V[a\x01\x7Fa\x02\xA06`\x04a\x14|V[a\n\xFCV[`\x05\x81\x81T\x81\x10a\x02\xB5W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 `\x02\x90\x91\x02\x01\x80T`\x01\x82\x01\x80T\x91\x93P\x90a\x02\xDA\x90a\x16\xBDV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x03\x06\x90a\x16\xBDV[\x80\x15a\x03SW\x80`\x1F\x10a\x03(Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x03SV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x036W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x82V[a\x03ea\x0B\xBBV[\x82\x81\x14a\x03\x85W`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x04\x1CWa\x04\n\x85\x85\x83\x81\x81\x10a\x03\xA5Wa\x03\xA5a\x16\xF7V[\x90P` \x02\x015\x84\x84\x84\x81\x81\x10a\x03\xBEWa\x03\xBEa\x16\xF7V[\x90P` \x02\x81\x01\x90a\x03\xD0\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x0C\x15\x92PPPV[\x80a\x04\x14\x81a\x17jV[\x91PPa\x03\x88V[PPPPPV[a\x04+a\x0B\xBBV[a\x045\x82\x82a\rqV[PPV[a\x04Aa\x0B\xBBV[\x84\x83\x14a\x04aW`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x84\x81\x14a\x04\x81W`@Qc\x19y\x10\xE9`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x85\x81\x10\x15a\x053Wa\x05!\x87\x87\x83\x81\x81\x10a\x04\xA1Wa\x04\xA1a\x16\xF7V[\x90P` \x02\x015\x86\x86\x84\x81\x81\x10a\x04\xBAWa\x04\xBAa\x16\xF7V[\x90P` \x02\x81\x01\x90a\x04\xCC\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x88\x92P\x87\x91P\x86\x90P\x81\x81\x10a\x05\x15Wa\x05\x15a\x16\xF7V[\x90P` \x02\x015a\x0E\xEFV[\x80a\x05+\x81a\x17jV[\x91PPa\x04\x84V[PPPPPPPV[a\x05Da\x0B\xBBV[a\x05N`\0a\x10\xD3V[V[a\x05Xa\x0B\xBBV[a\x05a\x81a\x11#V[PV[a\x05la\x0B\xBBV[a\x045\x82\x82a\x0C\x15V[a\x05~a\x0B\xBBV[\x82\x81\x14a\x05\x9EW`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x04\x1CWa\x06#\x85\x85\x83\x81\x81\x10a\x05\xBEWa\x05\xBEa\x16\xF7V[\x90P` \x02\x015\x84\x84\x84\x81\x81\x10a\x05\xD7Wa\x05\xD7a\x16\xF7V[\x90P` \x02\x81\x01\x90a\x05\xE9\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x11m\x92PPPV[\x80a\x06-\x81a\x17jV[\x91PPa\x05\xA1V[`\0\x80`\0[`\x05T\x81\x10\x15a\x07\xD7W`\0`\x05\x82\x81T\x81\x10a\x06ZWa\x06Za\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`@Q\x80`@\x01`@R\x90\x81`\0\x82\x01T\x81R` \x01`\x01\x82\x01\x80Ta\x06\x8D\x90a\x16\xBDV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x06\xB9\x90a\x16\xBDV[\x80\x15a\x07\x06W\x80`\x1F\x10a\x06\xDBWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x07\x06V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x06\xE9W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x90\x92RPP`\x01T\x82Q` \x84\x01Q`@Qc\x96\xA9\xCD}`\xE0\x1B\x81R\x94\x95P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x93c\x96\xA9\xCD}\x93Pa\x07K\x92\x90\x8A\x90`\x04\x01a\x17\x83V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07hW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07\x8C\x91\x90a\x17\xB4V[\x15a\x07\xC4Wa\x07\xC1`\x04\x83\x81T\x81\x10a\x07\xA7Wa\x07\xA7a\x16\xF7V[\x90`\0R` `\0 \x01T\x84a\x13J\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x92P[P\x80a\x07\xCF\x81a\x17jV[\x91PPa\x06;V[P`\x01T`@Qc\xF9x\xFF\xF1`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\x04\x83\x01R`\0\x92\x16\x90c\xF9x\xFF\xF1\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08#W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08G\x91\x90a\x17\xD6V[\x90P`\x02T\x81\x10\x15a\x08ZWP\x92\x91PPV[`\0[`\x03T\x81\x10\x15a\t\xE1W`\0`\x03\x82\x81T\x81\x10a\x08|Wa\x08|a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`@Q\x80`@\x01`@R\x90\x81`\0\x82\x01T\x81R` \x01`\x01\x82\x01\x80Ta\x08\xAF\x90a\x16\xBDV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x08\xDB\x90a\x16\xBDV[\x80\x15a\t(W\x80`\x1F\x10a\x08\xFDWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\t(V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\t\x0BW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPP\x91\x90\x92RPP`\x01T\x82Q` \x84\x01Q`@Qc\x96\xA9\xCD}`\xE0\x1B\x81R\x94\x95P`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x93c\x96\xA9\xCD}\x93Pa\tm\x92\x90\x8B\x90`\x04\x01a\x17\x83V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x8AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xAE\x91\x90a\x17\xB4V[\x15a\t\xCEWa\t\xCB`\x02T\x84a\t\xC4\x91\x90a\x17\xEFV[\x85\x90a\x13JV[\x93P[P\x80a\t\xD9\x81a\x17jV[\x91PPa\x08]V[P\x90\x93\x92PPPV[`\x04\x81\x81T\x81\x10a\t\xFAW`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T\x90P\x81V[`\x01[\x92\x91PPV[`\x03\x81\x81T\x81\x10a\x02\xB5W`\0\x80\xFD[a\n,a\x0B\xBBV[\x80`\x02T\x03a\nNW`@Qc \xE4{\x13`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x02\x81\x90U`@Q\x81\x90\x7F\xAD\xFA\x8E\xCB!\xB6\x96.\xBC\xD0\xAD\xBD\x9A\xB9\x85\xB7\xB4\xC5\xB5\xEB;\r\xEA\xD6\x83\x17\x15e\xC7\xBF\xE1q\x90`\0\x90\xA2PV[a\n\x89a\x0B\xBBV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\n\xF3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x05a\x81a\x10\xD3V[a\x0B\x04a\x0B\xBBV[\x82\x81\x14a\x0B$W`@QcH\x85\xF5\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x04\x1CWa\x0B\xA9\x85\x85\x83\x81\x81\x10a\x0BDWa\x0BDa\x16\xF7V[\x90P` \x02\x015\x84\x84\x84\x81\x81\x10a\x0B]Wa\x0B]a\x16\xF7V[\x90P` \x02\x81\x01\x90a\x0Bo\x91\x90a\x17\rV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\rq\x92PPPV[\x80a\x0B\xB3\x81a\x17jV[\x91PPa\x0B'V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05NW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\n\xEAV[`\0[`\x03T\x81\x10\x15a\x0C\xAFW\x82`\x03\x82\x81T\x81\x10a\x0C6Wa\x0C6a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\x0C\x93WP\x81\x80Q\x90` \x01 `\x03\x82\x81T\x81\x10a\x0CkWa\x0Cka\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\x0C\x89\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x0C\x9DWPPPV[\x80a\x0C\xA7\x81a\x17jV[\x91PPa\x0C\x18V[P`@\x80Q\x80\x82\x01\x90\x91R\x82\x81R` \x81\x01\x82\x81R`\x03\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x82Q`\x02\x90\x91\x02\x7F\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8[\x81\x01\x91\x82U\x91Q\x90\x91\x7F\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8\\\x01\x90a\r2\x90\x82a\x18\xD5V[PPP\x81\x7F#`\xEE>wHTA\xCF\xA0~0\xE8\xDC[\x03\x1F\xAC8EVG\xC8\x9Av44\xF5\x873\xFC\xC1\x82`@Qa\re\x91\x90a\x19\x95V[`@Q\x80\x91\x03\x90\xA2PPV[`\0[`\x03T\x81\x10\x15a\x0E\xEAW\x82`\x03\x82\x81T\x81\x10a\r\x92Wa\r\x92a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\r\xEFWP\x81\x80Q\x90` \x01 `\x03\x82\x81T\x81\x10a\r\xC7Wa\r\xC7a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\r\xE5\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x0E\xD8W`\x03\x80Ta\x0E\x04\x90`\x01\x90a\x19\xA8V[\x81T\x81\x10a\x0E\x14Wa\x0E\x14a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x03\x82\x81T\x81\x10a\x0E5Wa\x0E5a\x16\xF7V[`\0\x91\x82R` \x90\x91 \x82T`\x02\x90\x92\x02\x01\x90\x81U`\x01\x80\x82\x01\x90a\x0E\\\x90\x84\x01\x82a\x19\xBBV[P\x90PP`\x03\x80T\x80a\x0EqWa\x0Eqa\x1A\x8EV[`\0\x82\x81R` \x81 `\x02`\0\x19\x90\x93\x01\x92\x83\x02\x01\x81\x81U\x90a\x0E\x97`\x01\x83\x01\x82a\x13bV[PP\x90U\x82\x7F\xB12>B\xD9{+=E\xF9\xD4d\x1B\xF4\xB6\xB3\xF9\xD0\xD0\x1E\x90\x83*\xE7\xB7A1\t\xB7\xA5\xD3G\x83`@Qa\x0E\xCB\x91\x90a\x19\x95V[`@Q\x80\x91\x03\x90\xA2PPPV[\x80a\x0E\xE2\x81a\x17jV[\x91PPa\rtV[PPPV[`\0[`\x05T\x81\x10\x15a\x0F\xE5W\x83`\x05\x82\x81T\x81\x10a\x0F\x10Wa\x0F\x10a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\x0FmWP\x82\x80Q\x90` \x01 `\x05\x82\x81T\x81\x10a\x0FEWa\x0FEa\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\x0Fc\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x0F\xD3W\x81`\x04\x82\x81T\x81\x10a\x0F\x86Wa\x0F\x86a\x16\xF7V[\x90`\0R` `\0 \x01\x81\x90UP\x81\x84\x7F\xE4;\xF5\xF5\xF8\xA1!\x190\xE5rk\xA0\xAB\xCE\xAC\xB1t\x8F\x97\xB2\x96m\xB3\n\x81\x8B\xA1\ta\xCB\xCC\x85`@Qa\x0F\xC5\x91\x90a\x19\x95V[`@Q\x80\x91\x03\x90\xA3PPPPV[\x80a\x0F\xDD\x81a\x17jV[\x91PPa\x0E\xF2V[`@\x80Q\x80\x82\x01\x90\x91R\x84\x81R` \x81\x01\x84\x81R`\x05\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x82Q`\x02\x90\x91\x02\x7F\x03kc\x84\xB5\xEC\xA7\x91\xC6'a\x15-\x0Cy\xBB\x06\x04\xC1\x04\xA5\xFBoN\xB0p?1T\xBB=\xB0\x81\x01\x91\x82U\x91Q\x90\x91\x7F\x03kc\x84\xB5\xEC\xA7\x91\xC6'a\x15-\x0Cy\xBB\x06\x04\xC1\x04\xA5\xFBoN\xB0p?1T\xBB=\xB1\x01\x90a\x10g\x90\x82a\x18\xD5V[PP`\x04\x80T`\x01\x81\x01\x82U`\0\x91\x90\x91R\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B\x01\x83\x90UP`@Q\x82\x90\x85\x90\x7F\xE4;\xF5\xF5\xF8\xA1!\x190\xE5rk\xA0\xAB\xCE\xAC\xB1t\x8F\x97\xB2\x96m\xB3\n\x81\x8B\xA1\ta\xCB\xCC\x90a\x0F\xC5\x90\x87\x90a\x19\x95V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x90\x91U`@Q\x7FW;\xBF\xA6y\xAFo\xDC\xDB\xD9\xCF\x19\x1C^\xF3\xE5&Y\x9A\xC2\xBFu\xE9\x17}G\xAD\xB8S\x0B\x9Ci\x90`\0\x90\xA2PV[`\0[`\x05T\x81\x10\x15a\x0E\xEAW\x82`\x05\x82\x81T\x81\x10a\x11\x8EWa\x11\x8Ea\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\0\x01T\x14\x80\x15a\x11\xEBWP\x81\x80Q\x90` \x01 `\x05\x82\x81T\x81\x10a\x11\xC3Wa\x11\xC3a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x01\x01`@Qa\x11\xE1\x91\x90a\x18\x11V[`@Q\x80\x91\x03\x90 \x14[\x15a\x138W`\x05\x80Ta\x12\0\x90`\x01\x90a\x19\xA8V[\x81T\x81\x10a\x12\x10Wa\x12\x10a\x16\xF7V[\x90`\0R` `\0 \x90`\x02\x02\x01`\x05\x82\x81T\x81\x10a\x121Wa\x121a\x16\xF7V[`\0\x91\x82R` \x90\x91 \x82T`\x02\x90\x92\x02\x01\x90\x81U`\x01\x80\x82\x01\x90a\x12X\x90\x84\x01\x82a\x19\xBBV[P\x90PP`\x05\x80T\x80a\x12mWa\x12ma\x1A\x8EV[`\0\x82\x81R` \x81 `\x02`\0\x19\x90\x93\x01\x92\x83\x02\x01\x81\x81U\x90a\x12\x93`\x01\x83\x01\x82a\x13bV[PP\x90U`\x04\x80Ta\x12\xA7\x90`\x01\x90a\x19\xA8V[\x81T\x81\x10a\x12\xB7Wa\x12\xB7a\x16\xF7V[\x90`\0R` `\0 \x01T`\x04\x82\x81T\x81\x10a\x12\xD5Wa\x12\xD5a\x16\xF7V[`\0\x91\x82R` \x90\x91 \x01U`\x04\x80T\x80a\x12\xF2Wa\x12\xF2a\x1A\x8EV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x82\x7F\xDBu\x19\x91\x03PK\xD1\xD3e=\xE7X\xD4)[\xF0\rE\x87\xE1\xD5=\xFC\x11Dd\xCCG\xED\x97\xB7\x83`@Qa\x0E\xCB\x91\x90a\x19\x95V[\x80a\x13B\x81a\x17jV[\x91PPa\x11pV[`\0\x81\x83\x11a\x13YW\x81a\x13[V[\x82[\x93\x92PPPV[P\x80Ta\x13n\x90a\x16\xBDV[`\0\x82U\x80`\x1F\x10a\x13~WPPV[`\x1F\x01` \x90\x04\x90`\0R` `\0 \x90\x81\x01\x90a\x05a\x91\x90[\x80\x82\x11\x15a\x13\xACW`\0\x81U`\x01\x01a\x13\x98V[P\x90V[`\0` \x82\x84\x03\x12\x15a\x13\xC2W`\0\x80\xFD[P5\x91\x90PV[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15a\x13\xEFW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01a\x13\xD3V[P`\0` \x82\x86\x01\x01R` `\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x91PP\x92\x91PPV[\x82\x81R`@` \x82\x01R`\0a\x14(`@\x83\x01\x84a\x13\xC9V[\x94\x93PPPPV[`\0\x80\x83`\x1F\x84\x01\x12a\x14BW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x14ZW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x14uW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x14\x92W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x14\xAAW`\0\x80\xFD[a\x14\xB6\x88\x83\x89\x01a\x140V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x14\xCFW`\0\x80\xFD[Pa\x14\xDC\x87\x82\x88\x01a\x140V[\x95\x98\x94\x97P\x95PPPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\x15\x11W`\0\x80\xFD[\x825\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x150W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x15DW`\0\x80\xFD[\x815\x81\x81\x11\x15a\x15VWa\x15Va\x14\xE8V[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x15~Wa\x15~a\x14\xE8V[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x15\x97W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80``\x87\x89\x03\x12\x15a\x15\xD2W`\0\x80\xFD[\x865g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x15\xEAW`\0\x80\xFD[a\x15\xF6\x8A\x83\x8B\x01a\x140V[\x90\x98P\x96P` \x89\x015\x91P\x80\x82\x11\x15a\x16\x0FW`\0\x80\xFD[a\x16\x1B\x8A\x83\x8B\x01a\x140V[\x90\x96P\x94P`@\x89\x015\x91P\x80\x82\x11\x15a\x164W`\0\x80\xFD[Pa\x16A\x89\x82\x8A\x01a\x140V[\x97\x9A\x96\x99P\x94\x97P\x92\x95\x93\x94\x92PPPV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16jW`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x16\x81W`\0\x80\xFD[a\x13[\x82a\x16SV[`\0\x80`@\x83\x85\x03\x12\x15a\x16\x9DW`\0\x80\xFD[a\x16\xA6\x83a\x16SV[\x91Pa\x16\xB4` \x84\x01a\x16SV[\x90P\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80a\x16\xD1W`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a\x16\xF1WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a\x17$W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a\x17?W`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a\x14uW`\0\x80\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\x17|Wa\x17|a\x17TV[P`\x01\x01\x90V[\x83\x81R``` \x82\x01R`\0a\x17\x9C``\x83\x01\x85a\x13\xC9V[\x90P`\x01\x80`\xA0\x1B\x03\x83\x16`@\x83\x01R\x94\x93PPPPV[`\0` \x82\x84\x03\x12\x15a\x17\xC6W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x13[W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x17\xE8W`\0\x80\xFD[PQ\x91\x90PV[`\0\x82a\x18\x0CWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0\x80\x83Ta\x18\x1F\x81a\x16\xBDV[`\x01\x82\x81\x16\x80\x15a\x187W`\x01\x81\x14a\x18LWa\x18{V[`\xFF\x19\x84\x16\x87R\x82\x15\x15\x83\x02\x87\x01\x94Pa\x18{V[\x87`\0R` \x80`\0 `\0[\x85\x81\x10\x15a\x18rW\x81T\x8A\x82\x01R\x90\x84\x01\x90\x82\x01a\x18YV[PPP\x82\x87\x01\x94P[P\x92\x96\x95PPPPPPV[`\x1F\x82\x11\x15a\x0E\xEAW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a\x18\xAEWP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x18\xCDW\x82\x81U`\x01\x01a\x18\xBAV[PPPPPPV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xEFWa\x18\xEFa\x14\xE8V[a\x19\x03\x81a\x18\xFD\x84Ta\x16\xBDV[\x84a\x18\x87V[` \x80`\x1F\x83\x11`\x01\x81\x14a\x198W`\0\x84\x15a\x19 WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x18\xCDV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a\x19gW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a\x19HV[P\x85\x82\x10\x15a\x19\x85W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[` \x81R`\0a\x13[` \x83\x01\x84a\x13\xC9V[\x81\x81\x03\x81\x81\x11\x15a\n\x0EWa\n\x0Ea\x17TV[\x81\x81\x03a\x19\xC6WPPV[a\x19\xD0\x82Ta\x16\xBDV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x19\xE8Wa\x19\xE8a\x14\xE8V[a\x19\xF6\x81a\x18\xFD\x84Ta\x16\xBDV[`\0`\x1F\x82\x11`\x01\x81\x14a\x1A*W`\0\x83\x15a\x1A\x12WP\x84\x82\x01T[`\0\x19`\x03\x85\x90\x1B\x1C\x19\x16`\x01\x84\x90\x1B\x17\x84Ua\x04\x1CV[`\0\x85\x81R` \x90 `\x1F\x19\x84\x16\x90`\0\x86\x81R` \x90 \x84[\x83\x81\x10\x15a\x1AdW\x82\x86\x01T\x82U`\x01\x95\x86\x01\x95\x90\x91\x01\x90` \x01a\x1ADV[P\x85\x83\x10\x15a\x19\x85W\x93\x01T`\0\x19`\xF8`\x03\x87\x90\x1B\x16\x1C\x19\x16\x90\x92UPP`\x01\x90\x81\x1B\x01\x90UPV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 +\x84 \xA6\xF9\xB1\xBBWX)\x1CmC\x13\xBE\x19\xA0dV(f{\xF2\xCA0\xDF\x8C$ \xC4F\x07dsolcC\0\x08\x13\x003";
808    /// The deployed bytecode of the contract.
809    pub static HOPRSTAKINGPROXYFORNETWORKREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
810        __DEPLOYED_BYTECODE,
811    );
812    pub struct HoprStakingProxyForNetworkRegistry<M>(::ethers::contract::Contract<M>);
813    impl<M> ::core::clone::Clone for HoprStakingProxyForNetworkRegistry<M> {
814        fn clone(&self) -> Self {
815            Self(::core::clone::Clone::clone(&self.0))
816        }
817    }
818    impl<M> ::core::ops::Deref for HoprStakingProxyForNetworkRegistry<M> {
819        type Target = ::ethers::contract::Contract<M>;
820        fn deref(&self) -> &Self::Target {
821            &self.0
822        }
823    }
824    impl<M> ::core::ops::DerefMut for HoprStakingProxyForNetworkRegistry<M> {
825        fn deref_mut(&mut self) -> &mut Self::Target {
826            &mut self.0
827        }
828    }
829    impl<M> ::core::fmt::Debug for HoprStakingProxyForNetworkRegistry<M> {
830        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
831            f.debug_tuple(::core::stringify!(HoprStakingProxyForNetworkRegistry))
832                .field(&self.address())
833                .finish()
834        }
835    }
836    impl<M: ::ethers::providers::Middleware> HoprStakingProxyForNetworkRegistry<M> {
837        /// Creates a new contract instance with the specified `ethers` client at
838        /// `address`. The contract derefs to a `ethers::Contract` object.
839        pub fn new<T: Into<::ethers::core::types::Address>>(
840            address: T,
841            client: ::std::sync::Arc<M>,
842        ) -> Self {
843            Self(
844                ::ethers::contract::Contract::new(
845                    address.into(),
846                    HOPRSTAKINGPROXYFORNETWORKREGISTRY_ABI.clone(),
847                    client,
848                ),
849            )
850        }
851        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
852        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
853        ///
854        /// Notes:
855        /// - If there are no constructor arguments, you should pass `()` as the argument.
856        /// - The default poll duration is 7 seconds.
857        /// - The default number of confirmations is 1 block.
858        ///
859        ///
860        /// # Example
861        ///
862        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
863        ///
864        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
865        ///
866        /// ```ignore
867        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
868        ///     abigen!(Greeter, "../greeter.json");
869        ///
870        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
871        ///    let msg = greeter_contract.greet().call().await.unwrap();
872        /// # }
873        /// ```
874        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
875            client: ::std::sync::Arc<M>,
876            constructor_args: T,
877        ) -> ::core::result::Result<
878            ::ethers::contract::builders::ContractDeployer<M, Self>,
879            ::ethers::contract::ContractError<M>,
880        > {
881            let factory = ::ethers::contract::ContractFactory::new(
882                HOPRSTAKINGPROXYFORNETWORKREGISTRY_ABI.clone(),
883                HOPRSTAKINGPROXYFORNETWORKREGISTRY_BYTECODE.clone().into(),
884                client,
885            );
886            let deployer = factory.deploy(constructor_args)?;
887            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
888            Ok(deployer)
889        }
890        ///Calls the contract's `canOperateFor` (0xd85ad044) function
891        pub fn can_operate_for(
892            &self,
893            p0: ::ethers::core::types::Address,
894            p1: ::ethers::core::types::Address,
895        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
896            self.0
897                .method_hash([216, 90, 208, 68], (p0, p1))
898                .expect("method not found (this should never happen)")
899        }
900        ///Calls the contract's `eligibleNftTypeAndRank` (0xde626c0e) function
901        pub fn eligible_nft_type_and_rank(
902            &self,
903            p0: ::ethers::core::types::U256,
904        ) -> ::ethers::contract::builders::ContractCall<
905            M,
906            (::ethers::core::types::U256, ::std::string::String),
907        > {
908            self.0
909                .method_hash([222, 98, 108, 14], p0)
910                .expect("method not found (this should never happen)")
911        }
912        ///Calls the contract's `maxAllowedRegistrations` (0xb3544e82) function
913        pub fn max_allowed_registrations(
914            &self,
915            account: ::ethers::core::types::Address,
916        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
917            self.0
918                .method_hash([179, 84, 78, 130], account)
919                .expect("method not found (this should never happen)")
920        }
921        ///Calls the contract's `maxRegistrationsPerSpecialNft` (0xba1cef23) function
922        pub fn max_registrations_per_special_nft(
923            &self,
924            p0: ::ethers::core::types::U256,
925        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
926            self.0
927                .method_hash([186, 28, 239, 35], p0)
928                .expect("method not found (this should never happen)")
929        }
930        ///Calls the contract's `owner` (0x8da5cb5b) function
931        pub fn owner(
932            &self,
933        ) -> ::ethers::contract::builders::ContractCall<
934            M,
935            ::ethers::core::types::Address,
936        > {
937            self.0
938                .method_hash([141, 165, 203, 91], ())
939                .expect("method not found (this should never happen)")
940        }
941        ///Calls the contract's `ownerAddNftTypeAndRank` (0x9b97076f) function
942        pub fn owner_add_nft_type_and_rank(
943            &self,
944            nft_type: ::ethers::core::types::U256,
945            nft_rank: ::std::string::String,
946        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
947            self.0
948                .method_hash([155, 151, 7, 111], (nft_type, nft_rank))
949                .expect("method not found (this should never happen)")
950        }
951        ///Calls the contract's `ownerBatchAddNftTypeAndRank` (0x506472cc) function
952        pub fn owner_batch_add_nft_type_and_rank(
953            &self,
954            nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
955            nft_ranks: ::std::vec::Vec<::std::string::String>,
956        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
957            self.0
958                .method_hash([80, 100, 114, 204], (nft_types, nft_ranks))
959                .expect("method not found (this should never happen)")
960        }
961        ///Calls the contract's `ownerBatchAddSpecialNftTypeAndRank` (0x6a3b64b6) function
962        pub fn owner_batch_add_special_nft_type_and_rank(
963            &self,
964            nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
965            nft_ranks: ::std::vec::Vec<::std::string::String>,
966            max_registrations: ::std::vec::Vec<::ethers::core::types::U256>,
967        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
968            self.0
969                .method_hash(
970                    [106, 59, 100, 182],
971                    (nft_types, nft_ranks, max_registrations),
972                )
973                .expect("method not found (this should never happen)")
974        }
975        ///Calls the contract's `ownerBatchRemoveNftTypeAndRank` (0xfb66ac57) function
976        pub fn owner_batch_remove_nft_type_and_rank(
977            &self,
978            nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
979            nft_ranks: ::std::vec::Vec<::std::string::String>,
980        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
981            self.0
982                .method_hash([251, 102, 172, 87], (nft_types, nft_ranks))
983                .expect("method not found (this should never happen)")
984        }
985        ///Calls the contract's `ownerBatchRemoveSpecialNftTypeAndRank` (0xb05e8ba9) function
986        pub fn owner_batch_remove_special_nft_type_and_rank(
987            &self,
988            nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
989            nft_ranks: ::std::vec::Vec<::std::string::String>,
990        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
991            self.0
992                .method_hash([176, 94, 139, 169], (nft_types, nft_ranks))
993                .expect("method not found (this should never happen)")
994        }
995        ///Calls the contract's `ownerRemoveNftTypeAndRank` (0x654251eb) function
996        pub fn owner_remove_nft_type_and_rank(
997            &self,
998            nft_type: ::ethers::core::types::U256,
999            nft_rank: ::std::string::String,
1000        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1001            self.0
1002                .method_hash([101, 66, 81, 235], (nft_type, nft_rank))
1003                .expect("method not found (this should never happen)")
1004        }
1005        ///Calls the contract's `ownerUpdateThreshold` (0xee50c7c4) function
1006        pub fn owner_update_threshold(
1007            &self,
1008            new_threshold: ::ethers::core::types::U256,
1009        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1010            self.0
1011                .method_hash([238, 80, 199, 196], new_threshold)
1012                .expect("method not found (this should never happen)")
1013        }
1014        ///Calls the contract's `renounceOwnership` (0x715018a6) function
1015        pub fn renounce_ownership(
1016            &self,
1017        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1018            self.0
1019                .method_hash([113, 80, 24, 166], ())
1020                .expect("method not found (this should never happen)")
1021        }
1022        ///Calls the contract's `specialNftTypeAndRank` (0x2c3ec80b) function
1023        pub fn special_nft_type_and_rank(
1024            &self,
1025            p0: ::ethers::core::types::U256,
1026        ) -> ::ethers::contract::builders::ContractCall<
1027            M,
1028            (::ethers::core::types::U256, ::std::string::String),
1029        > {
1030            self.0
1031                .method_hash([44, 62, 200, 11], p0)
1032                .expect("method not found (this should never happen)")
1033        }
1034        ///Calls the contract's `stakeContract` (0x1a186227) function
1035        pub fn stake_contract(
1036            &self,
1037        ) -> ::ethers::contract::builders::ContractCall<
1038            M,
1039            ::ethers::core::types::Address,
1040        > {
1041            self.0
1042                .method_hash([26, 24, 98, 39], ())
1043                .expect("method not found (this should never happen)")
1044        }
1045        ///Calls the contract's `stakeThreshold` (0xf11f77f9) function
1046        pub fn stake_threshold(
1047            &self,
1048        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1049            self.0
1050                .method_hash([241, 31, 119, 249], ())
1051                .expect("method not found (this should never happen)")
1052        }
1053        ///Calls the contract's `transferOwnership` (0xf2fde38b) function
1054        pub fn transfer_ownership(
1055            &self,
1056            new_owner: ::ethers::core::types::Address,
1057        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1058            self.0
1059                .method_hash([242, 253, 227, 139], new_owner)
1060                .expect("method not found (this should never happen)")
1061        }
1062        ///Calls the contract's `updateStakeContract` (0x830c6cc2) function
1063        pub fn update_stake_contract(
1064            &self,
1065            stake_contract: ::ethers::core::types::Address,
1066        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1067            self.0
1068                .method_hash([131, 12, 108, 194], stake_contract)
1069                .expect("method not found (this should never happen)")
1070        }
1071        ///Gets the contract's `NftTypeAndRankAdded` event
1072        pub fn nft_type_and_rank_added_filter(
1073            &self,
1074        ) -> ::ethers::contract::builders::Event<
1075            ::std::sync::Arc<M>,
1076            M,
1077            NftTypeAndRankAddedFilter,
1078        > {
1079            self.0.event()
1080        }
1081        ///Gets the contract's `NftTypeAndRankRemoved` event
1082        pub fn nft_type_and_rank_removed_filter(
1083            &self,
1084        ) -> ::ethers::contract::builders::Event<
1085            ::std::sync::Arc<M>,
1086            M,
1087            NftTypeAndRankRemovedFilter,
1088        > {
1089            self.0.event()
1090        }
1091        ///Gets the contract's `OwnershipTransferred` event
1092        pub fn ownership_transferred_filter(
1093            &self,
1094        ) -> ::ethers::contract::builders::Event<
1095            ::std::sync::Arc<M>,
1096            M,
1097            OwnershipTransferredFilter,
1098        > {
1099            self.0.event()
1100        }
1101        ///Gets the contract's `SpecialNftTypeAndRankAdded` event
1102        pub fn special_nft_type_and_rank_added_filter(
1103            &self,
1104        ) -> ::ethers::contract::builders::Event<
1105            ::std::sync::Arc<M>,
1106            M,
1107            SpecialNftTypeAndRankAddedFilter,
1108        > {
1109            self.0.event()
1110        }
1111        ///Gets the contract's `SpecialNftTypeAndRankRemoved` event
1112        pub fn special_nft_type_and_rank_removed_filter(
1113            &self,
1114        ) -> ::ethers::contract::builders::Event<
1115            ::std::sync::Arc<M>,
1116            M,
1117            SpecialNftTypeAndRankRemovedFilter,
1118        > {
1119            self.0.event()
1120        }
1121        ///Gets the contract's `StakeContractUpdated` event
1122        pub fn stake_contract_updated_filter(
1123            &self,
1124        ) -> ::ethers::contract::builders::Event<
1125            ::std::sync::Arc<M>,
1126            M,
1127            StakeContractUpdatedFilter,
1128        > {
1129            self.0.event()
1130        }
1131        ///Gets the contract's `ThresholdUpdated` event
1132        pub fn threshold_updated_filter(
1133            &self,
1134        ) -> ::ethers::contract::builders::Event<
1135            ::std::sync::Arc<M>,
1136            M,
1137            ThresholdUpdatedFilter,
1138        > {
1139            self.0.event()
1140        }
1141        /// Returns an `Event` builder for all the events of this contract.
1142        pub fn events(
1143            &self,
1144        ) -> ::ethers::contract::builders::Event<
1145            ::std::sync::Arc<M>,
1146            M,
1147            HoprStakingProxyForNetworkRegistryEvents,
1148        > {
1149            self.0.event_with_filter(::core::default::Default::default())
1150        }
1151    }
1152    impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
1153    for HoprStakingProxyForNetworkRegistry<M> {
1154        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
1155            Self::new(contract.address(), contract.client())
1156        }
1157    }
1158    ///Custom Error type `MaxRegistrationsMismatch` with signature `MaxRegistrationsMismatch()` and selector `0x197910e9`
1159    #[derive(
1160        Clone,
1161        ::ethers::contract::EthError,
1162        ::ethers::contract::EthDisplay,
1163        serde::Serialize,
1164        serde::Deserialize,
1165        Default,
1166        Debug,
1167        PartialEq,
1168        Eq,
1169        Hash
1170    )]
1171    #[etherror(name = "MaxRegistrationsMismatch", abi = "MaxRegistrationsMismatch()")]
1172    pub struct MaxRegistrationsMismatch;
1173    ///Custom Error type `NftRanksMismatch` with signature `NftRanksMismatch()` and selector `0x4885f59b`
1174    #[derive(
1175        Clone,
1176        ::ethers::contract::EthError,
1177        ::ethers::contract::EthDisplay,
1178        serde::Serialize,
1179        serde::Deserialize,
1180        Default,
1181        Debug,
1182        PartialEq,
1183        Eq,
1184        Hash
1185    )]
1186    #[etherror(name = "NftRanksMismatch", abi = "NftRanksMismatch()")]
1187    pub struct NftRanksMismatch;
1188    ///Custom Error type `SameStakingThreshold` with signature `SameStakingThreshold()` and selector `0x20e47b13`
1189    #[derive(
1190        Clone,
1191        ::ethers::contract::EthError,
1192        ::ethers::contract::EthDisplay,
1193        serde::Serialize,
1194        serde::Deserialize,
1195        Default,
1196        Debug,
1197        PartialEq,
1198        Eq,
1199        Hash
1200    )]
1201    #[etherror(name = "SameStakingThreshold", abi = "SameStakingThreshold()")]
1202    pub struct SameStakingThreshold;
1203    ///Container type for all of the contract's custom errors
1204    #[derive(
1205        Clone,
1206        ::ethers::contract::EthAbiType,
1207        serde::Serialize,
1208        serde::Deserialize,
1209        Debug,
1210        PartialEq,
1211        Eq,
1212        Hash
1213    )]
1214    pub enum HoprStakingProxyForNetworkRegistryErrors {
1215        MaxRegistrationsMismatch(MaxRegistrationsMismatch),
1216        NftRanksMismatch(NftRanksMismatch),
1217        SameStakingThreshold(SameStakingThreshold),
1218        /// The standard solidity revert string, with selector
1219        /// Error(string) -- 0x08c379a0
1220        RevertString(::std::string::String),
1221    }
1222    impl ::ethers::core::abi::AbiDecode for HoprStakingProxyForNetworkRegistryErrors {
1223        fn decode(
1224            data: impl AsRef<[u8]>,
1225        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
1226            let data = data.as_ref();
1227            if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(
1228                data,
1229            ) {
1230                return Ok(Self::RevertString(decoded));
1231            }
1232            if let Ok(decoded) = <MaxRegistrationsMismatch as ::ethers::core::abi::AbiDecode>::decode(
1233                data,
1234            ) {
1235                return Ok(Self::MaxRegistrationsMismatch(decoded));
1236            }
1237            if let Ok(decoded) = <NftRanksMismatch as ::ethers::core::abi::AbiDecode>::decode(
1238                data,
1239            ) {
1240                return Ok(Self::NftRanksMismatch(decoded));
1241            }
1242            if let Ok(decoded) = <SameStakingThreshold as ::ethers::core::abi::AbiDecode>::decode(
1243                data,
1244            ) {
1245                return Ok(Self::SameStakingThreshold(decoded));
1246            }
1247            Err(::ethers::core::abi::Error::InvalidData.into())
1248        }
1249    }
1250    impl ::ethers::core::abi::AbiEncode for HoprStakingProxyForNetworkRegistryErrors {
1251        fn encode(self) -> ::std::vec::Vec<u8> {
1252            match self {
1253                Self::MaxRegistrationsMismatch(element) => {
1254                    ::ethers::core::abi::AbiEncode::encode(element)
1255                }
1256                Self::NftRanksMismatch(element) => {
1257                    ::ethers::core::abi::AbiEncode::encode(element)
1258                }
1259                Self::SameStakingThreshold(element) => {
1260                    ::ethers::core::abi::AbiEncode::encode(element)
1261                }
1262                Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s),
1263            }
1264        }
1265    }
1266    impl ::ethers::contract::ContractRevert
1267    for HoprStakingProxyForNetworkRegistryErrors {
1268        fn valid_selector(selector: [u8; 4]) -> bool {
1269            match selector {
1270                [0x08, 0xc3, 0x79, 0xa0] => true,
1271                _ if selector
1272                    == <MaxRegistrationsMismatch as ::ethers::contract::EthError>::selector() => {
1273                    true
1274                }
1275                _ if selector
1276                    == <NftRanksMismatch as ::ethers::contract::EthError>::selector() => {
1277                    true
1278                }
1279                _ if selector
1280                    == <SameStakingThreshold as ::ethers::contract::EthError>::selector() => {
1281                    true
1282                }
1283                _ => false,
1284            }
1285        }
1286    }
1287    impl ::core::fmt::Display for HoprStakingProxyForNetworkRegistryErrors {
1288        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1289            match self {
1290                Self::MaxRegistrationsMismatch(element) => {
1291                    ::core::fmt::Display::fmt(element, f)
1292                }
1293                Self::NftRanksMismatch(element) => ::core::fmt::Display::fmt(element, f),
1294                Self::SameStakingThreshold(element) => {
1295                    ::core::fmt::Display::fmt(element, f)
1296                }
1297                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
1298            }
1299        }
1300    }
1301    impl ::core::convert::From<::std::string::String>
1302    for HoprStakingProxyForNetworkRegistryErrors {
1303        fn from(value: String) -> Self {
1304            Self::RevertString(value)
1305        }
1306    }
1307    impl ::core::convert::From<MaxRegistrationsMismatch>
1308    for HoprStakingProxyForNetworkRegistryErrors {
1309        fn from(value: MaxRegistrationsMismatch) -> Self {
1310            Self::MaxRegistrationsMismatch(value)
1311        }
1312    }
1313    impl ::core::convert::From<NftRanksMismatch>
1314    for HoprStakingProxyForNetworkRegistryErrors {
1315        fn from(value: NftRanksMismatch) -> Self {
1316            Self::NftRanksMismatch(value)
1317        }
1318    }
1319    impl ::core::convert::From<SameStakingThreshold>
1320    for HoprStakingProxyForNetworkRegistryErrors {
1321        fn from(value: SameStakingThreshold) -> Self {
1322            Self::SameStakingThreshold(value)
1323        }
1324    }
1325    #[derive(
1326        Clone,
1327        ::ethers::contract::EthEvent,
1328        ::ethers::contract::EthDisplay,
1329        serde::Serialize,
1330        serde::Deserialize,
1331        Default,
1332        Debug,
1333        PartialEq,
1334        Eq,
1335        Hash
1336    )]
1337    #[ethevent(
1338        name = "NftTypeAndRankAdded",
1339        abi = "NftTypeAndRankAdded(uint256,string)"
1340    )]
1341    pub struct NftTypeAndRankAddedFilter {
1342        #[ethevent(indexed)]
1343        pub nft_type: ::ethers::core::types::U256,
1344        pub nft_rank: ::std::string::String,
1345    }
1346    #[derive(
1347        Clone,
1348        ::ethers::contract::EthEvent,
1349        ::ethers::contract::EthDisplay,
1350        serde::Serialize,
1351        serde::Deserialize,
1352        Default,
1353        Debug,
1354        PartialEq,
1355        Eq,
1356        Hash
1357    )]
1358    #[ethevent(
1359        name = "NftTypeAndRankRemoved",
1360        abi = "NftTypeAndRankRemoved(uint256,string)"
1361    )]
1362    pub struct NftTypeAndRankRemovedFilter {
1363        #[ethevent(indexed)]
1364        pub nft_type: ::ethers::core::types::U256,
1365        pub nft_rank: ::std::string::String,
1366    }
1367    #[derive(
1368        Clone,
1369        ::ethers::contract::EthEvent,
1370        ::ethers::contract::EthDisplay,
1371        serde::Serialize,
1372        serde::Deserialize,
1373        Default,
1374        Debug,
1375        PartialEq,
1376        Eq,
1377        Hash
1378    )]
1379    #[ethevent(
1380        name = "OwnershipTransferred",
1381        abi = "OwnershipTransferred(address,address)"
1382    )]
1383    pub struct OwnershipTransferredFilter {
1384        #[ethevent(indexed)]
1385        pub previous_owner: ::ethers::core::types::Address,
1386        #[ethevent(indexed)]
1387        pub new_owner: ::ethers::core::types::Address,
1388    }
1389    #[derive(
1390        Clone,
1391        ::ethers::contract::EthEvent,
1392        ::ethers::contract::EthDisplay,
1393        serde::Serialize,
1394        serde::Deserialize,
1395        Default,
1396        Debug,
1397        PartialEq,
1398        Eq,
1399        Hash
1400    )]
1401    #[ethevent(
1402        name = "SpecialNftTypeAndRankAdded",
1403        abi = "SpecialNftTypeAndRankAdded(uint256,string,uint256)"
1404    )]
1405    pub struct SpecialNftTypeAndRankAddedFilter {
1406        #[ethevent(indexed)]
1407        pub nft_type: ::ethers::core::types::U256,
1408        pub nft_rank: ::std::string::String,
1409        #[ethevent(indexed)]
1410        pub max_registration: ::ethers::core::types::U256,
1411    }
1412    #[derive(
1413        Clone,
1414        ::ethers::contract::EthEvent,
1415        ::ethers::contract::EthDisplay,
1416        serde::Serialize,
1417        serde::Deserialize,
1418        Default,
1419        Debug,
1420        PartialEq,
1421        Eq,
1422        Hash
1423    )]
1424    #[ethevent(
1425        name = "SpecialNftTypeAndRankRemoved",
1426        abi = "SpecialNftTypeAndRankRemoved(uint256,string)"
1427    )]
1428    pub struct SpecialNftTypeAndRankRemovedFilter {
1429        #[ethevent(indexed)]
1430        pub nft_type: ::ethers::core::types::U256,
1431        pub nft_rank: ::std::string::String,
1432    }
1433    #[derive(
1434        Clone,
1435        ::ethers::contract::EthEvent,
1436        ::ethers::contract::EthDisplay,
1437        serde::Serialize,
1438        serde::Deserialize,
1439        Default,
1440        Debug,
1441        PartialEq,
1442        Eq,
1443        Hash
1444    )]
1445    #[ethevent(name = "StakeContractUpdated", abi = "StakeContractUpdated(address)")]
1446    pub struct StakeContractUpdatedFilter {
1447        #[ethevent(indexed)]
1448        pub stake_contract: ::ethers::core::types::Address,
1449    }
1450    #[derive(
1451        Clone,
1452        ::ethers::contract::EthEvent,
1453        ::ethers::contract::EthDisplay,
1454        serde::Serialize,
1455        serde::Deserialize,
1456        Default,
1457        Debug,
1458        PartialEq,
1459        Eq,
1460        Hash
1461    )]
1462    #[ethevent(name = "ThresholdUpdated", abi = "ThresholdUpdated(uint256)")]
1463    pub struct ThresholdUpdatedFilter {
1464        #[ethevent(indexed)]
1465        pub threshold: ::ethers::core::types::U256,
1466    }
1467    ///Container type for all of the contract's events
1468    #[derive(
1469        Clone,
1470        ::ethers::contract::EthAbiType,
1471        serde::Serialize,
1472        serde::Deserialize,
1473        Debug,
1474        PartialEq,
1475        Eq,
1476        Hash
1477    )]
1478    pub enum HoprStakingProxyForNetworkRegistryEvents {
1479        NftTypeAndRankAddedFilter(NftTypeAndRankAddedFilter),
1480        NftTypeAndRankRemovedFilter(NftTypeAndRankRemovedFilter),
1481        OwnershipTransferredFilter(OwnershipTransferredFilter),
1482        SpecialNftTypeAndRankAddedFilter(SpecialNftTypeAndRankAddedFilter),
1483        SpecialNftTypeAndRankRemovedFilter(SpecialNftTypeAndRankRemovedFilter),
1484        StakeContractUpdatedFilter(StakeContractUpdatedFilter),
1485        ThresholdUpdatedFilter(ThresholdUpdatedFilter),
1486    }
1487    impl ::ethers::contract::EthLogDecode for HoprStakingProxyForNetworkRegistryEvents {
1488        fn decode_log(
1489            log: &::ethers::core::abi::RawLog,
1490        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
1491            if let Ok(decoded) = NftTypeAndRankAddedFilter::decode_log(log) {
1492                return Ok(
1493                    HoprStakingProxyForNetworkRegistryEvents::NftTypeAndRankAddedFilter(
1494                        decoded,
1495                    ),
1496                );
1497            }
1498            if let Ok(decoded) = NftTypeAndRankRemovedFilter::decode_log(log) {
1499                return Ok(
1500                    HoprStakingProxyForNetworkRegistryEvents::NftTypeAndRankRemovedFilter(
1501                        decoded,
1502                    ),
1503                );
1504            }
1505            if let Ok(decoded) = OwnershipTransferredFilter::decode_log(log) {
1506                return Ok(
1507                    HoprStakingProxyForNetworkRegistryEvents::OwnershipTransferredFilter(
1508                        decoded,
1509                    ),
1510                );
1511            }
1512            if let Ok(decoded) = SpecialNftTypeAndRankAddedFilter::decode_log(log) {
1513                return Ok(
1514                    HoprStakingProxyForNetworkRegistryEvents::SpecialNftTypeAndRankAddedFilter(
1515                        decoded,
1516                    ),
1517                );
1518            }
1519            if let Ok(decoded) = SpecialNftTypeAndRankRemovedFilter::decode_log(log) {
1520                return Ok(
1521                    HoprStakingProxyForNetworkRegistryEvents::SpecialNftTypeAndRankRemovedFilter(
1522                        decoded,
1523                    ),
1524                );
1525            }
1526            if let Ok(decoded) = StakeContractUpdatedFilter::decode_log(log) {
1527                return Ok(
1528                    HoprStakingProxyForNetworkRegistryEvents::StakeContractUpdatedFilter(
1529                        decoded,
1530                    ),
1531                );
1532            }
1533            if let Ok(decoded) = ThresholdUpdatedFilter::decode_log(log) {
1534                return Ok(
1535                    HoprStakingProxyForNetworkRegistryEvents::ThresholdUpdatedFilter(
1536                        decoded,
1537                    ),
1538                );
1539            }
1540            Err(::ethers::core::abi::Error::InvalidData)
1541        }
1542    }
1543    impl ::core::fmt::Display for HoprStakingProxyForNetworkRegistryEvents {
1544        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1545            match self {
1546                Self::NftTypeAndRankAddedFilter(element) => {
1547                    ::core::fmt::Display::fmt(element, f)
1548                }
1549                Self::NftTypeAndRankRemovedFilter(element) => {
1550                    ::core::fmt::Display::fmt(element, f)
1551                }
1552                Self::OwnershipTransferredFilter(element) => {
1553                    ::core::fmt::Display::fmt(element, f)
1554                }
1555                Self::SpecialNftTypeAndRankAddedFilter(element) => {
1556                    ::core::fmt::Display::fmt(element, f)
1557                }
1558                Self::SpecialNftTypeAndRankRemovedFilter(element) => {
1559                    ::core::fmt::Display::fmt(element, f)
1560                }
1561                Self::StakeContractUpdatedFilter(element) => {
1562                    ::core::fmt::Display::fmt(element, f)
1563                }
1564                Self::ThresholdUpdatedFilter(element) => {
1565                    ::core::fmt::Display::fmt(element, f)
1566                }
1567            }
1568        }
1569    }
1570    impl ::core::convert::From<NftTypeAndRankAddedFilter>
1571    for HoprStakingProxyForNetworkRegistryEvents {
1572        fn from(value: NftTypeAndRankAddedFilter) -> Self {
1573            Self::NftTypeAndRankAddedFilter(value)
1574        }
1575    }
1576    impl ::core::convert::From<NftTypeAndRankRemovedFilter>
1577    for HoprStakingProxyForNetworkRegistryEvents {
1578        fn from(value: NftTypeAndRankRemovedFilter) -> Self {
1579            Self::NftTypeAndRankRemovedFilter(value)
1580        }
1581    }
1582    impl ::core::convert::From<OwnershipTransferredFilter>
1583    for HoprStakingProxyForNetworkRegistryEvents {
1584        fn from(value: OwnershipTransferredFilter) -> Self {
1585            Self::OwnershipTransferredFilter(value)
1586        }
1587    }
1588    impl ::core::convert::From<SpecialNftTypeAndRankAddedFilter>
1589    for HoprStakingProxyForNetworkRegistryEvents {
1590        fn from(value: SpecialNftTypeAndRankAddedFilter) -> Self {
1591            Self::SpecialNftTypeAndRankAddedFilter(value)
1592        }
1593    }
1594    impl ::core::convert::From<SpecialNftTypeAndRankRemovedFilter>
1595    for HoprStakingProxyForNetworkRegistryEvents {
1596        fn from(value: SpecialNftTypeAndRankRemovedFilter) -> Self {
1597            Self::SpecialNftTypeAndRankRemovedFilter(value)
1598        }
1599    }
1600    impl ::core::convert::From<StakeContractUpdatedFilter>
1601    for HoprStakingProxyForNetworkRegistryEvents {
1602        fn from(value: StakeContractUpdatedFilter) -> Self {
1603            Self::StakeContractUpdatedFilter(value)
1604        }
1605    }
1606    impl ::core::convert::From<ThresholdUpdatedFilter>
1607    for HoprStakingProxyForNetworkRegistryEvents {
1608        fn from(value: ThresholdUpdatedFilter) -> Self {
1609            Self::ThresholdUpdatedFilter(value)
1610        }
1611    }
1612    ///Container type for all input parameters for the `canOperateFor` function with signature `canOperateFor(address,address)` and selector `0xd85ad044`
1613    #[derive(
1614        Clone,
1615        ::ethers::contract::EthCall,
1616        ::ethers::contract::EthDisplay,
1617        serde::Serialize,
1618        serde::Deserialize,
1619        Default,
1620        Debug,
1621        PartialEq,
1622        Eq,
1623        Hash
1624    )]
1625    #[ethcall(name = "canOperateFor", abi = "canOperateFor(address,address)")]
1626    pub struct CanOperateForCall(
1627        pub ::ethers::core::types::Address,
1628        pub ::ethers::core::types::Address,
1629    );
1630    ///Container type for all input parameters for the `eligibleNftTypeAndRank` function with signature `eligibleNftTypeAndRank(uint256)` and selector `0xde626c0e`
1631    #[derive(
1632        Clone,
1633        ::ethers::contract::EthCall,
1634        ::ethers::contract::EthDisplay,
1635        serde::Serialize,
1636        serde::Deserialize,
1637        Default,
1638        Debug,
1639        PartialEq,
1640        Eq,
1641        Hash
1642    )]
1643    #[ethcall(name = "eligibleNftTypeAndRank", abi = "eligibleNftTypeAndRank(uint256)")]
1644    pub struct EligibleNftTypeAndRankCall(pub ::ethers::core::types::U256);
1645    ///Container type for all input parameters for the `maxAllowedRegistrations` function with signature `maxAllowedRegistrations(address)` and selector `0xb3544e82`
1646    #[derive(
1647        Clone,
1648        ::ethers::contract::EthCall,
1649        ::ethers::contract::EthDisplay,
1650        serde::Serialize,
1651        serde::Deserialize,
1652        Default,
1653        Debug,
1654        PartialEq,
1655        Eq,
1656        Hash
1657    )]
1658    #[ethcall(
1659        name = "maxAllowedRegistrations",
1660        abi = "maxAllowedRegistrations(address)"
1661    )]
1662    pub struct MaxAllowedRegistrationsCall {
1663        pub account: ::ethers::core::types::Address,
1664    }
1665    ///Container type for all input parameters for the `maxRegistrationsPerSpecialNft` function with signature `maxRegistrationsPerSpecialNft(uint256)` and selector `0xba1cef23`
1666    #[derive(
1667        Clone,
1668        ::ethers::contract::EthCall,
1669        ::ethers::contract::EthDisplay,
1670        serde::Serialize,
1671        serde::Deserialize,
1672        Default,
1673        Debug,
1674        PartialEq,
1675        Eq,
1676        Hash
1677    )]
1678    #[ethcall(
1679        name = "maxRegistrationsPerSpecialNft",
1680        abi = "maxRegistrationsPerSpecialNft(uint256)"
1681    )]
1682    pub struct MaxRegistrationsPerSpecialNftCall(pub ::ethers::core::types::U256);
1683    ///Container type for all input parameters for the `owner` function with signature `owner()` and selector `0x8da5cb5b`
1684    #[derive(
1685        Clone,
1686        ::ethers::contract::EthCall,
1687        ::ethers::contract::EthDisplay,
1688        serde::Serialize,
1689        serde::Deserialize,
1690        Default,
1691        Debug,
1692        PartialEq,
1693        Eq,
1694        Hash
1695    )]
1696    #[ethcall(name = "owner", abi = "owner()")]
1697    pub struct OwnerCall;
1698    ///Container type for all input parameters for the `ownerAddNftTypeAndRank` function with signature `ownerAddNftTypeAndRank(uint256,string)` and selector `0x9b97076f`
1699    #[derive(
1700        Clone,
1701        ::ethers::contract::EthCall,
1702        ::ethers::contract::EthDisplay,
1703        serde::Serialize,
1704        serde::Deserialize,
1705        Default,
1706        Debug,
1707        PartialEq,
1708        Eq,
1709        Hash
1710    )]
1711    #[ethcall(
1712        name = "ownerAddNftTypeAndRank",
1713        abi = "ownerAddNftTypeAndRank(uint256,string)"
1714    )]
1715    pub struct OwnerAddNftTypeAndRankCall {
1716        pub nft_type: ::ethers::core::types::U256,
1717        pub nft_rank: ::std::string::String,
1718    }
1719    ///Container type for all input parameters for the `ownerBatchAddNftTypeAndRank` function with signature `ownerBatchAddNftTypeAndRank(uint256[],string[])` and selector `0x506472cc`
1720    #[derive(
1721        Clone,
1722        ::ethers::contract::EthCall,
1723        ::ethers::contract::EthDisplay,
1724        serde::Serialize,
1725        serde::Deserialize,
1726        Default,
1727        Debug,
1728        PartialEq,
1729        Eq,
1730        Hash
1731    )]
1732    #[ethcall(
1733        name = "ownerBatchAddNftTypeAndRank",
1734        abi = "ownerBatchAddNftTypeAndRank(uint256[],string[])"
1735    )]
1736    pub struct OwnerBatchAddNftTypeAndRankCall {
1737        pub nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
1738        pub nft_ranks: ::std::vec::Vec<::std::string::String>,
1739    }
1740    ///Container type for all input parameters for the `ownerBatchAddSpecialNftTypeAndRank` function with signature `ownerBatchAddSpecialNftTypeAndRank(uint256[],string[],uint256[])` and selector `0x6a3b64b6`
1741    #[derive(
1742        Clone,
1743        ::ethers::contract::EthCall,
1744        ::ethers::contract::EthDisplay,
1745        serde::Serialize,
1746        serde::Deserialize,
1747        Default,
1748        Debug,
1749        PartialEq,
1750        Eq,
1751        Hash
1752    )]
1753    #[ethcall(
1754        name = "ownerBatchAddSpecialNftTypeAndRank",
1755        abi = "ownerBatchAddSpecialNftTypeAndRank(uint256[],string[],uint256[])"
1756    )]
1757    pub struct OwnerBatchAddSpecialNftTypeAndRankCall {
1758        pub nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
1759        pub nft_ranks: ::std::vec::Vec<::std::string::String>,
1760        pub max_registrations: ::std::vec::Vec<::ethers::core::types::U256>,
1761    }
1762    ///Container type for all input parameters for the `ownerBatchRemoveNftTypeAndRank` function with signature `ownerBatchRemoveNftTypeAndRank(uint256[],string[])` and selector `0xfb66ac57`
1763    #[derive(
1764        Clone,
1765        ::ethers::contract::EthCall,
1766        ::ethers::contract::EthDisplay,
1767        serde::Serialize,
1768        serde::Deserialize,
1769        Default,
1770        Debug,
1771        PartialEq,
1772        Eq,
1773        Hash
1774    )]
1775    #[ethcall(
1776        name = "ownerBatchRemoveNftTypeAndRank",
1777        abi = "ownerBatchRemoveNftTypeAndRank(uint256[],string[])"
1778    )]
1779    pub struct OwnerBatchRemoveNftTypeAndRankCall {
1780        pub nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
1781        pub nft_ranks: ::std::vec::Vec<::std::string::String>,
1782    }
1783    ///Container type for all input parameters for the `ownerBatchRemoveSpecialNftTypeAndRank` function with signature `ownerBatchRemoveSpecialNftTypeAndRank(uint256[],string[])` and selector `0xb05e8ba9`
1784    #[derive(
1785        Clone,
1786        ::ethers::contract::EthCall,
1787        ::ethers::contract::EthDisplay,
1788        serde::Serialize,
1789        serde::Deserialize,
1790        Default,
1791        Debug,
1792        PartialEq,
1793        Eq,
1794        Hash
1795    )]
1796    #[ethcall(
1797        name = "ownerBatchRemoveSpecialNftTypeAndRank",
1798        abi = "ownerBatchRemoveSpecialNftTypeAndRank(uint256[],string[])"
1799    )]
1800    pub struct OwnerBatchRemoveSpecialNftTypeAndRankCall {
1801        pub nft_types: ::std::vec::Vec<::ethers::core::types::U256>,
1802        pub nft_ranks: ::std::vec::Vec<::std::string::String>,
1803    }
1804    ///Container type for all input parameters for the `ownerRemoveNftTypeAndRank` function with signature `ownerRemoveNftTypeAndRank(uint256,string)` and selector `0x654251eb`
1805    #[derive(
1806        Clone,
1807        ::ethers::contract::EthCall,
1808        ::ethers::contract::EthDisplay,
1809        serde::Serialize,
1810        serde::Deserialize,
1811        Default,
1812        Debug,
1813        PartialEq,
1814        Eq,
1815        Hash
1816    )]
1817    #[ethcall(
1818        name = "ownerRemoveNftTypeAndRank",
1819        abi = "ownerRemoveNftTypeAndRank(uint256,string)"
1820    )]
1821    pub struct OwnerRemoveNftTypeAndRankCall {
1822        pub nft_type: ::ethers::core::types::U256,
1823        pub nft_rank: ::std::string::String,
1824    }
1825    ///Container type for all input parameters for the `ownerUpdateThreshold` function with signature `ownerUpdateThreshold(uint256)` and selector `0xee50c7c4`
1826    #[derive(
1827        Clone,
1828        ::ethers::contract::EthCall,
1829        ::ethers::contract::EthDisplay,
1830        serde::Serialize,
1831        serde::Deserialize,
1832        Default,
1833        Debug,
1834        PartialEq,
1835        Eq,
1836        Hash
1837    )]
1838    #[ethcall(name = "ownerUpdateThreshold", abi = "ownerUpdateThreshold(uint256)")]
1839    pub struct OwnerUpdateThresholdCall {
1840        pub new_threshold: ::ethers::core::types::U256,
1841    }
1842    ///Container type for all input parameters for the `renounceOwnership` function with signature `renounceOwnership()` and selector `0x715018a6`
1843    #[derive(
1844        Clone,
1845        ::ethers::contract::EthCall,
1846        ::ethers::contract::EthDisplay,
1847        serde::Serialize,
1848        serde::Deserialize,
1849        Default,
1850        Debug,
1851        PartialEq,
1852        Eq,
1853        Hash
1854    )]
1855    #[ethcall(name = "renounceOwnership", abi = "renounceOwnership()")]
1856    pub struct RenounceOwnershipCall;
1857    ///Container type for all input parameters for the `specialNftTypeAndRank` function with signature `specialNftTypeAndRank(uint256)` and selector `0x2c3ec80b`
1858    #[derive(
1859        Clone,
1860        ::ethers::contract::EthCall,
1861        ::ethers::contract::EthDisplay,
1862        serde::Serialize,
1863        serde::Deserialize,
1864        Default,
1865        Debug,
1866        PartialEq,
1867        Eq,
1868        Hash
1869    )]
1870    #[ethcall(name = "specialNftTypeAndRank", abi = "specialNftTypeAndRank(uint256)")]
1871    pub struct SpecialNftTypeAndRankCall(pub ::ethers::core::types::U256);
1872    ///Container type for all input parameters for the `stakeContract` function with signature `stakeContract()` and selector `0x1a186227`
1873    #[derive(
1874        Clone,
1875        ::ethers::contract::EthCall,
1876        ::ethers::contract::EthDisplay,
1877        serde::Serialize,
1878        serde::Deserialize,
1879        Default,
1880        Debug,
1881        PartialEq,
1882        Eq,
1883        Hash
1884    )]
1885    #[ethcall(name = "stakeContract", abi = "stakeContract()")]
1886    pub struct StakeContractCall;
1887    ///Container type for all input parameters for the `stakeThreshold` function with signature `stakeThreshold()` and selector `0xf11f77f9`
1888    #[derive(
1889        Clone,
1890        ::ethers::contract::EthCall,
1891        ::ethers::contract::EthDisplay,
1892        serde::Serialize,
1893        serde::Deserialize,
1894        Default,
1895        Debug,
1896        PartialEq,
1897        Eq,
1898        Hash
1899    )]
1900    #[ethcall(name = "stakeThreshold", abi = "stakeThreshold()")]
1901    pub struct StakeThresholdCall;
1902    ///Container type for all input parameters for the `transferOwnership` function with signature `transferOwnership(address)` and selector `0xf2fde38b`
1903    #[derive(
1904        Clone,
1905        ::ethers::contract::EthCall,
1906        ::ethers::contract::EthDisplay,
1907        serde::Serialize,
1908        serde::Deserialize,
1909        Default,
1910        Debug,
1911        PartialEq,
1912        Eq,
1913        Hash
1914    )]
1915    #[ethcall(name = "transferOwnership", abi = "transferOwnership(address)")]
1916    pub struct TransferOwnershipCall {
1917        pub new_owner: ::ethers::core::types::Address,
1918    }
1919    ///Container type for all input parameters for the `updateStakeContract` function with signature `updateStakeContract(address)` and selector `0x830c6cc2`
1920    #[derive(
1921        Clone,
1922        ::ethers::contract::EthCall,
1923        ::ethers::contract::EthDisplay,
1924        serde::Serialize,
1925        serde::Deserialize,
1926        Default,
1927        Debug,
1928        PartialEq,
1929        Eq,
1930        Hash
1931    )]
1932    #[ethcall(name = "updateStakeContract", abi = "updateStakeContract(address)")]
1933    pub struct UpdateStakeContractCall {
1934        pub stake_contract: ::ethers::core::types::Address,
1935    }
1936    ///Container type for all of the contract's call
1937    #[derive(
1938        Clone,
1939        ::ethers::contract::EthAbiType,
1940        serde::Serialize,
1941        serde::Deserialize,
1942        Debug,
1943        PartialEq,
1944        Eq,
1945        Hash
1946    )]
1947    pub enum HoprStakingProxyForNetworkRegistryCalls {
1948        CanOperateFor(CanOperateForCall),
1949        EligibleNftTypeAndRank(EligibleNftTypeAndRankCall),
1950        MaxAllowedRegistrations(MaxAllowedRegistrationsCall),
1951        MaxRegistrationsPerSpecialNft(MaxRegistrationsPerSpecialNftCall),
1952        Owner(OwnerCall),
1953        OwnerAddNftTypeAndRank(OwnerAddNftTypeAndRankCall),
1954        OwnerBatchAddNftTypeAndRank(OwnerBatchAddNftTypeAndRankCall),
1955        OwnerBatchAddSpecialNftTypeAndRank(OwnerBatchAddSpecialNftTypeAndRankCall),
1956        OwnerBatchRemoveNftTypeAndRank(OwnerBatchRemoveNftTypeAndRankCall),
1957        OwnerBatchRemoveSpecialNftTypeAndRank(OwnerBatchRemoveSpecialNftTypeAndRankCall),
1958        OwnerRemoveNftTypeAndRank(OwnerRemoveNftTypeAndRankCall),
1959        OwnerUpdateThreshold(OwnerUpdateThresholdCall),
1960        RenounceOwnership(RenounceOwnershipCall),
1961        SpecialNftTypeAndRank(SpecialNftTypeAndRankCall),
1962        StakeContract(StakeContractCall),
1963        StakeThreshold(StakeThresholdCall),
1964        TransferOwnership(TransferOwnershipCall),
1965        UpdateStakeContract(UpdateStakeContractCall),
1966    }
1967    impl ::ethers::core::abi::AbiDecode for HoprStakingProxyForNetworkRegistryCalls {
1968        fn decode(
1969            data: impl AsRef<[u8]>,
1970        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
1971            let data = data.as_ref();
1972            if let Ok(decoded) = <CanOperateForCall as ::ethers::core::abi::AbiDecode>::decode(
1973                data,
1974            ) {
1975                return Ok(Self::CanOperateFor(decoded));
1976            }
1977            if let Ok(decoded) = <EligibleNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
1978                data,
1979            ) {
1980                return Ok(Self::EligibleNftTypeAndRank(decoded));
1981            }
1982            if let Ok(decoded) = <MaxAllowedRegistrationsCall as ::ethers::core::abi::AbiDecode>::decode(
1983                data,
1984            ) {
1985                return Ok(Self::MaxAllowedRegistrations(decoded));
1986            }
1987            if let Ok(decoded) = <MaxRegistrationsPerSpecialNftCall as ::ethers::core::abi::AbiDecode>::decode(
1988                data,
1989            ) {
1990                return Ok(Self::MaxRegistrationsPerSpecialNft(decoded));
1991            }
1992            if let Ok(decoded) = <OwnerCall as ::ethers::core::abi::AbiDecode>::decode(
1993                data,
1994            ) {
1995                return Ok(Self::Owner(decoded));
1996            }
1997            if let Ok(decoded) = <OwnerAddNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
1998                data,
1999            ) {
2000                return Ok(Self::OwnerAddNftTypeAndRank(decoded));
2001            }
2002            if let Ok(decoded) = <OwnerBatchAddNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
2003                data,
2004            ) {
2005                return Ok(Self::OwnerBatchAddNftTypeAndRank(decoded));
2006            }
2007            if let Ok(decoded) = <OwnerBatchAddSpecialNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
2008                data,
2009            ) {
2010                return Ok(Self::OwnerBatchAddSpecialNftTypeAndRank(decoded));
2011            }
2012            if let Ok(decoded) = <OwnerBatchRemoveNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
2013                data,
2014            ) {
2015                return Ok(Self::OwnerBatchRemoveNftTypeAndRank(decoded));
2016            }
2017            if let Ok(decoded) = <OwnerBatchRemoveSpecialNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
2018                data,
2019            ) {
2020                return Ok(Self::OwnerBatchRemoveSpecialNftTypeAndRank(decoded));
2021            }
2022            if let Ok(decoded) = <OwnerRemoveNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
2023                data,
2024            ) {
2025                return Ok(Self::OwnerRemoveNftTypeAndRank(decoded));
2026            }
2027            if let Ok(decoded) = <OwnerUpdateThresholdCall as ::ethers::core::abi::AbiDecode>::decode(
2028                data,
2029            ) {
2030                return Ok(Self::OwnerUpdateThreshold(decoded));
2031            }
2032            if let Ok(decoded) = <RenounceOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
2033                data,
2034            ) {
2035                return Ok(Self::RenounceOwnership(decoded));
2036            }
2037            if let Ok(decoded) = <SpecialNftTypeAndRankCall as ::ethers::core::abi::AbiDecode>::decode(
2038                data,
2039            ) {
2040                return Ok(Self::SpecialNftTypeAndRank(decoded));
2041            }
2042            if let Ok(decoded) = <StakeContractCall as ::ethers::core::abi::AbiDecode>::decode(
2043                data,
2044            ) {
2045                return Ok(Self::StakeContract(decoded));
2046            }
2047            if let Ok(decoded) = <StakeThresholdCall as ::ethers::core::abi::AbiDecode>::decode(
2048                data,
2049            ) {
2050                return Ok(Self::StakeThreshold(decoded));
2051            }
2052            if let Ok(decoded) = <TransferOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
2053                data,
2054            ) {
2055                return Ok(Self::TransferOwnership(decoded));
2056            }
2057            if let Ok(decoded) = <UpdateStakeContractCall as ::ethers::core::abi::AbiDecode>::decode(
2058                data,
2059            ) {
2060                return Ok(Self::UpdateStakeContract(decoded));
2061            }
2062            Err(::ethers::core::abi::Error::InvalidData.into())
2063        }
2064    }
2065    impl ::ethers::core::abi::AbiEncode for HoprStakingProxyForNetworkRegistryCalls {
2066        fn encode(self) -> Vec<u8> {
2067            match self {
2068                Self::CanOperateFor(element) => {
2069                    ::ethers::core::abi::AbiEncode::encode(element)
2070                }
2071                Self::EligibleNftTypeAndRank(element) => {
2072                    ::ethers::core::abi::AbiEncode::encode(element)
2073                }
2074                Self::MaxAllowedRegistrations(element) => {
2075                    ::ethers::core::abi::AbiEncode::encode(element)
2076                }
2077                Self::MaxRegistrationsPerSpecialNft(element) => {
2078                    ::ethers::core::abi::AbiEncode::encode(element)
2079                }
2080                Self::Owner(element) => ::ethers::core::abi::AbiEncode::encode(element),
2081                Self::OwnerAddNftTypeAndRank(element) => {
2082                    ::ethers::core::abi::AbiEncode::encode(element)
2083                }
2084                Self::OwnerBatchAddNftTypeAndRank(element) => {
2085                    ::ethers::core::abi::AbiEncode::encode(element)
2086                }
2087                Self::OwnerBatchAddSpecialNftTypeAndRank(element) => {
2088                    ::ethers::core::abi::AbiEncode::encode(element)
2089                }
2090                Self::OwnerBatchRemoveNftTypeAndRank(element) => {
2091                    ::ethers::core::abi::AbiEncode::encode(element)
2092                }
2093                Self::OwnerBatchRemoveSpecialNftTypeAndRank(element) => {
2094                    ::ethers::core::abi::AbiEncode::encode(element)
2095                }
2096                Self::OwnerRemoveNftTypeAndRank(element) => {
2097                    ::ethers::core::abi::AbiEncode::encode(element)
2098                }
2099                Self::OwnerUpdateThreshold(element) => {
2100                    ::ethers::core::abi::AbiEncode::encode(element)
2101                }
2102                Self::RenounceOwnership(element) => {
2103                    ::ethers::core::abi::AbiEncode::encode(element)
2104                }
2105                Self::SpecialNftTypeAndRank(element) => {
2106                    ::ethers::core::abi::AbiEncode::encode(element)
2107                }
2108                Self::StakeContract(element) => {
2109                    ::ethers::core::abi::AbiEncode::encode(element)
2110                }
2111                Self::StakeThreshold(element) => {
2112                    ::ethers::core::abi::AbiEncode::encode(element)
2113                }
2114                Self::TransferOwnership(element) => {
2115                    ::ethers::core::abi::AbiEncode::encode(element)
2116                }
2117                Self::UpdateStakeContract(element) => {
2118                    ::ethers::core::abi::AbiEncode::encode(element)
2119                }
2120            }
2121        }
2122    }
2123    impl ::core::fmt::Display for HoprStakingProxyForNetworkRegistryCalls {
2124        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2125            match self {
2126                Self::CanOperateFor(element) => ::core::fmt::Display::fmt(element, f),
2127                Self::EligibleNftTypeAndRank(element) => {
2128                    ::core::fmt::Display::fmt(element, f)
2129                }
2130                Self::MaxAllowedRegistrations(element) => {
2131                    ::core::fmt::Display::fmt(element, f)
2132                }
2133                Self::MaxRegistrationsPerSpecialNft(element) => {
2134                    ::core::fmt::Display::fmt(element, f)
2135                }
2136                Self::Owner(element) => ::core::fmt::Display::fmt(element, f),
2137                Self::OwnerAddNftTypeAndRank(element) => {
2138                    ::core::fmt::Display::fmt(element, f)
2139                }
2140                Self::OwnerBatchAddNftTypeAndRank(element) => {
2141                    ::core::fmt::Display::fmt(element, f)
2142                }
2143                Self::OwnerBatchAddSpecialNftTypeAndRank(element) => {
2144                    ::core::fmt::Display::fmt(element, f)
2145                }
2146                Self::OwnerBatchRemoveNftTypeAndRank(element) => {
2147                    ::core::fmt::Display::fmt(element, f)
2148                }
2149                Self::OwnerBatchRemoveSpecialNftTypeAndRank(element) => {
2150                    ::core::fmt::Display::fmt(element, f)
2151                }
2152                Self::OwnerRemoveNftTypeAndRank(element) => {
2153                    ::core::fmt::Display::fmt(element, f)
2154                }
2155                Self::OwnerUpdateThreshold(element) => {
2156                    ::core::fmt::Display::fmt(element, f)
2157                }
2158                Self::RenounceOwnership(element) => ::core::fmt::Display::fmt(element, f),
2159                Self::SpecialNftTypeAndRank(element) => {
2160                    ::core::fmt::Display::fmt(element, f)
2161                }
2162                Self::StakeContract(element) => ::core::fmt::Display::fmt(element, f),
2163                Self::StakeThreshold(element) => ::core::fmt::Display::fmt(element, f),
2164                Self::TransferOwnership(element) => ::core::fmt::Display::fmt(element, f),
2165                Self::UpdateStakeContract(element) => {
2166                    ::core::fmt::Display::fmt(element, f)
2167                }
2168            }
2169        }
2170    }
2171    impl ::core::convert::From<CanOperateForCall>
2172    for HoprStakingProxyForNetworkRegistryCalls {
2173        fn from(value: CanOperateForCall) -> Self {
2174            Self::CanOperateFor(value)
2175        }
2176    }
2177    impl ::core::convert::From<EligibleNftTypeAndRankCall>
2178    for HoprStakingProxyForNetworkRegistryCalls {
2179        fn from(value: EligibleNftTypeAndRankCall) -> Self {
2180            Self::EligibleNftTypeAndRank(value)
2181        }
2182    }
2183    impl ::core::convert::From<MaxAllowedRegistrationsCall>
2184    for HoprStakingProxyForNetworkRegistryCalls {
2185        fn from(value: MaxAllowedRegistrationsCall) -> Self {
2186            Self::MaxAllowedRegistrations(value)
2187        }
2188    }
2189    impl ::core::convert::From<MaxRegistrationsPerSpecialNftCall>
2190    for HoprStakingProxyForNetworkRegistryCalls {
2191        fn from(value: MaxRegistrationsPerSpecialNftCall) -> Self {
2192            Self::MaxRegistrationsPerSpecialNft(value)
2193        }
2194    }
2195    impl ::core::convert::From<OwnerCall> for HoprStakingProxyForNetworkRegistryCalls {
2196        fn from(value: OwnerCall) -> Self {
2197            Self::Owner(value)
2198        }
2199    }
2200    impl ::core::convert::From<OwnerAddNftTypeAndRankCall>
2201    for HoprStakingProxyForNetworkRegistryCalls {
2202        fn from(value: OwnerAddNftTypeAndRankCall) -> Self {
2203            Self::OwnerAddNftTypeAndRank(value)
2204        }
2205    }
2206    impl ::core::convert::From<OwnerBatchAddNftTypeAndRankCall>
2207    for HoprStakingProxyForNetworkRegistryCalls {
2208        fn from(value: OwnerBatchAddNftTypeAndRankCall) -> Self {
2209            Self::OwnerBatchAddNftTypeAndRank(value)
2210        }
2211    }
2212    impl ::core::convert::From<OwnerBatchAddSpecialNftTypeAndRankCall>
2213    for HoprStakingProxyForNetworkRegistryCalls {
2214        fn from(value: OwnerBatchAddSpecialNftTypeAndRankCall) -> Self {
2215            Self::OwnerBatchAddSpecialNftTypeAndRank(value)
2216        }
2217    }
2218    impl ::core::convert::From<OwnerBatchRemoveNftTypeAndRankCall>
2219    for HoprStakingProxyForNetworkRegistryCalls {
2220        fn from(value: OwnerBatchRemoveNftTypeAndRankCall) -> Self {
2221            Self::OwnerBatchRemoveNftTypeAndRank(value)
2222        }
2223    }
2224    impl ::core::convert::From<OwnerBatchRemoveSpecialNftTypeAndRankCall>
2225    for HoprStakingProxyForNetworkRegistryCalls {
2226        fn from(value: OwnerBatchRemoveSpecialNftTypeAndRankCall) -> Self {
2227            Self::OwnerBatchRemoveSpecialNftTypeAndRank(value)
2228        }
2229    }
2230    impl ::core::convert::From<OwnerRemoveNftTypeAndRankCall>
2231    for HoprStakingProxyForNetworkRegistryCalls {
2232        fn from(value: OwnerRemoveNftTypeAndRankCall) -> Self {
2233            Self::OwnerRemoveNftTypeAndRank(value)
2234        }
2235    }
2236    impl ::core::convert::From<OwnerUpdateThresholdCall>
2237    for HoprStakingProxyForNetworkRegistryCalls {
2238        fn from(value: OwnerUpdateThresholdCall) -> Self {
2239            Self::OwnerUpdateThreshold(value)
2240        }
2241    }
2242    impl ::core::convert::From<RenounceOwnershipCall>
2243    for HoprStakingProxyForNetworkRegistryCalls {
2244        fn from(value: RenounceOwnershipCall) -> Self {
2245            Self::RenounceOwnership(value)
2246        }
2247    }
2248    impl ::core::convert::From<SpecialNftTypeAndRankCall>
2249    for HoprStakingProxyForNetworkRegistryCalls {
2250        fn from(value: SpecialNftTypeAndRankCall) -> Self {
2251            Self::SpecialNftTypeAndRank(value)
2252        }
2253    }
2254    impl ::core::convert::From<StakeContractCall>
2255    for HoprStakingProxyForNetworkRegistryCalls {
2256        fn from(value: StakeContractCall) -> Self {
2257            Self::StakeContract(value)
2258        }
2259    }
2260    impl ::core::convert::From<StakeThresholdCall>
2261    for HoprStakingProxyForNetworkRegistryCalls {
2262        fn from(value: StakeThresholdCall) -> Self {
2263            Self::StakeThreshold(value)
2264        }
2265    }
2266    impl ::core::convert::From<TransferOwnershipCall>
2267    for HoprStakingProxyForNetworkRegistryCalls {
2268        fn from(value: TransferOwnershipCall) -> Self {
2269            Self::TransferOwnership(value)
2270        }
2271    }
2272    impl ::core::convert::From<UpdateStakeContractCall>
2273    for HoprStakingProxyForNetworkRegistryCalls {
2274        fn from(value: UpdateStakeContractCall) -> Self {
2275            Self::UpdateStakeContract(value)
2276        }
2277    }
2278    ///Container type for all return fields from the `canOperateFor` function with signature `canOperateFor(address,address)` and selector `0xd85ad044`
2279    #[derive(
2280        Clone,
2281        ::ethers::contract::EthAbiType,
2282        ::ethers::contract::EthAbiCodec,
2283        serde::Serialize,
2284        serde::Deserialize,
2285        Default,
2286        Debug,
2287        PartialEq,
2288        Eq,
2289        Hash
2290    )]
2291    pub struct CanOperateForReturn {
2292        pub eligiblity: bool,
2293    }
2294    ///Container type for all return fields from the `eligibleNftTypeAndRank` function with signature `eligibleNftTypeAndRank(uint256)` and selector `0xde626c0e`
2295    #[derive(
2296        Clone,
2297        ::ethers::contract::EthAbiType,
2298        ::ethers::contract::EthAbiCodec,
2299        serde::Serialize,
2300        serde::Deserialize,
2301        Default,
2302        Debug,
2303        PartialEq,
2304        Eq,
2305        Hash
2306    )]
2307    pub struct EligibleNftTypeAndRankReturn {
2308        pub nft_type: ::ethers::core::types::U256,
2309        pub nft_rank: ::std::string::String,
2310    }
2311    ///Container type for all return fields from the `maxAllowedRegistrations` function with signature `maxAllowedRegistrations(address)` and selector `0xb3544e82`
2312    #[derive(
2313        Clone,
2314        ::ethers::contract::EthAbiType,
2315        ::ethers::contract::EthAbiCodec,
2316        serde::Serialize,
2317        serde::Deserialize,
2318        Default,
2319        Debug,
2320        PartialEq,
2321        Eq,
2322        Hash
2323    )]
2324    pub struct MaxAllowedRegistrationsReturn(pub ::ethers::core::types::U256);
2325    ///Container type for all return fields from the `maxRegistrationsPerSpecialNft` function with signature `maxRegistrationsPerSpecialNft(uint256)` and selector `0xba1cef23`
2326    #[derive(
2327        Clone,
2328        ::ethers::contract::EthAbiType,
2329        ::ethers::contract::EthAbiCodec,
2330        serde::Serialize,
2331        serde::Deserialize,
2332        Default,
2333        Debug,
2334        PartialEq,
2335        Eq,
2336        Hash
2337    )]
2338    pub struct MaxRegistrationsPerSpecialNftReturn(pub ::ethers::core::types::U256);
2339    ///Container type for all return fields from the `owner` function with signature `owner()` and selector `0x8da5cb5b`
2340    #[derive(
2341        Clone,
2342        ::ethers::contract::EthAbiType,
2343        ::ethers::contract::EthAbiCodec,
2344        serde::Serialize,
2345        serde::Deserialize,
2346        Default,
2347        Debug,
2348        PartialEq,
2349        Eq,
2350        Hash
2351    )]
2352    pub struct OwnerReturn(pub ::ethers::core::types::Address);
2353    ///Container type for all return fields from the `specialNftTypeAndRank` function with signature `specialNftTypeAndRank(uint256)` and selector `0x2c3ec80b`
2354    #[derive(
2355        Clone,
2356        ::ethers::contract::EthAbiType,
2357        ::ethers::contract::EthAbiCodec,
2358        serde::Serialize,
2359        serde::Deserialize,
2360        Default,
2361        Debug,
2362        PartialEq,
2363        Eq,
2364        Hash
2365    )]
2366    pub struct SpecialNftTypeAndRankReturn {
2367        pub nft_type: ::ethers::core::types::U256,
2368        pub nft_rank: ::std::string::String,
2369    }
2370    ///Container type for all return fields from the `stakeContract` function with signature `stakeContract()` and selector `0x1a186227`
2371    #[derive(
2372        Clone,
2373        ::ethers::contract::EthAbiType,
2374        ::ethers::contract::EthAbiCodec,
2375        serde::Serialize,
2376        serde::Deserialize,
2377        Default,
2378        Debug,
2379        PartialEq,
2380        Eq,
2381        Hash
2382    )]
2383    pub struct StakeContractReturn(pub ::ethers::core::types::Address);
2384    ///Container type for all return fields from the `stakeThreshold` function with signature `stakeThreshold()` and selector `0xf11f77f9`
2385    #[derive(
2386        Clone,
2387        ::ethers::contract::EthAbiType,
2388        ::ethers::contract::EthAbiCodec,
2389        serde::Serialize,
2390        serde::Deserialize,
2391        Default,
2392        Debug,
2393        PartialEq,
2394        Eq,
2395        Hash
2396    )]
2397    pub struct StakeThresholdReturn(pub ::ethers::core::types::U256);
2398}