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