aiia-vault-sdk 1.0.1

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 (39) hide show
  1. package/SeedRoundFundraiser.ts +742 -0
  2. package/TradingVault.ts +863 -0
  3. package/abis/SeedRoundFundraiser.json +1519 -0
  4. package/abis/TradingVault.json +1647 -0
  5. package/common.ts +131 -0
  6. package/contracts/SeedRoundFundraiser.ts +1670 -0
  7. package/contracts/TradingVault.ts +1752 -0
  8. package/contracts/common.ts +131 -0
  9. package/contracts/factories/SeedRoundFundraiser__factory.ts +1495 -0
  10. package/contracts/factories/index.ts +4 -0
  11. package/contracts/index.ts +6 -0
  12. package/contracts.json +28 -0
  13. package/dist/SeedRoundFundraiser.d.ts +130 -0
  14. package/dist/SeedRoundFundraiser.js +445 -0
  15. package/dist/TradingVault.d.ts +175 -0
  16. package/dist/TradingVault.js +521 -0
  17. package/dist/abis/SeedRoundFundraiser.json +1519 -0
  18. package/dist/abis/TradingVault.json +1647 -0
  19. package/dist/common.d.ts +50 -0
  20. package/dist/common.js +2 -0
  21. package/dist/contracts/SeedRoundFundraiser.d.ts +936 -0
  22. package/dist/contracts/SeedRoundFundraiser.js +2 -0
  23. package/dist/contracts/TradingVault.d.ts +930 -0
  24. package/dist/contracts/TradingVault.js +2 -0
  25. package/dist/contracts.json +28 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.js +19 -0
  28. package/dist/types.d.ts +291 -0
  29. package/dist/types.js +2 -0
  30. package/dist/utils.d.ts +95 -0
  31. package/dist/utils.js +370 -0
  32. package/dist/whitelist-tokens.json +14 -0
  33. package/index.ts +3 -0
  34. package/package.json +21 -0
  35. package/temp/aiia-vault-sdk-1.0.0.tgz +0 -0
  36. package/tsconfig.json +15 -0
  37. package/types.ts +301 -0
  38. package/utils.ts +576 -0
  39. package/whitelist-tokens.json +14 -0
