@ensnode/ensnode-sdk 1.10.0 → 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.cts 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
  */
@@ -2579,6 +2624,34 @@ declare function isPriceEqual(priceA: Price, priceB: Price): boolean;
2579
2624
  * @throws if not all prices have the same currency.
2580
2625
  */
2581
2626
  declare function addPrices<const PriceType extends Price = Price>(...prices: [PriceType, PriceType, ...PriceType[]]): PriceType;
2627
+ /**
2628
+ * Subtract price B from price A.
2629
+ *
2630
+ * @param a the minuend {@link Price} value.
2631
+ * @param b the subtrahend {@link Price} value.
2632
+ * @returns the resulting {@link Price} (`a - b`) with the same currency as the inputs.
2633
+ * @throws if the prices have different currencies.
2634
+ * @throws if the result would be negative ({@link CurrencyAmount} must be non-negative).
2635
+ */
2636
+ declare function subtractPrice<const PriceType extends Price = Price>(a: PriceType, b: PriceType): PriceType;
2637
+ /**
2638
+ * Return the smallest of the given {@link Price} values.
2639
+ *
2640
+ * @param prices at least two {@link Price} values to compare.
2641
+ * @returns the {@link Price} with the smallest amount. Ties return the first
2642
+ * such value in argument order.
2643
+ * @throws if not all prices have the same currency.
2644
+ */
2645
+ declare function minPrice<const PriceType extends Price = Price>(...prices: [PriceType, PriceType, ...PriceType[]]): PriceType;
2646
+ /**
2647
+ * Return the largest of the given {@link Price} values.
2648
+ *
2649
+ * @param prices at least two {@link Price} values to compare.
2650
+ * @returns the {@link Price} with the largest amount. Ties return the first
2651
+ * such value in argument order.
2652
+ * @throws if not all prices have the same currency.
2653
+ */
2654
+ declare function maxPrice<const PriceType extends Price = Price>(...prices: [PriceType, PriceType, ...PriceType[]]): PriceType;
2582
2655
  /**
2583
2656
  * Scales a Price object by a floating-point number while maintaining precision.
2584
2657
  *
@@ -2668,6 +2741,27 @@ declare function parseUsdc(value: string): PriceUsdc;
2668
2741
  * parseDai("0.001") // returns { currency: "DAI", amount: 1000000000000000n }
2669
2742
  */
2670
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;
2671
2765
 
2672
2766
  /**
2673
2767
  * Subregistry
@@ -4228,62 +4322,123 @@ declare function validateOmnichainIndexingStatusSnapshot(unvalidatedSnapshot: Un
4228
4322
  declare function validateRealtimeIndexingStatusProjection(unvalidatedProjection: Unvalidated<RealtimeIndexingStatusProjection>, valueLabel?: string): RealtimeIndexingStatusProjection;
4229
4323
 
4230
4324
  /**
4231
- * 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.
4232
4330
  */
4233
- 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;
4234
4336
 
4235
4337
  /**
4236
- * Gets the SubregistryId (an AccountId) of the Basenames Subregistry contract (this is the
4237
- * "BaseRegistrar" contract for Basenames) for the provided namespace.
4338
+ * Builds an unvalidated {@link EnsNodeStackInfo} object to be
4339
+ * validated with {@link makeEnsNodeStackInfoSchema}.
4238
4340
  *
4239
- * @param namespace The ENS namespace to get the Basenames Subregistry ID for
4240
- * @returns The AccountId for the Basenames Subregistry contract for the provided namespace.
4241
- * @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.
4242
4343
  */
4243
- declare function getBasenamesSubregistryId(namespace: ENSNamespaceId): AccountId;
4344
+ declare function buildUnvalidatedEnsNodeStackInfo(serializedStackInfo: SerializedEnsNodeStackInfo): Unvalidated<EnsNodeStackInfo>;
4244
4345
  /**
4245
- * Get the managed name for the Basenames subregistry for the selected ENS namespace.
4246
- *
4247
- * @param namespaceId
4248
- * @returns registrar managed name
4249
- * @throws an error when no registrar managed name could be returned
4346
+ * Deserialize value into {@link EnsNodeStackInfo} object.
4250
4347
  */
4251
- declare function getBasenamesSubregistryManagedName(namespaceId: ENSNamespaceId): InterpretedName;
4348
+ declare function deserializeEnsNodeStackInfo(maybeStackInfo: Unvalidated<SerializedEnsNodeStackInfo>, valueLabel?: string): EnsNodeStackInfo;
4252
4349
 
