@ensnode/ensnode-sdk 1.13.1 → 1.14.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,348 +1,22 @@
1
1
  import { ENSNamespaceId, DatasourceName } from '@ensnode/datasources';
2
2
  export { ENSNamespaceId, ENSNamespaceIds, getENSRootChainId } from '@ensnode/datasources';
3
+ import { E as EnsRainbowPublicConfig, a as EnsIndexerPublicConfig, b as EnsIndexerVersionInfo, T as TheGraphFallback, U as Unvalidated, B as BlockNumber, c as BlockRef, L as LabelSetId, d as LabelSetVersion, e as EnsRainbowClientLabelSet, f as EnsRainbowServerLabelSet, P as PluginName, m as makeErrorResponseSchema, R as RegistrarAction, S as SerializedRegistrarAction, D as Datetime, g as PriceDai, h as PriceEnsTokens, i as PriceEth, j as PriceUsdc, k as Price, l as SerializedPrice, n as SerializedPriceDai, o as SerializedPriceEnsTokens, p as SerializedPriceEth, q as SerializedPriceUsdc } from './namespace-specific-value-CPvcFpGI.js';
4
+ export { C as CurrencyAmount, r as CurrencyId, s as CurrencyIds, t as CurrencyInfo, u as DeepPartial, v as ENCODED_REFERRER_BYTE_LENGTH, w as ENCODED_REFERRER_BYTE_OFFSET, x as ENSIndexerPublicConfig, y as ENSIndexerVersionInfo, z as EXPECTED_ENCODED_REFERRER_PADDING, A as EncodedReferrer, F as EnsRainbowVersionInfo, N as NamespaceSpecificValue, G as RegistrarActionEventId, H as RegistrarActionPricing, I as RegistrarActionPricingAvailable, J as RegistrarActionPricingUnknown, K as RegistrarActionReferral, M as RegistrarActionReferralAvailable, O as RegistrarActionReferralNotApplicable, Q as RegistrarActionType, V as RegistrarActionTypes, W as RegistrationLifecycle, X as RegistrationLifecycleStage, Y as RequiredAndNotNull, Z as RequiredAndNull, _ as RpcUrl, $ as SerializedCurrencyAmount, a0 as SerializedRegistrarActionPricing, a1 as SerializedRegistrarActionPricingAvailable, a2 as SerializedRegistrarActionPricingUnknown, a3 as Subregistry, a4 as TheGraphCannotFallbackReason, a5 as TheGraphCannotFallbackReasonSchema, a6 as TheGraphFallbackSchema, a7 as ZERO_ENCODED_REFERRER, a8 as addPrices, a9 as buildEncodedReferrer, aa as decodeEncodedReferrer, ab as getCurrencyInfo, ac as getNamespaceSpecificValue, ad as interpretAddress, ae as interpretAddressRecordValue, af as interpretContenthashValue, ag as interpretDnszonehashValue, ah as interpretNameRecordValue, ai as interpretPubkeyValue, aj as interpretTextRecordKey, ak as interpretTextRecordValue, al as isPriceCurrencyEqual, am as isPriceEqual, an as isRegistrarActionPricingAvailable, ao as isRegistrarActionReferralAvailable, ap as makeENSApiPublicConfigSchema, aq as makeEnsApiPublicConfigSchema, ar as makeSerializedEnsApiPublicConfigSchema, as as maxPrice, at as minPrice, au as parseDai, av as parseEnsTokens, aw as parseEth, ax as parseUsdc, ay as priceDai, az as priceEnsTokens, aA as priceEth, aB as priceUsdc, aC as scalePrice, aD as serializeRegistrarAction, aE as serializeRegistrarActionPricing, aF as subtractPrice } from './namespace-specific-value-CPvcFpGI.js';
3
5
  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, RegistryId, DatetimeISO8601 } from 'enssdk';
6
+ import { ChainId, UnixTimestamp, Duration, ChainIdString, LabelHash, Node, Name, AssetId, Hex, AccountId, TokenId, AssetNamespace, Address, AssetIdString, InterpretedName, DefaultableChainId, CoinType, ContentType, InterfaceId, RecordVersion, UrlString, RegistryId, DatetimeISO8601 } from 'enssdk';
7
+ import { ByteArray } from 'viem';
5
8
  import { z } from 'zod/v4';
6
- import { ByteArray, Hash } from 'viem';
7
9
 
8
10
  /**
9
11
  * Determines whether `fuses` has set ('burnt') the PARENT_CANNOT_CONTROL fuse.
10
12
  */
11
13
  declare const isPccFuseSet: (fuses: number) => boolean;
12
14
 
13
- /**
14
- * Block Number
15
- *
16
- * Guaranteed to be a non-negative integer.
17
- */
18
- type BlockNumber = number;
19
- /**
20
- * Datetime value
21
- */
22
- type Datetime = Date;
23
- /**
24
- * Represents a URL that is used for RPC endpoints.
25
- */
26
- type RpcUrl = URL;
27
- /**
28
- * BlockRef
29
- *
30
- * Describes a block.
31
- *
32
- * We use parameter types to maintain fields layout and documentation across
33
- * the domain model and its serialized counterpart.
34
- */
35
- interface BlockRef {
36
- /** Block number (height) */
37
- number: BlockNumber;
38
- /** Block timestamp */
39
- timestamp: UnixTimestamp;
40
- }
41
- /**
42
- * A utility type that makes all properties of a type optional recursively,
43
- * including nested objects and arrays.
44
- *
45
- * @example
46
- * ```typescript
47
- * type Config = {
48
- * a: string;
49
- * b: {
50
- * x: number;
51
- * y: { z: boolean };
52
- * };
53
- * c: { id: string }[];
54
- * }
55
- *
56
- * type PartialConfig = DeepPartial<Config>;
57
- * // Results in:
58
- * // {
59
- * // a?: string;
60
- * // b?: {
61
- * // x?: number;
62
- * // y?: { z?: boolean };
63
- * // };
64
- * // c?: { id?: string }[];
65
- * // }
66
- *
67
- * // Usage:
68
- * const update: PartialConfig = { b: { y: { z: true } } };
69
- * ```
70
- */
71
- type DeepPartial<T> = {
72
- [P in keyof T]?: T[P] extends (infer U)[] ? DeepPartial<U>[] : T[P] extends object ? DeepPartial<T[P]> : T[P];
73
- };
74
- /**
75
- * Helper type to represent an unvalidated version of a business layer type `T`,
76
- * where all properties are optional.
77
- *
78
- * This is useful for building a validated object `T` from partial input,
79
- * where the input may be missing required fields or have fields that
80
- * are not yet validated.
81
- *
82
- * For example, transforming serialized representation of type `T` into
83
- * an unvalidated version of `T` that can be later validated against
84
- * defined business rules and constraints.
85
- *
86
- * ```ts
87
- * function buildUnvalidatedValue(serialized: SerializedChainId): Unvalidated<ChainId> {
88
- * // transform serialized chainId into unvalidated number (e.g. parseInt)
89
- * return parseInt(serialized, 10);
90
- * }
91
- *
92
- * // Later, we can validate the unvalidated value against our business rules
93
- * function validateChainId(unvalidatedChainId: Unvalidated<ChainId>): ChainId {
94
- * if (typeof unvalidatedChainId !== "number" || unvalidatedChainId <= 0) {
95
- * throw new Error("Invalid ChainId");
96
- * }
97
- *
98
- * return unvalidatedChainId as ChainId;
99
- * }
100
- *
101
- * ```
102
- */
103
- type Unvalidated<T> = DeepPartial<T>;
104
- /**
105
- * Marks keys in K as required (not undefined) and not null.
106
- */
107
- type RequiredAndNotNull<T, K extends keyof T> = T & {
108
- [P in K]-?: NonNullable<T[P]>;
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
- };
116
-
117
- /**
118
- * A label set ID identifies a label set (see https://ensnode.io/ensrainbow/concepts/glossary#label-set for definition).
119
- * It is guaranteed to be 1 to 50 characters long and contain only lowercase letters (a-z)
120
- * and hyphens (-).
121
- */
122
- type LabelSetId = string;
123
- /**
124
- * A label set version identifies a specific version of a label set. It allows clients to
125
- * request data from a specific snapshot in time, ensuring deterministic results.
126
- *
127
- * It is guaranteed to be a non-negative integer.
128
- */
129
- type LabelSetVersion = number;
130
- /**
131
- * The label set preferences of an ENSRainbow client.
132
- */
133
- interface EnsRainbowClientLabelSet {
134
- /**
135
- * Optional label set ID that the ENSRainbow server is expected to use. If provided, heal
136
- * operations will validate the ENSRainbow server is using this labelSetId.
137
- * Required if `labelSetVersion` is defined.
138
- */
139
- labelSetId?: LabelSetId;
140
- /**
141
- * Optional highest label set version of label set id to query. Enables deterministic heal
142
- * results across time even if the ENSRainbow server ingests label sets with greater versions
143
- * than this value. If provided, only labels from label sets with versions less than or equal to this
144
- * value will be returned. If not provided, the server will use the latest available version.
145
- * When `labelSetVersion` is defined, `labelSetId` must also be defined.
146
- */
147
- labelSetVersion?: LabelSetVersion;
148
- }
149
- /**
150
- * The state of label sets managed by an ENSRainbow server.
151
- */
152
- interface EnsRainbowServerLabelSet {
153
- /**
154
- * The LabelSetId managed by the ENSRainbow server.
155
- */
156
- labelSetId: LabelSetId;
157
- /**
158
- * The highest label set version available on the ENSRainbow server for the current
159
- * label set ID. This represents the most recent version of the label set that the
160
- * server has ingested and can provide label healing results for.
161
- */
162
- highestLabelSetVersion: LabelSetVersion;
163
- }
164
-
165
- /**
166
- * Version info about ENSRainbow and its dependencies.
167
- */
168
- interface EnsRainbowVersionInfo {
169
- /**
170
- * ENSRainbow service version
171
- *
172
- * @see https://ghcr.io/namehash/ensnode/ensrainbow
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 {
182
- /**
183
- * The label set reference managed by the ENSRainbow server.
184
- */
185
- serverLabelSet: EnsRainbowServerLabelSet;
186
- /**
187
- * ENSRainbow version info
188
- */
189
- versionInfo: EnsRainbowVersionInfo;
190
- }
191
-
192
15
  /**
193
16
  * Serialized representation of {@link EnsRainbowPublicConfig}
194
17
  */
