@ensnode/ensdb-sdk 1.9.0 → 1.10.1

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.
@@ -1,7 +1,7 @@
1
1
  import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
2
2
  import * as drizzle_orm from 'drizzle-orm';
3
3
  import * as ponder from 'ponder';
4
- import { DomainId, InterpretedLabel, PermissionsId, PermissionsResourceId, PermissionsUserId, RegistrationId, RegistryId, ENSv2DomainId, RenewalId, ResolverId, ENSv1DomainId, ResolverRecordsId } from '@ensnode/ensnode-sdk';
4
+ import { DomainId, InterpretedLabel, PermissionsId, PermissionsResourceId, PermissionsUserId, RegistrationId, RegistryId, ENSv2DomainId, RenewalId, ResolverId, ENSv1DomainId, ResolverRecordsId, InterpretedName } from 'enssdk';
5
5
 
6
6
  /**
7
7
  * The ENSv2 Schema
@@ -859,7 +859,7 @@ declare const relations_v2Domain: drizzle_orm.Relations<"v2_domains", {
859
859
  label: drizzle_orm.One<"labels", true>;
860
860
  registrations: drizzle_orm.Many<"registrations">;
861
861
  }>;
862
- declare const registrationType: ponder.OnchainEnum<["NameWrapper", "BaseRegistrar", "ThreeDNS", "ENSv2Registry"]>;
862
+ declare const registrationType: ponder.OnchainEnum<["NameWrapper", "BaseRegistrar", "ThreeDNS", "ENSv2RegistryRegistration", "ENSv2RegistryReservation"]>;
863
863
  declare const registration: ponder.OnchainTable<{
864
864
  name: "registrations";
865
865
  schema: undefined;
@@ -902,8 +902,8 @@ declare const registration: ponder.OnchainTable<{
902
902
  }, {}, {
903
903
  $type: DomainId;
904
904
  }>;
905
- index: ponder.PgColumn<{
906
- name: "index";
905
+ registrationIndex: ponder.PgColumn<{
906
+ name: "registrationIndex";
907
907
  tableName: "registrations";
908
908
  dataType: "number";
909
909
  columnType: "PgInteger";
@@ -924,14 +924,14 @@ declare const registration: ponder.OnchainTable<{
924
924
  tableName: "registrations";
925
925
  dataType: "string";
926
926
  columnType: "PgEnumColumn";
927
- data: "BaseRegistrar" | "NameWrapper" | "ThreeDNS" | "ENSv2Registry";
927
+ data: "BaseRegistrar" | "NameWrapper" | "ThreeDNS" | "ENSv2RegistryRegistration" | "ENSv2RegistryReservation";
928
928
  driverParam: string;
929
929
  notNull: true;
930
930
  hasDefault: false;
931
931
  isPrimaryKey: false;
932
932
  isAutoincrement: false;
933
933
  hasRuntimeDefault: false;
934
- enumValues: ["NameWrapper", "BaseRegistrar", "ThreeDNS", "ENSv2Registry"];
934
+ enumValues: ["NameWrapper", "BaseRegistrar", "ThreeDNS", "ENSv2RegistryRegistration", "ENSv2RegistryReservation"];
935
935
  baseColumn: never;
936
936
  identity: undefined;
937
937
  generated: undefined;
@@ -1044,6 +1044,25 @@ declare const registration: ponder.OnchainTable<{
1044
1044
  }, {}, {
1045
1045
  $type: `0x${string}`;
1046
1046
  }>;
1047
+ unregistrantId: ponder.PgColumn<{
1048
+ name: "unregistrantId";
1049
+ tableName: "registrations";
1050
+ dataType: "string";
1051
+ columnType: "PgHex";
1052
+ data: `0x${string}`;
1053
+ driverParam: string;
1054
+ notNull: false;
1055
+ hasDefault: false;
1056
+ isPrimaryKey: false;
1057
+ isAutoincrement: false;
1058
+ hasRuntimeDefault: false;
1059
+ enumValues: undefined;
1060
+ baseColumn: never;
1061
+ identity: undefined;
1062
+ generated: undefined;
1063
+ }, {}, {
1064
+ $type: `0x${string}`;
1065
+ }>;
1047
1066
  referrer: ponder.PgColumn<{
1048
1067
  name: "referrer";
1049
1068
  tableName: "registrations";
@@ -1177,8 +1196,8 @@ declare const latestRegistrationIndex: ponder.OnchainTable<{
1177
1196
  }, {}, {
1178
1197
  $type: DomainId;
1179
1198
  }>;
1180
- index: ponder.PgColumn<{
1181
- name: "index";
1199
+ registrationIndex: ponder.PgColumn<{
1200
+ name: "registrationIndex";
1182
1201
  tableName: "latest_registration_indexes";
1183
1202
  dataType: "number";
1184
1203
  columnType: "PgInteger";
@@ -1202,6 +1221,7 @@ declare const registration_relations: drizzle_orm.Relations<"registrations", {
1202
1221
  v1Domain: drizzle_orm.One<"v1_domains", true>;
1203
1222
  v2Domain: drizzle_orm.One<"v2_domains", true>;
1204
1223
  registrant: drizzle_orm.One<"accounts", false>;
1224
+ unregistrant: drizzle_orm.One<"accounts", false>;
1205
1225
  renewals: drizzle_orm.Many<"renewals">;
1206
1226
  event: drizzle_orm.One<"events", true>;
1207
1227
  }>;
@@ -1264,8 +1284,8 @@ declare const renewal: ponder.OnchainTable<{
1264
1284
  identity: undefined;
1265
1285
  generated: undefined;
1266
1286
  }, {}, {}>;
1267
- index: ponder.PgColumn<{
1268
- name: "index";
1287
+ renewalIndex: ponder.PgColumn<{
1288
+ name: "renewalIndex";
1269
1289
  tableName: "renewals";
1270
1290
  dataType: "number";
1271
1291
  columnType: "PgInteger";
@@ -1418,8 +1438,8 @@ declare const latestRenewalIndex: ponder.OnchainTable<{
1418
1438
  identity: undefined;
1419
1439
  generated: undefined;
1420
1440
  }, {}, {}>;
1421
- index: ponder.PgColumn<{
1422
- name: "index";
1441
+ renewalIndex: ponder.PgColumn<{
1442
+ name: "renewalIndex";
1423
1443
  tableName: "latest_renewal_indexes";
1424
1444
  dataType: "number";
1425
1445
  columnType: "PgInteger";
@@ -1880,7 +1900,7 @@ declare const reverseNameRecord: ponder.OnchainTable<{
1880
1900
  tableName: "reverse_name_records";
1881
1901
  dataType: "string";
1882
1902
  columnType: "PgText";
1883
- data: string;
1903
+ data: InterpretedName;
1884
1904
  driverParam: string;
1885
1905
  notNull: true;
1886
1906
  hasDefault: false;
@@ -1891,7 +1911,9 @@ declare const reverseNameRecord: ponder.OnchainTable<{
1891
1911
  baseColumn: never;
1892
1912
  identity: undefined;
1893
1913
  generated: undefined;
1894
- }, {}, {}>;
1914
+ }, {}, {
1915
+ $type: InterpretedName;
1916
+ }>;
1895
1917
  };
1896
1918
  extra: {
1897
1919
  pk: ponder.PrimaryKeyBuilder<"address" | "coinType">;
@@ -1988,7 +2010,7 @@ declare const domainResolverRelation: ponder.OnchainTable<{
1988
2010
  }>;
1989
2011
  };
1990
2012
  extra: {
1991
- pk: ponder.PrimaryKeyBuilder<"address" | "chainId" | "domainId">;
2013
+ pk: ponder.PrimaryKeyBuilder<"chainId" | "address" | "domainId">;
1992
2014
  };
1993
2015
  dialect: "pg";
1994
2016
  }>;
@@ -2169,7 +2191,7 @@ declare const resolverRecords: ponder.OnchainTable<{
2169
2191
  tableName: "resolver_records";
2170
2192
  dataType: "string";
2171
2193
  columnType: "PgText";
2172
- data: string;
2194
+ data: InterpretedName;
2173
2195
  driverParam: string;
2174
2196
  notNull: false;
2175
2197
  hasDefault: false;
@@ -2180,7 +2202,96 @@ declare const resolverRecords: ponder.OnchainTable<{
2180
2202
  baseColumn: never;
2181
2203
  identity: undefined;
2182
2204
  generated: undefined;
2205
+ }, {}, {
2206
+ $type: InterpretedName;
2207
+ }>;
2208
+ contenthash: ponder.PgColumn<{
2209
+ name: "contenthash";
2210
+ tableName: "resolver_records";
2211
+ dataType: "string";
2212
+ columnType: "PgHex";
2213
+ data: `0x${string}`;
2214
+ driverParam: string;
2215
+ notNull: false;
2216
+ hasDefault: false;
2217
+ isPrimaryKey: false;
2218
+ isAutoincrement: false;
2219
+ hasRuntimeDefault: false;
2220
+ enumValues: undefined;
2221
+ baseColumn: never;
2222
+ identity: undefined;
2223
+ generated: undefined;
2224
+ }, {}, {}>;
2225
+ pubkeyX: ponder.PgColumn<{
2226
+ name: "pubkeyX";
2227
+ tableName: "resolver_records";
2228
+ dataType: "string";
2229
+ columnType: "PgHex";
2230
+ data: `0x${string}`;
2231
+ driverParam: string;
2232
+ notNull: false;
2233
+ hasDefault: false;
2234
+ isPrimaryKey: false;
2235
+ isAutoincrement: false;
2236
+ hasRuntimeDefault: false;
2237
+ enumValues: undefined;
2238
+ baseColumn: never;
2239
+ identity: undefined;
2240
+ generated: undefined;
2183
2241
  }, {}, {}>;
2242
+ pubkeyY: ponder.PgColumn<{
2243
+ name: "pubkeyY";
2244
+ tableName: "resolver_records";
2245
+ dataType: "string";
2246
+ columnType: "PgHex";
2247
+ data: `0x${string}`;
2248
+ driverParam: string;
2249
+ notNull: false;
2250
+ hasDefault: false;
2251
+ isPrimaryKey: false;
2252
+ isAutoincrement: false;
2253
+ hasRuntimeDefault: false;
2254
+ enumValues: undefined;
2255
+ baseColumn: never;
2256
+ identity: undefined;
2257
+ generated: undefined;
2258
+ }, {}, {}>;
2259
+ dnszonehash: ponder.PgColumn<{
2260
+ name: "dnszonehash";
2261
+ tableName: "resolver_records";
2262
+ dataType: "string";
2263
+ columnType: "PgHex";
2264
+ data: `0x${string}`;
2265
+ driverParam: string;
2266
+ notNull: false;
2267
+ hasDefault: false;
2268
+ isPrimaryKey: false;
2269
+ isAutoincrement: false;
2270
+ hasRuntimeDefault: false;
2271
+ enumValues: undefined;
2272
+ baseColumn: never;
2273
+ identity: undefined;
2274
+ generated: undefined;
2275
+ }, {}, {}>;
2276
+ version: ponder.PgColumn<{
2277
+ name: "version";
2278
+ tableName: "resolver_records";
2279
+ dataType: "bigint";
2280
+ columnType: "PgEvmBigint";
2281
+ data: bigint;
2282
+ driverParam: string;
2283
+ notNull: false;
2284
+ hasDefault: false;
2285
+ isPrimaryKey: false;
2286
+ isAutoincrement: false;
2287
+ hasRuntimeDefault: false;
2288
+ enumValues: undefined;
2289
+ baseColumn: never;
2290
+ identity: undefined;
2291
+ generated: undefined;
2292
+ }, {}, {
2293
+ $type: bigint;
2294
+ }>;
2184
2295
  };
2185
2296
  extra: {
2186
2297
  byId: drizzle_orm_pg_core.IndexBuilder;
@@ -2296,7 +2407,7 @@ declare const resolverAddressRecord: ponder.OnchainTable<{
2296
2407
  }, {}, {}>;
2297
2408
  };
2298
2409
  extra: {
2299
- pk: ponder.PrimaryKeyBuilder<"address" | "node" | "coinType" | "chainId">;
2410
+ pk: ponder.PrimaryKeyBuilder<"chainId" | "address" | "node" | "coinType">;
2300
2411
  };
2301
2412
  dialect: "pg";
2302
2413
  }>;
@@ -2407,7 +2518,7 @@ declare const resolverTextRecord: ponder.OnchainTable<{
2407
2518
  }, {}, {}>;
2408
2519
  };
2409
2520
  extra: {
2410
- pk: ponder.PrimaryKeyBuilder<"address" | "node" | "key" | "chainId">;
2521
+ pk: ponder.PrimaryKeyBuilder<"chainId" | "address" | "node" | "key">;
2411
2522
  };
2412
2523
  dialect: "pg";
2413
2524
  }>;
@@ -2458,7 +2569,9 @@ declare const migratedNode: ponder.OnchainTable<{
2458
2569
  baseColumn: never;
2459
2570
  identity: undefined;
2460
2571
  generated: undefined;
2461
- }, {}, {}>;
2572
+ }, {}, {
2573
+ $type: `0x${string}`;
2574
+ }>;
2462
2575
  };
2463
2576
  extra: undefined;
2464
2577
  dialect: "pg";
@@ -2834,7 +2947,9 @@ declare const registrarActions: ponder.OnchainTable<{
2834
2947
  baseColumn: never;
2835
2948
  identity: undefined;
2836
2949
  generated: undefined;
2837
- }, {}, {}>;
2950
+ }, {}, {
2951
+ $type: `0x${string}`;
2952
+ }>;
2838
2953
  blockNumber: ponder.PgColumn<{
2839
2954
  name: "blockNumber";
2840
2955
  tableName: "registrar_actions";
@@ -3325,6 +3440,8 @@ declare const subgraph_domain: ponder.OnchainTable<{
3325
3440
  }, {}, {}>;
3326
3441
  };
3327
3442
  extra: {
3443
+ byExactName: drizzle_orm_pg_core.IndexBuilder;
3444
+ byFuzzyName: drizzle_orm_pg_core.IndexBuilder;
3328
3445
  byLabelhash: drizzle_orm_pg_core.IndexBuilder;
3329
3446
  byParentId: drizzle_orm_pg_core.IndexBuilder;
3330
3447
  byOwnerId: drizzle_orm_pg_core.IndexBuilder;
package/dist/index.d.ts CHANGED
@@ -1,15 +1,27 @@
1
- import { EnsIndexerPublicConfig, CrossChainIndexingStatusSnapshot } from '@ensnode/ensnode-sdk';
1
+ import { EnsIndexerPublicConfig, EnsDbPublicConfig, CrossChainIndexingStatusSnapshot, Unvalidated } from '@ensnode/ensnode-sdk';
2
2
  import { NodePgDatabase } from 'drizzle-orm/node-postgres';
3
- import { a as abstractEnsIndexerSchema } from './index-CUYtpVSw.js';
3
+ import { a as abstractEnsIndexerSchema } from './index-DN0SGSyd.js';
4
4
  import { e as ensNodeSchema } from './index-BHoa233Z.js';
5
5
  import 'drizzle-orm/pg-core';
6
6
  import 'drizzle-orm';
7
7
  import 'ponder';
8
+ import 'enssdk';
8
9
 
9
10
  /**
10
11
  * Utilities for Drizzle ORM integration with ENSDb.
11
12
  */
