@ensnode/ensnode-schema 0.27.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 NameHash
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,631 @@
1
+ // src/ponder.schema.ts
2
+ import { index, onchainTable, relations } from "ponder";
3
+
4
+ // src/collate.ts
5
+ function monkeypatchCollate(col, collation) {
6
+ col.getSQLType = function() {
7
+ return Object.getPrototypeOf(this).getSQLType.call(this) + " COLLATE " + collation;
8
+ };
9
+ return col;
10
+ }
11
+
12
+ // src/ponder.schema.ts
13
+ var domain = onchainTable("domains", (t) => ({
14
+ // The namehash of the name
15
+ id: t.hex().primaryKey(),
16
+ // The human readable name, if known. Unknown portions replaced with hash in square brackets (eg, foo.[1234].eth)
17
+ name: t.text(),
18
+ // The human readable label name (imported from CSV), if known
19
+ labelName: t.text(),
20
+ // keccak256(labelName)
21
+ labelhash: t.hex(),
22
+ // The namehash (id) of the parent name
23
+ parentId: t.hex(),
24
+ // The number of subdomains
25
+ subdomainCount: t.integer().notNull().default(0),
26
+ // Address logged from current resolver, if any
27
+ resolvedAddressId: t.hex(),
28
+ // The resolver that controls the domain's settings
29
+ resolverId: t.text(),
30
+ // The time-to-live (TTL) value of the domain's records
31
+ ttl: t.bigint(),
32
+ // Indicates whether the domain has been migrated to a new registrar
33
+ isMigrated: t.boolean().notNull().default(false),
34
+ // The time when the domain was created
35
+ createdAt: t.bigint().notNull(),
36
+ // The account that owns the domain
37
+ ownerId: t.hex().notNull(),
38
+ // The account that owns the ERC721 NFT for the domain
39
+ registrantId: t.hex(),
40
+ // The account that owns the wrapped domain
41
+ wrappedOwnerId: t.hex(),
42
+ // The expiry date for the domain, from either the registration, or the wrapped domain if PCC is burned
43
+ expiryDate: t.bigint()
44
+ }));
45
+ monkeypatchCollate(domain.name, '"C"');
46
+ monkeypatchCollate(domain.labelName, '"C"');
47
+ var domainRelations = relations(domain, ({ one, many }) => ({
48
+ resolvedAddress: one(account, {
49
+ fields: [domain.resolvedAddressId],
50
+ references: [account.id]
51
+ }),
52
+ owner: one(account, { fields: [domain.ownerId], references: [account.id] }),
53
+ parent: one(domain, { fields: [domain.parentId], references: [domain.id] }),
54
+ resolver: one(resolver, {
55
+ fields: [domain.resolverId],
56
+ references: [resolver.id]
57
+ }),
58
+ subdomains: many(domain, { relationName: "parent" }),
59
+ registrant: one(account, {
60
+ fields: [domain.registrantId],
61
+ references: [account.id]
62
+ }),
63
+ wrappedOwner: one(account, {
64
+ fields: [domain.wrappedOwnerId],
65
+ references: [account.id]
66
+ }),
67
+ wrappedDomain: one(wrappedDomain, {
68
+ fields: [domain.id],
69
+ references: [wrappedDomain.domainId]
70
+ }),
71
+ registration: one(registration, {
72
+ fields: [domain.id],
73
+ references: [registration.domainId]
74
+ }),
75
+ // event relations
76
+ transfers: many(transfer),
77
+ newOwners: many(newOwner),
78
+ newResolvers: many(newResolver),
79
+ newTTLs: many(newTTL),
80
+ wrappedTransfers: many(wrappedTransfer),
81
+ nameWrappeds: many(nameWrapped),
82
+ nameUnwrappeds: many(nameUnwrapped),
83
+ fusesSets: many(fusesSet),
84
+ expiryExtendeds: many(expiryExtended)
85
+ }));
86
+ var account = onchainTable("accounts", (t) => ({
87
+ id: t.hex().primaryKey()
88
+ }));
89
+ var accountRelations = relations(account, ({ many }) => ({
90
+ domains: many(domain),
91
+ wrappedDomains: many(wrappedDomain),
92
+ registrations: many(registration)
93
+ }));
94
+ var resolver = onchainTable(
95
+ "resolvers",
96
+ (t) => ({
97
+ // The unique identifier for this resolver, which is a concatenation of the domain namehash and the resolver address
98
+ id: t.text().primaryKey(),
99
+ // The domain that this resolver is associated with
100
+ domainId: t.hex().notNull(),
101
+ // The address of the resolver contract
102
+ address: t.hex().notNull().$type(),
103
+ // The current value of the 'addr' record for this resolver, as determined by the associated events
104
+ addrId: t.hex(),
105
+ // The content hash for this resolver, in binary format
106
+ contentHash: t.text(),
107
+ // The set of observed text record keys for this resolver
108
+ // NOTE: we avoid .notNull.default([]) to match subgraph behavior
109
+ texts: t.text().array(),
110
+ // The set of observed SLIP-44 coin types for this resolver
111
+ // NOTE: we avoid .notNull.default([]) to match subgraph behavior
112
+ coinTypes: t.bigint().array()
113
+ }),
114
+ (t) => ({
115
+ idx: index().on(t.domainId)
116
+ })
117
+ );
118
+ var resolverRelations = relations(resolver, ({ one, many }) => ({
119
+ addr: one(account, { fields: [resolver.addrId], references: [account.id] }),
120
+ domain: one(domain, { fields: [resolver.domainId], references: [domain.id] }),
121
+ // event relations
122
+ addrChangeds: many(addrChanged),
123
+ multicoinAddrChangeds: many(multicoinAddrChanged),
124
+ nameChangeds: many(nameChanged),
125
+ abiChangeds: many(abiChanged),
126
+ pubkeyChangeds: many(pubkeyChanged),
127
+ textChangeds: many(textChanged),
128
+ contenthashChangeds: many(contenthashChanged),
129
+ interfaceChangeds: many(interfaceChanged),
130
+ authorisationChangeds: many(authorisationChanged),
131
+ versionChangeds: many(versionChanged)
132
+ }));
133
+ var registration = onchainTable(
134
+ "registrations",
135
+ (t) => ({
136
+ // The unique identifier of the registration
137
+ id: t.hex().primaryKey(),
138
+ // The domain name associated with the registration
139
+ domainId: t.hex().notNull(),
140
+ // The registration date of the domain
141
+ registrationDate: t.bigint().notNull(),
142
+ // The expiry date of the domain
143
+ expiryDate: t.bigint().notNull(),
144
+ // The cost associated with the domain registration
145
+ cost: t.bigint(),
146
+ // The account that registered the domain
147
+ registrantId: t.hex().notNull(),
148
+ // The human-readable label name associated with the domain registration
149
+ labelName: t.text()
150
+ }),
151
+ (t) => ({
152
+ idx: index().on(t.domainId)
153
+ })
154
+ );
155
+ var registrationRelations = relations(registration, ({ one, many }) => ({
156
+ domain: one(domain, {
157
+ fields: [registration.domainId],
158
+ references: [domain.id]
159
+ }),
160
+ registrant: one(account, {
161
+ fields: [registration.registrantId],
162
+ references: [account.id]
163
+ }),
164
+ // event relations
165
+ nameRegistereds: many(nameRegistered),
166
+ nameReneweds: many(nameRenewed),
167
+ nameTransferreds: many(nameTransferred)
168
+ }));
169
+ var wrappedDomain = onchainTable(
170
+ "wrapped_domains",
171
+ (t) => ({
172
+ // The unique identifier for each instance of the WrappedDomain entity
173
+ id: t.hex().primaryKey(),
174
+ // The domain that is wrapped by this WrappedDomain
175
+ domainId: t.hex().notNull(),
176
+ // The expiry date of the wrapped domain
177
+ expiryDate: t.bigint().notNull(),
178
+ // The number of fuses remaining on the wrapped domain
179
+ fuses: t.integer().notNull(),
180
+ // The account that owns this WrappedDomain
181
+ ownerId: t.hex().notNull(),
182
+ // The name of the wrapped domain
183
+ name: t.text()
184
+ }),
185
+ (t) => ({
186
+ idx: index().on(t.domainId)
187
+ })
188
+ );
189
+ var wrappedDomainRelations = relations(wrappedDomain, ({ one }) => ({
190
+ domain: one(domain, {
191
+ fields: [wrappedDomain.domainId],
192
+ references: [domain.id]
193
+ }),
194
+ owner: one(account, {
195
+ fields: [wrappedDomain.ownerId],
196
+ references: [account.id]
197
+ })
198
+ }));
199
+ var sharedEventColumns = (t) => ({
200
+ id: t.text().primaryKey(),
201
+ blockNumber: t.integer().notNull(),
202
+ transactionID: t.hex().notNull()
203
+ });
204
+ var domainEvent = (t) => ({
205
+ ...sharedEventColumns(t),
206
+ domainId: t.hex().notNull()
207
+ });
208
+ var domainEventIndex = (t) => ({
209
+ // primary reverse lookup
210
+ idx: index().on(t.domainId),
211
+ // sorting index
212
+ idx_compound: index().on(t.domainId, t.id)
213
+ });
214
+ var transfer = onchainTable(
215
+ "transfers",
216
+ (t) => ({
217
+ ...domainEvent(t),
218
+ ownerId: t.hex().notNull()
219
+ }),
220
+ domainEventIndex
221
+ );
222
+ var newOwner = onchainTable(
223
+ "new_owners",
224
+ (t) => ({
225
+ ...domainEvent(t),
226
+ ownerId: t.hex().notNull(),
227
+ parentDomainId: t.hex().notNull()
228
+ }),
229
+ domainEventIndex
230
+ );
231
+ var newResolver = onchainTable(
232
+ "new_resolvers",
233
+ (t) => ({
234
+ ...domainEvent(t),
235
+ resolverId: t.text().notNull()
236
+ }),
237
+ domainEventIndex
238
+ );
239
+ var newTTL = onchainTable(
240
+ "new_ttls",
241
+ (t) => ({
242
+ ...domainEvent(t),
243
+ ttl: t.bigint().notNull()
244
+ }),
245
+ domainEventIndex
246
+ );
247
+ var wrappedTransfer = onchainTable(
248
+ "wrapped_transfers",
249
+ (t) => ({
250
+ ...domainEvent(t),
251
+ ownerId: t.hex().notNull()
252
+ }),
253
+ domainEventIndex
254
+ );
255
+ var nameWrapped = onchainTable(
256
+ "name_wrapped",
257
+ (t) => ({
258
+ ...domainEvent(t),
259
+ name: t.text(),
260
+ fuses: t.integer().notNull(),
261
+ ownerId: t.hex().notNull(),
262
+ expiryDate: t.bigint().notNull()
263
+ }),
264
+ domainEventIndex
265
+ );
266
+ var nameUnwrapped = onchainTable(
267
+ "name_unwrapped",
268
+ (t) => ({
269
+ ...domainEvent(t),
270
+ ownerId: t.hex().notNull()
271
+ }),
272
+ domainEventIndex
273
+ );
274
+ var fusesSet = onchainTable(
275
+ "fuses_set",
276
+ (t) => ({
277
+ ...domainEvent(t),
278
+ fuses: t.integer().notNull()
279
+ }),
280
+ domainEventIndex
281
+ );
282
+ var expiryExtended = onchainTable(
283
+ "expiry_extended",
284
+ (t) => ({
285
+ ...domainEvent(t),
286
+ expiryDate: t.bigint().notNull()
287
+ }),
288
+ domainEventIndex
289
+ );
290
+ var registrationEvent = (t) => ({
291
+ ...sharedEventColumns(t),
292
+ registrationId: t.hex().notNull()
293
+ });
294
+ var registrationEventIndex = (t) => ({
295
+ // primary reverse lookup
296
+ idx: index().on(t.registrationId),
297
+ // sorting index
298
+ idx_compound: index().on(t.registrationId, t.id)
299
+ });
300
+ var nameRegistered = onchainTable(
301
+ "name_registered",
302
+ (t) => ({
303
+ ...registrationEvent(t),
304
+ registrantId: t.hex().notNull(),
305
+ expiryDate: t.bigint().notNull()
306
+ }),
307
+ registrationEventIndex
308
+ );
309
+ var nameRenewed = onchainTable(
310
+ "name_renewed",
311
+ (t) => ({
312
+ ...registrationEvent(t),
313
+ expiryDate: t.bigint().notNull()
314
+ }),
315
+ registrationEventIndex
316
+ );
317
+ var nameTransferred = onchainTable(
318
+ "name_transferred",
319
+ (t) => ({
320
+ ...registrationEvent(t),
321
+ newOwnerId: t.hex().notNull()
322
+ }),
323
+ registrationEventIndex
324
+ );
325
+ var resolverEvent = (t) => ({
326
+ ...sharedEventColumns(t),
327
+ resolverId: t.text().notNull()
328
+ });
329
+ var resolverEventIndex = (t) => ({
330
+ // primary reverse lookup
331
+ idx: index().on(t.resolverId),
332
+ // sorting index
333
+ idx_compound: index().on(t.resolverId, t.id)
334
+ });
335
+ var addrChanged = onchainTable(
336
+ "addr_changed",
337
+ (t) => ({
338
+ ...resolverEvent(t),
339
+ addrId: t.hex().notNull()
340
+ }),
341
+ resolverEventIndex
342
+ );
343
+ var multicoinAddrChanged = onchainTable(
344
+ "multicoin_addr_changed",
345
+ (t) => ({
346
+ ...resolverEvent(t),
347
+ coinType: t.bigint().notNull(),
348
+ addr: t.hex().notNull()
349
+ }),
350
+ resolverEventIndex
351
+ );
352
+ var nameChanged = onchainTable(
353
+ "name_changed",
354
+ (t) => ({
355
+ ...resolverEvent(t),
356
+ name: t.text().notNull()
357
+ }),
358
+ resolverEventIndex
359
+ );
360
+ var abiChanged = onchainTable(
361
+ "abi_changed",
362
+ (t) => ({
363
+ ...resolverEvent(t),
364
+ contentType: t.bigint().notNull()
365
+ }),
366
+ resolverEventIndex
367
+ );
368
+ var pubkeyChanged = onchainTable(
369
+ "pubkey_changed",
370
+ (t) => ({
371
+ ...resolverEvent(t),
372
+ x: t.hex().notNull(),
373
+ y: t.hex().notNull()
374
+ }),
375
+ resolverEventIndex
376
+ );
377
+ var textChanged = onchainTable(
378
+ "text_changed",
379
+ (t) => ({
380
+ ...resolverEvent(t),
381
+ key: t.text().notNull(),
382
+ value: t.text()
383
+ }),
384
+ resolverEventIndex
385
+ );
386
+ var contenthashChanged = onchainTable(
387
+ "contenthash_changed",
388
+ (t) => ({
389
+ ...resolverEvent(t),
390
+ hash: t.hex().notNull()
391
+ }),
392
+ resolverEventIndex
393
+ );
394
+ var interfaceChanged = onchainTable(
395
+ "interface_changed",
396
+ (t) => ({
397
+ ...resolverEvent(t),
398
+ interfaceID: t.hex().notNull(),
399
+ implementer: t.hex().notNull()
400
+ }),
401
+ resolverEventIndex
402
+ );
403
+ var authorisationChanged = onchainTable(
404
+ "authorisation_changed",
405
+ (t) => ({
406
+ ...resolverEvent(t),
407
+ owner: t.hex().notNull(),
408
+ target: t.hex().notNull(),
409
+ isAuthorized: t.boolean().notNull()
410
+ }),
411
+ resolverEventIndex
412
+ );
413
+ var versionChanged = onchainTable(
414
+ "version_changed",
415
+ (t) => ({
416
+ ...resolverEvent(t),
417
+ version: t.bigint().notNull()
418
+ }),
419
+ resolverEventIndex
420
+ );
421
+ var transferRelations = relations(transfer, ({ one }) => ({
422
+ domain: one(domain, { fields: [transfer.domainId], references: [domain.id] }),
423
+ owner: one(account, { fields: [transfer.ownerId], references: [account.id] })
424
+ }));
425
+ var newOwnerRelations = relations(newOwner, ({ one }) => ({
426
+ domain: one(domain, { fields: [newOwner.domainId], references: [domain.id] }),
427
+ owner: one(account, { fields: [newOwner.ownerId], references: [account.id] }),
428
+ parentDomain: one(domain, {
429
+ fields: [newOwner.parentDomainId],
430
+ references: [domain.id]
431
+ })
432
+ }));
433
+ var newResolverRelations = relations(newResolver, ({ one }) => ({
434
+ domain: one(domain, {
435
+ fields: [newResolver.domainId],
436
+ references: [domain.id]
437
+ }),
438
+ resolver: one(resolver, {
439
+ fields: [newResolver.resolverId],
440
+ references: [resolver.id]
441
+ })
442
+ }));
443
+ var newTTLRelations = relations(newTTL, ({ one }) => ({
444
+ domain: one(domain, { fields: [newTTL.domainId], references: [domain.id] })
445
+ }));
446
+ var wrappedTransferRelations = relations(wrappedTransfer, ({ one }) => ({
447
+ domain: one(domain, {
448
+ fields: [wrappedTransfer.domainId],
449
+ references: [domain.id]
450
+ }),
451
+ owner: one(account, {
452
+ fields: [wrappedTransfer.ownerId],
453
+ references: [account.id]
454
+ })
455
+ }));
456
+ var nameWrappedRelations = relations(nameWrapped, ({ one }) => ({
457
+ domain: one(domain, {
458
+ fields: [nameWrapped.domainId],
459
+ references: [domain.id]
460
+ }),
461
+ owner: one(account, {
462
+ fields: [nameWrapped.ownerId],
463
+ references: [account.id]
464
+ })
465
+ }));
466
+ var nameUnwrappedRelations = relations(nameUnwrapped, ({ one }) => ({
467
+ domain: one(domain, {
468
+ fields: [nameUnwrapped.domainId],
469
+ references: [domain.id]
470
+ }),
471
+ owner: one(account, {
472
+ fields: [nameUnwrapped.ownerId],
473
+ references: [account.id]
474
+ })
475
+ }));
476
+ var fusesSetRelations = relations(fusesSet, ({ one }) => ({
477
+ domain: one(domain, { fields: [fusesSet.domainId], references: [domain.id] })
478
+ }));
479
+ var expiryExtendedRelations = relations(expiryExtended, ({ one }) => ({
480
+ domain: one(domain, {
481
+ fields: [expiryExtended.domainId],
482
+ references: [domain.id]
483
+ })
484
+ }));
485
+ var nameRegisteredRelations = relations(nameRegistered, ({ one }) => ({
486
+ registration: one(registration, {
487
+ fields: [nameRegistered.registrationId],
488
+ references: [registration.id]
489
+ }),
490
+ registrant: one(account, {
491
+ fields: [nameRegistered.registrantId],
492
+ references: [account.id]
493
+ })
494
+ }));
495
+ var nameRenewedRelations = relations(nameRenewed, ({ one }) => ({
496
+ registration: one(registration, {
497
+ fields: [nameRenewed.registrationId],
498
+ references: [registration.id]
499
+ })
500
+ }));
501
+ var nameTransferredRelations = relations(nameTransferred, ({ one }) => ({
502
+ registration: one(registration, {
503
+ fields: [nameTransferred.registrationId],
504
+ references: [registration.id]
505
+ }),
506
+ newOwner: one(account, {
507
+ fields: [nameTransferred.newOwnerId],
508
+ references: [account.id]
509
+ })
510
+ }));
511
+ var addrChangedRelations = relations(addrChanged, ({ one }) => ({
512
+ resolver: one(resolver, {
513
+ fields: [addrChanged.resolverId],
514
+ references: [resolver.id]
515
+ }),
516
+ addr: one(account, {
517
+ fields: [addrChanged.addrId],
518
+ references: [account.id]
519
+ })
520
+ }));
521
+ var multicoinAddrChangedRelations = relations(multicoinAddrChanged, ({ one }) => ({
522
+ resolver: one(resolver, {
523
+ fields: [multicoinAddrChanged.resolverId],
524
+ references: [resolver.id]
525
+ })
526
+ }));
527
+ var nameChangedRelations = relations(nameChanged, ({ one }) => ({
528
+ resolver: one(resolver, {
529
+ fields: [nameChanged.resolverId],
530
+ references: [resolver.id]
531
+ })
532
+ }));
533
+ var abiChangedRelations = relations(abiChanged, ({ one }) => ({
534
+ resolver: one(resolver, {
535
+ fields: [abiChanged.resolverId],
536
+ references: [resolver.id]
537
+ })
538
+ }));
539
+ var pubkeyChangedRelations = relations(pubkeyChanged, ({ one }) => ({
540
+ resolver: one(resolver, {
541
+ fields: [pubkeyChanged.resolverId],
542
+ references: [resolver.id]
543
+ })
544
+ }));
545
+ var textChangedRelations = relations(textChanged, ({ one }) => ({
546
+ resolver: one(resolver, {
547
+ fields: [textChanged.resolverId],
548
+ references: [resolver.id]
549
+ })
550
+ }));
551
+ var contenthashChangedRelations = relations(contenthashChanged, ({ one }) => ({
552
+ resolver: one(resolver, {
553
+ fields: [contenthashChanged.resolverId],
554
+ references: [resolver.id]
555
+ })
556
+ }));
557
+ var interfaceChangedRelations = relations(interfaceChanged, ({ one }) => ({
558
+ resolver: one(resolver, {
559
+ fields: [interfaceChanged.resolverId],
560
+ references: [resolver.id]
561
+ })
562
+ }));
563
+ var authorisationChangedRelations = relations(authorisationChanged, ({ one }) => ({
564
+ resolver: one(resolver, {
565
+ fields: [authorisationChanged.resolverId],
566
+ references: [resolver.id]
567
+ })
568
+ }));
569
+ var versionChangedRelations = relations(versionChanged, ({ one }) => ({
570
+ resolver: one(resolver, {
571
+ fields: [versionChanged.resolverId],
572
+ references: [resolver.id]
573
+ })
574
+ }));
575
+ export {
576
+ abiChanged,
577
+ abiChangedRelations,
578
+ account,
579
+ accountRelations,
580
+ addrChanged,
581
+ addrChangedRelations,
582
+ authorisationChanged,
583
+ authorisationChangedRelations,
584
+ contenthashChanged,
585
+ contenthashChangedRelations,
586
+ domain,
587
+ domainRelations,
588
+ expiryExtended,
589
+ expiryExtendedRelations,
590
+ fusesSet,
591
+ fusesSetRelations,
592
+ interfaceChanged,
593
+ interfaceChangedRelations,
594
+ multicoinAddrChanged,
595
+ multicoinAddrChangedRelations,
596
+ nameChanged,
597
+ nameChangedRelations,
598
+ nameRegistered,
599
+ nameRegisteredRelations,
600
+ nameRenewed,
601
+ nameRenewedRelations,
602
+ nameTransferred,
603
+ nameTransferredRelations,
604
+ nameUnwrapped,
605
+ nameUnwrappedRelations,
606
+ nameWrapped,
607
+ nameWrappedRelations,
608
+ newOwner,
609
+ newOwnerRelations,
610
+ newResolver,
611
+ newResolverRelations,
612
+ newTTL,
613
+ newTTLRelations,
614
+ pubkeyChanged,
615
+ pubkeyChangedRelations,
616
+ registration,
617
+ registrationRelations,
618
+ resolver,
619
+ resolverRelations,
620
+ textChanged,
621
+ textChangedRelations,
622
+ transfer,
623
+ transferRelations,
624
+ versionChanged,
625
+ versionChangedRelations,
626
+ wrappedDomain,
627
+ wrappedDomainRelations,
628
+ wrappedTransfer,
629
+ wrappedTransferRelations
630
+ };
631
+ //# sourceMappingURL=ponder.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ponder.schema.ts","../src/collate.ts"],"sourcesContent":["import { index, onchainTable, relations } from \"ponder\";\nimport type { Address } from \"viem\";\nimport { monkeypatchCollate } from \"./collate\";\n\n/**\n * Domain\n */\n\nexport const domain = onchainTable(\"domains\", (t) => ({\n // The namehash of the name\n id: t.hex().primaryKey(),\n // The human readable name, if known. Unknown portions replaced with hash in square brackets (eg, foo.[1234].eth)\n name: t.text(),\n // The human readable label name (imported from CSV), if known\n labelName: t.text(),\n // keccak256(labelName)\n labelhash: t.hex(),\n // The namehash (id) of the parent name\n parentId: t.hex(),\n\n // The number of subdomains\n subdomainCount: t.integer().notNull().default(0),\n\n // Address logged from current resolver, if any\n resolvedAddressId: t.hex(),\n\n // The resolver that controls the domain's settings\n resolverId: t.text(),\n\n // The time-to-live (TTL) value of the domain's records\n ttl: t.bigint(),\n\n // Indicates whether the domain has been migrated to a new registrar\n isMigrated: t.boolean().notNull().default(false),\n // The time when the domain was created\n createdAt: t.bigint().notNull(),\n\n // The account that owns the domain\n ownerId: t.hex().notNull(),\n // The account that owns the ERC721 NFT for the domain\n registrantId: t.hex(),\n // The account that owns the wrapped domain\n wrappedOwnerId: t.hex(),\n\n // The expiry date for the domain, from either the registration, or the wrapped domain if PCC is burned\n expiryDate: t.bigint(),\n}));\n\n// monkeypatch drizzle's column (necessary to match graph-node default collation \"C\")\n// https://github.com/drizzle-team/drizzle-orm/issues/638\nmonkeypatchCollate(domain.name, '\"C\"');\nmonkeypatchCollate(domain.labelName, '\"C\"');\n\nexport const domainRelations = relations(domain, ({ one, many }) => ({\n resolvedAddress: one(account, {\n fields: [domain.resolvedAddressId],\n references: [account.id],\n }),\n owner: one(account, { fields: [domain.ownerId], references: [account.id] }),\n parent: one(domain, { fields: [domain.parentId], references: [domain.id] }),\n resolver: one(resolver, {\n fields: [domain.resolverId],\n references: [resolver.id],\n }),\n subdomains: many(domain, { relationName: \"parent\" }),\n registrant: one(account, {\n fields: [domain.registrantId],\n references: [account.id],\n }),\n wrappedOwner: one(account, {\n fields: [domain.wrappedOwnerId],\n references: [account.id],\n }),\n wrappedDomain: one(wrappedDomain, {\n fields: [domain.id],\n references: [wrappedDomain.domainId],\n }),\n registration: one(registration, {\n fields: [domain.id],\n references: [registration.domainId],\n }),\n\n // event relations\n transfers: many(transfer),\n newOwners: many(newOwner),\n newResolvers: many(newResolver),\n newTTLs: many(newTTL),\n wrappedTransfers: many(wrappedTransfer),\n nameWrappeds: many(nameWrapped),\n nameUnwrappeds: many(nameUnwrapped),\n fusesSets: many(fusesSet),\n expiryExtendeds: many(expiryExtended),\n}));\n\n/**\n * Account\n */\n\nexport const account = onchainTable(\"accounts\", (t) => ({\n id: t.hex().primaryKey(),\n}));\n\nexport const accountRelations = relations(account, ({ many }) => ({\n domains: many(domain),\n wrappedDomains: many(wrappedDomain),\n registrations: many(registration),\n}));\n\n/**\n * Resolver\n */\n\nexport const resolver = onchainTable(\n \"resolvers\",\n (t) => ({\n // The unique identifier for this resolver, which is a concatenation of the domain namehash and the resolver address\n id: t.text().primaryKey(),\n // The domain that this resolver is associated with\n domainId: t.hex().notNull(),\n // The address of the resolver contract\n address: t.hex().notNull().$type<Address>(),\n\n // The current value of the 'addr' record for this resolver, as determined by the associated events\n addrId: t.hex(),\n // The content hash for this resolver, in binary format\n contentHash: t.text(),\n // The set of observed text record keys for this resolver\n // NOTE: we avoid .notNull.default([]) to match subgraph behavior\n texts: t.text().array(),\n // The set of observed SLIP-44 coin types for this resolver\n // NOTE: we avoid .notNull.default([]) to match subgraph behavior\n coinTypes: t.bigint().array(),\n }),\n (t) => ({\n idx: index().on(t.domainId),\n }),\n);\n\nexport const resolverRelations = relations(resolver, ({ one, many }) => ({\n addr: one(account, { fields: [resolver.addrId], references: [account.id] }),\n domain: one(domain, { fields: [resolver.domainId], references: [domain.id] }),\n\n // event relations\n addrChangeds: many(addrChanged),\n multicoinAddrChangeds: many(multicoinAddrChanged),\n nameChangeds: many(nameChanged),\n abiChangeds: many(abiChanged),\n pubkeyChangeds: many(pubkeyChanged),\n textChangeds: many(textChanged),\n contenthashChangeds: many(contenthashChanged),\n interfaceChangeds: many(interfaceChanged),\n authorisationChangeds: many(authorisationChanged),\n versionChangeds: many(versionChanged),\n}));\n\n/**\n * Registration\n */\n\nexport const registration = onchainTable(\n \"registrations\",\n (t) => ({\n // The unique identifier of the registration\n id: t.hex().primaryKey(),\n // The domain name associated with the registration\n domainId: t.hex().notNull(),\n // The registration date of the domain\n registrationDate: t.bigint().notNull(),\n // The expiry date of the domain\n expiryDate: t.bigint().notNull(),\n // The cost associated with the domain registration\n cost: t.bigint(),\n // The account that registered the domain\n registrantId: t.hex().notNull(),\n // The human-readable label name associated with the domain registration\n labelName: t.text(),\n }),\n (t) => ({\n idx: index().on(t.domainId),\n }),\n);\n\nexport const registrationRelations = relations(registration, ({ one, many }) => ({\n domain: one(domain, {\n fields: [registration.domainId],\n references: [domain.id],\n }),\n registrant: one(account, {\n fields: [registration.registrantId],\n references: [account.id],\n }),\n\n // event relations\n nameRegistereds: many(nameRegistered),\n nameReneweds: many(nameRenewed),\n nameTransferreds: many(nameTransferred),\n}));\n\n/**\n * Wrapped Domain\n */\n\nexport const wrappedDomain = onchainTable(\n \"wrapped_domains\",\n (t) => ({\n // The unique identifier for each instance of the WrappedDomain entity\n id: t.hex().primaryKey(),\n // The domain that is wrapped by this WrappedDomain\n domainId: t.hex().notNull(),\n // The expiry date of the wrapped domain\n expiryDate: t.bigint().notNull(),\n // The number of fuses remaining on the wrapped domain\n fuses: t.integer().notNull(),\n // The account that owns this WrappedDomain\n ownerId: t.hex().notNull(),\n // The name of the wrapped domain\n name: t.text(),\n }),\n (t) => ({\n idx: index().on(t.domainId),\n }),\n);\n\nexport const wrappedDomainRelations = relations(wrappedDomain, ({ one }) => ({\n domain: one(domain, {\n fields: [wrappedDomain.domainId],\n references: [domain.id],\n }),\n owner: one(account, {\n fields: [wrappedDomain.ownerId],\n references: [account.id],\n }),\n}));\n\n/**\n * Events\n */\n\nconst sharedEventColumns = (t: any) => ({\n id: t.text().primaryKey(),\n blockNumber: t.integer().notNull(),\n transactionID: t.hex().notNull(),\n});\n\nconst domainEvent = (t: any) => ({\n ...sharedEventColumns(t),\n domainId: t.hex().notNull(),\n});\n\nconst domainEventIndex = (t: any) => ({\n // primary reverse lookup\n idx: index().on(t.domainId),\n // sorting index\n idx_compound: index().on(t.domainId, t.id),\n});\n\n// Domain Event Entities\n\nexport const transfer = onchainTable(\n \"transfers\",\n (t) => ({\n ...domainEvent(t),\n ownerId: t.hex().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const newOwner = onchainTable(\n \"new_owners\",\n (t) => ({\n ...domainEvent(t),\n ownerId: t.hex().notNull(),\n parentDomainId: t.hex().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const newResolver = onchainTable(\n \"new_resolvers\",\n (t) => ({\n ...domainEvent(t),\n resolverId: t.text().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const newTTL = onchainTable(\n \"new_ttls\",\n (t) => ({\n ...domainEvent(t),\n ttl: t.bigint().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const wrappedTransfer = onchainTable(\n \"wrapped_transfers\",\n (t) => ({\n ...domainEvent(t),\n ownerId: t.hex().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const nameWrapped = onchainTable(\n \"name_wrapped\",\n (t) => ({\n ...domainEvent(t),\n name: t.text(),\n fuses: t.integer().notNull(),\n ownerId: t.hex().notNull(),\n expiryDate: t.bigint().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const nameUnwrapped = onchainTable(\n \"name_unwrapped\",\n (t) => ({\n ...domainEvent(t),\n ownerId: t.hex().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const fusesSet = onchainTable(\n \"fuses_set\",\n (t) => ({\n ...domainEvent(t),\n fuses: t.integer().notNull(),\n }),\n domainEventIndex,\n);\n\nexport const expiryExtended = onchainTable(\n \"expiry_extended\",\n (t) => ({\n ...domainEvent(t),\n expiryDate: t.bigint().notNull(),\n }),\n domainEventIndex,\n);\n\n// Registration Event Entities\n\nconst registrationEvent = (t: any) => ({\n ...sharedEventColumns(t),\n registrationId: t.hex().notNull(),\n});\n\nconst registrationEventIndex = (t: any) => ({\n // primary reverse lookup\n idx: index().on(t.registrationId),\n // sorting index\n idx_compound: index().on(t.registrationId, t.id),\n});\n\nexport const nameRegistered = onchainTable(\n \"name_registered\",\n (t) => ({\n ...registrationEvent(t),\n registrantId: t.hex().notNull(),\n expiryDate: t.bigint().notNull(),\n }),\n registrationEventIndex,\n);\n\nexport const nameRenewed = onchainTable(\n \"name_renewed\",\n (t) => ({\n ...registrationEvent(t),\n expiryDate: t.bigint().notNull(),\n }),\n registrationEventIndex,\n);\n\nexport const nameTransferred = onchainTable(\n \"name_transferred\",\n (t) => ({\n ...registrationEvent(t),\n newOwnerId: t.hex().notNull(),\n }),\n registrationEventIndex,\n);\n\n// Resolver Event Entities\n\nconst resolverEvent = (t: any) => ({\n ...sharedEventColumns(t),\n resolverId: t.text().notNull(),\n});\n\nconst resolverEventIndex = (t: any) => ({\n // primary reverse lookup\n idx: index().on(t.resolverId),\n // sorting index\n idx_compound: index().on(t.resolverId, t.id),\n});\n\nexport const addrChanged = onchainTable(\n \"addr_changed\",\n (t) => ({\n ...resolverEvent(t),\n addrId: t.hex().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const multicoinAddrChanged = onchainTable(\n \"multicoin_addr_changed\",\n (t) => ({\n ...resolverEvent(t),\n coinType: t.bigint().notNull(),\n addr: t.hex().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const nameChanged = onchainTable(\n \"name_changed\",\n (t) => ({\n ...resolverEvent(t),\n name: t.text().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const abiChanged = onchainTable(\n \"abi_changed\",\n (t) => ({\n ...resolverEvent(t),\n contentType: t.bigint().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const pubkeyChanged = onchainTable(\n \"pubkey_changed\",\n (t) => ({\n ...resolverEvent(t),\n x: t.hex().notNull(),\n y: t.hex().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const textChanged = onchainTable(\n \"text_changed\",\n (t) => ({\n ...resolverEvent(t),\n key: t.text().notNull(),\n value: t.text(),\n }),\n resolverEventIndex,\n);\n\nexport const contenthashChanged = onchainTable(\n \"contenthash_changed\",\n (t) => ({\n ...resolverEvent(t),\n hash: t.hex().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const interfaceChanged = onchainTable(\n \"interface_changed\",\n (t) => ({\n ...resolverEvent(t),\n interfaceID: t.hex().notNull(),\n implementer: t.hex().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const authorisationChanged = onchainTable(\n \"authorisation_changed\",\n (t) => ({\n ...resolverEvent(t),\n owner: t.hex().notNull(),\n target: t.hex().notNull(),\n isAuthorized: t.boolean().notNull(),\n }),\n resolverEventIndex,\n);\n\nexport const versionChanged = onchainTable(\n \"version_changed\",\n (t) => ({\n ...resolverEvent(t),\n version: t.bigint().notNull(),\n }),\n resolverEventIndex,\n);\n\n/**\n * Event Relations\n */\n\n// Domain Event Relations\n\nexport const transferRelations = relations(transfer, ({ one }) => ({\n domain: one(domain, { fields: [transfer.domainId], references: [domain.id] }),\n owner: one(account, { fields: [transfer.ownerId], references: [account.id] }),\n}));\n\nexport const newOwnerRelations = relations(newOwner, ({ one }) => ({\n domain: one(domain, { fields: [newOwner.domainId], references: [domain.id] }),\n owner: one(account, { fields: [newOwner.ownerId], references: [account.id] }),\n parentDomain: one(domain, {\n fields: [newOwner.parentDomainId],\n references: [domain.id],\n }),\n}));\n\nexport const newResolverRelations = relations(newResolver, ({ one }) => ({\n domain: one(domain, {\n fields: [newResolver.domainId],\n references: [domain.id],\n }),\n resolver: one(resolver, {\n fields: [newResolver.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const newTTLRelations = relations(newTTL, ({ one }) => ({\n domain: one(domain, { fields: [newTTL.domainId], references: [domain.id] }),\n}));\n\nexport const wrappedTransferRelations = relations(wrappedTransfer, ({ one }) => ({\n domain: one(domain, {\n fields: [wrappedTransfer.domainId],\n references: [domain.id],\n }),\n owner: one(account, {\n fields: [wrappedTransfer.ownerId],\n references: [account.id],\n }),\n}));\n\nexport const nameWrappedRelations = relations(nameWrapped, ({ one }) => ({\n domain: one(domain, {\n fields: [nameWrapped.domainId],\n references: [domain.id],\n }),\n owner: one(account, {\n fields: [nameWrapped.ownerId],\n references: [account.id],\n }),\n}));\n\nexport const nameUnwrappedRelations = relations(nameUnwrapped, ({ one }) => ({\n domain: one(domain, {\n fields: [nameUnwrapped.domainId],\n references: [domain.id],\n }),\n owner: one(account, {\n fields: [nameUnwrapped.ownerId],\n references: [account.id],\n }),\n}));\n\nexport const fusesSetRelations = relations(fusesSet, ({ one }) => ({\n domain: one(domain, { fields: [fusesSet.domainId], references: [domain.id] }),\n}));\n\nexport const expiryExtendedRelations = relations(expiryExtended, ({ one }) => ({\n domain: one(domain, {\n fields: [expiryExtended.domainId],\n references: [domain.id],\n }),\n}));\n\n// Registration Event Relations\n\nexport const nameRegisteredRelations = relations(nameRegistered, ({ one }) => ({\n registration: one(registration, {\n fields: [nameRegistered.registrationId],\n references: [registration.id],\n }),\n registrant: one(account, {\n fields: [nameRegistered.registrantId],\n references: [account.id],\n }),\n}));\n\nexport const nameRenewedRelations = relations(nameRenewed, ({ one }) => ({\n registration: one(registration, {\n fields: [nameRenewed.registrationId],\n references: [registration.id],\n }),\n}));\n\nexport const nameTransferredRelations = relations(nameTransferred, ({ one }) => ({\n registration: one(registration, {\n fields: [nameTransferred.registrationId],\n references: [registration.id],\n }),\n newOwner: one(account, {\n fields: [nameTransferred.newOwnerId],\n references: [account.id],\n }),\n}));\n\n// Resolver Event Relations\n\nexport const addrChangedRelations = relations(addrChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [addrChanged.resolverId],\n references: [resolver.id],\n }),\n addr: one(account, {\n fields: [addrChanged.addrId],\n references: [account.id],\n }),\n}));\n\nexport const multicoinAddrChangedRelations = relations(multicoinAddrChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [multicoinAddrChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const nameChangedRelations = relations(nameChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [nameChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const abiChangedRelations = relations(abiChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [abiChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const pubkeyChangedRelations = relations(pubkeyChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [pubkeyChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const textChangedRelations = relations(textChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [textChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const contenthashChangedRelations = relations(contenthashChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [contenthashChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const interfaceChangedRelations = relations(interfaceChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [interfaceChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const authorisationChangedRelations = relations(authorisationChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [authorisationChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n\nexport const versionChangedRelations = relations(versionChanged, ({ one }) => ({\n resolver: one(resolver, {\n fields: [versionChanged.resolverId],\n references: [resolver.id],\n }),\n}));\n","// https://github.com/drizzle-team/drizzle-orm/issues/638\nexport function monkeypatchCollate(col: any, collation: string) {\n col.getSQLType = function (this: any) {\n return Object.getPrototypeOf(this).getSQLType.call(this) + \" COLLATE \" + collation;\n };\n return col;\n}\n"],"mappings":"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","names":[]}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@ensnode/ensnode-schema",
3
+ "version": "0.27.0",
4
+ "type": "module",
5
+ "description": "The ponder schema for ENSNode",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/namehash/ensnode.git",
10
+ "directory": "packages/ensnode-schema"
11
+ },
12
+ "homepage": "https://github.com/namehash/ensnode/tree/main/packages/ensnode-schema",
13
+ "keywords": [
14
+ "ENS",
15
+ "ENSNode",
16
+ "Ponder"
17
+ ],
18
+ "exports": {
19
+ "types": "./dist/ponder.schema.d.ts",
20
+ "default": "./dist/ponder.schema.js"
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "dependencies": {
29
+ "ponder": "0.10.28",
30
+ "viem": "^2.22.13"
31
+ },
32
+ "devDependencies": {
33
+ "@biomejs/biome": "^1.9.4",
34
+ "tsup": "^8.3.6",
35
+ "typescript": "^5.7.3",
36
+ "@ensnode/shared-configs": "0.27.0"
37
+ },
38
+ "scripts": {
39
+ "prepublish": "tsup",
40
+ "lint": "biome check --write",
41
+ "lint:ci": "biome ci"
42
+ },
43
+ "main": "./dist/ponder.schema.js",
44
+ "module": "./dist/ponder.schema.mjs",
45
+ "types": "./dist/ponder.schema.d.ts"
46
+ }