195
18
  type SerializedEnsRainbowPublicConfig = EnsRainbowPublicConfig;
196
19
 
197
- /**
198
- * A PluginName is a unique id for a 'plugin': we use the notion of
199
- * 'plugins' to describe bundles of indexing logic.
200
- */
201
- declare enum PluginName {
202
- Subgraph = "subgraph",
203
- Basenames = "basenames",
204
- Lineanames = "lineanames",
205
- ThreeDNS = "threedns",
206
- ProtocolAcceleration = "protocol-acceleration",
207
- Registrars = "registrars",
208
- TokenScope = "tokenscope",
209
- ENSv2 = "ensv2"
210
- }
211
- /**
212
- * Version info about ENSIndexer and its dependencies.
213
- */
214
- interface EnsIndexerVersionInfo {
215
- /**
216
- * Ponder framework version
217
- *
218
- * @see https://www.npmjs.com/package/ponder
219
- **/
220
- ponder: string;
221
- /**
222
- * ENSDb service version
223
- *
224
- * Guaranteed to be the same as {@link ENSIndexerVersionInfo.ensIndexer}.
225
- * */
226
- ensDb: string;
227
- /**
228
- * ENSIndexer service version
229
- *
230
- * @see https://ghcr.io/namehash/ensnode/ensindexer
231
- **/
232
- ensIndexer: string;
233
- /**
234
- * ENS Normalize package version
235
- *
236
- * Available on NPM as: `@adraffy/ens-normalize`
237
- *
238
- * @see https://www.npmjs.com/package/@adraffy/ens-normalize
239
- **/
240
- ensNormalize: string;
241
- }
242
- /**
243
- * Version info about ENSIndexer and its dependencies.
244
- *
245
- * @deprecated Use {@link EnsIndexerVersionInfo} instead.
246
- */
247
- type ENSIndexerVersionInfo = EnsIndexerVersionInfo;
248
- /**
249
- * Complete public configuration object for ENSIndexer.
250
- *
251
- * We use parameter types to maintain fields layout and documentation across
252
- * the domain model and its serialized counterpart.
253
- */
254
- interface EnsIndexerPublicConfig {
255
- /**
256
- * The ENS namespace that ENSNode operates in the context of.
257
- *
258
- * See {@link ENSNamespaceIds} for available namespace identifiers.
259
- */
260
- namespace: ENSNamespaceId;
261
- /**
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.
263
- */
264
- clientLabelSet: Required<EnsRainbowClientLabelSet>;
265
- /**
266
- * The name of the ENSIndexer Schema in the ENSDb instance,
267
- * where the ENSIndexer instance writes indexed data.
268
- *
269
- * Invariants:
270
- * - Must be a non-empty string that is a valid Postgres database schema
271
- * identifier.
272
- */
273
- ensIndexerSchemaName: string;
274
- /**
275
- * ENSRainbow public config
276
- *
277
- * Represents the public config of the connected ENSRainbow instance.
278
- */
279
- ensRainbowPublicConfig: EnsRainbowPublicConfig;
280
- /**
281
- * A set of strings referring to the names of plugins that are active.
282
- *
283
- * For future-proofing, this is a list of strings that may or may
284
- * not be currently valid {@link PluginName} values.
285
- *
286
- * Invariants:
287
- * - A set of strings with at least one value.
288
- */
289
- plugins: string[];
290
- /**
291
- * Indexed Chain IDs
292
- *
293
- * Includes the {@link ChainId} for each chain being indexed.
294
- */
295
- indexedChainIds: Set<ChainId>;
296
- /**
297
- * A feature flag to enable/disable ENSIndexer's Subgraph Compatible Indexing Behavior.
298
- *
299
- * If {@link isSubgraphCompatible} is true, indexing behavior will match that of the legacy ENS
300
- * Subgraph.
301
- *
302
- * ENSIndexer will store and return Literal Labels and Literal Names without further interpretation.
303
- * @see https://ensnode.io/docs/reference/terminology#literal-label
304
- * @see https://ensnode.io/docs/reference/terminology#literal-name
305
- *
306
- * If {@link isSubgraphCompatible} is true, the following invariants are true for the ENSIndexerConfig:
307
- * 1. only the 'subgraph' plugin is enabled, and
308
- * 2. the {@link clientLabelSet} must be { labelSetId: 'subgraph', labelSetVersion: 0 }
309
- *
310
- * If {@link isSubgraphCompatible} is false, ENSIndexer will additionally:
311
- *
312
- * 1. ENSIndexer will heal all subnames of addr.reverse on the ENS Root Chain.
313
- *
314
- * 2. ENSIndexer will track both the keys and the values of Resolver records.
315
- *
316
- * WARNING: Special care must be taken when interacting with indexed resolver record values. It
317
- * is unsafe to naively assume that indexed resolver record values are equivalent to the
318
- * resolver record values that would be returned through dynamic lookups via the ENS protocol.
319
- * For example, if a resolver implements CCIP-Read, the resolver records may not be
320
- * discoverable through onchain indexing.
321
- *
322
- * 3. Literal Labels and Literal Names encountered by ENSIndexer will be Interpreted.
323
- * @see https://ensnode.io/docs/reference/terminology#interpreted-label
324
- * @see https://ensnode.io/docs/reference/terminology#interpreted-name
325
- *
326
- * That is,
327
- * a) all Labels stored and returned by ENSIndexer will be Interpreted Labels, which are either:
328
- * i. normalized, or
329
- * ii. represented as an Encoded LabelHash of the Literal Label value found onchain, and
330
- * b) all Names stored and returned by ENSIndexer will be Interpreted Names, which are exclusively
331
- * composed of Interpreted Labels.
332
- */
333
- isSubgraphCompatible: boolean;
334
- /**
335
- * Version info about ENSIndexer.
336
- */
337
- versionInfo: EnsIndexerVersionInfo;
338
- }
339
- /**
340
- * Complete public configuration object for ENSIndexer.
341
- *
342
- * @deprecated Use {@link EnsIndexerPublicConfig} instead.
343
- */
344
- type ENSIndexerPublicConfig = EnsIndexerPublicConfig;
345
-
346
20
  type SerializedIndexedChainIds = Array<ChainId>;
