1pub use hopr_stake_2::*;
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_2 {
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("BOOST_CAP"),
75 ::std::vec![
76 ::ethers::core::abi::ethabi::Function {
77 name: ::std::borrow::ToOwned::to_owned("BOOST_CAP"),
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("FACTOR_DENOMINATOR"),
97 ::std::vec![
98 ::ethers::core::abi::ethabi::Function {
99 name: ::std::borrow::ToOwned::to_owned("FACTOR_DENOMINATOR"),
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("LOCK_TOKEN"),
119 ::std::vec![
120 ::ethers::core::abi::ethabi::Function {
121 name: ::std::borrow::ToOwned::to_owned("LOCK_TOKEN"),
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::Address,
127 internal_type: ::core::option::Option::Some(
128 ::std::borrow::ToOwned::to_owned("address"),
129 ),
130 },
131 ],
132 constant: ::core::option::Option::None,
133 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
134 },
135 ],
136 ),
137 (
138 ::std::borrow::ToOwned::to_owned("NFT_CONTRACT"),
139 ::std::vec![
140 ::ethers::core::abi::ethabi::Function {
141 name: ::std::borrow::ToOwned::to_owned("NFT_CONTRACT"),
142 inputs: ::std::vec![],
143 outputs: ::std::vec![
144 ::ethers::core::abi::ethabi::Param {
145 name: ::std::string::String::new(),
146 kind: ::ethers::core::abi::ethabi::ParamType::Address,
147 internal_type: ::core::option::Option::Some(
148 ::std::borrow::ToOwned::to_owned("contract IHoprBoost"),
149 ),
150 },
151 ],
152 constant: ::core::option::Option::None,
153 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
154 },
155 ],
156 ),
157 (
158 ::std::borrow::ToOwned::to_owned("PROGRAM_END"),
159 ::std::vec![
160 ::ethers::core::abi::ethabi::Function {
161 name: ::std::borrow::ToOwned::to_owned("PROGRAM_END"),
162 inputs: ::std::vec![],
163 outputs: ::std::vec![
164 ::ethers::core::abi::ethabi::Param {
165 name: ::std::string::String::new(),
166 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
167 256usize,
168 ),
169 internal_type: ::core::option::Option::Some(
170 ::std::borrow::ToOwned::to_owned("uint256"),
171 ),
172 },
173 ],
174 constant: ::core::option::Option::None,
175 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
176 },
177 ],
178 ),
179 (
180 ::std::borrow::ToOwned::to_owned("PROGRAM_START"),
181 ::std::vec![
182 ::ethers::core::abi::ethabi::Function {
183 name: ::std::borrow::ToOwned::to_owned("PROGRAM_START"),
184 inputs: ::std::vec![],
185 outputs: ::std::vec![
186 ::ethers::core::abi::ethabi::Param {
187 name: ::std::string::String::new(),
188 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
189 256usize,
190 ),
191 internal_type: ::core::option::Option::Some(
192 ::std::borrow::ToOwned::to_owned("uint256"),
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("REWARD_TOKEN"),
203 ::std::vec![
204 ::ethers::core::abi::ethabi::Function {
205 name: ::std::borrow::ToOwned::to_owned("REWARD_TOKEN"),
206 inputs: ::std::vec![],
207 outputs: ::std::vec![
208 ::ethers::core::abi::ethabi::Param {
209 name: ::std::string::String::new(),
210 kind: ::ethers::core::abi::ethabi::ParamType::Address,
211 internal_type: ::core::option::Option::Some(
212 ::std::borrow::ToOwned::to_owned("address"),
213 ),
214 },
215 ],
216 constant: ::core::option::Option::None,
217 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
218 },
219 ],
220 ),
221 (
222 ::std::borrow::ToOwned::to_owned("accounts"),
223 ::std::vec![
224 ::ethers::core::abi::ethabi::Function {
225 name: ::std::borrow::ToOwned::to_owned("accounts"),
226 inputs: ::std::vec![
227 ::ethers::core::abi::ethabi::Param {
228 name: ::std::string::String::new(),
229 kind: ::ethers::core::abi::ethabi::ParamType::Address,
230 internal_type: ::core::option::Option::Some(
231 ::std::borrow::ToOwned::to_owned("address"),
232 ),
233 },
234 ],
235 outputs: ::std::vec![
236 ::ethers::core::abi::ethabi::Param {
237 name: ::std::borrow::ToOwned::to_owned(
238 "actualLockedTokenAmount",
239 ),
240 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
241 256usize,
242 ),
243 internal_type: ::core::option::Option::Some(
244 ::std::borrow::ToOwned::to_owned("uint256"),
245 ),
246 },
247 ::ethers::core::abi::ethabi::Param {
248 name: ::std::borrow::ToOwned::to_owned("lastSyncTimestamp"),
249 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
250 256usize,
251 ),
252 internal_type: ::core::option::Option::Some(
253 ::std::borrow::ToOwned::to_owned("uint256"),
254 ),
255 },
256 ::ethers::core::abi::ethabi::Param {
257 name: ::std::borrow::ToOwned::to_owned("cumulatedRewards"),
258 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
259 256usize,
260 ),
261 internal_type: ::core::option::Option::Some(
262 ::std::borrow::ToOwned::to_owned("uint256"),
263 ),
264 },
265 ::ethers::core::abi::ethabi::Param {
266 name: ::std::borrow::ToOwned::to_owned("claimedRewards"),
267 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
268 256usize,
269 ),
270 internal_type: ::core::option::Option::Some(
271 ::std::borrow::ToOwned::to_owned("uint256"),
272 ),
273 },
274 ],
275 constant: ::core::option::Option::None,
276 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
277 },
278 ],
279 ),
280 (
281 ::std::borrow::ToOwned::to_owned("availableReward"),
282 ::std::vec![
283 ::ethers::core::abi::ethabi::Function {
284 name: ::std::borrow::ToOwned::to_owned("availableReward"),
285 inputs: ::std::vec![],
286 outputs: ::std::vec![
287 ::ethers::core::abi::ethabi::Param {
288 name: ::std::string::String::new(),
289 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
290 256usize,
291 ),
292 internal_type: ::core::option::Option::Some(
293 ::std::borrow::ToOwned::to_owned("uint256"),
294 ),
295 },
296 ],
297 constant: ::core::option::Option::None,
298 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
299 },
300 ],
301 ),
302 (
303 ::std::borrow::ToOwned::to_owned("claimRewards"),
304 ::std::vec![
305 ::ethers::core::abi::ethabi::Function {
306 name: ::std::borrow::ToOwned::to_owned("claimRewards"),
307 inputs: ::std::vec![
308 ::ethers::core::abi::ethabi::Param {
309 name: ::std::borrow::ToOwned::to_owned("account"),
310 kind: ::ethers::core::abi::ethabi::ParamType::Address,
311 internal_type: ::core::option::Option::Some(
312 ::std::borrow::ToOwned::to_owned("address"),
313 ),
314 },
315 ],
316 outputs: ::std::vec![],
317 constant: ::core::option::Option::None,
318 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
319 },
320 ],
321 ),
322 (
323 ::std::borrow::ToOwned::to_owned("getCumulatedRewardsIncrement"),
324 ::std::vec![
325 ::ethers::core::abi::ethabi::Function {
326 name: ::std::borrow::ToOwned::to_owned(
327 "getCumulatedRewardsIncrement",
328 ),
329 inputs: ::std::vec![
330 ::ethers::core::abi::ethabi::Param {
331 name: ::std::borrow::ToOwned::to_owned("_account"),
332 kind: ::ethers::core::abi::ethabi::ParamType::Address,
333 internal_type: ::core::option::Option::Some(
334 ::std::borrow::ToOwned::to_owned("address"),
335 ),
336 },
337 ],
338 outputs: ::std::vec![
339 ::ethers::core::abi::ethabi::Param {
340 name: ::std::string::String::new(),
341 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
342 256usize,
343 ),
344 internal_type: ::core::option::Option::Some(
345 ::std::borrow::ToOwned::to_owned("uint256"),
346 ),
347 },
348 ],
349 constant: ::core::option::Option::None,
350 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
351 },
352 ],
353 ),
354 (
355 ::std::borrow::ToOwned::to_owned("isNftTypeAndRankRedeemed1"),
356 ::std::vec![
357 ::ethers::core::abi::ethabi::Function {
358 name: ::std::borrow::ToOwned::to_owned(
359 "isNftTypeAndRankRedeemed1",
360 ),
361 inputs: ::std::vec![
362 ::ethers::core::abi::ethabi::Param {
363 name: ::std::borrow::ToOwned::to_owned("nftType"),
364 kind: ::ethers::core::abi::ethabi::ParamType::String,
365 internal_type: ::core::option::Option::Some(
366 ::std::borrow::ToOwned::to_owned("string"),
367 ),
368 },
369 ::ethers::core::abi::ethabi::Param {
370 name: ::std::borrow::ToOwned::to_owned("nftRank"),
371 kind: ::ethers::core::abi::ethabi::ParamType::String,
372 internal_type: ::core::option::Option::Some(
373 ::std::borrow::ToOwned::to_owned("string"),
374 ),
375 },
376 ::ethers::core::abi::ethabi::Param {
377 name: ::std::borrow::ToOwned::to_owned("hodler"),
378 kind: ::ethers::core::abi::ethabi::ParamType::Address,
379 internal_type: ::core::option::Option::Some(
380 ::std::borrow::ToOwned::to_owned("address"),
381 ),
382 },
383 ],
384 outputs: ::std::vec![
385 ::ethers::core::abi::ethabi::Param {
386 name: ::std::string::String::new(),
387 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
388 internal_type: ::core::option::Option::Some(
389 ::std::borrow::ToOwned::to_owned("bool"),
390 ),
391 },
392 ],
393 constant: ::core::option::Option::None,
394 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
395 },
396 ],
397 ),
398 (
399 ::std::borrow::ToOwned::to_owned("isNftTypeAndRankRedeemed2"),
400 ::std::vec![
401 ::ethers::core::abi::ethabi::Function {
402 name: ::std::borrow::ToOwned::to_owned(
403 "isNftTypeAndRankRedeemed2",
404 ),
405 inputs: ::std::vec![
406 ::ethers::core::abi::ethabi::Param {
407 name: ::std::borrow::ToOwned::to_owned("nftTypeIndex"),
408 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
409 256usize,
410 ),
411 internal_type: ::core::option::Option::Some(
412 ::std::borrow::ToOwned::to_owned("uint256"),
413 ),
414 },
415 ::ethers::core::abi::ethabi::Param {
416 name: ::std::borrow::ToOwned::to_owned("nftRank"),
417 kind: ::ethers::core::abi::ethabi::ParamType::String,
418 internal_type: ::core::option::Option::Some(
419 ::std::borrow::ToOwned::to_owned("string"),
420 ),
421 },
422 ::ethers::core::abi::ethabi::Param {
423 name: ::std::borrow::ToOwned::to_owned("hodler"),
424 kind: ::ethers::core::abi::ethabi::ParamType::Address,
425 internal_type: ::core::option::Option::Some(
426 ::std::borrow::ToOwned::to_owned("address"),
427 ),
428 },
429 ],
430 outputs: ::std::vec![
431 ::ethers::core::abi::ethabi::Param {
432 name: ::std::string::String::new(),
433 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
434 internal_type: ::core::option::Option::Some(
435 ::std::borrow::ToOwned::to_owned("bool"),
436 ),
437 },
438 ],
439 constant: ::core::option::Option::None,
440 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
441 },
442 ],
443 ),
444 (
445 ::std::borrow::ToOwned::to_owned("isNftTypeAndRankRedeemed3"),
446 ::std::vec![
447 ::ethers::core::abi::ethabi::Function {
448 name: ::std::borrow::ToOwned::to_owned(
449 "isNftTypeAndRankRedeemed3",
450 ),
451 inputs: ::std::vec![
452 ::ethers::core::abi::ethabi::Param {
453 name: ::std::borrow::ToOwned::to_owned("nftTypeIndex"),
454 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
455 256usize,
456 ),
457 internal_type: ::core::option::Option::Some(
458 ::std::borrow::ToOwned::to_owned("uint256"),
459 ),
460 },
461 ::ethers::core::abi::ethabi::Param {
462 name: ::std::borrow::ToOwned::to_owned("boostNumerator"),
463 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
464 256usize,
465 ),
466 internal_type: ::core::option::Option::Some(
467 ::std::borrow::ToOwned::to_owned("uint256"),
468 ),
469 },
470 ::ethers::core::abi::ethabi::Param {
471 name: ::std::borrow::ToOwned::to_owned("hodler"),
472 kind: ::ethers::core::abi::ethabi::ParamType::Address,
473 internal_type: ::core::option::Option::Some(
474 ::std::borrow::ToOwned::to_owned("address"),
475 ),
476 },
477 ],
478 outputs: ::std::vec![
479 ::ethers::core::abi::ethabi::Param {
480 name: ::std::string::String::new(),
481 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
482 internal_type: ::core::option::Option::Some(
483 ::std::borrow::ToOwned::to_owned("bool"),
484 ),
485 },
486 ],
487 constant: ::core::option::Option::None,
488 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
489 },
490 ],
491 ),
492 (
493 ::std::borrow::ToOwned::to_owned("isNftTypeAndRankRedeemed4"),
494 ::std::vec![
495 ::ethers::core::abi::ethabi::Function {
496 name: ::std::borrow::ToOwned::to_owned(
497 "isNftTypeAndRankRedeemed4",
498 ),
499 inputs: ::std::vec![
500 ::ethers::core::abi::ethabi::Param {
501 name: ::std::borrow::ToOwned::to_owned("nftType"),
502 kind: ::ethers::core::abi::ethabi::ParamType::String,
503 internal_type: ::core::option::Option::Some(
504 ::std::borrow::ToOwned::to_owned("string"),
505 ),
506 },
507 ::ethers::core::abi::ethabi::Param {
508 name: ::std::borrow::ToOwned::to_owned("boostNumerator"),
509 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
510 256usize,
511 ),
512 internal_type: ::core::option::Option::Some(
513 ::std::borrow::ToOwned::to_owned("uint256"),
514 ),
515 },
516 ::ethers::core::abi::ethabi::Param {
517 name: ::std::borrow::ToOwned::to_owned("hodler"),
518 kind: ::ethers::core::abi::ethabi::ParamType::Address,
519 internal_type: ::core::option::Option::Some(
520 ::std::borrow::ToOwned::to_owned("address"),
521 ),
522 },
523 ],
524 outputs: ::std::vec![
525 ::ethers::core::abi::ethabi::Param {
526 name: ::std::string::String::new(),
527 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
528 internal_type: ::core::option::Option::Some(
529 ::std::borrow::ToOwned::to_owned("bool"),
530 ),
531 },
532 ],
533 constant: ::core::option::Option::None,
534 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
535 },
536 ],
537 ),
538 (
539 ::std::borrow::ToOwned::to_owned("onERC721Received"),
540 ::std::vec![
541 ::ethers::core::abi::ethabi::Function {
542 name: ::std::borrow::ToOwned::to_owned("onERC721Received"),
543 inputs: ::std::vec![
544 ::ethers::core::abi::ethabi::Param {
545 name: ::std::string::String::new(),
546 kind: ::ethers::core::abi::ethabi::ParamType::Address,
547 internal_type: ::core::option::Option::Some(
548 ::std::borrow::ToOwned::to_owned("address"),
549 ),
550 },
551 ::ethers::core::abi::ethabi::Param {
552 name: ::std::borrow::ToOwned::to_owned("from"),
553 kind: ::ethers::core::abi::ethabi::ParamType::Address,
554 internal_type: ::core::option::Option::Some(
555 ::std::borrow::ToOwned::to_owned("address"),
556 ),
557 },
558 ::ethers::core::abi::ethabi::Param {
559 name: ::std::borrow::ToOwned::to_owned("tokenId"),
560 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
561 256usize,
562 ),
563 internal_type: ::core::option::Option::Some(
564 ::std::borrow::ToOwned::to_owned("uint256"),
565 ),
566 },
567 ::ethers::core::abi::ethabi::Param {
568 name: ::std::string::String::new(),
569 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
570 internal_type: ::core::option::Option::Some(
571 ::std::borrow::ToOwned::to_owned("bytes"),
572 ),
573 },
574 ],
575 outputs: ::std::vec![
576 ::ethers::core::abi::ethabi::Param {
577 name: ::std::string::String::new(),
578 kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
579 4usize,
580 ),
581 internal_type: ::core::option::Option::Some(
582 ::std::borrow::ToOwned::to_owned("bytes4"),
583 ),
584 },
585 ],
586 constant: ::core::option::Option::None,
587 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
588 },
589 ],
590 ),
591 (
592 ::std::borrow::ToOwned::to_owned("onTokenTransfer"),
593 ::std::vec![
594 ::ethers::core::abi::ethabi::Function {
595 name: ::std::borrow::ToOwned::to_owned("onTokenTransfer"),
596 inputs: ::std::vec![
597 ::ethers::core::abi::ethabi::Param {
598 name: ::std::borrow::ToOwned::to_owned("_from"),
599 kind: ::ethers::core::abi::ethabi::ParamType::Address,
600 internal_type: ::core::option::Option::Some(
601 ::std::borrow::ToOwned::to_owned("address"),
602 ),
603 },
604 ::ethers::core::abi::ethabi::Param {
605 name: ::std::borrow::ToOwned::to_owned("_value"),
606 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
607 256usize,
608 ),
609 internal_type: ::core::option::Option::Some(
610 ::std::borrow::ToOwned::to_owned("uint256"),
611 ),
612 },
613 ::ethers::core::abi::ethabi::Param {
614 name: ::std::string::String::new(),
615 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
616 internal_type: ::core::option::Option::Some(
617 ::std::borrow::ToOwned::to_owned("bytes"),
618 ),
619 },
620 ],
621 outputs: ::std::vec![
622 ::ethers::core::abi::ethabi::Param {
623 name: ::std::string::String::new(),
624 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
625 internal_type: ::core::option::Option::Some(
626 ::std::borrow::ToOwned::to_owned("bool"),
627 ),
628 },
629 ],
630 constant: ::core::option::Option::None,
631 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
632 },
633 ],
634 ),
635 (
636 ::std::borrow::ToOwned::to_owned("owner"),
637 ::std::vec![
638 ::ethers::core::abi::ethabi::Function {
639 name: ::std::borrow::ToOwned::to_owned("owner"),
640 inputs: ::std::vec![],
641 outputs: ::std::vec![
642 ::ethers::core::abi::ethabi::Param {
643 name: ::std::string::String::new(),
644 kind: ::ethers::core::abi::ethabi::ParamType::Address,
645 internal_type: ::core::option::Option::Some(
646 ::std::borrow::ToOwned::to_owned("address"),
647 ),
648 },
649 ],
650 constant: ::core::option::Option::None,
651 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
652 },
653 ],
654 ),
655 (
656 ::std::borrow::ToOwned::to_owned("reclaimErc20Tokens"),
657 ::std::vec![
658 ::ethers::core::abi::ethabi::Function {
659 name: ::std::borrow::ToOwned::to_owned("reclaimErc20Tokens"),
660 inputs: ::std::vec![
661 ::ethers::core::abi::ethabi::Param {
662 name: ::std::borrow::ToOwned::to_owned("tokenAddress"),
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 constant: ::core::option::Option::None,
671 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
672 },
673 ],
674 ),
675 (
676 ::std::borrow::ToOwned::to_owned("reclaimErc721Tokens"),
677 ::std::vec![
678 ::ethers::core::abi::ethabi::Function {
679 name: ::std::borrow::ToOwned::to_owned(
680 "reclaimErc721Tokens",
681 ),
682 inputs: ::std::vec![
683 ::ethers::core::abi::ethabi::Param {
684 name: ::std::borrow::ToOwned::to_owned("tokenAddress"),
685 kind: ::ethers::core::abi::ethabi::ParamType::Address,
686 internal_type: ::core::option::Option::Some(
687 ::std::borrow::ToOwned::to_owned("address"),
688 ),
689 },
690 ::ethers::core::abi::ethabi::Param {
691 name: ::std::borrow::ToOwned::to_owned("tokenId"),
692 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
693 256usize,
694 ),
695 internal_type: ::core::option::Option::Some(
696 ::std::borrow::ToOwned::to_owned("uint256"),
697 ),
698 },
699 ],
700 outputs: ::std::vec![],
701 constant: ::core::option::Option::None,
702 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
703 },
704 ],
705 ),
706 (
707 ::std::borrow::ToOwned::to_owned("redeemedFactor"),
708 ::std::vec![
709 ::ethers::core::abi::ethabi::Function {
710 name: ::std::borrow::ToOwned::to_owned("redeemedFactor"),
711 inputs: ::std::vec![
712 ::ethers::core::abi::ethabi::Param {
713 name: ::std::string::String::new(),
714 kind: ::ethers::core::abi::ethabi::ParamType::Address,
715 internal_type: ::core::option::Option::Some(
716 ::std::borrow::ToOwned::to_owned("address"),
717 ),
718 },
719 ::ethers::core::abi::ethabi::Param {
720 name: ::std::string::String::new(),
721 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
722 256usize,
723 ),
724 internal_type: ::core::option::Option::Some(
725 ::std::borrow::ToOwned::to_owned("uint256"),
726 ),
727 },
728 ],
729 outputs: ::std::vec![
730 ::ethers::core::abi::ethabi::Param {
731 name: ::std::string::String::new(),
732 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
733 256usize,
734 ),
735 internal_type: ::core::option::Option::Some(
736 ::std::borrow::ToOwned::to_owned("uint256"),
737 ),
738 },
739 ],
740 constant: ::core::option::Option::None,
741 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
742 },
743 ],
744 ),
745 (
746 ::std::borrow::ToOwned::to_owned("redeemedFactorIndex"),
747 ::std::vec![
748 ::ethers::core::abi::ethabi::Function {
749 name: ::std::borrow::ToOwned::to_owned(
750 "redeemedFactorIndex",
751 ),
752 inputs: ::std::vec![
753 ::ethers::core::abi::ethabi::Param {
754 name: ::std::string::String::new(),
755 kind: ::ethers::core::abi::ethabi::ParamType::Address,
756 internal_type: ::core::option::Option::Some(
757 ::std::borrow::ToOwned::to_owned("address"),
758 ),
759 },
760 ],
761 outputs: ::std::vec![
762 ::ethers::core::abi::ethabi::Param {
763 name: ::std::string::String::new(),
764 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
765 256usize,
766 ),
767 internal_type: ::core::option::Option::Some(
768 ::std::borrow::ToOwned::to_owned("uint256"),
769 ),
770 },
771 ],
772 constant: ::core::option::Option::None,
773 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
774 },
775 ],
776 ),
777 (
778 ::std::borrow::ToOwned::to_owned("redeemedNft"),
779 ::std::vec![
780 ::ethers::core::abi::ethabi::Function {
781 name: ::std::borrow::ToOwned::to_owned("redeemedNft"),
782 inputs: ::std::vec![
783 ::ethers::core::abi::ethabi::Param {
784 name: ::std::string::String::new(),
785 kind: ::ethers::core::abi::ethabi::ParamType::Address,
786 internal_type: ::core::option::Option::Some(
787 ::std::borrow::ToOwned::to_owned("address"),
788 ),
789 },
790 ::ethers::core::abi::ethabi::Param {
791 name: ::std::string::String::new(),
792 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
793 256usize,
794 ),
795 internal_type: ::core::option::Option::Some(
796 ::std::borrow::ToOwned::to_owned("uint256"),
797 ),
798 },
799 ],
800 outputs: ::std::vec![
801 ::ethers::core::abi::ethabi::Param {
802 name: ::std::string::String::new(),
803 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
804 256usize,
805 ),
806 internal_type: ::core::option::Option::Some(
807 ::std::borrow::ToOwned::to_owned("uint256"),
808 ),
809 },
810 ],
811 constant: ::core::option::Option::None,
812 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
813 },
814 ],
815 ),
816 (
817 ::std::borrow::ToOwned::to_owned("redeemedNftIndex"),
818 ::std::vec![
819 ::ethers::core::abi::ethabi::Function {
820 name: ::std::borrow::ToOwned::to_owned("redeemedNftIndex"),
821 inputs: ::std::vec![
822 ::ethers::core::abi::ethabi::Param {
823 name: ::std::string::String::new(),
824 kind: ::ethers::core::abi::ethabi::ParamType::Address,
825 internal_type: ::core::option::Option::Some(
826 ::std::borrow::ToOwned::to_owned("address"),
827 ),
828 },
829 ],
830 outputs: ::std::vec![
831 ::ethers::core::abi::ethabi::Param {
832 name: ::std::string::String::new(),
833 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
834 256usize,
835 ),
836 internal_type: ::core::option::Option::Some(
837 ::std::borrow::ToOwned::to_owned("uint256"),
838 ),
839 },
840 ],
841 constant: ::core::option::Option::None,
842 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
843 },
844 ],
845 ),
846 (
847 ::std::borrow::ToOwned::to_owned("renounceOwnership"),
848 ::std::vec![
849 ::ethers::core::abi::ethabi::Function {
850 name: ::std::borrow::ToOwned::to_owned("renounceOwnership"),
851 inputs: ::std::vec![],
852 outputs: ::std::vec![],
853 constant: ::core::option::Option::None,
854 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
855 },
856 ],
857 ),
858 (
859 ::std::borrow::ToOwned::to_owned("stakedHoprTokens"),
860 ::std::vec![
861 ::ethers::core::abi::ethabi::Function {
862 name: ::std::borrow::ToOwned::to_owned("stakedHoprTokens"),
863 inputs: ::std::vec![
864 ::ethers::core::abi::ethabi::Param {
865 name: ::std::borrow::ToOwned::to_owned("_account"),
866 kind: ::ethers::core::abi::ethabi::ParamType::Address,
867 internal_type: ::core::option::Option::Some(
868 ::std::borrow::ToOwned::to_owned("address"),
869 ),
870 },
871 ],
872 outputs: ::std::vec![
873 ::ethers::core::abi::ethabi::Param {
874 name: ::std::string::String::new(),
875 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
876 256usize,
877 ),
878 internal_type: ::core::option::Option::Some(
879 ::std::borrow::ToOwned::to_owned("uint256"),
880 ),
881 },
882 ],
883 constant: ::core::option::Option::None,
884 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
885 },
886 ],
887 ),
888 (
889 ::std::borrow::ToOwned::to_owned("sync"),
890 ::std::vec![
891 ::ethers::core::abi::ethabi::Function {
892 name: ::std::borrow::ToOwned::to_owned("sync"),
893 inputs: ::std::vec![
894 ::ethers::core::abi::ethabi::Param {
895 name: ::std::borrow::ToOwned::to_owned("account"),
896 kind: ::ethers::core::abi::ethabi::ParamType::Address,
897 internal_type: ::core::option::Option::Some(
898 ::std::borrow::ToOwned::to_owned("address"),
899 ),
900 },
901 ],
902 outputs: ::std::vec![],
903 constant: ::core::option::Option::None,
904 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
905 },
906 ],
907 ),
908 (
909 ::std::borrow::ToOwned::to_owned("tokensReceived"),
910 ::std::vec![
911 ::ethers::core::abi::ethabi::Function {
912 name: ::std::borrow::ToOwned::to_owned("tokensReceived"),
913 inputs: ::std::vec![
914 ::ethers::core::abi::ethabi::Param {
915 name: ::std::string::String::new(),
916 kind: ::ethers::core::abi::ethabi::ParamType::Address,
917 internal_type: ::core::option::Option::Some(
918 ::std::borrow::ToOwned::to_owned("address"),
919 ),
920 },
921 ::ethers::core::abi::ethabi::Param {
922 name: ::std::borrow::ToOwned::to_owned("from"),
923 kind: ::ethers::core::abi::ethabi::ParamType::Address,
924 internal_type: ::core::option::Option::Some(
925 ::std::borrow::ToOwned::to_owned("address"),
926 ),
927 },
928 ::ethers::core::abi::ethabi::Param {
929 name: ::std::borrow::ToOwned::to_owned("to"),
930 kind: ::ethers::core::abi::ethabi::ParamType::Address,
931 internal_type: ::core::option::Option::Some(
932 ::std::borrow::ToOwned::to_owned("address"),
933 ),
934 },
935 ::ethers::core::abi::ethabi::Param {
936 name: ::std::borrow::ToOwned::to_owned("amount"),
937 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
938 256usize,
939 ),
940 internal_type: ::core::option::Option::Some(
941 ::std::borrow::ToOwned::to_owned("uint256"),
942 ),
943 },
944 ::ethers::core::abi::ethabi::Param {
945 name: ::std::string::String::new(),
946 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
947 internal_type: ::core::option::Option::Some(
948 ::std::borrow::ToOwned::to_owned("bytes"),
949 ),
950 },
951 ::ethers::core::abi::ethabi::Param {
952 name: ::std::string::String::new(),
953 kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
954 internal_type: ::core::option::Option::Some(
955 ::std::borrow::ToOwned::to_owned("bytes"),
956 ),
957 },
958 ],
959 outputs: ::std::vec![],
960 constant: ::core::option::Option::None,
961 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
962 },
963 ],
964 ),
965 (
966 ::std::borrow::ToOwned::to_owned("totalLocked"),
967 ::std::vec![
968 ::ethers::core::abi::ethabi::Function {
969 name: ::std::borrow::ToOwned::to_owned("totalLocked"),
970 inputs: ::std::vec![],
971 outputs: ::std::vec![
972 ::ethers::core::abi::ethabi::Param {
973 name: ::std::string::String::new(),
974 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
975 256usize,
976 ),
977 internal_type: ::core::option::Option::Some(
978 ::std::borrow::ToOwned::to_owned("uint256"),
979 ),
980 },
981 ],
982 constant: ::core::option::Option::None,
983 state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
984 },
985 ],
986 ),
987 (
988 ::std::borrow::ToOwned::to_owned("transferOwnership"),
989 ::std::vec![
990 ::ethers::core::abi::ethabi::Function {
991 name: ::std::borrow::ToOwned::to_owned("transferOwnership"),
992 inputs: ::std::vec![
993 ::ethers::core::abi::ethabi::Param {
994 name: ::std::borrow::ToOwned::to_owned("newOwner"),
995 kind: ::ethers::core::abi::ethabi::ParamType::Address,
996 internal_type: ::core::option::Option::Some(
997 ::std::borrow::ToOwned::to_owned("address"),
998 ),
999 },
1000 ],
1001 outputs: ::std::vec![],
1002 constant: ::core::option::Option::None,
1003 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1004 },
1005 ],
1006 ),
1007 (
1008 ::std::borrow::ToOwned::to_owned("unlock"),
1009 ::std::vec![
1010 ::ethers::core::abi::ethabi::Function {
1011 name: ::std::borrow::ToOwned::to_owned("unlock"),
1012 inputs: ::std::vec![],
1013 outputs: ::std::vec![],
1014 constant: ::core::option::Option::None,
1015 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1016 },
1017 ],
1018 ),
1019 (
1020 ::std::borrow::ToOwned::to_owned("unlockFor"),
1021 ::std::vec![
1022 ::ethers::core::abi::ethabi::Function {
1023 name: ::std::borrow::ToOwned::to_owned("unlockFor"),
1024 inputs: ::std::vec![
1025 ::ethers::core::abi::ethabi::Param {
1026 name: ::std::borrow::ToOwned::to_owned("account"),
1027 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1028 internal_type: ::core::option::Option::Some(
1029 ::std::borrow::ToOwned::to_owned("address"),
1030 ),
1031 },
1032 ],
1033 outputs: ::std::vec![],
1034 constant: ::core::option::Option::None,
1035 state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1036 },
1037 ],
1038 ),
1039 ]),
1040 events: ::core::convert::From::from([
1041 (
1042 ::std::borrow::ToOwned::to_owned("Claimed"),
1043 ::std::vec![
1044 ::ethers::core::abi::ethabi::Event {
1045 name: ::std::borrow::ToOwned::to_owned("Claimed"),
1046 inputs: ::std::vec![
1047 ::ethers::core::abi::ethabi::EventParam {
1048 name: ::std::borrow::ToOwned::to_owned("account"),
1049 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1050 indexed: true,
1051 },
1052 ::ethers::core::abi::ethabi::EventParam {
1053 name: ::std::borrow::ToOwned::to_owned("rewardAmount"),
1054 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1055 256usize,
1056 ),
1057 indexed: true,
1058 },
1059 ],
1060 anonymous: false,
1061 },
1062 ],
1063 ),
1064 (
1065 ::std::borrow::ToOwned::to_owned("OwnershipTransferred"),
1066 ::std::vec![
1067 ::ethers::core::abi::ethabi::Event {
1068 name: ::std::borrow::ToOwned::to_owned(
1069 "OwnershipTransferred",
1070 ),
1071 inputs: ::std::vec![
1072 ::ethers::core::abi::ethabi::EventParam {
1073 name: ::std::borrow::ToOwned::to_owned("previousOwner"),
1074 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1075 indexed: true,
1076 },
1077 ::ethers::core::abi::ethabi::EventParam {
1078 name: ::std::borrow::ToOwned::to_owned("newOwner"),
1079 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1080 indexed: true,
1081 },
1082 ],
1083 anonymous: false,
1084 },
1085 ],
1086 ),
1087 (
1088 ::std::borrow::ToOwned::to_owned("Redeemed"),
1089 ::std::vec![
1090 ::ethers::core::abi::ethabi::Event {
1091 name: ::std::borrow::ToOwned::to_owned("Redeemed"),
1092 inputs: ::std::vec![
1093 ::ethers::core::abi::ethabi::EventParam {
1094 name: ::std::borrow::ToOwned::to_owned("account"),
1095 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1096 indexed: true,
1097 },
1098 ::ethers::core::abi::ethabi::EventParam {
1099 name: ::std::borrow::ToOwned::to_owned("boostTokenId"),
1100 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1101 256usize,
1102 ),
1103 indexed: true,
1104 },
1105 ::ethers::core::abi::ethabi::EventParam {
1106 name: ::std::borrow::ToOwned::to_owned("factorRegistered"),
1107 kind: ::ethers::core::abi::ethabi::ParamType::Bool,
1108 indexed: true,
1109 },
1110 ],
1111 anonymous: false,
1112 },
1113 ],
1114 ),
1115 (
1116 ::std::borrow::ToOwned::to_owned("Released"),
1117 ::std::vec![
1118 ::ethers::core::abi::ethabi::Event {
1119 name: ::std::borrow::ToOwned::to_owned("Released"),
1120 inputs: ::std::vec![
1121 ::ethers::core::abi::ethabi::EventParam {
1122 name: ::std::borrow::ToOwned::to_owned("account"),
1123 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1124 indexed: true,
1125 },
1126 ::ethers::core::abi::ethabi::EventParam {
1127 name: ::std::borrow::ToOwned::to_owned("actualAmount"),
1128 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1129 256usize,
1130 ),
1131 indexed: true,
1132 },
1133 ],
1134 anonymous: false,
1135 },
1136 ],
1137 ),
1138 (
1139 ::std::borrow::ToOwned::to_owned("RewardFueled"),
1140 ::std::vec![
1141 ::ethers::core::abi::ethabi::Event {
1142 name: ::std::borrow::ToOwned::to_owned("RewardFueled"),
1143 inputs: ::std::vec![
1144 ::ethers::core::abi::ethabi::EventParam {
1145 name: ::std::borrow::ToOwned::to_owned("amount"),
1146 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1147 256usize,
1148 ),
1149 indexed: true,
1150 },
1151 ],
1152 anonymous: false,
1153 },
1154 ],
1155 ),
1156 (
1157 ::std::borrow::ToOwned::to_owned("Staked"),
1158 ::std::vec![
1159 ::ethers::core::abi::ethabi::Event {
1160 name: ::std::borrow::ToOwned::to_owned("Staked"),
1161 inputs: ::std::vec![
1162 ::ethers::core::abi::ethabi::EventParam {
1163 name: ::std::borrow::ToOwned::to_owned("account"),
1164 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1165 indexed: true,
1166 },
1167 ::ethers::core::abi::ethabi::EventParam {
1168 name: ::std::borrow::ToOwned::to_owned("actualAmount"),
1169 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1170 256usize,
1171 ),
1172 indexed: true,
1173 },
1174 ],
1175 anonymous: false,
1176 },
1177 ],
1178 ),
1179 (
1180 ::std::borrow::ToOwned::to_owned("Sync"),
1181 ::std::vec![
1182 ::ethers::core::abi::ethabi::Event {
1183 name: ::std::borrow::ToOwned::to_owned("Sync"),
1184 inputs: ::std::vec![
1185 ::ethers::core::abi::ethabi::EventParam {
1186 name: ::std::borrow::ToOwned::to_owned("account"),
1187 kind: ::ethers::core::abi::ethabi::ParamType::Address,
1188 indexed: true,
1189 },
1190 ::ethers::core::abi::ethabi::EventParam {
1191 name: ::std::borrow::ToOwned::to_owned("increment"),
1192 kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1193 256usize,
1194 ),
1195 indexed: true,
1196 },
1197 ],
1198 anonymous: false,
1199 },
1200 ],
1201 ),
1202 ]),
1203 errors: ::std::collections::BTreeMap::new(),
1204 receive: false,
1205 fallback: false,
1206 }
1207 }
1208 pub static HOPRSTAKE2_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(
1210 __abi,
1211 );
1212 #[rustfmt::skip]
1213 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\x82\x16s\xD4\xFD\xECD\xDB\x9DD\xB8\xF2\xB6\xD5)b\x0F\x9C\x0Cpf\xA2\xC1\x17\x90U`\x04\x80T\x90\x91\x16sC\xD1={\x83`\x7F\x143\\\xF2\xCBu\xE8}\xA3i\xD0V\xC7\x17\x90U4\x80\x15b\0\0wW`\0\x80\xFD[P`@Qb\0)\x898\x03\x80b\0)\x89\x839\x81\x01`@\x81\x90Rb\0\0\x9A\x91b\0\x02\xDCV[b\0\0\xA53b\0\x01\x9AV[`\x01\x80UF`d\x81\x14b\0\0\xF1W`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x80\x86\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U`\x03\x80T\x85\x84\x16\x90\x83\x16\x17\x90U`\x04\x80T\x92\x88\x16\x92\x90\x91\x16\x91\x90\x91\x17\x90U[b\0\0\xFC\x84b\0\x01\xEAV[`@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\x01vW`\0\x80\xFD[PZ\xF1\x15\x80\x15b\0\x01\x8BW=`\0\x80>=`\0\xFD[PPPPPPPPPb\0\x039V[`\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\x02JW`@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\xB1W`@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\x02AV[b\0\x02\xBC\x81b\0\x01\x9AV[PV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x02\xD7W`\0\x80\xFD[\x91\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15b\0\x02\xF3W`\0\x80\xFD[b\0\x02\xFE\x85b\0\x02\xBFV[\x93Pb\0\x03\x0E` \x86\x01b\0\x02\xBFV[\x92Pb\0\x03\x1E`@\x86\x01b\0\x02\xBFV[\x91Pb\0\x03.``\x86\x01b\0\x02\xBFV[\x90P\x92\x95\x91\x94P\x92PV[a&@\x80b\0\x03I`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xFAW`\x005`\xE0\x1C\x80c\x8C$\xAD\xD4\x11a\x01\x1AW\x80c\xCB\xFF\xA3\xC7\x11a\0\xADW\x80c\xDD\xE4\x99y\x11a\0|W\x80c\xDD\xE4\x99y\x14a\x04\xA8W\x80c\xEF\x05&\xA2\x14a\x04\xBBW\x80c\xEF\\\xFB\x8C\x14a\x04\xCCW\x80c\xF2\xFD\xE3\x8B\x14a\x04\xDFW\x80c\xF9x\xFF\xF1\x14a\x04\xF2W`\0\x80\xFD[\x80c\xCB\xFF\xA3\xC7\x14a\x04WW\x80c\xCE#\x17~\x14a\x04bW\x80c\xD0\xC0-c\x14a\x04uW\x80c\xD0\xDAh\x01\x14a\x04\x95W`\0\x80\xFD[\x80c\xA4\xC0\xED6\x11a\0\xE9W\x80c\xA4\xC0\xED6\x14a\x04\x16W\x80c\xA5\x84\x11\x94\x14a\x04)W\x80c\xA6\x9D\xF4\xB5\x14a\x04<W\x80c\xA8=\x1E\xD6\x14a\x04DW`\0\x80\xFD[\x80c\x8C$\xAD\xD4\x14a\x03\xBCW\x80c\x8D\xA5\xCB[\x14a\x03\xDFW\x80c\x96\xA9\xCD}\x14a\x03\xF0W\x80c\x99$\x8E\xA7\x14a\x04\x03W`\0\x80\xFD[\x80c[\xBBc\xA6\x11a\x01\x92W\x80cj\xA8\xD4\xCF\x11a\x01aW\x80cj\xA8\xD4\xCF\x14a\x03mW\x80cp\xAF\t4\x14a\x03vW\x80cqP\x18\xA6\x14a\x03\x89W\x80c\x81\x12\x8C\x1D\x14a\x03\x91W`\0\x80\xFD[\x80c[\xBBc\xA6\x14a\x02\xEEW\x80c^\\\x06\xE2\x14a\x02\xF9W\x80c^\xF7=X\x14a\x03NW\x80c`g\xBC\x15\x14a\x03ZW`\0\x80\xFD[\x80c\x1F\xDA\x9A\x02\x11a\x01\xCEW\x80c\x1F\xDA\x9A\x02\x14a\x02\x9EW\x80cH\xC6NA\x14a\x02\xC9W\x80cJ\xD8K4\x14a\x02\xDCW\x80cV\x89\x14\x12\x14a\x02\xE5W`\0\x80\xFD[\x80b#\xDE)\x14a\x01\xFFW\x80c\n\x1A%z\x14a\x02\x14W\x80c\x15\x0Bz\x02\x14a\x02RW\x80c\x1F\x01M\x83\x14a\x02~W[`\0\x80\xFD[a\x02\x12a\x02\r6`\x04a\x1F\xC1V[a\x05\x1BV[\0[a\x02?a\x02\"6`\x04a lV[`\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\x02ea\x02`6`\x04a \x96V[a\x06\xC8V[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01a\x02IV[a\x02?a\x02\x8C6`\x04a!\x05V[`\x08` R`\0\x90\x81R`@\x90 T\x81V[`\x04Ta\x02\xB1\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02IV[a\x02\x12a\x02\xD76`\x04a lV[a\x0B?V[a\x02?`\x0BT\x81V[a\x02?`\nT\x81V[a\x02?ca\xE5hP\x81V[a\x03.a\x03\x076`\x04a!\x05V[`\t` R`\0\x90\x81R`@\x90 \x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x90\x93\x01T\x91\x92\x90\x91\x84V[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R`\x80\x01a\x02IV[a\x02?d\xE8\xD4\xA5\x10\0\x81V[a\x02\x12a\x03h6`\x04a!\x05V[a\x0C\xBDV[a\x02?a\x16\x9B\x81V[a\x02?a\x03\x846`\x04a!\x05V[a\x0EpV[a\x02\x12a\x0E\x81V[a\x02?a\x03\x9F6`\x04a lV[`\x07` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[a\x03\xCFa\x03\xCA6`\x04a!\xEDV[a\x0E\xB7V[`@Q\x90\x15\x15\x81R` \x01a\x02IV[`\0T`\x01`\x01`\xA0\x1B\x03\x16a\x02\xB1V[a\x03\xCFa\x03\xFE6`\x04a\"DV[a\x10)V[`\x03Ta\x02\xB1\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03\xCFa\x04$6`\x04a\"\x92V[a\x11\x86V[a\x02\x12a\x0476`\x04a!\x05V[a\x12\xF3V[a\x02\x12a\x12\xFFV[a\x03\xCFa\x04R6`\x04a\"\xFDV[a\x13\x08V[a\x02?cbg\xDE\xC0\x81V[a\x03\xCFa\x04p6`\x04a#)V[a\x14[V[a\x02?a\x04\x836`\x04a!\x05V[`\x06` R`\0\x90\x81R`@\x90 T\x81V[`\x02Ta\x02\xB1\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02\x12a\x04\xB66`\x04a!\x05V[a\x15uV[a\x02?i\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0\x81V[a\x02\x12a\x04\xDA6`\x04a!\x05V[a\x15~V[a\x02\x12a\x04\xED6`\x04a!\x05V[a\x15\x90V[a\x02?a\x05\x006`\x04a!\x05V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\t` R`@\x90 T\x90V[`\x03T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05\x89W`@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\x06\x07W`@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\x80V[`\0T`\x01`\x01`\xA0\x1B\x03\x88\x81\x16\x91\x16\x14a\x06|W`@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\x80V[\x84`\x0B`\0\x82\x82Ta\x06\x8E\x91\x90a#\x9BV[\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\x07TW`@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\x80V[cbg\xDE\xC0B\x11\x15a\x07\xC0W`@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\x80V[a\x07\xC9\x85a\x16(V[`\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\x08\x10\x90\x84\x90a#\x9BV[\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\x08aW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x85\x91\x90a#\xAEV[`\x04\x80T`@Qc\"[7}`\xE2\x1B\x81R\x91\x82\x01\x88\x90R\x91\x92P`\0\x91`\x01`\x01`\xA0\x1B\x03\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xD1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xF5\x91\x90a#\xC7V[P`\x01`\x01`\xA0\x1B\x03\x88\x16`\0\x90\x81R`\x08` R`@\x81 T\x91\x92P[\x81\x81\x10\x15a\n\xA2W`\x01`\x01`\xA0\x1B\x03\x89\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\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xA7\x91\x90a#\xC7V[P`\x04\x80T`@QcV#\x17\xC5`\xE0\x1B\x81R\x91\x82\x01\x85\x90R\x91\x92P\x87\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cV#\x17\xC5\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\xF4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\x18\x91\x90a#\xAEV[\x03a\n\x8DW\x84\x81\x10\x15a\nLW`\x01`\x01`\xA0\x1B\x03\x8B\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x90 \x8A\x90U[`@Q\x85\x82\x10\x90\x8B\x90`\x01`\x01`\xA0\x1B\x03\x8E\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\xA2V[PP\x80\x80a\n\x9A\x90a#\xEBV[\x91PPa\t\x13V[\x81\x81\x03a\x0B)W`\x01`\x01`\xA0\x1B\x03\x89\x16`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x8C\x90U\x92\x82R`\x08\x90R\x90\x81 \x80T`\x01\x92\x90a\n\xEA\x90\x84\x90a#\x9BV[\x90\x91UPP`@Q`\x01\x90\x89\x90`\x01`\x01`\xA0\x1B\x03\x8C\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\x99\x98PPPPPPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0BiW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[`\x02`\x01T\x03a\x0B\xBBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x80V[`\x02`\x01U`\x04T`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x83\x16\x03a\x0C,W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FHoprStake: Cannot claim HoprBoos`D\x82\x01Rd\x1D\x08\x13\x91\x95`\xDA\x1B`d\x82\x01R`\x84\x01a\x05\x80V[\x81`\x01`\x01`\xA0\x1B\x03\x16c#\xB8r\xDD0a\x0CN`\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\x0C\x9DW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xB1W=`\0\x80>=`\0\xFD[PP`\x01\x80UPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\xE7W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[`\x02`\x01T\x03a\r9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x80V[`\x02`\x01\x81\x90UT`\0\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x83\x16\x03a\r\xD7W`\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\r\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xC6\x91\x90a#\xAEV[a\r\xD0\x91\x90a$9V[\x90Pa\x0EBV[`@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\x0E\x1BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E?\x91\x90a#\xAEV[\x90P[a\x0Eha\x0EW`\0T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x83a\x16\xB3V[PP`\x01\x80UV[`\0a\x0E{\x82a\x17\nV[\x92\x91PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0E\xABW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[a\x0E\xB5`\0a\x18\xF1V[V[`\0\x80[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x10\x1CW`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x05` \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\x0FCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Fg\x91\x90a#\xC7V[P\x87Q` \x89\x01 `\x04\x80T`@Qc\xC5\x88\xFF\x8B`\xE0\x1B\x81R\x91\x82\x01\x86\x90R\x92\x93P\x90\x91`\x01`\x01`\xA0\x1B\x03\x16\x90c\xC5\x88\xFF\x8B\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xBBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x0F\xE3\x91\x90\x81\x01\x90a$pV[\x80Q\x90` \x01 \x14\x80\x15a\x0F\xF6WP\x80\x86\x14[\x15a\x10\x07W`\x01\x93PPPPa\x10\"V[PP\x80\x80a\x10\x14\x90a#\xEBV[\x91PPa\x0E\xBBV[P`\0\x90P[\x93\x92PPPV[`\0\x80[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x10\x1CW`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\xC8{V\xDD`\xE0\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\xC8{V\xDD\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\xB6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x10\xDE\x91\x90\x81\x01\x90a$pV[`\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\x11*W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11N\x91\x90a#\xAEV[\x14\x80\x15a\x11`WPa\x11`\x81\x87a\x19AV[\x15a\x11qW`\x01\x93PPPPa\x10\"V[PP\x80\x80a\x11~\x90a#\xEBV[\x91PPa\x10-V[`\x02T`\0\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x11\xF8W`@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\x80V[cbg\xDE\xC0B\x11\x15a\x12dW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FHoprStake: Program ended, cannot`D\x82\x01Rn\x109\xBA0\xB5\xB2\x900\xB7<\xB6\xB7\xB92\x97`\x89\x1B`d\x82\x01R`\x84\x01a\x05\x80V[a\x12m\x84a\x16(V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\t` R`@\x81 \x80T\x85\x92\x90a\x12\x95\x90\x84\x90a#\x9BV[\x92PP\x81\x90UP\x82`\n`\0\x82\x82Ta\x12\xAE\x91\x90a#\x9BV[\x90\x91UPP`@Q\x83\x90`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x7F\x9Eq\xBC\x8E\xEA\x02\xA69i\xF5\t\x81\x8F-\xAF\xB9%E2\x90C\x19\xF9\xDB\xDAy\xB6{\xD3J_=\x90`\0\x90\xA3P`\x01\x93\x92PPPV[a\x12\xFC\x81a\x16(V[PV[a\x0E\xB53a\x19\xEAV[`\0\x80[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x10\x1CW`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x05` \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\x13\x94W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xB8\x91\x90a#\xC7V[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\x14\x05W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14)\x91\x90a#\xAEV[\x14\x80\x15a\x145WP\x80\x86\x14[\x15a\x14FW`\x01\x93PPPPa\x10\"V[PP\x80\x80a\x14S\x90a#\xEBV[\x91PPa\x13\x0CV[`\0\x80\x84\x84`@Q` \x01a\x14q\x92\x91\x90a$\xE7V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x15iW`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\xC8{V\xDD`\xE0\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\xC8{V\xDD\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x0EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x156\x91\x90\x81\x01\x90a$pV[\x90Pa\x15B\x81\x85a\x19AV[\x15a\x15TW`\x01\x94PPPPPa\x10\"V[PP\x80\x80a\x15a\x90a#\xEBV[\x91PPa\x14\x85V[P`\0\x95\x94PPPPPV[a\x12\xFC\x81a\x19\xEAV[a\x15\x87\x81a\x16(V[a\x12\xFC\x81a\x1B\xC8V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x15\xBAW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x16\x1FW`@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\x80V[a\x12\xFC\x81a\x18\xF1V[`\0a\x163\x82a\x17\nV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x81 `\x02\x01\x80T\x92\x93P\x83\x92\x90\x91\x90a\x16c\x90\x84\x90a#\x9BV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\t` R`@\x80\x82 B`\x01\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[`@\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\x17\x05\x90\x84\x90a\x1DYV[PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\x80\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x01T``\x82\x01Rca\xE5hPB\x11\x15\x80a\x17mWPcbg\xDE\xC0\x81` \x01Q\x10\x15[\x15a\x17{WP`\0\x92\x91PPV[\x80Q`\0\x90a\x17\x8D\x90a\x16\x9B\x90a%#V[\x90P`\0[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x08` R`@\x90 T\x81\x10\x15a\x18\x85W`\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\x18\x1AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18>\x91\x90a#\xC7V[P\x85Q\x90\x91P\x81\x90a\x18Z\x90i\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0a\x1E+V[a\x18d\x91\x90a%#V[a\x18n\x90\x85a#\x9BV[\x93PPP\x80\x80a\x18}\x90a#\xEBV[\x91PPa\x17\x92V[Pd\xE8\xD4\xA5\x10\0a\x18\xB5cbg\xDE\xC0a\x18\xAFca\xE5hP\x86` \x01Qa\x1EA\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90a\x1E+V[a\x18\xCBcbg\xDE\xC0a\x18\xAFBca\xE5hPa\x1EAV[a\x18\xD5\x91\x90a$9V[a\x18\xDF\x90\x83a%#V[a\x18\xE9\x91\x90a%:V[\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[\x80Q\x82Q`\0\x91\x84\x91\x84\x91\x90\x84\x90a\x19Z\x90\x83\x90a$9V[\x90P`\0\x84a\x19j`\x01\x84a$9V[\x81Q\x81\x10a\x19zWa\x19za%\\V[\x01` \x01Q`\x01`\x01`\xF8\x1B\x03\x19\x16\x90P`/`\xF8\x1B\x81\x14a\x19\xA4W`\0\x95PPPPPPa\x0E{V[`\0a\x19\xB1\x84` a$9V[a\x19\xBC\x90`\x08a%#V[\x90P`\0\x80a\x19\xCA\x87a%rV[\x97\x90\x94\x01` \x01Q\x96\x82\x1C\x96\x90\x91\x1C\x95\x90\x95\x14\x95PPPPPP\x92\x91PPV[cbg\xDE\xC0B\x11a\x1AYW`@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\x80V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` R`@\x90 Ta\x1A{\x82a\x16(V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\t` R`@\x81 \x81\x90U`\n\x80T\x83\x92\x90a\x1A\xA8\x90\x84\x90a$9V[\x90\x91UPa\x1A\xB7\x90P\x82a\x1B\xC8V[`\x02Ta\x1A\xCE\x90`\x01`\x01`\xA0\x1B\x03\x16\x83\x83a\x16\xB3V[`\0[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x1B\x8DW`\x04\x80T`\x01`\x01`\xA0\x1B\x03\x85\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\x1BbW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1BvW=`\0\x80>=`\0\xFD[PPPP\x80\x80a\x1B\x85\x90a#\xEBV[\x91PPa\x1A\xD1V[P`@Q\x81\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\xB2\x1F\xB5-WI\xB8\x0F1\x82\xF8\xC6\x99\"6\xB5\xE5Wf\x81\x88\t\x14HM\x7FL\x9B\x06.a\x9E\x90`\0\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\x80\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x82\x90R`\x03\x01T``\x83\x01\x81\x90R\x91\x92\x91a\x1C\x1D\x91a$9V[\x90P`\0\x81\x11a\x1CoW`@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\x80V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x90 `\x02\x81\x01T`\x03\x90\x91\x01U`\x0BT\x81\x11\x15a\x1C\xF0W`@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\x80V[\x80`\x0B`\0\x82\x82Ta\x1D\x02\x91\x90a$9V[\x90\x91UPP`\x03Ta\x1D\x1E\x90`\x01`\x01`\xA0\x1B\x03\x16\x84\x83a\x16\xB3V[`@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[`\0a\x1D\xAE\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\x1EQ\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x17\x05W\x80\x80` \x01\x90Q\x81\x01\x90a\x1D\xCC\x91\x90a%\x99V[a\x17\x05W`@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\x80V[`\0\x81\x83\x10a\x1E:W\x81a\x10\"V[P\x90\x91\x90PV[`\0\x81\x83\x10\x15a\x1E:W\x81a\x10\"V[``a\x18\xE9\x84\x84`\0\x85\x85\x84;a\x1E\xAAW`@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\x80V[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa\x1E\xC6\x91\x90a%\xBBV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x1F\x03W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x1F\x08V[``\x91P[P\x91P\x91Pa\x1F\x18\x82\x82\x86a\x1F#V[\x97\x96PPPPPPPV[``\x83\x15a\x1F2WP\x81a\x10\"V[\x82Q\x15a\x1FBW\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x91\x90a%\xD7V[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1FsW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x1F\x8AW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\xA2W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1F\xBAW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a\x1F\xDDW`\0\x80\xFD[a\x1F\xE6\x89a\x1F\\V[\x97Pa\x1F\xF4` \x8A\x01a\x1F\\V[\x96Pa \x02`@\x8A\x01a\x1F\\V[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a &W`\0\x80\xFD[a 2\x8C\x83\x8D\x01a\x1FxV[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a KW`\0\x80\xFD[Pa X\x8B\x82\x8C\x01a\x1FxV[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[`\0\x80`@\x83\x85\x03\x12\x15a \x7FW`\0\x80\xFD[a \x88\x83a\x1F\\V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a \xAEW`\0\x80\xFD[a \xB7\x86a\x1F\\V[\x94Pa \xC5` \x87\x01a\x1F\\V[\x93P`@\x86\x015\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a \xE8W`\0\x80\xFD[a \xF4\x88\x82\x89\x01a\x1FxV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a!\x17W`\0\x80\xFD[a\x10\"\x82a\x1F\\V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!_Wa!_a! V[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a!\x81Wa!\x81a! V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0a!\xA2a!\x9D\x84a!gV[a!6V[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15a!\xB6W`\0\x80\xFD[\x82\x82` \x83\x017`\0` \x84\x83\x01\x01R\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a!\xDEW`\0\x80\xFD[a\x10\"\x83\x835` \x85\x01a!\x8FV[`\0\x80`\0``\x84\x86\x03\x12\x15a\"\x02W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"\x19W`\0\x80\xFD[a\"%\x86\x82\x87\x01a!\xCDV[\x93PP` \x84\x015\x91Pa\";`@\x85\x01a\x1F\\V[\x90P\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a\"YW`\0\x80\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"wW`\0\x80\xFD[a\"\x83\x86\x82\x87\x01a!\xCDV[\x92PPa\";`@\x85\x01a\x1F\\V[`\0\x80`\0``\x84\x86\x03\x12\x15a\"\xA7W`\0\x80\xFD[a\"\xB0\x84a\x1F\\V[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"\xD3W`\0\x80\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\"\xE4W`\0\x80\xFD[a\"\xF3\x86\x825` \x84\x01a!\x8FV[\x91PP\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a#\x12W`\0\x80\xFD[\x835\x92P` \x84\x015\x91Pa\";`@\x85\x01a\x1F\\V[`\0\x80`\0``\x84\x86\x03\x12\x15a#>W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a#VW`\0\x80\xFD[a#b\x87\x83\x88\x01a!\xCDV[\x94P` \x86\x015\x91P\x80\x82\x11\x15a#xW`\0\x80\xFD[Pa\"\x83\x86\x82\x87\x01a!\xCDV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x0E{Wa\x0E{a#\x85V[`\0` \x82\x84\x03\x12\x15a#\xC0W`\0\x80\xFD[PQ\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a#\xDAW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0`\x01\x82\x01a#\xFDWa#\xFDa#\x85V[P`\x01\x01\x90V[` \x80\x82R\x81\x81\x01R\x7FOwnable: caller is not the owner`@\x82\x01R``\x01\x90V[\x81\x81\x03\x81\x81\x11\x15a\x0E{Wa\x0E{a#\x85V[`\0[\x83\x81\x10\x15a$gW\x81\x81\x01Q\x83\x82\x01R` \x01a$OV[PP`\0\x91\x01RV[`\0` \x82\x84\x03\x12\x15a$\x82W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a$\x99W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a$\xAAW`\0\x80\xFD[\x80Qa$\xB8a!\x9D\x82a!gV[\x81\x81R\x85` \x83\x85\x01\x01\x11\x15a$\xCDW`\0\x80\xFD[a$\xDE\x82` \x83\x01` \x86\x01a$LV[\x95\x94PPPPPV[`\0\x83Qa$\xF9\x81\x84` \x88\x01a$LV[`/`\xF8\x1B\x90\x83\x01\x90\x81R\x83Qa%\x17\x81`\x01\x84\x01` \x88\x01a$LV[\x01`\x01\x01\x94\x93PPPPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x0E{Wa\x0E{a#\x85V[`\0\x82a%WWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a%\x93W`\0\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\0` \x82\x84\x03\x12\x15a%\xABW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x10\"W`\0\x80\xFD[`\0\x82Qa%\xCD\x81\x84` \x87\x01a$LV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra%\xF6\x81`@\x85\x01` \x87\x01a$LV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA2dipfsX\"\x12 H\xE9S\xF4T\xA1\xFB\x90\xB3\xEE\x1C\x0F'\xB5i<\x9E\xD6kq0\xDCZ\xDCi\x18\xE3\xD3\xF78\xE6dsolcC\0\x08\x13\x003";
1214 pub static HOPRSTAKE2_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1216 __BYTECODE,
1217 );
1218 #[rustfmt::skip]
1219 const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xFAW`\x005`\xE0\x1C\x80c\x8C$\xAD\xD4\x11a\x01\x1AW\x80c\xCB\xFF\xA3\xC7\x11a\0\xADW\x80c\xDD\xE4\x99y\x11a\0|W\x80c\xDD\xE4\x99y\x14a\x04\xA8W\x80c\xEF\x05&\xA2\x14a\x04\xBBW\x80c\xEF\\\xFB\x8C\x14a\x04\xCCW\x80c\xF2\xFD\xE3\x8B\x14a\x04\xDFW\x80c\xF9x\xFF\xF1\x14a\x04\xF2W`\0\x80\xFD[\x80c\xCB\xFF\xA3\xC7\x14a\x04WW\x80c\xCE#\x17~\x14a\x04bW\x80c\xD0\xC0-c\x14a\x04uW\x80c\xD0\xDAh\x01\x14a\x04\x95W`\0\x80\xFD[\x80c\xA4\xC0\xED6\x11a\0\xE9W\x80c\xA4\xC0\xED6\x14a\x04\x16W\x80c\xA5\x84\x11\x94\x14a\x04)W\x80c\xA6\x9D\xF4\xB5\x14a\x04<W\x80c\xA8=\x1E\xD6\x14a\x04DW`\0\x80\xFD[\x80c\x8C$\xAD\xD4\x14a\x03\xBCW\x80c\x8D\xA5\xCB[\x14a\x03\xDFW\x80c\x96\xA9\xCD}\x14a\x03\xF0W\x80c\x99$\x8E\xA7\x14a\x04\x03W`\0\x80\xFD[\x80c[\xBBc\xA6\x11a\x01\x92W\x80cj\xA8\xD4\xCF\x11a\x01aW\x80cj\xA8\xD4\xCF\x14a\x03mW\x80cp\xAF\t4\x14a\x03vW\x80cqP\x18\xA6\x14a\x03\x89W\x80c\x81\x12\x8C\x1D\x14a\x03\x91W`\0\x80\xFD[\x80c[\xBBc\xA6\x14a\x02\xEEW\x80c^\\\x06\xE2\x14a\x02\xF9W\x80c^\xF7=X\x14a\x03NW\x80c`g\xBC\x15\x14a\x03ZW`\0\x80\xFD[\x80c\x1F\xDA\x9A\x02\x11a\x01\xCEW\x80c\x1F\xDA\x9A\x02\x14a\x02\x9EW\x80cH\xC6NA\x14a\x02\xC9W\x80cJ\xD8K4\x14a\x02\xDCW\x80cV\x89\x14\x12\x14a\x02\xE5W`\0\x80\xFD[\x80b#\xDE)\x14a\x01\xFFW\x80c\n\x1A%z\x14a\x02\x14W\x80c\x15\x0Bz\x02\x14a\x02RW\x80c\x1F\x01M\x83\x14a\x02~W[`\0\x80\xFD[a\x02\x12a\x02\r6`\x04a\x1F\xC1V[a\x05\x1BV[\0[a\x02?a\x02\"6`\x04a lV[`\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\x02ea\x02`6`\x04a \x96V[a\x06\xC8V[`@Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x91\x16\x81R` \x01a\x02IV[a\x02?a\x02\x8C6`\x04a!\x05V[`\x08` R`\0\x90\x81R`@\x90 T\x81V[`\x04Ta\x02\xB1\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02IV[a\x02\x12a\x02\xD76`\x04a lV[a\x0B?V[a\x02?`\x0BT\x81V[a\x02?`\nT\x81V[a\x02?ca\xE5hP\x81V[a\x03.a\x03\x076`\x04a!\x05V[`\t` R`\0\x90\x81R`@\x90 \x80T`\x01\x82\x01T`\x02\x83\x01T`\x03\x90\x93\x01T\x91\x92\x90\x91\x84V[`@\x80Q\x94\x85R` \x85\x01\x93\x90\x93R\x91\x83\x01R``\x82\x01R`\x80\x01a\x02IV[a\x02?d\xE8\xD4\xA5\x10\0\x81V[a\x02\x12a\x03h6`\x04a!\x05V[a\x0C\xBDV[a\x02?a\x16\x9B\x81V[a\x02?a\x03\x846`\x04a!\x05V[a\x0EpV[a\x02\x12a\x0E\x81V[a\x02?a\x03\x9F6`\x04a lV[`\x07` \x90\x81R`\0\x92\x83R`@\x80\x84 \x90\x91R\x90\x82R\x90 T\x81V[a\x03\xCFa\x03\xCA6`\x04a!\xEDV[a\x0E\xB7V[`@Q\x90\x15\x15\x81R` \x01a\x02IV[`\0T`\x01`\x01`\xA0\x1B\x03\x16a\x02\xB1V[a\x03\xCFa\x03\xFE6`\x04a\"DV[a\x10)V[`\x03Ta\x02\xB1\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03\xCFa\x04$6`\x04a\"\x92V[a\x11\x86V[a\x02\x12a\x0476`\x04a!\x05V[a\x12\xF3V[a\x02\x12a\x12\xFFV[a\x03\xCFa\x04R6`\x04a\"\xFDV[a\x13\x08V[a\x02?cbg\xDE\xC0\x81V[a\x03\xCFa\x04p6`\x04a#)V[a\x14[V[a\x02?a\x04\x836`\x04a!\x05V[`\x06` R`\0\x90\x81R`@\x90 T\x81V[`\x02Ta\x02\xB1\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02\x12a\x04\xB66`\x04a!\x05V[a\x15uV[a\x02?i\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0\x81V[a\x02\x12a\x04\xDA6`\x04a!\x05V[a\x15~V[a\x02\x12a\x04\xED6`\x04a!\x05V[a\x15\x90V[a\x02?a\x05\x006`\x04a!\x05V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\t` R`@\x90 T\x90V[`\x03T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x05\x89W`@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\x06\x07W`@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\x80V[`\0T`\x01`\x01`\xA0\x1B\x03\x88\x81\x16\x91\x16\x14a\x06|W`@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\x80V[\x84`\x0B`\0\x82\x82Ta\x06\x8E\x91\x90a#\x9BV[\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\x07TW`@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\x80V[cbg\xDE\xC0B\x11\x15a\x07\xC0W`@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\x80V[a\x07\xC9\x85a\x16(V[`\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\x08\x10\x90\x84\x90a#\x9BV[\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\x08aW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\x85\x91\x90a#\xAEV[`\x04\x80T`@Qc\"[7}`\xE2\x1B\x81R\x91\x82\x01\x88\x90R\x91\x92P`\0\x91`\x01`\x01`\xA0\x1B\x03\x16\x90c\x89l\xDD\xF4\x90`$\x01`@\x80Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x08\xD1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x08\xF5\x91\x90a#\xC7V[P`\x01`\x01`\xA0\x1B\x03\x88\x16`\0\x90\x81R`\x08` R`@\x81 T\x91\x92P[\x81\x81\x10\x15a\n\xA2W`\x01`\x01`\xA0\x1B\x03\x89\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\x83W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\t\xA7\x91\x90a#\xC7V[P`\x04\x80T`@QcV#\x17\xC5`\xE0\x1B\x81R\x91\x82\x01\x85\x90R\x91\x92P\x87\x91`\x01`\x01`\xA0\x1B\x03\x16\x90cV#\x17\xC5\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\t\xF4W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\n\x18\x91\x90a#\xAEV[\x03a\n\x8DW\x84\x81\x10\x15a\nLW`\x01`\x01`\xA0\x1B\x03\x8B\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x90\x91R\x90 \x8A\x90U[`@Q\x85\x82\x10\x90\x8B\x90`\x01`\x01`\xA0\x1B\x03\x8E\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\xA2V[PP\x80\x80a\n\x9A\x90a#\xEBV[\x91PPa\t\x13V[\x81\x81\x03a\x0B)W`\x01`\x01`\xA0\x1B\x03\x89\x16`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x8C\x90U\x92\x82R`\x08\x90R\x90\x81 \x80T`\x01\x92\x90a\n\xEA\x90\x84\x90a#\x9BV[\x90\x91UPP`@Q`\x01\x90\x89\x90`\x01`\x01`\xA0\x1B\x03\x8C\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\x99\x98PPPPPPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0BiW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[`\x02`\x01T\x03a\x0B\xBBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x80V[`\x02`\x01U`\x04T`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x83\x16\x03a\x0C,W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FHoprStake: Cannot claim HoprBoos`D\x82\x01Rd\x1D\x08\x13\x91\x95`\xDA\x1B`d\x82\x01R`\x84\x01a\x05\x80V[\x81`\x01`\x01`\xA0\x1B\x03\x16c#\xB8r\xDD0a\x0CN`\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\x0C\x9DW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x0C\xB1W=`\0\x80>=`\0\xFD[PP`\x01\x80UPPPPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C\xE7W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[`\x02`\x01T\x03a\r9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x05\x80V[`\x02`\x01\x81\x90UT`\0\x90`\x01`\x01`\xA0\x1B\x03\x90\x81\x16\x90\x83\x16\x03a\r\xD7W`\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\r\xA2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xC6\x91\x90a#\xAEV[a\r\xD0\x91\x90a$9V[\x90Pa\x0EBV[`@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\x0E\x1BW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0E?\x91\x90a#\xAEV[\x90P[a\x0Eha\x0EW`\0T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x83a\x16\xB3V[PP`\x01\x80UV[`\0a\x0E{\x82a\x17\nV[\x92\x91PPV[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0E\xABW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[a\x0E\xB5`\0a\x18\xF1V[V[`\0\x80[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x10\x1CW`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x05` \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\x0FCW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0Fg\x91\x90a#\xC7V[P\x87Q` \x89\x01 `\x04\x80T`@Qc\xC5\x88\xFF\x8B`\xE0\x1B\x81R\x91\x82\x01\x86\x90R\x92\x93P\x90\x91`\x01`\x01`\xA0\x1B\x03\x16\x90c\xC5\x88\xFF\x8B\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0F\xBBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x0F\xE3\x91\x90\x81\x01\x90a$pV[\x80Q\x90` \x01 \x14\x80\x15a\x0F\xF6WP\x80\x86\x14[\x15a\x10\x07W`\x01\x93PPPPa\x10\"V[PP\x80\x80a\x10\x14\x90a#\xEBV[\x91PPa\x0E\xBBV[P`\0\x90P[\x93\x92PPPV[`\0\x80[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x10\x1CW`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\xC8{V\xDD`\xE0\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\xC8{V\xDD\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\xB6W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x10\xDE\x91\x90\x81\x01\x90a$pV[`\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\x11*W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11N\x91\x90a#\xAEV[\x14\x80\x15a\x11`WPa\x11`\x81\x87a\x19AV[\x15a\x11qW`\x01\x93PPPPa\x10\"V[PP\x80\x80a\x11~\x90a#\xEBV[\x91PPa\x10-V[`\x02T`\0\x90`\x01`\x01`\xA0\x1B\x03\x163\x14a\x11\xF8W`@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\x80V[cbg\xDE\xC0B\x11\x15a\x12dW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FHoprStake: Program ended, cannot`D\x82\x01Rn\x109\xBA0\xB5\xB2\x900\xB7<\xB6\xB7\xB92\x97`\x89\x1B`d\x82\x01R`\x84\x01a\x05\x80V[a\x12m\x84a\x16(V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\t` R`@\x81 \x80T\x85\x92\x90a\x12\x95\x90\x84\x90a#\x9BV[\x92PP\x81\x90UP\x82`\n`\0\x82\x82Ta\x12\xAE\x91\x90a#\x9BV[\x90\x91UPP`@Q\x83\x90`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x7F\x9Eq\xBC\x8E\xEA\x02\xA69i\xF5\t\x81\x8F-\xAF\xB9%E2\x90C\x19\xF9\xDB\xDAy\xB6{\xD3J_=\x90`\0\x90\xA3P`\x01\x93\x92PPPV[a\x12\xFC\x81a\x16(V[PV[a\x0E\xB53a\x19\xEAV[`\0\x80[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x10\x1CW`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x05` \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\x13\x94W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13\xB8\x91\x90a#\xC7V[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\x14\x05W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14)\x91\x90a#\xAEV[\x14\x80\x15a\x145WP\x80\x86\x14[\x15a\x14FW`\x01\x93PPPPa\x10\"V[PP\x80\x80a\x14S\x90a#\xEBV[\x91PPa\x13\x0CV[`\0\x80\x84\x84`@Q` \x01a\x14q\x92\x91\x90a$\xE7V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x15iW`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\0\x90\x81R`\x05` \x90\x81R`@\x80\x83 \x85\x84R\x90\x91R\x80\x82 T`\x04\x80T\x92Qc\xC8{V\xDD`\xE0\x1B\x81R\x90\x81\x01\x82\x90R\x90\x93\x91\x90\x91\x16\x90c\xC8{V\xDD\x90`$\x01`\0`@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\x0EW=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x156\x91\x90\x81\x01\x90a$pV[\x90Pa\x15B\x81\x85a\x19AV[\x15a\x15TW`\x01\x94PPPPPa\x10\"V[PP\x80\x80a\x15a\x90a#\xEBV[\x91PPa\x14\x85V[P`\0\x95\x94PPPPPV[a\x12\xFC\x81a\x19\xEAV[a\x15\x87\x81a\x16(V[a\x12\xFC\x81a\x1B\xC8V[`\0T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x15\xBAW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x90a$\x04V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x16\x1FW`@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\x80V[a\x12\xFC\x81a\x18\xF1V[`\0a\x163\x82a\x17\nV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x81 `\x02\x01\x80T\x92\x93P\x83\x92\x90\x91\x90a\x16c\x90\x84\x90a#\x9BV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\t` R`@\x80\x82 B`\x01\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[`@\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\x17\x05\x90\x84\x90a\x1DYV[PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\x80\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x91\x90\x91R`\x03\x01T``\x82\x01Rca\xE5hPB\x11\x15\x80a\x17mWPcbg\xDE\xC0\x81` \x01Q\x10\x15[\x15a\x17{WP`\0\x92\x91PPV[\x80Q`\0\x90a\x17\x8D\x90a\x16\x9B\x90a%#V[\x90P`\0[`\x01`\x01`\xA0\x1B\x03\x85\x16`\0\x90\x81R`\x08` R`@\x90 T\x81\x10\x15a\x18\x85W`\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\x18\x1AW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x18>\x91\x90a#\xC7V[P\x85Q\x90\x91P\x81\x90a\x18Z\x90i\xD3\xC2\x1B\xCE\xCC\xED\xA1\0\0\0a\x1E+V[a\x18d\x91\x90a%#V[a\x18n\x90\x85a#\x9BV[\x93PPP\x80\x80a\x18}\x90a#\xEBV[\x91PPa\x17\x92V[Pd\xE8\xD4\xA5\x10\0a\x18\xB5cbg\xDE\xC0a\x18\xAFca\xE5hP\x86` \x01Qa\x1EA\x90\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x90a\x1E+V[a\x18\xCBcbg\xDE\xC0a\x18\xAFBca\xE5hPa\x1EAV[a\x18\xD5\x91\x90a$9V[a\x18\xDF\x90\x83a%#V[a\x18\xE9\x91\x90a%:V[\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[\x80Q\x82Q`\0\x91\x84\x91\x84\x91\x90\x84\x90a\x19Z\x90\x83\x90a$9V[\x90P`\0\x84a\x19j`\x01\x84a$9V[\x81Q\x81\x10a\x19zWa\x19za%\\V[\x01` \x01Q`\x01`\x01`\xF8\x1B\x03\x19\x16\x90P`/`\xF8\x1B\x81\x14a\x19\xA4W`\0\x95PPPPPPa\x0E{V[`\0a\x19\xB1\x84` a$9V[a\x19\xBC\x90`\x08a%#V[\x90P`\0\x80a\x19\xCA\x87a%rV[\x97\x90\x94\x01` \x01Q\x96\x82\x1C\x96\x90\x91\x1C\x95\x90\x95\x14\x95PPPPPP\x92\x91PPV[cbg\xDE\xC0B\x11a\x1AYW`@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\x80V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` R`@\x90 Ta\x1A{\x82a\x16(V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\t` R`@\x81 \x81\x90U`\n\x80T\x83\x92\x90a\x1A\xA8\x90\x84\x90a$9V[\x90\x91UPa\x1A\xB7\x90P\x82a\x1B\xC8V[`\x02Ta\x1A\xCE\x90`\x01`\x01`\xA0\x1B\x03\x16\x83\x83a\x16\xB3V[`\0[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x06` R`@\x90 T\x81\x10\x15a\x1B\x8DW`\x04\x80T`\x01`\x01`\xA0\x1B\x03\x85\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\x1BbW`\0\x80\xFD[PZ\xF1\x15\x80\x15a\x1BvW=`\0\x80>=`\0\xFD[PPPP\x80\x80a\x1B\x85\x90a#\xEBV[\x91PPa\x1A\xD1V[P`@Q\x81\x90`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\xB2\x1F\xB5-WI\xB8\x0F1\x82\xF8\xC6\x99\"6\xB5\xE5Wf\x81\x88\t\x14HM\x7FL\x9B\x06.a\x9E\x90`\0\x90\xA3PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x81Q`\x80\x81\x01\x83R\x81T\x81R`\x01\x82\x01T\x93\x81\x01\x93\x90\x93R`\x02\x81\x01T\x91\x83\x01\x82\x90R`\x03\x01T``\x83\x01\x81\x90R\x91\x92\x91a\x1C\x1D\x91a$9V[\x90P`\0\x81\x11a\x1CoW`@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\x80V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\t` R`@\x90 `\x02\x81\x01T`\x03\x90\x91\x01U`\x0BT\x81\x11\x15a\x1C\xF0W`@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\x80V[\x80`\x0B`\0\x82\x82Ta\x1D\x02\x91\x90a$9V[\x90\x91UPP`\x03Ta\x1D\x1E\x90`\x01`\x01`\xA0\x1B\x03\x16\x84\x83a\x16\xB3V[`@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[`\0a\x1D\xAE\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\x1EQ\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x17\x05W\x80\x80` \x01\x90Q\x81\x01\x90a\x1D\xCC\x91\x90a%\x99V[a\x17\x05W`@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\x80V[`\0\x81\x83\x10a\x1E:W\x81a\x10\"V[P\x90\x91\x90PV[`\0\x81\x83\x10\x15a\x1E:W\x81a\x10\"V[``a\x18\xE9\x84\x84`\0\x85\x85\x84;a\x1E\xAAW`@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\x80V[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa\x1E\xC6\x91\x90a%\xBBV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a\x1F\x03W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x1F\x08V[``\x91P[P\x91P\x91Pa\x1F\x18\x82\x82\x86a\x1F#V[\x97\x96PPPPPPPV[``\x83\x15a\x1F2WP\x81a\x10\"V[\x82Q\x15a\x1FBW\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x05\x80\x91\x90a%\xD7V[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x1FsW`\0\x80\xFD[\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12a\x1F\x8AW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x1F\xA2W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x1F\xBAW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xC0\x89\x8B\x03\x12\x15a\x1F\xDDW`\0\x80\xFD[a\x1F\xE6\x89a\x1F\\V[\x97Pa\x1F\xF4` \x8A\x01a\x1F\\V[\x96Pa \x02`@\x8A\x01a\x1F\\V[\x95P``\x89\x015\x94P`\x80\x89\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a &W`\0\x80\xFD[a 2\x8C\x83\x8D\x01a\x1FxV[\x90\x96P\x94P`\xA0\x8B\x015\x91P\x80\x82\x11\x15a KW`\0\x80\xFD[Pa X\x8B\x82\x8C\x01a\x1FxV[\x99\x9C\x98\x9BP\x96\x99P\x94\x97\x93\x96\x92\x95\x94PPPV[`\0\x80`@\x83\x85\x03\x12\x15a \x7FW`\0\x80\xFD[a \x88\x83a\x1F\\V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a \xAEW`\0\x80\xFD[a \xB7\x86a\x1F\\V[\x94Pa \xC5` \x87\x01a\x1F\\V[\x93P`@\x86\x015\x92P``\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a \xE8W`\0\x80\xFD[a \xF4\x88\x82\x89\x01a\x1FxV[\x96\x99\x95\x98P\x93\x96P\x92\x94\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a!\x17W`\0\x80\xFD[a\x10\"\x82a\x1F\\V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!_Wa!_a! V[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a!\x81Wa!\x81a! V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0a!\xA2a!\x9D\x84a!gV[a!6V[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15a!\xB6W`\0\x80\xFD[\x82\x82` \x83\x017`\0` \x84\x83\x01\x01R\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a!\xDEW`\0\x80\xFD[a\x10\"\x83\x835` \x85\x01a!\x8FV[`\0\x80`\0``\x84\x86\x03\x12\x15a\"\x02W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"\x19W`\0\x80\xFD[a\"%\x86\x82\x87\x01a!\xCDV[\x93PP` \x84\x015\x91Pa\";`@\x85\x01a\x1F\\V[\x90P\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a\"YW`\0\x80\xFD[\x835\x92P` \x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"wW`\0\x80\xFD[a\"\x83\x86\x82\x87\x01a!\xCDV[\x92PPa\";`@\x85\x01a\x1F\\V[`\0\x80`\0``\x84\x86\x03\x12\x15a\"\xA7W`\0\x80\xFD[a\"\xB0\x84a\x1F\\V[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"\xD3W`\0\x80\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\"\xE4W`\0\x80\xFD[a\"\xF3\x86\x825` \x84\x01a!\x8FV[\x91PP\x92P\x92P\x92V[`\0\x80`\0``\x84\x86\x03\x12\x15a#\x12W`\0\x80\xFD[\x835\x92P` \x84\x015\x91Pa\";`@\x85\x01a\x1F\\V[`\0\x80`\0``\x84\x86\x03\x12\x15a#>W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a#VW`\0\x80\xFD[a#b\x87\x83\x88\x01a!\xCDV[\x94P` \x86\x015\x91P\x80\x82\x11\x15a#xW`\0\x80\xFD[Pa\"\x83\x86\x82\x87\x01a!\xCDV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x0E{Wa\x0E{a#\x85V[`\0` \x82\x84\x03\x12\x15a#\xC0W`\0\x80\xFD[PQ\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a#\xDAW`\0\x80\xFD[PP\x80Q` \x90\x91\x01Q\x90\x92\x90\x91PV[`\0`\x01\x82\x01a#\xFDWa#\xFDa#\x85V[P`\x01\x01\x90V[` \x80\x82R\x81\x81\x01R\x7FOwnable: caller is not the owner`@\x82\x01R``\x01\x90V[\x81\x81\x03\x81\x81\x11\x15a\x0E{Wa\x0E{a#\x85V[`\0[\x83\x81\x10\x15a$gW\x81\x81\x01Q\x83\x82\x01R` \x01a$OV[PP`\0\x91\x01RV[`\0` \x82\x84\x03\x12\x15a$\x82W`\0\x80\xFD[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a$\x99W`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13a$\xAAW`\0\x80\xFD[\x80Qa$\xB8a!\x9D\x82a!gV[\x81\x81R\x85` \x83\x85\x01\x01\x11\x15a$\xCDW`\0\x80\xFD[a$\xDE\x82` \x83\x01` \x86\x01a$LV[\x95\x94PPPPPV[`\0\x83Qa$\xF9\x81\x84` \x88\x01a$LV[`/`\xF8\x1B\x90\x83\x01\x90\x81R\x83Qa%\x17\x81`\x01\x84\x01` \x88\x01a$LV[\x01`\x01\x01\x94\x93PPPPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x0E{Wa\x0E{a#\x85V[`\0\x82a%WWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x04\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a%\x93W`\0\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\0` \x82\x84\x03\x12\x15a%\xABW`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a\x10\"W`\0\x80\xFD[`\0\x82Qa%\xCD\x81\x84` \x87\x01a$LV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra%\xF6\x81`@\x85\x01` \x87\x01a$LV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFE\xA2dipfsX\"\x12 H\xE9S\xF4T\xA1\xFB\x90\xB3\xEE\x1C\x0F'\xB5i<\x9E\xD6kq0\xDCZ\xDCi\x18\xE3\xD3\xF78\xE6dsolcC\0\x08\x13\x003";
1220 pub static HOPRSTAKE2_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1222 __DEPLOYED_BYTECODE,
1223 );
1224 pub struct HoprStake2<M>(::ethers::contract::Contract<M>);
1225 impl<M> ::core::clone::Clone for HoprStake2<M> {
1226 fn clone(&self) -> Self {
1227 Self(::core::clone::Clone::clone(&self.0))
1228 }
1229 }
1230 impl<M> ::core::ops::Deref for HoprStake2<M> {
1231 type Target = ::ethers::contract::Contract<M>;
1232 fn deref(&self) -> &Self::Target {
1233 &self.0
1234 }
1235 }
1236 impl<M> ::core::ops::DerefMut for HoprStake2<M> {
1237 fn deref_mut(&mut self) -> &mut Self::Target {
1238 &mut self.0
1239 }
1240 }
1241 impl<M> ::core::fmt::Debug for HoprStake2<M> {
1242 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1243 f.debug_tuple(::core::stringify!(HoprStake2)).field(&self.address()).finish()
1244 }
1245 }
1246 impl<M: ::ethers::providers::Middleware> HoprStake2<M> {
1247 pub fn new<T: Into<::ethers::core::types::Address>>(
1250 address: T,
1251 client: ::std::sync::Arc<M>,
1252 ) -> Self {
1253 Self(
1254 ::ethers::contract::Contract::new(
1255 address.into(),
1256 HOPRSTAKE2_ABI.clone(),
1257 client,
1258 ),
1259 )
1260 }
1261 pub fn deploy<T: ::ethers::core::abi::Tokenize>(
1285 client: ::std::sync::Arc<M>,
1286 constructor_args: T,
1287 ) -> ::core::result::Result<
1288 ::ethers::contract::builders::ContractDeployer<M, Self>,
1289 ::ethers::contract::ContractError<M>,
1290 > {
1291 let factory = ::ethers::contract::ContractFactory::new(
1292 HOPRSTAKE2_ABI.clone(),
1293 HOPRSTAKE2_BYTECODE.clone().into(),
1294 client,
1295 );
1296 let deployer = factory.deploy(constructor_args)?;
1297 let deployer = ::ethers::contract::ContractDeployer::new(deployer);
1298 Ok(deployer)
1299 }
1300 pub fn basic_factor_numerator(
1302 &self,
1303 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1304 self.0
1305 .method_hash([106, 168, 212, 207], ())
1306 .expect("method not found (this should never happen)")
1307 }
1308 pub fn boost_cap(
1310 &self,
1311 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1312 self.0
1313 .method_hash([239, 5, 38, 162], ())
1314 .expect("method not found (this should never happen)")
1315 }
1316 pub fn factor_denominator(
1318 &self,
1319 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1320 self.0
1321 .method_hash([94, 247, 61, 88], ())
1322 .expect("method not found (this should never happen)")
1323 }
1324 pub fn lock_token(
1326 &self,
1327 ) -> ::ethers::contract::builders::ContractCall<
1328 M,
1329 ::ethers::core::types::Address,
1330 > {
1331 self.0
1332 .method_hash([208, 218, 104, 1], ())
1333 .expect("method not found (this should never happen)")
1334 }
1335 pub fn nft_contract(
1337 &self,
1338 ) -> ::ethers::contract::builders::ContractCall<
1339 M,
1340 ::ethers::core::types::Address,
1341 > {
1342 self.0
1343 .method_hash([31, 218, 154, 2], ())
1344 .expect("method not found (this should never happen)")
1345 }
1346 pub fn program_end(
1348 &self,
1349 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1350 self.0
1351 .method_hash([203, 255, 163, 199], ())
1352 .expect("method not found (this should never happen)")
1353 }
1354 pub fn program_start(
1356 &self,
1357 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1358 self.0
1359 .method_hash([91, 187, 99, 166], ())
1360 .expect("method not found (this should never happen)")
1361 }
1362 pub fn reward_token(
1364 &self,
1365 ) -> ::ethers::contract::builders::ContractCall<
1366 M,
1367 ::ethers::core::types::Address,
1368 > {
1369 self.0
1370 .method_hash([153, 36, 142, 167], ())
1371 .expect("method not found (this should never happen)")
1372 }
1373 pub fn accounts(
1375 &self,
1376 p0: ::ethers::core::types::Address,
1377 ) -> ::ethers::contract::builders::ContractCall<
1378 M,
1379 (
1380 ::ethers::core::types::U256,
1381 ::ethers::core::types::U256,
1382 ::ethers::core::types::U256,
1383 ::ethers::core::types::U256,
1384 ),
1385 > {
1386 self.0
1387 .method_hash([94, 92, 6, 226], p0)
1388 .expect("method not found (this should never happen)")
1389 }
1390 pub fn available_reward(
1392 &self,
1393 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1394 self.0
1395 .method_hash([74, 216, 75, 52], ())
1396 .expect("method not found (this should never happen)")
1397 }
1398 pub fn claim_rewards(
1400 &self,
1401 account: ::ethers::core::types::Address,
1402 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1403 self.0
1404 .method_hash([239, 92, 251, 140], account)
1405 .expect("method not found (this should never happen)")
1406 }
1407 pub fn get_cumulated_rewards_increment(
1409 &self,
1410 account: ::ethers::core::types::Address,
1411 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1412 self.0
1413 .method_hash([112, 175, 9, 52], account)
1414 .expect("method not found (this should never happen)")
1415 }
1416 pub fn is_nft_type_and_rank_redeemed_1(
1418 &self,
1419 nft_type: ::std::string::String,
1420 nft_rank: ::std::string::String,
1421 hodler: ::ethers::core::types::Address,
1422 ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1423 self.0
1424 .method_hash([206, 35, 23, 126], (nft_type, nft_rank, hodler))
1425 .expect("method not found (this should never happen)")
1426 }
1427 pub fn is_nft_type_and_rank_redeemed_2(
1429 &self,
1430 nft_type_index: ::ethers::core::types::U256,
1431 nft_rank: ::std::string::String,
1432 hodler: ::ethers::core::types::Address,
1433 ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1434 self.0
1435 .method_hash([150, 169, 205, 125], (nft_type_index, nft_rank, hodler))
1436 .expect("method not found (this should never happen)")
1437 }
1438 pub fn is_nft_type_and_rank_redeemed_3(
1440 &self,
1441 nft_type_index: ::ethers::core::types::U256,
1442 boost_numerator: ::ethers::core::types::U256,
1443 hodler: ::ethers::core::types::Address,
1444 ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1445 self.0
1446 .method_hash(
1447 [168, 61, 30, 214],
1448 (nft_type_index, boost_numerator, hodler),
1449 )
1450 .expect("method not found (this should never happen)")
1451 }
1452 pub fn is_nft_type_and_rank_redeemed_4(
1454 &self,
1455 nft_type: ::std::string::String,
1456 boost_numerator: ::ethers::core::types::U256,
1457 hodler: ::ethers::core::types::Address,
1458 ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1459 self.0
1460 .method_hash([140, 36, 173, 212], (nft_type, boost_numerator, hodler))
1461 .expect("method not found (this should never happen)")
1462 }
1463 pub fn on_erc721_received(
1465 &self,
1466 p0: ::ethers::core::types::Address,
1467 from: ::ethers::core::types::Address,
1468 token_id: ::ethers::core::types::U256,
1469 p3: ::ethers::core::types::Bytes,
1470 ) -> ::ethers::contract::builders::ContractCall<M, [u8; 4]> {
1471 self.0
1472 .method_hash([21, 11, 122, 2], (p0, from, token_id, p3))
1473 .expect("method not found (this should never happen)")
1474 }
1475 pub fn on_token_transfer(
1477 &self,
1478 from: ::ethers::core::types::Address,
1479 value: ::ethers::core::types::U256,
1480 p2: ::ethers::core::types::Bytes,
1481 ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1482 self.0
1483 .method_hash([164, 192, 237, 54], (from, value, p2))
1484 .expect("method not found (this should never happen)")
1485 }
1486 pub fn owner(
1488 &self,
1489 ) -> ::ethers::contract::builders::ContractCall<
1490 M,
1491 ::ethers::core::types::Address,
1492 > {
1493 self.0
1494 .method_hash([141, 165, 203, 91], ())
1495 .expect("method not found (this should never happen)")
1496 }
1497 pub fn reclaim_erc_20_tokens(
1499 &self,
1500 token_address: ::ethers::core::types::Address,
1501 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1502 self.0
1503 .method_hash([96, 103, 188, 21], token_address)
1504 .expect("method not found (this should never happen)")
1505 }
1506 pub fn reclaim_erc_721_tokens(
1508 &self,
1509 token_address: ::ethers::core::types::Address,
1510 token_id: ::ethers::core::types::U256,
1511 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1512 self.0
1513 .method_hash([72, 198, 78, 65], (token_address, token_id))
1514 .expect("method not found (this should never happen)")
1515 }
1516 pub fn redeemed_factor(
1518 &self,
1519 p0: ::ethers::core::types::Address,
1520 p1: ::ethers::core::types::U256,
1521 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1522 self.0
1523 .method_hash([129, 18, 140, 29], (p0, p1))
1524 .expect("method not found (this should never happen)")
1525 }
1526 pub fn redeemed_factor_index(
1528 &self,
1529 p0: ::ethers::core::types::Address,
1530 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1531 self.0
1532 .method_hash([31, 1, 77, 131], p0)
1533 .expect("method not found (this should never happen)")
1534 }
1535 pub fn redeemed_nft(
1537 &self,
1538 p0: ::ethers::core::types::Address,
1539 p1: ::ethers::core::types::U256,
1540 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1541 self.0
1542 .method_hash([10, 26, 37, 122], (p0, p1))
1543 .expect("method not found (this should never happen)")
1544 }
1545 pub fn redeemed_nft_index(
1547 &self,
1548 p0: ::ethers::core::types::Address,
1549 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1550 self.0
1551 .method_hash([208, 192, 45, 99], p0)
1552 .expect("method not found (this should never happen)")
1553 }
1554 pub fn renounce_ownership(
1556 &self,
1557 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1558 self.0
1559 .method_hash([113, 80, 24, 166], ())
1560 .expect("method not found (this should never happen)")
1561 }
1562 pub fn staked_hopr_tokens(
1564 &self,
1565 account: ::ethers::core::types::Address,
1566 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1567 self.0
1568 .method_hash([249, 120, 255, 241], account)
1569 .expect("method not found (this should never happen)")
1570 }
1571 pub fn sync(
1573 &self,
1574 account: ::ethers::core::types::Address,
1575 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1576 self.0
1577 .method_hash([165, 132, 17, 148], account)
1578 .expect("method not found (this should never happen)")
1579 }
1580 pub fn tokens_received(
1582 &self,
1583 p0: ::ethers::core::types::Address,
1584 from: ::ethers::core::types::Address,
1585 to: ::ethers::core::types::Address,
1586 amount: ::ethers::core::types::U256,
1587 p4: ::ethers::core::types::Bytes,
1588 p5: ::ethers::core::types::Bytes,
1589 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1590 self.0
1591 .method_hash([0, 35, 222, 41], (p0, from, to, amount, p4, p5))
1592 .expect("method not found (this should never happen)")
1593 }
1594 pub fn total_locked(
1596 &self,
1597 ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1598 self.0
1599 .method_hash([86, 137, 20, 18], ())
1600 .expect("method not found (this should never happen)")
1601 }
1602 pub fn transfer_ownership(
1604 &self,
1605 new_owner: ::ethers::core::types::Address,
1606 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1607 self.0
1608 .method_hash([242, 253, 227, 139], new_owner)
1609 .expect("method not found (this should never happen)")
1610 }
1611 pub fn unlock(&self) -> ::ethers::contract::builders::ContractCall<M, ()> {
1613 self.0
1614 .method_hash([166, 157, 244, 181], ())
1615 .expect("method not found (this should never happen)")
1616 }
1617 pub fn unlock_for(
1619 &self,
1620 account: ::ethers::core::types::Address,
1621 ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1622 self.0
1623 .method_hash([221, 228, 153, 121], account)
1624 .expect("method not found (this should never happen)")
1625 }
1626 pub fn claimed_filter(
1628 &self,
1629 ) -> ::ethers::contract::builders::Event<::std::sync::Arc<M>, M, ClaimedFilter> {
1630 self.0.event()
1631 }
1632 pub fn ownership_transferred_filter(
1634 &self,
1635 ) -> ::ethers::contract::builders::Event<
1636 ::std::sync::Arc<M>,
1637 M,
1638 OwnershipTransferredFilter,
1639 > {
1640 self.0.event()
1641 }
1642 pub fn redeemed_filter(
1644 &self,
1645 ) -> ::ethers::contract::builders::Event<
1646 ::std::sync::Arc<M>,
1647 M,
1648 RedeemedFilter,
1649 > {
1650 self.0.event()
1651 }
1652 pub fn released_filter(
1654 &self,
1655 ) -> ::ethers::contract::builders::Event<
1656 ::std::sync::Arc<M>,
1657 M,
1658 ReleasedFilter,
1659 > {
1660 self.0.event()
1661 }
1662 pub fn reward_fueled_filter(
1664 &self,
1665 ) -> ::ethers::contract::builders::Event<
1666 ::std::sync::Arc<M>,
1667 M,
1668 RewardFueledFilter,
1669 > {
1670 self.0.event()
1671 }
1672 pub fn staked_filter(
1674 &self,
1675 ) -> ::ethers::contract::builders::Event<::std::sync::Arc<M>, M, StakedFilter> {
1676 self.0.event()
1677 }
1678 pub fn sync_filter(
1680 &self,
1681 ) -> ::ethers::contract::builders::Event<::std::sync::Arc<M>, M, SyncFilter> {
1682 self.0.event()
1683 }
1684 pub fn events(
1686 &self,
1687 ) -> ::ethers::contract::builders::Event<
1688 ::std::sync::Arc<M>,
1689 M,
1690 HoprStake2Events,
1691 > {
1692 self.0.event_with_filter(::core::default::Default::default())
1693 }
1694 }
1695 impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
1696 for HoprStake2<M> {
1697 fn from(contract: ::ethers::contract::Contract<M>) -> Self {
1698 Self::new(contract.address(), contract.client())
1699 }
1700 }
1701 #[derive(
1702 Clone,
1703 ::ethers::contract::EthEvent,
1704 ::ethers::contract::EthDisplay,
1705 serde::Serialize,
1706 serde::Deserialize,
1707 Default,
1708 Debug,
1709 PartialEq,
1710 Eq,
1711 Hash
1712 )]
1713 #[ethevent(name = "Claimed", abi = "Claimed(address,uint256)")]
1714 pub struct ClaimedFilter {
1715 #[ethevent(indexed)]
1716 pub account: ::ethers::core::types::Address,
1717 #[ethevent(indexed)]
1718 pub reward_amount: ::ethers::core::types::U256,
1719 }
1720 #[derive(
1721 Clone,
1722 ::ethers::contract::EthEvent,
1723 ::ethers::contract::EthDisplay,
1724 serde::Serialize,
1725 serde::Deserialize,
1726 Default,
1727 Debug,
1728 PartialEq,
1729 Eq,
1730 Hash
1731 )]
1732 #[ethevent(
1733 name = "OwnershipTransferred",
1734 abi = "OwnershipTransferred(address,address)"
1735 )]
1736 pub struct OwnershipTransferredFilter {
1737 #[ethevent(indexed)]
1738 pub previous_owner: ::ethers::core::types::Address,
1739 #[ethevent(indexed)]
1740 pub new_owner: ::ethers::core::types::Address,
1741 }
1742 #[derive(
1743 Clone,
1744 ::ethers::contract::EthEvent,
1745 ::ethers::contract::EthDisplay,
1746 serde::Serialize,
1747 serde::Deserialize,
1748 Default,
1749 Debug,
1750 PartialEq,
1751 Eq,
1752 Hash
1753 )]
1754 #[ethevent(name = "Redeemed", abi = "Redeemed(address,uint256,bool)")]
1755 pub struct RedeemedFilter {
1756 #[ethevent(indexed)]
1757 pub account: ::ethers::core::types::Address,
1758 #[ethevent(indexed)]
1759 pub boost_token_id: ::ethers::core::types::U256,
1760 #[ethevent(indexed)]
1761 pub factor_registered: bool,
1762 }
1763 #[derive(
1764 Clone,
1765 ::ethers::contract::EthEvent,
1766 ::ethers::contract::EthDisplay,
1767 serde::Serialize,
1768 serde::Deserialize,
1769 Default,
1770 Debug,
1771 PartialEq,
1772 Eq,
1773 Hash
1774 )]
1775 #[ethevent(name = "Released", abi = "Released(address,uint256)")]
1776 pub struct ReleasedFilter {
1777 #[ethevent(indexed)]
1778 pub account: ::ethers::core::types::Address,
1779 #[ethevent(indexed)]
1780 pub actual_amount: ::ethers::core::types::U256,
1781 }
1782 #[derive(
1783 Clone,
1784 ::ethers::contract::EthEvent,
1785 ::ethers::contract::EthDisplay,
1786 serde::Serialize,
1787 serde::Deserialize,
1788 Default,
1789 Debug,
1790 PartialEq,
1791 Eq,
1792 Hash
1793 )]
1794 #[ethevent(name = "RewardFueled", abi = "RewardFueled(uint256)")]
1795 pub struct RewardFueledFilter {
1796 #[ethevent(indexed)]
1797 pub amount: ::ethers::core::types::U256,
1798 }
1799 #[derive(
1800 Clone,
1801 ::ethers::contract::EthEvent,
1802 ::ethers::contract::EthDisplay,
1803 serde::Serialize,
1804 serde::Deserialize,
1805 Default,
1806 Debug,
1807 PartialEq,
1808 Eq,
1809 Hash
1810 )]
1811 #[ethevent(name = "Staked", abi = "Staked(address,uint256)")]
1812 pub struct StakedFilter {
1813 #[ethevent(indexed)]
1814 pub account: ::ethers::core::types::Address,
1815 #[ethevent(indexed)]
1816 pub actual_amount: ::ethers::core::types::U256,
1817 }
1818 #[derive(
1819 Clone,
1820 ::ethers::contract::EthEvent,
1821 ::ethers::contract::EthDisplay,
1822 serde::Serialize,
1823 serde::Deserialize,
1824 Default,
1825 Debug,
1826 PartialEq,
1827 Eq,
1828 Hash
1829 )]
1830 #[ethevent(name = "Sync", abi = "Sync(address,uint256)")]
1831 pub struct SyncFilter {
1832 #[ethevent(indexed)]
1833 pub account: ::ethers::core::types::Address,
1834 #[ethevent(indexed)]
1835 pub increment: ::ethers::core::types::U256,
1836 }
1837 #[derive(
1839 Clone,
1840 ::ethers::contract::EthAbiType,
1841 serde::Serialize,
1842 serde::Deserialize,
1843 Debug,
1844 PartialEq,
1845 Eq,
1846 Hash
1847 )]
1848 pub enum HoprStake2Events {
1849 ClaimedFilter(ClaimedFilter),
1850 OwnershipTransferredFilter(OwnershipTransferredFilter),
1851 RedeemedFilter(RedeemedFilter),
1852 ReleasedFilter(ReleasedFilter),
1853 RewardFueledFilter(RewardFueledFilter),
1854 StakedFilter(StakedFilter),
1855 SyncFilter(SyncFilter),
1856 }
1857 impl ::ethers::contract::EthLogDecode for HoprStake2Events {
1858 fn decode_log(
1859 log: &::ethers::core::abi::RawLog,
1860 ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
1861 if let Ok(decoded) = ClaimedFilter::decode_log(log) {
1862 return Ok(HoprStake2Events::ClaimedFilter(decoded));
1863 }
1864 if let Ok(decoded) = OwnershipTransferredFilter::decode_log(log) {
1865 return Ok(HoprStake2Events::OwnershipTransferredFilter(decoded));
1866 }
1867 if let Ok(decoded) = RedeemedFilter::decode_log(log) {
1868 return Ok(HoprStake2Events::RedeemedFilter(decoded));
1869 }
1870 if let Ok(decoded) = ReleasedFilter::decode_log(log) {
1871 return Ok(HoprStake2Events::ReleasedFilter(decoded));
1872 }
1873 if let Ok(decoded) = RewardFueledFilter::decode_log(log) {
1874 return Ok(HoprStake2Events::RewardFueledFilter(decoded));
1875 }
1876 if let Ok(decoded) = StakedFilter::decode_log(log) {
1877 return Ok(HoprStake2Events::StakedFilter(decoded));
1878 }
1879 if let Ok(decoded) = SyncFilter::decode_log(log) {
1880 return Ok(HoprStake2Events::SyncFilter(decoded));
1881 }
1882 Err(::ethers::core::abi::Error::InvalidData)
1883 }
1884 }
1885 impl ::core::fmt::Display for HoprStake2Events {
1886 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1887 match self {
1888 Self::ClaimedFilter(element) => ::core::fmt::Display::fmt(element, f),
1889 Self::OwnershipTransferredFilter(element) => {
1890 ::core::fmt::Display::fmt(element, f)
1891 }
1892 Self::RedeemedFilter(element) => ::core::fmt::Display::fmt(element, f),
1893 Self::ReleasedFilter(element) => ::core::fmt::Display::fmt(element, f),
1894 Self::RewardFueledFilter(element) => {
1895 ::core::fmt::Display::fmt(element, f)
1896 }
1897 Self::StakedFilter(element) => ::core::fmt::Display::fmt(element, f),
1898 Self::SyncFilter(element) => ::core::fmt::Display::fmt(element, f),
1899 }
1900 }
1901 }
1902 impl ::core::convert::From<ClaimedFilter> for HoprStake2Events {
1903 fn from(value: ClaimedFilter) -> Self {
1904 Self::ClaimedFilter(value)
1905 }
1906 }
1907 impl ::core::convert::From<OwnershipTransferredFilter> for HoprStake2Events {
1908 fn from(value: OwnershipTransferredFilter) -> Self {
1909 Self::OwnershipTransferredFilter(value)
1910 }
1911 }
1912 impl ::core::convert::From<RedeemedFilter> for HoprStake2Events {
1913 fn from(value: RedeemedFilter) -> Self {
1914 Self::RedeemedFilter(value)
1915 }
1916 }
1917 impl ::core::convert::From<ReleasedFilter> for HoprStake2Events {
1918 fn from(value: ReleasedFilter) -> Self {
1919 Self::ReleasedFilter(value)
1920 }
1921 }
1922 impl ::core::convert::From<RewardFueledFilter> for HoprStake2Events {
1923 fn from(value: RewardFueledFilter) -> Self {
1924 Self::RewardFueledFilter(value)
1925 }
1926 }
1927 impl ::core::convert::From<StakedFilter> for HoprStake2Events {
1928 fn from(value: StakedFilter) -> Self {
1929 Self::StakedFilter(value)
1930 }
1931 }
1932 impl ::core::convert::From<SyncFilter> for HoprStake2Events {
1933 fn from(value: SyncFilter) -> Self {
1934 Self::SyncFilter(value)
1935 }
1936 }
1937 #[derive(
1939 Clone,
1940 ::ethers::contract::EthCall,
1941 ::ethers::contract::EthDisplay,
1942 serde::Serialize,
1943 serde::Deserialize,
1944 Default,
1945 Debug,
1946 PartialEq,
1947 Eq,
1948 Hash
1949 )]
1950 #[ethcall(name = "BASIC_FACTOR_NUMERATOR", abi = "BASIC_FACTOR_NUMERATOR()")]
1951 pub struct BasicFactorNumeratorCall;
1952 #[derive(
1954 Clone,
1955 ::ethers::contract::EthCall,
1956 ::ethers::contract::EthDisplay,
1957 serde::Serialize,
1958 serde::Deserialize,
1959 Default,
1960 Debug,
1961 PartialEq,
1962 Eq,
1963 Hash
1964 )]
1965 #[ethcall(name = "BOOST_CAP", abi = "BOOST_CAP()")]
1966 pub struct BoostCapCall;
1967 #[derive(
1969 Clone,
1970 ::ethers::contract::EthCall,
1971 ::ethers::contract::EthDisplay,
1972 serde::Serialize,
1973 serde::Deserialize,
1974 Default,
1975 Debug,
1976 PartialEq,
1977 Eq,
1978 Hash
1979 )]
1980 #[ethcall(name = "FACTOR_DENOMINATOR", abi = "FACTOR_DENOMINATOR()")]
1981 pub struct FactorDenominatorCall;
1982 #[derive(
1984 Clone,
1985 ::ethers::contract::EthCall,
1986 ::ethers::contract::EthDisplay,
1987 serde::Serialize,
1988 serde::Deserialize,
1989 Default,
1990 Debug,
1991 PartialEq,
1992 Eq,
1993 Hash
1994 )]
1995 #[ethcall(name = "LOCK_TOKEN", abi = "LOCK_TOKEN()")]
1996 pub struct LockTokenCall;
1997 #[derive(
1999 Clone,
2000 ::ethers::contract::EthCall,
2001 ::ethers::contract::EthDisplay,
2002 serde::Serialize,
2003 serde::Deserialize,
2004 Default,
2005 Debug,
2006 PartialEq,
2007 Eq,
2008 Hash
2009 )]
2010 #[ethcall(name = "NFT_CONTRACT", abi = "NFT_CONTRACT()")]
2011 pub struct NftContractCall;
2012 #[derive(
2014 Clone,
2015 ::ethers::contract::EthCall,
2016 ::ethers::contract::EthDisplay,
2017 serde::Serialize,
2018 serde::Deserialize,
2019 Default,
2020 Debug,
2021 PartialEq,
2022 Eq,
2023 Hash
2024 )]
2025 #[ethcall(name = "PROGRAM_END", abi = "PROGRAM_END()")]
2026 pub struct ProgramEndCall;
2027 #[derive(
2029 Clone,
2030 ::ethers::contract::EthCall,
2031 ::ethers::contract::EthDisplay,
2032 serde::Serialize,
2033 serde::Deserialize,
2034 Default,
2035 Debug,
2036 PartialEq,
2037 Eq,
2038 Hash
2039 )]
2040 #[ethcall(name = "PROGRAM_START", abi = "PROGRAM_START()")]
2041 pub struct ProgramStartCall;
2042 #[derive(
2044 Clone,
2045 ::ethers::contract::EthCall,
2046 ::ethers::contract::EthDisplay,
2047 serde::Serialize,
2048 serde::Deserialize,
2049 Default,
2050 Debug,
2051 PartialEq,
2052 Eq,
2053 Hash
2054 )]
2055 #[ethcall(name = "REWARD_TOKEN", abi = "REWARD_TOKEN()")]
2056 pub struct RewardTokenCall;
2057 #[derive(
2059 Clone,
2060 ::ethers::contract::EthCall,
2061 ::ethers::contract::EthDisplay,
2062 serde::Serialize,
2063 serde::Deserialize,
2064 Default,
2065 Debug,
2066 PartialEq,
2067 Eq,
2068 Hash
2069 )]
2070 #[ethcall(name = "accounts", abi = "accounts(address)")]
2071 pub struct AccountsCall(pub ::ethers::core::types::Address);
2072 #[derive(
2074 Clone,
2075 ::ethers::contract::EthCall,
2076 ::ethers::contract::EthDisplay,
2077 serde::Serialize,
2078 serde::Deserialize,
2079 Default,
2080 Debug,
2081 PartialEq,
2082 Eq,
2083 Hash
2084 )]
2085 #[ethcall(name = "availableReward", abi = "availableReward()")]
2086 pub struct AvailableRewardCall;
2087 #[derive(
2089 Clone,
2090 ::ethers::contract::EthCall,
2091 ::ethers::contract::EthDisplay,
2092 serde::Serialize,
2093 serde::Deserialize,
2094 Default,
2095 Debug,
2096 PartialEq,
2097 Eq,
2098 Hash
2099 )]
2100 #[ethcall(name = "claimRewards", abi = "claimRewards(address)")]
2101 pub struct ClaimRewardsCall {
2102 pub account: ::ethers::core::types::Address,
2103 }
2104 #[derive(
2106 Clone,
2107 ::ethers::contract::EthCall,
2108 ::ethers::contract::EthDisplay,
2109 serde::Serialize,
2110 serde::Deserialize,
2111 Default,
2112 Debug,
2113 PartialEq,
2114 Eq,
2115 Hash
2116 )]
2117 #[ethcall(
2118 name = "getCumulatedRewardsIncrement",
2119 abi = "getCumulatedRewardsIncrement(address)"
2120 )]
2121 pub struct GetCumulatedRewardsIncrementCall {
2122 pub account: ::ethers::core::types::Address,
2123 }
2124 #[derive(
2126 Clone,
2127 ::ethers::contract::EthCall,
2128 ::ethers::contract::EthDisplay,
2129 serde::Serialize,
2130 serde::Deserialize,
2131 Default,
2132 Debug,
2133 PartialEq,
2134 Eq,
2135 Hash
2136 )]
2137 #[ethcall(
2138 name = "isNftTypeAndRankRedeemed1",
2139 abi = "isNftTypeAndRankRedeemed1(string,string,address)"
2140 )]
2141 pub struct IsNftTypeAndRankRedeemed1Call {
2142 pub nft_type: ::std::string::String,
2143 pub nft_rank: ::std::string::String,
2144 pub hodler: ::ethers::core::types::Address,
2145 }
2146 #[derive(
2148 Clone,
2149 ::ethers::contract::EthCall,
2150 ::ethers::contract::EthDisplay,
2151 serde::Serialize,
2152 serde::Deserialize,
2153 Default,
2154 Debug,
2155 PartialEq,
2156 Eq,
2157 Hash
2158 )]
2159 #[ethcall(
2160 name = "isNftTypeAndRankRedeemed2",
2161 abi = "isNftTypeAndRankRedeemed2(uint256,string,address)"
2162 )]
2163 pub struct IsNftTypeAndRankRedeemed2Call {
2164 pub nft_type_index: ::ethers::core::types::U256,
2165 pub nft_rank: ::std::string::String,
2166 pub hodler: ::ethers::core::types::Address,
2167 }
2168 #[derive(
2170 Clone,
2171 ::ethers::contract::EthCall,
2172 ::ethers::contract::EthDisplay,
2173 serde::Serialize,
2174 serde::Deserialize,
2175 Default,
2176 Debug,
2177 PartialEq,
2178 Eq,
2179 Hash
2180 )]
2181 #[ethcall(
2182 name = "isNftTypeAndRankRedeemed3",
2183 abi = "isNftTypeAndRankRedeemed3(uint256,uint256,address)"
2184 )]
2185 pub struct IsNftTypeAndRankRedeemed3Call {
2186 pub nft_type_index: ::ethers::core::types::U256,
2187 pub boost_numerator: ::ethers::core::types::U256,
2188 pub hodler: ::ethers::core::types::Address,
2189 }
2190 #[derive(
2192 Clone,
2193 ::ethers::contract::EthCall,
2194 ::ethers::contract::EthDisplay,
2195 serde::Serialize,
2196 serde::Deserialize,
2197 Default,
2198 Debug,
2199 PartialEq,
2200 Eq,
2201 Hash
2202 )]
2203 #[ethcall(
2204 name = "isNftTypeAndRankRedeemed4",
2205 abi = "isNftTypeAndRankRedeemed4(string,uint256,address)"
2206 )]
2207 pub struct IsNftTypeAndRankRedeemed4Call {
2208 pub nft_type: ::std::string::String,
2209 pub boost_numerator: ::ethers::core::types::U256,
2210 pub hodler: ::ethers::core::types::Address,
2211 }
2212 #[derive(
2214 Clone,
2215 ::ethers::contract::EthCall,
2216 ::ethers::contract::EthDisplay,
2217 serde::Serialize,
2218 serde::Deserialize,
2219 Default,
2220 Debug,
2221 PartialEq,
2222 Eq,
2223 Hash
2224 )]
2225 #[ethcall(
2226 name = "onERC721Received",
2227 abi = "onERC721Received(address,address,uint256,bytes)"
2228 )]
2229 pub struct OnERC721ReceivedCall {
2230 pub p0: ::ethers::core::types::Address,
2231 pub from: ::ethers::core::types::Address,
2232 pub token_id: ::ethers::core::types::U256,
2233 pub p3: ::ethers::core::types::Bytes,
2234 }
2235 #[derive(
2237 Clone,
2238 ::ethers::contract::EthCall,
2239 ::ethers::contract::EthDisplay,
2240 serde::Serialize,
2241 serde::Deserialize,
2242 Default,
2243 Debug,
2244 PartialEq,
2245 Eq,
2246 Hash
2247 )]
2248 #[ethcall(name = "onTokenTransfer", abi = "onTokenTransfer(address,uint256,bytes)")]
2249 pub struct OnTokenTransferCall {
2250 pub from: ::ethers::core::types::Address,
2251 pub value: ::ethers::core::types::U256,
2252 pub p2: ::ethers::core::types::Bytes,
2253 }
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 = "owner", abi = "owner()")]
2268 pub struct OwnerCall;
2269 #[derive(
2271 Clone,
2272 ::ethers::contract::EthCall,
2273 ::ethers::contract::EthDisplay,
2274 serde::Serialize,
2275 serde::Deserialize,
2276 Default,
2277 Debug,
2278 PartialEq,
2279 Eq,
2280 Hash
2281 )]
2282 #[ethcall(name = "reclaimErc20Tokens", abi = "reclaimErc20Tokens(address)")]
2283 pub struct ReclaimErc20TokensCall {
2284 pub token_address: ::ethers::core::types::Address,
2285 }
2286 #[derive(
2288 Clone,
2289 ::ethers::contract::EthCall,
2290 ::ethers::contract::EthDisplay,
2291 serde::Serialize,
2292 serde::Deserialize,
2293 Default,
2294 Debug,
2295 PartialEq,
2296 Eq,
2297 Hash
2298 )]
2299 #[ethcall(
2300 name = "reclaimErc721Tokens",
2301 abi = "reclaimErc721Tokens(address,uint256)"
2302 )]
2303 pub struct ReclaimErc721TokensCall {
2304 pub token_address: ::ethers::core::types::Address,
2305 pub token_id: ::ethers::core::types::U256,
2306 }
2307 #[derive(
2309 Clone,
2310 ::ethers::contract::EthCall,
2311 ::ethers::contract::EthDisplay,
2312 serde::Serialize,
2313 serde::Deserialize,
2314 Default,
2315 Debug,
2316 PartialEq,
2317 Eq,
2318 Hash
2319 )]
2320 #[ethcall(name = "redeemedFactor", abi = "redeemedFactor(address,uint256)")]
2321 pub struct RedeemedFactorCall(
2322 pub ::ethers::core::types::Address,
2323 pub ::ethers::core::types::U256,
2324 );
2325 #[derive(
2327 Clone,
2328 ::ethers::contract::EthCall,
2329 ::ethers::contract::EthDisplay,
2330 serde::Serialize,
2331 serde::Deserialize,
2332 Default,
2333 Debug,
2334 PartialEq,
2335 Eq,
2336 Hash
2337 )]
2338 #[ethcall(name = "redeemedFactorIndex", abi = "redeemedFactorIndex(address)")]
2339 pub struct RedeemedFactorIndexCall(pub ::ethers::core::types::Address);
2340 #[derive(
2342 Clone,
2343 ::ethers::contract::EthCall,
2344 ::ethers::contract::EthDisplay,
2345 serde::Serialize,
2346 serde::Deserialize,
2347 Default,
2348 Debug,
2349 PartialEq,
2350 Eq,
2351 Hash
2352 )]
2353 #[ethcall(name = "redeemedNft", abi = "redeemedNft(address,uint256)")]
2354 pub struct RedeemedNftCall(
2355 pub ::ethers::core::types::Address,
2356 pub ::ethers::core::types::U256,
2357 );
2358 #[derive(
2360 Clone,
2361 ::ethers::contract::EthCall,
2362 ::ethers::contract::EthDisplay,
2363 serde::Serialize,
2364 serde::Deserialize,
2365 Default,
2366 Debug,
2367 PartialEq,
2368 Eq,
2369 Hash
2370 )]
2371 #[ethcall(name = "redeemedNftIndex", abi = "redeemedNftIndex(address)")]
2372 pub struct RedeemedNftIndexCall(pub ::ethers::core::types::Address);
2373 #[derive(
2375 Clone,
2376 ::ethers::contract::EthCall,
2377 ::ethers::contract::EthDisplay,
2378 serde::Serialize,
2379 serde::Deserialize,
2380 Default,
2381 Debug,
2382 PartialEq,
2383 Eq,
2384 Hash
2385 )]
2386 #[ethcall(name = "renounceOwnership", abi = "renounceOwnership()")]
2387 pub struct RenounceOwnershipCall;
2388 #[derive(
2390 Clone,
2391 ::ethers::contract::EthCall,
2392 ::ethers::contract::EthDisplay,
2393 serde::Serialize,
2394 serde::Deserialize,
2395 Default,
2396 Debug,
2397 PartialEq,
2398 Eq,
2399 Hash
2400 )]
2401 #[ethcall(name = "stakedHoprTokens", abi = "stakedHoprTokens(address)")]
2402 pub struct StakedHoprTokensCall {
2403 pub account: ::ethers::core::types::Address,
2404 }
2405 #[derive(
2407 Clone,
2408 ::ethers::contract::EthCall,
2409 ::ethers::contract::EthDisplay,
2410 serde::Serialize,
2411 serde::Deserialize,
2412 Default,
2413 Debug,
2414 PartialEq,
2415 Eq,
2416 Hash
2417 )]
2418 #[ethcall(name = "sync", abi = "sync(address)")]
2419 pub struct SyncCall {
2420 pub account: ::ethers::core::types::Address,
2421 }
2422 #[derive(
2424 Clone,
2425 ::ethers::contract::EthCall,
2426 ::ethers::contract::EthDisplay,
2427 serde::Serialize,
2428 serde::Deserialize,
2429 Default,
2430 Debug,
2431 PartialEq,
2432 Eq,
2433 Hash
2434 )]
2435 #[ethcall(
2436 name = "tokensReceived",
2437 abi = "tokensReceived(address,address,address,uint256,bytes,bytes)"
2438 )]
2439 pub struct TokensReceivedCall {
2440 pub p0: ::ethers::core::types::Address,
2441 pub from: ::ethers::core::types::Address,
2442 pub to: ::ethers::core::types::Address,
2443 pub amount: ::ethers::core::types::U256,
2444 pub p4: ::ethers::core::types::Bytes,
2445 pub p5: ::ethers::core::types::Bytes,
2446 }
2447 #[derive(
2449 Clone,
2450 ::ethers::contract::EthCall,
2451 ::ethers::contract::EthDisplay,
2452 serde::Serialize,
2453 serde::Deserialize,
2454 Default,
2455 Debug,
2456 PartialEq,
2457 Eq,
2458 Hash
2459 )]
2460 #[ethcall(name = "totalLocked", abi = "totalLocked()")]
2461 pub struct TotalLockedCall;
2462 #[derive(
2464 Clone,
2465 ::ethers::contract::EthCall,
2466 ::ethers::contract::EthDisplay,
2467 serde::Serialize,
2468 serde::Deserialize,
2469 Default,
2470 Debug,
2471 PartialEq,
2472 Eq,
2473 Hash
2474 )]
2475 #[ethcall(name = "transferOwnership", abi = "transferOwnership(address)")]
2476 pub struct TransferOwnershipCall {
2477 pub new_owner: ::ethers::core::types::Address,
2478 }
2479 #[derive(
2481 Clone,
2482 ::ethers::contract::EthCall,
2483 ::ethers::contract::EthDisplay,
2484 serde::Serialize,
2485 serde::Deserialize,
2486 Default,
2487 Debug,
2488 PartialEq,
2489 Eq,
2490 Hash
2491 )]
2492 #[ethcall(name = "unlock", abi = "unlock()")]
2493 pub struct UnlockCall;
2494 #[derive(
2496 Clone,
2497 ::ethers::contract::EthCall,
2498 ::ethers::contract::EthDisplay,
2499 serde::Serialize,
2500 serde::Deserialize,
2501 Default,
2502 Debug,
2503 PartialEq,
2504 Eq,
2505 Hash
2506 )]
2507 #[ethcall(name = "unlockFor", abi = "unlockFor(address)")]
2508 pub struct UnlockForCall {
2509 pub account: ::ethers::core::types::Address,
2510 }
2511 #[derive(
2513 Clone,
2514 ::ethers::contract::EthAbiType,
2515 serde::Serialize,
2516 serde::Deserialize,
2517 Debug,
2518 PartialEq,
2519 Eq,
2520 Hash
2521 )]
2522 pub enum HoprStake2Calls {
2523 BasicFactorNumerator(BasicFactorNumeratorCall),
2524 BoostCap(BoostCapCall),
2525 FactorDenominator(FactorDenominatorCall),
2526 LockToken(LockTokenCall),
2527 NftContract(NftContractCall),
2528 ProgramEnd(ProgramEndCall),
2529 ProgramStart(ProgramStartCall),
2530 RewardToken(RewardTokenCall),
2531 Accounts(AccountsCall),
2532 AvailableReward(AvailableRewardCall),
2533 ClaimRewards(ClaimRewardsCall),
2534 GetCumulatedRewardsIncrement(GetCumulatedRewardsIncrementCall),
2535 IsNftTypeAndRankRedeemed1(IsNftTypeAndRankRedeemed1Call),
2536 IsNftTypeAndRankRedeemed2(IsNftTypeAndRankRedeemed2Call),
2537 IsNftTypeAndRankRedeemed3(IsNftTypeAndRankRedeemed3Call),
2538 IsNftTypeAndRankRedeemed4(IsNftTypeAndRankRedeemed4Call),
2539 OnERC721Received(OnERC721ReceivedCall),
2540 OnTokenTransfer(OnTokenTransferCall),
2541 Owner(OwnerCall),
2542 ReclaimErc20Tokens(ReclaimErc20TokensCall),
2543 ReclaimErc721Tokens(ReclaimErc721TokensCall),
2544 RedeemedFactor(RedeemedFactorCall),
2545 RedeemedFactorIndex(RedeemedFactorIndexCall),
2546 RedeemedNft(RedeemedNftCall),
2547 RedeemedNftIndex(RedeemedNftIndexCall),
2548 RenounceOwnership(RenounceOwnershipCall),
2549 StakedHoprTokens(StakedHoprTokensCall),
2550 Sync(SyncCall),
2551 TokensReceived(TokensReceivedCall),
2552 TotalLocked(TotalLockedCall),
2553 TransferOwnership(TransferOwnershipCall),
2554 Unlock(UnlockCall),
2555 UnlockFor(UnlockForCall),
2556 }
2557 impl ::ethers::core::abi::AbiDecode for HoprStake2Calls {
2558 fn decode(
2559 data: impl AsRef<[u8]>,
2560 ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
2561 let data = data.as_ref();
2562 if let Ok(decoded) = <BasicFactorNumeratorCall as ::ethers::core::abi::AbiDecode>::decode(
2563 data,
2564 ) {
2565 return Ok(Self::BasicFactorNumerator(decoded));
2566 }
2567 if let Ok(decoded) = <BoostCapCall as ::ethers::core::abi::AbiDecode>::decode(
2568 data,
2569 ) {
2570 return Ok(Self::BoostCap(decoded));
2571 }
2572 if let Ok(decoded) = <FactorDenominatorCall as ::ethers::core::abi::AbiDecode>::decode(
2573 data,
2574 ) {
2575 return Ok(Self::FactorDenominator(decoded));
2576 }
2577 if let Ok(decoded) = <LockTokenCall as ::ethers::core::abi::AbiDecode>::decode(
2578 data,
2579 ) {
2580 return Ok(Self::LockToken(decoded));
2581 }
2582 if let Ok(decoded) = <NftContractCall as ::ethers::core::abi::AbiDecode>::decode(
2583 data,
2584 ) {
2585 return Ok(Self::NftContract(decoded));
2586 }
2587 if let Ok(decoded) = <ProgramEndCall as ::ethers::core::abi::AbiDecode>::decode(
2588 data,
2589 ) {
2590 return Ok(Self::ProgramEnd(decoded));
2591 }
2592 if let Ok(decoded) = <ProgramStartCall as ::ethers::core::abi::AbiDecode>::decode(
2593 data,
2594 ) {
2595 return Ok(Self::ProgramStart(decoded));
2596 }
2597 if let Ok(decoded) = <RewardTokenCall as ::ethers::core::abi::AbiDecode>::decode(
2598 data,
2599 ) {
2600 return Ok(Self::RewardToken(decoded));
2601 }
2602 if let Ok(decoded) = <AccountsCall as ::ethers::core::abi::AbiDecode>::decode(
2603 data,
2604 ) {
2605 return Ok(Self::Accounts(decoded));
2606 }
2607 if let Ok(decoded) = <AvailableRewardCall as ::ethers::core::abi::AbiDecode>::decode(
2608 data,
2609 ) {
2610 return Ok(Self::AvailableReward(decoded));
2611 }
2612 if let Ok(decoded) = <ClaimRewardsCall as ::ethers::core::abi::AbiDecode>::decode(
2613 data,
2614 ) {
2615 return Ok(Self::ClaimRewards(decoded));
2616 }
2617 if let Ok(decoded) = <GetCumulatedRewardsIncrementCall as ::ethers::core::abi::AbiDecode>::decode(
2618 data,
2619 ) {
2620 return Ok(Self::GetCumulatedRewardsIncrement(decoded));
2621 }
2622 if let Ok(decoded) = <IsNftTypeAndRankRedeemed1Call as ::ethers::core::abi::AbiDecode>::decode(
2623 data,
2624 ) {
2625 return Ok(Self::IsNftTypeAndRankRedeemed1(decoded));
2626 }
2627 if let Ok(decoded) = <IsNftTypeAndRankRedeemed2Call as ::ethers::core::abi::AbiDecode>::decode(
2628 data,
2629 ) {
2630 return Ok(Self::IsNftTypeAndRankRedeemed2(decoded));
2631 }
2632 if let Ok(decoded) = <IsNftTypeAndRankRedeemed3Call as ::ethers::core::abi::AbiDecode>::decode(
2633 data,
2634 ) {
2635 return Ok(Self::IsNftTypeAndRankRedeemed3(decoded));
2636 }
2637 if let Ok(decoded) = <IsNftTypeAndRankRedeemed4Call as ::ethers::core::abi::AbiDecode>::decode(
2638 data,
2639 ) {
2640 return Ok(Self::IsNftTypeAndRankRedeemed4(decoded));
2641 }
2642 if let Ok(decoded) = <OnERC721ReceivedCall as ::ethers::core::abi::AbiDecode>::decode(
2643 data,
2644 ) {
2645 return Ok(Self::OnERC721Received(decoded));
2646 }
2647 if let Ok(decoded) = <OnTokenTransferCall as ::ethers::core::abi::AbiDecode>::decode(
2648 data,
2649 ) {
2650 return Ok(Self::OnTokenTransfer(decoded));
2651 }
2652 if let Ok(decoded) = <OwnerCall as ::ethers::core::abi::AbiDecode>::decode(
2653 data,
2654 ) {
2655 return Ok(Self::Owner(decoded));
2656 }
2657 if let Ok(decoded) = <ReclaimErc20TokensCall as ::ethers::core::abi::AbiDecode>::decode(
2658 data,
2659 ) {
2660 return Ok(Self::ReclaimErc20Tokens(decoded));
2661 }
2662 if let Ok(decoded) = <ReclaimErc721TokensCall as ::ethers::core::abi::AbiDecode>::decode(
2663 data,
2664 ) {
2665 return Ok(Self::ReclaimErc721Tokens(decoded));
2666 }
2667 if let Ok(decoded) = <RedeemedFactorCall as ::ethers::core::abi::AbiDecode>::decode(
2668 data,
2669 ) {
2670 return Ok(Self::RedeemedFactor(decoded));
2671 }
2672 if let Ok(decoded) = <RedeemedFactorIndexCall as ::ethers::core::abi::AbiDecode>::decode(
2673 data,
2674 ) {
2675 return Ok(Self::RedeemedFactorIndex(decoded));
2676 }
2677 if let Ok(decoded) = <RedeemedNftCall as ::ethers::core::abi::AbiDecode>::decode(
2678 data,
2679 ) {
2680 return Ok(Self::RedeemedNft(decoded));
2681 }
2682 if let Ok(decoded) = <RedeemedNftIndexCall as ::ethers::core::abi::AbiDecode>::decode(
2683 data,
2684 ) {
2685 return Ok(Self::RedeemedNftIndex(decoded));
2686 }
2687 if let Ok(decoded) = <RenounceOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
2688 data,
2689 ) {
2690 return Ok(Self::RenounceOwnership(decoded));
2691 }
2692 if let Ok(decoded) = <StakedHoprTokensCall as ::ethers::core::abi::AbiDecode>::decode(
2693 data,
2694 ) {
2695 return Ok(Self::StakedHoprTokens(decoded));
2696 }
2697 if let Ok(decoded) = <SyncCall as ::ethers::core::abi::AbiDecode>::decode(
2698 data,
2699 ) {
2700 return Ok(Self::Sync(decoded));
2701 }
2702 if let Ok(decoded) = <TokensReceivedCall as ::ethers::core::abi::AbiDecode>::decode(
2703 data,
2704 ) {
2705 return Ok(Self::TokensReceived(decoded));
2706 }
2707 if let Ok(decoded) = <TotalLockedCall as ::ethers::core::abi::AbiDecode>::decode(
2708 data,
2709 ) {
2710 return Ok(Self::TotalLocked(decoded));
2711 }
2712 if let Ok(decoded) = <TransferOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
2713 data,
2714 ) {
2715 return Ok(Self::TransferOwnership(decoded));
2716 }
2717 if let Ok(decoded) = <UnlockCall as ::ethers::core::abi::AbiDecode>::decode(
2718 data,
2719 ) {
2720 return Ok(Self::Unlock(decoded));
2721 }
2722 if let Ok(decoded) = <UnlockForCall as ::ethers::core::abi::AbiDecode>::decode(
2723 data,
2724 ) {
2725 return Ok(Self::UnlockFor(decoded));
2726 }
2727 Err(::ethers::core::abi::Error::InvalidData.into())
2728 }
2729 }
2730 impl ::ethers::core::abi::AbiEncode for HoprStake2Calls {
2731 fn encode(self) -> Vec<u8> {
2732 match self {
2733 Self::BasicFactorNumerator(element) => {
2734 ::ethers::core::abi::AbiEncode::encode(element)
2735 }
2736 Self::BoostCap(element) => {
2737 ::ethers::core::abi::AbiEncode::encode(element)
2738 }
2739 Self::FactorDenominator(element) => {
2740 ::ethers::core::abi::AbiEncode::encode(element)
2741 }
2742 Self::LockToken(element) => {
2743 ::ethers::core::abi::AbiEncode::encode(element)
2744 }
2745 Self::NftContract(element) => {
2746 ::ethers::core::abi::AbiEncode::encode(element)
2747 }
2748 Self::ProgramEnd(element) => {
2749 ::ethers::core::abi::AbiEncode::encode(element)
2750 }
2751 Self::ProgramStart(element) => {
2752 ::ethers::core::abi::AbiEncode::encode(element)
2753 }
2754 Self::RewardToken(element) => {
2755 ::ethers::core::abi::AbiEncode::encode(element)
2756 }
2757 Self::Accounts(element) => {
2758 ::ethers::core::abi::AbiEncode::encode(element)
2759 }
2760 Self::AvailableReward(element) => {
2761 ::ethers::core::abi::AbiEncode::encode(element)
2762 }
2763 Self::ClaimRewards(element) => {
2764 ::ethers::core::abi::AbiEncode::encode(element)
2765 }
2766 Self::GetCumulatedRewardsIncrement(element) => {
2767 ::ethers::core::abi::AbiEncode::encode(element)
2768 }
2769 Self::IsNftTypeAndRankRedeemed1(element) => {
2770 ::ethers::core::abi::AbiEncode::encode(element)
2771 }
2772 Self::IsNftTypeAndRankRedeemed2(element) => {
2773 ::ethers::core::abi::AbiEncode::encode(element)
2774 }
2775 Self::IsNftTypeAndRankRedeemed3(element) => {
2776 ::ethers::core::abi::AbiEncode::encode(element)
2777 }
2778 Self::IsNftTypeAndRankRedeemed4(element) => {
2779 ::ethers::core::abi::AbiEncode::encode(element)
2780 }
2781 Self::OnERC721Received(element) => {
2782 ::ethers::core::abi::AbiEncode::encode(element)
2783 }
2784 Self::OnTokenTransfer(element) => {
2785 ::ethers::core::abi::AbiEncode::encode(element)
2786 }
2787 Self::Owner(element) => ::ethers::core::abi::AbiEncode::encode(element),
2788 Self::ReclaimErc20Tokens(element) => {
2789 ::ethers::core::abi::AbiEncode::encode(element)
2790 }
2791 Self::ReclaimErc721Tokens(element) => {
2792 ::ethers::core::abi::AbiEncode::encode(element)
2793 }
2794 Self::RedeemedFactor(element) => {
2795 ::ethers::core::abi::AbiEncode::encode(element)
2796 }
2797 Self::RedeemedFactorIndex(element) => {
2798 ::ethers::core::abi::AbiEncode::encode(element)
2799 }
2800 Self::RedeemedNft(element) => {
2801 ::ethers::core::abi::AbiEncode::encode(element)
2802 }
2803 Self::RedeemedNftIndex(element) => {
2804 ::ethers::core::abi::AbiEncode::encode(element)
2805 }
2806 Self::RenounceOwnership(element) => {
2807 ::ethers::core::abi::AbiEncode::encode(element)
2808 }
2809 Self::StakedHoprTokens(element) => {
2810 ::ethers::core::abi::AbiEncode::encode(element)
2811 }
2812 Self::Sync(element) => ::ethers::core::abi::AbiEncode::encode(element),
2813 Self::TokensReceived(element) => {
2814 ::ethers::core::abi::AbiEncode::encode(element)
2815 }
2816 Self::TotalLocked(element) => {
2817 ::ethers::core::abi::AbiEncode::encode(element)
2818 }
2819 Self::TransferOwnership(element) => {
2820 ::ethers::core::abi::AbiEncode::encode(element)
2821 }
2822 Self::Unlock(element) => ::ethers::core::abi::AbiEncode::encode(element),
2823 Self::UnlockFor(element) => {
2824 ::ethers::core::abi::AbiEncode::encode(element)
2825 }
2826 }
2827 }
2828 }
2829 impl ::core::fmt::Display for HoprStake2Calls {
2830 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2831 match self {
2832 Self::BasicFactorNumerator(element) => {
2833 ::core::fmt::Display::fmt(element, f)
2834 }
2835 Self::BoostCap(element) => ::core::fmt::Display::fmt(element, f),
2836 Self::FactorDenominator(element) => ::core::fmt::Display::fmt(element, f),
2837 Self::LockToken(element) => ::core::fmt::Display::fmt(element, f),
2838 Self::NftContract(element) => ::core::fmt::Display::fmt(element, f),
2839 Self::ProgramEnd(element) => ::core::fmt::Display::fmt(element, f),
2840 Self::ProgramStart(element) => ::core::fmt::Display::fmt(element, f),
2841 Self::RewardToken(element) => ::core::fmt::Display::fmt(element, f),
2842 Self::Accounts(element) => ::core::fmt::Display::fmt(element, f),
2843 Self::AvailableReward(element) => ::core::fmt::Display::fmt(element, f),
2844 Self::ClaimRewards(element) => ::core::fmt::Display::fmt(element, f),
2845 Self::GetCumulatedRewardsIncrement(element) => {
2846 ::core::fmt::Display::fmt(element, f)
2847 }
2848 Self::IsNftTypeAndRankRedeemed1(element) => {
2849 ::core::fmt::Display::fmt(element, f)
2850 }
2851 Self::IsNftTypeAndRankRedeemed2(element) => {
2852 ::core::fmt::Display::fmt(element, f)
2853 }
2854 Self::IsNftTypeAndRankRedeemed3(element) => {
2855 ::core::fmt::Display::fmt(element, f)
2856 }
2857 Self::IsNftTypeAndRankRedeemed4(element) => {
2858 ::core::fmt::Display::fmt(element, f)
2859 }
2860 Self::OnERC721Received(element) => ::core::fmt::Display::fmt(element, f),
2861 Self::OnTokenTransfer(element) => ::core::fmt::Display::fmt(element, f),
2862 Self::Owner(element) => ::core::fmt::Display::fmt(element, f),
2863 Self::ReclaimErc20Tokens(element) => {
2864 ::core::fmt::Display::fmt(element, f)
2865 }
2866 Self::ReclaimErc721Tokens(element) => {
2867 ::core::fmt::Display::fmt(element, f)
2868 }
2869 Self::RedeemedFactor(element) => ::core::fmt::Display::fmt(element, f),
2870 Self::RedeemedFactorIndex(element) => {
2871 ::core::fmt::Display::fmt(element, f)
2872 }
2873 Self::RedeemedNft(element) => ::core::fmt::Display::fmt(element, f),
2874 Self::RedeemedNftIndex(element) => ::core::fmt::Display::fmt(element, f),
2875 Self::RenounceOwnership(element) => ::core::fmt::Display::fmt(element, f),
2876 Self::StakedHoprTokens(element) => ::core::fmt::Display::fmt(element, f),
2877 Self::Sync(element) => ::core::fmt::Display::fmt(element, f),
2878 Self::TokensReceived(element) => ::core::fmt::Display::fmt(element, f),
2879 Self::TotalLocked(element) => ::core::fmt::Display::fmt(element, f),
2880 Self::TransferOwnership(element) => ::core::fmt::Display::fmt(element, f),
2881 Self::Unlock(element) => ::core::fmt::Display::fmt(element, f),
2882 Self::UnlockFor(element) => ::core::fmt::Display::fmt(element, f),
2883 }
2884 }
2885 }
2886 impl ::core::convert::From<BasicFactorNumeratorCall> for HoprStake2Calls {
2887 fn from(value: BasicFactorNumeratorCall) -> Self {
2888 Self::BasicFactorNumerator(value)
2889 }
2890 }
2891 impl ::core::convert::From<BoostCapCall> for HoprStake2Calls {
2892 fn from(value: BoostCapCall) -> Self {
2893 Self::BoostCap(value)
2894 }
2895 }
2896 impl ::core::convert::From<FactorDenominatorCall> for HoprStake2Calls {
2897 fn from(value: FactorDenominatorCall) -> Self {
2898 Self::FactorDenominator(value)
2899 }
2900 }
2901 impl ::core::convert::From<LockTokenCall> for HoprStake2Calls {
2902 fn from(value: LockTokenCall) -> Self {
2903 Self::LockToken(value)
2904 }
2905 }
2906 impl ::core::convert::From<NftContractCall> for HoprStake2Calls {
2907 fn from(value: NftContractCall) -> Self {
2908 Self::NftContract(value)
2909 }
2910 }
2911 impl ::core::convert::From<ProgramEndCall> for HoprStake2Calls {
2912 fn from(value: ProgramEndCall) -> Self {
2913 Self::ProgramEnd(value)
2914 }
2915 }
2916 impl ::core::convert::From<ProgramStartCall> for HoprStake2Calls {
2917 fn from(value: ProgramStartCall) -> Self {
2918 Self::ProgramStart(value)
2919 }
2920 }
2921 impl ::core::convert::From<RewardTokenCall> for HoprStake2Calls {
2922 fn from(value: RewardTokenCall) -> Self {
2923 Self::RewardToken(value)
2924 }
2925 }
2926 impl ::core::convert::From<AccountsCall> for HoprStake2Calls {
2927 fn from(value: AccountsCall) -> Self {
2928 Self::Accounts(value)
2929 }
2930 }
2931 impl ::core::convert::From<AvailableRewardCall> for HoprStake2Calls {
2932 fn from(value: AvailableRewardCall) -> Self {
2933 Self::AvailableReward(value)
2934 }
2935 }
2936 impl ::core::convert::From<ClaimRewardsCall> for HoprStake2Calls {
2937 fn from(value: ClaimRewardsCall) -> Self {
2938 Self::ClaimRewards(value)
2939 }
2940 }
2941 impl ::core::convert::From<GetCumulatedRewardsIncrementCall> for HoprStake2Calls {
2942 fn from(value: GetCumulatedRewardsIncrementCall) -> Self {
2943 Self::GetCumulatedRewardsIncrement(value)
2944 }
2945 }
2946 impl ::core::convert::From<IsNftTypeAndRankRedeemed1Call> for HoprStake2Calls {
2947 fn from(value: IsNftTypeAndRankRedeemed1Call) -> Self {
2948 Self::IsNftTypeAndRankRedeemed1(value)
2949 }
2950 }
2951 impl ::core::convert::From<IsNftTypeAndRankRedeemed2Call> for HoprStake2Calls {
2952 fn from(value: IsNftTypeAndRankRedeemed2Call) -> Self {
2953 Self::IsNftTypeAndRankRedeemed2(value)
2954 }
2955 }
2956 impl ::core::convert::From<IsNftTypeAndRankRedeemed3Call> for HoprStake2Calls {
2957 fn from(value: IsNftTypeAndRankRedeemed3Call) -> Self {
2958 Self::IsNftTypeAndRankRedeemed3(value)
2959 }
2960 }
2961 impl ::core::convert::From<IsNftTypeAndRankRedeemed4Call> for HoprStake2Calls {
2962 fn from(value: IsNftTypeAndRankRedeemed4Call) -> Self {
2963 Self::IsNftTypeAndRankRedeemed4(value)
2964 }
2965 }
2966 impl ::core::convert::From<OnERC721ReceivedCall> for HoprStake2Calls {
2967 fn from(value: OnERC721ReceivedCall) -> Self {
2968 Self::OnERC721Received(value)
2969 }
2970 }
2971 impl ::core::convert::From<OnTokenTransferCall> for HoprStake2Calls {
2972 fn from(value: OnTokenTransferCall) -> Self {
2973 Self::OnTokenTransfer(value)
2974 }
2975 }
2976 impl ::core::convert::From<OwnerCall> for HoprStake2Calls {
2977 fn from(value: OwnerCall) -> Self {
2978 Self::Owner(value)
2979 }
2980 }
2981 impl ::core::convert::From<ReclaimErc20TokensCall> for HoprStake2Calls {
2982 fn from(value: ReclaimErc20TokensCall) -> Self {
2983 Self::ReclaimErc20Tokens(value)
2984 }
2985 }
2986 impl ::core::convert::From<ReclaimErc721TokensCall> for HoprStake2Calls {
2987 fn from(value: ReclaimErc721TokensCall) -> Self {
2988 Self::ReclaimErc721Tokens(value)
2989 }
2990 }
2991 impl ::core::convert::From<RedeemedFactorCall> for HoprStake2Calls {
2992 fn from(value: RedeemedFactorCall) -> Self {
2993 Self::RedeemedFactor(value)
2994 }
2995 }
2996 impl ::core::convert::From<RedeemedFactorIndexCall> for HoprStake2Calls {
2997 fn from(value: RedeemedFactorIndexCall) -> Self {
2998 Self::RedeemedFactorIndex(value)
2999 }
3000 }
3001 impl ::core::convert::From<RedeemedNftCall> for HoprStake2Calls {
3002 fn from(value: RedeemedNftCall) -> Self {
3003 Self::RedeemedNft(value)
3004 }
3005 }
3006 impl ::core::convert::From<RedeemedNftIndexCall> for HoprStake2Calls {
3007 fn from(value: RedeemedNftIndexCall) -> Self {
3008 Self::RedeemedNftIndex(value)
3009 }
3010 }
3011 impl ::core::convert::From<RenounceOwnershipCall> for HoprStake2Calls {
3012 fn from(value: RenounceOwnershipCall) -> Self {
3013 Self::RenounceOwnership(value)
3014 }
3015 }
3016 impl ::core::convert::From<StakedHoprTokensCall> for HoprStake2Calls {
3017 fn from(value: StakedHoprTokensCall) -> Self {
3018 Self::StakedHoprTokens(value)
3019 }
3020 }
3021 impl ::core::convert::From<SyncCall> for HoprStake2Calls {
3022 fn from(value: SyncCall) -> Self {
3023 Self::Sync(value)
3024 }
3025 }
3026 impl ::core::convert::From<TokensReceivedCall> for HoprStake2Calls {
3027 fn from(value: TokensReceivedCall) -> Self {
3028 Self::TokensReceived(value)
3029 }
3030 }
3031 impl ::core::convert::From<TotalLockedCall> for HoprStake2Calls {
3032 fn from(value: TotalLockedCall) -> Self {
3033 Self::TotalLocked(value)
3034 }
3035 }
3036 impl ::core::convert::From<TransferOwnershipCall> for HoprStake2Calls {
3037 fn from(value: TransferOwnershipCall) -> Self {
3038 Self::TransferOwnership(value)
3039 }
3040 }
3041 impl ::core::convert::From<UnlockCall> for HoprStake2Calls {
3042 fn from(value: UnlockCall) -> Self {
3043 Self::Unlock(value)
3044 }
3045 }
3046 impl ::core::convert::From<UnlockForCall> for HoprStake2Calls {
3047 fn from(value: UnlockForCall) -> Self {
3048 Self::UnlockFor(value)
3049 }
3050 }
3051 #[derive(
3053 Clone,
3054 ::ethers::contract::EthAbiType,
3055 ::ethers::contract::EthAbiCodec,
3056 serde::Serialize,
3057 serde::Deserialize,
3058 Default,
3059 Debug,
3060 PartialEq,
3061 Eq,
3062 Hash
3063 )]
3064 pub struct BasicFactorNumeratorReturn(pub ::ethers::core::types::U256);
3065 #[derive(
3067 Clone,
3068 ::ethers::contract::EthAbiType,
3069 ::ethers::contract::EthAbiCodec,
3070 serde::Serialize,
3071 serde::Deserialize,
3072 Default,
3073 Debug,
3074 PartialEq,
3075 Eq,
3076 Hash
3077 )]
3078 pub struct BoostCapReturn(pub ::ethers::core::types::U256);
3079 #[derive(
3081 Clone,
3082 ::ethers::contract::EthAbiType,
3083 ::ethers::contract::EthAbiCodec,
3084 serde::Serialize,
3085 serde::Deserialize,
3086 Default,
3087 Debug,
3088 PartialEq,
3089 Eq,
3090 Hash
3091 )]
3092 pub struct FactorDenominatorReturn(pub ::ethers::core::types::U256);
3093 #[derive(
3095 Clone,
3096 ::ethers::contract::EthAbiType,
3097 ::ethers::contract::EthAbiCodec,
3098 serde::Serialize,
3099 serde::Deserialize,
3100 Default,
3101 Debug,
3102 PartialEq,
3103 Eq,
3104 Hash
3105 )]
3106 pub struct LockTokenReturn(pub ::ethers::core::types::Address);
3107 #[derive(
3109 Clone,
3110 ::ethers::contract::EthAbiType,
3111 ::ethers::contract::EthAbiCodec,
3112 serde::Serialize,
3113 serde::Deserialize,
3114 Default,
3115 Debug,
3116 PartialEq,
3117 Eq,
3118 Hash
3119 )]
3120 pub struct NftContractReturn(pub ::ethers::core::types::Address);
3121 #[derive(
3123 Clone,
3124 ::ethers::contract::EthAbiType,
3125 ::ethers::contract::EthAbiCodec,
3126 serde::Serialize,
3127 serde::Deserialize,
3128 Default,
3129 Debug,
3130 PartialEq,
3131 Eq,
3132 Hash
3133 )]
3134 pub struct ProgramEndReturn(pub ::ethers::core::types::U256);
3135 #[derive(
3137 Clone,
3138 ::ethers::contract::EthAbiType,
3139 ::ethers::contract::EthAbiCodec,
3140 serde::Serialize,
3141 serde::Deserialize,
3142 Default,
3143 Debug,
3144 PartialEq,
3145 Eq,
3146 Hash
3147 )]
3148 pub struct ProgramStartReturn(pub ::ethers::core::types::U256);
3149 #[derive(
3151 Clone,
3152 ::ethers::contract::EthAbiType,
3153 ::ethers::contract::EthAbiCodec,
3154 serde::Serialize,
3155 serde::Deserialize,
3156 Default,
3157 Debug,
3158 PartialEq,
3159 Eq,
3160 Hash
3161 )]
3162 pub struct RewardTokenReturn(pub ::ethers::core::types::Address);
3163 #[derive(
3165 Clone,
3166 ::ethers::contract::EthAbiType,
3167 ::ethers::contract::EthAbiCodec,
3168 serde::Serialize,
3169 serde::Deserialize,
3170 Default,
3171 Debug,
3172 PartialEq,
3173 Eq,
3174 Hash
3175 )]
3176 pub struct AccountsReturn {
3177 pub actual_locked_token_amount: ::ethers::core::types::U256,
3178 pub last_sync_timestamp: ::ethers::core::types::U256,
3179 pub cumulated_rewards: ::ethers::core::types::U256,
3180 pub claimed_rewards: ::ethers::core::types::U256,
3181 }
3182 #[derive(
3184 Clone,
3185 ::ethers::contract::EthAbiType,
3186 ::ethers::contract::EthAbiCodec,
3187 serde::Serialize,
3188 serde::Deserialize,
3189 Default,
3190 Debug,
3191 PartialEq,
3192 Eq,
3193 Hash
3194 )]
3195 pub struct AvailableRewardReturn(pub ::ethers::core::types::U256);
3196 #[derive(
3198 Clone,
3199 ::ethers::contract::EthAbiType,
3200 ::ethers::contract::EthAbiCodec,
3201 serde::Serialize,
3202 serde::Deserialize,
3203 Default,
3204 Debug,
3205 PartialEq,
3206 Eq,
3207 Hash
3208 )]
3209 pub struct GetCumulatedRewardsIncrementReturn(pub ::ethers::core::types::U256);
3210 #[derive(
3212 Clone,
3213 ::ethers::contract::EthAbiType,
3214 ::ethers::contract::EthAbiCodec,
3215 serde::Serialize,
3216 serde::Deserialize,
3217 Default,
3218 Debug,
3219 PartialEq,
3220 Eq,
3221 Hash
3222 )]
3223 pub struct IsNftTypeAndRankRedeemed1Return(pub bool);
3224 #[derive(
3226 Clone,
3227 ::ethers::contract::EthAbiType,
3228 ::ethers::contract::EthAbiCodec,
3229 serde::Serialize,
3230 serde::Deserialize,
3231 Default,
3232 Debug,
3233 PartialEq,
3234 Eq,
3235 Hash
3236 )]
3237 pub struct IsNftTypeAndRankRedeemed2Return(pub bool);
3238 #[derive(
3240 Clone,
3241 ::ethers::contract::EthAbiType,
3242 ::ethers::contract::EthAbiCodec,
3243 serde::Serialize,
3244 serde::Deserialize,
3245 Default,
3246 Debug,
3247 PartialEq,
3248 Eq,
3249 Hash
3250 )]
3251 pub struct IsNftTypeAndRankRedeemed3Return(pub bool);
3252 #[derive(
3254 Clone,
3255 ::ethers::contract::EthAbiType,
3256 ::ethers::contract::EthAbiCodec,
3257 serde::Serialize,
3258 serde::Deserialize,
3259 Default,
3260 Debug,
3261 PartialEq,
3262 Eq,
3263 Hash
3264 )]
3265 pub struct IsNftTypeAndRankRedeemed4Return(pub bool);
3266 #[derive(
3268 Clone,
3269 ::ethers::contract::EthAbiType,
3270 ::ethers::contract::EthAbiCodec,
3271 serde::Serialize,
3272 serde::Deserialize,
3273 Default,
3274 Debug,
3275 PartialEq,
3276 Eq,
3277 Hash
3278 )]
3279 pub struct OnERC721ReceivedReturn(pub [u8; 4]);
3280 #[derive(
3282 Clone,
3283 ::ethers::contract::EthAbiType,
3284 ::ethers::contract::EthAbiCodec,
3285 serde::Serialize,
3286 serde::Deserialize,
3287 Default,
3288 Debug,
3289 PartialEq,
3290 Eq,
3291 Hash
3292 )]
3293 pub struct OnTokenTransferReturn(pub bool);
3294 #[derive(
3296 Clone,
3297 ::ethers::contract::EthAbiType,
3298 ::ethers::contract::EthAbiCodec,
3299 serde::Serialize,
3300 serde::Deserialize,
3301 Default,
3302 Debug,
3303 PartialEq,
3304 Eq,
3305 Hash
3306 )]
3307 pub struct OwnerReturn(pub ::ethers::core::types::Address);
3308 #[derive(
3310 Clone,
3311 ::ethers::contract::EthAbiType,
3312 ::ethers::contract::EthAbiCodec,
3313 serde::Serialize,
3314 serde::Deserialize,
3315 Default,
3316 Debug,
3317 PartialEq,
3318 Eq,
3319 Hash
3320 )]
3321 pub struct RedeemedFactorReturn(pub ::ethers::core::types::U256);
3322 #[derive(
3324 Clone,
3325 ::ethers::contract::EthAbiType,
3326 ::ethers::contract::EthAbiCodec,
3327 serde::Serialize,
3328 serde::Deserialize,
3329 Default,
3330 Debug,
3331 PartialEq,
3332 Eq,
3333 Hash
3334 )]
3335 pub struct RedeemedFactorIndexReturn(pub ::ethers::core::types::U256);
3336 #[derive(
3338 Clone,
3339 ::ethers::contract::EthAbiType,
3340 ::ethers::contract::EthAbiCodec,
3341 serde::Serialize,
3342 serde::Deserialize,
3343 Default,
3344 Debug,
3345 PartialEq,
3346 Eq,
3347 Hash
3348 )]
3349 pub struct RedeemedNftReturn(pub ::ethers::core::types::U256);
3350 #[derive(
3352 Clone,
3353 ::ethers::contract::EthAbiType,
3354 ::ethers::contract::EthAbiCodec,
3355 serde::Serialize,
3356 serde::Deserialize,
3357 Default,
3358 Debug,
3359 PartialEq,
3360 Eq,
3361 Hash
3362 )]
3363 pub struct RedeemedNftIndexReturn(pub ::ethers::core::types::U256);
3364 #[derive(
3366 Clone,
3367 ::ethers::contract::EthAbiType,
3368 ::ethers::contract::EthAbiCodec,
3369 serde::Serialize,
3370 serde::Deserialize,
3371 Default,
3372 Debug,
3373 PartialEq,
3374 Eq,
3375 Hash
3376 )]
3377 pub struct StakedHoprTokensReturn(pub ::ethers::core::types::U256);
3378 #[derive(
3380 Clone,
3381 ::ethers::contract::EthAbiType,
3382 ::ethers::contract::EthAbiCodec,
3383 serde::Serialize,
3384 serde::Deserialize,
3385 Default,
3386 Debug,
3387 PartialEq,
3388 Eq,
3389 Hash
3390 )]
3391 pub struct TotalLockedReturn(pub ::ethers::core::types::U256);
3392}