@ensnode/ensnode-sdk 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,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
  *
@@ -495,6 +659,30 @@ interface AccountId {
495
659
  chainId: ChainId;
496
660
  address: Address;
497
661
  }
662
+ /**
663
+ * An enum representing the possible CAIP-19 Asset Namespace values.
664
+ *
665
+ * @see https://chainagnostic.org/CAIPs/caip-19
666
+ */
667
+ declare const AssetNamespaces: {
668
+ readonly ERC721: "erc721";
669
+ readonly ERC1155: "erc1155";
670
+ };
671
+ type AssetNamespace = (typeof AssetNamespaces)[keyof typeof AssetNamespaces];
672
+ /**
673
+ * A uint256 value that identifies a specific NFT within a NFT contract.
674
+ */
675
+ type TokenId = bigint;
676
+ /**
677
+ * Represents an Asset in `assetNamespace` by `tokenId` in `contract`.
678
+ *
679
+ * @see https://chainagnostic.org/CAIPs/caip-19
680
+ */
681
+ interface AssetId {
682
+ assetNamespace: AssetNamespace;
683
+ contract: AccountId;
684
+ tokenId: TokenId;
685
+ }
498
686
  /**
499
687
  * Block Number
500
688
  *
@@ -585,6 +773,12 @@ type Duration = number;
585
773
  type DeepPartial<T> = {
586
774
  [P in keyof T]?: T[P] extends (infer U)[] ? DeepPartial<U>[] : T[P] extends object ? DeepPartial<T[P]> : T[P];
587
775
  };
776
+ /**
777
+ * Marks keys in K as required (not undefined) and not null.
778
+ */
779
+ type RequiredAndNotNull<T, K extends keyof T> = T & {
780
+ [P in K]-?: NonNullable<T[P]>;
781
+ };
588
782
 
589
783
  /**
590
784
  * Determines where the provided AccountId values represent the same address on the same chain.
@@ -861,20 +1055,18 @@ declare function addPrices<const PriceType extends Price = Price>(...prices: [Pr
861
1055
  * This is useful when you want to retrieve the AccountId for a contract by its name
862
1056
  * where it may or may not actually be defined for the given namespace and datasource.
863
1057
  *
864
- * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'holesky',
865
- * 'ens-test-env')
1058
+ * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'ens-test-env')
866
1059
  * @param datasourceName - The name of the Datasource to search for contractName in
867
1060
  * @param contractName - The name of the contract to retrieve
868
1061
  * @returns The AccountId of the contract with the given namespace, datasource,
869
1062
  * and contract name, or undefined if it is not found or is not a single AccountId
870
1063
  */
871
- declare const maybeGetDatasourceContract: (namespaceId: ENSNamespaceId, datasourceName: DatasourceName, contractName: string) => AccountId | undefined;
1064
+ declare const maybeGetDatasourceContract: <N extends ENSNamespaceId, D extends DatasourceName, C extends string>(namespaceId: N, datasourceName: D, contractName: C) => AccountId | undefined;
872
1065
  /**
873
1066
  * Gets the AccountId for the contract in the specified namespace, datasource, and
874
1067
  * contract name, or throws an error if it is not defined or is not a single AccountId.
875
1068
  *
876
- * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'holesky',
877
- * 'ens-test-env')
1069
+ * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'ens-test-env')
878
1070
  * @param datasourceName - The name of the Datasource to search for contractName in
879
1071
  * @param contractName - The name of the contract to retrieve
880
1072
  * @returns The AccountId of the contract with the given namespace, datasource,
@@ -882,6 +1074,10 @@ declare const maybeGetDatasourceContract: (namespaceId: ENSNamespaceId, datasour
882
1074
  * @throws Error if the contract is not found or is not a single AccountId
883
1075
  */
884
1076
  declare const getDatasourceContract: (namespaceId: ENSNamespaceId, datasourceName: DatasourceName, contractName: string) => AccountId;
1077
+ /**
1078
+ * Makes a comparator fn for `b` against the contract described by `namespace`, `datasourceName`, and `contractName`.
1079
+ */
1080
+ declare const makeContractMatcher: (namespace: ENSNamespaceId, b: AccountId) => (datasourceName: DatasourceName, contractName: string) => boolean | undefined;
885
1081
 
886
1082
  /**
887
1083
  * Duration between two moments in time.
@@ -914,6 +1110,16 @@ type UrlString = string;
914
1110
  * @see https://chainagnostic.org/CAIPs/caip-10
915
1111
  */
916
1112
  type AccountIdString = string;