347
21
  /**
348
22
  * Serialized representation of {@link EnsIndexerPublicConfig}
@@ -370,32 +44,6 @@ type SerializedEnsIndexerVersionInfo = EnsIndexerVersionInfo;
370
44
  */
371
45
  type SerializedENSIndexerVersionInfo = SerializedEnsIndexerVersionInfo;
372
46
 
373
- /**
374
- * Reasons why TheGraph fallback cannot be used.
375
- */
376
- declare const TheGraphCannotFallbackReasonSchema: z.ZodEnum<{
377
- readonly NotSubgraphCompatible: "not-subgraph-compatible";
378
- readonly NoApiKey: "no-api-key";
379
- readonly NoSubgraphUrl: "no-subgraph-url";
380
- }>;
381
- type TheGraphCannotFallbackReason = z.infer<typeof TheGraphCannotFallbackReasonSchema>;
382
- /**
383
- * Configuration for TheGraph fallback behavior.
384
- * Indicates whether fallback to TheGraph is possible and the reason if not.
385
- */
386
- declare const TheGraphFallbackSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
387
- canFallback: z.ZodLiteral<true>;
388
- url: z.ZodString;
389
- }, z.core.$strict>, z.ZodObject<{
390
- canFallback: z.ZodLiteral<false>;
391
- reason: z.ZodEnum<{
392
- readonly NotSubgraphCompatible: "not-subgraph-compatible";
393
- readonly NoApiKey: "no-api-key";
394
- readonly NoSubgraphUrl: "no-subgraph-url";
395
- }>;
396
- }, z.core.$strict>], "canFallback">;
397
- type TheGraphFallback = z.infer<typeof TheGraphFallbackSchema>;
398
-
399
47
  /**
400
48
  * Version info about ENSApi and its dependencies.
401
49
  */
@@ -491,114 +139,6 @@ declare function serializeEnsApiPublicConfig(config: EnsApiPublicConfig): Serial
491
139
  */
492
140
  declare const serializeENSApiPublicConfig: typeof serializeEnsApiPublicConfig;
493
141
 
494
- /**
495
- * Create a Zod schema for validating ENSApiPublicConfig.
496
- *
497
- * @param valueLabel - Optional label for the value being validated (used in error messages)
498
- */
499
- declare function makeEnsApiPublicConfigSchema(valueLabel?: string): z.ZodObject<{
500
- theGraphFallback: z.ZodDiscriminatedUnion<[z.ZodObject<{
501
- canFallback: z.ZodLiteral<true>;
502
- url: z.ZodString;
503
- }, z.core.$strict>, z.ZodObject<{
504
- canFallback: z.ZodLiteral<false>;
505
- reason: z.ZodEnum<{
506
- readonly NotSubgraphCompatible: "not-subgraph-compatible";
507
- readonly NoApiKey: "no-api-key";
508
- readonly NoSubgraphUrl: "no-subgraph-url";
509
- }>;
510
- }, z.core.$strict>], "canFallback">;
511
- ensIndexerPublicConfig: z.ZodObject<{
512
- ensIndexerSchemaName: z.ZodString;
513
- ensRainbowPublicConfig: z.ZodObject<{
514
- serverLabelSet: z.ZodObject<{
515
- labelSetId: z.ZodString;
516
- highestLabelSetVersion: z.ZodInt;
517
- }, z.core.$strip>;
518
- versionInfo: z.ZodObject<{
519
- ensRainbow: z.ZodString;
520
- }, z.core.$strip>;
521
- }, z.core.$strip>;
522
- indexedChainIds: z.ZodSet<z.ZodPipe<z.ZodInt, z.ZodTransform<number, number>>>;
523
- isSubgraphCompatible: z.ZodBoolean;
524
- clientLabelSet: z.ZodObject<{
525
- labelSetId: z.ZodString;
526
- labelSetVersion: z.ZodPipe<z.ZodCoercedNumber<number>, z.ZodInt>;
527
- }, z.core.$strip>;
528
- namespace: z.ZodEnum<{
529
- readonly Mainnet: "mainnet";
530
- readonly Sepolia: "sepolia";
531
- readonly SepoliaV2: "sepolia-v2";
532
- readonly EnsTestEnv: "ens-test-env";
533
- }>;
534
- plugins: z.ZodArray<z.ZodString>;
535
- versionInfo: z.ZodObject<{
536
- ponder: z.ZodString;
537
- ensDb: z.ZodString;
538
- ensIndexer: z.ZodString;
539
- ensNormalize: z.ZodString;
540
- }, z.core.$strip>;
541
- }, z.core.$strip>;
542
- versionInfo: z.ZodObject<{
543
- ensApi: z.ZodString;
544
- ensNormalize: z.ZodString;
545
- }, z.core.$strip>;
546
- }, z.core.$strip>;
547
- /**
548
- * Create a Zod schema for validating a serialized ENSApiPublicConfig.
549
- *
550
- * @deprecated Use {@link makeEnsApiPublicConfigSchema} instead.
551
- */
552
- declare const makeENSApiPublicConfigSchema: typeof makeEnsApiPublicConfigSchema;
553
- declare function makeSerializedEnsApiPublicConfigSchema(valueLabel?: string): z.ZodObject<{
554
- ensIndexerPublicConfig: z.ZodObject<{
555
- ensIndexerSchemaName: z.ZodString;
556
- ensRainbowPublicConfig: z.ZodObject<{
557
- serverLabelSet: z.ZodObject<{
558
- labelSetId: z.ZodString;
559
- highestLabelSetVersion: z.ZodInt;
560
- }, z.core.$strip>;
561
- versionInfo: z.ZodObject<{
562
- ensRainbow: z.ZodString;
563
- }, z.core.$strip>;
564
- }, z.core.$strip>;
565
- indexedChainIds: z.ZodArray<z.ZodPipe<z.ZodInt, z.ZodTransform<number, number>>>;
566
- isSubgraphCompatible: z.ZodBoolean;
567
- clientLabelSet: z.ZodObject<{
568
- labelSetId: z.ZodString;
569
- labelSetVersion: z.ZodPipe<z.ZodCoercedNumber<number>, z.ZodInt>;
570
- }, z.core.$strip>;
571
- namespace: z.ZodEnum<{
572
- readonly Mainnet: "mainnet";
573
- readonly Sepolia: "sepolia";
574
- readonly SepoliaV2: "sepolia-v2";
575
- readonly EnsTestEnv: "ens-test-env";
576
- }>;
577
- plugins: z.ZodArray<z.ZodString>;
578
- versionInfo: z.ZodObject<{
579
- ponder: z.ZodString;
580
- ensDb: z.ZodString;
581
- ensIndexer: z.ZodString;
582
- ensNormalize: z.ZodString;
583
- }, z.core.$strip>;
584
- }, z.core.$strip>;
585
- theGraphFallback: z.ZodDiscriminatedUnion<[z.ZodObject<{
586
- canFallback: z.ZodLiteral<true>;
587
- url: z.ZodString;
588
- }, z.core.$strict>, z.ZodObject<{
589
- canFallback: z.ZodLiteral<false>;
590
- reason: z.ZodEnum<{
591
- readonly NotSubgraphCompatible: "not-subgraph-compatible";
592
- readonly NoApiKey: "no-api-key";
593
- readonly NoSubgraphUrl: "no-subgraph-url";
594
- }>;
595
- }, z.core.$strict>], "canFallback">;
596
- versionInfo: z.ZodObject<{
597
- ensApi: z.ZodString;
598
- ensNormalize: z.ZodString;
599
- }, z.core.$strip>;
600
- }, z.core.$strip>;
601
-
602
142
  /**
603
143
  * Version info about ENSDb and its dependencies.
604
144
  */