12
13
 
14
+ /**
15
+ * PostgreSQL startup `options` string for ENSDb connections.
16
+ *
17
+ * Sets `search_path` so unqualified references (notably the `gin_trgm_ops`
18
+ * opclass from the pg_trgm extension, installed in the `ensnode` schema by
19
+ * migration 0001) resolve correctly at query and index-creation time.
20
+ *
21
+ * Pass via node-postgres `PoolConfig.options` (e.g. Ponder's
22
+ * `database.poolConfig.options`) or Drizzle's connection config.
23
+ */
24
+ declare const ENSDB_CONNECTION_OPTIONS = "-c search_path=ensnode,public";
13
25
  /**
14
26
  * Abstract ENSIndexer Schema
15
27
  *
@@ -39,6 +51,39 @@ type EnsDbSchema<ConcreteEnsIndexerSchema extends AbstractEnsIndexerSchema> = Co
39
51
  */
40
52
  type EnsDbDrizzleClient<ConcreteEnsIndexerSchema extends AbstractEnsIndexerSchema> = NodePgDatabase<EnsDbSchema<ConcreteEnsIndexerSchema>>;
41
53
 
54
+ /**
55
+ * ENSDb Config
56
+ */
57
+ interface EnsDbConfig {
58
+ /**
59
+ * PostgreSQL connection string for ENSDb.
60
+ *
61
+ * Guaranteed to be a valid PostgreSQL connection string with the format:
62
+ * `postgresql://username:password@host:port/database` or
63
+ * `postgres://username:password@host:port/database`
64
+ */
65
+ ensDbUrl: string;
66
+ /**
67
+ * The name of the ENSIndexer Schema in the ENSDb instance.
68
+ *
69
+ * Guaranteed to be a non-empty string that is
70
+ * a valid Postgres database schema identifier
71
+ */
72
+ ensIndexerSchemaName: string;
73
+ }
74
+ /**
75
+ * ENSDb Schema Checksum
76
+ *
77
+ * Checksum representing the ENSDb Schema definition, which is a combination of
78
+ * - the ENSIndexer Schema definition, and
79
+ * - the ENSNode Schema definition.
80
+ *
81
+ * This checksum can be used to verify compatibility between
82
+ * the ENSDb Schema definition expected by any client app connecting to ENSDb
83
+ * instance and the actual ENSDb Schema definition present in ENSDb SDK.
84
+ */
85
+ declare const ENSDB_SCHEMA_CHECKSUM: string;
86
+
42
87
  /**
43
88
  * ENSDb Reader
44
89
  *
@@ -118,6 +163,10 @@ declare class EnsDbReader<ConcreteEnsIndexerSchema extends AbstractEnsIndexerSch
118
163
  * @returns the existing record, or `undefined`.
119
164
  */
