@super-protocol/sdk-js 3.12.0-beta.1 → 3.12.0-beta.11

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.
@@ -1,5 +1,12 @@
1
+ export const CompetitionToggled = 'CompetitionToggled';
1
2
  export const ContentAdded = 'ContentAdded';
2
3
  export const ContentUpdated = 'ContentUpdated';
4
+ export const RegisterUser = 'RegisterUser';
5
+ export const RewardClaimed = 'RewardClaimed';
6
+ export const RoleAdminChanged = 'RoleAdminChanged';
7
+ export const RoleGranted = 'RoleGranted';
8
+ export const RoleRevoked = 'RoleRevoked';
9
+ export const ScoreUpdated = 'ScoreUpdated';
3
10
  export const abi = [
4
11
  {
5
12
  inputs: [
@@ -18,6 +25,16 @@ export const abi = [
18
25
  name: '_rewarder',
19
26
  type: 'address',
20
27
  },
28
+ {
29
+ internalType: 'address',
30
+ name: '_usdt',
31
+ type: 'address',
32
+ },
33
+ {
34
+ internalType: 'uint8',
35
+ name: '_maxDayAttempts',
36
+ type: 'uint8',
37
+ },
21
38
  ],
22
39
  stateMutability: 'nonpayable',
23
40
  type: 'constructor',
@@ -26,15 +43,22 @@ export const abi = [
26
43
  anonymous: false,
27
44
  inputs: [
28
45
  {
29
- indexed: true,
30
- internalType: 'address',
31
- name: 'participant',
32
- type: 'address',
46
+ indexed: false,
47
+ internalType: 'bool',
48
+ name: 'active',
49
+ type: 'bool',
33
50
  },
51
+ ],
52
+ name: 'CompetitionToggled',
53
+ type: 'event',
54
+ },
55
+ {
56
+ anonymous: false,
57
+ inputs: [
34
58
  {
35
59
  indexed: true,
36
60
  internalType: 'address',
37
- name: 'referrer',
61
+ name: 'participant',
38
62
  type: 'address',
39
63
  },
40
64
  {
@@ -72,6 +96,157 @@ export const abi = [
72
96
  name: 'ContentUpdated',
73
97
  type: 'event',
74
98
  },
99
+ {
100
+ anonymous: false,
101
+ inputs: [
102
+ {
103
+ indexed: true,
104
+ internalType: 'address',
105
+ name: 'participant',
106
+ type: 'address',
107
+ },
108
+ {
109
+ indexed: true,
110
+ internalType: 'address',
111
+ name: 'referrer',
112
+ type: 'address',
113
+ },
114
+ ],
115
+ name: 'RegisterUser',
116
+ type: 'event',
117
+ },
118
+ {
119
+ anonymous: false,
120
+ inputs: [
121
+ {
122
+ indexed: true,
123
+ internalType: 'address',
124
+ name: 'participant',
125
+ type: 'address',
126
+ },
127
+ {
128
+ indexed: true,
129
+ internalType: 'uint256',
130
+ name: 'amount',
131
+ type: 'uint256',
132
+ },
133
+ ],
134
+ name: 'RewardClaimed',
135
+ type: 'event',
136
+ },
137
+ {
138
+ anonymous: false,
139
+ inputs: [
140
+ {
141
+ indexed: true,
142
+ internalType: 'bytes32',
143
+ name: 'role',
144
+ type: 'bytes32',
145
+ },
146
+ {
147
+ indexed: true,
148
+ internalType: 'bytes32',
149
+ name: 'previousAdminRole',
150
+ type: 'bytes32',
151
+ },
152
+ {
153
+ indexed: true,
154
+ internalType: 'bytes32',
155
+ name: 'newAdminRole',
156
+ type: 'bytes32',
157
+ },
158
+ ],
159
+ name: 'RoleAdminChanged',
160
+ type: 'event',
161
+ },
162
+ {
163
+ anonymous: false,
164
+ inputs: [
165
+ {
166
+ indexed: true,
167
+ internalType: 'bytes32',
168
+ name: 'role',
169
+ type: 'bytes32',
170
+ },
171
+ {
172
+ indexed: true,
173
+ internalType: 'address',
174
+ name: 'account',
175
+ type: 'address',
176
+ },
177
+ {
178
+ indexed: true,
179
+ internalType: 'address',
180
+ name: 'sender',
181
+ type: 'address',
182
+ },
183
+ ],
184
+ name: 'RoleGranted',
185
+ type: 'event',
186
+ },
187
+ {
188
+ anonymous: false,
189
+ inputs: [
190
+ {
191
+ indexed: true,
192
+ internalType: 'bytes32',
193
+ name: 'role',
194
+ type: 'bytes32',
195
+ },
196
+ {
197
+ indexed: true,
198
+ internalType: 'address',
199
+ name: 'account',
200
+ type: 'address',
201
+ },
202
+ {
203
+ indexed: true,
204
+ internalType: 'address',
205
+ name: 'sender',
206
+ type: 'address',
207
+ },
208
+ ],
209
+ name: 'RoleRevoked',
210
+ type: 'event',
211
+ },
212
+ {
213
+ anonymous: false,
214
+ inputs: [
215
+ {
216
+ indexed: true,
217
+ internalType: 'address',
218
+ name: 'participant',
219
+ type: 'address',
220
+ },
221
+ {
222
+ indexed: false,
223
+ internalType: 'int256',
224
+ name: 'oldScore',
225
+ type: 'int256',
226
+ },
227
+ {
228
+ indexed: false,
229
+ internalType: 'int256',
230
+ name: 'newScore',
231
+ type: 'int256',
232
+ },
233
+ ],
234
+ name: 'ScoreUpdated',
235
+ type: 'event',
236
+ },
237
+ {
238
+ inputs: [],
239
+ name: 'DEFAULT_ADMIN_ROLE',
240
+ outputs: [
241
+ {
242
+ internalType: 'bytes32',
243
+ name: '',
244
+ type: 'bytes32',
245
+ },
246
+ ],
247
+ stateMutability: 'view',
248
+ type: 'function',
249
+ },
75
250
  {
76
251
  inputs: [
77
252
  {
@@ -79,62 +254,471 @@ export const abi = [
79
254
  name: 'link',
80
255
  type: 'string',
81
256
  },
257
+ ],
258
+ name: 'addContent',
259
+ outputs: [],
260
+ stateMutability: 'nonpayable',
261
+ type: 'function',
262
+ },
263
+ {
264
+ inputs: [],
265
+ name: 'claimReward',
266
+ outputs: [],
267
+ stateMutability: 'nonpayable',
268
+ type: 'function',
269
+ },
270
+ {
271
+ inputs: [],
272
+ name: 'competitionActive',
273
+ outputs: [
274
+ {
275
+ internalType: 'bool',
276
+ name: '',
277
+ type: 'bool',
278
+ },
279
+ ],
280
+ stateMutability: 'view',
281
+ type: 'function',
282
+ },
283
+ {
284
+ inputs: [],
285
+ name: 'getCompetitionSetup',
286
+ outputs: [
287
+ {
288
+ internalType: 'uint256',
289
+ name: 'claimDateAfter',
290
+ type: 'uint256',
291
+ },
292
+ {
293
+ internalType: 'uint256',
294
+ name: 'notValidBeforeTs',
295
+ type: 'uint256',
296
+ },
297
+ {
298
+ internalType: 'uint256',
299
+ name: 'notValidAfterTs',
300
+ type: 'uint256',
301
+ },
302
+ {
303
+ internalType: 'uint256',
304
+ name: 'maxDayAttemptsCount',
305
+ type: 'uint256',
306
+ },
307
+ ],
308
+ stateMutability: 'view',
309
+ type: 'function',
310
+ },
311
+ {
312
+ inputs: [],
313
+ name: 'getContentCount',
314
+ outputs: [
315
+ {
316
+ internalType: 'uint256',
317
+ name: '',
318
+ type: 'uint256',
319
+ },
320
+ ],
321
+ stateMutability: 'view',
322
+ type: 'function',
323
+ },
324
+ {
325
+ inputs: [
326
+ {
327
+ internalType: 'uint256',
328
+ name: 'from',
329
+ type: 'uint256',
330
+ },
331
+ {
332
+ internalType: 'uint256',
333
+ name: 'to',
334
+ type: 'uint256',
335
+ },
336
+ {
337
+ internalType: 'enum Campaign.Status',
338
+ name: 'status',
339
+ type: 'uint8',
340
+ },
341
+ ],
342
+ name: 'getContentRange',
343
+ outputs: [
344
+ {
345
+ components: [
346
+ {
347
+ components: [
348
+ {
349
+ internalType: 'enum Campaign.Status',
350
+ name: 'status',
351
+ type: 'uint8',
352
+ },
353
+ {
354
+ internalType: 'address',
355
+ name: 'participant',
356
+ type: 'address',
357
+ },
358
+ {
359
+ internalType: 'uint32',
360
+ name: 'dayNumber',
361
+ type: 'uint32',
362
+ },
363
+ {
364
+ internalType: 'string',
365
+ name: 'link',
366
+ type: 'string',
367
+ },
368
+ {
369
+ internalType: 'bytes32',
370
+ name: 'contentHash',
371
+ type: 'bytes32',
372
+ },
373
+ ],
374
+ internalType: 'struct Campaign.Content',
375
+ name: 'content',
376
+ type: 'tuple',
377
+ },
378
+ {
379
+ internalType: 'uint256',
380
+ name: 'index',
381
+ type: 'uint256',
382
+ },
383
+ ],
384
+ internalType: 'struct Campaign.ContentWithIndex[]',
385
+ name: 'result',
386
+ type: 'tuple[]',
387
+ },
388
+ ],
389
+ stateMutability: 'view',
390
+ type: 'function',
391
+ },
392
+ {
393
+ inputs: [],
394
+ name: 'getLinksStat',
395
+ outputs: [
396
+ {
397
+ components: [
398
+ {
399
+ internalType: 'uint256',
400
+ name: 'totalAddedLinks',
401
+ type: 'uint256',
402
+ },
403
+ {
404
+ internalType: 'uint256',
405
+ name: 'totalDuplicatedLinks',
406
+ type: 'uint256',
407
+ },
408
+ {
409
+ internalType: 'uint256',
410
+ name: 'totalValidatedLinks',
411
+ type: 'uint256',
412
+ },
413
+ {
414
+ internalType: 'uint256',
415
+ name: 'totalInvalidLinks',
416
+ type: 'uint256',
417
+ },
418
+ ],
419
+ internalType: 'struct Campaign.LinksStat',
420
+ name: 'output',
421
+ type: 'tuple',
422
+ },
423
+ ],
424
+ stateMutability: 'view',
425
+ type: 'function',
426
+ },
427
+ {
428
+ inputs: [
429
+ {
430
+ internalType: 'uint256',
431
+ name: 'rank',
432
+ type: 'uint256',
433
+ },
434
+ ],
435
+ name: 'getParticipantByRank',
436
+ outputs: [
437
+ {
438
+ components: [
439
+ {
440
+ internalType: 'address',
441
+ name: 'participant',
442
+ type: 'address',
443
+ },
444
+ {
445
+ internalType: 'int256',
446
+ name: 'score',
447
+ type: 'int256',
448
+ },
449
+ ],
450
+ internalType: 'struct AVLTreeLib.ParticipantScore',
451
+ name: '',
452
+ type: 'tuple',
453
+ },
454
+ ],
455
+ stateMutability: 'view',
456
+ type: 'function',
457
+ },
458
+ {
459
+ inputs: [
82
460
  {
83
461
  internalType: 'address',
84
- name: 'referrer',
462
+ name: 'participant',
85
463
  type: 'address',
86
464
  },
87
465
  ],
88
- name: 'addContent',
89
- outputs: [],
90
- stateMutability: 'nonpayable',
466
+ name: 'getParticipantInfo',
467
+ outputs: [
468
+ {
469
+ components: [
470
+ {
471
+ components: [
472
+ {
473
+ internalType: 'uint8',
474
+ name: 'totalDayAttempts',
475
+ type: 'uint8',
476
+ },
477
+ {
478
+ internalType: 'bool',
479
+ name: 'dontHaveStrikeBonus',
480
+ type: 'bool',
481
+ },
482
+ ],
483
+ internalType: 'struct Campaign.DayParticipantInfo',
484
+ name: 'currentDayParticipantInfo',
485
+ type: 'tuple',
486
+ },
487
+ {
488
+ components: [
489
+ {
490
+ internalType: 'bool',
491
+ name: 'isParticipantRegistered',
492
+ type: 'bool',
493
+ },
494
+ {
495
+ internalType: 'bool',
496
+ name: 'isRewardClaimed',
497
+ type: 'bool',
498
+ },
499
+ {
500
+ internalType: 'address',
501
+ name: 'referrer',
502
+ type: 'address',
503
+ },
504
+ {
505
+ internalType: 'uint256',
506
+ name: 'referralsCount',
507
+ type: 'uint256',
508
+ },
509
+ {
510
+ internalType: 'int256',
511
+ name: 'totalReferrerProfit',
512
+ type: 'int256',
513
+ },
514
+ {
515
+ internalType: 'uint256',
516
+ name: 'totalAddedLinks',
517
+ type: 'uint256',
518
+ },
519
+ {
520
+ internalType: 'uint256',
521
+ name: 'totalDuplicatedLinks',
522
+ type: 'uint256',
523
+ },
524
+ {
525
+ internalType: 'uint256',
526
+ name: 'totalValidatedLinks',
527
+ type: 'uint256',
528
+ },
529
+ {
530
+ internalType: 'uint256',
531
+ name: 'totalInvalidLinks',
532
+ type: 'uint256',
533
+ },
534
+ ],
535
+ internalType: 'struct Campaign.ParticipantInfo',
536
+ name: 'storedInfo',
537
+ type: 'tuple',
538
+ },
539
+ {
540
+ components: [
541
+ {
542
+ internalType: 'address',
543
+ name: 'participant',
544
+ type: 'address',
545
+ },
546
+ {
547
+ internalType: 'uint256',
548
+ name: 'rank',
549
+ type: 'uint256',
550
+ },
551
+ {
552
+ internalType: 'int256',
553
+ name: 'score',
554
+ type: 'int256',
555
+ },
556
+ {
557
+ internalType: 'uint256',
558
+ name: 'reward',
559
+ type: 'uint256',
560
+ },
561
+ {
562
+ internalType: 'uint256',
563
+ name: 'points',
564
+ type: 'uint256',
565
+ },
566
+ ],
567
+ internalType: 'struct Campaign.ParticipantInfoViewed',
568
+ name: 'viewedInfo',
569
+ type: 'tuple',
570
+ },
571
+ ],
572
+ internalType: 'struct Campaign.FullParticipantInfo',
573
+ name: 'data',
574
+ type: 'tuple',
575
+ },
576
+ ],
577
+ stateMutability: 'view',
578
+ type: 'function',
579
+ },
580
+ {
581
+ inputs: [
582
+ {
583
+ internalType: 'address',
584
+ name: 'participant',
585
+ type: 'address',
586
+ },
587
+ ],
588
+ name: 'getParticipantRank',
589
+ outputs: [
590
+ {
591
+ internalType: 'uint256',
592
+ name: 'rank',
593
+ type: 'uint256',
594
+ },
595
+ ],
596
+ stateMutability: 'view',
597
+ type: 'function',
598
+ },
599
+ {
600
+ inputs: [
601
+ {
602
+ internalType: 'address',
603
+ name: 'participant',
604
+ type: 'address',
605
+ },
606
+ ],
607
+ name: 'getParticipantRewardAndPoints',
608
+ outputs: [
609
+ {
610
+ internalType: 'uint256',
611
+ name: 'reward',
612
+ type: 'uint256',
613
+ },
614
+ {
615
+ internalType: 'uint256',
616
+ name: 'points',
617
+ type: 'uint256',
618
+ },
619
+ ],
620
+ stateMutability: 'view',
621
+ type: 'function',
622
+ },
623
+ {
624
+ inputs: [
625
+ {
626
+ internalType: 'address',
627
+ name: 'participant',
628
+ type: 'address',
629
+ },
630
+ ],
631
+ name: 'getParticipantScore',
632
+ outputs: [
633
+ {
634
+ internalType: 'int256',
635
+ name: 'score',
636
+ type: 'int256',
637
+ },
638
+ ],
639
+ stateMutability: 'view',
640
+ type: 'function',
641
+ },
642
+ {
643
+ inputs: [
644
+ {
645
+ internalType: 'uint256',
646
+ name: 'centerRank',
647
+ type: 'uint256',
648
+ },
649
+ {
650
+ internalType: 'uint256',
651
+ name: 'range',
652
+ type: 'uint256',
653
+ },
654
+ ],
655
+ name: 'getParticipantsAroundRank',
656
+ outputs: [
657
+ {
658
+ components: [
659
+ {
660
+ internalType: 'address',
661
+ name: 'participant',
662
+ type: 'address',
663
+ },
664
+ {
665
+ internalType: 'int256',
666
+ name: 'score',
667
+ type: 'int256',
668
+ },
669
+ ],
670
+ internalType: 'struct AVLTreeLib.ParticipantScore[]',
671
+ name: 'participants',
672
+ type: 'tuple[]',
673
+ },
674
+ ],
675
+ stateMutability: 'view',
676
+ type: 'function',
677
+ },
678
+ {
679
+ inputs: [
680
+ {
681
+ internalType: 'bytes32',
682
+ name: 'role',
683
+ type: 'bytes32',
684
+ },
685
+ ],
686
+ name: 'getRoleAdmin',
687
+ outputs: [
688
+ {
689
+ internalType: 'bytes32',
690
+ name: '',
691
+ type: 'bytes32',
692
+ },
693
+ ],
694
+ stateMutability: 'view',
91
695
  type: 'function',
92
696
  },
93
697
  {
94
698
  inputs: [
95
699
  {
96
700
  internalType: 'uint256',
97
- name: 'from',
98
- type: 'uint256',
99
- },
100
- {
101
- internalType: 'uint256',
102
- name: 'to',
701
+ name: 'count',
103
702
  type: 'uint256',
104
703
  },
105
- {
106
- internalType: 'enum Campaign.Status',
107
- name: 'status',
108
- type: 'uint8',
109
- },
110
704
  ],
111
- name: 'getContentRange',
705
+ name: 'getTopParticipants',
112
706
  outputs: [
113
707
  {
114
708
  components: [
115
- {
116
- internalType: 'enum Campaign.Status',
117
- name: 'status',
118
- type: 'uint8',
119
- },
120
709
  {
121
710
  internalType: 'address',
122
711
  name: 'participant',
123
712
  type: 'address',
124
713
  },
125
714
  {
126
- internalType: 'string',
127
- name: 'link',
128
- type: 'string',
129
- },
130
- {
131
- internalType: 'bytes32',
132
- name: 'contentHash',
133
- type: 'bytes32',
715
+ internalType: 'int256',
716
+ name: 'score',
717
+ type: 'int256',
134
718
  },
135
719
  ],
136
- internalType: 'struct Campaign.Content[]',
137
- name: 'result',
720
+ internalType: 'struct AVLTreeLib.ParticipantScore[]',
721
+ name: 'participants',
138
722
  type: 'tuple[]',
139
723
  },
140
724
  ],
@@ -144,41 +728,120 @@ export const abi = [
144
728
  {
145
729
  inputs: [
146
730
  {
147
- internalType: 'address',
148
- name: 'participant',
149
- type: 'address',
731
+ internalType: 'uint256',
732
+ name: 'count',
733
+ type: 'uint256',
150
734
  },
151
735
  ],
152
- name: 'getParticipantData',
736
+ name: 'getTopParticipantsInfo',
153
737
  outputs: [
154
738
  {
155
739
  components: [
156
740
  {
157
741
  components: [
742
+ {
743
+ internalType: 'uint8',
744
+ name: 'totalDayAttempts',
745
+ type: 'uint8',
746
+ },
747
+ {
748
+ internalType: 'bool',
749
+ name: 'dontHaveStrikeBonus',
750
+ type: 'bool',
751
+ },
752
+ ],
753
+ internalType: 'struct Campaign.DayParticipantInfo',
754
+ name: 'currentDayParticipantInfo',
755
+ type: 'tuple',
756
+ },
757
+ {
758
+ components: [
759
+ {
760
+ internalType: 'bool',
761
+ name: 'isParticipantRegistered',
762
+ type: 'bool',
763
+ },
764
+ {
765
+ internalType: 'bool',
766
+ name: 'isRewardClaimed',
767
+ type: 'bool',
768
+ },
769
+ {
770
+ internalType: 'address',
771
+ name: 'referrer',
772
+ type: 'address',
773
+ },
774
+ {
775
+ internalType: 'uint256',
776
+ name: 'referralsCount',
777
+ type: 'uint256',
778
+ },
158
779
  {
159
780
  internalType: 'int256',
160
- name: 'points',
781
+ name: 'totalReferrerProfit',
161
782
  type: 'int256',
162
783
  },
163
784
  {
164
785
  internalType: 'uint256',
165
- name: 'index',
786
+ name: 'totalAddedLinks',
787
+ type: 'uint256',
788
+ },
789
+ {
790
+ internalType: 'uint256',
791
+ name: 'totalDuplicatedLinks',
792
+ type: 'uint256',
793
+ },
794
+ {
795
+ internalType: 'uint256',
796
+ name: 'totalValidatedLinks',
797
+ type: 'uint256',
798
+ },
799
+ {
800
+ internalType: 'uint256',
801
+ name: 'totalInvalidLinks',
166
802
  type: 'uint256',
167
803
  },
168
804
  ],
169
- internalType: 'struct Campaign.PointsData',
170
- name: 'pointsData',
805
+ internalType: 'struct Campaign.ParticipantInfo',
806
+ name: 'storedInfo',
171
807
  type: 'tuple',
172
808
  },
173
809
  {
174
- internalType: 'address',
175
- name: 'referrer',
176
- type: 'address',
810
+ components: [
811
+ {
812
+ internalType: 'address',
813
+ name: 'participant',
814
+ type: 'address',
815
+ },
816
+ {
817
+ internalType: 'uint256',
818
+ name: 'rank',
819
+ type: 'uint256',
820
+ },
821
+ {
822
+ internalType: 'int256',
823
+ name: 'score',
824
+ type: 'int256',
825
+ },
826
+ {
827
+ internalType: 'uint256',
828
+ name: 'reward',
829
+ type: 'uint256',
830
+ },
831
+ {
832
+ internalType: 'uint256',
833
+ name: 'points',
834
+ type: 'uint256',
835
+ },
836
+ ],
837
+ internalType: 'struct Campaign.ParticipantInfoViewed',
838
+ name: 'viewedInfo',
839
+ type: 'tuple',
177
840
  },
178
841
  ],
179
- internalType: 'struct Campaign.ParticipantData',
180
- name: '',
181
- type: 'tuple',
842
+ internalType: 'struct Campaign.FullParticipantInfo[]',
843
+ name: 'datas',
844
+ type: 'tuple[]',
182
845
  },
183
846
  ],
184
847
  stateMutability: 'view',
@@ -186,39 +849,54 @@ export const abi = [
186
849
  },
187
850
  {
188
851
  inputs: [],
189
- name: 'getStat',
852
+ name: 'getTotalParticipants',
190
853
  outputs: [
191
854
  {
192
- components: [
193
- {
194
- internalType: 'uint256',
195
- name: 'totalParticipants',
196
- type: 'uint256',
197
- },
198
- {
199
- internalType: 'int256',
200
- name: 'maxPoint',
201
- type: 'int256',
202
- },
203
- {
204
- internalType: 'int256',
205
- name: 'minPoint',
206
- type: 'int256',
207
- },
208
- {
209
- internalType: 'uint256',
210
- name: 'totalValidatedLink',
211
- type: 'uint256',
212
- },
213
- {
214
- internalType: 'uint256',
215
- name: 'totalNotValidatedLinks',
216
- type: 'uint256',
217
- },
218
- ],
219
- internalType: 'struct Campaign.Stat',
855
+ internalType: 'uint256',
856
+ name: 'count',
857
+ type: 'uint256',
858
+ },
859
+ ],
860
+ stateMutability: 'view',
861
+ type: 'function',
862
+ },
863
+ {
864
+ inputs: [
865
+ {
866
+ internalType: 'bytes32',
867
+ name: 'role',
868
+ type: 'bytes32',
869
+ },
870
+ {
871
+ internalType: 'address',
872
+ name: 'account',
873
+ type: 'address',
874
+ },
875
+ ],
876
+ name: 'grantRole',
877
+ outputs: [],
878
+ stateMutability: 'nonpayable',
879
+ type: 'function',
880
+ },
881
+ {
882
+ inputs: [
883
+ {
884
+ internalType: 'bytes32',
885
+ name: 'role',
886
+ type: 'bytes32',
887
+ },
888
+ {
889
+ internalType: 'address',
890
+ name: 'account',
891
+ type: 'address',
892
+ },
893
+ ],
894
+ name: 'hasRole',
895
+ outputs: [
896
+ {
897
+ internalType: 'bool',
220
898
  name: '',
221
- type: 'tuple',
899
+ type: 'bool',
222
900
  },
223
901
  ],
224
902
  stateMutability: 'view',
@@ -227,17 +905,35 @@ export const abi = [
227
905
  {
228
906
  inputs: [
229
907
  {
230
- internalType: 'int256',
231
- name: 'pointCount',
232
- type: 'int256',
908
+ internalType: 'string',
909
+ name: 'link',
910
+ type: 'string',
911
+ },
912
+ ],
913
+ name: 'isLinkUnique',
914
+ outputs: [
915
+ {
916
+ internalType: 'string',
917
+ name: 'clearedLink',
918
+ type: 'string',
919
+ },
920
+ {
921
+ internalType: 'bool',
922
+ name: 'isUnique',
923
+ type: 'bool',
233
924
  },
234
925
  ],
235
- name: 'getStatsByPoints',
926
+ stateMutability: 'view',
927
+ type: 'function',
928
+ },
929
+ {
930
+ inputs: [],
931
+ name: 'maxDayAttempts',
236
932
  outputs: [
237
933
  {
238
- internalType: 'address[]',
934
+ internalType: 'uint8',
239
935
  name: '',
240
- type: 'address[]',
936
+ type: 'uint8',
241
937
  },
242
938
  ],
243
939
  stateMutability: 'view',
@@ -273,36 +969,81 @@ export const abi = [
273
969
  inputs: [
274
970
  {
275
971
  internalType: 'address',
276
- name: '',
972
+ name: 'participant',
277
973
  type: 'address',
278
974
  },
279
975
  ],
280
- name: 'participantData',
976
+ name: 'participantExist',
281
977
  outputs: [
282
978
  {
283
- components: [
284
- {
285
- internalType: 'int256',
286
- name: 'points',
287
- type: 'int256',
288
- },
289
- {
290
- internalType: 'uint256',
291
- name: 'index',
292
- type: 'uint256',
293
- },
294
- ],
295
- internalType: 'struct Campaign.PointsData',
296
- name: 'pointsData',
297
- type: 'tuple',
979
+ internalType: 'bool',
980
+ name: '',
981
+ type: 'bool',
298
982
  },
983
+ ],
984
+ stateMutability: 'view',
985
+ type: 'function',
986
+ },
987
+ {
988
+ inputs: [
299
989
  {
300
990
  internalType: 'address',
301
991
  name: 'referrer',
302
992
  type: 'address',
303
993
  },
304
994
  ],
305
- stateMutability: 'view',
995
+ name: 'registerParticipant',
996
+ outputs: [],
997
+ stateMutability: 'nonpayable',
998
+ type: 'function',
999
+ },
1000
+ {
1001
+ inputs: [
1002
+ {
1003
+ internalType: 'bytes32',
1004
+ name: 'role',
1005
+ type: 'bytes32',
1006
+ },
1007
+ {
1008
+ internalType: 'address',
1009
+ name: 'account',
1010
+ type: 'address',
1011
+ },
1012
+ ],
1013
+ name: 'renounceRole',
1014
+ outputs: [],
1015
+ stateMutability: 'nonpayable',
1016
+ type: 'function',
1017
+ },
1018
+ {
1019
+ inputs: [
1020
+ {
1021
+ internalType: 'bytes32',
1022
+ name: 'role',
1023
+ type: 'bytes32',
1024
+ },
1025
+ {
1026
+ internalType: 'address',
1027
+ name: 'account',
1028
+ type: 'address',
1029
+ },
1030
+ ],
1031
+ name: 'revokeRole',
1032
+ outputs: [],
1033
+ stateMutability: 'nonpayable',
1034
+ type: 'function',
1035
+ },
1036
+ {
1037
+ inputs: [
1038
+ {
1039
+ internalType: 'address',
1040
+ name: 'participant',
1041
+ type: 'address',
1042
+ },
1043
+ ],
1044
+ name: 'revokeUser',
1045
+ outputs: [],
1046
+ stateMutability: 'nonpayable',
306
1047
  type: 'function',
307
1048
  },
308
1049
  {
@@ -319,10 +1060,22 @@ export const abi = [
319
1060
  type: 'function',
320
1061
  },
321
1062
  {
322
- inputs: [],
323
- name: 'sendRewards',
324
- outputs: [],
325
- stateMutability: 'nonpayable',
1063
+ inputs: [
1064
+ {
1065
+ internalType: 'bytes4',
1066
+ name: 'interfaceId',
1067
+ type: 'bytes4',
1068
+ },
1069
+ ],
1070
+ name: 'supportsInterface',
1071
+ outputs: [
1072
+ {
1073
+ internalType: 'bool',
1074
+ name: '',
1075
+ type: 'bool',
1076
+ },
1077
+ ],
1078
+ stateMutability: 'view',
326
1079
  type: 'function',
327
1080
  },
328
1081
  {
@@ -348,6 +1101,19 @@ export const abi = [
348
1101
  stateMutability: 'nonpayable',
349
1102
  type: 'function',
350
1103
  },
1104
+ {
1105
+ inputs: [],
1106
+ name: 'usdt',
1107
+ outputs: [
1108
+ {
1109
+ internalType: 'address',
1110
+ name: '',
1111
+ type: 'address',
1112
+ },
1113
+ ],
1114
+ stateMutability: 'view',
1115
+ type: 'function',
1116
+ },
351
1117
  ];
352
1118
  export default abi;
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL0NhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUF1QixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxnQkFBeUIsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakI7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLFlBQVksRUFBRSxRQUFRO2dCQUN0QixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLGFBQWE7S0FDcEI7SUFDRDtRQUNFLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsSUFBSTtnQkFDYixZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLEtBQUs7Z0JB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
1119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL0NhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG9CQUE2QixDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUF1QixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxnQkFBeUIsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsY0FBdUIsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsZUFBd0IsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBMkIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsYUFBc0IsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsYUFBc0IsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsY0FBdUIsQ0FBQztBQVdwRCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakI7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsUUFBUTtnQkFDdEIsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNEO2dCQUNFLFlBQVksRUFBRSxRQUFRO2dCQUN0QixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixJQUFJLEVBQUUsUUFBUTthQUNmO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsT0FBTztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQjtZQUNEO2dCQUNFLFlBQVksRUFBRSxPQUFPO2dCQUNyQixJQUFJ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