@ensnode/ensnode-sdk 0.0.0-next-20260406202353 → 0.0.0-next-20260407115957

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/README.md CHANGED
@@ -10,9 +10,9 @@ Learn more about [ENSNode](https://ensnode.io/) from [the ENSNode docs](https://
10
10
  npm install @ensnode/ensnode-sdk
11
11
  ```
12
12
 
13
- ## ENSNode Client
13
+ ## EnsApiClient
14
14
 
15
- The `ENSNodeClient` provides a unified interface for the supported ENSNode APIs:
15
+ The `EnsApiClient` provides a unified interface for the ENSApi REST APIs:
16
16
  - Resolution API (Protocol Accelerated Forward/Reverse Resolution)
17
17
  - Indexing Status API
18
18
  - Configuration API
@@ -20,10 +20,10 @@ The `ENSNodeClient` provides a unified interface for the supported ENSNode APIs:
20
20
  ### Basic Usage
21
21
 
22
22
  ```typescript
23
- import { ENSNodeClient, evmChainIdToCoinType } from "@ensnode/ensnode-sdk";
24
- import { mainnet } from 'viem/chains';
23
+ import { EnsApiClient, evmChainIdToCoinType } from "@ensnode/ensnode-sdk";
24
+ import { mainnet } from "viem/chains";
25
25
 
26
- const client = new ENSNodeClient();
26
+ const client = new EnsApiClient();
27
27
 
28
28
  // Resolution API: Records Resolution
29
29
  const { records } = await client.resolveRecords("jesse.base.eth", {
@@ -186,7 +186,7 @@ console.log(status);
186
186
  ### Configuration
187
187
 
188
188
  ```typescript
189
- const client = new ENSNodeClient({
189
+ const client = new EnsApiClient({
190
190
  url: new URL("https://my-ensnode-instance.com"),
191
191
  });
192
192
  ```
package/dist/index.cjs CHANGED
@@ -47,7 +47,6 @@ __export(index_exports, {
47
47
  ENCODED_REFERRER_BYTE_LENGTH: () => ENCODED_REFERRER_BYTE_LENGTH,
48
48
  ENCODED_REFERRER_BYTE_OFFSET: () => ENCODED_REFERRER_BYTE_OFFSET,
49
49
  ENSNamespaceIds: () => import_datasources13.ENSNamespaceIds,
50
- ENSNodeClient: () => ENSNodeClient,
51
50
  ENS_ROOT: () => ENS_ROOT,
52
51
  ETH_COIN_TYPE: () => ETH_COIN_TYPE,
53
52
  ETH_NODE: () => ETH_NODE,
@@ -154,8 +153,6 @@ __export(index_exports, {
154
153
  encodedLabelToLabelhash: () => encodedLabelToLabelhash,
155
154
  ensureInterpretedLabel: () => ensureInterpretedLabel,
156
155
  evmChainIdToCoinType: () => evmChainIdToCoinType,
157
- formatAccountId: () => formatAccountId,
158
- formatAssetId: () => formatAssetId,
159
156
  formatNFTTransferEventMetadata: () => formatNFTTransferEventMetadata,
160
157
  getBasenamesSubregistryId: () => getBasenamesSubregistryId,
161
158
  getBasenamesSubregistryManagedName: () => getBasenamesSubregistryManagedName,
@@ -181,7 +178,6 @@ __export(index_exports, {
181
178
  getOmnichainIndexingStatus: () => getOmnichainIndexingStatus,
182
179
  getParentNameFQDN: () => getParentNameFQDN,
183
180
  getResolvePrimaryNameChainIdParam: () => getResolvePrimaryNameChainIdParam,
184
- getStorageId: () => getStorageId,
185
181
  getTimestampForHighestOmnichainKnownBlock: () => getTimestampForHighestOmnichainKnownBlock,
186
182
  getTimestampForLowestOmnichainStartBlock: () => getTimestampForLowestOmnichainStartBlock,
187
183
  hasNullByte: () => hasNullByte,
@@ -194,8 +190,6 @@ __export(index_exports, {
194
190
  interpretNameRecordValue: () => interpretNameRecordValue,
195
191
  interpretTextRecordKey: () => interpretTextRecordKey,
196
192
  interpretTextRecordValue: () => interpretTextRecordValue,
197
- interpretTokenIdAsLabelHash: () => interpretTokenIdAsLabelHash,
198
- interpretTokenIdAsNode: () => interpretTokenIdAsNode,
199
193
  interpretedLabelsToInterpretedName: () => interpretedLabelsToInterpretedName,
200
194
  interpretedLabelsToLabelHashPath: () => interpretedLabelsToLabelHashPath,
201
195
  interpretedNameToInterpretedLabels: () => interpretedNameToInterpretedLabels,
@@ -227,17 +221,7 @@ __export(index_exports, {
227
221
  literalLabelsToLiteralName: () => literalLabelsToLiteralName,
228
222
  makeContractMatcher: () => makeContractMatcher,
229
223
  makeENSApiPublicConfigSchema: () => makeENSApiPublicConfigSchema,
230
- makeENSv1DomainId: () => makeENSv1DomainId,
231
- makeENSv2DomainId: () => makeENSv2DomainId,
232
224
  makeEnsApiPublicConfigSchema: () => makeEnsApiPublicConfigSchema,
233
- makePermissionsId: () => makePermissionsId,
234
- makePermissionsResourceId: () => makePermissionsResourceId,
235
- makePermissionsUserId: () => makePermissionsUserId,
236
- makeRegistrationId: () => makeRegistrationId,
237
- makeRegistryId: () => makeRegistryId,
238
- makeRenewalId: () => makeRenewalId,
239
- makeResolverId: () => makeResolverId,
240
- makeResolverRecordsId: () => makeResolverRecordsId,
241
225
  makeSerializedEnsApiPublicConfigSchema: () => makeSerializedEnsApiPublicConfigSchema,
242
226
  makeSubdomainNode: () => makeSubdomainNode,
243
227
  maybeGetDatasourceContract: () => maybeGetDatasourceContract,
@@ -299,7 +283,6 @@ __export(index_exports, {
299
283
  sortChainStatusesByStartBlockAsc: () => sortChainStatusesByStartBlockAsc,
300
284
  stripNullBytes: () => stripNullBytes,
301
285
  translateDefaultableChainIdToChainId: () => translateDefaultableChainIdToChainId,
302
- uint256ToHex32: () => uint256ToHex32,
303
286
  uniq: () => uniq,
304
287
  validateChainIndexingStatusSnapshot: () => validateChainIndexingStatusSnapshot,
305
288
  validateCrossChainIndexingStatusSnapshot: () => validateCrossChainIndexingStatusSnapshot,
@@ -350,8 +333,7 @@ __export(ens_exports, {
350
333
  parseLabelHash: () => parseLabelHash,
351
334
  parseLabelHashOrEncodedLabelHash: () => parseLabelHashOrEncodedLabelHash,
352
335
  parseReverseName: () => parseReverseName,
353
- reverseName: () => reverseName,
354
- uint256ToHex32: () => uint256ToHex32
336
+ reverseName: () => reverseName
355
337
  });
356
338
  __reExport(ens_exports, require("enssdk"));
357
339
  var import_datasources = require("@ensnode/datasources");
@@ -570,7 +552,6 @@ function reverseName(address, coinType) {
570
552
  // src/ens/subname-helpers.ts
571
553
  var import_viem6 = require("viem");
572
554
  var makeSubdomainNode = (labelHash, node) => (0, import_viem6.keccak256)((0, import_viem6.concat)([node, labelHash]));
573
- var uint256ToHex32 = (num) => (0, import_viem6.toHex)(num, { size: 32 });
574
555
 
575
556
  // src/index.ts
576
557
  __reExport(index_exports, ens_exports, module.exports);
@@ -2179,7 +2160,6 @@ ${(0, import_v418.prettifyError)(parsed.error)}
2179
2160
  var deserializeIndexingStatusResponse = deserializeEnsApiIndexingStatusResponse;
2180
2161
 
2181
2162
  // src/shared/serialize.ts
2182
- var import_caip2 = require("caip");
2183
2163
  function serializeChainId(chainId) {
2184
2164
  return chainId.toString();
2185
2165
  }
@@ -2204,23 +2184,6 @@ function serializePriceUsdc(price) {
2204
2184
  function serializePriceDai(price) {
2205
2185
  return serializePrice(price);
2206
2186
  }
2207
- function formatAccountId(accountId) {
2208
- return import_caip2.AccountId.format({
2209
- chainId: { namespace: "eip155", reference: accountId.chainId.toString() },
2210
- address: accountId.address
2211
- }).toLowerCase();
2212
- }
2213
- function formatAssetId({
2214
- assetNamespace,
2215
- contract: { chainId, address },
2216
- tokenId
2217
- }) {
2218
- return import_caip2.AssetId.format({
2219
- chainId: { namespace: "eip155", reference: chainId.toString() },
2220
- assetName: { namespace: assetNamespace, reference: address },
2221
- tokenId: uint256ToHex32(tokenId)
2222
- }).toLowerCase();
2223
- }
2224
2187
 
2225
2188
  // src/indexing-status/serialize/chain-indexing-status-snapshot.ts
2226
2189
  function serializeChainIndexingSnapshots(chains) {
@@ -2350,11 +2313,12 @@ var makeContractMatcher = (namespace, b) => (datasourceName, contractName) => {
2350
2313
  };
2351
2314
 
2352
2315
  // src/tokenscope/assets.ts
2316
+ var import_enssdk2 = require("enssdk");
2353
2317
  var import_viem12 = require("viem");
2354
2318
  var import_v420 = require("zod/v4");
2355
2319
 
2356
2320
  // src/tokenscope/zod-schemas.ts
2357
- var import_caip3 = require("caip");
2321
+ var import_caip2 = require("caip");
2358
2322
  var import_enssdk = require("enssdk");
2359
2323
  var import_viem11 = require("viem");
2360
2324
  var import_v419 = require("zod/v4");
@@ -2379,7 +2343,7 @@ var makeAssetIdSchema = (valueLabel = "Asset ID Schema", serializable) => {
2379
2343
  };
2380
2344
  var makeAssetIdStringSchema = (valueLabel = "Asset ID String Schema") => import_v419.z.preprocess((v) => {
2381
2345
  if (typeof v === "string") {
2382
- const result = new import_caip3.AssetId(v);
2346
+ const result = new import_caip2.AssetId(v);
2383
2347
  return {
2384
2348
  assetNamespace: result.assetName.namespace,
2385
2349
  contract: {
@@ -2444,7 +2408,7 @@ function serializeAssetId(assetId) {
2444
2408
  return {
2445
2409
  assetNamespace: assetId.assetNamespace,
2446
2410
  contract: assetId.contract,
2447
- tokenId: uint256ToHex32(assetId.tokenId)
2411
+ tokenId: assetId.tokenId.toString()
2448
2412
  };
2449
2413
  }
2450
2414
  function deserializeAssetId(maybeAssetId, valueLabel) {
@@ -2485,7 +2449,7 @@ var NFTMintStatuses = {
2485
2449
  Burned: "burned"
2486
2450
  };
2487
2451
  var formatNFTTransferEventMetadata = (metadata) => {
2488
- const assetIdString = formatAssetId(metadata.nft);
2452
+ const assetIdString = (0, import_enssdk2.stringifyAssetId)(metadata.nft);
2489
2453
  return [
2490
2454
  `Event: ${metadata.eventHandlerName}`,
2491
2455
  `Chain ID: ${metadata.chainId}`,
@@ -2964,7 +2928,7 @@ function serializeNameTokensResponse(response) {
2964
2928
  var import_v427 = require("zod/v4");
2965
2929
 
2966
2930
  // src/ensapi/api/registrar-actions/zod-schemas.ts
2967
- var import_ens7 = require("viem/ens");
2931
+ var import_ens5 = require("viem/ens");
2968
2932
  var import_v426 = require("zod/v4");
2969
2933
 
2970
2934
  // src/registrars/zod-schemas.ts
@@ -3233,7 +3197,7 @@ var RegistrarActionsResponseCodes = {
3233
3197
  function invariant_registrationLifecycleNodeMatchesName(ctx) {
3234
3198
  const { name, action } = ctx.value;
3235
3199
  const expectedNode = action.registrationLifecycle.node;
3236
- const actualNode = (0, import_ens7.namehash)(name);
3200
+ const actualNode = (0, import_ens5.namehash)(name);
3237
3201
  if (actualNode !== expectedNode) {
3238
3202
  ctx.issues.push({
3239
3203
  code: "custom",
@@ -3948,8 +3912,6 @@ var EnsApiClient = class _EnsApiClient {
3948
3912
  return deserializedNameTokensResponse(responseData);
3949
3913
  }
3950
3914
  };
3951
- var ENSNodeClient = class extends EnsApiClient {
3952
- };
3953
3915
 
3954
3916
  // src/ensindexer/api/config/deserialize.ts
3955
3917
  function deserializeEnsIndexerConfigResponse(maybeResponse) {
@@ -4261,29 +4223,6 @@ function validateEnsIndexerVersionInfo(unvalidatedVersionInfo) {
4261
4223
  return result.data;
4262
4224
  }
4263
4225
 
4264
- // src/ensv2/ids-lib.ts
4265
- var import_enssdk2 = require("enssdk");
4266
- var import_viem17 = require("viem");
4267
- var makeRegistryId = (accountId) => formatAccountId(accountId);
4268
- var makeENSv1DomainId = (node) => node;
4269
- var makeENSv2DomainId = (registry, storageId) => formatAssetId({
4270
- assetNamespace: import_enssdk2.AssetNamespaces.ERC1155,
4271
- contract: registry,
4272
- tokenId: storageId
4273
- });
4274
- var maskLower32Bits = (num) => num ^ num & 0xffffffffn;
4275
- var getStorageId = (input) => {
4276
- if (typeof input === "bigint") return maskLower32Bits(input);
4277
- return getStorageId((0, import_viem17.hexToBigInt)(input));
4278
- };
4279
- var makePermissionsId = (contract) => formatAccountId(contract);
4280
- var makePermissionsResourceId = (contract, resource) => `${makePermissionsId(contract)}/${resource}`;
4281
- var makePermissionsUserId = (contract, resource, user) => `${makePermissionsId(contract)}/${resource}/${user}`;
4282
- var makeResolverId = (contract) => formatAccountId(contract);
4283
- var makeResolverRecordsId = (resolver, node) => `${makeResolverId(resolver)}/${node}`;
4284
- var makeRegistrationId = (domainId, index) => `${domainId}/${index}`;
4285
- var makeRenewalId = (domainId, registrationIndex, index) => `${makeRegistrationId(domainId, registrationIndex)}/${index}`;
4286
-
4287
4226
  // src/identity/identity.ts
4288
4227
  var import_datasources6 = require("@ensnode/datasources");
4289
4228
 
@@ -4840,11 +4779,11 @@ function buildIndexedBlockranges(namespace, pluginsDatasourceNames) {
4840
4779
  }
4841
4780
 
4842
4781
  // src/shared/interpretation/interpret-address.ts
4843
- var import_viem18 = require("viem");
4844
- var interpretAddress = (owner) => (0, import_viem18.isAddressEqual)(import_viem18.zeroAddress, owner) ? null : owner;
4782
+ var import_viem17 = require("viem");
4783
+ var interpretAddress = (owner) => (0, import_viem17.isAddressEqual)(import_viem17.zeroAddress, owner) ? null : owner;
4845
4784
 
4846
4785
  // src/shared/interpretation/interpret-record-values.ts
4847
- var import_viem19 = require("viem");
4786
+ var import_viem18 = require("viem");
4848
4787
 
4849
4788
  // src/shared/null-bytes.ts
4850
4789
  var hasNullByte = (value) => value.indexOf("\0") !== -1;
@@ -4860,8 +4799,8 @@ function interpretAddressRecordValue(value) {
4860
4799
  if (hasNullByte(value)) return null;
4861
4800
  if (value === "") return null;
4862
4801
  if (value === "0x") return null;
4863
- if (!(0, import_viem19.isAddress)(value)) return value;
4864
- if ((0, import_viem19.isAddressEqual)(value, import_viem19.zeroAddress)) return null;
4802
+ if (!(0, import_viem18.isAddress)(value)) return value;
4803
+ if ((0, import_viem18.isAddressEqual)(value, import_viem18.zeroAddress)) return null;
4865
4804
  return asLowerCaseAddress(value);
4866
4805
  }
4867
4806
  function interpretTextRecordKey(key) {
@@ -4875,17 +4814,13 @@ function interpretTextRecordValue(value) {
4875
4814
  return value;
4876
4815
  }
4877
4816
 
4878
- // src/shared/interpretation/interpret-tokenid.ts
4879
- var interpretTokenIdAsLabelHash = (tokenId) => uint256ToHex32(tokenId);
4880
- var interpretTokenIdAsNode = (tokenId) => uint256ToHex32(tokenId);
4881
-
4882
4817
  // src/shared/interpretation/interpreted-names-and-labels.ts
4883
- var import_viem21 = require("viem");
4884
- var import_ens10 = require("viem/ens");
4818
+ var import_viem20 = require("viem");
4819
+ var import_ens7 = require("viem/ens");
4885
4820
 
4886
4821
  // src/shared/labelhash.ts
4887
- var import_viem20 = require("viem");
4888
- var labelhashLiteralLabel = (label) => (0, import_viem20.keccak256)((0, import_viem20.stringToBytes)(label));
4822
+ var import_viem19 = require("viem");
4823
+ var labelhashLiteralLabel = (label) => (0, import_viem19.keccak256)((0, import_viem19.stringToBytes)(label));
4889
4824
 
4890
4825
  // src/shared/interpretation/interpreted-names-and-labels.ts
4891
4826
  function literalLabelToInterpretedLabel(label) {
@@ -4909,7 +4844,7 @@ function encodedLabelToLabelhash(label) {
4909
4844
  if (label.indexOf("[") !== 0) return null;
4910
4845
  if (label.indexOf("]") !== 65) return null;
4911
4846
  const hash = `0x${label.slice(1, 65)}`;
4912
- if (!(0, import_viem21.isHex)(hash)) return null;
4847
+ if (!(0, import_viem20.isHex)(hash)) return null;
4913
4848
  return hash;
4914
4849
  }
4915
4850
  function isInterpetedLabel(label) {
@@ -4931,7 +4866,7 @@ function interpretedLabelsToLabelHashPath(labels) {
4931
4866
  }
4932
4867
  const maybeLabelHash = encodedLabelToLabelhash(label);
4933
4868
  if (maybeLabelHash !== null) return maybeLabelHash;
4934
- return (0, import_ens10.labelhash)(label);
4869
+ return (0, import_ens7.labelhash)(label);
4935
4870
  }).toReversed();
4936
4871
  }
4937
4872
  function constructSubInterpretedName(label, name) {
@@ -4964,13 +4899,13 @@ var import_datasources12 = require("@ensnode/datasources");
4964
4899
  var getENSv1Registry = (namespace) => getDatasourceContract(namespace, import_datasources12.DatasourceNames.ENSRoot, "ENSv1Registry");
4965
4900
  var isENSv1Registry = (namespace, contract) => accountIdEqual(getENSv1Registry(namespace), contract);
4966
4901
  var getENSv2RootRegistry = (namespace) => getDatasourceContract(namespace, import_datasources12.DatasourceNames.ENSv2Root, "RootRegistry");
4967
- var getENSv2RootRegistryId = (namespace) => makeRegistryId(getENSv2RootRegistry(namespace));
4902
+ var getENSv2RootRegistryId = (namespace) => (0, index_exports.makeRegistryId)(getENSv2RootRegistry(namespace));
4968
4903
  var isENSv2RootRegistry = (namespace, contract) => accountIdEqual(getENSv2RootRegistry(namespace), contract);
4969
4904
  var maybeGetENSv2RootRegistry = (namespace) => maybeGetDatasourceContract(namespace, import_datasources12.DatasourceNames.ENSv2Root, "RootRegistry");
4970
4905
  var maybeGetENSv2RootRegistryId = (namespace) => {
4971
4906
  const root = maybeGetENSv2RootRegistry(namespace);
4972
4907
  if (!root) return void 0;
4973
- return makeRegistryId(root);
4908
+ return (0, index_exports.makeRegistryId)(root);
4974
4909
  };
4975
4910
 
4976
4911
  // src/shared/url.ts