@gooddollar/goodcollective-contracts 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/contracts/DirectPayments/DirectPaymentsFactory.sol +12 -7
  2. package/contracts/DirectPayments/DirectPaymentsLibrary.sol +54 -0
  3. package/contracts/DirectPayments/DirectPaymentsPool.sol +13 -38
  4. package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +65 -13
  5. package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +6 -0
  6. package/contracts/Interfaces.sol +25 -0
  7. package/contracts/UBI/UBIPool.sol +76 -75
  8. package/contracts/UBI/UBIPoolFactory.sol +15 -10
  9. package/contracts/utils/HelperLibrary.sol +56 -23
  10. package/package.json +1 -1
  11. package/releases/deployment.json +4836 -3746
  12. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +16 -4
  13. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +138 -9
  14. package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +101 -6
  15. package/typechain-types/contracts/{DirectPayments/DirectPaymentsFactory.sol/IRegistry.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.ts} +18 -27
  16. package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/index.ts +1 -0
  17. package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2.ts +1 -1
  18. package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator.ts +1 -1
  19. package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
  20. package/typechain-types/contracts/UBI/{UBIPool.sol/UBIPool.ts → UBIPool.ts} +239 -47
  21. package/typechain-types/contracts/UBI/UBIPoolFactory.ts +58 -34
  22. package/typechain-types/contracts/UBI/index.ts +1 -2
  23. package/typechain-types/contracts/index.ts +2 -0
  24. package/typechain-types/contracts/utils/HelperLibrary.ts +46 -4
  25. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +11 -1
  26. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +72 -1
  27. package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +48 -0
  28. package/typechain-types/factories/contracts/{DirectPayments/DirectPaymentsFactory.sol/IRegistry__factory.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp__factory.ts} +19 -23
  29. package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/index.ts +1 -0
  30. package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2__factory.ts +1 -1
  31. package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator__factory.ts +1 -1
  32. package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
  33. package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +51 -7
  34. package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +2052 -0
  35. package/typechain-types/factories/contracts/UBI/index.ts +1 -1
  36. package/typechain-types/factories/contracts/index.ts +1 -0
  37. package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +1 -1
  38. package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +31 -1
  39. package/typechain-types/hardhat.d.ts +18 -9
  40. package/typechain-types/index.ts +4 -2
  41. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.ts +0 -1327
  42. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.sol/index.ts +0 -5
  43. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory__factory.ts +0 -1004
  44. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory.sol/index.ts +0 -5
  45. package/typechain-types/factories/contracts/UBI/UBIPool.sol/UBIPool__factory.ts +0 -1916
