@ensnode/ensnode-sdk 1.3.1 → 1.5.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,10 +1,10 @@
1
1
  import z$1, { z } from 'zod/v4';
2
2
  import { ENSNamespaceId, DatasourceName } from '@ensnode/datasources';
3
3
  export { ENSNamespaceId, ENSNamespaceIds, getENSRootChainId } from '@ensnode/datasources';
4
- import { Hex, Address, ByteArray, Hash } from 'viem';
4
+ import { Address, Hex, ByteArray, Hash } from 'viem';
5
5
  import { CoinType, EvmCoinType } from '@ensdomains/address-encoder';
6
6
  export { CoinType, EvmCoinType } from '@ensdomains/address-encoder';
7
- import { UnixTimestamp as UnixTimestamp$1, EncodedReferrer, ReferrerLeaderboardPageParams, ReferrerLeaderboardPage, ReferrerDetail } from '@namehash/ens-referrals';
7
+ import { UnixTimestamp as UnixTimestamp$1, EncodedReferrer, ReferrerLeaderboardPageParams, ReferrerLeaderboardPage, ReferrerDetail, AwardedReferrerMetrics, AggregatedReferrerMetrics, ReferrerDetailRanked, ReferrerDetailUnranked, UnrankedReferrerMetrics, ReferralProgramRules } from '@namehash/ens-referrals';
8
8
  export { EncodedReferrer, ZERO_ENCODED_REFERRER, decodeEncodedReferrer } from '@namehash/ens-referrals';
9
9
 
10
10
  /**
@@ -52,6 +52,138 @@ declare const evmChainIdToCoinType: (chainId: ChainId) => CoinType;
52
52
  */
53
53
  declare const bigintToCoinType: (value: bigint) => CoinType;
54
54
 
55
+ /**
56
+ * Serialized CAIP-10 Asset ID that uniquely identifies a Registry contract.
57
+ */
58
+ type RegistryId = string & {
59
+ __brand: "RegistryContractId";
60
+ };
61
+ /**
62
+ * A Domain's Canonical Id is uint256(labelHash) with lower (right-most) 32 bits zero'd.
63
+ */
64
+ type CanonicalId = bigint;
65
+ /**
66
+ * The node that uniquely identifies an ENSv1 name.
67
+ */
68
+ type ENSv1DomainId = Node & {
69
+ __brand: "ENSv1DomainId";
70
+ };
71
+ /**
72
+ * The Serialized CAIP-19 Asset ID that uniquely identifies an ENSv2 name.
73
+ */
74
+ type ENSv2DomainId = string & {
75
+ __brand: "ENSv2DomainId";
76
+ };
77
+ /**
78
+ * A DomainId is one of ENSv1DomainId or ENSv2DomainId.
79
+ */
80
+ type DomainId = ENSv1DomainId | ENSv2DomainId;
81
+ /**
82
+ * Uniquely identifies a Permissions entity.
83
+ */
84
+ type PermissionsId = AccountIdString & {
85
+ __brand: "PermissionsId";
86
+ };
87
+ /**
88
+ * Uniquely identifies a PermissionsResource entity.
89
+ */
90
+ type PermissionsResourceId = string & {
91
+ __brand: "PermissionsResourceId";
92
+ };
93
+ /**
94
+ * Uniquely identifies a PermissionsUser entity.
95
+ */
96
+ type PermissionsUserId = string & {
97
+ __brand: "PermissionsUserId";
98
+ };
99
+ /**
100
+ * Uniquely identifies a Resolver entity.
101
+ */
102
+ type ResolverId = AccountIdString & {
103
+ __brand: "ResolverId";
104
+ };
105
+ /**
106
+ * Uniquely identifies a ResolverRecords entity.
107
+ */
108
+ type ResolverRecordsId = string & {
109
+ __brand: "ResolverRecordsId";
110
+ };
111
+ /**
112
+ * Uniquely identifies a Registration entity.
113
+ */
114
+ type RegistrationId = string & {
115
+ __brand: "RegistrationId";
116
+ };
117
+ /**
118
+ * Uniquely identifies a Renewal entity.
119
+ */
120
+ type RenewalId = string & {
121
+ __brand: "RenewalId";
122
+ };
123
+
124
+ /**
125
+ * Formats and brands an AccountId as a RegistryId.
126
+ */
127
+ declare const makeRegistryId: (accountId: AccountId) => RegistryId;
128
+ /**
129
+ * Makes an ENSv1 Domain Id given the ENSv1 Domain's `node`
130
+ */
131
+ declare const makeENSv1DomainId: (node: Node) => ENSv1DomainId;
132
+ /**
133
+ * Makes an ENSv2 Domain Id given the parent `registry` and the domain's `canonicalId`.
134
+ */
135
+ declare const makeENSv2DomainId: (registry: AccountId, canonicalId: CanonicalId) => ENSv2DomainId;
136
+ /**
137
+ * Computes a Domain's {@link CanonicalId} given its tokenId or LabelHash as `input`.
138
+ */
139
+ declare const getCanonicalId: (input: bigint | LabelHash) => CanonicalId;
140
+ /**
141
+ * Formats and brands an AccountId as a PermissionsId.
142
+ */
143
+ declare const makePermissionsId: (contract: AccountId) => PermissionsId;
144
+ /**
145
+ * Constructs a PermissionsResourceId for a given `contract`'s `resource`.
146
+ */
147
+ declare const makePermissionsResourceId: (contract: AccountId, resource: bigint) => PermissionsResourceId;
148
+ /**
149
+ * Constructs a PermissionsUserId for a given `contract`'s `resource`'s `user`.
150
+ */
151
+ declare const makePermissionsUserId: (contract: AccountId, resource: bigint, user: Address) => PermissionsUserId;
152
+ /**
153
+ * Formats and brands an AccountId as a ResolverId.
154
+ */
155
+ declare const makeResolverId: (contract: AccountId) => ResolverId;
156
+ /**
157
+ * Constructs a ResolverRecordsId for a given `node` under `resolver`.
158
+ */
159
+ declare const makeResolverRecordsId: (resolver: AccountId, node: Node) => ResolverRecordsId;
160
+ /**
161
+ * Constructs a RegistrationId for a `domainId`'s latest Registration.
162
+ *
163
+ * @dev See apps/ensindexer/src/lib/ensv2/registration-db-helpers.ts for more info.
164
+ */
165
+ declare const makeLatestRegistrationId: (domainId: DomainId) => RegistrationId;
166
+ /**
167
+ * Constructs a RegistrationId for a `domainId`'s `index`'thd Registration.
168
+ *
169
+ * @dev See apps/ensindexer/src/lib/ensv2/registration-db-helpers.ts for more info.
170
+ */
171
+ declare const makeRegistrationId: (domainId: DomainId, index?: number) => RegistrationId;
172
+ /**
173
+ * Constructs a RenewalId for a `domainId`'s `registrationIndex`thd Registration's latest Renewal.
174
+ *
175
+ * @dev Forces usage of the 'pinned' RegistrationId to avoid collisions, see
176
+ * apps/ensindexer/src/lib/ensv2/registration-db-helpers.ts for more info.
177
+ */
178
+ declare const makeLatestRenewalId: (domainId: DomainId, registrationIndex: number) => RenewalId;
179
+ /**
180
+ * Constructs a RenewalId for a `domainId`'s `registrationIndex`thd Registration's `index`'thd Renewal.
181
+ *
182
+ * @dev Forces usage of the 'pinned' RegistrationId to avoid collisions, see
183
+ * apps/ensindexer/src/lib/ensv2/registration-db-helpers.ts for more info.
184
+ */
185
+ declare const makeRenewalId: (domainId: DomainId, registrationIndex: number, index?: number) => RenewalId;
186
+
55
187
  /**
56
188
  * A hash value that uniquely identifies a single ENS name.
57
189
  * Result of `namehash` function as specified in ENSIP-1.
@@ -93,8 +225,25 @@ type NormalizedName = Name & {
93
225
  *
94
226
  * @see https://docs.ens.domains/terminology#labelhash
95
227
  * @see https://ensnode.io/docs/reference/terminology#labels-labelhashes-labelhash-function
228
+ * @see https://ensnode.io/ensrainbow/concepts/glossary#labelhash
96
229
  */
97
230
  type LabelHash = Hex;
231
+ /**
232
+ * A LabelHashPath is an ordered list of LabelHashes that uniquely identify an ENS Name.
233
+ * It is ordered in namegraph TRAVERSAL order (i.e. the opposite order of an ENS Name's labels).
234
+ *
235
+ * ex: example.eth's LabelHashPath is
236
+ * [
237
+ * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0', // 'eth'
238
+ * '0x6fd43e7cffc31bb581d7421c8698e29aa2bd8e7186a394b85299908b4eb9b175', // 'example'
239
+ * ]
240
+ */
241
+ type LabelHashPath = LabelHash[];
242
+ /**
243
+ * CanonicalPath is an ordered list of DomainIds describing the canonical path to a Domain.
244
+ * It is ordered in namegraph TRAVERSAL order (i.e. the opposite order of an ENS Name's labels).
245
+ */
246
+ type CanonicalPath = DomainId[];
98
247
  /**
99
248
  * A Label is a single part of an ENS Name.
100
249
  *
@@ -303,6 +452,16 @@ declare const ETH_NODE: Node;
303
452
  declare const BASENAMES_NODE: Node;
304
453
  declare const LINEANAMES_NODE: Node;
305
454
  declare const ADDR_REVERSE_NODE: Node;
455
+ /**
456
+ * NODE_ANY is a placeholder Node used in the context of DedicatedResolvers — IResolver events are
457
+ * emitted with NODE_ANY as the `node` for which the records are issued, but the DedicatedResolver
458
+ * returns those records regardless of the name used for record resolution.
459
+ */
460
+ declare const NODE_ANY: Node;
461
+ /**
462
+ * ROOT_RESOURCE represents the 'root' resource in an EnhancedAccessControl contract.
463
+ */
464
+ declare const ROOT_RESOURCE = 0n;
306
465
 