@@ -2245,14 +1785,6 @@ declare function getNameWrapperAccounts(namespaceId: ENSNamespaceId): [AccountId
2245
1785
  */
2246
1786
  declare function getNameTokenOwnership(namespaceId: ENSNamespaceId, name: InterpretedName, owner: AccountId): NameTokenOwnership;
2247
1787
 
2248
- /**
2249
- * Schema for {@link ErrorResponse}.
2250
- */
2251
- declare const makeErrorResponseSchema: () => z.ZodObject<{
2252
- message: z.ZodString;
2253
- details: z.ZodOptional<z.ZodUnknown>;
2254
- }, z.core.$strip>;
2255
-
2256
1788
  /**
2257
1789
  * API Error Response Type
2258
1790
  */
@@ -2462,688 +1994,6 @@ declare function serializeRegisteredNameTokens({ domainId, name, tokens, expires
2462
1994
  declare function serializeNameTokensResponse(response: NameTokensResponseOk): SerializedNameTokensResponseOk;
2463
1995
  declare function serializeNameTokensResponse<T extends NameTokensResponseError>(response: T): T;
2464
1996
 
2465
- /**
2466
- * Encoded Referrer
2467
- *
2468
- * Represents a "raw" ENS referrer value.
2469
- *
2470
- * Registrar controllers emit referrer data as bytes32 values. This type represents
2471
- * that raw 32-byte hex string.
2472
- *
2473
- * @invariant Guaranteed to be a hex string representation of a 32-byte value.
2474
- */
2475
- type EncodedReferrer = Hex;
2476
- /**
2477
- * Encoded Referrer byte offset
2478
- *
2479
- * The count of left-padded bytes in an {@link EncodedReferrer} value.
2480
- */
2481
- declare const ENCODED_REFERRER_BYTE_OFFSET = 12;
2482
- /**
2483
- * Encoded Referrer byte length
2484
- *
2485
- * The count of bytes the {@link EncodedReferrer} value consists of.
2486
- */
2487
- declare const ENCODED_REFERRER_BYTE_LENGTH = 32;
2488
- /**
2489
- * Expected padding for a valid encoded referrer
2490
- *
2491
- * Properly encoded referrers must have exactly 12 zero bytes of left padding
2492
- * before the 20-byte Ethereum address.
2493
- */
2494
- declare const EXPECTED_ENCODED_REFERRER_PADDING: Hex;
2495
- /**
2496
- * Zero Encoded Referrer
2497
- *
2498
- * Guaranteed to be a hex string representation of a 32-byte zero value.
2499
- */
2500
- declare const ZERO_ENCODED_REFERRER: EncodedReferrer;
2501
- /**
2502
- * Build an {@link EncodedReferrer} value for the given {@link NormalizedAddress}
2503
- * according to the referrer encoding with left-zero-padding.
2504
- */
2505
- declare function buildEncodedReferrer(address: NormalizedAddress): EncodedReferrer;
2506
- /**
2507
- * Decode an {@link EncodedReferrer} value into a {@link NormalizedAddress}
2508
- * according to the referrer encoding with left-zero-padding.
2509
- *
2510
- * @param encodedReferrer - The "raw" {@link EncodedReferrer} value to decode.
2511
- * @returns The decoded referrer address.
2512
- * @throws when encodedReferrer value is not represented by
2513
- * {@link ENCODED_REFERRER_BYTE_LENGTH} bytes.
2514
- * @throws when decodedReferrer is not a valid EVM address.
2515
- */
2516
- declare function decodeEncodedReferrer(encodedReferrer: EncodedReferrer): NormalizedAddress;
2517
-
2518
- /**
2519
- * Identifiers for supported currencies.
2520
- *
2521
- * TODO: Add support for WETH
2522
- */
2523
- declare const CurrencyIds: {
2524
- readonly ETH: "ETH";
2525
- readonly USDC: "USDC";
2526
- readonly DAI: "DAI";
2527
- readonly ENSTokens: "ENSTokens";
2528
- };
2529
- type CurrencyId = (typeof CurrencyIds)[keyof typeof CurrencyIds];
2530
- /**
2531
- * The amount of the currency in the smallest unit of the currency
2532
- * (see {@link CurrencyInfo.decimals} for the currency).
2533
- *
2534
- * Guaranteed to be non-negative.
2535
- */
2536
- type CurrencyAmount = bigint;
2537
- /**
2538
- * Serialized representation of {@link CurrencyAmount}.
2539
- */
2540
- type SerializedCurrencyAmount = string;
2541
- interface PriceEth {
2542
- currency: typeof CurrencyIds.ETH;
2543
- amount: CurrencyAmount;
2544
- }
2545
- interface PriceDai {
2546
- currency: typeof CurrencyIds.DAI;
2547
- amount: CurrencyAmount;
2548
- }
2549
- interface PriceUsdc {
2550
- currency: typeof CurrencyIds.USDC;
2551
- amount: CurrencyAmount;
2552
- }
2553
- interface PriceEnsTokens {
2554
- currency: typeof CurrencyIds.ENSTokens;
2555
- amount: CurrencyAmount;
2556
- }
2557
- type Price = PriceEth | PriceDai | PriceUsdc | PriceEnsTokens;
2558
- /**
2559
- * Serialized representation of {@link PriceEth}.
2560
- */
2561
- interface SerializedPriceEth extends Omit<PriceEth, "amount"> {
2562
- amount: SerializedCurrencyAmount;
2563
- }
2564
- /**
2565
- * Serialized representation of {@link PriceDai}.
2566
- */
2567
- interface SerializedPriceDai extends Omit<PriceDai, "amount"> {
2568
- amount: SerializedCurrencyAmount;
2569
- }
2570
- /**
2571
- * Serialized representation of {@link PriceUsdc}.
2572
- */
2573
- interface SerializedPriceUsdc extends Omit<PriceUsdc, "amount"> {
2574
- amount: SerializedCurrencyAmount;
2575
- }
2576
- /**
2577
- * Serialized representation of {@link PriceEnsTokens}.
2578
- */
2579
- interface SerializedPriceEnsTokens extends Omit<PriceEnsTokens, "amount"> {
2580
- amount: SerializedCurrencyAmount;
2581
- }
2582
- /**
2583
- * Serialized representation of {@link Price}.
2584
- */
2585
- type SerializedPrice = SerializedPriceEth | SerializedPriceDai | SerializedPriceUsdc | SerializedPriceEnsTokens;
2586
- interface CurrencyInfo {
2587
- id: CurrencyId;
2588
- name: string;
2589
- decimals: number;
2590
- }
2591
- /**
2592
- * Get currency info for a provided currency.
2593
- */
2594
- declare function getCurrencyInfo(currencyId: CurrencyId): CurrencyInfo;
2595
- /**
2596
- * Create price in ETH for given amount.
2597
- */
2598
- declare function priceEth(amount: Price["amount"]): PriceEth;
2599
- /**
2600
- * Create price in USDC for given amount.
2601
- */
2602
- declare function priceUsdc(amount: Price["amount"]): PriceUsdc;
2603
- /**
2604
- * Create price in DAI for given amount.
2605
- */
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;
2611
- /**
2612
- * Check if two prices have the same currency.
2613
- */
2614
- declare function isPriceCurrencyEqual(priceA: Price, priceB: Price): boolean;
2615
- /**
2616
- * Check if two {@link Price} values have the same currency and amount.
2617
- */
2618
- declare function isPriceEqual(priceA: Price, priceB: Price): boolean;
2619
- /**
2620
- * Add prices
2621
- *
2622
- * @param prices at least two {@link Price} values to be added together.
2623
- * @returns total of all prices.
2624
- * @throws if not all prices have the same currency.
2625
- */
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;
2655
- /**
2656
- * Scales a Price object by a floating-point number while maintaining precision.
2657
- *
2658
- * **Important:** The precision of this method is bound to the precision of float
2659
- * in JavaScript. For more information, see {@link scaleBigintByNumber}.
2660
- *
2661
- * @param price - The Price object to scale
2662
- * @param scaleFactor - The number to multiply by (can be a decimal like 0.5)
2663
- * @returns A new Price object with the scaled amount and same currency
2664
- *
2665
- * @throws {Error} If scaleFactor is negative, NaN, or infinite
2666
- * @throws {Error} If price amount is negative
2667
- *
2668
- * @example
2669
- * // Scale USDC price by 0.5
2670
- * const price = priceUsdc(1000000n); // 1 USDC
2671
- * const scaled = scalePrice(price, 0.5); // 0.5 USDC
2672
- * // scaled = { currency: "USDC", amount: 500000n }
2673
- *
2674
- * @example
2675
- * // Calculate 33.3% of ETH price
2676
- * const ethPrice = priceEth(1000000000000000000n); // 1 ETH
2677
- * const share = scalePrice(ethPrice, 0.333);
2678
- * // share = { currency: "ETH", amount: 333000000000000000n }
2679
- */
2680
- declare function scalePrice<T extends Price>(price: T, scaleFactor: number): T;
2681
- /**
2682
- * Parses a string representation of ETH into a {@link PriceEth} object.
2683
- *
2684
- * Uses {@link getCurrencyInfo} to get the correct number of decimals (18) for ETH
2685
- * and {@link parseUnits} from viem to convert the decimal string to a bigint.
2686
- *
2687
- * **Note:** Values with more than 18 decimal places will be truncated/rounded by viem's `parseUnits`.
2688
- *
2689
- * @param value - The decimal string to parse (e.g., "0.015" for 0.015 ETH)
2690
- * @returns A PriceEth object with the amount in wei (smallest unit)
2691
- *
2692
- * @throws {Error} If value is empty, whitespace-only or untrimmed
2693
- * @throws {Error} If value represents a negative number
2694
- * @throws {Error} If value is not a valid decimal string (e.g., "abc", "1.2.3")
2695
- *
2696
- * @example
2697
- * parseEth("0.015") // returns { currency: "ETH", amount: 15000000000000000n }
2698
- * parseEth("1") // returns { currency: "ETH", amount: 1000000000000000000n }
2699
- * parseEth("123.456789012345678") // returns { currency: "ETH", amount: 123456789012345678000n }
2700
- */
2701
- declare function parseEth(value: string): PriceEth;
2702
- /**
2703
- * Parses a string representation of USDC into a {@link PriceUsdc} object.
2704
- *
2705
- * Uses {@link getCurrencyInfo} to get the correct number of decimals (6) for USDC
2706
- * and {@link parseUnits} from viem to convert the decimal string to a bigint.
2707
- *
2708
- * **Note:** Values with more than 6 decimal places will be truncated/rounded by viem's `parseUnits`.
2709
- *
2710
- * @param value - The decimal string to parse (e.g., "123.45678" for $123.45678)
2711
- * @returns A PriceUsdc object with the amount in the smallest unit (6 decimals)
2712
- *
2713
- * @throws {Error} If value is empty, whitespace-only or untrimmed
2714
- * @throws {Error} If value represents a negative number
2715
- * @throws {Error} If value is not a valid decimal string (e.g., "abc", "1.2.3")
2716
- *
2717
- * @example
2718
- * parseUsdc("123.45678") // returns { currency: "USDC", amount: 123456780n }
2719
- * parseUsdc("1") // returns { currency: "USDC", amount: 1000000n }
2720
- * parseUsdc("0.001") // returns { currency: "USDC", amount: 1000n }
2721
- */
2722
- declare function parseUsdc(value: string): PriceUsdc;
2723
- /**
2724
- * Parses a string representation of DAI into a {@link PriceDai} object.
2725
- *
2726
- * Uses {@link getCurrencyInfo} to get the correct number of decimals (18) for DAI
2727
- * and {@link parseUnits} from viem to convert the decimal string to a bigint.
2728
- *
2729
- * **Note:** Values with more than 18 decimal places will be truncated/rounded by viem's `parseUnits`.
2730
- *
2731
- * @param value - The decimal string to parse (e.g., "123.456789012345678" for 123.456789012345678 DAI)
2732
- * @returns A PriceDai object with the amount in the smallest unit (18 decimals)
2733
- *
2734
- * @throws {Error} If value is empty, whitespace-only or untrimmed
2735
- * @throws {Error} If value represents a negative number
2736
- * @throws {Error} If value is not a valid decimal string (e.g., "abc", "1.2.3")
2737
- *
2738
- * @example
2739
- * parseDai("123.456789012345678") // returns { currency: "DAI", amount: 123456789012345678000n }
2740
- * parseDai("1") // returns { currency: "DAI", amount: 1000000000000000000n }
2741
- * parseDai("0.001") // returns { currency: "DAI", amount: 1000000000000000n }
2742
- */
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;
2765
-
2766
- /**
2767
- * Subregistry
2768
- */
2769
- interface Subregistry {
2770
- /**
2771
- * Subregistry ID
2772
- *
2773
- * The ID of the subregistry the "logical registrar action" was taken on.
2774
- *
2775
- * Identifies the chainId and address of the associated subregistry smart
2776
- * contract.
2777
- */
2778
- subregistryId: AccountId;
2779
- /**
2780
- * The node (namehash) of the name the subregistry manages subnames of.
2781
- * Example subregistry managed names:
2782
- * - `eth`
2783
- * - `base.eth`
2784
- * - `linea.eth`
2785
- */
2786
- node: Node;
2787
- }
2788
-
2789
- /**
2790
- * Registration Lifecycle Stages
2791
- *
2792
- * Important: this definition should not be used anywhere.
2793
- * It's only here to capture some ideas that were shared in the team.
2794
- */
2795
- declare const RegistrationLifecycleStages: {
2796
- /**
2797
- * Active
2798
- *
2799
- * Happens when
2800
- * the current timestamp <= expiry.
2801
- */
2802
- readonly Active: "registrationLifecycle_active";
2803
- /**
2804
- * Grace Period
2805
- *
2806
- * Happens when
2807
- * `expiry < the current timestamp <= expiry + 90 days`.
2808
- */
2809
- readonly GracePeriod: "registrationLifecycle_gracePeriod";
2810
- /**
2811
- * Released with Temporary Premium Price
2812
- *
2813
- * Happens when
2814
- * `expiry + 90 days < the current timestamp <= expiry + 120 days`.
2815
- */
2816
- readonly ReleasedWithTempPrice: "registrationLifecycle_releasedWithTempPrice";
2817
- /**
2818
- * Fully Released (Regular Price)
2819
- *
2820
- * Happens when
2821
- * ` expiry + 120 days < the current timestamp`.
2822
- */
2823
- readonly FullyReleased: "registrationLifecycle_fullyReleased";
2824
- };
2825
- type RegistrationLifecycleStage = (typeof RegistrationLifecycleStages)[keyof typeof RegistrationLifecycleStages];
2826
- /**
2827
- * Registration Lifecycle
2828
- */
2829
- interface RegistrationLifecycle {
2830
- /**
2831
- * Subregistry that manages this Registration Lifecycle.
2832
- */
2833
- subregistry: Subregistry;
2834
- /**
2835
- * The node (namehash) of the FQDN of the domain the registration lifecycle
2836
- * is associated with.
2837
- *
2838
- * Guaranteed to be a subname of the node (namehash) of the subregistry
2839
- * identified by `subregistryId.subregistryId`.
2840
- */
2841
- node: Node;
2842
- /**
2843
- * Expires at
2844
- *
2845
- * Identifies when the Registration Lifecycle is scheduled to expire.
2846
- */
2847
- expiresAt: UnixTimestamp;
2848
- }
2849
-
2850
- /**
2851
- * Globally unique, deterministic ID of an indexed onchain event
2852
- * associated with the "logical registrar action".
2853
- */
2854
- type RegistrarActionEventId = string;
2855
- /**
2856
- * Types of "logical registrar action".
2857
- */
2858
- declare const RegistrarActionTypes: {
2859
- readonly Registration: "registration";
2860
- readonly Renewal: "renewal";
2861
- };
2862
- type RegistrarActionType = (typeof RegistrarActionTypes)[keyof typeof RegistrarActionTypes];
2863
- /**
2864
- * Pricing information for a "logical registrar action".
2865
- */
2866
- interface RegistrarActionPricingAvailable {
2867
- /**
2868
- * Base cost
2869
- *
2870
- * Base cost (before any `premium`) of Ether measured in units of Wei
2871
- * paid to execute the "logical registrar action".
2872
- *
2873
- * May be 0.
2874
- */
2875
- baseCost: PriceEth;
2876
- /**
2877
- * Premium
2878
- *
2879
- * "premium" cost (in excesses of the `baseCost`) of Ether measured in
2880
- * units of Wei paid to execute the "logical registrar action".
2881
- *
2882
- * May be 0.
2883
- */
2884
- premium: PriceEth;
2885
- /**
2886
- * Total
2887
- *
2888
- * Total cost of Ether measured in units of Wei paid to execute
2889
- * the "logical registrar action".
2890
- *
2891
- * May be 0.
2892
- */
2893
- total: PriceEth;
2894
- }
2895
- /**
2896
- * Pricing information for a "logical registrar action" when
2897
- * there is no known pricing data.
2898
- */
2899
- interface RegistrarActionPricingUnknown {
2900
- /**
2901
- * Base cost
2902
- *
2903
- * Base cost (before any `premium`) of Ether measured in units of Wei
2904
- * paid to execute the "logical registrar action".
2905
- */
2906
- baseCost: null;
2907
- /**
2908
- * Premium
2909
- *
2910
- * "premium" cost (in excesses of the `baseCost`) of Ether measured in
2911
- * units of Wei paid to execute the "logical registrar action".
2912
- */
2913
- premium: null;
2914
- /**
2915
- * Total
2916
- *
2917
- * Total cost of Ether measured in units of Wei paid to execute
2918
- * the "logical registrar action".
2919
- */
2920
- total: null;
2921
- }
2922
- type RegistrarActionPricing = RegistrarActionPricingAvailable | RegistrarActionPricingUnknown;
2923
- declare function isRegistrarActionPricingAvailable(registrarActionPricing: RegistrarActionPricing): registrarActionPricing is RegistrarActionPricingAvailable;
2924
- /**
2925
- * * Referral information for performing a "logical registrar action".
2926
- */
2927
- interface RegistrarActionReferralAvailable {
2928
- /**
2929
- * Encoded Referrer
2930
- *
2931
- * Represents the "raw" 32-byte "referrer" value emitted onchain in
2932
- * association with the registrar action.
2933
- */
2934
- encodedReferrer: EncodedReferrer;
2935
- /**
2936
- * Decoded Referrer
2937
- *
2938
- * The referrer address decoded from {@link encodedReferrer} using strict
2939
- * left-zero-padding validation.
2940
- *
2941
- * Identifies the interpreted address of the referrer.
2942
- * The "chainId" of this address is the same as is referenced in
2943
- * `subregistryId`.
2944
- *
2945
- * May be the "zero address" to represent that an `encodedReferrer` is
2946
- * defined but that it is interpreted as no referrer.
2947
- */
2948
- decodedReferrer: Address;
2949
- }
2950
- /**
2951
- * Referral information for performing a "logical registrar action" when
2952
- * registrar controller does not implement referrals.
2953
- */
2954
- interface RegistrarActionReferralNotApplicable {
2955
- /**
2956
- * Encoded Referrer
2957
- *
2958
- * Represents the "raw" 32-byte "referrer" value emitted onchain in
2959
- * association with the registrar action.
2960
- */
2961
- encodedReferrer: null;
2962
- /**
2963
- * Decoded Referrer
2964
- *
2965
- * The referrer address decoded from {@link encodedReferrer} using strict
2966
- * left-zero-padding validation. Null when the registrar controller does not implement referrals.
2967
- */
2968
- decodedReferrer: null;
2969
- }
2970
- type RegistrarActionReferral = RegistrarActionReferralAvailable | RegistrarActionReferralNotApplicable;
2971
- declare function isRegistrarActionReferralAvailable(registrarActionReferral: RegistrarActionReferral): registrarActionReferral is RegistrarActionReferralAvailable;
2972
- /**
2973
- * "Logical registrar action"
2974
- *
2975
- * Represents a state of "logical registrar action". May be built using data
2976
- * from multiple events within the same "logical" registration / renewal action.
2977
- */
2978
- interface RegistrarAction {
2979
- /**
2980
- * "Logical registrar action" ID
2981
- *
2982
- * The `id` value is a deterministic and globally unique identifier for
2983
- * the "logical registrar action".
2984
- *
2985
- * The `id` value represents the *initial* onchain event associated with
2986
- * the "logical registrar action", but the full state of
2987
- * the "logical registrar action" is an aggregate across each of
2988
- * the onchain events referenced in the `eventIds` field.
2989
- *
2990
- * Guaranteed to be the very first element in `eventIds` array.
2991
- */
2992
- id: RegistrarActionEventId;
2993
- /**
2994
- * The type of the "logical registrar action".
2995
- */
2996
- type: RegistrarActionType;
2997
- /**
2998
- *
2999
- * Incremental Duration
3000
- *
3001
- * If `type` is "registration":
3002
- * - Represents the duration between `block.timestamp` and
3003
- * the initial `registrationLifecycle.expiresAt` value that the associated
3004
- * "registration lifecycle" will be initialized with.
3005
- * If `type` is "renewal":
3006
- * - Represents the incremental increase in duration made to
3007
- * the `registrationLifecycle.expiresAt` value in the associated
3008
- * "registration lifecycle".
3009
- *
3010
- * A "registration lifecycle" may be extended via renewal even after it
3011
- * expires if it is still within its grace period.
3012
- *
3013
- * Consider the following scenario:
3014
- *
3015
- * The "registration lifecycle" of a direct subname of .eth is scheduled to
3016
- * expire on Jan 1, midnight UTC. It is currently 30 days after this
3017
- * expiration time. Therefore, there are currently another 60 days of grace
3018
- * period remaining for this name. Anyone can still make a renewal to
3019
- * extend the "registration lifecycle" of this name.
3020
- *
3021
- * Given this scenario, consider the following examples:
3022
- *
3023
- * 1. If a renewal is made with 10 days incremental duration,
3024
- * the "registration lifecycle" for this name will remain in
3025
- * an "expired" state, but it will now have another 70 days of
3026
- * grace period remaining.
3027
- *
3028
- * 2. If a renewal is made with 50 days incremental duration,
3029
- * the "registration lifecycle" for this name will no longer be
3030
- * "expired" and will become "active", but the "registration lifecycle"
3031
- * will now be scheduled to expire again in 20 days.
3032
- *
3033
- * After the "registration lifecycle" for a name becomes expired by more
3034
- * than its grace period, it can no longer be renewed by anyone and is
3035
- * considered "released". The name must first be registered again, starting
3036
- * a new "registration lifecycle" of
3037
- * active / expired / grace period / released.
3038
- *
3039
- * May be 0.
3040
- *
3041
- * Guaranteed to be a non-negative bigint value.
3042
- */
3043
- incrementalDuration: Duration;
3044
- /**
3045
- * Registrant
3046
- *
3047
- * Identifies the address that initiated the "logical registrar action" and
3048
- * is paying the `pricing.total` cost (if applicable).
3049
- *
3050
- * It may not be the owner of the name:
3051
- * 1. When a name is registered, the initial owner of the name may be
3052
- * distinct from the registrant.
3053
- * 2. There are no restrictions on who may renew a name.
3054
- * Therefore the owner of the name may be distinct from the registrant.
3055
- *
3056
- * The "chainId" of this address is the same as is referenced in
3057
- * `registrationLifecycle.subregistry.subregistryId`.
3058
- */
3059
- registrant: Address;
3060
- /**
3061
- * Registration Lifecycle associated with this "logical registrar action".
3062
- */
3063
- registrationLifecycle: RegistrationLifecycle;
3064
- /**
3065
- * Pricing information associated with this "logical registrar action".
3066
- */
3067
- pricing: RegistrarActionPricing;
3068
- /**
3069
- * Referral information associated with this "logical registrar action".
3070
- */
3071
- referral: RegistrarActionReferral;
3072
- /**
3073
- * Block ref
3074
- *
3075
- * References the block where the "logical registrar action" was executed.
3076
- *
3077
- * The "chainId" of this block is the same as is referenced in
3078
- * `registrationLifecycle.subregistry.subregistryId`.
3079
- */
3080
- block: BlockRef;
3081
- /**
3082
- * Transaction hash
3083
- *
3084
- * Transaction hash of the transaction associated with
3085
- * the "logical registrar action".
3086
- *
3087
- * The "chainId" of this transaction is the same as is referenced in
3088
- * `registrationLifecycle.subregistry.subregistryId`.
3089
- *
3090
- * Note that a single transaction may be associated with any number of
3091
- * "logical registrar actions".
3092
- */
3093
- transactionHash: Hash;
3094
- /**
3095
- * Event IDs
3096
- *
3097
- * Array of the eventIds that have contributed to the state of
3098
- * the "logical registrar action" record.
3099
- *
3100
- * Each eventId is a deterministic and globally unique onchain event
3101
- * identifier.
3102
- *
3103
- * Guarantees:
3104
- * - Each eventId is of events that occurred within the block
3105
- * referenced by `block.number`.
3106
- * - At least 1 eventId.
3107
- * - Ordered chronologically (ascending) by logIndex within `block.number`.
3108
- * - The first element in the array is equal to the `id` of
3109
- * the overall "logical registrar action" record.
3110
- *
3111
- * The following ideas are not generalized for ENS overall but happen to
3112
- * be a characteristic of the scope of our current indexing logic:
3113
- * 1. These id's always reference events emitted by
3114
- * a related "BaseRegistrar" contract.
3115
- * 2. These id's optionally reference events emitted by
3116
- * a related "Registrar Controller" contract. This is because our
3117
- * current indexing logic doesn't guarantee to index
3118
- * all "Registrar Controller" contracts.
3119
- */
3120
- eventIds: [RegistrarActionEventId, ...RegistrarActionEventId[]];
3121
- }
3122
- /**
3123
- * Serialized representation of {@link RegistrarActionPricingUnknown}.
3124
- */
3125
- type SerializedRegistrarActionPricingUnknown = RegistrarActionPricingUnknown;
3126
- /**
3127
- * Serialized representation of {@link RegistrarActionPricingAvailable}.
3128
- */
3129
- interface SerializedRegistrarActionPricingAvailable {
3130
- baseCost: SerializedPriceEth;
3131
- premium: SerializedPriceEth;
3132
- total: SerializedPriceEth;
3133
- }
3134
- /**
3135
- * Serialized representation of {@link RegistrarActionPricing}.
3136
- */
3137
- type SerializedRegistrarActionPricing = SerializedRegistrarActionPricingAvailable | SerializedRegistrarActionPricingUnknown;
3138
- /**
3139
- * Serialized representation of {@link RegistrarAction}.
3140
- */
3141
- interface SerializedRegistrarAction extends Omit<RegistrarAction, "pricing"> {
3142
- pricing: SerializedRegistrarActionPricing;
3143
- }
3144
- declare function serializeRegistrarActionPricing(pricing: RegistrarActionPricing): SerializedRegistrarActionPricing;
3145
- declare function serializeRegistrarAction(registrarAction: RegistrarAction): SerializedRegistrarAction;
3146
-
3147
1997
  declare const RECORDS_PER_PAGE_DEFAULT = 10;
3148
1998
  declare const RECORDS_PER_PAGE_MAX = 100;
3149
1999
  /**
@@ -4436,9 +3286,13 @@ declare function deserializeIndexingMetadataContext(serializedIndexingMetadataCo
4436
3286
  declare function validateIndexingMetadataContextInitialized(maybeIndexingMetadataContext: Unvalidated<IndexingMetadataContextInitialized>, valueLabel?: string): IndexingMetadataContextInitialized;
4437
3287
 
4438
3288
  /**
4439
- * Check if provided EnsIndexerPublicConfig supports the ENSNode Omnigraph API.
3289
+ * Check if provided EnsIndexerPublicConfig supports the Omnigraph API.
4440
3290
  */
4441
3291
  declare function hasOmnigraphApiConfigSupport(config: EnsIndexerPublicConfig): PrerequisiteResult;
3292
+ /**
3293
+ * Check if provided OmnichainIndexingStatusId supports the Omnigraph API.
3294
+ */
3295
+ declare function hasOmnigraphApiIndexingStatusSupport(indexingStatus: OmnichainIndexingStatusId): PrerequisiteResult;
4442
3296
 
4443
3297
  interface RegistrationExpiryInfo {
4444
3298
  expiry: bigint | null;
@@ -4661,7 +3515,7 @@ declare const uniq: <T>(arr: T[]) => T[];
4661
3515
  *
4662
3516
  * Useful for presenting a clear view of the indexed blockranges across chains.
4663
3517
  */
4664
- declare function buildIndexedBlockranges(namespace: ENSNamespaceId, pluginsDatasourceNames: Map<PluginName, DatasourceName[]>): Map<ChainId, BlockNumberRangeWithStartBlock>;
3518
+ declare function buildIndexedBlockranges(namespace: ENSNamespaceId, globalBlockrangeEndBlock: BlockNumberRange["endBlock"], pluginsDatasourceNames: Map<PluginName, DatasourceName[]>): Map<ChainId, BlockNumberRangeWithStartBlock>;
4665
3519
 
4666
3520
  /**
4667
3521
  * Gets the AccountId for the contract in the specified namespace, datasource, and
@@ -4732,86 +3586,6 @@ declare function deserializePriceUsdc(maybePrice: unknown, valueLabel?: string):
4732
3586
  declare function deserializePriceDai(maybePrice: unknown, valueLabel?: string): PriceDai;
4733
3587
  declare function deserializePriceEnsTokens(maybePrice: unknown, valueLabel?: string): PriceEnsTokens;
4734
3588
 
4735
- /**
4736
- * Interprets a NormalizedAddress. zeroAddress is interpreted as null, otherwise as-is.
4737
- */
4738
- declare const interpretAddress: (owner: NormalizedAddress) => NormalizedAddress | null;
4739
-
4740
- /**
4741
- * Interprets a name record value string and returns null if the value is interpreted as a deletion.
4742
- *
4743
- * The interpreted record value is either:
4744
- * a) null, representing a non-existent or deletion of the record, or
4745
- * b) an {@link InterpretedName}.
4746
- *
4747
- * @param value - The name record value string to interpret.
4748
- * @returns The interpreted name string, or null if deleted.
4749
- */
4750
- declare function interpretNameRecordValue(value: LiteralName): InterpretedName | null;
4751
- /**
4752
- * Interprets an address record value string and returns null if the value is interpreted as a deletion.
4753
- *
4754
- * The interpreted record value is either:
4755
- * a) null, representing a non-existent or deletion of the record, or
4756
- * i. contains null bytes
4757
- * ii. empty string
4758
- * iii. empty hex (0x)
4759
- * iv. zeroAddress
4760
- * b) an address record value that
4761
- * i. does not contain null bytes
4762
- * ii. (if is an EVM address) is lowercase
4763
- *
4764
- * @param value - The address record value to interpret.
4765
- * @returns The interpreted address string or null if deleted.
4766
- */
4767
- declare function interpretAddressRecordValue(value: string): string | null;
4768
- /**
4769
- * Interprets a text record key string and returns null if the key should be ignored.
4770
- *
4771
- * The interpreted text record key is either:
4772
- * a) null, representing a text record key that should be ignored, or
4773
- * i. contains null bytes
4774
- * ii. empty string
4775
- * b) a text record key that
4776
- * i. does not contain null bytes
4777
- *
4778
- * @param value - The text record key to interpret.
4779
- * @returns The interpreted text string or null if ignored.
4780
- */
4781
- declare function interpretTextRecordKey(key: string): string | null;
4782
- /**
4783
- * Interprets a text record value string and returns null if the value is interpreted as a deletion.
4784
- *
4785
- * The interpreted record value is either:
4786
- * a) null, representing a non-existent or deletion of the record, or
4787
- * i. contains null bytes
4788
- * ii. empty string
4789
- * b) a text record value that
4790
- * i. does not contain null bytes
4791
- *
4792
- * @param value - The text record value to interpret.
4793
- * @returns The interpreted text string or null if deleted.
4794
- */
4795
- declare function interpretTextRecordValue(value: string): string | null;
4796
-
4797
- /**
4798
- * Interprets an ENSIP-7 contenthash value. Empty bytes are interpreted as deletion.
4799
- */
4800
- declare function interpretContenthashValue(value: Hex): Hex | null;
4801
- /**
4802
- * Interprets a PubkeyResolver (x, y) pair. A (zeroHash, zeroHash) pair is interpreted as deletion.
4803
- *
4804
- * Invariant: both null together, or both set together.
4805
- */
4806
- declare function interpretPubkeyValue(x: Hex, y: Hex): {
4807
- x: Hex;
4808
- y: Hex;
4809
- } | null;
4810
- /**
4811
- * Interprets an IDNSZoneResolver zonehash value. Empty bytes are interpreted as deletion.
4812
- */
4813
- declare function interpretDnszonehashValue(value: Hex): Hex | null;
4814
-
4815
3589
  interface ManagedNameResult {
4816
3590
  name: InterpretedName;
4817
3591
  node: Node;
@@ -4830,26 +3604,6 @@ declare const getManagedName: (namespace: ENSNamespaceId, contract: AccountId) =
4830
3604
  */
4831
3605
  declare const isNameWrapper: (namespace: ENSNamespaceId, contract: AccountId) => boolean;
4832
3606
 
4833
- /**
4834
- * A value that varies by ENS namespace, with a required default.
4835
- *
4836
- * @example
4837
- * ```ts
4838
- * const exampleNames: NamespaceSpecificValue<string[]> = {
4839
- * default: ["vitalik.eth", "nick.eth"],
4840
- * [ENSNamespaceIds.EnsTestEnv]: ["test.eth", "demo.eth"],
4841
- * };
4842
- * ```
4843
- */
4844
- type NamespaceSpecificValue<T> = {
4845
- default: T;
4846
- } & Partial<Record<ENSNamespaceId, T>>;
4847
- /**
4848
- * Resolves a {@link NamespaceSpecificValue} for a given namespace,
4849
- * falling back to the default.
4850
- */
4851
- declare function getNamespaceSpecificValue<T>(namespace: ENSNamespaceId, value: NamespaceSpecificValue<T>): T;
4852
-
4853
3607
  declare const hasNullByte: (value: string) => boolean;
4854
3608
  declare const stripNullBytes: (value: string) => string;
4855
3609
 
@@ -5017,5 +3771,9 @@ declare function isWebSocketProtocol(url: URL): boolean;
5017
3771
  * Check if provided EnsIndexerPublicConfig supports the Subgraph API.
5018
3772
  */
5019
3773
  declare function hasSubgraphApiConfigSupport(config: EnsIndexerPublicConfig): PrerequisiteResult;
3774
+ /**
3775
+ * Check if provided OmnichainIndexingStatusId supports the Subgraph API.
3776
+ */
3777
+ declare function hasSubgraphApiIndexingStatusSupport(indexingStatus: OmnichainIndexingStatusId): PrerequisiteResult;
5020
3778
 
5021
- 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, getENSv1RootRegistry, getENSv1RootRegistryId, getENSv2RootRegistry, getENSv2RootRegistryId, getHighestKnownBlockTimestamp, getLatestIndexedBlockRef, getManagedName, getNFTTransferType, getNameTokenOwnership, getNameWrapperAccounts, getNamespaceSpecificValue, getOmnichainIndexingCursor, getOmnichainIndexingStatus, getResolvePrimaryNameChainIdParam, getRootRegistryId, 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, isRootRegistryId, 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 };
3779
+ export { ATTR_PROTOCOL_NAME, ATTR_PROTOCOL_STEP, ATTR_PROTOCOL_STEP_RESULT, type AcceleratableRequest, type AcceleratableResponse, BlockNumber, type BlockNumberRange, type BlockNumberRangeBounded, type BlockNumberRangeLeftBounded, type BlockNumberRangeRightBounded, type BlockNumberRangeUnbounded, type BlockNumberRangeWithStartBlock, 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, DEFAULT_ENSNODE_URL_MAINNET, DEFAULT_ENSNODE_URL_SEPOLIA, Datetime, type DomainAssetId, type ENSApiPublicConfig, 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, EnsIndexerPublicConfig, type EnsIndexerPublicConfigCompatibilityCheck, type EnsIndexerStackInfo, EnsIndexerVersionInfo, EnsNodeClient, type EnsNodeClientOptions, type EnsNodeStackInfo, EnsRainbowClientLabelSet, EnsRainbowPublicConfig, EnsRainbowServerLabelSet, 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, LabelSetId, 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 OmnichainIndexingStatusId, OmnichainIndexingStatusIds, type OmnichainIndexingStatusSnapshot, type OmnichainIndexingStatusSnapshotBackfill, type OmnichainIndexingStatusSnapshotCompleted, type OmnichainIndexingStatusSnapshotFollowing, type OmnichainIndexingStatusSnapshotUnstarted, PROTOCOL_ATTRIBUTE_PREFIX, PluginName, type PrerequisiteResult, Price, PriceDai, PriceEnsTokens, PriceEth, PriceUsdc, RECORDS_PER_PAGE_DEFAULT, RECORDS_PER_PAGE_MAX, type RangeType, RangeTypeIds, type RealtimeIndexingStatusProjection, type RegisteredNameTokens, RegistrarAction, 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 ReplaceBigInts, type RequestPageParams, 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, SWRCache, type SWRCacheOptions, type SerializedAssetId, type SerializedChainIndexingStatusSnapshot, type SerializedChainIndexingStatusSnapshotBackfill, type SerializedChainIndexingStatusSnapshotCompleted, type SerializedChainIndexingStatusSnapshotFollowing, type SerializedChainIndexingStatusSnapshotQueued, type SerializedCrossChainIndexingStatusSnapshot, type SerializedCrossChainIndexingStatusSnapshotOmnichain, 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, SerializedPrice, SerializedPriceDai, SerializedPriceEnsTokens, SerializedPriceEth, SerializedPriceUsdc, type SerializedRealtimeIndexingStatusProjection, type SerializedRegisteredNameTokens, SerializedRegistrarAction, type SerializedRegistrarActionsResponse, type SerializedRegistrarActionsResponseError, type SerializedRegistrarActionsResponseOk, type SerializedTokenId, TheGraphFallback, TraceableENSProtocol, type TraceableRequest, type TraceableResponse, type TracingNode, type TracingSpan, type TracingTrace, TtlCache, type UnknownIdentity, type UnnamedIdentity, type UnresolvedIdentity, Unvalidated, accountIdEqual, addDuration, bigIntToNumber, buildAssetId, buildBlockNumberRange, buildBlockRefRange, buildCrossChainIndexingStatusSnapshotOmnichain, buildEnsIndexerStackInfo, buildEnsNodeStackInfo, buildEnsRainbowClientLabelSet, buildIndexedBlockranges, buildIndexingMetadataContextInitialized, buildIndexingMetadataContextUninitialized, buildLabelSetId, buildLabelSetVersion, buildOmnichainIndexingStatusSnapshot, buildPageContext, buildUnresolvedIdentity, buildUnvalidatedCrossChainIndexingStatusSnapshot, buildUnvalidatedEnsApiPublicConfig, buildUnvalidatedEnsIndexerPublicConfig, buildUnvalidatedEnsIndexerStackInfo, buildUnvalidatedEnsNodeStackInfo, buildUnvalidatedOmnichainIndexingStatusSnapshot, buildUnvalidatedRealtimeIndexingStatusProjection, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotBackfill, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotCompleted, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotFollowing, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotUnstarted, createRealtimeIndexingStatusProjection, 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, getDatasourceContract, getDefaultEnsNodeUrl, getENSv1RootRegistry, getENSv1RootRegistryId, getENSv2RootRegistry, getENSv2RootRegistryId, getHighestKnownBlockTimestamp, getLatestIndexedBlockRef, getManagedName, getNFTTransferType, getNameTokenOwnership, getNameWrapperAccounts, getOmnichainIndexingCursor, getOmnichainIndexingStatus, getResolvePrimaryNameChainIdParam, getRootRegistryId, getTimestampForHighestOmnichainKnownBlock, getTimestampForLowestOmnichainStartBlock, hasNullByte, hasOmnigraphApiConfigSupport, hasOmnigraphApiIndexingStatusSupport, hasRegistrarActionsConfigSupport, hasRegistrarActionsIndexingStatusSupport, hasSubgraphApiConfigSupport, hasSubgraphApiIndexingStatusSupport, isENSv1Registry, isENSv2RootRegistry, isHttpProtocol, isNameWrapper, isPccFuseSet, isRegistrationExpired, isRegistrationFullyExpired, isRegistrationInGracePeriod, isResolvedIdentity, isRootRegistryId, isSelectionEmpty, isSubgraphCompatible, isWebSocketProtocol, labelHashToBytes, makeContractMatcher, maybeGetDatasourceContract, maybeGetENSv2RootRegistry, maybeGetENSv2RootRegistryId, mergeBlockNumberRanges, nameTokensPrerequisites, parseAccountId, parseAssetId, parseNonNegativeInteger, parseTimestamp, registrarActionsFilter, replaceBigInts, scaleBigintByNumber, 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, serializeRegistrarActionsResponse, serializeUrl, sortChainStatusesByStartBlockAsc, stripNullBytes, toJson, translateDefaultableChainIdToChainId, uniq, validateChainIndexingStatusSnapshot, validateCrossChainIndexingStatusSnapshot, validateEnsIndexerPublicConfig, validateEnsIndexerPublicConfigCompatibility, validateEnsIndexerStackInfo, validateEnsIndexerVersionInfo, validateEnsNodeStackInfo, validateIndexingMetadataContextInitialized, validateOmnichainIndexingStatusSnapshot, validateRealtimeIndexingStatusProjection, validateSupportedLabelSetAndVersion };