120
165
  getEnsIndexerPublicConfig(): Promise<EnsIndexerPublicConfig | undefined>;
166
+ /**
167
+ * Build ENSDb Public Config
168
+ */
169
+ buildEnsDbPublicConfig(): Promise<EnsDbPublicConfig>;
121
170
  /**
122
171
  * Get Indexing Status Snapshot
123
172
  *
@@ -133,6 +182,19 @@ declare class EnsDbReader<ConcreteEnsIndexerSchema extends AbstractEnsIndexerSch
133
182
  * 'ensIndexerSchemaName' and 'key')
134
183
  */
135
184
  private getEnsNodeMetadata;
185
+ /**
186
+ * Get PostgreSQL version for the server hosting the ENSDb instance.
187
+ *
188
+ * @throws when the version cannot be retrieved or parsed from the query result.
189
+ */
190
+ private getPostgresVersion;
191
+ /**
192
+ * Build ENSDb version info.
193
+ *
194
+ * @throws when version info cannot be retrieved or parsed from
195
+ * the ENSDb instance.
196
+ */
197
+ private buildEnsDbVersionInfo;
136
198
  }
137
199
 
138
200
  /**
@@ -205,4 +267,13 @@ interface EnsNodeMetadataEnsIndexerIndexingStatus {
205
267
  */
