@ensnode/ensnode-sdk 0.0.0-next-20260413130953 → 0.0.0-next-20260414193807

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
@@ -441,15 +441,15 @@ var makeDurationSchema = (valueLabel = "Value") => import_v4.z.number({
441
441
  }).pipe(makeNonNegativeIntegerSchema(valueLabel));
442
442
  var makeChainIdSchema = (valueLabel = "Chain ID") => makePositiveIntegerSchema(valueLabel).transform((val) => val);
443
443
  var makeChainIdStringSchema = (valueLabel = "Chain ID String") => import_v4.z.string({ error: `${valueLabel} must be a string representing a chain ID.` }).pipe(import_v4.z.coerce.number({ error: `${valueLabel} must represent a positive integer (>0).` })).pipe(makeChainIdSchema(`The numeric value represented by ${valueLabel}`));
444
- var makeLowercaseAddressSchema = (valueLabel = "EVM address") => import_v4.z.string().check((ctx) => {
445
- if (!(0, import_viem2.isAddress)(ctx.value)) {
444
+ var makeNormalizedAddressSchema = (valueLabel = "EVM address") => import_v4.z.string().check((ctx) => {
445
+ if (!(0, import_viem2.isAddress)(ctx.value, { strict: false })) {
446
446
  ctx.issues.push({
447
447
  code: "custom",
448
448
  message: `${valueLabel} must be a valid EVM address`,
449
449
  input: ctx.value
450
450
  });
451
451
  }
452
- }).transform((val) => (0, import_enssdk.asLowerCaseAddress)(val));
452
+ }).transform((val) => (0, import_enssdk.toNormalizedAddress)(val));
453
453
  var makeDatetimeSchema = (valueLabel = "Datetime string") => import_v4.z.iso.datetime({ error: `${valueLabel} must be a string in ISO 8601 format.` }).transform((v) => new Date(v));
454
454
  var makeUnixTimestampSchema = (valueLabel = "Timestamp") => makeIntegerSchema(valueLabel);
455
455
  var makeUrlSchema = (valueLabel = "Value") => import_v4.z.url({
@@ -487,7 +487,7 @@ var makePriceUsdcSchema = (valueLabel = "Price USDC") => makePriceCurrencySchema
487
487
  var makePriceDaiSchema = (valueLabel = "Price DAI") => makePriceCurrencySchema(CurrencyIds.DAI, valueLabel).transform((v) => v);
488
488
  var makeAccountIdSchema = (valueLabel = "AccountId") => import_v4.z.strictObject({
489
489
  chainId: makeChainIdSchema(`${valueLabel} chain ID`),
490
- address: makeLowercaseAddressSchema(`${valueLabel} address`)
490
+ address: makeNormalizedAddressSchema(`${valueLabel} address`)
491
491
  });
492
492
  var makeAccountIdStringSchema = (valueLabel = "Account ID String") => import_v4.z.coerce.string().transform((v) => {
493
493
  const result = new import_caip.AccountId(v);
@@ -2394,7 +2394,8 @@ function getNameTokenOwnership(namespaceId, name, owner) {
2394
2394
  owner
2395
2395
  };
2396
2396
  }
2397
- const parentName = (0, import_enssdk4.getParentNameFQDN)(name);
2397
+ const parentName = (0, import_enssdk4.getParentInterpretedName)(name);
2398
+ if (parentName === null) throw new Error(`Invariant: '${name}' has no parent Name.`);
2398
2399
  if (parentName === "eth") {
2399
2400
  return {
2400
2401
  ownershipType: NameTokenOwnershipTypes.FullyOnchain,
@@ -2610,13 +2611,14 @@ function serializeNameTokensResponse(response) {
2610
2611
  var import_v427 = require("zod/v4");
2611
2612
 
2612
2613
  // src/ensapi/api/registrar-actions/zod-schemas.ts
2613
- var import_enssdk6 = require("enssdk");
2614
+ var import_enssdk7 = require("enssdk");
2614
2615
  var import_v426 = require("zod/v4");
2615
2616
 
2616
2617
  // src/registrars/zod-schemas.ts
2617
2618
  var import_v424 = require("zod/v4");
2618
2619
 
2619
2620
  // src/registrars/encoded-referrer.ts
2621
+ var import_enssdk6 = require("enssdk");
2620
2622
  var import_viem7 = require("viem");
2621
2623
  var ENCODED_REFERRER_BYTE_OFFSET = 12;
2622
2624
  var ENCODED_REFERRER_BYTE_LENGTH = 32;
@@ -2629,8 +2631,8 @@ var ZERO_ENCODED_REFERRER = (0, import_viem7.pad)("0x", {
2629
2631
  dir: "left"
2630
2632
  });
2631
2633
  function buildEncodedReferrer(address) {
2632
- const lowercaseAddress = address.toLowerCase();
2633
- return (0, import_viem7.pad)(lowercaseAddress, { size: ENCODED_REFERRER_BYTE_LENGTH, dir: "left" });
2634
+ if (!(0, import_enssdk6.isNormalizedAddress)(address)) throw new Error(`Address '${address}' is not normalized.`);
2635
+ return (0, import_viem7.pad)(address, { size: ENCODED_REFERRER_BYTE_LENGTH, dir: "left" });
2634
2636
  }
2635
2637
  function decodeEncodedReferrer(encodedReferrer) {
2636
2638
  if ((0, import_viem7.size)(encodedReferrer) !== ENCODED_REFERRER_BYTE_LENGTH) {
@@ -2639,12 +2641,10 @@ function decodeEncodedReferrer(encodedReferrer) {
2639
2641
  );
2640
2642
  }
2641
2643
  const padding = (0, import_viem7.slice)(encodedReferrer, 0, ENCODED_REFERRER_BYTE_OFFSET);
2642
- if (padding !== EXPECTED_ENCODED_REFERRER_PADDING) {
2643
- return import_viem7.zeroAddress;
2644
- }
2644
+ if (padding !== EXPECTED_ENCODED_REFERRER_PADDING) return import_viem7.zeroAddress;
2645
2645
  const decodedReferrer = (0, import_viem7.slice)(encodedReferrer, ENCODED_REFERRER_BYTE_OFFSET);
2646
2646
  try {
2647
- return (0, import_viem7.getAddress)(decodedReferrer);
2647
+ return (0, import_enssdk6.toNormalizedAddress)(decodedReferrer);
2648
2648
  } catch {
2649
2649
  throw new Error(`Decoded referrer value must be a valid EVM address.`);
2650
2650
  }
@@ -2726,7 +2726,7 @@ var makeRegistrarActionPricingSchema = (valueLabel = "Registrar Action Pricing")
2726
2726
  function invariant_registrarActionDecodedReferrerBasedOnRawReferrer(ctx) {
2727
2727
  const { encodedReferrer, decodedReferrer } = ctx.value;
2728
2728
  try {
2729
- const expectedDecodedReferrer = decodeEncodedReferrer(encodedReferrer).toLowerCase();
2729
+ const expectedDecodedReferrer = decodeEncodedReferrer(encodedReferrer);
2730
2730
  if (decodedReferrer !== expectedDecodedReferrer) {
2731
2731
  ctx.issues.push({
2732
2732
  code: "custom",
@@ -2750,7 +2750,7 @@ var makeRegistrarActionReferralSchema = (valueLabel = "Registrar Action Referral
2750
2750
  { bytesCount: ENCODED_REFERRER_BYTE_LENGTH },
2751
2751
  `${valueLabel} Encoded Referrer`
2752
2752
  ),
2753
- decodedReferrer: makeLowercaseAddressSchema(`${valueLabel} Decoded Referrer`)
2753
+ decodedReferrer: makeNormalizedAddressSchema(`${valueLabel} Decoded Referrer`)
2754
2754
  }).check(invariant_registrarActionDecodedReferrerBasedOnRawReferrer),
2755
2755
  // referral not applicable
2756
2756
  import_v424.z.object({
@@ -2773,7 +2773,7 @@ var EventIdsSchema = import_v424.z.array(EventIdSchema).min(1).transform((v) =>
2773
2773
  var makeBaseRegistrarActionSchema = (valueLabel = "Base Registrar Action") => import_v424.z.object({
2774
2774
  id: EventIdSchema,
2775
2775
  incrementalDuration: makeDurationSchema(`${valueLabel} Incremental Duration`),
2776
- registrant: makeLowercaseAddressSchema(`${valueLabel} Registrant`),
2776
+ registrant: makeNormalizedAddressSchema(`${valueLabel} Registrant`),
2777
2777
  registrationLifecycle: makeRegistrationLifecycleSchema(
2778
2778
  `${valueLabel} Registration Lifecycle`
2779
2779
  ),
@@ -2879,7 +2879,7 @@ var RegistrarActionsResponseCodes = {
2879
2879
  function invariant_registrationLifecycleNodeMatchesName(ctx) {
2880
2880
  const { name, action } = ctx.value;
2881
2881
  const expectedNode = action.registrationLifecycle.node;
2882
- const actualNode = (0, import_enssdk6.namehashInterpretedName)(name);
2882
+ const actualNode = (0, import_enssdk7.namehashInterpretedName)(name);
2883
2883
  if (actualNode !== expectedNode) {
2884
2884
  ctx.issues.push({
2885
2885
  code: "custom",
@@ -4008,7 +4008,7 @@ function hasOmnigraphApiConfigSupport(config) {
4008
4008
  }
4009
4009
 
4010
4010
  // src/registrars/basenames-subregistry.ts
4011
- var import_enssdk7 = require("enssdk");
4011
+ var import_enssdk8 = require("enssdk");
4012
4012
  var import_datasources7 = require("@ensnode/datasources");
4013
4013
  function getBasenamesSubregistryId(namespace) {
4014
4014
  const datasource = (0, import_datasources7.maybeGetDatasource)(namespace, import_datasources7.DatasourceNames.Basenames);
@@ -4024,10 +4024,10 @@ function getBasenamesSubregistryId(namespace) {
4024
4024
  function getBasenamesSubregistryManagedName(namespaceId) {
4025
4025
  switch (namespaceId) {
4026
4026
  case import_datasources7.ENSNamespaceIds.Mainnet:
4027
- return (0, import_enssdk7.asInterpretedName)("base.eth");
4027
+ return (0, import_enssdk8.asInterpretedName)("base.eth");
4028
4028
  case import_datasources7.ENSNamespaceIds.Sepolia:
4029
4029
  case import_datasources7.ENSNamespaceIds.SepoliaV2:
4030
- return (0, import_enssdk7.asInterpretedName)("basetest.eth");
4030
+ return (0, import_enssdk8.asInterpretedName)("basetest.eth");
4031
4031
  case import_datasources7.ENSNamespaceIds.EnsTestEnv:
4032
4032
  throw new Error(
4033
4033
  `No registrar managed name is known for the 'basenames' subregistry within the "${namespaceId}" namespace.`
@@ -4036,7 +4036,7 @@ function getBasenamesSubregistryManagedName(namespaceId) {
4036
4036
  }
4037
4037
 
4038
4038
  // src/registrars/ethnames-subregistry.ts
4039
- var import_enssdk8 = require("enssdk");
4039
+ var import_enssdk9 = require("enssdk");
4040
4040
  var import_datasources8 = require("@ensnode/datasources");
4041
4041
  function getEthnamesSubregistryId(namespace) {
4042
4042
  const datasource = (0, import_datasources8.maybeGetDatasource)(namespace, import_datasources8.DatasourceNames.ENSRoot);
@@ -4055,12 +4055,12 @@ function getEthnamesSubregistryManagedName(namespaceId) {
4055
4055
  case import_datasources8.ENSNamespaceIds.Sepolia:
4056
4056
  case import_datasources8.ENSNamespaceIds.SepoliaV2:
4057
4057
  case import_datasources8.ENSNamespaceIds.EnsTestEnv:
4058
- return (0, import_enssdk8.asInterpretedName)("eth");
4058
+ return (0, import_enssdk9.asInterpretedName)("eth");
4059
4059
  }
4060
4060
  }
4061
4061
 
4062
4062
  // src/registrars/lineanames-subregistry.ts
4063
- var import_enssdk9 = require("enssdk");
4063
+ var import_enssdk10 = require("enssdk");
4064
4064
  var import_datasources9 = require("@ensnode/datasources");
4065
4065
  function getLineanamesSubregistryId(namespace) {
4066
4066
  const datasource = (0, import_datasources9.maybeGetDatasource)(namespace, import_datasources9.DatasourceNames.Lineanames);
@@ -4076,10 +4076,10 @@ function getLineanamesSubregistryId(namespace) {
4076
4076
  function getLineanamesSubregistryManagedName(namespaceId) {
4077
4077
  switch (namespaceId) {
4078
4078
  case import_datasources9.ENSNamespaceIds.Mainnet:
4079
- return (0, import_enssdk9.asInterpretedName)("linea.eth");
4079
+ return (0, import_enssdk10.asInterpretedName)("linea.eth");
4080
4080
  case import_datasources9.ENSNamespaceIds.Sepolia:
4081
4081
  case import_datasources9.ENSNamespaceIds.SepoliaV2:
4082
- return (0, import_enssdk9.asInterpretedName)("linea-sepolia.eth");
4082
+ return (0, import_enssdk10.asInterpretedName)("linea-sepolia.eth");
4083
4083
  case import_datasources9.ENSNamespaceIds.EnsTestEnv:
4084
4084
  throw new Error(
4085
4085
  `No registrar managed name is known for the 'Lineanames' subregistry within the "${namespaceId}" namespace.`
@@ -4103,7 +4103,7 @@ function isRegistrationInGracePeriod(info, now) {
4103
4103
  }
4104
4104
 
4105
4105
  // src/resolution/ensip19-chainid.ts
4106
- var import_enssdk10 = require("enssdk");
4106
+ var import_enssdk11 = require("enssdk");
4107
4107
  var import_chains = require("viem/chains");
4108
4108
  var import_datasources10 = require("@ensnode/datasources");
4109
4109
  var getResolvePrimaryNameChainIdParam = (chainId, namespaceId) => {
@@ -4111,7 +4111,7 @@ var getResolvePrimaryNameChainIdParam = (chainId, namespaceId) => {
4111
4111
  return chainId === ensRootChainId ? import_chains.mainnet.id : chainId;
4112
4112
  };
4113
4113
  var translateDefaultableChainIdToChainId = (chainId, namespaceId) => {
4114
- return chainId === import_enssdk10.DEFAULT_EVM_CHAIN_ID ? (0, import_datasources10.getENSRootChainId)(namespaceId) : chainId;
4114
+ return chainId === import_enssdk11.DEFAULT_EVM_CHAIN_ID ? (0, import_datasources10.getENSRootChainId)(namespaceId) : chainId;
4115
4115
  };
4116
4116
 
4117
4117
  // src/resolution/resolver-records-selection.ts
@@ -4465,7 +4465,7 @@ var import_viem9 = require("viem");
4465
4465
  var interpretAddress = (owner) => (0, import_viem9.isAddressEqual)(import_viem9.zeroAddress, owner) ? null : owner;
4466
4466
 
4467
4467
  // src/shared/interpretation/interpret-record-values.ts
4468
- var import_enssdk11 = require("enssdk");
4468
+ var import_enssdk12 = require("enssdk");
4469
4469
  var import_viem10 = require("viem");
4470
4470
 
4471
4471
  // src/shared/null-bytes.ts
@@ -4475,16 +4475,16 @@ var stripNullBytes = (value) => value.replaceAll("\0", "");
4475
4475
  // src/shared/interpretation/interpret-record-values.ts
4476
4476
  function interpretNameRecordValue(value) {
4477
4477
  if (value === "") return null;
4478
- if (!(0, import_enssdk11.isNormalizedName)(value)) return null;
4478
+ if (!(0, import_enssdk12.isInterpretedName)(value)) return null;
4479
4479
  return value;
4480
4480
  }
4481
4481
  function interpretAddressRecordValue(value) {
4482
4482
  if (hasNullByte(value)) return null;
4483
4483
  if (value === "") return null;
4484
4484
  if (value === "0x") return null;
4485
- if (!(0, import_viem10.isAddress)(value)) return value;
4485
+ if (!(0, import_viem10.isAddress)(value, { strict: false })) return value;
4486
4486
  if ((0, import_viem10.isAddressEqual)(value, import_viem10.zeroAddress)) return null;
4487
- return (0, import_enssdk11.asLowerCaseAddress)(value);
4487
+ return (0, import_enssdk12.toNormalizedAddress)(value);
4488
4488
  }
4489
4489
  function interpretTextRecordKey(key) {
4490
4490
  if (hasNullByte(key)) return null;
@@ -4503,18 +4503,18 @@ function getNamespaceSpecificValue(namespace, value) {
4503
4503
  }
4504
4504
 
4505
4505
  // src/shared/root-registry.ts
4506
- var import_enssdk12 = require("enssdk");
4506
+ var import_enssdk13 = require("enssdk");
4507
4507
  var import_datasources12 = require("@ensnode/datasources");
4508
4508
  var getENSv1Registry = (namespace) => getDatasourceContract(namespace, import_datasources12.DatasourceNames.ENSRoot, "ENSv1Registry");
4509
4509
  var isENSv1Registry = (namespace, contract) => accountIdEqual(getENSv1Registry(namespace), contract);
4510
4510
  var getENSv2RootRegistry = (namespace) => getDatasourceContract(namespace, import_datasources12.DatasourceNames.ENSv2Root, "RootRegistry");
4511
- var getENSv2RootRegistryId = (namespace) => (0, import_enssdk12.makeRegistryId)(getENSv2RootRegistry(namespace));
4511
+ var getENSv2RootRegistryId = (namespace) => (0, import_enssdk13.makeRegistryId)(getENSv2RootRegistry(namespace));
4512
4512
  var isENSv2RootRegistry = (namespace, contract) => accountIdEqual(getENSv2RootRegistry(namespace), contract);
4513
4513
  var maybeGetENSv2RootRegistry = (namespace) => maybeGetDatasourceContract(namespace, import_datasources12.DatasourceNames.ENSv2Root, "RootRegistry");
4514
4514
  var maybeGetENSv2RootRegistryId = (namespace) => {
4515
4515
  const root = maybeGetENSv2RootRegistry(namespace);
4516
4516
  if (!root) return void 0;
4517
- return (0, import_enssdk12.makeRegistryId)(root);
4517
+ return (0, import_enssdk13.makeRegistryId)(root);
4518
4518
  };
4519
4519
 
4520
4520
  // src/shared/url.ts