@@ -0,0 +1,1495 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../common";
12
+ import type {
13
+ SeedRoundFundraiser,
14
+ SeedRoundFundraiserInterface,
15
+ } from "../SeedRoundFundraiser";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [],
20
+ stateMutability: "nonpayable",
21
+ type: "constructor",
22
+ },
23
+ {
24
+ inputs: [],
25
+ name: "AccessControlBadConfirmation",
26
+ type: "error",
27
+ },
28
+ {
29
+ inputs: [
30
+ {
31
+ internalType: "address",
32
+ name: "account",
33
+ type: "address",
34
+ },
35
+ {
36
+ internalType: "bytes32",
37
+ name: "neededRole",
38
+ type: "bytes32",
39
+ },
40
+ ],
41
+ name: "AccessControlUnauthorizedAccount",
42
+ type: "error",
43
+ },
44
+ {
45
+ inputs: [],
46
+ name: "AccountAlreadyParticipatedInAnotherRound",
47
+ type: "error",
48
+ },
49
+ {
50
+ inputs: [],
51
+ name: "AlreadyClaimed",
52
+ type: "error",
53
+ },
54
+ {
55
+ inputs: [],
56
+ name: "AlreadyRefunded",
57
+ type: "error",
58
+ },
59
+ {
60
+ inputs: [],
61
+ name: "ClaimingNotEnabled",
62
+ type: "error",
63
+ },
64
+ {
65
+ inputs: [],
66
+ name: "ExceedsMaxFundPerAccount",
67
+ type: "error",
68
+ },
69
+ {
70
+ inputs: [],
71
+ name: "ExceedsRoundTargetFund",
72
+ type: "error",
73
+ },
74
+ {
75
+ inputs: [],
76
+ name: "InsufficientBalance",
77
+ type: "error",
78
+ },
79
+ {
80
+ inputs: [],
81
+ name: "InvalidAllocation",
82
+ type: "error",
83
+ },
84
+ {
85
+ inputs: [],
86
+ name: "InvalidEndTime",
87
+ type: "error",
88
+ },
89
+ {
90
+ inputs: [],
91
+ name: "InvalidInitialization",
92
+ type: "error",
93
+ },
94
+ {
95
+ inputs: [],
96
+ name: "InvalidMaxFundPerAccount",
97
+ type: "error",
98
+ },
99
+ {
100
+ inputs: [],
101
+ name: "InvalidRoundConfig",
102
+ type: "error",
103
+ },
104
+ {
105
+ inputs: [],
106
+ name: "InvalidRoundId",
107
+ type: "error",
108
+ },
109
+ {
110
+ inputs: [],
111
+ name: "InvalidStartTime",
112
+ type: "error",
113
+ },
114
+ {
115
+ inputs: [],
116
+ name: "InvalidTargetFund",
117
+ type: "error",
118
+ },
119
+ {
120
+ inputs: [],
121
+ name: "InvalidTokenAddress",
122
+ type: "error",
123
+ },
124
+ {
125
+ inputs: [],
126
+ name: "InvalidTokenPrice",
127
+ type: "error",
128
+ },
129
+ {
130
+ inputs: [],
131
+ name: "InvalidUserAddress",
132
+ type: "error",
133
+ },
134
+ {
135
+ inputs: [],
136
+ name: "NoParticipation",
137
+ type: "error",
138
+ },
139
+ {
140
+ inputs: [],
141
+ name: "NotInitializing",
142
+ type: "error",
143
+ },
144
+ {
145
+ inputs: [
146
+ {
147
+ internalType: "address",
148
+ name: "owner",
149
+ type: "address",
150
+ },
151
+ ],
152
+ name: "OwnableInvalidOwner",
153
+ type: "error",
154
+ },
155
+ {
156
+ inputs: [
157
+ {
158
+ internalType: "address",
159
+ name: "account",
160
+ type: "address",
161
+ },
162
+ ],
163
+ name: "OwnableUnauthorizedAccount",
164
+ type: "error",
165
+ },
166
+ {
167
+ inputs: [],
168
+ name: "RefundNotAllowed",
169
+ type: "error",
170
+ },
171
+ {
172
+ inputs: [],
173
+ name: "RoundAlreadyEnded",
174
+ type: "error",
175
+ },
176
+ {
177
+ inputs: [],
178
+ name: "RoundAlreadyExists",
179
+ type: "error",
180
+ },
181
+ {
182
+ inputs: [],
183
+ name: "RoundDoesNotExist",
184
+ type: "error",
185
+ },
186
+ {
187
+ inputs: [],
188
+ name: "RoundNotActive",
189
+ type: "error",
190
+ },
191
+ {
192
+ inputs: [],
193
+ name: "TokenNotWhitelisted",
194
+ type: "error",
195
+ },
196
+ {
197
+ inputs: [],
198
+ name: "TransferFailed",
199
+ type: "error",
200
+ },
201
+ {
202
+ inputs: [],
203
+ name: "ZeroAmount",
204
+ type: "error",
205
+ },
206
+ {
207
+ anonymous: false,
208
+ inputs: [
209
+ {
210
+ indexed: true,
211
+ internalType: "uint256",
212
+ name: "roundId",
213
+ type: "uint256",
214
+ },
215
+ {
216
+ indexed: false,
217
+ internalType: "bool",
218
+ name: "enabled",
219
+ type: "bool",
220
+ },
221
+ ],
222
+ name: "ClaimingEnabledUpdated",
223
+ type: "event",
224
+ },
225
+ {
226
+ anonymous: false,
227
+ inputs: [
228
+ {
229
+ indexed: true,
230
+ internalType: "uint256",
231
+ name: "roundId",
232
+ type: "uint256",
233
+ },
234
+ {
235
+ indexed: true,
236
+ internalType: "address",
237
+ name: "contributor",
238
+ type: "address",
239
+ },
240
+ {
241
+ indexed: true,
242
+ internalType: "address",
243
+ name: "token",
244
+ type: "address",
245
+ },
246
+ {
247
+ indexed: false,
248
+ internalType: "uint256",
249
+ name: "amount",
250
+ type: "uint256",
251
+ },
252
+ {
253
+ indexed: false,
254
+ internalType: "uint256",
255
+ name: "fundAmount",
256
+ type: "uint256",
257
+ },
258
+ {
259
+ indexed: false,
260
+ internalType: "uint256",
261
+ name: "tokenAllocation",
262
+ type: "uint256",
263
+ },
264
+ ],
265
+ name: "Contribution",
266
+ type: "event",
267
+ },
268
+ {
269
+ anonymous: false,
270
+ inputs: [
271
+ {
272
+ indexed: false,
273
+ internalType: "uint64",
274
+ name: "version",
275
+ type: "uint64",
276
+ },
277
+ ],
278
+ name: "Initialized",
279
+ type: "event",
280
+ },
281
+ {
282
+ anonymous: false,
283
+ inputs: [
284
+ {
285
+ indexed: true,
286
+ internalType: "address",
287
+ name: "previousOwner",
288
+ type: "address",
289
+ },
290
+ {
291
+ indexed: true,
292
+ internalType: "address",
293
+ name: "newOwner",
294
+ type: "address",
295
+ },
296
+ ],
297
+ name: "OwnershipTransferred",
298
+ type: "event",
299
+ },
300
+ {
301
+ anonymous: false,
302
+ inputs: [
303
+ {
304
+ indexed: true,
305
+ internalType: "address",
306
+ name: "oldToken",
307
+ type: "address",
308
+ },
309
+ {
310
+ indexed: true,
311
+ internalType: "address",
312
+ name: "newToken",
313
+ type: "address",
314
+ },
315
+ ],
316
+ name: "ProjectTokenUpdated",
317
+ type: "event",
318
+ },
319
+ {
320
+ anonymous: false,
321
+ inputs: [
322
+ {
323
+ indexed: true,
324
+ internalType: "uint256",
325
+ name: "roundId",
326
+ type: "uint256",
327
+ },
328
+ {
329
+ indexed: false,
330
+ internalType: "bool",
331
+ name: "enabled",
332
+ type: "bool",
333
+ },
334
+ ],
335
+ name: "RefundEnabledUpdated",
336
+ type: "event",
337
+ },
338
+ {
339
+ anonymous: false,
340
+ inputs: [
341
+ {
342
+ indexed: true,
343
+ internalType: "uint256",
344
+ name: "roundId",
345
+ type: "uint256",
346
+ },
347
+ {
348
+ indexed: true,
349
+ internalType: "address",
350
+ name: "user",
351
+ type: "address",
352
+ },
353
+ {
354
+ indexed: true,
355
+ internalType: "address",
356
+ name: "token",
357
+ type: "address",
358
+ },
359
+ {
360
+ indexed: false,
361
+ internalType: "uint256",
362
+ name: "amount",
363
+ type: "uint256",
364
+ },
365
+ ],
366
+ name: "Refunded",
367
+ type: "event",
368
+ },
369
+ {
370
+ anonymous: false,
371
+ inputs: [
372
+ {
373
+ indexed: true,
374
+ internalType: "bytes32",
375
+ name: "role",
376
+ type: "bytes32",
377
+ },
378
+ {
379
+ indexed: true,
380
+ internalType: "bytes32",
381
+ name: "previousAdminRole",
382
+ type: "bytes32",
383
+ },
384
+ {
385
+ indexed: true,
386
+ internalType: "bytes32",
387
+ name: "newAdminRole",
388
+ type: "bytes32",
389
+ },
390
+ ],
391
+ name: "RoleAdminChanged",
392
+ type: "event",
393
+ },
394
+ {
395
+ anonymous: false,
396
+ inputs: [
397
+ {
398
+ indexed: true,
399
+ internalType: "bytes32",
400
+ name: "role",
401
+ type: "bytes32",
402
+ },
403
+ {
404
+ indexed: true,
405
+ internalType: "address",
406
+ name: "account",
407
+ type: "address",
408
+ },
409
+ {
410
+ indexed: true,
411
+ internalType: "address",
412
+ name: "sender",
413
+ type: "address",
414
+ },
415
+ ],
416
+ name: "RoleGranted",
417
+ type: "event",
418
+ },
419
+ {
420
+ anonymous: false,
421
+ inputs: [
422
+ {
423
+ indexed: true,
424
+ internalType: "bytes32",
425
+ name: "role",
426
+ type: "bytes32",
427
+ },
428
+ {
429
+ indexed: true,
430
+ internalType: "address",
431
+ name: "account",
432
+ type: "address",
433
+ },
434
+ {
435
+ indexed: true,
436
+ internalType: "address",
437
+ name: "sender",
438
+ type: "address",
439
+ },
440
+ ],
441
+ name: "RoleRevoked",
442
+ type: "event",
443
+ },
444
+ {
445
+ anonymous: false,
446
+ inputs: [
447
+ {
448
+ indexed: true,
449
+ internalType: "uint256",
450
+ name: "roundId",
451
+ type: "uint256",
452
+ },
453
+ {
454
+ indexed: false,
455
+ internalType: "uint256",
456
+ name: "startTime",
457
+ type: "uint256",
458
+ },
459
+ {
460
+ indexed: false,
461
+ internalType: "uint256",
462
+ name: "endTime",
463
+ type: "uint256",
464
+ },
465
+ {
466
+ indexed: false,
467
+ internalType: "uint256",
468
+ name: "targetFund",
469
+ type: "uint256",
470
+ },
471
+ {
472
+ indexed: false,
473
+ internalType: "uint256",
474
+ name: "totalAllocation",
475
+ type: "uint256",
476
+ },
477
+ {
478
+ indexed: false,
479
+ internalType: "uint256",
480
+ name: "maxFundPerAccount",
481
+ type: "uint256",
482
+ },
483
+ ],
484
+ name: "RoundCreated",
485
+ type: "event",
486
+ },
487
+ {
488
+ anonymous: false,
489
+ inputs: [
490
+ {
491
+ indexed: true,
492
+ internalType: "uint256",
493
+ name: "roundId",
494
+ type: "uint256",
495
+ },
496
+ {
497
+ indexed: false,
498
+ internalType: "uint256",
499
+ name: "raisedFunds",
500
+ type: "uint256",
501
+ },
502
+ {
503
+ indexed: false,
504
+ internalType: "uint256",
505
+ name: "participants",
506
+ type: "uint256",
507
+ },
508
+ ],
509
+ name: "RoundEnded",
510
+ type: "event",
511
+ },
512
+ {
513
+ anonymous: false,
514
+ inputs: [
515
+ {
516
+ indexed: true,
517
+ internalType: "uint256",
518
+ name: "roundId",
519
+ type: "uint256",
520
+ },
521
+ {
522
+ indexed: false,
523
+ internalType: "uint256",
524
+ name: "startTime",
525
+ type: "uint256",
526
+ },
527
+ {
528
+ indexed: false,
529
+ internalType: "uint256",
530
+ name: "endTime",
531
+ type: "uint256",
532
+ },
533
+ {
534
+ indexed: false,
535
+ internalType: "uint256",
536
+ name: "targetFund",
537
+ type: "uint256",
538
+ },
539
+ {
540
+ indexed: false,
541
+ internalType: "uint256",
542
+ name: "totalAllocation",
543
+ type: "uint256",
544
+ },
545
+ {
546
+ indexed: false,
547
+ internalType: "uint256",
548
+ name: "maxFundPerAccount",
549
+ type: "uint256",
550
+ },
551
+ ],
552
+ name: "RoundUpdated",
553
+ type: "event",
554
+ },
555
+ {
556
+ anonymous: false,
557
+ inputs: [
558
+ {
559
+ indexed: true,
560
+ internalType: "address",
561
+ name: "token",
562
+ type: "address",
563
+ },
564
+ {
565
+ indexed: false,
566
+ internalType: "uint256",
567
+ name: "oldPrice",
568
+ type: "uint256",
569
+ },
570
+ {
571
+ indexed: false,
572
+ internalType: "uint256",
573
+ name: "newPrice",
574
+ type: "uint256",
575
+ },
576
+ ],
577
+ name: "TokenPriceUpdated",
578
+ type: "event",
579
+ },
580
+ {
581
+ anonymous: false,
582
+ inputs: [
583
+ {
584
+ indexed: true,
585
+ internalType: "address",
586
+ name: "token",
587
+ type: "address",
588
+ },
589
+ ],
590
+ name: "TokenRemovedFromWhitelist",
591
+ type: "event",
592
+ },
593
+ {
594
+ anonymous: false,
595
+ inputs: [
596
+ {
597
+ indexed: true,
598
+ internalType: "address",
599
+ name: "token",
600
+ type: "address",
601
+ },
602
+ {
603
+ indexed: false,
604
+ internalType: "uint256",
605
+ name: "price",
606
+ type: "uint256",
607
+ },
608
+ ],
609
+ name: "TokenWhitelisted",
610
+ type: "event",
611
+ },
612
+ {
613
+ anonymous: false,
614
+ inputs: [
615
+ {
616
+ indexed: true,
617
+ internalType: "uint256",
618
+ name: "roundId",
619
+ type: "uint256",
620
+ },
621
+ {
622
+ indexed: true,
623
+ internalType: "address",
624
+ name: "user",
625
+ type: "address",
626
+ },
627
+ {
628
+ indexed: false,
629
+ internalType: "uint256",
630
+ name: "amount",
631
+ type: "uint256",
632
+ },
633
+ ],
634
+ name: "TokensClaimed",
635
+ type: "event",
636
+ },
637
+ {
638
+ inputs: [],
639
+ name: "DEFAULT_ADMIN_ROLE",
640
+ outputs: [
641
+ {
642
+ internalType: "bytes32",
643
+ name: "",
644
+ type: "bytes32",
645
+ },
646
+ ],
647
+ stateMutability: "view",
648
+ type: "function",
649
+ },
650
+ {
651
+ inputs: [],
652
+ name: "OPERATOR_ROLE",
653
+ outputs: [
654
+ {
655
+ internalType: "bytes32",
656
+ name: "",
657
+ type: "bytes32",
658
+ },
659
+ ],
660
+ stateMutability: "view",
661
+ type: "function",
662
+ },
663
+ {
664
+ inputs: [],
665
+ name: "PRICE_PRECISION",
666
+ outputs: [
667
+ {
668
+ internalType: "uint256",
669
+ name: "",
670
+ type: "uint256",
671
+ },
672
+ ],
673
+ stateMutability: "view",
674
+ type: "function",
675
+ },
676
+ {
677
+ inputs: [
678
+ {
679
+ internalType: "address",
680
+ name: "_token",
681
+ type: "address",
682
+ },
683
+ {
684
+ internalType: "uint256",
685
+ name: "_price",
686
+ type: "uint256",
687
+ },
688
+ ],
689
+ name: "addWhitelistedToken",
690
+ outputs: [],
691
+ stateMutability: "nonpayable",
692
+ type: "function",
693
+ },
694
+ {
695
+ inputs: [],
696
+ name: "claimTokens",
697
+ outputs: [],
698
+ stateMutability: "nonpayable",
699
+ type: "function",
700
+ },
701
+ {
702
+ inputs: [
703
+ {
704
+ internalType: "uint256",
705
+ name: "_roundId",
706
+ type: "uint256",
707
+ },
708
+ {
709
+ internalType: "address",
710
+ name: "_token",
711
+ type: "address",
712
+ },
713
+ {
714
+ internalType: "uint256",
715
+ name: "_amount",
716
+ type: "uint256",
717
+ },
718
+ ],
719
+ name: "contribute",
720
+ outputs: [],
721
+ stateMutability: "nonpayable",
722
+ type: "function",
723
+ },
724
+ {
725
+ inputs: [
726
+ {
727
+ internalType: "uint256",
728
+ name: "_startTime",
729
+ type: "uint256",
730
+ },
731
+ {
732
+ internalType: "uint256",
733
+ name: "_endTime",
734
+ type: "uint256",
735
+ },
736
+ {
737
+ internalType: "uint256",
738
+ name: "_targetFund",
739
+ type: "uint256",
740
+ },
741
+ {
742
+ internalType: "uint256",
743
+ name: "_totalAllocation",
744
+ type: "uint256",
745
+ },
746
+ {
747
+ internalType: "uint256",
748
+ name: "_maxFundPerAccount",
749
+ type: "uint256",
750
+ },
751
+ ],
752
+ name: "createRound",
753
+ outputs: [],
754
+ stateMutability: "nonpayable",
755
+ type: "function",
756
+ },
757
+ {
758
+ inputs: [
759
+ {
760
+ internalType: "uint256",
761
+ name: "_roundId",
762
+ type: "uint256",
763
+ },
764
+ ],
765
+ name: "endRound",
766
+ outputs: [],
767
+ stateMutability: "nonpayable",
768
+ type: "function",
769
+ },
770
+ {
771
+ inputs: [
772
+ {
773
+ internalType: "bytes32",
774
+ name: "role",
775
+ type: "bytes32",
776
+ },
777
+ ],
778
+ name: "getRoleAdmin",
779
+ outputs: [
780
+ {
781
+ internalType: "bytes32",
782
+ name: "",
783
+ type: "bytes32",
784
+ },
785
+ ],
786
+ stateMutability: "view",
787
+ type: "function",
788
+ },
789
+ {
790
+ inputs: [],
791
+ name: "getRoundsCount",
792
+ outputs: [
793
+ {
794
+ internalType: "uint256",
795
+ name: "",
796
+ type: "uint256",
797
+ },
798
+ ],
799
+ stateMutability: "view",
800
+ type: "function",
801
+ },
802
+ {
803
+ inputs: [
804
+ {
805
+ internalType: "address",
806
+ name: "_user",
807
+ type: "address",
808
+ },
809
+ ],
810
+ name: "getUserParticipatedRound",
811
+ outputs: [
812
+ {
813
+ internalType: "uint256",
814
+ name: "roundId",
815
+ type: "uint256",
816
+ },
817
+ ],
818
+ stateMutability: "view",
819
+ type: "function",
820
+ },
821
+ {
822
+ inputs: [
823
+ {
824
+ internalType: "uint256",
825
+ name: "_roundId",
826
+ type: "uint256",
827
+ },
828
+ {
829
+ internalType: "address",
830
+ name: "_user",
831
+ type: "address",
832
+ },
833
+ ],
834
+ name: "getUserRoundContribution",
835
+ outputs: [
836
+ {
837
+ internalType: "uint256",
838
+ name: "fundAmount",
839
+ type: "uint256",
840
+ },
841
+ {
842
+ internalType: "uint256",
843
+ name: "tokenAllocation",
844
+ type: "uint256",
845
+ },
846
+ {
847
+ internalType: "bool",
848
+ name: "claimed",
849
+ type: "bool",
850
+ },
851
+ {
852
+ internalType: "bool",
853
+ name: "refunded",
854
+ type: "bool",
855
+ },
856
+ {
857
+ internalType: "address",
858
+ name: "contributedToken",
859
+ type: "address",
860
+ },
861
+ {
862
+ internalType: "uint256",
863
+ name: "contributedAmount",
864
+ type: "uint256",
865
+ },
866
+ ],
867
+ stateMutability: "view",
868
+ type: "function",
869
+ },
870
+ {
871
+ inputs: [
872
+ {
873
+ internalType: "address",
874
+ name: "_user",
875
+ type: "address",
876
+ },
877
+ ],
878
+ name: "getUserTotalContribution",
879
+ outputs: [
880
+ {
881
+ internalType: "uint256",
882
+ name: "totalFundAmount",
883
+ type: "uint256",
884
+ },
885
+ {
886
+ internalType: "uint256",
887
+ name: "totalTokenAllocation",
888
+ type: "uint256",
889
+ },
890
+ ],
891
+ stateMutability: "view",
892
+ type: "function",
893
+ },
894
+ {
895
+ inputs: [
896
+ {
897
+ internalType: "address",
898
+ name: "operator",
899
+ type: "address",
900
+ },
901
+ ],
902
+ name: "grantOperatorRole",
903
+ outputs: [],
904
+ stateMutability: "nonpayable",
905
+ type: "function",
906
+ },
907
+ {
908
+ inputs: [
909
+ {
910
+ internalType: "bytes32",
911
+ name: "role",
912
+ type: "bytes32",
913
+ },
914
+ {
915
+ internalType: "address",
916
+ name: "account",
917
+ type: "address",
918
+ },
919
+ ],
920
+ name: "grantRole",
921
+ outputs: [],
922
+ stateMutability: "nonpayable",
923
+ type: "function",
924
+ },
925
+ {
926
+ inputs: [
927
+ {
928
+ internalType: "bytes32",
929
+ name: "role",
930
+ type: "bytes32",
931
+ },
932
+ {
933
+ internalType: "address",
934
+ name: "account",
935
+ type: "address",
936
+ },
937
+ ],
938
+ name: "hasRole",
939
+ outputs: [
940
+ {
941
+ internalType: "bool",
942
+ name: "",
943
+ type: "bool",
944
+ },
945
+ ],
946
+ stateMutability: "view",
947
+ type: "function",
948
+ },
949
+ {
950
+ inputs: [
951
+ {
952
+ internalType: "address",
953
+ name: "_projectToken",
954
+ type: "address",
955
+ },
956
+ ],
957
+ name: "initialize",
958
+ outputs: [],
959
+ stateMutability: "nonpayable",
960
+ type: "function",
961
+ },
962
+ {
963
+ inputs: [
964
+ {
965
+ internalType: "uint256",
966
+ name: "_roundId",
967
+ type: "uint256",
968
+ },
969
+ ],
970
+ name: "isRoundActive",
971
+ outputs: [
972
+ {
973
+ internalType: "bool",
974
+ name: "",
975
+ type: "bool",
976
+ },
977
+ ],
978
+ stateMutability: "view",
979
+ type: "function",
980
+ },
981
+ {
982
+ inputs: [],
983
+ name: "owner",
984
+ outputs: [
985
+ {
986
+ internalType: "address",
987
+ name: "",
988
+ type: "address",
989
+ },
990
+ ],
991
+ stateMutability: "view",
992
+ type: "function",
993
+ },
994
+ {
995
+ inputs: [],
996
+ name: "projectToken",
997
+ outputs: [
998
+ {
999
+ internalType: "address",
1000
+ name: "",
1001
+ type: "address",
1002
+ },
1003
+ ],
1004
+ stateMutability: "view",
1005
+ type: "function",
1006
+ },
1007
+ {
1008
+ inputs: [],
1009
+ name: "refund",
1010
+ outputs: [],
1011
+ stateMutability: "nonpayable",
1012
+ type: "function",
1013
+ },
1014
+ {
1015
+ inputs: [
1016
+ {
1017
+ internalType: "address",
1018
+ name: "_token",
1019
+ type: "address",
1020
+ },
1021
+ ],
1022
+ name: "removeWhitelistedToken",
1023
+ outputs: [],
1024
+ stateMutability: "nonpayable",
1025
+ type: "function",
1026
+ },
1027
+ {
1028
+ inputs: [],
1029
+ name: "renounceOwnership",
1030
+ outputs: [],
1031
+ stateMutability: "nonpayable",
1032
+ type: "function",
1033
+ },
1034
+ {
1035
+ inputs: [
1036
+ {
1037
+ internalType: "bytes32",
1038
+ name: "role",
1039
+ type: "bytes32",
1040
+ },
1041
+ {
1042
+ internalType: "address",
1043
+ name: "callerConfirmation",
1044
+ type: "address",
1045
+ },
1046
+ ],
1047
+ name: "renounceRole",
1048
+ outputs: [],
1049
+ stateMutability: "nonpayable",
1050
+ type: "function",
1051
+ },
1052
+ {
1053
+ inputs: [
1054
+ {
1055
+ internalType: "bytes32",
1056
+ name: "role",
1057
+ type: "bytes32",
1058
+ },
1059
+ {
1060
+ internalType: "address",
1061
+ name: "account",
1062
+ type: "address",
1063
+ },
1064
+ ],
1065
+ name: "revokeRole",
1066
+ outputs: [],
1067
+ stateMutability: "nonpayable",
1068
+ type: "function",
1069
+ },
1070
+ {
1071
+ inputs: [
1072
+ {
1073
+ internalType: "uint256",
1074
+ name: "",
1075
+ type: "uint256",
1076
+ },
1077
+ ],
1078
+ name: "roundParticipants",
1079
+ outputs: [
1080
+ {
1081
+ internalType: "uint256",
1082
+ name: "",
1083
+ type: "uint256",
1084
+ },
1085
+ ],
1086
+ stateMutability: "view",
1087
+ type: "function",
1088
+ },
1089
+ {
1090
+ inputs: [
1091
+ {
1092
+ internalType: "uint256",
1093
+ name: "",
1094
+ type: "uint256",
1095
+ },
1096
+ ],
1097
+ name: "roundRaisedFunds",
1098
+ outputs: [
1099
+ {
1100
+ internalType: "uint256",
1101
+ name: "",
1102
+ type: "uint256",
1103
+ },
1104
+ ],
1105
+ stateMutability: "view",
1106
+ type: "function",
1107
+ },
1108
+ {
1109
+ inputs: [
1110
+ {
1111
+ internalType: "uint256",
1112
+ name: "",
1113
+ type: "uint256",
1114
+ },
1115
+ ],
1116
+ name: "rounds",
1117
+ outputs: [
1118
+ {
1119
+ internalType: "uint256",
1120
+ name: "startTime",
1121
+ type: "uint256",
1122
+ },
1123
+ {
1124
+ internalType: "uint256",
1125
+ name: "endTime",
1126
+ type: "uint256",
1127
+ },
1128
+ {
1129
+ internalType: "uint256",
1130
+ name: "targetFund",
1131
+ type: "uint256",
1132
+ },
1133
+ {
1134
+ internalType: "uint256",
1135
+ name: "totalAllocation",
1136
+ type: "uint256",
1137
+ },
1138
+ {
1139
+ internalType: "uint256",
1140
+ name: "maxFundPerAccount",
1141
+ type: "uint256",
1142
+ },
1143
+ {
1144
+ internalType: "bool",
1145
+ name: "exists",
1146
+ type: "bool",
1147
+ },
1148
+ {
1149
+ internalType: "bool",
1150
+ name: "ended",
1151
+ type: "bool",
1152
+ },
1153
+ {
1154
+ internalType: "bool",
1155
+ name: "claimingEnabled",
1156
+ type: "bool",
1157
+ },
1158
+ {
1159
+ internalType: "bool",
1160
+ name: "refundEnabled",
1161
+ type: "bool",
1162
+ },
1163
+ ],
1164
+ stateMutability: "view",
1165
+ type: "function",
1166
+ },
1167
+ {
1168
+ inputs: [
1169
+ {
1170
+ internalType: "uint256",
1171
+ name: "_roundId",
1172
+ type: "uint256",
1173
+ },
1174
+ {
1175
+ internalType: "bool",
1176
+ name: "_enabled",
1177
+ type: "bool",
1178
+ },
1179
+ ],
1180
+ name: "setClaimingEnabled",
1181
+ outputs: [],
1182
+ stateMutability: "nonpayable",
1183
+ type: "function",
1184
+ },
1185
+ {
1186
+ inputs: [
1187
+ {
1188
+ internalType: "address",
1189
+ name: "_projectToken",
1190
+ type: "address",
1191
+ },
1192
+ ],
1193
+ name: "setProjectToken",
1194
+ outputs: [],
1195
+ stateMutability: "nonpayable",
1196
+ type: "function",
1197
+ },
1198
+ {
1199
+ inputs: [
1200
+ {
1201
+ internalType: "uint256",
1202
+ name: "_roundId",
1203
+ type: "uint256",
1204
+ },
1205
+ {
1206
+ internalType: "bool",
1207
+ name: "_enabled",
1208
+ type: "bool",
1209
+ },
1210
+ ],
1211
+ name: "setRefundEnabled",
1212
+ outputs: [],
1213
+ stateMutability: "nonpayable",
1214
+ type: "function",
1215
+ },
1216
+ {
1217
+ inputs: [
1218
+ {
1219
+ internalType: "bytes4",
1220
+ name: "interfaceId",
1221
+ type: "bytes4",
1222
+ },
1223
+ ],
1224
+ name: "supportsInterface",
1225
+ outputs: [
1226
+ {
1227
+ internalType: "bool",
1228
+ name: "",
1229
+ type: "bool",
1230
+ },
1231
+ ],
1232
+ stateMutability: "view",
1233
+ type: "function",
1234
+ },
1235
+ {
1236
+ inputs: [],
1237
+ name: "totalRaisedFunds",
1238
+ outputs: [
1239
+ {
1240
+ internalType: "uint256",
1241
+ name: "",
1242
+ type: "uint256",
1243
+ },
1244
+ ],
1245
+ stateMutability: "view",
1246
+ type: "function",
1247
+ },
1248
+ {
1249
+ inputs: [],
1250
+ name: "totalRounds",
1251
+ outputs: [
1252
+ {
1253
+ internalType: "uint256",
1254
+ name: "",
1255
+ type: "uint256",
1256
+ },
1257
+ ],
1258
+ stateMutability: "view",
1259
+ type: "function",
1260
+ },
1261
+ {
1262
+ inputs: [
1263
+ {
1264
+ internalType: "address",
1265
+ name: "newOwner",
1266
+ type: "address",
1267
+ },
1268
+ ],
1269
+ name: "transferOwnership",
1270
+ outputs: [],
1271
+ stateMutability: "nonpayable",
1272
+ type: "function",
1273
+ },
1274
+ {
1275
+ inputs: [
1276
+ {
1277
+ internalType: "uint256",
1278
+ name: "_roundId",
1279
+ type: "uint256",
1280
+ },
1281
+ {
1282
+ internalType: "uint256",
1283
+ name: "_startTime",
1284
+ type: "uint256",
1285
+ },
1286
+ {
1287
+ internalType: "uint256",
1288
+ name: "_endTime",
1289
+ type: "uint256",
1290
+ },
1291
+ {
1292
+ internalType: "uint256",
1293
+ name: "_targetFund",
1294
+ type: "uint256",
1295
+ },
1296
+ {
1297
+ internalType: "uint256",
1298
+ name: "_totalAllocation",
1299
+ type: "uint256",
1300
+ },
1301
+ {
1302
+ internalType: "uint256",
1303
+ name: "_maxFundPerAccount",
1304
+ type: "uint256",
1305
+ },
1306
+ ],
1307
+ name: "updateRound",
1308
+ outputs: [],
1309
+ stateMutability: "nonpayable",
1310
+ type: "function",
1311
+ },
1312
+ {
1313
+ inputs: [
1314
+ {
1315
+ internalType: "address",
1316
+ name: "_token",
1317
+ type: "address",
1318
+ },
1319
+ {
1320
+ internalType: "uint256",
1321
+ name: "_newPrice",
1322
+ type: "uint256",
1323
+ },
1324
+ ],
1325
+ name: "updateTokenPrice",
1326
+ outputs: [],
1327
+ stateMutability: "nonpayable",
1328
+ type: "function",
1329
+ },
1330
+ {
1331
+ inputs: [
1332
+ {
1333
+ internalType: "uint256",
1334
+ name: "",
1335
+ type: "uint256",
1336
+ },
1337
+ {
1338
+ internalType: "address",
1339
+ name: "",
1340
+ type: "address",
1341
+ },
1342
+ ],
1343
+ name: "userContributions",
1344
+ outputs: [
1345
+ {
1346
+ internalType: "uint256",
1347
+ name: "fundAmount",
1348
+ type: "uint256",
1349
+ },
1350
+ {
1351
+ internalType: "uint256",
1352
+ name: "tokenAllocation",
1353
+ type: "uint256",
1354
+ },
1355
+ {
1356
+ internalType: "bool",
1357
+ name: "claimed",
1358
+ type: "bool",
1359
+ },
1360
+ {
1361
+ internalType: "bool",
1362
+ name: "refunded",
1363
+ type: "bool",
1364
+ },
1365
+ {
1366
+ internalType: "address",
1367
+ name: "contributedToken",
1368
+ type: "address",
1369
+ },
1370
+ {
1371
+ internalType: "uint256",
1372
+ name: "contributedAmount",
1373
+ type: "uint256",
1374
+ },
1375
+ ],
1376
+ stateMutability: "view",
1377
+ type: "function",
1378
+ },
1379
+ {
1380
+ inputs: [
1381
+ {
1382
+ internalType: "address",
1383
+ name: "",
1384
+ type: "address",
1385
+ },
1386
+ ],
1387
+ name: "userParticipatedRound",
1388
+ outputs: [
1389
+ {
1390
+ internalType: "uint256",
1391
+ name: "",
1392
+ type: "uint256",
1393
+ },
1394
+ ],
1395
+ stateMutability: "view",
1396
+ type: "function",
1397
+ },
1398
+ {
1399
+ inputs: [
1400
+ {
1401
+ internalType: "address",
1402
+ name: "",
1403
+ type: "address",
1404
+ },
1405
+ ],
1406
+ name: "whitelistedTokens",
1407
+ outputs: [
1408
+ {
1409
+ internalType: "bool",
1410
+ name: "isWhitelisted",
1411
+ type: "bool",
1412
+ },
1413
+ {
1414
+ internalType: "uint256",
1415
+ name: "price",
1416
+ type: "uint256",
1417
+ },
1418
+ ],
1419
+ stateMutability: "view",
1420
+ type: "function",
1421
+ },
1422
+ {
1423
+ inputs: [
1424
+ {
1425
+ internalType: "address",
1426
+ name: "_token",
1427
+ type: "address",
1428
+ },
1429
+ {
1430
+ internalType: "uint256",
1431
+ name: "_amount",
1432
+ type: "uint256",
1433
+ },
1434
+ ],
1435
+ name: "withdrawFunds",
1436
+ outputs: [],
1437
+ stateMutability: "nonpayable",
1438
+ type: "function",
1439
+ },
1440
+ ] as const;
1441
+
1442
+ const _bytecode =
1443
+ "0x608060405234801561001057600080fd5b5061001f61002460201b60201c565b61018e565b600061003461012860201b60201c565b90508060000160089054906101000a900460ff161561007f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff80168160000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146101255767ffffffffffffffff8160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff60405161011c9190610173565b60405180910390a15b50565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b600067ffffffffffffffff82169050919050565b61016d81610150565b82525050565b60006020820190506101886000830184610164565b92915050565b61420f8061019d6000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806391d1485411610146578063d4bcdfa1116100c3578063eb4c9e9b11610087578063eb4c9e9b146106db578063ed54890d1461070b578063efe9c9e214610740578063f0e1bb3e1461075c578063f2fde38b1461078c578063f5b541a6146107a857610253565b8063d4bcdfa114610625578063d4ee651b14610641578063d547741f1461065d578063d871b0e314610679578063daf9c210146106aa57610253565b8063a09686c41161010a578063a09686c414610595578063a217fddf146105b3578063a6be83dd146105d1578063c1075329146105ed578063c4d66de81461060957610253565b806391d14854146104cb57806395082d25146104fb57806397ac4a25146105195780639bb92c4e146105495780639da64ac21461056557610253565b8063590e1ae3116101d45780637cf30c60116101985780637cf30c601461041f5780638952ac1e1461043b5780638a568299146104575780638c65c81f146104755780638da5cb5b146104ad57610253565b8063590e1ae3146103a35780635a1e6ca1146103ad5780635af6df4c146103c95780636fed6940146103e5578063715018a61461041557610253565b80632f2ff15d1161021b5780632f2ff15d1461032557806336568abe1461034157806342683c671461035d57806348c54b9d1461037b5780634b60ce771461038557610253565b806301ffc9a7146102585780631c88705d14610288578063248a9ca3146102a457806327ac0c58146102d457806328f3e658146102f0575b600080fd5b610272600480360381019061026d9190613854565b6107c6565b60405161027f919061389c565b60405180910390f35b6102a2600480360381019061029d9190613915565b6107d8565b005b6102be60048036038101906102b99190613978565b610928565b6040516102cb91906139b4565b60405180910390f35b6102ee60048036038101906102e99190613915565b610956565b005b61030a60048036038101906103059190613a05565b610992565b60405161031c96959493929190613a63565b60405180910390f35b61033f600480360381019061033a9190613ac4565b610a5e565b005b61035b60048036038101906103569190613ac4565b610a80565b005b610365610afb565b6040516103729190613b04565b60405180910390f35b610383610b01565b005b61038d610f3d565b60405161039a9190613b1f565b60405180910390f35b6103ab610f63565b005b6103c760048036038101906103c29190613b3a565b61138b565b005b6103e360048036038101906103de9190613b67565b6114d9565b005b6103ff60048036038101906103fa9190613b3a565b611789565b60405161040c9190613b04565b60405180910390f35b61041d6117a1565b005b61043960048036038101906104349190613c0e565b6117b5565b005b61045560048036038101906104509190613c4e565b6118a4565b005b61045f611fff565b60405161046c9190613b04565b60405180910390f35b61048f600480360381019061048a9190613b3a565b612005565b6040516104a499989796959493929190613ca1565b60405180910390f35b6104b5612087565b6040516104c29190613b1f565b60405180910390f35b6104e560048036038101906104e09190613ac4565b6120bf565b6040516104f2919061389c565b60405180910390f35b610503612138565b6040516105109190613b04565b60405180910390f35b610533600480360381019061052e9190613b3a565b612144565b604051610540919061389c565b60405180910390f35b610563600480360381019061055e9190613c0e565b61223a565b005b61057f600480360381019061057a9190613915565b612329565b60405161058c9190613b04565b60405180910390f35b61059d612396565b6040516105aa9190613b04565b60405180910390f35b6105bb6123a0565b6040516105c891906139b4565b60405180910390f35b6105eb60048036038101906105e69190613d2e565b6123a7565b005b61060760048036038101906106029190613dbb565b6126ae565b005b610623600480360381019061061e9190613915565b612867565b005b61063f600480360381019061063a9190613dbb565b612ade565b005b61065b60048036038101906106569190613dbb565b612c7e565b005b61067760048036038101906106729190613ac4565b612e49565b005b610693600480360381019061068e9190613915565b612e6b565b6040516106a1929190613dfb565b60405180910390f35b6106c460048036038101906106bf9190613915565b612f07565b6040516106d2929190613e24565b60405180910390f35b6106f560048036038101906106f09190613915565b612f38565b6040516107029190613b04565b60405180910390f35b61072560048036038101906107209190613a05565b612f50565b60405161073796959493929190613a63565b60405180910390f35b61075a60048036038101906107559190613915565b612fd3565b005b61077660048036038101906107719190613b3a565b613107565b6040516107839190613b04565b60405180910390f35b6107a660048036038101906107a19190613915565b61311f565b005b6107b06131a5565b6040516107bd91906139b4565b60405180910390f35b60006107d1826131c9565b9050919050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961080281613243565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16610887576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fdd2e6d9f52cbe8f695939d018b7d4a216dc613a669876163ac548b916489d91760405160405180910390a25050565b600080610933613257565b905080600001600084815260200190815260200160002060010154915050919050565b6000801b61096381613243565b61098d7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298361327f565b505050565b6000806000806000806000600260008a815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015481600101548260020160009054906101000a900460ff168360020160019054906101000a900460ff168460020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154965096509650965096509650509295509295509295565b610a6782610928565b610a7081613243565b610a7a838361327f565b50505050565b610a88613380565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610af68282613388565b505050565b60085481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610b7f576040517f55842fea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182610b8e9190613e7c565b90506001600082815260200190815260200160002060050160009054906101000a900460ff16610bea576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160019054906101000a900460ff16158015610c31575060016000828152602001908152602001600020600101544211155b15610c68576040517f3df07da500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160029054906101000a900460ff16610cc2576040517fe2c858ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403610d54576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160009054906101000a900460ff1615610d9d576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160019054906101000a900460ff1615610de6576040517fa85e6f1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160010154905060018260020160006101000a81548160ff0219169083151502179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610e6b929190613eb0565b6020604051808303816000875af1158015610e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eae9190613eee565b905080610ee7576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16847f880f2ef2613b092f1a0a819f294155c98667eb294b7e6bf7a3810278142c1a1c84604051610f2e9190613b04565b60405180910390a35050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103610fe1576040517f55842fea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182610ff09190613e7c565b90506001600082815260200190815260200160002060050160009054906101000a900460ff1661104c576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160039054906101000a900460ff166110a6576040517f089c998700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006002600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403611138576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160009054906101000a900460ff1615611181576040517f646cf55800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060020160019054906101000a900460ff16156111ca576040517fa85e6f1a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008260030154905060018360020160016101000a81548160ff02191690831515021790555082600001546003600086815260200190815260200160002060008282546112409190613e7c565b9250508190555082600001546008600082825461125d9190613e7c565b9250508190555060008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b81526004016112a1929190613eb0565b6020604051808303816000875af11580156112c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e49190613eee565b90508061131d576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16867f1c26abe6289671e3a9d493647349673af828abb9dbadff1e81762387f7cd99a38560405161137b9190613b04565b60405180910390a4505050505050565b61139361348a565b6001600082815260200190815260200160002060050160009054906101000a900460ff166113ed576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600082815260200190815260200160002060050160019054906101000a900460ff1615611448576040517f0f5eeea600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180600083815260200190815260200160002060050160016101000a81548160ff021916908315150217905550807fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad57600360008481526020019081526020016000205460046000858152602001908152602001600020546040516114ce929190613dfb565b60405180910390a250565b6114e161348a565b4285101561151b576040517fb290253c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848411611554576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000830361158e576040517fe2494de700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082036115c8576040517f0baf743200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008114806115d657508281115b1561160d576040517f90e3cae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060075490506040518061012001604052808781526020018681526020018581526020018481526020018381526020016001151581526020016000151581526020016000151581526020016000151581525060016000838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff0219169083151502179055506101008201518160050160036101000a81548160ff0219169083151502179055509050506007600081548092919061173c90613f1b565b9190505550807f21fb045299ceafb7a136c74ee07b22d481ee9bf37a85b2d8f20c59f83ada41338787878787604051611779959493929190613f63565b60405180910390a2505050505050565b60046020528060005260406000206000915090505481565b6117a961348a565b6117b36000613511565b565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9296117df81613243565b6001600084815260200190815260200160002060050160009054906101000a900460ff16611839576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160036101000a81548160ff021916908315150217905550827f653b56ea3ea7dfba44234dbc807bac97a2a0adafb6d22427d818250375f1e91183604051611897919061389c565b60405180910390a2505050565b6118ad83612144565b6118e3576040517f3df07da500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16611968576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081036119a2576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114158015611a0357506001846119ff9190613fb6565b8114155b15611a3a576040517f827a86b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000670de0b6b3a76400008285611a979190613fea565b611aa1919061405b565b905060006002600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000828260000154611b099190613fb6565b90506001600089815260200190815260200160002060040154811115611b5b576040517f1cd861cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083600360008b815260200190815260200160002054611b7c9190613fb6565b9050600160008a815260200190815260200160002060020154811115611bce576040517f397bb34300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008873ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff1660e01b8152600401611c0d9392919061408c565b6020604051808303816000875af1158015611c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c509190613eee565b905080611c89576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600160008c815260200190815260200160002060020154600160008d81526020019081526020016000206003015487611cc49190613fea565b611cce919061405b565b90506000856000015403611da657600460008c81526020019081526020016000206000815480929190611d0090613f1b565b919050555060018b611d129190613fb6565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550898560020160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550888560030181905550611e50565b8973ffffffffffffffffffffffffffffffffffffffff168560020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e1d5788856003016000828254611e119190613fb6565b92505081905550611e4f565b6040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b85856000016000828254611e649190613fb6565b9250508190555080856001016000828254611e7f9190613fb6565b9250508190555085600360008d81526020019081526020016000206000828254611ea99190613fb6565b925050819055508560086000828254611ec29190613fb6565b92505081905550600160008c815260200190815260200160002060020154600360008d81526020019081526020016000205410611f885760018060008d815260200190815260200160002060050160016101000a81548160ff0219169083151502179055508a7fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad57600360008e815260200190815260200160002054600460008f815260200190815260200160002054604051611f7f929190613dfb565b60405180910390a25b8973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168c7fb479ec976a9860505652c0d9f5dc15bc5fbca1a55c3da9cabe662f1b6f8090d28c8a86604051611fea939291906140c3565b60405180910390a45050505050505050505050565b60075481565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900460ff16908060050160029054906101000a900460ff16908060050160039054906101000a900460ff16905089565b6000806120926135e8565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b6000806120ca613257565b905080600001600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b670de0b6b3a764000081565b60006001600083815260200190815260200160002060050160009054906101000a900460ff166121775760009050612235565b6001600083815260200190815260200160002060050160019054906101000a900460ff16156121a95760009050612235565b60016000838152602001908152602001600020600001544210156121d05760009050612235565b60016000838152602001908152602001600020600101544211156121f75760009050612235565b60016000838152602001908152602001600020600201546003600084815260200190815260200160002054106122305760009050612235565b600190505b919050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961226481613243565b6001600084815260200190815260200160002060050160009054906101000a900460ff166122be576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600085815260200190815260200160002060050160026101000a81548160ff021916908315150217905550827f74c19978ee48fa394fffde7cccc94793539daf917f2a8fd2d5e851409de3f7a08360405161231c919061389c565b60405180910390a2505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103612380576000915050612391565b60018161238d9190613e7c565b9150505b919050565b6000600754905090565b6000801b81565b6123af61348a565b6001600087815260200190815260200160002060050160009054906101000a900460ff16612409576040517f266f368500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600087815260200190815260200160002060050160019054906101000a900460ff1615612464576040517f0f5eeea600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160008781526020019081526020016000206000015442106124b3576040517f4eb5402b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428510156124ed576040517fb290253c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b848411612526576040517f38af65f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008303612560576040517fe2494de700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361259a576040517f0baf743200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008114806125a857508281115b156125df576040517f90e3cae900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b846001600088815260200190815260200160002060000181905550836001600088815260200190815260200160002060010181905550826001600088815260200190815260200160002060020181905550816001600088815260200190815260200160002060030181905550806001600088815260200190815260200160002060040181905550857fe35865500052be0ea409d44d56e7f66a0e0728bab40a71f941ccd691b9159596868686868660405161269e959493929190613f63565b60405180910390a2505050505050565b6126b661348a565b600081036126f0576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161272b9190613b1f565b602060405180830381865afa158015612748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276c919061410f565b9050808211156127a8576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016127e5929190613eb0565b6020604051808303816000875af1158015612804573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128289190613eee565b905080612861576040517f90b8ec1800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000612871613610565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156128bf5750825b9050600060018367ffffffffffffffff161480156128f4575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015612902575080155b15612939576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156129895760018560000160086101000a81548160ff0219169083151502179055505b61299233613638565b61299a61364c565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612a00576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612a4e6000801b3361327f565b50612a797f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9293361327f565b508315612ad65760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d26001604051612acd9190614195565b60405180910390a15b505050505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929612b0881613243565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b6e576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203612ba8576040517ff083859200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060400160405280600115158152602001838152506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101559050508273ffffffffffffffffffffffffffffffffffffffff167fe184914670d9e097e90729e2a9159866b30b1203952f0586bedca1d6fcf130a883604051612c719190613b04565b60405180910390a2505050565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929612ca881613243565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16612d2d576040517ff84835a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203612d67576040517ff083859200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508373ffffffffffffffffffffffffffffffffffffffff167f62e2c9c75b287778c0b58f1c1d83fa8f9978a33848e0b423735fd44f48ebe3c18285604051612e3b929190613dfb565b60405180910390a250505050565b612e5282610928565b612e5b81613243565b612e658383613388565b50505050565b60008060005b600754811015612f015760006002600083815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806000015484612edf9190613fb6565b9350806001015483612ef19190613fb6565b9250508080600101915050612e71565b50915091565b60006020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b60056020528060005260406000206000915090505481565b6002602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16908060020160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905086565b612fdb61348a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613041576040517f1eb00b0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f38b700f64059658d3f95b87d8db51f669197c89da3076d26d42bb8fb06159fa960405160405180910390a35050565b60036020528060005260406000206000915090505481565b61312761348a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036131995760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016131909190613b1f565b60405180910390fd5b6131a281613511565b50565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061323c575061323b82613656565b5b9050919050565b6132548161324f613380565b6136c0565b50565b60007f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b60008061328a613257565b905061329684846120bf565b61337457600181600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613310613380565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061337a565b60009150505b92915050565b600033905090565b600080613393613257565b905061339f84846120bf565b1561347e57600081600001600086815260200190815260200160002060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061341a613380565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001915050613484565b60009150505b92915050565b613492613380565b73ffffffffffffffffffffffffffffffffffffffff166134b0612087565b73ffffffffffffffffffffffffffffffffffffffff161461350f576134d3613380565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016135069190613b1f565b60405180910390fd5b565b600061351b6135e8565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b613640613711565b61364981613751565b50565b613654613711565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6136ca82826120bf565b61370d5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016137049291906141b0565b60405180910390fd5b5050565b6137196137d7565b61374f576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b613759613711565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036137cb5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016137c29190613b1f565b60405180910390fd5b6137d481613511565b50565b60006137e1613610565b60000160089054906101000a900460ff16905090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613831816137fc565b811461383c57600080fd5b50565b60008135905061384e81613828565b92915050565b60006020828403121561386a576138696137f7565b5b60006138788482850161383f565b91505092915050565b60008115159050919050565b61389681613881565b82525050565b60006020820190506138b1600083018461388d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e2826138b7565b9050919050565b6138f2816138d7565b81146138fd57600080fd5b50565b60008135905061390f816138e9565b92915050565b60006020828403121561392b5761392a6137f7565b5b600061393984828501613900565b91505092915050565b6000819050919050565b61395581613942565b811461396057600080fd5b50565b6000813590506139728161394c565b92915050565b60006020828403121561398e5761398d6137f7565b5b600061399c84828501613963565b91505092915050565b6139ae81613942565b82525050565b60006020820190506139c960008301846139a5565b92915050565b6000819050919050565b6139e2816139cf565b81146139ed57600080fd5b50565b6000813590506139ff816139d9565b92915050565b60008060408385031215613a1c57613a1b6137f7565b5b6000613a2a858286016139f0565b9250506020613a3b85828601613900565b9150509250929050565b613a4e816139cf565b82525050565b613a5d816138d7565b82525050565b600060c082019050613a786000830189613a45565b613a856020830188613a45565b613a92604083018761388d565b613a9f606083018661388d565b613aac6080830185613a54565b613ab960a0830184613a45565b979650505050505050565b60008060408385031215613adb57613ada6137f7565b5b6000613ae985828601613963565b9250506020613afa85828601613900565b9150509250929050565b6000602082019050613b196000830184613a45565b92915050565b6000602082019050613b346000830184613a54565b92915050565b600060208284031215613b5057613b4f6137f7565b5b6000613b5e848285016139f0565b91505092915050565b600080600080600060a08688031215613b8357613b826137f7565b5b6000613b91888289016139f0565b9550506020613ba2888289016139f0565b9450506040613bb3888289016139f0565b9350506060613bc4888289016139f0565b9250506080613bd5888289016139f0565b9150509295509295909350565b613beb81613881565b8114613bf657600080fd5b50565b600081359050613c0881613be2565b92915050565b60008060408385031215613c2557613c246137f7565b5b6000613c33858286016139f0565b9250506020613c4485828601613bf9565b9150509250929050565b600080600060608486031215613c6757613c666137f7565b5b6000613c75868287016139f0565b9350506020613c8686828701613900565b9250506040613c97868287016139f0565b9150509250925092565b600061012082019050613cb7600083018c613a45565b613cc4602083018b613a45565b613cd1604083018a613a45565b613cde6060830189613a45565b613ceb6080830188613a45565b613cf860a083018761388d565b613d0560c083018661388d565b613d1260e083018561388d565b613d2061010083018461388d565b9a9950505050505050505050565b60008060008060008060c08789031215613d4b57613d4a6137f7565b5b6000613d5989828a016139f0565b9650506020613d6a89828a016139f0565b9550506040613d7b89828a016139f0565b9450506060613d8c89828a016139f0565b9350506080613d9d89828a016139f0565b92505060a0613dae89828a016139f0565b9150509295509295509295565b60008060408385031215613dd257613dd16137f7565b5b6000613de085828601613900565b9250506020613df1858286016139f0565b9150509250929050565b6000604082019050613e106000830185613a45565b613e1d6020830184613a45565b9392505050565b6000604082019050613e39600083018561388d565b613e466020830184613a45565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e87826139cf565b9150613e92836139cf565b9250828203905081811115613eaa57613ea9613e4d565b5b92915050565b6000604082019050613ec56000830185613a54565b613ed26020830184613a45565b9392505050565b600081519050613ee881613be2565b92915050565b600060208284031215613f0457613f036137f7565b5b6000613f1284828501613ed9565b91505092915050565b6000613f26826139cf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f5857613f57613e4d565b5b600182019050919050565b600060a082019050613f786000830188613a45565b613f856020830187613a45565b613f926040830186613a45565b613f9f6060830185613a45565b613fac6080830184613a45565b9695505050505050565b6000613fc1826139cf565b9150613fcc836139cf565b9250828201905080821115613fe457613fe3613e4d565b5b92915050565b6000613ff5826139cf565b9150614000836139cf565b925082820261400e816139cf565b9150828204841483151761402557614024613e4d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614066826139cf565b9150614071836139cf565b9250826140815761408061402c565b5b828204905092915050565b60006060820190506140a16000830186613a54565b6140ae6020830185613a54565b6140bb6040830184613a45565b949350505050565b60006060820190506140d86000830186613a45565b6140e56020830185613a45565b6140f26040830184613a45565b949350505050565b600081519050614109816139d9565b92915050565b600060208284031215614125576141246137f7565b5b6000614133848285016140fa565b91505092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b600061417f61417a6141758461413c565b61415a565b614146565b9050919050565b61418f81614164565b82525050565b60006020820190506141aa6000830184614186565b92915050565b60006040820190506141c56000830185613a54565b6141d260208301846139a5565b939250505056fea2646970667358221220edd22f62923c94b3d6acbe3a58d1278338e75016834b4e3a34c29772325e696f64736f6c634300081c0033";
1444
+
1445
+ type SeedRoundFundraiserConstructorParams =
1446
+ | [signer?: Signer]
1447
+ | ConstructorParameters<typeof ContractFactory>;
1448
+
1449
+ const isSuperArgs = (
1450
+ xs: SeedRoundFundraiserConstructorParams
1451
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1452
+
1453
+ export class SeedRoundFundraiser__factory extends ContractFactory {
1454
+ constructor(...args: SeedRoundFundraiserConstructorParams) {
1455
+ if (isSuperArgs(args)) {
1456
+ super(...args);
1457
+ } else {
1458
+ super(_abi, _bytecode, args[0]);
1459
+ }
1460
+ }
1461
+
1462
+ override getDeployTransaction(
1463
+ overrides?: NonPayableOverrides & { from?: string }
1464
+ ): Promise<ContractDeployTransaction> {
1465
+ return super.getDeployTransaction(overrides || {});
1466
+ }
1467
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
1468
+ return super.deploy(overrides || {}) as Promise<
1469
+ SeedRoundFundraiser & {
1470
+ deploymentTransaction(): ContractTransactionResponse;
1471
+ }
1472
+ >;
1473
+ }
1474
+ override connect(
1475
+ runner: ContractRunner | null
1476
+ ): SeedRoundFundraiser__factory {
1477
+ return super.connect(runner) as SeedRoundFundraiser__factory;
1478
+ }
1479
+
1480
+ static readonly bytecode = _bytecode;
1481
+ static readonly abi = _abi;
1482
+ static createInterface(): SeedRoundFundraiserInterface {
1483
+ return new Interface(_abi) as SeedRoundFundraiserInterface;
1484
+ }
1485
+ static connect(
1486
+ address: string,
1487
+ runner?: ContractRunner | null
1488
+ ): SeedRoundFundraiser {
1489
+ return new Contract(
1490
+ address,
1491
+ _abi,
1492
+ runner
1493
+ ) as unknown as SeedRoundFundraiser;
1494
+ }
1495
+ }