206
268
  type EnsNodeMetadata = EnsNodeMetadataEnsDbVersion | EnsNodeMetadataEnsIndexerPublicConfig | EnsNodeMetadataEnsIndexerIndexingStatus;
207
269
 
208
- export { type EnsDbDrizzleClient, EnsDbReader, EnsDbWriter, type EnsNodeMetadata, type EnsNodeMetadataEnsDbVersion, type EnsNodeMetadataEnsIndexerIndexingStatus, type EnsNodeMetadataEnsIndexerPublicConfig, type EnsNodeMetadataKey, EnsNodeMetadataKeys };
270
+ /**
271
+ * Validate ENSDb config
272
+ *
273
+ * @param unvalidatedConfig - Unvalidated ENSDb config
274
+ * @returns Valid ENSDb config
275
+ * @throws Error if validation fails, with details about the validation errors
276
+ */
277
+ declare function validateEnsDbConfig(unvalidatedConfig: Unvalidated<EnsDbConfig>): EnsDbConfig;
278
+
279
+ export { ENSDB_CONNECTION_OPTIONS, ENSDB_SCHEMA_CHECKSUM, type EnsDbConfig, type EnsDbDrizzleClient, EnsDbReader, EnsDbWriter, type EnsNodeMetadata, type EnsNodeMetadataEnsDbVersion, type EnsNodeMetadataEnsIndexerIndexingStatus, type EnsNodeMetadataEnsIndexerPublicConfig, type EnsNodeMetadataKey, EnsNodeMetadataKeys, validateEnsDbConfig };