1113
+ /**
1114
+ * String representation of {@link AssetId}.
1115
+ *
1116
+ * Formatted as a fully lowercase CAIP-19 AssetId.
1117
+ *
1118
+ * @see https://chainagnostic.org/CAIPs/caip-19
1119
+ * @example "eip155:1/erc721:0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85/0xaf2caa1c2ca1d027f1ac823b529d0a67cd144264b2789fa2ea4d63a67c7103cc"
1120
+ * for vitalik.eth in the eth base registrar on mainnet.
1121
+ */
1122
+ type AssetIdString = string;
917
1123
 
918
1124
  declare function deserializeChainId(maybeChainId: ChainIdString, valueLabel?: string): ChainId;
919
1125
  declare function deserializeDatetime(maybeDatetime: string, valueLabel?: string): Datetime;
@@ -928,6 +1134,104 @@ declare function deserializeBlockRef(maybeBlockRef: Partial<BlockRef>, valueLabe
928
1134
  declare function deserializeDuration(maybeDuration: unknown, valueLabel?: string): Duration;
929
1135
  declare function parseAccountId(maybeAccountId: unknown, valueLabel?: string): AccountId;
930
1136
 
1137
+ /**
1138
+ * Interprets a viem#Address. zeroAddress is interpreted as null, otherwise Address.
1139
+ */
1140
+ declare const interpretAddress: (owner: Address) => `0x${string}` | null;
1141
+
1142
+ /**
1143
+ * Interprets a name record value string and returns null if the value is interpreted as a deletion.
1144
+ *
1145
+ * The interpreted record value is either:
1146
+ * a) null, representing a non-existant or deletion of the record, or
1147
+ * b) a normalized, non-empty-string Name.
1148
+ *
1149
+ * @param value - The name record value string to interpret.
1150
+ * @returns The interpreted name string, or null if deleted.
1151
+ */
1152
+ declare function interpretNameRecordValue(value: string): NormalizedName | null;
1153
+ /**
1154
+ * Interprets an address record value string and returns null if the value is interpreted as a deletion.
1155
+ *
1156
+ * The interpreted record value is either:
1157
+ * a) null, representing a non-existant or deletion of the record, or
1158
+ * i. contains null bytes
1159
+ * ii. empty string
1160
+ * iii. empty hex (0x)
1161
+ * iv. zeroAddress
1162
+ * b) an address record value that
1163
+ * i. does not contain null bytes
1164
+ * ii. (if is an EVM address) is lowercase
1165
+ *
1166
+ * @param value - The address record value to interpret.
1167
+ * @returns The interpreted address string or null if deleted.
1168
+ */
1169
+ declare function interpretAddressRecordValue(value: string): string | null;
1170
+ /**
1171
+ * Interprets a text record key string and returns null if the key should be ignored.
1172
+ *
1173
+ * The interpreted text record key is either:
1174
+ * a) null, representing a text record key that should be ignored, or
1175
+ * i. contains null bytes
1176
+ * ii. empty string
1177
+ * b) a text record key that
1178
+ * i. does not contain null bytes
1179
+ *
1180
+ * @param value - The text record key to interpret.
1181
+ * @returns The interpreted text string or null if ignored.
1182
+ */
1183
+ declare function interpretTextRecordKey(key: string): string | null;
1184
+ /**
1185
+ * Interprets a text record value string and returns null if the value is interpreted as a deletion.
1186
+ *
1187
+ * The interpreted record value is either:
1188
+ * a) null, representing a non-existant or deletion of the record, or
1189
+ * i. contains null bytes
1190
+ * ii. empty string
1191
+ * b) a text record value that
1192
+ * i. does not contain null bytes
1193
+ *
1194
+ * @param value - The text record value to interpret.
1195
+ * @returns The interpreted text string or null if deleted.
1196
+ */
1197
+ declare function interpretTextRecordValue(value: string): string | null;
1198
+
1199
+ /**
1200
+ * Decodes a uint256-encoded-LabelHash (eg. from a tokenId) into a {@link LabelHash}.
1201
+ *
1202
+ * Remember that contracts that operate in the context of a Managed Name frequently store and operate
1203
+ * over _LabelHashes_ that represent a direct subname of a Managed Name. These contracts also frequently
1204
+ * implement ERC721 or ERC1155 to represent ownership of these Names. As such, to construct the
1205
+ * ERC721/ERC1155 tokenId, they may encode the direct subnames's LabelHash as a uint256.
1206
+ *
1207
+ * This is true for the ENSv1 BaseRegistrar, RegistrarControllers, as well as any
1208
+ * contracts forked from it (which includes Basenames' and Lineanames' implementations).
1209
+ *
1210
+ * So, in order to turn the tokenId into a LabelHash, we perform the opposite operation, decoding
1211
+ * from a uint256 into a Hex (of size 32) and cast it as our semantic {@link LabelHash} type.
1212
+ *
1213
+ * @see https://github.com/ensdomains/ens-contracts/blob/db613bc/contracts/ethregistrar/ETHRegistrarController.sol#L215
1214
+ * @see https://github.com/base/basenames/blob/1b5c1ad/src/L2/RegistrarController.sol#L488
1215
+ * @see https://github.com/Consensys/linea-ens/blob/3a4f02f/packages/linea-ens-contracts/contracts/ethregistrar/ETHRegistrarController.sol#L447
1216
+ */
1217
+ declare const interpretTokenIdAsLabelHash: (tokenId: bigint) => LabelHash;
1218
+ /**
1219
+ * Decodes a uint256-encoded-Node (eg. from a tokenId) into a {@link Node}.
1220
+ *
1221
+ * Contracts in the ENSv1 ecosystem frequently implement ERC721 or ERC1155 to represent
1222
+ * ownership of a Domain. As such, to construct the ERC721/ERC1155 tokenId, they may encode the
1223
+ * domain's {@link Node} as a uint256.
1224
+ *
1225
+ * This is true for the ENSv1 NameWrapper, as well as any contracts forked from it (which includes
1226
+ * Lineanames' implementation).
1227
+ *
1228
+ * So, in order to turn the tokenId into a Node, we perform the opposite operation, decoding
1229
+ * from a uint256 into a Hex (of size 32) and cast it as our semantic {@link Node} type.
1230
+ *
1231
+ * @see https://github.com/ensdomains/ens-contracts/blob/db613bc/contracts/wrapper/ERC1155Fuse.sol#L262
1232
+ */
1233
+ declare const interpretTokenIdAsNode: (tokenId: bigint) => Node;
1234
+
931
1235
  /**
932
1236
  * Interprets a Literal Label, producing an Interpreted Label.
933
1237
  *
@@ -970,6 +1274,17 @@ declare function interpretedLabelsToInterpretedName(labels: InterpretedLabel[]):
970
1274
  * @returns An LiteralName
971
1275
  */
972
1276
  declare function literalLabelsToLiteralName(labels: LiteralLabel[]): LiteralName;
1277
+ /**
1278
+ * Converts an Interpreted Name into a list of Interpreted Labels.
1279
+ */
1280
+ declare function interpretedNameToInterpretedLabels(name: InterpretedName): InterpretedLabel[];
1281
+ declare function encodedLabelToLabelhash(label: string): LabelHash | null;
1282
+ declare function isInterpetedLabel(label: Label): label is InterpretedLabel;
1283
+ declare function isInterpretedName(name: Name): name is InterpretedName;
1284
+ /**
1285
+ * Converts an InterpretedName into a LabelHashPath.
1286
+ */
1287
+ declare function interpretedNameToLabelHashPath(name: InterpretedName): LabelHashPath;
973
1288
 
974
1289
  /**
975
1290
  * Implements the ENS `labelhash` function for Literal Labels.
@@ -992,6 +1307,27 @@ declare const stripNullBytes: (value: string) => string;
992
1307
  */
993
1308
  declare function bigIntToNumber(n: bigint): number;
994
1309
 
1310
+ /**
1311
+ * Gets the AccountId representing the ENSv1 Registry in the selected `namespace`.
1312
+ */
1313
+ declare const getENSv1Registry: (namespace: ENSNamespaceId) => AccountId;
1314
+ /**
1315
+ * Determines whether `contract` is the ENSv1 Registry in `namespace`.
1316
+ */
1317
+ declare const isENSv1Registry: (namespace: ENSNamespaceId, contract: AccountId) => boolean;
1318
+ /**
1319
+ * Gets the AccountId representing the ENSv2 Root Registry in the selected `namespace`.
1320
+ */
1321
+ declare const getENSv2RootRegistry: (namespace: ENSNamespaceId) => AccountId;
1322
+ /**
1323
+ * Gets the RegistryId representing the ENSv2 Root Registry in the selected `namespace`.
1324
+ */
1325
+ declare const getENSv2RootRegistryId: (namespace: ENSNamespaceId) => RegistryId;
1326
+ /**
1327
+ * Determines whether `contract` is the ENSv2 Root Registry in `namespace`.
1328
+ */
1329
+ declare const isENSv2RootRegistry: (namespace: ENSNamespaceId, contract: AccountId) => boolean;
1330
+
995
1331
  /**
996
1332
  * Serializes a {@link ChainId} value into its string representation.
997
1333
  */
@@ -1020,15 +1356,20 @@ declare function serializePriceEth(price: PriceEth): SerializedPriceEth;
1020
1356
  * @see https://chainagnostic.org/CAIPs/caip-10
1021
1357
  */
1022
1358
  declare function formatAccountId(accountId: AccountId): AccountIdString;
1359
+ /**
1360
+ * Format {@link AssetId} object as a string.
1361
+ *
1362
+ * Formatted as a fully lowercase CAIP-19 AssetId.
1363
+ *
1364
+ * @see https://chainagnostic.org/CAIPs/caip-19
1365
+ */
1366
+ declare function formatAssetId({ assetNamespace, contract: { chainId, address }, tokenId, }: AssetId): AssetIdString;
1023
1367
 
1024
1368
  declare function isHttpProtocol(url: URL): boolean;
1025
1369
  declare function isWebSocketProtocol(url: URL): boolean;
1026
1370
 
1027
1371
  /**
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
- *
1372
+ * A label set ID identifies a label set (see https://ensnode.io/ensrainbow/concepts/glossary#label-set for definition).
1032
1373
  * It is guaranteed to be 1 to 50 characters long and contain only lowercase letters (a-z)
1033
1374
  * and hyphens (-).
1034
1375
  */
@@ -1086,7 +1427,8 @@ declare enum PluginName {
1086
1427
  ThreeDNS = "threedns",
1087
1428
  ProtocolAcceleration = "protocol-acceleration",
1088
1429
  Registrars = "registrars",
1089
- TokenScope = "tokenscope"
1430
+ TokenScope = "tokenscope",
1431
+ ENSv2 = "ensv2"
1090
1432
  }
1091
1433
  /**
1092
1434
  * Version info about ENSIndexer and its dependencies.
@@ -2025,63 +2367,32 @@ declare function serializeChainIndexingSnapshots<ChainIndexingStatusSnapshotType
2025
2367
  */
2026
2368
  declare function serializeOmnichainIndexingStatusSnapshot(indexingStatus: OmnichainIndexingStatusSnapshot): SerializedOmnichainIndexingStatusSnapshot;
2027
2369
 
2370
+ /**
2371
+ * Reasons why TheGraph fallback cannot be used.
2372
+ */
2028
2373
  declare const TheGraphCannotFallbackReasonSchema: z.ZodEnum<{
2029
2374
  readonly NotSubgraphCompatible: "not-subgraph-compatible";
2030
2375
  readonly NoApiKey: "no-api-key";
2031
2376
  readonly NoSubgraphUrl: "no-subgraph-url";
2032
2377
  }>;
2033
- declare const TheGraphFallbackSchema: z.ZodObject<{
2034
- canFallback: z.ZodBoolean;
2035
- reason: z.ZodNullable<z.ZodEnum<{
2378
+ type TheGraphCannotFallbackReason = z.infer<typeof TheGraphCannotFallbackReasonSchema>;
2379
+ /**
2380
+ * Configuration for TheGraph fallback behavior.
2381
+ * Indicates whether fallback to TheGraph is possible and the reason if not.
2382
+ */
2383
+ declare const TheGraphFallbackSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2384
+ canFallback: z.ZodLiteral<true>;
2385
+ url: z.ZodString;
2386
+ }, z.core.$strict>, z.ZodObject<{
2387
+ canFallback: z.ZodLiteral<false>;
2388
+ reason: z.ZodEnum<{
2036
2389
  readonly NotSubgraphCompatible: "not-subgraph-compatible";
2037
2390
  readonly NoApiKey: "no-api-key";
2038
2391
  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>;
2392
+ }>;
2393
+ }, z.core.$strict>]>;
2084
2394
  type TheGraphFallback = z.infer<typeof TheGraphFallbackSchema>;
2395
+
2085
2396
  /**
2086
2397
  * Complete public configuration object for ENSApi.
2087
2398
  *
@@ -2128,6 +2439,50 @@ declare function deserializeENSApiPublicConfig(maybeConfig: SerializedENSApiPubl
2128
2439
  */
2129
2440
  declare function serializeENSApiPublicConfig(config: ENSApiPublicConfig): SerializedENSApiPublicConfig;
2130
2441
 
2442
+ /**
2443
+ * Create a Zod schema for validating a serialized ENSApiPublicConfig.
2444
+ *
2445
+ * @param valueLabel - Optional label for the value being validated (used in error messages)
2446
+ */
2447
+ declare function makeENSApiPublicConfigSchema(valueLabel?: string): z.ZodObject<{
2448
+ version: z.ZodString;
2449
+ theGraphFallback: z.ZodDiscriminatedUnion<[z.ZodObject<{
2450
+ canFallback: z.ZodLiteral<true>;
2451
+ url: z.ZodString;
2452
+ }, z.core.$strict>, z.ZodObject<{
2453
+ canFallback: z.ZodLiteral<false>;
2454
+ reason: z.ZodEnum<{
2455
+ readonly NotSubgraphCompatible: "not-subgraph-compatible";
2456
+ readonly NoApiKey: "no-api-key";
2457
+ readonly NoSubgraphUrl: "no-subgraph-url";
2458
+ }>;
2459
+ }, z.core.$strict>]>;
2460
+ ensIndexerPublicConfig: z.ZodObject<{
2461
+ labelSet: z.ZodObject<{
2462
+ labelSetId: z.ZodString;
2463
+ labelSetVersion: z.ZodPipe<z.ZodCoercedNumber<unknown>, z.ZodInt>;
2464
+ }, z.core.$strip>;
2465
+ indexedChainIds: z.ZodPipe<z.ZodArray<z.ZodPipe<z.ZodInt, z.ZodTransform<number, number>>>, z.ZodTransform<Set<number>, number[]>>;
2466
+ isSubgraphCompatible: z.ZodBoolean;
2467
+ namespace: z.ZodEnum<{
2468
+ readonly Mainnet: "mainnet";
2469
+ readonly Sepolia: "sepolia";
2470
+ readonly EnsTestEnv: "ens-test-env";
2471
+ }>;
2472
+ plugins: z.ZodArray<z.ZodString>;
2473
+ databaseSchemaName: z.ZodString;
2474
+ versionInfo: z.ZodObject<{
2475
+ nodejs: z.ZodString;
2476
+ ponder: z.ZodString;
2477
+ ensDb: z.ZodString;
2478
+ ensIndexer: z.ZodString;
2479
+ ensNormalize: z.ZodString;
2480
+ ensRainbow: z.ZodString;
2481
+ ensRainbowSchema: z.ZodInt;
2482
+ }, z.core.$strict>;
2483
+ }, z.core.$strip>;
2484
+ }, z.core.$strict>;
2485
+
2131
2486
  /**
2132
2487
  * ENSApi Public Config Response
2133
2488
  */
@@ -2241,50 +2596,24 @@ declare const nameTokensPrerequisites: Readonly<{
2241
2596
 
2242
2597
  /**
2243
2598
  * Represents request to Name Tokens API.
2599
+ *
2600
+ * Either `domainId` or `name` must be provided, but not both.
2244
2601
  */
2245
- interface NameTokensRequestByDomainId {
2246
- domainId: Node;
2602
+ interface NameTokensRequest {
2247
2603
  /**
2248
- * Name for which name tokens were requested.
2604
+ * Domain ID (namehash) for which name tokens were requested.
2249
2605
  */
2250
- name?: undefined;
2251
- }
2252
- /**
2253
- * Represents request to Name Tokens API.
2254
- */
2255
- interface NameTokensRequestByName {
2256
- domainId?: undefined;
2606
+ domainId?: Node;
2257
2607
  /**
2258
2608
  * Name for which name tokens were requested.
2259
2609
  */
2260
- name: Name;
2610
+ name?: Name;
2261
2611
  }
2262
- type NameTokensRequest = NameTokensRequestByDomainId | NameTokensRequestByName;
2263
2612
 
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
2613
  /**
2277
2614
  * Serialized representation of {@link TokenId}.
2278
2615
  */
2279
2616
  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
2617
  /**
2289
2618
  * Serialized representation of {@link AssetId}.
2290
2619
  */
@@ -2292,27 +2621,13 @@ interface SerializedAssetId extends Omit<AssetId, "tokenId"> {
2292
2621
  tokenId: SerializedTokenId;
2293
2622
  }
2294
2623
  /**
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.
2624
+ * Serializes {@link AssetId} object to a structured form.
2306
2625
  */
2307
2626
  declare function serializeAssetId(assetId: AssetId): SerializedAssetId;
2308
2627
  /**
2309
2628
  * Deserialize a {@link AssetId} object.
2310
2629
  */
2311
2630
  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
2631
  /**
2317
2632
  * Parse a stringified representation of {@link AssetId} object.
2318
2633
  */
@@ -3264,6 +3579,25 @@ interface SerializedRegistrarAction extends Omit<RegistrarAction, "pricing"> {
3264
3579
  declare function serializeRegistrarActionPricing(pricing: RegistrarActionPricing): SerializedRegistrarActionPricing;
3265
3580
  declare function serializeRegistrarAction(registrarAction: RegistrarAction): SerializedRegistrarAction;
3266
3581
 
3582
+ interface RegistrationExpiryInfo {
3583
+ expiry: bigint | null;
3584
+ gracePeriod: bigint | null;
3585
+ }
3586
+ /**
3587
+ * Returns whether Registration is expired. If the Registration includes a Grace Period, the
3588
+ * Grace Period window is considered expired.
3589
+ */
3590
+ declare function isRegistrationExpired(info: RegistrationExpiryInfo, now: bigint): boolean;
3591
+ /**
3592
+ * Returns whether Registration is fully expired. If the Registration includes a Grace Period, the
3593
+ * Grace Period window is considered NOT fully-expired.
3594
+ */
3595
+ declare function isRegistrationFullyExpired(info: RegistrationExpiryInfo, now: bigint): boolean;
3596
+ /**
3597
+ * Returns whether Registration is in grace period.
3598
+ */
3599
+ declare function isRegistrationInGracePeriod(info: RegistrationExpiryInfo, now: bigint): boolean;
3600
+
3267
3601
  declare const RECORDS_PER_PAGE_DEFAULT = 10;
3268
3602
  declare const RECORDS_PER_PAGE_MAX = 100;
3269
3603
  /**
@@ -3392,6 +3726,19 @@ type RegistrarActionsResponseOk = {
3392
3726
  responseCode: typeof RegistrarActionsResponseCodes.Ok;
3393
3727
  registrarActions: NamedRegistrarAction[];
3394
3728
  pageContext: ResponsePageContext;
3729
+ /**
3730
+ * The {@link UnixTimestamp} of when the data used to build the list of {@link NamedRegistrarAction} was accurate as of.
3731
+ *
3732
+ * @remarks
3733
+ * **Note:** This value represents the `slowestChainIndexingCursor` from the latest omnichain indexing status
3734
+ * snapshot captured by ENSApi. The state returned in the response is guaranteed to be accurate as of this
3735
+ * timestamp but may be from a timestamp higher than this value.
3736
+ *
3737
+ * **Temporary:** This field is currently optional to maintain backward compatibility with ENS Awards
3738
+ * using older snapshot NPM packages. This will be changed to required in a future release.
3739
+ * See: https://github.com/namehash/ensnode/issues/1497
3740
+ */
3741
+ accurateAsOf?: UnixTimestamp;
3395
3742
  };
3396
3743
  /**
3397
3744
  * A response when Registrar Actions are unavailable.
@@ -3441,6 +3788,8 @@ declare const RegistrarActionsFilterTypes: {
3441
3788
  readonly BySubregistryNode: "bySubregistryNode";
3442
3789
  readonly WithEncodedReferral: "withEncodedReferral";
3443
3790
  readonly ByDecodedReferrer: "byDecodedReferrer";
3791
+ readonly BeginTimestamp: "beginTimestamp";
3792
+ readonly EndTimestamp: "endTimestamp";
3444
3793
  };
3445
3794
  type RegistrarActionsFilterType = (typeof RegistrarActionsFilterTypes)[keyof typeof RegistrarActionsFilterTypes];
3446
3795
  type RegistrarActionsFilterBySubregistryNode = {
@@ -3454,7 +3803,15 @@ type RegistrarActionsFilterByDecodedReferrer = {
3454
3803
  filterType: typeof RegistrarActionsFilterTypes.ByDecodedReferrer;
3455
3804
  value: Address;
3456
3805
  };
3457
- type RegistrarActionsFilter = RegistrarActionsFilterBySubregistryNode | RegistrarActionsFilterWithEncodedReferral | RegistrarActionsFilterByDecodedReferrer;
3806
+ type RegistrarActionsFilterBeginTimestamp = {
3807
+ filterType: typeof RegistrarActionsFilterTypes.BeginTimestamp;
3808
+ value: UnixTimestamp;
3809
+ };
3810
+ type RegistrarActionsFilterEndTimestamp = {
3811
+ filterType: typeof RegistrarActionsFilterTypes.EndTimestamp;
3812
+ value: UnixTimestamp;
3813
+ };
3814
+ type RegistrarActionsFilter = RegistrarActionsFilterBySubregistryNode | RegistrarActionsFilterWithEncodedReferral | RegistrarActionsFilterByDecodedReferrer | RegistrarActionsFilterBeginTimestamp | RegistrarActionsFilterEndTimestamp;
3458
3815
  /**
3459
3816
  * Records Orders
3460
3817
  */
@@ -3491,10 +3848,26 @@ declare function withReferral(withReferral: false | undefined): undefined;
3491
3848
  */
3492
3849
  declare function byDecodedReferrer(decodedReferrer: Address): RegistrarActionsFilter;
3493
3850
  declare function byDecodedReferrer(decodedReferrer: undefined): undefined;
3851
+ /**
3852
+ * Build a "begin timestamp" filter object for Registrar Actions query.
3853
+ *
3854
+ * Filters registrar actions to only include those at or after the specified timestamp (inclusive).
3855
+ */
3856
+ declare function beginTimestamp(timestamp: UnixTimestamp): RegistrarActionsFilter;
3857
+ declare function beginTimestamp(timestamp: undefined): undefined;
3858
+ /**
3859
+ * Build an "end timestamp" filter object for Registrar Actions query.
3860
+ *
3861
+ * Filters registrar actions to only include those at or before the specified timestamp (inclusive).
3862
+ */
3863
+ declare function endTimestamp(timestamp: UnixTimestamp): RegistrarActionsFilter;
3864
+ declare function endTimestamp(timestamp: undefined): undefined;
3494
3865
  declare const registrarActionsFilter: {
3495
3866
  byParentNode: typeof byParentNode;
3496
3867
  withReferral: typeof withReferral;
3497
3868
  byDecodedReferrer: typeof byDecodedReferrer;
3869
+ beginTimestamp: typeof beginTimestamp;
3870
+ endTimestamp: typeof endTimestamp;
3498
3871
  };
3499
3872
 
3500
3873
  declare const registrarActionsPrerequisites: Readonly<{
@@ -4009,6 +4382,61 @@ type ReferrerDetailResponseError = {
4009
4382
  */
4010
4383
  type ReferrerDetailResponse = ReferrerDetailResponseOk | ReferrerDetailResponseError;
4011
4384
 
4385
+ /**
4386
+ * Serialized representation of {@link RevenueContribution}.
4387
+ *
4388
+ * RevenueContribution is a bigint, which is serialized as a string for JSON compatibility.
4389
+ */
4390
+ type SerializedRevenueContribution = string;
4391
+ /**
4392
+ * Serialized representation of {@link ReferralProgramRules}.
4393
+ *
4394
+ * Note: All fields are already serializable primitives, so this type is identical to the source type.
4395
+ */
4396
+ type SerializedReferralProgramRules = ReferralProgramRules;
4397
+ /**
4398
+ * Serialized representation of {@link AwardedReferrerMetrics}.
4399
+ */
4400
+ interface SerializedAwardedReferrerMetrics extends Omit<AwardedReferrerMetrics, "totalRevenueContribution"> {
4401
+ totalRevenueContribution: SerializedRevenueContribution;
4402
+ }
4403
+ /**
4404
+ * Serialized representation of {@link UnrankedReferrerMetrics}.
4405
+ */
4406
+ interface SerializedUnrankedReferrerMetrics extends Omit<UnrankedReferrerMetrics, "totalRevenueContribution"> {
4407
+ totalRevenueContribution: SerializedRevenueContribution;
4408
+ }
4409
+ /**
4410
+ * Serialized representation of {@link AggregatedReferrerMetrics}.
4411
+ */
4412
+ interface SerializedAggregatedReferrerMetrics extends Omit<AggregatedReferrerMetrics, "grandTotalRevenueContribution"> {
4413
+ grandTotalRevenueContribution: SerializedRevenueContribution;
4414
+ }
4415
+ /**
4416
+ * Serialized representation of {@link ReferrerLeaderboardPage}.
4417
+ */
4418
+ interface SerializedReferrerLeaderboardPage extends Omit<ReferrerLeaderboardPage, "referrers" | "aggregatedMetrics"> {
4419
+ referrers: SerializedAwardedReferrerMetrics[];
4420
+ aggregatedMetrics: SerializedAggregatedReferrerMetrics;
4421
+ }
4422
+ /**
4423
+ * Serialized representation of {@link ReferrerDetailRanked}.
4424
+ */
4425
+ interface SerializedReferrerDetailRanked extends Omit<ReferrerDetailRanked, "referrer" | "aggregatedMetrics"> {
4426
+ referrer: SerializedAwardedReferrerMetrics;
4427
+ aggregatedMetrics: SerializedAggregatedReferrerMetrics;
4428
+ }
4429
+ /**
4430
+ * Serialized representation of {@link ReferrerDetailUnranked}.
4431
+ */
4432
+ interface SerializedReferrerDetailUnranked extends Omit<ReferrerDetailUnranked, "referrer" | "aggregatedMetrics"> {
4433
+ referrer: SerializedUnrankedReferrerMetrics;
4434
+ aggregatedMetrics: SerializedAggregatedReferrerMetrics;
4435
+ }
4436
+ /**
4437
+ * Serialized representation of {@link ReferrerDetail} (union of ranked and unranked).
4438
+ */
4439
+ type SerializedReferrerDetail = SerializedReferrerDetailRanked | SerializedReferrerDetailUnranked;
4012
4440
  /**
4013
4441
  * Serialized representation of {@link ReferrerLeaderboardPageResponseError}.
4014
4442
  *
@@ -4017,28 +4445,26 @@ type ReferrerDetailResponse = ReferrerDetailResponseOk | ReferrerDetailResponseE
4017
4445
  type SerializedReferrerLeaderboardPageResponseError = ReferrerLeaderboardPageResponseError;
4018
4446
  /**
4019
4447
  * Serialized representation of {@link ReferrerLeaderboardPageResponseOk}.
4020
- *
4021
- * Note: All fields are already serializable, so this type is identical to the source type.
4022
4448
  */
4023
- type SerializedReferrerLeaderboardPageResponseOk = ReferrerLeaderboardPageResponseOk;
4449
+ interface SerializedReferrerLeaderboardPageResponseOk extends Omit<ReferrerLeaderboardPageResponseOk, "data"> {
4450
+ data: SerializedReferrerLeaderboardPage;
4451
+ }
4024
4452
  /**
4025
4453
  * Serialized representation of {@link ReferrerLeaderboardPageResponse}.
4026
4454
  */
4027
4455
  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
4456
  /**
4037
4457
  * Serialized representation of {@link ReferrerDetailResponseError}.
4038
4458
  *
4039
4459
  * Note: All fields are already serializable, so this type is identical to the source type.
4040
4460
  */
4041
4461
  type SerializedReferrerDetailResponseError = ReferrerDetailResponseError;
4462
+ /**
4463
+ * Serialized representation of {@link ReferrerDetailResponseOk}.
4464
+ */
4465
+ interface SerializedReferrerDetailResponseOk extends Omit<ReferrerDetailResponseOk, "data"> {
4466
+ data: SerializedReferrerDetail;
4467
+ }
4042
4468
  /**
4043
4469
  * Serialized representation of {@link ReferrerDetailResponse}.
4044
4470
  */
@@ -4047,39 +4473,26 @@ type SerializedReferrerDetailResponse = SerializedReferrerDetailResponseOk | Ser
4047
4473
  /**
4048
4474
  * Deserialize a {@link ReferrerLeaderboardPageResponse} object.
4049
4475
  *
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.
4476
+ * Note: This function explicitly deserializes each subobject to convert string
4477
+ * RevenueContribution values back to bigint, then validates using Zod schemas
4478
+ * to enforce invariants on the data.
4054
4479
  */
4055
4480
  declare function deserializeReferrerLeaderboardPageResponse(maybeResponse: SerializedReferrerLeaderboardPageResponse, valueLabel?: string): ReferrerLeaderboardPageResponse;
4056
4481
  /**
4057
4482
  * Deserialize a {@link ReferrerDetailResponse} object.
4058
4483
  *
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.
4484
+ * Note: This function explicitly deserializes each subobject to convert string
4485
+ * RevenueContribution values back to bigint, then validates using Zod schemas
4486
+ * to enforce invariants on the data.
4063
4487
  */
4064
4488
  declare function deserializeReferrerDetailResponse(maybeResponse: SerializedReferrerDetailResponse, valueLabel?: string): ReferrerDetailResponse;
4065
4489
 
4066
4490
  /**
4067
4491
  * 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
4492
  */
4074
4493
  declare function serializeReferrerLeaderboardPageResponse(response: ReferrerLeaderboardPageResponse): SerializedReferrerLeaderboardPageResponse;
4075
4494
  /**
4076
4495
  * 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
4496
  */
4084
4497
  declare function serializeReferrerDetailResponse(response: ReferrerDetailResponse): SerializedReferrerDetailResponse;
4085
4498
 
@@ -4424,6 +4837,7 @@ declare class ENSNodeClient {
4424
4837
  * const { registrarActions, pageContext } = response;
4425
4838
  * console.log(registrarActions);
4426
4839
  * console.log(`Page ${pageContext.page} of ${pageContext.totalPages}`);
4840
+ * console.log(`Accurate as of: ${response.accurateAsOf}`);
4427
4841
  * }
4428
4842
  *
4429
4843
  * // Get second page with 25 records per page
@@ -4454,6 +4868,26 @@ declare class ENSNodeClient {
4454
4868
  * filters: [registrarActionsFilter.byParentNode(namehash('base.eth'))],
4455
4869
  * recordsPerPage: 10
4456
4870
  * });
4871
+ *
4872
+ * // get registrar actions within a specific time range
4873
+ * const beginTimestamp = 1764547200; // Dec 1, 2025, 00:00:00 UTC
4874
+ * const endTimestamp = 1767225600; // Jan 1, 2026, 00:00:00 UTC
4875
+ * await client.registrarActions({
4876
+ * filters: [
4877
+ * registrarActionsFilter.beginTimestamp(beginTimestamp),
4878
+ * registrarActionsFilter.endTimestamp(endTimestamp),
4879
+ * ],
4880
+ * });
4881
+ *
4882
+ * // get registrar actions from a specific timestamp onwards
4883
+ * await client.registrarActions({
4884
+ * filters: [registrarActionsFilter.beginTimestamp(1764547200)],
4885
+ * });
4886
+ *
4887
+ * // get registrar actions up to a specific timestamp
4888
+ * await client.registrarActions({
4889
+ * filters: [registrarActionsFilter.endTimestamp(1767225600)],
4890
+ * });
4457
4891
  * ```
4458
4892
  */
4459
4893
  registrarActions(request?: RegistrarActionsRequest): Promise<RegistrarActionsResponse>;
@@ -4495,4 +4929,4 @@ declare class ClientError extends Error {
4495
4929
  static fromErrorResponse({ message, details }: ErrorResponse): ClientError;
4496
4930
  }
4497
4931
 
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 };
4932
+ 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 };