@ensnode/ensnode-sdk 0.0.0-next-20260423165635 → 0.0.0-next-20260424124838

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.cjs CHANGED
@@ -82,6 +82,7 @@ __export(index_exports, {
82
82
  buildBlockRefRange: () => buildBlockRefRange,
83
83
  buildCrossChainIndexingStatusSnapshotOmnichain: () => buildCrossChainIndexingStatusSnapshotOmnichain,
84
84
  buildEncodedReferrer: () => buildEncodedReferrer,
85
+ buildEnsIndexerStackInfo: () => buildEnsIndexerStackInfo,
85
86
  buildEnsNodeStackInfo: () => buildEnsNodeStackInfo,
86
87
  buildEnsRainbowClientLabelSet: () => buildEnsRainbowClientLabelSet,
87
88
  buildIndexedBlockranges: () => buildIndexedBlockranges,
@@ -93,6 +94,7 @@ __export(index_exports, {
93
94
  buildUnvalidatedCrossChainIndexingStatusSnapshot: () => buildUnvalidatedCrossChainIndexingStatusSnapshot,
94
95
  buildUnvalidatedEnsApiPublicConfig: () => buildUnvalidatedEnsApiPublicConfig,
95
96
  buildUnvalidatedEnsIndexerPublicConfig: () => buildUnvalidatedEnsIndexerPublicConfig,
97
+ buildUnvalidatedEnsIndexerStackInfo: () => buildUnvalidatedEnsIndexerStackInfo,
96
98
  buildUnvalidatedEnsNodeStackInfo: () => buildUnvalidatedEnsNodeStackInfo,
97
99
  buildUnvalidatedOmnichainIndexingStatusSnapshot: () => buildUnvalidatedOmnichainIndexingStatusSnapshot,
98
100
  buildUnvalidatedRealtimeIndexingStatusProjection: () => buildUnvalidatedRealtimeIndexingStatusProjection,
@@ -117,6 +119,7 @@ __export(index_exports, {
117
119
  deserializeEnsIndexerConfigResponse: () => deserializeEnsIndexerConfigResponse,
118
120
  deserializeEnsIndexerIndexingStatusResponse: () => deserializeEnsIndexerIndexingStatusResponse,
119
121
  deserializeEnsIndexerPublicConfig: () => deserializeEnsIndexerPublicConfig,
122
+ deserializeEnsIndexerStackInfo: () => deserializeEnsIndexerStackInfo,
120
123
  deserializeEnsNodeStackInfo: () => deserializeEnsNodeStackInfo,
121
124
  deserializeErrorResponse: () => deserializeErrorResponse2,
122
125
  deserializeIndexingStatusResponse: () => deserializeIndexingStatusResponse,
@@ -223,6 +226,7 @@ __export(index_exports, {
223
226
  serializeEnsIndexerConfigResponse: () => serializeEnsIndexerConfigResponse,
224
227
  serializeEnsIndexerIndexingStatusResponse: () => serializeEnsIndexerIndexingStatusResponse,
225
228
  serializeEnsIndexerPublicConfig: () => serializeEnsIndexerPublicConfig,
229
+ serializeEnsIndexerStackInfo: () => serializeEnsIndexerStackInfo,
226
230
  serializeEnsNodeStackInfo: () => serializeEnsNodeStackInfo,
227
231
  serializeIndexedChainIds: () => serializeIndexedChainIds,
228
232
  serializeIndexingStatusResponse: () => serializeIndexingStatusResponse,
@@ -250,7 +254,9 @@ __export(index_exports, {
250
254
  validateCrossChainIndexingStatusSnapshot: () => validateCrossChainIndexingStatusSnapshot,
251
255
  validateEnsIndexerPublicConfig: () => validateEnsIndexerPublicConfig,
252
256
  validateEnsIndexerPublicConfigCompatibility: () => validateEnsIndexerPublicConfigCompatibility,
257
+ validateEnsIndexerStackInfo: () => validateEnsIndexerStackInfo,
253
258
  validateEnsIndexerVersionInfo: () => validateEnsIndexerVersionInfo,
259
+ validateEnsNodeStackInfo: () => validateEnsNodeStackInfo,
254
260
  validateOmnichainIndexingStatusSnapshot: () => validateOmnichainIndexingStatusSnapshot,
255
261
  validateRealtimeIndexingStatusProjection: () => validateRealtimeIndexingStatusProjection,
256
262
  validateSupportedLabelSetAndVersion: () => validateSupportedLabelSetAndVersion
@@ -574,14 +580,15 @@ var makeLabelSetIdSchema = (valueLabel = "Label set ID") => {
574
580
  var makeLabelSetVersionSchema = (valueLabel = "Label set version") => makeNonNegativeIntegerSchema(valueLabel);
575
581
  var makeLabelSetVersionStringSchema = (valueLabel = "Label set version") => import_v42.z.coerce.number({ error: `${valueLabel} must be a non-negative integer` }).pipe(makeLabelSetVersionSchema(valueLabel));
576
582
  var makeEnsRainbowPublicConfigSchema = (valueLabel = "EnsRainbowPublicConfig") => import_v42.z.object({
577
- version: import_v42.z.string().nonempty({ error: `${valueLabel}.version must be a non-empty string.` }),
578
- labelSet: import_v42.z.object({
579
- labelSetId: makeLabelSetIdSchema(`${valueLabel}.labelSet.labelSetId`),
583
+ serverLabelSet: import_v42.z.object({
584
+ labelSetId: makeLabelSetIdSchema(`${valueLabel}.serverLabelSet.labelSetId`),
580
585
  highestLabelSetVersion: makeLabelSetVersionSchema(
581
- `${valueLabel}.labelSet.highestLabelSetVersion`
586
+ `${valueLabel}.serverLabelSet.highestLabelSetVersion`
582
587
  )
583
588
  }),
584
- recordsCount: makeNonNegativeIntegerSchema(`${valueLabel}.recordsCount`)
589
+ versionInfo: import_v42.z.object({
590
+ ensRainbow: import_v42.z.string().nonempty({ error: `${valueLabel}.versionInfo.ensRainbow must be a non-empty string.` })
591
+ })
585
592
  });
586
593
 
587
594
  // src/shared/collections.ts
@@ -606,8 +613,8 @@ var PluginName = /* @__PURE__ */ ((PluginName2) => {
606
613
  // src/ensindexer/config/is-subgraph-compatible.ts
607
614
  function isSubgraphCompatible(config) {
608
615
  const onlySubgraphPluginActivated = config.plugins.length === 1 && config.plugins[0] === "subgraph" /* Subgraph */;
609
- const isSubgraphLabelSet = config.labelSet.labelSetId === "subgraph" && config.labelSet.labelSetVersion === 0;
610
- const isEnsTestEnvLabelSet = config.labelSet.labelSetId === "ens-test-env" && config.labelSet.labelSetVersion === 0;
616
+ const isSubgraphLabelSet = config.clientLabelSet.labelSetId === "subgraph" && config.clientLabelSet.labelSetVersion === 0;
617
+ const isEnsTestEnvLabelSet = config.clientLabelSet.labelSetId === "ens-test-env" && config.clientLabelSet.labelSetVersion === 0;
611
618
  const labelSetIsSubgraphCompatible = isSubgraphLabelSet || config.namespace === import_datasources2.ENSNamespaceIds.EnsTestEnv && isEnsTestEnvLabelSet;
612
619
  return onlySubgraphPluginActivated && labelSetIsSubgraphCompatible;
613
620
  }
@@ -705,13 +712,13 @@ function invariant_isSubgraphCompatibleRequirements(ctx) {
705
712
  ctx.issues.push({
706
713
  code: "custom",
707
714
  input: config,
708
- message: `'isSubgraphCompatible' requires only the '${"subgraph" /* Subgraph */}' plugin to be active and labelSet must be {labelSetId: "subgraph", labelSetVersion: 0}`
715
+ message: `'isSubgraphCompatible' requires only the '${"subgraph" /* Subgraph */}' plugin to be active and 'clientLabelSet' must be {labelSetId: "subgraph", labelSetVersion: 0}`
709
716
  });
710
717
  }
711
718
  }
712
719
  function invariant_ensRainbowSupportedLabelSetAndVersion(ctx) {
713
- const clientLabelSet = ctx.value.labelSet;
714
- const serverLabelSet = ctx.value.ensRainbowPublicConfig.labelSet;
720
+ const { clientLabelSet } = ctx.value;
721
+ const { serverLabelSet } = ctx.value.ensRainbowPublicConfig;
715
722
  try {
716
723
  validateSupportedLabelSetAndVersion(serverLabelSet, clientLabelSet);
717
724
  } catch (error) {
@@ -732,7 +739,7 @@ var makeEnsIndexerPublicConfigSchema = (valueLabel = "ENSIndexerPublicConfig") =
732
739
  isSubgraphCompatible: import_v43.z.boolean({
733
740
  error: `${valueLabel}.isSubgraphCompatible must be a boolean value.`
734
741
  }),
735
- labelSet: makeFullyPinnedLabelSetSchema(`${valueLabel}.labelSet`),
742
+ clientLabelSet: makeFullyPinnedLabelSetSchema(`${valueLabel}.clientLabelSet`),
736
743
  namespace: makeENSNamespaceIdSchema(`${valueLabel}.namespace`),
737
744
  plugins: makePluginsListSchema(`${valueLabel}.plugins`),
738
745
  versionInfo: makeEnsIndexerVersionInfoSchema(`${valueLabel}.versionInfo`)
@@ -746,7 +753,7 @@ var makeSerializedEnsIndexerPublicConfigSchema = (valueLabel = "Serialized ENSIn
746
753
  isSubgraphCompatible: import_v43.z.boolean({
747
754
  error: `${valueLabel}.isSubgraphCompatible must be a boolean value.`
748
755
  }),
749
- labelSet: makeFullyPinnedLabelSetSchema(`${valueLabel}.labelSet`),
756
+ clientLabelSet: makeFullyPinnedLabelSetSchema(`${valueLabel}.clientLabelSet`),
750
757
  namespace: makeENSNamespaceIdSchema(`${valueLabel}.namespace`),
751
758
  plugins: makePluginsListSchema(`${valueLabel}.plugins`),
752
759
  versionInfo: makeEnsIndexerVersionInfoSchema(`${valueLabel}.versionInfo`)
@@ -846,7 +853,7 @@ function serializeEnsIndexerPublicConfig(config) {
846
853
  ensRainbowPublicConfig,
847
854
  indexedChainIds,
848
855
  isSubgraphCompatible: isSubgraphCompatible2,
849
- labelSet,
856
+ clientLabelSet,
850
857
  namespace,
851
858
  plugins,
852
859
  versionInfo
@@ -856,7 +863,7 @@ function serializeEnsIndexerPublicConfig(config) {
856
863
  ensRainbowPublicConfig,
857
864
  indexedChainIds: serializeIndexedChainIds(indexedChainIds),
858
865
  isSubgraphCompatible: isSubgraphCompatible2,
859
- labelSet,
866
+ clientLabelSet,
860
867
  namespace,
861
868
  plugins,
862
869
  versionInfo
@@ -2101,21 +2108,21 @@ function validateEnsIndexerPublicConfigCompatibility(configA, configB) {
2101
2108
  ].join(" ")
2102
2109
  );
2103
2110
  }
2104
- if (configA.labelSet.labelSetId !== configB.labelSet.labelSetId) {
2111
+ if (configA.clientLabelSet.labelSetId !== configB.clientLabelSet.labelSetId) {
2105
2112
  throw new Error(
2106
2113
  [
2107
- `'labelSet.labelSetId' must be compatible.`,
2108
- `Stored Config 'labelSet.labelSetId': '${configA.labelSet.labelSetId}'.`,
2109
- `Current Config 'labelSet.labelSetId': '${configB.labelSet.labelSetId}'.`
2114
+ `'clientLabelSet.labelSetId' must be compatible.`,
2115
+ `Stored Config 'clientLabelSet.labelSetId': '${configA.clientLabelSet.labelSetId}'.`,
2116
+ `Current Config 'clientLabelSet.labelSetId': '${configB.clientLabelSet.labelSetId}'.`
2110
2117
  ].join(" ")
2111
2118
  );
2112
2119
  }
2113
- if (configA.labelSet.labelSetVersion !== configB.labelSet.labelSetVersion) {
2120
+ if (configA.clientLabelSet.labelSetVersion !== configB.clientLabelSet.labelSetVersion) {
2114
2121
  throw new Error(
2115
2122
  [
2116
- `'labelSet.labelSetVersion' must be compatible.`,
2117
- `Stored Config 'labelSet.labelSetVersion': '${configA.labelSet.labelSetVersion}'.`,
2118
- `Current Config 'labelSet.labelSetVersion': '${configB.labelSet.labelSetVersion}'.`
2123
+ `'clientLabelSet.labelSetVersion' must be compatible.`,
2124
+ `Stored Config 'clientLabelSet.labelSetVersion': '${configA.clientLabelSet.labelSetVersion}'.`,
2125
+ `Current Config 'clientLabelSet.labelSetVersion': '${configB.clientLabelSet.labelSetVersion}'.`
2119
2126
  ].join(" ")
2120
2127
  );
2121
2128
  }
@@ -2206,12 +2213,12 @@ function validateEnsIndexerVersionInfo(unvalidatedVersionInfo) {
2206
2213
  }
2207
2214
 
2208
2215
  // src/ensnode/api/indexing-status/deserialize.ts
2209
- var import_v427 = require("zod/v4");
2216
+ var import_v428 = require("zod/v4");
2210
2217
 
2211
2218
  // src/stack-info/deserialize/ensnode-stack-info.ts
2212
- var import_v425 = require("zod/v4");
2219
+ var import_v426 = require("zod/v4");
2213
2220
 
2214
- // src/stack-info/zod-schemas/ensnode-stack-info.ts
2221
+ // src/stack-info/zod-schemas/ensindexer-stack-info.ts
2215
2222
  var import_v424 = require("zod/v4");
2216
2223
 
2217
2224
  // src/ensdb/zod-schemas/config.ts
@@ -2220,49 +2227,134 @@ var makeEnsDbVersionInfoSchema = (valueLabel) => {
2220
2227
  const label = valueLabel ?? "EnsDbVersionInfo";
2221
2228
  return import_v423.z.object({
2222
2229
  postgresql: import_v423.z.string().nonempty(`${label}.postgresql must be a non-empty string`).describe("Version of the PostgreSQL server hosting the ENSDb instance.")
2223
- }).describe(label);
2230
+ });
2224
2231
  };
2225
2232
  var makeEnsDbPublicConfigSchema = (valueLabel) => {
2226
2233
  const label = valueLabel ?? "EnsDbPublicConfig";
2227
2234
  return import_v423.z.object({
2228
2235
  versionInfo: makeEnsDbVersionInfoSchema(`${label}.versionInfo`)
2229
- }).describe(label);
2236
+ });
2230
2237
  };
2231
2238
 
2232
- // src/stack-info/zod-schemas/ensnode-stack-info.ts
2233
- function makeSerializedEnsNodeStackInfoSchema(valueLabel) {
2234
- const label = valueLabel ?? "ENSNodeStackInfo";
2239
+ // src/stack-info/zod-schemas/ensindexer-stack-info.ts
2240
+ function makeSerializedEnsIndexerStackInfoSchema(valueLabel) {
2241
+ const label = valueLabel ?? "ENSIndexerStackInfo";
2235
2242
  return import_v424.z.object({
2236
- ensApi: makeSerializedEnsApiPublicConfigSchema(`${label}.ensApi`),
2237
2243
  ensDb: makeEnsDbPublicConfigSchema(`${label}.ensDb`),
2238
2244
  ensIndexer: makeSerializedEnsIndexerPublicConfigSchema(`${label}.ensIndexer`),
2239
- ensRainbow: makeEnsRainbowPublicConfigSchema(`${label}.ensRainbow`).optional()
2245
+ ensRainbow: makeEnsRainbowPublicConfigSchema(`${label}.ensRainbow`)
2240
2246
  });
2241
2247
  }
2242
- function makeEnsNodeStackInfoSchema(valueLabel) {
2243
- const label = valueLabel ?? "ENSNodeStackInfo";
2248
+ function invariant_ensRainbowCompatibilityWithEnsIndexer(ctx) {
2249
+ const { ensIndexer, ensRainbow } = ctx.value;
2250
+ const { clientLabelSet } = ensIndexer;
2251
+ const { serverLabelSet } = ensRainbow;
2252
+ if (clientLabelSet.labelSetId !== serverLabelSet.labelSetId) {
2253
+ ctx.issues.push({
2254
+ code: "custom",
2255
+ input: ctx.value,
2256
+ message: `ENSRainbow's label set (id: ${serverLabelSet.labelSetId}) must be the same as ENSIndexer's label set (id: ${clientLabelSet.labelSetId}).`
2257
+ });
2258
+ }
2259
+ if (clientLabelSet.labelSetVersion > serverLabelSet.highestLabelSetVersion) {
2260
+ ctx.issues.push({
2261
+ code: "custom",
2262
+ input: ctx.value,
2263
+ message: `ENSRainbow's server label set version (highest: ${serverLabelSet.highestLabelSetVersion}) must be greater than or equal to ENSIndexer's client label set version (current: ${clientLabelSet.labelSetVersion}).`
2264
+ });
2265
+ }
2266
+ }
2267
+ function makeEnsIndexerStackInfoSchema(valueLabel) {
2268
+ const label = valueLabel ?? "ENSIndexerStackInfo";
2244
2269
  return import_v424.z.object({
2245
- ensApi: makeEnsApiPublicConfigSchema(`${label}.ensApi`),
2246
2270
  ensDb: makeEnsDbPublicConfigSchema(`${label}.ensDb`),
2247
2271
  ensIndexer: makeEnsIndexerPublicConfigSchema(`${label}.ensIndexer`),
2248
- ensRainbow: makeEnsRainbowPublicConfigSchema(`${label}.ensRainbow`).optional()
2272
+ ensRainbow: makeEnsRainbowPublicConfigSchema(`${label}.ensRainbow`)
2273
+ }).check(invariant_ensRainbowCompatibilityWithEnsIndexer);
2274
+ }
2275
+
2276
+ // src/stack-info/zod-schemas/ensnode-stack-info.ts
2277
+ function invariant_ensApiCompatibilityWithEnsIndexerAndEnsRainbow(ctx) {
2278
+ const { ensApi, ensIndexer, ensRainbow } = ctx.value;
2279
+ if (ensIndexer.versionInfo.ensDb !== ensApi.versionInfo.ensApi) {
2280
+ ctx.issues.push({
2281
+ code: "custom",
2282
+ path: ["ensIndexer", "versionInfo", "ensDb"],
2283
+ input: ensIndexer.versionInfo.ensDb,
2284
+ message: `Version Mismatch: ENSDB@${ensIndexer.versionInfo.ensDb} !== ENSApi@${ensApi.versionInfo.ensApi}`
2285
+ });
2286
+ }
2287
+ if (ensIndexer.versionInfo.ensIndexer !== ensApi.versionInfo.ensApi) {
2288
+ ctx.issues.push({
2289
+ code: "custom",
2290
+ path: ["ensIndexer", "versionInfo", "ensIndexer"],
2291
+ input: ensIndexer.versionInfo.ensIndexer,
2292
+ message: `Version Mismatch: ENSIndexer@${ensIndexer.versionInfo.ensIndexer} !== ENSApi@${ensApi.versionInfo.ensApi}`
2293
+ });
2294
+ }
2295
+ if (ensRainbow.versionInfo.ensRainbow !== ensApi.versionInfo.ensApi) {
2296
+ ctx.issues.push({
2297
+ code: "custom",
2298
+ path: ["ensRainbow", "versionInfo", "ensRainbow"],
2299
+ input: ensRainbow.versionInfo.ensRainbow,
2300
+ message: `Version Mismatch: ENSRainbow@${ensRainbow.versionInfo.ensRainbow} !== ENSApi@${ensApi.versionInfo.ensApi}`
2301
+ });
2302
+ }
2303
+ if (ensIndexer.versionInfo.ensNormalize !== ensApi.versionInfo.ensNormalize) {
2304
+ ctx.issues.push({
2305
+ code: "custom",
2306
+ path: ["ensIndexer", "versionInfo", "ensNormalize"],
2307
+ input: ensIndexer.versionInfo.ensNormalize,
2308
+ message: `Dependency Version Mismatch: '@adraffy/ens-normalize' version must be the same between ENSIndexer and ENSApi. Found ENSApi@${ensApi.versionInfo.ensNormalize} and ENSIndexer@${ensIndexer.versionInfo.ensNormalize}`
2309
+ });
2310
+ }
2311
+ }
2312
+ function makeSerializedEnsNodeStackInfoSchema(valueLabel) {
2313
+ const label = valueLabel ?? "ENSNodeStackInfo";
2314
+ return makeSerializedEnsIndexerStackInfoSchema(label).extend({
2315
+ ensApi: makeSerializedEnsApiPublicConfigSchema(`${label}.ensApi`)
2249
2316
  });
2250
2317
  }
2318
+ function makeEnsNodeStackInfoSchema(valueLabel) {
2319
+ const label = valueLabel ?? "ENSNodeStackInfo";
2320
+ return makeEnsIndexerStackInfoSchema(label).extend({
2321
+ ensApi: makeEnsApiPublicConfigSchema(`${label}.ensApi`)
2322
+ }).check(invariant_ensApiCompatibilityWithEnsIndexerAndEnsRainbow).check(invariant_ensRainbowCompatibilityWithEnsIndexer);
2323
+ }
2324
+
2325
+ // src/stack-info/deserialize/ensindexer-stack-info.ts
2326
+ var import_v425 = require("zod/v4");
2327
+ function buildUnvalidatedEnsIndexerStackInfo(serializedStackInfo) {
2328
+ const { ensDb, ensRainbow } = serializedStackInfo;
2329
+ const ensIndexer = buildUnvalidatedEnsIndexerPublicConfig(serializedStackInfo.ensIndexer);
2330
+ return {
2331
+ ensDb,
2332
+ ensIndexer,
2333
+ ensRainbow
2334
+ };
2335
+ }
2336
+ function deserializeEnsIndexerStackInfo(maybeStackInfo, valueLabel) {
2337
+ const parsed = makeSerializedEnsIndexerStackInfoSchema(valueLabel).transform(buildUnvalidatedEnsIndexerStackInfo).pipe(makeEnsIndexerStackInfoSchema(valueLabel)).safeParse(maybeStackInfo);
2338
+ if (parsed.error) {
2339
+ throw new Error(`Cannot deserialize EnsIndexerStackInfo:
2340
+ ${(0, import_v425.prettifyError)(parsed.error)}
2341
+ `);
2342
+ }
2343
+ return parsed.data;
2344
+ }
2251
2345
 
2252
2346
  // src/stack-info/deserialize/ensnode-stack-info.ts
2253
2347
  function buildUnvalidatedEnsNodeStackInfo(serializedStackInfo) {
2254
- const { ensApi, ensIndexer, ...rest } = serializedStackInfo;
2255
2348
  return {
2256
- ...rest,
2257
- ensApi: buildUnvalidatedEnsApiPublicConfig(ensApi),
2258
- ensIndexer: buildUnvalidatedEnsIndexerPublicConfig(ensIndexer)
2349
+ ...buildUnvalidatedEnsIndexerStackInfo(serializedStackInfo),
2350
+ ensApi: buildUnvalidatedEnsApiPublicConfig(serializedStackInfo.ensApi)
2259
2351
  };
2260
2352
  }
2261
2353
  function deserializeEnsNodeStackInfo(maybeStackInfo, valueLabel) {
2262
2354
  const parsed = makeSerializedEnsNodeStackInfoSchema(valueLabel).transform(buildUnvalidatedEnsNodeStackInfo).pipe(makeEnsNodeStackInfoSchema(valueLabel)).safeParse(maybeStackInfo);
2263
2355
  if (parsed.error) {
2264
2356
  throw new Error(`Cannot deserialize EnsNodeStackInfo:
2265
- ${(0, import_v425.prettifyError)(parsed.error)}
2357
+ ${(0, import_v426.prettifyError)(parsed.error)}
2266
2358
  `);
2267
2359
  }
2268
2360
  return parsed.data;
@@ -2282,25 +2374,25 @@ var EnsApiIndexingStatusResponseCodes = {
2282
2374
  var IndexingStatusResponseCodes = EnsApiIndexingStatusResponseCodes;
2283
2375
 
2284
2376
  // src/ensnode/api/indexing-status/zod-schemas.ts
2285
- var import_v426 = require("zod/v4");
2286
- var makeEnsApiIndexingStatusResponseOkSchema = (valueLabel = "Indexing Status Response OK") => import_v426.z.strictObject({
2287
- responseCode: import_v426.z.literal(EnsApiIndexingStatusResponseCodes.Ok),
2377
+ var import_v427 = require("zod/v4");
2378
+ var makeEnsApiIndexingStatusResponseOkSchema = (valueLabel = "Indexing Status Response OK") => import_v427.z.strictObject({
2379
+ responseCode: import_v427.z.literal(EnsApiIndexingStatusResponseCodes.Ok),
2288
2380
  realtimeProjection: makeRealtimeIndexingStatusProjectionSchema(valueLabel),
2289
2381
  stackInfo: makeEnsNodeStackInfoSchema(valueLabel)
2290
2382
  });
2291
- var makeEnsApiIndexingStatusResponseErrorSchema = (_valueLabel = "Indexing Status Response Error") => import_v426.z.strictObject({
2292
- responseCode: import_v426.z.literal(EnsApiIndexingStatusResponseCodes.Error)
2383
+ var makeEnsApiIndexingStatusResponseErrorSchema = (_valueLabel = "Indexing Status Response Error") => import_v427.z.strictObject({
2384
+ responseCode: import_v427.z.literal(EnsApiIndexingStatusResponseCodes.Error)
2293
2385
  });
2294
- var makeEnsApiIndexingStatusResponseSchema = (valueLabel = "Indexing Status Response") => import_v426.z.discriminatedUnion("responseCode", [
2386
+ var makeEnsApiIndexingStatusResponseSchema = (valueLabel = "Indexing Status Response") => import_v427.z.discriminatedUnion("responseCode", [
2295
2387
  makeEnsApiIndexingStatusResponseOkSchema(valueLabel),
2296
2388
  makeEnsApiIndexingStatusResponseErrorSchema(valueLabel)
2297
2389
  ]);
2298
- var makeSerializedEnsApiIndexingStatusResponseOkSchema = (valueLabel = "Serialized Indexing Status Response OK") => import_v426.z.object({
2299
- responseCode: import_v426.z.literal(EnsApiIndexingStatusResponseCodes.Ok),
2390
+ var makeSerializedEnsApiIndexingStatusResponseOkSchema = (valueLabel = "Serialized Indexing Status Response OK") => import_v427.z.object({
2391
+ responseCode: import_v427.z.literal(EnsApiIndexingStatusResponseCodes.Ok),
2300
2392
  realtimeProjection: makeSerializedRealtimeIndexingStatusProjectionSchema(valueLabel),
2301
2393
  stackInfo: makeSerializedEnsNodeStackInfoSchema(valueLabel)
2302
2394
  });
2303
- var makeSerializedEnsApiIndexingStatusResponseSchema = (valueLabel = "Serialized Indexing Status Response") => import_v426.z.discriminatedUnion("responseCode", [
2395
+ var makeSerializedEnsApiIndexingStatusResponseSchema = (valueLabel = "Serialized Indexing Status Response") => import_v427.z.discriminatedUnion("responseCode", [
2304
2396
  makeSerializedEnsApiIndexingStatusResponseOkSchema(valueLabel),
2305
2397
  makeEnsApiIndexingStatusResponseErrorSchema(valueLabel)
2306
2398
  ]);
@@ -2322,7 +2414,7 @@ function deserializeEnsApiIndexingStatusResponse(maybeResponse) {
2322
2414
  if (parsed.error) {
2323
2415
  throw new Error(
2324
2416
  `Cannot deserialize EnsApiIndexingStatusResponse:
2325
- ${(0, import_v427.prettifyError)(parsed.error)}
2417
+ ${(0, import_v428.prettifyError)(parsed.error)}
2326
2418
  `
2327
2419
  );
2328
2420
  }
@@ -2330,13 +2422,26 @@ ${(0, import_v427.prettifyError)(parsed.error)}
2330
2422
  }
2331
2423
  var deserializeIndexingStatusResponse = deserializeEnsApiIndexingStatusResponse;
2332
2424
 
2425
+ // src/stack-info/serialize/ensindexer-stack-info.ts
2426
+ function serializeEnsIndexerStackInfo(stackInfo) {
2427
+ const {
2428
+ ensDb: serializedEnsDbPublicConfig,
2429
+ ensRainbow: serializedEnsRainbowPublicConfig,
2430
+ ensIndexer
2431
+ } = stackInfo;
2432
+ const serializedEnsIndexerPublicConfig = serializeEnsIndexerPublicConfig(ensIndexer);
2433
+ return {
2434
+ ensDb: serializedEnsDbPublicConfig,
2435
+ ensIndexer: serializedEnsIndexerPublicConfig,
2436
+ ensRainbow: serializedEnsRainbowPublicConfig
2437
+ };
2438
+ }
2439
+
2333
2440
  // src/stack-info/serialize/ensnode-stack-info.ts
2334
2441
  function serializeEnsNodeStackInfo(stackInfo) {
2335
2442
  return {
2336
- ensApi: serializeEnsApiPublicConfig(stackInfo.ensApi),
2337
- ensDb: stackInfo.ensDb,
2338
- ensIndexer: serializeEnsIndexerPublicConfig(stackInfo.ensIndexer),
2339
- ensRainbow: stackInfo.ensRainbow
2443
+ ...serializeEnsIndexerStackInfo(stackInfo),
2444
+ ensApi: serializeEnsApiPublicConfig(stackInfo.ensApi)
2340
2445
  };
2341
2446
  }
2342
2447
 
@@ -2356,11 +2461,11 @@ function serializeEnsApiIndexingStatusResponse(response) {
2356
2461
  var serializeIndexingStatusResponse = serializeEnsApiIndexingStatusResponse;
2357
2462
 
2358
2463
  // src/ensnode/api/name-tokens/deserialize.ts
2359
- var import_v432 = require("zod/v4");
2464
+ var import_v433 = require("zod/v4");
2360
2465
 
2361
2466
  // src/ensnode/api/name-tokens/zod-schemas.ts
2362
2467
  var import_enssdk5 = require("enssdk");
2363
- var import_v431 = require("zod/v4");
2468
+ var import_v432 = require("zod/v4");
2364
2469
 
2365
2470
  // src/tokenscope/name-token.ts
2366
2471
  var import_enssdk4 = require("enssdk");
@@ -2402,17 +2507,17 @@ var makeContractMatcher = (namespace, b) => (datasourceName, contractName) => {
2402
2507
  // src/tokenscope/assets.ts
2403
2508
  var import_enssdk3 = require("enssdk");
2404
2509
  var import_viem6 = require("viem");
2405
- var import_v429 = require("zod/v4");
2510
+ var import_v430 = require("zod/v4");
2406
2511
 
2407
2512
  // src/tokenscope/zod-schemas.ts
2408
2513
  var import_caip2 = require("caip");
2409
2514
  var import_enssdk2 = require("enssdk");
2410
2515
  var import_viem5 = require("viem");
2411
- var import_v428 = require("zod/v4");
2412
- var tokenIdSchemaSerializable = import_v428.z.string();
2413
- var tokenIdSchemaNative = import_v428.z.preprocess(
2516
+ var import_v429 = require("zod/v4");
2517
+ var tokenIdSchemaSerializable = import_v429.z.string();
2518
+ var tokenIdSchemaNative = import_v429.z.preprocess(
2414
2519
  (v) => typeof v === "string" ? BigInt(v) : v,
2415
- import_v428.z.bigint().positive()
2520
+ import_v429.z.bigint().positive()
2416
2521
  );
2417
2522
  function makeTokenIdSchema(_valueLabel = "Token ID Schema", serializable = false) {
2418
2523
  if (serializable) {
@@ -2422,13 +2527,13 @@ function makeTokenIdSchema(_valueLabel = "Token ID Schema", serializable = false
2422
2527
  }
2423
2528
  }
2424
2529
  var makeAssetIdSchema = (valueLabel = "Asset ID Schema", serializable) => {
2425
- return import_v428.z.object({
2426
- assetNamespace: import_v428.z.enum(import_enssdk2.AssetNamespaces),
2530
+ return import_v429.z.object({
2531
+ assetNamespace: import_v429.z.enum(import_enssdk2.AssetNamespaces),
2427
2532
  contract: makeAccountIdSchema(valueLabel),
2428
2533
  tokenId: makeTokenIdSchema(valueLabel, serializable ?? false)
2429
2534
  });
2430
2535
  };
2431
- var makeAssetIdStringSchema = (valueLabel = "Asset ID String Schema") => import_v428.z.preprocess((v) => {
2536
+ var makeAssetIdStringSchema = (valueLabel = "Asset ID String Schema") => import_v429.z.preprocess((v) => {
2432
2537
  if (typeof v === "string") {
2433
2538
  const result = new import_caip2.AssetId(v);
2434
2539
  return {
@@ -2452,20 +2557,20 @@ function invariant_nameTokenOwnershipHasNonZeroAddressOwner(ctx) {
2452
2557
  });
2453
2558
  }
2454
2559
  }
2455
- var makeNameTokenOwnershipNameWrapperSchema = (valueLabel = "Name Token Ownership NameWrapper") => import_v428.z.object({
2456
- ownershipType: import_v428.z.literal(NameTokenOwnershipTypes.NameWrapper),
2560
+ var makeNameTokenOwnershipNameWrapperSchema = (valueLabel = "Name Token Ownership NameWrapper") => import_v429.z.object({
2561
+ ownershipType: import_v429.z.literal(NameTokenOwnershipTypes.NameWrapper),
2457
2562
  owner: makeAccountIdSchema(`${valueLabel}.owner`)
2458
2563
  }).check(invariant_nameTokenOwnershipHasNonZeroAddressOwner);
2459
- var makeNameTokenOwnershipFullyOnchainSchema = (valueLabel = "Name Token Ownership Fully Onchain") => import_v428.z.object({
2460
- ownershipType: import_v428.z.literal(NameTokenOwnershipTypes.FullyOnchain),
2564
+ var makeNameTokenOwnershipFullyOnchainSchema = (valueLabel = "Name Token Ownership Fully Onchain") => import_v429.z.object({
2565
+ ownershipType: import_v429.z.literal(NameTokenOwnershipTypes.FullyOnchain),
2461
2566
  owner: makeAccountIdSchema(`${valueLabel}.owner`)
2462
2567
  }).check(invariant_nameTokenOwnershipHasNonZeroAddressOwner);
2463
- var makeNameTokenOwnershipBurnedSchema = (valueLabel = "Name Token Ownership Burned") => import_v428.z.object({
2464
- ownershipType: import_v428.z.literal(NameTokenOwnershipTypes.Burned),
2568
+ var makeNameTokenOwnershipBurnedSchema = (valueLabel = "Name Token Ownership Burned") => import_v429.z.object({
2569
+ ownershipType: import_v429.z.literal(NameTokenOwnershipTypes.Burned),
2465
2570
  owner: makeAccountIdSchema(`${valueLabel}.owner`)
2466
2571
  }).check(invariant_nameTokenOwnershipHasZeroAddressOwner);
2467
- var makeNameTokenOwnershipUnknownSchema = (valueLabel = "Name Token Ownership Unknown") => import_v428.z.object({
2468
- ownershipType: import_v428.z.literal(NameTokenOwnershipTypes.Unknown),
2572
+ var makeNameTokenOwnershipUnknownSchema = (valueLabel = "Name Token Ownership Unknown") => import_v429.z.object({
2573
+ ownershipType: import_v429.z.literal(NameTokenOwnershipTypes.Unknown),
2469
2574
  owner: makeAccountIdSchema(`${valueLabel}.owner`)
2470
2575
  }).check(invariant_nameTokenOwnershipHasNonZeroAddressOwner);
2471
2576
  function invariant_nameTokenOwnershipHasZeroAddressOwner(ctx) {
@@ -2478,16 +2583,16 @@ function invariant_nameTokenOwnershipHasZeroAddressOwner(ctx) {
2478
2583
  });
2479
2584
  }
2480
2585
  }
2481
- var makeNameTokenOwnershipSchema = (valueLabel = "Name Token Ownership") => import_v428.z.discriminatedUnion("ownershipType", [
2586
+ var makeNameTokenOwnershipSchema = (valueLabel = "Name Token Ownership") => import_v429.z.discriminatedUnion("ownershipType", [
2482
2587
  makeNameTokenOwnershipNameWrapperSchema(valueLabel),
2483
2588
  makeNameTokenOwnershipFullyOnchainSchema(valueLabel),
2484
2589
  makeNameTokenOwnershipBurnedSchema(valueLabel),
2485
2590
  makeNameTokenOwnershipUnknownSchema(valueLabel)
2486
2591
  ]);
2487
- var makeNameTokenSchema = (valueLabel = "Name Token Schema", serializable) => import_v428.z.object({
2592
+ var makeNameTokenSchema = (valueLabel = "Name Token Schema", serializable) => import_v429.z.object({
2488
2593
  token: makeAssetIdSchema(`${valueLabel}.token`, serializable),
2489
2594
  ownership: makeNameTokenOwnershipSchema(`${valueLabel}.ownership`),
2490
- mintStatus: import_v428.z.enum(NFTMintStatuses)
2595
+ mintStatus: import_v429.z.enum(NFTMintStatuses)
2491
2596
  });
2492
2597
 
2493
2598
  // src/tokenscope/assets.ts
@@ -2503,7 +2608,7 @@ function deserializeAssetId(maybeAssetId, valueLabel) {
2503
2608
  const parsed = schema.safeParse(maybeAssetId);
2504
2609
  if (parsed.error) {
2505
2610
  throw new RangeError(`Cannot deserialize AssetId:
2506
- ${(0, import_v429.prettifyError)(parsed.error)}
2611
+ ${(0, import_v430.prettifyError)(parsed.error)}
2507
2612
  `);
2508
2613
  }
2509
2614
  return parsed.data;
@@ -2513,7 +2618,7 @@ function parseAssetId(maybeAssetId, valueLabel) {
2513
2618
  const parsed = schema.safeParse(maybeAssetId);
2514
2619
  if (parsed.error) {
2515
2620
  throw new RangeError(`Cannot parse AssetId:
2516
- ${(0, import_v429.prettifyError)(parsed.error)}
2621
+ ${(0, import_v430.prettifyError)(parsed.error)}
2517
2622
  `);
2518
2623
  }
2519
2624
  return parsed.data;
@@ -2814,10 +2919,10 @@ function getNameTokenOwnership(namespaceId, name, owner) {
2814
2919
  }
2815
2920
 
2816
2921
  // src/ensnode/api/shared/errors/zod-schemas.ts
2817
- var import_v430 = require("zod/v4");
2818
- var makeErrorResponseSchema = () => import_v430.z.object({
2819
- message: import_v430.z.string(),
2820
- details: import_v430.z.optional(import_v430.z.unknown())
2922
+ var import_v431 = require("zod/v4");
2923
+ var makeErrorResponseSchema = () => import_v431.z.object({
2924
+ message: import_v431.z.string(),
2925
+ details: import_v431.z.optional(import_v431.z.unknown())
2821
2926
  });
2822
2927
 
2823
2928
  // src/ensnode/api/name-tokens/response.ts
@@ -2856,10 +2961,10 @@ var NameTokensResponseErrorCodes = {
2856
2961
  };
2857
2962
 
2858
2963
  // src/ensnode/api/name-tokens/zod-schemas.ts
2859
- var makeRegisteredNameTokenSchema = (valueLabel = "Registered Name Token", serializable) => import_v431.z.object({
2964
+ var makeRegisteredNameTokenSchema = (valueLabel = "Registered Name Token", serializable) => import_v432.z.object({
2860
2965
  domainId: makeNodeSchema(`${valueLabel}.domainId`),
2861
2966
  name: makeReinterpretedNameSchema(valueLabel),
2862
- tokens: import_v431.z.array(makeNameTokenSchema(`${valueLabel}.tokens`, serializable)).nonempty(),
2967
+ tokens: import_v432.z.array(makeNameTokenSchema(`${valueLabel}.tokens`, serializable)).nonempty(),
2863
2968
  expiresAt: makeUnixTimestampSchema(`${valueLabel}.expiresAt`),
2864
2969
  accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
2865
2970
  }).check(function invariant_nameIsAssociatedWithDomainId(ctx) {
@@ -2901,32 +3006,32 @@ var makeRegisteredNameTokenSchema = (valueLabel = "Registered Name Token", seria
2901
3006
  });
2902
3007
  }
2903
3008
  });
2904
- var makeNameTokensResponseOkSchema = (valueLabel = "Name Tokens Response OK", serializable) => import_v431.z.strictObject({
2905
- responseCode: import_v431.z.literal(NameTokensResponseCodes.Ok),
3009
+ var makeNameTokensResponseOkSchema = (valueLabel = "Name Tokens Response OK", serializable) => import_v432.z.strictObject({
3010
+ responseCode: import_v432.z.literal(NameTokensResponseCodes.Ok),
2906
3011
  registeredNameTokens: makeRegisteredNameTokenSchema(`${valueLabel}.nameTokens`, serializable)
2907
3012
  });
2908
- var makeNameTokensResponseErrorNameTokensNotIndexedSchema = (_valueLabel = "Name Tokens Response Error Name Not Indexed") => import_v431.z.strictObject({
2909
- responseCode: import_v431.z.literal(NameTokensResponseCodes.Error),
2910
- errorCode: import_v431.z.literal(NameTokensResponseErrorCodes.NameTokensNotIndexed),
3013
+ var makeNameTokensResponseErrorNameTokensNotIndexedSchema = (_valueLabel = "Name Tokens Response Error Name Not Indexed") => import_v432.z.strictObject({
3014
+ responseCode: import_v432.z.literal(NameTokensResponseCodes.Error),
3015
+ errorCode: import_v432.z.literal(NameTokensResponseErrorCodes.NameTokensNotIndexed),
2911
3016
  error: makeErrorResponseSchema()
2912
3017
  });
2913
- var makeNameTokensResponseErrorEnsIndexerConfigUnsupported = (_valueLabel = "Name Tokens Response Error ENSIndexer Config Unsupported") => import_v431.z.strictObject({
2914
- responseCode: import_v431.z.literal(NameTokensResponseCodes.Error),
2915
- errorCode: import_v431.z.literal(NameTokensResponseErrorCodes.EnsIndexerConfigUnsupported),
3018
+ var makeNameTokensResponseErrorEnsIndexerConfigUnsupported = (_valueLabel = "Name Tokens Response Error ENSIndexer Config Unsupported") => import_v432.z.strictObject({
3019
+ responseCode: import_v432.z.literal(NameTokensResponseCodes.Error),
3020
+ errorCode: import_v432.z.literal(NameTokensResponseErrorCodes.EnsIndexerConfigUnsupported),
2916
3021
  error: makeErrorResponseSchema()
2917
3022
  });
2918
- var makeNameTokensResponseErrorNameIndexingStatusUnsupported = (_valueLabel = "Name Tokens Response Error Indexing Status Unsupported") => import_v431.z.strictObject({
2919
- responseCode: import_v431.z.literal(NameTokensResponseCodes.Error),
2920
- errorCode: import_v431.z.literal(NameTokensResponseErrorCodes.IndexingStatusUnsupported),
3023
+ var makeNameTokensResponseErrorNameIndexingStatusUnsupported = (_valueLabel = "Name Tokens Response Error Indexing Status Unsupported") => import_v432.z.strictObject({
3024
+ responseCode: import_v432.z.literal(NameTokensResponseCodes.Error),
3025
+ errorCode: import_v432.z.literal(NameTokensResponseErrorCodes.IndexingStatusUnsupported),
2921
3026
  error: makeErrorResponseSchema()
2922
3027
  });
2923
- var makeNameTokensResponseErrorSchema = (valueLabel = "Name Tokens Response Error") => import_v431.z.discriminatedUnion("errorCode", [
3028
+ var makeNameTokensResponseErrorSchema = (valueLabel = "Name Tokens Response Error") => import_v432.z.discriminatedUnion("errorCode", [
2924
3029
  makeNameTokensResponseErrorNameTokensNotIndexedSchema(valueLabel),
2925
3030
  makeNameTokensResponseErrorEnsIndexerConfigUnsupported(valueLabel),
2926
3031
  makeNameTokensResponseErrorNameIndexingStatusUnsupported(valueLabel)
2927
3032
  ]);
2928
3033
  var makeNameTokensResponseSchema = (valueLabel = "Name Tokens Response", serializable) => {
2929
- return import_v431.z.discriminatedUnion("responseCode", [
3034
+ return import_v432.z.discriminatedUnion("responseCode", [
2930
3035
  makeNameTokensResponseOkSchema(valueLabel, serializable ?? false),
2931
3036
  makeNameTokensResponseErrorSchema(valueLabel)
2932
3037
  ]);
@@ -2939,7 +3044,7 @@ function deserializedNameTokensResponse(maybeResponse) {
2939
3044
  );
2940
3045
  if (parsed.error) {
2941
3046
  throw new Error(`Cannot deserialize NameTokensResponse:
2942
- ${(0, import_v432.prettifyError)(parsed.error)}
3047
+ ${(0, import_v433.prettifyError)(parsed.error)}
2943
3048
  `);
2944
3049
  }
2945
3050
  return parsed.data;
@@ -3013,14 +3118,14 @@ function serializeNameTokensResponse(response) {
3013
3118
  }
3014
3119
 
3015
3120
  // src/ensnode/api/registrar-actions/deserialize.ts
3016
- var import_v436 = require("zod/v4");
3121
+ var import_v437 = require("zod/v4");
3017
3122
 
3018
3123
  // src/ensnode/api/registrar-actions/zod-schemas.ts
3019
3124
  var import_enssdk7 = require("enssdk");
3020
- var import_v435 = require("zod/v4");
3125
+ var import_v436 = require("zod/v4");
3021
3126
 
3022
3127
  // src/registrars/zod-schemas.ts
3023
- var import_v433 = require("zod/v4");
3128
+ var import_v434 = require("zod/v4");
3024
3129
 
3025
3130
  // src/registrars/encoded-referrer.ts
3026
3131
  var import_enssdk6 = require("enssdk");
@@ -3094,11 +3199,11 @@ function serializeRegistrarAction(registrarAction) {
3094
3199
  }
3095
3200
 
3096
3201
  // src/registrars/zod-schemas.ts
3097
- var makeSubregistrySchema = (valueLabel = "Subregistry") => import_v433.z.object({
3202
+ var makeSubregistrySchema = (valueLabel = "Subregistry") => import_v434.z.object({
3098
3203
  subregistryId: makeAccountIdSchema(`${valueLabel} Subregistry ID`),
3099
3204
  node: makeNodeSchema(`${valueLabel} Node`)
3100
3205
  });
3101
- var makeRegistrationLifecycleSchema = (valueLabel = "Registration Lifecycle") => import_v433.z.object({
3206
+ var makeRegistrationLifecycleSchema = (valueLabel = "Registration Lifecycle") => import_v434.z.object({
3102
3207
  subregistry: makeSubregistrySchema(`${valueLabel} Subregistry`),
3103
3208
  node: makeNodeSchema(`${valueLabel} Node`),
3104
3209
  expiresAt: makeUnixTimestampSchema(`${valueLabel} Expires at`)
@@ -3114,18 +3219,18 @@ function invariant_registrarActionPricingTotalIsSumOfBaseCostAndPremium(ctx) {
3114
3219
  });
3115
3220
  }
3116
3221
  }
3117
- var makeRegistrarActionPricingSchema = (valueLabel = "Registrar Action Pricing") => import_v433.z.union([
3222
+ var makeRegistrarActionPricingSchema = (valueLabel = "Registrar Action Pricing") => import_v434.z.union([
3118
3223
  // pricing available
3119
- import_v433.z.object({
3224
+ import_v434.z.object({
3120
3225
  baseCost: makePriceEthSchema(`${valueLabel} Base Cost`),
3121
3226
  premium: makePriceEthSchema(`${valueLabel} Premium`),
3122
3227
  total: makePriceEthSchema(`${valueLabel} Total`)
3123
3228
  }).check(invariant_registrarActionPricingTotalIsSumOfBaseCostAndPremium).transform((v) => v),
3124
3229
  // pricing unknown
3125
- import_v433.z.object({
3126
- baseCost: import_v433.z.null(),
3127
- premium: import_v433.z.null(),
3128
- total: import_v433.z.null()
3230
+ import_v434.z.object({
3231
+ baseCost: import_v434.z.null(),
3232
+ premium: import_v434.z.null(),
3233
+ total: import_v434.z.null()
3129
3234
  }).transform((v) => v)
3130
3235
  ]);
3131
3236
  function invariant_registrarActionDecodedReferrerBasedOnRawReferrer(ctx) {
@@ -3148,9 +3253,9 @@ function invariant_registrarActionDecodedReferrerBasedOnRawReferrer(ctx) {
3148
3253
  });
3149
3254
  }
3150
3255
  }
3151
- var makeRegistrarActionReferralSchema = (valueLabel = "Registrar Action Referral") => import_v433.z.union([
3256
+ var makeRegistrarActionReferralSchema = (valueLabel = "Registrar Action Referral") => import_v434.z.union([
3152
3257
  // referral available
3153
- import_v433.z.object({
3258
+ import_v434.z.object({
3154
3259
  encodedReferrer: makeHexStringSchema(
3155
3260
  { bytesCount: ENCODED_REFERRER_BYTE_LENGTH },
3156
3261
  `${valueLabel} Encoded Referrer`
@@ -3158,9 +3263,9 @@ var makeRegistrarActionReferralSchema = (valueLabel = "Registrar Action Referral
3158
3263
  decodedReferrer: makeNormalizedAddressSchema(`${valueLabel} Decoded Referrer`)
3159
3264
  }).check(invariant_registrarActionDecodedReferrerBasedOnRawReferrer),
3160
3265
  // referral not applicable
3161
- import_v433.z.object({
3162
- encodedReferrer: import_v433.z.null(),
3163
- decodedReferrer: import_v433.z.null()
3266
+ import_v434.z.object({
3267
+ encodedReferrer: import_v434.z.null(),
3268
+ decodedReferrer: import_v434.z.null()
3164
3269
  })
3165
3270
  ]);
3166
3271
  function invariant_eventIdsInitialElementIsTheActionId(ctx) {
@@ -3173,9 +3278,9 @@ function invariant_eventIdsInitialElementIsTheActionId(ctx) {
3173
3278
  });
3174
3279
  }
3175
3280
  }
3176
- var EventIdSchema = import_v433.z.string().nonempty();
3177
- var EventIdsSchema = import_v433.z.array(EventIdSchema).min(1).transform((v) => v);
3178
- var makeBaseRegistrarActionSchemaWithoutCheck = (valueLabel = "Base Registrar Action") => import_v433.z.object({
3281
+ var EventIdSchema = import_v434.z.string().nonempty();
3282
+ var EventIdsSchema = import_v434.z.array(EventIdSchema).min(1).transform((v) => v);
3283
+ var makeBaseRegistrarActionSchemaWithoutCheck = (valueLabel = "Base Registrar Action") => import_v434.z.object({
3179
3284
  id: EventIdSchema,
3180
3285
  incrementalDuration: makeDurationSchema(`${valueLabel} Incremental Duration`),
3181
3286
  registrant: makeNormalizedAddressSchema(`${valueLabel} Registrant`),
@@ -3190,36 +3295,36 @@ var makeBaseRegistrarActionSchema = (valueLabel = "Base Registrar Action") => ma
3190
3295
  invariant_eventIdsInitialElementIsTheActionId
3191
3296
  );
3192
3297
  var makeRegistrarActionRegistrationSchema = (valueLabel = "Registration ") => makeBaseRegistrarActionSchema(valueLabel).extend({
3193
- type: import_v433.z.literal(RegistrarActionTypes.Registration)
3298
+ type: import_v434.z.literal(RegistrarActionTypes.Registration)
3194
3299
  });
3195
3300
  var makeRegistrarActionRenewalSchema = (valueLabel = "Renewal") => makeBaseRegistrarActionSchema(valueLabel).extend({
3196
- type: import_v433.z.literal(RegistrarActionTypes.Renewal)
3301
+ type: import_v434.z.literal(RegistrarActionTypes.Renewal)
3197
3302
  });
3198
- var makeRegistrarActionSchema = (valueLabel = "Registrar Action") => import_v433.z.discriminatedUnion("type", [
3303
+ var makeRegistrarActionSchema = (valueLabel = "Registrar Action") => import_v434.z.discriminatedUnion("type", [
3199
3304
  makeRegistrarActionRegistrationSchema(`${valueLabel} Registration`),
3200
3305
  makeRegistrarActionRenewalSchema(`${valueLabel} Renewal`)
3201
3306
  ]);
3202
3307
 
3203
3308
  // src/ensnode/api/shared/pagination/zod-schemas.ts
3204
- var import_v434 = require("zod/v4");
3309
+ var import_v435 = require("zod/v4");
3205
3310
 
3206
3311
  // src/ensnode/api/shared/pagination/request.ts
3207
3312
  var RECORDS_PER_PAGE_DEFAULT = 10;
3208
3313
  var RECORDS_PER_PAGE_MAX = 100;
3209
3314
 
3210
3315
  // src/ensnode/api/shared/pagination/zod-schemas.ts
3211
- var makeRequestPageParamsSchema = (valueLabel = "RequestPageParams") => import_v434.z.object({
3316
+ var makeRequestPageParamsSchema = (valueLabel = "RequestPageParams") => import_v435.z.object({
3212
3317
  page: makePositiveIntegerSchema(`${valueLabel}.page`),
3213
3318
  recordsPerPage: makePositiveIntegerSchema(`${valueLabel}.recordsPerPage`).max(
3214
3319
  RECORDS_PER_PAGE_MAX,
3215
3320
  `${valueLabel}.recordsPerPage must not exceed ${RECORDS_PER_PAGE_MAX}`
3216
3321
  )
3217
3322
  });
3218
- var makeResponsePageContextSchemaWithNoRecords = (valueLabel = "ResponsePageContextWithNoRecords") => import_v434.z.object({
3219
- totalRecords: import_v434.z.literal(0),
3220
- totalPages: import_v434.z.literal(1),
3221
- hasNext: import_v434.z.literal(false),
3222
- hasPrev: import_v434.z.literal(false)
3323
+ var makeResponsePageContextSchemaWithNoRecords = (valueLabel = "ResponsePageContextWithNoRecords") => import_v435.z.object({
3324
+ totalRecords: import_v435.z.literal(0),
3325
+ totalPages: import_v435.z.literal(1),
3326
+ hasNext: import_v435.z.literal(false),
3327
+ hasPrev: import_v435.z.literal(false)
3223
3328
  }).extend(makeRequestPageParamsSchema(valueLabel).shape);
3224
3329
  function invariant_responsePageWithRecordsIsCorrect(ctx) {
3225
3330
  const { hasNext, hasPrev, recordsPerPage, page, totalRecords, startIndex, endIndex } = ctx.value;
@@ -3254,15 +3359,15 @@ function invariant_responsePageWithRecordsIsCorrect(ctx) {
3254
3359
  });
3255
3360
  }
3256
3361
  }
3257
- var makeResponsePageContextSchemaWithRecords = (valueLabel = "ResponsePageContextWithRecords") => import_v434.z.object({
3362
+ var makeResponsePageContextSchemaWithRecords = (valueLabel = "ResponsePageContextWithRecords") => import_v435.z.object({
3258
3363
  totalRecords: makePositiveIntegerSchema(`${valueLabel}.totalRecords`),
3259
3364
  totalPages: makePositiveIntegerSchema(`${valueLabel}.totalPages`),
3260
- hasNext: import_v434.z.boolean(),
3261
- hasPrev: import_v434.z.boolean(),
3365
+ hasNext: import_v435.z.boolean(),
3366
+ hasPrev: import_v435.z.boolean(),
3262
3367
  startIndex: makeNonNegativeIntegerSchema(`${valueLabel}.startIndex`),
3263
3368
  endIndex: makeNonNegativeIntegerSchema(`${valueLabel}.endIndex`)
3264
3369
  }).extend(makeRequestPageParamsSchema(valueLabel).shape).check(invariant_responsePageWithRecordsIsCorrect);
3265
- var makeResponsePageContextSchema = (valueLabel = "ResponsePageContext") => import_v434.z.union([
3370
+ var makeResponsePageContextSchema = (valueLabel = "ResponsePageContext") => import_v435.z.union([
3266
3371
  makeResponsePageContextSchemaWithNoRecords(valueLabel),
3267
3372
  makeResponsePageContextSchemaWithRecords(valueLabel)
3268
3373
  ]);
@@ -3292,21 +3397,21 @@ function invariant_registrationLifecycleNodeMatchesName(ctx) {
3292
3397
  });
3293
3398
  }
3294
3399
  }
3295
- var makeNamedRegistrarActionSchema = (valueLabel = "Named Registrar Action") => import_v435.z.object({
3400
+ var makeNamedRegistrarActionSchema = (valueLabel = "Named Registrar Action") => import_v436.z.object({
3296
3401
  action: makeRegistrarActionSchema(valueLabel),
3297
3402
  name: makeReinterpretedNameSchema(valueLabel)
3298
3403
  }).check(invariant_registrationLifecycleNodeMatchesName);
3299
- var makeRegistrarActionsResponseOkSchema = (valueLabel = "Registrar Actions Response OK") => import_v435.z.object({
3300
- responseCode: import_v435.z.literal(RegistrarActionsResponseCodes.Ok),
3301
- registrarActions: import_v435.z.array(makeNamedRegistrarActionSchema(valueLabel)),
3404
+ var makeRegistrarActionsResponseOkSchema = (valueLabel = "Registrar Actions Response OK") => import_v436.z.object({
3405
+ responseCode: import_v436.z.literal(RegistrarActionsResponseCodes.Ok),
3406
+ registrarActions: import_v436.z.array(makeNamedRegistrarActionSchema(valueLabel)),
3302
3407
  pageContext: makeResponsePageContextSchema(`${valueLabel}.pageContext`),
3303
3408
  accurateAsOf: makeUnixTimestampSchema(`${valueLabel}.accurateAsOf`)
3304
3409
  });
3305
- var makeRegistrarActionsResponseErrorSchema = (_valueLabel = "Registrar Actions Response Error") => import_v435.z.strictObject({
3306
- responseCode: import_v435.z.literal(RegistrarActionsResponseCodes.Error),
3410
+ var makeRegistrarActionsResponseErrorSchema = (_valueLabel = "Registrar Actions Response Error") => import_v436.z.strictObject({
3411
+ responseCode: import_v436.z.literal(RegistrarActionsResponseCodes.Error),
3307
3412
  error: makeErrorResponseSchema()
3308
3413
  });
3309
- var makeRegistrarActionsResponseSchema = (valueLabel = "Registrar Actions Response") => import_v435.z.discriminatedUnion("responseCode", [
3414
+ var makeRegistrarActionsResponseSchema = (valueLabel = "Registrar Actions Response") => import_v436.z.discriminatedUnion("responseCode", [
3310
3415
  makeRegistrarActionsResponseOkSchema(valueLabel),
3311
3416
  makeRegistrarActionsResponseErrorSchema(valueLabel)
3312
3417
  ]);
@@ -3317,7 +3422,7 @@ function deserializeRegistrarActionsResponse(maybeResponse) {
3317
3422
  if (parsed.error) {
3318
3423
  throw new Error(
3319
3424
  `Cannot deserialize RegistrarActionsResponse:
3320
- ${(0, import_v436.prettifyError)(parsed.error)}
3425
+ ${(0, import_v437.prettifyError)(parsed.error)}
3321
3426
  `
3322
3427
  );
3323
3428
  }
@@ -3454,12 +3559,12 @@ function serializeRegistrarActionsResponse(response) {
3454
3559
  }
3455
3560
 
3456
3561
  // src/ensnode/api/shared/errors/deserialize.ts
3457
- var import_v437 = require("zod/v4");
3562
+ var import_v438 = require("zod/v4");
3458
3563
  function deserializeErrorResponse2(maybeErrorResponse) {
3459
3564
  const parsed = makeErrorResponseSchema().safeParse(maybeErrorResponse);
3460
3565
  if (parsed.error) {
3461
3566
  throw new Error(`Cannot deserialize ErrorResponse:
3462
- ${(0, import_v437.prettifyError)(parsed.error)}
3567
+ ${(0, import_v438.prettifyError)(parsed.error)}
3463
3568
  `);
3464
3569
  }
3465
3570
  return parsed.data;
@@ -4026,14 +4131,14 @@ function isResolvedIdentity(identity) {
4026
4131
  }
4027
4132
 
4028
4133
  // src/indexing-status/deserialize/chain-indexing-status-snapshot.ts
4029
- var import_v438 = require("zod/v4");
4134
+ var import_v439 = require("zod/v4");
4030
4135
  function deserializeChainIndexingStatusSnapshot(maybeSnapshot, valueLabel) {
4031
4136
  const schema = makeChainIndexingStatusSnapshotSchema(valueLabel);
4032
4137
  const parsed = schema.safeParse(maybeSnapshot);
4033
4138
  if (parsed.error) {
4034
4139
  throw new Error(
4035
4140
  `Cannot deserialize into ChainIndexingStatusSnapshot:
4036
- ${(0, import_v438.prettifyError)(parsed.error)}
4141
+ ${(0, import_v439.prettifyError)(parsed.error)}
4037
4142
  `
4038
4143
  );
4039
4144
  }
@@ -4051,26 +4156,26 @@ function createRealtimeIndexingStatusProjection(snapshot, now) {
4051
4156
  }
4052
4157
 
4053
4158
  // src/indexing-status/validate/chain-indexing-status-snapshot.ts
4054
- var import_v439 = require("zod/v4");
4159
+ var import_v440 = require("zod/v4");
4055
4160
  function validateChainIndexingStatusSnapshot(unvalidatedSnapshot, valueLabel) {
4056
4161
  const schema = makeChainIndexingStatusSnapshotSchema(valueLabel);
4057
4162
  const parsed = schema.safeParse(unvalidatedSnapshot);
4058
4163
  if (parsed.error) {
4059
4164
  throw new Error(`Invalid ChainIndexingStatusSnapshot:
4060
- ${(0, import_v439.prettifyError)(parsed.error)}
4165
+ ${(0, import_v440.prettifyError)(parsed.error)}
4061
4166
  `);
4062
4167
  }
4063
4168
  return parsed.data;
4064
4169
  }
4065
4170
 
4066
4171
  // src/indexing-status/validate/realtime-indexing-status-projection.ts
4067
- var import_v440 = require("zod/v4");
4172
+ var import_v441 = require("zod/v4");
4068
4173
  function validateRealtimeIndexingStatusProjection(unvalidatedProjection, valueLabel) {
4069
4174
  const schema = makeRealtimeIndexingStatusProjectionSchema(valueLabel);
4070
4175
  const parsed = schema.safeParse(unvalidatedProjection);
4071
4176
  if (parsed.error) {
4072
4177
  throw new Error(`Invalid RealtimeIndexingStatusProjection:
4073
- ${(0, import_v440.prettifyError)(parsed.error)}
4178
+ ${(0, import_v441.prettifyError)(parsed.error)}
4074
4179
  `);
4075
4180
  }
4076
4181
  return parsed.data;
@@ -4253,13 +4358,13 @@ var import_getUnixTime2 = require("date-fns/getUnixTime");
4253
4358
  var import_getUnixTime = require("date-fns/getUnixTime");
4254
4359
 
4255
4360
  // src/shared/deserialize.ts
4256
- var import_v441 = __toESM(require("zod/v4"), 1);
4361
+ var import_v442 = __toESM(require("zod/v4"), 1);
4257
4362
  function deserializeChainId(maybeChainId, valueLabel) {
4258
4363
  const schema = makeChainIdStringSchema(valueLabel);
4259
4364
  const parsed = schema.safeParse(maybeChainId);
4260
4365
  if (parsed.error) {
4261
4366
  throw new Error(`Cannot deserialize ChainId:
4262
- ${(0, import_v441.prettifyError)(parsed.error)}
4367
+ ${(0, import_v442.prettifyError)(parsed.error)}
4263
4368
  `);
4264
4369
  }
4265
4370
  return parsed.data;
@@ -4269,7 +4374,7 @@ function deserializeDatetime(maybeDatetime, valueLabel) {
4269
4374
  const parsed = schema.safeParse(maybeDatetime);
4270
4375
  if (parsed.error) {
4271
4376
  throw new Error(`Cannot deserialize Datetime:
4272
- ${(0, import_v441.prettifyError)(parsed.error)}
4377
+ ${(0, import_v442.prettifyError)(parsed.error)}
4273
4378
  `);
4274
4379
  }
4275
4380
  return parsed.data;
@@ -4279,7 +4384,7 @@ function deserializeUnixTimestamp(maybeTimestamp, valueLabel) {
4279
4384
  const parsed = schema.safeParse(maybeTimestamp);
4280
4385
  if (parsed.error) {
4281
4386
  throw new Error(`Cannot deserialize Unix Timestamp:
4282
- ${(0, import_v441.prettifyError)(parsed.error)}
4387
+ ${(0, import_v442.prettifyError)(parsed.error)}
4283
4388
  `);
4284
4389
  }
4285
4390
  return parsed.data;
@@ -4289,7 +4394,7 @@ function deserializeUrl(maybeUrl, valueLabel) {
4289
4394
  const parsed = schema.safeParse(maybeUrl);
4290
4395
  if (parsed.error) {
4291
4396
  throw new Error(`Cannot deserialize URL:
4292
- ${(0, import_v441.prettifyError)(parsed.error)}
4397
+ ${(0, import_v442.prettifyError)(parsed.error)}
4293
4398
  `);
4294
4399
  }
4295
4400
  return parsed.data;
@@ -4299,7 +4404,7 @@ function deserializeBlockNumber(maybeBlockNumber, valueLabel) {
4299
4404
  const parsed = schema.safeParse(maybeBlockNumber);
4300
4405
  if (parsed.error) {
4301
4406
  throw new Error(`Cannot deserialize BlockNumber:
4302
- ${(0, import_v441.prettifyError)(parsed.error)}
4407
+ ${(0, import_v442.prettifyError)(parsed.error)}
4303
4408
  `);
4304
4409
  }
4305
4410
  return parsed.data;
@@ -4309,17 +4414,17 @@ function deserializeBlockRef(maybeBlockRef, valueLabel) {
4309
4414
  const parsed = schema.safeParse(maybeBlockRef);
4310
4415
  if (parsed.error) {
4311
4416
  throw new Error(`Cannot deserialize BlockRef:
4312
- ${(0, import_v441.prettifyError)(parsed.error)}
4417
+ ${(0, import_v442.prettifyError)(parsed.error)}
4313
4418
  `);
4314
4419
  }
4315
4420
  return parsed.data;
4316
4421
  }
4317
4422
  function deserializeDuration(maybeDuration, valueLabel) {
4318
- const schema = import_v441.default.coerce.number().pipe(makeDurationSchema(valueLabel));
4423
+ const schema = import_v442.default.coerce.number().pipe(makeDurationSchema(valueLabel));
4319
4424
  const parsed = schema.safeParse(maybeDuration);
4320
4425
  if (parsed.error) {
4321
4426
  throw new RangeError(`Cannot deserialize Duration:
4322
- ${(0, import_v441.prettifyError)(parsed.error)}
4427
+ ${(0, import_v442.prettifyError)(parsed.error)}
4323
4428
  `);
4324
4429
  }
4325
4430
  return parsed.data;
@@ -4329,7 +4434,7 @@ function parseAccountId(maybeAccountId, valueLabel) {
4329
4434
  const parsed = schema.safeParse(maybeAccountId);
4330
4435
  if (parsed.error) {
4331
4436
  throw new RangeError(`Cannot deserialize AccountId:
4332
- ${(0, import_v441.prettifyError)(parsed.error)}
4437
+ ${(0, import_v442.prettifyError)(parsed.error)}
4333
4438
  `);
4334
4439
  }
4335
4440
  return parsed.data;
@@ -4339,7 +4444,7 @@ function deserializePriceEth(maybePrice, valueLabel) {
4339
4444
  const parsed = schema.safeParse(maybePrice);
4340
4445
  if (parsed.error) {
4341
4446
  throw new Error(`Cannot deserialize PriceEth:
4342
- ${(0, import_v441.prettifyError)(parsed.error)}
4447
+ ${(0, import_v442.prettifyError)(parsed.error)}
4343
4448
  `);
4344
4449
  }
4345
4450
  return parsed.data;
@@ -4349,7 +4454,7 @@ function deserializePriceUsdc(maybePrice, valueLabel) {
4349
4454
  const parsed = schema.safeParse(maybePrice);
4350
4455
  if (parsed.error) {
4351
4456
  throw new Error(`Cannot deserialize PriceUsdc:
4352
- ${(0, import_v441.prettifyError)(parsed.error)}
4457
+ ${(0, import_v442.prettifyError)(parsed.error)}
4353
4458
  `);
4354
4459
  }
4355
4460
  return parsed.data;
@@ -4359,7 +4464,7 @@ function deserializePriceDai(maybePrice, valueLabel) {
4359
4464
  const parsed = schema.safeParse(maybePrice);
4360
4465
  if (parsed.error) {
4361
4466
  throw new Error(`Cannot deserialize PriceDai:
4362
- ${(0, import_v441.prettifyError)(parsed.error)}
4467
+ ${(0, import_v442.prettifyError)(parsed.error)}
4363
4468
  `);
4364
4469
  }
4365
4470
  return parsed.data;
@@ -4638,14 +4743,45 @@ function isWebSocketProtocol(url) {
4638
4743
  return ["ws:", "wss:"].includes(url.protocol);
4639
4744
  }
4640
4745
 
4641
- // src/stack-info/ensnode-stack-info.ts
4642
- function buildEnsNodeStackInfo(ensApiPublicConfig, ensDbPublicConfig) {
4643
- return {
4644
- ensApi: ensApiPublicConfig,
4746
+ // src/stack-info/validate/ensindexer-stack-info.ts
4747
+ var import_v443 = require("zod/v4");
4748
+ function validateEnsIndexerStackInfo(maybeStackInfo, valueLabel) {
4749
+ const parsed = makeEnsIndexerStackInfoSchema(valueLabel).safeParse(maybeStackInfo);
4750
+ if (parsed.error) {
4751
+ throw new Error(`Cannot validate EnsIndexerStackInfo:
4752
+ ${(0, import_v443.prettifyError)(parsed.error)}
4753
+ `);
4754
+ }
4755
+ return parsed.data;
4756
+ }
4757
+
4758
+ // src/stack-info/ensindexer-stack-info.ts
4759
+ function buildEnsIndexerStackInfo(ensDbPublicConfig, ensIndexerPublicConfig, ensRainbowPublicConfig) {
4760
+ return validateEnsIndexerStackInfo({
4645
4761
  ensDb: ensDbPublicConfig,
4646
- ensIndexer: ensApiPublicConfig.ensIndexerPublicConfig,
4647
- ensRainbow: ensApiPublicConfig.ensIndexerPublicConfig.ensRainbowPublicConfig
4648
- };
4762
+ ensIndexer: ensIndexerPublicConfig,
4763
+ ensRainbow: ensRainbowPublicConfig
4764
+ });
4765
+ }
4766
+
4767
+ // src/stack-info/validate/ensnode-stack-info.ts
4768
+ var import_v444 = require("zod/v4");
4769
+ function validateEnsNodeStackInfo(maybeStackInfo, valueLabel) {
4770
+ const parsed = makeEnsNodeStackInfoSchema(valueLabel).safeParse(maybeStackInfo);
4771
+ if (parsed.error) {
4772
+ throw new Error(`Cannot validate EnsNodeStackInfo:
4773
+ ${(0, import_v444.prettifyError)(parsed.error)}
4774
+ `);
4775
+ }
4776
+ return parsed.data;
4777
+ }
4778
+
4779
+ // src/stack-info/ensnode-stack-info.ts
4780
+ function buildEnsNodeStackInfo(ensApiPublicConfig, ensDbPublicConfig, ensIndexerPublicConfig, ensRainbowPublicConfig) {
4781
+ return validateEnsNodeStackInfo({
4782
+ ...buildEnsIndexerStackInfo(ensDbPublicConfig, ensIndexerPublicConfig, ensRainbowPublicConfig),
4783
+ ensApi: ensApiPublicConfig
4784
+ });
4649
4785
  }
4650
4786
 
4651
4787
  // src/subgraph-api/prerequisites.ts