@ensnode/ensnode-sdk 1.10.1 → 1.11.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.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ENSNamespaceId, DatasourceName } from '@ensnode/datasources';
2
2
  export { ENSNamespaceId, ENSNamespaceIds, getENSRootChainId } from '@ensnode/datasources';
3
3
  import * as enssdk from 'enssdk';
4
- import { UnixTimestamp, ChainId, Duration, ChainIdString, LabelHash, Node, Name, AssetId, Hex, AccountId, TokenId, AssetNamespace, Address, AssetIdString, InterpretedName, NormalizedAddress, DefaultableChainId, CoinType, ContentType, InterfaceId, RecordVersion, UrlString, LiteralName, DatetimeISO8601 } from 'enssdk';
4
+ import { UnixTimestamp, ChainId, Duration, ChainIdString, LabelHash, Node, Name, AssetId, Hex, AccountId, TokenId, AssetNamespace, Address, AssetIdString, InterpretedName, NormalizedAddress, DefaultableChainId, CoinType, ContentType, InterfaceId, RecordVersion, UrlString, LiteralName, RegistryId, DatetimeISO8601 } from 'enssdk';
5
5
  import { z } from 'zod/v4';
6
6
  import { ByteArray, Hash } from 'viem';
7
7
 
@@ -107,6 +107,12 @@ type Unvalidated<T> = DeepPartial<T>;
107
107
  type RequiredAndNotNull<T, K extends keyof T> = T & {
108
108
  [P in K]-?: NonNullable<T[P]>;
109
109
  };
110
+ /**
111
+ * Marks keys in K as required (not undefined) and null.
112
+ */
113
+ type RequiredAndNull<T, K extends keyof T> = T & {
114
+ [P in K]-?: null;
115
+ };
110
116
 
111
117
  /**
112
118
  * A label set ID identifies a label set (see https://ensnode.io/ensrainbow/concepts/glossary#label-set for definition).
@@ -157,26 +163,30 @@ interface EnsRainbowServerLabelSet {
157
163
  }
158
164
 
159
165
  /**
160
- * Complete public configuration object for ENSRainbow.
161
- *
162
- * Contains all public configuration information about the ENSRainbow service instance,
163
- * including version, label set information, and record counts.
166
+ * Version info about ENSRainbow and its dependencies.
164
167
  */