4253
4350
  /**
4254
- * Gets the SubregistryId (an AccountId) of the Ethnames Subregistry contract (this is the
4255
- * "BaseRegistrar" contract for direct subnames of .eth) for the provided namespace.
4351
+ * Validate a maybe {@link EnsIndexerStackInfo} object.
4352
+ */
4353
+ declare function validateEnsIndexerStackInfo(maybeStackInfo: Unvalidated<EnsIndexerStackInfo>, valueLabel?: string): EnsIndexerStackInfo;
4354
+
4355
+ /**
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
4256
4389
  *
4257
- * @param namespace The ENS namespace to get the Ethnames Subregistry ID for
4258
- * @returns The AccountId for the Ethnames Subregistry contract for the provided namespace.
4259
- * @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.
4392
+ */
4393
+ type IndexingMetadataContext = IndexingMetadataContextUninitialized | IndexingMetadataContextInitialized;
4394
+ /**
4395
+ * Build an {@link IndexingMetadataContextUninitialized} object.
4260
4396
  */
4261
- declare function getEthnamesSubregistryId(namespace: ENSNamespaceId): AccountId;
4397
+ declare function buildIndexingMetadataContextUninitialized(): IndexingMetadataContextUninitialized;
4262
4398
  /**
4263
- * Get the managed name for the Ethnames subregistry for the selected ENS namespace.
4399
+ * Build an {@link IndexingMetadataContextInitialized} object.
4264
4400
  *
4265
- * @param namespaceId
4266
- * @returns registrar managed name
4401
+ * @throws Error if the provided parameters do not satisfy the validation
4402
+ * criteria for an {@link IndexingMetadataContextInitialized} object.
4267
4403
  */
4268
- declare function getEthnamesSubregistryManagedName(namespaceId: ENSNamespaceId): InterpretedName;
4404
+ declare function buildIndexingMetadataContextInitialized(indexingStatus: CrossChainIndexingStatusSnapshot, stackInfo: EnsIndexerStackInfo): IndexingMetadataContextInitialized;
4269
4405
 
4270
4406
  /**
4271
- * Gets the SubregistryId (an AccountId) of the Lineanames Subregistry contract (this is the
4272
- * "BaseRegistrar" contract for Lineanames) for the provided namespace.
4273
- *
4274
- * @param namespace The ENS namespace to get the Lineanames Subregistry ID for
4275
- * @returns The AccountId for the Lineanames Subregistry contract for the provided namespace.
4276
- * @throws Error if the contract is not found for the given namespace.
4407
+ * Serialized representation of an {@link IndexingMetadataContextUninitialized}.
4277
4408
  */
4278
- declare function getLineanamesSubregistryId(namespace: ENSNamespaceId): AccountId;
4409
+ type SerializedIndexingMetadataContextUninitialized = IndexingMetadataContextUninitialized;
4279
4410
  /**
4280
- * Get the managed name for the Lineanames subregistry for the selected ENS namespace.
4411
+ * Serialized representation of an {@link IndexingMetadataContextInitialized}.
4412
+ */
4413
+ interface SerializedIndexingMetadataContextInitialized extends Omit<IndexingMetadataContextInitialized, "indexingStatus" | "stackInfo"> {
4414
+ indexingStatus: SerializedCrossChainIndexingStatusSnapshot;
4415
+ stackInfo: SerializedEnsIndexerStackInfo;
4416
+ }
4417
+ /**
4418
+ * Serialized representation of an {@link IndexingMetadataContext}.
4281
4419
  *
4282
- * @param namespaceId
4283
- * @returns registrar managed name
4284
- * @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.
4422
+ */
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.
4285
4435
  */
4286
- declare function getLineanamesSubregistryManagedName(namespaceId: ENSNamespaceId): InterpretedName;
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;
4287
4442
 
