@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 +6 -6
- package/dist/index.cjs +21 -86
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -113
- package/dist/index.d.ts +2 -113
- package/dist/index.js +11 -91
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
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
|
-
##
|
|
13
|
+
## EnsApiClient
|
|
14
14
|
|
|
15
|
-
The `
|
|
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 {
|
|
24
|
-
import { mainnet } from
|
|
23
|
+
import { EnsApiClient, evmChainIdToCoinType } from "@ensnode/ensnode-sdk";
|
|
24
|
+
import { mainnet } from "viem/chains";
|
|
25
25
|
|
|
26
|
-
const client = new
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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 =
|
|
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
|
|
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,
|
|
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
|
|
4844
|
-
var interpretAddress = (owner) => (0,
|
|
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
|
|
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,
|
|
4864
|
-
if ((0,
|
|
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
|
|
4884
|
-
var
|
|
4818
|
+
var import_viem20 = require("viem");
|
|
4819
|
+
var import_ens7 = require("viem/ens");
|
|
4885
4820
|
|
|
4886
4821
|
// src/shared/labelhash.ts
|
|
4887
|
-
var
|
|
4888
|
-
var labelhashLiteralLabel = (label) => (0,
|
|
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,
|
|
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,
|
|
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
|