@gooddollar/goodprotocol 2.0.34-beta.1 → 2.0.34-beta.3

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 (67) hide show
  1. package/artifacts/abis/GenericDistributionHelper.min.json +1 -0
  2. package/artifacts/abis/INonfungiblePositionManager.min.json +1 -0
  3. package/artifacts/abis/IUniswapV3Pool.min.json +1 -0
  4. package/artifacts/abis/UBISchemeV2.min.json +1 -1
  5. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +4 -0
  6. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.json +102 -0
  7. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +4 -0
  8. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.json +93 -0
  9. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +4 -0
  10. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.json +931 -0
  11. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  12. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +7 -2
  13. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  14. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  15. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  16. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  17. package/contracts/IUniswapV3.sol +51 -0
  18. package/contracts/reserve/GenericDistributionHelper.sol +319 -0
  19. package/contracts/ubi/UBISchemeV2.sol +8 -4
  20. package/contracts/utils/ProxyFactory1967.sol +16 -18
  21. package/hardhat.config.ts +14 -6
  22. package/package.json +1 -1
  23. package/releases/deploy-settings.json +15 -2
  24. package/releases/deployment.json +72 -46
  25. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +4 -3
  26. package/scripts/multichain-deploy/1_basicdao-deploy.ts +18 -9
  27. package/scripts/multichain-deploy/4_ubi-deploy.ts +1 -1
  28. package/scripts/multichain-deploy/8_disthelper-deploy.ts +152 -0
  29. package/scripts/multichain-deploy/createUniswapTestPools.ts +163 -0
  30. package/scripts/multichain-deploy/helpers.ts +76 -6
  31. package/scripts/proposals/gip-25-xdc-upgrade.ts +438 -0
  32. package/test/helpers.ts +1 -1
  33. package/test/ubi/UBISchemeV2.test.ts +35 -108
  34. package/types/@uniswap/index.ts +2 -0
  35. package/types/@uniswap/v2-periphery/contracts/index.ts +5 -0
  36. package/types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts +159 -0
  37. package/types/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  38. package/types/@uniswap/v2-periphery/index.ts +5 -0
  39. package/types/contracts/IUniswapV3.sol/INonfungiblePositionManager.ts +151 -0
  40. package/types/contracts/IUniswapV3.sol/IUniswapV3Factory.ts +155 -0
  41. package/types/contracts/IUniswapV3.sol/IUniswapV3Pool.ts +179 -0
  42. package/types/contracts/IUniswapV3.sol/index.ts +5 -0
  43. package/types/contracts/index.ts +2 -0
  44. package/types/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper.ts +1247 -0
  45. package/types/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  46. package/types/contracts/reserve/GenericDistributionHelper.ts +1304 -0
  47. package/types/contracts/reserve/index.ts +1 -0
  48. package/types/contracts/ubi/UBISchemeV2.ts +14 -3
  49. package/types/factories/@uniswap/index.ts +1 -0
  50. package/types/factories/@uniswap/v2-periphery/contracts/index.ts +4 -0
  51. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts +67 -0
  52. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts +4 -0
  53. package/types/factories/@uniswap/v2-periphery/index.ts +4 -0
  54. package/types/factories/contracts/IUniswapV3.sol/INonfungiblePositionManager__factory.ts +121 -0
  55. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Factory__factory.ts +84 -0
  56. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Pool__factory.ts +108 -0
  57. package/types/factories/contracts/IUniswapV3.sol/index.ts +5 -0
  58. package/types/factories/contracts/index.ts +1 -0
  59. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper__factory.ts +935 -0
  60. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +4 -0
  61. package/types/factories/contracts/reserve/GenericDistributionHelper__factory.ts +987 -0
  62. package/types/factories/contracts/reserve/index.ts +1 -0
  63. package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +6 -1
  64. package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
  65. package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
  66. package/types/hardhat.d.ts +36 -0
  67. package/types/index.ts +8 -0
