hopr_bindings/codegen/
hopr_node_safe_registry.rs

1pub use hopr_node_safe_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_node_safe_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            }),
19            functions: ::core::convert::From::from([
20                (
21                    ::std::borrow::ToOwned::to_owned("NODE_SAFE_TYPEHASH"),
22                    ::std::vec![
23                        ::ethers::core::abi::ethabi::Function {
24                            name: ::std::borrow::ToOwned::to_owned("NODE_SAFE_TYPEHASH"),
25                            inputs: ::std::vec![],
26                            outputs: ::std::vec![
27                                ::ethers::core::abi::ethabi::Param {
28                                    name: ::std::string::String::new(),
29                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
30                                        32usize,
31                                    ),
32                                    internal_type: ::core::option::Option::Some(
33                                        ::std::borrow::ToOwned::to_owned("bytes32"),
34                                    ),
35                                },
36                            ],
37                            constant: ::core::option::Option::None,
38                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
39                        },
40                    ],
41                ),
42                (
43                    ::std::borrow::ToOwned::to_owned("VERSION"),
44                    ::std::vec![
45                        ::ethers::core::abi::ethabi::Function {
46                            name: ::std::borrow::ToOwned::to_owned("VERSION"),
47                            inputs: ::std::vec![],
48                            outputs: ::std::vec![
49                                ::ethers::core::abi::ethabi::Param {
50                                    name: ::std::string::String::new(),
51                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
52                                    internal_type: ::core::option::Option::Some(
53                                        ::std::borrow::ToOwned::to_owned("string"),
54                                    ),
55                                },
56                            ],
57                            constant: ::core::option::Option::None,
58                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
59                        },
60                    ],
61                ),
62                (
63                    ::std::borrow::ToOwned::to_owned("deregisterNodeBySafe"),
64                    ::std::vec![
65                        ::ethers::core::abi::ethabi::Function {
66                            name: ::std::borrow::ToOwned::to_owned(
67                                "deregisterNodeBySafe",
68                            ),
69                            inputs: ::std::vec![
70                                ::ethers::core::abi::ethabi::Param {
71                                    name: ::std::borrow::ToOwned::to_owned("nodeAddr"),
72                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
73                                    internal_type: ::core::option::Option::Some(
74                                        ::std::borrow::ToOwned::to_owned("address"),
75                                    ),
76                                },
77                            ],
78                            outputs: ::std::vec![],
79                            constant: ::core::option::Option::None,
80                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
81                        },
82                    ],
83                ),
84                (
85                    ::std::borrow::ToOwned::to_owned("domainSeparator"),
86                    ::std::vec![
87                        ::ethers::core::abi::ethabi::Function {
88                            name: ::std::borrow::ToOwned::to_owned("domainSeparator"),
89                            inputs: ::std::vec![],
90                            outputs: ::std::vec![
91                                ::ethers::core::abi::ethabi::Param {
92                                    name: ::std::string::String::new(),
93                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
94                                        32usize,
95                                    ),
96                                    internal_type: ::core::option::Option::Some(
97                                        ::std::borrow::ToOwned::to_owned("bytes32"),
98                                    ),
99                                },
100                            ],
101                            constant: ::core::option::Option::None,
102                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
103                        },
104                    ],
105                ),
106                (
107                    ::std::borrow::ToOwned::to_owned("isNodeSafeRegistered"),
108                    ::std::vec![
109                        ::ethers::core::abi::ethabi::Function {
110                            name: ::std::borrow::ToOwned::to_owned(
111                                "isNodeSafeRegistered",
112                            ),
113                            inputs: ::std::vec![
114                                ::ethers::core::abi::ethabi::Param {
115                                    name: ::std::borrow::ToOwned::to_owned("safeAddress"),
116                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
117                                    internal_type: ::core::option::Option::Some(
118                                        ::std::borrow::ToOwned::to_owned("address"),
119                                    ),
120                                },
121                                ::ethers::core::abi::ethabi::Param {
122                                    name: ::std::borrow::ToOwned::to_owned(
123                                        "nodeChainKeyAddress",
124                                    ),
125                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
126                                    internal_type: ::core::option::Option::Some(
127                                        ::std::borrow::ToOwned::to_owned("address"),
128                                    ),
129                                },
130                            ],
131                            outputs: ::std::vec![
132                                ::ethers::core::abi::ethabi::Param {
133                                    name: ::std::string::String::new(),
134                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
135                                    internal_type: ::core::option::Option::Some(
136                                        ::std::borrow::ToOwned::to_owned("bool"),
137                                    ),
138                                },
139                            ],
140                            constant: ::core::option::Option::None,
141                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
142                        },
143                    ],
144                ),
145                (
146                    ::std::borrow::ToOwned::to_owned("nodeSigNonce"),
147                    ::std::vec![
148                        ::ethers::core::abi::ethabi::Function {
149                            name: ::std::borrow::ToOwned::to_owned("nodeSigNonce"),
150                            inputs: ::std::vec![
151                                ::ethers::core::abi::ethabi::Param {
152                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
153                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
154                                    internal_type: ::core::option::Option::Some(
155                                        ::std::borrow::ToOwned::to_owned("address"),
156                                    ),
157                                },
158                            ],
159                            outputs: ::std::vec![
160                                ::ethers::core::abi::ethabi::Param {
161                                    name: ::std::string::String::new(),
162                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
163                                        256usize,
164                                    ),
165                                    internal_type: ::core::option::Option::Some(
166                                        ::std::borrow::ToOwned::to_owned("uint256"),
167                                    ),
168                                },
169                            ],
170                            constant: ::core::option::Option::None,
171                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
172                        },
173                    ],
174                ),
175                (
176                    ::std::borrow::ToOwned::to_owned("nodeToSafe"),
177                    ::std::vec![
178                        ::ethers::core::abi::ethabi::Function {
179                            name: ::std::borrow::ToOwned::to_owned("nodeToSafe"),
180                            inputs: ::std::vec![
181                                ::ethers::core::abi::ethabi::Param {
182                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
183                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
184                                    internal_type: ::core::option::Option::Some(
185                                        ::std::borrow::ToOwned::to_owned("address"),
186                                    ),
187                                },
188                            ],
189                            outputs: ::std::vec![
190                                ::ethers::core::abi::ethabi::Param {
191                                    name: ::std::string::String::new(),
192                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
193                                    internal_type: ::core::option::Option::Some(
194                                        ::std::borrow::ToOwned::to_owned("address"),
195                                    ),
196                                },
197                            ],
198                            constant: ::core::option::Option::None,
199                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
200                        },
201                    ],
202                ),
203                (
204                    ::std::borrow::ToOwned::to_owned("registerSafeByNode"),
205                    ::std::vec![
206                        ::ethers::core::abi::ethabi::Function {
207                            name: ::std::borrow::ToOwned::to_owned("registerSafeByNode"),
208                            inputs: ::std::vec![
209                                ::ethers::core::abi::ethabi::Param {
210                                    name: ::std::borrow::ToOwned::to_owned("safeAddr"),
211                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
212                                    internal_type: ::core::option::Option::Some(
213                                        ::std::borrow::ToOwned::to_owned("address"),
214                                    ),
215                                },
216                            ],
217                            outputs: ::std::vec![],
218                            constant: ::core::option::Option::None,
219                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
220                        },
221                    ],
222                ),
223                (
224                    ::std::borrow::ToOwned::to_owned("registerSafeWithNodeSig"),
225                    ::std::vec![
226                        ::ethers::core::abi::ethabi::Function {
227                            name: ::std::borrow::ToOwned::to_owned(
228                                "registerSafeWithNodeSig",
229                            ),
230                            inputs: ::std::vec![
231                                ::ethers::core::abi::ethabi::Param {
232                                    name: ::std::borrow::ToOwned::to_owned("safeAddress"),
233                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
234                                    internal_type: ::core::option::Option::Some(
235                                        ::std::borrow::ToOwned::to_owned("address"),
236                                    ),
237                                },
238                                ::ethers::core::abi::ethabi::Param {
239                                    name: ::std::borrow::ToOwned::to_owned(
240                                        "nodeChainKeyAddress",
241                                    ),
242                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
243                                    internal_type: ::core::option::Option::Some(
244                                        ::std::borrow::ToOwned::to_owned("address"),
245                                    ),
246                                },
247                                ::ethers::core::abi::ethabi::Param {
248                                    name: ::std::borrow::ToOwned::to_owned("sig"),
249                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
250                                    internal_type: ::core::option::Option::Some(
251                                        ::std::borrow::ToOwned::to_owned("bytes"),
252                                    ),
253                                },
254                            ],
255                            outputs: ::std::vec![],
256                            constant: ::core::option::Option::None,
257                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
258                        },
259                    ],
260                ),
261                (
262                    ::std::borrow::ToOwned::to_owned("updateDomainSeparator"),
263                    ::std::vec![
264                        ::ethers::core::abi::ethabi::Function {
265                            name: ::std::borrow::ToOwned::to_owned(
266                                "updateDomainSeparator",
267                            ),
268                            inputs: ::std::vec![],
269                            outputs: ::std::vec![],
270                            constant: ::core::option::Option::None,
271                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
272                        },
273                    ],
274                ),
275            ]),
276            events: ::core::convert::From::from([
277                (
278                    ::std::borrow::ToOwned::to_owned("DergisteredNodeSafe"),
279                    ::std::vec![
280                        ::ethers::core::abi::ethabi::Event {
281                            name: ::std::borrow::ToOwned::to_owned(
282                                "DergisteredNodeSafe",
283                            ),
284                            inputs: ::std::vec![
285                                ::ethers::core::abi::ethabi::EventParam {
286                                    name: ::std::borrow::ToOwned::to_owned("safeAddress"),
287                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
288                                    indexed: true,
289                                },
290                                ::ethers::core::abi::ethabi::EventParam {
291                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
292                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
293                                    indexed: true,
294                                },
295                            ],
296                            anonymous: false,
297                        },
298                    ],
299                ),
300                (
301                    ::std::borrow::ToOwned::to_owned("DomainSeparatorUpdated"),
302                    ::std::vec![
303                        ::ethers::core::abi::ethabi::Event {
304                            name: ::std::borrow::ToOwned::to_owned(
305                                "DomainSeparatorUpdated",
306                            ),
307                            inputs: ::std::vec![
308                                ::ethers::core::abi::ethabi::EventParam {
309                                    name: ::std::borrow::ToOwned::to_owned("domainSeparator"),
310                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
311                                        32usize,
312                                    ),
313                                    indexed: true,
314                                },
315                            ],
316                            anonymous: false,
317                        },
318                    ],
319                ),
320                (
321                    ::std::borrow::ToOwned::to_owned("RegisteredNodeSafe"),
322                    ::std::vec![
323                        ::ethers::core::abi::ethabi::Event {
324                            name: ::std::borrow::ToOwned::to_owned("RegisteredNodeSafe"),
325                            inputs: ::std::vec![
326                                ::ethers::core::abi::ethabi::EventParam {
327                                    name: ::std::borrow::ToOwned::to_owned("safeAddress"),
328                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
329                                    indexed: true,
330                                },
331                                ::ethers::core::abi::ethabi::EventParam {
332                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
333                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
334                                    indexed: true,
335                                },
336                            ],
337                            anonymous: false,
338                        },
339                    ],
340                ),
341            ]),
342            errors: ::core::convert::From::from([
343                (
344                    ::std::borrow::ToOwned::to_owned("NodeAddressZero"),
345                    ::std::vec![
346                        ::ethers::core::abi::ethabi::AbiError {
347                            name: ::std::borrow::ToOwned::to_owned("NodeAddressZero"),
348                            inputs: ::std::vec![],
349                        },
350                    ],
351                ),
352                (
353                    ::std::borrow::ToOwned::to_owned("NodeHasSafe"),
354                    ::std::vec![
355                        ::ethers::core::abi::ethabi::AbiError {
356                            name: ::std::borrow::ToOwned::to_owned("NodeHasSafe"),
357                            inputs: ::std::vec![],
358                        },
359                    ],
360                ),
361                (
362                    ::std::borrow::ToOwned::to_owned("NodeIsContract"),
363                    ::std::vec![
364                        ::ethers::core::abi::ethabi::AbiError {
365                            name: ::std::borrow::ToOwned::to_owned("NodeIsContract"),
366                            inputs: ::std::vec![],
367                        },
368                    ],
369                ),
370                (
371                    ::std::borrow::ToOwned::to_owned("NodeNotModuleMember"),
372                    ::std::vec![
373                        ::ethers::core::abi::ethabi::AbiError {
374                            name: ::std::borrow::ToOwned::to_owned(
375                                "NodeNotModuleMember",
376                            ),
377                            inputs: ::std::vec![],
378                        },
379                    ],
380                ),
381                (
382                    ::std::borrow::ToOwned::to_owned("NotValidSafe"),
383                    ::std::vec![
384                        ::ethers::core::abi::ethabi::AbiError {
385                            name: ::std::borrow::ToOwned::to_owned("NotValidSafe"),
386                            inputs: ::std::vec![],
387                        },
388                    ],
389                ),
390                (
391                    ::std::borrow::ToOwned::to_owned("NotValidSignatureFromNode"),
392                    ::std::vec![
393                        ::ethers::core::abi::ethabi::AbiError {
394                            name: ::std::borrow::ToOwned::to_owned(
395                                "NotValidSignatureFromNode",
396                            ),
397                            inputs: ::std::vec![],
398                        },
399                    ],
400                ),
401                (
402                    ::std::borrow::ToOwned::to_owned("SafeAddressZero"),
403                    ::std::vec![
404                        ::ethers::core::abi::ethabi::AbiError {
405                            name: ::std::borrow::ToOwned::to_owned("SafeAddressZero"),
406                            inputs: ::std::vec![],
407                        },
408                    ],
409                ),
410            ]),
411            receive: false,
412            fallback: false,
413        }
414    }
415    ///The parsed JSON ABI of the contract.
416    pub static HOPRNODESAFEREGISTRY_ABI: ::ethers::contract::Lazy<
417        ::ethers::core::abi::Abi,
418    > = ::ethers::contract::Lazy::new(__abi);
419    #[rustfmt::skip]
420    const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\0\x19a\0\x1EV[a\x010V[`@\x80Q\x80\x82\x01\x82R`\x10\x81RoNodeSafeRegistry`\x80\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\x12\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x83\x01R\x7FD\x7F\xBA\xD4\xD4k\xBC\x04Y\x0C\xBAl,\x05\x8Er\x91\x0E\xA4\x03\x98\xCD4\x08Ss\xB9\x8E\xA4\xDA\xA0\xE8\x81\x84\x01R\x7F\x06\xC0\x15\xBD\"\xB4\xC6\x96\x90\x93<\x10X\x87\x8E\xBD\xFE\xF3\x1F\x9A\xAA\xE4\x0B\xBE\x86\xD8\xA0\x9F\xE1\xB2\x97,``\x82\x01RF`\x80\x82\x01R0`\xA0\x80\x83\x01\x91\x90\x91R\x83Q\x80\x83\x03\x90\x91\x01\x81R`\xC0\x90\x91\x01\x90\x92R\x81Q\x91\x01 `\0T\x81\x14a\x01-W`\0\x81\x81U`@Q\x82\x91\x7Fw\x1FR@\xAE_\xD8\xA7d\r?\xB8/\xA7\n\xAB/\xB1\xDB\xF3_.\xF4d\xF8P\x99Fqvd\xC5\x91\xA2[PV[a\x0C\xDD\x80a\x01?`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x9EW`\x005`\xE0\x1C\x80c\x89\xCC\xFE\x89\x11a\0fW\x80c\x89\xCC\xFE\x89\x14a\x01lW\x80c\x91`|L\x14a\x01tW\x80c\xAA\x90\xF2\xA5\x14a\x01\x87W\x80c\xF6\x98\xDA%\x14a\x01\xC0W\x80c\xFF\xA1\xADt\x14a\x01\xC9W`\0\x80\xFD[\x80c7H\n\xBD\x14a\0\xA3W\x80cI\xD2\x15\xE1\x14a\0\xCBW\x80c\x7F\x93Y1\x14a\0\xE0W\x80c\x84\xB0\xDE\xC2\x14a\0\xF3W\x80c\x89\x97\x8C@\x14a\x01(W[`\0\x80\xFD[a\0\xB6a\0\xB16`\x04a\t\xC9V[a\x01\xFAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xDEa\0\xD96`\x04a\n\x02V[a\x02KV[\0[a\0\xDEa\0\xEE6`\x04a\n\x94V[a\x03\xBBV[a\x01\x1A\x7F\xA8\xACz\xED\x12\x8D\x1A-\xA0w?\xEC\xC8\x0Bbe\xD1_~b\xBFD\x01\xEB#\xBDF\xC3\xFC\xF5\xD2\xF8\x81V[`@Q\x90\x81R` \x01a\0\xC2V[a\x01Ta\x0166`\x04a\n\x94V[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x16\x90V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\0\xC2V[a\0\xDEa\x03\xC8V[a\0\xDEa\x01\x826`\x04a\n\x94V[a\x04\xD9V[a\x01\x1Aa\x01\x956`\x04a\n\x94V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01` R`@\x90 T`\x01`\xA0\x1B\x90\x04`\x01`\x01``\x1B\x03\x16\x90V[a\x01\x1A`\0T\x81V[a\x01\xED`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03\x12\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\0\xC2\x91\x90a\n\xB8V[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x81 T\x90\x91\x16a\x02#WP`\0a\x02EV[P`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x81\x16\x90\x83\x16\x14[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 T\x81Q\x7F\xA8\xACz\xED\x12\x8D\x1A-\xA0w?\xEC\xC8\x0Bbe\xD1_~b\xBFD\x01\xEB#\xBDF\xC3\xFC\xF5\xD2\xF8\x81\x85\x01R\x95\x8A\x16\x86\x83\x01R``\x86\x01\x94\x90\x94R`\x01`\x01``\x1B\x03`\x01`\xA0\x1B\x90\x94\x04\x93\x90\x93\x16`\x80\x80\x86\x01\x91\x90\x91R\x83Q\x80\x86\x03\x90\x91\x01\x81R`\xA0\x85\x01\x84R\x80Q\x90\x82\x01 \x82T`\x19`\xF8\x1B`\xC0\x87\x01R`\x01`\xF8\x1B`\xC1\x87\x01R`\xC2\x86\x01R`\xE2\x80\x86\x01\x82\x90R\x84Q\x80\x87\x03\x90\x91\x01\x81Ra\x01\x02\x86\x01\x80\x86R\x81Q\x91\x84\x01\x91\x90\x91 a\x01\"`\x1F\x89\x01\x85\x90\x04\x90\x94\x02\x87\x01\x84\x01\x90\x95R\x86\x81R\x90\x94\x83\x92a\x03Q\x92\x86\x92\x90\x91\x8A\x91\x8A\x91\x82\x91\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x05m\x92PPPV[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a\x03jWa\x03ja\x0B\x06V[\x14\x15\x80a\x03\x89WP\x86`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x03\xA7W`@Qc\xB4\xC9\x1F\xFB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x03\xB1\x88\x88a\x05\xB2V[PPPPPPPPV[a\x03\xC5\x813a\x05\xB2V[PV[`@\x80Q\x80\x82\x01\x82R`\x10\x81RoNodeSafeRegistry`\x80\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\x12\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x83\x01R\x7FD\x7F\xBA\xD4\xD4k\xBC\x04Y\x0C\xBAl,\x05\x8Er\x91\x0E\xA4\x03\x98\xCD4\x08Ss\xB9\x8E\xA4\xDA\xA0\xE8\x81\x84\x01R\x7F\x06\xC0\x15\xBD\"\xB4\xC6\x96\x90\x93<\x10X\x87\x8E\xBD\xFE\xF3\x1F\x9A\xAA\xE4\x0B\xBE\x86\xD8\xA0\x9F\xE1\xB2\x97,``\x82\x01RF`\x80\x82\x01R0`\xA0\x80\x83\x01\x91\x90\x91R\x83Q\x80\x83\x03\x90\x91\x01\x81R`\xC0\x90\x91\x01\x90\x92R\x81Q\x91\x01 `\0T\x81\x14a\x03\xC5W`\0\x81\x81U`@Q\x82\x91\x7Fw\x1FR@\xAE_\xD8\xA7d\r?\xB8/\xA7\n\xAB/\xB1\xDB\xF3_.\xF4d\xF8P\x99Fqvd\xC5\x91\xA2PV[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x163\x14a\x05\x13W`@Qc\x15\xBF\xA1U`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x1D3\x82a\x07\x10V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\x01` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UQ3\x91\x7F\xE87\xF39c\x92\x96\xBE\xC9\xF4\xBC\x98aT\xF5\xFFv\xBB\xBE\xFC1I\xA5\x12\x92\x0E\x13\x11AN=\xA1\x91\xA3PV[`\0\x80\x82Q`A\x03a\x05\xA3W` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa\x05\x97\x87\x82\x85\x85a\x08\xF0V[\x94P\x94PPPPa\x05\xABV[P`\0\x90P`\x02[\x92P\x92\x90PV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x05\xD9W`@Qc\x14\xE7\x92!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x06\0W`@Qc>\x87j\x93`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16;\x15a\x06)W`@Qc\x1F\x82\x9F\x03`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x16\x15a\x06bW`@Qcg\xDC0\x01`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06l\x82\x82a\x07\x10V[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` \x81\x90R`@\x90\x91 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x92\x85\x16\x92\x90\x92\x17\x80\x83Ua\x06\xB9\x91`\x01`\xA0\x1B\x90\x91\x04`\x01`\x01``\x1B\x03\x16\x90a\x0B2V[\x81T`\x01`\x01``\x1B\x03\x91\x90\x91\x16`\x01`\xA0\x1B\x02`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x17\x82U`@Q\x83\x82\x16\x91\x85\x16\x90\x7Fwm\xA4\x0C\xBF,\"5Rf\x1B\xD4\x85\x02\xCE\xB7$\t\xB36+\xB0\xC6m\x89\x89\xBD~ \xE4I}\x90`\0\x90\xA3PPPV[`\0``[`\x01`\x01`\xA0\x1B\x03\x82\x16`\x01\x14a\x08\xD7W`@Qcf\x17\xC2)`\xE1\x1B\x81R`\x01`\x04\x82\x01R`d`$\x82\x01R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\xCC/\x84R\x90`D\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x07\x9A\x91\x90\x81\x01\x90a\x0B\x7FV[\x92P\x90P`\0[\x81Q\x81\x10\x15a\x08\xD1W\x81\x81\x81Q\x81\x10a\x07\xBCWa\x07\xBCa\x0CVV[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16cJ\x1B\xA4\x08`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x01W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08%\x91\x90a\x0ClV[\x80\x15a\x08\xB3WP\x81\x81\x81Q\x81\x10a\x08>Wa\x08>a\x0CVV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qb\xBA\x80\xA9`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x86\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\x01u\x01R\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x8FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xB3\x91\x90a\x0ClV[\x15a\x08\xBFWPPPPPV[\x80a\x08\xC9\x81a\x0C\x8EV[\x91PPa\x07\xA1V[Pa\x07\x15V[`@Qc\x0B\xA5\xD7\xEB`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\t'WP`\0\x90P`\x03a\t\xABV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\t{W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\t\xA4W`\0`\x01\x92P\x92PPa\t\xABV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x03\xC5W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\t\xDCW`\0\x80\xFD[\x825a\t\xE7\x81a\t\xB4V[\x91P` \x83\x015a\t\xF7\x81a\t\xB4V[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\n\x18W`\0\x80\xFD[\x845a\n#\x81a\t\xB4V[\x93P` \x85\x015a\n3\x81a\t\xB4V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\nPW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\ndW`\0\x80\xFD[\x815\x81\x81\x11\x15a\nsW`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\n\x85W`\0\x80\xFD[\x95\x98\x94\x97PP` \x01\x94PPPV[`\0` \x82\x84\x03\x12\x15a\n\xA6W`\0\x80\xFD[\x815a\n\xB1\x81a\t\xB4V[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\n\xE5W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\n\xC9V[P`\0`@\x82\x86\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x92PPP\x92\x91PPV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x01`\x01``\x1B\x03\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x0BRWa\x0BRa\x0B\x1CV[P\x92\x91PPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80Qa\x0Bz\x81a\t\xB4V[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\x92W`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\xAAW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x0B\xBEW`\0\x80\xFD[\x81Q` \x82\x82\x11\x15a\x0B\xD2Wa\x0B\xD2a\x0BYV[\x81`\x05\x1B`@Q`\x1F\x19`?\x83\x01\x16\x81\x01\x81\x81\x10\x86\x82\x11\x17\x15a\x0B\xF7Wa\x0B\xF7a\x0BYV[`@R\x92\x83R\x81\x83\x01\x93P\x84\x81\x01\x82\x01\x92\x89\x84\x11\x15a\x0C\x15W`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a\x0C:Wa\x0C+\x86a\x0BoV[\x85R\x94\x82\x01\x94\x93\x82\x01\x93a\x0C\x1AV[\x96Pa\x0CI\x90P\x87\x82\x01a\x0BoV[\x94PPPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x0C~W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\n\xB1W`\0\x80\xFD[`\0`\x01\x82\x01a\x0C\xA0Wa\x0C\xA0a\x0B\x1CV[P`\x01\x01\x90V\xFE\xA2dipfsX\"\x12 -g\xFA\x1A\xF1\xDD\xAE\x10r\0R\xD5\x7F\x9A]\0\xDFV\xF8?\x13U\xF6![\xCB\n\x83\x87@q\xE2dsolcC\0\x08\x13\x003";
421    /// The bytecode of the contract.
422    pub static HOPRNODESAFEREGISTRY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
423        __BYTECODE,
424    );
425    #[rustfmt::skip]
426    const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0\x9EW`\x005`\xE0\x1C\x80c\x89\xCC\xFE\x89\x11a\0fW\x80c\x89\xCC\xFE\x89\x14a\x01lW\x80c\x91`|L\x14a\x01tW\x80c\xAA\x90\xF2\xA5\x14a\x01\x87W\x80c\xF6\x98\xDA%\x14a\x01\xC0W\x80c\xFF\xA1\xADt\x14a\x01\xC9W`\0\x80\xFD[\x80c7H\n\xBD\x14a\0\xA3W\x80cI\xD2\x15\xE1\x14a\0\xCBW\x80c\x7F\x93Y1\x14a\0\xE0W\x80c\x84\xB0\xDE\xC2\x14a\0\xF3W\x80c\x89\x97\x8C@\x14a\x01(W[`\0\x80\xFD[a\0\xB6a\0\xB16`\x04a\t\xC9V[a\x01\xFAV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xDEa\0\xD96`\x04a\n\x02V[a\x02KV[\0[a\0\xDEa\0\xEE6`\x04a\n\x94V[a\x03\xBBV[a\x01\x1A\x7F\xA8\xACz\xED\x12\x8D\x1A-\xA0w?\xEC\xC8\x0Bbe\xD1_~b\xBFD\x01\xEB#\xBDF\xC3\xFC\xF5\xD2\xF8\x81V[`@Q\x90\x81R` \x01a\0\xC2V[a\x01Ta\x0166`\x04a\n\x94V[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x16\x90V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\0\xC2V[a\0\xDEa\x03\xC8V[a\0\xDEa\x01\x826`\x04a\n\x94V[a\x04\xD9V[a\x01\x1Aa\x01\x956`\x04a\n\x94V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01` R`@\x90 T`\x01`\xA0\x1B\x90\x04`\x01`\x01``\x1B\x03\x16\x90V[a\x01\x1A`\0T\x81V[a\x01\xED`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03\x12\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\0\xC2\x91\x90a\n\xB8V[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x81 T\x90\x91\x16a\x02#WP`\0a\x02EV[P`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x81\x16\x90\x83\x16\x14[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x01` \x90\x81R`@\x80\x83 T\x81Q\x7F\xA8\xACz\xED\x12\x8D\x1A-\xA0w?\xEC\xC8\x0Bbe\xD1_~b\xBFD\x01\xEB#\xBDF\xC3\xFC\xF5\xD2\xF8\x81\x85\x01R\x95\x8A\x16\x86\x83\x01R``\x86\x01\x94\x90\x94R`\x01`\x01``\x1B\x03`\x01`\xA0\x1B\x90\x94\x04\x93\x90\x93\x16`\x80\x80\x86\x01\x91\x90\x91R\x83Q\x80\x86\x03\x90\x91\x01\x81R`\xA0\x85\x01\x84R\x80Q\x90\x82\x01 \x82T`\x19`\xF8\x1B`\xC0\x87\x01R`\x01`\xF8\x1B`\xC1\x87\x01R`\xC2\x86\x01R`\xE2\x80\x86\x01\x82\x90R\x84Q\x80\x87\x03\x90\x91\x01\x81Ra\x01\x02\x86\x01\x80\x86R\x81Q\x91\x84\x01\x91\x90\x91 a\x01\"`\x1F\x89\x01\x85\x90\x04\x90\x94\x02\x87\x01\x84\x01\x90\x95R\x86\x81R\x90\x94\x83\x92a\x03Q\x92\x86\x92\x90\x91\x8A\x91\x8A\x91\x82\x91\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa\x05m\x92PPPV[\x90\x92P\x90P`\0\x81`\x04\x81\x11\x15a\x03jWa\x03ja\x0B\x06V[\x14\x15\x80a\x03\x89WP\x86`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14\x15[\x15a\x03\xA7W`@Qc\xB4\xC9\x1F\xFB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x03\xB1\x88\x88a\x05\xB2V[PPPPPPPPV[a\x03\xC5\x813a\x05\xB2V[PV[`@\x80Q\x80\x82\x01\x82R`\x10\x81RoNodeSafeRegistry`\x80\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\x12\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x83\x01R\x7FD\x7F\xBA\xD4\xD4k\xBC\x04Y\x0C\xBAl,\x05\x8Er\x91\x0E\xA4\x03\x98\xCD4\x08Ss\xB9\x8E\xA4\xDA\xA0\xE8\x81\x84\x01R\x7F\x06\xC0\x15\xBD\"\xB4\xC6\x96\x90\x93<\x10X\x87\x8E\xBD\xFE\xF3\x1F\x9A\xAA\xE4\x0B\xBE\x86\xD8\xA0\x9F\xE1\xB2\x97,``\x82\x01RF`\x80\x82\x01R0`\xA0\x80\x83\x01\x91\x90\x91R\x83Q\x80\x83\x03\x90\x91\x01\x81R`\xC0\x90\x91\x01\x90\x92R\x81Q\x91\x01 `\0T\x81\x14a\x03\xC5W`\0\x81\x81U`@Q\x82\x91\x7Fw\x1FR@\xAE_\xD8\xA7d\r?\xB8/\xA7\n\xAB/\xB1\xDB\xF3_.\xF4d\xF8P\x99Fqvd\xC5\x91\xA2PV[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x163\x14a\x05\x13W`@Qc\x15\xBF\xA1U`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\x1D3\x82a\x07\x10V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\x01` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UQ3\x91\x7F\xE87\xF39c\x92\x96\xBE\xC9\xF4\xBC\x98aT\xF5\xFFv\xBB\xBE\xFC1I\xA5\x12\x92\x0E\x13\x11AN=\xA1\x91\xA3PV[`\0\x80\x82Q`A\x03a\x05\xA3W` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1Aa\x05\x97\x87\x82\x85\x85a\x08\xF0V[\x94P\x94PPPPa\x05\xABV[P`\0\x90P`\x02[\x92P\x92\x90PV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x05\xD9W`@Qc\x14\xE7\x92!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x06\0W`@Qc>\x87j\x93`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16;\x15a\x06)W`@Qc\x1F\x82\x9F\x03`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` R`@\x90 T\x16\x15a\x06bW`@Qcg\xDC0\x01`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x06l\x82\x82a\x07\x10V[`\x01`\x01`\xA0\x1B\x03\x81\x81\x16`\0\x90\x81R`\x01` \x81\x90R`@\x90\x91 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x92\x85\x16\x92\x90\x92\x17\x80\x83Ua\x06\xB9\x91`\x01`\xA0\x1B\x90\x91\x04`\x01`\x01``\x1B\x03\x16\x90a\x0B2V[\x81T`\x01`\x01``\x1B\x03\x91\x90\x91\x16`\x01`\xA0\x1B\x02`\x01`\x01`\xA0\x1B\x03\x91\x82\x16\x17\x82U`@Q\x83\x82\x16\x91\x85\x16\x90\x7Fwm\xA4\x0C\xBF,\"5Rf\x1B\xD4\x85\x02\xCE\xB7$\t\xB36+\xB0\xC6m\x89\x89\xBD~ \xE4I}\x90`\0\x90\xA3PPPV[`\0``[`\x01`\x01`\xA0\x1B\x03\x82\x16`\x01\x14a\x08\xD7W`@Qcf\x17\xC2)`\xE1\x1B\x81R`\x01`\x04\x82\x01R`d`$\x82\x01R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\xCC/\x84R\x90`D\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07rW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x07\x9A\x91\x90\x81\x01\x90a\x0B\x7FV[\x92P\x90P`\0[\x81Q\x81\x10\x15a\x08\xD1W\x81\x81\x81Q\x81\x10a\x07\xBCWa\x07\xBCa\x0CVV[` \x02` \x01\x01Q`\x01`\x01`\xA0\x1B\x03\x16cJ\x1B\xA4\x08`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x01W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08%\x91\x90a\x0ClV[\x80\x15a\x08\xB3WP\x81\x81\x81Q\x81\x10a\x08>Wa\x08>a\x0CVV[` \x90\x81\x02\x91\x90\x91\x01\x01Q`@Qb\xBA\x80\xA9`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x86\x81\x16`\x04\x83\x01R\x90\x91\x16\x90c\x01u\x01R\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x8FW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xB3\x91\x90a\x0ClV[\x15a\x08\xBFWPPPPPV[\x80a\x08\xC9\x81a\x0C\x8EV[\x91PPa\x07\xA1V[Pa\x07\x15V[`@Qc\x0B\xA5\xD7\xEB`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\t'WP`\0\x90P`\x03a\t\xABV[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\t{W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\t\xA4W`\0`\x01\x92P\x92PPa\t\xABV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x03\xC5W`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a\t\xDCW`\0\x80\xFD[\x825a\t\xE7\x81a\t\xB4V[\x91P` \x83\x015a\t\xF7\x81a\t\xB4V[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0\x80``\x85\x87\x03\x12\x15a\n\x18W`\0\x80\xFD[\x845a\n#\x81a\t\xB4V[\x93P` \x85\x015a\n3\x81a\t\xB4V[\x92P`@\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\nPW`\0\x80\xFD[\x81\x87\x01\x91P\x87`\x1F\x83\x01\x12a\ndW`\0\x80\xFD[\x815\x81\x81\x11\x15a\nsW`\0\x80\xFD[\x88` \x82\x85\x01\x01\x11\x15a\n\x85W`\0\x80\xFD[\x95\x98\x94\x97PP` \x01\x94PPPV[`\0` \x82\x84\x03\x12\x15a\n\xA6W`\0\x80\xFD[\x815a\n\xB1\x81a\t\xB4V[\x93\x92PPPV[`\0` \x80\x83R\x83Q\x80\x82\x85\x01R`\0[\x81\x81\x10\x15a\n\xE5W\x85\x81\x01\x83\x01Q\x85\x82\x01`@\x01R\x82\x01a\n\xC9V[P`\0`@\x82\x86\x01\x01R`@`\x1F\x19`\x1F\x83\x01\x16\x85\x01\x01\x92PPP\x92\x91PPV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\x01`\x01``\x1B\x03\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x0BRWa\x0BRa\x0B\x1CV[P\x92\x91PPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80Qa\x0Bz\x81a\t\xB4V[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x0B\x92W`\0\x80\xFD[\x82Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x0B\xAAW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x0B\xBEW`\0\x80\xFD[\x81Q` \x82\x82\x11\x15a\x0B\xD2Wa\x0B\xD2a\x0BYV[\x81`\x05\x1B`@Q`\x1F\x19`?\x83\x01\x16\x81\x01\x81\x81\x10\x86\x82\x11\x17\x15a\x0B\xF7Wa\x0B\xF7a\x0BYV[`@R\x92\x83R\x81\x83\x01\x93P\x84\x81\x01\x82\x01\x92\x89\x84\x11\x15a\x0C\x15W`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a\x0C:Wa\x0C+\x86a\x0BoV[\x85R\x94\x82\x01\x94\x93\x82\x01\x93a\x0C\x1AV[\x96Pa\x0CI\x90P\x87\x82\x01a\x0BoV[\x94PPPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a\x0C~W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\n\xB1W`\0\x80\xFD[`\0`\x01\x82\x01a\x0C\xA0Wa\x0C\xA0a\x0B\x1CV[P`\x01\x01\x90V\xFE\xA2dipfsX\"\x12 -g\xFA\x1A\xF1\xDD\xAE\x10r\0R\xD5\x7F\x9A]\0\xDFV\xF8?\x13U\xF6![\xCB\n\x83\x87@q\xE2dsolcC\0\x08\x13\x003";
427    /// The deployed bytecode of the contract.
428    pub static HOPRNODESAFEREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
429        __DEPLOYED_BYTECODE,
430    );
431    pub struct HoprNodeSafeRegistry<M>(::ethers::contract::Contract<M>);
432    impl<M> ::core::clone::Clone for HoprNodeSafeRegistry<M> {
433        fn clone(&self) -> Self {
434            Self(::core::clone::Clone::clone(&self.0))
435        }
436    }
437    impl<M> ::core::ops::Deref for HoprNodeSafeRegistry<M> {
438        type Target = ::ethers::contract::Contract<M>;
439        fn deref(&self) -> &Self::Target {
440            &self.0
441        }
442    }
443    impl<M> ::core::ops::DerefMut for HoprNodeSafeRegistry<M> {
444        fn deref_mut(&mut self) -> &mut Self::Target {
445            &mut self.0
446        }
447    }
448    impl<M> ::core::fmt::Debug for HoprNodeSafeRegistry<M> {
449        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
450            f.debug_tuple(::core::stringify!(HoprNodeSafeRegistry))
451                .field(&self.address())
452                .finish()
453        }
454    }
455    impl<M: ::ethers::providers::Middleware> HoprNodeSafeRegistry<M> {
456        /// Creates a new contract instance with the specified `ethers` client at
457        /// `address`. The contract derefs to a `ethers::Contract` object.
458        pub fn new<T: Into<::ethers::core::types::Address>>(
459            address: T,
460            client: ::std::sync::Arc<M>,
461        ) -> Self {
462            Self(
463                ::ethers::contract::Contract::new(
464                    address.into(),
465                    HOPRNODESAFEREGISTRY_ABI.clone(),
466                    client,
467                ),
468            )
469        }
470        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
471        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
472        ///
473        /// Notes:
474        /// - If there are no constructor arguments, you should pass `()` as the argument.
475        /// - The default poll duration is 7 seconds.
476        /// - The default number of confirmations is 1 block.
477        ///
478        ///
479        /// # Example
480        ///
481        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
482        ///
483        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
484        ///
485        /// ```ignore
486        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
487        ///     abigen!(Greeter, "../greeter.json");
488        ///
489        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
490        ///    let msg = greeter_contract.greet().call().await.unwrap();
491        /// # }
492        /// ```
493        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
494            client: ::std::sync::Arc<M>,
495            constructor_args: T,
496        ) -> ::core::result::Result<
497            ::ethers::contract::builders::ContractDeployer<M, Self>,
498            ::ethers::contract::ContractError<M>,
499        > {
500            let factory = ::ethers::contract::ContractFactory::new(
501                HOPRNODESAFEREGISTRY_ABI.clone(),
502                HOPRNODESAFEREGISTRY_BYTECODE.clone().into(),
503                client,
504            );
505            let deployer = factory.deploy(constructor_args)?;
506            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
507            Ok(deployer)
508        }
509        ///Calls the contract's `NODE_SAFE_TYPEHASH` (0x84b0dec2) function
510        pub fn node_safe_typehash(
511            &self,
512        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
513            self.0
514                .method_hash([132, 176, 222, 194], ())
515                .expect("method not found (this should never happen)")
516        }
517        ///Calls the contract's `VERSION` (0xffa1ad74) function
518        pub fn version(
519            &self,
520        ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
521            self.0
522                .method_hash([255, 161, 173, 116], ())
523                .expect("method not found (this should never happen)")
524        }
525        ///Calls the contract's `deregisterNodeBySafe` (0x91607c4c) function
526        pub fn deregister_node_by_safe(
527            &self,
528            node_addr: ::ethers::core::types::Address,
529        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
530            self.0
531                .method_hash([145, 96, 124, 76], node_addr)
532                .expect("method not found (this should never happen)")
533        }
534        ///Calls the contract's `domainSeparator` (0xf698da25) function
535        pub fn domain_separator(
536            &self,
537        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
538            self.0
539                .method_hash([246, 152, 218, 37], ())
540                .expect("method not found (this should never happen)")
541        }
542        ///Calls the contract's `isNodeSafeRegistered` (0x37480abd) function
543        pub fn is_node_safe_registered(
544            &self,
545            safe_address: ::ethers::core::types::Address,
546            node_chain_key_address: ::ethers::core::types::Address,
547        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
548            self.0
549                .method_hash([55, 72, 10, 189], (safe_address, node_chain_key_address))
550                .expect("method not found (this should never happen)")
551        }
552        ///Calls the contract's `nodeSigNonce` (0xaa90f2a5) function
553        pub fn node_sig_nonce(
554            &self,
555            node_address: ::ethers::core::types::Address,
556        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
557            self.0
558                .method_hash([170, 144, 242, 165], node_address)
559                .expect("method not found (this should never happen)")
560        }
561        ///Calls the contract's `nodeToSafe` (0x89978c40) function
562        pub fn node_to_safe(
563            &self,
564            node_address: ::ethers::core::types::Address,
565        ) -> ::ethers::contract::builders::ContractCall<
566            M,
567            ::ethers::core::types::Address,
568        > {
569            self.0
570                .method_hash([137, 151, 140, 64], node_address)
571                .expect("method not found (this should never happen)")
572        }
573        ///Calls the contract's `registerSafeByNode` (0x7f935931) function
574        pub fn register_safe_by_node(
575            &self,
576            safe_addr: ::ethers::core::types::Address,
577        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
578            self.0
579                .method_hash([127, 147, 89, 49], safe_addr)
580                .expect("method not found (this should never happen)")
581        }
582        ///Calls the contract's `registerSafeWithNodeSig` (0x49d215e1) function
583        pub fn register_safe_with_node_sig(
584            &self,
585            safe_address: ::ethers::core::types::Address,
586            node_chain_key_address: ::ethers::core::types::Address,
587            sig: ::ethers::core::types::Bytes,
588        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
589            self.0
590                .method_hash(
591                    [73, 210, 21, 225],
592                    (safe_address, node_chain_key_address, sig),
593                )
594                .expect("method not found (this should never happen)")
595        }
596        ///Calls the contract's `updateDomainSeparator` (0x89ccfe89) function
597        pub fn update_domain_separator(
598            &self,
599        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
600            self.0
601                .method_hash([137, 204, 254, 137], ())
602                .expect("method not found (this should never happen)")
603        }
604        ///Gets the contract's `DergisteredNodeSafe` event
605        pub fn dergistered_node_safe_filter(
606            &self,
607        ) -> ::ethers::contract::builders::Event<
608            ::std::sync::Arc<M>,
609            M,
610            DergisteredNodeSafeFilter,
611        > {
612            self.0.event()
613        }
614        ///Gets the contract's `DomainSeparatorUpdated` event
615        pub fn domain_separator_updated_filter(
616            &self,
617        ) -> ::ethers::contract::builders::Event<
618            ::std::sync::Arc<M>,
619            M,
620            DomainSeparatorUpdatedFilter,
621        > {
622            self.0.event()
623        }
624        ///Gets the contract's `RegisteredNodeSafe` event
625        pub fn registered_node_safe_filter(
626            &self,
627        ) -> ::ethers::contract::builders::Event<
628            ::std::sync::Arc<M>,
629            M,
630            RegisteredNodeSafeFilter,
631        > {
632            self.0.event()
633        }
634        /// Returns an `Event` builder for all the events of this contract.
635        pub fn events(
636            &self,
637        ) -> ::ethers::contract::builders::Event<
638            ::std::sync::Arc<M>,
639            M,
640            HoprNodeSafeRegistryEvents,
641        > {
642            self.0.event_with_filter(::core::default::Default::default())
643        }
644    }
645    impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
646    for HoprNodeSafeRegistry<M> {
647        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
648            Self::new(contract.address(), contract.client())
649        }
650    }
651    ///Custom Error type `NodeAddressZero` with signature `NodeAddressZero()` and selector `0x7d0ed526`
652    #[derive(
653        Clone,
654        ::ethers::contract::EthError,
655        ::ethers::contract::EthDisplay,
656        serde::Serialize,
657        serde::Deserialize,
658        Default,
659        Debug,
660        PartialEq,
661        Eq,
662        Hash
663    )]
664    #[etherror(name = "NodeAddressZero", abi = "NodeAddressZero()")]
665    pub struct NodeAddressZero;
666    ///Custom Error type `NodeHasSafe` with signature `NodeHasSafe()` and selector `0x67dc3001`
667    #[derive(
668        Clone,
669        ::ethers::contract::EthError,
670        ::ethers::contract::EthDisplay,
671        serde::Serialize,
672        serde::Deserialize,
673        Default,
674        Debug,
675        PartialEq,
676        Eq,
677        Hash
678    )]
679    #[etherror(name = "NodeHasSafe", abi = "NodeHasSafe()")]
680    pub struct NodeHasSafe;
681    ///Custom Error type `NodeIsContract` with signature `NodeIsContract()` and selector `0x7e0a7c0c`
682    #[derive(
683        Clone,
684        ::ethers::contract::EthError,
685        ::ethers::contract::EthDisplay,
686        serde::Serialize,
687        serde::Deserialize,
688        Default,
689        Debug,
690        PartialEq,
691        Eq,
692        Hash
693    )]
694    #[etherror(name = "NodeIsContract", abi = "NodeIsContract()")]
695    pub struct NodeIsContract;
696    ///Custom Error type `NodeNotModuleMember` with signature `NodeNotModuleMember()` and selector `0xba5d7eb0`
697    #[derive(
698        Clone,
699        ::ethers::contract::EthError,
700        ::ethers::contract::EthDisplay,
701        serde::Serialize,
702        serde::Deserialize,
703        Default,
704        Debug,
705        PartialEq,
706        Eq,
707        Hash
708    )]
709    #[etherror(name = "NodeNotModuleMember", abi = "NodeNotModuleMember()")]
710    pub struct NodeNotModuleMember;
711    ///Custom Error type `NotValidSafe` with signature `NotValidSafe()` and selector `0x56fe8554`
712    #[derive(
713        Clone,
714        ::ethers::contract::EthError,
715        ::ethers::contract::EthDisplay,
716        serde::Serialize,
717        serde::Deserialize,
718        Default,
719        Debug,
720        PartialEq,
721        Eq,
722        Hash
723    )]
724    #[etherror(name = "NotValidSafe", abi = "NotValidSafe()")]
725    pub struct NotValidSafe;
726    ///Custom Error type `NotValidSignatureFromNode` with signature `NotValidSignatureFromNode()` and selector `0xb4c91ffb`
727    #[derive(
728        Clone,
729        ::ethers::contract::EthError,
730        ::ethers::contract::EthDisplay,
731        serde::Serialize,
732        serde::Deserialize,
733        Default,
734        Debug,
735        PartialEq,
736        Eq,
737        Hash
738    )]
739    #[etherror(name = "NotValidSignatureFromNode", abi = "NotValidSignatureFromNode()")]
740    pub struct NotValidSignatureFromNode;
741    ///Custom Error type `SafeAddressZero` with signature `SafeAddressZero()` and selector `0x14e79221`
742    #[derive(
743        Clone,
744        ::ethers::contract::EthError,
745        ::ethers::contract::EthDisplay,
746        serde::Serialize,
747        serde::Deserialize,
748        Default,
749        Debug,
750        PartialEq,
751        Eq,
752        Hash
753    )]
754    #[etherror(name = "SafeAddressZero", abi = "SafeAddressZero()")]
755    pub struct SafeAddressZero;
756    ///Container type for all of the contract's custom errors
757    #[derive(
758        Clone,
759        ::ethers::contract::EthAbiType,
760        serde::Serialize,
761        serde::Deserialize,
762        Debug,
763        PartialEq,
764        Eq,
765        Hash
766    )]
767    pub enum HoprNodeSafeRegistryErrors {
768        NodeAddressZero(NodeAddressZero),
769        NodeHasSafe(NodeHasSafe),
770        NodeIsContract(NodeIsContract),
771        NodeNotModuleMember(NodeNotModuleMember),
772        NotValidSafe(NotValidSafe),
773        NotValidSignatureFromNode(NotValidSignatureFromNode),
774        SafeAddressZero(SafeAddressZero),
775        /// The standard solidity revert string, with selector
776        /// Error(string) -- 0x08c379a0
777        RevertString(::std::string::String),
778    }
779    impl ::ethers::core::abi::AbiDecode for HoprNodeSafeRegistryErrors {
780        fn decode(
781            data: impl AsRef<[u8]>,
782        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
783            let data = data.as_ref();
784            if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(
785                data,
786            ) {
787                return Ok(Self::RevertString(decoded));
788            }
789            if let Ok(decoded) = <NodeAddressZero as ::ethers::core::abi::AbiDecode>::decode(
790                data,
791            ) {
792                return Ok(Self::NodeAddressZero(decoded));
793            }
794            if let Ok(decoded) = <NodeHasSafe as ::ethers::core::abi::AbiDecode>::decode(
795                data,
796            ) {
797                return Ok(Self::NodeHasSafe(decoded));
798            }
799            if let Ok(decoded) = <NodeIsContract as ::ethers::core::abi::AbiDecode>::decode(
800                data,
801            ) {
802                return Ok(Self::NodeIsContract(decoded));
803            }
804            if let Ok(decoded) = <NodeNotModuleMember as ::ethers::core::abi::AbiDecode>::decode(
805                data,
806            ) {
807                return Ok(Self::NodeNotModuleMember(decoded));
808            }
809            if let Ok(decoded) = <NotValidSafe as ::ethers::core::abi::AbiDecode>::decode(
810                data,
811            ) {
812                return Ok(Self::NotValidSafe(decoded));
813            }
814            if let Ok(decoded) = <NotValidSignatureFromNode as ::ethers::core::abi::AbiDecode>::decode(
815                data,
816            ) {
817                return Ok(Self::NotValidSignatureFromNode(decoded));
818            }
819            if let Ok(decoded) = <SafeAddressZero as ::ethers::core::abi::AbiDecode>::decode(
820                data,
821            ) {
822                return Ok(Self::SafeAddressZero(decoded));
823            }
824            Err(::ethers::core::abi::Error::InvalidData.into())
825        }
826    }
827    impl ::ethers::core::abi::AbiEncode for HoprNodeSafeRegistryErrors {
828        fn encode(self) -> ::std::vec::Vec<u8> {
829            match self {
830                Self::NodeAddressZero(element) => {
831                    ::ethers::core::abi::AbiEncode::encode(element)
832                }
833                Self::NodeHasSafe(element) => {
834                    ::ethers::core::abi::AbiEncode::encode(element)
835                }
836                Self::NodeIsContract(element) => {
837                    ::ethers::core::abi::AbiEncode::encode(element)
838                }
839                Self::NodeNotModuleMember(element) => {
840                    ::ethers::core::abi::AbiEncode::encode(element)
841                }
842                Self::NotValidSafe(element) => {
843                    ::ethers::core::abi::AbiEncode::encode(element)
844                }
845                Self::NotValidSignatureFromNode(element) => {
846                    ::ethers::core::abi::AbiEncode::encode(element)
847                }
848                Self::SafeAddressZero(element) => {
849                    ::ethers::core::abi::AbiEncode::encode(element)
850                }
851                Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s),
852            }
853        }
854    }
855    impl ::ethers::contract::ContractRevert for HoprNodeSafeRegistryErrors {
856        fn valid_selector(selector: [u8; 4]) -> bool {
857            match selector {
858                [0x08, 0xc3, 0x79, 0xa0] => true,
859                _ if selector
860                    == <NodeAddressZero as ::ethers::contract::EthError>::selector() => {
861                    true
862                }
863                _ if selector
864                    == <NodeHasSafe as ::ethers::contract::EthError>::selector() => true,
865                _ if selector
866                    == <NodeIsContract as ::ethers::contract::EthError>::selector() => {
867                    true
868                }
869                _ if selector
870                    == <NodeNotModuleMember as ::ethers::contract::EthError>::selector() => {
871                    true
872                }
873                _ if selector
874                    == <NotValidSafe as ::ethers::contract::EthError>::selector() => true,
875                _ if selector
876                    == <NotValidSignatureFromNode as ::ethers::contract::EthError>::selector() => {
877                    true
878                }
879                _ if selector
880                    == <SafeAddressZero as ::ethers::contract::EthError>::selector() => {
881                    true
882                }
883                _ => false,
884            }
885        }
886    }
887    impl ::core::fmt::Display for HoprNodeSafeRegistryErrors {
888        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
889            match self {
890                Self::NodeAddressZero(element) => ::core::fmt::Display::fmt(element, f),
891                Self::NodeHasSafe(element) => ::core::fmt::Display::fmt(element, f),
892                Self::NodeIsContract(element) => ::core::fmt::Display::fmt(element, f),
893                Self::NodeNotModuleMember(element) => {
894                    ::core::fmt::Display::fmt(element, f)
895                }
896                Self::NotValidSafe(element) => ::core::fmt::Display::fmt(element, f),
897                Self::NotValidSignatureFromNode(element) => {
898                    ::core::fmt::Display::fmt(element, f)
899                }
900                Self::SafeAddressZero(element) => ::core::fmt::Display::fmt(element, f),
901                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
902            }
903        }
904    }
905    impl ::core::convert::From<::std::string::String> for HoprNodeSafeRegistryErrors {
906        fn from(value: String) -> Self {
907            Self::RevertString(value)
908        }
909    }
910    impl ::core::convert::From<NodeAddressZero> for HoprNodeSafeRegistryErrors {
911        fn from(value: NodeAddressZero) -> Self {
912            Self::NodeAddressZero(value)
913        }
914    }
915    impl ::core::convert::From<NodeHasSafe> for HoprNodeSafeRegistryErrors {
916        fn from(value: NodeHasSafe) -> Self {
917            Self::NodeHasSafe(value)
918        }
919    }
920    impl ::core::convert::From<NodeIsContract> for HoprNodeSafeRegistryErrors {
921        fn from(value: NodeIsContract) -> Self {
922            Self::NodeIsContract(value)
923        }
924    }
925    impl ::core::convert::From<NodeNotModuleMember> for HoprNodeSafeRegistryErrors {
926        fn from(value: NodeNotModuleMember) -> Self {
927            Self::NodeNotModuleMember(value)
928        }
929    }
930    impl ::core::convert::From<NotValidSafe> for HoprNodeSafeRegistryErrors {
931        fn from(value: NotValidSafe) -> Self {
932            Self::NotValidSafe(value)
933        }
934    }
935    impl ::core::convert::From<NotValidSignatureFromNode>
936    for HoprNodeSafeRegistryErrors {
937        fn from(value: NotValidSignatureFromNode) -> Self {
938            Self::NotValidSignatureFromNode(value)
939        }
940    }
941    impl ::core::convert::From<SafeAddressZero> for HoprNodeSafeRegistryErrors {
942        fn from(value: SafeAddressZero) -> Self {
943            Self::SafeAddressZero(value)
944        }
945    }
946    #[derive(
947        Clone,
948        ::ethers::contract::EthEvent,
949        ::ethers::contract::EthDisplay,
950        serde::Serialize,
951        serde::Deserialize,
952        Default,
953        Debug,
954        PartialEq,
955        Eq,
956        Hash
957    )]
958    #[ethevent(
959        name = "DergisteredNodeSafe",
960        abi = "DergisteredNodeSafe(address,address)"
961    )]
962    pub struct DergisteredNodeSafeFilter {
963        #[ethevent(indexed)]
964        pub safe_address: ::ethers::core::types::Address,
965        #[ethevent(indexed)]
966        pub node_address: ::ethers::core::types::Address,
967    }
968    #[derive(
969        Clone,
970        ::ethers::contract::EthEvent,
971        ::ethers::contract::EthDisplay,
972        serde::Serialize,
973        serde::Deserialize,
974        Default,
975        Debug,
976        PartialEq,
977        Eq,
978        Hash
979    )]
980    #[ethevent(name = "DomainSeparatorUpdated", abi = "DomainSeparatorUpdated(bytes32)")]
981    pub struct DomainSeparatorUpdatedFilter {
982        #[ethevent(indexed)]
983        pub domain_separator: [u8; 32],
984    }
985    #[derive(
986        Clone,
987        ::ethers::contract::EthEvent,
988        ::ethers::contract::EthDisplay,
989        serde::Serialize,
990        serde::Deserialize,
991        Default,
992        Debug,
993        PartialEq,
994        Eq,
995        Hash
996    )]
997    #[ethevent(name = "RegisteredNodeSafe", abi = "RegisteredNodeSafe(address,address)")]
998    pub struct RegisteredNodeSafeFilter {
999        #[ethevent(indexed)]
1000        pub safe_address: ::ethers::core::types::Address,
1001        #[ethevent(indexed)]
1002        pub node_address: ::ethers::core::types::Address,
1003    }
1004    ///Container type for all of the contract's events
1005    #[derive(
1006        Clone,
1007        ::ethers::contract::EthAbiType,
1008        serde::Serialize,
1009        serde::Deserialize,
1010        Debug,
1011        PartialEq,
1012        Eq,
1013        Hash
1014    )]
1015    pub enum HoprNodeSafeRegistryEvents {
1016        DergisteredNodeSafeFilter(DergisteredNodeSafeFilter),
1017        DomainSeparatorUpdatedFilter(DomainSeparatorUpdatedFilter),
1018        RegisteredNodeSafeFilter(RegisteredNodeSafeFilter),
1019    }
1020    impl ::ethers::contract::EthLogDecode for HoprNodeSafeRegistryEvents {
1021        fn decode_log(
1022            log: &::ethers::core::abi::RawLog,
1023        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
1024            if let Ok(decoded) = DergisteredNodeSafeFilter::decode_log(log) {
1025                return Ok(
1026                    HoprNodeSafeRegistryEvents::DergisteredNodeSafeFilter(decoded),
1027                );
1028            }
1029            if let Ok(decoded) = DomainSeparatorUpdatedFilter::decode_log(log) {
1030                return Ok(
1031                    HoprNodeSafeRegistryEvents::DomainSeparatorUpdatedFilter(decoded),
1032                );
1033            }
1034            if let Ok(decoded) = RegisteredNodeSafeFilter::decode_log(log) {
1035                return Ok(HoprNodeSafeRegistryEvents::RegisteredNodeSafeFilter(decoded));
1036            }
1037            Err(::ethers::core::abi::Error::InvalidData)
1038        }
1039    }
1040    impl ::core::fmt::Display for HoprNodeSafeRegistryEvents {
1041        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1042            match self {
1043                Self::DergisteredNodeSafeFilter(element) => {
1044                    ::core::fmt::Display::fmt(element, f)
1045                }
1046                Self::DomainSeparatorUpdatedFilter(element) => {
1047                    ::core::fmt::Display::fmt(element, f)
1048                }
1049                Self::RegisteredNodeSafeFilter(element) => {
1050                    ::core::fmt::Display::fmt(element, f)
1051                }
1052            }
1053        }
1054    }
1055    impl ::core::convert::From<DergisteredNodeSafeFilter>
1056    for HoprNodeSafeRegistryEvents {
1057        fn from(value: DergisteredNodeSafeFilter) -> Self {
1058            Self::DergisteredNodeSafeFilter(value)
1059        }
1060    }
1061    impl ::core::convert::From<DomainSeparatorUpdatedFilter>
1062    for HoprNodeSafeRegistryEvents {
1063        fn from(value: DomainSeparatorUpdatedFilter) -> Self {
1064            Self::DomainSeparatorUpdatedFilter(value)
1065        }
1066    }
1067    impl ::core::convert::From<RegisteredNodeSafeFilter> for HoprNodeSafeRegistryEvents {
1068        fn from(value: RegisteredNodeSafeFilter) -> Self {
1069            Self::RegisteredNodeSafeFilter(value)
1070        }
1071    }
1072    ///Container type for all input parameters for the `NODE_SAFE_TYPEHASH` function with signature `NODE_SAFE_TYPEHASH()` and selector `0x84b0dec2`
1073    #[derive(
1074        Clone,
1075        ::ethers::contract::EthCall,
1076        ::ethers::contract::EthDisplay,
1077        serde::Serialize,
1078        serde::Deserialize,
1079        Default,
1080        Debug,
1081        PartialEq,
1082        Eq,
1083        Hash
1084    )]
1085    #[ethcall(name = "NODE_SAFE_TYPEHASH", abi = "NODE_SAFE_TYPEHASH()")]
1086    pub struct NodeSafeTypehashCall;
1087    ///Container type for all input parameters for the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74`
1088    #[derive(
1089        Clone,
1090        ::ethers::contract::EthCall,
1091        ::ethers::contract::EthDisplay,
1092        serde::Serialize,
1093        serde::Deserialize,
1094        Default,
1095        Debug,
1096        PartialEq,
1097        Eq,
1098        Hash
1099    )]
1100    #[ethcall(name = "VERSION", abi = "VERSION()")]
1101    pub struct VersionCall;
1102    ///Container type for all input parameters for the `deregisterNodeBySafe` function with signature `deregisterNodeBySafe(address)` and selector `0x91607c4c`
1103    #[derive(
1104        Clone,
1105        ::ethers::contract::EthCall,
1106        ::ethers::contract::EthDisplay,
1107        serde::Serialize,
1108        serde::Deserialize,
1109        Default,
1110        Debug,
1111        PartialEq,
1112        Eq,
1113        Hash
1114    )]
1115    #[ethcall(name = "deregisterNodeBySafe", abi = "deregisterNodeBySafe(address)")]
1116    pub struct DeregisterNodeBySafeCall {
1117        pub node_addr: ::ethers::core::types::Address,
1118    }
1119    ///Container type for all input parameters for the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25`
1120    #[derive(
1121        Clone,
1122        ::ethers::contract::EthCall,
1123        ::ethers::contract::EthDisplay,
1124        serde::Serialize,
1125        serde::Deserialize,
1126        Default,
1127        Debug,
1128        PartialEq,
1129        Eq,
1130        Hash
1131    )]
1132    #[ethcall(name = "domainSeparator", abi = "domainSeparator()")]
1133    pub struct DomainSeparatorCall;
1134    ///Container type for all input parameters for the `isNodeSafeRegistered` function with signature `isNodeSafeRegistered(address,address)` and selector `0x37480abd`
1135    #[derive(
1136        Clone,
1137        ::ethers::contract::EthCall,
1138        ::ethers::contract::EthDisplay,
1139        serde::Serialize,
1140        serde::Deserialize,
1141        Default,
1142        Debug,
1143        PartialEq,
1144        Eq,
1145        Hash
1146    )]
1147    #[ethcall(
1148        name = "isNodeSafeRegistered",
1149        abi = "isNodeSafeRegistered(address,address)"
1150    )]
1151    pub struct IsNodeSafeRegisteredCall {
1152        pub safe_address: ::ethers::core::types::Address,
1153        pub node_chain_key_address: ::ethers::core::types::Address,
1154    }
1155    ///Container type for all input parameters for the `nodeSigNonce` function with signature `nodeSigNonce(address)` and selector `0xaa90f2a5`
1156    #[derive(
1157        Clone,
1158        ::ethers::contract::EthCall,
1159        ::ethers::contract::EthDisplay,
1160        serde::Serialize,
1161        serde::Deserialize,
1162        Default,
1163        Debug,
1164        PartialEq,
1165        Eq,
1166        Hash
1167    )]
1168    #[ethcall(name = "nodeSigNonce", abi = "nodeSigNonce(address)")]
1169    pub struct NodeSigNonceCall {
1170        pub node_address: ::ethers::core::types::Address,
1171    }
1172    ///Container type for all input parameters for the `nodeToSafe` function with signature `nodeToSafe(address)` and selector `0x89978c40`
1173    #[derive(
1174        Clone,
1175        ::ethers::contract::EthCall,
1176        ::ethers::contract::EthDisplay,
1177        serde::Serialize,
1178        serde::Deserialize,
1179        Default,
1180        Debug,
1181        PartialEq,
1182        Eq,
1183        Hash
1184    )]
1185    #[ethcall(name = "nodeToSafe", abi = "nodeToSafe(address)")]
1186    pub struct NodeToSafeCall {
1187        pub node_address: ::ethers::core::types::Address,
1188    }
1189    ///Container type for all input parameters for the `registerSafeByNode` function with signature `registerSafeByNode(address)` and selector `0x7f935931`
1190    #[derive(
1191        Clone,
1192        ::ethers::contract::EthCall,
1193        ::ethers::contract::EthDisplay,
1194        serde::Serialize,
1195        serde::Deserialize,
1196        Default,
1197        Debug,
1198        PartialEq,
1199        Eq,
1200        Hash
1201    )]
1202    #[ethcall(name = "registerSafeByNode", abi = "registerSafeByNode(address)")]
1203    pub struct RegisterSafeByNodeCall {
1204        pub safe_addr: ::ethers::core::types::Address,
1205    }
1206    ///Container type for all input parameters for the `registerSafeWithNodeSig` function with signature `registerSafeWithNodeSig(address,address,bytes)` and selector `0x49d215e1`
1207    #[derive(
1208        Clone,
1209        ::ethers::contract::EthCall,
1210        ::ethers::contract::EthDisplay,
1211        serde::Serialize,
1212        serde::Deserialize,
1213        Default,
1214        Debug,
1215        PartialEq,
1216        Eq,
1217        Hash
1218    )]
1219    #[ethcall(
1220        name = "registerSafeWithNodeSig",
1221        abi = "registerSafeWithNodeSig(address,address,bytes)"
1222    )]
1223    pub struct RegisterSafeWithNodeSigCall {
1224        pub safe_address: ::ethers::core::types::Address,
1225        pub node_chain_key_address: ::ethers::core::types::Address,
1226        pub sig: ::ethers::core::types::Bytes,
1227    }
1228    ///Container type for all input parameters for the `updateDomainSeparator` function with signature `updateDomainSeparator()` and selector `0x89ccfe89`
1229    #[derive(
1230        Clone,
1231        ::ethers::contract::EthCall,
1232        ::ethers::contract::EthDisplay,
1233        serde::Serialize,
1234        serde::Deserialize,
1235        Default,
1236        Debug,
1237        PartialEq,
1238        Eq,
1239        Hash
1240    )]
1241    #[ethcall(name = "updateDomainSeparator", abi = "updateDomainSeparator()")]
1242    pub struct UpdateDomainSeparatorCall;
1243    ///Container type for all of the contract's call
1244    #[derive(
1245        Clone,
1246        ::ethers::contract::EthAbiType,
1247        serde::Serialize,
1248        serde::Deserialize,
1249        Debug,
1250        PartialEq,
1251        Eq,
1252        Hash
1253    )]
1254    pub enum HoprNodeSafeRegistryCalls {
1255        NodeSafeTypehash(NodeSafeTypehashCall),
1256        Version(VersionCall),
1257        DeregisterNodeBySafe(DeregisterNodeBySafeCall),
1258        DomainSeparator(DomainSeparatorCall),
1259        IsNodeSafeRegistered(IsNodeSafeRegisteredCall),
1260        NodeSigNonce(NodeSigNonceCall),
1261        NodeToSafe(NodeToSafeCall),
1262        RegisterSafeByNode(RegisterSafeByNodeCall),
1263        RegisterSafeWithNodeSig(RegisterSafeWithNodeSigCall),
1264        UpdateDomainSeparator(UpdateDomainSeparatorCall),
1265    }
1266    impl ::ethers::core::abi::AbiDecode for HoprNodeSafeRegistryCalls {
1267        fn decode(
1268            data: impl AsRef<[u8]>,
1269        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
1270            let data = data.as_ref();
1271            if let Ok(decoded) = <NodeSafeTypehashCall as ::ethers::core::abi::AbiDecode>::decode(
1272                data,
1273            ) {
1274                return Ok(Self::NodeSafeTypehash(decoded));
1275            }
1276            if let Ok(decoded) = <VersionCall as ::ethers::core::abi::AbiDecode>::decode(
1277                data,
1278            ) {
1279                return Ok(Self::Version(decoded));
1280            }
1281            if let Ok(decoded) = <DeregisterNodeBySafeCall as ::ethers::core::abi::AbiDecode>::decode(
1282                data,
1283            ) {
1284                return Ok(Self::DeregisterNodeBySafe(decoded));
1285            }
1286            if let Ok(decoded) = <DomainSeparatorCall as ::ethers::core::abi::AbiDecode>::decode(
1287                data,
1288            ) {
1289                return Ok(Self::DomainSeparator(decoded));
1290            }
1291            if let Ok(decoded) = <IsNodeSafeRegisteredCall as ::ethers::core::abi::AbiDecode>::decode(
1292                data,
1293            ) {
1294                return Ok(Self::IsNodeSafeRegistered(decoded));
1295            }
1296            if let Ok(decoded) = <NodeSigNonceCall as ::ethers::core::abi::AbiDecode>::decode(
1297                data,
1298            ) {
1299                return Ok(Self::NodeSigNonce(decoded));
1300            }
1301            if let Ok(decoded) = <NodeToSafeCall as ::ethers::core::abi::AbiDecode>::decode(
1302                data,
1303            ) {
1304                return Ok(Self::NodeToSafe(decoded));
1305            }
1306            if let Ok(decoded) = <RegisterSafeByNodeCall as ::ethers::core::abi::AbiDecode>::decode(
1307                data,
1308            ) {
1309                return Ok(Self::RegisterSafeByNode(decoded));
1310            }
1311            if let Ok(decoded) = <RegisterSafeWithNodeSigCall as ::ethers::core::abi::AbiDecode>::decode(
1312                data,
1313            ) {
1314                return Ok(Self::RegisterSafeWithNodeSig(decoded));
1315            }
1316            if let Ok(decoded) = <UpdateDomainSeparatorCall as ::ethers::core::abi::AbiDecode>::decode(
1317                data,
1318            ) {
1319                return Ok(Self::UpdateDomainSeparator(decoded));
1320            }
1321            Err(::ethers::core::abi::Error::InvalidData.into())
1322        }
1323    }
1324    impl ::ethers::core::abi::AbiEncode for HoprNodeSafeRegistryCalls {
1325        fn encode(self) -> Vec<u8> {
1326            match self {
1327                Self::NodeSafeTypehash(element) => {
1328                    ::ethers::core::abi::AbiEncode::encode(element)
1329                }
1330                Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element),
1331                Self::DeregisterNodeBySafe(element) => {
1332                    ::ethers::core::abi::AbiEncode::encode(element)
1333                }
1334                Self::DomainSeparator(element) => {
1335                    ::ethers::core::abi::AbiEncode::encode(element)
1336                }
1337                Self::IsNodeSafeRegistered(element) => {
1338                    ::ethers::core::abi::AbiEncode::encode(element)
1339                }
1340                Self::NodeSigNonce(element) => {
1341                    ::ethers::core::abi::AbiEncode::encode(element)
1342                }
1343                Self::NodeToSafe(element) => {
1344                    ::ethers::core::abi::AbiEncode::encode(element)
1345                }
1346                Self::RegisterSafeByNode(element) => {
1347                    ::ethers::core::abi::AbiEncode::encode(element)
1348                }
1349                Self::RegisterSafeWithNodeSig(element) => {
1350                    ::ethers::core::abi::AbiEncode::encode(element)
1351                }
1352                Self::UpdateDomainSeparator(element) => {
1353                    ::ethers::core::abi::AbiEncode::encode(element)
1354                }
1355            }
1356        }
1357    }
1358    impl ::core::fmt::Display for HoprNodeSafeRegistryCalls {
1359        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1360            match self {
1361                Self::NodeSafeTypehash(element) => ::core::fmt::Display::fmt(element, f),
1362                Self::Version(element) => ::core::fmt::Display::fmt(element, f),
1363                Self::DeregisterNodeBySafe(element) => {
1364                    ::core::fmt::Display::fmt(element, f)
1365                }
1366                Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f),
1367                Self::IsNodeSafeRegistered(element) => {
1368                    ::core::fmt::Display::fmt(element, f)
1369                }
1370                Self::NodeSigNonce(element) => ::core::fmt::Display::fmt(element, f),
1371                Self::NodeToSafe(element) => ::core::fmt::Display::fmt(element, f),
1372                Self::RegisterSafeByNode(element) => {
1373                    ::core::fmt::Display::fmt(element, f)
1374                }
1375                Self::RegisterSafeWithNodeSig(element) => {
1376                    ::core::fmt::Display::fmt(element, f)
1377                }
1378                Self::UpdateDomainSeparator(element) => {
1379                    ::core::fmt::Display::fmt(element, f)
1380                }
1381            }
1382        }
1383    }
1384    impl ::core::convert::From<NodeSafeTypehashCall> for HoprNodeSafeRegistryCalls {
1385        fn from(value: NodeSafeTypehashCall) -> Self {
1386            Self::NodeSafeTypehash(value)
1387        }
1388    }
1389    impl ::core::convert::From<VersionCall> for HoprNodeSafeRegistryCalls {
1390        fn from(value: VersionCall) -> Self {
1391            Self::Version(value)
1392        }
1393    }
1394    impl ::core::convert::From<DeregisterNodeBySafeCall> for HoprNodeSafeRegistryCalls {
1395        fn from(value: DeregisterNodeBySafeCall) -> Self {
1396            Self::DeregisterNodeBySafe(value)
1397        }
1398    }
1399    impl ::core::convert::From<DomainSeparatorCall> for HoprNodeSafeRegistryCalls {
1400        fn from(value: DomainSeparatorCall) -> Self {
1401            Self::DomainSeparator(value)
1402        }
1403    }
1404    impl ::core::convert::From<IsNodeSafeRegisteredCall> for HoprNodeSafeRegistryCalls {
1405        fn from(value: IsNodeSafeRegisteredCall) -> Self {
1406            Self::IsNodeSafeRegistered(value)
1407        }
1408    }
1409    impl ::core::convert::From<NodeSigNonceCall> for HoprNodeSafeRegistryCalls {
1410        fn from(value: NodeSigNonceCall) -> Self {
1411            Self::NodeSigNonce(value)
1412        }
1413    }
1414    impl ::core::convert::From<NodeToSafeCall> for HoprNodeSafeRegistryCalls {
1415        fn from(value: NodeToSafeCall) -> Self {
1416            Self::NodeToSafe(value)
1417        }
1418    }
1419    impl ::core::convert::From<RegisterSafeByNodeCall> for HoprNodeSafeRegistryCalls {
1420        fn from(value: RegisterSafeByNodeCall) -> Self {
1421            Self::RegisterSafeByNode(value)
1422        }
1423    }
1424    impl ::core::convert::From<RegisterSafeWithNodeSigCall>
1425    for HoprNodeSafeRegistryCalls {
1426        fn from(value: RegisterSafeWithNodeSigCall) -> Self {
1427            Self::RegisterSafeWithNodeSig(value)
1428        }
1429    }
1430    impl ::core::convert::From<UpdateDomainSeparatorCall> for HoprNodeSafeRegistryCalls {
1431        fn from(value: UpdateDomainSeparatorCall) -> Self {
1432            Self::UpdateDomainSeparator(value)
1433        }
1434    }
1435    ///Container type for all return fields from the `NODE_SAFE_TYPEHASH` function with signature `NODE_SAFE_TYPEHASH()` and selector `0x84b0dec2`
1436    #[derive(
1437        Clone,
1438        ::ethers::contract::EthAbiType,
1439        ::ethers::contract::EthAbiCodec,
1440        serde::Serialize,
1441        serde::Deserialize,
1442        Default,
1443        Debug,
1444        PartialEq,
1445        Eq,
1446        Hash
1447    )]
1448    pub struct NodeSafeTypehashReturn(pub [u8; 32]);
1449    ///Container type for all return fields from the `VERSION` function with signature `VERSION()` and selector `0xffa1ad74`
1450    #[derive(
1451        Clone,
1452        ::ethers::contract::EthAbiType,
1453        ::ethers::contract::EthAbiCodec,
1454        serde::Serialize,
1455        serde::Deserialize,
1456        Default,
1457        Debug,
1458        PartialEq,
1459        Eq,
1460        Hash
1461    )]
1462    pub struct VersionReturn(pub ::std::string::String);
1463    ///Container type for all return fields from the `domainSeparator` function with signature `domainSeparator()` and selector `0xf698da25`
1464    #[derive(
1465        Clone,
1466        ::ethers::contract::EthAbiType,
1467        ::ethers::contract::EthAbiCodec,
1468        serde::Serialize,
1469        serde::Deserialize,
1470        Default,
1471        Debug,
1472        PartialEq,
1473        Eq,
1474        Hash
1475    )]
1476    pub struct DomainSeparatorReturn(pub [u8; 32]);
1477    ///Container type for all return fields from the `isNodeSafeRegistered` function with signature `isNodeSafeRegistered(address,address)` and selector `0x37480abd`
1478    #[derive(
1479        Clone,
1480        ::ethers::contract::EthAbiType,
1481        ::ethers::contract::EthAbiCodec,
1482        serde::Serialize,
1483        serde::Deserialize,
1484        Default,
1485        Debug,
1486        PartialEq,
1487        Eq,
1488        Hash
1489    )]
1490    pub struct IsNodeSafeRegisteredReturn(pub bool);
1491    ///Container type for all return fields from the `nodeSigNonce` function with signature `nodeSigNonce(address)` and selector `0xaa90f2a5`
1492    #[derive(
1493        Clone,
1494        ::ethers::contract::EthAbiType,
1495        ::ethers::contract::EthAbiCodec,
1496        serde::Serialize,
1497        serde::Deserialize,
1498        Default,
1499        Debug,
1500        PartialEq,
1501        Eq,
1502        Hash
1503    )]
1504    pub struct NodeSigNonceReturn(pub ::ethers::core::types::U256);
1505    ///Container type for all return fields from the `nodeToSafe` function with signature `nodeToSafe(address)` and selector `0x89978c40`
1506    #[derive(
1507        Clone,
1508        ::ethers::contract::EthAbiType,
1509        ::ethers::contract::EthAbiCodec,
1510        serde::Serialize,
1511        serde::Deserialize,
1512        Default,
1513        Debug,
1514        PartialEq,
1515        Eq,
1516        Hash
1517    )]
1518    pub struct NodeToSafeReturn(pub ::ethers::core::types::Address);
1519}