1pub use hopr_stake::*;
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_stake {
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("_nftAddress"),
20 kind: ::ethers::core::abi::ethabi::ParamType::Address,
21 internal_type: ::core::option::Option::Some(
22 ::std::borrow::ToOwned::to_owned("address"),
23 ),
24 },
25 ::ethers::core::abi::ethabi::Param {
26 name: ::std::borrow::ToOwned::to_owned("_newOwner"),
27 kind: ::ethers::core::abi::ethabi::ParamType::Address,
28 internal_type: ::core::option::Option::Some(
29 ::std::borrow::ToOwned::to_owned("address"),
30 ),
31 },
32 ::ethers::core::abi::ethabi::Param {
33 name: ::std::borrow::ToOwned::to_owned("_lockToken"),
34 kind: ::ethers::core::abi::ethabi::ParamType::Address,
35 internal_type: ::core::option::Option::Some(
36 ::std::borrow::ToOwned::to_owned("address"),
37 ),
38 },
39 ::ethers::core::abi::ethabi::Param {
40 name: ::std::borrow::ToOwned::to_owned("_rewardToken"),
41 kind: ::ethers::core::abi::ethabi::ParamType::Address,
42 internal_type: ::core::option::Option::Some(
43 ::std::borrow::ToOwned::to_owned("address"),
44 ),
45 },
46 ],
47 }),
48 functions: ::core::convert::From::from([
49 (
50 ::std::borrow::ToOwned::to_owned("BASIC_FACTOR_NUMERATOR"),
51 ::std::vec![
52 ::ethers::core::abi::ethabi::Function {
53 name: ::std::borrow::ToOwned::to_owned(
54 "BASIC_FACTOR_NUMERATOR",
55 ),
56 inputs: ::std::vec![],
57 outputs: ::std::vec![
58 ::ethers::core::abi::ethabi::Param {
59 name: ::std::string::String::new(),
60 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
61 256usize,
62 ),
63 internal_type: ::core::option::Option::Some(
64 ::std::borrow::ToOwned::to_owned("uint256"),
65 ),
66 },
67 ],
68 constant: ::core::option::Option::None,
69 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
70 },
71 ],
72 ),
73 (
74 ::std::borrow::ToOwned::to_owned("BASIC_START"),
75 ::std::vec![
76 ::ethers::core::abi::ethabi::Function {
77 name: ::std::borrow::ToOwned::to_owned("BASIC_START"),
78 inputs: ::std::vec![],
79 outputs: ::std::vec![
80 ::ethers::core::abi::ethabi::Param {
81 name: ::std::string::String::new(),
82 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
83 256usize,
84 ),
85 internal_type: ::core::option::Option::Some(
86 ::std::borrow::ToOwned::to_owned("uint256"),
87 ),
88 },
89 ],
90 constant: ::core::option::Option::None,
91 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
92 },
93 ],
94 ),
95 (
96 ::std::borrow::ToOwned::to_owned("BOOST_CAP"),
97 ::std::vec![
98 ::ethers::core::abi::ethabi::Function {
99 name: ::std::borrow::ToOwned::to_owned("BOOST_CAP"),
100 inputs: ::std::vec![],
101 outputs: ::std::vec![
102 ::ethers::core::abi::ethabi::Param {
103 name: ::std::string::String::new(),
104 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
105 256usize,
106 ),
107 internal_type: ::core::option::Option::Some(
108 ::std::borrow::ToOwned::to_owned("uint256"),
109 ),
110 },
111 ],
112 constant: ::core::option::Option::None,
113 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
114 },
115 ],
116 ),
117 (
118 ::std::borrow::ToOwned::to_owned("FACTOR_DENOMINATOR"),
119 ::std::vec![
120 ::ethers::core::abi::ethabi::Function {
121 name: ::std::borrow::ToOwned::to_owned("FACTOR_DENOMINATOR"),
122 inputs: ::std::vec![],
123 outputs: ::std::vec![
124 ::ethers::core::abi::ethabi::Param {
125 name: ::std::string::String::new(),
126 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
127 256usize,
128 ),
129 internal_type: ::core::option::Option::Some(
130 ::std::borrow::ToOwned::to_owned("uint256"),
131 ),
132 },
133 ],
134 constant: ::core::option::Option::None,
135 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
136 },
137 ],
138 ),
139 (
140 ::std::borrow::ToOwned::to_owned("LOCK_TOKEN"),
141 ::std::vec![
142 ::ethers::core::abi::ethabi::Function {
143 name: ::std::borrow::ToOwned::to_owned("LOCK_TOKEN"),
144 inputs: ::std::vec![],
145 outputs: ::std::vec![
146 ::ethers::core::abi::ethabi::Param {
147 name: ::std::string::String::new(),
148 kind: ::ethers::core::abi::ethabi::ParamType::Address,
149 internal_type: ::core::option::Option::Some(
150 ::std::borrow::ToOwned::to_owned("address"),
151 ),
152 },
153 ],
154 constant: ::core::option::Option::None,
155 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
156 },
157 ],
158 ),
159 (
160 ::std::borrow::ToOwned::to_owned("PROGRAM_END"),
161 ::std::vec![
162 ::ethers::core::abi::ethabi::Function {
163 name: ::std::borrow::ToOwned::to_owned("PROGRAM_END"),
164 inputs: ::std::vec![],
165 outputs: ::std::vec![
166 ::ethers::core::abi::ethabi::Param {
167 name: ::std::string::String::new(),
168 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
169 256usize,
170 ),
171 internal_type: ::core::option::Option::Some(
172 ::std::borrow::ToOwned::to_owned("uint256"),
173 ),
174 },
175 ],
176 constant: ::core::option::Option::None,
177 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
178 },
179 ],
180 ),
181 (
182 ::std::borrow::ToOwned::to_owned("REWARD_TOKEN"),
183 ::std::vec![
184 ::ethers::core::abi::ethabi::Function {
185 name: ::std::borrow::ToOwned::to_owned("REWARD_TOKEN"),
186 inputs: ::std::vec![],
187 outputs: ::std::vec![
188 ::ethers::core::abi::ethabi::Param {
189 name: ::std::string::String::new(),
190 kind: ::ethers::core::abi::ethabi::ParamType::Address,
191 internal_type: ::core::option::Option::Some(
192 ::std::borrow::ToOwned::to_owned("address"),
193 ),
194 },
195 ],
196 constant: ::core::option::Option::None,
197 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
198 },
199 ],
200 ),
201 (
202 ::std::borrow::ToOwned::to_owned("SEED_FACTOR_NUMERATOR"),
203 ::std::vec![
204 ::ethers::core::abi::ethabi::Function {
205 name: ::std::borrow::ToOwned::to_owned(
206 "SEED_FACTOR_NUMERATOR",
207 ),
208 inputs: ::std::vec![],
209 outputs: ::std::vec![
210 ::ethers::core::abi::ethabi::Param {
211 name: ::std::string::String::new(),
212 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
213 256usize,
214 ),
215 internal_type: ::core::option::Option::Some(
216 ::std::borrow::ToOwned::to_owned("uint256"),
217 ),
218 },
219 ],
220 constant: ::core::option::Option::None,
221 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
222 },
223 ],
224 ),
225 (
226 ::std::borrow::ToOwned::to_owned("SEED_START"),
227 ::std::vec![
228 ::ethers::core::abi::ethabi::Function {
229 name: ::std::borrow::ToOwned::to_owned("SEED_START"),
230 inputs: ::std::vec![],
231 outputs: ::std::vec![
232 ::ethers::core::abi::ethabi::Param {
233 name: ::std::string::String::new(),
234 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
235 256usize,
236 ),
237 internal_type: ::core::option::Option::Some(
238 ::std::borrow::ToOwned::to_owned("uint256"),
239 ),
240 },
241 ],
242 constant: ::core::option::Option::None,
243 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
244 },
245 ],
246 ),
247 (
248 ::std::borrow::ToOwned::to_owned("accounts"),
249 ::std::vec![
250 ::ethers::core::abi::ethabi::Function {
251 name: ::std::borrow::ToOwned::to_owned("accounts"),
252 inputs: ::std::vec![
253 ::ethers::core::abi::ethabi::Param {
254 name: ::std::string::String::new(),
255 kind: ::ethers::core::abi::ethabi::ParamType::Address,
256 internal_type: ::core::option::Option::Some(
257 ::std::borrow::ToOwned::to_owned("address"),
258 ),
259 },
260 ],
261 outputs: ::std::vec![
262 ::ethers::core::abi::ethabi::Param {
263 name: ::std::borrow::ToOwned::to_owned(
264 "actualLockedTokenAmount",
265 ),
266 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
267 256usize,
268 ),
269 internal_type: ::core::option::Option::Some(
270 ::std::borrow::ToOwned::to_owned("uint256"),
271 ),
272 },
273 ::ethers::core::abi::ethabi::Param {
274 name: ::std::borrow::ToOwned::to_owned(
275 "virtualLockedTokenAmount",
276 ),
277 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
278 256usize,
279 ),
280 internal_type: ::core::option::Option::Some(
281 ::std::borrow::ToOwned::to_owned("uint256"),
282 ),
283 },
284 ::ethers::core::abi::ethabi::Param {
285 name: ::std::borrow::ToOwned::to_owned("lastSyncTimestamp"),
286 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
287 256usize,
288 ),
289 internal_type: ::core::option::Option::Some(
290 ::std::borrow::ToOwned::to_owned("uint256"),
291 ),
292 },
293 ::ethers::core::abi::ethabi::Param {
294 name: ::std::borrow::ToOwned::to_owned("cumulatedRewards"),
295 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
296 256usize,
297 ),
298 internal_type: ::core::option::Option::Some(
299 ::std::borrow::ToOwned::to_owned("uint256"),
300 ),
301 },
302 ::ethers::core::abi::ethabi::Param {
303 name: ::std::borrow::ToOwned::to_owned("claimedRewards"),
304 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
305 256usize,
306 ),
307 internal_type: ::core::option::Option::Some(
308 ::std::borrow::ToOwned::to_owned("uint256"),
309 ),
310 },
311 ],
312 constant: ::core::option::Option::None,
313 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
314 },
315 ],
316 ),
317 (
318 ::std::borrow::ToOwned::to_owned("availableReward"),
319 ::std::vec![
320 ::ethers::core::abi::ethabi::Function {
321 name: ::std::borrow::ToOwned::to_owned("availableReward"),
322 inputs: ::std::vec![],
323 outputs: ::std::vec![
324 ::ethers::core::abi::ethabi::Param {
325 name: ::std::string::String::new(),
326 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
327 256usize,
328 ),
329 internal_type: ::core::option::Option::Some(
330 ::std::borrow::ToOwned::to_owned("uint256"),
331 ),
332 },
333 ],
334 constant: ::core::option::Option::None,
335 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
336 },
337 ],
338 ),
339 (
340 ::std::borrow::ToOwned::to_owned("claimRewards"),
341 ::std::vec![
342 ::ethers::core::abi::ethabi::Function {
343 name: ::std::borrow::ToOwned::to_owned("claimRewards"),
344 inputs: ::std::vec![
345 ::ethers::core::abi::ethabi::Param {
346 name: ::std::borrow::ToOwned::to_owned("account"),
347 kind: ::ethers::core::abi::ethabi::ParamType::Address,
348 internal_type: ::core::option::Option::Some(
349 ::std::borrow::ToOwned::to_owned("address"),
350 ),
351 },
352 ],
353 outputs: ::std::vec![],
354 constant: ::core::option::Option::None,
355 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
356 },
357 ],
358 ),
359 (
360 ::std::borrow::ToOwned::to_owned("getCumulatedRewardsIncrement"),
361 ::std::vec![
362 ::ethers::core::abi::ethabi::Function {
363 name: ::std::borrow::ToOwned::to_owned(
364 "getCumulatedRewardsIncrement",
365 ),
366 inputs: ::std::vec![
367 ::ethers::core::abi::ethabi::Param {
368 name: ::std::borrow::ToOwned::to_owned("_account"),
369 kind: ::ethers::core::abi::ethabi::ParamType::Address,
370 internal_type: ::core::option::Option::Some(
371 ::std::borrow::ToOwned::to_owned("address"),
372 ),
373 },
374 ],
375 outputs: ::std::vec![
376 ::ethers::core::abi::ethabi::Param {
377 name: ::std::string::String::new(),
378 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
379 256usize,
380 ),
381 internal_type: ::core::option::Option::Some(
382 ::std::borrow::ToOwned::to_owned("uint256"),
383 ),
384 },
385 ],
386 constant: ::core::option::Option::None,
387 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
388 },
389 ],
390 ),
391 (
392 ::std::borrow::ToOwned::to_owned("lock"),
393 ::std::vec![
394 ::ethers::core::abi::ethabi::Function {
395 name: ::std::borrow::ToOwned::to_owned("lock"),
396 inputs: ::std::vec![
397 ::ethers::core::abi::ethabi::Param {
398 name: ::std::borrow::ToOwned::to_owned("investors"),
399 kind: ::ethers::core::abi::ethabi::ParamType::Array(
400 ::std::boxed::Box::new(
401 ::ethers::core::abi::ethabi::ParamType::Address,
402 ),
403 ),
404 internal_type: ::core::option::Option::Some(
405 ::std::borrow::ToOwned::to_owned("address[]"),
406 ),
407 },
408 ::ethers::core::abi::ethabi::Param {
409 name: ::std::borrow::ToOwned::to_owned("caps"),
410 kind: ::ethers::core::abi::ethabi::ParamType::Array(
411 ::std::boxed::Box::new(
412 ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
413 ),
414 ),
415 internal_type: ::core::option::Option::Some(
416 ::std::borrow::ToOwned::to_owned("uint256[]"),
417 ),
418 },
419 ],
420 outputs: ::std::vec![],
421 constant: ::core::option::Option::None,
422 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
423 },
424 ],
425 ),
426 (
427 ::std::borrow::ToOwned::to_owned("nftContract"),
428 ::std::vec![
429 ::ethers::core::abi::ethabi::Function {
430 name: ::std::borrow::ToOwned::to_owned("nftContract"),
431 inputs: ::std::vec![],
432 outputs: ::std::vec![
433 ::ethers::core::abi::ethabi::Param {
434 name: ::std::string::String::new(),
435 kind: ::ethers::core::abi::ethabi::ParamType::Address,
436 internal_type: ::core::option::Option::Some(
437 ::std::borrow::ToOwned::to_owned("contract IHoprBoost"),
438 ),
439 },
440 ],
441 constant: ::core::option::Option::None,
442 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
443 },
444 ],
445 ),
446 (
447 ::std::borrow::ToOwned::to_owned("onERC721Received"),
448 ::std::vec![
449 ::ethers::core::abi::ethabi::Function {
450 name: ::std::borrow::ToOwned::to_owned("onERC721Received"),
451 inputs: ::std::vec![
452 ::ethers::core::abi::ethabi::Param {
453 name: ::std::string::String::new(),
454 kind: ::ethers::core::abi::ethabi::ParamType::Address,
455 internal_type: ::core::option::Option::Some(
456 ::std::borrow::ToOwned::to_owned("address"),
457 ),
458 },
459 ::ethers::core::abi::ethabi::Param {
460 name: ::std::borrow::ToOwned::to_owned("from"),
461 kind: ::ethers::core::abi::ethabi::ParamType::Address,
462 internal_type: ::core::option::Option::Some(
463 ::std::borrow::ToOwned::to_owned("address"),
464 ),
465 },
466 ::ethers::core::abi::ethabi::Param {
467 name: ::std::borrow::ToOwned::to_owned("tokenId"),
468 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
469 256usize,
470 ),
471 internal_type: ::core::option::Option::Some(
472 ::std::borrow::ToOwned::to_owned("uint256"),
473 ),
474 },
475 ::ethers::core::abi::ethabi::Param {
476 name: ::std::string::String::new(),
477 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
478 internal_type: ::core::option::Option::Some(
479 ::std::borrow::ToOwned::to_owned("bytes"),
480 ),
481 },
482 ],
483 outputs: ::std::vec![
484 ::ethers::core::abi::ethabi::Param {
485 name: ::std::string::String::new(),
486 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
487 4usize,
488 ),
489 internal_type: ::core::option::Option::Some(
490 ::std::borrow::ToOwned::to_owned("bytes4"),
491 ),
492 },
493 ],
494 constant: ::core::option::Option::None,
495 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
496 },
497 ],
498 ),
499 (
500 ::std::borrow::ToOwned::to_owned("onTokenTransfer"),
501 ::std::vec![
502 ::ethers::core::abi::ethabi::Function {
503 name: ::std::borrow::ToOwned::to_owned("onTokenTransfer"),
504 inputs: ::std::vec![
505 ::ethers::core::abi::ethabi::Param {
506 name: ::std::borrow::ToOwned::to_owned("_from"),
507 kind: ::ethers::core::abi::ethabi::ParamType::Address,
508 internal_type: ::core::option::Option::Some(
509 ::std::borrow::ToOwned::to_owned("address"),
510 ),
511 },
512 ::ethers::core::abi::ethabi::Param {
513 name: ::std::borrow::ToOwned::to_owned("_value"),
514 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
515 256usize,
516 ),
517 internal_type: ::core::option::Option::Some(
518 ::std::borrow::ToOwned::to_owned("uint256"),
519 ),
520 },
521 ::ethers::core::abi::ethabi::Param {
522 name: ::std::string::String::new(),
523 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
524 internal_type: ::core::option::Option::Some(
525 ::std::borrow::ToOwned::to_owned("bytes"),
526 ),
527 },
528 ],
529 outputs: ::std::vec![
530 ::ethers::core::abi::ethabi::Param {
531 name: ::std::string::String::new(),
532 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
533 internal_type: ::core::option::Option::Some(
534 ::std::borrow::ToOwned::to_owned("bool"),
535 ),
536 },
537 ],
538 constant: ::core::option::Option::None,
539 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
540 },
541 ],
542 ),
543 (
544 ::std::borrow::ToOwned::to_owned("owner"),
545 ::std::vec![
546 ::ethers::core::abi::ethabi::Function {
547 name: ::std::borrow::ToOwned::to_owned("owner"),
548 inputs: ::std::vec![],
549 outputs: ::std::vec![
550 ::ethers::core::abi::ethabi::Param {
551 name: ::std::string::String::new(),
552 kind: ::ethers::core::abi::ethabi::ParamType::Address,
553 internal_type: ::core::option::Option::Some(
554 ::std::borrow::ToOwned::to_owned("address"),
555 ),
556 },
557 ],
558 constant: ::core::option::Option::None,
559 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
560 },
561 ],
562 ),
563 (
564 ::std::borrow::ToOwned::to_owned("reclaimErc20Tokens"),
565 ::std::vec![
566 ::ethers::core::abi::ethabi::Function {
567 name: ::std::borrow::ToOwned::to_owned("reclaimErc20Tokens"),
568 inputs: ::std::vec![
569 ::ethers::core::abi::ethabi::Param {
570 name: ::std::borrow::ToOwned::to_owned("tokenAddress"),
571 kind: ::ethers::core::abi::ethabi::ParamType::Address,
572 internal_type: ::core::option::Option::Some(
573 ::std::borrow::ToOwned::to_owned("address"),
574 ),
575 },
576 ],
577 outputs: ::std::vec![],
578 constant: ::core::option::Option::None,
579 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
580 },
581 ],
582 ),
583 (
584 ::std::borrow::ToOwned::to_owned("reclaimErc721Tokens"),
585 ::std::vec![
586 ::ethers::core::abi::ethabi::Function {
587 name: ::std::borrow::ToOwned::to_owned(
588 "reclaimErc721Tokens",
589 ),
590 inputs: ::std::vec![
591 ::ethers::core::abi::ethabi::Param {
592 name: ::std::borrow::ToOwned::to_owned("tokenAddress"),
593 kind: ::ethers::core::abi::ethabi::ParamType::Address,
594 internal_type: ::core::option::Option::Some(
595 ::std::borrow::ToOwned::to_owned("address"),
596 ),
597 },
598 ::ethers::core::abi::ethabi::Param {
599 name: ::std::borrow::ToOwned::to_owned("tokenId"),
600 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
601 256usize,
602 ),
603 internal_type: ::core::option::Option::Some(
604 ::std::borrow::ToOwned::to_owned("uint256"),
605 ),
606 },
607 ],
608 outputs: ::std::vec![],
609 constant: ::core::option::Option::None,
610 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
611 },
612 ],
613 ),
614 (
615 ::std::borrow::ToOwned::to_owned("redeemedFactor"),
616 ::std::vec![
617 ::ethers::core::abi::ethabi::Function {
618 name: ::std::borrow::ToOwned::to_owned("redeemedFactor"),
619 inputs: ::std::vec![
620 ::ethers::core::abi::ethabi::Param {
621 name: ::std::string::String::new(),
622 kind: ::ethers::core::abi::ethabi::ParamType::Address,
623 internal_type: ::core::option::Option::Some(
624 ::std::borrow::ToOwned::to_owned("address"),
625 ),
626 },
627 ::ethers::core::abi::ethabi::Param {
628 name: ::std::string::String::new(),
629 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
630 256usize,
631 ),
632 internal_type: ::core::option::Option::Some(
633 ::std::borrow::ToOwned::to_owned("uint256"),
634 ),
635 },
636 ],
637 outputs: ::std::vec![
638 ::ethers::core::abi::ethabi::Param {
639 name: ::std::string::String::new(),
640 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
641 256usize,
642 ),
643 internal_type: ::core::option::Option::Some(
644 ::std::borrow::ToOwned::to_owned("uint256"),
645 ),
646 },
647 ],
648 constant: ::core::option::Option::None,
649 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
650 },
651 ],
652 ),
653 (
654 ::std::borrow::ToOwned::to_owned("redeemedFactorIndex"),
655 ::std::vec![
656 ::ethers::core::abi::ethabi::Function {
657 name: ::std::borrow::ToOwned::to_owned(
658 "redeemedFactorIndex",
659 ),
660 inputs: ::std::vec![
661 ::ethers::core::abi::ethabi::Param {
662 name: ::std::string::String::new(),
663 kind: ::ethers::core::abi::ethabi::ParamType::Address,
664 internal_type: ::core::option::Option::Some(
665 ::std::borrow::ToOwned::to_owned("address"),
666 ),
667 },
668 ],
669 outputs: ::std::vec![
670 ::ethers::core::abi::ethabi::Param {
671 name: ::std::string::String::new(),
672 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
673 256usize,
674 ),
675 internal_type: ::core::option::Option::Some(
676 ::std::borrow::ToOwned::to_owned("uint256"),
677 ),
678 },
679 ],
680 constant: ::core::option::Option::None,
681 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
682 },
683 ],
684 ),
685 (
686 ::std::borrow::ToOwned::to_owned("redeemedNft"),
687 ::std::vec![
688 ::ethers::core::abi::ethabi::Function {
689 name: ::std::borrow::ToOwned::to_owned("redeemedNft"),
690 inputs: ::std::vec![
691 ::ethers::core::abi::ethabi::Param {
692 name: ::std::string::String::new(),
693 kind: ::ethers::core::abi::ethabi::ParamType::Address,
694 internal_type: ::core::option::Option::Some(
695 ::std::borrow::ToOwned::to_owned("address"),
696 ),
697 },
698 ::ethers::core::abi::ethabi::Param {
699 name: ::std::string::String::new(),
700 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
701 256usize,
702 ),
703 internal_type: ::core::option::Option::Some(
704 ::std::borrow::ToOwned::to_owned("uint256"),
705 ),
706 },
707 ],
708 outputs: ::std::vec![
709 ::ethers::core::abi::ethabi::Param {
710 name: ::std::string::String::new(),
711 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
712 256usize,
713 ),
714 internal_type: ::core::option::Option::Some(
715 ::std::borrow::ToOwned::to_owned("uint256"),
716 ),
717 },
718 ],
719 constant: ::core::option::Option::None,
720 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
721 },
722 ],
723 ),
724 (
725 ::std::borrow::ToOwned::to_owned("redeemedNftIndex"),
726 ::std::vec![
727 ::ethers::core::abi::ethabi::Function {
728 name: ::std::borrow::ToOwned::to_owned("redeemedNftIndex"),
729 inputs: ::std::vec![
730 ::ethers::core::abi::ethabi::Param {
731 name: ::std::string::String::new(),
732 kind: ::ethers::core::abi::ethabi::ParamType::Address,
733 internal_type: ::core::option::Option::Some(
734 ::std::borrow::ToOwned::to_owned("address"),
735 ),
736 },
737 ],
738 outputs: ::std::vec![
739 ::ethers::core::abi::ethabi::Param {
740 name: ::std::string::String::new(),
741 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
742 256usize,
743 ),
744 internal_type: ::core::option::Option::Some(
745 ::std::borrow::ToOwned::to_owned("uint256"),
746 ),
747 },
748 ],
749 constant: ::core::option::Option::None,
750 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
751 },
752 ],
753 ),
754 (
755 ::std::borrow::ToOwned::to_owned("renounceOwnership"),
756 ::std::vec![
757 ::ethers::core::abi::ethabi::Function {
758 name: ::std::borrow::ToOwned::to_owned("renounceOwnership"),
759 inputs: ::std::vec![],
760 outputs: ::std::vec![],
761 constant: ::core::option::Option::None,
762 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
763 },
764 ],
765 ),
766 (
767 ::std::borrow::ToOwned::to_owned("sync"),
768 ::std::vec![
769 ::ethers::core::abi::ethabi::Function {
770 name: ::std::borrow::ToOwned::to_owned("sync"),
771 inputs: ::std::vec![
772 ::ethers::core::abi::ethabi::Param {
773 name: ::std::borrow::ToOwned::to_owned("account"),
774 kind: ::ethers::core::abi::ethabi::ParamType::Address,
775 internal_type: ::core::option::Option::Some(
776 ::std::borrow::ToOwned::to_owned("address"),
777 ),
778 },
779 ],
780 outputs: ::std::vec![],
781 constant: ::core::option::Option::None,
782 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
783 },
784 ],
785 ),
786 (
787 ::std::borrow::ToOwned::to_owned("tokensReceived"),
788 ::std::vec![
789 ::ethers::core::abi::ethabi::Function {
790 name: ::std::borrow::ToOwned::to_owned("tokensReceived"),
791 inputs: ::std::vec![
792 ::ethers::core::abi::ethabi::Param {
793 name: ::std::string::String::new(),
794 kind: ::ethers::core::abi::ethabi::ParamType::Address,
795 internal_type: ::core::option::Option::Some(
796 ::std::borrow::ToOwned::to_owned("address"),
797 ),
798 },
799 ::ethers::core::abi::ethabi::Param {
800 name: ::std::borrow::ToOwned::to_owned("from"),
801 kind: ::ethers::core::abi::ethabi::ParamType::Address,
802 internal_type: ::core::option::Option::Some(
803 ::std::borrow::ToOwned::to_owned("address"),
804 ),
805 },
806 ::ethers::core::abi::ethabi::Param {
807 name: ::std::borrow::ToOwned::to_owned("to"),
808 kind: ::ethers::core::abi::ethabi::ParamType::Address,
809 internal_type: ::core::option::Option::Some(
810 ::std::borrow::ToOwned::to_owned("address"),
811 ),
812 },
813 ::ethers::core::abi::ethabi::Param {
814 name: ::std::borrow::ToOwned::to_owned("amount"),
815 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
816 256usize,
817 ),
818 internal_type: ::core::option::Option::Some(
819 ::std::borrow::ToOwned::to_owned("uint256"),
820 ),
821 },
822 ::ethers::core::abi::ethabi::Param {
823 name: ::std::string::String::new(),
824 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
825 internal_type: ::core::option::Option::Some(
826 ::std::borrow::ToOwned::to_owned("bytes"),
827 ),
828 },
829 ::ethers::core::abi::ethabi::Param {
830 name: ::std::string::String::new(),
831 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
832 internal_type: ::core::option::Option::Some(
833 ::std::borrow::ToOwned::to_owned("bytes"),
834 ),
835 },
836 ],
837 outputs: ::std::vec![],
838 constant: ::core::option::Option::None,
839 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
840 },
841 ],
842 ),
843 (
844 ::std::borrow::ToOwned::to_owned("totalLocked"),
845 ::std::vec![
846 ::ethers::core::abi::ethabi::Function {
847 name: ::std::borrow::ToOwned::to_owned("totalLocked"),
848 inputs: ::std::vec![],
849 outputs: ::std::vec![
850 ::ethers::core::abi::ethabi::Param {
851 name: ::std::string::String::new(),
852 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
853 256usize,
854 ),
855 internal_type: ::core::option::Option::Some(
856 ::std::borrow::ToOwned::to_owned("uint256"),
857 ),
858 },
859 ],
860 constant: ::core::option::Option::None,
861 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
862 },
863 ],
864 ),
865 (
866 ::std::borrow::ToOwned::to_owned("transferOwnership"),
867 ::std::vec![
868 ::ethers::core::abi::ethabi::Function {
869 name: ::std::borrow::ToOwned::to_owned("transferOwnership"),
870 inputs: ::std::vec![
871 ::ethers::core::abi::ethabi::Param {
872 name: ::std::borrow::ToOwned::to_owned("newOwner"),
873 kind: ::ethers::core::abi::ethabi::ParamType::Address,
874 internal_type: ::core::option::Option::Some(
875 ::std::borrow::ToOwned::to_owned("address"),
876 ),
877 },
878 ],
879 outputs: ::std::vec![],
880 constant: ::core::option::Option::None,
881 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
882 },
883 ],
884 ),
885 (
886 ::std::borrow::ToOwned::to_owned("unlock"),
887 ::std::vec![
888 ::ethers::core::abi::ethabi::Function {
889 name: ::std::borrow::ToOwned::to_owned("unlock"),
890 inputs: ::std::vec![
891 ::ethers::core::abi::ethabi::Param {
892 name: ::std::borrow::ToOwned::to_owned("account"),
893 kind: ::ethers::core::abi::ethabi::ParamType::Address,
894 internal_type: ::core::option::Option::Some(
895 ::std::borrow::ToOwned::to_owned("address"),
896 ),
897 },
898 ],
899 outputs: ::std::vec![],
900 constant: ::core::option::Option::None,
901 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
902 },
903 ],
904 ),
905 ]),
906 events: ::core::convert::From::from([
907 (
908 ::std::borrow::ToOwned::to_owned("Claimed"),
909 ::std::vec![
910 ::ethers::core::abi::ethabi::Event {
911 name: ::std::borrow::ToOwned::to_owned("Claimed"),
912 inputs: ::std::vec![
913 ::ethers::core::abi::ethabi::EventParam {
914 name: ::std::borrow::ToOwned::to_owned("account"),
915 kind: ::ethers::core::abi::ethabi::ParamType::Address,
916 indexed: true,
917 },
918 ::ethers::core::abi::ethabi::EventParam {
919 name: ::std::borrow::ToOwned::to_owned("rewardAmount"),
920 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
921 256usize,
922 ),
923 indexed: true,
924 },
925 ],
926 anonymous: false,
927 },
928 ],
929 ),
930 (
931 ::std::borrow::ToOwned::to_owned("OwnershipTransferred"),
932 ::std::vec![
933 ::ethers::core::abi::ethabi::Event {
934 name: ::std::borrow::ToOwned::to_owned(
935 "OwnershipTransferred",
936 ),
937 inputs: ::std::vec![
938 ::ethers::core::abi::ethabi::EventParam {
939 name: ::std::borrow::ToOwned::to_owned("previousOwner"),
940 kind: ::ethers::core::abi::ethabi::ParamType::Address,
941 indexed: true,
942 },
943 ::ethers::core::abi::ethabi::EventParam {
944 name: ::std::borrow::ToOwned::to_owned("newOwner"),
945 kind: ::ethers::core::abi::ethabi::ParamType::Address,
946 indexed: true,
947 },
948 ],
949 anonymous: false,
950 },
951 ],
952 ),
953 (
954 ::std::borrow::ToOwned::to_owned("Redeemed"),
955 ::std::vec![
956 ::ethers::core::abi::ethabi::Event {
957 name: ::std::borrow::ToOwned::to_owned("Redeemed"),
958 inputs: ::std::vec![
959 ::ethers::core::abi::ethabi::EventParam {
960 name: ::std::borrow::ToOwned::to_owned("account"),
961 kind: ::ethers::core::abi::ethabi::ParamType::Address,
962 indexed: true,
963 },
964 ::ethers::core::abi::ethabi::EventParam {
965 name: ::std::borrow::ToOwned::to_owned("boostTokenId"),
966 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
967 256usize,
968 ),
969 indexed: true,
970 },
971 ::ethers::core::abi::ethabi::EventParam {
972 name: ::std::borrow::ToOwned::to_owned("factorRegistered"),
973 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
974 indexed: true,
975 },
976 ],
977 anonymous: false,
978 },
979 ],
980 ),
981 (
982 ::std::borrow::ToOwned::to_owned("Released"),
983 ::std::vec![
984 ::ethers::core::abi::ethabi::Event {
985 name: ::std::borrow::ToOwned::to_owned("Released"),
986 inputs: ::std::vec![
987 ::ethers::core::abi::ethabi::EventParam {
988 name: ::std::borrow::ToOwned::to_owned("account"),
989 kind: ::ethers::core::abi::ethabi::ParamType::Address,
990 indexed: true,
991 },
992 ::ethers::core::abi::ethabi::EventParam {
993 name: ::std::borrow::ToOwned::to_owned("actualAmount"),
994 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
995 256usize,
996 ),
997 indexed: true,
998 },
999 ::ethers::core::abi::ethabi::EventParam {
1000 name: ::std::borrow::ToOwned::to_owned("virtualAmount"),
1001 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1002 256usize,
1003 ),
1004 indexed: true,
1005 },
1006 ],
1007 anonymous: false,
1008 },
1009 ],
1010 ),
1011 (
1012 ::std::borrow::ToOwned::to_owned("RewardFueled"),
1013 ::std::vec![
1014 ::ethers::core::abi::ethabi::Event {
1015 name: ::std::borrow::ToOwned::to_owned("RewardFueled"),
1016 inputs: ::std::vec![
1017 ::ethers::core::abi::ethabi::EventParam {
1018 name: ::std::borrow::ToOwned::to_owned("amount"),
1019 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1020 256usize,
1021 ),
1022 indexed: true,
1023 },
1024 ],
1025 anonymous: false,
1026 },
1027 ],
1028 ),
1029 (
1030 ::std::borrow::ToOwned::to_owned("Staked"),
1031 ::std::vec![
1032 ::ethers::core::abi::ethabi::Event {
1033 name: ::std::borrow::ToOwned::to_owned("Staked"),
1034 inputs: ::std::vec![
1035 ::ethers::core::abi::ethabi::EventParam {
1036 name: ::std::borrow::ToOwned::to_owned("account"),
1037 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1038 indexed: true,
1039 },
1040 ::ethers::core::abi::ethabi::EventParam {
1041 name: ::std::borrow::ToOwned::to_owned("actualAmount"),
1042 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1043 256usize,
1044 ),
1045 indexed: true,
1046 },
1047 ::ethers::core::abi::ethabi::EventParam {
1048 name: ::std::borrow::ToOwned::to_owned("virtualAmount"),
1049 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1050 256usize,
1051 ),
1052 indexed: true,
1053 },
1054 ],
1055 anonymous: false,
1056 },
1057 ],
1058 ),
1059 (
1060 ::std::borrow::ToOwned::to_owned("Sync"),
1061 ::std::vec![
1062 ::ethers::core::abi::ethabi::Event {
1063 name: ::std::borrow::ToOwned::to_owned("Sync"),
1064 inputs: ::std::vec![
1065 ::ethers::core::abi::ethabi::EventParam {
1066 name: ::std::borrow::ToOwned::to_owned("account"),
1067 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1068 indexed: true,
1069 },
1070 ::ethers::core::abi::ethabi::EventParam {
1071 name: ::std::borrow::ToOwned::to_owned("increment"),
1072 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1073 256usize,
1074 ),
1075 indexed: true,
1076 },
1077 ],
1078 anonymous: false,
1079 },
1080 ],
1081 ),
1082 ]),
1083 errors: ::std::collections::BTreeMap::new(),
1084 receive: false,
1085 fallback: false,
1086 }
1087 }
1088 pub static HOPRSTAKE_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(
1090 __abi,
1091 );
1092 #[rustfmt::skip]
1093 const __BYTECODE: &[u8] = b"`\x80`@R`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x19\x90\x81\x16s\xD0W`J\x14\x98/\xE8\xD8\x8C_\xC2Z\xAC2g\xEA\x14*\x08\x17\x90\x91U`\x03\x80T\x90\x91\x16s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1\x17\x90U4\x80\x15b\0\0YW`\0\x80\xFD[P`@Qb\0#\xA08\x03\x80b\0#\xA0\x839\x81\x01`@\x81\x90Rb\0\0|\x91b\0\x02\xCCV[b\0\0\x873b\0\x01\x8AV[`\x01\x80UF`d\x81\x14b\0\0\xC6W`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x80\x86\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U`\x03\x80T\x92\x85\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U[`\x04\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x87\x16\x17\x90Ub\0\0\xEC\x84b\0\x01\xDAV[`@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\x01fW`\0\x80\xFD[PZ\xF1\x15\x80\x15b\0\x01{W=`\0\x80>=`\0\xFD[PPPPPPPPPb\0\x03)V[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14b\0\x02:W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16b\0\x02\xA1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01b\0\x021V[b\0\x02\xAC\x81b\0\x01\x8AV[PV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x02\xC7W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15b\0\x02\xE3W`\0\x80\xFD[b\0\x02\xEE\x85b\0\x02\xAFV[\x93Pb\0\x02\xFE` \x86\x01b\0\x02\xAFV[\x92Pb\0\x03\x0E`@\x86\x01b\0\x02\xAFV[\x91Pb\0\x03\x1E``\x86\x01b\0\x02\xAFV[\x90P\x92\x95\x91\x94P\x92PV[a g\x80b\0\x039`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xD9W`\x005`\xE0\x1C\x80cp\xAF\t4\x11a\x01\x04W\x80c\xCB\xFF\xA3\xC7\x11a\0\xA2W\x80c\xEF\x05&\xA2\x11a\0qW\x80c\xEF\x05&\xA2\x14a\x04nW\x80c\xEF\\\xFB\x8C\x14a\x04\x7FW\x80c\xF2\x0C\x91$\x14a\x04\x92W\x80c\xF2\xFD\xE3\x8B\x14a\x04\x9DW`\0\x80\xFD[\x80c\xCB\xFF\xA3\xC7\x14a\x04\x1DW\x80c\xD0\xC0-c\x14a\x04(W\x80c\xD0\xDAh\x01\x14a\x04HW\x80c\xD5m\"\x9D\x14a\x04[W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x11a\0\xDEW\x80c\x8D\xA5\xCB[\x14a\x03\xAFW\x80c\x99$\x8E\xA7\x14a\x03\xD4W\x80c\xA4\xC0\xED6\x14a\x03\xE7W\x80c\xA5\x84\x11\x94\x14a\x04\nW`\0\x80\xFD[\x80cp\xAF\t4\x14a\x03iW\x80cqP\x18\xA6\x14a\x03|W\x80c\x81\x12\x8C\x1D\x14a\x03\x84W`\0\x80\xFD[\x80cH\xC6NA\x11a\x01|W\x80c^\\\x06\xE2\x11a\x01KW\x80c^\\\x06\xE2\x14a\x02\xDCW\x80c^\xF7=X\x14a\x03AW\x80c`g\xBC\x15\x14a\x03MW\x80cj\xA8\xD4\xCF\x14a\x03`W`\0\x80\xFD[\x80cH\xC6NA\x14a\x02\xA4W\x80cJ\xD8K4\x14a\x02\xB7W\x80cV\x89\x14\x12\x14a\x02\xC0W\x80c\\<q\xF4\x14a\x02\xC9W`\0\x80\xFD[\x80c\x15\x0Bz\x02\x11a\x01\xB8W\x80c\x15\x0Bz\x02\x14a\x02<W\x80c\x1F\x01M\x83\x14a\x02hW\x80c/lI<\x14a\x02\x88W\x80c/\x99\x84h\x14a\x02\x9BW`\0\x80\xFD[\x80b#\xDE)\x14a\x01\xDEW\x80c\n\x1A%z\x14a\x01\xF3W\x80c\x11#v\xDC\x14a\x021W[`\0\x80\xFD[a\x01\xF1a\x01\xEC6`\x04a\x1BFV[a\x04\xB0V[\0[a\x02\x1Ea\x02\x016`\x04a\x1B\xF1V[`\x05` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x1Eca(\xD3\xC0\x81V[a\x02Oa\x02J6`\x04a\x1C\x1BV[a\x06]V[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01a\x02(V[a\x02\x1Ea\x02v6`\x04a\x1C\x8AV[`\x08` R`\0\x90\x81R`@\x90 T\x81V[a\x01\xF1a\x02\x966`\x04a\x1C\x8AV[a\x0B=V[a\x02\x1Ea\x1Bx\x81V[a\x01\xF1a\x02\xB26`\x04a\x1B\xF1V[a\r+V[a\x02\x1E`\x0BT\x81V[a\x02\x1E`\nT\x81V[a\x01\xF1a\x02\xD76`\x04a\x1C\xEAV[a\x0E=V[a\x03\x19a\x02\xEA6`\x04a\x1C\x8AV[`\t` R`\0\x90\x81R`@\x90 \x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01T\x92\x93\x91\x92\x90\x91\x90\x85V[`@\x80Q\x95\x86R` \x86\x01\x94\x90\x94R\x92\x84\x01\x91\x90\x91R``\x83\x01R`\x80\x82\x01R`\xA0\x01a\x02(V[a\x02\x1Ed\xE8\xD4\xA5\x10\0\x81V[a\x01\xF1a\x03[6`\x04a\x1C\x8AV[a\x0F\xDAV[a\x02\x1Ea\x16\x9B\x81V[a\x02\x1Ea\x03w6`\x04a\x1C\x8AV[a\x11\x8DV[a\x01\xF1a\x11\x9EV[a\x02\x1Ea\x03\x926`\x04a\x1B\xF1V[`\x07` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`\0T`\x01`\x01`\xA0\x1B\x03\x16[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02(V[`\x03Ta\x03\xBC\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03\xFAa\x03\xF56`\x04a\x1DlV[a\x11\xD4V[`@Q\x90\x15\x15\x81R` \x01a\x02(V[a\x01\xF1a\x04\x186`\x04a\x1C\x8AV[a\x12\xFCV[a\x02\x1Eca\xE5hP\x81V[a\x02\x1Ea\x0466`\x04a\x1C\x8AV[`\x06` R`\0\x90\x81R`@\x90 T\x81V[`\x02Ta\x03\xBC\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x04Ta\x03\xBC\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02\x1Ei\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0\x81V[a\x01\xF1a\x04\x8D6`\x04a\x1C\x8AV[a\x13\x08V[a\x02\x1Ec`\xFF\xF5@\x81V[a\x01\xF1a\x04\xAB6`\x04a\x1C\x8AV[a\x13\x1AV[`\x03T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05\x1EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FHoprStake: Sender must be wxHOPR`D\x82\x01Re\x10:7\xB5\xB2\xB7`\xD1\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x160\x14a\x05\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`7`$\x82\x01R\x7FHoprStake: Must be sending token`D\x82\x01R\x7Fs to HoprStake contract\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05\x15V[`\0T`\x01`\x01`\xA0\x1B\x03\x88\x81\x16\x91\x16\x14a\x06\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FHoprStake: Only accept owner to `D\x82\x01Rnprovide rewards`\x88\x1B`d\x82\x01R`\x84\x01a\x05\x15V[\x84`\x0B`\0\x82\x82Ta\x06#\x91\x90a\x1EMV[\x90\x91UPP`@Q\x85\x90\x7F+\xF5+\xCA\xE3\x19`%\x14\xE0/\xF6\x9B\xBEK\x89\xA1\x97\x18\xB9nxg\x04A(\xEC\x87$\x19C|\x90`\0\x90\xA2PPPPPPPPV[`\x04T`\0\x90`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`?`$\x82\x01R\x7FHoprStake: Cannot SafeTransferFr`D\x82\x01R\x7Fom tokens other than HoprBoost.\0`d\x82\x01R`\x84\x01a\x05\x15V[ca\xE5hPB\x11\x15a\x07UW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FHoprStake: Program ended, cannot`D\x82\x01Rn\x1092\xB22\xB2\xB6\x9017\xB7\xB9\xBA9\x97`\x89\x1B`d\x82\x01R`\x84\x01a\x05\x15V[a\x07^\x85a\x13\xB2V[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 `\x06\x80\x84R\x82\x85 \x80T\x86R\x91\x84R\x91\x84 \x89\x90U\x93\x83R\x90R\x81T`\x01\x92\x91\x90a\x07\xA5\x90\x84\x90a\x1EMV[\x90\x91UPP`\x04\x80T`@QcV#\x17\xC5`\xE0\x1B\x81R\x91\x82\x01\x86\x90R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cV#\x17\xC5\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07\xF6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x1A\x91\x90a\x1E`V[`\x04\x80T`@Qc\"[7}`\xE2\x1B\x81R\x91\x82\x01\x88\x90R\x91\x92P`\0\x91\x82\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08jW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x8E\x91\x90a\x1EyV[\x91P\x91P\x80B\x11\x15a\x08\xF5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FHoprStake: Cannot redeem an expi`D\x82\x01Ri92\xB2\x1017\xB7\xB9\xBA\x17`\xB1\x1B`d\x82\x01R`\x84\x01a\x05\x15V[`\x01`\x01`\xA0\x1B\x03\x88\x16`\0\x90\x81R`\x08` R`@\x81 T\x90[\x81\x81\x10\x15a\n\x9FW`\x01`\x01`\xA0\x1B\x03\x8A\x81\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\"[7}`\xE2\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x80W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xA4\x91\x90a\x1EyV[P`\x04\x80T`@QcV#\x17\xC5`\xE0\x1B\x81R\x91\x82\x01\x85\x90R\x91\x92P\x88\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cV#\x17\xC5\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\xF1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\x15\x91\x90a\x1E`V[\x03a\n\x8AW\x85\x81\x10\x15a\nIW`\x01`\x01`\xA0\x1B\x03\x8C\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x90 \x8B\x90U[`@Q\x86\x82\x10\x90\x8C\x90`\x01`\x01`\xA0\x1B\x03\x8F\x16\x90\x7F\x06m\x96\xCB(\x0F\xCC\xF3\xA0\xA3\xA5hif\xA8\x01\xB2i\n2\xEC\x98\xFD'\x11\xA4\xE0\x9F4]\x93]\x90`\0\x90\xA4PPa\n\x9FV[PP\x80\x80a\n\x97\x90a\x1E\x9DV[\x91PPa\t\x10V[\x81\x81\x03a\x0B&W`\x01`\x01`\xA0\x1B\x03\x8A\x16`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x8D\x90U\x92\x82R`\x08\x90R\x90\x81 \x80T`\x01\x92\x90a\n\xE7\x90\x84\x90a\x1EMV[\x90\x91UPP`@Q`\x01\x90\x8A\x90`\x01`\x01`\xA0\x1B\x03\x8D\x16\x90\x7F\x06m\x96\xCB(\x0F\xCC\xF3\xA0\xA3\xA5hif\xA8\x01\xB2i\n2\xEC\x98\xFD'\x11\xA4\xE0\x9F4]\x93]\x90`\0\x90\xA4[Pc\n\x85\xBD\x01`\xE1\x1B\x9A\x99PPPPPPPPPPV[ca\xE5hPB\x11a\x0B\xACW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FHoprStake: Program is ongoing, c`D\x82\x01Rr0\xB777\xBA\x10:\xB767\xB1\xB5\x909\xBA0\xB5\xB2\x97`i\x1B`d\x82\x01R`\x84\x01a\x05\x15V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` R`@\x90 \x80T`\x01\x90\x91\x01Ta\x0B\xD5\x83a\x13\xB2V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x81 \x81\x81U`\x01\x01\x81\x90U`\n\x80T\x84\x92\x90a\x0C\x08\x90\x84\x90a\x1E\xB6V[\x90\x91UPa\x0C\x17\x90P\x83a\x14=V[`\x02Ta\x0C.\x90`\x01`\x01`\xA0\x1B\x03\x16\x84\x84a\x15\xDDV[`\0[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x0C\xEDW`\x04\x80T`\x01`\x01`\xA0\x1B\x03\x86\x81\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 \x88\x84R\x90\x91R\x90\x81\x90 T\x90Qc#\xB8r\xDD`\xE0\x1B\x81R0\x95\x81\x01\x95\x90\x95R`$\x85\x01\x91\x90\x91R`D\x84\x01R\x16\x90c#\xB8r\xDD\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0C\xC2W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xD6W=`\0\x80>=`\0\xFD[PPPP\x80\x80a\x0C\xE5\x90a\x1E\x9DV[\x91PPa\x0C1V[P\x80\x82\x84`\x01`\x01`\xA0\x1B\x03\x16\x7F\x82\xE4\x16\xBAr\xD1\x0Ep\x9B]\xE7\xAC\x16\xF5\xF4\x9F\xF1\xD9O\"\xD5[\xF5\x82\xD3S\xD3\xC3\x13\xA1\xE8\xDD`@Q`@Q\x80\x91\x03\x90\xA4PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\rUW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[`\x02`\x01T\x03a\r\xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x15V[`\x02`\x01U`\x01`\x01`\xA0\x1B\x03\x82\x16c#\xB8r\xDD0a\r\xCE`\0T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x85\x90\x1B\x16\x81R`\x01`\x01`\xA0\x1B\x03\x92\x83\x16`\x04\x82\x01R\x91\x16`$\x82\x01R`D\x81\x01\x84\x90R`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\x1DW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E1W=`\0\x80>=`\0\xFD[PP`\x01\x80UPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0EgW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[ca\xE5hPB\x11\x15a\x0E\x8BW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xFEV[\x82\x81\x14a\x0E\xDAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FHoprStake: Length does not match`D\x82\x01R`d\x01a\x05\x15V[`\0[\x83\x81\x10\x15a\x0F\xD3W`\0\x85\x85\x83\x81\x81\x10a\x0E\xF9Wa\x0E\xF9a\x1FMV[\x90P` \x02\x01` \x81\x01\x90a\x0F\x0E\x91\x90a\x1C\x8AV[\x90Pa\x0F\x19\x81a\x13\xB2V[\x83\x83\x83\x81\x81\x10a\x0F+Wa\x0F+a\x1FMV[\x90P` \x02\x015`\t`\0\x83`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01`\0 `\x01\x01`\0\x82\x82Ta\x0Fi\x91\x90a\x1EMV[\x90\x91UP\x84\x90P\x83\x83\x81\x81\x10a\x0F\x81Wa\x0F\x81a\x1FMV[\x90P` \x02\x015`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x7F\x14I\xC6\xDDxQ\xAB\xC3\n\xBF7\xF5w\x15\xF4\x92\x01\x05\x19\x14|\xC2e/\xBC8 ,\x18\xA6\xEE\x90`@Q`@Q\x80\x91\x03\x90\xA4P\x80a\x0F\xCB\x81a\x1E\x9DV[\x91PPa\x0E\xDDV[PPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x10\x04W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[`\x02`\x01T\x03a\x10VW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x15V[`\x02`\x01\x81\x90UT`\0\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x83\x16\x03a\x10\xF4W`\nT`\x02T`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\xBFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xE3\x91\x90a\x1E`V[a\x10\xED\x91\x90a\x1E\xB6V[\x90Pa\x11_V[`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x118W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\\\x91\x90a\x1E`V[\x90P[a\x11\x85a\x11t`\0T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x83a\x15\xDDV[PP`\x01\x80UV[`\0a\x11\x98\x82a\x164V[\x92\x91PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x11\xC8W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[a\x11\xD2`\0a\x18\x8EV[V[`\x02T`\0\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x12FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FHoprStake: Only accept LOCK_TOKE`D\x82\x01RkN in staking`\xA0\x1B`d\x82\x01R`\x84\x01a\x05\x15V[ca\xE5hPB\x11\x15a\x12jW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xFEV[a\x12s\x84a\x13\xB2V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\t` R`@\x81 \x80T\x85\x92\x90a\x12\x9B\x90\x84\x90a\x1EMV[\x92PP\x81\x90UP\x82`\n`\0\x82\x82Ta\x12\xB4\x91\x90a\x1EMV[\x90\x91UPP`@Q`\0\x90\x84\x90`\x01`\x01`\xA0\x1B\x03\x87\x16\x90\x7F\x14I\xC6\xDDxQ\xAB\xC3\n\xBF7\xF5w\x15\xF4\x92\x01\x05\x19\x14|\xC2e/\xBC8 ,\x18\xA6\xEE\x90\x90\x84\x90\xA4P`\x01[\x93\x92PPPV[a\x13\x05\x81a\x13\xB2V[PV[a\x13\x11\x81a\x13\xB2V[a\x13\x05\x81a\x14=V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x13DW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xA9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x05\x15V[a\x13\x05\x81a\x18\x8EV[`\0a\x13\xBD\x82a\x164V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x81 `\x03\x01\x80T\x92\x93P\x83\x92\x90\x91\x90a\x13\xED\x90\x84\x90a\x1EMV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\t` R`@\x80\x82 B`\x02\x90\x91\x01UQ\x83\x92\x91\x7F\x99\x86\x9D\x96\x8C\xA3X\x1Af\x1F1\xAB\xB3\xA6\xAAp\xCC\xEC\\\xDCI\x85^\xAB\x17L\xF9\xE0\n$b\xDB\x91\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\xA0\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x81\x01T``\x83\x01\x81\x90R`\x04\x90\x91\x01T`\x80\x83\x01\x81\x90R\x91\x92\x91a\x14\xA1\x91a\x1E\xB6V[\x90P`\0\x81\x11a\x14\xF3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FHoprStake: Nothing to claim\0\0\0\0\0`D\x82\x01R`d\x01a\x05\x15V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x90 `\x03\x81\x01T`\x04\x90\x91\x01U`\x0BT\x81\x11\x15a\x15tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FHoprStake: Insufficient reward p`D\x82\x01Rc7\xB7\xB6\x17`\xE1\x1B`d\x82\x01R`\x84\x01a\x05\x15V[\x80`\x0B`\0\x82\x82Ta\x15\x86\x91\x90a\x1E\xB6V[\x90\x91UPP`\x03Ta\x15\xA2\x90`\x01`\x01`\xA0\x1B\x03\x16\x84\x83a\x15\xDDV[`@Q\x81\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xD8\x13\x8F\x8A?7|RY\xCAT\x8Ep\xE4\xC2\xDE\x94\xF1)\xF5\xA1\x106\xA1[iQ<\xBA+Bj\x90`\0\x90\xA3PPPV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16`$\x82\x01R`D\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`d\x90\x91\x01\x90\x91R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16c\xA9\x05\x9C\xBB`\xE0\x1B\x17\x90Ra\x16/\x90\x84\x90a\x18\xDEV[PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\xA0\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x81\x01T``\x83\x01R`\x04\x01T`\x80\x82\x01Rc`\xFF\xF5@B\x11\x15\x80a\x16\xA1WPca\xE5hP\x81`@\x01Q\x10\x15[\x15a\x16\xAFWP`\0\x92\x91PPV[\x80Q`\0\x90a\x16\xC1\x90a\x16\x9B\x90a\x1FcV[\x90P`\0[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x08` R`@\x90 T\x81\x10\x15a\x17\xB9W`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\"[7}`\xE2\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17NW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17r\x91\x90a\x1EyV[P\x85Q\x90\x91P\x81\x90a\x17\x8E\x90i\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0a\x19\xB0V[a\x17\x98\x91\x90a\x1FcV[a\x17\xA2\x90\x85a\x1EMV[\x93PPP\x80\x80a\x17\xB1\x90a\x1E\x9DV[\x91PPa\x16\xC6V[Pd\xE8\xD4\xA5\x10\0a\x17\xE9ca\xE5hPa\x17\xE3ca(\xD3\xC0\x86`@\x01Qa\x19\xC6\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90a\x19\xB0V[a\x17\xFFca\xE5hPa\x17\xE3Bca(\xD3\xC0a\x19\xC6V[a\x18\t\x91\x90a\x1E\xB6V[a\x1Bx\x84` \x01Qa\x18\x1B\x91\x90a\x1FcV[a\x18%\x91\x90a\x1FcV[a\x18Hca\xE5hPa\x17\xE3c`\xFF\xF5@\x87`@\x01Qa\x19\xC6\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x18^ca\xE5hPa\x17\xE3Bc`\xFF\xF5@a\x19\xC6V[a\x18h\x91\x90a\x1E\xB6V[a\x18r\x90\x84a\x1FcV[a\x18|\x91\x90a\x1EMV[a\x18\x86\x91\x90a\x1FzV[\x94\x93PPPPV[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\0a\x193\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\x19\xD6\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x16/W\x80\x80` \x01\x90Q\x81\x01\x90a\x19Q\x91\x90a\x1F\x9CV[a\x16/W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x05\x15V[`\0\x81\x83\x10a\x19\xBFW\x81a\x12\xF5V[P\x90\x91\x90PV[`\0\x81\x83\x10\x15a\x19\xBFW\x81a\x12\xF5V[``a\x18\x86\x84\x84`\0\x85\x85\x84;a\x1A/W`@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\x05\x15V[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa\x1AK\x91\x90a\x1F\xE2V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x1A\x88W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x1A\x8DV[``\x91P[P\x91P\x91Pa\x1A\x9D\x82\x82\x86a\x1A\xA8V[\x97\x96PPPPPPPV[``\x83\x15a\x1A\xB7WP\x81a\x12\xF5V[\x82Q\x15a\x1A\xC7W\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x91\x90a\x1F\xFEV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1A\xF8W`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x1B\x0FW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1B'W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1B?W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a\x1BbW`\0\x80\xFD[a\x1Bk\x89a\x1A\xE1V[\x97Pa\x1By` \x8A\x01a\x1A\xE1V[\x96Pa\x1B\x87`@\x8A\x01a\x1A\xE1V[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1B\xABW`\0\x80\xFD[a\x1B\xB7\x8C\x83\x8D\x01a\x1A\xFDV[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a\x1B\xD0W`\0\x80\xFD[Pa\x1B\xDD\x8B\x82\x8C\x01a\x1A\xFDV[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x1C\x04W`\0\x80\xFD[a\x1C\r\x83a\x1A\xE1V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a\x1C3W`\0\x80\xFD[a\x1C<\x86a\x1A\xE1V[\x94Pa\x1CJ` \x87\x01a\x1A\xE1V[\x93P`@\x86\x015\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1CmW`\0\x80\xFD[a\x1Cy\x88\x82\x89\x01a\x1A\xFDV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1C\x9CW`\0\x80\xFD[a\x12\xF5\x82a\x1A\xE1V[`\0\x80\x83`\x1F\x84\x01\x12a\x1C\xB7W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\xCFW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x1B?W`\0\x80\xFD[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x1D\0W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1D\x18W`\0\x80\xFD[a\x1D$\x88\x83\x89\x01a\x1C\xA5V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x1D=W`\0\x80\xFD[Pa\x1DJ\x87\x82\x88\x01a\x1C\xA5V[\x95\x98\x94\x97P\x95PPPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1D\x81W`\0\x80\xFD[a\x1D\x8A\x84a\x1A\xE1V[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1D\xAEW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x1D\xC2W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x1D\xD4Wa\x1D\xD4a\x1DVV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1D\xFCWa\x1D\xFCa\x1DVV[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x1E\x15W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x11\x98Wa\x11\x98a\x1E7V[`\0` \x82\x84\x03\x12\x15a\x1ErW`\0\x80\xFD[PQ\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1E\x8CW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0`\x01\x82\x01a\x1E\xAFWa\x1E\xAFa\x1E7V[P`\x01\x01\x90V[\x81\x81\x03\x81\x81\x11\x15a\x11\x98Wa\x11\x98a\x1E7V[` \x80\x82R\x81\x81\x01R\x7FOwnable: caller is not the owner`@\x82\x01R``\x01\x90V[` \x80\x82R`/\x90\x82\x01R\x7FHoprStake: Program ended, cannot`@\x82\x01Rn\x109\xBA0\xB5\xB2\x900\xB7<\xB6\xB7\xB92\x97`\x89\x1B``\x82\x01R`\x80\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x11\x98Wa\x11\x98a\x1E7V[`\0\x82a\x1F\x97WcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0` \x82\x84\x03\x12\x15a\x1F\xAEW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x12\xF5W`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x1F\xD9W\x81\x81\x01Q\x83\x82\x01R` \x01a\x1F\xC1V[PP`\0\x91\x01RV[`\0\x82Qa\x1F\xF4\x81\x84` \x87\x01a\x1F\xBEV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra \x1D\x81`@\x85\x01` \x87\x01a\x1F\xBEV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA2dipfsX\"\x12 8>\xDE9A\xC3\x0F\xA7\xDB\x83\xBCt\x13\xEA7\xC8PQUN\xF8\xF2\xF4\xA8\xF3\xA6\xAB\x9A%0N<dsolcC\0\x08\x13\x003";
1094 pub static HOPRSTAKE_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1096 __BYTECODE,
1097 );
1098 #[rustfmt::skip]
1099 const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xD9W`\x005`\xE0\x1C\x80cp\xAF\t4\x11a\x01\x04W\x80c\xCB\xFF\xA3\xC7\x11a\0\xA2W\x80c\xEF\x05&\xA2\x11a\0qW\x80c\xEF\x05&\xA2\x14a\x04nW\x80c\xEF\\\xFB\x8C\x14a\x04\x7FW\x80c\xF2\x0C\x91$\x14a\x04\x92W\x80c\xF2\xFD\xE3\x8B\x14a\x04\x9DW`\0\x80\xFD[\x80c\xCB\xFF\xA3\xC7\x14a\x04\x1DW\x80c\xD0\xC0-c\x14a\x04(W\x80c\xD0\xDAh\x01\x14a\x04HW\x80c\xD5m\"\x9D\x14a\x04[W`\0\x80\xFD[\x80c\x8D\xA5\xCB[\x11a\0\xDEW\x80c\x8D\xA5\xCB[\x14a\x03\xAFW\x80c\x99$\x8E\xA7\x14a\x03\xD4W\x80c\xA4\xC0\xED6\x14a\x03\xE7W\x80c\xA5\x84\x11\x94\x14a\x04\nW`\0\x80\xFD[\x80cp\xAF\t4\x14a\x03iW\x80cqP\x18\xA6\x14a\x03|W\x80c\x81\x12\x8C\x1D\x14a\x03\x84W`\0\x80\xFD[\x80cH\xC6NA\x11a\x01|W\x80c^\\\x06\xE2\x11a\x01KW\x80c^\\\x06\xE2\x14a\x02\xDCW\x80c^\xF7=X\x14a\x03AW\x80c`g\xBC\x15\x14a\x03MW\x80cj\xA8\xD4\xCF\x14a\x03`W`\0\x80\xFD[\x80cH\xC6NA\x14a\x02\xA4W\x80cJ\xD8K4\x14a\x02\xB7W\x80cV\x89\x14\x12\x14a\x02\xC0W\x80c\\<q\xF4\x14a\x02\xC9W`\0\x80\xFD[\x80c\x15\x0Bz\x02\x11a\x01\xB8W\x80c\x15\x0Bz\x02\x14a\x02<W\x80c\x1F\x01M\x83\x14a\x02hW\x80c/lI<\x14a\x02\x88W\x80c/\x99\x84h\x14a\x02\x9BW`\0\x80\xFD[\x80b#\xDE)\x14a\x01\xDEW\x80c\n\x1A%z\x14a\x01\xF3W\x80c\x11#v\xDC\x14a\x021W[`\0\x80\xFD[a\x01\xF1a\x01\xEC6`\x04a\x1BFV[a\x04\xB0V[\0[a\x02\x1Ea\x02\x016`\x04a\x1B\xF1V[`\x05` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02\x1Eca(\xD3\xC0\x81V[a\x02Oa\x02J6`\x04a\x1C\x1BV[a\x06]V[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01a\x02(V[a\x02\x1Ea\x02v6`\x04a\x1C\x8AV[`\x08` R`\0\x90\x81R`@\x90 T\x81V[a\x01\xF1a\x02\x966`\x04a\x1C\x8AV[a\x0B=V[a\x02\x1Ea\x1Bx\x81V[a\x01\xF1a\x02\xB26`\x04a\x1B\xF1V[a\r+V[a\x02\x1E`\x0BT\x81V[a\x02\x1E`\nT\x81V[a\x01\xF1a\x02\xD76`\x04a\x1C\xEAV[a\x0E=V[a\x03\x19a\x02\xEA6`\x04a\x1C\x8AV[`\t` R`\0\x90\x81R`@\x90 \x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x84\x01T`\x04\x90\x94\x01T\x92\x93\x91\x92\x90\x91\x90\x85V[`@\x80Q\x95\x86R` \x86\x01\x94\x90\x94R\x92\x84\x01\x91\x90\x91R``\x83\x01R`\x80\x82\x01R`\xA0\x01a\x02(V[a\x02\x1Ed\xE8\xD4\xA5\x10\0\x81V[a\x01\xF1a\x03[6`\x04a\x1C\x8AV[a\x0F\xDAV[a\x02\x1Ea\x16\x9B\x81V[a\x02\x1Ea\x03w6`\x04a\x1C\x8AV[a\x11\x8DV[a\x01\xF1a\x11\x9EV[a\x02\x1Ea\x03\x926`\x04a\x1B\xF1V[`\x07` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[`\0T`\x01`\x01`\xA0\x1B\x03\x16[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02(V[`\x03Ta\x03\xBC\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03\xFAa\x03\xF56`\x04a\x1DlV[a\x11\xD4V[`@Q\x90\x15\x15\x81R` \x01a\x02(V[a\x01\xF1a\x04\x186`\x04a\x1C\x8AV[a\x12\xFCV[a\x02\x1Eca\xE5hP\x81V[a\x02\x1Ea\x0466`\x04a\x1C\x8AV[`\x06` R`\0\x90\x81R`@\x90 T\x81V[`\x02Ta\x03\xBC\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`\x04Ta\x03\xBC\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02\x1Ei\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0\x81V[a\x01\xF1a\x04\x8D6`\x04a\x1C\x8AV[a\x13\x08V[a\x02\x1Ec`\xFF\xF5@\x81V[a\x01\xF1a\x04\xAB6`\x04a\x1C\x8AV[a\x13\x1AV[`\x03T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05\x1EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FHoprStake: Sender must be wxHOPR`D\x82\x01Re\x10:7\xB5\xB2\xB7`\xD1\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x86\x160\x14a\x05\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`7`$\x82\x01R\x7FHoprStake: Must be sending token`D\x82\x01R\x7Fs to HoprStake contract\0\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x05\x15V[`\0T`\x01`\x01`\xA0\x1B\x03\x88\x81\x16\x91\x16\x14a\x06\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FHoprStake: Only accept owner to `D\x82\x01Rnprovide rewards`\x88\x1B`d\x82\x01R`\x84\x01a\x05\x15V[\x84`\x0B`\0\x82\x82Ta\x06#\x91\x90a\x1EMV[\x90\x91UPP`@Q\x85\x90\x7F+\xF5+\xCA\xE3\x19`%\x14\xE0/\xF6\x9B\xBEK\x89\xA1\x97\x18\xB9nxg\x04A(\xEC\x87$\x19C|\x90`\0\x90\xA2PPPPPPPPV[`\x04T`\0\x90`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xE9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`?`$\x82\x01R\x7FHoprStake: Cannot SafeTransferFr`D\x82\x01R\x7Fom tokens other than HoprBoost.\0`d\x82\x01R`\x84\x01a\x05\x15V[ca\xE5hPB\x11\x15a\x07UW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FHoprStake: Program ended, cannot`D\x82\x01Rn\x1092\xB22\xB2\xB6\x9017\xB7\xB9\xBA9\x97`\x89\x1B`d\x82\x01R`\x84\x01a\x05\x15V[a\x07^\x85a\x13\xB2V[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 `\x06\x80\x84R\x82\x85 \x80T\x86R\x91\x84R\x91\x84 \x89\x90U\x93\x83R\x90R\x81T`\x01\x92\x91\x90a\x07\xA5\x90\x84\x90a\x1EMV[\x90\x91UPP`\x04\x80T`@QcV#\x17\xC5`\xE0\x1B\x81R\x91\x82\x01\x86\x90R`\0\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cV#\x17\xC5\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07\xF6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x1A\x91\x90a\x1E`V[`\x04\x80T`@Qc\"[7}`\xE2\x1B\x81R\x91\x82\x01\x88\x90R\x91\x92P`\0\x91\x82\x91`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08jW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x8E\x91\x90a\x1EyV[\x91P\x91P\x80B\x11\x15a\x08\xF5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FHoprStake: Cannot redeem an expi`D\x82\x01Ri92\xB2\x1017\xB7\xB9\xBA\x17`\xB1\x1B`d\x82\x01R`\x84\x01a\x05\x15V[`\x01`\x01`\xA0\x1B\x03\x88\x16`\0\x90\x81R`\x08` R`@\x81 T\x90[\x81\x81\x10\x15a\n\x9FW`\x01`\x01`\xA0\x1B\x03\x8A\x81\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\"[7}`\xE2\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\x80W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xA4\x91\x90a\x1EyV[P`\x04\x80T`@QcV#\x17\xC5`\xE0\x1B\x81R\x91\x82\x01\x85\x90R\x91\x92P\x88\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cV#\x17\xC5\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\xF1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\x15\x91\x90a\x1E`V[\x03a\n\x8AW\x85\x81\x10\x15a\nIW`\x01`\x01`\xA0\x1B\x03\x8C\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x90 \x8B\x90U[`@Q\x86\x82\x10\x90\x8C\x90`\x01`\x01`\xA0\x1B\x03\x8F\x16\x90\x7F\x06m\x96\xCB(\x0F\xCC\xF3\xA0\xA3\xA5hif\xA8\x01\xB2i\n2\xEC\x98\xFD'\x11\xA4\xE0\x9F4]\x93]\x90`\0\x90\xA4PPa\n\x9FV[PP\x80\x80a\n\x97\x90a\x1E\x9DV[\x91PPa\t\x10V[\x81\x81\x03a\x0B&W`\x01`\x01`\xA0\x1B\x03\x8A\x16`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x8D\x90U\x92\x82R`\x08\x90R\x90\x81 \x80T`\x01\x92\x90a\n\xE7\x90\x84\x90a\x1EMV[\x90\x91UPP`@Q`\x01\x90\x8A\x90`\x01`\x01`\xA0\x1B\x03\x8D\x16\x90\x7F\x06m\x96\xCB(\x0F\xCC\xF3\xA0\xA3\xA5hif\xA8\x01\xB2i\n2\xEC\x98\xFD'\x11\xA4\xE0\x9F4]\x93]\x90`\0\x90\xA4[Pc\n\x85\xBD\x01`\xE1\x1B\x9A\x99PPPPPPPPPPV[ca\xE5hPB\x11a\x0B\xACW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`3`$\x82\x01R\x7FHoprStake: Program is ongoing, c`D\x82\x01Rr0\xB777\xBA\x10:\xB767\xB1\xB5\x909\xBA0\xB5\xB2\x97`i\x1B`d\x82\x01R`\x84\x01a\x05\x15V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` R`@\x90 \x80T`\x01\x90\x91\x01Ta\x0B\xD5\x83a\x13\xB2V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x81 \x81\x81U`\x01\x01\x81\x90U`\n\x80T\x84\x92\x90a\x0C\x08\x90\x84\x90a\x1E\xB6V[\x90\x91UPa\x0C\x17\x90P\x83a\x14=V[`\x02Ta\x0C.\x90`\x01`\x01`\xA0\x1B\x03\x16\x84\x84a\x15\xDDV[`\0[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x0C\xEDW`\x04\x80T`\x01`\x01`\xA0\x1B\x03\x86\x81\x16`\0\x81\x81R`\x05` \x90\x81R`@\x80\x83 \x88\x84R\x90\x91R\x90\x81\x90 T\x90Qc#\xB8r\xDD`\xE0\x1B\x81R0\x95\x81\x01\x95\x90\x95R`$\x85\x01\x91\x90\x91R`D\x84\x01R\x16\x90c#\xB8r\xDD\x90`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0C\xC2W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xD6W=`\0\x80>=`\0\xFD[PPPP\x80\x80a\x0C\xE5\x90a\x1E\x9DV[\x91PPa\x0C1V[P\x80\x82\x84`\x01`\x01`\xA0\x1B\x03\x16\x7F\x82\xE4\x16\xBAr\xD1\x0Ep\x9B]\xE7\xAC\x16\xF5\xF4\x9F\xF1\xD9O\"\xD5[\xF5\x82\xD3S\xD3\xC3\x13\xA1\xE8\xDD`@Q`@Q\x80\x91\x03\x90\xA4PPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\rUW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[`\x02`\x01T\x03a\r\xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x15V[`\x02`\x01U`\x01`\x01`\xA0\x1B\x03\x82\x16c#\xB8r\xDD0a\r\xCE`\0T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`@Q`\x01`\x01`\xE0\x1B\x03\x19`\xE0\x85\x90\x1B\x16\x81R`\x01`\x01`\xA0\x1B\x03\x92\x83\x16`\x04\x82\x01R\x91\x16`$\x82\x01R`D\x81\x01\x84\x90R`d\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a\x0E\x1DW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0E1W=`\0\x80>=`\0\xFD[PP`\x01\x80UPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0EgW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[ca\xE5hPB\x11\x15a\x0E\x8BW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xFEV[\x82\x81\x14a\x0E\xDAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FHoprStake: Length does not match`D\x82\x01R`d\x01a\x05\x15V[`\0[\x83\x81\x10\x15a\x0F\xD3W`\0\x85\x85\x83\x81\x81\x10a\x0E\xF9Wa\x0E\xF9a\x1FMV[\x90P` \x02\x01` \x81\x01\x90a\x0F\x0E\x91\x90a\x1C\x8AV[\x90Pa\x0F\x19\x81a\x13\xB2V[\x83\x83\x83\x81\x81\x10a\x0F+Wa\x0F+a\x1FMV[\x90P` \x02\x015`\t`\0\x83`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01`\0 `\x01\x01`\0\x82\x82Ta\x0Fi\x91\x90a\x1EMV[\x90\x91UP\x84\x90P\x83\x83\x81\x81\x10a\x0F\x81Wa\x0F\x81a\x1FMV[\x90P` \x02\x015`\0\x82`\x01`\x01`\xA0\x1B\x03\x16\x7F\x14I\xC6\xDDxQ\xAB\xC3\n\xBF7\xF5w\x15\xF4\x92\x01\x05\x19\x14|\xC2e/\xBC8 ,\x18\xA6\xEE\x90`@Q`@Q\x80\x91\x03\x90\xA4P\x80a\x0F\xCB\x81a\x1E\x9DV[\x91PPa\x0E\xDDV[PPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x10\x04W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[`\x02`\x01T\x03a\x10VW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x15V[`\x02`\x01\x81\x90UT`\0\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x83\x16\x03a\x10\xF4W`\nT`\x02T`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\xBFW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xE3\x91\x90a\x1E`V[a\x10\xED\x91\x90a\x1E\xB6V[\x90Pa\x11_V[`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x83\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x118W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\\\x91\x90a\x1E`V[\x90P[a\x11\x85a\x11t`\0T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x83a\x15\xDDV[PP`\x01\x80UV[`\0a\x11\x98\x82a\x164V[\x92\x91PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x11\xC8W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[a\x11\xD2`\0a\x18\x8EV[V[`\x02T`\0\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x12FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FHoprStake: Only accept LOCK_TOKE`D\x82\x01RkN in staking`\xA0\x1B`d\x82\x01R`\x84\x01a\x05\x15V[ca\xE5hPB\x11\x15a\x12jW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xFEV[a\x12s\x84a\x13\xB2V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\t` R`@\x81 \x80T\x85\x92\x90a\x12\x9B\x90\x84\x90a\x1EMV[\x92PP\x81\x90UP\x82`\n`\0\x82\x82Ta\x12\xB4\x91\x90a\x1EMV[\x90\x91UPP`@Q`\0\x90\x84\x90`\x01`\x01`\xA0\x1B\x03\x87\x16\x90\x7F\x14I\xC6\xDDxQ\xAB\xC3\n\xBF7\xF5w\x15\xF4\x92\x01\x05\x19\x14|\xC2e/\xBC8 ,\x18\xA6\xEE\x90\x90\x84\x90\xA4P`\x01[\x93\x92PPPV[a\x13\x05\x81a\x13\xB2V[PV[a\x13\x11\x81a\x13\xB2V[a\x13\x05\x81a\x14=V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x13DW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x90a\x1E\xC9V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xA9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x05\x15V[a\x13\x05\x81a\x18\x8EV[`\0a\x13\xBD\x82a\x164V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x81 `\x03\x01\x80T\x92\x93P\x83\x92\x90\x91\x90a\x13\xED\x90\x84\x90a\x1EMV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\t` R`@\x80\x82 B`\x02\x90\x91\x01UQ\x83\x92\x91\x7F\x99\x86\x9D\x96\x8C\xA3X\x1Af\x1F1\xAB\xB3\xA6\xAAp\xCC\xEC\\\xDCI\x85^\xAB\x17L\xF9\xE0\n$b\xDB\x91\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\xA0\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x81\x01T``\x83\x01\x81\x90R`\x04\x90\x91\x01T`\x80\x83\x01\x81\x90R\x91\x92\x91a\x14\xA1\x91a\x1E\xB6V[\x90P`\0\x81\x11a\x14\xF3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FHoprStake: Nothing to claim\0\0\0\0\0`D\x82\x01R`d\x01a\x05\x15V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x90 `\x03\x81\x01T`\x04\x90\x91\x01U`\x0BT\x81\x11\x15a\x15tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FHoprStake: Insufficient reward p`D\x82\x01Rc7\xB7\xB6\x17`\xE1\x1B`d\x82\x01R`\x84\x01a\x05\x15V[\x80`\x0B`\0\x82\x82Ta\x15\x86\x91\x90a\x1E\xB6V[\x90\x91UPP`\x03Ta\x15\xA2\x90`\x01`\x01`\xA0\x1B\x03\x16\x84\x83a\x15\xDDV[`@Q\x81\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x7F\xD8\x13\x8F\x8A?7|RY\xCAT\x8Ep\xE4\xC2\xDE\x94\xF1)\xF5\xA1\x106\xA1[iQ<\xBA+Bj\x90`\0\x90\xA3PPPV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16`$\x82\x01R`D\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`d\x90\x91\x01\x90\x91R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16c\xA9\x05\x9C\xBB`\xE0\x1B\x17\x90Ra\x16/\x90\x84\x90a\x18\xDEV[PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\xA0\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x81\x01T``\x83\x01R`\x04\x01T`\x80\x82\x01Rc`\xFF\xF5@B\x11\x15\x80a\x16\xA1WPca\xE5hP\x81`@\x01Q\x10\x15[\x15a\x16\xAFWP`\0\x92\x91PPV[\x80Q`\0\x90a\x16\xC1\x90a\x16\x9B\x90a\x1FcV[\x90P`\0[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x08` R`@\x90 T\x81\x10\x15a\x17\xB9W`\x01`\x01`\xA0\x1B\x03\x85\x81\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\"[7}`\xE2\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x17NW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x17r\x91\x90a\x1EyV[P\x85Q\x90\x91P\x81\x90a\x17\x8E\x90i\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0a\x19\xB0V[a\x17\x98\x91\x90a\x1FcV[a\x17\xA2\x90\x85a\x1EMV[\x93PPP\x80\x80a\x17\xB1\x90a\x1E\x9DV[\x91PPa\x16\xC6V[Pd\xE8\xD4\xA5\x10\0a\x17\xE9ca\xE5hPa\x17\xE3ca(\xD3\xC0\x86`@\x01Qa\x19\xC6\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90a\x19\xB0V[a\x17\xFFca\xE5hPa\x17\xE3Bca(\xD3\xC0a\x19\xC6V[a\x18\t\x91\x90a\x1E\xB6V[a\x1Bx\x84` \x01Qa\x18\x1B\x91\x90a\x1FcV[a\x18%\x91\x90a\x1FcV[a\x18Hca\xE5hPa\x17\xE3c`\xFF\xF5@\x87`@\x01Qa\x19\xC6\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x18^ca\xE5hPa\x17\xE3Bc`\xFF\xF5@a\x19\xC6V[a\x18h\x91\x90a\x1E\xB6V[a\x18r\x90\x84a\x1FcV[a\x18|\x91\x90a\x1EMV[a\x18\x86\x91\x90a\x1FzV[\x94\x93PPPPV[`\0\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x84U`@Q\x91\x90\x92\x16\x92\x83\x91\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x91\x90\xA3PPV[`\0a\x193\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\x19\xD6\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x16/W\x80\x80` \x01\x90Q\x81\x01\x90a\x19Q\x91\x90a\x1F\x9CV[a\x16/W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x05\x15V[`\0\x81\x83\x10a\x19\xBFW\x81a\x12\xF5V[P\x90\x91\x90PV[`\0\x81\x83\x10\x15a\x19\xBFW\x81a\x12\xF5V[``a\x18\x86\x84\x84`\0\x85\x85\x84;a\x1A/W`@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\x05\x15V[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa\x1AK\x91\x90a\x1F\xE2V[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x1A\x88W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x1A\x8DV[``\x91P[P\x91P\x91Pa\x1A\x9D\x82\x82\x86a\x1A\xA8V[\x97\x96PPPPPPPV[``\x83\x15a\x1A\xB7WP\x81a\x12\xF5V[\x82Q\x15a\x1A\xC7W\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x15\x91\x90a\x1F\xFEV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1A\xF8W`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x1B\x0FW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1B'W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1B?W`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a\x1BbW`\0\x80\xFD[a\x1Bk\x89a\x1A\xE1V[\x97Pa\x1By` \x8A\x01a\x1A\xE1V[\x96Pa\x1B\x87`@\x8A\x01a\x1A\xE1V[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1B\xABW`\0\x80\xFD[a\x1B\xB7\x8C\x83\x8D\x01a\x1A\xFDV[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a\x1B\xD0W`\0\x80\xFD[Pa\x1B\xDD\x8B\x82\x8C\x01a\x1A\xFDV[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x1C\x04W`\0\x80\xFD[a\x1C\r\x83a\x1A\xE1V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a\x1C3W`\0\x80\xFD[a\x1C<\x86a\x1A\xE1V[\x94Pa\x1CJ` \x87\x01a\x1A\xE1V[\x93P`@\x86\x015\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1CmW`\0\x80\xFD[a\x1Cy\x88\x82\x89\x01a\x1A\xFDV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a\x1C\x9CW`\0\x80\xFD[a\x12\xF5\x82a\x1A\xE1V[`\0\x80\x83`\x1F\x84\x01\x12a\x1C\xB7W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1C\xCFW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x1B?W`\0\x80\xFD[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x1D\0W`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1D\x18W`\0\x80\xFD[a\x1D$\x88\x83\x89\x01a\x1C\xA5V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x1D=W`\0\x80\xFD[Pa\x1DJ\x87\x82\x88\x01a\x1C\xA5V[\x95\x98\x94\x97P\x95PPPPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15a\x1D\x81W`\0\x80\xFD[a\x1D\x8A\x84a\x1A\xE1V[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x1D\xAEW`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12a\x1D\xC2W`\0\x80\xFD[\x815\x81\x81\x11\x15a\x1D\xD4Wa\x1D\xD4a\x1DVV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x1D\xFCWa\x1D\xFCa\x1DVV[\x81`@R\x82\x81R\x89` \x84\x87\x01\x01\x11\x15a\x1E\x15W`\0\x80\xFD[\x82` \x86\x01` \x83\x017`\0` \x84\x83\x01\x01R\x80\x95PPPPPP\x92P\x92P\x92V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x11\x98Wa\x11\x98a\x1E7V[`\0` \x82\x84\x03\x12\x15a\x1ErW`\0\x80\xFD[PQ\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a\x1E\x8CW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0`\x01\x82\x01a\x1E\xAFWa\x1E\xAFa\x1E7V[P`\x01\x01\x90V[\x81\x81\x03\x81\x81\x11\x15a\x11\x98Wa\x11\x98a\x1E7V[` \x80\x82R\x81\x81\x01R\x7FOwnable: caller is not the owner`@\x82\x01R``\x01\x90V[` \x80\x82R`/\x90\x82\x01R\x7FHoprStake: Program ended, cannot`@\x82\x01Rn\x109\xBA0\xB5\xB2\x900\xB7<\xB6\xB7\xB92\x97`\x89\x1B``\x82\x01R`\x80\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x11\x98Wa\x11\x98a\x1E7V[`\0\x82a\x1F\x97WcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[`\0` \x82\x84\x03\x12\x15a\x1F\xAEW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x12\xF5W`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x1F\xD9W\x81\x81\x01Q\x83\x82\x01R` \x01a\x1F\xC1V[PP`\0\x91\x01RV[`\0\x82Qa\x1F\xF4\x81\x84` \x87\x01a\x1F\xBEV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra \x1D\x81`@\x85\x01` \x87\x01a\x1F\xBEV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA2dipfsX\"\x12 8>\xDE9A\xC3\x0F\xA7\xDB\x83\xBCt\x13\xEA7\xC8PQUN\xF8\xF2\xF4\xA8\xF3\xA6\xAB\x9A%0N<dsolcC\0\x08\x13\x003";
1100 pub static HOPRSTAKE_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1102 __DEPLOYED_BYTECODE,
1103 );
1104 pub struct HoprStake<M>(::ethers::contract::Contract<M>);
1105 impl<M> ::core::clone::Clone for HoprStake<M> {
1106 fn clone(&self) -> Self {
1107 Self(::core::clone::Clone::clone(&self.0))
1108 }
1109 }
1110 impl<M> ::core::ops::Deref for HoprStake<M> {
1111 type Target = ::ethers::contract::Contract<M>;
1112 fn deref(&self) -> &Self::Target {
1113 &self.0
1114 }
1115 }
1116 impl<M> ::core::ops::DerefMut for HoprStake<M> {
1117 fn deref_mut(&mut self) -> &mut Self::Target {
1118 &mut self.0
1119 }
1120 }
1121 impl<M> ::core::fmt::Debug for HoprStake<M> {
1122 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1123 f.debug_tuple(::core::stringify!(HoprStake)).field(&self.address()).finish()
1124 }
1125 }
1126 impl<M: ::ethers::providers::Middleware> HoprStake<M> {
1127 pub fn new<T: Into<::ethers::core::types::Address>>(
1130 address: T,
1131 client: ::std::sync::Arc<M>,
1132 ) -> Self {
1133 Self(
1134 ::ethers::contract::Contract::new(
1135 address.into(),
1136 HOPRSTAKE_ABI.clone(),
1137 client,
1138 ),
1139 )
1140 }
1141 pub fn deploy<T: ::ethers::core::abi::Tokenize>(
1165 client: ::std::sync::Arc<M>,
1166 constructor_args: T,
1167 ) -> ::core::result::Result<
1168 ::ethers::contract::builders::ContractDeployer<M, Self>,
1169 ::ethers::contract::ContractError<M>,
1170 > {
1171 let factory = ::ethers::contract::ContractFactory::new(
1172 HOPRSTAKE_ABI.clone(),
1173 HOPRSTAKE_BYTECODE.clone().into(),
1174 client,
1175 );
1176 let deployer = factory.deploy(constructor_args)?;
1177 let deployer = ::ethers::contract::ContractDeployer::new(deployer);
1178 Ok(deployer)
1179 }
1180 pub fn basic_factor_numerator(
1182 &self,
1183 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1184 self.0
1185 .method_hash([106, 168, 212, 207], ())
1186 .expect("method not found (this should never happen)")
1187 }
1188 pub fn basic_start(
1190 &self,
1191 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1192 self.0
1193 .method_hash([242, 12, 145, 36], ())
1194 .expect("method not found (this should never happen)")
1195 }
1196 pub fn boost_cap(
1198 &self,
1199 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1200 self.0
1201 .method_hash([239, 5, 38, 162], ())
1202 .expect("method not found (this should never happen)")
1203 }
1204 pub fn factor_denominator(
1206 &self,
1207 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1208 self.0
1209 .method_hash([94, 247, 61, 88], ())
1210 .expect("method not found (this should never happen)")
1211 }
1212 pub fn lock_token(
1214 &self,
1215 ) -> ::ethers::contract::builders::ContractCall<
1216 M,
1217 ::ethers::core::types::Address,
1218 > {
1219 self.0
1220 .method_hash([208, 218, 104, 1], ())
1221 .expect("method not found (this should never happen)")
1222 }
1223 pub fn program_end(
1225 &self,
1226 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1227 self.0
1228 .method_hash([203, 255, 163, 199], ())
1229 .expect("method not found (this should never happen)")
1230 }
1231 pub fn reward_token(
1233 &self,
1234 ) -> ::ethers::contract::builders::ContractCall<
1235 M,
1236 ::ethers::core::types::Address,
1237 > {
1238 self.0
1239 .method_hash([153, 36, 142, 167], ())
1240 .expect("method not found (this should never happen)")
1241 }
1242 pub fn seed_factor_numerator(
1244 &self,
1245 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1246 self.0
1247 .method_hash([47, 153, 132, 104], ())
1248 .expect("method not found (this should never happen)")
1249 }
1250 pub fn seed_start(
1252 &self,
1253 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1254 self.0
1255 .method_hash([17, 35, 118, 220], ())
1256 .expect("method not found (this should never happen)")
1257 }
1258 pub fn accounts(
1260 &self,
1261 p0: ::ethers::core::types::Address,
1262 ) -> ::ethers::contract::builders::ContractCall<
1263 M,
1264 (
1265 ::ethers::core::types::U256,
1266 ::ethers::core::types::U256,
1267 ::ethers::core::types::U256,
1268 ::ethers::core::types::U256,
1269 ::ethers::core::types::U256,
1270 ),
1271 > {
1272 self.0
1273 .method_hash([94, 92, 6, 226], p0)
1274 .expect("method not found (this should never happen)")
1275 }
1276 pub fn available_reward(
1278 &self,
1279 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1280 self.0
1281 .method_hash([74, 216, 75, 52], ())
1282 .expect("method not found (this should never happen)")
1283 }
1284 pub fn claim_rewards(
1286 &self,
1287 account: ::ethers::core::types::Address,
1288 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1289 self.0
1290 .method_hash([239, 92, 251, 140], account)
1291 .expect("method not found (this should never happen)")
1292 }
1293 pub fn get_cumulated_rewards_increment(
1295 &self,
1296 account: ::ethers::core::types::Address,
1297 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1298 self.0
1299 .method_hash([112, 175, 9, 52], account)
1300 .expect("method not found (this should never happen)")
1301 }
1302 pub fn lock(
1304 &self,
1305 investors: ::std::vec::Vec<::ethers::core::types::Address>,
1306 caps: ::std::vec::Vec<::ethers::core::types::U256>,
1307 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1308 self.0
1309 .method_hash([92, 60, 113, 244], (investors, caps))
1310 .expect("method not found (this should never happen)")
1311 }
1312 pub fn nft_contract(
1314 &self,
1315 ) -> ::ethers::contract::builders::ContractCall<
1316 M,
1317 ::ethers::core::types::Address,
1318 > {
1319 self.0
1320 .method_hash([213, 109, 34, 157], ())
1321 .expect("method not found (this should never happen)")
1322 }
1323 pub fn on_erc721_received(
1325 &self,
1326 p0: ::ethers::core::types::Address,
1327 from: ::ethers::core::types::Address,
1328 token_id: ::ethers::core::types::U256,
1329 p3: ::ethers::core::types::Bytes,
1330 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
1331 self.0
1332 .method_hash([21, 11, 122, 2], (p0, from, token_id, p3))
1333 .expect("method not found (this should never happen)")
1334 }
1335 pub fn on_token_transfer(
1337 &self,
1338 from: ::ethers::core::types::Address,
1339 value: ::ethers::core::types::U256,
1340 p2: ::ethers::core::types::Bytes,
1341 ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1342 self.0
1343 .method_hash([164, 192, 237, 54], (from, value, p2))
1344 .expect("method not found (this should never happen)")
1345 }
1346 pub fn owner(
1348 &self,
1349 ) -> ::ethers::contract::builders::ContractCall<
1350 M,
1351 ::ethers::core::types::Address,
1352 > {
1353 self.0
1354 .method_hash([141, 165, 203, 91], ())
1355 .expect("method not found (this should never happen)")
1356 }
1357 pub fn reclaim_erc_20_tokens(
1359 &self,
1360 token_address: ::ethers::core::types::Address,
1361 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1362 self.0
1363 .method_hash([96, 103, 188, 21], token_address)
1364 .expect("method not found (this should never happen)")
1365 }
1366 pub fn reclaim_erc_721_tokens(
1368 &self,
1369 token_address: ::ethers::core::types::Address,
1370 token_id: ::ethers::core::types::U256,
1371 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1372 self.0
1373 .method_hash([72, 198, 78, 65], (token_address, token_id))
1374 .expect("method not found (this should never happen)")
1375 }
1376 pub fn redeemed_factor(
1378 &self,
1379 p0: ::ethers::core::types::Address,
1380 p1: ::ethers::core::types::U256,
1381 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1382 self.0
1383 .method_hash([129, 18, 140, 29], (p0, p1))
1384 .expect("method not found (this should never happen)")
1385 }
1386 pub fn redeemed_factor_index(
1388 &self,
1389 p0: ::ethers::core::types::Address,
1390 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1391 self.0
1392 .method_hash([31, 1, 77, 131], p0)
1393 .expect("method not found (this should never happen)")
1394 }
1395 pub fn redeemed_nft(
1397 &self,
1398 p0: ::ethers::core::types::Address,
1399 p1: ::ethers::core::types::U256,
1400 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1401 self.0
1402 .method_hash([10, 26, 37, 122], (p0, p1))
1403 .expect("method not found (this should never happen)")
1404 }
1405 pub fn redeemed_nft_index(
1407 &self,
1408 p0: ::ethers::core::types::Address,
1409 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1410 self.0
1411 .method_hash([208, 192, 45, 99], p0)
1412 .expect("method not found (this should never happen)")
1413 }
1414 pub fn renounce_ownership(
1416 &self,
1417 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1418 self.0
1419 .method_hash([113, 80, 24, 166], ())
1420 .expect("method not found (this should never happen)")
1421 }
1422 pub fn sync(
1424 &self,
1425 account: ::ethers::core::types::Address,
1426 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1427 self.0
1428 .method_hash([165, 132, 17, 148], account)
1429 .expect("method not found (this should never happen)")
1430 }
1431 pub fn tokens_received(
1433 &self,
1434 p0: ::ethers::core::types::Address,
1435 from: ::ethers::core::types::Address,
1436 to: ::ethers::core::types::Address,
1437 amount: ::ethers::core::types::U256,
1438 p4: ::ethers::core::types::Bytes,
1439 p5: ::ethers::core::types::Bytes,
1440 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1441 self.0
1442 .method_hash([0, 35, 222, 41], (p0, from, to, amount, p4, p5))
1443 .expect("method not found (this should never happen)")
1444 }
1445 pub fn total_locked(
1447 &self,
1448 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1449 self.0
1450 .method_hash([86, 137, 20, 18], ())
1451 .expect("method not found (this should never happen)")
1452 }
1453 pub fn transfer_ownership(
1455 &self,
1456 new_owner: ::ethers::core::types::Address,
1457 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1458 self.0
1459 .method_hash([242, 253, 227, 139], new_owner)
1460 .expect("method not found (this should never happen)")
1461 }
1462 pub fn unlock(
1464 &self,
1465 account: ::ethers::core::types::Address,
1466 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1467 self.0
1468 .method_hash([47, 108, 73, 60], account)
1469 .expect("method not found (this should never happen)")
1470 }
1471 pub fn claimed_filter(
1473 &self,
1474 ) -> ::ethers::contract::builders::Event<::std::sync::Arc<M>, M, ClaimedFilter> {
1475 self.0.event()
1476 }
1477 pub fn ownership_transferred_filter(
1479 &self,
1480 ) -> ::ethers::contract::builders::Event<
1481 ::std::sync::Arc<M>,
1482 M,
1483 OwnershipTransferredFilter,
1484 > {
1485 self.0.event()
1486 }
1487 pub fn redeemed_filter(
1489 &self,
1490 ) -> ::ethers::contract::builders::Event<
1491 ::std::sync::Arc<M>,
1492 M,
1493 RedeemedFilter,
1494 > {
1495 self.0.event()
1496 }
1497 pub fn released_filter(
1499 &self,
1500 ) -> ::ethers::contract::builders::Event<
1501 ::std::sync::Arc<M>,
1502 M,
1503 ReleasedFilter,
1504 > {
1505 self.0.event()
1506 }
1507 pub fn reward_fueled_filter(
1509 &self,
1510 ) -> ::ethers::contract::builders::Event<
1511 ::std::sync::Arc<M>,
1512 M,
1513 RewardFueledFilter,
1514 > {
1515 self.0.event()
1516 }
1517 pub fn staked_filter(
1519 &self,
1520 ) -> ::ethers::contract::builders::Event<::std::sync::Arc<M>, M, StakedFilter> {
1521 self.0.event()
1522 }
1523 pub fn sync_filter(
1525 &self,
1526 ) -> ::ethers::contract::builders::Event<::std::sync::Arc<M>, M, SyncFilter> {
1527 self.0.event()
1528 }
1529 pub fn events(
1531 &self,
1532 ) -> ::ethers::contract::builders::Event<
1533 ::std::sync::Arc<M>,
1534 M,
1535 HoprStakeEvents,
1536 > {
1537 self.0.event_with_filter(::core::default::Default::default())
1538 }
1539 }
1540 impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
1541 for HoprStake<M> {
1542 fn from(contract: ::ethers::contract::Contract<M>) -> Self {
1543 Self::new(contract.address(), contract.client())
1544 }
1545 }
1546 #[derive(
1547 Clone,
1548 ::ethers::contract::EthEvent,
1549 ::ethers::contract::EthDisplay,
1550 serde::Serialize,
1551 serde::Deserialize,
1552 Default,
1553 Debug,
1554 PartialEq,
1555 Eq,
1556 Hash
1557 )]
1558 #[ethevent(name = "Claimed", abi = "Claimed(address,uint256)")]
1559 pub struct ClaimedFilter {
1560 #[ethevent(indexed)]
1561 pub account: ::ethers::core::types::Address,
1562 #[ethevent(indexed)]
1563 pub reward_amount: ::ethers::core::types::U256,
1564 }
1565 #[derive(
1566 Clone,
1567 ::ethers::contract::EthEvent,
1568 ::ethers::contract::EthDisplay,
1569 serde::Serialize,
1570 serde::Deserialize,
1571 Default,
1572 Debug,
1573 PartialEq,
1574 Eq,
1575 Hash
1576 )]
1577 #[ethevent(
1578 name = "OwnershipTransferred",
1579 abi = "OwnershipTransferred(address,address)"
1580 )]
1581 pub struct OwnershipTransferredFilter {
1582 #[ethevent(indexed)]
1583 pub previous_owner: ::ethers::core::types::Address,
1584 #[ethevent(indexed)]
1585 pub new_owner: ::ethers::core::types::Address,
1586 }
1587 #[derive(
1588 Clone,
1589 ::ethers::contract::EthEvent,
1590 ::ethers::contract::EthDisplay,
1591 serde::Serialize,
1592 serde::Deserialize,
1593 Default,
1594 Debug,
1595 PartialEq,
1596 Eq,
1597 Hash
1598 )]
1599 #[ethevent(name = "Redeemed", abi = "Redeemed(address,uint256,bool)")]
1600 pub struct RedeemedFilter {
1601 #[ethevent(indexed)]
1602 pub account: ::ethers::core::types::Address,
1603 #[ethevent(indexed)]
1604 pub boost_token_id: ::ethers::core::types::U256,
1605 #[ethevent(indexed)]
1606 pub factor_registered: bool,
1607 }
1608 #[derive(
1609 Clone,
1610 ::ethers::contract::EthEvent,
1611 ::ethers::contract::EthDisplay,
1612 serde::Serialize,
1613 serde::Deserialize,
1614 Default,
1615 Debug,
1616 PartialEq,
1617 Eq,
1618 Hash
1619 )]
1620 #[ethevent(name = "Released", abi = "Released(address,uint256,uint256)")]
1621 pub struct ReleasedFilter {
1622 #[ethevent(indexed)]
1623 pub account: ::ethers::core::types::Address,
1624 #[ethevent(indexed)]
1625 pub actual_amount: ::ethers::core::types::U256,
1626 #[ethevent(indexed)]
1627 pub virtual_amount: ::ethers::core::types::U256,
1628 }
1629 #[derive(
1630 Clone,
1631 ::ethers::contract::EthEvent,
1632 ::ethers::contract::EthDisplay,
1633 serde::Serialize,
1634 serde::Deserialize,
1635 Default,
1636 Debug,
1637 PartialEq,
1638 Eq,
1639 Hash
1640 )]
1641 #[ethevent(name = "RewardFueled", abi = "RewardFueled(uint256)")]
1642 pub struct RewardFueledFilter {
1643 #[ethevent(indexed)]
1644 pub amount: ::ethers::core::types::U256,
1645 }
1646 #[derive(
1647 Clone,
1648 ::ethers::contract::EthEvent,
1649 ::ethers::contract::EthDisplay,
1650 serde::Serialize,
1651 serde::Deserialize,
1652 Default,
1653 Debug,
1654 PartialEq,
1655 Eq,
1656 Hash
1657 )]
1658 #[ethevent(name = "Staked", abi = "Staked(address,uint256,uint256)")]
1659 pub struct StakedFilter {
1660 #[ethevent(indexed)]
1661 pub account: ::ethers::core::types::Address,
1662 #[ethevent(indexed)]
1663 pub actual_amount: ::ethers::core::types::U256,
1664 #[ethevent(indexed)]
1665 pub virtual_amount: ::ethers::core::types::U256,
1666 }
1667 #[derive(
1668 Clone,
1669 ::ethers::contract::EthEvent,
1670 ::ethers::contract::EthDisplay,
1671 serde::Serialize,
1672 serde::Deserialize,
1673 Default,
1674 Debug,
1675 PartialEq,
1676 Eq,
1677 Hash
1678 )]
1679 #[ethevent(name = "Sync", abi = "Sync(address,uint256)")]
1680 pub struct SyncFilter {
1681 #[ethevent(indexed)]
1682 pub account: ::ethers::core::types::Address,
1683 #[ethevent(indexed)]
1684 pub increment: ::ethers::core::types::U256,
1685 }
1686 #[derive(
1688 Clone,
1689 ::ethers::contract::EthAbiType,
1690 serde::Serialize,
1691 serde::Deserialize,
1692 Debug,
1693 PartialEq,
1694 Eq,
1695 Hash
1696 )]
1697 pub enum HoprStakeEvents {
1698 ClaimedFilter(ClaimedFilter),
1699 OwnershipTransferredFilter(OwnershipTransferredFilter),
1700 RedeemedFilter(RedeemedFilter),
1701 ReleasedFilter(ReleasedFilter),
1702 RewardFueledFilter(RewardFueledFilter),
1703 StakedFilter(StakedFilter),
1704 SyncFilter(SyncFilter),
1705 }
1706 impl ::ethers::contract::EthLogDecode for HoprStakeEvents {
1707 fn decode_log(
1708 log: &::ethers::core::abi::RawLog,
1709 ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
1710 if let Ok(decoded) = ClaimedFilter::decode_log(log) {
1711 return Ok(HoprStakeEvents::ClaimedFilter(decoded));
1712 }
1713 if let Ok(decoded) = OwnershipTransferredFilter::decode_log(log) {
1714 return Ok(HoprStakeEvents::OwnershipTransferredFilter(decoded));
1715 }
1716 if let Ok(decoded) = RedeemedFilter::decode_log(log) {
1717 return Ok(HoprStakeEvents::RedeemedFilter(decoded));
1718 }
1719 if let Ok(decoded) = ReleasedFilter::decode_log(log) {
1720 return Ok(HoprStakeEvents::ReleasedFilter(decoded));
1721 }
1722 if let Ok(decoded) = RewardFueledFilter::decode_log(log) {
1723 return Ok(HoprStakeEvents::RewardFueledFilter(decoded));
1724 }
1725 if let Ok(decoded) = StakedFilter::decode_log(log) {
1726 return Ok(HoprStakeEvents::StakedFilter(decoded));
1727 }
1728 if let Ok(decoded) = SyncFilter::decode_log(log) {
1729 return Ok(HoprStakeEvents::SyncFilter(decoded));
1730 }
1731 Err(::ethers::core::abi::Error::InvalidData)
1732 }
1733 }
1734 impl ::core::fmt::Display for HoprStakeEvents {
1735 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1736 match self {
1737 Self::ClaimedFilter(element) => ::core::fmt::Display::fmt(element, f),
1738 Self::OwnershipTransferredFilter(element) => {
1739 ::core::fmt::Display::fmt(element, f)
1740 }
1741 Self::RedeemedFilter(element) => ::core::fmt::Display::fmt(element, f),
1742 Self::ReleasedFilter(element) => ::core::fmt::Display::fmt(element, f),
1743 Self::RewardFueledFilter(element) => {
1744 ::core::fmt::Display::fmt(element, f)
1745 }
1746 Self::StakedFilter(element) => ::core::fmt::Display::fmt(element, f),
1747 Self::SyncFilter(element) => ::core::fmt::Display::fmt(element, f),
1748 }
1749 }
1750 }
1751 impl ::core::convert::From<ClaimedFilter> for HoprStakeEvents {
1752 fn from(value: ClaimedFilter) -> Self {
1753 Self::ClaimedFilter(value)
1754 }
1755 }
1756 impl ::core::convert::From<OwnershipTransferredFilter> for HoprStakeEvents {
1757 fn from(value: OwnershipTransferredFilter) -> Self {
1758 Self::OwnershipTransferredFilter(value)
1759 }
1760 }
1761 impl ::core::convert::From<RedeemedFilter> for HoprStakeEvents {
1762 fn from(value: RedeemedFilter) -> Self {
1763 Self::RedeemedFilter(value)
1764 }
1765 }
1766 impl ::core::convert::From<ReleasedFilter> for HoprStakeEvents {
1767 fn from(value: ReleasedFilter) -> Self {
1768 Self::ReleasedFilter(value)
1769 }
1770 }
1771 impl ::core::convert::From<RewardFueledFilter> for HoprStakeEvents {
1772 fn from(value: RewardFueledFilter) -> Self {
1773 Self::RewardFueledFilter(value)
1774 }
1775 }
1776 impl ::core::convert::From<StakedFilter> for HoprStakeEvents {
1777 fn from(value: StakedFilter) -> Self {
1778 Self::StakedFilter(value)
1779 }
1780 }
1781 impl ::core::convert::From<SyncFilter> for HoprStakeEvents {
1782 fn from(value: SyncFilter) -> Self {
1783 Self::SyncFilter(value)
1784 }
1785 }
1786 #[derive(
1788 Clone,
1789 ::ethers::contract::EthCall,
1790 ::ethers::contract::EthDisplay,
1791 serde::Serialize,
1792 serde::Deserialize,
1793 Default,
1794 Debug,
1795 PartialEq,
1796 Eq,
1797 Hash
1798 )]
1799 #[ethcall(name = "BASIC_FACTOR_NUMERATOR", abi = "BASIC_FACTOR_NUMERATOR()")]
1800 pub struct BasicFactorNumeratorCall;
1801 #[derive(
1803 Clone,
1804 ::ethers::contract::EthCall,
1805 ::ethers::contract::EthDisplay,
1806 serde::Serialize,
1807 serde::Deserialize,
1808 Default,
1809 Debug,
1810 PartialEq,
1811 Eq,
1812 Hash
1813 )]
1814 #[ethcall(name = "BASIC_START", abi = "BASIC_START()")]
1815 pub struct BasicStartCall;
1816 #[derive(
1818 Clone,
1819 ::ethers::contract::EthCall,
1820 ::ethers::contract::EthDisplay,
1821 serde::Serialize,
1822 serde::Deserialize,
1823 Default,
1824 Debug,
1825 PartialEq,
1826 Eq,
1827 Hash
1828 )]
1829 #[ethcall(name = "BOOST_CAP", abi = "BOOST_CAP()")]
1830 pub struct BoostCapCall;
1831 #[derive(
1833 Clone,
1834 ::ethers::contract::EthCall,
1835 ::ethers::contract::EthDisplay,
1836 serde::Serialize,
1837 serde::Deserialize,
1838 Default,
1839 Debug,
1840 PartialEq,
1841 Eq,
1842 Hash
1843 )]
1844 #[ethcall(name = "FACTOR_DENOMINATOR", abi = "FACTOR_DENOMINATOR()")]
1845 pub struct FactorDenominatorCall;
1846 #[derive(
1848 Clone,
1849 ::ethers::contract::EthCall,
1850 ::ethers::contract::EthDisplay,
1851 serde::Serialize,
1852 serde::Deserialize,
1853 Default,
1854 Debug,
1855 PartialEq,
1856 Eq,
1857 Hash
1858 )]
1859 #[ethcall(name = "LOCK_TOKEN", abi = "LOCK_TOKEN()")]
1860 pub struct LockTokenCall;
1861 #[derive(
1863 Clone,
1864 ::ethers::contract::EthCall,
1865 ::ethers::contract::EthDisplay,
1866 serde::Serialize,
1867 serde::Deserialize,
1868 Default,
1869 Debug,
1870 PartialEq,
1871 Eq,
1872 Hash
1873 )]
1874 #[ethcall(name = "PROGRAM_END", abi = "PROGRAM_END()")]
1875 pub struct ProgramEndCall;
1876 #[derive(
1878 Clone,
1879 ::ethers::contract::EthCall,
1880 ::ethers::contract::EthDisplay,
1881 serde::Serialize,
1882 serde::Deserialize,
1883 Default,
1884 Debug,
1885 PartialEq,
1886 Eq,
1887 Hash
1888 )]
1889 #[ethcall(name = "REWARD_TOKEN", abi = "REWARD_TOKEN()")]
1890 pub struct RewardTokenCall;
1891 #[derive(
1893 Clone,
1894 ::ethers::contract::EthCall,
1895 ::ethers::contract::EthDisplay,
1896 serde::Serialize,
1897 serde::Deserialize,
1898 Default,
1899 Debug,
1900 PartialEq,
1901 Eq,
1902 Hash
1903 )]
1904 #[ethcall(name = "SEED_FACTOR_NUMERATOR", abi = "SEED_FACTOR_NUMERATOR()")]
1905 pub struct SeedFactorNumeratorCall;
1906 #[derive(
1908 Clone,
1909 ::ethers::contract::EthCall,
1910 ::ethers::contract::EthDisplay,
1911 serde::Serialize,
1912 serde::Deserialize,
1913 Default,
1914 Debug,
1915 PartialEq,
1916 Eq,
1917 Hash
1918 )]
1919 #[ethcall(name = "SEED_START", abi = "SEED_START()")]
1920 pub struct SeedStartCall;
1921 #[derive(
1923 Clone,
1924 ::ethers::contract::EthCall,
1925 ::ethers::contract::EthDisplay,
1926 serde::Serialize,
1927 serde::Deserialize,
1928 Default,
1929 Debug,
1930 PartialEq,
1931 Eq,
1932 Hash
1933 )]
1934 #[ethcall(name = "accounts", abi = "accounts(address)")]
1935 pub struct AccountsCall(pub ::ethers::core::types::Address);
1936 #[derive(
1938 Clone,
1939 ::ethers::contract::EthCall,
1940 ::ethers::contract::EthDisplay,
1941 serde::Serialize,
1942 serde::Deserialize,
1943 Default,
1944 Debug,
1945 PartialEq,
1946 Eq,
1947 Hash
1948 )]
1949 #[ethcall(name = "availableReward", abi = "availableReward()")]
1950 pub struct AvailableRewardCall;
1951 #[derive(
1953 Clone,
1954 ::ethers::contract::EthCall,
1955 ::ethers::contract::EthDisplay,
1956 serde::Serialize,
1957 serde::Deserialize,
1958 Default,
1959 Debug,
1960 PartialEq,
1961 Eq,
1962 Hash
1963 )]
1964 #[ethcall(name = "claimRewards", abi = "claimRewards(address)")]
1965 pub struct ClaimRewardsCall {
1966 pub account: ::ethers::core::types::Address,
1967 }
1968 #[derive(
1970 Clone,
1971 ::ethers::contract::EthCall,
1972 ::ethers::contract::EthDisplay,
1973 serde::Serialize,
1974 serde::Deserialize,
1975 Default,
1976 Debug,
1977 PartialEq,
1978 Eq,
1979 Hash
1980 )]
1981 #[ethcall(
1982 name = "getCumulatedRewardsIncrement",
1983 abi = "getCumulatedRewardsIncrement(address)"
1984 )]
1985 pub struct GetCumulatedRewardsIncrementCall {
1986 pub account: ::ethers::core::types::Address,
1987 }
1988 #[derive(
1990 Clone,
1991 ::ethers::contract::EthCall,
1992 ::ethers::contract::EthDisplay,
1993 serde::Serialize,
1994 serde::Deserialize,
1995 Default,
1996 Debug,
1997 PartialEq,
1998 Eq,
1999 Hash
2000 )]
2001 #[ethcall(name = "lock", abi = "lock(address[],uint256[])")]
2002 pub struct LockCall {
2003 pub investors: ::std::vec::Vec<::ethers::core::types::Address>,
2004 pub caps: ::std::vec::Vec<::ethers::core::types::U256>,
2005 }
2006 #[derive(
2008 Clone,
2009 ::ethers::contract::EthCall,
2010 ::ethers::contract::EthDisplay,
2011 serde::Serialize,
2012 serde::Deserialize,
2013 Default,
2014 Debug,
2015 PartialEq,
2016 Eq,
2017 Hash
2018 )]
2019 #[ethcall(name = "nftContract", abi = "nftContract()")]
2020 pub struct NftContractCall;
2021 #[derive(
2023 Clone,
2024 ::ethers::contract::EthCall,
2025 ::ethers::contract::EthDisplay,
2026 serde::Serialize,
2027 serde::Deserialize,
2028 Default,
2029 Debug,
2030 PartialEq,
2031 Eq,
2032 Hash
2033 )]
2034 #[ethcall(
2035 name = "onERC721Received",
2036 abi = "onERC721Received(address,address,uint256,bytes)"
2037 )]
2038 pub struct OnERC721ReceivedCall {
2039 pub p0: ::ethers::core::types::Address,
2040 pub from: ::ethers::core::types::Address,
2041 pub token_id: ::ethers::core::types::U256,
2042 pub p3: ::ethers::core::types::Bytes,
2043 }
2044 #[derive(
2046 Clone,
2047 ::ethers::contract::EthCall,
2048 ::ethers::contract::EthDisplay,
2049 serde::Serialize,
2050 serde::Deserialize,
2051 Default,
2052 Debug,
2053 PartialEq,
2054 Eq,
2055 Hash
2056 )]
2057 #[ethcall(name = "onTokenTransfer", abi = "onTokenTransfer(address,uint256,bytes)")]
2058 pub struct OnTokenTransferCall {
2059 pub from: ::ethers::core::types::Address,
2060 pub value: ::ethers::core::types::U256,
2061 pub p2: ::ethers::core::types::Bytes,
2062 }
2063 #[derive(
2065 Clone,
2066 ::ethers::contract::EthCall,
2067 ::ethers::contract::EthDisplay,
2068 serde::Serialize,
2069 serde::Deserialize,
2070 Default,
2071 Debug,
2072 PartialEq,
2073 Eq,
2074 Hash
2075 )]
2076 #[ethcall(name = "owner", abi = "owner()")]
2077 pub struct OwnerCall;
2078 #[derive(
2080 Clone,
2081 ::ethers::contract::EthCall,
2082 ::ethers::contract::EthDisplay,
2083 serde::Serialize,
2084 serde::Deserialize,
2085 Default,
2086 Debug,
2087 PartialEq,
2088 Eq,
2089 Hash
2090 )]
2091 #[ethcall(name = "reclaimErc20Tokens", abi = "reclaimErc20Tokens(address)")]
2092 pub struct ReclaimErc20TokensCall {
2093 pub token_address: ::ethers::core::types::Address,
2094 }
2095 #[derive(
2097 Clone,
2098 ::ethers::contract::EthCall,
2099 ::ethers::contract::EthDisplay,
2100 serde::Serialize,
2101 serde::Deserialize,
2102 Default,
2103 Debug,
2104 PartialEq,
2105 Eq,
2106 Hash
2107 )]
2108 #[ethcall(
2109 name = "reclaimErc721Tokens",
2110 abi = "reclaimErc721Tokens(address,uint256)"
2111 )]
2112 pub struct ReclaimErc721TokensCall {
2113 pub token_address: ::ethers::core::types::Address,
2114 pub token_id: ::ethers::core::types::U256,
2115 }
2116 #[derive(
2118 Clone,
2119 ::ethers::contract::EthCall,
2120 ::ethers::contract::EthDisplay,
2121 serde::Serialize,
2122 serde::Deserialize,
2123 Default,
2124 Debug,
2125 PartialEq,
2126 Eq,
2127 Hash
2128 )]
2129 #[ethcall(name = "redeemedFactor", abi = "redeemedFactor(address,uint256)")]
2130 pub struct RedeemedFactorCall(
2131 pub ::ethers::core::types::Address,
2132 pub ::ethers::core::types::U256,
2133 );
2134 #[derive(
2136 Clone,
2137 ::ethers::contract::EthCall,
2138 ::ethers::contract::EthDisplay,
2139 serde::Serialize,
2140 serde::Deserialize,
2141 Default,
2142 Debug,
2143 PartialEq,
2144 Eq,
2145 Hash
2146 )]
2147 #[ethcall(name = "redeemedFactorIndex", abi = "redeemedFactorIndex(address)")]
2148 pub struct RedeemedFactorIndexCall(pub ::ethers::core::types::Address);
2149 #[derive(
2151 Clone,
2152 ::ethers::contract::EthCall,
2153 ::ethers::contract::EthDisplay,
2154 serde::Serialize,
2155 serde::Deserialize,
2156 Default,
2157 Debug,
2158 PartialEq,
2159 Eq,
2160 Hash
2161 )]
2162 #[ethcall(name = "redeemedNft", abi = "redeemedNft(address,uint256)")]
2163 pub struct RedeemedNftCall(
2164 pub ::ethers::core::types::Address,
2165 pub ::ethers::core::types::U256,
2166 );
2167 #[derive(
2169 Clone,
2170 ::ethers::contract::EthCall,
2171 ::ethers::contract::EthDisplay,
2172 serde::Serialize,
2173 serde::Deserialize,
2174 Default,
2175 Debug,
2176 PartialEq,
2177 Eq,
2178 Hash
2179 )]
2180 #[ethcall(name = "redeemedNftIndex", abi = "redeemedNftIndex(address)")]
2181 pub struct RedeemedNftIndexCall(pub ::ethers::core::types::Address);
2182 #[derive(
2184 Clone,
2185 ::ethers::contract::EthCall,
2186 ::ethers::contract::EthDisplay,
2187 serde::Serialize,
2188 serde::Deserialize,
2189 Default,
2190 Debug,
2191 PartialEq,
2192 Eq,
2193 Hash
2194 )]
2195 #[ethcall(name = "renounceOwnership", abi = "renounceOwnership()")]
2196 pub struct RenounceOwnershipCall;
2197 #[derive(
2199 Clone,
2200 ::ethers::contract::EthCall,
2201 ::ethers::contract::EthDisplay,
2202 serde::Serialize,
2203 serde::Deserialize,
2204 Default,
2205 Debug,
2206 PartialEq,
2207 Eq,
2208 Hash
2209 )]
2210 #[ethcall(name = "sync", abi = "sync(address)")]
2211 pub struct SyncCall {
2212 pub account: ::ethers::core::types::Address,
2213 }
2214 #[derive(
2216 Clone,
2217 ::ethers::contract::EthCall,
2218 ::ethers::contract::EthDisplay,
2219 serde::Serialize,
2220 serde::Deserialize,
2221 Default,
2222 Debug,
2223 PartialEq,
2224 Eq,
2225 Hash
2226 )]
2227 #[ethcall(
2228 name = "tokensReceived",
2229 abi = "tokensReceived(address,address,address,uint256,bytes,bytes)"
2230 )]
2231 pub struct TokensReceivedCall {
2232 pub p0: ::ethers::core::types::Address,
2233 pub from: ::ethers::core::types::Address,
2234 pub to: ::ethers::core::types::Address,
2235 pub amount: ::ethers::core::types::U256,
2236 pub p4: ::ethers::core::types::Bytes,
2237 pub p5: ::ethers::core::types::Bytes,
2238 }
2239 #[derive(
2241 Clone,
2242 ::ethers::contract::EthCall,
2243 ::ethers::contract::EthDisplay,
2244 serde::Serialize,
2245 serde::Deserialize,
2246 Default,
2247 Debug,
2248 PartialEq,
2249 Eq,
2250 Hash
2251 )]
2252 #[ethcall(name = "totalLocked", abi = "totalLocked()")]
2253 pub struct TotalLockedCall;
2254 #[derive(
2256 Clone,
2257 ::ethers::contract::EthCall,
2258 ::ethers::contract::EthDisplay,
2259 serde::Serialize,
2260 serde::Deserialize,
2261 Default,
2262 Debug,
2263 PartialEq,
2264 Eq,
2265 Hash
2266 )]
2267 #[ethcall(name = "transferOwnership", abi = "transferOwnership(address)")]
2268 pub struct TransferOwnershipCall {
2269 pub new_owner: ::ethers::core::types::Address,
2270 }
2271 #[derive(
2273 Clone,
2274 ::ethers::contract::EthCall,
2275 ::ethers::contract::EthDisplay,
2276 serde::Serialize,
2277 serde::Deserialize,
2278 Default,
2279 Debug,
2280 PartialEq,
2281 Eq,
2282 Hash
2283 )]
2284 #[ethcall(name = "unlock", abi = "unlock(address)")]
2285 pub struct UnlockCall {
2286 pub account: ::ethers::core::types::Address,
2287 }
2288 #[derive(
2290 Clone,
2291 ::ethers::contract::EthAbiType,
2292 serde::Serialize,
2293 serde::Deserialize,
2294 Debug,
2295 PartialEq,
2296 Eq,
2297 Hash
2298 )]
2299 pub enum HoprStakeCalls {
2300 BasicFactorNumerator(BasicFactorNumeratorCall),
2301 BasicStart(BasicStartCall),
2302 BoostCap(BoostCapCall),
2303 FactorDenominator(FactorDenominatorCall),
2304 LockToken(LockTokenCall),
2305 ProgramEnd(ProgramEndCall),
2306 RewardToken(RewardTokenCall),
2307 SeedFactorNumerator(SeedFactorNumeratorCall),
2308 SeedStart(SeedStartCall),
2309 Accounts(AccountsCall),
2310 AvailableReward(AvailableRewardCall),
2311 ClaimRewards(ClaimRewardsCall),
2312 GetCumulatedRewardsIncrement(GetCumulatedRewardsIncrementCall),
2313 Lock(LockCall),
2314 NftContract(NftContractCall),
2315 OnERC721Received(OnERC721ReceivedCall),
2316 OnTokenTransfer(OnTokenTransferCall),
2317 Owner(OwnerCall),
2318 ReclaimErc20Tokens(ReclaimErc20TokensCall),
2319 ReclaimErc721Tokens(ReclaimErc721TokensCall),
2320 RedeemedFactor(RedeemedFactorCall),
2321 RedeemedFactorIndex(RedeemedFactorIndexCall),
2322 RedeemedNft(RedeemedNftCall),
2323 RedeemedNftIndex(RedeemedNftIndexCall),
2324 RenounceOwnership(RenounceOwnershipCall),
2325 Sync(SyncCall),
2326 TokensReceived(TokensReceivedCall),
2327 TotalLocked(TotalLockedCall),
2328 TransferOwnership(TransferOwnershipCall),
2329 Unlock(UnlockCall),
2330 }
2331 impl ::ethers::core::abi::AbiDecode for HoprStakeCalls {
2332 fn decode(
2333 data: impl AsRef<[u8]>,
2334 ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
2335 let data = data.as_ref();
2336 if let Ok(decoded) = <BasicFactorNumeratorCall as ::ethers::core::abi::AbiDecode>::decode(
2337 data,
2338 ) {
2339 return Ok(Self::BasicFactorNumerator(decoded));
2340 }
2341 if let Ok(decoded) = <BasicStartCall as ::ethers::core::abi::AbiDecode>::decode(
2342 data,
2343 ) {
2344 return Ok(Self::BasicStart(decoded));
2345 }
2346 if let Ok(decoded) = <BoostCapCall as ::ethers::core::abi::AbiDecode>::decode(
2347 data,
2348 ) {
2349 return Ok(Self::BoostCap(decoded));
2350 }
2351 if let Ok(decoded) = <FactorDenominatorCall as ::ethers::core::abi::AbiDecode>::decode(
2352 data,
2353 ) {
2354 return Ok(Self::FactorDenominator(decoded));
2355 }
2356 if let Ok(decoded) = <LockTokenCall as ::ethers::core::abi::AbiDecode>::decode(
2357 data,
2358 ) {
2359 return Ok(Self::LockToken(decoded));
2360 }
2361 if let Ok(decoded) = <ProgramEndCall as ::ethers::core::abi::AbiDecode>::decode(
2362 data,
2363 ) {
2364 return Ok(Self::ProgramEnd(decoded));
2365 }
2366 if let Ok(decoded) = <RewardTokenCall as ::ethers::core::abi::AbiDecode>::decode(
2367 data,
2368 ) {
2369 return Ok(Self::RewardToken(decoded));
2370 }
2371 if let Ok(decoded) = <SeedFactorNumeratorCall as ::ethers::core::abi::AbiDecode>::decode(
2372 data,
2373 ) {
2374 return Ok(Self::SeedFactorNumerator(decoded));
2375 }
2376 if let Ok(decoded) = <SeedStartCall as ::ethers::core::abi::AbiDecode>::decode(
2377 data,
2378 ) {
2379 return Ok(Self::SeedStart(decoded));
2380 }
2381 if let Ok(decoded) = <AccountsCall as ::ethers::core::abi::AbiDecode>::decode(
2382 data,
2383 ) {
2384 return Ok(Self::Accounts(decoded));
2385 }
2386 if let Ok(decoded) = <AvailableRewardCall as ::ethers::core::abi::AbiDecode>::decode(
2387 data,
2388 ) {
2389 return Ok(Self::AvailableReward(decoded));
2390 }
2391 if let Ok(decoded) = <ClaimRewardsCall as ::ethers::core::abi::AbiDecode>::decode(
2392 data,
2393 ) {
2394 return Ok(Self::ClaimRewards(decoded));
2395 }
2396 if let Ok(decoded) = <GetCumulatedRewardsIncrementCall as ::ethers::core::abi::AbiDecode>::decode(
2397 data,
2398 ) {
2399 return Ok(Self::GetCumulatedRewardsIncrement(decoded));
2400 }
2401 if let Ok(decoded) = <LockCall as ::ethers::core::abi::AbiDecode>::decode(
2402 data,
2403 ) {
2404 return Ok(Self::Lock(decoded));
2405 }
2406 if let Ok(decoded) = <NftContractCall as ::ethers::core::abi::AbiDecode>::decode(
2407 data,
2408 ) {
2409 return Ok(Self::NftContract(decoded));
2410 }
2411 if let Ok(decoded) = <OnERC721ReceivedCall as ::ethers::core::abi::AbiDecode>::decode(
2412 data,
2413 ) {
2414 return Ok(Self::OnERC721Received(decoded));
2415 }
2416 if let Ok(decoded) = <OnTokenTransferCall as ::ethers::core::abi::AbiDecode>::decode(
2417 data,
2418 ) {
2419 return Ok(Self::OnTokenTransfer(decoded));
2420 }
2421 if let Ok(decoded) = <OwnerCall as ::ethers::core::abi::AbiDecode>::decode(
2422 data,
2423 ) {
2424 return Ok(Self::Owner(decoded));
2425 }
2426 if let Ok(decoded) = <ReclaimErc20TokensCall as ::ethers::core::abi::AbiDecode>::decode(
2427 data,
2428 ) {
2429 return Ok(Self::ReclaimErc20Tokens(decoded));
2430 }
2431 if let Ok(decoded) = <ReclaimErc721TokensCall as ::ethers::core::abi::AbiDecode>::decode(
2432 data,
2433 ) {
2434 return Ok(Self::ReclaimErc721Tokens(decoded));
2435 }
2436 if let Ok(decoded) = <RedeemedFactorCall as ::ethers::core::abi::AbiDecode>::decode(
2437 data,
2438 ) {
2439 return Ok(Self::RedeemedFactor(decoded));
2440 }
2441 if let Ok(decoded) = <RedeemedFactorIndexCall as ::ethers::core::abi::AbiDecode>::decode(
2442 data,
2443 ) {
2444 return Ok(Self::RedeemedFactorIndex(decoded));
2445 }
2446 if let Ok(decoded) = <RedeemedNftCall as ::ethers::core::abi::AbiDecode>::decode(
2447 data,
2448 ) {
2449 return Ok(Self::RedeemedNft(decoded));
2450 }
2451 if let Ok(decoded) = <RedeemedNftIndexCall as ::ethers::core::abi::AbiDecode>::decode(
2452 data,
2453 ) {
2454 return Ok(Self::RedeemedNftIndex(decoded));
2455 }
2456 if let Ok(decoded) = <RenounceOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
2457 data,
2458 ) {
2459 return Ok(Self::RenounceOwnership(decoded));
2460 }
2461 if let Ok(decoded) = <SyncCall as ::ethers::core::abi::AbiDecode>::decode(
2462 data,
2463 ) {
2464 return Ok(Self::Sync(decoded));
2465 }
2466 if let Ok(decoded) = <TokensReceivedCall as ::ethers::core::abi::AbiDecode>::decode(
2467 data,
2468 ) {
2469 return Ok(Self::TokensReceived(decoded));
2470 }
2471 if let Ok(decoded) = <TotalLockedCall as ::ethers::core::abi::AbiDecode>::decode(
2472 data,
2473 ) {
2474 return Ok(Self::TotalLocked(decoded));
2475 }
2476 if let Ok(decoded) = <TransferOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
2477 data,
2478 ) {
2479 return Ok(Self::TransferOwnership(decoded));
2480 }
2481 if let Ok(decoded) = <UnlockCall as ::ethers::core::abi::AbiDecode>::decode(
2482 data,
2483 ) {
2484 return Ok(Self::Unlock(decoded));
2485 }
2486 Err(::ethers::core::abi::Error::InvalidData.into())
2487 }
2488 }
2489 impl ::ethers::core::abi::AbiEncode for HoprStakeCalls {
2490 fn encode(self) -> Vec<u8> {
2491 match self {
2492 Self::BasicFactorNumerator(element) => {
2493 ::ethers::core::abi::AbiEncode::encode(element)
2494 }
2495 Self::BasicStart(element) => {
2496 ::ethers::core::abi::AbiEncode::encode(element)
2497 }
2498 Self::BoostCap(element) => {
2499 ::ethers::core::abi::AbiEncode::encode(element)
2500 }
2501 Self::FactorDenominator(element) => {
2502 ::ethers::core::abi::AbiEncode::encode(element)
2503 }
2504 Self::LockToken(element) => {
2505 ::ethers::core::abi::AbiEncode::encode(element)
2506 }
2507 Self::ProgramEnd(element) => {
2508 ::ethers::core::abi::AbiEncode::encode(element)
2509 }
2510 Self::RewardToken(element) => {
2511 ::ethers::core::abi::AbiEncode::encode(element)
2512 }
2513 Self::SeedFactorNumerator(element) => {
2514 ::ethers::core::abi::AbiEncode::encode(element)
2515 }
2516 Self::SeedStart(element) => {
2517 ::ethers::core::abi::AbiEncode::encode(element)
2518 }
2519 Self::Accounts(element) => {
2520 ::ethers::core::abi::AbiEncode::encode(element)
2521 }
2522 Self::AvailableReward(element) => {
2523 ::ethers::core::abi::AbiEncode::encode(element)
2524 }
2525 Self::ClaimRewards(element) => {
2526 ::ethers::core::abi::AbiEncode::encode(element)
2527 }
2528 Self::GetCumulatedRewardsIncrement(element) => {
2529 ::ethers::core::abi::AbiEncode::encode(element)
2530 }
2531 Self::Lock(element) => ::ethers::core::abi::AbiEncode::encode(element),
2532 Self::NftContract(element) => {
2533 ::ethers::core::abi::AbiEncode::encode(element)
2534 }
2535 Self::OnERC721Received(element) => {
2536 ::ethers::core::abi::AbiEncode::encode(element)
2537 }
2538 Self::OnTokenTransfer(element) => {
2539 ::ethers::core::abi::AbiEncode::encode(element)
2540 }
2541 Self::Owner(element) => ::ethers::core::abi::AbiEncode::encode(element),
2542 Self::ReclaimErc20Tokens(element) => {
2543 ::ethers::core::abi::AbiEncode::encode(element)
2544 }
2545 Self::ReclaimErc721Tokens(element) => {
2546 ::ethers::core::abi::AbiEncode::encode(element)
2547 }
2548 Self::RedeemedFactor(element) => {
2549 ::ethers::core::abi::AbiEncode::encode(element)
2550 }
2551 Self::RedeemedFactorIndex(element) => {
2552 ::ethers::core::abi::AbiEncode::encode(element)
2553 }
2554 Self::RedeemedNft(element) => {
2555 ::ethers::core::abi::AbiEncode::encode(element)
2556 }
2557 Self::RedeemedNftIndex(element) => {
2558 ::ethers::core::abi::AbiEncode::encode(element)
2559 }
2560 Self::RenounceOwnership(element) => {
2561 ::ethers::core::abi::AbiEncode::encode(element)
2562 }
2563 Self::Sync(element) => ::ethers::core::abi::AbiEncode::encode(element),
2564 Self::TokensReceived(element) => {
2565 ::ethers::core::abi::AbiEncode::encode(element)
2566 }
2567 Self::TotalLocked(element) => {
2568 ::ethers::core::abi::AbiEncode::encode(element)
2569 }
2570 Self::TransferOwnership(element) => {
2571 ::ethers::core::abi::AbiEncode::encode(element)
2572 }
2573 Self::Unlock(element) => ::ethers::core::abi::AbiEncode::encode(element),
2574 }
2575 }
2576 }
2577 impl ::core::fmt::Display for HoprStakeCalls {
2578 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2579 match self {
2580 Self::BasicFactorNumerator(element) => {
2581 ::core::fmt::Display::fmt(element, f)
2582 }
2583 Self::BasicStart(element) => ::core::fmt::Display::fmt(element, f),
2584 Self::BoostCap(element) => ::core::fmt::Display::fmt(element, f),
2585 Self::FactorDenominator(element) => ::core::fmt::Display::fmt(element, f),
2586 Self::LockToken(element) => ::core::fmt::Display::fmt(element, f),
2587 Self::ProgramEnd(element) => ::core::fmt::Display::fmt(element, f),
2588 Self::RewardToken(element) => ::core::fmt::Display::fmt(element, f),
2589 Self::SeedFactorNumerator(element) => {
2590 ::core::fmt::Display::fmt(element, f)
2591 }
2592 Self::SeedStart(element) => ::core::fmt::Display::fmt(element, f),
2593 Self::Accounts(element) => ::core::fmt::Display::fmt(element, f),
2594 Self::AvailableReward(element) => ::core::fmt::Display::fmt(element, f),
2595 Self::ClaimRewards(element) => ::core::fmt::Display::fmt(element, f),
2596 Self::GetCumulatedRewardsIncrement(element) => {
2597 ::core::fmt::Display::fmt(element, f)
2598 }
2599 Self::Lock(element) => ::core::fmt::Display::fmt(element, f),
2600 Self::NftContract(element) => ::core::fmt::Display::fmt(element, f),
2601 Self::OnERC721Received(element) => ::core::fmt::Display::fmt(element, f),
2602 Self::OnTokenTransfer(element) => ::core::fmt::Display::fmt(element, f),
2603 Self::Owner(element) => ::core::fmt::Display::fmt(element, f),
2604 Self::ReclaimErc20Tokens(element) => {
2605 ::core::fmt::Display::fmt(element, f)
2606 }
2607 Self::ReclaimErc721Tokens(element) => {
2608 ::core::fmt::Display::fmt(element, f)
2609 }
2610 Self::RedeemedFactor(element) => ::core::fmt::Display::fmt(element, f),
2611 Self::RedeemedFactorIndex(element) => {
2612 ::core::fmt::Display::fmt(element, f)
2613 }
2614 Self::RedeemedNft(element) => ::core::fmt::Display::fmt(element, f),
2615 Self::RedeemedNftIndex(element) => ::core::fmt::Display::fmt(element, f),
2616 Self::RenounceOwnership(element) => ::core::fmt::Display::fmt(element, f),
2617 Self::Sync(element) => ::core::fmt::Display::fmt(element, f),
2618 Self::TokensReceived(element) => ::core::fmt::Display::fmt(element, f),
2619 Self::TotalLocked(element) => ::core::fmt::Display::fmt(element, f),
2620 Self::TransferOwnership(element) => ::core::fmt::Display::fmt(element, f),
2621 Self::Unlock(element) => ::core::fmt::Display::fmt(element, f),
2622 }
2623 }
2624 }
2625 impl ::core::convert::From<BasicFactorNumeratorCall> for HoprStakeCalls {
2626 fn from(value: BasicFactorNumeratorCall) -> Self {
2627 Self::BasicFactorNumerator(value)
2628 }
2629 }
2630 impl ::core::convert::From<BasicStartCall> for HoprStakeCalls {
2631 fn from(value: BasicStartCall) -> Self {
2632 Self::BasicStart(value)
2633 }
2634 }
2635 impl ::core::convert::From<BoostCapCall> for HoprStakeCalls {
2636 fn from(value: BoostCapCall) -> Self {
2637 Self::BoostCap(value)
2638 }
2639 }
2640 impl ::core::convert::From<FactorDenominatorCall> for HoprStakeCalls {
2641 fn from(value: FactorDenominatorCall) -> Self {
2642 Self::FactorDenominator(value)
2643 }
2644 }
2645 impl ::core::convert::From<LockTokenCall> for HoprStakeCalls {
2646 fn from(value: LockTokenCall) -> Self {
2647 Self::LockToken(value)
2648 }
2649 }
2650 impl ::core::convert::From<ProgramEndCall> for HoprStakeCalls {
2651 fn from(value: ProgramEndCall) -> Self {
2652 Self::ProgramEnd(value)
2653 }
2654 }
2655 impl ::core::convert::From<RewardTokenCall> for HoprStakeCalls {
2656 fn from(value: RewardTokenCall) -> Self {
2657 Self::RewardToken(value)
2658 }
2659 }
2660 impl ::core::convert::From<SeedFactorNumeratorCall> for HoprStakeCalls {
2661 fn from(value: SeedFactorNumeratorCall) -> Self {
2662 Self::SeedFactorNumerator(value)
2663 }
2664 }
2665 impl ::core::convert::From<SeedStartCall> for HoprStakeCalls {
2666 fn from(value: SeedStartCall) -> Self {
2667 Self::SeedStart(value)
2668 }
2669 }
2670 impl ::core::convert::From<AccountsCall> for HoprStakeCalls {
2671 fn from(value: AccountsCall) -> Self {
2672 Self::Accounts(value)
2673 }
2674 }
2675 impl ::core::convert::From<AvailableRewardCall> for HoprStakeCalls {
2676 fn from(value: AvailableRewardCall) -> Self {
2677 Self::AvailableReward(value)
2678 }
2679 }
2680 impl ::core::convert::From<ClaimRewardsCall> for HoprStakeCalls {
2681 fn from(value: ClaimRewardsCall) -> Self {
2682 Self::ClaimRewards(value)
2683 }
2684 }
2685 impl ::core::convert::From<GetCumulatedRewardsIncrementCall> for HoprStakeCalls {
2686 fn from(value: GetCumulatedRewardsIncrementCall) -> Self {
2687 Self::GetCumulatedRewardsIncrement(value)
2688 }
2689 }
2690 impl ::core::convert::From<LockCall> for HoprStakeCalls {
2691 fn from(value: LockCall) -> Self {
2692 Self::Lock(value)
2693 }
2694 }
2695 impl ::core::convert::From<NftContractCall> for HoprStakeCalls {
2696 fn from(value: NftContractCall) -> Self {
2697 Self::NftContract(value)
2698 }
2699 }
2700 impl ::core::convert::From<OnERC721ReceivedCall> for HoprStakeCalls {
2701 fn from(value: OnERC721ReceivedCall) -> Self {
2702 Self::OnERC721Received(value)
2703 }
2704 }
2705 impl ::core::convert::From<OnTokenTransferCall> for HoprStakeCalls {
2706 fn from(value: OnTokenTransferCall) -> Self {
2707 Self::OnTokenTransfer(value)
2708 }
2709 }
2710 impl ::core::convert::From<OwnerCall> for HoprStakeCalls {
2711 fn from(value: OwnerCall) -> Self {
2712 Self::Owner(value)
2713 }
2714 }
2715 impl ::core::convert::From<ReclaimErc20TokensCall> for HoprStakeCalls {
2716 fn from(value: ReclaimErc20TokensCall) -> Self {
2717 Self::ReclaimErc20Tokens(value)
2718 }
2719 }
2720 impl ::core::convert::From<ReclaimErc721TokensCall> for HoprStakeCalls {
2721 fn from(value: ReclaimErc721TokensCall) -> Self {
2722 Self::ReclaimErc721Tokens(value)
2723 }
2724 }
2725 impl ::core::convert::From<RedeemedFactorCall> for HoprStakeCalls {
2726 fn from(value: RedeemedFactorCall) -> Self {
2727 Self::RedeemedFactor(value)
2728 }
2729 }
2730 impl ::core::convert::From<RedeemedFactorIndexCall> for HoprStakeCalls {
2731 fn from(value: RedeemedFactorIndexCall) -> Self {
2732 Self::RedeemedFactorIndex(value)
2733 }
2734 }
2735 impl ::core::convert::From<RedeemedNftCall> for HoprStakeCalls {
2736 fn from(value: RedeemedNftCall) -> Self {
2737 Self::RedeemedNft(value)
2738 }
2739 }
2740 impl ::core::convert::From<RedeemedNftIndexCall> for HoprStakeCalls {
2741 fn from(value: RedeemedNftIndexCall) -> Self {
2742 Self::RedeemedNftIndex(value)
2743 }
2744 }
2745 impl ::core::convert::From<RenounceOwnershipCall> for HoprStakeCalls {
2746 fn from(value: RenounceOwnershipCall) -> Self {
2747 Self::RenounceOwnership(value)
2748 }
2749 }
2750 impl ::core::convert::From<SyncCall> for HoprStakeCalls {
2751 fn from(value: SyncCall) -> Self {
2752 Self::Sync(value)
2753 }
2754 }
2755 impl ::core::convert::From<TokensReceivedCall> for HoprStakeCalls {
2756 fn from(value: TokensReceivedCall) -> Self {
2757 Self::TokensReceived(value)
2758 }
2759 }
2760 impl ::core::convert::From<TotalLockedCall> for HoprStakeCalls {
2761 fn from(value: TotalLockedCall) -> Self {
2762 Self::TotalLocked(value)
2763 }
2764 }
2765 impl ::core::convert::From<TransferOwnershipCall> for HoprStakeCalls {
2766 fn from(value: TransferOwnershipCall) -> Self {
2767 Self::TransferOwnership(value)
2768 }
2769 }
2770 impl ::core::convert::From<UnlockCall> for HoprStakeCalls {
2771 fn from(value: UnlockCall) -> Self {
2772 Self::Unlock(value)
2773 }
2774 }
2775 #[derive(
2777 Clone,
2778 ::ethers::contract::EthAbiType,
2779 ::ethers::contract::EthAbiCodec,
2780 serde::Serialize,
2781 serde::Deserialize,
2782 Default,
2783 Debug,
2784 PartialEq,
2785 Eq,
2786 Hash
2787 )]
2788 pub struct BasicFactorNumeratorReturn(pub ::ethers::core::types::U256);
2789 #[derive(
2791 Clone,
2792 ::ethers::contract::EthAbiType,
2793 ::ethers::contract::EthAbiCodec,
2794 serde::Serialize,
2795 serde::Deserialize,
2796 Default,
2797 Debug,
2798 PartialEq,
2799 Eq,
2800 Hash
2801 )]
2802 pub struct BasicStartReturn(pub ::ethers::core::types::U256);
2803 #[derive(
2805 Clone,
2806 ::ethers::contract::EthAbiType,
2807 ::ethers::contract::EthAbiCodec,
2808 serde::Serialize,
2809 serde::Deserialize,
2810 Default,
2811 Debug,
2812 PartialEq,
2813 Eq,
2814 Hash
2815 )]
2816 pub struct BoostCapReturn(pub ::ethers::core::types::U256);
2817 #[derive(
2819 Clone,
2820 ::ethers::contract::EthAbiType,
2821 ::ethers::contract::EthAbiCodec,
2822 serde::Serialize,
2823 serde::Deserialize,
2824 Default,
2825 Debug,
2826 PartialEq,
2827 Eq,
2828 Hash
2829 )]
2830 pub struct FactorDenominatorReturn(pub ::ethers::core::types::U256);
2831 #[derive(
2833 Clone,
2834 ::ethers::contract::EthAbiType,
2835 ::ethers::contract::EthAbiCodec,
2836 serde::Serialize,
2837 serde::Deserialize,
2838 Default,
2839 Debug,
2840 PartialEq,
2841 Eq,
2842 Hash
2843 )]
2844 pub struct LockTokenReturn(pub ::ethers::core::types::Address);
2845 #[derive(
2847 Clone,
2848 ::ethers::contract::EthAbiType,
2849 ::ethers::contract::EthAbiCodec,
2850 serde::Serialize,
2851 serde::Deserialize,
2852 Default,
2853 Debug,
2854 PartialEq,
2855 Eq,
2856 Hash
2857 )]
2858 pub struct ProgramEndReturn(pub ::ethers::core::types::U256);
2859 #[derive(
2861 Clone,
2862 ::ethers::contract::EthAbiType,
2863 ::ethers::contract::EthAbiCodec,
2864 serde::Serialize,
2865 serde::Deserialize,
2866 Default,
2867 Debug,
2868 PartialEq,
2869 Eq,
2870 Hash
2871 )]
2872 pub struct RewardTokenReturn(pub ::ethers::core::types::Address);
2873 #[derive(
2875 Clone,
2876 ::ethers::contract::EthAbiType,
2877 ::ethers::contract::EthAbiCodec,
2878 serde::Serialize,
2879 serde::Deserialize,
2880 Default,
2881 Debug,
2882 PartialEq,
2883 Eq,
2884 Hash
2885 )]
2886 pub struct SeedFactorNumeratorReturn(pub ::ethers::core::types::U256);
2887 #[derive(
2889 Clone,
2890 ::ethers::contract::EthAbiType,
2891 ::ethers::contract::EthAbiCodec,
2892 serde::Serialize,
2893 serde::Deserialize,
2894 Default,
2895 Debug,
2896 PartialEq,
2897 Eq,
2898 Hash
2899 )]
2900 pub struct SeedStartReturn(pub ::ethers::core::types::U256);
2901 #[derive(
2903 Clone,
2904 ::ethers::contract::EthAbiType,
2905 ::ethers::contract::EthAbiCodec,
2906 serde::Serialize,
2907 serde::Deserialize,
2908 Default,
2909 Debug,
2910 PartialEq,
2911 Eq,
2912 Hash
2913 )]
2914 pub struct AccountsReturn {
2915 pub actual_locked_token_amount: ::ethers::core::types::U256,
2916 pub virtual_locked_token_amount: ::ethers::core::types::U256,
2917 pub last_sync_timestamp: ::ethers::core::types::U256,
2918 pub cumulated_rewards: ::ethers::core::types::U256,
2919 pub claimed_rewards: ::ethers::core::types::U256,
2920 }
2921 #[derive(
2923 Clone,
2924 ::ethers::contract::EthAbiType,
2925 ::ethers::contract::EthAbiCodec,
2926 serde::Serialize,
2927 serde::Deserialize,
2928 Default,
2929 Debug,
2930 PartialEq,
2931 Eq,
2932 Hash
2933 )]
2934 pub struct AvailableRewardReturn(pub ::ethers::core::types::U256);
2935 #[derive(
2937 Clone,
2938 ::ethers::contract::EthAbiType,
2939 ::ethers::contract::EthAbiCodec,
2940 serde::Serialize,
2941 serde::Deserialize,
2942 Default,
2943 Debug,
2944 PartialEq,
2945 Eq,
2946 Hash
2947 )]
2948 pub struct GetCumulatedRewardsIncrementReturn(pub ::ethers::core::types::U256);
2949 #[derive(
2951 Clone,
2952 ::ethers::contract::EthAbiType,
2953 ::ethers::contract::EthAbiCodec,
2954 serde::Serialize,
2955 serde::Deserialize,
2956 Default,
2957 Debug,
2958 PartialEq,
2959 Eq,
2960 Hash
2961 )]
2962 pub struct NftContractReturn(pub ::ethers::core::types::Address);
2963 #[derive(
2965 Clone,
2966 ::ethers::contract::EthAbiType,
2967 ::ethers::contract::EthAbiCodec,
2968 serde::Serialize,
2969 serde::Deserialize,
2970 Default,
2971 Debug,
2972 PartialEq,
2973 Eq,
2974 Hash
2975 )]
2976 pub struct OnERC721ReceivedReturn(pub [u8; 4]);
2977 #[derive(
2979 Clone,
2980 ::ethers::contract::EthAbiType,
2981 ::ethers::contract::EthAbiCodec,
2982 serde::Serialize,
2983 serde::Deserialize,
2984 Default,
2985 Debug,
2986 PartialEq,
2987 Eq,
2988 Hash
2989 )]
2990 pub struct OnTokenTransferReturn(pub bool);
2991 #[derive(
2993 Clone,
2994 ::ethers::contract::EthAbiType,
2995 ::ethers::contract::EthAbiCodec,
2996 serde::Serialize,
2997 serde::Deserialize,
2998 Default,
2999 Debug,
3000 PartialEq,
3001 Eq,
3002 Hash
3003 )]
3004 pub struct OwnerReturn(pub ::ethers::core::types::Address);
3005 #[derive(
3007 Clone,
3008 ::ethers::contract::EthAbiType,
3009 ::ethers::contract::EthAbiCodec,
3010 serde::Serialize,
3011 serde::Deserialize,
3012 Default,
3013 Debug,
3014 PartialEq,
3015 Eq,
3016 Hash
3017 )]
3018 pub struct RedeemedFactorReturn(pub ::ethers::core::types::U256);
3019 #[derive(
3021 Clone,
3022 ::ethers::contract::EthAbiType,
3023 ::ethers::contract::EthAbiCodec,
3024 serde::Serialize,
3025 serde::Deserialize,
3026 Default,
3027 Debug,
3028 PartialEq,
3029 Eq,
3030 Hash
3031 )]
3032 pub struct RedeemedFactorIndexReturn(pub ::ethers::core::types::U256);
3033 #[derive(
3035 Clone,
3036 ::ethers::contract::EthAbiType,
3037 ::ethers::contract::EthAbiCodec,
3038 serde::Serialize,
3039 serde::Deserialize,
3040 Default,
3041 Debug,
3042 PartialEq,
3043 Eq,
3044 Hash
3045 )]
3046 pub struct RedeemedNftReturn(pub ::ethers::core::types::U256);
3047 #[derive(
3049 Clone,
3050 ::ethers::contract::EthAbiType,
3051 ::ethers::contract::EthAbiCodec,
3052 serde::Serialize,
3053 serde::Deserialize,
3054 Default,
3055 Debug,
3056 PartialEq,
3057 Eq,
3058 Hash
3059 )]
3060 pub struct RedeemedNftIndexReturn(pub ::ethers::core::types::U256);
3061 #[derive(
3063 Clone,
3064 ::ethers::contract::EthAbiType,
3065 ::ethers::contract::EthAbiCodec,
3066 serde::Serialize,
3067 serde::Deserialize,
3068 Default,
3069 Debug,
3070 PartialEq,
3071 Eq,
3072 Hash
3073 )]
3074 pub struct TotalLockedReturn(pub ::ethers::core::types::U256);
3075}