@namehash/ens-referrals 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +131 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +143 -13
- package/dist/index.d.ts +143 -13
- package/dist/index.js +131 -40
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -279,6 +279,31 @@ interface AwardedReferrerMetrics extends RankedReferrerMetrics {
|
|
|
279
279
|
}
|
|
280
280
|
declare const validateAwardedReferrerMetrics: (referrer: AwardedReferrerMetrics, rules: ReferralProgramRules) => void;
|
|
281
281
|
declare const buildAwardedReferrerMetrics: (referrer: RankedReferrerMetrics, aggregatedMetrics: AggregatedReferrerMetrics, rules: ReferralProgramRules) => AwardedReferrerMetrics;
|
|
282
|
+
/**
|
|
283
|
+
* Extends {@link AwardedReferrerMetrics} but with rank set to null to represent
|
|
284
|
+
* a referrer who is not on the leaderboard (has zero referrals within the rules associated with the leaderboard).
|
|
285
|
+
*/
|
|
286
|
+
interface UnrankedReferrerMetrics extends Omit<AwardedReferrerMetrics, "rank" | "isQualified"> {
|
|
287
|
+
/**
|
|
288
|
+
* The referrer is not on the leaderboard and therefore has no rank.
|
|
289
|
+
*/
|
|
290
|
+
rank: null;
|
|
291
|
+
/**
|
|
292
|
+
* Always false for unranked referrers.
|
|
293
|
+
*/
|
|
294
|
+
isQualified: false;
|
|
295
|
+
}
|
|
296
|
+
declare const validateUnrankedReferrerMetrics: (metrics: UnrankedReferrerMetrics) => void;
|
|
297
|
+
/**
|
|
298
|
+
* Build an unranked zero-score referrer record for a referrer address that is not in the leaderboard.
|
|
299
|
+
*
|
|
300
|
+
* This is useful when you want to return a referrer record for an address that has no referrals
|
|
301
|
+
* and is not qualified for the leaderboard.
|
|
302
|
+
*
|
|
303
|
+
* @param referrer - The referrer address
|
|
304
|
+
* @returns An {@link UnrankedReferrerMetrics} with zero values for all metrics and null rank
|
|
305
|
+
*/
|
|
306
|
+
declare const buildUnrankedReferrerMetrics: (referrer: Address) => UnrankedReferrerMetrics;
|
|
282
307
|
|
|
283
308
|
/**
|
|
284
309
|
* Represents aggregated metrics for a list of `RankedReferrerMetrics`.
|
|
@@ -404,7 +429,7 @@ declare const REFERRERS_PER_LEADERBOARD_PAGE_MAX = 100;
|
|
|
404
429
|
/**
|
|
405
430
|
* Pagination params for leaderboard queries.
|
|
406
431
|
*/
|
|
407
|
-
interface
|
|
432
|
+
interface ReferrerLeaderboardPageParams {
|
|
408
433
|
/**
|
|
409
434
|
* Requested referrer leaderboard page number (1-indexed)
|
|
410
435
|
* @invariant Must be a positive integer (>= 1)
|
|
@@ -416,10 +441,10 @@ interface ReferrerLeaderboardPaginationParams {
|
|
|
416
441
|
* @invariant Must be a positive integer (>= 1) and less than or equal to {@link REFERRERS_PER_LEADERBOARD_PAGE_MAX}
|
|
417
442
|
* @default {@link REFERRERS_PER_LEADERBOARD_PAGE_DEFAULT}
|
|
418
443
|
*/
|
|
419
|
-
|
|
444
|
+
recordsPerPage?: number;
|
|
420
445
|
}
|
|
421
|
-
declare const
|
|
422
|
-
interface
|
|
446
|
+
declare const buildReferrerLeaderboardPageParams: (params: ReferrerLeaderboardPageParams) => Required<ReferrerLeaderboardPageParams>;
|
|
447
|
+
interface ReferrerLeaderboardPageContext extends Required<ReferrerLeaderboardPageParams> {
|
|
423
448
|
/**
|
|
424
449
|
* Total number of referrers across all leaderboard pages
|
|
425
450
|
* @invariant Guaranteed to be a non-negative integer (>= 0)
|
|
@@ -432,7 +457,7 @@ interface ReferrerLeaderboardPaginationContext extends Required<ReferrerLeaderbo
|
|
|
432
457
|
totalPages: number;
|
|
433
458
|
/**
|
|
434
459
|
* Indicates if there is a next page available
|
|
435
|
-
* @invariant true if and only if (`page` * `
|
|
460
|
+
* @invariant true if and only if (`page` * `recordsPerPage` < `total`)
|
|
436
461
|
*/
|
|
437
462
|
hasNext: boolean;
|
|
438
463
|
/**
|
|
@@ -460,8 +485,8 @@ interface ReferrerLeaderboardPaginationContext extends Required<ReferrerLeaderbo
|
|
|
460
485
|
*/
|
|
461
486
|
endIndex?: number;
|
|
462
487
|
}
|
|
463
|
-
declare const
|
|
464
|
-
declare const
|
|
488
|
+
declare const validateReferrerLeaderboardPageContext: (context: ReferrerLeaderboardPageContext) => void;
|
|
489
|
+
declare const buildReferrerLeaderboardPageContext: (optionalParams: ReferrerLeaderboardPageParams, leaderboard: ReferrerLeaderboard) => ReferrerLeaderboardPageContext;
|
|
465
490
|
/**
|
|
466
491
|
* A page of referrers from the referrer leaderboard.
|
|
467
492
|
*/
|
|
@@ -473,9 +498,9 @@ interface ReferrerLeaderboardPage {
|
|
|
473
498
|
rules: ReferralProgramRules;
|
|
474
499
|
/**
|
|
475
500
|
* Ordered list of {@link AwardedReferrerMetrics} for the {@link ReferrerLeaderboardPage}
|
|
476
|
-
* described by `
|
|
501
|
+
* described by `pageContext` within the related {@link ReferrerLeaderboard}.
|
|
477
502
|
*
|
|
478
|
-
* @invariant Array will be empty if `
|
|
503
|
+
* @invariant Array will be empty if `pageContext.totalRecords` is 0.
|
|
479
504
|
* @invariant Array entries are ordered by `rank` (descending).
|
|
480
505
|
*/
|
|
481
506
|
referrers: AwardedReferrerMetrics[];
|
|
@@ -484,16 +509,16 @@ interface ReferrerLeaderboardPage {
|
|
|
484
509
|
*/
|
|
485
510
|
aggregatedMetrics: AggregatedReferrerMetrics;
|
|
486
511
|
/**
|
|
487
|
-
* The {@link
|
|
512
|
+
* The {@link ReferrerLeaderboardPageContext} of this {@link ReferrerLeaderboardPage} relative to the overall
|
|
488
513
|
* {@link ReferrerLeaderboard}.
|
|
489
514
|
*/
|
|
490
|
-
|
|
515
|
+
pageContext: ReferrerLeaderboardPageContext;
|
|
491
516
|
/**
|
|
492
517
|
* The {@link UnixTimestamp} of when the data used to build the {@link ReferrerLeaderboardPage} was accurate as of.
|
|
493
518
|
*/
|
|
494
519
|
accurateAsOf: UnixTimestamp;
|
|
495
520
|
}
|
|
496
|
-
declare const getReferrerLeaderboardPage: (
|
|
521
|
+
declare const getReferrerLeaderboardPage: (pageParams: ReferrerLeaderboardPageParams, leaderboard: ReferrerLeaderboard) => ReferrerLeaderboardPage;
|
|
497
522
|
|
|
498
523
|
/**
|
|
499
524
|
* Build a URL to the official ENS manager app
|
|
@@ -507,4 +532,109 @@ declare const isPositiveInteger: (value: number) => boolean;
|
|
|
507
532
|
declare const validateNonNegativeInteger: (value: number) => void;
|
|
508
533
|
declare const isFiniteNonNegativeNumber: (value: number) => boolean;
|
|
509
534
|
|
|
510
|
-
|
|
535
|
+
/**
|
|
536
|
+
* The type of referrer detail data.
|
|
537
|
+
*/
|
|
538
|
+
declare const ReferrerDetailTypeIds: {
|
|
539
|
+
/**
|
|
540
|
+
* Represents a referrer who is ranked on the leaderboard.
|
|
541
|
+
*/
|
|
542
|
+
readonly Ranked: "ranked";
|
|
543
|
+
/**
|
|
544
|
+
* Represents a referrer who is not ranked on the leaderboard.
|
|
545
|
+
*/
|
|
546
|
+
readonly Unranked: "unranked";
|
|
547
|
+
};
|
|
548
|
+
/**
|
|
549
|
+
* The derived string union of possible {@link ReferrerDetailTypeIds}.
|
|
550
|
+
*/
|
|
551
|
+
type ReferrerDetailTypeId = (typeof ReferrerDetailTypeIds)[keyof typeof ReferrerDetailTypeIds];
|
|
552
|
+
/**
|
|
553
|
+
* Referrer detail data for a specific referrer address on the leaderboard.
|
|
554
|
+
*
|
|
555
|
+
* Includes the referrer's awarded metrics from the leaderboard plus timestamp.
|
|
556
|
+
*
|
|
557
|
+
* Invariants:
|
|
558
|
+
* - `type` is always {@link ReferrerDetailTypeIds.Ranked}.
|
|
559
|
+
*
|
|
560
|
+
* @see {@link AwardedReferrerMetrics}
|
|
561
|
+
*/
|
|
562
|
+
interface ReferrerDetailRanked {
|
|
563
|
+
/**
|
|
564
|
+
* The type of referrer detail data.
|
|
565
|
+
*/
|
|
566
|
+
type: typeof ReferrerDetailTypeIds.Ranked;
|
|
567
|
+
/**
|
|
568
|
+
* The {@link ReferralProgramRules} used to calculate the {@link AwardedReferrerMetrics}.
|
|
569
|
+
*/
|
|
570
|
+
rules: ReferralProgramRules;
|
|
571
|
+
/**
|
|
572
|
+
* The awarded referrer metrics from the leaderboard.
|
|
573
|
+
*
|
|
574
|
+
* Contains all calculated metrics including score, rank, qualification status,
|
|
575
|
+
* and award pool share information.
|
|
576
|
+
*/
|
|
577
|
+
referrer: AwardedReferrerMetrics;
|
|
578
|
+
/**
|
|
579
|
+
* Aggregated metrics for all referrers on the leaderboard.
|
|
580
|
+
*/
|
|
581
|
+
aggregatedMetrics: AggregatedReferrerMetrics;
|
|
582
|
+
/**
|
|
583
|
+
* The {@link UnixTimestamp} of when the data used to build the {@link ReferrerDetailData} was accurate as of.
|
|
584
|
+
*/
|
|
585
|
+
accurateAsOf: UnixTimestamp;
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* Referrer detail data for a specific referrer address NOT on the leaderboard.
|
|
589
|
+
*
|
|
590
|
+
* Includes the referrer's unranked metrics (with null rank and isQualified: false) plus timestamp.
|
|
591
|
+
*
|
|
592
|
+
* Invariants:
|
|
593
|
+
* - `type` is always {@link ReferrerDetailTypeIds.Unranked}.
|
|
594
|
+
*
|
|
595
|
+
* @see {@link UnrankedReferrerMetrics}
|
|
596
|
+
*/
|
|
597
|
+
interface ReferrerDetailUnranked {
|
|
598
|
+
/**
|
|
599
|
+
* The type of referrer detail data.
|
|
600
|
+
*/
|
|
601
|
+
type: typeof ReferrerDetailTypeIds.Unranked;
|
|
602
|
+
/**
|
|
603
|
+
* The {@link ReferralProgramRules} used to calculate the {@link UnrankedReferrerMetrics}.
|
|
604
|
+
*/
|
|
605
|
+
rules: ReferralProgramRules;
|
|
606
|
+
/**
|
|
607
|
+
* The unranked referrer metrics (not on the leaderboard).
|
|
608
|
+
*
|
|
609
|
+
* Contains all calculated metrics with rank set to null and isQualified set to false.
|
|
610
|
+
*/
|
|
611
|
+
referrer: UnrankedReferrerMetrics;
|
|
612
|
+
/**
|
|
613
|
+
* Aggregated metrics for all referrers on the leaderboard.
|
|
614
|
+
*/
|
|
615
|
+
aggregatedMetrics: AggregatedReferrerMetrics;
|
|
616
|
+
/**
|
|
617
|
+
* The {@link UnixTimestamp} of when the data used to build the {@link UnrankedReferrerDetailData} was accurate as of.
|
|
618
|
+
*/
|
|
619
|
+
accurateAsOf: UnixTimestamp;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Referrer detail data for a specific referrer address.
|
|
623
|
+
*
|
|
624
|
+
* Use the `type` field to determine the specific type interpretation
|
|
625
|
+
* at runtime.
|
|
626
|
+
*/
|
|
627
|
+
type ReferrerDetail = ReferrerDetailRanked | ReferrerDetailUnranked;
|
|
628
|
+
/**
|
|
629
|
+
* Get the detail for a specific referrer from the leaderboard.
|
|
630
|
+
*
|
|
631
|
+
* Returns a {@link ReferrerDetailRanked} if the referrer is on the leaderboard,
|
|
632
|
+
* or a {@link ReferrerDetailUnranked} if the referrer has no referrals.
|
|
633
|
+
*
|
|
634
|
+
* @param referrer - The referrer address to look up
|
|
635
|
+
* @param leaderboard - The referrer leaderboard to query
|
|
636
|
+
* @returns The appropriate {@link ReferrerDetail} (ranked or unranked)
|
|
637
|
+
*/
|
|
638
|
+
declare const getReferrerDetail: (referrer: Address, leaderboard: ReferrerLeaderboard) => ReferrerDetail;
|
|
639
|
+
|
|
640
|
+
export { type AccountId, type AggregatedReferrerMetrics, type AwardedReferrerMetrics, type ChainId, type Duration, ENCODED_REFERRER_BYTE_LENGTH, ENCODED_REFERRER_BYTE_OFFSET, ENS_HOLIDAY_AWARDS_END_DATE, ENS_HOLIDAY_AWARDS_MAX_QUALIFIED_REFERRERS, ENS_HOLIDAY_AWARDS_START_DATE, ENS_HOLIDAY_AWARDS_TOTAL_AWARD_POOL_VALUE, EXPECTED_ENCODED_REFERRER_PADDING, type EncodedReferrer, REFERRERS_PER_LEADERBOARD_PAGE_DEFAULT, REFERRERS_PER_LEADERBOARD_PAGE_MAX, type RankedReferrerMetrics, type ReferralProgramRules, type ReferrerDetail, type ReferrerDetailRanked, type ReferrerDetailTypeId, ReferrerDetailTypeIds, type ReferrerDetailUnranked, type ReferrerLeaderboard, type ReferrerLeaderboardPage, type ReferrerLeaderboardPageContext, type ReferrerLeaderboardPageParams, type ReferrerMetrics, type ReferrerMetricsForComparison, type ReferrerRank, type ReferrerScore, SECONDS_PER_YEAR, type ScoredReferrerMetrics, type USDQuantity, type UnixTimestamp, type UnrankedReferrerMetrics, ZERO_ENCODED_REFERRER, buildAggregatedReferrerMetrics, buildAwardedReferrerMetrics, buildEncodedReferrer, buildEnsReferralUrl, buildRankedReferrerMetrics, buildReferralProgramRules, buildReferrerLeaderboard, buildReferrerLeaderboardPageContext, buildReferrerLeaderboardPageParams, buildReferrerMetrics, buildScoredReferrerMetrics, buildUnrankedReferrerMetrics, calcReferrerAwardPoolShare, calcReferrerFinalScore, calcReferrerFinalScoreBoost, calcReferrerFinalScoreMultiplier, calcReferrerScore, compareReferrerMetrics, decodeEncodedReferrer, getReferrerDetail, getReferrerLeaderboardPage, isFiniteNonNegativeNumber, isInteger, isNonNegativeInteger, isPositiveInteger, isReferrerQualified, isValidDuration, isValidReferrerScore, isValidUSDQuantity, normalizeAddress, sortReferrerMetrics, validateAggregatedReferrerMetrics, validateAwardedReferrerMetrics, validateDuration, validateLowercaseAddress, validateNonNegativeInteger, validateRankedReferrerMetrics, validateReferralProgramRules, validateReferrerLeaderboardPageContext, validateReferrerMetrics, validateReferrerRank, validateReferrerScore, validateScoredReferrerMetrics, validateUSDQuantity, validateUnixTimestamp, validateUnrankedReferrerMetrics };
|
package/dist/index.d.ts
CHANGED
|
@@ -279,6 +279,31 @@ interface AwardedReferrerMetrics extends RankedReferrerMetrics {
|
|
|
279
279
|
}
|
|
280
280
|
declare const validateAwardedReferrerMetrics: (referrer: AwardedReferrerMetrics, rules: ReferralProgramRules) => void;
|
|
281
281
|
declare const buildAwardedReferrerMetrics: (referrer: RankedReferrerMetrics, aggregatedMetrics: AggregatedReferrerMetrics, rules: ReferralProgramRules) => AwardedReferrerMetrics;
|
|
282
|
+
/**
|
|
283
|
+
* Extends {@link AwardedReferrerMetrics} but with rank set to null to represent
|
|
284
|
+
* a referrer who is not on the leaderboard (has zero referrals within the rules associated with the leaderboard).
|
|
285
|
+
*/
|
|
286
|
+
interface UnrankedReferrerMetrics extends Omit<AwardedReferrerMetrics, "rank" | "isQualified"> {
|
|
287
|
+
/**
|
|
288
|
+
* The referrer is not on the leaderboard and therefore has no rank.
|
|
289
|
+
*/
|
|
290
|
+
rank: null;
|
|
291
|
+
/**
|
|
292
|
+
* Always false for unranked referrers.
|
|
293
|
+
*/
|
|
294
|
+
isQualified: false;
|
|
295
|
+
}
|
|
296
|
+
declare const validateUnrankedReferrerMetrics: (metrics: UnrankedReferrerMetrics) => void;
|
|
297
|
+
/**
|
|
298
|
+
* Build an unranked zero-score referrer record for a referrer address that is not in the leaderboard.
|
|
299
|
+
*
|
|
300
|
+
* This is useful when you want to return a referrer record for an address that has no referrals
|
|
301
|
+
* and is not qualified for the leaderboard.
|
|
302
|
+
*
|
|
303
|
+
* @param referrer - The referrer address
|
|
304
|
+
* @returns An {@link UnrankedReferrerMetrics} with zero values for all metrics and null rank
|
|
305
|
+
*/
|
|
306
|
+
declare const buildUnrankedReferrerMetrics: (referrer: Address) => UnrankedReferrerMetrics;
|
|
282
307
|
|
|
283
308
|
/**
|
|
284
309
|
* Represents aggregated metrics for a list of `RankedReferrerMetrics`.
|
|
@@ -404,7 +429,7 @@ declare const REFERRERS_PER_LEADERBOARD_PAGE_MAX = 100;
|
|
|
404
429
|
/**
|
|
405
430
|
* Pagination params for leaderboard queries.
|
|
406
431
|
*/
|
|
407
|
-
interface
|
|
432
|
+
interface ReferrerLeaderboardPageParams {
|
|
408
433
|
/**
|
|
409
434
|
* Requested referrer leaderboard page number (1-indexed)
|
|
410
435
|
* @invariant Must be a positive integer (>= 1)
|
|
@@ -416,10 +441,10 @@ interface ReferrerLeaderboardPaginationParams {
|
|
|
416
441
|
* @invariant Must be a positive integer (>= 1) and less than or equal to {@link REFERRERS_PER_LEADERBOARD_PAGE_MAX}
|
|
417
442
|
* @default {@link REFERRERS_PER_LEADERBOARD_PAGE_DEFAULT}
|
|
418
443
|
*/
|
|
419
|
-
|
|
444
|
+
recordsPerPage?: number;
|
|
420
445
|
}
|
|
421
|
-
declare const
|
|
422
|
-
interface
|
|
446
|
+
declare const buildReferrerLeaderboardPageParams: (params: ReferrerLeaderboardPageParams) => Required<ReferrerLeaderboardPageParams>;
|
|
447
|
+
interface ReferrerLeaderboardPageContext extends Required<ReferrerLeaderboardPageParams> {
|
|
423
448
|
/**
|
|
424
449
|
* Total number of referrers across all leaderboard pages
|
|
425
450
|
* @invariant Guaranteed to be a non-negative integer (>= 0)
|
|
@@ -432,7 +457,7 @@ interface ReferrerLeaderboardPaginationContext extends Required<ReferrerLeaderbo
|
|
|
432
457
|
totalPages: number;
|
|
433
458
|
/**
|
|
434
459
|
* Indicates if there is a next page available
|
|
435
|
-
* @invariant true if and only if (`page` * `
|
|
460
|
+
* @invariant true if and only if (`page` * `recordsPerPage` < `total`)
|
|
436
461
|
*/
|
|
437
462
|
hasNext: boolean;
|
|
438
463
|
/**
|
|
@@ -460,8 +485,8 @@ interface ReferrerLeaderboardPaginationContext extends Required<ReferrerLeaderbo
|
|
|
460
485
|
*/
|
|
461
486
|
endIndex?: number;
|
|
462
487
|
}
|
|
463
|
-
declare const
|
|
464
|
-
declare const
|
|
488
|
+
declare const validateReferrerLeaderboardPageContext: (context: ReferrerLeaderboardPageContext) => void;
|
|
489
|
+
declare const buildReferrerLeaderboardPageContext: (optionalParams: ReferrerLeaderboardPageParams, leaderboard: ReferrerLeaderboard) => ReferrerLeaderboardPageContext;
|
|
465
490
|
/**
|
|
466
491
|
* A page of referrers from the referrer leaderboard.
|
|
467
492
|
*/
|
|
@@ -473,9 +498,9 @@ interface ReferrerLeaderboardPage {
|
|
|
473
498
|
rules: ReferralProgramRules;
|
|
474
499
|
/**
|
|
475
500
|
* Ordered list of {@link AwardedReferrerMetrics} for the {@link ReferrerLeaderboardPage}
|
|
476
|
-
* described by `
|
|
501
|
+
* described by `pageContext` within the related {@link ReferrerLeaderboard}.
|
|
477
502
|
*
|
|
478
|
-
* @invariant Array will be empty if `
|
|
503
|
+
* @invariant Array will be empty if `pageContext.totalRecords` is 0.
|
|
479
504
|
* @invariant Array entries are ordered by `rank` (descending).
|
|
480
505
|
*/
|
|
481
506
|
referrers: AwardedReferrerMetrics[];
|
|
@@ -484,16 +509,16 @@ interface ReferrerLeaderboardPage {
|
|
|
484
509
|
*/
|
|
485
510
|
aggregatedMetrics: AggregatedReferrerMetrics;
|
|
486
511
|
/**
|
|
487
|
-
* The {@link
|
|
512
|
+
* The {@link ReferrerLeaderboardPageContext} of this {@link ReferrerLeaderboardPage} relative to the overall
|
|
488
513
|
* {@link ReferrerLeaderboard}.
|
|
489
514
|
*/
|
|
490
|
-
|
|
515
|
+
pageContext: ReferrerLeaderboardPageContext;
|
|
491
516
|
/**
|
|
492
517
|
* The {@link UnixTimestamp} of when the data used to build the {@link ReferrerLeaderboardPage} was accurate as of.
|
|
493
518
|
*/
|
|
494
519
|
accurateAsOf: UnixTimestamp;
|
|
495
520
|
}
|
|
496
|
-
declare const getReferrerLeaderboardPage: (
|
|
521
|
+
declare const getReferrerLeaderboardPage: (pageParams: ReferrerLeaderboardPageParams, leaderboard: ReferrerLeaderboard) => ReferrerLeaderboardPage;
|
|
497
522
|
|
|
498
523
|
/**
|
|
499
524
|
* Build a URL to the official ENS manager app
|
|
@@ -507,4 +532,109 @@ declare const isPositiveInteger: (value: number) => boolean;
|
|
|
507
532
|
declare const validateNonNegativeInteger: (value: number) => void;
|
|
508
533
|
declare const isFiniteNonNegativeNumber: (value: number) => boolean;
|
|
509
534
|
|
|
510
|
-
|
|
535
|
+
/**
|
|
536
|
+
* The type of referrer detail data.
|
|
537
|
+
*/
|
|
538
|
+
declare const ReferrerDetailTypeIds: {
|
|
539
|
+
/**
|
|
540
|
+
* Represents a referrer who is ranked on the leaderboard.
|
|
541
|
+
*/
|
|
542
|
+
readonly Ranked: "ranked";
|
|
543
|
+
/**
|
|
544
|
+
* Represents a referrer who is not ranked on the leaderboard.
|
|
545
|
+
*/
|
|
546
|
+
readonly Unranked: "unranked";
|
|
547
|
+
};
|
|
548
|
+
/**
|
|
549
|
+
* The derived string union of possible {@link ReferrerDetailTypeIds}.
|
|
550
|
+
*/
|
|
551
|
+
type ReferrerDetailTypeId = (typeof ReferrerDetailTypeIds)[keyof typeof ReferrerDetailTypeIds];
|
|
552
|
+
/**
|
|
553
|
+
* Referrer detail data for a specific referrer address on the leaderboard.
|
|
554
|
+
*
|
|
555
|
+
* Includes the referrer's awarded metrics from the leaderboard plus timestamp.
|
|
556
|
+
*
|
|
557
|
+
* Invariants:
|
|
558
|
+
* - `type` is always {@link ReferrerDetailTypeIds.Ranked}.
|
|
559
|
+
*
|
|
560
|
+
* @see {@link AwardedReferrerMetrics}
|
|
561
|
+
*/
|
|
562
|
+
interface ReferrerDetailRanked {
|
|
563
|
+
/**
|
|
564
|
+
* The type of referrer detail data.
|
|
565
|
+
*/
|
|
566
|
+
type: typeof ReferrerDetailTypeIds.Ranked;
|
|
567
|
+
/**
|
|
568
|
+
* The {@link ReferralProgramRules} used to calculate the {@link AwardedReferrerMetrics}.
|
|
569
|
+
*/
|
|
570
|
+
rules: ReferralProgramRules;
|
|
571
|
+
/**
|
|
572
|
+
* The awarded referrer metrics from the leaderboard.
|
|
573
|
+
*
|
|
574
|
+
* Contains all calculated metrics including score, rank, qualification status,
|
|
575
|
+
* and award pool share information.
|
|
576
|
+
*/
|
|
577
|
+
referrer: AwardedReferrerMetrics;
|
|
578
|
+
/**
|
|
579
|
+
* Aggregated metrics for all referrers on the leaderboard.
|
|
580
|
+
*/
|
|
581
|
+
aggregatedMetrics: AggregatedReferrerMetrics;
|
|
582
|
+
/**
|
|
583
|
+
* The {@link UnixTimestamp} of when the data used to build the {@link ReferrerDetailData} was accurate as of.
|
|
584
|
+
*/
|
|
585
|
+
accurateAsOf: UnixTimestamp;
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* Referrer detail data for a specific referrer address NOT on the leaderboard.
|
|
589
|
+
*
|
|
590
|
+
* Includes the referrer's unranked metrics (with null rank and isQualified: false) plus timestamp.
|
|
591
|
+
*
|
|
592
|
+
* Invariants:
|
|
593
|
+
* - `type` is always {@link ReferrerDetailTypeIds.Unranked}.
|
|
594
|
+
*
|
|
595
|
+
* @see {@link UnrankedReferrerMetrics}
|
|
596
|
+
*/
|
|
597
|
+
interface ReferrerDetailUnranked {
|
|
598
|
+
/**
|
|
599
|
+
* The type of referrer detail data.
|
|
600
|
+
*/
|
|
601
|
+
type: typeof ReferrerDetailTypeIds.Unranked;
|
|
602
|
+
/**
|
|
603
|
+
* The {@link ReferralProgramRules} used to calculate the {@link UnrankedReferrerMetrics}.
|
|
604
|
+
*/
|
|
605
|
+
rules: ReferralProgramRules;
|
|
606
|
+
/**
|
|
607
|
+
* The unranked referrer metrics (not on the leaderboard).
|
|
608
|
+
*
|
|
609
|
+
* Contains all calculated metrics with rank set to null and isQualified set to false.
|
|
610
|
+
*/
|
|
611
|
+
referrer: UnrankedReferrerMetrics;
|
|
612
|
+
/**
|
|
613
|
+
* Aggregated metrics for all referrers on the leaderboard.
|
|
614
|
+
*/
|
|
615
|
+
aggregatedMetrics: AggregatedReferrerMetrics;
|
|
616
|
+
/**
|
|
617
|
+
* The {@link UnixTimestamp} of when the data used to build the {@link UnrankedReferrerDetailData} was accurate as of.
|
|
618
|
+
*/
|
|
619
|
+
accurateAsOf: UnixTimestamp;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Referrer detail data for a specific referrer address.
|
|
623
|
+
*
|
|
624
|
+
* Use the `type` field to determine the specific type interpretation
|
|
625
|
+
* at runtime.
|
|
626
|
+
*/
|
|
627
|
+
type ReferrerDetail = ReferrerDetailRanked | ReferrerDetailUnranked;
|
|
628
|
+
/**
|
|
629
|
+
* Get the detail for a specific referrer from the leaderboard.
|
|
630
|
+
*
|
|
631
|
+
* Returns a {@link ReferrerDetailRanked} if the referrer is on the leaderboard,
|
|
632
|
+
* or a {@link ReferrerDetailUnranked} if the referrer has no referrals.
|
|
633
|
+
*
|
|
634
|
+
* @param referrer - The referrer address to look up
|
|
635
|
+
* @param leaderboard - The referrer leaderboard to query
|
|
636
|
+
* @returns The appropriate {@link ReferrerDetail} (ranked or unranked)
|
|
637
|
+
*/
|
|
638
|
+
declare const getReferrerDetail: (referrer: Address, leaderboard: ReferrerLeaderboard) => ReferrerDetail;
|
|
639
|
+
|
|
640
|
+
export { type AccountId, type AggregatedReferrerMetrics, type AwardedReferrerMetrics, type ChainId, type Duration, ENCODED_REFERRER_BYTE_LENGTH, ENCODED_REFERRER_BYTE_OFFSET, ENS_HOLIDAY_AWARDS_END_DATE, ENS_HOLIDAY_AWARDS_MAX_QUALIFIED_REFERRERS, ENS_HOLIDAY_AWARDS_START_DATE, ENS_HOLIDAY_AWARDS_TOTAL_AWARD_POOL_VALUE, EXPECTED_ENCODED_REFERRER_PADDING, type EncodedReferrer, REFERRERS_PER_LEADERBOARD_PAGE_DEFAULT, REFERRERS_PER_LEADERBOARD_PAGE_MAX, type RankedReferrerMetrics, type ReferralProgramRules, type ReferrerDetail, type ReferrerDetailRanked, type ReferrerDetailTypeId, ReferrerDetailTypeIds, type ReferrerDetailUnranked, type ReferrerLeaderboard, type ReferrerLeaderboardPage, type ReferrerLeaderboardPageContext, type ReferrerLeaderboardPageParams, type ReferrerMetrics, type ReferrerMetricsForComparison, type ReferrerRank, type ReferrerScore, SECONDS_PER_YEAR, type ScoredReferrerMetrics, type USDQuantity, type UnixTimestamp, type UnrankedReferrerMetrics, ZERO_ENCODED_REFERRER, buildAggregatedReferrerMetrics, buildAwardedReferrerMetrics, buildEncodedReferrer, buildEnsReferralUrl, buildRankedReferrerMetrics, buildReferralProgramRules, buildReferrerLeaderboard, buildReferrerLeaderboardPageContext, buildReferrerLeaderboardPageParams, buildReferrerMetrics, buildScoredReferrerMetrics, buildUnrankedReferrerMetrics, calcReferrerAwardPoolShare, calcReferrerFinalScore, calcReferrerFinalScoreBoost, calcReferrerFinalScoreMultiplier, calcReferrerScore, compareReferrerMetrics, decodeEncodedReferrer, getReferrerDetail, getReferrerLeaderboardPage, isFiniteNonNegativeNumber, isInteger, isNonNegativeInteger, isPositiveInteger, isReferrerQualified, isValidDuration, isValidReferrerScore, isValidUSDQuantity, normalizeAddress, sortReferrerMetrics, validateAggregatedReferrerMetrics, validateAwardedReferrerMetrics, validateDuration, validateLowercaseAddress, validateNonNegativeInteger, validateRankedReferrerMetrics, validateReferralProgramRules, validateReferrerLeaderboardPageContext, validateReferrerMetrics, validateReferrerRank, validateReferrerScore, validateScoredReferrerMetrics, validateUSDQuantity, validateUnixTimestamp, validateUnrankedReferrerMetrics };
|