307
466
  /**
308
467
  * Decodes a DNS-Encoded name consisting of Literal Labels into an ordered list of Literal Labels.
@@ -347,6 +506,11 @@ declare const encodeLabelHash: (labelHash: LabelHash) => EncodedLabelHash;
347
506
  */
348
507
  declare function isEncodedLabelHash(maybeEncodedLabelHash: string): maybeEncodedLabelHash is EncodedLabelHash;
349
508
 
509
+ /**
510
+ * Determines whether `fuses` has set ('burnt') the PARENT_CANNOT_CONTROL fuse.
511
+ */
512
+ declare const isPccFuseSet: (fuses: number) => boolean;
513
+
350
514
  /**
351
515
  * Determines whether the Name is normalized.
352
516
  *
@@ -473,6 +637,8 @@ declare const uint256ToHex32: (num: bigint) => Hex;
473
637
  *
474
638
  * Represents a unique identifier for a chain.
475
639
  * Guaranteed to be a positive integer.
640
+ *
641
+ * Chain id standards are organized by the Ethereum Community @ https://github.com/ethereum-lists/chains
476
642
  **/
477
643
  type ChainId = number;
478
644
  /**
@@ -495,6 +661,30 @@ interface AccountId {
495
661
  chainId: ChainId;
496
662
  address: Address;
497
663
  }
664
+ /**
665
+ * An enum representing the possible CAIP-19 Asset Namespace values.
666
+ *
667
+ * @see https://chainagnostic.org/CAIPs/caip-19
668
+ */
669
+ declare const AssetNamespaces: {
670
+ readonly ERC721: "erc721";
671
+ readonly ERC1155: "erc1155";
672
+ };
673
+ type AssetNamespace = (typeof AssetNamespaces)[keyof typeof AssetNamespaces];
674
+ /**
675
+ * A uint256 value that identifies a specific NFT within a NFT contract.
676
+ */
677
+ type TokenId = bigint;
678
+ /**
679
+ * Represents an Asset in `assetNamespace` by `tokenId` in `contract`.
680
+ *
681
+ * @see https://chainagnostic.org/CAIPs/caip-19
682
+ */
683
+ interface AssetId {
684
+ assetNamespace: AssetNamespace;
685
+ contract: AccountId;
686
+ tokenId: TokenId;
687
+ }
498
688
  /**
499
689
  * Block Number
500
690
  *
@@ -585,6 +775,12 @@ type Duration = number;
585
775
  type DeepPartial<T> = {
586
776
  [P in keyof T]?: T[P] extends (infer U)[] ? DeepPartial<U>[] : T[P] extends object ? DeepPartial<T[P]> : T[P];
587
777
  };
778
+ /**
779
+ * Marks keys in K as required (not undefined) and not null.
780
+ */
781
+ type RequiredAndNotNull<T, K extends keyof T> = T & {
782
+ [P in K]-?: NonNullable<T[P]>;
783
+ };
588
784
 
589
785
  /**
590
786
  * Determines where the provided AccountId values represent the same address on the same chain.
@@ -861,20 +1057,18 @@ declare function addPrices<const PriceType extends Price = Price>(...prices: [Pr
861
1057
  * This is useful when you want to retrieve the AccountId for a contract by its name
862
1058
  * where it may or may not actually be defined for the given namespace and datasource.
863
1059
  *
864
- * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'holesky',
865
- * 'ens-test-env')
1060
+ * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'ens-test-env')
866
1061
  * @param datasourceName - The name of the Datasource to search for contractName in
867
1062
  * @param contractName - The name of the contract to retrieve
868
1063
  * @returns The AccountId of the contract with the given namespace, datasource,
869
1064
  * and contract name, or undefined if it is not found or is not a single AccountId
870
1065
  */
871
- declare const maybeGetDatasourceContract: (namespaceId: ENSNamespaceId, datasourceName: DatasourceName, contractName: string) => AccountId | undefined;
1066
+ declare const maybeGetDatasourceContract: <N extends ENSNamespaceId, D extends DatasourceName, C extends string>(namespaceId: N, datasourceName: D, contractName: C) => AccountId | undefined;
872
1067
  /**
873
1068
  * Gets the AccountId for the contract in the specified namespace, datasource, and
874
1069
  * contract name, or throws an error if it is not defined or is not a single AccountId.
875
1070
  *
876
- * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'holesky',
877
- * 'ens-test-env')
1071
+ * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'ens-test-env')
878
1072
  * @param datasourceName - The name of the Datasource to search for contractName in
879
1073
  * @param contractName - The name of the contract to retrieve
880
1074
  * @returns The AccountId of the contract with the given namespace, datasource,
@@ -882,6 +1076,10 @@ declare const maybeGetDatasourceContract: (namespaceId: ENSNamespaceId, datasour
882
1076
  * @throws Error if the contract is not found or is not a single AccountId
883
1077
  */
884
1078
  declare const getDatasourceContract: (namespaceId: ENSNamespaceId, datasourceName: DatasourceName, contractName: string) => AccountId;
1079
+ /**
1080
+ * Makes a comparator fn for `b` against the contract described by `namespace`, `datasourceName`, and `contractName`.
1081
+ */
1082
+ declare const makeContractMatcher: (namespace: ENSNamespaceId, b: AccountId) => (datasourceName: DatasourceName, contractName: string) => boolean | undefined;
885
1083
 
886
1084
  /**
887
1085
  * Duration between two moments in time.
@@ -914,6 +1112,16 @@ type UrlString = string;
914
1112
  * @see https://chainagnostic.org/CAIPs/caip-10
915
1113
  */
916
1114
  type AccountIdString = string;
1115
+ /**
1116
+ * String representation of {@link AssetId}.
1117
+ *
1118
+ * Formatted as a fully lowercase CAIP-19 AssetId.
1119
+ *
1120
+ * @see https://chainagnostic.org/CAIPs/caip-19
1121
+ * @example "eip155:1/erc721:0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/0xaf2caa1c2ca1d027f1ac823b529d0a67cd144264b2789fa2ea4d63a67c7103cc"
1122
+ * for vitalik.eth in the eth base registrar on mainnet.
1123
+ */
1124
+ type AssetIdString = string;
917
1125
 
918
1126
  declare function deserializeChainId(maybeChainId: ChainIdString, valueLabel?: string): ChainId;
919
1127
  declare function deserializeDatetime(maybeDatetime: string, valueLabel?: string): Datetime;