165
- interface EnsRainbowPublicConfig {
168
+ interface EnsRainbowVersionInfo {
166
169
  /**
167
170
  * ENSRainbow service version
168
171
  *
169
172
  * @see https://ghcr.io/namehash/ensnode/ensrainbow
170
- */
171
- version: string;
173
+ **/
174
+ ensRainbow: string;
175
+ }
176
+ /**
177
+ * Complete public configuration object for ENSRainbow.
178
+ *
179
+ * Contains all public configuration information about the ENSRainbow service instance.
180
+ */
181
+ interface EnsRainbowPublicConfig {
172
182
  /**
173
183
  * The label set reference managed by the ENSRainbow server.
174
184
  */
175
- labelSet: EnsRainbowServerLabelSet;
185
+ serverLabelSet: EnsRainbowServerLabelSet;
176
186
  /**
177
- * The total count of records managed by the ENSRainbow service.
187
+ * ENSRainbow version info
178
188
  */
179
- recordsCount: number;
189
+ versionInfo: EnsRainbowVersionInfo;
180
190
  }
181
191
 
182
192
  /**
@@ -251,7 +261,7 @@ interface EnsIndexerPublicConfig {
251
261
  /**
252
262
  * The "fully pinned" label set reference that ENSIndexer will request ENSRainbow use for deterministic label healing across time. This label set reference is "fully pinned" as it requires both the labelSetId and labelSetVersion fields to be defined.
253
263
  */
254
- labelSet: Required<EnsRainbowClientLabelSet>;
264
+ clientLabelSet: Required<EnsRainbowClientLabelSet>;
255
265
  /**
256
266
  * The name of the ENSIndexer Schema in the ENSDb instance,
257
267
  * where the ENSIndexer instance writes indexed data.
@@ -295,7 +305,7 @@ interface EnsIndexerPublicConfig {
295
305
  *
296
306
  * If {@link isSubgraphCompatible} is true, the following invariants are true for the ENSIndexerConfig:
297
307
  * 1. only the 'subgraph' plugin is enabled, and
298
- * 2. the labelSet must be { labelSetId: 'subgraph', labelSetVersion: 0 }
308
+ * 2. the {@link clientLabelSet} must be { labelSetId: 'subgraph', labelSetVersion: 0 }
299
309
  *
300
310
  * If {@link isSubgraphCompatible} is false, ENSIndexer will additionally:
301
311
  *
@@ -501,16 +511,17 @@ declare function makeEnsApiPublicConfigSchema(valueLabel?: string): z.ZodObject<
501
511
  ensIndexerPublicConfig: z.ZodObject<{
502
512
  ensIndexerSchemaName: z.ZodString;
503
513
  ensRainbowPublicConfig: z.ZodObject<{
504
- version: z.ZodString;
505
- labelSet: z.ZodObject<{
514
+ serverLabelSet: z.ZodObject<{
506
515
  labelSetId: z.ZodString;
507
516
  highestLabelSetVersion: z.ZodInt;
508
517
  }, z.core.$strip>;
509
- recordsCount: z.ZodInt;
518
+ versionInfo: z.ZodObject<{
519
+ ensRainbow: z.ZodString;
520
+ }, z.core.$strip>;
510
521
  }, z.core.$strip>;
511
522
  indexedChainIds: z.ZodSet<z.ZodPipe<z.ZodInt, z.ZodTransform<number, number>>>;
512
523
  isSubgraphCompatible: z.ZodBoolean;
513
- labelSet: z.ZodObject<{
524
+ clientLabelSet: z.ZodObject<{
514
525
  labelSetId: z.ZodString;
515
526
  labelSetVersion: z.ZodPipe<z.ZodCoercedNumber<number>, z.ZodInt>;
516
527
  }, z.core.$strip>;
@@ -543,16 +554,17 @@ declare function makeSerializedEnsApiPublicConfigSchema(valueLabel?: string): z.
543
554
  ensIndexerPublicConfig: z.ZodObject<{
544
555
  ensIndexerSchemaName: z.ZodString;
545
556
  ensRainbowPublicConfig: z.ZodObject<{
546
- version: z.ZodString;
547
- labelSet: z.ZodObject<{
557
+ serverLabelSet: z.ZodObject<{
548
558
  labelSetId: z.ZodString;
549
559
  highestLabelSetVersion: z.ZodInt;
550
560
  }, z.core.$strip>;
551
- recordsCount: z.ZodInt;
561
+ versionInfo: z.ZodObject<{
562
+ ensRainbow: z.ZodString;
563
+ }, z.core.$strip>;
552
564
  }, z.core.$strip>;
553
565
  indexedChainIds: z.ZodArray<z.ZodPipe<z.ZodInt, z.ZodTransform<number, number>>>;
554
566
  isSubgraphCompatible: z.ZodBoolean;
555
- labelSet: z.ZodObject<{
567
+ clientLabelSet: z.ZodObject<{
556
568
  labelSetId: z.ZodString;
557
569
  labelSetVersion: z.ZodPipe<z.ZodCoercedNumber<number>, z.ZodInt>;
558
570
  }, z.core.$strip>;
@@ -1575,7 +1587,7 @@ declare const deserializeENSIndexerPublicConfig: typeof deserializeEnsIndexerPub
1575
1587
  *
1576
1588
  * @see https://ensnode.io/docs/concepts/what-is-the-ens-subgraph
1577
1589
  */
1578
- declare function isSubgraphCompatible(config: Pick<EnsIndexerPublicConfig, "namespace" | "plugins" | "labelSet">): boolean;
1590
+ declare function isSubgraphCompatible(config: Pick<EnsIndexerPublicConfig, "namespace" | "plugins" | "clientLabelSet">): boolean;
1579
1591
 
1580
1592
  /**
1581
1593
  * Converts a Labelhash to bytes, with validation
@@ -1657,13 +1669,9 @@ declare function validateEnsIndexerPublicConfig(unvalidatedConfig: Unvalidated<E
1657
1669
  declare function validateEnsIndexerVersionInfo(unvalidatedVersionInfo: Unvalidated<EnsIndexerVersionInfo>): EnsIndexerVersionInfo;
1658
1670
 
1659
1671
  /**
1660
- * Information about the stack of services inside an ENSNode instance.
1672
+ * Information about the stack of services associated with an ENSIndexer instance.
1661
1673
  */
1662
- interface EnsNodeStackInfo {
1663
- /**
1664
- * ENSApi Public Config
1665
- */
1666
- ensApi: EnsApiPublicConfig;
1674
+ interface EnsIndexerStackInfo {
1667
1675
  /**
1668
1676
  * ENSDb Public Config
1669
1677
  */
@@ -1674,17 +1682,29 @@ interface EnsNodeStackInfo {
1674
1682
  ensIndexer: EnsIndexerPublicConfig;
1675
1683
  /**
1676
1684
  * ENSRainbow Public Config
1677
- *
1678
- * If undefined, represents that ENSRainbow is currently undergoing
1679
- * a cold start and may take up to an hour to become ready.
1680
1685
  */
1681
- ensRainbow?: EnsRainbowPublicConfig;
1686
+ ensRainbow: EnsRainbowPublicConfig;
1687
+ }
1688
+ /**
1689
+ * Build a complete {@link EnsIndexerStackInfo} object from
1690
+ * the given public configs of ENSDb, ENSIndexer, and ENSRainbow.
1691
+ */
1692
+ declare function buildEnsIndexerStackInfo(ensDbPublicConfig: EnsDbPublicConfig, ensIndexerPublicConfig: EnsIndexerPublicConfig, ensRainbowPublicConfig: EnsRainbowPublicConfig): EnsIndexerStackInfo;
1693
+
1694
+ /**
1695
+ * Information about the stack of services inside an ENSNode instance.
1696
+ */
1697
+ interface EnsNodeStackInfo extends EnsIndexerStackInfo {
1698
+ /**
1699
+ * ENSApi Public Config
1700
+ */
1701
+ ensApi: EnsApiPublicConfig;
1682
1702
  }
1683
1703
  /**
1684
1704
  * Build a complete {@link EnsNodeStackInfo} object from
1685
- * the given public configs of ENSApi and ENSDb.
1705
+ * the given public configs of ENSApi, ENSDb, ENSIndexer, and ENSRainbow.
1686
1706
  */
1687
- declare function buildEnsNodeStackInfo(ensApiPublicConfig: EnsApiPublicConfig, ensDbPublicConfig: EnsDbPublicConfig): EnsNodeStackInfo;
1707
+ declare function buildEnsNodeStackInfo(ensApiPublicConfig: EnsApiPublicConfig, ensDbPublicConfig: EnsDbPublicConfig, ensIndexerPublicConfig: EnsIndexerPublicConfig, ensRainbowPublicConfig: EnsRainbowPublicConfig): EnsNodeStackInfo;
1688
1708
 
1689
1709
  /**
1690
1710
  * A status code for indexing status responses.
@@ -1765,13 +1785,23 @@ type EnsApiIndexingStatusResponse = EnsApiIndexingStatusResponseOk | EnsApiIndex
1765
1785
  type IndexingStatusResponse = EnsApiIndexingStatusResponse;
1766
1786
 
1767
1787
  /**
1768
- * Serialized representation of {@link EnsNodeStackInfo}.
1788
+ * Serialized representation of {@link EnsIndexerStackInfo}.
1769
1789
  */
1770
- interface SerializedEnsNodeStackInfo {
1771
- ensApi: SerializedEnsApiPublicConfig;
1790
+ interface SerializedEnsIndexerStackInfo {
1772
1791
  ensDb: SerializedEnsDbPublicConfig;
1773
1792
  ensIndexer: SerializedEnsIndexerPublicConfig;
1774
- ensRainbow?: SerializedEnsRainbowPublicConfig;
1793
+ ensRainbow: SerializedEnsRainbowPublicConfig;
1794
+ }
1795
+ /**
1796
+ * Serialize a {@link EnsIndexerStackInfo} object.
1797
+ */
1798
+ declare function serializeEnsIndexerStackInfo(stackInfo: EnsIndexerStackInfo): SerializedEnsIndexerStackInfo;
1799
+
1800
+ /**
1801
+ * Serialized representation of {@link EnsNodeStackInfo}.
1802
+ */
1803
+ interface SerializedEnsNodeStackInfo extends SerializedEnsIndexerStackInfo {
1804
+ ensApi: SerializedEnsApiPublicConfig;
1775
1805
  }
1776
1806
  /**
1777
1807
  * Serialize a {@link EnsNodeStackInfo} object.
@@ -2494,6 +2524,7 @@ declare const CurrencyIds: {
2494
2524
  readonly ETH: "ETH";
2495
2525
  readonly USDC: "USDC";
2496
2526
  readonly DAI: "DAI";
2527
+ readonly ENSTokens: "ENSTokens";
2497
2528
  };
2498
2529
  type CurrencyId = (typeof CurrencyIds)[keyof typeof CurrencyIds];
2499
2530
  /**
@@ -2519,7 +2550,11 @@ interface PriceUsdc {
2519
2550
  currency: typeof CurrencyIds.USDC;
2520
2551
  amount: CurrencyAmount;
2521
2552
  }
2522
- type Price = PriceEth | PriceDai | PriceUsdc;
2553
+ interface PriceEnsTokens {
2554
+ currency: typeof CurrencyIds.ENSTokens;
2555
+ amount: CurrencyAmount;
2556
+ }
2557
+ type Price = PriceEth | PriceDai | PriceUsdc | PriceEnsTokens;
2523
2558
  /**
2524
2559
  * Serialized representation of {@link PriceEth}.
2525
2560
  */
@@ -2538,10 +2573,16 @@ interface SerializedPriceDai extends Omit<PriceDai, "amount"> {
2538
2573
  interface SerializedPriceUsdc extends Omit<PriceUsdc, "amount"> {
2539
2574
  amount: SerializedCurrencyAmount;
2540
2575
  }
2576
+ /**
2577
+ * Serialized representation of {@link PriceEnsTokens}.
2578
+ */
2579
+ interface SerializedPriceEnsTokens extends Omit<PriceEnsTokens, "amount"> {
2580
+ amount: SerializedCurrencyAmount;
2581
+ }
2541
2582
  /**
2542
2583
  * Serialized representation of {@link Price}.
2543
2584
  */
2544
- type SerializedPrice = SerializedPriceEth | SerializedPriceDai | SerializedPriceUsdc;
2585
+ type SerializedPrice = SerializedPriceEth | SerializedPriceDai | SerializedPriceUsdc | SerializedPriceEnsTokens;
2545
2586
  interface CurrencyInfo {
2546
2587
  id: CurrencyId;
2547
2588
  name: string;
@@ -2563,6 +2604,10 @@ declare function priceUsdc(amount: Price["amount"]): PriceUsdc;
2563
2604
  * Create price in DAI for given amount.
2564
2605
  */
2565
2606
  declare function priceDai(amount: Price["amount"]): PriceDai;
2607
+ /**
2608
+ * Create price in ENS Tokens for given amount.
2609
+ */
2610
+ declare function priceEnsTokens(amount: Price["amount"]): PriceEnsTokens;
2566
2611
  /**
2567
2612
  * Check if two prices have the same currency.
2568
2613
  */
@@ -2696,6 +2741,27 @@ declare function parseUsdc(value: string): PriceUsdc;
2696
2741
  * parseDai("0.001") // returns { currency: "DAI", amount: 1000000000000000n }
2697
2742
  */
2698
2743
  declare function parseDai(value: string): PriceDai;
2744
+ /**
2745
+ * Parses a string representation of ENS Tokens into a {@link PriceEnsTokens} object.
2746
+ *
2747
+ * Uses {@link getCurrencyInfo} to get the correct number of decimals (18) for ENS Tokens
2748
+ * and {@link parseUnits} from viem to convert the decimal string to a bigint.
2749
+ *
2750
+ * **Note:** Values with more than 18 decimal places will be truncated/rounded by viem's `parseUnits`.
2751
+ *
2752
+ * @param value - The decimal string to parse (e.g., "123.456789012345678" for 123.456789012345678 ENS Tokens)
2753
+ * @returns A PriceEnsTokens object with the amount in the smallest unit (18 decimals)
2754
+ *
2755
+ * @throws {Error} If value is empty, whitespace-only or untrimmed
2756
+ * @throws {Error} If value represents a negative number
2757
+ * @throws {Error} If value is not a valid decimal string (e.g., "abc", "1.2.3")
2758
+ *
2759
+ * @example
2760
+ * parseEnsTokens("123.456789012345678") // returns { currency: "ENSTokens", amount: 123456789012345678000n }
2761
+ * parseEnsTokens("1") // returns { currency: "ENSTokens", amount: 1000000000000000000n }
2762
+ * parseEnsTokens("0.001") // returns { currency: "ENSTokens", amount: 1000000000000000n }
2763
+ */
2764
+ declare function parseEnsTokens(value: string): PriceEnsTokens;
2699
2765
 
2700
2766
  /**
2701
2767
  * Subregistry
@@ -4256,62 +4322,123 @@ declare function validateOmnichainIndexingStatusSnapshot(unvalidatedSnapshot: Un
4256
4322
  declare function validateRealtimeIndexingStatusProjection(unvalidatedProjection: Unvalidated<RealtimeIndexingStatusProjection>, valueLabel?: string): RealtimeIndexingStatusProjection;
4257
4323
 
4258
4324
  /**
4259
- * Check if provided EnsIndexerPublicConfig supports the ENSNode Omnigraph API.
4325
+ * Builds an unvalidated {@link EnsIndexerStackInfo} object to be
4326
+ * validated with {@link makeEnsIndexerStackInfoSchema}.
4327
+ *
4328
+ * @param serializedStackInfo - The serialized stack info to build from.
4329
+ * @return An unvalidated {@link EnsIndexerStackInfo} object.
4260
4330
  */
4261
- declare function hasOmnigraphApiConfigSupport(config: EnsIndexerPublicConfig): PrerequisiteResult;
4331
+ declare function buildUnvalidatedEnsIndexerStackInfo(serializedStackInfo: SerializedEnsIndexerStackInfo): Unvalidated<EnsIndexerStackInfo>;
4332
+ /**
4333
+ * Deserialize value into {@link EnsIndexerStackInfo} object.
4334
+ */
4335
+ declare function deserializeEnsIndexerStackInfo(maybeStackInfo: Unvalidated<SerializedEnsIndexerStackInfo>, valueLabel?: string): EnsIndexerStackInfo;
4262
4336
 
4263
4337
  /**
4264
- * Gets the SubregistryId (an AccountId) of the Basenames Subregistry contract (this is the
4265
- * "BaseRegistrar" contract for Basenames) for the provided namespace.
4338
+ * Builds an unvalidated {@link EnsNodeStackInfo} object to be
4339
+ * validated with {@link makeEnsNodeStackInfoSchema}.
4266
4340
  *
4267
- * @param namespace The ENS namespace to get the Basenames Subregistry ID for
4268
- * @returns The AccountId for the Basenames Subregistry contract for the provided namespace.
4269
- * @throws Error if the contract is not found for the given namespace.
4341
+ * @param serializedStackInfo - The serialized stack info to build from.
4342
+ * @return An unvalidated {@link EnsNodeStackInfo} object.
4270
4343
  */
4271
- declare function getBasenamesSubregistryId(namespace: ENSNamespaceId): AccountId;
4344
+ declare function buildUnvalidatedEnsNodeStackInfo(serializedStackInfo: SerializedEnsNodeStackInfo): Unvalidated<EnsNodeStackInfo>;
4272
4345
  /**
4273
- * Get the managed name for the Basenames subregistry for the selected ENS namespace.
4274
- *
4275
- * @param namespaceId
4276
- * @returns registrar managed name
4277
- * @throws an error when no registrar managed name could be returned
4346
+ * Deserialize value into {@link EnsNodeStackInfo} object.
4347
+ */
4348
+ declare function deserializeEnsNodeStackInfo(maybeStackInfo: Unvalidated<SerializedEnsNodeStackInfo>, valueLabel?: string): EnsNodeStackInfo;
4349
+
4350
+ /**
4351
+ * Validate a maybe {@link EnsIndexerStackInfo} object.
4278
4352
  */
4279
- declare function getBasenamesSubregistryManagedName(namespaceId: ENSNamespaceId): InterpretedName;
4353
+ declare function validateEnsIndexerStackInfo(maybeStackInfo: Unvalidated<EnsIndexerStackInfo>, valueLabel?: string): EnsIndexerStackInfo;
4280
4354
 
4281
4355
  /**
4282
- * Gets the SubregistryId (an AccountId) of the Ethnames Subregistry contract (this is the
4283
- * "BaseRegistrar" contract for direct subnames of .eth) for the provided namespace.
4356
+ * Validate a maybe {@link EnsNodeStackInfo} object.
4357
+ */
4358
+ declare function validateEnsNodeStackInfo(maybeStackInfo: Unvalidated<EnsNodeStackInfo>, valueLabel?: string): EnsNodeStackInfo;
4359
+
4360
+ /**
4361
+ * A status code for an indexing metadata context
4362
+ */
4363
+ declare const IndexingMetadataContextStatusCodes: {
4364
+ /**
4365
+ * Represents that no indexing metadata context has been initialized
4366
+ * for the ENSIndexer Schema Name in the ENSNode Metadata table in ENSDb.
4367
+ */
4368
+ readonly Uninitialized: "uninitialized";
4369
+ /**
4370
+ * Represents that the indexing metadata context has been initialized
4371
+ * for the ENSIndexer Schema Name in the ENSNode Metadata table in ENSDb.
4372
+ */
4373
+ readonly Initialized: "initialized";
4374
+ };
4375
+ /**
4376
+ * The derived string union of possible {@link IndexingMetadataContextStatusCodes}.
4377
+ */
4378
+ type IndexingMetadataContextStatusCode = (typeof IndexingMetadataContextStatusCodes)[keyof typeof IndexingMetadataContextStatusCodes];
4379
+ interface IndexingMetadataContextUninitialized {
4380
+ statusCode: typeof IndexingMetadataContextStatusCodes.Uninitialized;
4381
+ }
4382
+ interface IndexingMetadataContextInitialized {
4383
+ statusCode: typeof IndexingMetadataContextStatusCodes.Initialized;
4384
+ indexingStatus: CrossChainIndexingStatusSnapshot;
4385
+ stackInfo: EnsIndexerStackInfo;
4386
+ }
4387
+ /**
4388
+ * Indexing Metadata Context
4284
4389
  *
4285
- * @param namespace The ENS namespace to get the Ethnames Subregistry ID for
4286
- * @returns The AccountId for the Ethnames Subregistry contract for the provided namespace.
4287
- * @throws Error if the contract is not found for the given namespace.
4390
+ * Use the {@link IndexingMetadataContext.statusCode} field to determine
4391
+ * the specific type interpretation at runtime.
4288
4392
  */
4289
- declare function getEthnamesSubregistryId(namespace: ENSNamespaceId): AccountId;
4393
+ type IndexingMetadataContext = IndexingMetadataContextUninitialized | IndexingMetadataContextInitialized;
4290
4394
  /**
4291
- * Get the managed name for the Ethnames subregistry for the selected ENS namespace.
4395
+ * Build an {@link IndexingMetadataContextUninitialized} object.
4396
+ */
4397
+ declare function buildIndexingMetadataContextUninitialized(): IndexingMetadataContextUninitialized;
4398
+ /**
4399
+ * Build an {@link IndexingMetadataContextInitialized} object.
4292
4400
  *
4293
- * @param namespaceId
4294
- * @returns registrar managed name
4401
+ * @throws Error if the provided parameters do not satisfy the validation
4402
+ * criteria for an {@link IndexingMetadataContextInitialized} object.
4295
4403
  */
4296
- declare function getEthnamesSubregistryManagedName(namespaceId: ENSNamespaceId): InterpretedName;
4404
+ declare function buildIndexingMetadataContextInitialized(indexingStatus: CrossChainIndexingStatusSnapshot, stackInfo: EnsIndexerStackInfo): IndexingMetadataContextInitialized;
4297
4405
 
4298
4406
  /**
4299
- * Gets the SubregistryId (an AccountId) of the Lineanames Subregistry contract (this is the
4300
- * "BaseRegistrar" contract for Lineanames) for the provided namespace.
4301
- *
4302
- * @param namespace The ENS namespace to get the Lineanames Subregistry ID for
4303
- * @returns The AccountId for the Lineanames Subregistry contract for the provided namespace.
4304
- * @throws Error if the contract is not found for the given namespace.
4407
+ * Serialized representation of an {@link IndexingMetadataContextUninitialized}.
4408
+ */
4409
+ type SerializedIndexingMetadataContextUninitialized = IndexingMetadataContextUninitialized;
4410
+ /**
4411
+ * Serialized representation of an {@link IndexingMetadataContextInitialized}.
4305
4412
  */
4306
- declare function getLineanamesSubregistryId(namespace: ENSNamespaceId): AccountId;
4413
+ interface SerializedIndexingMetadataContextInitialized extends Omit<IndexingMetadataContextInitialized, "indexingStatus" | "stackInfo"> {
4414
+ indexingStatus: SerializedCrossChainIndexingStatusSnapshot;
4415
+ stackInfo: SerializedEnsIndexerStackInfo;
4416
+ }
4307
4417
  /**
4308
- * Get the managed name for the Lineanames subregistry for the selected ENS namespace.
4418
+ * Serialized representation of an {@link IndexingMetadataContext}.
4309
4419
  *
4310
- * @param namespaceId
4311
- * @returns registrar managed name
4312
- * @throws an error when no registrar managed name could be returned
4420
+ * Use the {@link SerializedIndexingMetadataContext.statusCode} field to
4421
+ * determine the specific type interpretation at runtime.
4313
4422
  */
4314
- declare function getLineanamesSubregistryManagedName(namespaceId: ENSNamespaceId): InterpretedName;
4423
+ type SerializedIndexingMetadataContext = SerializedIndexingMetadataContextUninitialized | SerializedIndexingMetadataContextInitialized;
4424
+ declare function serializeIndexingMetadataContextInitialized(context: IndexingMetadataContextInitialized): SerializedIndexingMetadataContextInitialized;
4425
+ declare function serializeIndexingMetadataContext(context: IndexingMetadataContextUninitialized): SerializedIndexingMetadataContextUninitialized;
4426
+ declare function serializeIndexingMetadataContext(context: IndexingMetadataContextInitialized): SerializedIndexingMetadataContextInitialized;
4427
+
4428
+ /**
4429
+ * Deserialize a serialized {@link IndexingMetadataContext} object.
4430
+ */
4431
+ declare function deserializeIndexingMetadataContext(serializedIndexingMetadataContext: Unvalidated<SerializedIndexingMetadataContext>, valueLabel?: string): IndexingMetadataContext;
4432
+
4433
+ /**
4434
+ * Validate a maybe {@link IndexingMetadataContextInitialized} object.
4435
+ */
4436
+ declare function validateIndexingMetadataContextInitialized(maybeIndexingMetadataContext: Unvalidated<IndexingMetadataContextInitialized>, valueLabel?: string): IndexingMetadataContextInitialized;
4437
+
4438
+ /**
4439
+ * Check if provided EnsIndexerPublicConfig supports the ENSNode Omnigraph API.
4440
+ */
4441
+ declare function hasOmnigraphApiConfigSupport(config: EnsIndexerPublicConfig): PrerequisiteResult;
4315
4442
 
4316
4443
  interface RegistrationExpiryInfo {
4317
4444
  expiry: bigint | null;
@@ -4603,11 +4730,12 @@ declare function parseAccountId(maybeAccountId: unknown, valueLabel?: string): A
4603
4730
  declare function deserializePriceEth(maybePrice: unknown, valueLabel?: string): PriceEth;
4604
4731
  declare function deserializePriceUsdc(maybePrice: unknown, valueLabel?: string): PriceUsdc;
4605
4732
  declare function deserializePriceDai(maybePrice: unknown, valueLabel?: string): PriceDai;
4733
+ declare function deserializePriceEnsTokens(maybePrice: unknown, valueLabel?: string): PriceEnsTokens;
4606
4734
 
4607
4735
  /**
4608
- * Interprets a viem#Address. zeroAddress is interpreted as null, otherwise Address.
4736
+ * Interprets a NormalizedAddress. zeroAddress is interpreted as null, otherwise as-is.
4609
4737
  */
4610
- declare const interpretAddress: (owner: Address) => `0x${string}` | null;
4738
+ declare const interpretAddress: (owner: NormalizedAddress) => NormalizedAddress | null;
4611
4739
 
4612
4740
  /**
4613
4741
  * Interprets a name record value string and returns null if the value is interpreted as a deletion.
@@ -4684,6 +4812,24 @@ declare function interpretPubkeyValue(x: Hex, y: Hex): {
4684
4812
  */
4685
4813
  declare function interpretDnszonehashValue(value: Hex): Hex | null;
4686
4814
 
4815
+ interface ManagedNameResult {
4816
+ name: InterpretedName;
4817
+ node: Node;
4818
+ registry: AccountId;
4819
+ }
4820
+ /**
4821
+ * Given a `contract` in a `namespace`, identify its Managed Name, Node, and the concrete ENSv1
4822
+ * Registry in the context of which it operates.
4823
+ *
4824
+ * @dev memoized by (namespace, contract).
4825
+ * @throws if `contract` is not configured under any Managed Name for `namespace`
4826
+ */
4827
+ declare const getManagedName: (namespace: ENSNamespaceId, contract: AccountId) => ManagedNameResult;
4828
+ /**
4829
+ * Determines whether `contract` is a NameWrapper in the given `namespace`.
4830
+ */
4831
+ declare const isNameWrapper: (namespace: ENSNamespaceId, contract: AccountId) => boolean;
4832
+
4687
4833
  /**
4688
4834
  * A value that varies by ENS namespace, with a required default.
4689
4835
  *
@@ -4747,10 +4893,29 @@ declare function bigIntToNumber(n: bigint): number;
4747
4893
  */
4748
4894
  declare function scaleBigintByNumber(value: bigint, scaleFactor: number): bigint;
4749
4895
 
4896
+ type _ReplaceBigInts<arr extends readonly unknown[], type> = number extends arr["length"] ? ReplaceBigInts<arr[number], type>[] : arr extends readonly [infer first, ...infer rest] ? [ReplaceBigInts<first, type>, ..._ReplaceBigInts<rest, type>] : [];
4897
+ /**
4898
+ * Designed for plain JSON-like values (records, arrays, primitives, bigint).
4899
+ * Non-plain objects (e.g. `Date`, `Map`, class instances) are walked via
4900
+ * `Object.entries` at runtime, which strips prototype methods — pass them
4901
+ * through unchanged or use `JSON.stringify`'s replacer instead (see `toJson`).
4902
+ *
4903
+ * Output arrays and objects are mutable to match runtime behavior
4904
+ * (`Array.prototype.map` and `Object.fromEntries` both produce mutable values).
4905
+ */
4906
+ type ReplaceBigInts<obj, type> = obj extends bigint ? type : obj extends readonly unknown[] ? _ReplaceBigInts<obj, type> : obj extends object ? {
4907
+ -readonly [key in keyof obj]: ReplaceBigInts<obj[key], type>;
4908
+ } : obj;
4909
+ declare const replaceBigInts: <const T, const type>(obj: T, replacer: (x: bigint) => type) => ReplaceBigInts<T, type>;
4910
+
4750
4911
  /**
4751
4912
  * Gets the AccountId representing the ENSv1 Registry in the selected `namespace`.
4752
4913
  */
4753
4914
  declare const getENSv1Registry: (namespace: ENSNamespaceId) => AccountId;
4915
+ /**
4916
+ * Gets the ENSv1RegistryId representing the ENSv1 Root Registry in the selected `namespace`.
4917
+ */
4918
+ declare const getENSv1RootRegistryId: (namespace: ENSNamespaceId) => enssdk.ENSv1RegistryId;
4754
4919
  /**
4755
4920
  * Determines whether `contract` is the ENSv1 Registry in `namespace`.
4756
4921
  */
@@ -4766,7 +4931,7 @@ declare const getENSv2RootRegistry: (namespace: ENSNamespaceId) => AccountId;
4766
4931
  *
4767
4932
  * @throws if the ENSv2Root Datasource or the RootRegistry contract are not defined
4768
4933
  */
4769
- declare const getENSv2RootRegistryId: (namespace: ENSNamespaceId) => enssdk.RegistryId;
4934
+ declare const getENSv2RootRegistryId: (namespace: ENSNamespaceId) => enssdk.ENSv2RegistryId;
4770
4935
  /**
4771
4936
  * Determines whether `contract` is the ENSv2 Root Registry in `namespace`.
4772
4937
  *
@@ -4786,7 +4951,34 @@ declare const maybeGetENSv2RootRegistry: (namespace: ENSNamespaceId) => AccountI
4786
4951
  *
4787
4952
  * TODO: remove this function and its usage after all namespaces define ENSv2Root
4788
4953
  */
4789
- declare const maybeGetENSv2RootRegistryId: (namespace: ENSNamespaceId) => enssdk.RegistryId | undefined;
4954
+ declare const maybeGetENSv2RootRegistryId: (namespace: ENSNamespaceId) => enssdk.ENSv2RegistryId | undefined;
4955
+ /**
4956
+ * Gets the RegistryId representing the primary Root Registry for the selected `namespace`: the
4957
+ * ENSv2 Root Registry when defined, otherwise the ENSv1 Root Registry. Matches ENS Forward
4958
+ * Resolution preference (v2 over v1) for display/resolution purposes.
4959
+ *
4960
+ * Not to be confused with the canonical-registries tree in the API layer, which is a union of
4961
+ * both ENSv1 and ENSv2 subtrees because ENSv1 Domains remain resolvable via Universal Resolver
4962
+ * v2's ENSv1 fallback.
4963
+ */
4964
+ declare const getRootRegistryId: (namespace: ENSNamespaceId) => enssdk.ENSv1RegistryId | enssdk.ENSv2RegistryId;
4965
+ /**
4966
+ * Gets every top-level Root Registry configured for the namespace: all ENSv1Registries
4967
+ * (ENSRoot ENSv1Registry, Basenames base.eth ENSv1VirtualRegistry, Lineanames linea.eth ENSv1VirtualRegistry)
4968
+ * plus the ENSv2 Root Registry when defined. Used by consumers that need to walk the full set of
4969
+ * canonical namegraph roots (forward traversal, canonical-set construction) rather than the single
4970
+ * "primary" root returned by {@link getRootRegistryId}. Note that for the Lineanames and Basenames
4971
+ * Shadow Registries, we consider the Managed Name's ENSv1VirtualRegistry as the root, which
4972
+ * negates canonicality for any names managed by said Shadow Registry under a different Managed Name.
4973
+ *
4974
+ * Each Registry roots its own on-chain subtree (the mainnet ENSv1Registry, Basenames/Lineanames
4975
+ * shadow Registries on their own chains) — they are not linked together at the indexed-namegraph
4976
+ * level, so a traversal that starts from a single root cannot reach them all.
4977
+ *
4978
+ * TODO(ensv2-shadow): when well-known CCIP-read ENSv2 Registries are introduced, extend this helper to
4979
+ * enumerate them.
4980
+ */
4981
+ declare const getRootRegistryIds: (namespace: ENSNamespaceId) => RegistryId[];
4790
4982
 
4791
4983
  /**
4792
4984
  * Serializes a {@link ChainId} value into its string representation.
@@ -4816,26 +5008,30 @@ declare function serializePriceUsdc(price: PriceUsdc): SerializedPriceUsdc;
4816
5008
  * Serializes a {@link PriceDai} object.
4817
5009
  */
4818
5010
  declare function serializePriceDai(price: PriceDai): SerializedPriceDai;
4819
-
4820
- declare function isHttpProtocol(url: URL): boolean;
4821
- declare function isWebSocketProtocol(url: URL): boolean;
4822
-
4823
5011
  /**
4824
- * Builds an unvalidated {@link EnsNodeStackInfo} object to be
4825
- * validated with {@link makeEnsNodeStackInfoSchema}.
4826
- *
4827
- * @param serializedStackInfo - The serialized stack info to build from.
4828
- * @return An unvalidated {@link EnsNodeStackInfo} object.
5012
+ * Serializes a {@link PriceEnsTokens} object.
4829
5013
  */
4830
- declare function buildUnvalidatedEnsNodeStackInfo(serializedStackInfo: SerializedEnsNodeStackInfo): Unvalidated<EnsNodeStackInfo>;
5014
+ declare function serializePriceEnsTokens(price: PriceEnsTokens): SerializedPriceEnsTokens;
5015
+
4831
5016
  /**
4832
- * Deserialize value into {@link EnsNodeStackInfo} object.
5017
+ * `JSON.stringify` with bigints replaced by their string representation.
5018
+ *
5019
+ * Defaults to compact output. Pass `{ pretty: true }` for 2-space indent
5020
+ * (useful for human-readable error messages and console logs).
5021
+ *
5022
+ * Uses `JSON.stringify`'s replacer callback so native `toJSON` behavior is
5023
+ * preserved (e.g. `Date` serializes to its ISO string).
4833
5024
  */
4834
- declare function deserializeEnsNodeStackInfo(maybeStackInfo: Unvalidated<SerializedEnsNodeStackInfo>, valueLabel?: string): EnsNodeStackInfo;
5025
+ declare const toJson: (value: unknown, options?: {
5026
+ pretty?: boolean;
5027
+ }) => string;
5028
+
5029
+ declare function isHttpProtocol(url: URL): boolean;
5030
+ declare function isWebSocketProtocol(url: URL): boolean;
4835
5031
 
4836
5032
  /**
4837
5033
  * Check if provided EnsIndexerPublicConfig supports the Subgraph API.
4838
5034
  */
4839
5035
  declare function hasSubgraphApiConfigSupport(config: EnsIndexerPublicConfig): PrerequisiteResult;
4840
5036
 
4841
- export { ATTR_PROTOCOL_NAME, ATTR_PROTOCOL_STEP, ATTR_PROTOCOL_STEP_RESULT, type AcceleratableRequest, type AcceleratableResponse, type BlockNumber, type BlockNumberRange, type BlockNumberRangeBounded, type BlockNumberRangeLeftBounded, type BlockNumberRangeRightBounded, type BlockNumberRangeUnbounded, type BlockNumberRangeWithStartBlock, type BlockRef, type BlockRefRange, type BlockRefRangeBounded, type BlockRefRangeLeftBounded, type BlockRefRangeRightBounded, type BlockRefRangeUnbounded, type BlockRefRangeWithStartBlock, type Cache, type CachedResult, type ChainIndexingStatusId, ChainIndexingStatusIds, type ChainIndexingStatusSnapshot, type ChainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotCompleted, type ChainIndexingStatusSnapshotFollowing, type ChainIndexingStatusSnapshotForOmnichainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotQueued, ClientError, type CrossChainIndexingStatusSnapshot, type CrossChainIndexingStatusSnapshotOmnichain, type CrossChainIndexingStrategyId, CrossChainIndexingStrategyIds, type CurrencyAmount, type CurrencyId, CurrencyIds, type CurrencyInfo, DEFAULT_ENSNODE_URL_MAINNET, DEFAULT_ENSNODE_URL_SEPOLIA, type Datetime, type DeepPartial, type DomainAssetId, ENCODED_REFERRER_BYTE_LENGTH, ENCODED_REFERRER_BYTE_OFFSET, type ENSApiPublicConfig, type ENSIndexerPublicConfig, type ENSIndexerVersionInfo, EXPECTED_ENCODED_REFERRER_PADDING, type EncodedReferrer, type EnsApiIndexingStatusRequest, type EnsApiIndexingStatusResponse, type EnsApiIndexingStatusResponseCode, EnsApiIndexingStatusResponseCodes, type EnsApiIndexingStatusResponseError, type EnsApiIndexingStatusResponseOk, type EnsApiPublicConfig, type EnsApiVersionInfo, type EnsDbPublicConfig, type EnsDbVersionInfo, EnsIndexerClient, type EnsIndexerClientOptions, type EnsIndexerConfigResponse, type EnsIndexerIndexingStatusRequest, type EnsIndexerIndexingStatusResponse, type EnsIndexerIndexingStatusResponseCode, EnsIndexerIndexingStatusResponseCodes, type EnsIndexerIndexingStatusResponseError, type EnsIndexerIndexingStatusResponseOk, type EnsIndexerPublicConfig, type EnsIndexerPublicConfigCompatibilityCheck, type EnsIndexerVersionInfo, EnsNodeClient, type EnsNodeClientOptions, type EnsNodeStackInfo, type EnsRainbowClientLabelSet, type EnsRainbowPublicConfig, type EnsRainbowServerLabelSet, type ErrorResponse, type ForwardResolutionArgs, ForwardResolutionProtocolStep, type ForwardResolutionResult, type Identity, type IndexingStatusRequest, type IndexingStatusResponse, type IndexingStatusResponseCode, IndexingStatusResponseCodes, type IndexingStatusResponseError, type IndexingStatusResponseOk, type LabelSetId, type LabelSetVersion, LruCache, type MultichainPrimaryNameResolutionArgs, type MultichainPrimaryNameResolutionResult, type NFTMintStatus, NFTMintStatuses, type NFTTransferEventMetadata, type NFTTransferType, NFTTransferTypes, type NameToken, type NameTokenOwnership, type NameTokenOwnershipBurned, type NameTokenOwnershipFullyOnchain, type NameTokenOwnershipNameWrapper, type NameTokenOwnershipType, NameTokenOwnershipTypes, type NameTokenOwnershipUnknown, type NameTokensRequest, type NameTokensResponse, type NameTokensResponseCode, NameTokensResponseCodes, type NameTokensResponseError, type NameTokensResponseErrorCode, NameTokensResponseErrorCodes, type NameTokensResponseErrorEnsIndexerConfigUnsupported, type NameTokensResponseErrorIndexingStatusUnsupported, type NameTokensResponseErrorNameTokensNotIndexed, type NameTokensResponseOk, type NamedIdentity, type NamedRegistrarAction, type NamespaceSpecificValue, type OmnichainIndexingStatusId, OmnichainIndexingStatusIds, type OmnichainIndexingStatusSnapshot, type OmnichainIndexingStatusSnapshotBackfill, type OmnichainIndexingStatusSnapshotCompleted, type OmnichainIndexingStatusSnapshotFollowing, type OmnichainIndexingStatusSnapshotUnstarted, PROTOCOL_ATTRIBUTE_PREFIX, PluginName, type PrerequisiteResult, type Price, type PriceDai, type PriceEth, type PriceUsdc, RECORDS_PER_PAGE_DEFAULT, RECORDS_PER_PAGE_MAX, type RangeType, RangeTypeIds, type RealtimeIndexingStatusProjection, type RegisteredNameTokens, type RegistrarAction, type RegistrarActionEventId, type RegistrarActionPricing, type RegistrarActionPricingAvailable, type RegistrarActionPricingUnknown, type RegistrarActionReferral, type RegistrarActionReferralAvailable, type RegistrarActionReferralNotApplicable, type RegistrarActionType, RegistrarActionTypes, type RegistrarActionsFilter, type RegistrarActionsFilterBeginTimestamp, type RegistrarActionsFilterByDecodedReferrer, type RegistrarActionsFilterBySubregistryNode, type RegistrarActionsFilterEndTimestamp, type RegistrarActionsFilterType, RegistrarActionsFilterTypes, type RegistrarActionsFilterWithEncodedReferral, type RegistrarActionsOrder, RegistrarActionsOrders, type RegistrarActionsRequest, type RegistrarActionsResponse, type RegistrarActionsResponseCode, RegistrarActionsResponseCodes, type RegistrarActionsResponseError, type RegistrarActionsResponseOk, type RegistrationExpiryInfo, type RegistrationLifecycle, type RegistrationLifecycleStage, type RequestPageParams, type RequiredAndNotNull, type ResolutionStatusId, ResolutionStatusIds, type ResolvePrimaryNameRequest, type ResolvePrimaryNameResponse, type ResolvePrimaryNamesRequest, type ResolvePrimaryNamesResponse, type ResolveRecordsRequest, type ResolveRecordsResponse, type ResolvedIdentity, type ResolverRecordsResponse, type ResolverRecordsResponseBase, type ResolverRecordsSelection, type ResponsePageContext, type ResponsePageContextWithNoRecords, type ResponsePageContextWithRecords, type ReverseResolutionArgs, ReverseResolutionProtocolStep, type ReverseResolutionResult, type RpcUrl, SWRCache, type SWRCacheOptions, type SerializedAssetId, type SerializedChainIndexingStatusSnapshot, type SerializedChainIndexingStatusSnapshotBackfill, type SerializedChainIndexingStatusSnapshotCompleted, type SerializedChainIndexingStatusSnapshotFollowing, type SerializedChainIndexingStatusSnapshotQueued, type SerializedCrossChainIndexingStatusSnapshot, type SerializedCrossChainIndexingStatusSnapshotOmnichain, type SerializedCurrencyAmount, type SerializedCurrentIndexingProjectionOmnichain, type SerializedDomainAssetId, type SerializedENSApiPublicConfig, type SerializedENSIndexerPublicConfig, type SerializedENSIndexerVersionInfo, type SerializedEnsApiIndexingStatusResponse, type SerializedEnsApiIndexingStatusResponseError, type SerializedEnsApiIndexingStatusResponseOk, type SerializedEnsApiPublicConfig, type SerializedEnsDbPublicConfig, type SerializedEnsIndexerConfigResponse, type SerializedEnsIndexerIndexingStatusResponse, type SerializedEnsIndexerIndexingStatusResponseError, type SerializedEnsIndexerIndexingStatusResponseOk, type SerializedEnsIndexerPublicConfig, type SerializedEnsIndexerVersionInfo, type SerializedEnsNodeStackInfo, type SerializedEnsRainbowPublicConfig, type SerializedIndexedChainIds, type SerializedIndexingStatusResponse, type SerializedIndexingStatusResponseError, type SerializedIndexingStatusResponseOk, type SerializedNameToken, type SerializedNameTokensResponse, type SerializedNameTokensResponseError, type SerializedNameTokensResponseOk, type SerializedNamedRegistrarAction, type SerializedOmnichainIndexingStatusSnapshot, type SerializedOmnichainIndexingStatusSnapshotBackfill, type SerializedOmnichainIndexingStatusSnapshotCompleted, type SerializedOmnichainIndexingStatusSnapshotFollowing, type SerializedOmnichainIndexingStatusSnapshotUnstarted, type SerializedPrice, type SerializedPriceDai, type SerializedPriceEth, type SerializedPriceUsdc, type SerializedRealtimeIndexingStatusProjection, type SerializedRegisteredNameTokens, type SerializedRegistrarAction, type SerializedRegistrarActionPricing, type SerializedRegistrarActionPricingAvailable, type SerializedRegistrarActionPricingUnknown, type SerializedRegistrarActionsResponse, type SerializedRegistrarActionsResponseError, type SerializedRegistrarActionsResponseOk, type SerializedTokenId, type Subregistry, type TheGraphCannotFallbackReason, TheGraphCannotFallbackReasonSchema, type TheGraphFallback, TheGraphFallbackSchema, TraceableENSProtocol, type TraceableRequest, type TraceableResponse, type TracingNode, type TracingSpan, type TracingTrace, TtlCache, type UnknownIdentity, type UnnamedIdentity, type UnresolvedIdentity, type Unvalidated, ZERO_ENCODED_REFERRER, accountIdEqual, addDuration, addPrices, bigIntToNumber, buildAssetId, buildBlockNumberRange, buildBlockRefRange, buildCrossChainIndexingStatusSnapshotOmnichain, buildEncodedReferrer, buildEnsNodeStackInfo, buildEnsRainbowClientLabelSet, buildIndexedBlockranges, buildLabelSetId, buildLabelSetVersion, buildOmnichainIndexingStatusSnapshot, buildPageContext, buildUnresolvedIdentity, buildUnvalidatedCrossChainIndexingStatusSnapshot, buildUnvalidatedEnsApiPublicConfig, buildUnvalidatedEnsIndexerPublicConfig, buildUnvalidatedEnsNodeStackInfo, buildUnvalidatedOmnichainIndexingStatusSnapshot, buildUnvalidatedRealtimeIndexingStatusProjection, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotBackfill, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotCompleted, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotFollowing, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotUnstarted, createRealtimeIndexingStatusProjection, decodeEncodedReferrer, deserializeAssetId, deserializeBlockNumber, deserializeBlockRef, deserializeChainId, deserializeChainIndexingStatusSnapshot, deserializeCrossChainIndexingStatusSnapshot, deserializeDatetime, deserializeDuration, deserializeENSApiPublicConfig, deserializeENSIndexerPublicConfig, deserializeEnsApiIndexingStatusResponse, deserializeEnsApiPublicConfig, deserializeEnsIndexerConfigResponse, deserializeEnsIndexerIndexingStatusResponse, deserializeEnsIndexerPublicConfig, deserializeEnsNodeStackInfo, deserializeErrorResponse, deserializeIndexingStatusResponse, deserializeOmnichainIndexingStatusSnapshot, deserializePriceDai, deserializePriceEth, deserializePriceUsdc, deserializeRealtimeIndexingStatusProjection, deserializeRegistrarActionsResponse, deserializeUnixTimestamp, deserializeUrl, deserializedNameTokensResponse, durationBetween, formatNFTTransferEventMetadata, getBasenamesSubregistryId, getBasenamesSubregistryManagedName, getCurrencyInfo, getDatasourceContract, getDefaultEnsNodeUrl, getENSv1Registry, getENSv2RootRegistry, getENSv2RootRegistryId, getEthnamesSubregistryId, getEthnamesSubregistryManagedName, getHighestKnownBlockTimestamp, getLatestIndexedBlockRef, getLineanamesSubregistryId, getLineanamesSubregistryManagedName, getNFTTransferType, getNameTokenOwnership, getNameWrapperAccounts, getNamespaceSpecificValue, getOmnichainIndexingCursor, getOmnichainIndexingStatus, getResolvePrimaryNameChainIdParam, getTimestampForHighestOmnichainKnownBlock, getTimestampForLowestOmnichainStartBlock, hasNullByte, hasOmnigraphApiConfigSupport, hasRegistrarActionsConfigSupport, hasRegistrarActionsIndexingStatusSupport, hasSubgraphApiConfigSupport, interpretAddress, interpretAddressRecordValue, interpretContenthashValue, interpretDnszonehashValue, interpretNameRecordValue, interpretPubkeyValue, interpretTextRecordKey, interpretTextRecordValue, isENSv1Registry, isENSv2RootRegistry, isHttpProtocol, isPccFuseSet, isPriceCurrencyEqual, isPriceEqual, isRegistrarActionPricingAvailable, isRegistrarActionReferralAvailable, isRegistrationExpired, isRegistrationFullyExpired, isRegistrationInGracePeriod, isResolvedIdentity, isSelectionEmpty, isSubgraphCompatible, isWebSocketProtocol, labelHashToBytes, makeContractMatcher, makeENSApiPublicConfigSchema, makeEnsApiPublicConfigSchema, makeSerializedEnsApiPublicConfigSchema, maxPrice, maybeGetDatasourceContract, maybeGetENSv2RootRegistry, maybeGetENSv2RootRegistryId, mergeBlockNumberRanges, minPrice, nameTokensPrerequisites, parseAccountId, parseAssetId, parseDai, parseEth, parseNonNegativeInteger, parseTimestamp, parseUsdc, priceDai, priceEth, priceUsdc, registrarActionsFilter, scaleBigintByNumber, scalePrice, serializeAssetId, serializeChainId, serializeChainIndexingSnapshots, serializeCrossChainIndexingStatusSnapshot, serializeCrossChainIndexingStatusSnapshotOmnichain, serializeDatetime, serializeDomainAssetId, serializeENSApiPublicConfig, serializeENSIndexerPublicConfig, serializeEnsApiIndexingStatusResponse, serializeEnsApiPublicConfig, serializeEnsIndexerConfigResponse, serializeEnsIndexerIndexingStatusResponse, serializeEnsIndexerPublicConfig, serializeEnsNodeStackInfo, serializeIndexedChainIds, serializeIndexingStatusResponse, serializeNameToken, serializeNameTokensResponse, serializeNamedRegistrarAction, serializeOmnichainIndexingStatusSnapshot, serializePrice, serializePriceDai, serializePriceEth, serializePriceUsdc, serializeRealtimeIndexingStatusProjection, serializeRegisteredNameTokens, serializeRegistrarAction, serializeRegistrarActionPricing, serializeRegistrarActionsResponse, serializeUrl, sortChainStatusesByStartBlockAsc, stripNullBytes, subtractPrice, translateDefaultableChainIdToChainId, uniq, validateChainIndexingStatusSnapshot, validateCrossChainIndexingStatusSnapshot, validateEnsIndexerPublicConfig, validateEnsIndexerPublicConfigCompatibility, validateEnsIndexerVersionInfo, validateOmnichainIndexingStatusSnapshot, validateRealtimeIndexingStatusProjection, validateSupportedLabelSetAndVersion };
5037
+ export { ATTR_PROTOCOL_NAME, ATTR_PROTOCOL_STEP, ATTR_PROTOCOL_STEP_RESULT, type AcceleratableRequest, type AcceleratableResponse, type BlockNumber, type BlockNumberRange, type BlockNumberRangeBounded, type BlockNumberRangeLeftBounded, type BlockNumberRangeRightBounded, type BlockNumberRangeUnbounded, type BlockNumberRangeWithStartBlock, type BlockRef, type BlockRefRange, type BlockRefRangeBounded, type BlockRefRangeLeftBounded, type BlockRefRangeRightBounded, type BlockRefRangeUnbounded, type BlockRefRangeWithStartBlock, type Cache, type CachedResult, type ChainIndexingStatusId, ChainIndexingStatusIds, type ChainIndexingStatusSnapshot, type ChainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotCompleted, type ChainIndexingStatusSnapshotFollowing, type ChainIndexingStatusSnapshotForOmnichainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotQueued, ClientError, type CrossChainIndexingStatusSnapshot, type CrossChainIndexingStatusSnapshotOmnichain, type CrossChainIndexingStrategyId, CrossChainIndexingStrategyIds, type CurrencyAmount, type CurrencyId, CurrencyIds, type CurrencyInfo, DEFAULT_ENSNODE_URL_MAINNET, DEFAULT_ENSNODE_URL_SEPOLIA, type Datetime, type DeepPartial, type DomainAssetId, ENCODED_REFERRER_BYTE_LENGTH, ENCODED_REFERRER_BYTE_OFFSET, type ENSApiPublicConfig, type ENSIndexerPublicConfig, type ENSIndexerVersionInfo, EXPECTED_ENCODED_REFERRER_PADDING, type EncodedReferrer, type EnsApiIndexingStatusRequest, type EnsApiIndexingStatusResponse, type EnsApiIndexingStatusResponseCode, EnsApiIndexingStatusResponseCodes, type EnsApiIndexingStatusResponseError, type EnsApiIndexingStatusResponseOk, type EnsApiPublicConfig, type EnsApiVersionInfo, type EnsDbPublicConfig, type EnsDbVersionInfo, EnsIndexerClient, type EnsIndexerClientOptions, type EnsIndexerConfigResponse, type EnsIndexerIndexingStatusRequest, type EnsIndexerIndexingStatusResponse, type EnsIndexerIndexingStatusResponseCode, EnsIndexerIndexingStatusResponseCodes, type EnsIndexerIndexingStatusResponseError, type EnsIndexerIndexingStatusResponseOk, type EnsIndexerPublicConfig, type EnsIndexerPublicConfigCompatibilityCheck, type EnsIndexerStackInfo, type EnsIndexerVersionInfo, EnsNodeClient, type EnsNodeClientOptions, type EnsNodeStackInfo, type EnsRainbowClientLabelSet, type EnsRainbowPublicConfig, type EnsRainbowServerLabelSet, type EnsRainbowVersionInfo, type ErrorResponse, type ForwardResolutionArgs, ForwardResolutionProtocolStep, type ForwardResolutionResult, type Identity, type IndexingMetadataContext, type IndexingMetadataContextInitialized, type IndexingMetadataContextStatusCode, IndexingMetadataContextStatusCodes, type IndexingMetadataContextUninitialized, type IndexingStatusRequest, type IndexingStatusResponse, type IndexingStatusResponseCode, IndexingStatusResponseCodes, type IndexingStatusResponseError, type IndexingStatusResponseOk, type LabelSetId, type LabelSetVersion, LruCache, type MultichainPrimaryNameResolutionArgs, type MultichainPrimaryNameResolutionResult, type NFTMintStatus, NFTMintStatuses, type NFTTransferEventMetadata, type NFTTransferType, NFTTransferTypes, type NameToken, type NameTokenOwnership, type NameTokenOwnershipBurned, type NameTokenOwnershipFullyOnchain, type NameTokenOwnershipNameWrapper, type NameTokenOwnershipType, NameTokenOwnershipTypes, type NameTokenOwnershipUnknown, type NameTokensRequest, type NameTokensResponse, type NameTokensResponseCode, NameTokensResponseCodes, type NameTokensResponseError, type NameTokensResponseErrorCode, NameTokensResponseErrorCodes, type NameTokensResponseErrorEnsIndexerConfigUnsupported, type NameTokensResponseErrorIndexingStatusUnsupported, type NameTokensResponseErrorNameTokensNotIndexed, type NameTokensResponseOk, type NamedIdentity, type NamedRegistrarAction, type NamespaceSpecificValue, type OmnichainIndexingStatusId, OmnichainIndexingStatusIds, type OmnichainIndexingStatusSnapshot, type OmnichainIndexingStatusSnapshotBackfill, type OmnichainIndexingStatusSnapshotCompleted, type OmnichainIndexingStatusSnapshotFollowing, type OmnichainIndexingStatusSnapshotUnstarted, PROTOCOL_ATTRIBUTE_PREFIX, PluginName, type PrerequisiteResult, type Price, type PriceDai, type PriceEnsTokens, type PriceEth, type PriceUsdc, RECORDS_PER_PAGE_DEFAULT, RECORDS_PER_PAGE_MAX, type RangeType, RangeTypeIds, type RealtimeIndexingStatusProjection, type RegisteredNameTokens, type RegistrarAction, type RegistrarActionEventId, type RegistrarActionPricing, type RegistrarActionPricingAvailable, type RegistrarActionPricingUnknown, type RegistrarActionReferral, type RegistrarActionReferralAvailable, type RegistrarActionReferralNotApplicable, type RegistrarActionType, RegistrarActionTypes, type RegistrarActionsFilter, type RegistrarActionsFilterBeginTimestamp, type RegistrarActionsFilterByDecodedReferrer, type RegistrarActionsFilterBySubregistryNode, type RegistrarActionsFilterEndTimestamp, type RegistrarActionsFilterType, RegistrarActionsFilterTypes, type RegistrarActionsFilterWithEncodedReferral, type RegistrarActionsOrder, RegistrarActionsOrders, type RegistrarActionsRequest, type RegistrarActionsResponse, type RegistrarActionsResponseCode, RegistrarActionsResponseCodes, type RegistrarActionsResponseError, type RegistrarActionsResponseOk, type RegistrationExpiryInfo, type RegistrationLifecycle, type RegistrationLifecycleStage, type ReplaceBigInts, type RequestPageParams, type RequiredAndNotNull, type RequiredAndNull, type ResolutionStatusId, ResolutionStatusIds, type ResolvePrimaryNameRequest, type ResolvePrimaryNameResponse, type ResolvePrimaryNamesRequest, type ResolvePrimaryNamesResponse, type ResolveRecordsRequest, type ResolveRecordsResponse, type ResolvedIdentity, type ResolverRecordsResponse, type ResolverRecordsResponseBase, type ResolverRecordsSelection, type ResponsePageContext, type ResponsePageContextWithNoRecords, type ResponsePageContextWithRecords, type ReverseResolutionArgs, ReverseResolutionProtocolStep, type ReverseResolutionResult, type RpcUrl, SWRCache, type SWRCacheOptions, type SerializedAssetId, type SerializedChainIndexingStatusSnapshot, type SerializedChainIndexingStatusSnapshotBackfill, type SerializedChainIndexingStatusSnapshotCompleted, type SerializedChainIndexingStatusSnapshotFollowing, type SerializedChainIndexingStatusSnapshotQueued, type SerializedCrossChainIndexingStatusSnapshot, type SerializedCrossChainIndexingStatusSnapshotOmnichain, type SerializedCurrencyAmount, type SerializedCurrentIndexingProjectionOmnichain, type SerializedDomainAssetId, type SerializedENSApiPublicConfig, type SerializedENSIndexerPublicConfig, type SerializedENSIndexerVersionInfo, type SerializedEnsApiIndexingStatusResponse, type SerializedEnsApiIndexingStatusResponseError, type SerializedEnsApiIndexingStatusResponseOk, type SerializedEnsApiPublicConfig, type SerializedEnsDbPublicConfig, type SerializedEnsIndexerConfigResponse, type SerializedEnsIndexerIndexingStatusResponse, type SerializedEnsIndexerIndexingStatusResponseError, type SerializedEnsIndexerIndexingStatusResponseOk, type SerializedEnsIndexerPublicConfig, type SerializedEnsIndexerStackInfo, type SerializedEnsIndexerVersionInfo, type SerializedEnsNodeStackInfo, type SerializedEnsRainbowPublicConfig, type SerializedIndexedChainIds, type SerializedIndexingMetadataContext, type SerializedIndexingMetadataContextInitialized, type SerializedIndexingMetadataContextUninitialized, type SerializedIndexingStatusResponse, type SerializedIndexingStatusResponseError, type SerializedIndexingStatusResponseOk, type SerializedNameToken, type SerializedNameTokensResponse, type SerializedNameTokensResponseError, type SerializedNameTokensResponseOk, type SerializedNamedRegistrarAction, type SerializedOmnichainIndexingStatusSnapshot, type SerializedOmnichainIndexingStatusSnapshotBackfill, type SerializedOmnichainIndexingStatusSnapshotCompleted, type SerializedOmnichainIndexingStatusSnapshotFollowing, type SerializedOmnichainIndexingStatusSnapshotUnstarted, type SerializedPrice, type SerializedPriceDai, type SerializedPriceEnsTokens, type SerializedPriceEth, type SerializedPriceUsdc, type SerializedRealtimeIndexingStatusProjection, type SerializedRegisteredNameTokens, type SerializedRegistrarAction, type SerializedRegistrarActionPricing, type SerializedRegistrarActionPricingAvailable, type SerializedRegistrarActionPricingUnknown, type SerializedRegistrarActionsResponse, type SerializedRegistrarActionsResponseError, type SerializedRegistrarActionsResponseOk, type SerializedTokenId, type Subregistry, type TheGraphCannotFallbackReason, TheGraphCannotFallbackReasonSchema, type TheGraphFallback, TheGraphFallbackSchema, TraceableENSProtocol, type TraceableRequest, type TraceableResponse, type TracingNode, type TracingSpan, type TracingTrace, TtlCache, type UnknownIdentity, type UnnamedIdentity, type UnresolvedIdentity, type Unvalidated, ZERO_ENCODED_REFERRER, accountIdEqual, addDuration, addPrices, bigIntToNumber, buildAssetId, buildBlockNumberRange, buildBlockRefRange, buildCrossChainIndexingStatusSnapshotOmnichain, buildEncodedReferrer, buildEnsIndexerStackInfo, buildEnsNodeStackInfo, buildEnsRainbowClientLabelSet, buildIndexedBlockranges, buildIndexingMetadataContextInitialized, buildIndexingMetadataContextUninitialized, buildLabelSetId, buildLabelSetVersion, buildOmnichainIndexingStatusSnapshot, buildPageContext, buildUnresolvedIdentity, buildUnvalidatedCrossChainIndexingStatusSnapshot, buildUnvalidatedEnsApiPublicConfig, buildUnvalidatedEnsIndexerPublicConfig, buildUnvalidatedEnsIndexerStackInfo, buildUnvalidatedEnsNodeStackInfo, buildUnvalidatedOmnichainIndexingStatusSnapshot, buildUnvalidatedRealtimeIndexingStatusProjection, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotBackfill, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotCompleted, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotFollowing, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotUnstarted, createRealtimeIndexingStatusProjection, decodeEncodedReferrer, deserializeAssetId, deserializeBlockNumber, deserializeBlockRef, deserializeChainId, deserializeChainIndexingStatusSnapshot, deserializeCrossChainIndexingStatusSnapshot, deserializeDatetime, deserializeDuration, deserializeENSApiPublicConfig, deserializeENSIndexerPublicConfig, deserializeEnsApiIndexingStatusResponse, deserializeEnsApiPublicConfig, deserializeEnsIndexerConfigResponse, deserializeEnsIndexerIndexingStatusResponse, deserializeEnsIndexerPublicConfig, deserializeEnsIndexerStackInfo, deserializeEnsNodeStackInfo, deserializeErrorResponse, deserializeIndexingMetadataContext, deserializeIndexingStatusResponse, deserializeOmnichainIndexingStatusSnapshot, deserializePriceDai, deserializePriceEnsTokens, deserializePriceEth, deserializePriceUsdc, deserializeRealtimeIndexingStatusProjection, deserializeRegistrarActionsResponse, deserializeUnixTimestamp, deserializeUrl, deserializedNameTokensResponse, durationBetween, formatNFTTransferEventMetadata, getCurrencyInfo, getDatasourceContract, getDefaultEnsNodeUrl, getENSv1Registry, getENSv1RootRegistryId, getENSv2RootRegistry, getENSv2RootRegistryId, getHighestKnownBlockTimestamp, getLatestIndexedBlockRef, getManagedName, getNFTTransferType, getNameTokenOwnership, getNameWrapperAccounts, getNamespaceSpecificValue, getOmnichainIndexingCursor, getOmnichainIndexingStatus, getResolvePrimaryNameChainIdParam, getRootRegistryId, getRootRegistryIds, getTimestampForHighestOmnichainKnownBlock, getTimestampForLowestOmnichainStartBlock, hasNullByte, hasOmnigraphApiConfigSupport, hasRegistrarActionsConfigSupport, hasRegistrarActionsIndexingStatusSupport, hasSubgraphApiConfigSupport, interpretAddress, interpretAddressRecordValue, interpretContenthashValue, interpretDnszonehashValue, interpretNameRecordValue, interpretPubkeyValue, interpretTextRecordKey, interpretTextRecordValue, isENSv1Registry, isENSv2RootRegistry, isHttpProtocol, isNameWrapper, isPccFuseSet, isPriceCurrencyEqual, isPriceEqual, isRegistrarActionPricingAvailable, isRegistrarActionReferralAvailable, isRegistrationExpired, isRegistrationFullyExpired, isRegistrationInGracePeriod, isResolvedIdentity, isSelectionEmpty, isSubgraphCompatible, isWebSocketProtocol, labelHashToBytes, makeContractMatcher, makeENSApiPublicConfigSchema, makeEnsApiPublicConfigSchema, makeSerializedEnsApiPublicConfigSchema, maxPrice, maybeGetDatasourceContract, maybeGetENSv2RootRegistry, maybeGetENSv2RootRegistryId, mergeBlockNumberRanges, minPrice, nameTokensPrerequisites, parseAccountId, parseAssetId, parseDai, parseEnsTokens, parseEth, parseNonNegativeInteger, parseTimestamp, parseUsdc, priceDai, priceEnsTokens, priceEth, priceUsdc, registrarActionsFilter, replaceBigInts, scaleBigintByNumber, scalePrice, serializeAssetId, serializeChainId, serializeChainIndexingSnapshots, serializeCrossChainIndexingStatusSnapshot, serializeCrossChainIndexingStatusSnapshotOmnichain, serializeDatetime, serializeDomainAssetId, serializeENSApiPublicConfig, serializeENSIndexerPublicConfig, serializeEnsApiIndexingStatusResponse, serializeEnsApiPublicConfig, serializeEnsIndexerConfigResponse, serializeEnsIndexerIndexingStatusResponse, serializeEnsIndexerPublicConfig, serializeEnsIndexerStackInfo, serializeEnsNodeStackInfo, serializeIndexedChainIds, serializeIndexingMetadataContext, serializeIndexingMetadataContextInitialized, serializeIndexingStatusResponse, serializeNameToken, serializeNameTokensResponse, serializeNamedRegistrarAction, serializeOmnichainIndexingStatusSnapshot, serializePrice, serializePriceDai, serializePriceEnsTokens, serializePriceEth, serializePriceUsdc, serializeRealtimeIndexingStatusProjection, serializeRegisteredNameTokens, serializeRegistrarAction, serializeRegistrarActionPricing, serializeRegistrarActionsResponse, serializeUrl, sortChainStatusesByStartBlockAsc, stripNullBytes, subtractPrice, toJson, translateDefaultableChainIdToChainId, uniq, validateChainIndexingStatusSnapshot, validateCrossChainIndexingStatusSnapshot, validateEnsIndexerPublicConfig, validateEnsIndexerPublicConfigCompatibility, validateEnsIndexerStackInfo, validateEnsIndexerVersionInfo, validateEnsNodeStackInfo, validateIndexingMetadataContextInitialized, validateOmnichainIndexingStatusSnapshot, validateRealtimeIndexingStatusProjection, validateSupportedLabelSetAndVersion };