@ensnode/ensnode-sdk 0.0.0-next-20260116185203 → 0.0.0-next-20260119132859

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 CHANGED
@@ -43,11 +43,14 @@ __export(index_exports, {
43
43
  CurrencyIds: () => CurrencyIds,
44
44
  DEFAULT_EVM_CHAIN_ID: () => DEFAULT_EVM_CHAIN_ID,
45
45
  DEFAULT_EVM_COIN_TYPE: () => DEFAULT_EVM_COIN_TYPE,
46
+ ENCODED_REFERRER_BYTE_LENGTH: () => ENCODED_REFERRER_BYTE_LENGTH,
47
+ ENCODED_REFERRER_BYTE_OFFSET: () => ENCODED_REFERRER_BYTE_OFFSET,
46
48
  ENSNamespaceIds: () => import_datasources.ENSNamespaceIds,
47
49
  ENSNodeClient: () => ENSNodeClient,
48
50
  ENS_ROOT: () => ENS_ROOT,
49
51
  ETH_COIN_TYPE: () => ETH_COIN_TYPE,
50
52
  ETH_NODE: () => ETH_NODE,
53
+ EXPECTED_ENCODED_REFERRER_PADDING: () => EXPECTED_ENCODED_REFERRER_PADDING,
51
54
  ForwardResolutionProtocolStep: () => ForwardResolutionProtocolStep,
52
55
  IndexingStatusResponseCodes: () => IndexingStatusResponseCodes,
53
56
  LINEANAMES_NODE: () => LINEANAMES_NODE,
@@ -65,8 +68,6 @@ __export(index_exports, {
65
68
  RECORDS_PER_PAGE_MAX: () => RECORDS_PER_PAGE_MAX,
66
69
  ROOT_NODE: () => ROOT_NODE,
67
70
  ROOT_RESOURCE: () => ROOT_RESOURCE,
68
- ReferrerDetailResponseCodes: () => ReferrerDetailResponseCodes,
69
- ReferrerLeaderboardPageResponseCodes: () => ReferrerLeaderboardPageResponseCodes,
70
71
  RegistrarActionTypes: () => RegistrarActionTypes,
71
72
  RegistrarActionsFilterTypes: () => RegistrarActionsFilterTypes,
72
73
  RegistrarActionsOrders: () => RegistrarActionsOrders,
@@ -88,6 +89,7 @@ __export(index_exports, {
88
89
  bigIntToNumber: () => bigIntToNumber,
89
90
  bigintToCoinType: () => bigintToCoinType,
90
91
  buildAssetId: () => buildAssetId,
92
+ buildEncodedReferrer: () => buildEncodedReferrer,
91
93
  buildEnsRainbowClientLabelSet: () => buildEnsRainbowClientLabelSet,
92
94
  buildLabelSetId: () => buildLabelSetId,
93
95
  buildLabelSetVersion: () => buildLabelSetVersion,
@@ -120,8 +122,6 @@ __export(index_exports, {
120
122
  deserializeIndexingStatusResponse: () => deserializeIndexingStatusResponse,
121
123
  deserializeOmnichainIndexingStatusSnapshot: () => deserializeOmnichainIndexingStatusSnapshot,
122
124
  deserializeRealtimeIndexingStatusProjection: () => deserializeRealtimeIndexingStatusProjection,
123
- deserializeReferrerDetailResponse: () => deserializeReferrerDetailResponse,
124
- deserializeReferrerLeaderboardPageResponse: () => deserializeReferrerLeaderboardPageResponse,
125
125
  deserializeRegistrarActionsResponse: () => deserializeRegistrarActionsResponse,
126
126
  deserializeUnixTimestamp: () => deserializeUnixTimestamp,
127
127
  deserializeUrl: () => deserializeUrl,
@@ -239,8 +239,6 @@ __export(index_exports, {
239
239
  serializePrice: () => serializePrice,
240
240
  serializePriceEth: () => serializePriceEth,
241
241
  serializeRealtimeIndexingStatusProjection: () => serializeRealtimeIndexingStatusProjection,
242
- serializeReferrerDetailResponse: () => serializeReferrerDetailResponse,
243
- serializeReferrerLeaderboardPageResponse: () => serializeReferrerLeaderboardPageResponse,
244
242
  serializeRegisteredNameTokens: () => serializeRegisteredNameTokens,
245
243
  serializeRegistrarAction: () => serializeRegistrarAction,
246
244
  serializeRegistrarActionPricing: () => serializeRegistrarActionPricing,
@@ -611,13 +609,6 @@ function reinterpretName(name) {
611
609
  }
612
610
 
613
611
  // src/shared/zod-schemas.ts
614
- var makeFiniteNonNegativeNumberSchema = (valueLabel = "Value") => import_v4.z.number({
615
- // NOTE: Zod's implementation of `number` automatically rejects NaN and Infinity values.
616
- // and therefore the finite check is implicit.
617
- error: `${valueLabel} must be a finite number.`
618
- }).nonnegative({
619
- error: `${valueLabel} must be a non-negative number (>=0).`
620
- });
621
612
  var makeIntegerSchema = (valueLabel = "Value") => import_v4.z.int({
622
613
  error: `${valueLabel} must be an integer.`
623
614
  });
@@ -2812,60 +2803,43 @@ var import_v420 = require("zod/v4");
2812
2803
  var import_ens10 = require("viem/ens");
2813
2804
  var import_v419 = __toESM(require("zod/v4"), 1);
2814
2805
 
2815
- // ../ens-referrals/src/address.ts
2816
- var import_viem18 = require("viem");
2806
+ // src/registrars/zod-schemas.ts
2807
+ var import_v417 = require("zod/v4");
2817
2808
 
2818
- // ../ens-referrals/src/encoding.ts
2819
- var import_viem19 = require("viem");
2809
+ // src/registrars/encoded-referrer.ts
2810
+ var import_viem18 = require("viem");
2820
2811
  var ENCODED_REFERRER_BYTE_OFFSET = 12;
2821
2812
  var ENCODED_REFERRER_BYTE_LENGTH = 32;
2822
- var EXPECTED_ENCODED_REFERRER_PADDING = (0, import_viem19.pad)("0x", {
2813
+ var EXPECTED_ENCODED_REFERRER_PADDING = (0, import_viem18.pad)("0x", {
2823
2814
  size: ENCODED_REFERRER_BYTE_OFFSET,
2824
2815
  dir: "left"
2825
2816
  });
2826
- var ZERO_ENCODED_REFERRER = (0, import_viem19.pad)("0x", {
2817
+ var ZERO_ENCODED_REFERRER = (0, import_viem18.pad)("0x", {
2827
2818
  size: ENCODED_REFERRER_BYTE_LENGTH,
2828
2819
  dir: "left"
2829
2820
  });
2821
+ function buildEncodedReferrer(address) {
2822
+ const lowercaseAddress = address.toLowerCase();
2823
+ return (0, import_viem18.pad)(lowercaseAddress, { size: ENCODED_REFERRER_BYTE_LENGTH, dir: "left" });
2824
+ }
2830
2825
  function decodeEncodedReferrer(encodedReferrer) {
2831
- if ((0, import_viem19.size)(encodedReferrer) !== ENCODED_REFERRER_BYTE_LENGTH) {
2826
+ if ((0, import_viem18.size)(encodedReferrer) !== ENCODED_REFERRER_BYTE_LENGTH) {
2832
2827
  throw new Error(
2833
2828
  `Encoded referrer value must be represented by ${ENCODED_REFERRER_BYTE_LENGTH} bytes.`
2834
2829
  );
2835
2830
  }
2836
- const padding = (0, import_viem19.slice)(encodedReferrer, 0, ENCODED_REFERRER_BYTE_OFFSET);
2831
+ const padding = (0, import_viem18.slice)(encodedReferrer, 0, ENCODED_REFERRER_BYTE_OFFSET);
2837
2832
  if (padding !== EXPECTED_ENCODED_REFERRER_PADDING) {
2838
- return import_viem19.zeroAddress;
2833
+ return import_viem18.zeroAddress;
2839
2834
  }
2840
- const decodedReferrer = (0, import_viem19.slice)(encodedReferrer, ENCODED_REFERRER_BYTE_OFFSET);
2835
+ const decodedReferrer = (0, import_viem18.slice)(encodedReferrer, ENCODED_REFERRER_BYTE_OFFSET);
2841
2836
  try {
2842
- return (0, import_viem19.getAddress)(decodedReferrer);
2837
+ return (0, import_viem18.getAddress)(decodedReferrer);
2843
2838
  } catch {
2844
2839
  throw new Error(`Decoded referrer value must be a valid EVM address.`);
2845
2840
  }
2846
2841
  }
2847
2842
 
2848
- // ../ens-referrals/src/leaderboard-page.ts
2849
- var REFERRERS_PER_LEADERBOARD_PAGE_MAX = 100;
2850
-
2851
- // ../ens-referrals/src/link.ts
2852
- var import_viem20 = require("viem");
2853
-
2854
- // ../ens-referrals/src/referrer-detail.ts
2855
- var ReferrerDetailTypeIds = {
2856
- /**
2857
- * Represents a referrer who is ranked on the leaderboard.
2858
- */
2859
- Ranked: "ranked",
2860
- /**
2861
- * Represents a referrer who is not ranked on the leaderboard.
2862
- */
2863
- Unranked: "unranked"
2864
- };
2865
-
2866
- // src/registrars/zod-schemas.ts
2867
- var import_v417 = require("zod/v4");
2868
-
2869
2843
  // src/registrars/registrar-action.ts
2870
2844
  var RegistrarActionTypes = {
2871
2845
  Registration: "registration",
@@ -3433,409 +3407,6 @@ var ClientError = class _ClientError extends Error {
3433
3407
  }
3434
3408
  };
3435
3409
 
3436
- // src/ensanalytics/deserialize.ts
3437
- var import_v423 = require("zod/v4");
3438
-
3439
- // src/ensanalytics/zod-schemas.ts
3440
- var import_v422 = __toESM(require("zod/v4"), 1);
3441
-
3442
- // src/ensanalytics/types.ts
3443
- var ReferrerLeaderboardPageResponseCodes = {
3444
- /**
3445
- * Represents that the requested referrer leaderboard page is available.
3446
- */
3447
- Ok: "ok",
3448
- /**
3449
- * Represents that the referrer leaderboard data is not available.
3450
- */
3451
- Error: "error"
3452
- };
3453
- var ReferrerDetailResponseCodes = {
3454
- /**
3455
- * Represents that the referrer detail data is available.
3456
- */
3457
- Ok: "ok",
3458
- /**
3459
- * Represents that an error occurred while fetching the data.
3460
- */
3461
- Error: "error"
3462
- };
3463
-
3464
- // src/ensanalytics/zod-schemas.ts
3465
- var makeRevenueContributionSchema = (valueLabel = "RevenueContribution") => import_v422.default.coerce.bigint({
3466
- error: `${valueLabel} must represent a bigint.`
3467
- }).nonnegative({
3468
- error: `${valueLabel} must not be negative.`
3469
- });
3470
- var makeReferralProgramRulesSchema = (valueLabel = "ReferralProgramRules") => import_v422.default.object({
3471
- totalAwardPoolValue: makeFiniteNonNegativeNumberSchema(`${valueLabel}.totalAwardPoolValue`),
3472
- maxQualifiedReferrers: makeNonNegativeIntegerSchema(`${valueLabel}.maxQualifiedReferrers`),
3473
- startTime: makeUnixTimestampSchema(`${valueLabel}.startTime`),
3474
- endTime: makeUnixTimestampSchema(`${valueLabel}.endTime`),
3475
- subregistryId: makeAccountIdSchema(`${valueLabel}.subregistryId`)
3476
- });
3477
- var makeAwardedReferrerMetricsSchema = (valueLabel = "AwardedReferrerMetrics") => import_v422.default.object({
3478
- referrer: makeLowercaseAddressSchema(`${valueLabel}.referrer`),
3479
- totalReferrals: makeNonNegativeIntegerSchema(`${valueLabel}.totalReferrals`),
3480
- totalIncrementalDuration: makeDurationSchema(`${valueLabel}.totalIncrementalDuration`),
3481
- totalRevenueContribution: makeRevenueContributionSchema(
3482
- `${valueLabel}.totalRevenueContribution`
3483
- ),
3484
- score: makeFiniteNonNegativeNumberSchema(`${valueLabel}.score`),
3485
- rank: makePositiveIntegerSchema(`${valueLabel}.rank`),
3486
- isQualified: import_v422.default.boolean(),
3487
- finalScoreBoost: makeFiniteNonNegativeNumberSchema(`${valueLabel}.finalScoreBoost`).max(
3488
- 1,
3489
- `${valueLabel}.finalScoreBoost must be <= 1`
3490
- ),
3491
- finalScore: makeFiniteNonNegativeNumberSchema(`${valueLabel}.finalScore`),
3492
- awardPoolShare: makeFiniteNonNegativeNumberSchema(`${valueLabel}.awardPoolShare`).max(
3493
- 1,
3494
- `${valueLabel}.awardPoolShare must be <= 1`
3495
- ),
3496
- awardPoolApproxValue: makeFiniteNonNegativeNumberSchema(`${valueLabel}.awardPoolApproxValue`)
3497
- });
3498
- var makeUnrankedReferrerMetricsSchema = (valueLabel = "UnrankedReferrerMetrics") => import_v422.default.object({
3499
- referrer: makeLowercaseAddressSchema(`${valueLabel}.referrer`),
3500
- totalReferrals: makeNonNegativeIntegerSchema(`${valueLabel}.totalReferrals`),
3501
- totalIncrementalDuration: makeDurationSchema(`${valueLabel}.totalIncrementalDuration`),
3502
- totalRevenueContribution: makeRevenueContributionSchema(
3503
- `${valueLabel}.totalRevenueContribution`
3504
- ),
3505
- score: makeFiniteNonNegativeNumberSchema(`${valueLabel}.score`),
3506
- rank: import_v422.default.null(),
3507
- isQualified: import_v422.default.literal(false),
3508
- finalScoreBoost: makeFiniteNonNegativeNumberSchema(`${valueLabel}.finalScoreBoost`).max(
3509
- 1,
3510
- `${valueLabel}.finalScoreBoost must be <= 1`
3511
- ),
3512
- finalScore: makeFiniteNonNegativeNumberSchema(`${valueLabel}.finalScore`),
3513
- awardPoolShare: makeFiniteNonNegativeNumberSchema(`${valueLabel}.awardPoolShare`).max(
3514
- 1,
3515
- `${valueLabel}.awardPoolShare must be <= 1`
3516
- ),
3517
- awardPoolApproxValue: makeFiniteNonNegativeNumberSchema(`${valueLabel}.awardPoolApproxValue`)
3518
- });
3519
- var makeAggregatedReferrerMetricsSchema = (valueLabel = "AggregatedReferrerMetrics") => import_v422.default.object({
3520
- grandTotalReferrals: makeNonNegativeIntegerSchema(`${valueLabel}.grandTotalReferrals`),
3521
- grandTotalIncrementalDuration: makeDurationSchema(
3522
- `${valueLabel}.grandTotalIncrementalDuration`
3523
- ),
3524
- grandTotalRevenueContribution: makeRevenueContributionSchema(
3525
- `${valueLabel}.grandTotalRevenueContribution`
3526
- ),
3527
- grandTotalQualifiedReferrersFinalScore: makeFiniteNonNegativeNumberSchema(
3528
- `${valueLabel}.grandTotalQualifiedReferrersFinalScore`
3529
- ),
3530
- minFinalScoreToQualify: makeFiniteNonNegativeNumberSchema(
3531
- `${valueLabel}.minFinalScoreToQualify`
3532
- )
3533
- });
3534
- var makeReferrerLeaderboardPageContextSchema = (valueLabel = "ReferrerLeaderboardPageContext") => import_v422.default.object({
3535
- page: makePositiveIntegerSchema(`${valueLabel}.page`),
3536
- recordsPerPage: makePositiveIntegerSchema(`${valueLabel}.recordsPerPage`).max(
3537
- REFERRERS_PER_LEADERBOARD_PAGE_MAX,
3538
- `${valueLabel}.recordsPerPage must not exceed ${REFERRERS_PER_LEADERBOARD_PAGE_MAX}`
3539
- ),
3540
- totalRecords: makeNonNegativeIntegerSchema(`${valueLabel}.totalRecords`),
3541
- totalPages: makePositiveIntegerSchema(`${valueLabel}.totalPages`),
3542
- hasNext: import_v422.default.boolean(),
3543
- hasPrev: import_v422.default.boolean(),
3544
- startIndex: import_v422.default.optional(makeNonNegativeIntegerSchema(`${valueLabel}.startIndex`)),
3545
- endIndex: import_v422.default.optional(makeNonNegativeIntegerSchema(`${valueLabel}.endIndex`))
3546
- });
3547
- var makeReferrerLeaderboardPageSchema = (valueLabel = "ReferrerLeaderboardPage") => import_v422.default.object({
3548
- rules: makeReferralProgramRulesSchema(`${valueLabel}.rules`),
3549
- referrers: import_v422.default.array(makeAwardedReferrerMetricsSchema(`${valueLabel}.referrers[record]`)),
3550
- aggregatedMetrics: makeAggregatedReferrerMetricsSchema(`${valueLabel}.aggregatedMetrics`),
3551
- pageContext: makeReferrerLeaderboardPageContextSchema(`${valueLabel}.pageContext`),
3552
- accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
3553
- });
3554
- var makeReferrerLeaderboardPageResponseOkSchema = (valueLabel = "ReferrerLeaderboardPageResponseOk") => import_v422.default.object({
3555
- responseCode: import_v422.default.literal(ReferrerLeaderboardPageResponseCodes.Ok),
3556
- data: makeReferrerLeaderboardPageSchema(`${valueLabel}.data`)
3557
- });
3558
- var makeReferrerLeaderboardPageResponseErrorSchema = (_valueLabel = "ReferrerLeaderboardPageResponseError") => import_v422.default.object({
3559
- responseCode: import_v422.default.literal(ReferrerLeaderboardPageResponseCodes.Error),
3560
- error: import_v422.default.string(),
3561
- errorMessage: import_v422.default.string()
3562
- });
3563
- var makeReferrerLeaderboardPageResponseSchema = (valueLabel = "ReferrerLeaderboardPageResponse") => import_v422.default.union([
3564
- makeReferrerLeaderboardPageResponseOkSchema(valueLabel),
3565
- makeReferrerLeaderboardPageResponseErrorSchema(valueLabel)
3566
- ]);
3567
- var makeReferrerDetailRankedSchema = (valueLabel = "ReferrerDetailRanked") => import_v422.default.object({
3568
- type: import_v422.default.literal(ReferrerDetailTypeIds.Ranked),
3569
- rules: makeReferralProgramRulesSchema(`${valueLabel}.rules`),
3570
- referrer: makeAwardedReferrerMetricsSchema(`${valueLabel}.referrer`),
3571
- aggregatedMetrics: makeAggregatedReferrerMetricsSchema(`${valueLabel}.aggregatedMetrics`),
3572
- accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
3573
- });
3574
- var makeReferrerDetailUnrankedSchema = (valueLabel = "ReferrerDetailUnranked") => import_v422.default.object({
3575
- type: import_v422.default.literal(ReferrerDetailTypeIds.Unranked),
3576
- rules: makeReferralProgramRulesSchema(`${valueLabel}.rules`),
3577
- referrer: makeUnrankedReferrerMetricsSchema(`${valueLabel}.referrer`),
3578
- aggregatedMetrics: makeAggregatedReferrerMetricsSchema(`${valueLabel}.aggregatedMetrics`),
3579
- accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
3580
- });
3581
- var makeReferrerDetailResponseOkSchema = (valueLabel = "ReferrerDetailResponse") => import_v422.default.object({
3582
- responseCode: import_v422.default.literal(ReferrerDetailResponseCodes.Ok),
3583
- data: import_v422.default.union([
3584
- makeReferrerDetailRankedSchema(`${valueLabel}.data`),
3585
- makeReferrerDetailUnrankedSchema(`${valueLabel}.data`)
3586
- ])
3587
- });
3588
- var makeReferrerDetailResponseErrorSchema = (_valueLabel = "ReferrerDetailResponse") => import_v422.default.object({
3589
- responseCode: import_v422.default.literal(ReferrerDetailResponseCodes.Error),
3590
- error: import_v422.default.string(),
3591
- errorMessage: import_v422.default.string()
3592
- });
3593
- var makeReferrerDetailResponseSchema = (valueLabel = "ReferrerDetailResponse") => import_v422.default.union([
3594
- makeReferrerDetailResponseOkSchema(valueLabel),
3595
- makeReferrerDetailResponseErrorSchema(valueLabel)
3596
- ]);
3597
-
3598
- // src/ensanalytics/deserialize.ts
3599
- function deserializeRevenueContribution(value) {
3600
- return BigInt(value);
3601
- }
3602
- function deserializeReferralProgramRules(rules) {
3603
- return rules;
3604
- }
3605
- function deserializeAwardedReferrerMetrics(metrics) {
3606
- return {
3607
- referrer: metrics.referrer,
3608
- totalReferrals: metrics.totalReferrals,
3609
- totalIncrementalDuration: metrics.totalIncrementalDuration,
3610
- totalRevenueContribution: deserializeRevenueContribution(metrics.totalRevenueContribution),
3611
- score: metrics.score,
3612
- rank: metrics.rank,
3613
- isQualified: metrics.isQualified,
3614
- finalScoreBoost: metrics.finalScoreBoost,
3615
- finalScore: metrics.finalScore,
3616
- awardPoolShare: metrics.awardPoolShare,
3617
- awardPoolApproxValue: metrics.awardPoolApproxValue
3618
- };
3619
- }
3620
- function deserializeUnrankedReferrerMetrics(metrics) {
3621
- return {
3622
- referrer: metrics.referrer,
3623
- totalReferrals: metrics.totalReferrals,
3624
- totalIncrementalDuration: metrics.totalIncrementalDuration,
3625
- totalRevenueContribution: deserializeRevenueContribution(metrics.totalRevenueContribution),
3626
- score: metrics.score,
3627
- rank: metrics.rank,
3628
- isQualified: metrics.isQualified,
3629
- finalScoreBoost: metrics.finalScoreBoost,
3630
- finalScore: metrics.finalScore,
3631
- awardPoolShare: metrics.awardPoolShare,
3632
- awardPoolApproxValue: metrics.awardPoolApproxValue
3633
- };
3634
- }
3635
- function deserializeAggregatedReferrerMetrics(metrics) {
3636
- return {
3637
- grandTotalReferrals: metrics.grandTotalReferrals,
3638
- grandTotalIncrementalDuration: metrics.grandTotalIncrementalDuration,
3639
- grandTotalRevenueContribution: deserializeRevenueContribution(
3640
- metrics.grandTotalRevenueContribution
3641
- ),
3642
- grandTotalQualifiedReferrersFinalScore: metrics.grandTotalQualifiedReferrersFinalScore,
3643
- minFinalScoreToQualify: metrics.minFinalScoreToQualify
3644
- };
3645
- }
3646
- function deserializeReferrerLeaderboardPage(page) {
3647
- return {
3648
- rules: deserializeReferralProgramRules(page.rules),
3649
- referrers: page.referrers.map(deserializeAwardedReferrerMetrics),
3650
- aggregatedMetrics: deserializeAggregatedReferrerMetrics(page.aggregatedMetrics),
3651
- pageContext: page.pageContext,
3652
- accurateAsOf: page.accurateAsOf
3653
- };
3654
- }
3655
- function deserializeReferrerDetailRanked(detail) {
3656
- return {
3657
- type: detail.type,
3658
- rules: deserializeReferralProgramRules(detail.rules),
3659
- referrer: deserializeAwardedReferrerMetrics(detail.referrer),
3660
- aggregatedMetrics: deserializeAggregatedReferrerMetrics(detail.aggregatedMetrics),
3661
- accurateAsOf: detail.accurateAsOf
3662
- };
3663
- }
3664
- function deserializeReferrerDetailUnranked(detail) {
3665
- return {
3666
- type: detail.type,
3667
- rules: deserializeReferralProgramRules(detail.rules),
3668
- referrer: deserializeUnrankedReferrerMetrics(detail.referrer),
3669
- aggregatedMetrics: deserializeAggregatedReferrerMetrics(detail.aggregatedMetrics),
3670
- accurateAsOf: detail.accurateAsOf
3671
- };
3672
- }
3673
- function deserializeReferrerLeaderboardPageResponse(maybeResponse, valueLabel) {
3674
- let deserialized;
3675
- switch (maybeResponse.responseCode) {
3676
- case "ok": {
3677
- deserialized = {
3678
- responseCode: maybeResponse.responseCode,
3679
- data: deserializeReferrerLeaderboardPage(maybeResponse.data)
3680
- };
3681
- break;
3682
- }
3683
- case "error":
3684
- deserialized = maybeResponse;
3685
- break;
3686
- }
3687
- const schema = makeReferrerLeaderboardPageResponseSchema(valueLabel);
3688
- const parsed = schema.safeParse(deserialized);
3689
- if (parsed.error) {
3690
- throw new Error(
3691
- `Cannot deserialize SerializedReferrerLeaderboardPageResponse:
3692
- ${(0, import_v423.prettifyError)(parsed.error)}
3693
- `
3694
- );
3695
- }
3696
- return parsed.data;
3697
- }
3698
- function deserializeReferrerDetailResponse(maybeResponse, valueLabel) {
3699
- let deserialized;
3700
- switch (maybeResponse.responseCode) {
3701
- case "ok": {
3702
- switch (maybeResponse.data.type) {
3703
- case "ranked":
3704
- deserialized = {
3705
- responseCode: maybeResponse.responseCode,
3706
- data: deserializeReferrerDetailRanked(maybeResponse.data)
3707
- };
3708
- break;
3709
- case "unranked":
3710
- deserialized = {
3711
- responseCode: maybeResponse.responseCode,
3712
- data: deserializeReferrerDetailUnranked(maybeResponse.data)
3713
- };
3714
- break;
3715
- }
3716
- break;
3717
- }
3718
- case "error":
3719
- deserialized = maybeResponse;
3720
- break;
3721
- }
3722
- const schema = makeReferrerDetailResponseSchema(valueLabel);
3723
- const parsed = schema.safeParse(deserialized);
3724
- if (parsed.error) {
3725
- throw new Error(`Cannot deserialize ReferrerDetailResponse:
3726
- ${(0, import_v423.prettifyError)(parsed.error)}
3727
- `);
3728
- }
3729
- return parsed.data;
3730
- }
3731
-
3732
- // src/ensanalytics/serialize.ts
3733
- function serializeRevenueContribution(revenueContribution) {
3734
- return revenueContribution.toString();
3735
- }
3736
- function serializeReferralProgramRules(rules) {
3737
- return rules;
3738
- }
3739
- function serializeAwardedReferrerMetrics(metrics) {
3740
- return {
3741
- referrer: metrics.referrer,
3742
- totalReferrals: metrics.totalReferrals,
3743
- totalIncrementalDuration: metrics.totalIncrementalDuration,
3744
- totalRevenueContribution: serializeRevenueContribution(metrics.totalRevenueContribution),
3745
- score: metrics.score,
3746
- rank: metrics.rank,
3747
- isQualified: metrics.isQualified,
3748
- finalScoreBoost: metrics.finalScoreBoost,
3749
- finalScore: metrics.finalScore,
3750
- awardPoolShare: metrics.awardPoolShare,
3751
- awardPoolApproxValue: metrics.awardPoolApproxValue
3752
- };
3753
- }
3754
- function serializeUnrankedReferrerMetrics(metrics) {
3755
- return {
3756
- referrer: metrics.referrer,
3757
- totalReferrals: metrics.totalReferrals,
3758
- totalIncrementalDuration: metrics.totalIncrementalDuration,
3759
- totalRevenueContribution: serializeRevenueContribution(metrics.totalRevenueContribution),
3760
- score: metrics.score,
3761
- rank: metrics.rank,
3762
- isQualified: metrics.isQualified,
3763
- finalScoreBoost: metrics.finalScoreBoost,
3764
- finalScore: metrics.finalScore,
3765
- awardPoolShare: metrics.awardPoolShare,
3766
- awardPoolApproxValue: metrics.awardPoolApproxValue
3767
- };
3768
- }
3769
- function serializeAggregatedReferrerMetrics(metrics) {
3770
- return {
3771
- grandTotalReferrals: metrics.grandTotalReferrals,
3772
- grandTotalIncrementalDuration: metrics.grandTotalIncrementalDuration,
3773
- grandTotalRevenueContribution: serializeRevenueContribution(
3774
- metrics.grandTotalRevenueContribution
3775
- ),
3776
- grandTotalQualifiedReferrersFinalScore: metrics.grandTotalQualifiedReferrersFinalScore,
3777
- minFinalScoreToQualify: metrics.minFinalScoreToQualify
3778
- };
3779
- }
3780
- function serializeReferrerLeaderboardPage(page) {
3781
- return {
3782
- rules: serializeReferralProgramRules(page.rules),
3783
- referrers: page.referrers.map(serializeAwardedReferrerMetrics),
3784
- aggregatedMetrics: serializeAggregatedReferrerMetrics(page.aggregatedMetrics),
3785
- pageContext: page.pageContext,
3786
- accurateAsOf: page.accurateAsOf
3787
- };
3788
- }
3789
- function serializeReferrerDetailRanked(detail) {
3790
- return {
3791
- type: detail.type,
3792
- rules: serializeReferralProgramRules(detail.rules),
3793
- referrer: serializeAwardedReferrerMetrics(detail.referrer),
3794
- aggregatedMetrics: serializeAggregatedReferrerMetrics(detail.aggregatedMetrics),
3795
- accurateAsOf: detail.accurateAsOf
3796
- };
3797
- }
3798
- function serializeReferrerDetailUnranked(detail) {
3799
- return {
3800
- type: detail.type,
3801
- rules: serializeReferralProgramRules(detail.rules),
3802
- referrer: serializeUnrankedReferrerMetrics(detail.referrer),
3803
- aggregatedMetrics: serializeAggregatedReferrerMetrics(detail.aggregatedMetrics),
3804
- accurateAsOf: detail.accurateAsOf
3805
- };
3806
- }
3807
- function serializeReferrerLeaderboardPageResponse(response) {
3808
- switch (response.responseCode) {
3809
- case ReferrerLeaderboardPageResponseCodes.Ok:
3810
- return {
3811
- responseCode: response.responseCode,
3812
- data: serializeReferrerLeaderboardPage(response.data)
3813
- };
3814
- case ReferrerLeaderboardPageResponseCodes.Error:
3815
- return response;
3816
- }
3817
- }
3818
- function serializeReferrerDetailResponse(response) {
3819
- switch (response.responseCode) {
3820
- case ReferrerDetailResponseCodes.Ok:
3821
- switch (response.data.type) {
3822
- case "ranked":
3823
- return {
3824
- responseCode: response.responseCode,
3825
- data: serializeReferrerDetailRanked(response.data)
3826
- };
3827
- case "unranked":
3828
- return {
3829
- responseCode: response.responseCode,
3830
- data: serializeReferrerDetailUnranked(response.data)
3831
- };
3832
- }
3833
- break;
3834
- case ReferrerDetailResponseCodes.Error:
3835
- return response;
3836
- }
3837
- }
3838
-
3839
3410
  // src/client.ts
3840
3411
  var DEFAULT_ENSNODE_API_URL = "https://api.alpha.ensnode.io";
3841
3412
  var ENSNodeClient = class _ENSNodeClient {
@@ -4072,164 +3643,6 @@ var ENSNodeClient = class _ENSNodeClient {
4072
3643
  }
4073
3644
  return deserializeIndexingStatusResponse(responseData);
4074
3645
  }
4075
- /**
4076
- * Fetch Referrer Leaderboard Page
4077
- *
4078
- * Retrieves a paginated list of referrer leaderboard metrics with contribution percentages.
4079
- * Each referrer's contribution is calculated as a percentage of the grand totals across all referrers.
4080
- *
4081
- * @param request - Pagination parameters
4082
- * @param request.page - The page number to retrieve (1-indexed, default: 1)
4083
- * @param request.recordsPerPage - Number of records per page (default: 25, max: 100)
4084
- * @returns {ReferrerLeaderboardPageResponse}
4085
- *
4086
- * @throws if the ENSNode request fails
4087
- * @throws if the ENSNode API returns an error response
4088
- * @throws if the ENSNode response breaks required invariants
4089
- *
4090
- * @example
4091
- * ```typescript
4092
- * // Get first page with default page size (25 records)
4093
- * const response = await client.getReferrerLeaderboardPage();
4094
- * if (response.responseCode === ReferrerLeaderboardPageResponseCodes.Ok) {
4095
- * const {
4096
- * aggregatedMetrics,
4097
- * referrers,
4098
- * rules,
4099
- * pageContext,
4100
- * updatedAt
4101
- * } = response.data;
4102
- * console.log(aggregatedMetrics);
4103
- * console.log(referrers);
4104
- * console.log(rules);
4105
- * console.log(updatedAt);
4106
- * console.log(`Page ${pageContext.page} of ${pageContext.totalPages}`);
4107
- * }
4108
- * ```
4109
- *
4110
- * @example
4111
- * ```typescript
4112
- * // Get second page with 50 records per page
4113
- * const response = await client.getReferrerLeaderboardPage({ page: 2, recordsPerPage: 50 });
4114
- * ```
4115
- *
4116
- * @example
4117
- * ```typescript
4118
- * // Handle error response, ie. when Referrer Leaderboard is not currently available.
4119
- * const response = await client.getReferrerLeaderboardPage();
4120
- *
4121
- * if (response.responseCode === ReferrerLeaderboardPageResponseCodes.Error) {
4122
- * console.error(response.error);
4123
- * console.error(response.errorMessage);
4124
- * }
4125
- * ```
4126
- */
4127
- async getReferrerLeaderboardPage(request) {
4128
- const url = new URL(`/ensanalytics/referrers`, this.options.url);
4129
- if (request?.page) url.searchParams.set("page", request.page.toString());
4130
- if (request?.recordsPerPage)
4131
- url.searchParams.set("recordsPerPage", request.recordsPerPage.toString());
4132
- const response = await fetch(url);
4133
- let responseData;
4134
- try {
4135
- responseData = await response.json();
4136
- } catch {
4137
- throw new Error("Malformed response data: invalid JSON");
4138
- }
4139
- return deserializeReferrerLeaderboardPageResponse(
4140
- responseData
4141
- );
4142
- }
4143
- /**
4144
- * Fetch Referrer Detail
4145
- *
4146
- * Retrieves detailed information about a specific referrer, whether they are on the
4147
- * leaderboard or not.
4148
- *
4149
- * The response data is a discriminated union type with a `type` field:
4150
- *
4151
- * **For referrers on the leaderboard** (`ReferrerDetailRanked`):
4152
- * - `type`: {@link ReferrerDetailTypeIds.Ranked}
4153
- * - `referrer`: The `AwardedReferrerMetrics` from @namehash/ens-referrals
4154
- * - `rules`: The referral program rules
4155
- * - `aggregatedMetrics`: Aggregated metrics for all referrers on the leaderboard
4156
- * - `accurateAsOf`: Unix timestamp indicating when the data was last updated
4157
- *
4158
- * **For referrers NOT on the leaderboard** (`ReferrerDetailUnranked`):
4159
- * - `type`: {@link ReferrerDetailTypeIds.Unranked}
4160
- * - `referrer`: The `UnrankedReferrerMetrics` from @namehash/ens-referrals
4161
- * - `rules`: The referral program rules
4162
- * - `aggregatedMetrics`: Aggregated metrics for all referrers on the leaderboard
4163
- * - `accurateAsOf`: Unix timestamp indicating when the data was last updated
4164
- *
4165
- * @see {@link https://www.npmjs.com/package/@namehash/ens-referrals|@namehash/ens-referrals} for calculation details
4166
- *
4167
- * @param request The referrer address to query
4168
- * @returns {ReferrerDetailResponse} Returns the referrer detail response
4169
- *
4170
- * @throws if the ENSNode request fails
4171
- * @throws if the response data is malformed
4172
- *
4173
- * @example
4174
- * ```typescript
4175
- * // Get referrer detail for a specific address
4176
- * const response = await client.getReferrerDetail({
4177
- * referrer: "0x1234567890123456789012345678901234567890"
4178
- * });
4179
- * if (response.responseCode === ReferrerDetailResponseCodes.Ok) {
4180
- * const { type, referrer, rules, aggregatedMetrics, accurateAsOf } = response.data;
4181
- * console.log(type); // ReferrerDetailTypeIds.Ranked or ReferrerDetailTypeIds.Unranked
4182
- * console.log(referrer);
4183
- * console.log(accurateAsOf);
4184
- * }
4185
- * ```
4186
- *
4187
- * @example
4188
- * ```typescript
4189
- * // Use discriminated union to check if referrer is ranked
4190
- * const response = await client.getReferrerDetail({
4191
- * referrer: "0x1234567890123456789012345678901234567890"
4192
- * });
4193
- * if (response.responseCode === ReferrerDetailResponseCodes.Ok) {
4194
- * if (response.data.type === ReferrerDetailTypeIds.Ranked) {
4195
- * // TypeScript knows this is ReferrerDetailRanked
4196
- * console.log(`Rank: ${response.data.referrer.rank}`);
4197
- * console.log(`Qualified: ${response.data.referrer.isQualified}`);
4198
- * console.log(`Award Pool Share: ${response.data.referrer.awardPoolShare * 100}%`);
4199
- * } else {
4200
- * // TypeScript knows this is ReferrerDetailUnranked
4201
- * console.log("Referrer is not on the leaderboard (no referrals yet)");
4202
- * }
4203
- * }
4204
- * ```
4205
- *
4206
- * @example
4207
- * ```typescript
4208
- * // Handle error response, ie. when Referrer Detail is not currently available.
4209
- * const response = await client.getReferrerDetail({
4210
- * referrer: "0x1234567890123456789012345678901234567890"
4211
- * });
4212
- *
4213
- * if (response.responseCode === ReferrerDetailResponseCodes.Error) {
4214
- * console.error(response.error);
4215
- * console.error(response.errorMessage);
4216
- * }
4217
- * ```
4218
- */
4219
- async getReferrerDetail(request) {
4220
- const url = new URL(
4221
- `/api/ensanalytics/referrers/${encodeURIComponent(request.referrer)}`,
4222
- this.options.url
4223
- );
4224
- const response = await fetch(url);
4225
- let responseData;
4226
- try {
4227
- responseData = await response.json();
4228
- } catch {
4229
- throw new Error("Malformed response data: invalid JSON");
4230
- }
4231
- return deserializeReferrerDetailResponse(responseData);
4232
- }
4233
3646
  /**
4234
3647
  * Fetch ENSNode Registrar Actions
4235
3648
  *
@@ -4463,7 +3876,7 @@ var ENSNodeClient = class _ENSNodeClient {
4463
3876
  };
4464
3877
 
4465
3878
  // src/ensv2/ids-lib.ts
4466
- var import_viem21 = require("viem");
3879
+ var import_viem19 = require("viem");
4467
3880
  var makeRegistryId = (accountId) => formatAccountId(accountId);
4468
3881
  var makeENSv1DomainId = (node) => node;
4469
3882
  var makeENSv2DomainId = (registry, canonicalId) => formatAssetId({
@@ -4474,7 +3887,7 @@ var makeENSv2DomainId = (registry, canonicalId) => formatAssetId({
4474
3887
  var maskLower32Bits = (num) => num ^ num & 0xffffffffn;
4475
3888
  var getCanonicalId = (input) => {
4476
3889
  if (typeof input === "bigint") return maskLower32Bits(input);
4477
- return getCanonicalId((0, import_viem21.hexToBigInt)(input));
3890
+ return getCanonicalId((0, import_viem19.hexToBigInt)(input));
4478
3891
  };
4479
3892
  var makePermissionsId = (contract) => formatAccountId(contract);
4480
3893
  var makePermissionsResourceId = (contract, resource) => `${makePermissionsId(contract)}/${resource}`;