@@ -928,6 +1136,104 @@ declare function deserializeBlockRef(maybeBlockRef: Partial<BlockRef>, valueLabe
928
1136
  declare function deserializeDuration(maybeDuration: unknown, valueLabel?: string): Duration;
929
1137
  declare function parseAccountId(maybeAccountId: unknown, valueLabel?: string): AccountId;
930
1138
 
1139
+ /**
1140
+ * Interprets a viem#Address. zeroAddress is interpreted as null, otherwise Address.
1141
+ */
1142
+ declare const interpretAddress: (owner: Address) => `0x${string}` | null;
1143
+
1144
+ /**
1145
+ * Interprets a name record value string and returns null if the value is interpreted as a deletion.
1146
+ *
1147
+ * The interpreted record value is either:
1148
+ * a) null, representing a non-existant or deletion of the record, or
1149
+ * b) a normalized, non-empty-string Name.
1150
+ *
1151
+ * @param value - The name record value string to interpret.
1152
+ * @returns The interpreted name string, or null if deleted.
1153
+ */
1154
+ declare function interpretNameRecordValue(value: string): NormalizedName | null;
1155
+ /**
1156
+ * Interprets an address record value string and returns null if the value is interpreted as a deletion.
1157
+ *
1158
+ * The interpreted record value is either:
1159
+ * a) null, representing a non-existant or deletion of the record, or
1160
+ * i. contains null bytes
1161
+ * ii. empty string
1162
+ * iii. empty hex (0x)
1163
+ * iv. zeroAddress
1164
+ * b) an address record value that
1165
+ * i. does not contain null bytes
1166
+ * ii. (if is an EVM address) is lowercase
1167
+ *
1168
+ * @param value - The address record value to interpret.
1169
+ * @returns The interpreted address string or null if deleted.
1170
+ */
1171
+ declare function interpretAddressRecordValue(value: string): string | null;
1172
+ /**
1173
+ * Interprets a text record key string and returns null if the key should be ignored.
1174
+ *
1175
+ * The interpreted text record key is either:
1176
+ * a) null, representing a text record key that should be ignored, or
1177
+ * i. contains null bytes
1178
+ * ii. empty string
1179
+ * b) a text record key that
1180
+ * i. does not contain null bytes
1181
+ *
1182
+ * @param value - The text record key to interpret.
1183
+ * @returns The interpreted text string or null if ignored.
1184
+ */
1185
+ declare function interpretTextRecordKey(key: string): string | null;
1186
+ /**
1187
+ * Interprets a text record value string and returns null if the value is interpreted as a deletion.
1188
+ *
1189
+ * The interpreted record value is either:
1190
+ * a) null, representing a non-existant or deletion of the record, or
1191
+ * i. contains null bytes
1192
+ * ii. empty string
1193
+ * b) a text record value that
1194
+ * i. does not contain null bytes
1195
+ *
1196
+ * @param value - The text record value to interpret.
1197
+ * @returns The interpreted text string or null if deleted.
1198
+ */
1199
+ declare function interpretTextRecordValue(value: string): string | null;
1200
+
1201
+ /**
1202
+ * Decodes a uint256-encoded-LabelHash (eg. from a tokenId) into a {@link LabelHash}.
1203
+ *
1204
+ * Remember that contracts that operate in the context of a Managed Name frequently store and operate
1205
+ * over _LabelHashes_ that represent a direct subname of a Managed Name. These contracts also frequently
1206
+ * implement ERC721 or ERC1155 to represent ownership of these Names. As such, to construct the
1207
+ * ERC721/ERC1155 tokenId, they may encode the direct subnames's LabelHash as a uint256.
1208
+ *
1209
+ * This is true for the ENSv1 BaseRegistrar, RegistrarControllers, as well as any
1210
+ * contracts forked from it (which includes Basenames' and Lineanames' implementations).
1211
+ *
1212
+ * So, in order to turn the tokenId into a LabelHash, we perform the opposite operation, decoding
1213
+ * from a uint256 into a Hex (of size 32) and cast it as our semantic {@link LabelHash} type.
1214
+ *
1215
+ * @see https://github.com/ensdomains/ens-contracts/blob/db613bc/contracts/ethregistrar/ETHRegistrarController.sol#L215
1216
+ * @see https://github.com/base/basenames/blob/1b5c1ad/src/L2/RegistrarController.sol#L488
1217
+ * @see https://github.com/Consensys/linea-ens/blob/3a4f02f/packages/linea-ens-contracts/contracts/ethregistrar/ETHRegistrarController.sol#L447
1218
+ */
1219
+ declare const interpretTokenIdAsLabelHash: (tokenId: bigint) => LabelHash;
1220
+ /**
1221
+ * Decodes a uint256-encoded-Node (eg. from a tokenId) into a {@link Node}.
1222
+ *
1223
+ * Contracts in the ENSv1 ecosystem frequently implement ERC721 or ERC1155 to represent
1224
+ * ownership of a Domain. As such, to construct the ERC721/ERC1155 tokenId, they may encode the
1225
+ * domain's {@link Node} as a uint256.
1226
+ *
1227
+ * This is true for the ENSv1 NameWrapper, as well as any contracts forked from it (which includes
1228
+ * Lineanames' implementation).
1229
+ *
1230
+ * So, in order to turn the tokenId into a Node, we perform the opposite operation, decoding
1231
+ * from a uint256 into a Hex (of size 32) and cast it as our semantic {@link Node} type.
1232
+ *
1233
+ * @see https://github.com/ensdomains/ens-contracts/blob/db613bc/contracts/wrapper/ERC1155Fuse.sol#L262
1234
+ */
1235
+ declare const interpretTokenIdAsNode: (tokenId: bigint) => Node;
1236
+
931
1237
  /**
932
1238
  * Interprets a Literal Label, producing an Interpreted Label.
933
1239
  *
@@ -970,6 +1276,17 @@ declare function interpretedLabelsToInterpretedName(labels: InterpretedLabel[]):
970
1276
  * @returns An LiteralName
971
1277
  */
972
1278
  declare function literalLabelsToLiteralName(labels: LiteralLabel[]): LiteralName;
1279
+ /**
1280
+ * Converts an Interpreted Name into a list of Interpreted Labels.
1281
+ */
1282
+ declare function interpretedNameToInterpretedLabels(name: InterpretedName): InterpretedLabel[];
1283
+ declare function encodedLabelToLabelhash(label: string): LabelHash | null;
1284
+ declare function isInterpetedLabel(label: Label): label is InterpretedLabel;
1285
+ declare function isInterpretedName(name: Name): name is InterpretedName;
1286
+ /**
1287
+ * Converts an InterpretedName into a LabelHashPath.
1288
+ */
1289
+ declare function interpretedNameToLabelHashPath(name: InterpretedName): LabelHashPath;
973
1290
 
974
1291
  /**
975
1292
  * Implements the ENS `labelhash` function for Literal Labels.
@@ -992,6 +1309,27 @@ declare const stripNullBytes: (value: string) => string;
992
1309
  */
993
1310
  declare function bigIntToNumber(n: bigint): number;
994
1311
 
1312
+ /**
1313
+ * Gets the AccountId representing the ENSv1 Registry in the selected `namespace`.
1314
+ */
1315
+ declare const getENSv1Registry: (namespace: ENSNamespaceId) => AccountId;
1316
+ /**
1317
+ * Determines whether `contract` is the ENSv1 Registry in `namespace`.
1318
+ */
1319
+ declare const isENSv1Registry: (namespace: ENSNamespaceId, contract: AccountId) => boolean;
1320
+ /**
1321
+ * Gets the AccountId representing the ENSv2 Root Registry in the selected `namespace`.
1322
+ */
1323
+ declare const getENSv2RootRegistry: (namespace: ENSNamespaceId) => AccountId;
1324
+ /**
1325
+ * Gets the RegistryId representing the ENSv2 Root Registry in the selected `namespace`.
1326
+ */
1327
+ declare const getENSv2RootRegistryId: (namespace: ENSNamespaceId) => RegistryId;
1328
+ /**
1329
+ * Determines whether `contract` is the ENSv2 Root Registry in `namespace`.
1330
+ */
1331
+ declare const isENSv2RootRegistry: (namespace: ENSNamespaceId, contract: AccountId) => boolean;
1332
+
995
1333
  /**
996
1334
  * Serializes a {@link ChainId} value into its string representation.
997
1335
  */
@@ -1020,15 +1358,20 @@ declare function serializePriceEth(price: PriceEth): SerializedPriceEth;
1020
1358
  * @see https://chainagnostic.org/CAIPs/caip-10
1021
1359
  */
1022
1360
  declare function formatAccountId(accountId: AccountId): AccountIdString;
1361
+ /**
1362
+ * Format {@link AssetId} object as a string.
1363
+ *
1364
+ * Formatted as a fully lowercase CAIP-19 AssetId.
1365
+ *
1366
+ * @see https://chainagnostic.org/CAIPs/caip-19
1367
+ */
1368
+ declare function formatAssetId({ assetNamespace, contract: { chainId, address }, tokenId, }: AssetId): AssetIdString;
1023
1369
 
1024
1370
  declare function isHttpProtocol(url: URL): boolean;
1025
1371
  declare function isWebSocketProtocol(url: URL): boolean;
1026
1372
 
1027
1373
  /**
1028
- * A label set ID identifies a set of labels that can be used for deterministic healing.
1029
- * A label set allows clients to deterministically heal their state against a server,
1030
- * ensuring that both are operating on the same version of data.
1031
- *
1374
+ * A label set ID identifies a label set (see https://ensnode.io/ensrainbow/concepts/glossary#label-set for definition).
1032
1375
  * It is guaranteed to be 1 to 50 characters long and contain only lowercase letters (a-z)
1033
1376
  * and hyphens (-).
1034
1377
  */
@@ -1086,7 +1429,8 @@ declare enum PluginName {
1086
1429
  ThreeDNS = "threedns",
1087
1430
  ProtocolAcceleration = "protocol-acceleration",
1088
1431
  Registrars = "registrars",
1089
- TokenScope = "tokenscope"
1432
+ TokenScope = "tokenscope",
1433
+ ENSv2 = "ensv2"
1090
1434
  }
1091
1435
  /**
1092
1436
  * Version info about ENSIndexer and its dependencies.
@@ -2025,63 +2369,32 @@ declare function serializeChainIndexingSnapshots<ChainIndexingStatusSnapshotType
2025
2369
  */
2026
2370
  declare function serializeOmnichainIndexingStatusSnapshot(indexingStatus: OmnichainIndexingStatusSnapshot): SerializedOmnichainIndexingStatusSnapshot;
2027
2371
 
2372
+ /**
2373
+ * Reasons why TheGraph fallback cannot be used.
2374
+ */
2028
2375
  declare const TheGraphCannotFallbackReasonSchema: z.ZodEnum<{
2029
2376
  readonly NotSubgraphCompatible: "not-subgraph-compatible";
2030
2377
  readonly NoApiKey: "no-api-key";
2031
2378
  readonly NoSubgraphUrl: "no-subgraph-url";
2032
2379
  }>;
2033
- declare const TheGraphFallbackSchema: z.ZodObject<{
2034
- canFallback: z.ZodBoolean;
2035
- reason: z.ZodNullable<z.ZodEnum<{
2380
+ type TheGraphCannotFallbackReason = z.infer<typeof TheGraphCannotFallbackReasonSchema>;
2381
+ /**
2382
+ * Configuration for TheGraph fallback behavior.
2383
+ * Indicates whether fallback to TheGraph is possible and the reason if not.
2384
+ */
2385
+ declare const TheGraphFallbackSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2386
+ canFallback: z.ZodLiteral<true>;
2387
+ url: z.ZodString;
2388
+ }, z.core.$strict>, z.ZodObject<{
2389
+ canFallback: z.ZodLiteral<false>;
2390
+ reason: z.ZodEnum<{
2036
2391
  readonly NotSubgraphCompatible: "not-subgraph-compatible";
2037
2392
  readonly NoApiKey: "no-api-key";
2038
2393
  readonly NoSubgraphUrl: "no-subgraph-url";
2039
- }>>;
2040
- }, z.core.$strict>;
2041
- /**
2042
- * Create a Zod schema for validating a serialized ENSApiPublicConfig.
2043
- *
2044
- * @param valueLabel - Optional label for the value being validated (used in error messages)
2045
- */
2046
- declare function makeENSApiPublicConfigSchema(valueLabel?: string): z.ZodObject<{
2047
- version: z.ZodString;
2048
- theGraphFallback: z.ZodObject<{
2049
- canFallback: z.ZodBoolean;
2050
- reason: z.ZodNullable<z.ZodEnum<{
2051
- readonly NotSubgraphCompatible: "not-subgraph-compatible";
2052
- readonly NoApiKey: "no-api-key";
2053
- readonly NoSubgraphUrl: "no-subgraph-url";
2054
- }>>;
2055
- }, z.core.$strict>;
2056
- ensIndexerPublicConfig: z.ZodObject<{
2057
- labelSet: z.ZodObject<{
2058
- labelSetId: z.ZodString;
2059
- labelSetVersion: z.ZodPipe<z.ZodCoercedNumber<unknown>, z.ZodInt>;
2060
- }, z.core.$strip>;
2061
- indexedChainIds: z.ZodPipe<z.ZodArray<z.ZodPipe<z.ZodInt, z.ZodTransform<number, number>>>, z.ZodTransform<Set<number>, number[]>>;
2062
- isSubgraphCompatible: z.ZodBoolean;
2063
- namespace: z.ZodEnum<{
2064
- readonly Mainnet: "mainnet";
2065
- readonly Sepolia: "sepolia";
2066
- readonly Holesky: "holesky";
2067
- readonly EnsTestEnv: "ens-test-env";
2068
- }>;
2069
- plugins: z.ZodArray<z.ZodString>;
2070
- databaseSchemaName: z.ZodString;
2071
- versionInfo: z.ZodObject<{
2072
- nodejs: z.ZodString;
2073
- ponder: z.ZodString;
2074
- ensDb: z.ZodString;
2075
- ensIndexer: z.ZodString;
2076
- ensNormalize: z.ZodString;
2077
- ensRainbow: z.ZodString;
2078
- ensRainbowSchema: z.ZodInt;
2079
- }, z.core.$strict>;
2080
- }, z.core.$strip>;
2081
- }, z.core.$strict>;
2082
-
2083
- type TheGraphCannotFallbackReason = z.infer<typeof TheGraphCannotFallbackReasonSchema>;
2394
+ }>;
2395
+ }, z.core.$strict>]>;
2084
2396
  type TheGraphFallback = z.infer<typeof TheGraphFallbackSchema>;
