hopr_bindings/codegen/
hopr_capability_permissions.rs

1pub use hopr_capability_permissions::*;
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_capability_permissions {
13    #[allow(deprecated)]
14    fn __abi() -> ::ethers::core::abi::Abi {
15        ::ethers::core::abi::ethabi::Contract {
16            constructor: ::core::option::Option::None,
17            functions: ::core::convert::From::from([
18                (
19                    ::std::borrow::ToOwned::to_owned("APPROVE_SELECTOR"),
20                    ::std::vec![
21                        ::ethers::core::abi::ethabi::Function {
22                            name: ::std::borrow::ToOwned::to_owned("APPROVE_SELECTOR"),
23                            inputs: ::std::vec![],
24                            outputs: ::std::vec![
25                                ::ethers::core::abi::ethabi::Param {
26                                    name: ::std::string::String::new(),
27                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
28                                        4usize,
29                                    ),
30                                    internal_type: ::core::option::Option::Some(
31                                        ::std::borrow::ToOwned::to_owned("bytes4"),
32                                    ),
33                                },
34                            ],
35                            constant: ::core::option::Option::None,
36                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
37                        },
38                    ],
39                ),
40                (
41                    ::std::borrow::ToOwned::to_owned("CLOSE_INCOMING_CHANNEL_SELECTOR"),
42                    ::std::vec![
43                        ::ethers::core::abi::ethabi::Function {
44                            name: ::std::borrow::ToOwned::to_owned(
45                                "CLOSE_INCOMING_CHANNEL_SELECTOR",
46                            ),
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::FixedBytes(
52                                        4usize,
53                                    ),
54                                    internal_type: ::core::option::Option::Some(
55                                        ::std::borrow::ToOwned::to_owned("bytes4"),
56                                    ),
57                                },
58                            ],
59                            constant: ::core::option::Option::None,
60                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
61                        },
62                    ],
63                ),
64                (
65                    ::std::borrow::ToOwned::to_owned(
66                        "FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR",
67                    ),
68                    ::std::vec![
69                        ::ethers::core::abi::ethabi::Function {
70                            name: ::std::borrow::ToOwned::to_owned(
71                                "FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR",
72                            ),
73                            inputs: ::std::vec![],
74                            outputs: ::std::vec![
75                                ::ethers::core::abi::ethabi::Param {
76                                    name: ::std::string::String::new(),
77                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
78                                        4usize,
79                                    ),
80                                    internal_type: ::core::option::Option::Some(
81                                        ::std::borrow::ToOwned::to_owned("bytes4"),
82                                    ),
83                                },
84                            ],
85                            constant: ::core::option::Option::None,
86                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
87                        },
88                    ],
89                ),
90                (
91                    ::std::borrow::ToOwned::to_owned("FUND_CHANNEL_SELECTOR"),
92                    ::std::vec![
93                        ::ethers::core::abi::ethabi::Function {
94                            name: ::std::borrow::ToOwned::to_owned(
95                                "FUND_CHANNEL_SELECTOR",
96                            ),
97                            inputs: ::std::vec![],
98                            outputs: ::std::vec![
99                                ::ethers::core::abi::ethabi::Param {
100                                    name: ::std::string::String::new(),
101                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
102                                        4usize,
103                                    ),
104                                    internal_type: ::core::option::Option::Some(
105                                        ::std::borrow::ToOwned::to_owned("bytes4"),
106                                    ),
107                                },
108                            ],
109                            constant: ::core::option::Option::None,
110                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
111                        },
112                    ],
113                ),
114                (
115                    ::std::borrow::ToOwned::to_owned(
116                        "INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR",
117                    ),
118                    ::std::vec![
119                        ::ethers::core::abi::ethabi::Function {
120                            name: ::std::borrow::ToOwned::to_owned(
121                                "INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR",
122                            ),
123                            inputs: ::std::vec![],
124                            outputs: ::std::vec![
125                                ::ethers::core::abi::ethabi::Param {
126                                    name: ::std::string::String::new(),
127                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
128                                        4usize,
129                                    ),
130                                    internal_type: ::core::option::Option::Some(
131                                        ::std::borrow::ToOwned::to_owned("bytes4"),
132                                    ),
133                                },
134                            ],
135                            constant: ::core::option::Option::None,
136                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
137                        },
138                    ],
139                ),
140                (
141                    ::std::borrow::ToOwned::to_owned("REDEEM_TICKET_SELECTOR"),
142                    ::std::vec![
143                        ::ethers::core::abi::ethabi::Function {
144                            name: ::std::borrow::ToOwned::to_owned(
145                                "REDEEM_TICKET_SELECTOR",
146                            ),
147                            inputs: ::std::vec![],
148                            outputs: ::std::vec![
149                                ::ethers::core::abi::ethabi::Param {
150                                    name: ::std::string::String::new(),
151                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
152                                        4usize,
153                                    ),
154                                    internal_type: ::core::option::Option::Some(
155                                        ::std::borrow::ToOwned::to_owned("bytes4"),
156                                    ),
157                                },
158                            ],
159                            constant: ::core::option::Option::None,
160                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
161                        },
162                    ],
163                ),
164                (
165                    ::std::borrow::ToOwned::to_owned("SEND_SELECTOR"),
166                    ::std::vec![
167                        ::ethers::core::abi::ethabi::Function {
168                            name: ::std::borrow::ToOwned::to_owned("SEND_SELECTOR"),
169                            inputs: ::std::vec![],
170                            outputs: ::std::vec![
171                                ::ethers::core::abi::ethabi::Param {
172                                    name: ::std::string::String::new(),
173                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
174                                        4usize,
175                                    ),
176                                    internal_type: ::core::option::Option::Some(
177                                        ::std::borrow::ToOwned::to_owned("bytes4"),
178                                    ),
179                                },
180                            ],
181                            constant: ::core::option::Option::None,
182                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
183                        },
184                    ],
185                ),
186            ]),
187            events: ::core::convert::From::from([
188                (
189                    ::std::borrow::ToOwned::to_owned("RevokedTarget"),
190                    ::std::vec![
191                        ::ethers::core::abi::ethabi::Event {
192                            name: ::std::borrow::ToOwned::to_owned("RevokedTarget"),
193                            inputs: ::std::vec![
194                                ::ethers::core::abi::ethabi::EventParam {
195                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
196                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
197                                    indexed: true,
198                                },
199                            ],
200                            anonymous: false,
201                        },
202                    ],
203                ),
204                (
205                    ::std::borrow::ToOwned::to_owned("ScopedGranularChannelCapability"),
206                    ::std::vec![
207                        ::ethers::core::abi::ethabi::Event {
208                            name: ::std::borrow::ToOwned::to_owned(
209                                "ScopedGranularChannelCapability",
210                            ),
211                            inputs: ::std::vec![
212                                ::ethers::core::abi::ethabi::EventParam {
213                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
214                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
215                                    indexed: true,
216                                },
217                                ::ethers::core::abi::ethabi::EventParam {
218                                    name: ::std::borrow::ToOwned::to_owned("channelId"),
219                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
220                                        32usize,
221                                    ),
222                                    indexed: true,
223                                },
224                                ::ethers::core::abi::ethabi::EventParam {
225                                    name: ::std::borrow::ToOwned::to_owned("selector"),
226                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
227                                        4usize,
228                                    ),
229                                    indexed: false,
230                                },
231                                ::ethers::core::abi::ethabi::EventParam {
232                                    name: ::std::borrow::ToOwned::to_owned("permission"),
233                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
234                                    indexed: false,
235                                },
236                            ],
237                            anonymous: false,
238                        },
239                    ],
240                ),
241                (
242                    ::std::borrow::ToOwned::to_owned("ScopedGranularSendCapability"),
243                    ::std::vec![
244                        ::ethers::core::abi::ethabi::Event {
245                            name: ::std::borrow::ToOwned::to_owned(
246                                "ScopedGranularSendCapability",
247                            ),
248                            inputs: ::std::vec![
249                                ::ethers::core::abi::ethabi::EventParam {
250                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
251                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
252                                    indexed: true,
253                                },
254                                ::ethers::core::abi::ethabi::EventParam {
255                                    name: ::std::borrow::ToOwned::to_owned("recipientAddress"),
256                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
257                                    indexed: true,
258                                },
259                                ::ethers::core::abi::ethabi::EventParam {
260                                    name: ::std::borrow::ToOwned::to_owned("permission"),
261                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
262                                    indexed: false,
263                                },
264                            ],
265                            anonymous: false,
266                        },
267                    ],
268                ),
269                (
270                    ::std::borrow::ToOwned::to_owned("ScopedGranularTokenCapability"),
271                    ::std::vec![
272                        ::ethers::core::abi::ethabi::Event {
273                            name: ::std::borrow::ToOwned::to_owned(
274                                "ScopedGranularTokenCapability",
275                            ),
276                            inputs: ::std::vec![
277                                ::ethers::core::abi::ethabi::EventParam {
278                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
279                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
280                                    indexed: true,
281                                },
282                                ::ethers::core::abi::ethabi::EventParam {
283                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
284                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
285                                    indexed: true,
286                                },
287                                ::ethers::core::abi::ethabi::EventParam {
288                                    name: ::std::borrow::ToOwned::to_owned("recipientAddress"),
289                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
290                                    indexed: true,
291                                },
292                                ::ethers::core::abi::ethabi::EventParam {
293                                    name: ::std::borrow::ToOwned::to_owned("selector"),
294                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
295                                        4usize,
296                                    ),
297                                    indexed: false,
298                                },
299                                ::ethers::core::abi::ethabi::EventParam {
300                                    name: ::std::borrow::ToOwned::to_owned("permission"),
301                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
302                                    indexed: false,
303                                },
304                            ],
305                            anonymous: false,
306                        },
307                    ],
308                ),
309                (
310                    ::std::borrow::ToOwned::to_owned("ScopedTargetChannels"),
311                    ::std::vec![
312                        ::ethers::core::abi::ethabi::Event {
313                            name: ::std::borrow::ToOwned::to_owned(
314                                "ScopedTargetChannels",
315                            ),
316                            inputs: ::std::vec![
317                                ::ethers::core::abi::ethabi::EventParam {
318                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
319                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
320                                    indexed: true,
321                                },
322                                ::ethers::core::abi::ethabi::EventParam {
323                                    name: ::std::borrow::ToOwned::to_owned("target"),
324                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
325                                        256usize,
326                                    ),
327                                    indexed: false,
328                                },
329                            ],
330                            anonymous: false,
331                        },
332                    ],
333                ),
334                (
335                    ::std::borrow::ToOwned::to_owned("ScopedTargetSend"),
336                    ::std::vec![
337                        ::ethers::core::abi::ethabi::Event {
338                            name: ::std::borrow::ToOwned::to_owned("ScopedTargetSend"),
339                            inputs: ::std::vec![
340                                ::ethers::core::abi::ethabi::EventParam {
341                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
342                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
343                                    indexed: true,
344                                },
345                                ::ethers::core::abi::ethabi::EventParam {
346                                    name: ::std::borrow::ToOwned::to_owned("target"),
347                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
348                                        256usize,
349                                    ),
350                                    indexed: false,
351                                },
352                            ],
353                            anonymous: false,
354                        },
355                    ],
356                ),
357                (
358                    ::std::borrow::ToOwned::to_owned("ScopedTargetToken"),
359                    ::std::vec![
360                        ::ethers::core::abi::ethabi::Event {
361                            name: ::std::borrow::ToOwned::to_owned("ScopedTargetToken"),
362                            inputs: ::std::vec![
363                                ::ethers::core::abi::ethabi::EventParam {
364                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
365                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
366                                    indexed: true,
367                                },
368                                ::ethers::core::abi::ethabi::EventParam {
369                                    name: ::std::borrow::ToOwned::to_owned("target"),
370                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
371                                        256usize,
372                                    ),
373                                    indexed: false,
374                                },
375                            ],
376                            anonymous: false,
377                        },
378                    ],
379                ),
380            ]),
381            errors: ::core::convert::From::from([
382                (
383                    ::std::borrow::ToOwned::to_owned("AddressIsZero"),
384                    ::std::vec![
385                        ::ethers::core::abi::ethabi::AbiError {
386                            name: ::std::borrow::ToOwned::to_owned("AddressIsZero"),
387                            inputs: ::std::vec![],
388                        },
389                    ],
390                ),
391                (
392                    ::std::borrow::ToOwned::to_owned("ArrayTooLong"),
393                    ::std::vec![
394                        ::ethers::core::abi::ethabi::AbiError {
395                            name: ::std::borrow::ToOwned::to_owned("ArrayTooLong"),
396                            inputs: ::std::vec![],
397                        },
398                    ],
399                ),
400                (
401                    ::std::borrow::ToOwned::to_owned("ArraysDifferentLength"),
402                    ::std::vec![
403                        ::ethers::core::abi::ethabi::AbiError {
404                            name: ::std::borrow::ToOwned::to_owned(
405                                "ArraysDifferentLength",
406                            ),
407                            inputs: ::std::vec![],
408                        },
409                    ],
410                ),
411                (
412                    ::std::borrow::ToOwned::to_owned("CalldataOutOfBounds"),
413                    ::std::vec![
414                        ::ethers::core::abi::ethabi::AbiError {
415                            name: ::std::borrow::ToOwned::to_owned(
416                                "CalldataOutOfBounds",
417                            ),
418                            inputs: ::std::vec![],
419                        },
420                    ],
421                ),
422                (
423                    ::std::borrow::ToOwned::to_owned("DefaultPermissionRejected"),
424                    ::std::vec![
425                        ::ethers::core::abi::ethabi::AbiError {
426                            name: ::std::borrow::ToOwned::to_owned(
427                                "DefaultPermissionRejected",
428                            ),
429                            inputs: ::std::vec![],
430                        },
431                    ],
432                ),
433                (
434                    ::std::borrow::ToOwned::to_owned("DelegateCallNotAllowed"),
435                    ::std::vec![
436                        ::ethers::core::abi::ethabi::AbiError {
437                            name: ::std::borrow::ToOwned::to_owned(
438                                "DelegateCallNotAllowed",
439                            ),
440                            inputs: ::std::vec![],
441                        },
442                    ],
443                ),
444                (
445                    ::std::borrow::ToOwned::to_owned("FunctionSignatureTooShort"),
446                    ::std::vec![
447                        ::ethers::core::abi::ethabi::AbiError {
448                            name: ::std::borrow::ToOwned::to_owned(
449                                "FunctionSignatureTooShort",
450                            ),
451                            inputs: ::std::vec![],
452                        },
453                    ],
454                ),
455                (
456                    ::std::borrow::ToOwned::to_owned("GranularPermissionRejected"),
457                    ::std::vec![
458                        ::ethers::core::abi::ethabi::AbiError {
459                            name: ::std::borrow::ToOwned::to_owned(
460                                "GranularPermissionRejected",
461                            ),
462                            inputs: ::std::vec![],
463                        },
464                    ],
465                ),
466                (
467                    ::std::borrow::ToOwned::to_owned("NoMembership"),
468                    ::std::vec![
469                        ::ethers::core::abi::ethabi::AbiError {
470                            name: ::std::borrow::ToOwned::to_owned("NoMembership"),
471                            inputs: ::std::vec![],
472                        },
473                    ],
474                ),
475                (
476                    ::std::borrow::ToOwned::to_owned("NodePermissionRejected"),
477                    ::std::vec![
478                        ::ethers::core::abi::ethabi::AbiError {
479                            name: ::std::borrow::ToOwned::to_owned(
480                                "NodePermissionRejected",
481                            ),
482                            inputs: ::std::vec![],
483                        },
484                    ],
485                ),
486                (
487                    ::std::borrow::ToOwned::to_owned("ParameterNotAllowed"),
488                    ::std::vec![
489                        ::ethers::core::abi::ethabi::AbiError {
490                            name: ::std::borrow::ToOwned::to_owned(
491                                "ParameterNotAllowed",
492                            ),
493                            inputs: ::std::vec![],
494                        },
495                    ],
496                ),
497                (
498                    ::std::borrow::ToOwned::to_owned("PermissionNotConfigured"),
499                    ::std::vec![
500                        ::ethers::core::abi::ethabi::AbiError {
501                            name: ::std::borrow::ToOwned::to_owned(
502                                "PermissionNotConfigured",
503                            ),
504                            inputs: ::std::vec![],
505                        },
506                    ],
507                ),
508                (
509                    ::std::borrow::ToOwned::to_owned("SendNotAllowed"),
510                    ::std::vec![
511                        ::ethers::core::abi::ethabi::AbiError {
512                            name: ::std::borrow::ToOwned::to_owned("SendNotAllowed"),
513                            inputs: ::std::vec![],
514                        },
515                    ],
516                ),
517                (
518                    ::std::borrow::ToOwned::to_owned("TargetAddressNotAllowed"),
519                    ::std::vec![
520                        ::ethers::core::abi::ethabi::AbiError {
521                            name: ::std::borrow::ToOwned::to_owned(
522                                "TargetAddressNotAllowed",
523                            ),
524                            inputs: ::std::vec![],
525                        },
526                    ],
527                ),
528                (
529                    ::std::borrow::ToOwned::to_owned("TargetIsNotScoped"),
530                    ::std::vec![
531                        ::ethers::core::abi::ethabi::AbiError {
532                            name: ::std::borrow::ToOwned::to_owned("TargetIsNotScoped"),
533                            inputs: ::std::vec![],
534                        },
535                    ],
536                ),
537                (
538                    ::std::borrow::ToOwned::to_owned("TargetIsScoped"),
539                    ::std::vec![
540                        ::ethers::core::abi::ethabi::AbiError {
541                            name: ::std::borrow::ToOwned::to_owned("TargetIsScoped"),
542                            inputs: ::std::vec![],
543                        },
544                    ],
545                ),
546                (
547                    ::std::borrow::ToOwned::to_owned("UnacceptableMultiSendOffset"),
548                    ::std::vec![
549                        ::ethers::core::abi::ethabi::AbiError {
550                            name: ::std::borrow::ToOwned::to_owned(
551                                "UnacceptableMultiSendOffset",
552                            ),
553                            inputs: ::std::vec![],
554                        },
555                    ],
556                ),
557            ]),
558            receive: false,
559            fallback: false,
560        }
561    }
562    ///The parsed JSON ABI of the contract.
563    pub static HOPRCAPABILITYPERMISSIONS_ABI: ::ethers::contract::Lazy<
564        ::ethers::core::abi::Abi,
565    > = ::ethers::contract::Lazy::new(__abi);
566    #[rustfmt::skip]
567    const __BYTECODE: &[u8] = b"a\x011a\0:`\x0B\x82\x82\x829\x80Q`\0\x1A`s\x14a\0-WcNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[0`\0R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10`~W`\x005`\xE0\x1C\x80czuq\x15\x11`_W\x80czuq\x15\x14`\xC7W\x80c\x81g\xB6~\x14`\xD4W\x80c\xA0\x86X9\x14`\xE1W\x80c\xB6w\xA4\x0F\x14`\xEEW`\0\x80\xFD[\x80cQ\xD2aK\x14`\x83W\x80c]\xAA\x9E$\x14`\xADW\x80cg\x8A^\xFB\x14`\xBAW[`\0\x80\xFD[`\x90c\x06lF\xB9`\xE1\x1B\x81V[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`\x90c\xBD\xA6_E`\xE0\x1B\x81V[`\x90cT\xA2\xED\xF5`\xE0\x1B\x81V[`\x90cM\xEC\xDD\xE3`\xE1\x1B\x81V[`\x90ce\x15\x14\xBF`\xE0\x1B\x81V[`\x90c\t^\xA7\xB3`\xE0\x1B\x81V[`\x90c\n\xBE\xC5\x8F`\xE0\x1B\x81V\xFE\xA2dipfsX\"\x12 \x7F6$\x06\xB5\xDD<\xD4\x80\x02>1l\xFDcG\x0F\x0E\xF0\x98R\xC3\x13W\t\xC6/pr\x17\xE4@dsolcC\0\x08\x13\x003";
568    /// The bytecode of the contract.
569    pub static HOPRCAPABILITYPERMISSIONS_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
570        __BYTECODE,
571    );
572    #[rustfmt::skip]
573    const __DEPLOYED_BYTECODE: &[u8] = b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10`~W`\x005`\xE0\x1C\x80czuq\x15\x11`_W\x80czuq\x15\x14`\xC7W\x80c\x81g\xB6~\x14`\xD4W\x80c\xA0\x86X9\x14`\xE1W\x80c\xB6w\xA4\x0F\x14`\xEEW`\0\x80\xFD[\x80cQ\xD2aK\x14`\x83W\x80c]\xAA\x9E$\x14`\xADW\x80cg\x8A^\xFB\x14`\xBAW[`\0\x80\xFD[`\x90c\x06lF\xB9`\xE1\x1B\x81V[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`\x90c\xBD\xA6_E`\xE0\x1B\x81V[`\x90cT\xA2\xED\xF5`\xE0\x1B\x81V[`\x90cM\xEC\xDD\xE3`\xE1\x1B\x81V[`\x90ce\x15\x14\xBF`\xE0\x1B\x81V[`\x90c\t^\xA7\xB3`\xE0\x1B\x81V[`\x90c\n\xBE\xC5\x8F`\xE0\x1B\x81V\xFE\xA2dipfsX\"\x12 \x7F6$\x06\xB5\xDD<\xD4\x80\x02>1l\xFDcG\x0F\x0E\xF0\x98R\xC3\x13W\t\xC6/pr\x17\xE4@dsolcC\0\x08\x13\x003";
574    /// The deployed bytecode of the contract.
575    pub static HOPRCAPABILITYPERMISSIONS_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
576        __DEPLOYED_BYTECODE,
577    );
578    pub struct HoprCapabilityPermissions<M>(::ethers::contract::Contract<M>);
579    impl<M> ::core::clone::Clone for HoprCapabilityPermissions<M> {
580        fn clone(&self) -> Self {
581            Self(::core::clone::Clone::clone(&self.0))
582        }
583    }
584    impl<M> ::core::ops::Deref for HoprCapabilityPermissions<M> {
585        type Target = ::ethers::contract::Contract<M>;
586        fn deref(&self) -> &Self::Target {
587            &self.0
588        }
589    }
590    impl<M> ::core::ops::DerefMut for HoprCapabilityPermissions<M> {
591        fn deref_mut(&mut self) -> &mut Self::Target {
592            &mut self.0
593        }
594    }
595    impl<M> ::core::fmt::Debug for HoprCapabilityPermissions<M> {
596        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
597            f.debug_tuple(::core::stringify!(HoprCapabilityPermissions))
598                .field(&self.address())
599                .finish()
600        }
601    }
602    impl<M: ::ethers::providers::Middleware> HoprCapabilityPermissions<M> {
603        /// Creates a new contract instance with the specified `ethers` client at
604        /// `address`. The contract derefs to a `ethers::Contract` object.
605        pub fn new<T: Into<::ethers::core::types::Address>>(
606            address: T,
607            client: ::std::sync::Arc<M>,
608        ) -> Self {
609            Self(
610                ::ethers::contract::Contract::new(
611                    address.into(),
612                    HOPRCAPABILITYPERMISSIONS_ABI.clone(),
613                    client,
614                ),
615            )
616        }
617        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
618        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
619        ///
620        /// Notes:
621        /// - If there are no constructor arguments, you should pass `()` as the argument.
622        /// - The default poll duration is 7 seconds.
623        /// - The default number of confirmations is 1 block.
624        ///
625        ///
626        /// # Example
627        ///
628        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
629        ///
630        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
631        ///
632        /// ```ignore
633        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
634        ///     abigen!(Greeter, "../greeter.json");
635        ///
636        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
637        ///    let msg = greeter_contract.greet().call().await.unwrap();
638        /// # }
639        /// ```
640        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
641            client: ::std::sync::Arc<M>,
642            constructor_args: T,
643        ) -> ::core::result::Result<
644            ::ethers::contract::builders::ContractDeployer<M, Self>,
645            ::ethers::contract::ContractError<M>,
646        > {
647            let factory = ::ethers::contract::ContractFactory::new(
648                HOPRCAPABILITYPERMISSIONS_ABI.clone(),
649                HOPRCAPABILITYPERMISSIONS_BYTECODE.clone().into(),
650                client,
651            );
652            let deployer = factory.deploy(constructor_args)?;
653            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
654            Ok(deployer)
655        }
656        ///Calls the contract's `APPROVE_SELECTOR` (0xa0865839) function
657        pub fn approve_selector(
658            &self,
659        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
660            self.0
661                .method_hash([160, 134, 88, 57], ())
662                .expect("method not found (this should never happen)")
663        }
664        ///Calls the contract's `CLOSE_INCOMING_CHANNEL_SELECTOR` (0x678a5efb) function
665        pub fn close_incoming_channel_selector(
666            &self,
667        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
668            self.0
669                .method_hash([103, 138, 94, 251], ())
670                .expect("method not found (this should never happen)")
671        }
672        ///Calls the contract's `FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR` (0x8167b67e) function
673        pub fn finalize_outgoing_channel_closure_selector(
674            &self,
675        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
676            self.0
677                .method_hash([129, 103, 182, 126], ())
678                .expect("method not found (this should never happen)")
679        }
680        ///Calls the contract's `FUND_CHANNEL_SELECTOR` (0xb677a40f) function
681        pub fn fund_channel_selector(
682            &self,
683        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
684            self.0
685                .method_hash([182, 119, 164, 15], ())
686                .expect("method not found (this should never happen)")
687        }
688        ///Calls the contract's `INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR` (0x5daa9e24) function
689        pub fn initiate_outgoing_channel_closure_selector(
690            &self,
691        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
692            self.0
693                .method_hash([93, 170, 158, 36], ())
694                .expect("method not found (this should never happen)")
695        }
696        ///Calls the contract's `REDEEM_TICKET_SELECTOR` (0x51d2614b) function
697        pub fn redeem_ticket_selector(
698            &self,
699        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
700            self.0
701                .method_hash([81, 210, 97, 75], ())
702                .expect("method not found (this should never happen)")
703        }
704        ///Calls the contract's `SEND_SELECTOR` (0x7a757115) function
705        pub fn send_selector(
706            &self,
707        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
708            self.0
709                .method_hash([122, 117, 113, 21], ())
710                .expect("method not found (this should never happen)")
711        }
712        ///Gets the contract's `RevokedTarget` event
713        pub fn revoked_target_filter(
714            &self,
715        ) -> ::ethers::contract::builders::Event<
716            ::std::sync::Arc<M>,
717            M,
718            RevokedTargetFilter,
719        > {
720            self.0.event()
721        }
722        ///Gets the contract's `ScopedGranularChannelCapability` event
723        pub fn scoped_granular_channel_capability_filter(
724            &self,
725        ) -> ::ethers::contract::builders::Event<
726            ::std::sync::Arc<M>,
727            M,
728            ScopedGranularChannelCapabilityFilter,
729        > {
730            self.0.event()
731        }
732        ///Gets the contract's `ScopedGranularSendCapability` event
733        pub fn scoped_granular_send_capability_filter(
734            &self,
735        ) -> ::ethers::contract::builders::Event<
736            ::std::sync::Arc<M>,
737            M,
738            ScopedGranularSendCapabilityFilter,
739        > {
740            self.0.event()
741        }
742        ///Gets the contract's `ScopedGranularTokenCapability` event
743        pub fn scoped_granular_token_capability_filter(
744            &self,
745        ) -> ::ethers::contract::builders::Event<
746            ::std::sync::Arc<M>,
747            M,
748            ScopedGranularTokenCapabilityFilter,
749        > {
750            self.0.event()
751        }
752        ///Gets the contract's `ScopedTargetChannels` event
753        pub fn scoped_target_channels_filter(
754            &self,
755        ) -> ::ethers::contract::builders::Event<
756            ::std::sync::Arc<M>,
757            M,
758            ScopedTargetChannelsFilter,
759        > {
760            self.0.event()
761        }
762        ///Gets the contract's `ScopedTargetSend` event
763        pub fn scoped_target_send_filter(
764            &self,
765        ) -> ::ethers::contract::builders::Event<
766            ::std::sync::Arc<M>,
767            M,
768            ScopedTargetSendFilter,
769        > {
770            self.0.event()
771        }
772        ///Gets the contract's `ScopedTargetToken` event
773        pub fn scoped_target_token_filter(
774            &self,
775        ) -> ::ethers::contract::builders::Event<
776            ::std::sync::Arc<M>,
777            M,
778            ScopedTargetTokenFilter,
779        > {
780            self.0.event()
781        }
782        /// Returns an `Event` builder for all the events of this contract.
783        pub fn events(
784            &self,
785        ) -> ::ethers::contract::builders::Event<
786            ::std::sync::Arc<M>,
787            M,
788            HoprCapabilityPermissionsEvents,
789        > {
790            self.0.event_with_filter(::core::default::Default::default())
791        }
792    }
793    impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
794    for HoprCapabilityPermissions<M> {
795        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
796            Self::new(contract.address(), contract.client())
797        }
798    }
799    ///Custom Error type `AddressIsZero` with signature `AddressIsZero()` and selector `0x867915ab`
800    #[derive(
801        Clone,
802        ::ethers::contract::EthError,
803        ::ethers::contract::EthDisplay,
804        serde::Serialize,
805        serde::Deserialize,
806        Default,
807        Debug,
808        PartialEq,
809        Eq,
810        Hash
811    )]
812    #[etherror(name = "AddressIsZero", abi = "AddressIsZero()")]
813    pub struct AddressIsZero;
814    ///Custom Error type `ArrayTooLong` with signature `ArrayTooLong()` and selector `0xbd26cc38`
815    #[derive(
816        Clone,
817        ::ethers::contract::EthError,
818        ::ethers::contract::EthDisplay,
819        serde::Serialize,
820        serde::Deserialize,
821        Default,
822        Debug,
823        PartialEq,
824        Eq,
825        Hash
826    )]
827    #[etherror(name = "ArrayTooLong", abi = "ArrayTooLong()")]
828    pub struct ArrayTooLong;
829    ///Custom Error type `ArraysDifferentLength` with signature `ArraysDifferentLength()` and selector `0x74f4d537`
830    #[derive(
831        Clone,
832        ::ethers::contract::EthError,
833        ::ethers::contract::EthDisplay,
834        serde::Serialize,
835        serde::Deserialize,
836        Default,
837        Debug,
838        PartialEq,
839        Eq,
840        Hash
841    )]
842    #[etherror(name = "ArraysDifferentLength", abi = "ArraysDifferentLength()")]
843    pub struct ArraysDifferentLength;
844    ///Custom Error type `CalldataOutOfBounds` with signature `CalldataOutOfBounds()` and selector `0x742638b4`
845    #[derive(
846        Clone,
847        ::ethers::contract::EthError,
848        ::ethers::contract::EthDisplay,
849        serde::Serialize,
850        serde::Deserialize,
851        Default,
852        Debug,
853        PartialEq,
854        Eq,
855        Hash
856    )]
857    #[etherror(name = "CalldataOutOfBounds", abi = "CalldataOutOfBounds()")]
858    pub struct CalldataOutOfBounds;
859    ///Custom Error type `DefaultPermissionRejected` with signature `DefaultPermissionRejected()` and selector `0x58723037`
860    #[derive(
861        Clone,
862        ::ethers::contract::EthError,
863        ::ethers::contract::EthDisplay,
864        serde::Serialize,
865        serde::Deserialize,
866        Default,
867        Debug,
868        PartialEq,
869        Eq,
870        Hash
871    )]
872    #[etherror(name = "DefaultPermissionRejected", abi = "DefaultPermissionRejected()")]
873    pub struct DefaultPermissionRejected;
874    ///Custom Error type `DelegateCallNotAllowed` with signature `DelegateCallNotAllowed()` and selector `0x0d89438e`
875    #[derive(
876        Clone,
877        ::ethers::contract::EthError,
878        ::ethers::contract::EthDisplay,
879        serde::Serialize,
880        serde::Deserialize,
881        Default,
882        Debug,
883        PartialEq,
884        Eq,
885        Hash
886    )]
887    #[etherror(name = "DelegateCallNotAllowed", abi = "DelegateCallNotAllowed()")]
888    pub struct DelegateCallNotAllowed;
889    ///Custom Error type `FunctionSignatureTooShort` with signature `FunctionSignatureTooShort()` and selector `0x4684c122`
890    #[derive(
891        Clone,
892        ::ethers::contract::EthError,
893        ::ethers::contract::EthDisplay,
894        serde::Serialize,
895        serde::Deserialize,
896        Default,
897        Debug,
898        PartialEq,
899        Eq,
900        Hash
901    )]
902    #[etherror(name = "FunctionSignatureTooShort", abi = "FunctionSignatureTooShort()")]
903    pub struct FunctionSignatureTooShort;
904    ///Custom Error type `GranularPermissionRejected` with signature `GranularPermissionRejected()` and selector `0x864dd1e7`
905    #[derive(
906        Clone,
907        ::ethers::contract::EthError,
908        ::ethers::contract::EthDisplay,
909        serde::Serialize,
910        serde::Deserialize,
911        Default,
912        Debug,
913        PartialEq,
914        Eq,
915        Hash
916    )]
917    #[etherror(
918        name = "GranularPermissionRejected",
919        abi = "GranularPermissionRejected()"
920    )]
921    pub struct GranularPermissionRejected;
922    ///Custom Error type `NoMembership` with signature `NoMembership()` and selector `0xfd8e9f28`
923    #[derive(
924        Clone,
925        ::ethers::contract::EthError,
926        ::ethers::contract::EthDisplay,
927        serde::Serialize,
928        serde::Deserialize,
929        Default,
930        Debug,
931        PartialEq,
932        Eq,
933        Hash
934    )]
935    #[etherror(name = "NoMembership", abi = "NoMembership()")]
936    pub struct NoMembership;
937    ///Custom Error type `NodePermissionRejected` with signature `NodePermissionRejected()` and selector `0x6eb0315f`
938    #[derive(
939        Clone,
940        ::ethers::contract::EthError,
941        ::ethers::contract::EthDisplay,
942        serde::Serialize,
943        serde::Deserialize,
944        Default,
945        Debug,
946        PartialEq,
947        Eq,
948        Hash
949    )]
950    #[etherror(name = "NodePermissionRejected", abi = "NodePermissionRejected()")]
951    pub struct NodePermissionRejected;
952    ///Custom Error type `ParameterNotAllowed` with signature `ParameterNotAllowed()` and selector `0x31e98246`
953    #[derive(
954        Clone,
955        ::ethers::contract::EthError,
956        ::ethers::contract::EthDisplay,
957        serde::Serialize,
958        serde::Deserialize,
959        Default,
960        Debug,
961        PartialEq,
962        Eq,
963        Hash
964    )]
965    #[etherror(name = "ParameterNotAllowed", abi = "ParameterNotAllowed()")]
966    pub struct ParameterNotAllowed;
967    ///Custom Error type `PermissionNotConfigured` with signature `PermissionNotConfigured()` and selector `0x46ad4588`
968    #[derive(
969        Clone,
970        ::ethers::contract::EthError,
971        ::ethers::contract::EthDisplay,
972        serde::Serialize,
973        serde::Deserialize,
974        Default,
975        Debug,
976        PartialEq,
977        Eq,
978        Hash
979    )]
980    #[etherror(name = "PermissionNotConfigured", abi = "PermissionNotConfigured()")]
981    pub struct PermissionNotConfigured;
982    ///Custom Error type `SendNotAllowed` with signature `SendNotAllowed()` and selector `0x09e9cd49`
983    #[derive(
984        Clone,
985        ::ethers::contract::EthError,
986        ::ethers::contract::EthDisplay,
987        serde::Serialize,
988        serde::Deserialize,
989        Default,
990        Debug,
991        PartialEq,
992        Eq,
993        Hash
994    )]
995    #[etherror(name = "SendNotAllowed", abi = "SendNotAllowed()")]
996    pub struct SendNotAllowed;
997    ///Custom Error type `TargetAddressNotAllowed` with signature `TargetAddressNotAllowed()` and selector `0xef3440ac`
998    #[derive(
999        Clone,
1000        ::ethers::contract::EthError,
1001        ::ethers::contract::EthDisplay,
1002        serde::Serialize,
1003        serde::Deserialize,
1004        Default,
1005        Debug,
1006        PartialEq,
1007        Eq,
1008        Hash
1009    )]
1010    #[etherror(name = "TargetAddressNotAllowed", abi = "TargetAddressNotAllowed()")]
1011    pub struct TargetAddressNotAllowed;
1012    ///Custom Error type `TargetIsNotScoped` with signature `TargetIsNotScoped()` and selector `0x4a890321`
1013    #[derive(
1014        Clone,
1015        ::ethers::contract::EthError,
1016        ::ethers::contract::EthDisplay,
1017        serde::Serialize,
1018        serde::Deserialize,
1019        Default,
1020        Debug,
1021        PartialEq,
1022        Eq,
1023        Hash
1024    )]
1025    #[etherror(name = "TargetIsNotScoped", abi = "TargetIsNotScoped()")]
1026    pub struct TargetIsNotScoped;
1027    ///Custom Error type `TargetIsScoped` with signature `TargetIsScoped()` and selector `0xe8c07d2a`
1028    #[derive(
1029        Clone,
1030        ::ethers::contract::EthError,
1031        ::ethers::contract::EthDisplay,
1032        serde::Serialize,
1033        serde::Deserialize,
1034        Default,
1035        Debug,
1036        PartialEq,
1037        Eq,
1038        Hash
1039    )]
1040    #[etherror(name = "TargetIsScoped", abi = "TargetIsScoped()")]
1041    pub struct TargetIsScoped;
1042    ///Custom Error type `UnacceptableMultiSendOffset` with signature `UnacceptableMultiSendOffset()` and selector `0x7ed11137`
1043    #[derive(
1044        Clone,
1045        ::ethers::contract::EthError,
1046        ::ethers::contract::EthDisplay,
1047        serde::Serialize,
1048        serde::Deserialize,
1049        Default,
1050        Debug,
1051        PartialEq,
1052        Eq,
1053        Hash
1054    )]
1055    #[etherror(
1056        name = "UnacceptableMultiSendOffset",
1057        abi = "UnacceptableMultiSendOffset()"
1058    )]
1059    pub struct UnacceptableMultiSendOffset;
1060    ///Container type for all of the contract's custom errors
1061    #[derive(
1062        Clone,
1063        ::ethers::contract::EthAbiType,
1064        serde::Serialize,
1065        serde::Deserialize,
1066        Debug,
1067        PartialEq,
1068        Eq,
1069        Hash
1070    )]
1071    pub enum HoprCapabilityPermissionsErrors {
1072        AddressIsZero(AddressIsZero),
1073        ArrayTooLong(ArrayTooLong),
1074        ArraysDifferentLength(ArraysDifferentLength),
1075        CalldataOutOfBounds(CalldataOutOfBounds),
1076        DefaultPermissionRejected(DefaultPermissionRejected),
1077        DelegateCallNotAllowed(DelegateCallNotAllowed),
1078        FunctionSignatureTooShort(FunctionSignatureTooShort),
1079        GranularPermissionRejected(GranularPermissionRejected),
1080        NoMembership(NoMembership),
1081        NodePermissionRejected(NodePermissionRejected),
1082        ParameterNotAllowed(ParameterNotAllowed),
1083        PermissionNotConfigured(PermissionNotConfigured),
1084        SendNotAllowed(SendNotAllowed),
1085        TargetAddressNotAllowed(TargetAddressNotAllowed),
1086        TargetIsNotScoped(TargetIsNotScoped),
1087        TargetIsScoped(TargetIsScoped),
1088        UnacceptableMultiSendOffset(UnacceptableMultiSendOffset),
1089        /// The standard solidity revert string, with selector
1090        /// Error(string) -- 0x08c379a0
1091        RevertString(::std::string::String),
1092    }
1093    impl ::ethers::core::abi::AbiDecode for HoprCapabilityPermissionsErrors {
1094        fn decode(
1095            data: impl AsRef<[u8]>,
1096        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
1097            let data = data.as_ref();
1098            if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(
1099                data,
1100            ) {
1101                return Ok(Self::RevertString(decoded));
1102            }
1103            if let Ok(decoded) = <AddressIsZero as ::ethers::core::abi::AbiDecode>::decode(
1104                data,
1105            ) {
1106                return Ok(Self::AddressIsZero(decoded));
1107            }
1108            if let Ok(decoded) = <ArrayTooLong as ::ethers::core::abi::AbiDecode>::decode(
1109                data,
1110            ) {
1111                return Ok(Self::ArrayTooLong(decoded));
1112            }
1113            if let Ok(decoded) = <ArraysDifferentLength as ::ethers::core::abi::AbiDecode>::decode(
1114                data,
1115            ) {
1116                return Ok(Self::ArraysDifferentLength(decoded));
1117            }
1118            if let Ok(decoded) = <CalldataOutOfBounds as ::ethers::core::abi::AbiDecode>::decode(
1119                data,
1120            ) {
1121                return Ok(Self::CalldataOutOfBounds(decoded));
1122            }
1123            if let Ok(decoded) = <DefaultPermissionRejected as ::ethers::core::abi::AbiDecode>::decode(
1124                data,
1125            ) {
1126                return Ok(Self::DefaultPermissionRejected(decoded));
1127            }
1128            if let Ok(decoded) = <DelegateCallNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
1129                data,
1130            ) {
1131                return Ok(Self::DelegateCallNotAllowed(decoded));
1132            }
1133            if let Ok(decoded) = <FunctionSignatureTooShort as ::ethers::core::abi::AbiDecode>::decode(
1134                data,
1135            ) {
1136                return Ok(Self::FunctionSignatureTooShort(decoded));
1137            }
1138            if let Ok(decoded) = <GranularPermissionRejected as ::ethers::core::abi::AbiDecode>::decode(
1139                data,
1140            ) {
1141                return Ok(Self::GranularPermissionRejected(decoded));
1142            }
1143            if let Ok(decoded) = <NoMembership as ::ethers::core::abi::AbiDecode>::decode(
1144                data,
1145            ) {
1146                return Ok(Self::NoMembership(decoded));
1147            }
1148            if let Ok(decoded) = <NodePermissionRejected as ::ethers::core::abi::AbiDecode>::decode(
1149                data,
1150            ) {
1151                return Ok(Self::NodePermissionRejected(decoded));
1152            }
1153            if let Ok(decoded) = <ParameterNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
1154                data,
1155            ) {
1156                return Ok(Self::ParameterNotAllowed(decoded));
1157            }
1158            if let Ok(decoded) = <PermissionNotConfigured as ::ethers::core::abi::AbiDecode>::decode(
1159                data,
1160            ) {
1161                return Ok(Self::PermissionNotConfigured(decoded));
1162            }
1163            if let Ok(decoded) = <SendNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
1164                data,
1165            ) {
1166                return Ok(Self::SendNotAllowed(decoded));
1167            }
1168            if let Ok(decoded) = <TargetAddressNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
1169                data,
1170            ) {
1171                return Ok(Self::TargetAddressNotAllowed(decoded));
1172            }
1173            if let Ok(decoded) = <TargetIsNotScoped as ::ethers::core::abi::AbiDecode>::decode(
1174                data,
1175            ) {
1176                return Ok(Self::TargetIsNotScoped(decoded));
1177            }
1178            if let Ok(decoded) = <TargetIsScoped as ::ethers::core::abi::AbiDecode>::decode(
1179                data,
1180            ) {
1181                return Ok(Self::TargetIsScoped(decoded));
1182            }
1183            if let Ok(decoded) = <UnacceptableMultiSendOffset as ::ethers::core::abi::AbiDecode>::decode(
1184                data,
1185            ) {
1186                return Ok(Self::UnacceptableMultiSendOffset(decoded));
1187            }
1188            Err(::ethers::core::abi::Error::InvalidData.into())
1189        }
1190    }
1191    impl ::ethers::core::abi::AbiEncode for HoprCapabilityPermissionsErrors {
1192        fn encode(self) -> ::std::vec::Vec<u8> {
1193            match self {
1194                Self::AddressIsZero(element) => {
1195                    ::ethers::core::abi::AbiEncode::encode(element)
1196                }
1197                Self::ArrayTooLong(element) => {
1198                    ::ethers::core::abi::AbiEncode::encode(element)
1199                }
1200                Self::ArraysDifferentLength(element) => {
1201                    ::ethers::core::abi::AbiEncode::encode(element)
1202                }
1203                Self::CalldataOutOfBounds(element) => {
1204                    ::ethers::core::abi::AbiEncode::encode(element)
1205                }
1206                Self::DefaultPermissionRejected(element) => {
1207                    ::ethers::core::abi::AbiEncode::encode(element)
1208                }
1209                Self::DelegateCallNotAllowed(element) => {
1210                    ::ethers::core::abi::AbiEncode::encode(element)
1211                }
1212                Self::FunctionSignatureTooShort(element) => {
1213                    ::ethers::core::abi::AbiEncode::encode(element)
1214                }
1215                Self::GranularPermissionRejected(element) => {
1216                    ::ethers::core::abi::AbiEncode::encode(element)
1217                }
1218                Self::NoMembership(element) => {
1219                    ::ethers::core::abi::AbiEncode::encode(element)
1220                }
1221                Self::NodePermissionRejected(element) => {
1222                    ::ethers::core::abi::AbiEncode::encode(element)
1223                }
1224                Self::ParameterNotAllowed(element) => {
1225                    ::ethers::core::abi::AbiEncode::encode(element)
1226                }
1227                Self::PermissionNotConfigured(element) => {
1228                    ::ethers::core::abi::AbiEncode::encode(element)
1229                }
1230                Self::SendNotAllowed(element) => {
1231                    ::ethers::core::abi::AbiEncode::encode(element)
1232                }
1233                Self::TargetAddressNotAllowed(element) => {
1234                    ::ethers::core::abi::AbiEncode::encode(element)
1235                }
1236                Self::TargetIsNotScoped(element) => {
1237                    ::ethers::core::abi::AbiEncode::encode(element)
1238                }
1239                Self::TargetIsScoped(element) => {
1240                    ::ethers::core::abi::AbiEncode::encode(element)
1241                }
1242                Self::UnacceptableMultiSendOffset(element) => {
1243                    ::ethers::core::abi::AbiEncode::encode(element)
1244                }
1245                Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s),
1246            }
1247        }
1248    }
1249    impl ::ethers::contract::ContractRevert for HoprCapabilityPermissionsErrors {
1250        fn valid_selector(selector: [u8; 4]) -> bool {
1251            match selector {
1252                [0x08, 0xc3, 0x79, 0xa0] => true,
1253                _ if selector
1254                    == <AddressIsZero as ::ethers::contract::EthError>::selector() => {
1255                    true
1256                }
1257                _ if selector
1258                    == <ArrayTooLong as ::ethers::contract::EthError>::selector() => true,
1259                _ if selector
1260                    == <ArraysDifferentLength as ::ethers::contract::EthError>::selector() => {
1261                    true
1262                }
1263                _ if selector
1264                    == <CalldataOutOfBounds as ::ethers::contract::EthError>::selector() => {
1265                    true
1266                }
1267                _ if selector
1268                    == <DefaultPermissionRejected as ::ethers::contract::EthError>::selector() => {
1269                    true
1270                }
1271                _ if selector
1272                    == <DelegateCallNotAllowed as ::ethers::contract::EthError>::selector() => {
1273                    true
1274                }
1275                _ if selector
1276                    == <FunctionSignatureTooShort as ::ethers::contract::EthError>::selector() => {
1277                    true
1278                }
1279                _ if selector
1280                    == <GranularPermissionRejected as ::ethers::contract::EthError>::selector() => {
1281                    true
1282                }
1283                _ if selector
1284                    == <NoMembership as ::ethers::contract::EthError>::selector() => true,
1285                _ if selector
1286                    == <NodePermissionRejected as ::ethers::contract::EthError>::selector() => {
1287                    true
1288                }
1289                _ if selector
1290                    == <ParameterNotAllowed as ::ethers::contract::EthError>::selector() => {
1291                    true
1292                }
1293                _ if selector
1294                    == <PermissionNotConfigured as ::ethers::contract::EthError>::selector() => {
1295                    true
1296                }
1297                _ if selector
1298                    == <SendNotAllowed as ::ethers::contract::EthError>::selector() => {
1299                    true
1300                }
1301                _ if selector
1302                    == <TargetAddressNotAllowed as ::ethers::contract::EthError>::selector() => {
1303                    true
1304                }
1305                _ if selector
1306                    == <TargetIsNotScoped as ::ethers::contract::EthError>::selector() => {
1307                    true
1308                }
1309                _ if selector
1310                    == <TargetIsScoped as ::ethers::contract::EthError>::selector() => {
1311                    true
1312                }
1313                _ if selector
1314                    == <UnacceptableMultiSendOffset as ::ethers::contract::EthError>::selector() => {
1315                    true
1316                }
1317                _ => false,
1318            }
1319        }
1320    }
1321    impl ::core::fmt::Display for HoprCapabilityPermissionsErrors {
1322        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1323            match self {
1324                Self::AddressIsZero(element) => ::core::fmt::Display::fmt(element, f),
1325                Self::ArrayTooLong(element) => ::core::fmt::Display::fmt(element, f),
1326                Self::ArraysDifferentLength(element) => {
1327                    ::core::fmt::Display::fmt(element, f)
1328                }
1329                Self::CalldataOutOfBounds(element) => {
1330                    ::core::fmt::Display::fmt(element, f)
1331                }
1332                Self::DefaultPermissionRejected(element) => {
1333                    ::core::fmt::Display::fmt(element, f)
1334                }
1335                Self::DelegateCallNotAllowed(element) => {
1336                    ::core::fmt::Display::fmt(element, f)
1337                }
1338                Self::FunctionSignatureTooShort(element) => {
1339                    ::core::fmt::Display::fmt(element, f)
1340                }
1341                Self::GranularPermissionRejected(element) => {
1342                    ::core::fmt::Display::fmt(element, f)
1343                }
1344                Self::NoMembership(element) => ::core::fmt::Display::fmt(element, f),
1345                Self::NodePermissionRejected(element) => {
1346                    ::core::fmt::Display::fmt(element, f)
1347                }
1348                Self::ParameterNotAllowed(element) => {
1349                    ::core::fmt::Display::fmt(element, f)
1350                }
1351                Self::PermissionNotConfigured(element) => {
1352                    ::core::fmt::Display::fmt(element, f)
1353                }
1354                Self::SendNotAllowed(element) => ::core::fmt::Display::fmt(element, f),
1355                Self::TargetAddressNotAllowed(element) => {
1356                    ::core::fmt::Display::fmt(element, f)
1357                }
1358                Self::TargetIsNotScoped(element) => ::core::fmt::Display::fmt(element, f),
1359                Self::TargetIsScoped(element) => ::core::fmt::Display::fmt(element, f),
1360                Self::UnacceptableMultiSendOffset(element) => {
1361                    ::core::fmt::Display::fmt(element, f)
1362                }
1363                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
1364            }
1365        }
1366    }
1367    impl ::core::convert::From<::std::string::String>
1368    for HoprCapabilityPermissionsErrors {
1369        fn from(value: String) -> Self {
1370            Self::RevertString(value)
1371        }
1372    }
1373    impl ::core::convert::From<AddressIsZero> for HoprCapabilityPermissionsErrors {
1374        fn from(value: AddressIsZero) -> Self {
1375            Self::AddressIsZero(value)
1376        }
1377    }
1378    impl ::core::convert::From<ArrayTooLong> for HoprCapabilityPermissionsErrors {
1379        fn from(value: ArrayTooLong) -> Self {
1380            Self::ArrayTooLong(value)
1381        }
1382    }
1383    impl ::core::convert::From<ArraysDifferentLength>
1384    for HoprCapabilityPermissionsErrors {
1385        fn from(value: ArraysDifferentLength) -> Self {
1386            Self::ArraysDifferentLength(value)
1387        }
1388    }
1389    impl ::core::convert::From<CalldataOutOfBounds> for HoprCapabilityPermissionsErrors {
1390        fn from(value: CalldataOutOfBounds) -> Self {
1391            Self::CalldataOutOfBounds(value)
1392        }
1393    }
1394    impl ::core::convert::From<DefaultPermissionRejected>
1395    for HoprCapabilityPermissionsErrors {
1396        fn from(value: DefaultPermissionRejected) -> Self {
1397            Self::DefaultPermissionRejected(value)
1398        }
1399    }
1400    impl ::core::convert::From<DelegateCallNotAllowed>
1401    for HoprCapabilityPermissionsErrors {
1402        fn from(value: DelegateCallNotAllowed) -> Self {
1403            Self::DelegateCallNotAllowed(value)
1404        }
1405    }
1406    impl ::core::convert::From<FunctionSignatureTooShort>
1407    for HoprCapabilityPermissionsErrors {
1408        fn from(value: FunctionSignatureTooShort) -> Self {
1409            Self::FunctionSignatureTooShort(value)
1410        }
1411    }
1412    impl ::core::convert::From<GranularPermissionRejected>
1413    for HoprCapabilityPermissionsErrors {
1414        fn from(value: GranularPermissionRejected) -> Self {
1415            Self::GranularPermissionRejected(value)
1416        }
1417    }
1418    impl ::core::convert::From<NoMembership> for HoprCapabilityPermissionsErrors {
1419        fn from(value: NoMembership) -> Self {
1420            Self::NoMembership(value)
1421        }
1422    }
1423    impl ::core::convert::From<NodePermissionRejected>
1424    for HoprCapabilityPermissionsErrors {
1425        fn from(value: NodePermissionRejected) -> Self {
1426            Self::NodePermissionRejected(value)
1427        }
1428    }
1429    impl ::core::convert::From<ParameterNotAllowed> for HoprCapabilityPermissionsErrors {
1430        fn from(value: ParameterNotAllowed) -> Self {
1431            Self::ParameterNotAllowed(value)
1432        }
1433    }
1434    impl ::core::convert::From<PermissionNotConfigured>
1435    for HoprCapabilityPermissionsErrors {
1436        fn from(value: PermissionNotConfigured) -> Self {
1437            Self::PermissionNotConfigured(value)
1438        }
1439    }
1440    impl ::core::convert::From<SendNotAllowed> for HoprCapabilityPermissionsErrors {
1441        fn from(value: SendNotAllowed) -> Self {
1442            Self::SendNotAllowed(value)
1443        }
1444    }
1445    impl ::core::convert::From<TargetAddressNotAllowed>
1446    for HoprCapabilityPermissionsErrors {
1447        fn from(value: TargetAddressNotAllowed) -> Self {
1448            Self::TargetAddressNotAllowed(value)
1449        }
1450    }
1451    impl ::core::convert::From<TargetIsNotScoped> for HoprCapabilityPermissionsErrors {
1452        fn from(value: TargetIsNotScoped) -> Self {
1453            Self::TargetIsNotScoped(value)
1454        }
1455    }
1456    impl ::core::convert::From<TargetIsScoped> for HoprCapabilityPermissionsErrors {
1457        fn from(value: TargetIsScoped) -> Self {
1458            Self::TargetIsScoped(value)
1459        }
1460    }
1461    impl ::core::convert::From<UnacceptableMultiSendOffset>
1462    for HoprCapabilityPermissionsErrors {
1463        fn from(value: UnacceptableMultiSendOffset) -> Self {
1464            Self::UnacceptableMultiSendOffset(value)
1465        }
1466    }
1467    #[derive(
1468        Clone,
1469        ::ethers::contract::EthEvent,
1470        ::ethers::contract::EthDisplay,
1471        serde::Serialize,
1472        serde::Deserialize,
1473        Default,
1474        Debug,
1475        PartialEq,
1476        Eq,
1477        Hash
1478    )]
1479    #[ethevent(name = "RevokedTarget", abi = "RevokedTarget(address)")]
1480    pub struct RevokedTargetFilter {
1481        #[ethevent(indexed)]
1482        pub target_address: ::ethers::core::types::Address,
1483    }
1484    #[derive(
1485        Clone,
1486        ::ethers::contract::EthEvent,
1487        ::ethers::contract::EthDisplay,
1488        serde::Serialize,
1489        serde::Deserialize,
1490        Default,
1491        Debug,
1492        PartialEq,
1493        Eq,
1494        Hash
1495    )]
1496    #[ethevent(
1497        name = "ScopedGranularChannelCapability",
1498        abi = "ScopedGranularChannelCapability(address,bytes32,bytes4,uint8)"
1499    )]
1500    pub struct ScopedGranularChannelCapabilityFilter {
1501        #[ethevent(indexed)]
1502        pub target_address: ::ethers::core::types::Address,
1503        #[ethevent(indexed)]
1504        pub channel_id: [u8; 32],
1505        pub selector: [u8; 4],
1506        pub permission: u8,
1507    }
1508    #[derive(
1509        Clone,
1510        ::ethers::contract::EthEvent,
1511        ::ethers::contract::EthDisplay,
1512        serde::Serialize,
1513        serde::Deserialize,
1514        Default,
1515        Debug,
1516        PartialEq,
1517        Eq,
1518        Hash
1519    )]
1520    #[ethevent(
1521        name = "ScopedGranularSendCapability",
1522        abi = "ScopedGranularSendCapability(address,address,uint8)"
1523    )]
1524    pub struct ScopedGranularSendCapabilityFilter {
1525        #[ethevent(indexed)]
1526        pub node_address: ::ethers::core::types::Address,
1527        #[ethevent(indexed)]
1528        pub recipient_address: ::ethers::core::types::Address,
1529        pub permission: u8,
1530    }
1531    #[derive(
1532        Clone,
1533        ::ethers::contract::EthEvent,
1534        ::ethers::contract::EthDisplay,
1535        serde::Serialize,
1536        serde::Deserialize,
1537        Default,
1538        Debug,
1539        PartialEq,
1540        Eq,
1541        Hash
1542    )]
1543    #[ethevent(
1544        name = "ScopedGranularTokenCapability",
1545        abi = "ScopedGranularTokenCapability(address,address,address,bytes4,uint8)"
1546    )]
1547    pub struct ScopedGranularTokenCapabilityFilter {
1548        #[ethevent(indexed)]
1549        pub node_address: ::ethers::core::types::Address,
1550        #[ethevent(indexed)]
1551        pub target_address: ::ethers::core::types::Address,
1552        #[ethevent(indexed)]
1553        pub recipient_address: ::ethers::core::types::Address,
1554        pub selector: [u8; 4],
1555        pub permission: u8,
1556    }
1557    #[derive(
1558        Clone,
1559        ::ethers::contract::EthEvent,
1560        ::ethers::contract::EthDisplay,
1561        serde::Serialize,
1562        serde::Deserialize,
1563        Default,
1564        Debug,
1565        PartialEq,
1566        Eq,
1567        Hash
1568    )]
1569    #[ethevent(
1570        name = "ScopedTargetChannels",
1571        abi = "ScopedTargetChannels(address,uint256)"
1572    )]
1573    pub struct ScopedTargetChannelsFilter {
1574        #[ethevent(indexed)]
1575        pub target_address: ::ethers::core::types::Address,
1576        pub target: ::ethers::core::types::U256,
1577    }
1578    #[derive(
1579        Clone,
1580        ::ethers::contract::EthEvent,
1581        ::ethers::contract::EthDisplay,
1582        serde::Serialize,
1583        serde::Deserialize,
1584        Default,
1585        Debug,
1586        PartialEq,
1587        Eq,
1588        Hash
1589    )]
1590    #[ethevent(name = "ScopedTargetSend", abi = "ScopedTargetSend(address,uint256)")]
1591    pub struct ScopedTargetSendFilter {
1592        #[ethevent(indexed)]
1593        pub target_address: ::ethers::core::types::Address,
1594        pub target: ::ethers::core::types::U256,
1595    }
1596    #[derive(
1597        Clone,
1598        ::ethers::contract::EthEvent,
1599        ::ethers::contract::EthDisplay,
1600        serde::Serialize,
1601        serde::Deserialize,
1602        Default,
1603        Debug,
1604        PartialEq,
1605        Eq,
1606        Hash
1607    )]
1608    #[ethevent(name = "ScopedTargetToken", abi = "ScopedTargetToken(address,uint256)")]
1609    pub struct ScopedTargetTokenFilter {
1610        #[ethevent(indexed)]
1611        pub target_address: ::ethers::core::types::Address,
1612        pub target: ::ethers::core::types::U256,
1613    }
1614    ///Container type for all of the contract's events
1615    #[derive(
1616        Clone,
1617        ::ethers::contract::EthAbiType,
1618        serde::Serialize,
1619        serde::Deserialize,
1620        Debug,
1621        PartialEq,
1622        Eq,
1623        Hash
1624    )]
1625    pub enum HoprCapabilityPermissionsEvents {
1626        RevokedTargetFilter(RevokedTargetFilter),
1627        ScopedGranularChannelCapabilityFilter(ScopedGranularChannelCapabilityFilter),
1628        ScopedGranularSendCapabilityFilter(ScopedGranularSendCapabilityFilter),
1629        ScopedGranularTokenCapabilityFilter(ScopedGranularTokenCapabilityFilter),
1630        ScopedTargetChannelsFilter(ScopedTargetChannelsFilter),
1631        ScopedTargetSendFilter(ScopedTargetSendFilter),
1632        ScopedTargetTokenFilter(ScopedTargetTokenFilter),
1633    }
1634    impl ::ethers::contract::EthLogDecode for HoprCapabilityPermissionsEvents {
1635        fn decode_log(
1636            log: &::ethers::core::abi::RawLog,
1637        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
1638            if let Ok(decoded) = RevokedTargetFilter::decode_log(log) {
1639                return Ok(HoprCapabilityPermissionsEvents::RevokedTargetFilter(decoded));
1640            }
1641            if let Ok(decoded) = ScopedGranularChannelCapabilityFilter::decode_log(log) {
1642                return Ok(
1643                    HoprCapabilityPermissionsEvents::ScopedGranularChannelCapabilityFilter(
1644                        decoded,
1645                    ),
1646                );
1647            }
1648            if let Ok(decoded) = ScopedGranularSendCapabilityFilter::decode_log(log) {
1649                return Ok(
1650                    HoprCapabilityPermissionsEvents::ScopedGranularSendCapabilityFilter(
1651                        decoded,
1652                    ),
1653                );
1654            }
1655            if let Ok(decoded) = ScopedGranularTokenCapabilityFilter::decode_log(log) {
1656                return Ok(
1657                    HoprCapabilityPermissionsEvents::ScopedGranularTokenCapabilityFilter(
1658                        decoded,
1659                    ),
1660                );
1661            }
1662            if let Ok(decoded) = ScopedTargetChannelsFilter::decode_log(log) {
1663                return Ok(
1664                    HoprCapabilityPermissionsEvents::ScopedTargetChannelsFilter(decoded),
1665                );
1666            }
1667            if let Ok(decoded) = ScopedTargetSendFilter::decode_log(log) {
1668                return Ok(
1669                    HoprCapabilityPermissionsEvents::ScopedTargetSendFilter(decoded),
1670                );
1671            }
1672            if let Ok(decoded) = ScopedTargetTokenFilter::decode_log(log) {
1673                return Ok(
1674                    HoprCapabilityPermissionsEvents::ScopedTargetTokenFilter(decoded),
1675                );
1676            }
1677            Err(::ethers::core::abi::Error::InvalidData)
1678        }
1679    }
1680    impl ::core::fmt::Display for HoprCapabilityPermissionsEvents {
1681        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1682            match self {
1683                Self::RevokedTargetFilter(element) => {
1684                    ::core::fmt::Display::fmt(element, f)
1685                }
1686                Self::ScopedGranularChannelCapabilityFilter(element) => {
1687                    ::core::fmt::Display::fmt(element, f)
1688                }
1689                Self::ScopedGranularSendCapabilityFilter(element) => {
1690                    ::core::fmt::Display::fmt(element, f)
1691                }
1692                Self::ScopedGranularTokenCapabilityFilter(element) => {
1693                    ::core::fmt::Display::fmt(element, f)
1694                }
1695                Self::ScopedTargetChannelsFilter(element) => {
1696                    ::core::fmt::Display::fmt(element, f)
1697                }
1698                Self::ScopedTargetSendFilter(element) => {
1699                    ::core::fmt::Display::fmt(element, f)
1700                }
1701                Self::ScopedTargetTokenFilter(element) => {
1702                    ::core::fmt::Display::fmt(element, f)
1703                }
1704            }
1705        }
1706    }
1707    impl ::core::convert::From<RevokedTargetFilter> for HoprCapabilityPermissionsEvents {
1708        fn from(value: RevokedTargetFilter) -> Self {
1709            Self::RevokedTargetFilter(value)
1710        }
1711    }
1712    impl ::core::convert::From<ScopedGranularChannelCapabilityFilter>
1713    for HoprCapabilityPermissionsEvents {
1714        fn from(value: ScopedGranularChannelCapabilityFilter) -> Self {
1715            Self::ScopedGranularChannelCapabilityFilter(value)
1716        }
1717    }
1718    impl ::core::convert::From<ScopedGranularSendCapabilityFilter>
1719    for HoprCapabilityPermissionsEvents {
1720        fn from(value: ScopedGranularSendCapabilityFilter) -> Self {
1721            Self::ScopedGranularSendCapabilityFilter(value)
1722        }
1723    }
1724    impl ::core::convert::From<ScopedGranularTokenCapabilityFilter>
1725    for HoprCapabilityPermissionsEvents {
1726        fn from(value: ScopedGranularTokenCapabilityFilter) -> Self {
1727            Self::ScopedGranularTokenCapabilityFilter(value)
1728        }
1729    }
1730    impl ::core::convert::From<ScopedTargetChannelsFilter>
1731    for HoprCapabilityPermissionsEvents {
1732        fn from(value: ScopedTargetChannelsFilter) -> Self {
1733            Self::ScopedTargetChannelsFilter(value)
1734        }
1735    }
1736    impl ::core::convert::From<ScopedTargetSendFilter>
1737    for HoprCapabilityPermissionsEvents {
1738        fn from(value: ScopedTargetSendFilter) -> Self {
1739            Self::ScopedTargetSendFilter(value)
1740        }
1741    }
1742    impl ::core::convert::From<ScopedTargetTokenFilter>
1743    for HoprCapabilityPermissionsEvents {
1744        fn from(value: ScopedTargetTokenFilter) -> Self {
1745            Self::ScopedTargetTokenFilter(value)
1746        }
1747    }
1748    ///Container type for all input parameters for the `APPROVE_SELECTOR` function with signature `APPROVE_SELECTOR()` and selector `0xa0865839`
1749    #[derive(
1750        Clone,
1751        ::ethers::contract::EthCall,
1752        ::ethers::contract::EthDisplay,
1753        serde::Serialize,
1754        serde::Deserialize,
1755        Default,
1756        Debug,
1757        PartialEq,
1758        Eq,
1759        Hash
1760    )]
1761    #[ethcall(name = "APPROVE_SELECTOR", abi = "APPROVE_SELECTOR()")]
1762    pub struct ApproveSelectorCall;
1763    ///Container type for all input parameters for the `CLOSE_INCOMING_CHANNEL_SELECTOR` function with signature `CLOSE_INCOMING_CHANNEL_SELECTOR()` and selector `0x678a5efb`
1764    #[derive(
1765        Clone,
1766        ::ethers::contract::EthCall,
1767        ::ethers::contract::EthDisplay,
1768        serde::Serialize,
1769        serde::Deserialize,
1770        Default,
1771        Debug,
1772        PartialEq,
1773        Eq,
1774        Hash
1775    )]
1776    #[ethcall(
1777        name = "CLOSE_INCOMING_CHANNEL_SELECTOR",
1778        abi = "CLOSE_INCOMING_CHANNEL_SELECTOR()"
1779    )]
1780    pub struct CloseIncomingChannelSelectorCall;
1781    ///Container type for all input parameters for the `FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR` function with signature `FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR()` and selector `0x8167b67e`
1782    #[derive(
1783        Clone,
1784        ::ethers::contract::EthCall,
1785        ::ethers::contract::EthDisplay,
1786        serde::Serialize,
1787        serde::Deserialize,
1788        Default,
1789        Debug,
1790        PartialEq,
1791        Eq,
1792        Hash
1793    )]
1794    #[ethcall(
1795        name = "FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR",
1796        abi = "FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR()"
1797    )]
1798    pub struct FinalizeOutgoingChannelClosureSelectorCall;
1799    ///Container type for all input parameters for the `FUND_CHANNEL_SELECTOR` function with signature `FUND_CHANNEL_SELECTOR()` and selector `0xb677a40f`
1800    #[derive(
1801        Clone,
1802        ::ethers::contract::EthCall,
1803        ::ethers::contract::EthDisplay,
1804        serde::Serialize,
1805        serde::Deserialize,
1806        Default,
1807        Debug,
1808        PartialEq,
1809        Eq,
1810        Hash
1811    )]
1812    #[ethcall(name = "FUND_CHANNEL_SELECTOR", abi = "FUND_CHANNEL_SELECTOR()")]
1813    pub struct FundChannelSelectorCall;
1814    ///Container type for all input parameters for the `INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR` function with signature `INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR()` and selector `0x5daa9e24`
1815    #[derive(
1816        Clone,
1817        ::ethers::contract::EthCall,
1818        ::ethers::contract::EthDisplay,
1819        serde::Serialize,
1820        serde::Deserialize,
1821        Default,
1822        Debug,
1823        PartialEq,
1824        Eq,
1825        Hash
1826    )]
1827    #[ethcall(
1828        name = "INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR",
1829        abi = "INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR()"
1830    )]
1831    pub struct InitiateOutgoingChannelClosureSelectorCall;
1832    ///Container type for all input parameters for the `REDEEM_TICKET_SELECTOR` function with signature `REDEEM_TICKET_SELECTOR()` and selector `0x51d2614b`
1833    #[derive(
1834        Clone,
1835        ::ethers::contract::EthCall,
1836        ::ethers::contract::EthDisplay,
1837        serde::Serialize,
1838        serde::Deserialize,
1839        Default,
1840        Debug,
1841        PartialEq,
1842        Eq,
1843        Hash
1844    )]
1845    #[ethcall(name = "REDEEM_TICKET_SELECTOR", abi = "REDEEM_TICKET_SELECTOR()")]
1846    pub struct RedeemTicketSelectorCall;
1847    ///Container type for all input parameters for the `SEND_SELECTOR` function with signature `SEND_SELECTOR()` and selector `0x7a757115`
1848    #[derive(
1849        Clone,
1850        ::ethers::contract::EthCall,
1851        ::ethers::contract::EthDisplay,
1852        serde::Serialize,
1853        serde::Deserialize,
1854        Default,
1855        Debug,
1856        PartialEq,
1857        Eq,
1858        Hash
1859    )]
1860    #[ethcall(name = "SEND_SELECTOR", abi = "SEND_SELECTOR()")]
1861    pub struct SendSelectorCall;
1862    ///Container type for all of the contract's call
1863    #[derive(
1864        Clone,
1865        ::ethers::contract::EthAbiType,
1866        serde::Serialize,
1867        serde::Deserialize,
1868        Debug,
1869        PartialEq,
1870        Eq,
1871        Hash
1872    )]
1873    pub enum HoprCapabilityPermissionsCalls {
1874        ApproveSelector(ApproveSelectorCall),
1875        CloseIncomingChannelSelector(CloseIncomingChannelSelectorCall),
1876        FinalizeOutgoingChannelClosureSelector(
1877            FinalizeOutgoingChannelClosureSelectorCall,
1878        ),
1879        FundChannelSelector(FundChannelSelectorCall),
1880        InitiateOutgoingChannelClosureSelector(
1881            InitiateOutgoingChannelClosureSelectorCall,
1882        ),
1883        RedeemTicketSelector(RedeemTicketSelectorCall),
1884        SendSelector(SendSelectorCall),
1885    }
1886    impl ::ethers::core::abi::AbiDecode for HoprCapabilityPermissionsCalls {
1887        fn decode(
1888            data: impl AsRef<[u8]>,
1889        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
1890            let data = data.as_ref();
1891            if let Ok(decoded) = <ApproveSelectorCall as ::ethers::core::abi::AbiDecode>::decode(
1892                data,
1893            ) {
1894                return Ok(Self::ApproveSelector(decoded));
1895            }
1896            if let Ok(decoded) = <CloseIncomingChannelSelectorCall as ::ethers::core::abi::AbiDecode>::decode(
1897                data,
1898            ) {
1899                return Ok(Self::CloseIncomingChannelSelector(decoded));
1900            }
1901            if let Ok(decoded) = <FinalizeOutgoingChannelClosureSelectorCall as ::ethers::core::abi::AbiDecode>::decode(
1902                data,
1903            ) {
1904                return Ok(Self::FinalizeOutgoingChannelClosureSelector(decoded));
1905            }
1906            if let Ok(decoded) = <FundChannelSelectorCall as ::ethers::core::abi::AbiDecode>::decode(
1907                data,
1908            ) {
1909                return Ok(Self::FundChannelSelector(decoded));
1910            }
1911            if let Ok(decoded) = <InitiateOutgoingChannelClosureSelectorCall as ::ethers::core::abi::AbiDecode>::decode(
1912                data,
1913            ) {
1914                return Ok(Self::InitiateOutgoingChannelClosureSelector(decoded));
1915            }
1916            if let Ok(decoded) = <RedeemTicketSelectorCall as ::ethers::core::abi::AbiDecode>::decode(
1917                data,
1918            ) {
1919                return Ok(Self::RedeemTicketSelector(decoded));
1920            }
1921            if let Ok(decoded) = <SendSelectorCall as ::ethers::core::abi::AbiDecode>::decode(
1922                data,
1923            ) {
1924                return Ok(Self::SendSelector(decoded));
1925            }
1926            Err(::ethers::core::abi::Error::InvalidData.into())
1927        }
1928    }
1929    impl ::ethers::core::abi::AbiEncode for HoprCapabilityPermissionsCalls {
1930        fn encode(self) -> Vec<u8> {
1931            match self {
1932                Self::ApproveSelector(element) => {
1933                    ::ethers::core::abi::AbiEncode::encode(element)
1934                }
1935                Self::CloseIncomingChannelSelector(element) => {
1936                    ::ethers::core::abi::AbiEncode::encode(element)
1937                }
1938                Self::FinalizeOutgoingChannelClosureSelector(element) => {
1939                    ::ethers::core::abi::AbiEncode::encode(element)
1940                }
1941                Self::FundChannelSelector(element) => {
1942                    ::ethers::core::abi::AbiEncode::encode(element)
1943                }
1944                Self::InitiateOutgoingChannelClosureSelector(element) => {
1945                    ::ethers::core::abi::AbiEncode::encode(element)
1946                }
1947                Self::RedeemTicketSelector(element) => {
1948                    ::ethers::core::abi::AbiEncode::encode(element)
1949                }
1950                Self::SendSelector(element) => {
1951                    ::ethers::core::abi::AbiEncode::encode(element)
1952                }
1953            }
1954        }
1955    }
1956    impl ::core::fmt::Display for HoprCapabilityPermissionsCalls {
1957        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1958            match self {
1959                Self::ApproveSelector(element) => ::core::fmt::Display::fmt(element, f),
1960                Self::CloseIncomingChannelSelector(element) => {
1961                    ::core::fmt::Display::fmt(element, f)
1962                }
1963                Self::FinalizeOutgoingChannelClosureSelector(element) => {
1964                    ::core::fmt::Display::fmt(element, f)
1965                }
1966                Self::FundChannelSelector(element) => {
1967                    ::core::fmt::Display::fmt(element, f)
1968                }
1969                Self::InitiateOutgoingChannelClosureSelector(element) => {
1970                    ::core::fmt::Display::fmt(element, f)
1971                }
1972                Self::RedeemTicketSelector(element) => {
1973                    ::core::fmt::Display::fmt(element, f)
1974                }
1975                Self::SendSelector(element) => ::core::fmt::Display::fmt(element, f),
1976            }
1977        }
1978    }
1979    impl ::core::convert::From<ApproveSelectorCall> for HoprCapabilityPermissionsCalls {
1980        fn from(value: ApproveSelectorCall) -> Self {
1981            Self::ApproveSelector(value)
1982        }
1983    }
1984    impl ::core::convert::From<CloseIncomingChannelSelectorCall>
1985    for HoprCapabilityPermissionsCalls {
1986        fn from(value: CloseIncomingChannelSelectorCall) -> Self {
1987            Self::CloseIncomingChannelSelector(value)
1988        }
1989    }
1990    impl ::core::convert::From<FinalizeOutgoingChannelClosureSelectorCall>
1991    for HoprCapabilityPermissionsCalls {
1992        fn from(value: FinalizeOutgoingChannelClosureSelectorCall) -> Self {
1993            Self::FinalizeOutgoingChannelClosureSelector(value)
1994        }
1995    }
1996    impl ::core::convert::From<FundChannelSelectorCall>
1997    for HoprCapabilityPermissionsCalls {
1998        fn from(value: FundChannelSelectorCall) -> Self {
1999            Self::FundChannelSelector(value)
2000        }
2001    }
2002    impl ::core::convert::From<InitiateOutgoingChannelClosureSelectorCall>
2003    for HoprCapabilityPermissionsCalls {
2004        fn from(value: InitiateOutgoingChannelClosureSelectorCall) -> Self {
2005            Self::InitiateOutgoingChannelClosureSelector(value)
2006        }
2007    }
2008    impl ::core::convert::From<RedeemTicketSelectorCall>
2009    for HoprCapabilityPermissionsCalls {
2010        fn from(value: RedeemTicketSelectorCall) -> Self {
2011            Self::RedeemTicketSelector(value)
2012        }
2013    }
2014    impl ::core::convert::From<SendSelectorCall> for HoprCapabilityPermissionsCalls {
2015        fn from(value: SendSelectorCall) -> Self {
2016            Self::SendSelector(value)
2017        }
2018    }
2019    ///Container type for all return fields from the `APPROVE_SELECTOR` function with signature `APPROVE_SELECTOR()` and selector `0xa0865839`
2020    #[derive(
2021        Clone,
2022        ::ethers::contract::EthAbiType,
2023        ::ethers::contract::EthAbiCodec,
2024        serde::Serialize,
2025        serde::Deserialize,
2026        Default,
2027        Debug,
2028        PartialEq,
2029        Eq,
2030        Hash
2031    )]
2032    pub struct ApproveSelectorReturn(pub [u8; 4]);
2033    ///Container type for all return fields from the `CLOSE_INCOMING_CHANNEL_SELECTOR` function with signature `CLOSE_INCOMING_CHANNEL_SELECTOR()` and selector `0x678a5efb`
2034    #[derive(
2035        Clone,
2036        ::ethers::contract::EthAbiType,
2037        ::ethers::contract::EthAbiCodec,
2038        serde::Serialize,
2039        serde::Deserialize,
2040        Default,
2041        Debug,
2042        PartialEq,
2043        Eq,
2044        Hash
2045    )]
2046    pub struct CloseIncomingChannelSelectorReturn(pub [u8; 4]);
2047    ///Container type for all return fields from the `FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR` function with signature `FINALIZE_OUTGOING_CHANNEL_CLOSURE_SELECTOR()` and selector `0x8167b67e`
2048    #[derive(
2049        Clone,
2050        ::ethers::contract::EthAbiType,
2051        ::ethers::contract::EthAbiCodec,
2052        serde::Serialize,
2053        serde::Deserialize,
2054        Default,
2055        Debug,
2056        PartialEq,
2057        Eq,
2058        Hash
2059    )]
2060    pub struct FinalizeOutgoingChannelClosureSelectorReturn(pub [u8; 4]);
2061    ///Container type for all return fields from the `FUND_CHANNEL_SELECTOR` function with signature `FUND_CHANNEL_SELECTOR()` and selector `0xb677a40f`
2062    #[derive(
2063        Clone,
2064        ::ethers::contract::EthAbiType,
2065        ::ethers::contract::EthAbiCodec,
2066        serde::Serialize,
2067        serde::Deserialize,
2068        Default,
2069        Debug,
2070        PartialEq,
2071        Eq,
2072        Hash
2073    )]
2074    pub struct FundChannelSelectorReturn(pub [u8; 4]);
2075    ///Container type for all return fields from the `INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR` function with signature `INITIATE_OUTGOING_CHANNEL_CLOSURE_SELECTOR()` and selector `0x5daa9e24`
2076    #[derive(
2077        Clone,
2078        ::ethers::contract::EthAbiType,
2079        ::ethers::contract::EthAbiCodec,
2080        serde::Serialize,
2081        serde::Deserialize,
2082        Default,
2083        Debug,
2084        PartialEq,
2085        Eq,
2086        Hash
2087    )]
2088    pub struct InitiateOutgoingChannelClosureSelectorReturn(pub [u8; 4]);
2089    ///Container type for all return fields from the `REDEEM_TICKET_SELECTOR` function with signature `REDEEM_TICKET_SELECTOR()` and selector `0x51d2614b`
2090    #[derive(
2091        Clone,
2092        ::ethers::contract::EthAbiType,
2093        ::ethers::contract::EthAbiCodec,
2094        serde::Serialize,
2095        serde::Deserialize,
2096        Default,
2097        Debug,
2098        PartialEq,
2099        Eq,
2100        Hash
2101    )]
2102    pub struct RedeemTicketSelectorReturn(pub [u8; 4]);
2103    ///Container type for all return fields from the `SEND_SELECTOR` function with signature `SEND_SELECTOR()` and selector `0x7a757115`
2104    #[derive(
2105        Clone,
2106        ::ethers::contract::EthAbiType,
2107        ::ethers::contract::EthAbiCodec,
2108        serde::Serialize,
2109        serde::Deserialize,
2110        Default,
2111        Debug,
2112        PartialEq,
2113        Eq,
2114        Hash
2115    )]
2116    pub struct SendSelectorReturn(pub [u8; 4]);
2117}