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