2397
+
2085
2398
  /**
2086
2399
  * Complete public configuration object for ENSApi.
2087
2400
  *
@@ -2128,6 +2441,50 @@ declare function deserializeENSApiPublicConfig(maybeConfig: SerializedENSApiPubl
2128
2441
  */
2129
2442
  declare function serializeENSApiPublicConfig(config: ENSApiPublicConfig): SerializedENSApiPublicConfig;
2130
2443
 
2444
+ /**
2445
+ * Create a Zod schema for validating a serialized ENSApiPublicConfig.
2446
+ *
2447
+ * @param valueLabel - Optional label for the value being validated (used in error messages)
2448
+ */
2449
+ declare function makeENSApiPublicConfigSchema(valueLabel?: string): z.ZodObject<{
2450
+ version: z.ZodString;
2451
+ theGraphFallback: z.ZodDiscriminatedUnion<[z.ZodObject<{
2452
+ canFallback: z.ZodLiteral<true>;
2453
+ url: z.ZodString;
2454
+ }, z.core.$strict>, z.ZodObject<{
2455
+ canFallback: z.ZodLiteral<false>;
2456
+ reason: z.ZodEnum<{
2457
+ readonly NotSubgraphCompatible: "not-subgraph-compatible";
2458
+ readonly NoApiKey: "no-api-key";
2459
+ readonly NoSubgraphUrl: "no-subgraph-url";
2460
+ }>;
2461
+ }, z.core.$strict>]>;
2462
+ ensIndexerPublicConfig: z.ZodObject<{
2463
+ labelSet: z.ZodObject<{
2464
+ labelSetId: z.ZodString;
2465
+ labelSetVersion: z.ZodPipe<z.ZodCoercedNumber<unknown>, z.ZodInt>;
2466
+ }, z.core.$strip>;
2467
+ indexedChainIds: z.ZodPipe<z.ZodArray<z.ZodPipe<z.ZodInt, z.ZodTransform<number, number>>>, z.ZodTransform<Set<number>, number[]>>;
2468
+ isSubgraphCompatible: z.ZodBoolean;
2469
+ namespace: z.ZodEnum<{
2470
+ readonly Mainnet: "mainnet";
2471
+ readonly Sepolia: "sepolia";
2472
+ readonly EnsTestEnv: "ens-test-env";
2473
+ }>;
2474
+ plugins: z.ZodArray<z.ZodString>;
2475
+ databaseSchemaName: z.ZodString;
2476
+ versionInfo: z.ZodObject<{
2477
+ nodejs: z.ZodString;
2478
+ ponder: z.ZodString;
2479
+ ensDb: z.ZodString;
2480
+ ensIndexer: z.ZodString;
2481
+ ensNormalize: z.ZodString;
2482
+ ensRainbow: z.ZodString;
2483
+ ensRainbowSchema: z.ZodInt;
2484
+ }, z.core.$strict>;
2485
+ }, z.core.$strip>;
2486
+ }, z.core.$strict>;
2487
+
2131
2488
  /**
2132
2489
  * ENSApi Public Config Response
2133
2490
  */