@@ -1,1916 +0,0 @@
1
- /* Autogenerated file. Do not edit manually. */
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
5
- import type { Provider, TransactionRequest } from "@ethersproject/providers";
6
- import type { PromiseOrValue } from "../../../../common";
7
- import type {
8
- UBIPool,
9
- UBIPoolInterface,
10
- } from "../../../../contracts/UBI/UBIPool.sol/UBIPool";
11
-
12
- const _abi = [
13
- {
14
- inputs: [
15
- {
16
- internalType: "contract ISuperfluid",
17
- name: "_host",
18
- type: "address",
19
- },
20
- {
21
- internalType: "contract IV3SwapRouter",
22
- name: "_swapRouter",
23
- type: "address",
24
- },
25
- ],
26
- stateMutability: "nonpayable",
27
- type: "constructor",
28
- },
29
- {
30
- inputs: [
31
- {
32
- internalType: "address",
33
- name: "whitelistedRoot",
34
- type: "address",
35
- },
36
- ],
37
- name: "ALREADY_CLAIMED",
38
- type: "error",
39
- },
40
- {
41
- inputs: [],
42
- name: "CLAIMFOR_DISABLED",
43
- type: "error",
44
- },
45
- {
46
- inputs: [],
47
- name: "EMPTY_MANAGER",
48
- type: "error",
49
- },
50
- {
51
- inputs: [
52
- {
53
- internalType: "int96",
54
- name: "curFeeRate",
55
- type: "int96",
56
- },
57
- {
58
- internalType: "int96",
59
- name: "newFeeRate",
60
- type: "int96",
61
- },
62
- ],
63
- name: "FEE_FLOW_FAILED",
64
- type: "error",
65
- },
66
- {
67
- inputs: [],
68
- name: "INVALID_0_VALUE",
69
- type: "error",
70
- },
71
- {
72
- inputs: [],
73
- name: "MAX_CLAIMERS_REACHED",
74
- type: "error",
75
- },
76
- {
77
- inputs: [
78
- {
79
- internalType: "int96",
80
- name: "flowRate",
81
- type: "int96",
82
- },
83
- ],
84
- name: "MIN_FLOWRATE",
85
- type: "error",
86
- },
87
- {
88
- inputs: [
89
- {
90
- internalType: "address",
91
- name: "manager",
92
- type: "address",
93
- },
94
- ],
95
- name: "NOT_MANAGER",
96
- type: "error",
97
- },
98
- {
99
- inputs: [
100
- {
101
- internalType: "address",
102
- name: "claimer",
103
- type: "address",
104
- },
105
- ],
106
- name: "NOT_MEMBER",
107
- type: "error",
108
- },
109
- {
110
- inputs: [
111
- {
112
- internalType: "address",
113
- name: "whitelistedRoot",
114
- type: "address",
115
- },
116
- ],
117
- name: "NOT_WHITELISTED",
118
- type: "error",
119
- },
120
- {
121
- inputs: [],
122
- name: "NotAcceptedSuperToken",
123
- type: "error",
124
- },
125
- {
126
- inputs: [],
127
- name: "NotImplemented",
128
- type: "error",
129
- },
130
- {
131
- inputs: [
132
- {
133
- internalType: "address",
134
- name: "",
135
- type: "address",
136
- },
137
- ],
138
- name: "ONLY_HOST_OR_SENDER",
139
- type: "error",
140
- },
141
- {
142
- inputs: [],
143
- name: "UNSUPPORTED_TOKEN",
144
- type: "error",
145
- },
146
- {
147
- inputs: [],
148
- name: "UnauthorizedHost",
149
- type: "error",
150
- },
151
- {
152
- inputs: [],
153
- name: "ZERO_ADDRESS",
154
- type: "error",
155
- },
156
- {
157
- inputs: [],
158
- name: "ZERO_AMOUNT",
159
- type: "error",
160
- },
161
- {
162
- anonymous: false,
163
- inputs: [
164
- {
165
- indexed: false,
166
- internalType: "address",
167
- name: "previousAdmin",
168
- type: "address",
169
- },
170
- {
171
- indexed: false,
172
- internalType: "address",
173
- name: "newAdmin",
174
- type: "address",
175
- },
176
- ],
177
- name: "AdminChanged",
178
- type: "event",
179
- },
180
- {
181
- anonymous: false,
182
- inputs: [
183
- {
184
- indexed: true,
185
- internalType: "address",
186
- name: "beacon",
187
- type: "address",
188
- },
189
- ],
190
- name: "BeaconUpgraded",
191
- type: "event",
192
- },
193
- {
194
- anonymous: false,
195
- inputs: [
196
- {
197
- indexed: false,
198
- internalType: "uint8",
199
- name: "version",
200
- type: "uint8",
201
- },
202
- ],
203
- name: "Initialized",
204
- type: "event",
205
- },
206
- {
207
- anonymous: false,
208
- inputs: [
209
- {
210
- components: [
211
- {
212
- internalType: "address",
213
- name: "manager",
214
- type: "address",
215
- },
216
- {
217
- internalType: "contract IMembersValidator",
218
- name: "membersValidator",
219
- type: "address",
220
- },
221
- {
222
- internalType: "contract IIdentityV2",
223
- name: "uniquenessValidator",
224
- type: "address",
225
- },
226
- {
227
- internalType: "contract IERC20Upgradeable",
228
- name: "rewardToken",
229
- type: "address",
230
- },
231
- ],
232
- indexed: false,
233
- internalType: "struct UBIPool.PoolSettings",
234
- name: "settings",
235
- type: "tuple",
236
- },
237
- ],
238
- name: "PoolSettingsChanged",
239
- type: "event",
240
- },
241
- {
242
- anonymous: false,
243
- inputs: [
244
- {
245
- indexed: true,
246
- internalType: "bytes32",
247
- name: "role",
248
- type: "bytes32",
249
- },
250
- {
251
- indexed: true,
252
- internalType: "bytes32",
253
- name: "previousAdminRole",
254
- type: "bytes32",
255
- },
256
- {
257
- indexed: true,
258
- internalType: "bytes32",
259
- name: "newAdminRole",
260
- type: "bytes32",
261
- },
262
- ],
263
- name: "RoleAdminChanged",
264
- type: "event",
265
- },
266
- {
267
- anonymous: false,
268
- inputs: [
269
- {
270
- indexed: true,
271
- internalType: "bytes32",
272
- name: "role",
273
- type: "bytes32",
274
- },
275
- {
276
- indexed: true,
277
- internalType: "address",
278
- name: "account",
279
- type: "address",
280
- },
281
- {
282
- indexed: true,
283
- internalType: "address",
284
- name: "sender",
285
- type: "address",
286
- },
287
- ],
288
- name: "RoleGranted",
289
- type: "event",
290
- },
291
- {
292
- anonymous: false,
293
- inputs: [
294
- {
295
- indexed: true,
296
- internalType: "bytes32",
297
- name: "role",
298
- type: "bytes32",
299
- },
300
- {
301
- indexed: true,
302
- internalType: "address",
303
- name: "account",
304
- type: "address",
305
- },
306
- {
307
- indexed: true,
308
- internalType: "address",
309
- name: "sender",
310
- type: "address",
311
- },
312
- ],
313
- name: "RoleRevoked",
314
- type: "event",
315
- },
316
- {
317
- anonymous: false,
318
- inputs: [
319
- {
320
- indexed: true,
321
- internalType: "address",
322
- name: "supporter",
323
- type: "address",
324
- },
325
- {
326
- indexed: false,
327
- internalType: "uint256",
328
- name: "previousContribution",
329
- type: "uint256",
330
- },
331
- {
332
- indexed: false,
333
- internalType: "uint256",
334
- name: "contribution",
335
- type: "uint256",
336
- },
337
- {
338
- indexed: false,
339
- internalType: "int96",
340
- name: "previousFlowRate",
341
- type: "int96",
342
- },
343
- {
344
- indexed: false,
345
- internalType: "int96",
346
- name: "flowRate",
347
- type: "int96",
348
- },
349
- {
350
- indexed: false,
351
- internalType: "bool",
352
- name: "isFlowUpdate",
353
- type: "bool",
354
- },
355
- ],
356
- name: "SupporterUpdated",
357
- type: "event",
358
- },
359
- {
360
- anonymous: false,
361
- inputs: [
362
- {
363
- indexed: false,
364
- internalType: "uint256",
365
- name: "day",
366
- type: "uint256",
367
- },
368
- {
369
- indexed: false,
370
- internalType: "uint256",
371
- name: "dailyUbi",
372
- type: "uint256",
373
- },
374
- {
375
- indexed: false,
376
- internalType: "uint256",
377
- name: "blockNumber",
378
- type: "uint256",
379
- },
380
- {
381
- indexed: false,
382
- internalType: "uint256",
383
- name: "periodClaimers",
384
- type: "uint256",
385
- },
386
- {
387
- indexed: false,
388
- internalType: "uint256",
389
- name: "periodDistributed",
390
- type: "uint256",
391
- },
392
- ],
393
- name: "UBICalculated",
394
- type: "event",
395
- },
396
- {
397
- anonymous: false,
398
- inputs: [
399
- {
400
- indexed: true,
401
- internalType: "address",
402
- name: "whitelistedRoot",
403
- type: "address",
404
- },
405
- {
406
- indexed: true,
407
- internalType: "address",
408
- name: "claimer",
409
- type: "address",
410
- },
411
- {
412
- indexed: false,
413
- internalType: "uint256",
414
- name: "amount",
415
- type: "uint256",
416
- },
417
- ],
418
- name: "UBIClaimed",
419
- type: "event",
420
- },
421
- {
422
- anonymous: false,
423
- inputs: [
424
- {
425
- indexed: false,
426
- internalType: "uint256",
427
- name: "day",
428
- type: "uint256",
429
- },
430
- {
431
- indexed: false,
432
- internalType: "uint256",
433
- name: "pool",
434
- type: "uint256",
435
- },
436
- {
437
- indexed: false,
438
- internalType: "uint256",
439
- name: "cycleLength",
440
- type: "uint256",
441
- },
442
- {
443
- indexed: false,
444
- internalType: "uint256",
445
- name: "dailyUBIPool",
446
- type: "uint256",
447
- },
448
- ],
449
- name: "UBICycleCalculated",
450
- type: "event",
451
- },
452
- {
453
- anonymous: false,
454
- inputs: [
455
- {
456
- components: [
457
- {
458
- internalType: "uint32",
459
- name: "cycleLengthDays",
460
- type: "uint32",
461
- },
462
- {
463
- internalType: "uint32",
464
- name: "claimPeriodDays",
465
- type: "uint32",
466
- },
467
- {
468
- internalType: "uint32",
469
- name: "minActiveUsers",
470
- type: "uint32",
471
- },
472
- {
473
- internalType: "bool",
474
- name: "claimForEnabled",
475
- type: "bool",
476
- },
477
- {
478
- internalType: "uint256",
479
- name: "maxClaimAmount",
480
- type: "uint256",
481
- },
482
- {
483
- internalType: "uint32",
484
- name: "maxClaimers",
485
- type: "uint32",
486
- },
487
- {
488
- internalType: "bool",
489
- name: "onlyMembers",
490
- type: "bool",
491
- },
492
- ],
493
- indexed: false,
494
- internalType: "struct UBIPool.UBISettings",
495
- name: "settings",
496
- type: "tuple",
497
- },
498
- ],
499
- name: "UBISettingsChanged",
500
- type: "event",
501
- },
502
- {
503
- anonymous: false,
504
- inputs: [
505
- {
506
- indexed: true,
507
- internalType: "address",
508
- name: "implementation",
509
- type: "address",
510
- },
511
- ],
512
- name: "Upgraded",
513
- type: "event",
514
- },
515
- {
516
- inputs: [],
517
- name: "CFAV1_TYPE",
518
- outputs: [
519
- {
520
- internalType: "bytes32",
521
- name: "",
522
- type: "bytes32",
523
- },
524
- ],
525
- stateMutability: "view",
526
- type: "function",
527
- },
528
- {
529
- inputs: [],
530
- name: "DEFAULT_ADMIN_ROLE",
531
- outputs: [
532
- {
533
- internalType: "bytes32",
534
- name: "",
535
- type: "bytes32",
536
- },
537
- ],
538
- stateMutability: "view",
539
- type: "function",
540
- },
541
- {
542
- inputs: [],
543
- name: "MANAGER_ROLE",
544
- outputs: [
545
- {
546
- internalType: "bytes32",
547
- name: "",
548
- type: "bytes32",
549
- },
550
- ],
551
- stateMutability: "view",
552
- type: "function",
553
- },
554
- {
555
- inputs: [],
556
- name: "MEMBER_ROLE",
557
- outputs: [
558
- {
559
- internalType: "bytes32",
560
- name: "",
561
- type: "bytes32",
562
- },
563
- ],
564
- stateMutability: "view",
565
- type: "function",
566
- },
567
- {
568
- inputs: [],
569
- name: "MIN_FLOW_RATE",
570
- outputs: [
571
- {
572
- internalType: "int96",
573
- name: "",
574
- type: "int96",
575
- },
576
- ],
577
- stateMutability: "view",
578
- type: "function",
579
- },
580
- {
581
- inputs: [
582
- {
583
- internalType: "address",
584
- name: "member",
585
- type: "address",
586
- },
587
- {
588
- internalType: "bytes",
589
- name: "extraData",
590
- type: "bytes",
591
- },
592
- ],
593
- name: "addMember",
594
- outputs: [
595
- {
596
- internalType: "bool",
597
- name: "isMember",
598
- type: "bool",
599
- },
600
- ],
601
- stateMutability: "nonpayable",
602
- type: "function",
603
- },
604
- {
605
- inputs: [
606
- {
607
- internalType: "contract ISuperToken",
608
- name: "superToken",
609
- type: "address",
610
- },
611
- {
612
- internalType: "address",
613
- name: "",
614
- type: "address",
615
- },
616
- {
617
- internalType: "bytes32",
618
- name: "",
619
- type: "bytes32",
620
- },
621
- {
622
- internalType: "bytes",
623
- name: "agreementData",
624
- type: "bytes",
625
- },
626
- {
627
- internalType: "bytes",
628
- name: "",
629
- type: "bytes",
630
- },
631
- {
632
- internalType: "bytes",
633
- name: "ctx",
634
- type: "bytes",
635
- },
636
- ],
637
- name: "afterAgreementCreated",
638
- outputs: [
639
- {
640
- internalType: "bytes",
641
- name: "newCtx",
642
- type: "bytes",
643
- },
644
- ],
645
- stateMutability: "nonpayable",
646
- type: "function",
647
- },
648
- {
649
- inputs: [
650
- {
651
- internalType: "contract ISuperToken",
652
- name: "superToken",
653
- type: "address",
654
- },
655
- {
656
- internalType: "address",
657
- name: "agreementClass",
658
- type: "address",
659
- },
660
- {
661
- internalType: "bytes32",
662
- name: "",
663
- type: "bytes32",
664
- },
665
- {
666
- internalType: "bytes",
667
- name: "agreementData",
668
- type: "bytes",
669
- },
670
- {
671
- internalType: "bytes",
672
- name: "cbdata",
673
- type: "bytes",
674
- },
675
- {
676
- internalType: "bytes",
677
- name: "ctx",
678
- type: "bytes",
679
- },
680
- ],
681
- name: "afterAgreementTerminated",
682
- outputs: [
683
- {
684
- internalType: "bytes",
685
- name: "newCtx",
686
- type: "bytes",
687
- },
688
- ],
689
- stateMutability: "nonpayable",
690
- type: "function",
691
- },
692
- {
693
- inputs: [
694
- {
695
- internalType: "contract ISuperToken",
696
- name: "superToken",
697
- type: "address",
698
- },
699
- {
700
- internalType: "address",
701
- name: "",
702
- type: "address",
703
- },
704
- {
705
- internalType: "bytes32",
706
- name: "",
707
- type: "bytes32",
708
- },
709
- {
710
- internalType: "bytes",
711
- name: "agreementData",
712
- type: "bytes",
713
- },
714
- {
715
- internalType: "bytes",
716
- name: "cbdata",
717
- type: "bytes",
718
- },
719
- {
720
- internalType: "bytes",
721
- name: "ctx",
722
- type: "bytes",
723
- },
724
- ],
725
- name: "afterAgreementUpdated",
726
- outputs: [
727
- {
728
- internalType: "bytes",
729
- name: "newCtx",
730
- type: "bytes",
731
- },
732
- ],
733
- stateMutability: "nonpayable",
734
- type: "function",
735
- },
736
- {
737
- inputs: [
738
- {
739
- internalType: "contract ISuperToken",
740
- name: "superToken",
741
- type: "address",
742
- },
743
- {
744
- internalType: "address",
745
- name: "agreementClass",
746
- type: "address",
747
- },
748
- {
749
- internalType: "bytes32",
750
- name: "",
751
- type: "bytes32",
752
- },
753
- {
754
- internalType: "bytes",
755
- name: "",
756
- type: "bytes",
757
- },
758
- {
759
- internalType: "bytes",
760
- name: "",
761
- type: "bytes",
762
- },
763
- ],
764
- name: "beforeAgreementCreated",
765
- outputs: [
766
- {
767
- internalType: "bytes",
768
- name: "",
769
- type: "bytes",
770
- },
771
- ],
772
- stateMutability: "view",
773
- type: "function",
774
- },
775
- {
776
- inputs: [
777
- {
778
- internalType: "contract ISuperToken",
779
- name: "superToken",
780
- type: "address",
781
- },
782
- {
783
- internalType: "address",
784
- name: "agreementClass",
785
- type: "address",
786
- },
787
- {
788
- internalType: "bytes32",
789
- name: "",
790
- type: "bytes32",
791
- },
792
- {
793
- internalType: "bytes",
794
- name: "agreementData",
795
- type: "bytes",
796
- },
797
- {
798
- internalType: "bytes",
799
- name: "",
800
- type: "bytes",
801
- },
802
- ],
803
- name: "beforeAgreementTerminated",
804
- outputs: [
805
- {
806
- internalType: "bytes",
807
- name: "",
808
- type: "bytes",
809
- },
810
- ],
811
- stateMutability: "view",
812
- type: "function",
813
- },
814
- {
815
- inputs: [
816
- {
817
- internalType: "contract ISuperToken",
818
- name: "superToken",
819
- type: "address",
820
- },
821
- {
822
- internalType: "address",
823
- name: "agreementClass",
824
- type: "address",
825
- },
826
- {
827
- internalType: "bytes32",
828
- name: "",
829
- type: "bytes32",
830
- },
831
- {
832
- internalType: "bytes",
833
- name: "agreementData",
834
- type: "bytes",
835
- },
836
- {
837
- internalType: "bytes",
838
- name: "",
839
- type: "bytes",
840
- },
841
- ],
842
- name: "beforeAgreementUpdated",
843
- outputs: [
844
- {
845
- internalType: "bytes",
846
- name: "",
847
- type: "bytes",
848
- },
849
- ],
850
- stateMutability: "view",
851
- type: "function",
852
- },
853
- {
854
- inputs: [],
855
- name: "cfaV1",
856
- outputs: [
857
- {
858
- internalType: "contract ISuperfluid",
859
- name: "host",
860
- type: "address",
861
- },
862
- {
863
- internalType: "contract IConstantFlowAgreementV1",
864
- name: "cfa",
865
- type: "address",
866
- },
867
- ],
868
- stateMutability: "view",
869
- type: "function",
870
- },
871
- {
872
- inputs: [
873
- {
874
- internalType: "address",
875
- name: "_member",
876
- type: "address",
877
- },
878
- ],
879
- name: "checkEntitlement",
880
- outputs: [
881
- {
882
- internalType: "uint256",
883
- name: "",
884
- type: "uint256",
885
- },
886
- ],
887
- stateMutability: "view",
888
- type: "function",
889
- },
890
- {
891
- inputs: [],
892
- name: "checkEntitlement",
893
- outputs: [
894
- {
895
- internalType: "uint256",
896
- name: "",
897
- type: "uint256",
898
- },
899
- ],
900
- stateMutability: "view",
901
- type: "function",
902
- },
903
- {
904
- inputs: [],
905
- name: "claim",
906
- outputs: [],
907
- stateMutability: "nonpayable",
908
- type: "function",
909
- },
910
- {
911
- inputs: [
912
- {
913
- internalType: "address",
914
- name: "claimer",
915
- type: "address",
916
- },
917
- {
918
- internalType: "bool",
919
- name: "sendToWhitelistedRoot",
920
- type: "bool",
921
- },
922
- ],
923
- name: "claimFor",
924
- outputs: [],
925
- stateMutability: "nonpayable",
926
- type: "function",
927
- },
928
- {
929
- inputs: [],
930
- name: "currentDayInCycle",
931
- outputs: [
932
- {
933
- internalType: "uint256",
934
- name: "",
935
- type: "uint256",
936
- },
937
- ],
938
- stateMutability: "view",
939
- type: "function",
940
- },
941
- {
942
- inputs: [],
943
- name: "estimateNextDailyUBI",
944
- outputs: [
945
- {
946
- internalType: "uint256",
947
- name: "",
948
- type: "uint256",
949
- },
950
- ],
951
- stateMutability: "view",
952
- type: "function",
953
- },
954
- {
955
- inputs: [],
956
- name: "getCurrentDay",
957
- outputs: [
958
- {
959
- internalType: "uint256",
960
- name: "",
961
- type: "uint256",
962
- },
963
- ],
964
- stateMutability: "view",
965
- type: "function",
966
- },
967
- {
968
- inputs: [
969
- {
970
- internalType: "address",
971
- name: "_user",
972
- type: "address",
973
- },
974
- ],
975
- name: "getRealtimeContribution",
976
- outputs: [
977
- {
978
- internalType: "uint256",
979
- name: "",
980
- type: "uint256",
981
- },
982
- ],
983
- stateMutability: "view",
984
- type: "function",
985
- },
986
- {
987
- inputs: [],
988
- name: "getRealtimeStats",
989
- outputs: [
990
- {
991
- internalType: "uint256",
992
- name: "netIncome",
993
- type: "uint256",
994
- },
995
- {
996
- internalType: "uint256",
997
- name: "totalFees",
998
- type: "uint256",
999
- },
1000
- {
1001
- internalType: "int96",
1002
- name: "incomeFlowRate",
1003
- type: "int96",
1004
- },
1005
- {
1006
- internalType: "int96",
1007
- name: "feeRate",
1008
- type: "int96",
1009
- },
1010
- ],
1011
- stateMutability: "view",
1012
- type: "function",
1013
- },
1014
- {
1015
- inputs: [],
1016
- name: "getRegistry",
1017
- outputs: [
1018
- {
1019
- internalType: "contract IRegistry",
1020
- name: "",
1021
- type: "address",
1022
- },
1023
- ],
1024
- stateMutability: "view",
1025
- type: "function",
1026
- },
1027
- {
1028
- inputs: [
1029
- {
1030
- internalType: "bytes32",
1031
- name: "role",
1032
- type: "bytes32",
1033
- },
1034
- ],
1035
- name: "getRoleAdmin",
1036
- outputs: [
1037
- {
1038
- internalType: "bytes32",
1039
- name: "",
1040
- type: "bytes32",
1041
- },
1042
- ],
1043
- stateMutability: "view",
1044
- type: "function",
1045
- },
1046
- {
1047
- inputs: [
1048
- {
1049
- internalType: "bytes32",
1050
- name: "role",
1051
- type: "bytes32",
1052
- },
1053
- {
1054
- internalType: "address",
1055
- name: "account",
1056
- type: "address",
1057
- },
1058
- ],
1059
- name: "grantRole",
1060
- outputs: [],
1061
- stateMutability: "nonpayable",
1062
- type: "function",
1063
- },
1064
- {
1065
- inputs: [
1066
- {
1067
- components: [
1068
- {
1069
- internalType: "address",
1070
- name: "swapFrom",
1071
- type: "address",
1072
- },
1073
- {
1074
- internalType: "uint256",
1075
- name: "amount",
1076
- type: "uint256",
1077
- },
1078
- {
1079
- internalType: "uint256",
1080
- name: "minReturn",
1081
- type: "uint256",
1082
- },
1083
- {
1084
- internalType: "uint256",
1085
- name: "deadline",
1086
- type: "uint256",
1087
- },
1088
- {
1089
- internalType: "bytes",
1090
- name: "path",
1091
- type: "bytes",
1092
- },
1093
- ],
1094
- internalType: "struct HelperLibrary.SwapData",
1095
- name: "_customData",
1096
- type: "tuple",
1097
- },
1098
- {
1099
- internalType: "address",
1100
- name: "_sender",
1101
- type: "address",
1102
- },
1103
- {
1104
- internalType: "bytes",
1105
- name: "_ctx",
1106
- type: "bytes",
1107
- },
1108
- ],
1109
- name: "handleSwap",
1110
- outputs: [
1111
- {
1112
- internalType: "bytes",
1113
- name: "",
1114
- type: "bytes",
1115
- },
1116
- ],
1117
- stateMutability: "nonpayable",
1118
- type: "function",
1119
- },
1120
- {
1121
- inputs: [
1122
- {
1123
- internalType: "address",
1124
- name: "_member",
1125
- type: "address",
1126
- },
1127
- ],
1128
- name: "hasClaimed",
1129
- outputs: [
1130
- {
1131
- internalType: "bool",
1132
- name: "",
1133
- type: "bool",
1134
- },
1135
- ],
1136
- stateMutability: "view",
1137
- type: "function",
1138
- },
1139
- {
1140
- inputs: [
1141
- {
1142
- internalType: "bytes32",
1143
- name: "role",
1144
- type: "bytes32",
1145
- },
1146
- {
1147
- internalType: "address",
1148
- name: "account",
1149
- type: "address",
1150
- },
1151
- ],
1152
- name: "hasRole",
1153
- outputs: [
1154
- {
1155
- internalType: "bool",
1156
- name: "",
1157
- type: "bool",
1158
- },
1159
- ],
1160
- stateMutability: "view",
1161
- type: "function",
1162
- },
1163
- {
1164
- inputs: [],
1165
- name: "host",
1166
- outputs: [
1167
- {
1168
- internalType: "contract ISuperfluid",
1169
- name: "",
1170
- type: "address",
1171
- },
1172
- ],
1173
- stateMutability: "view",
1174
- type: "function",
1175
- },
1176
- {
1177
- inputs: [
1178
- {
1179
- components: [
1180
- {
1181
- internalType: "address",
1182
- name: "manager",
1183
- type: "address",
1184
- },
1185
- {
1186
- internalType: "contract IMembersValidator",
1187
- name: "membersValidator",
1188
- type: "address",
1189
- },
1190
- {
1191
- internalType: "contract IIdentityV2",
1192
- name: "uniquenessValidator",
1193
- type: "address",
1194
- },
1195
- {
1196
- internalType: "contract IERC20Upgradeable",
1197
- name: "rewardToken",
1198
- type: "address",
1199
- },
1200
- ],
1201
- internalType: "struct UBIPool.PoolSettings",
1202
- name: "_settings",
1203
- type: "tuple",
1204
- },
1205
- {
1206
- components: [
1207
- {
1208
- internalType: "uint32",
1209
- name: "cycleLengthDays",
1210
- type: "uint32",
1211
- },
1212
- {
1213
- internalType: "uint32",
1214
- name: "claimPeriodDays",
1215
- type: "uint32",
1216
- },
1217
- {
1218
- internalType: "uint32",
1219
- name: "minActiveUsers",
1220
- type: "uint32",
1221
- },
1222
- {
1223
- internalType: "bool",
1224
- name: "claimForEnabled",
1225
- type: "bool",
1226
- },
1227
- {
1228
- internalType: "uint256",
1229
- name: "maxClaimAmount",
1230
- type: "uint256",
1231
- },
1232
- {
1233
- internalType: "uint32",
1234
- name: "maxClaimers",
1235
- type: "uint32",
1236
- },
1237
- {
1238
- internalType: "bool",
1239
- name: "onlyMembers",
1240
- type: "bool",
1241
- },
1242
- ],
1243
- internalType: "struct UBIPool.UBISettings",
1244
- name: "_ubiSettings",
1245
- type: "tuple",
1246
- },
1247
- {
1248
- internalType: "contract UBIPoolFactory",
1249
- name: "_registry",
1250
- type: "address",
1251
- },
1252
- ],
1253
- name: "initialize",
1254
- outputs: [],
1255
- stateMutability: "nonpayable",
1256
- type: "function",
1257
- },
1258
- {
1259
- inputs: [
1260
- {
1261
- internalType: "contract ISuperToken",
1262
- name: "_superToken",
1263
- type: "address",
1264
- },
1265
- ],
1266
- name: "isAcceptedSuperToken",
1267
- outputs: [
1268
- {
1269
- internalType: "bool",
1270
- name: "",
1271
- type: "bool",
1272
- },
1273
- ],
1274
- stateMutability: "view",
1275
- type: "function",
1276
- },
1277
- {
1278
- inputs: [],
1279
- name: "nextClaimTime",
1280
- outputs: [
1281
- {
1282
- internalType: "uint256",
1283
- name: "",
1284
- type: "uint256",
1285
- },
1286
- ],
1287
- stateMutability: "view",
1288
- type: "function",
1289
- },
1290
- {
1291
- inputs: [
1292
- {
1293
- internalType: "address",
1294
- name: "_sender",
1295
- type: "address",
1296
- },
1297
- {
1298
- internalType: "uint256",
1299
- name: "_amount",
1300
- type: "uint256",
1301
- },
1302
- {
1303
- internalType: "bytes",
1304
- name: "",
1305
- type: "bytes",
1306
- },
1307
- ],
1308
- name: "onTokenTransfer",
1309
- outputs: [
1310
- {
1311
- internalType: "bool",
1312
- name: "",
1313
- type: "bool",
1314
- },
1315
- ],
1316
- stateMutability: "nonpayable",
1317
- type: "function",
1318
- },
1319
- {
1320
- inputs: [],
1321
- name: "proxiableUUID",
1322
- outputs: [
1323
- {
1324
- internalType: "bytes32",
1325
- name: "",
1326
- type: "bytes32",
1327
- },
1328
- ],
1329
- stateMutability: "view",
1330
- type: "function",
1331
- },
1332
- {
1333
- inputs: [],
1334
- name: "registry",
1335
- outputs: [
1336
- {
1337
- internalType: "contract UBIPoolFactory",
1338
- name: "",
1339
- type: "address",
1340
- },
1341
- ],
1342
- stateMutability: "view",
1343
- type: "function",
1344
- },
1345
- {
1346
- inputs: [
1347
- {
1348
- internalType: "address",
1349
- name: "member",
1350
- type: "address",
1351
- },
1352
- ],
1353
- name: "removeMember",
1354
- outputs: [],
1355
- stateMutability: "nonpayable",
1356
- type: "function",
1357
- },
1358
- {
1359
- inputs: [
1360
- {
1361
- internalType: "bytes32",
1362
- name: "role",
1363
- type: "bytes32",
1364
- },
1365
- {
1366
- internalType: "address",
1367
- name: "account",
1368
- type: "address",
1369
- },
1370
- ],
1371
- name: "renounceRole",
1372
- outputs: [],
1373
- stateMutability: "nonpayable",
1374
- type: "function",
1375
- },
1376
- {
1377
- inputs: [
1378
- {
1379
- internalType: "bytes32",
1380
- name: "role",
1381
- type: "bytes32",
1382
- },
1383
- {
1384
- internalType: "address",
1385
- name: "account",
1386
- type: "address",
1387
- },
1388
- ],
1389
- name: "revokeRole",
1390
- outputs: [],
1391
- stateMutability: "nonpayable",
1392
- type: "function",
1393
- },
1394
- {
1395
- inputs: [
1396
- {
1397
- components: [
1398
- {
1399
- internalType: "address",
1400
- name: "manager",
1401
- type: "address",
1402
- },
1403
- {
1404
- internalType: "contract IMembersValidator",
1405
- name: "membersValidator",
1406
- type: "address",
1407
- },
1408
- {
1409
- internalType: "contract IIdentityV2",
1410
- name: "uniquenessValidator",
1411
- type: "address",
1412
- },
1413
- {
1414
- internalType: "contract IERC20Upgradeable",
1415
- name: "rewardToken",
1416
- type: "address",
1417
- },
1418
- ],
1419
- internalType: "struct UBIPool.PoolSettings",
1420
- name: "_settings",
1421
- type: "tuple",
1422
- },
1423
- ],
1424
- name: "setPoolSettings",
1425
- outputs: [],
1426
- stateMutability: "nonpayable",
1427
- type: "function",
1428
- },
1429
- {
1430
- inputs: [
1431
- {
1432
- components: [
1433
- {
1434
- internalType: "uint32",
1435
- name: "cycleLengthDays",
1436
- type: "uint32",
1437
- },
1438
- {
1439
- internalType: "uint32",
1440
- name: "claimPeriodDays",
1441
- type: "uint32",
1442
- },
1443
- {
1444
- internalType: "uint32",
1445
- name: "minActiveUsers",
1446
- type: "uint32",
1447
- },
1448
- {
1449
- internalType: "bool",
1450
- name: "claimForEnabled",
1451
- type: "bool",
1452
- },
1453
- {
1454
- internalType: "uint256",
1455
- name: "maxClaimAmount",
1456
- type: "uint256",
1457
- },
1458
- {
1459
- internalType: "uint32",
1460
- name: "maxClaimers",
1461
- type: "uint32",
1462
- },
1463
- {
1464
- internalType: "bool",
1465
- name: "onlyMembers",
1466
- type: "bool",
1467
- },
1468
- ],
1469
- internalType: "struct UBIPool.UBISettings",
1470
- name: "_ubiSettings",
1471
- type: "tuple",
1472
- },
1473
- ],
1474
- name: "setUBISettings",
1475
- outputs: [],
1476
- stateMutability: "nonpayable",
1477
- type: "function",
1478
- },
1479
- {
1480
- inputs: [],
1481
- name: "settings",
1482
- outputs: [
1483
- {
1484
- internalType: "address",
1485
- name: "manager",
1486
- type: "address",
1487
- },
1488
- {
1489
- internalType: "contract IMembersValidator",
1490
- name: "membersValidator",
1491
- type: "address",
1492
- },
1493
- {
1494
- internalType: "contract IIdentityV2",
1495
- name: "uniquenessValidator",
1496
- type: "address",
1497
- },
1498
- {
1499
- internalType: "contract IERC20Upgradeable",
1500
- name: "rewardToken",
1501
- type: "address",
1502
- },
1503
- ],
1504
- stateMutability: "view",
1505
- type: "function",
1506
- },
1507
- {
1508
- inputs: [],
1509
- name: "stats",
1510
- outputs: [
1511
- {
1512
- internalType: "uint256",
1513
- name: "netIncome",
1514
- type: "uint256",
1515
- },
1516
- {
1517
- internalType: "uint256",
1518
- name: "totalFees",
1519
- type: "uint256",
1520
- },
1521
- {
1522
- internalType: "uint256",
1523
- name: "lastUpdate",
1524
- type: "uint256",
1525
- },
1526
- {
1527
- internalType: "address",
1528
- name: "lastFeeRecipient",
1529
- type: "address",
1530
- },
1531
- {
1532
- internalType: "int96",
1533
- name: "lastIncomeRate",
1534
- type: "int96",
1535
- },
1536
- ],
1537
- stateMutability: "view",
1538
- type: "function",
1539
- },
1540
- {
1541
- inputs: [],
1542
- name: "status",
1543
- outputs: [
1544
- {
1545
- internalType: "uint256",
1546
- name: "currentDay",
1547
- type: "uint256",
1548
- },
1549
- {
1550
- internalType: "uint256",
1551
- name: "dailyUbi",
1552
- type: "uint256",
1553
- },
1554
- {
1555
- internalType: "uint256",
1556
- name: "dailyCyclePool",
1557
- type: "uint256",
1558
- },
1559
- {
1560
- internalType: "uint256",
1561
- name: "startOfCycle",
1562
- type: "uint256",
1563
- },
1564
- {
1565
- internalType: "uint256",
1566
- name: "currentCycleLength",
1567
- type: "uint256",
1568
- },
1569
- {
1570
- internalType: "uint256",
1571
- name: "periodClaimers",
1572
- type: "uint256",
1573
- },
1574
- {
1575
- internalType: "uint256",
1576
- name: "periodDistributed",
1577
- type: "uint256",
1578
- },
1579
- {
1580
- internalType: "uint32",
1581
- name: "claimersCount",
1582
- type: "uint32",
1583
- },
1584
- ],
1585
- stateMutability: "view",
1586
- type: "function",
1587
- },
1588
- {
1589
- inputs: [],
1590
- name: "superToken",
1591
- outputs: [
1592
- {
1593
- internalType: "contract ISuperToken",
1594
- name: "",
1595
- type: "address",
1596
- },
1597
- ],
1598
- stateMutability: "view",
1599
- type: "function",
1600
- },
1601
- {
1602
- inputs: [
1603
- {
1604
- internalType: "address",
1605
- name: "_sender",
1606
- type: "address",
1607
- },
1608
- {
1609
- internalType: "uint256",
1610
- name: "_amount",
1611
- type: "uint256",
1612
- },
1613
- {
1614
- internalType: "bytes",
1615
- name: "_ctx",
1616
- type: "bytes",
1617
- },
1618
- ],
1619
- name: "support",
1620
- outputs: [
1621
- {
1622
- internalType: "bytes",
1623
- name: "",
1624
- type: "bytes",
1625
- },
1626
- ],
1627
- stateMutability: "nonpayable",
1628
- type: "function",
1629
- },
1630
- {
1631
- inputs: [
1632
- {
1633
- internalType: "address",
1634
- name: "_sender",
1635
- type: "address",
1636
- },
1637
- {
1638
- components: [
1639
- {
1640
- internalType: "address",
1641
- name: "swapFrom",
1642
- type: "address",
1643
- },
1644
- {
1645
- internalType: "uint256",
1646
- name: "amount",
1647
- type: "uint256",
1648
- },
1649
- {
1650
- internalType: "uint256",
1651
- name: "minReturn",
1652
- type: "uint256",
1653
- },
1654
- {
1655
- internalType: "uint256",
1656
- name: "deadline",
1657
- type: "uint256",
1658
- },
1659
- {
1660
- internalType: "bytes",
1661
- name: "path",
1662
- type: "bytes",
1663
- },
1664
- ],
1665
- internalType: "struct HelperLibrary.SwapData",
1666
- name: "_customData",
1667
- type: "tuple",
1668
- },
1669
- {
1670
- internalType: "bytes",
1671
- name: "_ctx",
1672
- type: "bytes",
1673
- },
1674
- ],
1675
- name: "supportWithSwap",
1676
- outputs: [
1677
- {
1678
- internalType: "bytes",
1679
- name: "",
1680
- type: "bytes",
1681
- },
1682
- ],
1683
- stateMutability: "nonpayable",
1684
- type: "function",
1685
- },
1686
- {
1687
- inputs: [
1688
- {
1689
- internalType: "address",
1690
- name: "",
1691
- type: "address",
1692
- },
1693
- ],
1694
- name: "supporters",
1695
- outputs: [
1696
- {
1697
- internalType: "uint256",
1698
- name: "contribution",
1699
- type: "uint256",
1700
- },
1701
- {
1702
- internalType: "int96",
1703
- name: "flowRate",
1704
- type: "int96",
1705
- },
1706
- {
1707
- internalType: "uint128",
1708
- name: "lastUpdated",
1709
- type: "uint128",
1710
- },
1711
- ],
1712
- stateMutability: "view",
1713
- type: "function",
1714
- },
1715
- {
1716
- inputs: [
1717
- {
1718
- internalType: "bytes4",
1719
- name: "interfaceId",
1720
- type: "bytes4",
1721
- },
1722
- ],
1723
- name: "supportsInterface",
1724
- outputs: [
1725
- {
1726
- internalType: "bool",
1727
- name: "",
1728
- type: "bool",
1729
- },
1730
- ],
1731
- stateMutability: "view",
1732
- type: "function",
1733
- },
1734
- {
1735
- inputs: [],
1736
- name: "swapRouter",
1737
- outputs: [
1738
- {
1739
- internalType: "contract IV3SwapRouter",
1740
- name: "",
1741
- type: "address",
1742
- },
1743
- ],
1744
- stateMutability: "view",
1745
- type: "function",
1746
- },
1747
- {
1748
- inputs: [],
1749
- name: "ubiSettings",
1750
- outputs: [
1751
- {
1752
- internalType: "uint32",
1753
- name: "cycleLengthDays",
1754
- type: "uint32",
1755
- },
1756
- {
1757
- internalType: "uint32",
1758
- name: "claimPeriodDays",
1759
- type: "uint32",
1760
- },
1761
- {
1762
- internalType: "uint32",
1763
- name: "minActiveUsers",
1764
- type: "uint32",
1765
- },
1766
- {
1767
- internalType: "bool",
1768
- name: "claimForEnabled",
1769
- type: "bool",
1770
- },
1771
- {
1772
- internalType: "uint256",
1773
- name: "maxClaimAmount",
1774
- type: "uint256",
1775
- },
1776
- {
1777
- internalType: "uint32",
1778
- name: "maxClaimers",
1779
- type: "uint32",
1780
- },
1781
- {
1782
- internalType: "bool",
1783
- name: "onlyMembers",
1784
- type: "bool",
1785
- },
1786
- ],
1787
- stateMutability: "view",
1788
- type: "function",
1789
- },
1790
- {
1791
- inputs: [
1792
- {
1793
- internalType: "address",
1794
- name: "newImplementation",
1795
- type: "address",
1796
- },
1797
- ],
1798
- name: "upgradeTo",
1799
- outputs: [],
1800
- stateMutability: "nonpayable",
1801
- type: "function",
1802
- },
1803
- {
1804
- inputs: [
1805
- {
1806
- internalType: "address",
1807
- name: "newImplementation",
1808
- type: "address",
1809
- },
1810
- {
1811
- internalType: "bytes",
1812
- name: "data",
1813
- type: "bytes",
1814
- },
1815
- ],
1816
- name: "upgradeToAndCall",
1817
- outputs: [],
1818
- stateMutability: "payable",
1819
- type: "function",
1820
- },
1821
- {
1822
- inputs: [
1823
- {
1824
- internalType: "bytes",
1825
- name: "data",
1826
- type: "bytes",
1827
- },
1828
- ],
1829
- name: "upgradeToLatest",
1830
- outputs: [],
1831
- stateMutability: "payable",
1832
- type: "function",
1833
- },
1834
- ] as const;
1835
-
1836
- const _bytecode =
1837
- "0x60e06040523060c0523480156200001557600080fd5b506040516200522f3803806200522f833981016040819052620000389162000098565b6001600160a01b038216608081905282908290620000695760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b031660a05250620000d7915050565b6001600160a01b03811681146200009557600080fd5b50565b60008060408385031215620000ac57600080fd5b8251620000b9816200007f565b6020840151909250620000cc816200007f565b809150509250929050565b60805160a05160c0516150b86200017760003960008181610fb901528181610ff9015281816112020152818161124201526112ba0152600081816108b901528181610d350152612230015260008181610acd01528181610cb701528181610e7f01528181611368015281816115890152818161192201528181611ce1015281816121460152818161284d01528181612c7e0152612ce301526150b86000f3fe60806040526004361061025a5760003560e01c806301ffc9a71461025f5780630b1ca49a146102945780630c710776146102b65780630ce82d67146102e25780630e0cc1b9146103055780631a2a84b3146103255780631a787f2e146103455780631db128c714610365578063200d2ed214610392578063230dbd2914610414578063248a9ca314610434578063298052df146104545780632b4116f7146104695780632f2ff15d1461049657806330d9c915146104b657806336568abe146104d65780633659cfe6146104f65780633e6968b61461051657806342df82cb1461052b5780634e71d92d1461054b5780634f1ef2861461056057806352d1902d1461057357806353c11f9914610588578063598f8fbf146105a85780635a4c5152146105c85780635ab1bd531461065f5780635f9e7d77146106745780636180c79314610694578063647c75e2146106b457806372ca8a3e1461072557806373b2e80e146107455780637b10399914610765578063884d1f40146107865780638d7c4cca146107a657806391d14854146107c657806398d6621b146107e65780639f8fddd2146107fb578063a10f469e1461081b578063a217fddf1461083d578063a4c0ed3614610852578063ae82720014610872578063bcb4546f14610885578063c31c9c07146108a7578063c7713870146108db578063d3112b2e146108f0578063d547741f14610925578063d80528ae14610945578063d86ed3e5146109b1578063dc61d5c2146109d1578063def482a414610a0f578063e06174e414610a2f578063ec87621c14610a99578063f437bc5914610abb575b600080fd5b34801561026b57600080fd5b5061027f61027a3660046141a8565b610aef565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102b46102af3660046141e7565b610b26565b005b3480156102c257600080fd5b506102cf6459df64940081565b604051600b9190910b815260200161028b565b3480156102ee57600080fd5b506102f7610b5a565b60405190815260200161028b565b34801561031157600080fd5b506102b4610320366004614222565b610b78565b34801561033157600080fd5b506102f76103403660046141e7565b610bad565b34801561035157600080fd5b506102f76103603660046141e7565b610c4d565b34801561037157600080fd5b506103856103803660046143b6565b610c95565b60405161028b919061447d565b34801561039e57600080fd5b5061013a5461013b5461013c5461013d5461013e5461013f5461014054610142546103d3979695949392919063ffffffff1688565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015263ffffffff1660e08201526101000161028b565b34801561042057600080fd5b5061038561042f3660046144d8565b610db6565b34801561044057600080fd5b506102f761044f3660046145a2565b610dfd565b34801561046057600080fd5b506102f7610e12565b34801561047557600080fd5b50609754610489906001600160a01b031681565b60405161028b91906145bb565b3480156104a257600080fd5b506102b46104b13660046145cf565b610e51565b3480156104c257600080fd5b506103856104d13660046145f4565b610e72565b3480156104e257600080fd5b506102b46104f13660046145cf565b610f35565b34801561050257600080fd5b506102b46105113660046141e7565b610faf565b34801561052257600080fd5b506102f7611077565b34801561053757600080fd5b506102b4610546366004614762565b611093565b34801561055757600080fd5b506102b46111eb565b6102b461056e36600461477e565b6111f8565b34801561057f57600080fd5b506102f76112ad565b34801561059457600080fd5b506103856105a33660046144d8565b61135b565b3480156105b457600080fd5b506102b46105c3366004614855565b611438565b3480156105d457600080fd5b5061013754610138546101395461061a9263ffffffff80821693600160201b808404831694600160401b850484169460ff600160601b9091048116948216929091041687565b6040805163ffffffff98891681529688166020880152948716948601949094529115156060850152608084015290921660a082015290151560c082015260e00161028b565b34801561066b57600080fd5b5061048961156c565b34801561068057600080fd5b5061038561068f3660046145f4565b61157c565b3480156106a057600080fd5b5061027f6106af36600461477e565b611661565b3480156106c057600080fd5b506106fe6106cf3660046141e7565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b03169082015260600161028b565b34801561073157600080fd5b5061027f6107403660046141e7565b61185e565b34801561075157600080fd5b5061027f6107603660046141e7565b611872565b34801561077157600080fd5b5061014354610489906001600160a01b031681565b34801561079257600080fd5b506103856107a13660046145f4565b611915565b3480156107b257600080fd5b506102b46107c1366004614871565b611a12565b3480156107d257600080fd5b5061027f6107e13660046145cf565b611c89565b3480156107f257600080fd5b506102f7611cb4565b34801561080757600080fd5b506103856108163660046148bc565b611cbf565b34801561082757600080fd5b506102f760008051602061506383398151915281565b34801561084957600080fd5b506102f7600081565b34801561085e57600080fd5b5061027f61086d36600461490a565b611d79565b6102b4610880366004614965565b611df2565b34801561089157600080fd5b506102f7600080516020614fbc83398151915281565b3480156108b357600080fd5b506104897f000000000000000000000000000000000000000000000000000000000000000081565b3480156108e757600080fd5b506102f7611e78565b3480156108fc57600080fd5b50609954609a54610917916001600160a01b03908116911682565b60405161028b929190614999565b34801561093157600080fd5b506102b46109403660046145cf565b612012565b34801561095157600080fd5b50609b54609c54609d54609e5461097d939291906001600160a01b03811690600160a01b9004600b0b85565b604080519586526020860194909452928401919091526001600160a01b03166060830152600b0b608082015260a00161028b565b3480156109bd57600080fd5b506103856109cc3660046144d8565b61202e565b3480156109dd57600080fd5b506109e661205c565b604080519485526020850193909352600b91820b928401929092520b606082015260800161028b565b348015610a1b57600080fd5b50610385610a2a3660046149b3565b612124565b348015610a3b57600080fd5b5061013354610134546101355461013654610a66936001600160a01b03908116938116928116911684565b604080516001600160a01b039586168152938516602085015291841691830191909152909116606082015260800161028b565b348015610aa557600080fd5b506102f760008051602061501c83398151915281565b348015610ac757600080fd5b506104897f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b03198216637965db0b60e01b1480610b2057506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008051602061501c833981519152610b3e81612377565b610b5660008051602061506383398151915283612381565b5050565b61013d54600090610b69611077565b610b739190614a27565b905090565b61013754600160601b900460ff16610ba3576040516369973f2560e11b815260040160405180910390fd5b610b568282612461565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610c0a575192915050565b6040810151610c22906001600160801b031642614a27565b81602001516001600160601b0316610c3a9190614a3a565b8151610c469190614a51565b9392505050565b6000610c57611077565b61013a54148015610c6a575061013b5415155b15610c8d57610c7882611872565b610c855761013b54610b20565b600092915050565b610b20611e78565b606082336001600160a01b03821614801590610cda5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610d03573360405163087231bf60e31b8152600401610cfa91906145bb565b60405180910390fd5b6097546040516358c0dacb60e01b815273__$0d78a42341742155da77b97d7f993534c7$__916358c0dacb91610d6b917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b0316908a90600401614aa9565b602060405180830381865af4158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dac9190614ae4565b5091949350505050565b60606000610dc687890189614afd565b509050600080610dd887890189614b3a565b91509150610dea8d8484848a8a6126ba565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b61013754600090600160201b900463ffffffff16610e2e611077565b610e389190614a51565b610e459062015180614a3a565b610b739061a8c0614a51565b610e5a82610dfd565b610e6381612377565b610e6d8383612701565b505050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ebd57604051632f2d36a760e01b815260040160405180910390fd5b610ec687612827565b610ee95750604080518082019091526002815261060f60f31b6020820152610f2a565b610ef28861185e565b610f0f57604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b0381163314610fa55760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610cfa565b610b568282612381565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ff75760405162461bcd60e51b8152600401610cfa90614b66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110296128db565b6001600160a01b03161461104f5760405162461bcd60e51b8152600401610cfa90614ba0565b611058816128f7565b6040805160008082526020820190925261107491839190612902565b50565b60006201518061108961a8c042614a27565b610b739190614bda565b60008051602061501c8339815191526110ab81612377565b6110b482612a6d565b81516101378054602085015160408087015160608801511515600160601b0260ff60601b1963ffffffff928316600160401b021664ffffffffff60401b19948316600160201b9081026001600160401b0319909716988416989098179590951793909316939093179190911790925560808501516101385560a0850151610139805460c0880151151590950264ffffffffff19909516919092161792909217909155517f9c2d0f3e240667c2b704104ff988af37be9eb4befb81fe00424626b088ee7579906111df908490600060e08201905063ffffffff808451168352806020850151166020840152806040850151166040840152606084015115156060840152608084015160808401528060a08501511660a08401525060c0830151151560c083015292915050565b60405180910390a15050565b6111f6336001612461565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112405760405162461bcd60e51b8152600401610cfa90614b66565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112726128db565b6001600160a01b0316146112985760405162461bcd60e51b8152600401610cfa90614ba0565b6112a1826128f7565b610b5682826001612902565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113485760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610cfa565b50600080516020614ffc83398151915290565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614158061139b575061139989612827565b155b806113ac57506113aa8a61185e565b155b156113f05782828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610df092505050565b6000806113ff888a018a614afd565b9092509050600080611413888a018a614bfc565b915091506114268e858584868c8c612ac7565b9e9d5050505050505050505050505050565b60008051602061501c83398151915261145081612377565b61145982612b1a565b6101335482516001600160a01b039081169116146114b357610133546114979060008051602061501c833981519152906001600160a01b0316612381565b6114b360008051602061501c8339815191528360000151612b6d565b815161013380546001600160a01b03199081166001600160a01b03938416908117909255602080860180516101348054851691871691909117905560408088018051610135805487169189169190911790556060808a0180516101368054909816908a16179096558251968752925187169386019390935291518516918401919091529051909216918101919091527fc5e56c36231b7247b96ddd6a7e47b60748a332bcb3a514d016fd2e74d9159351906080016111df565b610143546001600160a01b031690565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806115bc57506115ba87612827565b155b806115cd57506115cb8861185e565b155b156115f15750604080518082019091526002815261060f60f31b6020820152610f2a565b60008061160086880188614afd565b909250905060008061161c6001600160a01b038d168585612b77565b5050915091508181604051602001611641929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b610135546000906001600160a01b03161561171657610135546040516316874da360e11b81526000916001600160a01b031690632d0e9b46906116a89087906004016145bb565b602060405180830381865afa1580156116c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e99190614c21565b90506001600160a01b0381166117145783604051630b7b234960e01b8152600401610cfa91906145bb565b505b610134546001600160a01b031615801590611746575061174460008051602061501c83398151915233611c89565b155b156117ee57610134546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa90611782903090339088908890600401614c3e565b6020604051808303816000875af11580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c59190614c72565b15156000036117e9578260405163130f4a3760e11b8152600401610cfa91906145bb565b61183d565b61013954600160201b900460ff16801561181d575061181b60008051602061501c83398151915233611c89565b155b1561183d5782604051636f6acad560e01b8152600401610cfa91906145bb565b61185560008051602061506383398151915284612701565b50600192915050565b6097546001600160a01b0390811691161490565b610135546040516316874da360e11b815260009182916001600160a01b0390911690632d0e9b46906118a89086906004016145bb565b602060405180830381865afa1580156118c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e99190614c21565b90506118f3611077565b6001600160a01b03909116600090815261014160205260409020541492915050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461196057604051632f2d36a760e01b815260040160405180910390fd5b61196987612827565b61198c5750604080518082019091526002815261060f60f31b6020820152610f2a565b6119958861185e565b6119b257604051631ea25bab60e31b815260040160405180910390fd5b60006119c085870187614afd565b5090506000806119da6001600160a01b038c168430612b77565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b600054610100900460ff1615808015611a325750600054600160ff909116105b80611a535750611a4130612c0f565b158015611a53575060005460ff166001145b611ab65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610cfa565b6000805460ff191660011790558015611ad9576000805461ff0019166101001790555b61014380546001600160a01b038085166001600160a01b0319928316179092558551610133805491841691831691909117905560208087015161013480549185169184169190911790556040808801516101358054918616918516919091179055606080890151610136805491909616941693909317909355855161013780549288015194880151938801511515600160601b0260ff60601b1963ffffffff958616600160401b021664ffffffffff60401b19968616600160201b9081026001600160401b03199096169487169490941794909417959095169290921793909317905560808501516101385560a0850151610139805460c0880151151590940264ffffffffff199094169190921617919091179055611bf784612b1a565b611c0083612a6d565b611c0b600033612b6d565b611c2760008051602061501c8339815191528560000151612b6d565b61013654611c3d906001600160a01b0316612c1e565b8015611c83576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000610b7333610c4d565b606083336001600160a01b03821614801590611d045750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611d24573360405163087231bf60e31b8152600401610cfa91906145bb565b83600003611d4557604051630f6fa54560e41b815260040160405180910390fd5b609754611d5d906001600160a01b0316863087612dc0565b610dac8585600060405180602001604052806000815250612eca565b6097546000906001600160a01b03163314611da757604051630ce706f760e41b815260040160405180910390fd5b83600003611dc857604051630f6fa54560e41b815260040160405180910390fd5b611de48585600060405180602001604052806000815250612eca565b50600190505b949350505050565b6101435460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa158015611e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e619190614c21565b9050611e6c816128f7565b610b5681836000612902565b610136546040516370a0823160e01b815260009182916001600160a01b03909116906370a0823190611eae9030906004016145bb565b602060405180830381865afa158015611ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eef9190614ae4565b61013754909150600090611f099063ffffffff1683614bda565b90506000606461013a600201546069611f229190614a3a565b611f2c9190614bda565b821180611f70575061013e54611f40610b5a565b11158015611f705750611f51610b5a565b61013e54611f5f9190614a27565b61013c54611f6d9190614a3a565b83105b61013c5461013e5491925090600090611f87610b5a565b611f92906001614a51565b101580611f9c5750825b15611fb85761013754611fb59063ffffffff1686614bda565b91505b6101385461013f546120089190611ff99061271090611fd990612904614a3a565b611fe39190614bda565b61013754600160401b900463ffffffff16613244565b6120039085614bda565b61325b565b9695505050505050565b61201b82610dfd565b61202481612377565b610e6d8383612381565b6060600061203e87890189614afd565b50905061204d8b82868661326a565b9b9a5050505050505050505050565b60975460405163b2f918a160e01b8152609b546004820152609c546024820152609d546044820152609e546001600160a01b03818116606484015260a09190911d600b0b608483015290911660a482015260009081908190819073__$0d78a42341742155da77b97d7f993534c7$__9063b2f918a19060c401608060405180830381865af41580156120f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121169190614c8f565b935093509350935090919293565b606083336001600160a01b038216148015906121695750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15612189573360405163087231bf60e31b8152600401610cfa91906145bb565b6097546040516370a0823160e01b81526000916001600160a01b0316906370a08231906121ba9030906004016145bb565b602060405180830381865afa1580156121d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fb9190614ae4565b6097546040516321437a5360e01b815291925073__$0d78a42341742155da77b97d7f993534c7$__916321437a539161226a917f0000000000000000000000000000000000000000000000000000000000000000918a916001600160a01b03909116908c903090600401614cda565b602060405180830381865af4158015612287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ab9190614ae4565b506097546040516370a0823160e01b815260009183916001600160a01b03909116906370a08231906122e19030906004016145bb565b602060405180830381865afa1580156122fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123229190614ae4565b61232c9190614a27565b90508060000361234f57604051630f6fa54560e41b815260040160405180910390fd5b61236b8782600060405180602001604052806000815250612eca565b50939695505050505050565b61107481336132b8565b600080516020615063833981519152821480156123b157506123b160008051602061506383398151915282611c89565b15612457576101428054600191906000906123d390849063ffffffff16614d1b565b825463ffffffff9182166101009390930a9283029190920219909116179055506101435460405163058e524d60e11b81526001600160a01b0390911690630b1ca49a906124249084906004016145bb565b600060405180830381600087803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b505050505b610b568282613311565b610135546040516316874da360e11b81526000916001600160a01b031690632d0e9b46906124939086906004016145bb565b602060405180830381865afa1580156124b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d49190614c21565b90506001600160a01b0381166124ff5782604051630b7b234960e01b8152600401610cfa91906145bb565b6101395463ffffffff1615801590612522575061013954600160201b900460ff16155b1561253f5761253f60008051602061506383398151915284612701565b6101395463ffffffff16151580612560575061013954600160201b900460ff165b8015612581575061257f60008051602061506383398151915284611c89565b155b156125a1578260405163130f4a3760e11b8152600401610cfa91906145bb565b60006125ab613378565b61013a546001600160a01b0384166000908152610141602052604090205491925090036125ed5781604051631fc1cabf60e31b8152600401610cfa91906145bb565b61013a546001600160a01b0383166000908152610141602052604081209190915561013f805460019290612622908490614a51565b9091555050610140805482919060009061263d908490614a51565b909155506126679050836126515784612653565b825b610136546001600160a01b0316908361360a565b836001600160a01b0316826001600160a01b03167f1c0764b87f885ff7e1be5f7c06a0cc99c5bdc0f7b4884440e6ebe5b12bfd511d836040516126ac91815260200190565b60405180910390a350505050565b6060610f2a8686600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612eca92505050565b60008051602061506383398151915282148015612733575061273160008051602061506383398151915282611c89565b155b1561281d576101395463ffffffff161580159061275f5750610139546101425463ffffffff9182169116115b1561277d5760405163a079801760e01b815260040160405180910390fd5b6101435460405163329b55b760e21b81526001600160a01b039091169063ca6d56dc906127ae9084906004016145bb565b600060405180830381600087803b1580156127c857600080fd5b505af11580156127dc573d6000803e3d6000fd5b50506101428054600193509091506000906127fe90849063ffffffff16614d3f565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b610b568282613660565b604051635b69006f60e11b8152600080516020614fbc83398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa15801561289c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c09190614c21565b6001600160a01b0316826001600160a01b0316149050919050565b600080516020614ffc833981519152546001600160a01b031690565b6000610b5681612377565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561293557610e6d836136e6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561298f575060408051601f3d908101601f1916820190925261298c91810190614ae4565b60015b6129f25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610cfa565b600080516020614ffc8339815191528114612a615760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610cfa565b50610e6d838383613780565b602081015163ffffffff161580612a895750805163ffffffff16155b80612a9c5750604081015163ffffffff16155b80612aa957506080810151155b1561107457604051631e597d8360e11b815260040160405180910390fd5b6060612b0e8786600b0b8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612eca92505050565b98975050505050505050565b80516001600160a01b03161580612b3c575060408101516001600160a01b0316155b80612aa9575060608101516001600160a01b031661107457604051631e597d8360e11b815260040160405180910390fd5b610b568282612701565b6000806000806000612b88886137a5565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e88890612bbc908b908b908b90600401614d5c565b608060405180830381865afa158015612bd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bfd9190614d7f565b929b919a509850909650945050505050565b6001600160a01b03163b151590565b6001600160a01b038116612c455760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b03838116919091179091556040516315a722b960e31b8152600160048201819052917f0000000000000000000000000000000000000000000000000000000000000000169063ad3915c890602401600060405180830381600087803b158015612cc257600080fd5b505af1158015612cd6573d6000803e3d6000fd5b50506040805180820182527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168082529151635b69006f60e11b8152600080516020614fbc833981519152600482015290935060208401925063b6d200de90602401602060405180830381865afa158015612d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d819190614c21565b6001600160a01b039081169091528151609980546001600160a01b0319908116928416929092179055602090920151609a805490931691161790555050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691612e249190614dbd565b6000604051808303816000865af19150503d8060008114612e61576040519150601f19603f3d011682016040523d82523d6000602084013e612e66565b606091505b5091509150818015612e90575080511580612e90575080806020019051810190612e909190614c72565b612ec25760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610cfa565b505050505050565b8051609754829115159073__$0d78a42341742155da77b97d7f993534c7$__9063891d61cc90609b906001600160a01b0316612f0461156c565b85612f0f5789612f12565b60005b6040516001600160e01b031960e087901b16815260048101949094526001600160a01b03928316602485015291166044830152606482015260840160006040518083038186803b158015612f6557600080fd5b505af4158015612f79573d6000803e3d6000fd5b505060975460009250612f9791506001600160a01b03168830613914565b6001600160a01b038816600090815260986020526040902054909150821561318557600082600b0b138015612fd457506459df649400600b83900b125b15612ff757604051624963df60e91b8152600b83900b6004820152602401610cfa565b6001600160a01b038816600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b03851617909155613059908790614a27565b61306c906001600160601b038916614a3a565b6001600160a01b03891660009081526098602052604081208054909190613094908490614a51565b909155505060975473__$0d78a42341742155da77b97d7f993534c7$__90631f8f04bf90609990609b906001600160a01b03166130cf61156c565b6130d98d89614dd9565b8b6040518763ffffffff1660e01b81526004016130fb96959493929190614e06565b600060405180830381865af4158015613118573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131409190810190614e49565b609754909450613159906001600160a01b0316306139a2565b609e80546001600160601b0392909216600160a01b026001600160a01b039092169190911790556131bc565b6001600160a01b038816600090815260986020526040812080548992906131ad908490614a51565b909155506131bc905087613a21565b6001600160a01b0388166000818152609860205260409020547f6342e11b65ccb38a3bb259be9cda846c74ad52b36b62a2ee4799dc3db63a04a390839086613205576000613207565b8a5b604080519384526020840192909252600b90810b8383015286900b60608301528615156080830152519081900360a00190a2505050949350505050565b6000818310156132545781610c46565b5090919050565b60008183106132545781610c46565b60606132af8460008086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612eca92505050565b95945050505050565b6132c28282611c89565b610b56576132cf81613b5d565b6132da836020613b6f565b6040516020016132eb929190614eb6565b60408051601f198184030181529082905262461bcd60e51b8252610cfa9160040161447d565b61331b8282611c89565b15610b565760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080613383611077565b6101375461013a549192506133a691600160201b90910463ffffffff1690614a51565b81106136015761013a81905561013754610136546040516370a0823160e01b815263ffffffff909216916000916001600160a01b0316906370a08231906133f19030906004016145bb565b602060405180830381865afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134329190614ae4565b9050600061344663ffffffff841683614bda565b90506000606461013a60020154606961345f9190614a3a565b6134699190614bda565b8211806134b257508363ffffffff16613480610b5a565b111580156134b25750613491610b5a565b6134a19063ffffffff8616614a27565b61013c546134af9190614a3a565b83105b61013e549091506134c1610b5a565b1015806134cb5750805b156135315761013c82905563ffffffff841661013e81905561013d86905560408051878152602081018690528082019290925260608201849052517f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9181900360800190a15b61013f546101385461355d9061354f612710611fd985612904614a3a565b61013c546120039190614bda565b61013b5561356f611fe3600283614bda565b610137805463ffffffff92909216600160401b0263ffffffff60401b1990921691909117905561013b5461013f5461014054604080518a815260208101949094524390840152606083019190915260808201527fdd2b882b89647cd6c5641ce6ab9d46f1c17865d2b22f065850f30f83cc7d8cf89060a00160405180910390a15050600061013f819055610140555050505b505061013b5490565b610e6d8363a9059cbb60e01b8484604051602401613629929190614f25565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613d0a565b61366a8282611c89565b610b565760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556136a23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6136ef81612c0f565b6137515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610cfa565b600080516020614ffc83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61378983613ddc565b6000825111806137965750805b15610e6d57611c838383613e1c565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b0381166138e3576001600160a01b03821661386a57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015613843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138679190614c21565b91505b604051635b69006f60e11b8152600080516020614fbc83398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa1580156138bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e09190614c21565b90505b6001600160a01b0382166138f9576138f9614f3e565b6001600160a01b03811661390f5761390f614f3e565b915091565b600080613920856137a5565b604051631cd43d1160e31b81529092506001600160a01b038316915063e6a1e8889061395490889088908890600401614d5c565b608060405180830381865afa158015613971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139959190614d7f565b5090979650505050505050565b6000806139ae846137a5565b60405163e8e7e2d160e01b81529092506001600160a01b038316915063e8e7e2d1906139e09087908790600401614999565b602060405180830381865afa1580156139fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dea9190614f54565b6000613a2b61156c565b6001600160a01b031603613a3c5750565b6000613a4661156c565b6001600160a01b031663469048406040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa79190614c21565b90506001600160a01b038116613abb575050565b6000612710613ac861156c565b6001600160a01b03166324a9d8536040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b299190614f71565b613b399063ffffffff1685614a3a565b613b439190614bda565b609754909150610e6d906001600160a01b03168383613f05565b6060610b206001600160a01b03831660145b60606000613b7e836002614a3a565b613b89906002614a51565b6001600160401b03811115613ba057613ba061425b565b6040519080825280601f01601f191660200182016040528015613bca576020820181803683370190505b509050600360fc1b81600081518110613be557613be5614f8e565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613c1457613c14614f8e565b60200101906001600160f81b031916908160001a9053506000613c38846002614a3a565b613c43906001614a51565b90505b6001811115613cbb576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613c7757613c77614f8e565b1a60f81b828281518110613c8d57613c8d614f8e565b60200101906001600160f81b031916908160001a90535060049490941c93613cb481614fa4565b9050613c46565b508315610c465760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610cfa565b6000613d5f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661400f9092919063ffffffff16565b805190915015610e6d5780806020019051810190613d7d9190614c72565b610e6d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610cfa565b613de5816136e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613e2783612c0f565b613e825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610cfa565b600080846001600160a01b031684604051613e9d9190614dbd565b600060405180830381855af49150503d8060008114613ed8576040519150601f19603f3d011682016040523d82523d6000602084013e613edd565b606091505b50915091506132af828260405180606001604052806027815260200161503c6027913961401e565b600080846001600160a01b031663a9059cbb60e01b8585604051602401613f2d929190614f25565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051613f6b9190614dbd565b6000604051808303816000865af19150503d8060008114613fa8576040519150601f19603f3d011682016040523d82523d6000602084013e613fad565b606091505b5091509150818015613fd7575080511580613fd7575080806020019051810190613fd79190614c72565b6140085760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610cfa565b5050505050565b6060611dea8484600085614037565b6060831561402d575081610c46565b610c468383614107565b6060824710156140985760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610cfa565b600080866001600160a01b031685876040516140b49190614dbd565b60006040518083038185875af1925050503d80600081146140f1576040519150601f19603f3d011682016040523d82523d6000602084013e6140f6565b606091505b5091509150610f2a87838387614131565b8151156141175781518083602001fd5b8060405162461bcd60e51b8152600401610cfa919061447d565b6060831561419e5782516000036141975761414b85612c0f565b6141975760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cfa565b5081611dea565b611dea8383614107565b6000602082840312156141ba57600080fd5b81356001600160e01b031981168114610c4657600080fd5b6001600160a01b038116811461107457600080fd5b6000602082840312156141f957600080fd5b8135610c46816141d2565b801515811461107457600080fd5b803561421d81614204565b919050565b6000806040838503121561423557600080fd5b8235614240816141d2565b9150602083013561425081614204565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156142995761429961425b565b604052919050565b60006001600160401b038211156142ba576142ba61425b565b50601f01601f191660200190565b600082601f8301126142d957600080fd5b81356142ec6142e7826142a1565b614271565b81815284602083860101111561430157600080fd5b816020850160208301376000918101602001919091529392505050565b600060a0828403121561433057600080fd5b60405160a081016001600160401b0380821183831017156143535761435361425b565b8160405282935084359150614367826141d2565b818352602085013560208401526040850135604084015260608501356060840152608085013591508082111561439c57600080fd5b506143a9858286016142c8565b6080830152505092915050565b6000806000606084860312156143cb57600080fd5b83356001600160401b03808211156143e257600080fd5b6143ee8783880161431e565b945060208601359150614400826141d2565b9092506040850135908082111561441657600080fd5b50614423868287016142c8565b9150509250925092565b60005b83811015614448578181015183820152602001614430565b50506000910152565b6000815180845261446981602086016020860161442d565b601f01601f19169290920160200192915050565b602081526000610c466020830184614451565b60008083601f8401126144a257600080fd5b5081356001600160401b038111156144b957600080fd5b6020830191508360208285010111156144d157600080fd5b9250929050565b600080600080600080600080600060c08a8c0312156144f657600080fd5b8935614501816141d2565b985060208a0135614511816141d2565b975060408a0135965060608a01356001600160401b038082111561453457600080fd5b6145408d838e01614490565b909850965060808c013591508082111561455957600080fd5b6145658d838e01614490565b909650945060a08c013591508082111561457e57600080fd5b5061458b8c828d01614490565b915080935050809150509295985092959850929598565b6000602082840312156145b457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600080604083850312156145e257600080fd5b823591506020830135614250816141d2565b600080600080600080600060a0888a03121561460f57600080fd5b873561461a816141d2565b9650602088013561462a816141d2565b95506040880135945060608801356001600160401b038082111561464d57600080fd5b6146598b838c01614490565b909650945060808a013591508082111561467257600080fd5b5061467f8a828b01614490565b989b979a50959850939692959293505050565b63ffffffff8116811461107457600080fd5b803561421d81614692565b600060e082840312156146c157600080fd5b60405160e081016001600160401b03811182821017156146e3576146e361425b565b60405290508082356146f481614692565b8152602083013561470481614692565b6020820152604083013561471781614692565b6040820152606083013561472a81614204565b60608201526080838101359082015261474560a084016146a4565b60a082015261475660c08401614212565b60c08201525092915050565b600060e0828403121561477457600080fd5b610c4683836146af565b6000806040838503121561479157600080fd5b823561479c816141d2565b915060208301356001600160401b038111156147b757600080fd5b6147c3858286016142c8565b9150509250929050565b6000608082840312156147df57600080fd5b604051608081016001600160401b03811182821017156148015761480161425b565b6040529050808235614812816141d2565b81526020830135614822816141d2565b60208201526040830135614835816141d2565b60408201526060830135614848816141d2565b6060919091015292915050565b60006080828403121561486757600080fd5b610c4683836147cd565b6000806000610180848603121561488757600080fd5b61489185856147cd565b92506148a085608086016146af565b91506101608401356148b1816141d2565b809150509250925092565b6000806000606084860312156148d157600080fd5b83356148dc816141d2565b92506020840135915060408401356001600160401b038111156148fe57600080fd5b614423868287016142c8565b6000806000806060858703121561492057600080fd5b843561492b816141d2565b93506020850135925060408501356001600160401b0381111561494d57600080fd5b61495987828801614490565b95989497509550505050565b60006020828403121561497757600080fd5b81356001600160401b0381111561498d57600080fd5b611dea848285016142c8565b6001600160a01b0392831681529116602082015260400190565b6000806000606084860312156149c857600080fd5b83356149d3816141d2565b925060208401356001600160401b03808211156149ef57600080fd5b6149fb8783880161431e565b9350604086013591508082111561441657600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610b2057610b20614a11565b8082028115828204841417610b2057610b20614a11565b80820180821115610b2057610b20614a11565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526000608082015160a06080850152611dea60a0850182614451565b600060018060a01b03808716835260806020840152614acb6080840187614a64565b9481166040840152929092166060909101525092915050565b600060208284031215614af657600080fd5b5051919050565b60008060408385031215614b1057600080fd5b8235614b1b816141d2565b91506020830135614250816141d2565b80600b0b811461107457600080fd5b60008060408385031215614b4d57600080fd5b8235614b5881614b2b565b946020939093013593505050565b6020808252602c90820152600080516020614fdc83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020614fdc83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600082614bf757634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215614c0f57600080fd5b82359150602083013561425081614b2b565b600060208284031215614c3357600080fd5b8151610c46816141d2565b6001600160a01b03858116825284811660208301528316604082015260806060820181905260009061200890830184614451565b600060208284031215614c8457600080fd5b8151610c4681614204565b60008060008060808587031215614ca557600080fd5b84519350602085015192506040850151614cbe81614b2b565b6060860151909250614ccf81614b2b565b939692955090935050565b600060018060a01b03808816835260a06020840152614cfc60a0840188614a64565b9581166040840152938416606083015250911660809091015292915050565b63ffffffff828116828216039080821115614d3857614d38614a11565b5092915050565b63ffffffff818116838216019080821115614d3857614d38614a11565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60008060008060808587031215614d9557600080fd5b845193506020850151614da781614b2b565b6040860151606090960151949790965092505050565b60008251614dcf81846020870161442d565b9190910192915050565b600b82810b9082900b0360016001605f1b0319811260016001605f1b0382131715610b2057610b20614a11565b868152602081018690526001600160a01b03858116604083015284166060820152600b83900b608082015260c060a08201819052600090612b0e90830184614451565b600060208284031215614e5b57600080fd5b81516001600160401b03811115614e7157600080fd5b8201601f81018413614e8257600080fd5b8051614e906142e7826142a1565b818152856020838501011115614ea557600080fd5b6132af82602083016020860161442d565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351614ee881601785016020880161442d565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614f1981602884016020880161442d565b01602801949350505050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052600160045260246000fd5b600060208284031215614f6657600080fd5b8151610c4681614b2b565b600060208284031215614f8357600080fd5b8151610c4681614692565b634e487b7160e01b600052603260045260246000fd5b600081614fb357614fb3614a11565b50600019019056fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd346756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564829b824e2329e205435d941c9f13baf578548505283d29261236d8e6596d4636a26469706673582212207ef020a9be5627731b8187654bbd3e792648cee5fa1eb0b3a2a98ae51d843ac764736f6c63430008130033";
1838
-
1839
- type UBIPoolConstructorParams =
1840
- | [linkLibraryAddresses: UBIPoolLibraryAddresses, signer?: Signer]
1841
- | ConstructorParameters<typeof ContractFactory>;
1842
-
1843
- const isSuperArgs = (
1844
- xs: UBIPoolConstructorParams
1845
- ): xs is ConstructorParameters<typeof ContractFactory> => {
1846
- return (
1847
- typeof xs[0] === "string" ||
1848
- (Array.isArray as (arg: any) => arg is readonly any[])(xs[0]) ||
1849
- "_isInterface" in xs[0]
1850
- );
1851
- };
1852
-
1853
- export class UBIPool__factory extends ContractFactory {
1854
- constructor(...args: UBIPoolConstructorParams) {
1855
- if (isSuperArgs(args)) {
1856
- super(...args);
1857
- } else {
1858
- const [linkLibraryAddresses, signer] = args;
1859
- super(_abi, UBIPool__factory.linkBytecode(linkLibraryAddresses), signer);
1860
- }
1861
- }
1862
-
1863
- static linkBytecode(linkLibraryAddresses: UBIPoolLibraryAddresses): string {
1864
- let linkedBytecode = _bytecode;
1865
-
1866
- linkedBytecode = linkedBytecode.replace(
1867
- new RegExp("__\\$0d78a42341742155da77b97d7f993534c7\\$__", "g"),
1868
- linkLibraryAddresses["contracts/utils/HelperLibrary.sol:HelperLibrary"]
1869
- .replace(/^0x/, "")
1870
- .toLowerCase()
1871
- );
1872
-
1873
- return linkedBytecode;
1874
- }
1875
-
1876
- override deploy(
1877
- _host: PromiseOrValue<string>,
1878
- _swapRouter: PromiseOrValue<string>,
1879
- overrides?: Overrides & { from?: PromiseOrValue<string> }
1880
- ): Promise<UBIPool> {
1881
- return super.deploy(
1882
- _host,
1883
- _swapRouter,
1884
- overrides || {}
1885
- ) as Promise<UBIPool>;
1886
- }
1887
- override getDeployTransaction(
1888
- _host: PromiseOrValue<string>,
1889
- _swapRouter: PromiseOrValue<string>,
1890
- overrides?: Overrides & { from?: PromiseOrValue<string> }
1891
- ): TransactionRequest {
1892
- return super.getDeployTransaction(_host, _swapRouter, overrides || {});
1893
- }
1894
- override attach(address: string): UBIPool {
1895
- return super.attach(address) as UBIPool;
1896
- }
1897
- override connect(signer: Signer): UBIPool__factory {
1898
- return super.connect(signer) as UBIPool__factory;
1899
- }
1900
-
1901
- static readonly bytecode = _bytecode;
1902
- static readonly abi = _abi;
1903
- static createInterface(): UBIPoolInterface {
1904
- return new utils.Interface(_abi) as UBIPoolInterface;
1905
- }
1906
- static connect(
1907
- address: string,
1908
- signerOrProvider: Signer | Provider
1909
- ): UBIPool {
1910
- return new Contract(address, _abi, signerOrProvider) as UBIPool;
1911
- }
1912
- }
1913
-
1914
- export interface UBIPoolLibraryAddresses {
1915
- ["contracts/utils/HelperLibrary.sol:HelperLibrary"]: string;
1916
- }