@@ -0,0 +1,935 @@
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 {
7
+ GenericDistributionHelper,
8
+ GenericDistributionHelperInterface,
9
+ } from "../../../../contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper";
10
+
11
+ const _abi = [
12
+ {
13
+ inputs: [
14
+ {
15
+ internalType: "uint256",
16
+ name: "fee",
17
+ type: "uint256",
18
+ },
19
+ ],
20
+ name: "FEE_LIMIT",
21
+ type: "error",
22
+ },
23
+ {
24
+ inputs: [],
25
+ name: "INVALID_CHAINID",
26
+ type: "error",
27
+ },
28
+ {
29
+ anonymous: false,
30
+ inputs: [
31
+ {
32
+ indexed: false,
33
+ internalType: "address",
34
+ name: "previousAdmin",
35
+ type: "address",
36
+ },
37
+ {
38
+ indexed: false,
39
+ internalType: "address",
40
+ name: "newAdmin",
41
+ type: "address",
42
+ },
43
+ ],
44
+ name: "AdminChanged",
45
+ type: "event",
46
+ },
47
+ {
48
+ anonymous: false,
49
+ inputs: [
50
+ {
51
+ indexed: true,
52
+ internalType: "address",
53
+ name: "beacon",
54
+ type: "address",
55
+ },
56
+ ],
57
+ name: "BeaconUpgraded",
58
+ type: "event",
59
+ },
60
+ {
61
+ anonymous: false,
62
+ inputs: [
63
+ {
64
+ indexed: false,
65
+ internalType: "string",
66
+ name: "reason",
67
+ type: "string",
68
+ },
69
+ ],
70
+ name: "BuyNativeFailed",
71
+ type: "event",
72
+ },
73
+ {
74
+ anonymous: false,
75
+ inputs: [
76
+ {
77
+ indexed: false,
78
+ internalType: "uint256",
79
+ name: "distributed",
80
+ type: "uint256",
81
+ },
82
+ {
83
+ indexed: false,
84
+ internalType: "uint256",
85
+ name: "startingBalance",
86
+ type: "uint256",
87
+ },
88
+ {
89
+ indexed: false,
90
+ internalType: "uint256",
91
+ name: "incomingAmount",
92
+ type: "uint256",
93
+ },
94
+ {
95
+ components: [
96
+ {
97
+ internalType: "uint32",
98
+ name: "bps",
99
+ type: "uint32",
100
+ },
101
+ {
102
+ internalType: "uint32",
103
+ name: "chainId",
104
+ type: "uint32",
105
+ },
106
+ {
107
+ internalType: "address",
108
+ name: "addr",
109
+ type: "address",
110
+ },
111
+ {
112
+ internalType: "enum GenericDistributionHelper.TransferType",
113
+ name: "transferType",
114
+ type: "uint8",
115
+ },
116
+ ],
117
+ indexed: false,
118
+ internalType:
119
+ "struct GenericDistributionHelper.DistributionRecipient[]",
120
+ name: "distributionRecipients",
121
+ type: "tuple[]",
122
+ },
123
+ {
124
+ indexed: false,
125
+ internalType: "uint256",
126
+ name: "gdSoldForGas",
127
+ type: "uint256",
128
+ },
129
+ {
130
+ indexed: false,
131
+ internalType: "uint256",
132
+ name: "nativeBoughtForGas",
133
+ type: "uint256",
134
+ },
135
+ ],
136
+ name: "Distribution",
137
+ type: "event",
138
+ },
139
+ {
140
+ anonymous: false,
141
+ inputs: [
142
+ {
143
+ indexed: false,
144
+ internalType: "uint8",
145
+ name: "version",
146
+ type: "uint8",
147
+ },
148
+ ],
149
+ name: "Initialized",
150
+ type: "event",
151
+ },
152
+ {
153
+ anonymous: false,
154
+ inputs: [
155
+ {
156
+ components: [
157
+ {
158
+ internalType: "uint32",
159
+ name: "bps",
160
+ type: "uint32",
161
+ },
162
+ {
163
+ internalType: "uint32",
164
+ name: "chainId",
165
+ type: "uint32",
166
+ },
167
+ {
168
+ internalType: "address",
169
+ name: "addr",
170
+ type: "address",
171
+ },
172
+ {
173
+ internalType: "enum GenericDistributionHelper.TransferType",
174
+ name: "transferType",
175
+ type: "uint8",
176
+ },
177
+ ],
178
+ indexed: false,
179
+ internalType: "struct GenericDistributionHelper.DistributionRecipient",
180
+ name: "recipient",
181
+ type: "tuple",
182
+ },
183
+ {
184
+ indexed: false,
185
+ internalType: "uint256",
186
+ name: "index",
187
+ type: "uint256",
188
+ },
189
+ ],
190
+ name: "RecipientAdded",
191
+ type: "event",
192
+ },
193
+ {
194
+ anonymous: false,
195
+ inputs: [
196
+ {
197
+ components: [
198
+ {
199
+ internalType: "uint32",
200
+ name: "bps",
201
+ type: "uint32",
202
+ },
203
+ {
204
+ internalType: "uint32",
205
+ name: "chainId",
206
+ type: "uint32",
207
+ },
208
+ {
209
+ internalType: "address",
210
+ name: "addr",
211
+ type: "address",
212
+ },
213
+ {
214
+ internalType: "enum GenericDistributionHelper.TransferType",
215
+ name: "transferType",
216
+ type: "uint8",
217
+ },
218
+ ],
219
+ indexed: false,
220
+ internalType: "struct GenericDistributionHelper.DistributionRecipient",
221
+ name: "recipient",
222
+ type: "tuple",
223
+ },
224
+ {
225
+ indexed: false,
226
+ internalType: "uint256",
227
+ name: "index",
228
+ type: "uint256",
229
+ },
230
+ ],
231
+ name: "RecipientUpdated",
232
+ type: "event",
233
+ },
234
+ {
235
+ anonymous: false,
236
+ inputs: [
237
+ {
238
+ indexed: true,
239
+ internalType: "bytes32",
240
+ name: "role",
241
+ type: "bytes32",
242
+ },
243
+ {
244
+ indexed: true,
245
+ internalType: "bytes32",
246
+ name: "previousAdminRole",
247
+ type: "bytes32",
248
+ },
249
+ {
250
+ indexed: true,
251
+ internalType: "bytes32",
252
+ name: "newAdminRole",
253
+ type: "bytes32",
254
+ },
255
+ ],
256
+ name: "RoleAdminChanged",
257
+ type: "event",
258
+ },
259
+ {
260
+ anonymous: false,
261
+ inputs: [
262
+ {
263
+ indexed: true,
264
+ internalType: "bytes32",
265
+ name: "role",
266
+ type: "bytes32",
267
+ },
268
+ {
269
+ indexed: true,
270
+ internalType: "address",
271
+ name: "account",
272
+ type: "address",
273
+ },
274
+ {
275
+ indexed: true,
276
+ internalType: "address",
277
+ name: "sender",
278
+ type: "address",
279
+ },
280
+ ],
281
+ name: "RoleGranted",
282
+ type: "event",
283
+ },
284
+ {
285
+ anonymous: false,
286
+ inputs: [
287
+ {
288
+ indexed: true,
289
+ internalType: "bytes32",
290
+ name: "role",
291
+ type: "bytes32",
292
+ },
293
+ {
294
+ indexed: true,
295
+ internalType: "address",
296
+ name: "account",
297
+ type: "address",
298
+ },
299
+ {
300
+ indexed: true,
301
+ internalType: "address",
302
+ name: "sender",
303
+ type: "address",
304
+ },
305
+ ],
306
+ name: "RoleRevoked",
307
+ type: "event",
308
+ },
309
+ {
310
+ anonymous: false,
311
+ inputs: [
312
+ {
313
+ indexed: true,
314
+ internalType: "address",
315
+ name: "implementation",
316
+ type: "address",
317
+ },
318
+ ],
319
+ name: "Upgraded",
320
+ type: "event",
321
+ },
322
+ {
323
+ inputs: [],
324
+ name: "DEFAULT_ADMIN_ROLE",
325
+ outputs: [
326
+ {
327
+ internalType: "bytes32",
328
+ name: "",
329
+ type: "bytes32",
330
+ },
331
+ ],
332
+ stateMutability: "view",
333
+ type: "function",
334
+ },
335
+ {
336
+ inputs: [],
337
+ name: "GUARDIAN_ROLE",
338
+ outputs: [
339
+ {
340
+ internalType: "bytes32",
341
+ name: "",
342
+ type: "bytes32",
343
+ },
344
+ ],
345
+ stateMutability: "view",
346
+ type: "function",
347
+ },
348
+ {
349
+ inputs: [],
350
+ name: "ROUTER",
351
+ outputs: [
352
+ {
353
+ internalType: "contract ISwapRouter",
354
+ name: "",
355
+ type: "address",
356
+ },
357
+ ],
358
+ stateMutability: "view",
359
+ type: "function",
360
+ },
361
+ {
362
+ inputs: [],
363
+ name: "STATIC_ORACLE",
364
+ outputs: [
365
+ {
366
+ internalType: "contract IStaticOracle",
367
+ name: "",
368
+ type: "address",
369
+ },
370
+ ],
371
+ stateMutability: "view",
372
+ type: "function",
373
+ },
374
+ {
375
+ inputs: [
376
+ {
377
+ components: [
378
+ {
379
+ internalType: "uint32",
380
+ name: "bps",
381
+ type: "uint32",
382
+ },
383
+ {
384
+ internalType: "uint32",
385
+ name: "chainId",
386
+ type: "uint32",
387
+ },
388
+ {
389
+ internalType: "address",
390
+ name: "addr",
391
+ type: "address",
392
+ },
393
+ {
394
+ internalType: "enum GenericDistributionHelper.TransferType",
395
+ name: "transferType",
396
+ type: "uint8",
397
+ },
398
+ ],
399
+ internalType: "struct GenericDistributionHelper.DistributionRecipient",
400
+ name: "_recipient",
401
+ type: "tuple",
402
+ },
403
+ ],
404
+ name: "addOrUpdateRecipient",
405
+ outputs: [],
406
+ stateMutability: "nonpayable",
407
+ type: "function",
408
+ },
409
+ {
410
+ inputs: [],
411
+ name: "avatar",
412
+ outputs: [
413
+ {
414
+ internalType: "address",
415
+ name: "",
416
+ type: "address",
417
+ },
418
+ ],
419
+ stateMutability: "view",
420
+ type: "function",
421
+ },
422
+ {
423
+ inputs: [
424
+ {
425
+ internalType: "uint256",
426
+ name: "maxAmountToSell",
427
+ type: "uint256",
428
+ },
429
+ ],
430
+ name: "calcGDToSell",
431
+ outputs: [
432
+ {
433
+ internalType: "uint256",
434
+ name: "gdToSell",
435
+ type: "uint256",
436
+ },
437
+ {
438
+ internalType: "uint256",
439
+ name: "minReceived",
440
+ type: "uint256",
441
+ },
442
+ ],
443
+ stateMutability: "view",
444
+ type: "function",
445
+ },
446
+ {
447
+ inputs: [],
448
+ name: "dao",
449
+ outputs: [
450
+ {
451
+ internalType: "contract Controller",
452
+ name: "",
453
+ type: "address",
454
+ },
455
+ ],
456
+ stateMutability: "view",
457
+ type: "function",
458
+ },
459
+ {
460
+ inputs: [
461
+ {
462
+ internalType: "uint256",
463
+ name: "",
464
+ type: "uint256",
465
+ },
466
+ ],
467
+ name: "distributionRecipients",
468
+ outputs: [
469
+ {
470
+ internalType: "uint32",
471
+ name: "bps",
472
+ type: "uint32",
473
+ },
474
+ {
475
+ internalType: "uint32",
476
+ name: "chainId",
477
+ type: "uint32",
478
+ },
479
+ {
480
+ internalType: "address",
481
+ name: "addr",
482
+ type: "address",
483
+ },
484
+ {
485
+ internalType: "enum GenericDistributionHelper.TransferType",
486
+ name: "transferType",
487
+ type: "uint8",
488
+ },
489
+ ],
490
+ stateMutability: "view",
491
+ type: "function",
492
+ },
493
+ {
494
+ inputs: [],
495
+ name: "feeSettings",
496
+ outputs: [
497
+ {
498
+ internalType: "uint128",
499
+ name: "maxFee",
500
+ type: "uint128",
501
+ },
502
+ {
503
+ internalType: "uint128",
504
+ name: "minBalanceForFees",
505
+ type: "uint128",
506
+ },
507
+ {
508
+ internalType: "uint8",
509
+ name: "percentageToSellForFee",
510
+ type: "uint8",
511
+ },
512
+ {
513
+ internalType: "uint8",
514
+ name: "maxSlippage",
515
+ type: "uint8",
516
+ },
517
+ ],
518
+ stateMutability: "view",
519
+ type: "function",
520
+ },
521
+ {
522
+ inputs: [],
523
+ name: "gasToken",
524
+ outputs: [
525
+ {
526
+ internalType: "address",
527
+ name: "",
528
+ type: "address",
529
+ },
530
+ ],
531
+ stateMutability: "view",
532
+ type: "function",
533
+ },
534
+ {
535
+ inputs: [
536
+ {
537
+ internalType: "bytes32",
538
+ name: "role",
539
+ type: "bytes32",
540
+ },
541
+ ],
542
+ name: "getRoleAdmin",
543
+ outputs: [
544
+ {
545
+ internalType: "bytes32",
546
+ name: "",
547
+ type: "bytes32",
548
+ },
549
+ ],
550
+ stateMutability: "view",
551
+ type: "function",
552
+ },
553
+ {
554
+ inputs: [
555
+ {
556
+ internalType: "bytes32",
557
+ name: "role",
558
+ type: "bytes32",
559
+ },
560
+ {
561
+ internalType: "uint256",
562
+ name: "index",
563
+ type: "uint256",
564
+ },
565
+ ],
566
+ name: "getRoleMember",
567
+ outputs: [
568
+ {
569
+ internalType: "address",
570
+ name: "",
571
+ type: "address",
572
+ },
573
+ ],
574
+ stateMutability: "view",
575
+ type: "function",
576
+ },
577
+ {
578
+ inputs: [
579
+ {
580
+ internalType: "bytes32",
581
+ name: "role",
582
+ type: "bytes32",
583
+ },
584
+ ],
585
+ name: "getRoleMemberCount",
586
+ outputs: [
587
+ {
588
+ internalType: "uint256",
589
+ name: "",
590
+ type: "uint256",
591
+ },
592
+ ],
593
+ stateMutability: "view",
594
+ type: "function",
595
+ },
596
+ {
597
+ inputs: [
598
+ {
599
+ internalType: "bytes32",
600
+ name: "role",
601
+ type: "bytes32",
602
+ },
603
+ {
604
+ internalType: "address",
605
+ name: "account",
606
+ type: "address",
607
+ },
608
+ ],
609
+ name: "grantRole",
610
+ outputs: [],
611
+ stateMutability: "nonpayable",
612
+ type: "function",
613
+ },
614
+ {
615
+ inputs: [
616
+ {
617
+ internalType: "bytes32",
618
+ name: "role",
619
+ type: "bytes32",
620
+ },
621
+ {
622
+ internalType: "address",
623
+ name: "account",
624
+ type: "address",
625
+ },
626
+ ],
627
+ name: "hasRole",
628
+ outputs: [
629
+ {
630
+ internalType: "bool",
631
+ name: "",
632
+ type: "bool",
633
+ },
634
+ ],
635
+ stateMutability: "view",
636
+ type: "function",
637
+ },
638
+ {
639
+ inputs: [
640
+ {
641
+ internalType: "contract INameService",
642
+ name: "_ns",
643
+ type: "address",
644
+ },
645
+ {
646
+ internalType: "contract IStaticOracle",
647
+ name: "_oracle",
648
+ type: "address",
649
+ },
650
+ {
651
+ internalType: "address",
652
+ name: "_gasToken",
653
+ type: "address",
654
+ },
655
+ {
656
+ internalType: "address",
657
+ name: "_reserveToken",
658
+ type: "address",
659
+ },
660
+ {
661
+ internalType: "contract ISwapRouter",
662
+ name: "_router",
663
+ type: "address",
664
+ },
665
+ ],
666
+ name: "initialize",
667
+ outputs: [],
668
+ stateMutability: "nonpayable",
669
+ type: "function",
670
+ },
671
+ {
672
+ inputs: [],
673
+ name: "mpbBridge",
674
+ outputs: [
675
+ {
676
+ internalType: "contract IMessagePassingBridge",
677
+ name: "",
678
+ type: "address",
679
+ },
680
+ ],
681
+ stateMutability: "view",
682
+ type: "function",
683
+ },
684
+ {
685
+ inputs: [],
686
+ name: "nameService",
687
+ outputs: [
688
+ {
689
+ internalType: "contract INameService",
690
+ name: "",
691
+ type: "address",
692
+ },
693
+ ],
694
+ stateMutability: "view",
695
+ type: "function",
696
+ },
697
+ {
698
+ inputs: [],
699
+ name: "nativeToken",
700
+ outputs: [
701
+ {
702
+ internalType: "contract IGoodDollar",
703
+ name: "",
704
+ type: "address",
705
+ },
706
+ ],
707
+ stateMutability: "view",
708
+ type: "function",
709
+ },
710
+ {
711
+ inputs: [
712
+ {
713
+ internalType: "uint256",
714
+ name: "_amount",
715
+ type: "uint256",
716
+ },
717
+ ],
718
+ name: "onDistribution",
719
+ outputs: [],
720
+ stateMutability: "nonpayable",
721
+ type: "function",
722
+ },
723
+ {
724
+ inputs: [],
725
+ name: "proxiableUUID",
726
+ outputs: [
727
+ {
728
+ internalType: "bytes32",
729
+ name: "",
730
+ type: "bytes32",
731
+ },
732
+ ],
733
+ stateMutability: "view",
734
+ type: "function",
735
+ },
736
+ {
737
+ inputs: [
738
+ {
739
+ internalType: "bytes32",
740
+ name: "role",
741
+ type: "bytes32",
742
+ },
743
+ {
744
+ internalType: "address",
745
+ name: "account",
746
+ type: "address",
747
+ },
748
+ ],
749
+ name: "renounceRole",
750
+ outputs: [],
751
+ stateMutability: "nonpayable",
752
+ type: "function",
753
+ },
754
+ {
755
+ inputs: [],
756
+ name: "reserveToken",
757
+ outputs: [
758
+ {
759
+ internalType: "address",
760
+ name: "",
761
+ type: "address",
762
+ },
763
+ ],
764
+ stateMutability: "view",
765
+ type: "function",
766
+ },
767
+ {
768
+ inputs: [
769
+ {
770
+ internalType: "bytes32",
771
+ name: "role",
772
+ type: "bytes32",
773
+ },
774
+ {
775
+ internalType: "address",
776
+ name: "account",
777
+ type: "address",
778
+ },
779
+ ],
780
+ name: "revokeRole",
781
+ outputs: [],
782
+ stateMutability: "nonpayable",
783
+ type: "function",
784
+ },
785
+ {
786
+ inputs: [
787
+ {
788
+ components: [
789
+ {
790
+ internalType: "uint128",
791
+ name: "maxFee",
792
+ type: "uint128",
793
+ },
794
+ {
795
+ internalType: "uint128",
796
+ name: "minBalanceForFees",
797
+ type: "uint128",
798
+ },
799
+ {
800
+ internalType: "uint8",
801
+ name: "percentageToSellForFee",
802
+ type: "uint8",
803
+ },
804
+ {
805
+ internalType: "uint8",
806
+ name: "maxSlippage",
807
+ type: "uint8",
808
+ },
809
+ ],
810
+ internalType: "struct GenericDistributionHelper.FeeSettings",
811
+ name: "_feeData",
812
+ type: "tuple",
813
+ },
814
+ ],
815
+ name: "setFeeSettings",
816
+ outputs: [],
817
+ stateMutability: "nonpayable",
818
+ type: "function",
819
+ },
820
+ {
821
+ inputs: [
822
+ {
823
+ internalType: "bytes4",
824
+ name: "interfaceId",
825
+ type: "bytes4",
826
+ },
827
+ ],
828
+ name: "supportsInterface",
829
+ outputs: [
830
+ {
831
+ internalType: "bool",
832
+ name: "",
833
+ type: "bool",
834
+ },
835
+ ],
836
+ stateMutability: "view",
837
+ type: "function",
838
+ },
839
+ {
840
+ inputs: [],
841
+ name: "updateAvatar",
842
+ outputs: [],
843
+ stateMutability: "nonpayable",
844
+ type: "function",
845
+ },
846
+ {
847
+ inputs: [
848
+ {
849
+ internalType: "address",
850
+ name: "newImplementation",
851
+ type: "address",
852
+ },
853
+ ],
854
+ name: "upgradeTo",
855
+ outputs: [],
856
+ stateMutability: "nonpayable",
857
+ type: "function",
858
+ },
859
+ {
860
+ inputs: [
861
+ {
862
+ internalType: "address",
863
+ name: "newImplementation",
864
+ type: "address",
865
+ },
866
+ {
867
+ internalType: "bytes",
868
+ name: "data",
869
+ type: "bytes",
870
+ },
871
+ ],
872
+ name: "upgradeToAndCall",
873
+ outputs: [],
874
+ stateMutability: "payable",
875
+ type: "function",
876
+ },
877
+ {
878
+ stateMutability: "payable",
879
+ type: "receive",
880
+ },
881
+ ] as const;
882
+
883
+ const _bytecode =
884
+ "0x60a06040523060805234801561001457600080fd5b5060805161340061004c60003960008181610bb601528181610bf601528181610f9401528181610fd4015261104c01526134006000f3fe6080604052600436106101615760003560e01c806301ffc9a71461016d57806312adcebf146101a25780631459457a146101d05780631b3c90a8146101f25780631c6603ba14610207578063248a9ca31461027957806324ea54f4146102a75780632f2ff15d146102c957806332fe7b26146102e9578063346ef41b1461030a57806336568abe1461033a5780633659cfe61461035a5780633d34a2671461037a5780633e6326fc146103af5780634162169f146103cf5780634f1ef286146103ef57806352d1902d146104025780635aef7de61461041757806386d97a1a146104375780639010d07c1461045757806391d14854146104775780639d4c9c4014610497578063a217fddf146104b8578063a8ba3890146104cd578063b875d49c146104ed578063c91d59fe1461050d578063ca15c8731461052e578063d547741f1461054e578063e1758bd81461056e578063f4325d671461058357600080fd5b3661016857005b600080fd5b34801561017957600080fd5b5061018d610188366004612810565b6105a4565b60405190151581526020015b60405180910390f35b3480156101ae57600080fd5b50610166546101c3906001600160a01b031681565b604051610199919061283a565b3480156101dc57600080fd5b506101f06101eb366004612863565b6105cf565b005b3480156101fe57600080fd5b506101f0610983565b34801561021357600080fd5b506101645461016554610245916001600160801b0380821692600160801b909204169060ff8082169161010090041684565b604080516001600160801b03958616815294909316602085015260ff91821692840192909252166060820152608001610199565b34801561028557600080fd5b506102996102943660046128d4565b610aaa565b604051908152602001610199565b3480156102b357600080fd5b506102996000805160206133ab83398151915281565b3480156102d557600080fd5b506101f06102e43660046128ed565b610abf565b3480156102f557600080fd5b50610167546101c3906001600160a01b031681565b34801561031657600080fd5b5061032a6103253660046128d4565b610ae0565b6040516101999493929190612955565b34801561034657600080fd5b506101f06103553660046128ed565b610b2e565b34801561036657600080fd5b506101f0610375366004612986565b610bac565b34801561038657600080fd5b5061039a6103953660046128d4565b610c74565b60408051928352602083019190915201610199565b3480156103bb57600080fd5b506067546101c3906001600160a01b031681565b3480156103db57600080fd5b506065546101c3906001600160a01b031681565b6101f06103fd366004612a0a565b610f8a565b34801561040e57600080fd5b5061029961103f565b34801561042357600080fd5b506066546101c3906001600160a01b031681565b34801561044357600080fd5b506101f0610452366004612ace565b6110ee565b34801561046357600080fd5b506101c3610472366004612b39565b6113af565b34801561048357600080fd5b5061018d6104923660046128ed565b6113cf565b3480156104a357600080fd5b50610163546101c3906001600160a01b031681565b3480156104c457600080fd5b50610299600081565b3480156104d957600080fd5b506101f06104e83660046128d4565b6113fa565b3480156104f957600080fd5b506101f0610508366004612b83565b6116b4565b34801561051957600080fd5b50610168546101c3906001600160a01b031681565b34801561053a57600080fd5b506102996105493660046128d4565b61171a565b34801561055a57600080fd5b506101f06105693660046128ed565b611732565b34801561057a57600080fd5b506101c361174e565b34801561058f57600080fd5b50610169546101c3906001600160a01b031681565b60006001600160e01b03198216635a05180f60e01b14806105c957506105c9826117db565b92915050565b600054610100900460ff16158080156105ef5750600054600160ff909116105b8061061057506105fe30611810565b158015610610575060005460ff166001145b6106785760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561069b576000805461ff0019166101001790555b6106a361181f565b6106ac8661188c565b6066546106c4906000906001600160a01b03166118af565b6066546106e9906000805160206133ab833981519152906001600160a01b03166118af565b60675460405163bf40fac160e01b81526020600482015260126024820152711354109094925111d157d0d3d395149050d560721b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190612bda565b61016380546001600160a01b03199081166001600160a01b039384161790915561016680548216888416179055610167805482168584161790556101688054821687841617905561016980549091169185169190911790556040805160018082528183019092526000916020808301908036833701905050905060648160008151811061080757610807612bf7565b62ffffff9092166020928302919091019091015261016654610168546001600160a01b039182169163e85dd383911661083e61174e565b84603c6040518563ffffffff1660e01b81526004016108609493929190612c4d565b6000604051808303816000875af115801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612d19565b5061016654610169546101685460405163e85dd38360e01b81526001600160a01b039384169363e85dd383936108eb93908216929116908690603c90600401612c4d565b6000604051808303816000875af115801561090a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109329190810190612d19565b5050801561097b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156109e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a9190612bda565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a889190612bda565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b610ac882610aaa565b610ad1816118b9565b610adb83836118c3565b505050565b6101628181548110610af157600080fd5b60009182526020909120015463ffffffff8082169250600160201b82041690600160401b81046001600160a01b031690600160e01b900460ff1684565b6001600160a01b0381163314610b9e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161066f565b610ba882826118e6565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bf45760405162461bcd60e51b815260040161066f90612d55565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c26611909565b6001600160a01b031614610c4c5760405162461bcd60e51b815260040161066f90612d8f565b610c5581611925565b60408051600080825260208201909252610c719183919061192d565b50565b6040805160018082528183019092526000918291829160208083019080368337019050509050606481600081518110610caf57610caf612bf7565b62ffffff90921660209283029190910190910152610164546000904790610ce8906001600160801b03600160801b909104166003612ddf565b6001600160801b0316610cfb9190612e02565b610166546101685461016954604051636c022f6560e11b81529394506000936001600160a01b039384169363d8045eca93610d459388939183169216908990603c90600401612e15565b600060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8a9190810190612e68565b5061016654610169549192506001600160a01b039081169163d8045eca91849116610db361174e565b87603c6040518663ffffffff1660e01b8152600401610dd6959493929190612e15565b600060405180830381865afa158015610df3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e1b9190810190612e68565b508095505081935085851115610f8257859450606483600081518110610e4357610e43612bf7565b62ffffff90921660209283029190910190910152610166546000906001600160a01b031663d8045eca87610e7561174e565b610169546040516001600160e01b031960e086901b168152610eaa9392916001600160a01b0316908a90603c90600401612e15565b600060405180830381865afa158015610ec7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eef9190810190612e68565b50610166546101695461016854604051636c022f6560e11b81529394506001600160a01b039283169363d8045eca93610f38938793908216929116908a90603c90600401612e15565b600060405180830381865afa158015610f55573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f7d9190810190612e68565b509450505b505050915091565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610fd25760405162461bcd60e51b815260040161066f90612d55565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611004611909565b6001600160a01b03161461102a5760405162461bcd60e51b815260040161066f90612d8f565b61103382611925565b610ba88282600161192d565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110da5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161066f565b506000805160206133648339815191525b90565b60006110f9816118b9565b6000826060015160028111156111115761111161291d565b14158015611129575046826020015163ffffffff1614155b156111475760405163029b6e5760e41b815260040160405180910390fd5b60005b610162548110156112a05782604001516001600160a01b0316610162828154811061117757611177612bf7565b600091825260209091200154600160401b90046001600160a01b03160361128e578261016282815481106111ad576111ad612bf7565b60009182526020918290208351910180549284015160408501516001600160a01b0316600160401b02600160401b600160e01b031963ffffffff928316600160201b026001600160401b031990961692909416919091179390931791821683178155606084015190929091839160ff60e01b1916600160401b600160e81b031990911617600160e01b8360028111156112485761124861291d565b02179055509050507fd26d9de175cfca2c3e0cad9d09c85f0ce6c7fa5257382d00dc26dc5fb25cd8df8382604051611281929190612eaf565b60405180910390a1505050565b8061129881612f00565b91505061114a565b50610162546040517f2e65f65347b2e76218df0b7b6b594a3862c81e85706795e700237093c47a3957916112d691859190612eaf565b60405180910390a1610162805460018101825560009190915282517f29af0939a5988989bfee913a9ad10b9335cb63ebc9fd2b69e5f877d0455ac9199091018054602085015160408601516001600160a01b0316600160401b02600160401b600160e01b031963ffffffff928316600160201b026001600160401b031990941692909516919091179190911792831681178255606085015185939091839160ff60e01b19909116600160401b600160e81b031990911617600160e01b8360028111156113a4576113a461291d565b021790555050505050565b6000828152610130602052604081206113c89083611a98565b9392505050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061140461174e565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161142f919061283a565b602060405180830381865afa15801561144c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114709190612f19565b90508060000361147e575050565b6101645460009081908190600160801b90046001600160801b03164710156115e257610165546064906114b49060ff1686612f32565b6114be9190612f49565b91506114c982610c74565b90925090506114d88285612e02565b93506114e48282611aa4565b61016854604051632e1a7d4d60e01b8152600481018390529194506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561152c57600080fd5b505af192505050801561153d575060015b6115e257611549612f6b565b806308c379a003611593575061155d612f86565b806115685750611595565b60008051602061332483398151915281604051611585919061305f565b60405180910390a1506115e2565b505b6000805160206133248339815191526040516115d99060208082526014908201527315d15512081dda5d1a191c985dc819985a5b195960621b604082015260600190565b60405180910390a15b6000805b61016254811015611678576000610162828154811061160757611607612bf7565b6000918252602090912001805490915063ffffffff16156116655780546000906127109061163b9063ffffffff168a612f32565b6116459190612f49565b90506116518185613072565b93508015611663576116638282611cc6565b505b508061167081612f00565b9150506115e6565b507fdbd53b67dd15f9594eee6de294654de25af4c2a14d79d76e47d08d83c8025f5d818688610162878960405161097296959493929190613085565b6000805160206133ab8339815191526116cc816118b9565b50805160208201516001600160801b03908116600160801b02911617610164556040810151610165805460609093015160ff9081166101000261ffff19909416921691909117919091179055565b6000818152610130602052604081206105c990612085565b61173b82610aaa565b611744816118b9565b610adb83836118e6565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156117b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d69190612bda565b905090565b60006001600160e01b03198216637965db0b60e01b14806105c957506301ffc9a760e01b6001600160e01b03198316146105c9565b6001600160a01b03163b151590565b600054610100900460ff1661188a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161066f565b565b606780546001600160a01b0319166001600160a01b038316179055610c71610983565b610ba882826118c3565b610c71813361208f565b6118cd82826120e8565b600082815261013060205260409020610adb908261216e565b6118f08282612183565b600082815261013060205260409020610adb90826121ea565b600080516020613364833981519152546001600160a01b031690565b610c716121ff565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561196057610adb836122c2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119ba575060408051601f3d908101601f191682019092526119b791810190612f19565b60015b611a1d5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161066f565b6000805160206133648339815191528114611a8c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161066f565b50610adb83838361235c565b60006113c88383612387565b6000611aae61174e565b6101675460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611ae2929116908790600401613130565b6020604051808303816000875af1158015611b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b259190613149565b5061016554600090606490611b4290610100900460ff168261316b565b611b4f9060ff1685612f32565b611b599190612f49565b905060006040518060800160405280611b7061174e565b61016954610168546040516001600160601b0319606094851b81166020830152601960ea1b6034830181905293851b81166037830152604b820193909352921b16604e82015260620160408051601f19818403018152918152908252306020830152818101889052606090910184905261016754905163b858183f60e01b81529192506001600160a01b03169063b858183f90611c11908490600401613184565b6020604051808303816000875af1925050508015611c4c575060408051601f3d908101601f19168201909252611c4991810190612f19565b60015b611cb457611c58612f6b565b806308c379a003611ca85750611c6c612f86565b80611c775750611caa565b60008051602061332483398151915281604051611c94919061305f565b60405180910390a1600093505050506105c9565b505b3d6000803e3d6000fd5b92506105c9915050565b505092915050565b60008254600160e01b900460ff166002811115611ce557611ce561291d565b03611f6757611cf261174e565b6101635460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392611d26929116908590600401613130565b6020604051808303816000875af1158015611d45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d699190613149565b506101635482546040516305b23a9960e41b8152600160201b90910463ffffffff1660048201526000916001600160a01b0316906305fead15908290635b23a99090602401602060405180830381865afa158015611dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611def91906131d2565b8554604051600160f01b602082015262061a8060228201523091600160401b90046001600160a01b03169087906000906042016040516020818303038152906040526040518763ffffffff1660e01b8152600401611e52969594939291906131f6565b6040805180830381865afa158015611e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e929190613247565b50610164549091506001600160801b0316811180611eaf57504781115b15611ed057604051634493514b60e11b81526004810182905260240161066f565b61016354835460405163c56bbdd960e01b8152600160401b82046001600160a01b039081166004830152600160201b90920463ffffffff16602482015260448101859052608060648201526000608482015291169063c56bbdd990839060a4016000604051808303818588803b158015611f4957600080fd5b505af1158015611f5d573d6000803e3d6000fd5b5050505050505050565b60028254600160e01b900460ff166002811115611f8657611f8661291d565b0361201e57611f9361174e565b8254604051630200057560e51b81526001600160a01b03600160401b90920482166004820152602481018490526060604482015260006064820152911690634000aea0906084015b6020604051808303816000875af1158015611ffa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adb9190613149565b60018254600160e01b900460ff16600281111561203d5761203d61291d565b03610ba85761204a61174e565b825460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92611fdb92600160401b909104909116908590600401613130565b60006105c9825490565b61209982826113cf565b610ba8576120a6816123b1565b6120b18360206123c3565b6040516020016120c292919061326b565b60408051601f198184030181529082905262461bcd60e51b825261066f9160040161305f565b6120f282826113cf565b610ba857600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561212a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006113c8836001600160a01b03841661255e565b61218d82826113cf565b15610ba857600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006113c8836001600160a01b0384166125ad565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015612248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226c9190612bda565b6001600160a01b03161461188a5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f64604482015260640161066f565b6122cb81611810565b61232d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161066f565b60008051602061336483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612365836126a0565b6000825111806123725750805b15610adb5761238183836126e0565b50505050565b600082600001828154811061239e5761239e612bf7565b9060005260206000200154905092915050565b60606105c96001600160a01b03831660145b606060006123d2836002612f32565b6123dd906002613072565b6001600160401b038111156123f4576123f46129a3565b6040519080825280601f01601f19166020018201604052801561241e576020820181803683370190505b509050600360fc1b8160008151811061243957612439612bf7565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061246857612468612bf7565b60200101906001600160f81b031916908160001a905350600061248c846002612f32565b612497906001613072565b90505b600181111561250f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106124cb576124cb612bf7565b1a60f81b8282815181106124e1576124e1612bf7565b60200101906001600160f81b031916908160001a90535060049490941c93612508816132da565b905061249a565b5083156113c85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161066f565b60008181526001830160205260408120546125a5575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105c9565b5060006105c9565b600081815260018301602052604081205480156126965760006125d1600183612e02565b85549091506000906125e590600190612e02565b905081811461264a57600086600001828154811061260557612605612bf7565b906000526020600020015490508087600001848154811061262857612628612bf7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061265b5761265b6132f1565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105c9565b60009150506105c9565b6126a9816122c2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606126eb83611810565b6127465760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161066f565b600080846001600160a01b0316846040516127619190613307565b600060405180830381855af49150503d806000811461279c576040519150601f19603f3d011682016040523d82523d6000602084013e6127a1565b606091505b50915091506127c98282604051806060016040528060278152602001613384602791396127d2565b95945050505050565b606083156127e15750816113c8565b6113c883838151156127f65781518083602001fd5b8060405162461bcd60e51b815260040161066f919061305f565b60006020828403121561282257600080fd5b81356001600160e01b0319811681146113c857600080fd5b6001600160a01b0391909116815260200190565b6001600160a01b0381168114610c7157600080fd5b600080600080600060a0868803121561287b57600080fd5b85356128868161284e565b945060208601356128968161284e565b935060408601356128a68161284e565b925060608601356128b68161284e565b915060808601356128c68161284e565b809150509295509295909350565b6000602082840312156128e657600080fd5b5035919050565b6000806040838503121561290057600080fd5b8235915060208301356129128161284e565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b6003811061295157634e487b7160e01b600052602160045260246000fd5b9052565b63ffffffff8581168252841660208201526001600160a01b0383166040820152608081016127c96060830184612933565b60006020828403121561299857600080fd5b81356113c88161284e565b634e487b7160e01b600052604160045260246000fd5b608081016001600160401b03811182821017156129d8576129d86129a3565b60405250565b601f8201601f191681016001600160401b0381118282101715612a0357612a036129a3565b6040525050565b60008060408385031215612a1d57600080fd5b8235612a288161284e565b91506020838101356001600160401b0380821115612a4557600080fd5b818601915086601f830112612a5957600080fd5b813581811115612a6b57612a6b6129a3565b6040519150612a83601f8201601f19168501836129de565b8082528784828501011115612a9757600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114612ac957600080fd5b919050565b600060808284031215612ae057600080fd5b604051612aec816129b9565b612af583612ab5565b8152612b0360208401612ab5565b60208201526040830135612b168161284e565b6040820152606083013560038110612b2d57600080fd5b60608201529392505050565b60008060408385031215612b4c57600080fd5b50508035926020909101359150565b80356001600160801b0381168114612ac957600080fd5b803560ff81168114612ac957600080fd5b600060808284031215612b9557600080fd5b604051612ba1816129b9565b612baa83612b5b565b8152612bb860208401612b5b565b6020820152612bc960408401612b72565b6040820152612b2d60608401612b72565b600060208284031215612bec57600080fd5b81516113c88161284e565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015612c4257815162ffffff1687529582019590820190600101612c21565b509495945050505050565b6001600160a01b03858116825284166020820152608060408201819052600090612c7990830185612c0d565b905063ffffffff8316606083015295945050505050565b600082601f830112612ca157600080fd5b815160206001600160401b03821115612cbc57612cbc6129a3565b8160051b604051612ccf838301826129de565b92835284810182019282810187851115612ce857600080fd5b83870192505b84831015612d0e578251612d018161284e565b8152918301918301612cee565b509695505050505050565b600060208284031215612d2b57600080fd5b81516001600160401b03811115612d4157600080fd5b612d4d84828501612c90565b949350505050565b6020808252602c9082015260008051602061334483398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061334483398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6001600160801b03818116838216028082169190828114611cbe57611cbe612dc9565b818103818111156105c9576105c9612dc9565b6001600160801b03861681526001600160a01b0385811660208301528416604082015260a060608201819052600090612e5090830185612c0d565b905063ffffffff831660808301529695505050505050565b60008060408385031215612e7b57600080fd5b825160208401519092506001600160401b03811115612e9957600080fd5b612ea585828601612c90565b9150509250929050565b825163ffffffff9081168252602080850151909116908201526040808401516001600160a01b03169082015260608084015160a0830191612ef290840182612933565b508260808301529392505050565b600060018201612f1257612f12612dc9565b5060010190565b600060208284031215612f2b57600080fd5b5051919050565b80820281158282048414176105c9576105c9612dc9565b600082612f6657634e487b7160e01b600052601260045260246000fd5b500490565b600060033d11156110eb5760046000803e5060005160e01c90565b600060443d1015612f945790565b6040516003193d81016004833e81513d6001600160401b038083116024840183101715612fc357505050505090565b8285019150815181811115612fdb5750505050505090565b843d8701016020828501011115612ff55750505050505090565b613004602082860101876129de565b509095945050505050565b60005b8381101561302a578181015183820152602001613012565b50506000910152565b6000815180845261304b81602086016020860161300f565b601f01601f19169290920160200192915050565b6020815260006113c86020830184613033565b808201808211156105c9576105c9612dc9565b600060c082018883526020888185015260408881860152606060c08187015283895480865260e0955085880191508a6000528460002060005b8281101561310f57815463ffffffff808216865281891c168886015280871c6001600160a01b0316878601526130fb868601828b1c60ff16612933565b5060809390930192600191820191016130be565b50505060808701989098525050505060a09091019190915250949350505050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561315b57600080fd5b815180151581146113c857600080fd5b60ff82811682821603908111156105c9576105c9612dc9565b6020815260008251608060208401526131a060a0840182613033565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b6000602082840312156131e457600080fd5b815161ffff811681146113c857600080fd5b61ffff871681526001600160a01b0386811660208301528516604082015260608101849052821515608082015260c060a0820181905260009061323b90830184613033565b98975050505050505050565b6000806040838503121561325a57600080fd5b505080516020909101519092909150565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161329d81601785016020880161300f565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516132ce81602884016020880161300f565b01602801949350505050565b6000816132e9576132e9612dc9565b506000190190565b634e487b7160e01b600052603160045260246000fd5b6000825161331981846020870161300f565b919091019291505056fe030e3b8d0055568581a1db48e2c7222c3cb121c9d1c17d9d511a517d0b679cd946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220c92a1bfcd0c82a80526a0d85a8307575114796cb73ba72d5f2c457590cf610cc64736f6c63430008130033";
885
+
886
+ type GenericDistributionHelperConstructorParams =
887
+ | [signer?: Signer]
888
+ | ConstructorParameters<typeof ContractFactory>;
889
+
890
+ const isSuperArgs = (
891
+ xs: GenericDistributionHelperConstructorParams
892
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
893
+
894
+ export class GenericDistributionHelper__factory extends ContractFactory {
895
+ constructor(...args: GenericDistributionHelperConstructorParams) {
896
+ if (isSuperArgs(args)) {
897
+ super(...args);
898
+ } else {
899
+ super(_abi, _bytecode, args[0]);
900
+ }
901
+ }
902
+
903
+ override deploy(
904
+ overrides?: Overrides & { from?: string }
905
+ ): Promise<GenericDistributionHelper> {
906
+ return super.deploy(overrides || {}) as Promise<GenericDistributionHelper>;
907
+ }
908
+ override getDeployTransaction(
909
+ overrides?: Overrides & { from?: string }
910
+ ): TransactionRequest {
911
+ return super.getDeployTransaction(overrides || {});
912
+ }
913
+ override attach(address: string): GenericDistributionHelper {
914
+ return super.attach(address) as GenericDistributionHelper;
915
+ }
916
+ override connect(signer: Signer): GenericDistributionHelper__factory {
917
+ return super.connect(signer) as GenericDistributionHelper__factory;
918
+ }
919
+
920
+ static readonly bytecode = _bytecode;
921
+ static readonly abi = _abi;
922
+ static createInterface(): GenericDistributionHelperInterface {
923
+ return new utils.Interface(_abi) as GenericDistributionHelperInterface;
924
+ }
925
+ static connect(
926
+ address: string,
927
+ signerOrProvider: Signer | Provider
928
+ ): GenericDistributionHelper {
929
+ return new Contract(
930
+ address,
931
+ _abi,
932
+ signerOrProvider
933
+ ) as GenericDistributionHelper;
934
+ }
935
+ }