@@ -2241,50 +2598,24 @@ declare const nameTokensPrerequisites: Readonly<{
2241
2598
 
2242
2599
  /**
2243
2600
  * Represents request to Name Tokens API.
2601
+ *
2602
+ * Either `domainId` or `name` must be provided, but not both.
2244
2603
  */
2245
- interface NameTokensRequestByDomainId {
2246
- domainId: Node;
2604
+ interface NameTokensRequest {
2247
2605
  /**
2248
- * Name for which name tokens were requested.
2606
+ * Domain ID (namehash) for which name tokens were requested.
2249
2607
  */
2250
- name?: undefined;
2251
- }
2252
- /**
2253
- * Represents request to Name Tokens API.
2254
- */
2255
- interface NameTokensRequestByName {
2256
- domainId?: undefined;
2608
+ domainId?: Node;
2257
2609
  /**
2258
2610
  * Name for which name tokens were requested.
2259
2611
  */
2260
- name: Name;
2612
+ name?: Name;
2261
2613
  }
2262
- type NameTokensRequest = NameTokensRequestByDomainId | NameTokensRequestByName;
2263
2614
 
2264
- /**
2265
- * An enum representing the possible CAIP-19 Asset Namespace values.
2266
- */
2267
- declare const AssetNamespaces: {
2268
- readonly ERC721: "erc721";
2269
- readonly ERC1155: "erc1155";
2270
- };
2271
- type AssetNamespace = (typeof AssetNamespaces)[keyof typeof AssetNamespaces];
2272
- /**
2273
- * A uint256 value that identifies a specific NFT within a NFT contract.
2274
- */
2275
- type TokenId = bigint;
2276
2615
  /**
2277
2616
  * Serialized representation of {@link TokenId}.
2278
2617
  */
2279
2618
  type SerializedTokenId = string;
2280
- /**
2281
- * A globally unique reference to an NFT.
2282
- */
2283
- interface AssetId {
2284
- assetNamespace: AssetNamespace;
2285
- contract: AccountId;
2286
- tokenId: TokenId;
2287
- }
2288
2619
  /**
2289
2620
  * Serialized representation of {@link AssetId}.
2290
2621
  */
@@ -2292,27 +2623,13 @@ interface SerializedAssetId extends Omit<AssetId, "tokenId"> {
2292
2623
  tokenId: SerializedTokenId;
2293
2624
  }
2294
2625
  /**
2295
- * String representation of an {@link AssetId}.
2296
- *
2297
- * Formatted as a fully lowercase CAIP-19 AssetId.
2298
- *
2299
- * @see https://chainagnostic.org/CAIPs/caip-19
2300
- * @example "eip155:1/erc721:0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/0xaf2caa1c2ca1d027f1ac823b529d0a67cd144264b2789fa2ea4d63a67c7103cc"
2301
- * for vitalik.eth in the eth base registrar on mainnet.
2302
- */
2303
- type AssetIdString = string;
2304
- /**
2305
- * Serializes {@link AssetId} object.
2626
+ * Serializes {@link AssetId} object to a structured form.
2306
2627
  */
2307
2628
  declare function serializeAssetId(assetId: AssetId): SerializedAssetId;
2308
2629
  /**
2309
2630
  * Deserialize a {@link AssetId} object.
2310
2631
  */
2311
2632
  declare function deserializeAssetId(maybeAssetId: unknown, valueLabel?: string): AssetId;
2312
- /**
2313
- * Format {@link AssetId} object as a string.
2314
- */
2315
- declare function formatAssetId(assetId: AssetId): AssetIdString;
2316
2633
  /**
2317
2634
  * Parse a stringified representation of {@link AssetId} object.
2318
2635
  */
@@ -3264,6 +3581,25 @@ interface SerializedRegistrarAction extends Omit<RegistrarAction, "pricing"> {
3264
3581
  declare function serializeRegistrarActionPricing(pricing: RegistrarActionPricing): SerializedRegistrarActionPricing;
3265
3582
  declare function serializeRegistrarAction(registrarAction: RegistrarAction): SerializedRegistrarAction;
3266
3583
 
3584
+ interface RegistrationExpiryInfo {
3585
+ expiry: bigint | null;
3586
+ gracePeriod: bigint | null;
3587
+ }
3588
+ /**
3589
+ * Returns whether Registration is expired. If the Registration includes a Grace Period, the
3590
+ * Grace Period window is considered expired.
3591
+ */
3592
+ declare function isRegistrationExpired(info: RegistrationExpiryInfo, now: bigint): boolean;
3593
+ /**
3594
+ * Returns whether Registration is fully expired. If the Registration includes a Grace Period, the
3595
+ * Grace Period window is considered NOT fully-expired.
3596
+ */
3597
+ declare function isRegistrationFullyExpired(info: RegistrationExpiryInfo, now: bigint): boolean;
3598
+ /**
3599
+ * Returns whether Registration is in grace period.
3600
+ */
3601
+ declare function isRegistrationInGracePeriod(info: RegistrationExpiryInfo, now: bigint): boolean;
3602
+
3267
3603
  declare const RECORDS_PER_PAGE_DEFAULT = 10;
3268
3604
  declare const RECORDS_PER_PAGE_MAX = 100;
3269
3605
  /**
@@ -3392,6 +3728,19 @@ type RegistrarActionsResponseOk = {
3392
3728
  responseCode: typeof RegistrarActionsResponseCodes.Ok;
3393
3729
  registrarActions: NamedRegistrarAction[];
3394
3730
  pageContext: ResponsePageContext;
3731
+ /**
3732
+ * The {@link UnixTimestamp} of when the data used to build the list of {@link NamedRegistrarAction} was accurate as of.
3733
+ *
3734
+ * @remarks
3735
+ * **Note:** This value represents the `slowestChainIndexingCursor` from the latest omnichain indexing status
3736
+ * snapshot captured by ENSApi. The state returned in the response is guaranteed to be accurate as of this
3737
+ * timestamp but may be from a timestamp higher than this value.
3738
+ *
3739
+ * **Temporary:** This field is currently optional to maintain backward compatibility with ENS Awards
3740
+ * using older snapshot NPM packages. This will be changed to required in a future release.
3741
+ * See: https://github.com/namehash/ensnode/issues/1497
3742
+ */
3743
+ accurateAsOf?: UnixTimestamp;
3395
3744
  };
3396
3745
  /**
3397
3746
  * A response when Registrar Actions are unavailable.
@@ -3441,6 +3790,8 @@ declare const RegistrarActionsFilterTypes: {
3441
3790
  readonly BySubregistryNode: "bySubregistryNode";
3442
3791
  readonly WithEncodedReferral: "withEncodedReferral";
3443
3792
  readonly ByDecodedReferrer: "byDecodedReferrer";
3793
+ readonly BeginTimestamp: "beginTimestamp";
3794
+ readonly EndTimestamp: "endTimestamp";
3444
3795
  };
3445
3796
  type RegistrarActionsFilterType = (typeof RegistrarActionsFilterTypes)[keyof typeof RegistrarActionsFilterTypes];
3446
3797
  type RegistrarActionsFilterBySubregistryNode = {
@@ -3454,7 +3805,15 @@ type RegistrarActionsFilterByDecodedReferrer = {
3454
3805
  filterType: typeof RegistrarActionsFilterTypes.ByDecodedReferrer;
3455
3806
  value: Address;
3456
3807
  };
3457
- type RegistrarActionsFilter = RegistrarActionsFilterBySubregistryNode | RegistrarActionsFilterWithEncodedReferral | RegistrarActionsFilterByDecodedReferrer;
3808
+ type RegistrarActionsFilterBeginTimestamp = {
3809
+ filterType: typeof RegistrarActionsFilterTypes.BeginTimestamp;
3810
+ value: UnixTimestamp;
3811
+ };
3812
+ type RegistrarActionsFilterEndTimestamp = {
3813
+ filterType: typeof RegistrarActionsFilterTypes.EndTimestamp;
3814
+ value: UnixTimestamp;
3815
+ };
3816
+ type RegistrarActionsFilter = RegistrarActionsFilterBySubregistryNode | RegistrarActionsFilterWithEncodedReferral | RegistrarActionsFilterByDecodedReferrer | RegistrarActionsFilterBeginTimestamp | RegistrarActionsFilterEndTimestamp;
3458
3817
  /**
3459
3818
  * Records Orders
3460
3819
  */
@@ -3491,10 +3850,26 @@ declare function withReferral(withReferral: false | undefined): undefined;
3491
3850
  */
3492
3851
  declare function byDecodedReferrer(decodedReferrer: Address): RegistrarActionsFilter;
3493
3852
  declare function byDecodedReferrer(decodedReferrer: undefined): undefined;
3853
+ /**
3854
+ * Build a "begin timestamp" filter object for Registrar Actions query.
3855
+ *
3856
+ * Filters registrar actions to only include those at or after the specified timestamp (inclusive).
3857
+ */
3858
+ declare function beginTimestamp(timestamp: UnixTimestamp): RegistrarActionsFilter;
3859
+ declare function beginTimestamp(timestamp: undefined): undefined;
3860
+ /**
3861
+ * Build an "end timestamp" filter object for Registrar Actions query.
3862
+ *
3863
+ * Filters registrar actions to only include those at or before the specified timestamp (inclusive).
3864
+ */
3865
+ declare function endTimestamp(timestamp: UnixTimestamp): RegistrarActionsFilter;
3866
+ declare function endTimestamp(timestamp: undefined): undefined;
3494
3867
  declare const registrarActionsFilter: {
3495
3868
  byParentNode: typeof byParentNode;
3496
3869
  withReferral: typeof withReferral;
3497
3870
  byDecodedReferrer: typeof byDecodedReferrer;
3871
+ beginTimestamp: typeof beginTimestamp;
3872
+ endTimestamp: typeof endTimestamp;
3498
3873
  };
3499
3874
 
3500
3875
  declare const registrarActionsPrerequisites: Readonly<{
@@ -4009,6 +4384,61 @@ type ReferrerDetailResponseError = {
4009
4384
  */
4010
4385
  type ReferrerDetailResponse = ReferrerDetailResponseOk | ReferrerDetailResponseError;
4011
4386
 
4387
+ /**
4388
+ * Serialized representation of {@link RevenueContribution}.
4389
+ *
4390
+ * RevenueContribution is a bigint, which is serialized as a string for JSON compatibility.
4391
+ */
4392
+ type SerializedRevenueContribution = string;
4393
+ /**
4394
+ * Serialized representation of {@link ReferralProgramRules}.
4395
+ *
4396
+ * Note: All fields are already serializable primitives, so this type is identical to the source type.
4397
+ */
4398
+ type SerializedReferralProgramRules = ReferralProgramRules;
4399
+ /**
4400
+ * Serialized representation of {@link AwardedReferrerMetrics}.
4401
+ */
4402
+ interface SerializedAwardedReferrerMetrics extends Omit<AwardedReferrerMetrics, "totalRevenueContribution"> {
4403
+ totalRevenueContribution: SerializedRevenueContribution;
4404
+ }
4405
+ /**
4406
+ * Serialized representation of {@link UnrankedReferrerMetrics}.
4407
+ */
4408
+ interface SerializedUnrankedReferrerMetrics extends Omit<UnrankedReferrerMetrics, "totalRevenueContribution"> {
4409
+ totalRevenueContribution: SerializedRevenueContribution;
4410
+ }
4411
+ /**
4412
+ * Serialized representation of {@link AggregatedReferrerMetrics}.
4413
+ */
4414
+ interface SerializedAggregatedReferrerMetrics extends Omit<AggregatedReferrerMetrics, "grandTotalRevenueContribution"> {
4415
+ grandTotalRevenueContribution: SerializedRevenueContribution;
4416
+ }
4417
+ /**
4418
+ * Serialized representation of {@link ReferrerLeaderboardPage}.
4419
+ */
4420
+ interface SerializedReferrerLeaderboardPage extends Omit<ReferrerLeaderboardPage, "referrers" | "aggregatedMetrics"> {
4421
+ referrers: SerializedAwardedReferrerMetrics[];
4422
+ aggregatedMetrics: SerializedAggregatedReferrerMetrics;
4423
+ }
4424
+ /**
4425
+ * Serialized representation of {@link ReferrerDetailRanked}.
4426
+ */
4427
+ interface SerializedReferrerDetailRanked extends Omit<ReferrerDetailRanked, "referrer" | "aggregatedMetrics"> {
4428
+ referrer: SerializedAwardedReferrerMetrics;
4429
+ aggregatedMetrics: SerializedAggregatedReferrerMetrics;
4430
+ }
4431
+ /**
4432
+ * Serialized representation of {@link ReferrerDetailUnranked}.
4433
+ */
4434
+ interface SerializedReferrerDetailUnranked extends Omit<ReferrerDetailUnranked, "referrer" | "aggregatedMetrics"> {
4435
+ referrer: SerializedUnrankedReferrerMetrics;
4436
+ aggregatedMetrics: SerializedAggregatedReferrerMetrics;
4437
+ }
4438
+ /**
4439
+ * Serialized representation of {@link ReferrerDetail} (union of ranked and unranked).
4440
+ */
4441
+ type SerializedReferrerDetail = SerializedReferrerDetailRanked | SerializedReferrerDetailUnranked;
4012
4442
  /**
4013
4443
  * Serialized representation of {@link ReferrerLeaderboardPageResponseError}.
4014
4444
  *
@@ -4017,28 +4447,26 @@ type ReferrerDetailResponse = ReferrerDetailResponseOk | ReferrerDetailResponseE
4017
4447
  type SerializedReferrerLeaderboardPageResponseError = ReferrerLeaderboardPageResponseError;
4018
4448
  /**
4019
4449
  * Serialized representation of {@link ReferrerLeaderboardPageResponseOk}.
4020
- *
4021
- * Note: All fields are already serializable, so this type is identical to the source type.
4022
4450
  */
4023
- type SerializedReferrerLeaderboardPageResponseOk = ReferrerLeaderboardPageResponseOk;
4451
+ interface SerializedReferrerLeaderboardPageResponseOk extends Omit<ReferrerLeaderboardPageResponseOk, "data"> {
4452
+ data: SerializedReferrerLeaderboardPage;
4453
+ }
4024
4454
  /**
4025
4455
  * Serialized representation of {@link ReferrerLeaderboardPageResponse}.
4026
4456
  */
4027
4457
  type SerializedReferrerLeaderboardPageResponse = SerializedReferrerLeaderboardPageResponseOk | SerializedReferrerLeaderboardPageResponseError;
4028
- /**
4029
- * Serialized representation of {@link ReferrerDetailResponseOk}.
4030
- *
4031
- * Note: All fields in ReferrerDetailRanked and ReferrerDetailUnranked
4032
- * (rules, referrer metrics, aggregatedMetrics, and timestamp) are already serializable primitives.
4033
- * The rank field can be either a number or null, both of which are valid JSON primitives.
4034
- */
4035
- type SerializedReferrerDetailResponseOk = ReferrerDetailResponseOk;
4036
4458
  /**
4037
4459
  * Serialized representation of {@link ReferrerDetailResponseError}.
4038
4460
  *
4039
4461
  * Note: All fields are already serializable, so this type is identical to the source type.
4040
4462
  */
4041
4463
  type SerializedReferrerDetailResponseError = ReferrerDetailResponseError;
4464
+ /**
4465
+ * Serialized representation of {@link ReferrerDetailResponseOk}.
4466
+ */
4467
+ interface SerializedReferrerDetailResponseOk extends Omit<ReferrerDetailResponseOk, "data"> {
4468
+ data: SerializedReferrerDetail;
4469
+ }
4042
4470
  /**
4043
4471
  * Serialized representation of {@link ReferrerDetailResponse}.
4044
4472
  */
@@ -4047,39 +4475,26 @@ type SerializedReferrerDetailResponse = SerializedReferrerDetailResponseOk | Ser
4047
4475
  /**
4048
4476
  * Deserialize a {@link ReferrerLeaderboardPageResponse} object.
4049
4477
  *
4050
- * Note: While the serialized and deserialized types are identical (all fields
4051
- * are primitives), this function performs critical validation using Zod schemas
4052
- * to enforce invariants on the data. This ensures data integrity when receiving
4053
- * responses from the API.
4478
+ * Note: This function explicitly deserializes each subobject to convert string
4479
+ * RevenueContribution values back to bigint, then validates using Zod schemas
4480
+ * to enforce invariants on the data.
4054
4481
  */
4055
4482
  declare function deserializeReferrerLeaderboardPageResponse(maybeResponse: SerializedReferrerLeaderboardPageResponse, valueLabel?: string): ReferrerLeaderboardPageResponse;
4056
4483
  /**
4057
4484
  * Deserialize a {@link ReferrerDetailResponse} object.
4058
4485
  *
4059
- * Note: While the serialized and deserialized types are identical (all fields
4060
- * are primitives), this function performs critical validation using Zod schemas
4061
- * to enforce invariants on the data. This ensures data integrity when receiving
4062
- * responses from the API.
4486
+ * Note: This function explicitly deserializes each subobject to convert string
4487
+ * RevenueContribution values back to bigint, then validates using Zod schemas
4488
+ * to enforce invariants on the data.
4063
4489
  */
4064
4490
  declare function deserializeReferrerDetailResponse(maybeResponse: SerializedReferrerDetailResponse, valueLabel?: string): ReferrerDetailResponse;
4065
4491
 
4066
4492
  /**
4067
4493
  * Serialize a {@link ReferrerLeaderboardPageResponse} object.
4068
- *
4069
- * Note: Since all fields in ReferrerLeaderboardPageResponse are already
4070
- * serializable primitives, this function performs an identity transformation.
4071
- * It exists to maintain consistency with the serialization pattern used
4072
- * throughout the codebase.
4073
4494
  */
4074
4495
  declare function serializeReferrerLeaderboardPageResponse(response: ReferrerLeaderboardPageResponse): SerializedReferrerLeaderboardPageResponse;
4075
4496
  /**
4076
4497
  * Serialize a {@link ReferrerDetailResponse} object.
4077
- *
4078
- * Note: Since all fields in ReferrerDetailRanked and ReferrerDetailUnranked
4079
- * (rules, referrer metrics, aggregatedMetrics, and timestamp) are already
4080
- * serializable primitives, this function performs an identity transformation.
4081
- * The rank field can be either a number or null, both of which are valid JSON primitives.
4082
- * It exists to maintain consistency with the serialization pattern used throughout the codebase.
4083
4498
  */
4084
4499
  declare function serializeReferrerDetailResponse(response: ReferrerDetailResponse): SerializedReferrerDetailResponse;
4085
4500
 
@@ -4424,6 +4839,7 @@ declare class ENSNodeClient {
4424
4839
  * const { registrarActions, pageContext } = response;
4425
4840
  * console.log(registrarActions);
4426
4841
  * console.log(`Page ${pageContext.page} of ${pageContext.totalPages}`);
4842
+ * console.log(`Accurate as of: ${response.accurateAsOf}`);
4427
4843
  * }
4428
4844
  *
4429
4845
  * // Get second page with 25 records per page
@@ -4454,6 +4870,26 @@ declare class ENSNodeClient {
4454
4870
  * filters: [registrarActionsFilter.byParentNode(namehash('base.eth'))],
4455
4871
  * recordsPerPage: 10
4456
4872
  * });
4873
+ *
4874
+ * // get registrar actions within a specific time range
4875
+ * const beginTimestamp = 1764547200; // Dec 1, 2025, 00:00:00 UTC
4876
+ * const endTimestamp = 1767225600; // Jan 1, 2026, 00:00:00 UTC
4877
+ * await client.registrarActions({
4878
+ * filters: [
4879
+ * registrarActionsFilter.beginTimestamp(beginTimestamp),
4880
+ * registrarActionsFilter.endTimestamp(endTimestamp),
4881
+ * ],
4882
+ * });
4883
+ *
4884
+ * // get registrar actions from a specific timestamp onwards
4885
+ * await client.registrarActions({
4886
+ * filters: [registrarActionsFilter.beginTimestamp(1764547200)],
4887
+ * });
4888
+ *
4889
+ * // get registrar actions up to a specific timestamp
4890
+ * await client.registrarActions({
4891
+ * filters: [registrarActionsFilter.endTimestamp(1767225600)],
4892
+ * });
4457
4893
  * ```
4458
4894
  */
4459
4895
  registrarActions(request?: RegistrarActionsRequest): Promise<RegistrarActionsResponse>;
@@ -4495,4 +4931,4 @@ declare class ClientError extends Error {
4495
4931
  static fromErrorResponse({ message, details }: ErrorResponse): ClientError;
4496
4932
  }
4497
4933
 
4498
- export { ADDR_REVERSE_NODE, ATTR_PROTOCOL_NAME, ATTR_PROTOCOL_STEP, ATTR_PROTOCOL_STEP_RESULT, type AcceleratableRequest, type AcceleratableResponse, type AccountId, type AccountIdString, type AssetId, type AssetIdString, type AssetNamespace, AssetNamespaces, BASENAMES_NODE, type BlockNumber, type BlockRef, type Blockrange, type Cache, type ChainId, type ChainIdString, type ChainIndexingConfig, type ChainIndexingConfigDefinite, type ChainIndexingConfigIndefinite, type ChainIndexingConfigTypeId, ChainIndexingConfigTypeIds, type ChainIndexingStatusId, ChainIndexingStatusIds, type ChainIndexingStatusSnapshot, type ChainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotCompleted, type ChainIndexingStatusSnapshotFollowing, type ChainIndexingStatusSnapshotForOmnichainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotQueued, ClientError, type ClientOptions, type ConfigResponse, type CrossChainIndexingStatusSnapshot, type CrossChainIndexingStatusSnapshotOmnichain, type CrossChainIndexingStrategyId, CrossChainIndexingStrategyIds, type CurrencyAmount, type CurrencyId, CurrencyIds, type CurrencyInfo, DEFAULT_EVM_CHAIN_ID, DEFAULT_EVM_COIN_TYPE, type DNSEncodedLiteralName, type DNSEncodedName, type DNSEncodedPartiallyInterpretedName, type Datetime, type DatetimeISO8601, type DeepPartial, type DefaultableChainId, type DomainAssetId, type Duration, type ENSApiPublicConfig, type ENSIndexerPublicConfig, type ENSIndexerVersionInfo, ENSNodeClient, ENS_ROOT, ETH_COIN_TYPE, ETH_NODE, type EncodedLabelHash, type EnsRainbowClientLabelSet, type EnsRainbowServerLabelSet, type ErrorResponse, type ForwardResolutionArgs, ForwardResolutionProtocolStep, type ForwardResolutionResult, type Identity, type IndexingStatusRequest, type IndexingStatusResponse, type IndexingStatusResponseCode, IndexingStatusResponseCodes, type IndexingStatusResponseError, type IndexingStatusResponseOk, type InterpretedLabel, type InterpretedName, LINEANAMES_NODE, type Label, type LabelHash, type LabelSetId, type LabelSetVersion, type LiteralLabel, type LiteralName, LruCache, type MultichainPrimaryNameResolutionArgs, type MultichainPrimaryNameResolutionResult, type NFTMintStatus, NFTMintStatuses, type NFTTransferEventMetadata, type NFTTransferType, NFTTransferTypes, type Name, type NameToken, type NameTokenOwnership, type NameTokenOwnershipBurned, type NameTokenOwnershipFullyOnchain, type NameTokenOwnershipNameWrapper, type NameTokenOwnershipType, NameTokenOwnershipTypes, type NameTokenOwnershipUnknown, type NameTokensRequest, type NameTokensRequestByDomainId, type NameTokensRequestByName, type NameTokensResponse, type NameTokensResponseCode, NameTokensResponseCodes, type NameTokensResponseError, type NameTokensResponseErrorCode, NameTokensResponseErrorCodes, type NameTokensResponseErrorEnsIndexerConfigUnsupported, type NameTokensResponseErrorIndexingStatusUnsupported, type NameTokensResponseErrorNameTokensNotIndexed, type NameTokensResponseOk, type NamedIdentity, type NamedRegistrarAction, type Node, type NormalizedName, type OmnichainIndexingStatusId, OmnichainIndexingStatusIds, type OmnichainIndexingStatusSnapshot, type OmnichainIndexingStatusSnapshotBackfill, type OmnichainIndexingStatusSnapshotCompleted, type OmnichainIndexingStatusSnapshotFollowing, type OmnichainIndexingStatusSnapshotUnstarted, PROTOCOL_ATTRIBUTE_PREFIX, PluginName, type Price, type PriceDai, type PriceEth, type PriceUsdc, RECORDS_PER_PAGE_DEFAULT, RECORDS_PER_PAGE_MAX, ROOT_NODE, type RealtimeIndexingStatusProjection, type ReferrerDetailRequest, type ReferrerDetailResponse, type ReferrerDetailResponseCode, ReferrerDetailResponseCodes, type ReferrerDetailResponseError, type ReferrerDetailResponseOk, type ReferrerLeaderboardPageRequest, type ReferrerLeaderboardPageResponse, type ReferrerLeaderboardPageResponseCode, ReferrerLeaderboardPageResponseCodes, type ReferrerLeaderboardPageResponseError, type ReferrerLeaderboardPageResponseOk, type RegisteredNameTokens, type RegistrarAction, type RegistrarActionEventId, type RegistrarActionPricing, type RegistrarActionPricingAvailable, type RegistrarActionPricingUnknown, type RegistrarActionReferral, type RegistrarActionReferralAvailable, type RegistrarActionReferralNotApplicable, type RegistrarActionType, RegistrarActionTypes, type RegistrarActionsFilter, type RegistrarActionsFilterByDecodedReferrer, type RegistrarActionsFilterBySubregistryNode, type RegistrarActionsFilterType, RegistrarActionsFilterTypes, type RegistrarActionsFilterWithEncodedReferral, type RegistrarActionsOrder, RegistrarActionsOrders, type RegistrarActionsRequest, type RegistrarActionsResponse, type RegistrarActionsResponseCode, RegistrarActionsResponseCodes, type RegistrarActionsResponseError, type RegistrarActionsResponseOk, type RegistrationLifecycle, type RegistrationLifecycleStage, 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, type RpcUrl, SWRCache, type SWRCacheOptions, type SerializedAssetId, type SerializedChainIndexingStatusSnapshot, type SerializedChainIndexingStatusSnapshotBackfill, type SerializedChainIndexingStatusSnapshotCompleted, type SerializedChainIndexingStatusSnapshotFollowing, type SerializedChainIndexingStatusSnapshotQueued, type SerializedConfigResponse, type SerializedCrossChainIndexingStatusSnapshot, type SerializedCrossChainIndexingStatusSnapshotOmnichain, type SerializedCurrencyAmount, type SerializedCurrentIndexingProjectionOmnichain, type SerializedDomainAssetId, type SerializedENSApiPublicConfig, type SerializedENSIndexerPublicConfig, type SerializedENSIndexerVersionInfo, type SerializedIndexedChainIds, type SerializedIndexingStatusResponse, type SerializedIndexingStatusResponseError, type SerializedIndexingStatusResponseOk, type SerializedNameToken, type SerializedNameTokensResponse, type SerializedNameTokensResponseError, type SerializedNameTokensResponseOk, type SerializedNamedRegistrarAction, type SerializedOmnichainIndexingStatusSnapshot, type SerializedOmnichainIndexingStatusSnapshotBackfill, type SerializedOmnichainIndexingStatusSnapshotCompleted, type SerializedOmnichainIndexingStatusSnapshotFollowing, type SerializedOmnichainIndexingStatusSnapshotUnstarted, type SerializedPrice, type SerializedPriceDai, type SerializedPriceEth, type SerializedPriceUsdc, type SerializedRealtimeIndexingStatusProjection, type SerializedReferrerDetailResponse, type SerializedReferrerDetailResponseError, type SerializedReferrerDetailResponseOk, type SerializedReferrerLeaderboardPageResponse, type SerializedReferrerLeaderboardPageResponseError, type SerializedReferrerLeaderboardPageResponseOk, type SerializedRegisteredNameTokens, type SerializedRegistrarAction, type SerializedRegistrarActionPricing, type SerializedRegistrarActionPricingAvailable, type SerializedRegistrarActionPricingUnknown, type SerializedRegistrarActionsResponse, type SerializedRegistrarActionsResponseError, type SerializedRegistrarActionsResponseOk, type SerializedTokenId, type SubgraphInterpretedLabel, type SubgraphInterpretedName, type Subregistry, type TheGraphCannotFallbackReason, TheGraphCannotFallbackReasonSchema, type TheGraphFallback, TheGraphFallbackSchema, type TokenId, TraceableENSProtocol, type TraceableRequest, type TraceableResponse, type TracingNode, type TracingSpan, type TracingTrace, TtlCache, type UnixTimestamp, type UnknownIdentity, type UnnamedIdentity, type UnresolvedIdentity, type UrlString, accountIdEqual, addDuration, addPrices, addrReverseLabel, asLowerCaseAddress, beautifyName, bigIntToNumber, bigintToCoinType, buildAssetId, buildEnsRainbowClientLabelSet, buildLabelSetId, buildLabelSetVersion, buildPageContext, buildUnresolvedIdentity, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotBackfill, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotCompleted, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotFollowing, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotUnstarted, coinTypeReverseLabel, coinTypeToEvmChainId, createIndexingConfig, createRealtimeIndexingStatusProjection, decodeDNSEncodedLiteralName, decodeDNSEncodedName, deserializeAssetId, deserializeBlockNumber, deserializeBlockRef, deserializeBlockrange, deserializeChainId, deserializeChainIndexingStatusSnapshot, deserializeConfigResponse, deserializeCrossChainIndexingStatusSnapshot, deserializeDatetime, deserializeDuration, deserializeENSApiPublicConfig, deserializeENSIndexerPublicConfig, deserializeErrorResponse, deserializeIndexingStatusResponse, deserializeOmnichainIndexingStatusSnapshot, deserializeRealtimeIndexingStatusProjection, deserializeReferrerDetailResponse, deserializeReferrerLeaderboardPageResponse, deserializeRegistrarActionsResponse, deserializeUnixTimestamp, deserializeUrl, deserializedNameTokensResponse, durationBetween, encodeLabelHash, evmChainIdToCoinType, formatAccountId, formatAssetId, formatNFTTransferEventMetadata, getBasenamesSubregistryId, getBasenamesSubregistryManagedName, getCurrencyInfo, getDatasourceContract, getEthnamesSubregistryId, getEthnamesSubregistryManagedName, getLatestIndexedBlockRef, getLineanamesSubregistryId, getLineanamesSubregistryManagedName, getNFTTransferType, getNameHierarchy, getNameTokenOwnership, getNameWrapperAccounts, getOmnichainIndexingCursor, getOmnichainIndexingStatus, getParentNameFQDN, getResolvePrimaryNameChainIdParam, getTimestampForHighestOmnichainKnownBlock, getTimestampForLowestOmnichainStartBlock, hasNullByte, interpretedLabelsToInterpretedName, isEncodedLabelHash, isHttpProtocol, isLabelHash, isNormalizedLabel, isNormalizedName, isPriceCurrencyEqual, isPriceEqual, isRegistrarActionPricingAvailable, isRegistrarActionReferralAvailable, isResolvedIdentity, isSelectionEmpty, isSubgraphCompatible, isWebSocketProtocol, labelHashToBytes, labelhashLiteralLabel, literalLabelToInterpretedLabel, literalLabelsToInterpretedName, literalLabelsToLiteralName, makeENSApiPublicConfigSchema, makeSubdomainNode, maybeGetDatasourceContract, nameTokensPrerequisites, parseAccountId, parseAssetId, parseNonNegativeInteger, parseReverseName, priceDai, priceEth, priceUsdc, registrarActionsFilter, registrarActionsPrerequisites, reverseName, serializeAssetId, serializeChainId, serializeChainIndexingSnapshots, serializeConfigResponse, serializeCrossChainIndexingStatusSnapshotOmnichain, serializeDatetime, serializeDomainAssetId, serializeENSApiPublicConfig, serializeENSIndexerPublicConfig, serializeIndexedChainIds, serializeIndexingStatusResponse, serializeNameToken, serializeNameTokensResponse, serializeNamedRegistrarAction, serializeOmnichainIndexingStatusSnapshot, serializePrice, serializePriceEth, serializeRealtimeIndexingStatusProjection, serializeReferrerDetailResponse, serializeReferrerLeaderboardPageResponse, serializeRegisteredNameTokens, serializeRegistrarAction, serializeRegistrarActionPricing, serializeRegistrarActionsResponse, serializeUrl, sortChainStatusesByStartBlockAsc, stripNullBytes, translateDefaultableChainIdToChainId, uint256ToHex32, uniq, validateSupportedLabelSetAndVersion };
4934
+ export { ADDR_REVERSE_NODE, ATTR_PROTOCOL_NAME, ATTR_PROTOCOL_STEP, ATTR_PROTOCOL_STEP_RESULT, type AcceleratableRequest, type AcceleratableResponse, type AccountId, type AccountIdString, type AssetId, type AssetIdString, type AssetNamespace, AssetNamespaces, BASENAMES_NODE, type BlockNumber, type BlockRef, type Blockrange, type Cache, type CanonicalId, type CanonicalPath, type ChainId, type ChainIdString, type ChainIndexingConfig, type ChainIndexingConfigDefinite, type ChainIndexingConfigIndefinite, type ChainIndexingConfigTypeId, ChainIndexingConfigTypeIds, type ChainIndexingStatusId, ChainIndexingStatusIds, type ChainIndexingStatusSnapshot, type ChainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotCompleted, type ChainIndexingStatusSnapshotFollowing, type ChainIndexingStatusSnapshotForOmnichainIndexingStatusSnapshotBackfill, type ChainIndexingStatusSnapshotQueued, ClientError, type ClientOptions, type ConfigResponse, type CrossChainIndexingStatusSnapshot, type CrossChainIndexingStatusSnapshotOmnichain, type CrossChainIndexingStrategyId, CrossChainIndexingStrategyIds, type CurrencyAmount, type CurrencyId, CurrencyIds, type CurrencyInfo, DEFAULT_EVM_CHAIN_ID, DEFAULT_EVM_COIN_TYPE, type DNSEncodedLiteralName, type DNSEncodedName, type DNSEncodedPartiallyInterpretedName, type Datetime, type DatetimeISO8601, type DeepPartial, type DefaultableChainId, type DomainAssetId, type DomainId, type Duration, type ENSApiPublicConfig, type ENSIndexerPublicConfig, type ENSIndexerVersionInfo, ENSNodeClient, ENS_ROOT, type ENSv1DomainId, type ENSv2DomainId, ETH_COIN_TYPE, ETH_NODE, type EncodedLabelHash, type EnsRainbowClientLabelSet, type EnsRainbowServerLabelSet, type ErrorResponse, type ForwardResolutionArgs, ForwardResolutionProtocolStep, type ForwardResolutionResult, type Identity, type IndexingStatusRequest, type IndexingStatusResponse, type IndexingStatusResponseCode, IndexingStatusResponseCodes, type IndexingStatusResponseError, type IndexingStatusResponseOk, type InterpretedLabel, type InterpretedName, LINEANAMES_NODE, type Label, type LabelHash, type LabelHashPath, type LabelSetId, type LabelSetVersion, type LiteralLabel, type LiteralName, LruCache, type MultichainPrimaryNameResolutionArgs, type MultichainPrimaryNameResolutionResult, type NFTMintStatus, NFTMintStatuses, type NFTTransferEventMetadata, type NFTTransferType, NFTTransferTypes, NODE_ANY, type Name, 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 Node, type NormalizedName, type OmnichainIndexingStatusId, OmnichainIndexingStatusIds, type OmnichainIndexingStatusSnapshot, type OmnichainIndexingStatusSnapshotBackfill, type OmnichainIndexingStatusSnapshotCompleted, type OmnichainIndexingStatusSnapshotFollowing, type OmnichainIndexingStatusSnapshotUnstarted, PROTOCOL_ATTRIBUTE_PREFIX, type PermissionsId, type PermissionsResourceId, type PermissionsUserId, PluginName, type Price, type PriceDai, type PriceEth, type PriceUsdc, RECORDS_PER_PAGE_DEFAULT, RECORDS_PER_PAGE_MAX, ROOT_NODE, ROOT_RESOURCE, type RealtimeIndexingStatusProjection, type ReferrerDetailRequest, type ReferrerDetailResponse, type ReferrerDetailResponseCode, ReferrerDetailResponseCodes, type ReferrerDetailResponseError, type ReferrerDetailResponseOk, type ReferrerLeaderboardPageRequest, type ReferrerLeaderboardPageResponse, type ReferrerLeaderboardPageResponseCode, ReferrerLeaderboardPageResponseCodes, type ReferrerLeaderboardPageResponseError, type ReferrerLeaderboardPageResponseOk, 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 RegistrationId, type RegistrationLifecycle, type RegistrationLifecycleStage, type RegistryId, type RenewalId, type RequestPageParams, type RequiredAndNotNull, type ResolutionStatusId, ResolutionStatusIds, type ResolvePrimaryNameRequest, type ResolvePrimaryNameResponse, type ResolvePrimaryNamesRequest, type ResolvePrimaryNamesResponse, type ResolveRecordsRequest, type ResolveRecordsResponse, type ResolvedIdentity, type ResolverId, type ResolverRecordsId, type ResolverRecordsResponse, type ResolverRecordsResponseBase, type ResolverRecordsSelection, type ResponsePageContext, type ResponsePageContextWithNoRecords, type ResponsePageContextWithRecords, type ReverseResolutionArgs, ReverseResolutionProtocolStep, type ReverseResolutionResult, type RpcUrl, SWRCache, type SWRCacheOptions, type SerializedAggregatedReferrerMetrics, type SerializedAssetId, type SerializedAwardedReferrerMetrics, type SerializedChainIndexingStatusSnapshot, type SerializedChainIndexingStatusSnapshotBackfill, type SerializedChainIndexingStatusSnapshotCompleted, type SerializedChainIndexingStatusSnapshotFollowing, type SerializedChainIndexingStatusSnapshotQueued, type SerializedConfigResponse, type SerializedCrossChainIndexingStatusSnapshot, type SerializedCrossChainIndexingStatusSnapshotOmnichain, type SerializedCurrencyAmount, type SerializedCurrentIndexingProjectionOmnichain, type SerializedDomainAssetId, type SerializedENSApiPublicConfig, type SerializedENSIndexerPublicConfig, type SerializedENSIndexerVersionInfo, type SerializedIndexedChainIds, type SerializedIndexingStatusResponse, type SerializedIndexingStatusResponseError, type SerializedIndexingStatusResponseOk, type SerializedNameToken, type SerializedNameTokensResponse, type SerializedNameTokensResponseError, type SerializedNameTokensResponseOk, type SerializedNamedRegistrarAction, type SerializedOmnichainIndexingStatusSnapshot, type SerializedOmnichainIndexingStatusSnapshotBackfill, type SerializedOmnichainIndexingStatusSnapshotCompleted, type SerializedOmnichainIndexingStatusSnapshotFollowing, type SerializedOmnichainIndexingStatusSnapshotUnstarted, type SerializedPrice, type SerializedPriceDai, type SerializedPriceEth, type SerializedPriceUsdc, type SerializedRealtimeIndexingStatusProjection, type SerializedReferralProgramRules, type SerializedReferrerDetail, type SerializedReferrerDetailRanked, type SerializedReferrerDetailResponse, type SerializedReferrerDetailResponseError, type SerializedReferrerDetailResponseOk, type SerializedReferrerDetailUnranked, type SerializedReferrerLeaderboardPage, type SerializedReferrerLeaderboardPageResponse, type SerializedReferrerLeaderboardPageResponseError, type SerializedReferrerLeaderboardPageResponseOk, type SerializedRegisteredNameTokens, type SerializedRegistrarAction, type SerializedRegistrarActionPricing, type SerializedRegistrarActionPricingAvailable, type SerializedRegistrarActionPricingUnknown, type SerializedRegistrarActionsResponse, type SerializedRegistrarActionsResponseError, type SerializedRegistrarActionsResponseOk, type SerializedRevenueContribution, type SerializedTokenId, type SerializedUnrankedReferrerMetrics, type SubgraphInterpretedLabel, type SubgraphInterpretedName, type Subregistry, type TheGraphCannotFallbackReason, TheGraphCannotFallbackReasonSchema, type TheGraphFallback, TheGraphFallbackSchema, type TokenId, TraceableENSProtocol, type TraceableRequest, type TraceableResponse, type TracingNode, type TracingSpan, type TracingTrace, TtlCache, type UnixTimestamp, type UnknownIdentity, type UnnamedIdentity, type UnresolvedIdentity, type UrlString, accountIdEqual, addDuration, addPrices, addrReverseLabel, asLowerCaseAddress, beautifyName, bigIntToNumber, bigintToCoinType, buildAssetId, buildEnsRainbowClientLabelSet, buildLabelSetId, buildLabelSetVersion, buildPageContext, buildUnresolvedIdentity, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotBackfill, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotCompleted, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotFollowing, checkChainIndexingStatusSnapshotsForOmnichainStatusSnapshotUnstarted, coinTypeReverseLabel, coinTypeToEvmChainId, createIndexingConfig, createRealtimeIndexingStatusProjection, decodeDNSEncodedLiteralName, decodeDNSEncodedName, deserializeAssetId, deserializeBlockNumber, deserializeBlockRef, deserializeBlockrange, deserializeChainId, deserializeChainIndexingStatusSnapshot, deserializeConfigResponse, deserializeCrossChainIndexingStatusSnapshot, deserializeDatetime, deserializeDuration, deserializeENSApiPublicConfig, deserializeENSIndexerPublicConfig, deserializeErrorResponse, deserializeIndexingStatusResponse, deserializeOmnichainIndexingStatusSnapshot, deserializeRealtimeIndexingStatusProjection, deserializeReferrerDetailResponse, deserializeReferrerLeaderboardPageResponse, deserializeRegistrarActionsResponse, deserializeUnixTimestamp, deserializeUrl, deserializedNameTokensResponse, durationBetween, encodeLabelHash, encodedLabelToLabelhash, evmChainIdToCoinType, formatAccountId, formatAssetId, formatNFTTransferEventMetadata, getBasenamesSubregistryId, getBasenamesSubregistryManagedName, getCanonicalId, getCurrencyInfo, getDatasourceContract, getENSv1Registry, getENSv2RootRegistry, getENSv2RootRegistryId, getEthnamesSubregistryId, getEthnamesSubregistryManagedName, getLatestIndexedBlockRef, getLineanamesSubregistryId, getLineanamesSubregistryManagedName, getNFTTransferType, getNameHierarchy, getNameTokenOwnership, getNameWrapperAccounts, getOmnichainIndexingCursor, getOmnichainIndexingStatus, getParentNameFQDN, getResolvePrimaryNameChainIdParam, getTimestampForHighestOmnichainKnownBlock, getTimestampForLowestOmnichainStartBlock, hasNullByte, interpretAddress, interpretAddressRecordValue, interpretNameRecordValue, interpretTextRecordKey, interpretTextRecordValue, interpretTokenIdAsLabelHash, interpretTokenIdAsNode, interpretedLabelsToInterpretedName, interpretedNameToInterpretedLabels, interpretedNameToLabelHashPath, isENSv1Registry, isENSv2RootRegistry, isEncodedLabelHash, isHttpProtocol, isInterpetedLabel, isInterpretedName, isLabelHash, isNormalizedLabel, isNormalizedName, isPccFuseSet, isPriceCurrencyEqual, isPriceEqual, isRegistrarActionPricingAvailable, isRegistrarActionReferralAvailable, isRegistrationExpired, isRegistrationFullyExpired, isRegistrationInGracePeriod, isResolvedIdentity, isSelectionEmpty, isSubgraphCompatible, isWebSocketProtocol, labelHashToBytes, labelhashLiteralLabel, literalLabelToInterpretedLabel, literalLabelsToInterpretedName, literalLabelsToLiteralName, makeContractMatcher, makeENSApiPublicConfigSchema, makeENSv1DomainId, makeENSv2DomainId, makeLatestRegistrationId, makeLatestRenewalId, makePermissionsId, makePermissionsResourceId, makePermissionsUserId, makeRegistrationId, makeRegistryId, makeRenewalId, makeResolverId, makeResolverRecordsId, makeSubdomainNode, maybeGetDatasourceContract, nameTokensPrerequisites, parseAccountId, parseAssetId, parseNonNegativeInteger, parseReverseName, priceDai, priceEth, priceUsdc, registrarActionsFilter, registrarActionsPrerequisites, reverseName, serializeAssetId, serializeChainId, serializeChainIndexingSnapshots, serializeConfigResponse, serializeCrossChainIndexingStatusSnapshotOmnichain, serializeDatetime, serializeDomainAssetId, serializeENSApiPublicConfig, serializeENSIndexerPublicConfig, serializeIndexedChainIds, serializeIndexingStatusResponse, serializeNameToken, serializeNameTokensResponse, serializeNamedRegistrarAction, serializeOmnichainIndexingStatusSnapshot, serializePrice, serializePriceEth, serializeRealtimeIndexingStatusProjection, serializeReferrerDetailResponse, serializeReferrerLeaderboardPageResponse, serializeRegisteredNameTokens, serializeRegistrarAction, serializeRegistrarActionPricing, serializeRegistrarActionsResponse, serializeUrl, sortChainStatusesByStartBlockAsc, stripNullBytes, translateDefaultableChainIdToChainId, uint256ToHex32, uniq, validateSupportedLabelSetAndVersion };