4288
4443
  interface RegistrationExpiryInfo {
4289
4444
  expiry: bigint | null;
@@ -4575,11 +4730,12 @@ declare function parseAccountId(maybeAccountId: unknown, valueLabel?: string): A
4575
4730
  declare function deserializePriceEth(maybePrice: unknown, valueLabel?: string): PriceEth;
4576
4731
  declare function deserializePriceUsdc(maybePrice: unknown, valueLabel?: string): PriceUsdc;
4577
4732
  declare function deserializePriceDai(maybePrice: unknown, valueLabel?: string): PriceDai;
4733
+ declare function deserializePriceEnsTokens(maybePrice: unknown, valueLabel?: string): PriceEnsTokens;
4578
4734
 
4579
4735
  /**
4580
- * Interprets a viem#Address. zeroAddress is interpreted as null, otherwise Address.
4736
+ * Interprets a NormalizedAddress. zeroAddress is interpreted as null, otherwise as-is.
4581
4737
  */
4582
- declare const interpretAddress: (owner: Address) => `0x${string}` | null;
4738
+ declare const interpretAddress: (owner: NormalizedAddress) => NormalizedAddress | null;
4583
4739
 
4584
4740
  /**
4585
4741
  * Interprets a name record value string and returns null if the value is interpreted as a deletion.
@@ -4656,6 +4812,24 @@ declare function interpretPubkeyValue(x: Hex, y: Hex): {
4656
4812
  */
4657
4813
  declare function interpretDnszonehashValue(value: Hex): Hex | null;
4658
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
+
4659
4833
  /**
4660
4834
  * A value that varies by ENS namespace, with a required default.
4661
4835
  *
@@ -4719,10 +4893,29 @@ declare function bigIntToNumber(n: bigint): number;
4719
4893
  */
4720
4894
  declare function scaleBigintByNumber(value: bigint, scaleFactor: number): bigint;
4721
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
+
4722
4911
  /**
4723
4912
  * Gets the AccountId representing the ENSv1 Registry in the selected `namespace`.
4724
4913
  */
4725
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;
4726
4919
  /**
4727
4920
  * Determines whether `contract` is the ENSv1 Registry in `namespace`.
4728
4921
  */
@@ -4738,7 +4931,7 @@ declare const getENSv2RootRegistry: (namespace: ENSNamespaceId) => AccountId;
4738
4931
  *
4739
4932
  * @throws if the ENSv2Root Datasource or the RootRegistry contract are not defined
4740
4933
  */
4741
- declare const getENSv2RootRegistryId: (namespace: ENSNamespaceId) => enssdk.RegistryId;
4934
+ declare const getENSv2RootRegistryId: (namespace: ENSNamespaceId) => enssdk.ENSv2RegistryId;
4742
4935
  /**
4743
4936
  * Determines whether `contract` is the ENSv2 Root Registry in `namespace`.
4744
4937
  *
@@ -4758,7 +4951,34 @@ declare const maybeGetENSv2RootRegistry: (namespace: ENSNamespaceId) => AccountI
4758
4951
  *
4759
4952
  * TODO: remove this function and its usage after all namespaces define ENSv2Root
4760
4953
  */
4761
- 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[];
4762
4982
 
4763
4983
  /**
4764
4984
  * Serializes a {@link ChainId} value into its string representation.
@@ -4788,26 +5008,30 @@ declare function serializePriceUsdc(price: PriceUsdc): SerializedPriceUsdc;
4788
5008
  * Serializes a {@link PriceDai} object.
4789
5009
  */
4790
5010
  declare function serializePriceDai(price: PriceDai): SerializedPriceDai;
4791
-
4792
- declare function isHttpProtocol(url: URL): boolean;
4793
- declare function isWebSocketProtocol(url: URL): boolean;
4794
-
4795
5011
  /**
4796
- * Builds an unvalidated {@link EnsNodeStackInfo} object to be
4797
- * validated with {@link makeEnsNodeStackInfoSchema}.
4798
- *
4799
- * @param serializedStackInfo - The serialized stack info to build from.
4800
- * @return An unvalidated {@link EnsNodeStackInfo} object.
5012
+ * Serializes a {@link PriceEnsTokens} object.
4801
5013
  */
4802
- declare function buildUnvalidatedEnsNodeStackInfo(serializedStackInfo: SerializedEnsNodeStackInfo): Unvalidated<EnsNodeStackInfo>;
5014
+ declare function serializePriceEnsTokens(price: PriceEnsTokens): SerializedPriceEnsTokens;
5015
+
4803
5016
  /**
4804
- * 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).
4805
5024
  */
4806
- 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;
4807
5031
 
4808
5032
  /**
4809
5033
  * Check if provided EnsIndexerPublicConfig supports the Subgraph API.
4810
5034
  */
4811
5035
  declare function hasSubgraphApiConfigSupport(config: EnsIndexerPublicConfig): PrerequisiteResult;
4812
5036
 
4813
- 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, maybeGetDatasourceContract, maybeGetENSv2RootRegistry, maybeGetENSv2RootRegistryId, mergeBlockNumberRanges, 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, 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 };