1pub use hopr_channels::*;
2#[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_channels {
13 #[allow(deprecated)]
14 fn __abi() -> ::ethers::core::abi::Abi {
15 ::ethers::core::abi::ethabi::Contract {
16 constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor {
17 inputs: ::std::vec![
18 ::ethers::core::abi::ethabi::Param {
19 name: ::std::borrow::ToOwned::to_owned("_token"),
20 kind: ::ethers::core::abi::ethabi::ParamType::Address,
21 internal_type: ::core::option::Option::Some(
22 ::std::borrow::ToOwned::to_owned("address"),
23 ),
24 },
25 ::ethers::core::abi::ethabi::Param {
26 name: ::std::borrow::ToOwned::to_owned(
27 "_noticePeriodChannelClosure",
28 ),
29 kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
30 internal_type: ::core::option::Option::Some(
31 ::std::borrow::ToOwned::to_owned("HoprChannels.Timestamp"),
32 ),
33 },
34 ::ethers::core::abi::ethabi::Param {
35 name: ::std::borrow::ToOwned::to_owned("_safeRegistry"),
36 kind: ::ethers::core::abi::ethabi::ParamType::Address,
37 internal_type: ::core::option::Option::Some(
38 ::std::borrow::ToOwned::to_owned(
39 "contract HoprNodeSafeRegistry",
40 ),
41 ),
42 },
43 ],
44 }),
45 functions: ::core::convert::From::from([
46 (
47 ::std::borrow::ToOwned::to_owned(
48 "ERC777_HOOK_FUND_CHANNEL_MULTI_SIZE",
49 ),
50 ::std::vec![
51 ::ethers::core::abi::ethabi::Function {
52 name: ::std::borrow::ToOwned::to_owned(
53 "ERC777_HOOK_FUND_CHANNEL_MULTI_SIZE",
54 ),
55 inputs: ::std::vec![],
56 outputs: ::std::vec![
57 ::ethers::core::abi::ethabi::Param {
58 name: ::std::string::String::new(),
59 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
60 256usize,
61 ),
62 internal_type: ::core::option::Option::Some(
63 ::std::borrow::ToOwned::to_owned("uint256"),
64 ),
65 },
66 ],
67 constant: ::core::option::Option::None,
68 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
69 },
70 ],
71 ),
72 (
73 ::std::borrow::ToOwned::to_owned("ERC777_HOOK_FUND_CHANNEL_SIZE"),
74 ::std::vec![
75 ::ethers::core::abi::ethabi::Function {
76 name: ::std::borrow::ToOwned::to_owned(
77 "ERC777_HOOK_FUND_CHANNEL_SIZE",
78 ),
79 inputs: ::std::vec![],
80 outputs: ::std::vec![
81 ::ethers::core::abi::ethabi::Param {
82 name: ::std::string::String::new(),
83 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
84 256usize,
85 ),
86 internal_type: ::core::option::Option::Some(
87 ::std::borrow::ToOwned::to_owned("uint256"),
88 ),
89 },
90 ],
91 constant: ::core::option::Option::None,
92 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
93 },
94 ],
95 ),
96 (
97 ::std::borrow::ToOwned::to_owned("LEDGER_VERSION"),
98 ::std::vec![
99 ::ethers::core::abi::ethabi::Function {
100 name: ::std::borrow::ToOwned::to_owned("LEDGER_VERSION"),
101 inputs: ::std::vec![],
102 outputs: ::std::vec![
103 ::ethers::core::abi::ethabi::Param {
104 name: ::std::string::String::new(),
105 kind: ::ethers::core::abi::ethabi::ParamType::String,
106 internal_type: ::core::option::Option::Some(
107 ::std::borrow::ToOwned::to_owned("string"),
108 ),
109 },
110 ],
111 constant: ::core::option::Option::None,
112 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
113 },
114 ],
115 ),
116 (
117 ::std::borrow::ToOwned::to_owned("MAX_USED_BALANCE"),
118 ::std::vec![
119 ::ethers::core::abi::ethabi::Function {
120 name: ::std::borrow::ToOwned::to_owned("MAX_USED_BALANCE"),
121 inputs: ::std::vec![],
122 outputs: ::std::vec![
123 ::ethers::core::abi::ethabi::Param {
124 name: ::std::string::String::new(),
125 kind: ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
126 internal_type: ::core::option::Option::Some(
127 ::std::borrow::ToOwned::to_owned("HoprChannels.Balance"),
128 ),
129 },
130 ],
131 constant: ::core::option::Option::None,
132 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
133 },
134 ],
135 ),
136 (
137 ::std::borrow::ToOwned::to_owned("MIN_USED_BALANCE"),
138 ::std::vec![
139 ::ethers::core::abi::ethabi::Function {
140 name: ::std::borrow::ToOwned::to_owned("MIN_USED_BALANCE"),
141 inputs: ::std::vec![],
142 outputs: ::std::vec![
143 ::ethers::core::abi::ethabi::Param {
144 name: ::std::string::String::new(),
145 kind: ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
146 internal_type: ::core::option::Option::Some(
147 ::std::borrow::ToOwned::to_owned("HoprChannels.Balance"),
148 ),
149 },
150 ],
151 constant: ::core::option::Option::None,
152 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
153 },
154 ],
155 ),
156 (
157 ::std::borrow::ToOwned::to_owned("TOKENS_RECIPIENT_INTERFACE_HASH"),
158 ::std::vec![
159 ::ethers::core::abi::ethabi::Function {
160 name: ::std::borrow::ToOwned::to_owned(
161 "TOKENS_RECIPIENT_INTERFACE_HASH",
162 ),
163 inputs: ::std::vec![],
164 outputs: ::std::vec![
165 ::ethers::core::abi::ethabi::Param {
166 name: ::std::string::String::new(),
167 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
168 32usize,
169 ),
170 internal_type: ::core::option::Option::Some(
171 ::std::borrow::ToOwned::to_owned("bytes32"),
172 ),
173 },
174 ],
175 constant: ::core::option::Option::None,
176 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
177 },
178 ],
179 ),
180 (
181 ::std::borrow::ToOwned::to_owned("VERSION"),
182 ::std::vec![
183 ::ethers::core::abi::ethabi::Function {
184 name: ::std::borrow::ToOwned::to_owned("VERSION"),
185 inputs: ::std::vec![],
186 outputs: ::std::vec![
187 ::ethers::core::abi::ethabi::Param {
188 name: ::std::string::String::new(),
189 kind: ::ethers::core::abi::ethabi::ParamType::String,
190 internal_type: ::core::option::Option::Some(
191 ::std::borrow::ToOwned::to_owned("string"),
192 ),
193 },
194 ],
195 constant: ::core::option::Option::None,
196 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
197 },
198 ],
199 ),
200 (
201 ::std::borrow::ToOwned::to_owned("_currentBlockTimestamp"),
202 ::std::vec![
203 ::ethers::core::abi::ethabi::Function {
204 name: ::std::borrow::ToOwned::to_owned(
205 "_currentBlockTimestamp",
206 ),
207 inputs: ::std::vec![],
208 outputs: ::std::vec![
209 ::ethers::core::abi::ethabi::Param {
210 name: ::std::string::String::new(),
211 kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
212 internal_type: ::core::option::Option::Some(
213 ::std::borrow::ToOwned::to_owned("HoprChannels.Timestamp"),
214 ),
215 },
216 ],
217 constant: ::core::option::Option::None,
218 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
219 },
220 ],
221 ),
222 (
223 ::std::borrow::ToOwned::to_owned("_getChannelId"),
224 ::std::vec![
225 ::ethers::core::abi::ethabi::Function {
226 name: ::std::borrow::ToOwned::to_owned("_getChannelId"),
227 inputs: ::std::vec![
228 ::ethers::core::abi::ethabi::Param {
229 name: ::std::borrow::ToOwned::to_owned("source"),
230 kind: ::ethers::core::abi::ethabi::ParamType::Address,
231 internal_type: ::core::option::Option::Some(
232 ::std::borrow::ToOwned::to_owned("address"),
233 ),
234 },
235 ::ethers::core::abi::ethabi::Param {
236 name: ::std::borrow::ToOwned::to_owned("destination"),
237 kind: ::ethers::core::abi::ethabi::ParamType::Address,
238 internal_type: ::core::option::Option::Some(
239 ::std::borrow::ToOwned::to_owned("address"),
240 ),
241 },
242 ],
243 outputs: ::std::vec![
244 ::ethers::core::abi::ethabi::Param {
245 name: ::std::string::String::new(),
246 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
247 32usize,
248 ),
249 internal_type: ::core::option::Option::Some(
250 ::std::borrow::ToOwned::to_owned("bytes32"),
251 ),
252 },
253 ],
254 constant: ::core::option::Option::None,
255 state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure,
256 },
257 ],
258 ),
259 (
260 ::std::borrow::ToOwned::to_owned("_getTicketHash"),
261 ::std::vec![
262 ::ethers::core::abi::ethabi::Function {
263 name: ::std::borrow::ToOwned::to_owned("_getTicketHash"),
264 inputs: ::std::vec![
265 ::ethers::core::abi::ethabi::Param {
266 name: ::std::borrow::ToOwned::to_owned("redeemable"),
267 kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
268 ::std::vec![
269 ::ethers::core::abi::ethabi::ParamType::Tuple(
270 ::std::vec![
271 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
272 ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
273 ::ethers::core::abi::ethabi::ParamType::Uint(48usize),
274 ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
275 ::ethers::core::abi::ethabi::ParamType::Uint(24usize),
276 ::ethers::core::abi::ethabi::ParamType::Uint(56usize),
277 ],
278 ),
279 ::ethers::core::abi::ethabi::ParamType::Tuple(
280 ::std::vec![
281 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
282 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
283 ],
284 ),
285 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
286 ],
287 ),
288 internal_type: ::core::option::Option::Some(
289 ::std::borrow::ToOwned::to_owned(
290 "struct HoprChannels.RedeemableTicket",
291 ),
292 ),
293 },
294 ],
295 outputs: ::std::vec![
296 ::ethers::core::abi::ethabi::Param {
297 name: ::std::string::String::new(),
298 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
299 32usize,
300 ),
301 internal_type: ::core::option::Option::Some(
302 ::std::borrow::ToOwned::to_owned("bytes32"),
303 ),
304 },
305 ],
306 constant: ::core::option::Option::None,
307 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
308 },
309 ],
310 ),
311 (
312 ::std::borrow::ToOwned::to_owned("_isWinningTicket"),
313 ::std::vec![
314 ::ethers::core::abi::ethabi::Function {
315 name: ::std::borrow::ToOwned::to_owned("_isWinningTicket"),
316 inputs: ::std::vec![
317 ::ethers::core::abi::ethabi::Param {
318 name: ::std::borrow::ToOwned::to_owned("ticketHash"),
319 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
320 32usize,
321 ),
322 internal_type: ::core::option::Option::Some(
323 ::std::borrow::ToOwned::to_owned("bytes32"),
324 ),
325 },
326 ::ethers::core::abi::ethabi::Param {
327 name: ::std::borrow::ToOwned::to_owned("redeemable"),
328 kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
329 ::std::vec![
330 ::ethers::core::abi::ethabi::ParamType::Tuple(
331 ::std::vec![
332 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
333 ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
334 ::ethers::core::abi::ethabi::ParamType::Uint(48usize),
335 ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
336 ::ethers::core::abi::ethabi::ParamType::Uint(24usize),
337 ::ethers::core::abi::ethabi::ParamType::Uint(56usize),
338 ],
339 ),
340 ::ethers::core::abi::ethabi::ParamType::Tuple(
341 ::std::vec![
342 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
343 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
344 ],
345 ),
346 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
347 ],
348 ),
349 internal_type: ::core::option::Option::Some(
350 ::std::borrow::ToOwned::to_owned(
351 "struct HoprChannels.RedeemableTicket",
352 ),
353 ),
354 },
355 ::ethers::core::abi::ethabi::Param {
356 name: ::std::borrow::ToOwned::to_owned("params"),
357 kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
358 ::std::vec![
359 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
360 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
361 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
362 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
363 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
364 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
365 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
366 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
367 ],
368 ),
369 internal_type: ::core::option::Option::Some(
370 ::std::borrow::ToOwned::to_owned(
371 "struct HoprCrypto.VRFParameters",
372 ),
373 ),
374 },
375 ],
376 outputs: ::std::vec![
377 ::ethers::core::abi::ethabi::Param {
378 name: ::std::string::String::new(),
379 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
380 internal_type: ::core::option::Option::Some(
381 ::std::borrow::ToOwned::to_owned("bool"),
382 ),
383 },
384 ],
385 constant: ::core::option::Option::None,
386 state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure,
387 },
388 ],
389 ),
390 (
391 ::std::borrow::ToOwned::to_owned("canImplementInterfaceForAddress"),
392 ::std::vec![
393 ::ethers::core::abi::ethabi::Function {
394 name: ::std::borrow::ToOwned::to_owned(
395 "canImplementInterfaceForAddress",
396 ),
397 inputs: ::std::vec![
398 ::ethers::core::abi::ethabi::Param {
399 name: ::std::borrow::ToOwned::to_owned("interfaceHash"),
400 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
401 32usize,
402 ),
403 internal_type: ::core::option::Option::Some(
404 ::std::borrow::ToOwned::to_owned("bytes32"),
405 ),
406 },
407 ::ethers::core::abi::ethabi::Param {
408 name: ::std::borrow::ToOwned::to_owned("account"),
409 kind: ::ethers::core::abi::ethabi::ParamType::Address,
410 internal_type: ::core::option::Option::Some(
411 ::std::borrow::ToOwned::to_owned("address"),
412 ),
413 },
414 ],
415 outputs: ::std::vec![
416 ::ethers::core::abi::ethabi::Param {
417 name: ::std::string::String::new(),
418 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
419 32usize,
420 ),
421 internal_type: ::core::option::Option::Some(
422 ::std::borrow::ToOwned::to_owned("bytes32"),
423 ),
424 },
425 ],
426 constant: ::core::option::Option::None,
427 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
428 },
429 ],
430 ),
431 (
432 ::std::borrow::ToOwned::to_owned("channels"),
433 ::std::vec![
434 ::ethers::core::abi::ethabi::Function {
435 name: ::std::borrow::ToOwned::to_owned("channels"),
436 inputs: ::std::vec![
437 ::ethers::core::abi::ethabi::Param {
438 name: ::std::string::String::new(),
439 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
440 32usize,
441 ),
442 internal_type: ::core::option::Option::Some(
443 ::std::borrow::ToOwned::to_owned("bytes32"),
444 ),
445 },
446 ],
447 outputs: ::std::vec![
448 ::ethers::core::abi::ethabi::Param {
449 name: ::std::borrow::ToOwned::to_owned("balance"),
450 kind: ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
451 internal_type: ::core::option::Option::Some(
452 ::std::borrow::ToOwned::to_owned("HoprChannels.Balance"),
453 ),
454 },
455 ::ethers::core::abi::ethabi::Param {
456 name: ::std::borrow::ToOwned::to_owned("ticketIndex"),
457 kind: ::ethers::core::abi::ethabi::ParamType::Uint(48usize),
458 internal_type: ::core::option::Option::Some(
459 ::std::borrow::ToOwned::to_owned("HoprChannels.TicketIndex"),
460 ),
461 },
462 ::ethers::core::abi::ethabi::Param {
463 name: ::std::borrow::ToOwned::to_owned("closureTime"),
464 kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
465 internal_type: ::core::option::Option::Some(
466 ::std::borrow::ToOwned::to_owned("HoprChannels.Timestamp"),
467 ),
468 },
469 ::ethers::core::abi::ethabi::Param {
470 name: ::std::borrow::ToOwned::to_owned("epoch"),
471 kind: ::ethers::core::abi::ethabi::ParamType::Uint(24usize),
472 internal_type: ::core::option::Option::Some(
473 ::std::borrow::ToOwned::to_owned(
474 "HoprChannels.ChannelEpoch",
475 ),
476 ),
477 },
478 ::ethers::core::abi::ethabi::Param {
479 name: ::std::borrow::ToOwned::to_owned("status"),
480 kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
481 internal_type: ::core::option::Option::Some(
482 ::std::borrow::ToOwned::to_owned(
483 "enum HoprChannels.ChannelStatus",
484 ),
485 ),
486 },
487 ],
488 constant: ::core::option::Option::None,
489 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
490 },
491 ],
492 ),
493 (
494 ::std::borrow::ToOwned::to_owned("closeIncomingChannel"),
495 ::std::vec![
496 ::ethers::core::abi::ethabi::Function {
497 name: ::std::borrow::ToOwned::to_owned(
498 "closeIncomingChannel",
499 ),
500 inputs: ::std::vec![
501 ::ethers::core::abi::ethabi::Param {
502 name: ::std::borrow::ToOwned::to_owned("source"),
503 kind: ::ethers::core::abi::ethabi::ParamType::Address,
504 internal_type: ::core::option::Option::Some(
505 ::std::borrow::ToOwned::to_owned("address"),
506 ),
507 },
508 ],
509 outputs: ::std::vec![],
510 constant: ::core::option::Option::None,
511 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
512 },
513 ],
514 ),
515 (
516 ::std::borrow::ToOwned::to_owned("closeIncomingChannelSafe"),
517 ::std::vec![
518 ::ethers::core::abi::ethabi::Function {
519 name: ::std::borrow::ToOwned::to_owned(
520 "closeIncomingChannelSafe",
521 ),
522 inputs: ::std::vec![
523 ::ethers::core::abi::ethabi::Param {
524 name: ::std::borrow::ToOwned::to_owned("self"),
525 kind: ::ethers::core::abi::ethabi::ParamType::Address,
526 internal_type: ::core::option::Option::Some(
527 ::std::borrow::ToOwned::to_owned("address"),
528 ),
529 },
530 ::ethers::core::abi::ethabi::Param {
531 name: ::std::borrow::ToOwned::to_owned("source"),
532 kind: ::ethers::core::abi::ethabi::ParamType::Address,
533 internal_type: ::core::option::Option::Some(
534 ::std::borrow::ToOwned::to_owned("address"),
535 ),
536 },
537 ],
538 outputs: ::std::vec![],
539 constant: ::core::option::Option::None,
540 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
541 },
542 ],
543 ),
544 (
545 ::std::borrow::ToOwned::to_owned("domainSeparator"),
546 ::std::vec![
547 ::ethers::core::abi::ethabi::Function {
548 name: ::std::borrow::ToOwned::to_owned("domainSeparator"),
549 inputs: ::std::vec![],
550 outputs: ::std::vec![
551 ::ethers::core::abi::ethabi::Param {
552 name: ::std::string::String::new(),
553 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
554 32usize,
555 ),
556 internal_type: ::core::option::Option::Some(
557 ::std::borrow::ToOwned::to_owned("bytes32"),
558 ),
559 },
560 ],
561 constant: ::core::option::Option::None,
562 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
563 },
564 ],
565 ),
566 (
567 ::std::borrow::ToOwned::to_owned("finalizeOutgoingChannelClosure"),
568 ::std::vec![
569 ::ethers::core::abi::ethabi::Function {
570 name: ::std::borrow::ToOwned::to_owned(
571 "finalizeOutgoingChannelClosure",
572 ),
573 inputs: ::std::vec![
574 ::ethers::core::abi::ethabi::Param {
575 name: ::std::borrow::ToOwned::to_owned("destination"),
576 kind: ::ethers::core::abi::ethabi::ParamType::Address,
577 internal_type: ::core::option::Option::Some(
578 ::std::borrow::ToOwned::to_owned("address"),
579 ),
580 },
581 ],
582 outputs: ::std::vec![],
583 constant: ::core::option::Option::None,
584 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
585 },
586 ],
587 ),
588 (
589 ::std::borrow::ToOwned::to_owned(
590 "finalizeOutgoingChannelClosureSafe",
591 ),
592 ::std::vec![
593 ::ethers::core::abi::ethabi::Function {
594 name: ::std::borrow::ToOwned::to_owned(
595 "finalizeOutgoingChannelClosureSafe",
596 ),
597 inputs: ::std::vec![
598 ::ethers::core::abi::ethabi::Param {
599 name: ::std::borrow::ToOwned::to_owned("self"),
600 kind: ::ethers::core::abi::ethabi::ParamType::Address,
601 internal_type: ::core::option::Option::Some(
602 ::std::borrow::ToOwned::to_owned("address"),
603 ),
604 },
605 ::ethers::core::abi::ethabi::Param {
606 name: ::std::borrow::ToOwned::to_owned("destination"),
607 kind: ::ethers::core::abi::ethabi::ParamType::Address,
608 internal_type: ::core::option::Option::Some(
609 ::std::borrow::ToOwned::to_owned("address"),
610 ),
611 },
612 ],
613 outputs: ::std::vec![],
614 constant: ::core::option::Option::None,
615 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
616 },
617 ],
618 ),
619 (
620 ::std::borrow::ToOwned::to_owned("fundChannel"),
621 ::std::vec![
622 ::ethers::core::abi::ethabi::Function {
623 name: ::std::borrow::ToOwned::to_owned("fundChannel"),
624 inputs: ::std::vec![
625 ::ethers::core::abi::ethabi::Param {
626 name: ::std::borrow::ToOwned::to_owned("account"),
627 kind: ::ethers::core::abi::ethabi::ParamType::Address,
628 internal_type: ::core::option::Option::Some(
629 ::std::borrow::ToOwned::to_owned("address"),
630 ),
631 },
632 ::ethers::core::abi::ethabi::Param {
633 name: ::std::borrow::ToOwned::to_owned("amount"),
634 kind: ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
635 internal_type: ::core::option::Option::Some(
636 ::std::borrow::ToOwned::to_owned("HoprChannels.Balance"),
637 ),
638 },
639 ],
640 outputs: ::std::vec![],
641 constant: ::core::option::Option::None,
642 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
643 },
644 ],
645 ),
646 (
647 ::std::borrow::ToOwned::to_owned("fundChannelSafe"),
648 ::std::vec![
649 ::ethers::core::abi::ethabi::Function {
650 name: ::std::borrow::ToOwned::to_owned("fundChannelSafe"),
651 inputs: ::std::vec![
652 ::ethers::core::abi::ethabi::Param {
653 name: ::std::borrow::ToOwned::to_owned("self"),
654 kind: ::ethers::core::abi::ethabi::ParamType::Address,
655 internal_type: ::core::option::Option::Some(
656 ::std::borrow::ToOwned::to_owned("address"),
657 ),
658 },
659 ::ethers::core::abi::ethabi::Param {
660 name: ::std::borrow::ToOwned::to_owned("account"),
661 kind: ::ethers::core::abi::ethabi::ParamType::Address,
662 internal_type: ::core::option::Option::Some(
663 ::std::borrow::ToOwned::to_owned("address"),
664 ),
665 },
666 ::ethers::core::abi::ethabi::Param {
667 name: ::std::borrow::ToOwned::to_owned("amount"),
668 kind: ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
669 internal_type: ::core::option::Option::Some(
670 ::std::borrow::ToOwned::to_owned("HoprChannels.Balance"),
671 ),
672 },
673 ],
674 outputs: ::std::vec![],
675 constant: ::core::option::Option::None,
676 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
677 },
678 ],
679 ),
680 (
681 ::std::borrow::ToOwned::to_owned("initiateOutgoingChannelClosure"),
682 ::std::vec![
683 ::ethers::core::abi::ethabi::Function {
684 name: ::std::borrow::ToOwned::to_owned(
685 "initiateOutgoingChannelClosure",
686 ),
687 inputs: ::std::vec![
688 ::ethers::core::abi::ethabi::Param {
689 name: ::std::borrow::ToOwned::to_owned("destination"),
690 kind: ::ethers::core::abi::ethabi::ParamType::Address,
691 internal_type: ::core::option::Option::Some(
692 ::std::borrow::ToOwned::to_owned("address"),
693 ),
694 },
695 ],
696 outputs: ::std::vec![],
697 constant: ::core::option::Option::None,
698 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
699 },
700 ],
701 ),
702 (
703 ::std::borrow::ToOwned::to_owned(
704 "initiateOutgoingChannelClosureSafe",
705 ),
706 ::std::vec![
707 ::ethers::core::abi::ethabi::Function {
708 name: ::std::borrow::ToOwned::to_owned(
709 "initiateOutgoingChannelClosureSafe",
710 ),
711 inputs: ::std::vec![
712 ::ethers::core::abi::ethabi::Param {
713 name: ::std::borrow::ToOwned::to_owned("self"),
714 kind: ::ethers::core::abi::ethabi::ParamType::Address,
715 internal_type: ::core::option::Option::Some(
716 ::std::borrow::ToOwned::to_owned("address"),
717 ),
718 },
719 ::ethers::core::abi::ethabi::Param {
720 name: ::std::borrow::ToOwned::to_owned("destination"),
721 kind: ::ethers::core::abi::ethabi::ParamType::Address,
722 internal_type: ::core::option::Option::Some(
723 ::std::borrow::ToOwned::to_owned("address"),
724 ),
725 },
726 ],
727 outputs: ::std::vec![],
728 constant: ::core::option::Option::None,
729 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
730 },
731 ],
732 ),
733 (
734 ::std::borrow::ToOwned::to_owned("ledgerDomainSeparator"),
735 ::std::vec![
736 ::ethers::core::abi::ethabi::Function {
737 name: ::std::borrow::ToOwned::to_owned(
738 "ledgerDomainSeparator",
739 ),
740 inputs: ::std::vec![],
741 outputs: ::std::vec![
742 ::ethers::core::abi::ethabi::Param {
743 name: ::std::string::String::new(),
744 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
745 32usize,
746 ),
747 internal_type: ::core::option::Option::Some(
748 ::std::borrow::ToOwned::to_owned("bytes32"),
749 ),
750 },
751 ],
752 constant: ::core::option::Option::None,
753 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
754 },
755 ],
756 ),
757 (
758 ::std::borrow::ToOwned::to_owned("multicall"),
759 ::std::vec![
760 ::ethers::core::abi::ethabi::Function {
761 name: ::std::borrow::ToOwned::to_owned("multicall"),
762 inputs: ::std::vec![
763 ::ethers::core::abi::ethabi::Param {
764 name: ::std::borrow::ToOwned::to_owned("data"),
765 kind: ::ethers::core::abi::ethabi::ParamType::Array(
766 ::std::boxed::Box::new(
767 ::ethers::core::abi::ethabi::ParamType::Bytes,
768 ),
769 ),
770 internal_type: ::core::option::Option::Some(
771 ::std::borrow::ToOwned::to_owned("bytes[]"),
772 ),
773 },
774 ],
775 outputs: ::std::vec![
776 ::ethers::core::abi::ethabi::Param {
777 name: ::std::borrow::ToOwned::to_owned("results"),
778 kind: ::ethers::core::abi::ethabi::ParamType::Array(
779 ::std::boxed::Box::new(
780 ::ethers::core::abi::ethabi::ParamType::Bytes,
781 ),
782 ),
783 internal_type: ::core::option::Option::Some(
784 ::std::borrow::ToOwned::to_owned("bytes[]"),
785 ),
786 },
787 ],
788 constant: ::core::option::Option::None,
789 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
790 },
791 ],
792 ),
793 (
794 ::std::borrow::ToOwned::to_owned("noticePeriodChannelClosure"),
795 ::std::vec![
796 ::ethers::core::abi::ethabi::Function {
797 name: ::std::borrow::ToOwned::to_owned(
798 "noticePeriodChannelClosure",
799 ),
800 inputs: ::std::vec![],
801 outputs: ::std::vec![
802 ::ethers::core::abi::ethabi::Param {
803 name: ::std::string::String::new(),
804 kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
805 internal_type: ::core::option::Option::Some(
806 ::std::borrow::ToOwned::to_owned("HoprChannels.Timestamp"),
807 ),
808 },
809 ],
810 constant: ::core::option::Option::None,
811 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
812 },
813 ],
814 ),
815 (
816 ::std::borrow::ToOwned::to_owned("redeemTicket"),
817 ::std::vec![
818 ::ethers::core::abi::ethabi::Function {
819 name: ::std::borrow::ToOwned::to_owned("redeemTicket"),
820 inputs: ::std::vec![
821 ::ethers::core::abi::ethabi::Param {
822 name: ::std::borrow::ToOwned::to_owned("redeemable"),
823 kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
824 ::std::vec![
825 ::ethers::core::abi::ethabi::ParamType::Tuple(
826 ::std::vec![
827 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
828 ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
829 ::ethers::core::abi::ethabi::ParamType::Uint(48usize),
830 ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
831 ::ethers::core::abi::ethabi::ParamType::Uint(24usize),
832 ::ethers::core::abi::ethabi::ParamType::Uint(56usize),
833 ],
834 ),
835 ::ethers::core::abi::ethabi::ParamType::Tuple(
836 ::std::vec![
837 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
838 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
839 ],
840 ),
841 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
842 ],
843 ),
844 internal_type: ::core::option::Option::Some(
845 ::std::borrow::ToOwned::to_owned(
846 "struct HoprChannels.RedeemableTicket",
847 ),
848 ),
849 },
850 ::ethers::core::abi::ethabi::Param {
851 name: ::std::borrow::ToOwned::to_owned("params"),
852 kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
853 ::std::vec![
854 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
855 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
856 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
857 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
858 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
859 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
860 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
861 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
862 ],
863 ),
864 internal_type: ::core::option::Option::Some(
865 ::std::borrow::ToOwned::to_owned(
866 "struct HoprCrypto.VRFParameters",
867 ),
868 ),
869 },
870 ],
871 outputs: ::std::vec![],
872 constant: ::core::option::Option::None,
873 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
874 },
875 ],
876 ),
877 (
878 ::std::borrow::ToOwned::to_owned("redeemTicketSafe"),
879 ::std::vec![
880 ::ethers::core::abi::ethabi::Function {
881 name: ::std::borrow::ToOwned::to_owned("redeemTicketSafe"),
882 inputs: ::std::vec![
883 ::ethers::core::abi::ethabi::Param {
884 name: ::std::borrow::ToOwned::to_owned("self"),
885 kind: ::ethers::core::abi::ethabi::ParamType::Address,
886 internal_type: ::core::option::Option::Some(
887 ::std::borrow::ToOwned::to_owned("address"),
888 ),
889 },
890 ::ethers::core::abi::ethabi::Param {
891 name: ::std::borrow::ToOwned::to_owned("redeemable"),
892 kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
893 ::std::vec![
894 ::ethers::core::abi::ethabi::ParamType::Tuple(
895 ::std::vec![
896 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
897 ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
898 ::ethers::core::abi::ethabi::ParamType::Uint(48usize),
899 ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
900 ::ethers::core::abi::ethabi::ParamType::Uint(24usize),
901 ::ethers::core::abi::ethabi::ParamType::Uint(56usize),
902 ],
903 ),
904 ::ethers::core::abi::ethabi::ParamType::Tuple(
905 ::std::vec![
906 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
907 ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
908 ],
909 ),
910 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
911 ],
912 ),
913 internal_type: ::core::option::Option::Some(
914 ::std::borrow::ToOwned::to_owned(
915 "struct HoprChannels.RedeemableTicket",
916 ),
917 ),
918 },
919 ::ethers::core::abi::ethabi::Param {
920 name: ::std::borrow::ToOwned::to_owned("params"),
921 kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
922 ::std::vec![
923 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
924 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
925 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
926 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
927 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
928 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
929 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
930 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
931 ],
932 ),
933 internal_type: ::core::option::Option::Some(
934 ::std::borrow::ToOwned::to_owned(
935 "struct HoprCrypto.VRFParameters",
936 ),
937 ),
938 },
939 ],
940 outputs: ::std::vec![],
941 constant: ::core::option::Option::None,
942 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
943 },
944 ],
945 ),
946 (
947 ::std::borrow::ToOwned::to_owned("token"),
948 ::std::vec![
949 ::ethers::core::abi::ethabi::Function {
950 name: ::std::borrow::ToOwned::to_owned("token"),
951 inputs: ::std::vec![],
952 outputs: ::std::vec![
953 ::ethers::core::abi::ethabi::Param {
954 name: ::std::string::String::new(),
955 kind: ::ethers::core::abi::ethabi::ParamType::Address,
956 internal_type: ::core::option::Option::Some(
957 ::std::borrow::ToOwned::to_owned("contract IERC20"),
958 ),
959 },
960 ],
961 constant: ::core::option::Option::None,
962 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
963 },
964 ],
965 ),
966 (
967 ::std::borrow::ToOwned::to_owned("tokensReceived"),
968 ::std::vec![
969 ::ethers::core::abi::ethabi::Function {
970 name: ::std::borrow::ToOwned::to_owned("tokensReceived"),
971 inputs: ::std::vec![
972 ::ethers::core::abi::ethabi::Param {
973 name: ::std::string::String::new(),
974 kind: ::ethers::core::abi::ethabi::ParamType::Address,
975 internal_type: ::core::option::Option::Some(
976 ::std::borrow::ToOwned::to_owned("address"),
977 ),
978 },
979 ::ethers::core::abi::ethabi::Param {
980 name: ::std::borrow::ToOwned::to_owned("from"),
981 kind: ::ethers::core::abi::ethabi::ParamType::Address,
982 internal_type: ::core::option::Option::Some(
983 ::std::borrow::ToOwned::to_owned("address"),
984 ),
985 },
986 ::ethers::core::abi::ethabi::Param {
987 name: ::std::borrow::ToOwned::to_owned("to"),
988 kind: ::ethers::core::abi::ethabi::ParamType::Address,
989 internal_type: ::core::option::Option::Some(
990 ::std::borrow::ToOwned::to_owned("address"),
991 ),
992 },
993 ::ethers::core::abi::ethabi::Param {
994 name: ::std::borrow::ToOwned::to_owned("amount"),
995 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
996 256usize,
997 ),
998 internal_type: ::core::option::Option::Some(
999 ::std::borrow::ToOwned::to_owned("uint256"),
1000 ),
1001 },
1002 ::ethers::core::abi::ethabi::Param {
1003 name: ::std::borrow::ToOwned::to_owned("userData"),
1004 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
1005 internal_type: ::core::option::Option::Some(
1006 ::std::borrow::ToOwned::to_owned("bytes"),
1007 ),
1008 },
1009 ::ethers::core::abi::ethabi::Param {
1010 name: ::std::string::String::new(),
1011 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
1012 internal_type: ::core::option::Option::Some(
1013 ::std::borrow::ToOwned::to_owned("bytes"),
1014 ),
1015 },
1016 ],
1017 outputs: ::std::vec![],
1018 constant: ::core::option::Option::None,
1019 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1020 },
1021 ],
1022 ),
1023 (
1024 ::std::borrow::ToOwned::to_owned("updateDomainSeparator"),
1025 ::std::vec![
1026 ::ethers::core::abi::ethabi::Function {
1027 name: ::std::borrow::ToOwned::to_owned(
1028 "updateDomainSeparator",
1029 ),
1030 inputs: ::std::vec![],
1031 outputs: ::std::vec![],
1032 constant: ::core::option::Option::None,
1033 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1034 },
1035 ],
1036 ),
1037 (
1038 ::std::borrow::ToOwned::to_owned("updateLedgerDomainSeparator"),
1039 ::std::vec![
1040 ::ethers::core::abi::ethabi::Function {
1041 name: ::std::borrow::ToOwned::to_owned(
1042 "updateLedgerDomainSeparator",
1043 ),
1044 inputs: ::std::vec![],
1045 outputs: ::std::vec![],
1046 constant: ::core::option::Option::None,
1047 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1048 },
1049 ],
1050 ),
1051 ]),
1052 events: ::core::convert::From::from([
1053 (
1054 ::std::borrow::ToOwned::to_owned("ChannelBalanceDecreased"),
1055 ::std::vec![
1056 ::ethers::core::abi::ethabi::Event {
1057 name: ::std::borrow::ToOwned::to_owned(
1058 "ChannelBalanceDecreased",
1059 ),
1060 inputs: ::std::vec![
1061 ::ethers::core::abi::ethabi::EventParam {
1062 name: ::std::borrow::ToOwned::to_owned("channelId"),
1063 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1064 32usize,
1065 ),
1066 indexed: true,
1067 },
1068 ::ethers::core::abi::ethabi::EventParam {
1069 name: ::std::borrow::ToOwned::to_owned("newBalance"),
1070 kind: ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
1071 indexed: false,
1072 },
1073 ],
1074 anonymous: false,
1075 },
1076 ],
1077 ),
1078 (
1079 ::std::borrow::ToOwned::to_owned("ChannelBalanceIncreased"),
1080 ::std::vec![
1081 ::ethers::core::abi::ethabi::Event {
1082 name: ::std::borrow::ToOwned::to_owned(
1083 "ChannelBalanceIncreased",
1084 ),
1085 inputs: ::std::vec![
1086 ::ethers::core::abi::ethabi::EventParam {
1087 name: ::std::borrow::ToOwned::to_owned("channelId"),
1088 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1089 32usize,
1090 ),
1091 indexed: true,
1092 },
1093 ::ethers::core::abi::ethabi::EventParam {
1094 name: ::std::borrow::ToOwned::to_owned("newBalance"),
1095 kind: ::ethers::core::abi::ethabi::ParamType::Uint(96usize),
1096 indexed: false,
1097 },
1098 ],
1099 anonymous: false,
1100 },
1101 ],
1102 ),
1103 (
1104 ::std::borrow::ToOwned::to_owned("ChannelClosed"),
1105 ::std::vec![
1106 ::ethers::core::abi::ethabi::Event {
1107 name: ::std::borrow::ToOwned::to_owned("ChannelClosed"),
1108 inputs: ::std::vec![
1109 ::ethers::core::abi::ethabi::EventParam {
1110 name: ::std::borrow::ToOwned::to_owned("channelId"),
1111 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1112 32usize,
1113 ),
1114 indexed: true,
1115 },
1116 ],
1117 anonymous: false,
1118 },
1119 ],
1120 ),
1121 (
1122 ::std::borrow::ToOwned::to_owned("ChannelOpened"),
1123 ::std::vec![
1124 ::ethers::core::abi::ethabi::Event {
1125 name: ::std::borrow::ToOwned::to_owned("ChannelOpened"),
1126 inputs: ::std::vec![
1127 ::ethers::core::abi::ethabi::EventParam {
1128 name: ::std::borrow::ToOwned::to_owned("source"),
1129 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1130 indexed: true,
1131 },
1132 ::ethers::core::abi::ethabi::EventParam {
1133 name: ::std::borrow::ToOwned::to_owned("destination"),
1134 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1135 indexed: true,
1136 },
1137 ],
1138 anonymous: false,
1139 },
1140 ],
1141 ),
1142 (
1143 ::std::borrow::ToOwned::to_owned("DomainSeparatorUpdated"),
1144 ::std::vec![
1145 ::ethers::core::abi::ethabi::Event {
1146 name: ::std::borrow::ToOwned::to_owned(
1147 "DomainSeparatorUpdated",
1148 ),
1149 inputs: ::std::vec![
1150 ::ethers::core::abi::ethabi::EventParam {
1151 name: ::std::borrow::ToOwned::to_owned("domainSeparator"),
1152 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1153 32usize,
1154 ),
1155 indexed: true,
1156 },
1157 ],
1158 anonymous: false,
1159 },
1160 ],
1161 ),
1162 (
1163 ::std::borrow::ToOwned::to_owned("LedgerDomainSeparatorUpdated"),
1164 ::std::vec![
1165 ::ethers::core::abi::ethabi::Event {
1166 name: ::std::borrow::ToOwned::to_owned(
1167 "LedgerDomainSeparatorUpdated",
1168 ),
1169 inputs: ::std::vec![
1170 ::ethers::core::abi::ethabi::EventParam {
1171 name: ::std::borrow::ToOwned::to_owned(
1172 "ledgerDomainSeparator",
1173 ),
1174 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1175 32usize,
1176 ),
1177 indexed: true,
1178 },
1179 ],
1180 anonymous: false,
1181 },
1182 ],
1183 ),
1184 (
1185 ::std::borrow::ToOwned::to_owned("OutgoingChannelClosureInitiated"),
1186 ::std::vec![
1187 ::ethers::core::abi::ethabi::Event {
1188 name: ::std::borrow::ToOwned::to_owned(
1189 "OutgoingChannelClosureInitiated",
1190 ),
1191 inputs: ::std::vec![
1192 ::ethers::core::abi::ethabi::EventParam {
1193 name: ::std::borrow::ToOwned::to_owned("channelId"),
1194 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1195 32usize,
1196 ),
1197 indexed: true,
1198 },
1199 ::ethers::core::abi::ethabi::EventParam {
1200 name: ::std::borrow::ToOwned::to_owned("closureTime"),
1201 kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize),
1202 indexed: false,
1203 },
1204 ],
1205 anonymous: false,
1206 },
1207 ],
1208 ),
1209 (
1210 ::std::borrow::ToOwned::to_owned("TicketRedeemed"),
1211 ::std::vec![
1212 ::ethers::core::abi::ethabi::Event {
1213 name: ::std::borrow::ToOwned::to_owned("TicketRedeemed"),
1214 inputs: ::std::vec![
1215 ::ethers::core::abi::ethabi::EventParam {
1216 name: ::std::borrow::ToOwned::to_owned("channelId"),
1217 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1218 32usize,
1219 ),
1220 indexed: true,
1221 },
1222 ::ethers::core::abi::ethabi::EventParam {
1223 name: ::std::borrow::ToOwned::to_owned("newTicketIndex"),
1224 kind: ::ethers::core::abi::ethabi::ParamType::Uint(48usize),
1225 indexed: false,
1226 },
1227 ],
1228 anonymous: false,
1229 },
1230 ],
1231 ),
1232 ]),
1233 errors: ::core::convert::From::from([
1234 (
1235 ::std::borrow::ToOwned::to_owned("AlreadyInitialized"),
1236 ::std::vec![
1237 ::ethers::core::abi::ethabi::AbiError {
1238 name: ::std::borrow::ToOwned::to_owned("AlreadyInitialized"),
1239 inputs: ::std::vec![],
1240 },
1241 ],
1242 ),
1243 (
1244 ::std::borrow::ToOwned::to_owned(
1245 "BalanceExceedsGlobalPerChannelAllowance",
1246 ),
1247 ::std::vec![
1248 ::ethers::core::abi::ethabi::AbiError {
1249 name: ::std::borrow::ToOwned::to_owned(
1250 "BalanceExceedsGlobalPerChannelAllowance",
1251 ),
1252 inputs: ::std::vec![],
1253 },
1254 ],
1255 ),
1256 (
1257 ::std::borrow::ToOwned::to_owned("ContractNotResponsible"),
1258 ::std::vec![
1259 ::ethers::core::abi::ethabi::AbiError {
1260 name: ::std::borrow::ToOwned::to_owned(
1261 "ContractNotResponsible",
1262 ),
1263 inputs: ::std::vec![],
1264 },
1265 ],
1266 ),
1267 (
1268 ::std::borrow::ToOwned::to_owned("InsufficientChannelBalance"),
1269 ::std::vec![
1270 ::ethers::core::abi::ethabi::AbiError {
1271 name: ::std::borrow::ToOwned::to_owned(
1272 "InsufficientChannelBalance",
1273 ),
1274 inputs: ::std::vec![],
1275 },
1276 ],
1277 ),
1278 (
1279 ::std::borrow::ToOwned::to_owned("InvalidAggregatedTicketInterval"),
1280 ::std::vec![
1281 ::ethers::core::abi::ethabi::AbiError {
1282 name: ::std::borrow::ToOwned::to_owned(
1283 "InvalidAggregatedTicketInterval",
1284 ),
1285 inputs: ::std::vec![],
1286 },
1287 ],
1288 ),
1289 (
1290 ::std::borrow::ToOwned::to_owned("InvalidBalance"),
1291 ::std::vec![
1292 ::ethers::core::abi::ethabi::AbiError {
1293 name: ::std::borrow::ToOwned::to_owned("InvalidBalance"),
1294 inputs: ::std::vec![],
1295 },
1296 ],
1297 ),
1298 (
1299 ::std::borrow::ToOwned::to_owned("InvalidCurvePoint"),
1300 ::std::vec![
1301 ::ethers::core::abi::ethabi::AbiError {
1302 name: ::std::borrow::ToOwned::to_owned("InvalidCurvePoint"),
1303 inputs: ::std::vec![],
1304 },
1305 ],
1306 ),
1307 (
1308 ::std::borrow::ToOwned::to_owned("InvalidFieldElement"),
1309 ::std::vec![
1310 ::ethers::core::abi::ethabi::AbiError {
1311 name: ::std::borrow::ToOwned::to_owned(
1312 "InvalidFieldElement",
1313 ),
1314 inputs: ::std::vec![],
1315 },
1316 ],
1317 ),
1318 (
1319 ::std::borrow::ToOwned::to_owned("InvalidNoticePeriod"),
1320 ::std::vec![
1321 ::ethers::core::abi::ethabi::AbiError {
1322 name: ::std::borrow::ToOwned::to_owned(
1323 "InvalidNoticePeriod",
1324 ),
1325 inputs: ::std::vec![],
1326 },
1327 ],
1328 ),
1329 (
1330 ::std::borrow::ToOwned::to_owned("InvalidPointWitness"),
1331 ::std::vec![
1332 ::ethers::core::abi::ethabi::AbiError {
1333 name: ::std::borrow::ToOwned::to_owned(
1334 "InvalidPointWitness",
1335 ),
1336 inputs: ::std::vec![],
1337 },
1338 ],
1339 ),
1340 (
1341 ::std::borrow::ToOwned::to_owned("InvalidSafeAddress"),
1342 ::std::vec![
1343 ::ethers::core::abi::ethabi::AbiError {
1344 name: ::std::borrow::ToOwned::to_owned("InvalidSafeAddress"),
1345 inputs: ::std::vec![],
1346 },
1347 ],
1348 ),
1349 (
1350 ::std::borrow::ToOwned::to_owned("InvalidTicketSignature"),
1351 ::std::vec![
1352 ::ethers::core::abi::ethabi::AbiError {
1353 name: ::std::borrow::ToOwned::to_owned(
1354 "InvalidTicketSignature",
1355 ),
1356 inputs: ::std::vec![],
1357 },
1358 ],
1359 ),
1360 (
1361 ::std::borrow::ToOwned::to_owned("InvalidTokenRecipient"),
1362 ::std::vec![
1363 ::ethers::core::abi::ethabi::AbiError {
1364 name: ::std::borrow::ToOwned::to_owned(
1365 "InvalidTokenRecipient",
1366 ),
1367 inputs: ::std::vec![],
1368 },
1369 ],
1370 ),
1371 (
1372 ::std::borrow::ToOwned::to_owned("InvalidTokensReceivedUsage"),
1373 ::std::vec![
1374 ::ethers::core::abi::ethabi::AbiError {
1375 name: ::std::borrow::ToOwned::to_owned(
1376 "InvalidTokensReceivedUsage",
1377 ),
1378 inputs: ::std::vec![],
1379 },
1380 ],
1381 ),
1382 (
1383 ::std::borrow::ToOwned::to_owned("InvalidVRFProof"),
1384 ::std::vec![
1385 ::ethers::core::abi::ethabi::AbiError {
1386 name: ::std::borrow::ToOwned::to_owned("InvalidVRFProof"),
1387 inputs: ::std::vec![],
1388 },
1389 ],
1390 ),
1391 (
1392 ::std::borrow::ToOwned::to_owned("MultiSigUninitialized"),
1393 ::std::vec![
1394 ::ethers::core::abi::ethabi::AbiError {
1395 name: ::std::borrow::ToOwned::to_owned(
1396 "MultiSigUninitialized",
1397 ),
1398 inputs: ::std::vec![],
1399 },
1400 ],
1401 ),
1402 (
1403 ::std::borrow::ToOwned::to_owned("NoticePeriodNotDue"),
1404 ::std::vec![
1405 ::ethers::core::abi::ethabi::AbiError {
1406 name: ::std::borrow::ToOwned::to_owned("NoticePeriodNotDue"),
1407 inputs: ::std::vec![],
1408 },
1409 ],
1410 ),
1411 (
1412 ::std::borrow::ToOwned::to_owned("SourceEqualsDestination"),
1413 ::std::vec![
1414 ::ethers::core::abi::ethabi::AbiError {
1415 name: ::std::borrow::ToOwned::to_owned(
1416 "SourceEqualsDestination",
1417 ),
1418 inputs: ::std::vec![],
1419 },
1420 ],
1421 ),
1422 (
1423 ::std::borrow::ToOwned::to_owned("TicketIsNotAWin"),
1424 ::std::vec![
1425 ::ethers::core::abi::ethabi::AbiError {
1426 name: ::std::borrow::ToOwned::to_owned("TicketIsNotAWin"),
1427 inputs: ::std::vec![],
1428 },
1429 ],
1430 ),
1431 (
1432 ::std::borrow::ToOwned::to_owned("TokenTransferFailed"),
1433 ::std::vec![
1434 ::ethers::core::abi::ethabi::AbiError {
1435 name: ::std::borrow::ToOwned::to_owned(
1436 "TokenTransferFailed",
1437 ),
1438 inputs: ::std::vec![],
1439 },
1440 ],
1441 ),
1442 (
1443 ::std::borrow::ToOwned::to_owned("WrongChannelState"),
1444 ::std::vec![
1445 ::ethers::core::abi::ethabi::AbiError {
1446 name: ::std::borrow::ToOwned::to_owned("WrongChannelState"),
1447 inputs: ::std::vec![
1448 ::ethers::core::abi::ethabi::Param {
1449 name: ::std::borrow::ToOwned::to_owned("reason"),
1450 kind: ::ethers::core::abi::ethabi::ParamType::String,
1451 internal_type: ::core::option::Option::Some(
1452 ::std::borrow::ToOwned::to_owned("string"),
1453 ),
1454 },
1455 ],
1456 },
1457 ],
1458 ),
1459 (
1460 ::std::borrow::ToOwned::to_owned("WrongToken"),
1461 ::std::vec![
1462 ::ethers::core::abi::ethabi::AbiError {
1463 name: ::std::borrow::ToOwned::to_owned("WrongToken"),
1464 inputs: ::std::vec![],
1465 },
1466 ],
1467 ),
1468 (
1469 ::std::borrow::ToOwned::to_owned("ZeroAddress"),
1470 ::std::vec![
1471 ::ethers::core::abi::ethabi::AbiError {
1472 name: ::std::borrow::ToOwned::to_owned("ZeroAddress"),
1473 inputs: ::std::vec![
1474 ::ethers::core::abi::ethabi::Param {
1475 name: ::std::borrow::ToOwned::to_owned("reason"),
1476 kind: ::ethers::core::abi::ethabi::ParamType::String,
1477 internal_type: ::core::option::Option::Some(
1478 ::std::borrow::ToOwned::to_owned("string"),
1479 ),
1480 },
1481 ],
1482 },
1483 ],
1484 ),
1485 ]),
1486 receive: false,
1487 fallback: false,
1488 }
1489 }
1490 pub static HOPRCHANNELS_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(
1492 __abi,
1493 );
1494 #[rustfmt::skip]
1495 const __BYTECODE: &[u8] = b"`\x04\x80T`\xFF`\xA0\x1B\x19\x16\x90U`\0a\x01@\x81\x90Ra\x01T\x81\x90Ra\x01`\x81\x90Ra\x01t\x81\x90R`@a\x01 \x81\x90R`\xA0\x81\x90Ra\x01\xA0\x82\x90Ra\x01\xB4\x91\x90\x91R`(a\x01\x80\x81\x90Ra\x01\xC8\x90\x91R`\xC0R4\x80\x15b\0\0^W`\0\x80\xFD[P`@Qb\0I'8\x03\x80b\0I'\x839\x81\x01`@\x81\x90Rb\0\0\x81\x91b\0\x04\xE9V[c\x05&\\\0`\x80\x81\x90R`@Q`\x01`\x01``\x1B\x03\x190``\x1B\x16` \x82\x01R`4\x01`@\x80Q\x80\x83\x03`\x1F\x19\x01\x81R\x91\x90R\x80Q` \x91\x82\x01 \x90\x1C`\x01`\xE0\x1BBc\xFF\xFF\xFF\xFF\x90\x81\x16\x82\x02\x92\x90\x92\x17`\x01\x81\x90U`\x01`\x01`\xE0\x1B\x03\x80\x82\x16\x91\x83\x90\x04\x90\x93\x16\x90\x91\x02\x17`\x02Ub\0\0\xFC\x90b\0\x02O\x16V[P\x81c\xFF\xFF\xFF\xFF\x16`\0\x03b\0\x01%W`@Qc\xF9\xEE\x91\x07`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x16b\0\x01\x80W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7Ftoken must not be empty\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01`@Q\x80\x91\x03\x90\xFD[b\0\x01\x8B\x81b\0\x03NV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\xE0Rc\xFF\xFF\xFF\xFF\x82\x16a\x01\0R`@Qc)\x96Z\x1D`\xE0\x1B\x81R0`\x04\x82\x01\x81\x90R\x7F\xB2\x81\xFC\x8C\x12\x95M\"TM\xB4]\xE3\x15\x9A9'(\x95\xB1i\xA8R\xB3\x14\xF9\xCCv.D\xC5;`$\x83\x01R`D\x82\x01Rs\x18 \xA4\xB7a\x8B\xDEq\xDC\xE8\xCD\xC7:\xABl\x95\x90_\xAD$\x90c)\x96Z\x1D\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15b\0\x02\x1DW`\0\x80\xFD[PZ\xF1\x15\x80\x15b\0\x022W=`\0\x80>=`\0\xFD[PPPPb\0\x02Fb\0\x03\xCA` \x1B` \x1CV[PPPb\0\x05EV[`@\x80Q\x80\x82\x01\x82R`\n\x81Ri$7\xB89&2\xB23\xB2\xB9`\xB1\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\x12\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q`\0\x80Q` b\0I\x07\x839\x81Q\x91R\x81\x83\x01R\x7Fl\xD6\x81y\x0Cx\xC2 Q{\t\x9As\x7F\x8E\x85\xF6\x9Eyz\xBEN)\x10\xFB\x18\x9Ba\xDBK\xF2\xCD\x81\x84\x01R\x7F\x06\xC0\x15\xBD\"\xB4\xC6\x96\x90\x93<\x10X\x87\x8E\xBD\xFE\xF3\x1F\x9A\xAA\xE4\x0B\xBE\x86\xD8\xA0\x9F\xE1\xB2\x97,``\x82\x01RF`\x80\x82\x01R0`\xA0\x80\x83\x01\x91\x90\x91R\x83Q\x80\x83\x03\x90\x91\x01\x81R`\xC0\x90\x91\x01\x90\x92R\x81Q\x91\x01 `\x03T\x81\x14b\0\x03KW`\x03\x81\x90U`@Q\x81\x90\x7F\xA4?\xAD\x83\x92\x0F\xD0\x94E\x85^\x85Ns\xC9\xC52\xE1t\x02\xC9\xCE\xB0\x99\x93\xA29(C\xA5\xBD\xB9\x90`\0\x90\xA2[PV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16\x15b\0\x03yW`@Qb\xDC\x14\x9F`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16b\0\x03\xA1W`@QcGN\xBE/`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`\x01`\x01`\xA0\x1B\x03\x90\x92\x16`\x01`\x01`\xA8\x1B\x03\x19\x90\x92\x16\x91\x90\x91\x17`\x01`\xA0\x1B\x17\x90UV[`@\x80Q\x80\x82\x01\x82R`\x0C\x81RkHoprChannels`\xA0\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\"\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q`\0\x80Q` b\0I\x07\x839\x81Q\x91R\x91\x81\x01\x91\x90\x91R\x7F\x84\xE6\x90\x8F46\x01\xD9\xCE\x9F\xB6\r\x82P9N\xB8\xA5\x1CV\xF1\x87k\xC1\xE0\x17\xC9z\xCDeg\xF2\x91\x81\x01\x91\x90\x91R\x7F\xB4\xBC\xB1T\xE3\x86\x01\xC3\x899o\xA9\x181M\xA4-F&\xF1>\xF6\xD0\xCE\xB0~_]&\xB2\xFB\xC3``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\0\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\x05T\x81\x14b\0\x03KW`\x05\x81\x90U`@Q\x81\x90\x7Fw\x1FR@\xAE_\xD8\xA7d\r?\xB8/\xA7\n\xAB/\xB1\xDB\xF3_.\xF4d\xF8P\x99Fqvd\xC5\x90`\0\x90\xA2PV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x03KW`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15b\0\x04\xFFW`\0\x80\xFD[\x83Qb\0\x05\x0C\x81b\0\x04\xD3V[` \x85\x01Q\x90\x93Pc\xFF\xFF\xFF\xFF\x81\x16\x81\x14b\0\x05'W`\0\x80\xFD[`@\x85\x01Q\x90\x92Pb\0\x05:\x81b\0\x04\xD3V[\x80\x91PP\x92P\x92P\x92V[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0QaC>b\0\x05\xC9`\09`\0\x81\x81a\x03\xD9\x01Ra&-\x01R`\0\x81\x81a\x04\xD7\x01R\x81\x81a\x05f\x01R\x81\x81a\t\x12\x01R\x81\x81a\x16\x01\x01R\x81\x81a \x89\x01R\x81\x81a\"\xF8\x01Ra$\xDC\x01R`\0\x81\x81a\x02\xA8\x01Ra\x05\xD5\x01R`\0\x81\x81a\x03.\x01Ra\x070\x01R`\0a'Q\x01RaC>`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xE4W`\x005`\xE0\x1C\x80c|\x8E(\xDA\x11a\x01\x0FW\x80c\xC9f\xC4\xFE\x11a\0\xA2W\x80c\xFC\x0CTj\x11a\0qW\x80c\xFC\x0CTj\x14a\x04\xD2W\x80c\xFCU0\x9A\x14a\x05\x11W\x80c\xFC\xB7yo\x14a\x05$W\x80c\xFF\xA1\xADt\x14a\x057W`\0\x80\xFD[\x80c\xC9f\xC4\xFE\x14a\x04\x87W\x80c\xDC\x96\xFDP\x14a\x04\x90W\x80c\xDD\xAD\x19\x02\x14a\x04\x98W\x80c\xF6\x98\xDA%\x14a\x04\xC9W`\0\x80\xFD[\x80c\xAC\x96P\xD8\x11a\0\xDEW\x80c\xAC\x96P\xD8\x14a\x04;W\x80c\xB9 \xDE\xED\x14a\x04[W\x80c\xBD\xA6_E\x14a\x04aW\x80c\xBE\x9B\xAB\xDC\x14a\x04tW`\0\x80\xFD[\x80c|\x8E(\xDA\x14a\x03\xC1W\x80c\x875-e\x14a\x03\xD4W\x80c\x89\xCC\xFE\x89\x14a\x04\x10W\x80c\x8C7\x10\xC9\x14a\x04\x18W`\0\x80\xFD[\x80c)9.2\x11a\x01\x87W\x80ce\x15\x14\xBF\x11a\x01VW\x80ce\x15\x14\xBF\x14a\x02\xEFW\x80crX\x1C\xC0\x14a\x03\x02W\x80cx\xD8\x01m\x14a\x03)W\x80cz~\xBD{\x14a\x03PW`\0\x80\xFD[\x80c)9.2\x14a\x02\x83W\x80cD\xDA\xE6\xF8\x14a\x02\xA3W\x80cT\xA2\xED\xF5\x14a\x02\xCAW\x80c]/\x07\xC5\x14a\x02\xDDW`\0\x80\xFD[\x80c\x1A\x7F\xFEz\x11a\x01\xC3W\x80c\x1A\x7F\xFEz\x14a\x02$W\x80c#\xCB:\xC0\x14a\x027W\x80c$\x08l\xC2\x14a\x02JW\x80c$\x9C\xB3\xFA\x14a\x02pW`\0\x80\xFD[\x80b#\xDE)\x14a\x01\xE9W\x80c\n\xBE\xC5\x8F\x14a\x01\xFEW\x80c\x0C\xD8\x8Dr\x14a\x02\x11W[`\0\x80\xFD[a\x01\xFCa\x01\xF76`\x04a:\x87V[a\x05[V[\0[a\x01\xFCa\x02\x0C6`\x04a;TV[a\x08\x17V[a\x01\xFCa\x02\x1F6`\x04a;\xC7V[a\t\xAFV[a\x01\xFCa\x0226`\x04a<\x07V[a\n\x80V[a\x01\xFCa\x02E6`\x04a<\x07V[a\x0BPV[a\x02]a\x02X6`\x04a<+V[a\x0C\x1DV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02]a\x02~6`\x04a<HV[a\r\x8AV[a\x02\x8B`\x01\x81V[`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R` \x01a\x02gV[a\x02]\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xFCa\x02\xD86`\x04a<xV[a\r\xE4V[a\x02\x8Bj\x08E\x95\x16\x14\x01HJ\0\0\0\x81V[a\x01\xFCa\x02\xFD6`\x04a<xV[a\x0E\xB9V[a\x02]\x7F\xB2\x81\xFC\x8C\x12\x95M\"TM\xB4]\xE3\x15\x9A9'(\x95\xB1i\xA8R\xB3\x14\xF9\xCCv.D\xC5;\x81V[a\x02]\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\xB0a\x03^6`\x04a<\xA6V[`\x06` R`\0\x90\x81R`@\x90 T`\x01`\x01``\x1B\x03\x81\x16\x90`\x01``\x1B\x81\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90`\x01`\x90\x1B\x81\x04c\xFF\xFF\xFF\xFF\x16\x90`\x01`\xB0\x1B\x81\x04b\xFF\xFF\xFF\x16\x90`\x01`\xC8\x1B\x90\x04`\xFF\x16\x85V[`@Qa\x02g\x95\x94\x93\x92\x91\x90a<\xD5V[a\x01\xFCa\x03\xCF6`\x04a<\x07V[a\x0F\x89V[a\x03\xFB\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02gV[a\x01\xFCa\x10VV[a\x04+a\x04&6`\x04a=8V[a\x11oV[`@Q\x90\x15\x15\x81R` \x01a\x02gV[a\x04Na\x04I6`\x04a=_V[a\x11\xF1V[`@Qa\x02g\x91\x90a>$V[Ba\x03\xFBV[a\x01\xFCa\x04o6`\x04a<xV[a\x12\xE6V[a\x02]a\x04\x826`\x04a<xV[a\x13\xB6V[a\x02]`\x03T\x81V[a\x01\xFCa\x13\xFBV[a\x04\xBC`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03\x12\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\x02g\x91\x90a>\x86V[a\x02]`\x05T\x81V[a\x04\xF9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02gV[a\x01\xFCa\x05\x1F6`\x04a>\x99V[a\x15\tV[a\x01\xFCa\x0526`\x04a>\xCEV[a\x16\x9CV[a\x04\xBC`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03\"\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x05\xA4W`@QcPy\xFFu`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x160\x14a\x05\xCDW`@Qc\x178\x92!`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82\x15a\x08\rW\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x03a\x07.W`\x01`\x01``\x1B\x03\x85\x11\x15a\x06\"W`@Qc)<\xEE\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R\x865``\x90\x81\x1C\x93\x82\x01\x84\x90R`\x14\x88\x015\x90\x1C\x91`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06}W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xA1\x91\x90a>\xFCV[\x90P\x82`\x01`\x01`\xA0\x1B\x03\x16\x8A`\x01`\x01`\xA0\x1B\x03\x16\x03a\x06\xE9W`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x06\xE4W`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\x1BV[\x89`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\x07\x1BW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07&\x83\x83\x8Aa\x17jV[PPPa\x08\rV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x03a\x07\xF4W\x835``\x90\x81\x1C\x90`\x14\x86\x015`\xA0\x90\x81\x1C\x91` \x88\x015\x90\x1C\x90`4\x88\x015\x90\x1C\x88\x15\x80a\x07\x99WPa\x07\x95`\x01`\x01``\x1B\x03\x80\x83\x16\x90\x85\x16a?/V[\x89\x14\x15[\x15a\x07\xB7W`@Qc\xC5.>\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01``\x1B\x03\x83\x16\x15a\x07\xD1Wa\x07\xD1\x84\x83\x85a\x17jV[`\x01`\x01``\x1B\x03\x81\x16\x15a\x07\xEBWa\x07\xEB\x82\x85\x83a\x17jV[PPPPa\x08\rV[`@Qc\r=\xCD\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPV[`\x04T\x83\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x08CW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x92W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xB6\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x08\xDDW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xE8\x84\x84\x84a\x17jV[`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`\x01`\x01``\x1B\x03\x83\x16`D\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c#\xB8r\xDD\x90`d\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\tcW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\x87\x91\x90a?BV[\x15\x15`\x01\x14a\t\xA9W`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`\x04T\x83\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\t\xDBW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n*W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nN\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\nuW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\xA9\x84\x84\x84a\x1B\x16V[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\n\xAAW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xF8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x1C\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0BCW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BM3\x82a\"\x13V[PV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0BzW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xC8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xEC\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0C\x13W`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BM3\x82a#\x8FV[`\0\x80a\x0C.\x83a\x01\0\x015a%\x13V[\x90P`\0a\x0CB`\xC0\x85\x01`\xA0\x86\x01a?dV[f\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`8a\x0C]`\xA0\x87\x01`\x80\x88\x01a?\x8DV[b\xFF\xFF\xFF\x16\x90\x1B`Pa\x0Cv`\x80\x88\x01``\x89\x01a?\xB2V[c\xFF\xFF\xFF\xFF\x16\x90\x1B`pa\x0C\x90``\x89\x01`@\x8A\x01a?\xD8V[e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1B`\xA0a\x0C\xAC`@\x8A\x01` \x8B\x01a@\0V[`\x01`\x01``\x1B\x03\x16\x90\x1B\x17\x17\x17\x17\x90P`\0c\xFC\xB7yo`\xE0\x1B\x85`\0\x01`\0\x015\x83\x85`@Q` \x01a\r\x01\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R``\x1B`\x01`\x01``\x1B\x03\x19\x16`@\x82\x01R`T\x01\x90V[`@\x80Q\x80\x83\x03`\x1F\x19\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x01`\x01`\xE0\x1B\x03\x19\x94\x90\x94\x16\x81\x84\x01R\x82\x82\x01\x93\x90\x93R\x80Q\x80\x83\x03\x82\x01\x81R``\x83\x01\x82R\x80Q\x90\x84\x01 `\x05T`\x19`\xF8\x1B`\x80\x85\x01R`\x01`\xF8\x1B`\x81\x85\x01R`\x82\x84\x01R`\xA2\x80\x84\x01\x91\x90\x91R\x81Q\x80\x84\x03\x90\x91\x01\x81R`\xC2\x90\x92\x01\x90R\x80Q\x91\x01 \x95\x94PPPPPV[`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x81 T`\xFF\x16a\r\xB9W`\0a\r\xDBV[\x7F\xA2\xEFF\0\xD7B\x02-S-GG\xCB5GGFg\xD6\xF18\x04\x90%\x13\xB2\xEC\x01\xC8H\xF4\xB4[\x90P[\x92\x91PPV[`\x04T\x82\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0E\x10W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E_W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\x83\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0E\xAAW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xB4\x83\x83a\"\x13V[PPPV[`\x04T\x82\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0E\xE5W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0FX\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0F\x7FW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xB4\x83\x83a#\x8FV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0F\xB3W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\x01W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10%\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x10LW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BM3\x82a%\xD0V[`@\x80Q\x80\x82\x01\x82R`\x0C\x81RkHoprChannels`\xA0\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\"\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x91\x81\x01\x91\x90\x91R\x7F\x84\xE6\x90\x8F46\x01\xD9\xCE\x9F\xB6\r\x82P9N\xB8\xA5\x1CV\xF1\x87k\xC1\xE0\x17\xC9z\xCDeg\xF2\x91\x81\x01\x91\x90\x91R\x7F\xB4\xBC\xB1T\xE3\x86\x01\xC3\x899o\xA9\x181M\xA4-F&\xF1>\xF6\xD0\xCE\xB0~_]&\xB2\xFB\xC3``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\0\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\x05T\x81\x14a\x0BMW`\x05\x81\x90U`@Q\x81\x90\x7Fw\x1FR@\xAE_\xD8\xA7d\r?\xB8/\xA7\n\xAB/\xB1\xDB\xF3_.\xF4d\xF8P\x99Fqvd\xC5\x90`\0\x90\xA2PV[`@\x80Q` \x80\x82\x01\x86\x90R\x835\x82\x84\x01R\x83\x81\x015``\x83\x01Ra\x01\0\x85\x015`\x80\x83\x01R`\xC0\x80\x86\x01\x805`\xA0\x80\x86\x01\x91\x90\x91R`\xE0\x80\x89\x015\x84\x87\x01R\x86Q\x80\x87\x03\x90\x94\x01\x84R\x90\x94\x01\x90\x94R\x80Q\x91\x01 `\0\x92`\xC8\x91\x90\x91\x1C\x91a\x11\xDA\x91\x90\x86\x01a?dV[f\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x16\x11\x15\x94\x93PPPPV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\x0CWa\x12\x0Ca@\x1BV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x12?W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x12*W\x90P[P\x90P`\0[\x82\x81\x10\x15a\x12\xDFWa\x12\xAF0\x85\x85\x84\x81\x81\x10a\x12cWa\x12ca@1V[\x90P` \x02\x81\x01\x90a\x12u\x91\x90a@GV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa' \x92PPPV[\x82\x82\x81Q\x81\x10a\x12\xC1Wa\x12\xC1a@1V[` \x02` \x01\x01\x81\x90RP\x80\x80a\x12\xD7\x90a@\x8EV[\x91PPa\x12EV[P\x92\x91PPV[`\x04T\x82\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x13\x12W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13aW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x85\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x13\xACW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xB4\x83\x83a%\xD0V[`@Q`\x01`\x01``\x1B\x03\x19``\x84\x81\x1B\x82\x16` \x84\x01R\x83\x90\x1B\x16`4\x82\x01R`\0\x90`H\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@\x80Q\x80\x82\x01\x82R`\n\x81Ri$7\xB89&2\xB23\xB2\xB9`\xB1\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\x12\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x83\x01R\x7Fl\xD6\x81y\x0Cx\xC2 Q{\t\x9As\x7F\x8E\x85\xF6\x9Eyz\xBEN)\x10\xFB\x18\x9Ba\xDBK\xF2\xCD\x81\x84\x01R\x7F\x06\xC0\x15\xBD\"\xB4\xC6\x96\x90\x93<\x10X\x87\x8E\xBD\xFE\xF3\x1F\x9A\xAA\xE4\x0B\xBE\x86\xD8\xA0\x9F\xE1\xB2\x97,``\x82\x01RF`\x80\x82\x01R0`\xA0\x80\x83\x01\x91\x90\x91R\x83Q\x80\x83\x03\x90\x91\x01\x81R`\xC0\x90\x91\x01\x90\x92R\x81Q\x91\x01 `\x03T\x81\x14a\x0BMW`\x03\x81\x90U`@Q\x81\x90\x7F\xA4?\xAD\x83\x92\x0F\xD0\x94E\x85^\x85Ns\xC9\xC52\xE1t\x02\xC9\xCE\xB0\x99\x93\xA29(C\xA5\xBD\xB9\x90`\0\x90\xA2PV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x153W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x81W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\xA5\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15\xCCW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x15\xD73\x83\x83a\x17jV[`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`\x01`\x01``\x1B\x03\x82\x16`D\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c#\xB8r\xDD\x90`d\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x16RW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16v\x91\x90a?BV[\x15\x15`\x01\x14a\x16\x98W`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x16\xC6W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x178\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x17_W`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x16\x983\x83\x83a\x1B\x16V[\x80`\x01`\x01`\x01``\x1B\x03\x82\x16\x10\x15a\x17\x96W`@Qc\xC5.>\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[j\x08E\x95\x16\x14\x01HJ\0\0\0`\x01`\x01``\x1B\x03\x82\x16\x11\x15a\x17\xCBW`@Qc)<\xEE\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83\x83\x80`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x03a\x17\xFFW`@QcK\xD1\xD7i`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x18[W`@Qc\xEA\xC0\xD3\x89`\xE0\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7Fsource must not be empty\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x18\xB2W`@Qc\xEA\xC0\xD3\x89`\xE0\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7Fdestination must not be empty\0\0\0`D\x82\x01R`d\x01a\x18RV[`\0a\x18\xBE\x87\x87a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x90 \x90\x91P`\x02\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x18\xEEWa\x18\xEEa<\xBFV[\x03a\x19OW`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7Fcannot fund a channel that will `D\x82\x01Ri1\xB67\xB9\xB2\x909\xB7\xB7\xB7`\xB1\x1B`d\x82\x01R`\x84\x01a\x18RV[\x80Ta\x19e\x90\x87\x90`\x01`\x01``\x1B\x03\x16a@\xA7V[\x81T`\x01`\x01``\x1B\x03\x19\x16`\x01`\x01``\x1B\x03\x91\x90\x91\x16\x17\x81U`\0\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x19\x9FWa\x19\x9Fa<\xBFV[\x03a\x1A\xAAW\x80Ta\x19\xBD\x90`\x01`\xB0\x1B\x90\x04b\xFF\xFF\xFF\x16`\x01a@\xC7V[\x81Tb\xFF\xFF\xFF\x91\x90\x91\x16`\x01`\xB0\x1B\x02m\xFF\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF``\x1B\x19\x16m\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF``\x1B\x19\x90\x91\x16\x17`\x01`\xC8\x1B\x17\x81U`@\x80Q\x7F\xDD\x90\xF98#\x035\xE5\x9D\xC9%\xC5~\xCB\x0E'\xA2\x8C-\x875n1\xF0\x0C\xD5UJ\xBDl\x1B-` \x82\x01R``\x8A\x81\x1B`\x01`\x01``\x1B\x03\x19\x90\x81\x16\x93\x83\x01\x93\x90\x93R\x89\x90\x1B\x90\x91\x16`T\x82\x01Ra\x1Ai\x90`h\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra'EV[\x86`\x01`\x01`\xA0\x1B\x03\x16\x88`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\x90\xF98#\x035\xE5\x9D\xC9%\xC5~\xCB\x0E'\xA2\x8C-\x875n1\xF0\x0C\xD5UJ\xBDl\x1B-`@Q`@Q\x80\x91\x03\x90\xA3[\x80T`@Qa\x1A\xDD\x91a\x1AU\x91`\0\x80Q` aB\xC9\x839\x81Q\x91R\x91\x86\x91`\x01`\x01``\x1B\x03\x90\x91\x16\x90` \x01a@\xE3V[\x80T`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R\x82\x90`\0\x80Q` aB\xC9\x839\x81Q\x91R\x90` \x01`@Q\x80\x91\x03\x90\xA2PPPPPPPPV[a\x1B&`@\x83\x01` \x84\x01a@\0V[`\x01`\x01`\x01``\x1B\x03\x82\x16\x10\x15a\x1BQW`@Qc\xC5.>\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[j\x08E\x95\x16\x14\x01HJ\0\0\0`\x01`\x01``\x1B\x03\x82\x16\x11\x15a\x1B\x86W`@Qc)<\xEE\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a\x01\0\x015a\x1B\x95\x81a(+V[a\x1B\xB2W`@Qc:\xE4\xEDk`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x835`\0\x90\x81R`\x06` R`@\x90 `\x01\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1B\xE1Wa\x1B\xE1a<\xBFV[\x14\x15\x80\x15a\x1C\x0CWP`\x02\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1C\tWa\x1C\ta<\xBFV[\x14\x15[\x15a\x1CtW`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`1`$\x82\x01R\x7Fspending channel must be OPEN or`D\x82\x01Rp PENDING_TO_CLOSE`x\x1B`d\x82\x01R`\x84\x01a\x18RV[a\x1C\x84`\xA0\x86\x01`\x80\x87\x01a?\x8DV[\x81T`\x01`\xB0\x1B\x90\x04b\xFF\xFF\xFF\x90\x81\x16\x91\x16\x14a\x1C\xE4W`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7Fchannel epoch must match\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x18RV[`\0a\x1C\xF6``\x87\x01`@\x88\x01a?\xD8V[\x90P`\0a\x1D\n`\x80\x88\x01``\x89\x01a?\xB2V[\x83T\x90\x91P`\x01``\x1B\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01c\xFF\xFF\xFF\xFF\x83\x16\x10\x80a\x1DBWP\x80e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a\x1D`W`@Qchn\x1E\x0F`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1Dp`@\x89\x01` \x8A\x01a@\0V[\x84T`\x01`\x01``\x1B\x03\x91\x82\x16\x91\x16\x10\x15a\x1D\x9EW`@Qc,Q\xD8\xDB`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1D\xA9\x89a\x0C\x1DV[\x90Pa\x1D\xB6\x81\x8A\x8Aa\x11oV[a\x1D\xD3W`@Qc\xEE\x83\\\x89`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`@Q\x80``\x01`@R\x80\x83\x81R` \x01\x8C`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01`\x05T`@Q` \x01a\x1E\n\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90R\x90Pa\x1E6a\x1E06\x8B\x90\x03\x8B\x01\x8BaA\x06V[\x82a(MV[a\x1ESW`@Qc\x12\xBF\xB7\xB7`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1Eh\x83`\xC0\x8D\x015`\xE0\x8E\x015a*\xD6V[\x90P\x8A5a\x1Ev\x82\x8Ea\x13\xB6V[\x14a\x1E\x94W`@Qcf\xEE\xA9\xAB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1E\xA4c\xFF\xFF\xFF\xFF\x86\x16\x87aA\xA4V[\x87Te\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x01``\x1B\x02e\xFF\xFF\xFF\xFF\xFF\xFF``\x1B\x19\x90\x91\x16\x17\x87Ua\x1E\xD8`@\x8C\x01` \x8D\x01a@\0V[\x87Ta\x1E\xED\x91\x90`\x01`\x01``\x1B\x03\x16aA\xC3V[\x87T`\x01`\x01``\x1B\x03\x19\x16`\x01`\x01``\x1B\x03\x91\x90\x91\x16\x90\x81\x17\x88U`@Qa\x1FB\x91a\x1AU\x91\x7F\"\xE2\xA4\"\xA8\x86\x06V\xA3\xA3<\xFA\x1D\xAFw\x1Evy\x8C\xE5d\x97G\x95r5\x02]\xE1.\x0B$\x91\x8F5\x91` \x01a@\xE3V[\x86T`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R\x8B5\x90\x7F\"\xE2\xA4\"\xA8\x86\x06V\xA3\xA3<\xFA\x1D\xAFw\x1Evy\x8C\xE5d\x97G\x95r5\x02]\xE1.\x0B$\x90` \x01`@Q\x80\x91\x03\x90\xA2`\0a\x1F\x90\x8D\x83a\x13\xB6V[\x90P`\0`\x06`\0\x83\x81R` \x01\x90\x81R` \x01`\0 \x90Pa \x1C\x7Fqe\xE2\xEB\xC7\xCE5\xCC\x98\xCBvf\xF9\x94[6\x17\xF3\xF3c&\xB7m\x18\x93{\xA5\xFE\xCF\x18s\x9A\x8E`\0\x01`\0\x015\x8B`\0\x01`\x0C\x90T\x90a\x01\0\n\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16`@Q` \x01a\x1AU\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R`\xD0\x1B`\x01`\x01`\xD0\x1B\x03\x19\x16`@\x82\x01R`F\x01\x90V[\x88T`@Q`\x01``\x1B\x90\x91\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R\x8D5\x90\x7Fqe\xE2\xEB\xC7\xCE5\xCC\x98\xCBvf\xF9\x94[6\x17\xF3\xF3c&\xB7m\x18\x93{\xA5\xFE\xCF\x18s\x9A\x90` \x01`@Q\x80\x91\x03\x90\xA2`\0\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a \x82Wa \x82a<\xBFV[\x03a!lW\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xA9\x05\x9C\xBB3\x8F`\0\x01` \x01` \x81\x01\x90a \xCD\x91\x90a@\0V[`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x85\x90\x1B\x16\x81R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16`\x04\x83\x01R`\x01`\x01``\x1B\x03\x16`$\x82\x01R`D\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a!!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!E\x91\x90a?BV[\x15\x15`\x01\x14a!gW`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\"\x03V[a!|`@\x8E\x01` \x8F\x01a@\0V[\x81Ta!\x91\x91\x90`\x01`\x01``\x1B\x03\x16a@\xA7V[\x81T`\x01`\x01``\x1B\x03\x19\x16`\x01`\x01``\x1B\x03\x91\x90\x91\x16\x90\x81\x17\x82U`@Qa!\xD3\x91a\x1AU\x91`\0\x80Q` aB\xC9\x839\x81Q\x91R\x91\x86\x91` \x01a@\xE3V[\x80T`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R\x82\x90`\0\x80Q` aB\xC9\x839\x81Q\x91R\x90` \x01`@Q\x80\x91\x03\x90\xA2[PPPPPPPPPPPPPPV[`\0a\"\x1F\x82\x84a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x81 \x91\x92P\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\"MWa\"Ma<\xBFV[\x03a\"kW`@QcI\x94c\xC1`\xE0\x1B\x81R`\x04\x01a\x18R\x90aA\xE3V[\x80T`\x01c\xFF\0\0\x01`\xB0\x1B\x03\x19\x81\x16\x82U`@\x80Q`\0\x80Q` aB\xE9\x839\x81Q\x91R` \x82\x01R\x90\x81\x01\x84\x90R`\x01`\x01``\x1B\x03\x90\x91\x16\x90a\"\xB3\x90``\x01a\x1AUV[`@Q\x83\x90`\0\x80Q` aB\xE9\x839\x81Q\x91R\x90`\0\x90\xA2\x80\x15a#\x88W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a#BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#f\x91\x90a?BV[\x15\x15`\x01\x14a#\x88W`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPV[`\0a#\x9B\x83\x83a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x90 \x90\x91P`\x02\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a#\xCBWa#\xCBa<\xBFV[\x14a$(W`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7Fchannel state must be PENDING_TO`D\x82\x01Re_CLOSE`\xD0\x1B`d\x82\x01R`\x84\x01a\x18RV[\x80Tc\xFF\xFF\xFF\xFFB\x81\x16`\x01`\x90\x1B\x90\x92\x04\x16\x10a$YW`@Qc8\xB2\x01\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01c\xFF\0\0\x01`\xB0\x1B\x03\x19\x81\x16\x82U`@\x80Q`\0\x80Q` aB\xE9\x839\x81Q\x91R` \x82\x01R\x90\x81\x01\x84\x90R`\x01`\x01``\x1B\x03\x90\x91\x16\x90a$\xA1\x90``\x01a\x1AUV[`@Q\x83\x90`\0\x80Q` aB\xE9\x839\x81Q\x91R\x90`\0\x90\xA2\x80\x15a#\x88W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01a##V[`\0`\x01\x81`\x1B\x7Fy\xBEf~\xF9\xDC\xBB\xACU\xA0b\x95\xCE\x87\x0B\x07\x02\x9B\xFC\xDB-\xCE(\xD9Y\xF2\x81[\x16\xF8\x17\x98p\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19\x7Fy\xBEf~\xF9\xDC\xBB\xACU\xA0b\x95\xCE\x87\x0B\x07\x02\x9B\xFC\xDB-\xCE(\xD9Y\xF2\x81[\x16\xF8\x17\x98\x87\t`@\x80Q`\0\x81R` \x81\x01\x80\x83R\x95\x90\x95R`\xFF\x90\x93\x16\x92\x84\x01\x92\x90\x92R``\x83\x01R`\x80\x82\x01R`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a%\xBFW=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x93\x92PPPV[`\0a%\xDC\x83\x83a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x81 \x91\x92P\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a&\nWa&\na<\xBFV[\x03a&(W`@QcI\x94c\xC1`\xE0\x1B\x81R`\x04\x01a\x18R\x90aA\xE3V[a&R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BaB3V[\x81T`\x01`\xC9\x1Bg\xFF\0\0\0\xFF\xFF\xFF\xFF`\x90\x1B\x19\x90\x91\x16`\xFF`\xC8\x1B\x19`\x01`\x90\x1Bc\xFF\xFF\xFF\xFF\x94\x90\x94\x16\x84\x02\x16\x17\x17\x80\x83U`@\x80Q\x7F\x07\xB5\xC9PY\x7F\xC3\xBE\xD9.*\xD3\x7F\xA8Op\x16U\xAC\xB3r\x98.Ho_\xAD6\x07\xF0J\\` \x82\x01R\x90\x81\x01\x85\x90R\x91\x90\x04`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16``\x82\x01Ra&\xD6\x90`d\x01a\x1AUV[\x80T`@Q`\x01`\x90\x1B\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x81R\x82\x90\x7F\x07\xB5\xC9PY\x7F\xC3\xBE\xD9.*\xD3\x7F\xA8Op\x16U\xAC\xB3r\x98.Ho_\xAD6\x07\xF0J\\\x90` \x01`@Q\x80\x91\x03\x90\xA2PPPPV[``a\r\xDB\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01aB\xA2`'\x919a*\xFCV[`\x01T`\0\x90a'\x83\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90`\x01`\xE0\x1B\x90\x04c\xFF\xFF\xFF\xFF\x16a?/V[B\x11\x15a'\x8EWP`\x01[`\x03T`\x01T\x83Q` \x80\x86\x01\x91\x90\x91 `@\x80Q\x80\x84\x01\x95\x90\x95RC`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x90\x85\x01R\x91\x90\x1Bc\xFF\xFF\xFF\xFF\x19\x16`D\x83\x01R``\x82\x01R`\x80\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x91\x82\x01 c\xFF\xFF\xFF\xFFB\x16`\x01`\xE0\x1B\x02\x91\x1C\x17`\x01U\x80\x15a\x16\x98WPP`\x01T`\x01`\x01`\xE0\x1B\x03\x81\x16`\x01`\xE0\x1B\x91\x82\x90\x04c\xFF\xFF\xFF\xFF\x16\x90\x91\x02\x17`\x02UV[`\0\x81\x15\x80a\r\xDEWPPp\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19\x11\x90V[`\0d\x01\0\0\x03\xD0\x19\x83``\x01Q\x10\x15\x80a(rWPd\x01\0\0\x03\xD0\x19\x83`@\x01Q\x10\x15[\x15a(\x90W`@Qc:\xE4\xEDk`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a(\xA2\x83`\0\x01Q\x84` \x01Qa+tV[a(\xBFW`@Qc9\"\xA5A`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80a)\x11\x84` \x01Q\x85`\0\x01Q`@Q` \x01a(\xF8\x92\x91\x90``\x92\x90\x92\x1B`\x01`\x01``\x1B\x03\x19\x16\x82R`\x14\x82\x01R`4\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x85`@\x01Qa+\x9FV[\x91P\x91P`\0a)&\x86`@\x01Q\x84\x84a,%V[\x90Pa)a\x86`\x80\x01Q\x87`\xA0\x01Q`@\x80Q` \x80\x82\x01\x94\x90\x94R\x80\x82\x01\x92\x90\x92R\x80Q\x80\x83\x03\x82\x01\x81R``\x90\x92\x01\x90R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a)\x92W`@Qc\x1D\xBF\xB9\xB3`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a)\xAB\x87``\x01Q\x88`\0\x01Q\x89` \x01Qa,%V[\x90Pa)\xE6\x87`\xC0\x01Q\x88`\xE0\x01Q`@\x80Q` \x80\x82\x01\x94\x90\x94R\x80\x82\x01\x92\x90\x92R\x80Q\x80\x83\x03\x82\x01\x81R``\x90\x92\x01\x90R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a*\x17W`@Qc\x1D\xBF\xB9\xB3`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80a*I\x89`\x80\x01Q\x8A`\xA0\x01Q\x8B`\xC0\x01Q\x8C`\xE0\x01Qd\x01\0\0\x03\xD0\x19a*B\x91\x90aBPV[`\0a,\xC4V[` \x80\x8B\x01Q\x8CQ\x8D\x83\x01Q\x8DQ`@Q\x96\x98P\x94\x96P`\0\x95a*\xC1\x95a*\xA8\x95\x8A\x92\x8A\x92\x91\x01``\x96\x90\x96\x1B`\x01`\x01``\x1B\x03\x19\x16\x86R`\x14\x86\x01\x94\x90\x94R`4\x85\x01\x92\x90\x92R`T\x84\x01R`t\x83\x01R`\x94\x82\x01R`\xB4\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x8A`@\x01Qa.KV[``\x8B\x01Q\x14\x97PPPPPPPP\x92\x91PPV[`\0\x80`\0a*\xE6\x86\x86\x86a.\xBCV[\x91P\x91Pa*\xF3\x81a.\xF5V[P\x94\x93PPPPV[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa+\x19\x91\x90aBcV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a+TW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a+YV[``\x91P[P\x91P\x91Pa+j\x86\x83\x83\x87a0?V[\x96\x95PPPPPPV[`\0d\x01\0\0\x03\xD0\x19\x80\x84d\x01\0\0\x03\xD0\x19\x86\x87\t\t`\x07\x08d\x01\0\0\x03\xD0\x19\x83\x84\t\x14\x93\x92PPPV[`\0\x80`\0\x80a+\xAF\x86\x86a0\xC0V[\x91P\x91P`\0\x80a+\xBF\x84a1|V[\x91P\x91P`\0\x80a+\xCF\x85a1|V[\x91P\x91P`\0\x80a,\x03\x86\x86\x86\x86\x7F?\x871\xAB\xDDf\x1A\xDC\xA0\x8AUX\xF0\xF5\xD2r\xE9S\xD3c\xCBo\x0E]@TG\xC0\x1ADE3a,\xC4V[\x91P\x91Pa,\x11\x82\x82a4>V[\x99P\x99PPPPPPPPP[\x92P\x92\x90PV[`\0\x80a,3`\x02\x84aB\x7FV[`\0\x03a,BWP`\x1Ba,FV[P`\x1C[`\x01`\0\x82\x86p\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19\x88\x8A\t`@\x80Q`\0\x81R` \x81\x01\x80\x83R\x95\x90\x95R`\xFF\x90\x93\x16\x92\x84\x01\x92\x90\x92R``\x83\x01R`\x80\x82\x01R`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a,\xB0W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x96\x95PPPPPPV[`\0\x80\x83\x86\x14\x19\x85\x88\x14\x16\x15a,\xD9W`\0\x80\xFD[`\0\x80\x85\x88\x14\x87\x8A\x14\x16`\x01\x81\x14a,\xF6W\x80\x15a-sWa-\xEEV[d\x01\0\0\x03\xD0\x19\x86d\x01\0\0\x03\xD0\x19\x8B`\x02\t\x08\x91P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa-SW`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x81Qd\x01\0\0\x03\xD0\x19\x80\x8E\x8F\t`\x03\t\t\x93PPa-\xEEV[d\x01\0\0\x03\xD0\x19\x8Ad\x01\0\0\x03\xD0\x19\x03\x89\x08\x91P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa-\xCEW`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x81Qd\x01\0\0\x03\xD0\x19\x8Cd\x01\0\0\x03\xD0\x19\x03\x8B\x08\t\x93PP[PPd\x01\0\0\x03\xD0\x19\x80\x89d\x01\0\0\x03\xD0\x19\x03\x88d\x01\0\0\x03\xD0\x19\x03\x08d\x01\0\0\x03\xD0\x19\x83\x84\t\x08\x92Pd\x01\0\0\x03\xD0\x19\x87d\x01\0\0\x03\xD0\x19\x03d\x01\0\0\x03\xD0\x19\x80\x86d\x01\0\0\x03\xD0\x19\x03\x8C\x08\x84\t\x08\x91PP\x95P\x95\x93PPPPV[`\0\x80`\0a.Z\x85\x85a7+V[\x91P\x91P`@Q`0\x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R\x81`\x80\x82\x01R`\x01`\x90\x82\x01Rp\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19`\xB0\x82\x01R` \x81`\xD0\x83`\x05`\0\x19\xFAa.\xB2W`\0\x80\xFD[Q\x95\x94PPPPPV[`\0\x80`\x01`\x01`\xFF\x1B\x03\x83\x16\x81a.\xD9`\xFF\x86\x90\x1C`\x1Ba?/V[\x90Pa.\xE7\x87\x82\x88\x85a8+V[\x93P\x93PPP\x93P\x93\x91PPV[`\0\x81`\x04\x81\x11\x15a/\tWa/\ta<\xBFV[\x03a/\x11WPV[`\x01\x81`\x04\x81\x11\x15a/%Wa/%a<\xBFV[\x03a/rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x18RV[`\x02\x81`\x04\x81\x11\x15a/\x86Wa/\x86a<\xBFV[\x03a/\xD3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x18RV[`\x03\x81`\x04\x81\x11\x15a/\xE7Wa/\xE7a<\xBFV[\x03a\x0BMW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01Raue`\xF0\x1B`d\x82\x01R`\x84\x01a\x18RV[``\x83\x15a0\xAEW\x82Q`\0\x03a0\xA7W`\x01`\x01`\xA0\x1B\x03\x85\x16;a0\xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x18RV[P\x81a0\xB8V[a0\xB8\x83\x83a8\xEFV[\x94\x93PPPPV[`\0\x80`\0\x80`\0a0\xD2\x87\x87a9\x19V[\x92P\x92P\x92P`@Q`0\x81R` \x80\x82\x01R` `@\x82\x01R\x83``\x82\x01R\x82`\x80\x82\x01R`\x01`\x90\x82\x01Rd\x01\0\0\x03\xD0\x19`\xB0\x82\x01R` \x81`\xD0\x83`\x05`\0\x19\xFAa1 W`\0\x80\xFD[\x80Q\x95PP`@Q`0\x81R` \x80\x82\x01R\x82`P\x82\x01R` `@\x82\x01R\x81`p\x82\x01R`\x01`\x90\x82\x01Rd\x01\0\0\x03\xD0\x19`\xB0\x82\x01R` \x81`\xD0\x83`\x05`\0\x19\xFAa1mW`\0\x80\xFD[\x80Q\x94PPPPP\x92P\x92\x90PV[`\0\x80d\x01\0\0\x03\xD0\x19\x83\x84\td\x01\0\0\x03\xD0\x19\x81d\x01\0\0\x03\xDB\x19\t\x90Pd\x01\0\0\x03\xD0\x19\x81\x82\td\x01\0\0\x03\xD0\x19\x82\x82\x08\x90Pd\x01\0\0\x03\xD0\x19`\x01\x82\x08d\x01\0\0\x03\xD0\x19a\x06\xEB\x82\t\x90P`\0\x82\x15`\x01\x81\x14a1\xE1W\x80\x15a1\xEFWa1\xFBV[d\x01\0\0\x03\xDB\x19\x91Pa1\xFBV[\x83d\x01\0\0\x03\xD0\x19\x03\x91P[Pd\x01\0\0\x03\xD0\x19\x81\x7F?\x871\xAB\xDDf\x1A\xDC\xA0\x8AUX\xF0\xF5\xD2r\xE9S\xD3c\xCBo\x0E]@TG\xC0\x1ADE3\t\x90Pd\x01\0\0\x03\xD0\x19\x82\x83\t\x92Pd\x01\0\0\x03\xD0\x19\x81\x82\td\x01\0\0\x03\xD0\x19\x81\x7F?\x871\xAB\xDDf\x1A\xDC\xA0\x8AUX\xF0\xF5\xD2r\xE9S\xD3c\xCBo\x0E]@TG\xC0\x1ADE3\td\x01\0\0\x03\xD0\x19\x81\x86\x08\x94Pd\x01\0\0\x03\xD0\x19\x84\x86\t\x94Pd\x01\0\0\x03\xD0\x19\x83\x83\t\x91Pd\x01\0\0\x03\xD0\x19\x82a\x06\xEB\t\x90Pd\x01\0\0\x03\xD0\x19\x81\x86\x08\x94PPd\x01\0\0\x03\xD0\x19\x83\x86\t\x96P`\0\x80d\x01\0\0\x03\xD0\x19\x83\x84\td\x01\0\0\x03\xD0\x19\x84\x88\td\x01\0\0\x03\xD0\x19\x81\x83\t\x91P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01Rc@\0\0\xF5`\x01`\xFE\x1B\x03`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa3!W`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x82\x82Q\t\x92PPPd\x01\0\0\x03\xD0\x19\x7F1\xFD\xF3\x02r@\x13\xE5z\xD1?\xB3\x8F\x84*\xFE\xEC\x18O\0\xA7G\x89\xDD(g)\xC80<JY\x82\td\x01\0\0\x03\xD0\x19\x82\x83\td\x01\0\0\x03\xD0\x19\x86\x82\t\x90P\x88\x81\x14`\x01\x81\x14a3\x86W\x80\x15a3\x92Wa3\x9AV[`\x01\x94P\x83\x95Pa3\x9AV[`\0\x94P\x82\x95P[PPPPd\x01\0\0\x03\xD0\x19\x8A\x88\t\x97Pd\x01\0\0\x03\xD0\x19\x82\x89\t\x97P\x80\x15a3\xC3W\x84\x98P\x81\x97P[PPP`\x02\x85\x06`\x02\x88\x06\x14a3\xDFW\x84d\x01\0\0\x03\xD0\x19\x03\x94P[`@Q\x93P` \x84R` \x80\x85\x01R` `@\x85\x01R\x80``\x85\x01RPPPd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa4+W`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x81Q\x84\t\x92PP\x91P\x91V[`\0\x80d\x01\0\0\x03\xD0\x19\x84\x85\td\x01\0\0\x03\xD0\x19\x81\x86\td\x01\0\0\x03\xD0\x19\x80\x7F\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8D\xAA\xAA\xA8\xC7d\x01\0\0\x03\xD0\x19\x89\x7F\x07\xD3\xD4\xC8\x0B\xC3!\xD5\xB9\xF3\x15\xCE\xA7\xFDD\xC5\xD5\x95\xD2\xFC\x0B\xF6;\x92\xDF\xFF\x10D\xF1|e\x81\t\x08d\x01\0\0\x03\xD0\x19\x80\x85\x7FSL2\x8D#\xF24\xE6\xE2\xA4\x13\xDE\xCA%\xCA\xEC\xE4PaD\x03|@1N\xCB\xD0\xB5=\x9D\xD2b\td\x01\0\0\x03\xD0\x19\x85\x7F\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8D\xAA\xAA\xA8\x8C\t\x08\x08d\x01\0\0\x03\xD0\x19\x7F\xD3Wq\x19=\x94\x91\x8A\x9C\xA3L\xCB\xB7\xB6@\xDD\x86\xCD@\x95B\xF8H}\x9F\xE6\xB7Ex\x1E\xB4\x9Bd\x01\0\0\x03\xD0\x19\x80\x8A\x7F\xED\xAD\xC6\xF6C\x83\xDC\x1D\xF7\xC4\xB2\xD5\x1BT\"T\x06\xD3kd\x1F^A\xBB\xC5*Va*\x8Cm\x14\t\x86\x08\x08`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x81``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa5\x9DW`\0\x80\xFD[\x80Q\x91Pd\x01\0\0\x03\xD0\x19\x82\x84\t\x96Pd\x01\0\0\x03\xD0\x19\x80\x7FK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/hK\x8E8\xE2<d\x01\0\0\x03\xD0\x19\x8C\x7F\xC7^\x0C2\xD5\xCB|\x0F\xA9\xD0\xA5K\x12\xA0\xA6\xD5dz\xB0F\xD6\x86\xDAo\xDF\xFC\x90\xFC \x1Dq\xA3\t\x08d\x01\0\0\x03\xD0\x19\x80\x88\x7F)\xA6\x19F\x91\xF9\x1AsqR\t\xEFe\x12\xE5vr(0\xA2\x01\xBE \x18\xA7e\xE8Z\x9E\xCE\xE91\td\x01\0\0\x03\xD0\x19\x88\x7F/hK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/8\xE3\x8D\x84\t\x08\x08\x92Pd\x01\0\0\x03\xD0\x19\x80d\x01\0\0\x06\xC4\x19d\x01\0\0\x03\xD0\x19\x8C\x7Fz\x06SK\xB8\xBD\xB4\x9F\xD5\xE9\xE6c'\"\xC2\x98\x94g\xC1\xBF\xC8\xE8\xD9x\xDF\xB4%\xD2h\\%s\t\x08d\x01\0\0\x03\xD0\x19\x80\x88\x7Fd\x84\xAAqeE\xCA,\xF3\xA7\x0C?\xA8\xFE3~\n=!\x16/\rb\x99\xA7\xBF\x81\x92\xBF\xD2\xA7o\t\x87\x08\x08\x94P`@Q\x90P` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa7\rW`\0\x80\xFD[Q\x93Pd\x01\0\0\x03\xD0\x19\x90P\x83\x81\x83\x89\t\t\x93PPPP\x92P\x92\x90PV[`\0\x80`\xFF\x83Q\x11\x15a7=W`\0\x80\xFD[`\0`@Q`\x88` `\0[\x88Q\x81\x10\x15a7jW\x88\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a7IV[PP`\x89\x87Q\x01\x90P`0\x81\x83\x01S`\x02\x01` `\0[\x87Q\x81\x10\x15a7\xA2W\x87\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a7\x81V[PP`\x8B\x86Q\x88Q\x01\x01\x90P\x85Q\x81\x83\x01SP\x85Q\x85Q\x01`\x8C\x01\x81 \x91PP`@Q\x81\x81R`\x01` \x82\x01S`!` `\0[\x87Q\x81\x10\x15a7\xF7W\x87\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a7\xD6V[PPP\x84Q\x85Q`!\x01\x82\x01S\x84Q`\"\x01\x81 \x93P\x83\x82\x18\x81R`\x02` \x82\x01S\x84Q`\"\x01\x81 \x92PPP\x92P\x92\x90PV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a8bWP`\0\x90P`\x03a8\xE6V[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a8\xB6W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a8\xDFW`\0`\x01\x92P\x92PPa8\xE6V[\x91P`\0\x90P[\x94P\x94\x92PPPV[\x81Q\x15a8\xFFW\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x18R\x91\x90a>\x86V[`\0\x80`\0`\xFF\x84Q\x11\x15a9-W`\0\x80\xFD[`\0`@Q`\x88` `\0[\x89Q\x81\x10\x15a9ZW\x89\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a99V[PP`\x89\x88Q\x01\x90P``\x81\x83\x01S`\x02\x01` `\0[\x88Q\x81\x10\x15a9\x92W\x88\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a9qV[PP`\x8B\x87Q\x89Q\x01\x01\x90P\x86Q\x81\x83\x01SP\x86Q\x86Q\x01`\x8C\x01\x81 \x91PP`@Q\x81\x81R`\x01` \x82\x01S`!` `\0[\x88Q\x81\x10\x15a9\xE7W\x88\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a9\xC6V[PPP\x85Q\x86Q`!\x01\x82\x01S\x85Q`\"\x01\x81 \x94P\x84\x82\x18\x81R`\x02` \x82\x01S\x85Q`\"\x01\x81 \x93P\x83\x82\x18\x81R`\x03` \x82\x01S\x85Q`\"\x01\x81 \x92PPP\x92P\x92P\x92V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0BMW`\0\x80\xFD[`\0\x80\x83`\x1F\x84\x01\x12a:WW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a:oW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a,\x1EW`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a:\xA3W`\0\x80\xFD[\x885a:\xAE\x81a:0V[\x97P` \x89\x015a:\xBE\x81a:0V[\x96P`@\x89\x015a:\xCE\x81a:0V[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a:\xF2W`\0\x80\xFD[a:\xFE\x8C\x83\x8D\x01a:EV[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a;\x17W`\0\x80\xFD[Pa;$\x8B\x82\x8C\x01a:EV[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[\x805`\x01`\x01``\x1B\x03\x81\x16\x81\x14a;OW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a;iW`\0\x80\xFD[\x835a;t\x81a:0V[\x92P` \x84\x015a;\x84\x81a:0V[\x91Pa;\x92`@\x85\x01a;8V[\x90P\x92P\x92P\x92V[`\0a\x01 \x82\x84\x03\x12\x15a;\xAEW`\0\x80\xFD[P\x91\x90PV[`\0a\x01\0\x82\x84\x03\x12\x15a;\xAEW`\0\x80\xFD[`\0\x80`\0a\x02@\x84\x86\x03\x12\x15a;\xDDW`\0\x80\xFD[\x835a;\xE8\x81a:0V[\x92Pa;\xF7\x85` \x86\x01a;\x9BV[\x91Pa;\x92\x85a\x01@\x86\x01a;\xB4V[`\0` \x82\x84\x03\x12\x15a<\x19W`\0\x80\xFD[\x815a<$\x81a:0V[\x93\x92PPPV[`\0a\x01 \x82\x84\x03\x12\x15a<>W`\0\x80\xFD[a\r\xDB\x83\x83a;\x9BV[`\0\x80`@\x83\x85\x03\x12\x15a<[W`\0\x80\xFD[\x825\x91P` \x83\x015a<m\x81a:0V[\x80\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a<\x8BW`\0\x80\xFD[\x825a<\x96\x81a:0V[\x91P` \x83\x015a<m\x81a:0V[`\0` \x82\x84\x03\x12\x15a<\xB8W`\0\x80\xFD[P5\x91\x90PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x01`\x01``\x1B\x03\x86\x16\x81Re\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16` \x82\x01Rc\xFF\xFF\xFF\xFF\x84\x16`@\x82\x01Rb\xFF\xFF\xFF\x83\x16``\x82\x01R`\xA0\x81\x01`\x03\x83\x10a=(WcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[\x82`\x80\x83\x01R\x96\x95PPPPPPV[`\0\x80`\0a\x02@\x84\x86\x03\x12\x15a=NW`\0\x80\xFD[\x835\x92Pa;\xF7\x85` \x86\x01a;\x9BV[`\0\x80` \x83\x85\x03\x12\x15a=rW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a=\x8AW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a=\x9EW`\0\x80\xFD[\x815\x81\x81\x11\x15a=\xADW`\0\x80\xFD[\x86` \x82`\x05\x1B\x85\x01\x01\x11\x15a=\xC2W`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\0[\x83\x81\x10\x15a=\xEFW\x81\x81\x01Q\x83\x82\x01R` \x01a=\xD7V[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra>\x10\x81` \x86\x01` \x86\x01a=\xD4V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1B\x87\x01\x01\x92P\x83\x87\x01`\0[\x82\x81\x10\x15a>yW`?\x19\x88\x86\x03\x01\x84Ra>g\x85\x83Qa=\xF8V[\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a>KV[P\x92\x97\x96PPPPPPPV[` \x81R`\0a\r\xDB` \x83\x01\x84a=\xF8V[`\0\x80`@\x83\x85\x03\x12\x15a>\xACW`\0\x80\xFD[\x825a>\xB7\x81a:0V[\x91Pa>\xC5` \x84\x01a;8V[\x90P\x92P\x92\x90PV[`\0\x80a\x02 \x83\x85\x03\x12\x15a>\xE2W`\0\x80\xFD[a>\xEC\x84\x84a;\x9BV[\x91Pa>\xC5\x84a\x01 \x85\x01a;\xB4V[`\0` \x82\x84\x03\x12\x15a?\x0EW`\0\x80\xFD[\x81Qa<$\x81a:0V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\r\xDEWa\r\xDEa?\x19V[`\0` \x82\x84\x03\x12\x15a?TW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?vW`\0\x80\xFD[\x815f\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?\x9FW`\0\x80\xFD[\x815b\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?\xC4W`\0\x80\xFD[\x815c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?\xEAW`\0\x80\xFD[\x815e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a@\x12W`\0\x80\xFD[a\r\xDB\x82a;8V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a@^W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a@yW`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a,\x1EW`\0\x80\xFD[`\0`\x01\x82\x01a@\xA0Wa@\xA0a?\x19V[P`\x01\x01\x90V[`\x01`\x01``\x1B\x03\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[b\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[\x92\x83R` \x83\x01\x91\x90\x91R`\xA0\x1B`\x01`\x01`\xA0\x1B\x03\x19\x16`@\x82\x01R`L\x01\x90V[`\0a\x01\0\x80\x83\x85\x03\x12\x15aA\x1AW`\0\x80\xFD[`@Q\x90\x81\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x81\x83\x10\x17\x15aAKWcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x81`@R\x835\x81R` \x84\x015` \x82\x01R`@\x84\x015`@\x82\x01R``\x84\x015``\x82\x01R`\x80\x84\x015`\x80\x82\x01R`\xA0\x84\x015`\xA0\x82\x01R`\xC0\x84\x015`\xC0\x82\x01R`\xE0\x84\x015`\xE0\x82\x01R\x80\x92PPP\x92\x91PPV[e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[`\x01`\x01``\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[` \x80\x82R`0\x90\x82\x01R\x7Fchannel must have state OPEN or `@\x82\x01RoPENDING_TO_CLOSE`\x80\x1B``\x82\x01R`\x80\x01\x90V[c\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[\x81\x81\x03\x81\x81\x11\x15a\r\xDEWa\r\xDEa?\x19V[`\0\x82QaBu\x81\x84` \x87\x01a=\xD4V[\x91\x90\x91\x01\x92\x91PPV[`\0\x82aB\x9CWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x06\x90V\xFEAddress: low-level delegate call failed_\xA1rF\xD3\xA5\xD6\x8DB\xBA\xA9L\xDE3\x04!\x80\xB7\x83\xA3\x99\xC0+\xF6:\xC2\x07n\x0Fp\x878\xCE\xEA\xB2\xEE\xF9\x98\xC1\x7F\xE9o0\xF8?\xBF<U\xFCPG\xF6\xE4\x0CU\xA0\xCFr\xD26\xE9\xD2\xBAr\xA2dipfsX\"\x12 \xB5+y\x94\xDB\xBCZ\xCBn\xDD\xE9C\xE6\x86\xCE{]+\x10\xED\xDE\x85\xCF\xE5^\xF3\xAEg\x8E#U'dsolcC\0\x08\x13\x003\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F";
1496 pub static HOPRCHANNELS_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1498 __BYTECODE,
1499 );
1500 #[rustfmt::skip]
1501 const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xE4W`\x005`\xE0\x1C\x80c|\x8E(\xDA\x11a\x01\x0FW\x80c\xC9f\xC4\xFE\x11a\0\xA2W\x80c\xFC\x0CTj\x11a\0qW\x80c\xFC\x0CTj\x14a\x04\xD2W\x80c\xFCU0\x9A\x14a\x05\x11W\x80c\xFC\xB7yo\x14a\x05$W\x80c\xFF\xA1\xADt\x14a\x057W`\0\x80\xFD[\x80c\xC9f\xC4\xFE\x14a\x04\x87W\x80c\xDC\x96\xFDP\x14a\x04\x90W\x80c\xDD\xAD\x19\x02\x14a\x04\x98W\x80c\xF6\x98\xDA%\x14a\x04\xC9W`\0\x80\xFD[\x80c\xAC\x96P\xD8\x11a\0\xDEW\x80c\xAC\x96P\xD8\x14a\x04;W\x80c\xB9 \xDE\xED\x14a\x04[W\x80c\xBD\xA6_E\x14a\x04aW\x80c\xBE\x9B\xAB\xDC\x14a\x04tW`\0\x80\xFD[\x80c|\x8E(\xDA\x14a\x03\xC1W\x80c\x875-e\x14a\x03\xD4W\x80c\x89\xCC\xFE\x89\x14a\x04\x10W\x80c\x8C7\x10\xC9\x14a\x04\x18W`\0\x80\xFD[\x80c)9.2\x11a\x01\x87W\x80ce\x15\x14\xBF\x11a\x01VW\x80ce\x15\x14\xBF\x14a\x02\xEFW\x80crX\x1C\xC0\x14a\x03\x02W\x80cx\xD8\x01m\x14a\x03)W\x80cz~\xBD{\x14a\x03PW`\0\x80\xFD[\x80c)9.2\x14a\x02\x83W\x80cD\xDA\xE6\xF8\x14a\x02\xA3W\x80cT\xA2\xED\xF5\x14a\x02\xCAW\x80c]/\x07\xC5\x14a\x02\xDDW`\0\x80\xFD[\x80c\x1A\x7F\xFEz\x11a\x01\xC3W\x80c\x1A\x7F\xFEz\x14a\x02$W\x80c#\xCB:\xC0\x14a\x027W\x80c$\x08l\xC2\x14a\x02JW\x80c$\x9C\xB3\xFA\x14a\x02pW`\0\x80\xFD[\x80b#\xDE)\x14a\x01\xE9W\x80c\n\xBE\xC5\x8F\x14a\x01\xFEW\x80c\x0C\xD8\x8Dr\x14a\x02\x11W[`\0\x80\xFD[a\x01\xFCa\x01\xF76`\x04a:\x87V[a\x05[V[\0[a\x01\xFCa\x02\x0C6`\x04a;TV[a\x08\x17V[a\x01\xFCa\x02\x1F6`\x04a;\xC7V[a\t\xAFV[a\x01\xFCa\x0226`\x04a<\x07V[a\n\x80V[a\x01\xFCa\x02E6`\x04a<\x07V[a\x0BPV[a\x02]a\x02X6`\x04a<+V[a\x0C\x1DV[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02]a\x02~6`\x04a<HV[a\r\x8AV[a\x02\x8B`\x01\x81V[`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R` \x01a\x02gV[a\x02]\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x01\xFCa\x02\xD86`\x04a<xV[a\r\xE4V[a\x02\x8Bj\x08E\x95\x16\x14\x01HJ\0\0\0\x81V[a\x01\xFCa\x02\xFD6`\x04a<xV[a\x0E\xB9V[a\x02]\x7F\xB2\x81\xFC\x8C\x12\x95M\"TM\xB4]\xE3\x15\x9A9'(\x95\xB1i\xA8R\xB3\x14\xF9\xCCv.D\xC5;\x81V[a\x02]\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[a\x03\xB0a\x03^6`\x04a<\xA6V[`\x06` R`\0\x90\x81R`@\x90 T`\x01`\x01``\x1B\x03\x81\x16\x90`\x01``\x1B\x81\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90`\x01`\x90\x1B\x81\x04c\xFF\xFF\xFF\xFF\x16\x90`\x01`\xB0\x1B\x81\x04b\xFF\xFF\xFF\x16\x90`\x01`\xC8\x1B\x90\x04`\xFF\x16\x85V[`@Qa\x02g\x95\x94\x93\x92\x91\x90a<\xD5V[a\x01\xFCa\x03\xCF6`\x04a<\x07V[a\x0F\x89V[a\x03\xFB\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qc\xFF\xFF\xFF\xFF\x90\x91\x16\x81R` \x01a\x02gV[a\x01\xFCa\x10VV[a\x04+a\x04&6`\x04a=8V[a\x11oV[`@Q\x90\x15\x15\x81R` \x01a\x02gV[a\x04Na\x04I6`\x04a=_V[a\x11\xF1V[`@Qa\x02g\x91\x90a>$V[Ba\x03\xFBV[a\x01\xFCa\x04o6`\x04a<xV[a\x12\xE6V[a\x02]a\x04\x826`\x04a<xV[a\x13\xB6V[a\x02]`\x03T\x81V[a\x01\xFCa\x13\xFBV[a\x04\xBC`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03\x12\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[`@Qa\x02g\x91\x90a>\x86V[a\x02]`\x05T\x81V[a\x04\xF9\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02gV[a\x01\xFCa\x05\x1F6`\x04a>\x99V[a\x15\tV[a\x01\xFCa\x0526`\x04a>\xCEV[a\x16\x9CV[a\x04\xBC`@Q\x80`@\x01`@R\x80`\x05\x81R` \x01d\x03\"\xE3\x02\xE3`\xDC\x1B\x81RP\x81V[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x05\xA4W`@QcPy\xFFu`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x160\x14a\x05\xCDW`@Qc\x178\x92!`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82\x15a\x08\rW\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x03a\x07.W`\x01`\x01``\x1B\x03\x85\x11\x15a\x06\"W`@Qc)<\xEE\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R\x865``\x90\x81\x1C\x93\x82\x01\x84\x90R`\x14\x88\x015\x90\x1C\x91`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x06}W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x06\xA1\x91\x90a>\xFCV[\x90P\x82`\x01`\x01`\xA0\x1B\x03\x16\x8A`\x01`\x01`\xA0\x1B\x03\x16\x03a\x06\xE9W`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x06\xE4W`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\x1BV[\x89`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a\x07\x1BW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07&\x83\x83\x8Aa\x17jV[PPPa\x08\rV[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x03a\x07\xF4W\x835``\x90\x81\x1C\x90`\x14\x86\x015`\xA0\x90\x81\x1C\x91` \x88\x015\x90\x1C\x90`4\x88\x015\x90\x1C\x88\x15\x80a\x07\x99WPa\x07\x95`\x01`\x01``\x1B\x03\x80\x83\x16\x90\x85\x16a?/V[\x89\x14\x15[\x15a\x07\xB7W`@Qc\xC5.>\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01``\x1B\x03\x83\x16\x15a\x07\xD1Wa\x07\xD1\x84\x83\x85a\x17jV[`\x01`\x01``\x1B\x03\x81\x16\x15a\x07\xEBWa\x07\xEB\x82\x85\x83a\x17jV[PPPPa\x08\rV[`@Qc\r=\xCD\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPPPPV[`\x04T\x83\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x08CW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\x92W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xB6\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x08\xDDW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x08\xE8\x84\x84\x84a\x17jV[`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`\x01`\x01``\x1B\x03\x83\x16`D\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c#\xB8r\xDD\x90`d\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\tcW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\x87\x91\x90a?BV[\x15\x15`\x01\x14a\t\xA9W`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPV[`\x04T\x83\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\t\xDBW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n*W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\nN\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\nuW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t\xA9\x84\x84\x84a\x1B\x16V[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\n\xAAW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\n\xF8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\x1C\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0BCW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BM3\x82a\"\x13V[PV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0BzW`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xC8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B\xEC\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0C\x13W`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BM3\x82a#\x8FV[`\0\x80a\x0C.\x83a\x01\0\x015a%\x13V[\x90P`\0a\x0CB`\xC0\x85\x01`\xA0\x86\x01a?dV[f\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16`8a\x0C]`\xA0\x87\x01`\x80\x88\x01a?\x8DV[b\xFF\xFF\xFF\x16\x90\x1B`Pa\x0Cv`\x80\x88\x01``\x89\x01a?\xB2V[c\xFF\xFF\xFF\xFF\x16\x90\x1B`pa\x0C\x90``\x89\x01`@\x8A\x01a?\xD8V[e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x90\x1B`\xA0a\x0C\xAC`@\x8A\x01` \x8B\x01a@\0V[`\x01`\x01``\x1B\x03\x16\x90\x1B\x17\x17\x17\x17\x90P`\0c\xFC\xB7yo`\xE0\x1B\x85`\0\x01`\0\x015\x83\x85`@Q` \x01a\r\x01\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R``\x1B`\x01`\x01``\x1B\x03\x19\x16`@\x82\x01R`T\x01\x90V[`@\x80Q\x80\x83\x03`\x1F\x19\x01\x81R\x82\x82R\x80Q` \x91\x82\x01 `\x01`\x01`\xE0\x1B\x03\x19\x94\x90\x94\x16\x81\x84\x01R\x82\x82\x01\x93\x90\x93R\x80Q\x80\x83\x03\x82\x01\x81R``\x83\x01\x82R\x80Q\x90\x84\x01 `\x05T`\x19`\xF8\x1B`\x80\x85\x01R`\x01`\xF8\x1B`\x81\x85\x01R`\x82\x84\x01R`\xA2\x80\x84\x01\x91\x90\x91R\x81Q\x80\x84\x03\x90\x91\x01\x81R`\xC2\x90\x92\x01\x90R\x80Q\x91\x01 \x95\x94PPPPPV[`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x81 T`\xFF\x16a\r\xB9W`\0a\r\xDBV[\x7F\xA2\xEFF\0\xD7B\x02-S-GG\xCB5GGFg\xD6\xF18\x04\x90%\x13\xB2\xEC\x01\xC8H\xF4\xB4[\x90P[\x92\x91PPV[`\x04T\x82\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0E\x10W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0E_W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E\x83\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0E\xAAW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xB4\x83\x83a\"\x13V[PPPV[`\x04T\x82\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0E\xE5W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0FX\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x0F\x7FW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xB4\x83\x83a#\x8FV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x0F\xB3W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\x01W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10%\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x10LW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0BM3\x82a%\xD0V[`@\x80Q\x80\x82\x01\x82R`\x0C\x81RkHoprChannels`\xA0\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\"\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x91\x81\x01\x91\x90\x91R\x7F\x84\xE6\x90\x8F46\x01\xD9\xCE\x9F\xB6\r\x82P9N\xB8\xA5\x1CV\xF1\x87k\xC1\xE0\x17\xC9z\xCDeg\xF2\x91\x81\x01\x91\x90\x91R\x7F\xB4\xBC\xB1T\xE3\x86\x01\xC3\x899o\xA9\x181M\xA4-F&\xF1>\xF6\xD0\xCE\xB0~_]&\xB2\xFB\xC3``\x82\x01RF`\x80\x82\x01R0`\xA0\x82\x01R`\0\x90`\xC0\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P`\x05T\x81\x14a\x0BMW`\x05\x81\x90U`@Q\x81\x90\x7Fw\x1FR@\xAE_\xD8\xA7d\r?\xB8/\xA7\n\xAB/\xB1\xDB\xF3_.\xF4d\xF8P\x99Fqvd\xC5\x90`\0\x90\xA2PV[`@\x80Q` \x80\x82\x01\x86\x90R\x835\x82\x84\x01R\x83\x81\x015``\x83\x01Ra\x01\0\x85\x015`\x80\x83\x01R`\xC0\x80\x86\x01\x805`\xA0\x80\x86\x01\x91\x90\x91R`\xE0\x80\x89\x015\x84\x87\x01R\x86Q\x80\x87\x03\x90\x94\x01\x84R\x90\x94\x01\x90\x94R\x80Q\x91\x01 `\0\x92`\xC8\x91\x90\x91\x1C\x91a\x11\xDA\x91\x90\x86\x01a?dV[f\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x16\x11\x15\x94\x93PPPPV[``\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x12\x0CWa\x12\x0Ca@\x1BV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x12?W\x81` \x01[``\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x12*W\x90P[P\x90P`\0[\x82\x81\x10\x15a\x12\xDFWa\x12\xAF0\x85\x85\x84\x81\x81\x10a\x12cWa\x12ca@1V[\x90P` \x02\x81\x01\x90a\x12u\x91\x90a@GV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa' \x92PPPV[\x82\x82\x81Q\x81\x10a\x12\xC1Wa\x12\xC1a@1V[` \x02` \x01\x01\x81\x90RP\x80\x80a\x12\xD7\x90a@\x8EV[\x91PPa\x12EV[P\x92\x91PPV[`\x04T\x82\x90`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x13\x12W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16\x93\x82\x01\x93\x90\x93R3\x92\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x13aW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\x85\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x13\xACW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xB4\x83\x83a%\xD0V[`@Q`\x01`\x01``\x1B\x03\x19``\x84\x81\x1B\x82\x16` \x84\x01R\x83\x90\x1B\x16`4\x82\x01R`\0\x90`H\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@\x80Q\x80\x82\x01\x82R`\n\x81Ri$7\xB89&2\xB23\xB2\xB9`\xB1\x1B` \x91\x82\x01R\x81Q\x80\x83\x01\x83R`\x05\x81Rd\x03\x12\xE3\x02\xE3`\xDC\x1B\x90\x82\x01R\x81Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x83\x01R\x7Fl\xD6\x81y\x0Cx\xC2 Q{\t\x9As\x7F\x8E\x85\xF6\x9Eyz\xBEN)\x10\xFB\x18\x9Ba\xDBK\xF2\xCD\x81\x84\x01R\x7F\x06\xC0\x15\xBD\"\xB4\xC6\x96\x90\x93<\x10X\x87\x8E\xBD\xFE\xF3\x1F\x9A\xAA\xE4\x0B\xBE\x86\xD8\xA0\x9F\xE1\xB2\x97,``\x82\x01RF`\x80\x82\x01R0`\xA0\x80\x83\x01\x91\x90\x91R\x83Q\x80\x83\x03\x90\x91\x01\x81R`\xC0\x90\x91\x01\x90\x92R\x81Q\x91\x01 `\x03T\x81\x14a\x0BMW`\x03\x81\x90U`@Q\x81\x90\x7F\xA4?\xAD\x83\x92\x0F\xD0\x94E\x85^\x85Ns\xC9\xC52\xE1t\x02\xC9\xCE\xB0\x99\x93\xA29(C\xA5\xBD\xB9\x90`\0\x90\xA2PV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x153W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x81W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\xA5\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x15\xCCW`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x15\xD73\x83\x83a\x17jV[`@Qc#\xB8r\xDD`\xE0\x1B\x81R3`\x04\x82\x01R0`$\x82\x01R`\x01`\x01``\x1B\x03\x82\x16`D\x82\x01R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c#\xB8r\xDD\x90`d\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x16RW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x16v\x91\x90a?BV[\x15\x15`\x01\x14a\x16\x98W`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPV[`\x04T`\x01`\xA0\x1B\x90\x04`\xFF\x16a\x16\xC6W`@Qc\x08\xA9D\x19`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x04\x80T`@Qc\x02&^1`\xE6\x1B\x81R3\x92\x81\x01\x92\x90\x92R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89\x97\x8C@\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17\x14W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x178\x91\x90a>\xFCV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x17_W`@Qc\xAC\xD5\xA8#`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x16\x983\x83\x83a\x1B\x16V[\x80`\x01`\x01`\x01``\x1B\x03\x82\x16\x10\x15a\x17\x96W`@Qc\xC5.>\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[j\x08E\x95\x16\x14\x01HJ\0\0\0`\x01`\x01``\x1B\x03\x82\x16\x11\x15a\x17\xCBW`@Qc)<\xEE\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83\x83\x80`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x03a\x17\xFFW`@QcK\xD1\xD7i`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x18[W`@Qc\xEA\xC0\xD3\x89`\xE0\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7Fsource must not be empty\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x18\xB2W`@Qc\xEA\xC0\xD3\x89`\xE0\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7Fdestination must not be empty\0\0\0`D\x82\x01R`d\x01a\x18RV[`\0a\x18\xBE\x87\x87a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x90 \x90\x91P`\x02\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x18\xEEWa\x18\xEEa<\xBFV[\x03a\x19OW`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7Fcannot fund a channel that will `D\x82\x01Ri1\xB67\xB9\xB2\x909\xB7\xB7\xB7`\xB1\x1B`d\x82\x01R`\x84\x01a\x18RV[\x80Ta\x19e\x90\x87\x90`\x01`\x01``\x1B\x03\x16a@\xA7V[\x81T`\x01`\x01``\x1B\x03\x19\x16`\x01`\x01``\x1B\x03\x91\x90\x91\x16\x17\x81U`\0\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x19\x9FWa\x19\x9Fa<\xBFV[\x03a\x1A\xAAW\x80Ta\x19\xBD\x90`\x01`\xB0\x1B\x90\x04b\xFF\xFF\xFF\x16`\x01a@\xC7V[\x81Tb\xFF\xFF\xFF\x91\x90\x91\x16`\x01`\xB0\x1B\x02m\xFF\0\0\0\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF``\x1B\x19\x16m\xFF\xFF\xFF\xFF\0\0\0\0\xFF\xFF\xFF\xFF\xFF\xFF``\x1B\x19\x90\x91\x16\x17`\x01`\xC8\x1B\x17\x81U`@\x80Q\x7F\xDD\x90\xF98#\x035\xE5\x9D\xC9%\xC5~\xCB\x0E'\xA2\x8C-\x875n1\xF0\x0C\xD5UJ\xBDl\x1B-` \x82\x01R``\x8A\x81\x1B`\x01`\x01``\x1B\x03\x19\x90\x81\x16\x93\x83\x01\x93\x90\x93R\x89\x90\x1B\x90\x91\x16`T\x82\x01Ra\x1Ai\x90`h\x01[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra'EV[\x86`\x01`\x01`\xA0\x1B\x03\x16\x88`\x01`\x01`\xA0\x1B\x03\x16\x7F\xDD\x90\xF98#\x035\xE5\x9D\xC9%\xC5~\xCB\x0E'\xA2\x8C-\x875n1\xF0\x0C\xD5UJ\xBDl\x1B-`@Q`@Q\x80\x91\x03\x90\xA3[\x80T`@Qa\x1A\xDD\x91a\x1AU\x91`\0\x80Q` aB\xC9\x839\x81Q\x91R\x91\x86\x91`\x01`\x01``\x1B\x03\x90\x91\x16\x90` \x01a@\xE3V[\x80T`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R\x82\x90`\0\x80Q` aB\xC9\x839\x81Q\x91R\x90` \x01`@Q\x80\x91\x03\x90\xA2PPPPPPPPV[a\x1B&`@\x83\x01` \x84\x01a@\0V[`\x01`\x01`\x01``\x1B\x03\x82\x16\x10\x15a\x1BQW`@Qc\xC5.>\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[j\x08E\x95\x16\x14\x01HJ\0\0\0`\x01`\x01``\x1B\x03\x82\x16\x11\x15a\x1B\x86W`@Qc)<\xEE\xF9`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82a\x01\0\x015a\x1B\x95\x81a(+V[a\x1B\xB2W`@Qc:\xE4\xEDk`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x835`\0\x90\x81R`\x06` R`@\x90 `\x01\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1B\xE1Wa\x1B\xE1a<\xBFV[\x14\x15\x80\x15a\x1C\x0CWP`\x02\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\x1C\tWa\x1C\ta<\xBFV[\x14\x15[\x15a\x1CtW`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`1`$\x82\x01R\x7Fspending channel must be OPEN or`D\x82\x01Rp PENDING_TO_CLOSE`x\x1B`d\x82\x01R`\x84\x01a\x18RV[a\x1C\x84`\xA0\x86\x01`\x80\x87\x01a?\x8DV[\x81T`\x01`\xB0\x1B\x90\x04b\xFF\xFF\xFF\x90\x81\x16\x91\x16\x14a\x1C\xE4W`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7Fchannel epoch must match\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x18RV[`\0a\x1C\xF6``\x87\x01`@\x88\x01a?\xD8V[\x90P`\0a\x1D\n`\x80\x88\x01``\x89\x01a?\xB2V[\x83T\x90\x91P`\x01``\x1B\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16`\x01c\xFF\xFF\xFF\xFF\x83\x16\x10\x80a\x1DBWP\x80e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x83e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x10[\x15a\x1D`W`@Qchn\x1E\x0F`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1Dp`@\x89\x01` \x8A\x01a@\0V[\x84T`\x01`\x01``\x1B\x03\x91\x82\x16\x91\x16\x10\x15a\x1D\x9EW`@Qc,Q\xD8\xDB`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1D\xA9\x89a\x0C\x1DV[\x90Pa\x1D\xB6\x81\x8A\x8Aa\x11oV[a\x1D\xD3W`@Qc\xEE\x83\\\x89`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0`@Q\x80``\x01`@R\x80\x83\x81R` \x01\x8C`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01`\x05T`@Q` \x01a\x1E\n\x91\x81R` \x01\x90V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x90R\x90Pa\x1E6a\x1E06\x8B\x90\x03\x8B\x01\x8BaA\x06V[\x82a(MV[a\x1ESW`@Qc\x12\xBF\xB7\xB7`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1Eh\x83`\xC0\x8D\x015`\xE0\x8E\x015a*\xD6V[\x90P\x8A5a\x1Ev\x82\x8Ea\x13\xB6V[\x14a\x1E\x94W`@Qcf\xEE\xA9\xAB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1E\xA4c\xFF\xFF\xFF\xFF\x86\x16\x87aA\xA4V[\x87Te\xFF\xFF\xFF\xFF\xFF\xFF\x91\x90\x91\x16`\x01``\x1B\x02e\xFF\xFF\xFF\xFF\xFF\xFF``\x1B\x19\x90\x91\x16\x17\x87Ua\x1E\xD8`@\x8C\x01` \x8D\x01a@\0V[\x87Ta\x1E\xED\x91\x90`\x01`\x01``\x1B\x03\x16aA\xC3V[\x87T`\x01`\x01``\x1B\x03\x19\x16`\x01`\x01``\x1B\x03\x91\x90\x91\x16\x90\x81\x17\x88U`@Qa\x1FB\x91a\x1AU\x91\x7F\"\xE2\xA4\"\xA8\x86\x06V\xA3\xA3<\xFA\x1D\xAFw\x1Evy\x8C\xE5d\x97G\x95r5\x02]\xE1.\x0B$\x91\x8F5\x91` \x01a@\xE3V[\x86T`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R\x8B5\x90\x7F\"\xE2\xA4\"\xA8\x86\x06V\xA3\xA3<\xFA\x1D\xAFw\x1Evy\x8C\xE5d\x97G\x95r5\x02]\xE1.\x0B$\x90` \x01`@Q\x80\x91\x03\x90\xA2`\0a\x1F\x90\x8D\x83a\x13\xB6V[\x90P`\0`\x06`\0\x83\x81R` \x01\x90\x81R` \x01`\0 \x90Pa \x1C\x7Fqe\xE2\xEB\xC7\xCE5\xCC\x98\xCBvf\xF9\x94[6\x17\xF3\xF3c&\xB7m\x18\x93{\xA5\xFE\xCF\x18s\x9A\x8E`\0\x01`\0\x015\x8B`\0\x01`\x0C\x90T\x90a\x01\0\n\x90\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16`@Q` \x01a\x1AU\x93\x92\x91\x90\x92\x83R` \x83\x01\x91\x90\x91R`\xD0\x1B`\x01`\x01`\xD0\x1B\x03\x19\x16`@\x82\x01R`F\x01\x90V[\x88T`@Q`\x01``\x1B\x90\x91\x04e\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R\x8D5\x90\x7Fqe\xE2\xEB\xC7\xCE5\xCC\x98\xCBvf\xF9\x94[6\x17\xF3\xF3c&\xB7m\x18\x93{\xA5\xFE\xCF\x18s\x9A\x90` \x01`@Q\x80\x91\x03\x90\xA2`\0\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a \x82Wa \x82a<\xBFV[\x03a!lW\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xA9\x05\x9C\xBB3\x8F`\0\x01` \x01` \x81\x01\x90a \xCD\x91\x90a@\0V[`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x85\x90\x1B\x16\x81R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16`\x04\x83\x01R`\x01`\x01``\x1B\x03\x16`$\x82\x01R`D\x01` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a!!W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!E\x91\x90a?BV[\x15\x15`\x01\x14a!gW`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\"\x03V[a!|`@\x8E\x01` \x8F\x01a@\0V[\x81Ta!\x91\x91\x90`\x01`\x01``\x1B\x03\x16a@\xA7V[\x81T`\x01`\x01``\x1B\x03\x19\x16`\x01`\x01``\x1B\x03\x91\x90\x91\x16\x90\x81\x17\x82U`@Qa!\xD3\x91a\x1AU\x91`\0\x80Q` aB\xC9\x839\x81Q\x91R\x91\x86\x91` \x01a@\xE3V[\x80T`@Q`\x01`\x01``\x1B\x03\x90\x91\x16\x81R\x82\x90`\0\x80Q` aB\xC9\x839\x81Q\x91R\x90` \x01`@Q\x80\x91\x03\x90\xA2[PPPPPPPPPPPPPPV[`\0a\"\x1F\x82\x84a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x81 \x91\x92P\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a\"MWa\"Ma<\xBFV[\x03a\"kW`@QcI\x94c\xC1`\xE0\x1B\x81R`\x04\x01a\x18R\x90aA\xE3V[\x80T`\x01c\xFF\0\0\x01`\xB0\x1B\x03\x19\x81\x16\x82U`@\x80Q`\0\x80Q` aB\xE9\x839\x81Q\x91R` \x82\x01R\x90\x81\x01\x84\x90R`\x01`\x01``\x1B\x03\x90\x91\x16\x90a\"\xB3\x90``\x01a\x1AUV[`@Q\x83\x90`\0\x80Q` aB\xE9\x839\x81Q\x91R\x90`\0\x90\xA2\x80\x15a#\x88W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\x04\x83\x01R`$\x82\x01\x83\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a#BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a#f\x91\x90a?BV[\x15\x15`\x01\x14a#\x88W`@Qc\x02.%\x81`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPV[`\0a#\x9B\x83\x83a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x90 \x90\x91P`\x02\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a#\xCBWa#\xCBa<\xBFV[\x14a$(W`@QcI\x94c\xC1`\xE0\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7Fchannel state must be PENDING_TO`D\x82\x01Re_CLOSE`\xD0\x1B`d\x82\x01R`\x84\x01a\x18RV[\x80Tc\xFF\xFF\xFF\xFFB\x81\x16`\x01`\x90\x1B\x90\x92\x04\x16\x10a$YW`@Qc8\xB2\x01\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x80T`\x01c\xFF\0\0\x01`\xB0\x1B\x03\x19\x81\x16\x82U`@\x80Q`\0\x80Q` aB\xE9\x839\x81Q\x91R` \x82\x01R\x90\x81\x01\x84\x90R`\x01`\x01``\x1B\x03\x90\x91\x16\x90a$\xA1\x90``\x01a\x1AUV[`@Q\x83\x90`\0\x80Q` aB\xE9\x839\x81Q\x91R\x90`\0\x90\xA2\x80\x15a#\x88W`@Qc\xA9\x05\x9C\xBB`\xE0\x1B\x81R3`\x04\x82\x01R`$\x81\x01\x82\x90R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xA9\x05\x9C\xBB\x90`D\x01a##V[`\0`\x01\x81`\x1B\x7Fy\xBEf~\xF9\xDC\xBB\xACU\xA0b\x95\xCE\x87\x0B\x07\x02\x9B\xFC\xDB-\xCE(\xD9Y\xF2\x81[\x16\xF8\x17\x98p\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19\x7Fy\xBEf~\xF9\xDC\xBB\xACU\xA0b\x95\xCE\x87\x0B\x07\x02\x9B\xFC\xDB-\xCE(\xD9Y\xF2\x81[\x16\xF8\x17\x98\x87\t`@\x80Q`\0\x81R` \x81\x01\x80\x83R\x95\x90\x95R`\xFF\x90\x93\x16\x92\x84\x01\x92\x90\x92R``\x83\x01R`\x80\x82\x01R`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a%\xBFW=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x93\x92PPPV[`\0a%\xDC\x83\x83a\x13\xB6V[`\0\x81\x81R`\x06` R`@\x81 \x91\x92P\x81T`\x01`\xC8\x1B\x90\x04`\xFF\x16`\x02\x81\x11\x15a&\nWa&\na<\xBFV[\x03a&(W`@QcI\x94c\xC1`\xE0\x1B\x81R`\x04\x01a\x18R\x90aA\xE3V[a&R\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0BaB3V[\x81T`\x01`\xC9\x1Bg\xFF\0\0\0\xFF\xFF\xFF\xFF`\x90\x1B\x19\x90\x91\x16`\xFF`\xC8\x1B\x19`\x01`\x90\x1Bc\xFF\xFF\xFF\xFF\x94\x90\x94\x16\x84\x02\x16\x17\x17\x80\x83U`@\x80Q\x7F\x07\xB5\xC9PY\x7F\xC3\xBE\xD9.*\xD3\x7F\xA8Op\x16U\xAC\xB3r\x98.Ho_\xAD6\x07\xF0J\\` \x82\x01R\x90\x81\x01\x85\x90R\x91\x90\x04`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16``\x82\x01Ra&\xD6\x90`d\x01a\x1AUV[\x80T`@Q`\x01`\x90\x1B\x90\x91\x04c\xFF\xFF\xFF\xFF\x16\x81R\x82\x90\x7F\x07\xB5\xC9PY\x7F\xC3\xBE\xD9.*\xD3\x7F\xA8Op\x16U\xAC\xB3r\x98.Ho_\xAD6\x07\xF0J\\\x90` \x01`@Q\x80\x91\x03\x90\xA2PPPPV[``a\r\xDB\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01aB\xA2`'\x919a*\xFCV[`\x01T`\0\x90a'\x83\x90\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90`\x01`\xE0\x1B\x90\x04c\xFF\xFF\xFF\xFF\x16a?/V[B\x11\x15a'\x8EWP`\x01[`\x03T`\x01T\x83Q` \x80\x86\x01\x91\x90\x91 `@\x80Q\x80\x84\x01\x95\x90\x95RC`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x90\x85\x01R\x91\x90\x1Bc\xFF\xFF\xFF\xFF\x19\x16`D\x83\x01R``\x82\x01R`\x80\x01`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x90R\x80Q` \x91\x82\x01 c\xFF\xFF\xFF\xFFB\x16`\x01`\xE0\x1B\x02\x91\x1C\x17`\x01U\x80\x15a\x16\x98WPP`\x01T`\x01`\x01`\xE0\x1B\x03\x81\x16`\x01`\xE0\x1B\x91\x82\x90\x04c\xFF\xFF\xFF\xFF\x16\x90\x91\x02\x17`\x02UV[`\0\x81\x15\x80a\r\xDEWPPp\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19\x11\x90V[`\0d\x01\0\0\x03\xD0\x19\x83``\x01Q\x10\x15\x80a(rWPd\x01\0\0\x03\xD0\x19\x83`@\x01Q\x10\x15[\x15a(\x90W`@Qc:\xE4\xEDk`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a(\xA2\x83`\0\x01Q\x84` \x01Qa+tV[a(\xBFW`@Qc9\"\xA5A`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80a)\x11\x84` \x01Q\x85`\0\x01Q`@Q` \x01a(\xF8\x92\x91\x90``\x92\x90\x92\x1B`\x01`\x01``\x1B\x03\x19\x16\x82R`\x14\x82\x01R`4\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x85`@\x01Qa+\x9FV[\x91P\x91P`\0a)&\x86`@\x01Q\x84\x84a,%V[\x90Pa)a\x86`\x80\x01Q\x87`\xA0\x01Q`@\x80Q` \x80\x82\x01\x94\x90\x94R\x80\x82\x01\x92\x90\x92R\x80Q\x80\x83\x03\x82\x01\x81R``\x90\x92\x01\x90R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a)\x92W`@Qc\x1D\xBF\xB9\xB3`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a)\xAB\x87``\x01Q\x88`\0\x01Q\x89` \x01Qa,%V[\x90Pa)\xE6\x87`\xC0\x01Q\x88`\xE0\x01Q`@\x80Q` \x80\x82\x01\x94\x90\x94R\x80\x82\x01\x92\x90\x92R\x80Q\x80\x83\x03\x82\x01\x81R``\x90\x92\x01\x90R\x80Q\x91\x01 \x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x14a*\x17W`@Qc\x1D\xBF\xB9\xB3`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80a*I\x89`\x80\x01Q\x8A`\xA0\x01Q\x8B`\xC0\x01Q\x8C`\xE0\x01Qd\x01\0\0\x03\xD0\x19a*B\x91\x90aBPV[`\0a,\xC4V[` \x80\x8B\x01Q\x8CQ\x8D\x83\x01Q\x8DQ`@Q\x96\x98P\x94\x96P`\0\x95a*\xC1\x95a*\xA8\x95\x8A\x92\x8A\x92\x91\x01``\x96\x90\x96\x1B`\x01`\x01``\x1B\x03\x19\x16\x86R`\x14\x86\x01\x94\x90\x94R`4\x85\x01\x92\x90\x92R`T\x84\x01R`t\x83\x01R`\x94\x82\x01R`\xB4\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x8A`@\x01Qa.KV[``\x8B\x01Q\x14\x97PPPPPPPP\x92\x91PPV[`\0\x80`\0a*\xE6\x86\x86\x86a.\xBCV[\x91P\x91Pa*\xF3\x81a.\xF5V[P\x94\x93PPPPV[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa+\x19\x91\x90aBcV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a+TW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a+YV[``\x91P[P\x91P\x91Pa+j\x86\x83\x83\x87a0?V[\x96\x95PPPPPPV[`\0d\x01\0\0\x03\xD0\x19\x80\x84d\x01\0\0\x03\xD0\x19\x86\x87\t\t`\x07\x08d\x01\0\0\x03\xD0\x19\x83\x84\t\x14\x93\x92PPPV[`\0\x80`\0\x80a+\xAF\x86\x86a0\xC0V[\x91P\x91P`\0\x80a+\xBF\x84a1|V[\x91P\x91P`\0\x80a+\xCF\x85a1|V[\x91P\x91P`\0\x80a,\x03\x86\x86\x86\x86\x7F?\x871\xAB\xDDf\x1A\xDC\xA0\x8AUX\xF0\xF5\xD2r\xE9S\xD3c\xCBo\x0E]@TG\xC0\x1ADE3a,\xC4V[\x91P\x91Pa,\x11\x82\x82a4>V[\x99P\x99PPPPPPPPP[\x92P\x92\x90PV[`\0\x80a,3`\x02\x84aB\x7FV[`\0\x03a,BWP`\x1Ba,FV[P`\x1C[`\x01`\0\x82\x86p\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19\x88\x8A\t`@\x80Q`\0\x81R` \x81\x01\x80\x83R\x95\x90\x95R`\xFF\x90\x93\x16\x92\x84\x01\x92\x90\x92R``\x83\x01R`\x80\x82\x01R`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a,\xB0W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x96\x95PPPPPPV[`\0\x80\x83\x86\x14\x19\x85\x88\x14\x16\x15a,\xD9W`\0\x80\xFD[`\0\x80\x85\x88\x14\x87\x8A\x14\x16`\x01\x81\x14a,\xF6W\x80\x15a-sWa-\xEEV[d\x01\0\0\x03\xD0\x19\x86d\x01\0\0\x03\xD0\x19\x8B`\x02\t\x08\x91P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa-SW`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x81Qd\x01\0\0\x03\xD0\x19\x80\x8E\x8F\t`\x03\t\t\x93PPa-\xEEV[d\x01\0\0\x03\xD0\x19\x8Ad\x01\0\0\x03\xD0\x19\x03\x89\x08\x91P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa-\xCEW`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x81Qd\x01\0\0\x03\xD0\x19\x8Cd\x01\0\0\x03\xD0\x19\x03\x8B\x08\t\x93PP[PPd\x01\0\0\x03\xD0\x19\x80\x89d\x01\0\0\x03\xD0\x19\x03\x88d\x01\0\0\x03\xD0\x19\x03\x08d\x01\0\0\x03\xD0\x19\x83\x84\t\x08\x92Pd\x01\0\0\x03\xD0\x19\x87d\x01\0\0\x03\xD0\x19\x03d\x01\0\0\x03\xD0\x19\x80\x86d\x01\0\0\x03\xD0\x19\x03\x8C\x08\x84\t\x08\x91PP\x95P\x95\x93PPPPV[`\0\x80`\0a.Z\x85\x85a7+V[\x91P\x91P`@Q`0\x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01R\x81`\x80\x82\x01R`\x01`\x90\x82\x01Rp\x01EQ#\x19P\xB7_\xC4@-\xA1s/\xC9\xBE\xBE\x19`\xB0\x82\x01R` \x81`\xD0\x83`\x05`\0\x19\xFAa.\xB2W`\0\x80\xFD[Q\x95\x94PPPPPV[`\0\x80`\x01`\x01`\xFF\x1B\x03\x83\x16\x81a.\xD9`\xFF\x86\x90\x1C`\x1Ba?/V[\x90Pa.\xE7\x87\x82\x88\x85a8+V[\x93P\x93PPP\x93P\x93\x91PPV[`\0\x81`\x04\x81\x11\x15a/\tWa/\ta<\xBFV[\x03a/\x11WPV[`\x01\x81`\x04\x81\x11\x15a/%Wa/%a<\xBFV[\x03a/rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x18RV[`\x02\x81`\x04\x81\x11\x15a/\x86Wa/\x86a<\xBFV[\x03a/\xD3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\x18RV[`\x03\x81`\x04\x81\x11\x15a/\xE7Wa/\xE7a<\xBFV[\x03a\x0BMW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01Raue`\xF0\x1B`d\x82\x01R`\x84\x01a\x18RV[``\x83\x15a0\xAEW\x82Q`\0\x03a0\xA7W`\x01`\x01`\xA0\x1B\x03\x85\x16;a0\xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x18RV[P\x81a0\xB8V[a0\xB8\x83\x83a8\xEFV[\x94\x93PPPPV[`\0\x80`\0\x80`\0a0\xD2\x87\x87a9\x19V[\x92P\x92P\x92P`@Q`0\x81R` \x80\x82\x01R` `@\x82\x01R\x83``\x82\x01R\x82`\x80\x82\x01R`\x01`\x90\x82\x01Rd\x01\0\0\x03\xD0\x19`\xB0\x82\x01R` \x81`\xD0\x83`\x05`\0\x19\xFAa1 W`\0\x80\xFD[\x80Q\x95PP`@Q`0\x81R` \x80\x82\x01R\x82`P\x82\x01R` `@\x82\x01R\x81`p\x82\x01R`\x01`\x90\x82\x01Rd\x01\0\0\x03\xD0\x19`\xB0\x82\x01R` \x81`\xD0\x83`\x05`\0\x19\xFAa1mW`\0\x80\xFD[\x80Q\x94PPPPP\x92P\x92\x90PV[`\0\x80d\x01\0\0\x03\xD0\x19\x83\x84\td\x01\0\0\x03\xD0\x19\x81d\x01\0\0\x03\xDB\x19\t\x90Pd\x01\0\0\x03\xD0\x19\x81\x82\td\x01\0\0\x03\xD0\x19\x82\x82\x08\x90Pd\x01\0\0\x03\xD0\x19`\x01\x82\x08d\x01\0\0\x03\xD0\x19a\x06\xEB\x82\t\x90P`\0\x82\x15`\x01\x81\x14a1\xE1W\x80\x15a1\xEFWa1\xFBV[d\x01\0\0\x03\xDB\x19\x91Pa1\xFBV[\x83d\x01\0\0\x03\xD0\x19\x03\x91P[Pd\x01\0\0\x03\xD0\x19\x81\x7F?\x871\xAB\xDDf\x1A\xDC\xA0\x8AUX\xF0\xF5\xD2r\xE9S\xD3c\xCBo\x0E]@TG\xC0\x1ADE3\t\x90Pd\x01\0\0\x03\xD0\x19\x82\x83\t\x92Pd\x01\0\0\x03\xD0\x19\x81\x82\td\x01\0\0\x03\xD0\x19\x81\x7F?\x871\xAB\xDDf\x1A\xDC\xA0\x8AUX\xF0\xF5\xD2r\xE9S\xD3c\xCBo\x0E]@TG\xC0\x1ADE3\td\x01\0\0\x03\xD0\x19\x81\x86\x08\x94Pd\x01\0\0\x03\xD0\x19\x84\x86\t\x94Pd\x01\0\0\x03\xD0\x19\x83\x83\t\x91Pd\x01\0\0\x03\xD0\x19\x82a\x06\xEB\t\x90Pd\x01\0\0\x03\xD0\x19\x81\x86\x08\x94PPd\x01\0\0\x03\xD0\x19\x83\x86\t\x96P`\0\x80d\x01\0\0\x03\xD0\x19\x83\x84\td\x01\0\0\x03\xD0\x19\x84\x88\td\x01\0\0\x03\xD0\x19\x81\x83\t\x91P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x82``\x82\x01Rc@\0\0\xF5`\x01`\xFE\x1B\x03`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa3!W`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x82\x82Q\t\x92PPPd\x01\0\0\x03\xD0\x19\x7F1\xFD\xF3\x02r@\x13\xE5z\xD1?\xB3\x8F\x84*\xFE\xEC\x18O\0\xA7G\x89\xDD(g)\xC80<JY\x82\td\x01\0\0\x03\xD0\x19\x82\x83\td\x01\0\0\x03\xD0\x19\x86\x82\t\x90P\x88\x81\x14`\x01\x81\x14a3\x86W\x80\x15a3\x92Wa3\x9AV[`\x01\x94P\x83\x95Pa3\x9AV[`\0\x94P\x82\x95P[PPPPd\x01\0\0\x03\xD0\x19\x8A\x88\t\x97Pd\x01\0\0\x03\xD0\x19\x82\x89\t\x97P\x80\x15a3\xC3W\x84\x98P\x81\x97P[PPP`\x02\x85\x06`\x02\x88\x06\x14a3\xDFW\x84d\x01\0\0\x03\xD0\x19\x03\x94P[`@Q\x93P` \x84R` \x80\x85\x01R` `@\x85\x01R\x80``\x85\x01RPPPd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa4+W`\0\x80\xFD[d\x01\0\0\x03\xD0\x19\x81Q\x84\t\x92PP\x91P\x91V[`\0\x80d\x01\0\0\x03\xD0\x19\x84\x85\td\x01\0\0\x03\xD0\x19\x81\x86\td\x01\0\0\x03\xD0\x19\x80\x7F\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8D\xAA\xAA\xA8\xC7d\x01\0\0\x03\xD0\x19\x89\x7F\x07\xD3\xD4\xC8\x0B\xC3!\xD5\xB9\xF3\x15\xCE\xA7\xFDD\xC5\xD5\x95\xD2\xFC\x0B\xF6;\x92\xDF\xFF\x10D\xF1|e\x81\t\x08d\x01\0\0\x03\xD0\x19\x80\x85\x7FSL2\x8D#\xF24\xE6\xE2\xA4\x13\xDE\xCA%\xCA\xEC\xE4PaD\x03|@1N\xCB\xD0\xB5=\x9D\xD2b\td\x01\0\0\x03\xD0\x19\x85\x7F\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8E8\xE3\x8D\xAA\xAA\xA8\x8C\t\x08\x08d\x01\0\0\x03\xD0\x19\x7F\xD3Wq\x19=\x94\x91\x8A\x9C\xA3L\xCB\xB7\xB6@\xDD\x86\xCD@\x95B\xF8H}\x9F\xE6\xB7Ex\x1E\xB4\x9Bd\x01\0\0\x03\xD0\x19\x80\x8A\x7F\xED\xAD\xC6\xF6C\x83\xDC\x1D\xF7\xC4\xB2\xD5\x1BT\"T\x06\xD3kd\x1F^A\xBB\xC5*Va*\x8Cm\x14\t\x86\x08\x08`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x81``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa5\x9DW`\0\x80\xFD[\x80Q\x91Pd\x01\0\0\x03\xD0\x19\x82\x84\t\x96Pd\x01\0\0\x03\xD0\x19\x80\x7FK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/hK\x8E8\xE2<d\x01\0\0\x03\xD0\x19\x8C\x7F\xC7^\x0C2\xD5\xCB|\x0F\xA9\xD0\xA5K\x12\xA0\xA6\xD5dz\xB0F\xD6\x86\xDAo\xDF\xFC\x90\xFC \x1Dq\xA3\t\x08d\x01\0\0\x03\xD0\x19\x80\x88\x7F)\xA6\x19F\x91\xF9\x1AsqR\t\xEFe\x12\xE5vr(0\xA2\x01\xBE \x18\xA7e\xE8Z\x9E\xCE\xE91\td\x01\0\0\x03\xD0\x19\x88\x7F/hK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/hK\xDA\x12\xF6\x84\xBD\xA1/8\xE3\x8D\x84\t\x08\x08\x92Pd\x01\0\0\x03\xD0\x19\x80d\x01\0\0\x06\xC4\x19d\x01\0\0\x03\xD0\x19\x8C\x7Fz\x06SK\xB8\xBD\xB4\x9F\xD5\xE9\xE6c'\"\xC2\x98\x94g\xC1\xBF\xC8\xE8\xD9x\xDF\xB4%\xD2h\\%s\t\x08d\x01\0\0\x03\xD0\x19\x80\x88\x7Fd\x84\xAAqeE\xCA,\xF3\xA7\x0C?\xA8\xFE3~\n=!\x16/\rb\x99\xA7\xBF\x81\x92\xBF\xD2\xA7o\t\x87\x08\x08\x94P`@Q\x90P` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01Rd\x01\0\0\x03\xD2\x19`\x80\x82\x01Rd\x01\0\0\x03\xD0\x19`\xA0\x82\x01R` \x81`\xC0\x83`\x05`\0\x19\xFAa7\rW`\0\x80\xFD[Q\x93Pd\x01\0\0\x03\xD0\x19\x90P\x83\x81\x83\x89\t\t\x93PPPP\x92P\x92\x90PV[`\0\x80`\xFF\x83Q\x11\x15a7=W`\0\x80\xFD[`\0`@Q`\x88` `\0[\x88Q\x81\x10\x15a7jW\x88\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a7IV[PP`\x89\x87Q\x01\x90P`0\x81\x83\x01S`\x02\x01` `\0[\x87Q\x81\x10\x15a7\xA2W\x87\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a7\x81V[PP`\x8B\x86Q\x88Q\x01\x01\x90P\x85Q\x81\x83\x01SP\x85Q\x85Q\x01`\x8C\x01\x81 \x91PP`@Q\x81\x81R`\x01` \x82\x01S`!` `\0[\x87Q\x81\x10\x15a7\xF7W\x87\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a7\xD6V[PPP\x84Q\x85Q`!\x01\x82\x01S\x84Q`\"\x01\x81 \x93P\x83\x82\x18\x81R`\x02` \x82\x01S\x84Q`\"\x01\x81 \x92PPP\x92P\x92\x90PV[`\0\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a8bWP`\0\x90P`\x03a8\xE6V[`@\x80Q`\0\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a8\xB6W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a8\xDFW`\0`\x01\x92P\x92PPa8\xE6V[\x91P`\0\x90P[\x94P\x94\x92PPPV[\x81Q\x15a8\xFFW\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x18R\x91\x90a>\x86V[`\0\x80`\0`\xFF\x84Q\x11\x15a9-W`\0\x80\xFD[`\0`@Q`\x88` `\0[\x89Q\x81\x10\x15a9ZW\x89\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a99V[PP`\x89\x88Q\x01\x90P``\x81\x83\x01S`\x02\x01` `\0[\x88Q\x81\x10\x15a9\x92W\x88\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a9qV[PP`\x8B\x87Q\x89Q\x01\x01\x90P\x86Q\x81\x83\x01SP\x86Q\x86Q\x01`\x8C\x01\x81 \x91PP`@Q\x81\x81R`\x01` \x82\x01S`!` `\0[\x88Q\x81\x10\x15a9\xE7W\x88\x82\x01Q\x84\x84\x01R` \x92\x83\x01\x92\x91\x82\x01\x91\x01a9\xC6V[PPP\x85Q\x86Q`!\x01\x82\x01S\x85Q`\"\x01\x81 \x94P\x84\x82\x18\x81R`\x02` \x82\x01S\x85Q`\"\x01\x81 \x93P\x83\x82\x18\x81R`\x03` \x82\x01S\x85Q`\"\x01\x81 \x92PPP\x92P\x92P\x92V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0BMW`\0\x80\xFD[`\0\x80\x83`\x1F\x84\x01\x12a:WW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a:oW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a,\x1EW`\0\x80\xFD[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a:\xA3W`\0\x80\xFD[\x885a:\xAE\x81a:0V[\x97P` \x89\x015a:\xBE\x81a:0V[\x96P`@\x89\x015a:\xCE\x81a:0V[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a:\xF2W`\0\x80\xFD[a:\xFE\x8C\x83\x8D\x01a:EV[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a;\x17W`\0\x80\xFD[Pa;$\x8B\x82\x8C\x01a:EV[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[\x805`\x01`\x01``\x1B\x03\x81\x16\x81\x14a;OW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15a;iW`\0\x80\xFD[\x835a;t\x81a:0V[\x92P` \x84\x015a;\x84\x81a:0V[\x91Pa;\x92`@\x85\x01a;8V[\x90P\x92P\x92P\x92V[`\0a\x01 \x82\x84\x03\x12\x15a;\xAEW`\0\x80\xFD[P\x91\x90PV[`\0a\x01\0\x82\x84\x03\x12\x15a;\xAEW`\0\x80\xFD[`\0\x80`\0a\x02@\x84\x86\x03\x12\x15a;\xDDW`\0\x80\xFD[\x835a;\xE8\x81a:0V[\x92Pa;\xF7\x85` \x86\x01a;\x9BV[\x91Pa;\x92\x85a\x01@\x86\x01a;\xB4V[`\0` \x82\x84\x03\x12\x15a<\x19W`\0\x80\xFD[\x815a<$\x81a:0V[\x93\x92PPPV[`\0a\x01 \x82\x84\x03\x12\x15a<>W`\0\x80\xFD[a\r\xDB\x83\x83a;\x9BV[`\0\x80`@\x83\x85\x03\x12\x15a<[W`\0\x80\xFD[\x825\x91P` \x83\x015a<m\x81a:0V[\x80\x91PP\x92P\x92\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a<\x8BW`\0\x80\xFD[\x825a<\x96\x81a:0V[\x91P` \x83\x015a<m\x81a:0V[`\0` \x82\x84\x03\x12\x15a<\xB8W`\0\x80\xFD[P5\x91\x90PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x01`\x01``\x1B\x03\x86\x16\x81Re\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16` \x82\x01Rc\xFF\xFF\xFF\xFF\x84\x16`@\x82\x01Rb\xFF\xFF\xFF\x83\x16``\x82\x01R`\xA0\x81\x01`\x03\x83\x10a=(WcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[\x82`\x80\x83\x01R\x96\x95PPPPPPV[`\0\x80`\0a\x02@\x84\x86\x03\x12\x15a=NW`\0\x80\xFD[\x835\x92Pa;\xF7\x85` \x86\x01a;\x9BV[`\0\x80` \x83\x85\x03\x12\x15a=rW`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a=\x8AW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a=\x9EW`\0\x80\xFD[\x815\x81\x81\x11\x15a=\xADW`\0\x80\xFD[\x86` \x82`\x05\x1B\x85\x01\x01\x11\x15a=\xC2W`\0\x80\xFD[` \x92\x90\x92\x01\x96\x91\x95P\x90\x93PPPPV[`\0[\x83\x81\x10\x15a=\xEFW\x81\x81\x01Q\x83\x82\x01R` \x01a=\xD7V[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra>\x10\x81` \x86\x01` \x86\x01a=\xD4V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\0` \x80\x83\x01\x81\x84R\x80\x85Q\x80\x83R`@\x86\x01\x91P`@\x81`\x05\x1B\x87\x01\x01\x92P\x83\x87\x01`\0[\x82\x81\x10\x15a>yW`?\x19\x88\x86\x03\x01\x84Ra>g\x85\x83Qa=\xF8V[\x94P\x92\x85\x01\x92\x90\x85\x01\x90`\x01\x01a>KV[P\x92\x97\x96PPPPPPPV[` \x81R`\0a\r\xDB` \x83\x01\x84a=\xF8V[`\0\x80`@\x83\x85\x03\x12\x15a>\xACW`\0\x80\xFD[\x825a>\xB7\x81a:0V[\x91Pa>\xC5` \x84\x01a;8V[\x90P\x92P\x92\x90PV[`\0\x80a\x02 \x83\x85\x03\x12\x15a>\xE2W`\0\x80\xFD[a>\xEC\x84\x84a;\x9BV[\x91Pa>\xC5\x84a\x01 \x85\x01a;\xB4V[`\0` \x82\x84\x03\x12\x15a?\x0EW`\0\x80\xFD[\x81Qa<$\x81a:0V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\r\xDEWa\r\xDEa?\x19V[`\0` \x82\x84\x03\x12\x15a?TW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?vW`\0\x80\xFD[\x815f\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?\x9FW`\0\x80\xFD[\x815b\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?\xC4W`\0\x80\xFD[\x815c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a?\xEAW`\0\x80\xFD[\x815e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x81\x14a<$W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a@\x12W`\0\x80\xFD[a\r\xDB\x82a;8V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12a@^W`\0\x80\xFD[\x83\x01\x805\x91Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a@yW`\0\x80\xFD[` \x01\x91P6\x81\x90\x03\x82\x13\x15a,\x1EW`\0\x80\xFD[`\0`\x01\x82\x01a@\xA0Wa@\xA0a?\x19V[P`\x01\x01\x90V[`\x01`\x01``\x1B\x03\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[b\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[\x92\x83R` \x83\x01\x91\x90\x91R`\xA0\x1B`\x01`\x01`\xA0\x1B\x03\x19\x16`@\x82\x01R`L\x01\x90V[`\0a\x01\0\x80\x83\x85\x03\x12\x15aA\x1AW`\0\x80\xFD[`@Q\x90\x81\x01\x90g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x81\x83\x10\x17\x15aAKWcNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x81`@R\x835\x81R` \x84\x015` \x82\x01R`@\x84\x015`@\x82\x01R``\x84\x015``\x82\x01R`\x80\x84\x015`\x80\x82\x01R`\xA0\x84\x015`\xA0\x82\x01R`\xC0\x84\x015`\xC0\x82\x01R`\xE0\x84\x015`\xE0\x82\x01R\x80\x92PPP\x92\x91PPV[e\xFF\xFF\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[`\x01`\x01``\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[` \x80\x82R`0\x90\x82\x01R\x7Fchannel must have state OPEN or `@\x82\x01RoPENDING_TO_CLOSE`\x80\x1B``\x82\x01R`\x80\x01\x90V[c\xFF\xFF\xFF\xFF\x81\x81\x16\x83\x82\x16\x01\x90\x80\x82\x11\x15a\x12\xDFWa\x12\xDFa?\x19V[\x81\x81\x03\x81\x81\x11\x15a\r\xDEWa\r\xDEa?\x19V[`\0\x82QaBu\x81\x84` \x87\x01a=\xD4V[\x91\x90\x91\x01\x92\x91PPV[`\0\x82aB\x9CWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x06\x90V\xFEAddress: low-level delegate call failed_\xA1rF\xD3\xA5\xD6\x8DB\xBA\xA9L\xDE3\x04!\x80\xB7\x83\xA3\x99\xC0+\xF6:\xC2\x07n\x0Fp\x878\xCE\xEA\xB2\xEE\xF9\x98\xC1\x7F\xE9o0\xF8?\xBF<U\xFCPG\xF6\xE4\x0CU\xA0\xCFr\xD26\xE9\xD2\xBAr\xA2dipfsX\"\x12 \xB5+y\x94\xDB\xBCZ\xCBn\xDD\xE9C\xE6\x86\xCE{]+\x10\xED\xDE\x85\xCF\xE5^\xF3\xAEg\x8E#U'dsolcC\0\x08\x13\x003";
1502 pub static HOPRCHANNELS_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1504 __DEPLOYED_BYTECODE,
1505 );
1506 pub struct HoprChannels<M>(::ethers::contract::Contract<M>);
1507 impl<M> ::core::clone::Clone for HoprChannels<M> {
1508 fn clone(&self) -> Self {
1509 Self(::core::clone::Clone::clone(&self.0))
1510 }
1511 }
1512 impl<M> ::core::ops::Deref for HoprChannels<M> {
1513 type Target = ::ethers::contract::Contract<M>;
1514 fn deref(&self) -> &Self::Target {
1515 &self.0
1516 }
1517 }
1518 impl<M> ::core::ops::DerefMut for HoprChannels<M> {
1519 fn deref_mut(&mut self) -> &mut Self::Target {
1520 &mut self.0
1521 }
1522 }
1523 impl<M> ::core::fmt::Debug for HoprChannels<M> {
1524 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1525 f.debug_tuple(::core::stringify!(HoprChannels))
1526 .field(&self.address())
1527 .finish()
1528 }
1529 }
1530 impl<M: ::ethers::providers::Middleware> HoprChannels<M> {
1531 pub fn new<T: Into<::ethers::core::types::Address>>(
1534 address: T,
1535 client: ::std::sync::Arc<M>,
1536 ) -> Self {
1537 Self(
1538 ::ethers::contract::Contract::new(
1539 address.into(),
1540 HOPRCHANNELS_ABI.clone(),
1541 client,
1542 ),
1543 )
1544 }
1545 pub fn deploy<T: ::ethers::core::abi::Tokenize>(
1569 client: ::std::sync::Arc<M>,
1570 constructor_args: T,
1571 ) -> ::core::result::Result<
1572 ::ethers::contract::builders::ContractDeployer<M, Self>,
1573 ::ethers::contract::ContractError<M>,
1574 > {
1575 let factory = ::ethers::contract::ContractFactory::new(
1576 HOPRCHANNELS_ABI.clone(),
1577 HOPRCHANNELS_BYTECODE.clone().into(),
1578 client,
1579 );
1580 let deployer = factory.deploy(constructor_args)?;
1581 let deployer = ::ethers::contract::ContractDeployer::new(deployer);
1582 Ok(deployer)
1583 }
1584 pub fn erc777_hook_fund_channel_multi_size(
1586 &self,
1587 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1588 self.0
1589 .method_hash([120, 216, 1, 109], ())
1590 .expect("method not found (this should never happen)")
1591 }
1592 pub fn erc777_hook_fund_channel_size(
1594 &self,
1595 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1596 self.0
1597 .method_hash([68, 218, 230, 248], ())
1598 .expect("method not found (this should never happen)")
1599 }
1600 pub fn ledger_version(
1602 &self,
1603 ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
1604 self.0
1605 .method_hash([221, 173, 25, 2], ())
1606 .expect("method not found (this should never happen)")
1607 }
1608 pub fn max_used_balance(
1610 &self,
1611 ) -> ::ethers::contract::builders::ContractCall<M, u128> {
1612 self.0
1613 .method_hash([93, 47, 7, 197], ())
1614 .expect("method not found (this should never happen)")
1615 }
1616 pub fn min_used_balance(
1618 &self,
1619 ) -> ::ethers::contract::builders::ContractCall<M, u128> {
1620 self.0
1621 .method_hash([41, 57, 46, 50], ())
1622 .expect("method not found (this should never happen)")
1623 }
1624 pub fn tokens_recipient_interface_hash(
1626 &self,
1627 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1628 self.0
1629 .method_hash([114, 88, 28, 192], ())
1630 .expect("method not found (this should never happen)")
1631 }
1632 pub fn version(
1634 &self,
1635 ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
1636 self.0
1637 .method_hash([255, 161, 173, 116], ())
1638 .expect("method not found (this should never happen)")
1639 }
1640 pub fn current_block_timestamp(
1642 &self,
1643 ) -> ::ethers::contract::builders::ContractCall<M, u32> {
1644 self.0
1645 .method_hash([185, 32, 222, 237], ())
1646 .expect("method not found (this should never happen)")
1647 }
1648 pub fn get_channel_id(
1650 &self,
1651 source: ::ethers::core::types::Address,
1652 destination: ::ethers::core::types::Address,
1653 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1654 self.0
1655 .method_hash([190, 155, 171, 220], (source, destination))
1656 .expect("method not found (this should never happen)")
1657 }
1658 pub fn get_ticket_hash(
1660 &self,
1661 redeemable: RedeemableTicket,
1662 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1663 self.0
1664 .method_hash([36, 8, 108, 194], (redeemable,))
1665 .expect("method not found (this should never happen)")
1666 }
1667 pub fn is_winning_ticket(
1669 &self,
1670 ticket_hash: [u8; 32],
1671 redeemable: RedeemableTicket,
1672 params: Vrfparameters,
1673 ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1674 self.0
1675 .method_hash([140, 55, 16, 201], (ticket_hash, redeemable, params))
1676 .expect("method not found (this should never happen)")
1677 }
1678 pub fn can_implement_interface_for_address(
1680 &self,
1681 interface_hash: [u8; 32],
1682 account: ::ethers::core::types::Address,
1683 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1684 self.0
1685 .method_hash([36, 156, 179, 250], (interface_hash, account))
1686 .expect("method not found (this should never happen)")
1687 }
1688 pub fn channels(
1690 &self,
1691 p0: [u8; 32],
1692 ) -> ::ethers::contract::builders::ContractCall<M, (u128, u64, u32, u32, u8)> {
1693 self.0
1694 .method_hash([122, 126, 189, 123], p0)
1695 .expect("method not found (this should never happen)")
1696 }
1697 pub fn close_incoming_channel(
1699 &self,
1700 source: ::ethers::core::types::Address,
1701 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1702 self.0
1703 .method_hash([26, 127, 254, 122], source)
1704 .expect("method not found (this should never happen)")
1705 }
1706 pub fn close_incoming_channel_safe(
1708 &self,
1709 self_: ::ethers::core::types::Address,
1710 source: ::ethers::core::types::Address,
1711 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1712 self.0
1713 .method_hash([84, 162, 237, 245], (self_, source))
1714 .expect("method not found (this should never happen)")
1715 }
1716 pub fn domain_separator(
1718 &self,
1719 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1720 self.0
1721 .method_hash([246, 152, 218, 37], ())
1722 .expect("method not found (this should never happen)")
1723 }
1724 pub fn finalize_outgoing_channel_closure(
1726 &self,
1727 destination: ::ethers::core::types::Address,
1728 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1729 self.0
1730 .method_hash([35, 203, 58, 192], destination)
1731 .expect("method not found (this should never happen)")
1732 }
1733 pub fn finalize_outgoing_channel_closure_safe(
1735 &self,
1736 self_: ::ethers::core::types::Address,
1737 destination: ::ethers::core::types::Address,
1738 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1739 self.0
1740 .method_hash([101, 21, 20, 191], (self_, destination))
1741 .expect("method not found (this should never happen)")
1742 }
1743 pub fn fund_channel(
1745 &self,
1746 account: ::ethers::core::types::Address,
1747 amount: u128,
1748 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1749 self.0
1750 .method_hash([252, 85, 48, 154], (account, amount))
1751 .expect("method not found (this should never happen)")
1752 }
1753 pub fn fund_channel_safe(
1755 &self,
1756 self_: ::ethers::core::types::Address,
1757 account: ::ethers::core::types::Address,
1758 amount: u128,
1759 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1760 self.0
1761 .method_hash([10, 190, 197, 143], (self_, account, amount))
1762 .expect("method not found (this should never happen)")
1763 }
1764 pub fn initiate_outgoing_channel_closure(
1766 &self,
1767 destination: ::ethers::core::types::Address,
1768 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1769 self.0
1770 .method_hash([124, 142, 40, 218], destination)
1771 .expect("method not found (this should never happen)")
1772 }
1773 pub fn initiate_outgoing_channel_closure_safe(
1775 &self,
1776 self_: ::ethers::core::types::Address,
1777 destination: ::ethers::core::types::Address,
1778 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1779 self.0
1780 .method_hash([189, 166, 95, 69], (self_, destination))
1781 .expect("method not found (this should never happen)")
1782 }
1783 pub fn ledger_domain_separator(
1785 &self,
1786 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1787 self.0
1788 .method_hash([201, 102, 196, 254], ())
1789 .expect("method not found (this should never happen)")
1790 }
1791 pub fn multicall(
1793 &self,
1794 data: ::std::vec::Vec<::ethers::core::types::Bytes>,
1795 ) -> ::ethers::contract::builders::ContractCall<
1796 M,
1797 ::std::vec::Vec<::ethers::core::types::Bytes>,
1798 > {
1799 self.0
1800 .method_hash([172, 150, 80, 216], data)
1801 .expect("method not found (this should never happen)")
1802 }
1803 pub fn notice_period_channel_closure(
1805 &self,
1806 ) -> ::ethers::contract::builders::ContractCall<M, u32> {
1807 self.0
1808 .method_hash([135, 53, 45, 101], ())
1809 .expect("method not found (this should never happen)")
1810 }
1811 pub fn redeem_ticket(
1813 &self,
1814 redeemable: RedeemableTicket,
1815 params: Vrfparameters,
1816 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1817 self.0
1818 .method_hash([252, 183, 121, 111], (redeemable, params))
1819 .expect("method not found (this should never happen)")
1820 }
1821 pub fn redeem_ticket_safe(
1823 &self,
1824 self_: ::ethers::core::types::Address,
1825 redeemable: RedeemableTicket,
1826 params: Vrfparameters,
1827 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1828 self.0
1829 .method_hash([12, 216, 141, 114], (self_, redeemable, params))
1830 .expect("method not found (this should never happen)")
1831 }
1832 pub fn token(
1834 &self,
1835 ) -> ::ethers::contract::builders::ContractCall<
1836 M,
1837 ::ethers::core::types::Address,
1838 > {
1839 self.0
1840 .method_hash([252, 12, 84, 106], ())
1841 .expect("method not found (this should never happen)")
1842 }
1843 pub fn tokens_received(
1845 &self,
1846 p0: ::ethers::core::types::Address,
1847 from: ::ethers::core::types::Address,
1848 to: ::ethers::core::types::Address,
1849 amount: ::ethers::core::types::U256,
1850 user_data: ::ethers::core::types::Bytes,
1851 p5: ::ethers::core::types::Bytes,
1852 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1853 self.0
1854 .method_hash([0, 35, 222, 41], (p0, from, to, amount, user_data, p5))
1855 .expect("method not found (this should never happen)")
1856 }
1857 pub fn update_domain_separator(
1859 &self,
1860 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1861 self.0
1862 .method_hash([137, 204, 254, 137], ())
1863 .expect("method not found (this should never happen)")
1864 }
1865 pub fn update_ledger_domain_separator(
1867 &self,
1868 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1869 self.0
1870 .method_hash([220, 150, 253, 80], ())
1871 .expect("method not found (this should never happen)")
1872 }
1873 pub fn channel_balance_decreased_filter(
1875 &self,
1876 ) -> ::ethers::contract::builders::Event<
1877 ::std::sync::Arc<M>,
1878 M,
1879 ChannelBalanceDecreasedFilter,
1880 > {
1881 self.0.event()
1882 }
1883 pub fn channel_balance_increased_filter(
1885 &self,
1886 ) -> ::ethers::contract::builders::Event<
1887 ::std::sync::Arc<M>,
1888 M,
1889 ChannelBalanceIncreasedFilter,
1890 > {
1891 self.0.event()
1892 }
1893 pub fn channel_closed_filter(
1895 &self,
1896 ) -> ::ethers::contract::builders::Event<
1897 ::std::sync::Arc<M>,
1898 M,
1899 ChannelClosedFilter,
1900 > {
1901 self.0.event()
1902 }
1903 pub fn channel_opened_filter(
1905 &self,
1906 ) -> ::ethers::contract::builders::Event<
1907 ::std::sync::Arc<M>,
1908 M,
1909 ChannelOpenedFilter,
1910 > {
1911 self.0.event()
1912 }
1913 pub fn domain_separator_updated_filter(
1915 &self,
1916 ) -> ::ethers::contract::builders::Event<
1917 ::std::sync::Arc<M>,
1918 M,
1919 DomainSeparatorUpdatedFilter,
1920 > {
1921 self.0.event()
1922 }
1923 pub fn ledger_domain_separator_updated_filter(
1925 &self,
1926 ) -> ::ethers::contract::builders::Event<
1927 ::std::sync::Arc<M>,
1928 M,
1929 LedgerDomainSeparatorUpdatedFilter,
1930 > {
1931 self.0.event()
1932 }
1933 pub fn outgoing_channel_closure_initiated_filter(
1935 &self,
1936 ) -> ::ethers::contract::builders::Event<
1937 ::std::sync::Arc<M>,
1938 M,
1939 OutgoingChannelClosureInitiatedFilter,
1940 > {
1941 self.0.event()
1942 }
1943 pub fn ticket_redeemed_filter(
1945 &self,
1946 ) -> ::ethers::contract::builders::Event<
1947 ::std::sync::Arc<M>,
1948 M,
1949 TicketRedeemedFilter,
1950 > {
1951 self.0.event()
1952 }
1953 pub fn events(
1955 &self,
1956 ) -> ::ethers::contract::builders::Event<
1957 ::std::sync::Arc<M>,
1958 M,
1959 HoprChannelsEvents,
1960 > {
1961 self.0.event_with_filter(::core::default::Default::default())
1962 }
1963 }
1964 impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
1965 for HoprChannels<M> {
1966 fn from(contract: ::ethers::contract::Contract<M>) -> Self {
1967 Self::new(contract.address(), contract.client())
1968 }
1969 }
1970 #[derive(
1972 Clone,
1973 ::ethers::contract::EthError,
1974 ::ethers::contract::EthDisplay,
1975 serde::Serialize,
1976 serde::Deserialize,
1977 Default,
1978 Debug,
1979 PartialEq,
1980 Eq,
1981 Hash
1982 )]
1983 #[etherror(name = "AlreadyInitialized", abi = "AlreadyInitialized()")]
1984 pub struct AlreadyInitialized;
1985 #[derive(
1987 Clone,
1988 ::ethers::contract::EthError,
1989 ::ethers::contract::EthDisplay,
1990 serde::Serialize,
1991 serde::Deserialize,
1992 Default,
1993 Debug,
1994 PartialEq,
1995 Eq,
1996 Hash
1997 )]
1998 #[etherror(
1999 name = "BalanceExceedsGlobalPerChannelAllowance",
2000 abi = "BalanceExceedsGlobalPerChannelAllowance()"
2001 )]
2002 pub struct BalanceExceedsGlobalPerChannelAllowance;
2003 #[derive(
2005 Clone,
2006 ::ethers::contract::EthError,
2007 ::ethers::contract::EthDisplay,
2008 serde::Serialize,
2009 serde::Deserialize,
2010 Default,
2011 Debug,
2012 PartialEq,
2013 Eq,
2014 Hash
2015 )]
2016 #[etherror(name = "ContractNotResponsible", abi = "ContractNotResponsible()")]
2017 pub struct ContractNotResponsible;
2018 #[derive(
2020 Clone,
2021 ::ethers::contract::EthError,
2022 ::ethers::contract::EthDisplay,
2023 serde::Serialize,
2024 serde::Deserialize,
2025 Default,
2026 Debug,
2027 PartialEq,
2028 Eq,
2029 Hash
2030 )]
2031 #[etherror(
2032 name = "InsufficientChannelBalance",
2033 abi = "InsufficientChannelBalance()"
2034 )]
2035 pub struct InsufficientChannelBalance;
2036 #[derive(
2038 Clone,
2039 ::ethers::contract::EthError,
2040 ::ethers::contract::EthDisplay,
2041 serde::Serialize,
2042 serde::Deserialize,
2043 Default,
2044 Debug,
2045 PartialEq,
2046 Eq,
2047 Hash
2048 )]
2049 #[etherror(
2050 name = "InvalidAggregatedTicketInterval",
2051 abi = "InvalidAggregatedTicketInterval()"
2052 )]
2053 pub struct InvalidAggregatedTicketInterval;
2054 #[derive(
2056 Clone,
2057 ::ethers::contract::EthError,
2058 ::ethers::contract::EthDisplay,
2059 serde::Serialize,
2060 serde::Deserialize,
2061 Default,
2062 Debug,
2063 PartialEq,
2064 Eq,
2065 Hash
2066 )]
2067 #[etherror(name = "InvalidBalance", abi = "InvalidBalance()")]
2068 pub struct InvalidBalance;
2069 #[derive(
2071 Clone,
2072 ::ethers::contract::EthError,
2073 ::ethers::contract::EthDisplay,
2074 serde::Serialize,
2075 serde::Deserialize,
2076 Default,
2077 Debug,
2078 PartialEq,
2079 Eq,
2080 Hash
2081 )]
2082 #[etherror(name = "InvalidCurvePoint", abi = "InvalidCurvePoint()")]
2083 pub struct InvalidCurvePoint;
2084 #[derive(
2086 Clone,
2087 ::ethers::contract::EthError,
2088 ::ethers::contract::EthDisplay,
2089 serde::Serialize,
2090 serde::Deserialize,
2091 Default,
2092 Debug,
2093 PartialEq,
2094 Eq,
2095 Hash
2096 )]
2097 #[etherror(name = "InvalidFieldElement", abi = "InvalidFieldElement()")]
2098 pub struct InvalidFieldElement;
2099 #[derive(
2101 Clone,
2102 ::ethers::contract::EthError,
2103 ::ethers::contract::EthDisplay,
2104 serde::Serialize,
2105 serde::Deserialize,
2106 Default,
2107 Debug,
2108 PartialEq,
2109 Eq,
2110 Hash
2111 )]
2112 #[etherror(name = "InvalidNoticePeriod", abi = "InvalidNoticePeriod()")]
2113 pub struct InvalidNoticePeriod;
2114 #[derive(
2116 Clone,
2117 ::ethers::contract::EthError,
2118 ::ethers::contract::EthDisplay,
2119 serde::Serialize,
2120 serde::Deserialize,
2121 Default,
2122 Debug,
2123 PartialEq,
2124 Eq,
2125 Hash
2126 )]
2127 #[etherror(name = "InvalidPointWitness", abi = "InvalidPointWitness()")]
2128 pub struct InvalidPointWitness;
2129 #[derive(
2131 Clone,
2132 ::ethers::contract::EthError,
2133 ::ethers::contract::EthDisplay,
2134 serde::Serialize,
2135 serde::Deserialize,
2136 Default,
2137 Debug,
2138 PartialEq,
2139 Eq,
2140 Hash
2141 )]
2142 #[etherror(name = "InvalidSafeAddress", abi = "InvalidSafeAddress()")]
2143 pub struct InvalidSafeAddress;
2144 #[derive(
2146 Clone,
2147 ::ethers::contract::EthError,
2148 ::ethers::contract::EthDisplay,
2149 serde::Serialize,
2150 serde::Deserialize,
2151 Default,
2152 Debug,
2153 PartialEq,
2154 Eq,
2155 Hash
2156 )]
2157 #[etherror(name = "InvalidTicketSignature", abi = "InvalidTicketSignature()")]
2158 pub struct InvalidTicketSignature;
2159 #[derive(
2161 Clone,
2162 ::ethers::contract::EthError,
2163 ::ethers::contract::EthDisplay,
2164 serde::Serialize,
2165 serde::Deserialize,
2166 Default,
2167 Debug,
2168 PartialEq,
2169 Eq,
2170 Hash
2171 )]
2172 #[etherror(name = "InvalidTokenRecipient", abi = "InvalidTokenRecipient()")]
2173 pub struct InvalidTokenRecipient;
2174 #[derive(
2176 Clone,
2177 ::ethers::contract::EthError,
2178 ::ethers::contract::EthDisplay,
2179 serde::Serialize,
2180 serde::Deserialize,
2181 Default,
2182 Debug,
2183 PartialEq,
2184 Eq,
2185 Hash
2186 )]
2187 #[etherror(
2188 name = "InvalidTokensReceivedUsage",
2189 abi = "InvalidTokensReceivedUsage()"
2190 )]
2191 pub struct InvalidTokensReceivedUsage;
2192 #[derive(
2194 Clone,
2195 ::ethers::contract::EthError,
2196 ::ethers::contract::EthDisplay,
2197 serde::Serialize,
2198 serde::Deserialize,
2199 Default,
2200 Debug,
2201 PartialEq,
2202 Eq,
2203 Hash
2204 )]
2205 #[etherror(name = "InvalidVRFProof", abi = "InvalidVRFProof()")]
2206 pub struct InvalidVRFProof;
2207 #[derive(
2209 Clone,
2210 ::ethers::contract::EthError,
2211 ::ethers::contract::EthDisplay,
2212 serde::Serialize,
2213 serde::Deserialize,
2214 Default,
2215 Debug,
2216 PartialEq,
2217 Eq,
2218 Hash
2219 )]
2220 #[etherror(name = "MultiSigUninitialized", abi = "MultiSigUninitialized()")]
2221 pub struct MultiSigUninitialized;
2222 #[derive(
2224 Clone,
2225 ::ethers::contract::EthError,
2226 ::ethers::contract::EthDisplay,
2227 serde::Serialize,
2228 serde::Deserialize,
2229 Default,
2230 Debug,
2231 PartialEq,
2232 Eq,
2233 Hash
2234 )]
2235 #[etherror(name = "NoticePeriodNotDue", abi = "NoticePeriodNotDue()")]
2236 pub struct NoticePeriodNotDue;
2237 #[derive(
2239 Clone,
2240 ::ethers::contract::EthError,
2241 ::ethers::contract::EthDisplay,
2242 serde::Serialize,
2243 serde::Deserialize,
2244 Default,
2245 Debug,
2246 PartialEq,
2247 Eq,
2248 Hash
2249 )]
2250 #[etherror(name = "SourceEqualsDestination", abi = "SourceEqualsDestination()")]
2251 pub struct SourceEqualsDestination;
2252 #[derive(
2254 Clone,
2255 ::ethers::contract::EthError,
2256 ::ethers::contract::EthDisplay,
2257 serde::Serialize,
2258 serde::Deserialize,
2259 Default,
2260 Debug,
2261 PartialEq,
2262 Eq,
2263 Hash
2264 )]
2265 #[etherror(name = "TicketIsNotAWin", abi = "TicketIsNotAWin()")]
2266 pub struct TicketIsNotAWin;
2267 #[derive(
2269 Clone,
2270 ::ethers::contract::EthError,
2271 ::ethers::contract::EthDisplay,
2272 serde::Serialize,
2273 serde::Deserialize,
2274 Default,
2275 Debug,
2276 PartialEq,
2277 Eq,
2278 Hash
2279 )]
2280 #[etherror(name = "TokenTransferFailed", abi = "TokenTransferFailed()")]
2281 pub struct TokenTransferFailed;
2282 #[derive(
2284 Clone,
2285 ::ethers::contract::EthError,
2286 ::ethers::contract::EthDisplay,
2287 serde::Serialize,
2288 serde::Deserialize,
2289 Default,
2290 Debug,
2291 PartialEq,
2292 Eq,
2293 Hash
2294 )]
2295 #[etherror(name = "WrongChannelState", abi = "WrongChannelState(string)")]
2296 pub struct WrongChannelState {
2297 pub reason: ::std::string::String,
2298 }
2299 #[derive(
2301 Clone,
2302 ::ethers::contract::EthError,
2303 ::ethers::contract::EthDisplay,
2304 serde::Serialize,
2305 serde::Deserialize,
2306 Default,
2307 Debug,
2308 PartialEq,
2309 Eq,
2310 Hash
2311 )]
2312 #[etherror(name = "WrongToken", abi = "WrongToken()")]
2313 pub struct WrongToken;
2314 #[derive(
2316 Clone,
2317 ::ethers::contract::EthError,
2318 ::ethers::contract::EthDisplay,
2319 serde::Serialize,
2320 serde::Deserialize,
2321 Default,
2322 Debug,
2323 PartialEq,
2324 Eq,
2325 Hash
2326 )]
2327 #[etherror(name = "ZeroAddress", abi = "ZeroAddress(string)")]
2328 pub struct ZeroAddress {
2329 pub reason: ::std::string::String,
2330 }
2331 #[derive(
2333 Clone,
2334 ::ethers::contract::EthAbiType,
2335 serde::Serialize,
2336 serde::Deserialize,
2337 Debug,
2338 PartialEq,
2339 Eq,
2340 Hash
2341 )]
2342 pub enum HoprChannelsErrors {
2343 AlreadyInitialized(AlreadyInitialized),
2344 BalanceExceedsGlobalPerChannelAllowance(BalanceExceedsGlobalPerChannelAllowance),
2345 ContractNotResponsible(ContractNotResponsible),
2346 InsufficientChannelBalance(InsufficientChannelBalance),
2347 InvalidAggregatedTicketInterval(InvalidAggregatedTicketInterval),
2348 InvalidBalance(InvalidBalance),
2349 InvalidCurvePoint(InvalidCurvePoint),
2350 InvalidFieldElement(InvalidFieldElement),
2351 InvalidNoticePeriod(InvalidNoticePeriod),
2352 InvalidPointWitness(InvalidPointWitness),
2353 InvalidSafeAddress(InvalidSafeAddress),
2354 InvalidTicketSignature(InvalidTicketSignature),
2355 InvalidTokenRecipient(InvalidTokenRecipient),
2356 InvalidTokensReceivedUsage(InvalidTokensReceivedUsage),
2357 InvalidVRFProof(InvalidVRFProof),
2358 MultiSigUninitialized(MultiSigUninitialized),
2359 NoticePeriodNotDue(NoticePeriodNotDue),
2360 SourceEqualsDestination(SourceEqualsDestination),
2361 TicketIsNotAWin(TicketIsNotAWin),
2362 TokenTransferFailed(TokenTransferFailed),
2363 WrongChannelState(WrongChannelState),
2364 WrongToken(WrongToken),
2365 ZeroAddress(ZeroAddress),
2366 RevertString(::std::string::String),
2369 }
2370 impl ::ethers::core::abi::AbiDecode for HoprChannelsErrors {
2371 fn decode(
2372 data: impl AsRef<[u8]>,
2373 ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
2374 let data = data.as_ref();
2375 if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(
2376 data,
2377 ) {
2378 return Ok(Self::RevertString(decoded));
2379 }
2380 if let Ok(decoded) = <AlreadyInitialized as ::ethers::core::abi::AbiDecode>::decode(
2381 data,
2382 ) {
2383 return Ok(Self::AlreadyInitialized(decoded));
2384 }
2385 if let Ok(decoded) = <BalanceExceedsGlobalPerChannelAllowance as ::ethers::core::abi::AbiDecode>::decode(
2386 data,
2387 ) {
2388 return Ok(Self::BalanceExceedsGlobalPerChannelAllowance(decoded));
2389 }
2390 if let Ok(decoded) = <ContractNotResponsible as ::ethers::core::abi::AbiDecode>::decode(
2391 data,
2392 ) {
2393 return Ok(Self::ContractNotResponsible(decoded));
2394 }
2395 if let Ok(decoded) = <InsufficientChannelBalance as ::ethers::core::abi::AbiDecode>::decode(
2396 data,
2397 ) {
2398 return Ok(Self::InsufficientChannelBalance(decoded));
2399 }
2400 if let Ok(decoded) = <InvalidAggregatedTicketInterval as ::ethers::core::abi::AbiDecode>::decode(
2401 data,
2402 ) {
2403 return Ok(Self::InvalidAggregatedTicketInterval(decoded));
2404 }
2405 if let Ok(decoded) = <InvalidBalance as ::ethers::core::abi::AbiDecode>::decode(
2406 data,
2407 ) {
2408 return Ok(Self::InvalidBalance(decoded));
2409 }
2410 if let Ok(decoded) = <InvalidCurvePoint as ::ethers::core::abi::AbiDecode>::decode(
2411 data,
2412 ) {
2413 return Ok(Self::InvalidCurvePoint(decoded));
2414 }
2415 if let Ok(decoded) = <InvalidFieldElement as ::ethers::core::abi::AbiDecode>::decode(
2416 data,
2417 ) {
2418 return Ok(Self::InvalidFieldElement(decoded));
2419 }
2420 if let Ok(decoded) = <InvalidNoticePeriod as ::ethers::core::abi::AbiDecode>::decode(
2421 data,
2422 ) {
2423 return Ok(Self::InvalidNoticePeriod(decoded));
2424 }
2425 if let Ok(decoded) = <InvalidPointWitness as ::ethers::core::abi::AbiDecode>::decode(
2426 data,
2427 ) {
2428 return Ok(Self::InvalidPointWitness(decoded));
2429 }
2430 if let Ok(decoded) = <InvalidSafeAddress as ::ethers::core::abi::AbiDecode>::decode(
2431 data,
2432 ) {
2433 return Ok(Self::InvalidSafeAddress(decoded));
2434 }
2435 if let Ok(decoded) = <InvalidTicketSignature as ::ethers::core::abi::AbiDecode>::decode(
2436 data,
2437 ) {
2438 return Ok(Self::InvalidTicketSignature(decoded));
2439 }
2440 if let Ok(decoded) = <InvalidTokenRecipient as ::ethers::core::abi::AbiDecode>::decode(
2441 data,
2442 ) {
2443 return Ok(Self::InvalidTokenRecipient(decoded));
2444 }
2445 if let Ok(decoded) = <InvalidTokensReceivedUsage as ::ethers::core::abi::AbiDecode>::decode(
2446 data,
2447 ) {
2448 return Ok(Self::InvalidTokensReceivedUsage(decoded));
2449 }
2450 if let Ok(decoded) = <InvalidVRFProof as ::ethers::core::abi::AbiDecode>::decode(
2451 data,
2452 ) {
2453 return Ok(Self::InvalidVRFProof(decoded));
2454 }
2455 if let Ok(decoded) = <MultiSigUninitialized as ::ethers::core::abi::AbiDecode>::decode(
2456 data,
2457 ) {
2458 return Ok(Self::MultiSigUninitialized(decoded));
2459 }
2460 if let Ok(decoded) = <NoticePeriodNotDue as ::ethers::core::abi::AbiDecode>::decode(
2461 data,
2462 ) {
2463 return Ok(Self::NoticePeriodNotDue(decoded));
2464 }
2465 if let Ok(decoded) = <SourceEqualsDestination as ::ethers::core::abi::AbiDecode>::decode(
2466 data,
2467 ) {
2468 return Ok(Self::SourceEqualsDestination(decoded));
2469 }
2470 if let Ok(decoded) = <TicketIsNotAWin as ::ethers::core::abi::AbiDecode>::decode(
2471 data,
2472 ) {
2473 return Ok(Self::TicketIsNotAWin(decoded));
2474 }
2475 if let Ok(decoded) = <TokenTransferFailed as ::ethers::core::abi::AbiDecode>::decode(
2476 data,
2477 ) {
2478 return Ok(Self::TokenTransferFailed(decoded));
2479 }
2480 if let Ok(decoded) = <WrongChannelState as ::ethers::core::abi::AbiDecode>::decode(
2481 data,
2482 ) {
2483 return Ok(Self::WrongChannelState(decoded));
2484 }
2485 if let Ok(decoded) = <WrongToken as ::ethers::core::abi::AbiDecode>::decode(
2486 data,
2487 ) {
2488 return Ok(Self::WrongToken(decoded));
2489 }
2490 if let Ok(decoded) = <ZeroAddress as ::ethers::core::abi::AbiDecode>::decode(
2491 data,
2492 ) {
2493 return Ok(Self::ZeroAddress(decoded));
2494 }
2495 Err(::ethers::core::abi::Error::InvalidData.into())
2496 }
2497 }
2498 impl ::ethers::core::abi::AbiEncode for HoprChannelsErrors {
2499 fn encode(self) -> ::std::vec::Vec<u8> {
2500 match self {
2501 Self::AlreadyInitialized(element) => {
2502 ::ethers::core::abi::AbiEncode::encode(element)
2503 }
2504 Self::BalanceExceedsGlobalPerChannelAllowance(element) => {
2505 ::ethers::core::abi::AbiEncode::encode(element)
2506 }
2507 Self::ContractNotResponsible(element) => {
2508 ::ethers::core::abi::AbiEncode::encode(element)
2509 }
2510 Self::InsufficientChannelBalance(element) => {
2511 ::ethers::core::abi::AbiEncode::encode(element)
2512 }
2513 Self::InvalidAggregatedTicketInterval(element) => {
2514 ::ethers::core::abi::AbiEncode::encode(element)
2515 }
2516 Self::InvalidBalance(element) => {
2517 ::ethers::core::abi::AbiEncode::encode(element)
2518 }
2519 Self::InvalidCurvePoint(element) => {
2520 ::ethers::core::abi::AbiEncode::encode(element)
2521 }
2522 Self::InvalidFieldElement(element) => {
2523 ::ethers::core::abi::AbiEncode::encode(element)
2524 }
2525 Self::InvalidNoticePeriod(element) => {
2526 ::ethers::core::abi::AbiEncode::encode(element)
2527 }
2528 Self::InvalidPointWitness(element) => {
2529 ::ethers::core::abi::AbiEncode::encode(element)
2530 }
2531 Self::InvalidSafeAddress(element) => {
2532 ::ethers::core::abi::AbiEncode::encode(element)
2533 }
2534 Self::InvalidTicketSignature(element) => {
2535 ::ethers::core::abi::AbiEncode::encode(element)
2536 }
2537 Self::InvalidTokenRecipient(element) => {
2538 ::ethers::core::abi::AbiEncode::encode(element)
2539 }
2540 Self::InvalidTokensReceivedUsage(element) => {
2541 ::ethers::core::abi::AbiEncode::encode(element)
2542 }
2543 Self::InvalidVRFProof(element) => {
2544 ::ethers::core::abi::AbiEncode::encode(element)
2545 }
2546 Self::MultiSigUninitialized(element) => {
2547 ::ethers::core::abi::AbiEncode::encode(element)
2548 }
2549 Self::NoticePeriodNotDue(element) => {
2550 ::ethers::core::abi::AbiEncode::encode(element)
2551 }
2552 Self::SourceEqualsDestination(element) => {
2553 ::ethers::core::abi::AbiEncode::encode(element)
2554 }
2555 Self::TicketIsNotAWin(element) => {
2556 ::ethers::core::abi::AbiEncode::encode(element)
2557 }
2558 Self::TokenTransferFailed(element) => {
2559 ::ethers::core::abi::AbiEncode::encode(element)
2560 }
2561 Self::WrongChannelState(element) => {
2562 ::ethers::core::abi::AbiEncode::encode(element)
2563 }
2564 Self::WrongToken(element) => {
2565 ::ethers::core::abi::AbiEncode::encode(element)
2566 }
2567 Self::ZeroAddress(element) => {
2568 ::ethers::core::abi::AbiEncode::encode(element)
2569 }
2570 Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s),
2571 }
2572 }
2573 }
2574 impl ::ethers::contract::ContractRevert for HoprChannelsErrors {
2575 fn valid_selector(selector: [u8; 4]) -> bool {
2576 match selector {
2577 [0x08, 0xc3, 0x79, 0xa0] => true,
2578 _ if selector
2579 == <AlreadyInitialized as ::ethers::contract::EthError>::selector() => {
2580 true
2581 }
2582 _ if selector
2583 == <BalanceExceedsGlobalPerChannelAllowance as ::ethers::contract::EthError>::selector() => {
2584 true
2585 }
2586 _ if selector
2587 == <ContractNotResponsible as ::ethers::contract::EthError>::selector() => {
2588 true
2589 }
2590 _ if selector
2591 == <InsufficientChannelBalance as ::ethers::contract::EthError>::selector() => {
2592 true
2593 }
2594 _ if selector
2595 == <InvalidAggregatedTicketInterval as ::ethers::contract::EthError>::selector() => {
2596 true
2597 }
2598 _ if selector
2599 == <InvalidBalance as ::ethers::contract::EthError>::selector() => {
2600 true
2601 }
2602 _ if selector
2603 == <InvalidCurvePoint as ::ethers::contract::EthError>::selector() => {
2604 true
2605 }
2606 _ if selector
2607 == <InvalidFieldElement as ::ethers::contract::EthError>::selector() => {
2608 true
2609 }
2610 _ if selector
2611 == <InvalidNoticePeriod as ::ethers::contract::EthError>::selector() => {
2612 true
2613 }
2614 _ if selector
2615 == <InvalidPointWitness as ::ethers::contract::EthError>::selector() => {
2616 true
2617 }
2618 _ if selector
2619 == <InvalidSafeAddress as ::ethers::contract::EthError>::selector() => {
2620 true
2621 }
2622 _ if selector
2623 == <InvalidTicketSignature as ::ethers::contract::EthError>::selector() => {
2624 true
2625 }
2626 _ if selector
2627 == <InvalidTokenRecipient as ::ethers::contract::EthError>::selector() => {
2628 true
2629 }
2630 _ if selector
2631 == <InvalidTokensReceivedUsage as ::ethers::contract::EthError>::selector() => {
2632 true
2633 }
2634 _ if selector
2635 == <InvalidVRFProof as ::ethers::contract::EthError>::selector() => {
2636 true
2637 }
2638 _ if selector
2639 == <MultiSigUninitialized as ::ethers::contract::EthError>::selector() => {
2640 true
2641 }
2642 _ if selector
2643 == <NoticePeriodNotDue as ::ethers::contract::EthError>::selector() => {
2644 true
2645 }
2646 _ if selector
2647 == <SourceEqualsDestination as ::ethers::contract::EthError>::selector() => {
2648 true
2649 }
2650 _ if selector
2651 == <TicketIsNotAWin as ::ethers::contract::EthError>::selector() => {
2652 true
2653 }
2654 _ if selector
2655 == <TokenTransferFailed as ::ethers::contract::EthError>::selector() => {
2656 true
2657 }
2658 _ if selector
2659 == <WrongChannelState as ::ethers::contract::EthError>::selector() => {
2660 true
2661 }
2662 _ if selector
2663 == <WrongToken as ::ethers::contract::EthError>::selector() => true,
2664 _ if selector
2665 == <ZeroAddress as ::ethers::contract::EthError>::selector() => true,
2666 _ => false,
2667 }
2668 }
2669 }
2670 impl ::core::fmt::Display for HoprChannelsErrors {
2671 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2672 match self {
2673 Self::AlreadyInitialized(element) => {
2674 ::core::fmt::Display::fmt(element, f)
2675 }
2676 Self::BalanceExceedsGlobalPerChannelAllowance(element) => {
2677 ::core::fmt::Display::fmt(element, f)
2678 }
2679 Self::ContractNotResponsible(element) => {
2680 ::core::fmt::Display::fmt(element, f)
2681 }
2682 Self::InsufficientChannelBalance(element) => {
2683 ::core::fmt::Display::fmt(element, f)
2684 }
2685 Self::InvalidAggregatedTicketInterval(element) => {
2686 ::core::fmt::Display::fmt(element, f)
2687 }
2688 Self::InvalidBalance(element) => ::core::fmt::Display::fmt(element, f),
2689 Self::InvalidCurvePoint(element) => ::core::fmt::Display::fmt(element, f),
2690 Self::InvalidFieldElement(element) => {
2691 ::core::fmt::Display::fmt(element, f)
2692 }
2693 Self::InvalidNoticePeriod(element) => {
2694 ::core::fmt::Display::fmt(element, f)
2695 }
2696 Self::InvalidPointWitness(element) => {
2697 ::core::fmt::Display::fmt(element, f)
2698 }
2699 Self::InvalidSafeAddress(element) => {
2700 ::core::fmt::Display::fmt(element, f)
2701 }
2702 Self::InvalidTicketSignature(element) => {
2703 ::core::fmt::Display::fmt(element, f)
2704 }
2705 Self::InvalidTokenRecipient(element) => {
2706 ::core::fmt::Display::fmt(element, f)
2707 }
2708 Self::InvalidTokensReceivedUsage(element) => {
2709 ::core::fmt::Display::fmt(element, f)
2710 }
2711 Self::InvalidVRFProof(element) => ::core::fmt::Display::fmt(element, f),
2712 Self::MultiSigUninitialized(element) => {
2713 ::core::fmt::Display::fmt(element, f)
2714 }
2715 Self::NoticePeriodNotDue(element) => {
2716 ::core::fmt::Display::fmt(element, f)
2717 }
2718 Self::SourceEqualsDestination(element) => {
2719 ::core::fmt::Display::fmt(element, f)
2720 }
2721 Self::TicketIsNotAWin(element) => ::core::fmt::Display::fmt(element, f),
2722 Self::TokenTransferFailed(element) => {
2723 ::core::fmt::Display::fmt(element, f)
2724 }
2725 Self::WrongChannelState(element) => ::core::fmt::Display::fmt(element, f),
2726 Self::WrongToken(element) => ::core::fmt::Display::fmt(element, f),
2727 Self::ZeroAddress(element) => ::core::fmt::Display::fmt(element, f),
2728 Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
2729 }
2730 }
2731 }
2732 impl ::core::convert::From<::std::string::String> for HoprChannelsErrors {
2733 fn from(value: String) -> Self {
2734 Self::RevertString(value)
2735 }
2736 }
2737 impl ::core::convert::From<AlreadyInitialized> for HoprChannelsErrors {
2738 fn from(value: AlreadyInitialized) -> Self {
2739 Self::AlreadyInitialized(value)
2740 }
2741 }
2742 impl ::core::convert::From<BalanceExceedsGlobalPerChannelAllowance>
2743 for HoprChannelsErrors {
2744 fn from(value: BalanceExceedsGlobalPerChannelAllowance) -> Self {
2745 Self::BalanceExceedsGlobalPerChannelAllowance(value)
2746 }
2747 }
2748 impl ::core::convert::From<ContractNotResponsible> for HoprChannelsErrors {
2749 fn from(value: ContractNotResponsible) -> Self {
2750 Self::ContractNotResponsible(value)
2751 }
2752 }
2753 impl ::core::convert::From<InsufficientChannelBalance> for HoprChannelsErrors {
2754 fn from(value: InsufficientChannelBalance) -> Self {
2755 Self::InsufficientChannelBalance(value)
2756 }
2757 }
2758 impl ::core::convert::From<InvalidAggregatedTicketInterval> for HoprChannelsErrors {
2759 fn from(value: InvalidAggregatedTicketInterval) -> Self {
2760 Self::InvalidAggregatedTicketInterval(value)
2761 }
2762 }
2763 impl ::core::convert::From<InvalidBalance> for HoprChannelsErrors {
2764 fn from(value: InvalidBalance) -> Self {
2765 Self::InvalidBalance(value)
2766 }
2767 }
2768 impl ::core::convert::From<InvalidCurvePoint> for HoprChannelsErrors {
2769 fn from(value: InvalidCurvePoint) -> Self {
2770 Self::InvalidCurvePoint(value)
2771 }
2772 }
2773 impl ::core::convert::From<InvalidFieldElement> for HoprChannelsErrors {
2774 fn from(value: InvalidFieldElement) -> Self {
2775 Self::InvalidFieldElement(value)
2776 }
2777 }
2778 impl ::core::convert::From<InvalidNoticePeriod> for HoprChannelsErrors {
2779 fn from(value: InvalidNoticePeriod) -> Self {
2780 Self::InvalidNoticePeriod(value)
2781 }
2782 }
2783 impl ::core::convert::From<InvalidPointWitness> for HoprChannelsErrors {
2784 fn from(value: InvalidPointWitness) -> Self {
2785 Self::InvalidPointWitness(value)
2786 }
2787 }
2788 impl ::core::convert::From<InvalidSafeAddress> for HoprChannelsErrors {
2789 fn from(value: InvalidSafeAddress) -> Self {
2790 Self::InvalidSafeAddress(value)
2791 }
2792 }
2793 impl ::core::convert::From<InvalidTicketSignature> for HoprChannelsErrors {
2794 fn from(value: InvalidTicketSignature) -> Self {
2795 Self::InvalidTicketSignature(value)
2796 }
2797 }
2798 impl ::core::convert::From<InvalidTokenRecipient> for HoprChannelsErrors {
2799 fn from(value: InvalidTokenRecipient) -> Self {
2800 Self::InvalidTokenRecipient(value)
2801 }
2802 }
2803 impl ::core::convert::From<InvalidTokensReceivedUsage> for HoprChannelsErrors {
2804 fn from(value: InvalidTokensReceivedUsage) -> Self {
2805 Self::InvalidTokensReceivedUsage(value)
2806 }
2807 }
2808 impl ::core::convert::From<InvalidVRFProof> for HoprChannelsErrors {
2809 fn from(value: InvalidVRFProof) -> Self {
2810 Self::InvalidVRFProof(value)
2811 }
2812 }
2813 impl ::core::convert::From<MultiSigUninitialized> for HoprChannelsErrors {
2814 fn from(value: MultiSigUninitialized) -> Self {
2815 Self::MultiSigUninitialized(value)
2816 }
2817 }
2818 impl ::core::convert::From<NoticePeriodNotDue> for HoprChannelsErrors {
2819 fn from(value: NoticePeriodNotDue) -> Self {
2820 Self::NoticePeriodNotDue(value)
2821 }
2822 }
2823 impl ::core::convert::From<SourceEqualsDestination> for HoprChannelsErrors {
2824 fn from(value: SourceEqualsDestination) -> Self {
2825 Self::SourceEqualsDestination(value)
2826 }
2827 }
2828 impl ::core::convert::From<TicketIsNotAWin> for HoprChannelsErrors {
2829 fn from(value: TicketIsNotAWin) -> Self {
2830 Self::TicketIsNotAWin(value)
2831 }
2832 }
2833 impl ::core::convert::From<TokenTransferFailed> for HoprChannelsErrors {
2834 fn from(value: TokenTransferFailed) -> Self {
2835 Self::TokenTransferFailed(value)
2836 }
2837 }
2838 impl ::core::convert::From<WrongChannelState> for HoprChannelsErrors {
2839 fn from(value: WrongChannelState) -> Self {
2840 Self::WrongChannelState(value)
2841 }
2842 }
2843 impl ::core::convert::From<WrongToken> for HoprChannelsErrors {
2844 fn from(value: WrongToken) -> Self {
2845 Self::WrongToken(value)
2846 }
2847 }
2848 impl ::core::convert::From<ZeroAddress> for HoprChannelsErrors {
2849 fn from(value: ZeroAddress) -> Self {
2850 Self::ZeroAddress(value)
2851 }
2852 }
2853 #[derive(
2854 Clone,
2855 ::ethers::contract::EthEvent,
2856 ::ethers::contract::EthDisplay,
2857 serde::Serialize,
2858 serde::Deserialize,
2859 Default,
2860 Debug,
2861 PartialEq,
2862 Eq,
2863 Hash
2864 )]
2865 #[ethevent(
2866 name = "ChannelBalanceDecreased",
2867 abi = "ChannelBalanceDecreased(bytes32,uint96)"
2868 )]
2869 pub struct ChannelBalanceDecreasedFilter {
2870 #[ethevent(indexed)]
2871 pub channel_id: [u8; 32],
2872 pub new_balance: u128,
2873 }
2874 #[derive(
2875 Clone,
2876 ::ethers::contract::EthEvent,
2877 ::ethers::contract::EthDisplay,
2878 serde::Serialize,
2879 serde::Deserialize,
2880 Default,
2881 Debug,
2882 PartialEq,
2883 Eq,
2884 Hash
2885 )]
2886 #[ethevent(
2887 name = "ChannelBalanceIncreased",
2888 abi = "ChannelBalanceIncreased(bytes32,uint96)"
2889 )]
2890 pub struct ChannelBalanceIncreasedFilter {
2891 #[ethevent(indexed)]
2892 pub channel_id: [u8; 32],
2893 pub new_balance: u128,
2894 }
2895 #[derive(
2896 Clone,
2897 ::ethers::contract::EthEvent,
2898 ::ethers::contract::EthDisplay,
2899 serde::Serialize,
2900 serde::Deserialize,
2901 Default,
2902 Debug,
2903 PartialEq,
2904 Eq,
2905 Hash
2906 )]
2907 #[ethevent(name = "ChannelClosed", abi = "ChannelClosed(bytes32)")]
2908 pub struct ChannelClosedFilter {
2909 #[ethevent(indexed)]
2910 pub channel_id: [u8; 32],
2911 }
2912 #[derive(
2913 Clone,
2914 ::ethers::contract::EthEvent,
2915 ::ethers::contract::EthDisplay,
2916 serde::Serialize,
2917 serde::Deserialize,
2918 Default,
2919 Debug,
2920 PartialEq,
2921 Eq,
2922 Hash
2923 )]
2924 #[ethevent(name = "ChannelOpened", abi = "ChannelOpened(address,address)")]
2925 pub struct ChannelOpenedFilter {
2926 #[ethevent(indexed)]
2927 pub source: ::ethers::core::types::Address,
2928 #[ethevent(indexed)]
2929 pub destination: ::ethers::core::types::Address,
2930 }
2931 #[derive(
2932 Clone,
2933 ::ethers::contract::EthEvent,
2934 ::ethers::contract::EthDisplay,
2935 serde::Serialize,
2936 serde::Deserialize,
2937 Default,
2938 Debug,
2939 PartialEq,
2940 Eq,
2941 Hash
2942 )]
2943 #[ethevent(name = "DomainSeparatorUpdated", abi = "DomainSeparatorUpdated(bytes32)")]
2944 pub struct DomainSeparatorUpdatedFilter {
2945 #[ethevent(indexed)]
2946 pub domain_separator: [u8; 32],
2947 }
2948 #[derive(
2949 Clone,
2950 ::ethers::contract::EthEvent,
2951 ::ethers::contract::EthDisplay,
2952 serde::Serialize,
2953 serde::Deserialize,
2954 Default,
2955 Debug,
2956 PartialEq,
2957 Eq,
2958 Hash
2959 )]
2960 #[ethevent(
2961 name = "LedgerDomainSeparatorUpdated",
2962 abi = "LedgerDomainSeparatorUpdated(bytes32)"
2963 )]
2964 pub struct LedgerDomainSeparatorUpdatedFilter {
2965 #[ethevent(indexed)]
2966 pub ledger_domain_separator: [u8; 32],
2967 }
2968 #[derive(
2969 Clone,
2970 ::ethers::contract::EthEvent,
2971 ::ethers::contract::EthDisplay,
2972 serde::Serialize,
2973 serde::Deserialize,
2974 Default,
2975 Debug,
2976 PartialEq,
2977 Eq,
2978 Hash
2979 )]
2980 #[ethevent(
2981 name = "OutgoingChannelClosureInitiated",
2982 abi = "OutgoingChannelClosureInitiated(bytes32,uint32)"
2983 )]
2984 pub struct OutgoingChannelClosureInitiatedFilter {
2985 #[ethevent(indexed)]
2986 pub channel_id: [u8; 32],
2987 pub closure_time: u32,
2988 }
2989 #[derive(
2990 Clone,
2991 ::ethers::contract::EthEvent,
2992 ::ethers::contract::EthDisplay,
2993 serde::Serialize,
2994 serde::Deserialize,
2995 Default,
2996 Debug,
2997 PartialEq,
2998 Eq,
2999 Hash
3000 )]
3001 #[ethevent(name = "TicketRedeemed", abi = "TicketRedeemed(bytes32,uint48)")]
3002 pub struct TicketRedeemedFilter {
3003 #[ethevent(indexed)]
3004 pub channel_id: [u8; 32],
3005 pub new_ticket_index: u64,
3006 }
3007 #[derive(
3009 Clone,
3010 ::ethers::contract::EthAbiType,
3011 serde::Serialize,
3012 serde::Deserialize,
3013 Debug,
3014 PartialEq,
3015 Eq,
3016 Hash
3017 )]
3018 pub enum HoprChannelsEvents {
3019 ChannelBalanceDecreasedFilter(ChannelBalanceDecreasedFilter),
3020 ChannelBalanceIncreasedFilter(ChannelBalanceIncreasedFilter),
3021 ChannelClosedFilter(ChannelClosedFilter),
3022 ChannelOpenedFilter(ChannelOpenedFilter),
3023 DomainSeparatorUpdatedFilter(DomainSeparatorUpdatedFilter),
3024 LedgerDomainSeparatorUpdatedFilter(LedgerDomainSeparatorUpdatedFilter),
3025 OutgoingChannelClosureInitiatedFilter(OutgoingChannelClosureInitiatedFilter),
3026 TicketRedeemedFilter(TicketRedeemedFilter),
3027 }
3028 impl ::ethers::contract::EthLogDecode for HoprChannelsEvents {
3029 fn decode_log(
3030 log: &::ethers::core::abi::RawLog,
3031 ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
3032 if let Ok(decoded) = ChannelBalanceDecreasedFilter::decode_log(log) {
3033 return Ok(HoprChannelsEvents::ChannelBalanceDecreasedFilter(decoded));
3034 }
3035 if let Ok(decoded) = ChannelBalanceIncreasedFilter::decode_log(log) {
3036 return Ok(HoprChannelsEvents::ChannelBalanceIncreasedFilter(decoded));
3037 }
3038 if let Ok(decoded) = ChannelClosedFilter::decode_log(log) {
3039 return Ok(HoprChannelsEvents::ChannelClosedFilter(decoded));
3040 }
3041 if let Ok(decoded) = ChannelOpenedFilter::decode_log(log) {
3042 return Ok(HoprChannelsEvents::ChannelOpenedFilter(decoded));
3043 }
3044 if let Ok(decoded) = DomainSeparatorUpdatedFilter::decode_log(log) {
3045 return Ok(HoprChannelsEvents::DomainSeparatorUpdatedFilter(decoded));
3046 }
3047 if let Ok(decoded) = LedgerDomainSeparatorUpdatedFilter::decode_log(log) {
3048 return Ok(
3049 HoprChannelsEvents::LedgerDomainSeparatorUpdatedFilter(decoded),
3050 );
3051 }
3052 if let Ok(decoded) = OutgoingChannelClosureInitiatedFilter::decode_log(log) {
3053 return Ok(
3054 HoprChannelsEvents::OutgoingChannelClosureInitiatedFilter(decoded),
3055 );
3056 }
3057 if let Ok(decoded) = TicketRedeemedFilter::decode_log(log) {
3058 return Ok(HoprChannelsEvents::TicketRedeemedFilter(decoded));
3059 }
3060 Err(::ethers::core::abi::Error::InvalidData)
3061 }
3062 }
3063 impl ::core::fmt::Display for HoprChannelsEvents {
3064 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3065 match self {
3066 Self::ChannelBalanceDecreasedFilter(element) => {
3067 ::core::fmt::Display::fmt(element, f)
3068 }
3069 Self::ChannelBalanceIncreasedFilter(element) => {
3070 ::core::fmt::Display::fmt(element, f)
3071 }
3072 Self::ChannelClosedFilter(element) => {
3073 ::core::fmt::Display::fmt(element, f)
3074 }
3075 Self::ChannelOpenedFilter(element) => {
3076 ::core::fmt::Display::fmt(element, f)
3077 }
3078 Self::DomainSeparatorUpdatedFilter(element) => {
3079 ::core::fmt::Display::fmt(element, f)
3080 }
3081 Self::LedgerDomainSeparatorUpdatedFilter(element) => {
3082 ::core::fmt::Display::fmt(element, f)
3083 }
3084 Self::OutgoingChannelClosureInitiatedFilter(element) => {
3085 ::core::fmt::Display::fmt(element, f)
3086 }
3087 Self::TicketRedeemedFilter(element) => {
3088 ::core::fmt::Display::fmt(element, f)
3089 }
3090 }
3091 }
3092 }
3093 impl ::core::convert::From<ChannelBalanceDecreasedFilter> for HoprChannelsEvents {
3094 fn from(value: ChannelBalanceDecreasedFilter) -> Self {
3095 Self::ChannelBalanceDecreasedFilter(value)
3096 }
3097 }
3098 impl ::core::convert::From<ChannelBalanceIncreasedFilter> for HoprChannelsEvents {
3099 fn from(value: ChannelBalanceIncreasedFilter) -> Self {
3100 Self::ChannelBalanceIncreasedFilter(value)
3101 }
3102 }
3103 impl ::core::convert::From<ChannelClosedFilter> for HoprChannelsEvents {
3104 fn from(value: ChannelClosedFilter) -> Self {
3105 Self::ChannelClosedFilter(value)
3106 }
3107 }
3108 impl ::core::convert::From<ChannelOpenedFilter> for HoprChannelsEvents {
3109 fn from(value: ChannelOpenedFilter) -> Self {
3110 Self::ChannelOpenedFilter(value)
3111 }
3112 }
3113 impl ::core::convert::From<DomainSeparatorUpdatedFilter> for HoprChannelsEvents {
3114 fn from(value: DomainSeparatorUpdatedFilter) -> Self {
3115 Self::DomainSeparatorUpdatedFilter(value)
3116 }
3117 }
3118 impl ::core::convert::From<LedgerDomainSeparatorUpdatedFilter>
3119 for HoprChannelsEvents {
3120 fn from(value: LedgerDomainSeparatorUpdatedFilter) -> Self {
3121 Self::LedgerDomainSeparatorUpdatedFilter(value)
3122 }
3123 }
3124 impl ::core::convert::From<OutgoingChannelClosureInitiatedFilter>
3125 for HoprChannelsEvents {
3126 fn from(value: OutgoingChannelClosureInitiatedFilter) -> Self {
3127 Self::OutgoingChannelClosureInitiatedFilter(value)
3128 }
3129 }
3130 impl ::core::convert::From<TicketRedeemedFilter> for HoprChannelsEvents {
3131 fn from(value: TicketRedeemedFilter) -> Self {
3132 Self::TicketRedeemedFilter(value)
3133 }
3134 }
3135 #[derive(
3137 Clone,
3138 ::ethers::contract::EthCall,
3139 ::ethers::contract::EthDisplay,
3140 serde::Serialize,
3141 serde::Deserialize,
3142 Default,
3143 Debug,
3144 PartialEq,
3145 Eq,
3146 Hash
3147 )]
3148 #[ethcall(
3149 name = "ERC777_HOOK_FUND_CHANNEL_MULTI_SIZE",
3150 abi = "ERC777_HOOK_FUND_CHANNEL_MULTI_SIZE()"
3151 )]
3152 pub struct Erc777HookFundChannelMultiSizeCall;
3153 #[derive(
3155 Clone,
3156 ::ethers::contract::EthCall,
3157 ::ethers::contract::EthDisplay,
3158 serde::Serialize,
3159 serde::Deserialize,
3160 Default,
3161 Debug,
3162 PartialEq,
3163 Eq,
3164 Hash
3165 )]
3166 #[ethcall(
3167 name = "ERC777_HOOK_FUND_CHANNEL_SIZE",
3168 abi = "ERC777_HOOK_FUND_CHANNEL_SIZE()"
3169 )]
3170 pub struct Erc777HookFundChannelSizeCall;
3171 #[derive(
3173 Clone,
3174 ::ethers::contract::EthCall,
3175 ::ethers::contract::EthDisplay,
3176 serde::Serialize,
3177 serde::Deserialize,
3178 Default,
3179 Debug,
3180 PartialEq,
3181 Eq,
3182 Hash
3183 )]
3184 #[ethcall(name = "LEDGER_VERSION", abi = "LEDGER_VERSION()")]
3185 pub struct LedgerVersionCall;
3186 #[derive(
3188 Clone,
3189 ::ethers::contract::EthCall,
3190 ::ethers::contract::EthDisplay,
3191 serde::Serialize,
3192 serde::Deserialize,
3193 Default,
3194 Debug,
3195 PartialEq,
3196 Eq,
3197 Hash
3198 )]
3199 #[ethcall(name = "MAX_USED_BALANCE", abi = "MAX_USED_BALANCE()")]
3200 pub struct MaxUsedBalanceCall;
3201 #[derive(
3203 Clone,
3204 ::ethers::contract::EthCall,
3205 ::ethers::contract::EthDisplay,
3206 serde::Serialize,
3207 serde::Deserialize,
3208 Default,
3209 Debug,
3210 PartialEq,
3211 Eq,
3212 Hash
3213 )]
3214 #[ethcall(name = "MIN_USED_BALANCE", abi = "MIN_USED_BALANCE()")]
3215 pub struct MinUsedBalanceCall;
3216 #[derive(
3218 Clone,
3219 ::ethers::contract::EthCall,
3220 ::ethers::contract::EthDisplay,
3221 serde::Serialize,
3222 serde::Deserialize,
3223 Default,
3224 Debug,
3225 PartialEq,
3226 Eq,
3227 Hash
3228 )]
3229 #[ethcall(
3230 name = "TOKENS_RECIPIENT_INTERFACE_HASH",
3231 abi = "TOKENS_RECIPIENT_INTERFACE_HASH()"
3232 )]
3233 pub struct TokensRecipientInterfaceHashCall;
3234 #[derive(
3236 Clone,
3237 ::ethers::contract::EthCall,
3238 ::ethers::contract::EthDisplay,
3239 serde::Serialize,
3240 serde::Deserialize,
3241 Default,
3242 Debug,
3243 PartialEq,
3244 Eq,
3245 Hash
3246 )]
3247 #[ethcall(name = "VERSION", abi = "VERSION()")]
3248 pub struct VersionCall;
3249 #[derive(
3251 Clone,
3252 ::ethers::contract::EthCall,
3253 ::ethers::contract::EthDisplay,
3254 serde::Serialize,
3255 serde::Deserialize,
3256 Default,
3257 Debug,
3258 PartialEq,
3259 Eq,
3260 Hash
3261 )]
3262 #[ethcall(name = "_currentBlockTimestamp", abi = "_currentBlockTimestamp()")]
3263 pub struct CurrentBlockTimestampCall;
3264 #[derive(
3266 Clone,
3267 ::ethers::contract::EthCall,
3268 ::ethers::contract::EthDisplay,
3269 serde::Serialize,
3270 serde::Deserialize,
3271 Default,
3272 Debug,
3273 PartialEq,
3274 Eq,
3275 Hash
3276 )]
3277 #[ethcall(name = "_getChannelId", abi = "_getChannelId(address,address)")]
3278 pub struct GetChannelIdCall {
3279 pub source: ::ethers::core::types::Address,
3280 pub destination: ::ethers::core::types::Address,
3281 }
3282 #[derive(
3284 Clone,
3285 ::ethers::contract::EthCall,
3286 ::ethers::contract::EthDisplay,
3287 serde::Serialize,
3288 serde::Deserialize,
3289 Default,
3290 Debug,
3291 PartialEq,
3292 Eq,
3293 Hash
3294 )]
3295 #[ethcall(
3296 name = "_getTicketHash",
3297 abi = "_getTicketHash(((bytes32,uint96,uint48,uint32,uint24,uint56),(bytes32,bytes32),uint256))"
3298 )]
3299 pub struct GetTicketHashCall {
3300 pub redeemable: RedeemableTicket,
3301 }
3302 #[derive(
3304 Clone,
3305 ::ethers::contract::EthCall,
3306 ::ethers::contract::EthDisplay,
3307 serde::Serialize,
3308 serde::Deserialize,
3309 Default,
3310 Debug,
3311 PartialEq,
3312 Eq,
3313 Hash
3314 )]
3315 #[ethcall(
3316 name = "_isWinningTicket",
3317 abi = "_isWinningTicket(bytes32,((bytes32,uint96,uint48,uint32,uint24,uint56),(bytes32,bytes32),uint256),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))"
3318 )]
3319 pub struct IsWinningTicketCall {
3320 pub ticket_hash: [u8; 32],
3321 pub redeemable: RedeemableTicket,
3322 pub params: Vrfparameters,
3323 }
3324 #[derive(
3326 Clone,
3327 ::ethers::contract::EthCall,
3328 ::ethers::contract::EthDisplay,
3329 serde::Serialize,
3330 serde::Deserialize,
3331 Default,
3332 Debug,
3333 PartialEq,
3334 Eq,
3335 Hash
3336 )]
3337 #[ethcall(
3338 name = "canImplementInterfaceForAddress",
3339 abi = "canImplementInterfaceForAddress(bytes32,address)"
3340 )]
3341 pub struct CanImplementInterfaceForAddressCall {
3342 pub interface_hash: [u8; 32],
3343 pub account: ::ethers::core::types::Address,
3344 }
3345 #[derive(
3347 Clone,
3348 ::ethers::contract::EthCall,
3349 ::ethers::contract::EthDisplay,
3350 serde::Serialize,
3351 serde::Deserialize,
3352 Default,
3353 Debug,
3354 PartialEq,
3355 Eq,
3356 Hash
3357 )]
3358 #[ethcall(name = "channels", abi = "channels(bytes32)")]
3359 pub struct ChannelsCall(pub [u8; 32]);
3360 #[derive(
3362 Clone,
3363 ::ethers::contract::EthCall,
3364 ::ethers::contract::EthDisplay,
3365 serde::Serialize,
3366 serde::Deserialize,
3367 Default,
3368 Debug,
3369 PartialEq,
3370 Eq,
3371 Hash
3372 )]
3373 #[ethcall(name = "closeIncomingChannel", abi = "closeIncomingChannel(address)")]
3374 pub struct CloseIncomingChannelCall {
3375 pub source: ::ethers::core::types::Address,
3376 }
3377 #[derive(
3379 Clone,
3380 ::ethers::contract::EthCall,
3381 ::ethers::contract::EthDisplay,
3382 serde::Serialize,
3383 serde::Deserialize,
3384 Default,
3385 Debug,
3386 PartialEq,
3387 Eq,
3388 Hash
3389 )]
3390 #[ethcall(
3391 name = "closeIncomingChannelSafe",
3392 abi = "closeIncomingChannelSafe(address,address)"
3393 )]
3394 pub struct CloseIncomingChannelSafeCall {
3395 pub self_: ::ethers::core::types::Address,
3396 pub source: ::ethers::core::types::Address,
3397 }
3398 #[derive(
3400 Clone,
3401 ::ethers::contract::EthCall,
3402 ::ethers::contract::EthDisplay,
3403 serde::Serialize,
3404 serde::Deserialize,
3405 Default,
3406 Debug,
3407 PartialEq,
3408 Eq,
3409 Hash
3410 )]
3411 #[ethcall(name = "domainSeparator", abi = "domainSeparator()")]
3412 pub struct DomainSeparatorCall;
3413 #[derive(
3415 Clone,
3416 ::ethers::contract::EthCall,
3417 ::ethers::contract::EthDisplay,
3418 serde::Serialize,
3419 serde::Deserialize,
3420 Default,
3421 Debug,
3422 PartialEq,
3423 Eq,
3424 Hash
3425 )]
3426 #[ethcall(
3427 name = "finalizeOutgoingChannelClosure",
3428 abi = "finalizeOutgoingChannelClosure(address)"
3429 )]
3430 pub struct FinalizeOutgoingChannelClosureCall {
3431 pub destination: ::ethers::core::types::Address,
3432 }
3433 #[derive(
3435 Clone,
3436 ::ethers::contract::EthCall,
3437 ::ethers::contract::EthDisplay,
3438 serde::Serialize,
3439 serde::Deserialize,
3440 Default,
3441 Debug,
3442 PartialEq,
3443 Eq,
3444 Hash
3445 )]
3446 #[ethcall(
3447 name = "finalizeOutgoingChannelClosureSafe",
3448 abi = "finalizeOutgoingChannelClosureSafe(address,address)"
3449 )]
3450 pub struct FinalizeOutgoingChannelClosureSafeCall {
3451 pub self_: ::ethers::core::types::Address,
3452 pub destination: ::ethers::core::types::Address,
3453 }
3454 #[derive(
3456 Clone,
3457 ::ethers::contract::EthCall,
3458 ::ethers::contract::EthDisplay,
3459 serde::Serialize,
3460 serde::Deserialize,
3461 Default,
3462 Debug,
3463 PartialEq,
3464 Eq,
3465 Hash
3466 )]
3467 #[ethcall(name = "fundChannel", abi = "fundChannel(address,uint96)")]
3468 pub struct FundChannelCall {
3469 pub account: ::ethers::core::types::Address,
3470 pub amount: u128,
3471 }
3472 #[derive(
3474 Clone,
3475 ::ethers::contract::EthCall,
3476 ::ethers::contract::EthDisplay,
3477 serde::Serialize,
3478 serde::Deserialize,
3479 Default,
3480 Debug,
3481 PartialEq,
3482 Eq,
3483 Hash
3484 )]
3485 #[ethcall(name = "fundChannelSafe", abi = "fundChannelSafe(address,address,uint96)")]
3486 pub struct FundChannelSafeCall {
3487 pub self_: ::ethers::core::types::Address,
3488 pub account: ::ethers::core::types::Address,
3489 pub amount: u128,
3490 }
3491 #[derive(
3493 Clone,
3494 ::ethers::contract::EthCall,
3495 ::ethers::contract::EthDisplay,
3496 serde::Serialize,
3497 serde::Deserialize,
3498 Default,
3499 Debug,
3500 PartialEq,
3501 Eq,
3502 Hash
3503 )]
3504 #[ethcall(
3505 name = "initiateOutgoingChannelClosure",
3506 abi = "initiateOutgoingChannelClosure(address)"
3507 )]
3508 pub struct InitiateOutgoingChannelClosureCall {
3509 pub destination: ::ethers::core::types::Address,
3510 }
3511 #[derive(
3513 Clone,
3514 ::ethers::contract::EthCall,
3515 ::ethers::contract::EthDisplay,
3516 serde::Serialize,
3517 serde::Deserialize,
3518 Default,
3519 Debug,
3520 PartialEq,
3521 Eq,
3522 Hash
3523 )]
3524 #[ethcall(
3525 name = "initiateOutgoingChannelClosureSafe",
3526 abi = "initiateOutgoingChannelClosureSafe(address,address)"
3527 )]
3528 pub struct InitiateOutgoingChannelClosureSafeCall {
3529 pub self_: ::ethers::core::types::Address,
3530 pub destination: ::ethers::core::types::Address,
3531 }
3532 #[derive(
3534 Clone,
3535 ::ethers::contract::EthCall,
3536 ::ethers::contract::EthDisplay,
3537 serde::Serialize,
3538 serde::Deserialize,
3539 Default,
3540 Debug,
3541 PartialEq,
3542 Eq,
3543 Hash
3544 )]
3545 #[ethcall(name = "ledgerDomainSeparator", abi = "ledgerDomainSeparator()")]
3546 pub struct LedgerDomainSeparatorCall;
3547 #[derive(
3549 Clone,
3550 ::ethers::contract::EthCall,
3551 ::ethers::contract::EthDisplay,
3552 serde::Serialize,
3553 serde::Deserialize,
3554 Default,
3555 Debug,
3556 PartialEq,
3557 Eq,
3558 Hash
3559 )]
3560 #[ethcall(name = "multicall", abi = "multicall(bytes[])")]
3561 pub struct MulticallCall {
3562 pub data: ::std::vec::Vec<::ethers::core::types::Bytes>,
3563 }
3564 #[derive(
3566 Clone,
3567 ::ethers::contract::EthCall,
3568 ::ethers::contract::EthDisplay,
3569 serde::Serialize,
3570 serde::Deserialize,
3571 Default,
3572 Debug,
3573 PartialEq,
3574 Eq,
3575 Hash
3576 )]
3577 #[ethcall(name = "noticePeriodChannelClosure", abi = "noticePeriodChannelClosure()")]
3578 pub struct NoticePeriodChannelClosureCall;
3579 #[derive(
3581 Clone,
3582 ::ethers::contract::EthCall,
3583 ::ethers::contract::EthDisplay,
3584 serde::Serialize,
3585 serde::Deserialize,
3586 Default,
3587 Debug,
3588 PartialEq,
3589 Eq,
3590 Hash
3591 )]
3592 #[ethcall(
3593 name = "redeemTicket",
3594 abi = "redeemTicket(((bytes32,uint96,uint48,uint32,uint24,uint56),(bytes32,bytes32),uint256),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))"
3595 )]
3596 pub struct RedeemTicketCall {
3597 pub redeemable: RedeemableTicket,
3598 pub params: Vrfparameters,
3599 }
3600 #[derive(
3602 Clone,
3603 ::ethers::contract::EthCall,
3604 ::ethers::contract::EthDisplay,
3605 serde::Serialize,
3606 serde::Deserialize,
3607 Default,
3608 Debug,
3609 PartialEq,
3610 Eq,
3611 Hash
3612 )]
3613 #[ethcall(
3614 name = "redeemTicketSafe",
3615 abi = "redeemTicketSafe(address,((bytes32,uint96,uint48,uint32,uint24,uint56),(bytes32,bytes32),uint256),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))"
3616 )]
3617 pub struct RedeemTicketSafeCall {
3618 pub self_: ::ethers::core::types::Address,
3619 pub redeemable: RedeemableTicket,
3620 pub params: Vrfparameters,
3621 }
3622 #[derive(
3624 Clone,
3625 ::ethers::contract::EthCall,
3626 ::ethers::contract::EthDisplay,
3627 serde::Serialize,
3628 serde::Deserialize,
3629 Default,
3630 Debug,
3631 PartialEq,
3632 Eq,
3633 Hash
3634 )]
3635 #[ethcall(name = "token", abi = "token()")]
3636 pub struct TokenCall;
3637 #[derive(
3639 Clone,
3640 ::ethers::contract::EthCall,
3641 ::ethers::contract::EthDisplay,
3642 serde::Serialize,
3643 serde::Deserialize,
3644 Default,
3645 Debug,
3646 PartialEq,
3647 Eq,
3648 Hash
3649 )]
3650 #[ethcall(
3651 name = "tokensReceived",
3652 abi = "tokensReceived(address,address,address,uint256,bytes,bytes)"
3653 )]
3654 pub struct TokensReceivedCall {
3655 pub p0: ::ethers::core::types::Address,
3656 pub from: ::ethers::core::types::Address,
3657 pub to: ::ethers::core::types::Address,
3658 pub amount: ::ethers::core::types::U256,
3659 pub user_data: ::ethers::core::types::Bytes,
3660 pub p5: ::ethers::core::types::Bytes,
3661 }
3662 #[derive(
3664 Clone,
3665 ::ethers::contract::EthCall,
3666 ::ethers::contract::EthDisplay,
3667 serde::Serialize,
3668 serde::Deserialize,
3669 Default,
3670 Debug,
3671 PartialEq,
3672 Eq,
3673 Hash
3674 )]
3675 #[ethcall(name = "updateDomainSeparator", abi = "updateDomainSeparator()")]
3676 pub struct UpdateDomainSeparatorCall;
3677 #[derive(
3679 Clone,
3680 ::ethers::contract::EthCall,
3681 ::ethers::contract::EthDisplay,
3682 serde::Serialize,
3683 serde::Deserialize,
3684 Default,
3685 Debug,
3686 PartialEq,
3687 Eq,
3688 Hash
3689 )]
3690 #[ethcall(
3691 name = "updateLedgerDomainSeparator",
3692 abi = "updateLedgerDomainSeparator()"
3693 )]
3694 pub struct UpdateLedgerDomainSeparatorCall;
3695 #[derive(
3697 Clone,
3698 ::ethers::contract::EthAbiType,
3699 serde::Serialize,
3700 serde::Deserialize,
3701 Debug,
3702 PartialEq,
3703 Eq,
3704 Hash
3705 )]
3706 pub enum HoprChannelsCalls {
3707 Erc777HookFundChannelMultiSize(Erc777HookFundChannelMultiSizeCall),
3708 Erc777HookFundChannelSize(Erc777HookFundChannelSizeCall),
3709 LedgerVersion(LedgerVersionCall),
3710 MaxUsedBalance(MaxUsedBalanceCall),
3711 MinUsedBalance(MinUsedBalanceCall),
3712 TokensRecipientInterfaceHash(TokensRecipientInterfaceHashCall),
3713 Version(VersionCall),
3714 CurrentBlockTimestamp(CurrentBlockTimestampCall),
3715 GetChannelId(GetChannelIdCall),
3716 GetTicketHash(GetTicketHashCall),
3717 IsWinningTicket(IsWinningTicketCall),
3718 CanImplementInterfaceForAddress(CanImplementInterfaceForAddressCall),
3719 Channels(ChannelsCall),
3720 CloseIncomingChannel(CloseIncomingChannelCall),
3721 CloseIncomingChannelSafe(CloseIncomingChannelSafeCall),
3722 DomainSeparator(DomainSeparatorCall),
3723 FinalizeOutgoingChannelClosure(FinalizeOutgoingChannelClosureCall),
3724 FinalizeOutgoingChannelClosureSafe(FinalizeOutgoingChannelClosureSafeCall),
3725 FundChannel(FundChannelCall),
3726 FundChannelSafe(FundChannelSafeCall),
3727 InitiateOutgoingChannelClosure(InitiateOutgoingChannelClosureCall),
3728 InitiateOutgoingChannelClosureSafe(InitiateOutgoingChannelClosureSafeCall),
3729 LedgerDomainSeparator(LedgerDomainSeparatorCall),
3730 Multicall(MulticallCall),
3731 NoticePeriodChannelClosure(NoticePeriodChannelClosureCall),
3732 RedeemTicket(RedeemTicketCall),
3733 RedeemTicketSafe(RedeemTicketSafeCall),
3734 Token(TokenCall),
3735 TokensReceived(TokensReceivedCall),
3736 UpdateDomainSeparator(UpdateDomainSeparatorCall),
3737 UpdateLedgerDomainSeparator(UpdateLedgerDomainSeparatorCall),
3738 }
3739 impl ::ethers::core::abi::AbiDecode for HoprChannelsCalls {
3740 fn decode(
3741 data: impl AsRef<[u8]>,
3742 ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
3743 let data = data.as_ref();
3744 if let Ok(decoded) = <Erc777HookFundChannelMultiSizeCall as ::ethers::core::abi::AbiDecode>::decode(
3745 data,
3746 ) {
3747 return Ok(Self::Erc777HookFundChannelMultiSize(decoded));
3748 }
3749 if let Ok(decoded) = <Erc777HookFundChannelSizeCall as ::ethers::core::abi::AbiDecode>::decode(
3750 data,
3751 ) {
3752 return Ok(Self::Erc777HookFundChannelSize(decoded));
3753 }
3754 if let Ok(decoded) = <LedgerVersionCall as ::ethers::core::abi::AbiDecode>::decode(
3755 data,
3756 ) {
3757 return Ok(Self::LedgerVersion(decoded));
3758 }
3759 if let Ok(decoded) = <MaxUsedBalanceCall as ::ethers::core::abi::AbiDecode>::decode(
3760 data,
3761 ) {
3762 return Ok(Self::MaxUsedBalance(decoded));
3763 }
3764 if let Ok(decoded) = <MinUsedBalanceCall as ::ethers::core::abi::AbiDecode>::decode(
3765 data,
3766 ) {
3767 return Ok(Self::MinUsedBalance(decoded));
3768 }
3769 if let Ok(decoded) = <TokensRecipientInterfaceHashCall as ::ethers::core::abi::AbiDecode>::decode(
3770 data,
3771 ) {
3772 return Ok(Self::TokensRecipientInterfaceHash(decoded));
3773 }
3774 if let Ok(decoded) = <VersionCall as ::ethers::core::abi::AbiDecode>::decode(
3775 data,
3776 ) {
3777 return Ok(Self::Version(decoded));
3778 }
3779 if let Ok(decoded) = <CurrentBlockTimestampCall as ::ethers::core::abi::AbiDecode>::decode(
3780 data,
3781 ) {
3782 return Ok(Self::CurrentBlockTimestamp(decoded));
3783 }
3784 if let Ok(decoded) = <GetChannelIdCall as ::ethers::core::abi::AbiDecode>::decode(
3785 data,
3786 ) {
3787 return Ok(Self::GetChannelId(decoded));
3788 }
3789 if let Ok(decoded) = <GetTicketHashCall as ::ethers::core::abi::AbiDecode>::decode(
3790 data,
3791 ) {
3792 return Ok(Self::GetTicketHash(decoded));
3793 }
3794 if let Ok(decoded) = <IsWinningTicketCall as ::ethers::core::abi::AbiDecode>::decode(
3795 data,
3796 ) {
3797 return Ok(Self::IsWinningTicket(decoded));
3798 }
3799 if let Ok(decoded) = <CanImplementInterfaceForAddressCall as ::ethers::core::abi::AbiDecode>::decode(
3800 data,
3801 ) {
3802 return Ok(Self::CanImplementInterfaceForAddress(decoded));
3803 }
3804 if let Ok(decoded) = <ChannelsCall as ::ethers::core::abi::AbiDecode>::decode(
3805 data,
3806 ) {
3807 return Ok(Self::Channels(decoded));
3808 }
3809 if let Ok(decoded) = <CloseIncomingChannelCall as ::ethers::core::abi::AbiDecode>::decode(
3810 data,
3811 ) {
3812 return Ok(Self::CloseIncomingChannel(decoded));
3813 }
3814 if let Ok(decoded) = <CloseIncomingChannelSafeCall as ::ethers::core::abi::AbiDecode>::decode(
3815 data,
3816 ) {
3817 return Ok(Self::CloseIncomingChannelSafe(decoded));
3818 }
3819 if let Ok(decoded) = <DomainSeparatorCall as ::ethers::core::abi::AbiDecode>::decode(
3820 data,
3821 ) {
3822 return Ok(Self::DomainSeparator(decoded));
3823 }
3824 if let Ok(decoded) = <FinalizeOutgoingChannelClosureCall as ::ethers::core::abi::AbiDecode>::decode(
3825 data,
3826 ) {
3827 return Ok(Self::FinalizeOutgoingChannelClosure(decoded));
3828 }
3829 if let Ok(decoded) = <FinalizeOutgoingChannelClosureSafeCall as ::ethers::core::abi::AbiDecode>::decode(
3830 data,
3831 ) {
3832 return Ok(Self::FinalizeOutgoingChannelClosureSafe(decoded));
3833 }
3834 if let Ok(decoded) = <FundChannelCall as ::ethers::core::abi::AbiDecode>::decode(
3835 data,
3836 ) {
3837 return Ok(Self::FundChannel(decoded));
3838 }
3839 if let Ok(decoded) = <FundChannelSafeCall as ::ethers::core::abi::AbiDecode>::decode(
3840 data,
3841 ) {
3842 return Ok(Self::FundChannelSafe(decoded));
3843 }
3844 if let Ok(decoded) = <InitiateOutgoingChannelClosureCall as ::ethers::core::abi::AbiDecode>::decode(
3845 data,
3846 ) {
3847 return Ok(Self::InitiateOutgoingChannelClosure(decoded));
3848 }
3849 if let Ok(decoded) = <InitiateOutgoingChannelClosureSafeCall as ::ethers::core::abi::AbiDecode>::decode(
3850 data,
3851 ) {
3852 return Ok(Self::InitiateOutgoingChannelClosureSafe(decoded));
3853 }
3854 if let Ok(decoded) = <LedgerDomainSeparatorCall as ::ethers::core::abi::AbiDecode>::decode(
3855 data,
3856 ) {
3857 return Ok(Self::LedgerDomainSeparator(decoded));
3858 }
3859 if let Ok(decoded) = <MulticallCall as ::ethers::core::abi::AbiDecode>::decode(
3860 data,
3861 ) {
3862 return Ok(Self::Multicall(decoded));
3863 }
3864 if let Ok(decoded) = <NoticePeriodChannelClosureCall as ::ethers::core::abi::AbiDecode>::decode(
3865 data,
3866 ) {
3867 return Ok(Self::NoticePeriodChannelClosure(decoded));
3868 }
3869 if let Ok(decoded) = <RedeemTicketCall as ::ethers::core::abi::AbiDecode>::decode(
3870 data,
3871 ) {
3872 return Ok(Self::RedeemTicket(decoded));
3873 }
3874 if let Ok(decoded) = <RedeemTicketSafeCall as ::ethers::core::abi::AbiDecode>::decode(
3875 data,
3876 ) {
3877 return Ok(Self::RedeemTicketSafe(decoded));
3878 }
3879 if let Ok(decoded) = <TokenCall as ::ethers::core::abi::AbiDecode>::decode(
3880 data,
3881 ) {
3882 return Ok(Self::Token(decoded));
3883 }
3884 if let Ok(decoded) = <TokensReceivedCall as ::ethers::core::abi::AbiDecode>::decode(
3885 data,
3886 ) {
3887 return Ok(Self::TokensReceived(decoded));
3888 }
3889 if let Ok(decoded) = <UpdateDomainSeparatorCall as ::ethers::core::abi::AbiDecode>::decode(
3890 data,
3891 ) {
3892 return Ok(Self::UpdateDomainSeparator(decoded));
3893 }
3894 if let Ok(decoded) = <UpdateLedgerDomainSeparatorCall as ::ethers::core::abi::AbiDecode>::decode(
3895 data,
3896 ) {
3897 return Ok(Self::UpdateLedgerDomainSeparator(decoded));
3898 }
3899 Err(::ethers::core::abi::Error::InvalidData.into())
3900 }
3901 }
3902 impl ::ethers::core::abi::AbiEncode for HoprChannelsCalls {
3903 fn encode(self) -> Vec<u8> {
3904 match self {
3905 Self::Erc777HookFundChannelMultiSize(element) => {
3906 ::ethers::core::abi::AbiEncode::encode(element)
3907 }
3908 Self::Erc777HookFundChannelSize(element) => {
3909 ::ethers::core::abi::AbiEncode::encode(element)
3910 }
3911 Self::LedgerVersion(element) => {
3912 ::ethers::core::abi::AbiEncode::encode(element)
3913 }
3914 Self::MaxUsedBalance(element) => {
3915 ::ethers::core::abi::AbiEncode::encode(element)
3916 }
3917 Self::MinUsedBalance(element) => {
3918 ::ethers::core::abi::AbiEncode::encode(element)
3919 }
3920 Self::TokensRecipientInterfaceHash(element) => {
3921 ::ethers::core::abi::AbiEncode::encode(element)
3922 }
3923 Self::Version(element) => ::ethers::core::abi::AbiEncode::encode(element),
3924 Self::CurrentBlockTimestamp(element) => {
3925 ::ethers::core::abi::AbiEncode::encode(element)
3926 }
3927 Self::GetChannelId(element) => {
3928 ::ethers::core::abi::AbiEncode::encode(element)
3929 }
3930 Self::GetTicketHash(element) => {
3931 ::ethers::core::abi::AbiEncode::encode(element)
3932 }
3933 Self::IsWinningTicket(element) => {
3934 ::ethers::core::abi::AbiEncode::encode(element)
3935 }
3936 Self::CanImplementInterfaceForAddress(element) => {
3937 ::ethers::core::abi::AbiEncode::encode(element)
3938 }
3939 Self::Channels(element) => {
3940 ::ethers::core::abi::AbiEncode::encode(element)
3941 }
3942 Self::CloseIncomingChannel(element) => {
3943 ::ethers::core::abi::AbiEncode::encode(element)
3944 }
3945 Self::CloseIncomingChannelSafe(element) => {
3946 ::ethers::core::abi::AbiEncode::encode(element)
3947 }
3948 Self::DomainSeparator(element) => {
3949 ::ethers::core::abi::AbiEncode::encode(element)
3950 }
3951 Self::FinalizeOutgoingChannelClosure(element) => {
3952 ::ethers::core::abi::AbiEncode::encode(element)
3953 }
3954 Self::FinalizeOutgoingChannelClosureSafe(element) => {
3955 ::ethers::core::abi::AbiEncode::encode(element)
3956 }
3957 Self::FundChannel(element) => {
3958 ::ethers::core::abi::AbiEncode::encode(element)
3959 }
3960 Self::FundChannelSafe(element) => {
3961 ::ethers::core::abi::AbiEncode::encode(element)
3962 }
3963 Self::InitiateOutgoingChannelClosure(element) => {
3964 ::ethers::core::abi::AbiEncode::encode(element)
3965 }
3966 Self::InitiateOutgoingChannelClosureSafe(element) => {
3967 ::ethers::core::abi::AbiEncode::encode(element)
3968 }
3969 Self::LedgerDomainSeparator(element) => {
3970 ::ethers::core::abi::AbiEncode::encode(element)
3971 }
3972 Self::Multicall(element) => {
3973 ::ethers::core::abi::AbiEncode::encode(element)
3974 }
3975 Self::NoticePeriodChannelClosure(element) => {
3976 ::ethers::core::abi::AbiEncode::encode(element)
3977 }
3978 Self::RedeemTicket(element) => {
3979 ::ethers::core::abi::AbiEncode::encode(element)
3980 }
3981 Self::RedeemTicketSafe(element) => {
3982 ::ethers::core::abi::AbiEncode::encode(element)
3983 }
3984 Self::Token(element) => ::ethers::core::abi::AbiEncode::encode(element),
3985 Self::TokensReceived(element) => {
3986 ::ethers::core::abi::AbiEncode::encode(element)
3987 }
3988 Self::UpdateDomainSeparator(element) => {
3989 ::ethers::core::abi::AbiEncode::encode(element)
3990 }
3991 Self::UpdateLedgerDomainSeparator(element) => {
3992 ::ethers::core::abi::AbiEncode::encode(element)
3993 }
3994 }
3995 }
3996 }
3997 impl ::core::fmt::Display for HoprChannelsCalls {
3998 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3999 match self {
4000 Self::Erc777HookFundChannelMultiSize(element) => {
4001 ::core::fmt::Display::fmt(element, f)
4002 }
4003 Self::Erc777HookFundChannelSize(element) => {
4004 ::core::fmt::Display::fmt(element, f)
4005 }
4006 Self::LedgerVersion(element) => ::core::fmt::Display::fmt(element, f),
4007 Self::MaxUsedBalance(element) => ::core::fmt::Display::fmt(element, f),
4008 Self::MinUsedBalance(element) => ::core::fmt::Display::fmt(element, f),
4009 Self::TokensRecipientInterfaceHash(element) => {
4010 ::core::fmt::Display::fmt(element, f)
4011 }
4012 Self::Version(element) => ::core::fmt::Display::fmt(element, f),
4013 Self::CurrentBlockTimestamp(element) => {
4014 ::core::fmt::Display::fmt(element, f)
4015 }
4016 Self::GetChannelId(element) => ::core::fmt::Display::fmt(element, f),
4017 Self::GetTicketHash(element) => ::core::fmt::Display::fmt(element, f),
4018 Self::IsWinningTicket(element) => ::core::fmt::Display::fmt(element, f),
4019 Self::CanImplementInterfaceForAddress(element) => {
4020 ::core::fmt::Display::fmt(element, f)
4021 }
4022 Self::Channels(element) => ::core::fmt::Display::fmt(element, f),
4023 Self::CloseIncomingChannel(element) => {
4024 ::core::fmt::Display::fmt(element, f)
4025 }
4026 Self::CloseIncomingChannelSafe(element) => {
4027 ::core::fmt::Display::fmt(element, f)
4028 }
4029 Self::DomainSeparator(element) => ::core::fmt::Display::fmt(element, f),
4030 Self::FinalizeOutgoingChannelClosure(element) => {
4031 ::core::fmt::Display::fmt(element, f)
4032 }
4033 Self::FinalizeOutgoingChannelClosureSafe(element) => {
4034 ::core::fmt::Display::fmt(element, f)
4035 }
4036 Self::FundChannel(element) => ::core::fmt::Display::fmt(element, f),
4037 Self::FundChannelSafe(element) => ::core::fmt::Display::fmt(element, f),
4038 Self::InitiateOutgoingChannelClosure(element) => {
4039 ::core::fmt::Display::fmt(element, f)
4040 }
4041 Self::InitiateOutgoingChannelClosureSafe(element) => {
4042 ::core::fmt::Display::fmt(element, f)
4043 }
4044 Self::LedgerDomainSeparator(element) => {
4045 ::core::fmt::Display::fmt(element, f)
4046 }
4047 Self::Multicall(element) => ::core::fmt::Display::fmt(element, f),
4048 Self::NoticePeriodChannelClosure(element) => {
4049 ::core::fmt::Display::fmt(element, f)
4050 }
4051 Self::RedeemTicket(element) => ::core::fmt::Display::fmt(element, f),
4052 Self::RedeemTicketSafe(element) => ::core::fmt::Display::fmt(element, f),
4053 Self::Token(element) => ::core::fmt::Display::fmt(element, f),
4054 Self::TokensReceived(element) => ::core::fmt::Display::fmt(element, f),
4055 Self::UpdateDomainSeparator(element) => {
4056 ::core::fmt::Display::fmt(element, f)
4057 }
4058 Self::UpdateLedgerDomainSeparator(element) => {
4059 ::core::fmt::Display::fmt(element, f)
4060 }
4061 }
4062 }
4063 }
4064 impl ::core::convert::From<Erc777HookFundChannelMultiSizeCall>
4065 for HoprChannelsCalls {
4066 fn from(value: Erc777HookFundChannelMultiSizeCall) -> Self {
4067 Self::Erc777HookFundChannelMultiSize(value)
4068 }
4069 }
4070 impl ::core::convert::From<Erc777HookFundChannelSizeCall> for HoprChannelsCalls {
4071 fn from(value: Erc777HookFundChannelSizeCall) -> Self {
4072 Self::Erc777HookFundChannelSize(value)
4073 }
4074 }
4075 impl ::core::convert::From<LedgerVersionCall> for HoprChannelsCalls {
4076 fn from(value: LedgerVersionCall) -> Self {
4077 Self::LedgerVersion(value)
4078 }
4079 }
4080 impl ::core::convert::From<MaxUsedBalanceCall> for HoprChannelsCalls {
4081 fn from(value: MaxUsedBalanceCall) -> Self {
4082 Self::MaxUsedBalance(value)
4083 }
4084 }
4085 impl ::core::convert::From<MinUsedBalanceCall> for HoprChannelsCalls {
4086 fn from(value: MinUsedBalanceCall) -> Self {
4087 Self::MinUsedBalance(value)
4088 }
4089 }
4090 impl ::core::convert::From<TokensRecipientInterfaceHashCall> for HoprChannelsCalls {
4091 fn from(value: TokensRecipientInterfaceHashCall) -> Self {
4092 Self::TokensRecipientInterfaceHash(value)
4093 }
4094 }
4095 impl ::core::convert::From<VersionCall> for HoprChannelsCalls {
4096 fn from(value: VersionCall) -> Self {
4097 Self::Version(value)
4098 }
4099 }
4100 impl ::core::convert::From<CurrentBlockTimestampCall> for HoprChannelsCalls {
4101 fn from(value: CurrentBlockTimestampCall) -> Self {
4102 Self::CurrentBlockTimestamp(value)
4103 }
4104 }
4105 impl ::core::convert::From<GetChannelIdCall> for HoprChannelsCalls {
4106 fn from(value: GetChannelIdCall) -> Self {
4107 Self::GetChannelId(value)
4108 }
4109 }
4110 impl ::core::convert::From<GetTicketHashCall> for HoprChannelsCalls {
4111 fn from(value: GetTicketHashCall) -> Self {
4112 Self::GetTicketHash(value)
4113 }
4114 }
4115 impl ::core::convert::From<IsWinningTicketCall> for HoprChannelsCalls {
4116 fn from(value: IsWinningTicketCall) -> Self {
4117 Self::IsWinningTicket(value)
4118 }
4119 }
4120 impl ::core::convert::From<CanImplementInterfaceForAddressCall>
4121 for HoprChannelsCalls {
4122 fn from(value: CanImplementInterfaceForAddressCall) -> Self {
4123 Self::CanImplementInterfaceForAddress(value)
4124 }
4125 }
4126 impl ::core::convert::From<ChannelsCall> for HoprChannelsCalls {
4127 fn from(value: ChannelsCall) -> Self {
4128 Self::Channels(value)
4129 }
4130 }
4131 impl ::core::convert::From<CloseIncomingChannelCall> for HoprChannelsCalls {
4132 fn from(value: CloseIncomingChannelCall) -> Self {
4133 Self::CloseIncomingChannel(value)
4134 }
4135 }
4136 impl ::core::convert::From<CloseIncomingChannelSafeCall> for HoprChannelsCalls {
4137 fn from(value: CloseIncomingChannelSafeCall) -> Self {
4138 Self::CloseIncomingChannelSafe(value)
4139 }
4140 }
4141 impl ::core::convert::From<DomainSeparatorCall> for HoprChannelsCalls {
4142 fn from(value: DomainSeparatorCall) -> Self {
4143 Self::DomainSeparator(value)
4144 }
4145 }
4146 impl ::core::convert::From<FinalizeOutgoingChannelClosureCall>
4147 for HoprChannelsCalls {
4148 fn from(value: FinalizeOutgoingChannelClosureCall) -> Self {
4149 Self::FinalizeOutgoingChannelClosure(value)
4150 }
4151 }
4152 impl ::core::convert::From<FinalizeOutgoingChannelClosureSafeCall>
4153 for HoprChannelsCalls {
4154 fn from(value: FinalizeOutgoingChannelClosureSafeCall) -> Self {
4155 Self::FinalizeOutgoingChannelClosureSafe(value)
4156 }
4157 }
4158 impl ::core::convert::From<FundChannelCall> for HoprChannelsCalls {
4159 fn from(value: FundChannelCall) -> Self {
4160 Self::FundChannel(value)
4161 }
4162 }
4163 impl ::core::convert::From<FundChannelSafeCall> for HoprChannelsCalls {
4164 fn from(value: FundChannelSafeCall) -> Self {
4165 Self::FundChannelSafe(value)
4166 }
4167 }
4168 impl ::core::convert::From<InitiateOutgoingChannelClosureCall>
4169 for HoprChannelsCalls {
4170 fn from(value: InitiateOutgoingChannelClosureCall) -> Self {
4171 Self::InitiateOutgoingChannelClosure(value)
4172 }
4173 }
4174 impl ::core::convert::From<InitiateOutgoingChannelClosureSafeCall>
4175 for HoprChannelsCalls {
4176 fn from(value: InitiateOutgoingChannelClosureSafeCall) -> Self {
4177 Self::InitiateOutgoingChannelClosureSafe(value)
4178 }
4179 }
4180 impl ::core::convert::From<LedgerDomainSeparatorCall> for HoprChannelsCalls {
4181 fn from(value: LedgerDomainSeparatorCall) -> Self {
4182 Self::LedgerDomainSeparator(value)
4183 }
4184 }
4185 impl ::core::convert::From<MulticallCall> for HoprChannelsCalls {
4186 fn from(value: MulticallCall) -> Self {
4187 Self::Multicall(value)
4188 }
4189 }
4190 impl ::core::convert::From<NoticePeriodChannelClosureCall> for HoprChannelsCalls {
4191 fn from(value: NoticePeriodChannelClosureCall) -> Self {
4192 Self::NoticePeriodChannelClosure(value)
4193 }
4194 }
4195 impl ::core::convert::From<RedeemTicketCall> for HoprChannelsCalls {
4196 fn from(value: RedeemTicketCall) -> Self {
4197 Self::RedeemTicket(value)
4198 }
4199 }
4200 impl ::core::convert::From<RedeemTicketSafeCall> for HoprChannelsCalls {
4201 fn from(value: RedeemTicketSafeCall) -> Self {
4202 Self::RedeemTicketSafe(value)
4203 }
4204 }
4205 impl ::core::convert::From<TokenCall> for HoprChannelsCalls {
4206 fn from(value: TokenCall) -> Self {
4207 Self::Token(value)
4208 }
4209 }
4210 impl ::core::convert::From<TokensReceivedCall> for HoprChannelsCalls {
4211 fn from(value: TokensReceivedCall) -> Self {
4212 Self::TokensReceived(value)
4213 }
4214 }
4215 impl ::core::convert::From<UpdateDomainSeparatorCall> for HoprChannelsCalls {
4216 fn from(value: UpdateDomainSeparatorCall) -> Self {
4217 Self::UpdateDomainSeparator(value)
4218 }
4219 }
4220 impl ::core::convert::From<UpdateLedgerDomainSeparatorCall> for HoprChannelsCalls {
4221 fn from(value: UpdateLedgerDomainSeparatorCall) -> Self {
4222 Self::UpdateLedgerDomainSeparator(value)
4223 }
4224 }
4225 #[derive(
4227 Clone,
4228 ::ethers::contract::EthAbiType,
4229 ::ethers::contract::EthAbiCodec,
4230 serde::Serialize,
4231 serde::Deserialize,
4232 Default,
4233 Debug,
4234 PartialEq,
4235 Eq,
4236 Hash
4237 )]
4238 pub struct Erc777HookFundChannelMultiSizeReturn(pub ::ethers::core::types::U256);
4239 #[derive(
4241 Clone,
4242 ::ethers::contract::EthAbiType,
4243 ::ethers::contract::EthAbiCodec,
4244 serde::Serialize,
4245 serde::Deserialize,
4246 Default,
4247 Debug,
4248 PartialEq,
4249 Eq,
4250 Hash
4251 )]
4252 pub struct Erc777HookFundChannelSizeReturn(pub ::ethers::core::types::U256);
4253 #[derive(
4255 Clone,
4256 ::ethers::contract::EthAbiType,
4257 ::ethers::contract::EthAbiCodec,
4258 serde::Serialize,
4259 serde::Deserialize,
4260 Default,
4261 Debug,
4262 PartialEq,
4263 Eq,
4264 Hash
4265 )]
4266 pub struct LedgerVersionReturn(pub ::std::string::String);
4267 #[derive(
4269 Clone,
4270 ::ethers::contract::EthAbiType,
4271 ::ethers::contract::EthAbiCodec,
4272 serde::Serialize,
4273 serde::Deserialize,
4274 Default,
4275 Debug,
4276 PartialEq,
4277 Eq,
4278 Hash
4279 )]
4280 pub struct MaxUsedBalanceReturn(pub u128);
4281 #[derive(
4283 Clone,
4284 ::ethers::contract::EthAbiType,
4285 ::ethers::contract::EthAbiCodec,
4286 serde::Serialize,
4287 serde::Deserialize,
4288 Default,
4289 Debug,
4290 PartialEq,
4291 Eq,
4292 Hash
4293 )]
4294 pub struct MinUsedBalanceReturn(pub u128);
4295 #[derive(
4297 Clone,
4298 ::ethers::contract::EthAbiType,
4299 ::ethers::contract::EthAbiCodec,
4300 serde::Serialize,
4301 serde::Deserialize,
4302 Default,
4303 Debug,
4304 PartialEq,
4305 Eq,
4306 Hash
4307 )]
4308 pub struct TokensRecipientInterfaceHashReturn(pub [u8; 32]);
4309 #[derive(
4311 Clone,
4312 ::ethers::contract::EthAbiType,
4313 ::ethers::contract::EthAbiCodec,
4314 serde::Serialize,
4315 serde::Deserialize,
4316 Default,
4317 Debug,
4318 PartialEq,
4319 Eq,
4320 Hash
4321 )]
4322 pub struct VersionReturn(pub ::std::string::String);
4323 #[derive(
4325 Clone,
4326 ::ethers::contract::EthAbiType,
4327 ::ethers::contract::EthAbiCodec,
4328 serde::Serialize,
4329 serde::Deserialize,
4330 Default,
4331 Debug,
4332 PartialEq,
4333 Eq,
4334 Hash
4335 )]
4336 pub struct CurrentBlockTimestampReturn(pub u32);
4337 #[derive(
4339 Clone,
4340 ::ethers::contract::EthAbiType,
4341 ::ethers::contract::EthAbiCodec,
4342 serde::Serialize,
4343 serde::Deserialize,
4344 Default,
4345 Debug,
4346 PartialEq,
4347 Eq,
4348 Hash
4349 )]
4350 pub struct GetChannelIdReturn(pub [u8; 32]);
4351 #[derive(
4353 Clone,
4354 ::ethers::contract::EthAbiType,
4355 ::ethers::contract::EthAbiCodec,
4356 serde::Serialize,
4357 serde::Deserialize,
4358 Default,
4359 Debug,
4360 PartialEq,
4361 Eq,
4362 Hash
4363 )]
4364 pub struct GetTicketHashReturn(pub [u8; 32]);
4365 #[derive(
4367 Clone,
4368 ::ethers::contract::EthAbiType,
4369 ::ethers::contract::EthAbiCodec,
4370 serde::Serialize,
4371 serde::Deserialize,
4372 Default,
4373 Debug,
4374 PartialEq,
4375 Eq,
4376 Hash
4377 )]
4378 pub struct IsWinningTicketReturn(pub bool);
4379 #[derive(
4381 Clone,
4382 ::ethers::contract::EthAbiType,
4383 ::ethers::contract::EthAbiCodec,
4384 serde::Serialize,
4385 serde::Deserialize,
4386 Default,
4387 Debug,
4388 PartialEq,
4389 Eq,
4390 Hash
4391 )]
4392 pub struct CanImplementInterfaceForAddressReturn(pub [u8; 32]);
4393 #[derive(
4395 Clone,
4396 ::ethers::contract::EthAbiType,
4397 ::ethers::contract::EthAbiCodec,
4398 serde::Serialize,
4399 serde::Deserialize,
4400 Default,
4401 Debug,
4402 PartialEq,
4403 Eq,
4404 Hash
4405 )]
4406 pub struct ChannelsReturn {
4407 pub balance: u128,
4408 pub ticket_index: u64,
4409 pub closure_time: u32,
4410 pub epoch: u32,
4411 pub status: u8,
4412 }
4413 #[derive(
4415 Clone,
4416 ::ethers::contract::EthAbiType,
4417 ::ethers::contract::EthAbiCodec,
4418 serde::Serialize,
4419 serde::Deserialize,
4420 Default,
4421 Debug,
4422 PartialEq,
4423 Eq,
4424 Hash
4425 )]
4426 pub struct DomainSeparatorReturn(pub [u8; 32]);
4427 #[derive(
4429 Clone,
4430 ::ethers::contract::EthAbiType,
4431 ::ethers::contract::EthAbiCodec,
4432 serde::Serialize,
4433 serde::Deserialize,
4434 Default,
4435 Debug,
4436 PartialEq,
4437 Eq,
4438 Hash
4439 )]
4440 pub struct LedgerDomainSeparatorReturn(pub [u8; 32]);
4441 #[derive(
4443 Clone,
4444 ::ethers::contract::EthAbiType,
4445 ::ethers::contract::EthAbiCodec,
4446 serde::Serialize,
4447 serde::Deserialize,
4448 Default,
4449 Debug,
4450 PartialEq,
4451 Eq,
4452 Hash
4453 )]
4454 pub struct MulticallReturn {
4455 pub results: ::std::vec::Vec<::ethers::core::types::Bytes>,
4456 }
4457 #[derive(
4459 Clone,
4460 ::ethers::contract::EthAbiType,
4461 ::ethers::contract::EthAbiCodec,
4462 serde::Serialize,
4463 serde::Deserialize,
4464 Default,
4465 Debug,
4466 PartialEq,
4467 Eq,
4468 Hash
4469 )]
4470 pub struct NoticePeriodChannelClosureReturn(pub u32);
4471 #[derive(
4473 Clone,
4474 ::ethers::contract::EthAbiType,
4475 ::ethers::contract::EthAbiCodec,
4476 serde::Serialize,
4477 serde::Deserialize,
4478 Default,
4479 Debug,
4480 PartialEq,
4481 Eq,
4482 Hash
4483 )]
4484 pub struct TokenReturn(pub ::ethers::core::types::Address);
4485 #[derive(
4487 Clone,
4488 ::ethers::contract::EthAbiType,
4489 ::ethers::contract::EthAbiCodec,
4490 serde::Serialize,
4491 serde::Deserialize,
4492 Default,
4493 Debug,
4494 PartialEq,
4495 Eq,
4496 Hash
4497 )]
4498 pub struct RedeemableTicket {
4499 pub data: TicketData,
4500 pub signature: CompactSignature,
4501 pub por_secret: ::ethers::core::types::U256,
4502 }
4503 #[derive(
4505 Clone,
4506 ::ethers::contract::EthAbiType,
4507 ::ethers::contract::EthAbiCodec,
4508 serde::Serialize,
4509 serde::Deserialize,
4510 Default,
4511 Debug,
4512 PartialEq,
4513 Eq,
4514 Hash
4515 )]
4516 pub struct TicketData {
4517 pub channel_id: [u8; 32],
4518 pub amount: u128,
4519 pub ticket_index: u64,
4520 pub index_offset: u32,
4521 pub epoch: u32,
4522 pub win_prob: u64,
4523 }
4524 #[derive(
4526 Clone,
4527 ::ethers::contract::EthAbiType,
4528 ::ethers::contract::EthAbiCodec,
4529 serde::Serialize,
4530 serde::Deserialize,
4531 Default,
4532 Debug,
4533 PartialEq,
4534 Eq,
4535 Hash
4536 )]
4537 pub struct CompactSignature {
4538 pub r: [u8; 32],
4539 pub vs: [u8; 32],
4540 }
4541 #[derive(
4543 Clone,
4544 ::ethers::contract::EthAbiType,
4545 ::ethers::contract::EthAbiCodec,
4546 serde::Serialize,
4547 serde::Deserialize,
4548 Default,
4549 Debug,
4550 PartialEq,
4551 Eq,
4552 Hash
4553 )]
4554 pub struct Vrfparameters {
4555 pub vx: ::ethers::core::types::U256,
4556 pub vy: ::ethers::core::types::U256,
4557 pub s: ::ethers::core::types::U256,
4558 pub h: ::ethers::core::types::U256,
4559 pub s_bx: ::ethers::core::types::U256,
4560 pub s_by: ::ethers::core::types::U256,
4561 pub h_vx: ::ethers::core::types::U256,
4562 pub h_vy: ::ethers::core::types::U256,
4563 }
4564}