@seedprotocol/eas 0.7.4-next.711.gce2b766 → 0.7.4-next.793.g6dd83dd

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 +1 @@
1
- {"version":3,"file":"BaseEasClient.d.ts","sourceRoot":"","sources":["../../src/EasClient/BaseEasClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,8BAAsB,aAAa;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAA0B;IAE9C,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IASxC,6FAA6F;IAC7F,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B,MAAM,CAAC,YAAY,IAAI,aAAa;IAIpC;;;OAGG;WACU,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAK/E;AAED,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"BaseEasClient.d.ts","sourceRoot":"","sources":["../../src/EasClient/BaseEasClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGjD,8BAAsB,aAAa;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAA0B;IAE9C,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAUxC,6FAA6F;IAC7F,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B,MAAM,CAAC,YAAY,IAAI,aAAa;IAIpC;;;OAGG;WACU,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAK/E;AAED,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseQueryClient.d.ts","sourceRoot":"","sources":["../../src/QueryClient/BaseQueryClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,8BAAsB,eAAe;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAmC;IAEvD,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IASjD,6FAA6F;IAC7F,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B,MAAM,CAAC,cAAc,IAAI,YAAY;CAGtC"}
1
+ {"version":3,"file":"BaseQueryClient.d.ts","sourceRoot":"","sources":["../../src/QueryClient/BaseQueryClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAGnE,8BAAsB,eAAe;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAmC;IAEvD,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAUjD,6FAA6F;IAC7F,MAAM,CAAC,YAAY,IAAI,OAAO;IAI9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAS1B,MAAM,CAAC,cAAc,IAAI,YAAY;CAGtC"}
@@ -1,11 +1,29 @@
1
1
  import { GraphQLClient as e } from "graphql-request";
2
2
  import { QueryClient as t } from "@tanstack/query-core";
3
+ //#region src/moduleOwner.ts
4
+ var n = Symbol.for("@seedprotocol/eas:clientOwner"), r = Object.freeze({ package: "@seedprotocol/eas" });
5
+ function i() {
6
+ globalThis[n] = r;
7
+ }
8
+ var a = class extends Error {
9
+ constructor() {
10
+ super("Two copies of @seedprotocol/eas are loaded, and EAS clients were registered on the other copy (e.g. by SeedClient). Reads through this copy would use different clients and a different chain. Make sure every @seedprotocol/* package is the same version and installed once (`npm ls @seedprotocol/eas`). With Vite, use seedVitePlugin (or list @seedprotocol/eas and @seedprotocol/query in optimizeDeps.include and resolve.dedupe) so they are pre-bundled together."), this.name = "DuplicateEasModuleError";
11
+ }
12
+ };
13
+ function o() {
14
+ let e = globalThis[n];
15
+ if (e !== void 0 && e !== r) throw new a();
16
+ }
17
+ function s() {
18
+ delete globalThis[n];
19
+ }
20
+ //#endregion
3
21
  //#region src/EasClient/BaseEasClient.ts
4
- var n = class e {
22
+ var c = class e {
5
23
  static _impl = null;
6
24
  static configure(t) {
7
25
  if (!t) throw Error("Cannot configure EasClient with undefined or null. Ensure the platform-specific EasClient is properly created.");
8
- e._impl = t;
26
+ e._impl = t, i();
9
27
  }
10
28
  static isConfigured() {
11
29
  return e._impl != null;
@@ -20,11 +38,11 @@ var n = class e {
20
38
  static async getSeedsBySchemaName(e) {
21
39
  throw Error("BaseEasClient.getSeedsBySchemaName is not implemented. Use getSeedsBySchemaName from @seedprotocol/eas instead.");
22
40
  }
23
- }, r = class e {
41
+ }, l = class e {
24
42
  static _impl = null;
25
43
  static configure(t) {
26
44
  if (!t) throw Error("Cannot configure QueryClient with undefined or null. Ensure the platform-specific QueryClient is properly created.");
27
- e._impl = t;
45
+ e._impl = t, i();
28
46
  }
29
47
  static isConfigured() {
30
48
  return e._impl != null;
@@ -36,51 +54,51 @@ var n = class e {
36
54
  static getQueryClient() {
37
55
  return e.requireImpl().getQueryClient();
38
56
  }
39
- }, i = "0x4200000000000000000000000000000000000021", a = "0x4200000000000000000000000000000000000020";
40
- function o(e, t, n, r = !1) {
57
+ }, u = "0x4200000000000000000000000000000000000021", d = "0x4200000000000000000000000000000000000020";
58
+ function f(e, t, n, r = !1) {
41
59
  return {
42
60
  chainId: e,
43
61
  name: t,
44
- easContractAddress: i,
45
- schemaRegistryAddress: a,
62
+ easContractAddress: u,
63
+ schemaRegistryAddress: d,
46
64
  indexerUrl: `https://${n}.easscan.org/graphql`,
47
65
  explorerUrl: `https://${n}.easscan.org`,
48
66
  testnet: r
49
67
  };
50
68
  }
51
- function s(e) {
69
+ function p(e) {
52
70
  let t = e ? `https://${e}.easscan.org` : "https://easscan.org";
53
71
  return {
54
72
  indexerUrl: `${t}/graphql`,
55
73
  explorerUrl: t
56
74
  };
57
75
  }
58
- var c = {
76
+ var m = {
59
77
  1: {
60
78
  chainId: 1,
61
79
  name: "Ethereum",
62
80
  easContractAddress: "0xA1207F3BBa224E2c9c3c6D5aF63D0eb1582Ce587",
63
81
  schemaRegistryAddress: "0xA7b39296258348C78294F95B872b282326A97BDF",
64
- ...s(null)
82
+ ...p(null)
65
83
  },
66
84
  11155111: {
67
85
  chainId: 11155111,
68
86
  name: "Sepolia",
69
87
  easContractAddress: "0xC2679fBD37d54388Ce493F1DB75320D236e1815e",
70
88
  schemaRegistryAddress: "0x0a7E2Ff54e76B8E6659aedc9103FB21c038050D0",
71
- ...s("sepolia"),
89
+ ...p("sepolia"),
72
90
  testnet: !0
73
91
  },
74
- 10: o(10, "Optimism", "optimism"),
75
- 11155420: o(11155420, "Optimism Sepolia", "optimism-sepolia", !0),
76
- 8453: o(8453, "Base", "base"),
77
- 84532: o(84532, "Base Sepolia", "base-sepolia", !0),
92
+ 10: f(10, "Optimism", "optimism"),
93
+ 11155420: f(11155420, "Optimism Sepolia", "optimism-sepolia", !0),
94
+ 8453: f(8453, "Base", "base"),
95
+ 84532: f(84532, "Base Sepolia", "base-sepolia", !0),
78
96
  42161: {
79
97
  chainId: 42161,
80
98
  name: "Arbitrum One",
81
99
  easContractAddress: "0xbD75f629A22Dc1ceD33dDA0b68c546A1c035c458",
82
100
  schemaRegistryAddress: "0xA310da9c5B885E7fb3fbA9D66E9Ba6Df512b78eB",
83
- ...s("arbitrum")
101
+ ...p("arbitrum")
84
102
  },
85
103
  421614: {
86
104
  chainId: 421614,
@@ -94,28 +112,28 @@ var c = {
94
112
  name: "Polygon",
95
113
  easContractAddress: "0x5E634ef5355f45A855d02D66eCD687b1502AF790",
96
114
  schemaRegistryAddress: "0x7876EEF51A891E737AF8ba5A5E0f0Fd29073D5a7",
97
- ...s("polygon")
115
+ ...p("polygon")
98
116
  },
99
117
  534352: {
100
118
  chainId: 534352,
101
119
  name: "Scroll",
102
120
  easContractAddress: "0xC47300428b6AD2c7D03BB76D05A176058b47E6B0",
103
121
  schemaRegistryAddress: "0xD2CDF46556543316e7D34e8eDc4624e2bB95e3B6",
104
- ...s("scroll")
122
+ ...p("scroll")
105
123
  },
106
124
  59144: {
107
125
  chainId: 59144,
108
126
  name: "Linea",
109
127
  easContractAddress: "0xaEF4103A04090071165F78D45D83A0C0782c2B2a",
110
128
  schemaRegistryAddress: "0x55D26f9ae0203EF95494AE4C170eD35f4Cf77797",
111
- ...s("linea")
129
+ ...p("linea")
112
130
  }
113
- }, l = 11155420;
114
- function u(e) {
115
- return c[e];
131
+ }, h = 11155420;
132
+ function g(e) {
133
+ return m[e];
116
134
  }
117
- function d(e, t = {}) {
118
- let n = u(e), r = Object.fromEntries(Object.entries(t).filter(([, e]) => e !== void 0)), i = {
135
+ function _(e, t = {}) {
136
+ let n = g(e), r = Object.fromEntries(Object.entries(t).filter(([, e]) => e !== void 0)), i = {
119
137
  ...n,
120
138
  ...r,
121
139
  chainId: e
@@ -126,17 +144,17 @@ function d(e, t = {}) {
126
144
  name: i.name ?? `chain ${e}`
127
145
  };
128
146
  }
129
- function f(e, t) {
147
+ function v(e, t) {
130
148
  if (e.explorerUrl) return `${e.explorerUrl.replace(/\/+$/, "")}/attestation/view/${t}`;
131
149
  }
132
150
  //#endregion
133
151
  //#region src/easEndpoint.ts
134
- var p = {
152
+ var y = {
135
153
  sdk: {},
136
154
  publish: {},
137
155
  localDb: {}
138
- }, m = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Set(), g = !1;
139
- function _() {
156
+ }, b = /* @__PURE__ */ new Set(), x = /* @__PURE__ */ new Set(), S = !1;
157
+ function C() {
140
158
  try {
141
159
  if (typeof process < "u" && process.env) {
142
160
  let e = process.env.NEXT_PUBLIC_EAS_ENDPOINT || process.env.EAS_ENDPOINT;
@@ -146,7 +164,7 @@ function _() {
146
164
  let e = globalThis.window?.env;
147
165
  return e?.NEXT_PUBLIC_EAS_ENDPOINT || e?.EAS_ENDPOINT || void 0;
148
166
  }
149
- function v() {
167
+ function w() {
150
168
  let e;
151
169
  try {
152
170
  typeof process < "u" && process.env && (e = process.env.NEXT_PUBLIC_EAS_CHAIN_ID || process.env.EAS_CHAIN_ID);
@@ -154,86 +172,86 @@ function v() {
154
172
  let t = Number(e);
155
173
  return e && Number.isInteger(t) && t > 0 ? t : void 0;
156
174
  }
157
- function y(e, t) {
175
+ function T(e, t) {
158
176
  let n = t.chainId;
159
- if (n !== void 0) for (let t of Object.keys(p)) {
160
- let r = p[t].chainId;
161
- if (t !== e && r !== void 0 && r !== n) throw Error(C({
177
+ if (n !== void 0) for (let t of Object.keys(y)) {
178
+ let r = y[t].chainId;
179
+ if (t !== e && r !== void 0 && r !== n) throw Error(k({
162
180
  [e]: n,
163
181
  [t]: r
164
182
  }));
165
183
  }
166
- if (p[e] = { ...t }, x()) for (let e of [...h]) e();
184
+ if (y[e] = { ...t }, D()) for (let e of [...x]) e();
167
185
  }
168
- function b(e) {
169
- m.add(e);
186
+ function E(e) {
187
+ b.add(e);
170
188
  }
171
- function x() {
172
- if (w() || p.localDb.chainId !== void 0) return !0;
173
- for (let e of m) if (p[e].chainId === void 0) return !1;
189
+ function D() {
190
+ if (A() || y.localDb.chainId !== void 0) return !0;
191
+ for (let e of b) if (y[e].chainId === void 0) return !1;
174
192
  return !0;
175
193
  }
176
- function S(e) {
177
- return x() ? Promise.resolve(!0) : new Promise((t) => {
194
+ function O(e) {
195
+ return D() ? Promise.resolve(!0) : new Promise((t) => {
178
196
  let n = (e) => {
179
- clearTimeout(i), h.delete(r), t(e);
197
+ clearTimeout(i), x.delete(r), t(e);
180
198
  }, r = () => n(!0), i = setTimeout(() => n(!1), e);
181
- h.add(r);
199
+ x.add(r);
182
200
  });
183
201
  }
184
- function C(e) {
202
+ function k(e) {
185
203
  if (e.localDb !== void 0) {
186
204
  let t = e.sdk ?? e.publish;
187
205
  return `Seed Protocol chain mismatch: the local database holds attestations from chain ${e.localDb}, but the app is configured for chain ${t}. Use a separate database per chain (SeedConfig.filesDir / dbConfig), clear the local database, or configure chain ${e.localDb} again.`;
188
206
  }
189
207
  return `Seed Protocol chain mismatch: the SDK reads EAS on chain ${e.sdk} but @seedprotocol/publish writes to chain ${e.publish}. Use the same chain in SeedConfig.eas.chainId and PublishConfig.chain.`;
190
208
  }
191
- function w() {
192
- return p.sdk.chainId !== void 0 || p.publish.chainId !== void 0 || v() !== void 0;
209
+ function A() {
210
+ return y.sdk.chainId !== void 0 || y.publish.chainId !== void 0 || w() !== void 0;
193
211
  }
194
- function T() {
195
- p.sdk = {}, p.publish = {}, p.localDb = {}, m.clear(), h.clear(), g = !1;
212
+ function j() {
213
+ y.sdk = {}, y.publish = {}, y.localDb = {}, b.clear(), x.clear(), S = !1;
196
214
  }
197
- function E() {
198
- return p.sdk.chainId ?? p.publish.chainId ?? p.localDb.chainId ?? v() ?? 11155420;
215
+ function M() {
216
+ return y.sdk.chainId ?? y.publish.chainId ?? y.localDb.chainId ?? w() ?? 11155420;
199
217
  }
200
- function D() {
201
- if (p.sdk.indexerUrl) return p.sdk.indexerUrl;
202
- let e = E(), t = u(e)?.indexerUrl, n = _();
218
+ function N() {
219
+ if (y.sdk.indexerUrl) return y.sdk.indexerUrl;
220
+ let e = M(), t = g(e)?.indexerUrl, n = C();
203
221
  if (n) {
204
- let r = k(n);
222
+ let r = F(n);
205
223
  if (r !== void 0 && r !== e) throw Error(`Seed Protocol chain mismatch: EAS_ENDPOINT / NEXT_PUBLIC_EAS_ENDPOINT (${n}) is the indexer for chain ${r}, but Seed reads EAS on chain ${e}. Unset it, point it at chain ${e}'s indexer, or set SeedConfig.eas.indexerUrl.`);
206
- return t && t !== n && e !== 11155420 && !g && (g = !0, console.warn(`[Seed Protocol] EAS_ENDPOINT (${n}) overrides the indexer for chain ${e} (${t}). Make sure it indexes chain ${e}, or set SeedConfig.eas.indexerUrl.`)), n;
224
+ return t && t !== n && e !== 11155420 && !S && (S = !0, console.warn(`[Seed Protocol] EAS_ENDPOINT (${n}) overrides the indexer for chain ${e} (${t}). Make sure it indexes chain ${e}, or set SeedConfig.eas.indexerUrl.`)), n;
207
225
  }
208
- let r = t ?? p.publish.indexerUrl;
226
+ let r = t ?? y.publish.indexerUrl;
209
227
  if (!r) throw Error(`No EAS indexer is known for chain ${e}. Set SeedConfig.eas.indexerUrl (or the EAS_ENDPOINT env var).`);
210
228
  return r;
211
229
  }
212
- function O(e) {
230
+ function P(e) {
213
231
  return e.trim().replace(/\/+$/, "").toLowerCase();
214
232
  }
215
- function k(e) {
216
- let t = O(e);
217
- for (let [e, n] of Object.entries(c)) if (n.indexerUrl && O(n.indexerUrl) === t) return Number(e);
233
+ function F(e) {
234
+ let t = P(e);
235
+ for (let [e, n] of Object.entries(m)) if (n.indexerUrl && P(n.indexerUrl) === t) return Number(e);
218
236
  }
219
237
  //#endregion
220
238
  //#region src/default/EasClient.ts
221
- var A = class {
239
+ var I = class {
222
240
  easClient;
223
241
  getEasClient() {
224
- let t = D();
242
+ let t = N();
225
243
  return this.easClient?.url !== t && (this.easClient = {
226
244
  url: t,
227
245
  client: new e(t)
228
246
  }), this.easClient.client;
229
247
  }
230
- }, j = (e) => {
248
+ }, L = (e) => {
231
249
  let t = "";
232
250
  try {
233
- t = D();
251
+ t = N();
234
252
  } catch {}
235
253
  return [t, ...e];
236
- }, M = class {
254
+ }, R = class {
237
255
  queryClient;
238
256
  getQueryClient() {
239
257
  if (this.queryClient) return this.queryClient;
@@ -244,7 +262,7 @@ var A = class {
244
262
  } } });
245
263
  return this.queryClient = {
246
264
  fetchQuery: ({ queryKey: t, queryFn: n, networkMode: r, staleTime: i }) => e.query({
247
- queryKey: j(t),
265
+ queryKey: L(t),
248
266
  queryFn: n,
249
267
  ...r ? { networkMode: r === "onlineOnly" ? "online" : r } : {},
250
268
  ...i ? {
@@ -252,14 +270,14 @@ var A = class {
252
270
  gcTime: i
253
271
  } : {}
254
272
  }),
255
- getQueryData: (t) => e.getQueryData(j(t)),
273
+ getQueryData: (t) => e.getQueryData(L(t)),
256
274
  removeQueries: async ({ queryKey: t }) => {
257
- e.removeQueries({ queryKey: j(t) });
275
+ e.removeQueries({ queryKey: L(t) });
258
276
  }
259
277
  }, this.queryClient;
260
278
  }
261
279
  };
262
280
  //#endregion
263
- export { d as _, D as a, x as c, l as d, c as f, u as g, f as h, b as i, T as l, a as m, A as n, E as o, i as p, y as r, w as s, M as t, S as u, r as v, n as y };
281
+ export { s as S, _, N as a, a as b, D as c, h as d, m as f, g, v as h, E as i, j as l, d as m, I as n, M as o, u as p, T as r, A as s, R as t, O as u, l as v, o as x, c as y };
264
282
 
265
- //# sourceMappingURL=QueryClient-Ch6F96Za.js.map
283
+ //# sourceMappingURL=QueryClient-CeTbKOnt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryClient-CeTbKOnt.js","names":["TanStackQueryClient","OWNER_KEY","thisCopy","markEasClientOwner","DuplicateEasModuleError","assertSingleEasModule","owner","resetEasClientOwnerForTests","BaseEasClient","impl","BaseQueryClient","OP_STACK_EAS_CONTRACT_ADDRESS","OP_STACK_SCHEMA_REGISTRY_ADDRESS","opStack","easscanSubdomain","easscan","origin","subdomain","EAS_CHAIN_DEPLOYMENTS","DEFAULT_EAS_CHAIN_ID","getEasChainDeployment","chainId","resolveEasChainDeployment","known","definedOverrides","overrides","v","merged","getEasAttestationExplorerUrl","deployment","uid","settings","expectedSources","settledListeners","warnedEnvOverride","readEnvEndpoint","windowEnv","readEnvChainId","raw","parsed","configureEasReadChain","setting","other","otherId","source","chainMismatchMessage","isEasReadChainSettled","listener","expectEasReadChain","isEasReadChainConfigured","whenEasReadChainSettled","done","timer","onSettled","resolve","settled","timeoutMs","ids","configured","resetEasReadChain","getEasReadChainId","getEasEndpoint","knownIndexer","env","envChainId","chainIdOfKnownIndexer","url","normalizeUrl","target","id","DefaultEasClient","GraphQLClient","scopeKey","endpoint","queryKey","DefaultQueryClient","client","QueryClient","networkMode","staleTime"],"sources":["../src/moduleOwner.ts","../src/EasClient/BaseEasClient.ts","../src/QueryClient/BaseQueryClient.ts","../src/chains.ts","../src/easEndpoint.ts","../src/default/EasClient.ts","../src/default/QueryClient.ts"],"sourcesContent":["/**\n * Detects a second copy of this package in one page or process. Each copy has its own\n * BaseEasClient / BaseQueryClient slots and its own chain settings, so code reading through\n * one copy would quietly miss the clients and chain registered on the other.\n *\n * Whichever copy last registered a client records itself under a global key that every copy\n * shares; {@link assertSingleEasModule} throws when that is not the caller's copy.\n */\nconst OWNER_KEY = Symbol.for('@seedprotocol/eas:clientOwner')\n\n/** Identity of this copy of the module. */\nconst thisCopy = Object.freeze({ package: '@seedprotocol/eas' })\n\ntype GlobalWithOwner = typeof globalThis & { [OWNER_KEY]?: object }\n\n/** @internal Called by BaseEasClient / BaseQueryClient when a client is registered. */\nexport function markEasClientOwner(): void {\n ;(globalThis as GlobalWithOwner)[OWNER_KEY] = thisCopy\n}\n\nexport class DuplicateEasModuleError extends Error {\n constructor() {\n super(\n 'Two copies of @seedprotocol/eas are loaded, and EAS clients were registered on the other copy ' +\n '(e.g. by SeedClient). Reads through this copy would use different clients and a different chain. ' +\n 'Make sure every @seedprotocol/* package is the same version and installed once (`npm ls @seedprotocol/eas`). ' +\n 'With Vite, use seedVitePlugin (or list @seedprotocol/eas and @seedprotocol/query in optimizeDeps.include ' +\n 'and resolve.dedupe) so they are pre-bundled together.',\n )\n this.name = 'DuplicateEasModuleError'\n }\n}\n\n/** Throws {@link DuplicateEasModuleError} when another copy of this package registered EAS clients. */\nexport function assertSingleEasModule(): void {\n const owner = (globalThis as GlobalWithOwner)[OWNER_KEY]\n if (owner !== undefined && owner !== thisCopy) throw new DuplicateEasModuleError()\n}\n\n/** @internal Tests that load fresh module copies (vi.resetModules) clear the shared marker. */\nexport function resetEasClientOwnerForTests(): void {\n delete (globalThis as GlobalWithOwner)[OWNER_KEY]\n}\n","import type { Attestation } from '../graphql/gql/graphql.js'\nimport type { GraphQLClient } from 'graphql-request'\nimport type { IEasClient } from './IEasClient.js'\nimport { markEasClientOwner } from '../moduleOwner.js'\n\nexport abstract class BaseEasClient {\n private static _impl: IEasClient | null = null\n\n static configure(impl: IEasClient): void {\n if (!impl) {\n throw new Error(\n 'Cannot configure EasClient with undefined or null. Ensure the platform-specific EasClient is properly created.',\n )\n }\n BaseEasClient._impl = impl\n markEasClientOwner()\n }\n\n /** True once a platform (SDK, Node bootstrap, host app) has registered an implementation. */\n static isConfigured(): boolean {\n return BaseEasClient._impl != null\n }\n\n private static requireImpl(): IEasClient {\n if (!BaseEasClient._impl) {\n throw new Error(\n 'EasClient not configured. Import from @seedprotocol/eas/node to register the Node.js implementation, or ensure SDK platform init has run.',\n )\n }\n return BaseEasClient._impl\n }\n\n static getEasClient(): GraphQLClient {\n return BaseEasClient.requireImpl().getEasClient()\n }\n\n /**\n * @deprecated Prefer getSeedsBySchemaName from @seedprotocol/eas api helpers.\n * Kept for API compatibility; not implemented by platform clients.\n */\n static async getSeedsBySchemaName(_schemaName: string): Promise<Attestation[]> {\n throw new Error(\n 'BaseEasClient.getSeedsBySchemaName is not implemented. Use getSeedsBySchemaName from @seedprotocol/eas instead.',\n )\n }\n}\n\nexport { BaseEasClient as EasClient }\n","import type { IQueryClient } from './IQueryClient.js'\nimport type { IQueryClientFactory } from './IQueryClientFactory.js'\nimport { markEasClientOwner } from '../moduleOwner.js'\n\nexport abstract class BaseQueryClient {\n private static _impl: IQueryClientFactory | null = null\n\n static configure(impl: IQueryClientFactory): void {\n if (!impl) {\n throw new Error(\n 'Cannot configure QueryClient with undefined or null. Ensure the platform-specific QueryClient is properly created.',\n )\n }\n BaseQueryClient._impl = impl\n markEasClientOwner()\n }\n\n /** True once a platform (SDK, Node bootstrap, host app) has registered an implementation. */\n static isConfigured(): boolean {\n return BaseQueryClient._impl != null\n }\n\n private static requireImpl(): IQueryClientFactory {\n if (!BaseQueryClient._impl) {\n throw new Error(\n 'QueryClient not configured. Import from @seedprotocol/eas/node to register the Node.js implementation.',\n )\n }\n return BaseQueryClient._impl\n }\n\n static getQueryClient(): IQueryClient {\n return BaseQueryClient.requireImpl().getQueryClient()\n }\n}\n","/**\n * EAS deployments per chain. Pure data (no viem / thirdweb) so read and write packages can share it.\n *\n * Addresses from https://github.com/ethereum-attestation-service/eas-contracts#deployments.\n * OP Stack chains use the predeploys 0x4200…0021 (EAS) and 0x4200…0020 (SchemaRegistry).\n */\n\nexport type HexAddress = `0x${string}`\n\nexport interface EasChainDeployment {\n chainId: number\n /** Human-readable chain name (used in error messages). */\n name: string\n easContractAddress: HexAddress\n schemaRegistryAddress: HexAddress\n /** EAS indexer GraphQL endpoint (easscan). */\n indexerUrl?: string\n /** EAS explorer origin; attestation pages live at `{explorerUrl}/attestation/view/{uid}`. */\n explorerUrl?: string\n testnet?: boolean\n}\n\nexport const OP_STACK_EAS_CONTRACT_ADDRESS: HexAddress = '0x4200000000000000000000000000000000000021'\nexport const OP_STACK_SCHEMA_REGISTRY_ADDRESS: HexAddress = '0x4200000000000000000000000000000000000020'\n\nfunction opStack(\n chainId: number,\n name: string,\n easscanSubdomain: string,\n testnet = false,\n): EasChainDeployment {\n return {\n chainId,\n name,\n easContractAddress: OP_STACK_EAS_CONTRACT_ADDRESS,\n schemaRegistryAddress: OP_STACK_SCHEMA_REGISTRY_ADDRESS,\n indexerUrl: `https://${easscanSubdomain}.easscan.org/graphql`,\n explorerUrl: `https://${easscanSubdomain}.easscan.org`,\n testnet,\n }\n}\n\nfunction easscan(subdomain: string | null) {\n const origin = subdomain ? `https://${subdomain}.easscan.org` : 'https://easscan.org'\n return { indexerUrl: `${origin}/graphql`, explorerUrl: origin }\n}\n\n/** Known EAS deployments keyed by chain id. */\nexport const EAS_CHAIN_DEPLOYMENTS: Readonly<Record<number, EasChainDeployment>> = {\n 1: {\n chainId: 1,\n name: 'Ethereum',\n easContractAddress: '0xA1207F3BBa224E2c9c3c6D5aF63D0eb1582Ce587',\n schemaRegistryAddress: '0xA7b39296258348C78294F95B872b282326A97BDF',\n ...easscan(null),\n },\n 11155111: {\n chainId: 11155111,\n name: 'Sepolia',\n easContractAddress: '0xC2679fBD37d54388Ce493F1DB75320D236e1815e',\n schemaRegistryAddress: '0x0a7E2Ff54e76B8E6659aedc9103FB21c038050D0',\n ...easscan('sepolia'),\n testnet: true,\n },\n 10: opStack(10, 'Optimism', 'optimism'),\n 11155420: opStack(11155420, 'Optimism Sepolia', 'optimism-sepolia', true),\n 8453: opStack(8453, 'Base', 'base'),\n 84532: opStack(84532, 'Base Sepolia', 'base-sepolia', true),\n 42161: {\n chainId: 42161,\n name: 'Arbitrum One',\n easContractAddress: '0xbD75f629A22Dc1ceD33dDA0b68c546A1c035c458',\n schemaRegistryAddress: '0xA310da9c5B885E7fb3fbA9D66E9Ba6Df512b78eB',\n ...easscan('arbitrum'),\n },\n 421614: {\n chainId: 421614,\n name: 'Arbitrum Sepolia',\n easContractAddress: '0x2521021fc8BF070473E1e1801D3c7B4aB701E1dE',\n schemaRegistryAddress: '0x45CB6Fa0870a8Af06796Ac15915619a0f22cd475',\n // No public easscan indexer found for this chain; set SeedConfig.eas.indexerUrl.\n testnet: true,\n },\n 137: {\n chainId: 137,\n name: 'Polygon',\n easContractAddress: '0x5E634ef5355f45A855d02D66eCD687b1502AF790',\n schemaRegistryAddress: '0x7876EEF51A891E737AF8ba5A5E0f0Fd29073D5a7',\n ...easscan('polygon'),\n },\n 534352: {\n chainId: 534352,\n name: 'Scroll',\n easContractAddress: '0xC47300428b6AD2c7D03BB76D05A176058b47E6B0',\n schemaRegistryAddress: '0xD2CDF46556543316e7D34e8eDc4624e2bB95e3B6',\n ...easscan('scroll'),\n },\n 59144: {\n chainId: 59144,\n name: 'Linea',\n easContractAddress: '0xaEF4103A04090071165F78D45D83A0C0782c2B2a',\n schemaRegistryAddress: '0x55D26f9ae0203EF95494AE4C170eD35f4Cf77797',\n ...easscan('linea'),\n },\n}\n\n/** Chain id Seed Protocol uses when an app does not configure one. */\nexport const DEFAULT_EAS_CHAIN_ID = 11155420\n\nexport function getEasChainDeployment(chainId: number): EasChainDeployment | undefined {\n return EAS_CHAIN_DEPLOYMENTS[chainId]\n}\n\n/**\n * Merge a known deployment with app overrides. Throws when the chain is unknown and the\n * overrides do not supply both contract addresses.\n */\nexport function resolveEasChainDeployment(\n chainId: number,\n overrides: Partial<Omit<EasChainDeployment, 'chainId'>> = {},\n): EasChainDeployment {\n const known = getEasChainDeployment(chainId)\n const definedOverrides = Object.fromEntries(\n Object.entries(overrides).filter(([, v]) => v !== undefined),\n ) as Partial<EasChainDeployment>\n const merged = { ...known, ...definedOverrides, chainId } as Partial<EasChainDeployment>\n if (!merged.easContractAddress || !merged.schemaRegistryAddress) {\n throw new Error(\n `No known EAS deployment for chain ${chainId}. Pass easContractAddress and schemaRegistryAddress for this chain.`,\n )\n }\n return {\n ...merged,\n name: merged.name ?? `chain ${chainId}`,\n } as EasChainDeployment\n}\n\n/** Build `{explorerUrl}/attestation/view/{uid}`, or undefined when the chain has no explorer. */\nexport function getEasAttestationExplorerUrl(\n deployment: Pick<EasChainDeployment, 'explorerUrl'>,\n uid: string,\n): string | undefined {\n if (!deployment.explorerUrl) return undefined\n return `${deployment.explorerUrl.replace(/\\/+$/, '')}/attestation/view/${uid}`\n}\n","import { DEFAULT_EAS_CHAIN_ID, EAS_CHAIN_DEPLOYMENTS, getEasChainDeployment } from './chains.js'\n\n/**\n * Which EAS chain / indexer the read side (sync, schema lookups) talks to.\n *\n * Three sources can set it, each in its own slot so init order does not matter:\n * - `sdk`: `SeedConfig.eas`\n * - `publish`: `PublishConfig.chain`\n * - `localDb`: the chain the SDK's local database already holds data from (lowest priority;\n * lets reads start on the right chain before publish is initialized)\n * Conflicting chain ids throw instead of silently reading one chain while writing another.\n * Below those, the `EAS_CHAIN_ID` / `NEXT_PUBLIC_EAS_CHAIN_ID` env var sets the chain for\n * processes without SDK or publish config (e.g. a feed server); the default is Optimism Sepolia.\n *\n * Indexer URL precedence: SDK `indexerUrl` > `EAS_ENDPOINT` / `NEXT_PUBLIC_EAS_ENDPOINT` env >\n * the configured chain's known indexer > Optimism Sepolia. An env URL that is another chain's\n * known indexer throws, so a leftover env var cannot make reads follow the wrong chain.\n */\nexport type EasReadChainSource = 'sdk' | 'publish' | 'localDb'\n\nexport interface EasReadChainSetting {\n chainId?: number\n /** EAS indexer GraphQL endpoint. Required for chains without a known indexer. */\n indexerUrl?: string\n}\n\nconst settings: Record<EasReadChainSource, EasReadChainSetting> = { sdk: {}, publish: {}, localDb: {} }\n/** Sources that have announced they will configure a chain (e.g. publish, at import). */\nconst expectedSources = new Set<EasReadChainSource>()\nconst settledListeners = new Set<() => void>()\nlet warnedEnvOverride = false\n\nfunction readEnvEndpoint(): string | undefined {\n try {\n if (typeof process !== 'undefined' && process.env) {\n const v = process.env.NEXT_PUBLIC_EAS_ENDPOINT || process.env.EAS_ENDPOINT\n if (v) return v\n }\n } catch {\n // process.env access can throw in some bundler shims\n }\n const windowEnv = (globalThis as { window?: { env?: Record<string, string | undefined> } }).window?.env\n return windowEnv?.NEXT_PUBLIC_EAS_ENDPOINT || windowEnv?.EAS_ENDPOINT || undefined\n}\n\nfunction readEnvChainId(): number | undefined {\n let raw: string | undefined\n try {\n if (typeof process !== 'undefined' && process.env) {\n raw = process.env.NEXT_PUBLIC_EAS_CHAIN_ID || process.env.EAS_CHAIN_ID\n }\n } catch {\n // process.env access can throw in some bundler shims\n }\n const parsed = Number(raw)\n return raw && Number.isInteger(parsed) && parsed > 0 ? parsed : undefined\n}\n\n/**\n * Set the EAS read chain for one source. Throws when the other source already set a\n * different chain id; the previous setting is kept in that case.\n */\nexport function configureEasReadChain(source: EasReadChainSource, setting: EasReadChainSetting): void {\n const chainId = setting.chainId\n if (chainId !== undefined) {\n for (const other of Object.keys(settings) as EasReadChainSource[]) {\n const otherId = settings[other].chainId\n if (other !== source && otherId !== undefined && otherId !== chainId) {\n throw new Error(chainMismatchMessage({ [source]: chainId, [other]: otherId }))\n }\n }\n }\n settings[source] = { ...setting }\n if (isEasReadChainSettled()) {\n for (const listener of [...settledListeners]) listener()\n }\n}\n\n/**\n * Announce that `source` will configure the chain later (e.g. `@seedprotocol/publish` calls\n * this when loaded, before `initPublish` runs). Until it does, {@link isEasReadChainSettled}\n * is false unless a chain is otherwise known, so EAS sync waits instead of reading the default.\n */\nexport function expectEasReadChain(source: EasReadChainSource): void {\n expectedSources.add(source)\n}\n\n/**\n * True when reads can start: a chain was set explicitly (SDK config, publish or `EAS_CHAIN_ID`),\n * the local DB recorded one, or no source that announced itself is still pending.\n */\nexport function isEasReadChainSettled(): boolean {\n if (isEasReadChainConfigured() || settings.localDb.chainId !== undefined) return true\n for (const source of expectedSources) {\n if (settings[source].chainId === undefined) return false\n }\n return true\n}\n\n/**\n * Resolves once {@link isEasReadChainSettled} is true. Resolves `false` after `timeoutMs`\n * when it never settles (the caller then proceeds on the current chain).\n */\nexport function whenEasReadChainSettled(timeoutMs: number): Promise<boolean> {\n if (isEasReadChainSettled()) return Promise.resolve(true)\n return new Promise((resolve) => {\n const done = (settled: boolean) => {\n clearTimeout(timer)\n settledListeners.delete(onSettled)\n resolve(settled)\n }\n const onSettled = () => done(true)\n const timer = setTimeout(() => done(false), timeoutMs)\n settledListeners.add(onSettled)\n })\n}\n\nfunction chainMismatchMessage(ids: Partial<Record<EasReadChainSource, number>>): string {\n if (ids.localDb !== undefined) {\n const configured = ids.sdk ?? ids.publish\n return `Seed Protocol chain mismatch: the local database holds attestations from chain ${ids.localDb}, but the app is configured for chain ${configured}. Use a separate database per chain (SeedConfig.filesDir / dbConfig), clear the local database, or configure chain ${ids.localDb} again.`\n }\n return `Seed Protocol chain mismatch: the SDK reads EAS on chain ${ids.sdk} but @seedprotocol/publish writes to chain ${ids.publish}. Use the same chain in SeedConfig.eas.chainId and PublishConfig.chain.`\n}\n\n/**\n * True when a chain id was chosen explicitly (SDK, publish or `EAS_CHAIN_ID`), as opposed to\n * the default or the local DB's recorded chain.\n */\nexport function isEasReadChainConfigured(): boolean {\n return (\n settings.sdk.chainId !== undefined ||\n settings.publish.chainId !== undefined ||\n readEnvChainId() !== undefined\n )\n}\n\n/** @internal Reset all sources (tests). */\nexport function resetEasReadChain(): void {\n settings.sdk = {}\n settings.publish = {}\n settings.localDb = {}\n expectedSources.clear()\n settledListeners.clear()\n warnedEnvOverride = false\n}\n\n/** Chain id the read side follows (defaults to Optimism Sepolia). */\nexport function getEasReadChainId(): number {\n return (\n settings.sdk.chainId ??\n settings.publish.chainId ??\n settings.localDb.chainId ??\n readEnvChainId() ??\n DEFAULT_EAS_CHAIN_ID\n )\n}\n\n/** Resolved EAS indexer GraphQL endpoint. Throws when the chain has no known indexer. */\nexport function getEasEndpoint(): string {\n if (settings.sdk.indexerUrl) return settings.sdk.indexerUrl\n\n const chainId = getEasReadChainId()\n const knownIndexer = getEasChainDeployment(chainId)?.indexerUrl\n const env = readEnvEndpoint()\n if (env) {\n const envChainId = chainIdOfKnownIndexer(env)\n if (envChainId !== undefined && envChainId !== chainId) {\n throw new Error(\n `Seed Protocol chain mismatch: EAS_ENDPOINT / NEXT_PUBLIC_EAS_ENDPOINT (${env}) is the indexer for chain ${envChainId}, but Seed reads EAS on chain ${chainId}. Unset it, point it at chain ${chainId}'s indexer, or set SeedConfig.eas.indexerUrl.`,\n )\n }\n if (knownIndexer && knownIndexer !== env && chainId !== DEFAULT_EAS_CHAIN_ID && !warnedEnvOverride) {\n warnedEnvOverride = true\n console.warn(\n `[Seed Protocol] EAS_ENDPOINT (${env}) overrides the indexer for chain ${chainId} (${knownIndexer}). Make sure it indexes chain ${chainId}, or set SeedConfig.eas.indexerUrl.`,\n )\n }\n return env\n }\n\n const url = knownIndexer ?? settings.publish.indexerUrl\n if (!url) {\n throw new Error(\n `No EAS indexer is known for chain ${chainId}. Set SeedConfig.eas.indexerUrl (or the EAS_ENDPOINT env var).`,\n )\n }\n return url\n}\n\nfunction normalizeUrl(url: string): string {\n return url.trim().replace(/\\/+$/, '').toLowerCase()\n}\n\n/** Chain whose known easscan indexer is `url`, if any. */\nfunction chainIdOfKnownIndexer(url: string): number | undefined {\n const target = normalizeUrl(url)\n for (const [id, deployment] of Object.entries(EAS_CHAIN_DEPLOYMENTS)) {\n if (deployment.indexerUrl && normalizeUrl(deployment.indexerUrl) === target) return Number(id)\n }\n return undefined\n}\n","import type { IEasClient } from '../EasClient/IEasClient.js'\nimport { getEasEndpoint } from '../easEndpoint.js'\nimport { GraphQLClient } from 'graphql-request'\n\n/** Fetch-based EAS GraphQL client; works in Node and browsers. Registering it is up to the caller. */\nexport class DefaultEasClient implements IEasClient {\n private easClient: { url: string; client: GraphQLClient } | undefined\n\n /** Reads the endpoint per call so SDK / publish chain config applied after import takes effect. */\n getEasClient(): GraphQLClient {\n const url = getEasEndpoint()\n if (this.easClient?.url !== url) {\n this.easClient = { url, client: new GraphQLClient(url) }\n }\n return this.easClient.client\n }\n}\n","import { QueryClient as TanStackQueryClient } from '@tanstack/query-core'\nimport { getEasEndpoint } from '../easEndpoint.js'\nimport type { FetchQueryOptions, IQueryClient } from '../QueryClient/IQueryClient.js'\nimport type { IQueryClientFactory } from '../QueryClient/IQueryClientFactory.js'\n\n/**\n * Keys are scoped to the EAS endpoint (the chain), so a process that switches chains never shares\n * a request or a result between them.\n */\nconst scopeKey = (queryKey: readonly unknown[]): unknown[] => {\n let endpoint = ''\n try {\n endpoint = getEasEndpoint()\n } catch {\n // Misconfigured chain: the request itself will fail.\n }\n return [endpoint, ...queryKey]\n}\n\n/**\n * TanStack Query client with no UI or browser dependencies (Node, workers, pages without the SDK).\n * Registering it is up to the caller. Concurrent requests with the same key share one fetch.\n *\n * Results are not kept once a request settles (gcTime 0) unless the caller passes a `staleTime`,\n * in which case they are kept and reused for that long: a server process sees many distinct keys\n * (e.g. change checks keyed by time), and EAS data is otherwise always read fresh. No retries\n * (TanStack's default for imperative queries), no structural sharing (nothing to share with), and\n * no online detection (`networkMode: 'always'`).\n */\nexport class DefaultQueryClient implements IQueryClientFactory {\n private queryClient: IQueryClient | undefined\n\n getQueryClient(): IQueryClient {\n if (this.queryClient) return this.queryClient\n\n const client = new TanStackQueryClient({\n defaultOptions: {\n queries: {\n gcTime: 0,\n networkMode: 'always',\n structuralSharing: false,\n },\n },\n })\n\n this.queryClient = {\n fetchQuery: <T>({ queryKey, queryFn, networkMode, staleTime }: FetchQueryOptions<T>) =>\n client.query({\n queryKey: scopeKey(queryKey),\n queryFn,\n // IQueryClient's 'onlineOnly' is TanStack v5's 'online'.\n ...(networkMode ? { networkMode: networkMode === 'onlineOnly' ? 'online' : networkMode } : {}),\n ...(staleTime ? { staleTime, gcTime: staleTime } : {}),\n }) as Promise<T>,\n getQueryData: (queryKey) => client.getQueryData(scopeKey(queryKey)),\n removeQueries: async ({ queryKey }) => {\n client.removeQueries({ queryKey: scopeKey(queryKey) })\n },\n }\n return this.queryClient\n }\n}\n"],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -8,6 +8,11 @@ export declare const getItemPropertiesFromEas: ({ versionUids, excludeRevoked, }
8
8
  versionUids: string[];
9
9
  excludeRevoked?: boolean;
10
10
  }) => Promise<Attestation[]>;
11
+ /**
12
+ * Canonical properties of the given versions. It doesn't check attesters: filter `getItemPropertiesFromEas`
13
+ * results with `keepAttestationsFromRefAttester(properties, versions)` first when the versions may
14
+ * not all be trusted (see easRefAttester.ts).
15
+ */
11
16
  export declare const getCanonicalItemPropertiesFromEas: (props: {
12
17
  versionUids: string[];
13
18
  excludeRevoked?: boolean;
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,0BAA0B,CAAA;AAEhF,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEhF,eAAO,MAAM,sBAAsB,GAAU,+BAG1C;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAiBxB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,kCAG5C;IACD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAiBxB,CAAA;AAED,eAAO,MAAM,iCAAiC,GAAU,OAAO;IAC7D,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAGxB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAU,iBAEjD;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAyB7B,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,iBAE/C;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAS7B,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAU,4CAI1C;IACD,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,2BAsCA,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,QAAO,MAAW,EAClB,OAAO,MAAM,EACb,UAAU;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2BAiCjC,CAAA;AAkBD,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,QAAO,IAExC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,YAAY,MAAM,EAAE,KACnB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA6B/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,2BAGzC;IACD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAcxB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAKD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GAAU,0BAI9C;IACD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAAO,CAAC,iBAAiB,EAAE,CA8B9B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,YAAY,MAAM,EAAE,QAAO,MAAW,sBAGnF,CAAA"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,0BAA0B,CAAA;AAEhF,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEhF,eAAO,MAAM,sBAAsB,GAAU,+BAG1C;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAiBxB,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,kCAG5C;IACD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAiBxB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAAU,OAAO;IAC7D,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAGxB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAU,iBAEjD;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAyB7B,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAU,iBAE/C;IACD,UAAU,EAAE,MAAM,CAAA;CACnB,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAS7B,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAU,4CAI1C;IACD,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,2BAsCA,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,QAAO,MAAW,EAClB,OAAO,MAAM,EACb,UAAU;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2BAiCjC,CAAA;AAkBD,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,QAAO,IAExC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,YAAY,MAAM,EAAE,KACnB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA6B/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAU,2BAGzC;IACD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,KAAG,OAAO,CAAC,WAAW,EAAE,CAcxB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAKD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GAAU,0BAI9C;IACD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAAO,CAAC,iBAAiB,EAAE,CA8B9B,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAU,YAAY,MAAM,EAAE,QAAO,MAAW,sBAGnF,CAAA"}
@@ -6,6 +6,8 @@ export declare const DOMAIN_OWNERSHIP_SCHEMA_NAME = "seedprotocol.domainOwnershi
6
6
  export declare const DOMAIN_OWNERSHIP_METHOD = "dns-txt-challenge";
7
7
  /** Default scope: registrable domain (eTLD+1). */
8
8
  export declare const DOMAIN_OWNERSHIP_SCOPE_REGISTRABLE = "registrable";
9
+ /** Exact-hostname scope: the challenge was published on this hostname, not on its eTLD+1. */
10
+ export declare const DOMAIN_OWNERSHIP_SCOPE_HOSTNAME = "hostname";
9
11
  /** Underscored DNS owner-name prefix (IETF domain control validation style). */
10
12
  export declare const DOMAIN_OWNERSHIP_TXT_LABEL = "_seedprotocol-challenge";
11
13
  /** Default challenge lifetime (72 hours). */
@@ -1 +1 @@
1
- {"version":3,"file":"domainOwnershipHelpers.d.ts","sourceRoot":"","sources":["../src/domainOwnershipHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domainOwnershipHelpers.d.ts","sourceRoot":"","sources":["../src/domainOwnershipHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * EAS lets any account attest with any `refUID`: it only checks that the referenced attestation
3
+ * exists, and Seed's schemas have no resolver. So another account can attest a Version that
4
+ * references someone's Seed, or a property that references someone's Version, and as the newest
5
+ * attestation it would win the canonical pick.
6
+ *
7
+ * A Version counts only when its attester is the Seed's attester, and a property only when its
8
+ * attester is the Version's. Attesters are compared case-insensitively. A child whose parent isn't
9
+ * among `parents`, or where either attester is unknown (local drafts have none), is kept: there is
10
+ * nothing to compare it with.
11
+ */
12
+ export type RefAttesterParentLike = {
13
+ id: string;
14
+ attester?: string | null;
15
+ };
16
+ export type RefAttesterChildLike = {
17
+ refUID?: string | null;
18
+ attester?: string | null;
19
+ };
20
+ export declare function partitionByRefAttester<T extends RefAttesterChildLike>(children: T[], parents: Iterable<RefAttesterParentLike>): {
21
+ kept: T[];
22
+ foreign: T[];
23
+ };
24
+ /** The `kept` half of {@link partitionByRefAttester}. */
25
+ export declare function keepAttestationsFromRefAttester<T extends RefAttesterChildLike>(children: T[], parents: Iterable<RefAttesterParentLike>): T[];
26
+ //# sourceMappingURL=easRefAttester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easRefAttester.d.ts","sourceRoot":"","sources":["../src/easRefAttester.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,CAAA;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,oBAAoB,EACnE,QAAQ,EAAE,CAAC,EAAE,EACb,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACvC;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,CAAC,EAAE,CAAA;CAAE,CAiB7B;AAED,yDAAyD;AACzD,wBAAgB,+BAA+B,CAAC,CAAC,SAAS,oBAAoB,EAC5E,QAAQ,EAAE,CAAC,EAAE,EACb,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACvC,CAAC,EAAE,CAEL"}
@@ -18,6 +18,7 @@ type Documents = {
18
18
  "\n query GetSchemaByName($where: SchemaWhereInput!) {\n schemas: schemata(where: $where) {\n id\n schema\n schemaNames {\n name\n }\n }\n }\n": typeof types.GetSchemaByNameDocument;
19
19
  "\n query GetSeeds($where: AttestationWhereInput!, $take: Int, $skip: Int) {\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }], take: $take, skip: $skip) {\n id\n decodedDataJson\n attester\n schema {\n schemaNames {\n name\n }\n }\n refUID\n revoked\n revocationTime\n schemaId\n timeCreated\n isOffchain\n }\n }\n": typeof types.GetSeedsDocument;
20
20
  "\n query GetSeedsLean($where: AttestationWhereInput!, $take: Int, $skip: Int) {\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }], take: $take, skip: $skip) {\n id\n decodedDataJson\n attester\n refUID\n revoked\n revocationTime\n schemaId\n timeCreated\n isOffchain\n }\n }\n": typeof types.GetSeedsLeanDocument;
21
+ "\n query GetDomainOwnerships($where: AttestationWhereInput!) {\n domainOwnerships: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n decodedDataJson\n attester\n recipient\n refUID\n revoked\n revocationTime\n expirationTime\n schemaId\n timeCreated\n }\n }\n": typeof types.GetDomainOwnershipsDocument;
21
22
  "\n query GetSeedIds($where: AttestationWhereInput!) {\n itemSeedIds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n }\n }\n": typeof types.GetSeedIdsDocument;
22
23
  "\n query GetStorageTransactionId($where: AttestationWhereInput!) {\n storageTransactionId: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n id\n decodedDataJson\n }\n }\n": typeof types.GetStorageTransactionIdDocument;
23
24
  "\n query GetVersions($where: AttestationWhereInput!) {\n itemVersions: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n": typeof types.GetVersionsDocument;
@@ -66,6 +67,10 @@ export declare function graphql(source: "\n query GetSeeds($where: AttestationW
66
67
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
67
68
  */
68
69
  export declare function graphql(source: "\n query GetSeedsLean($where: AttestationWhereInput!, $take: Int, $skip: Int) {\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }], take: $take, skip: $skip) {\n id\n decodedDataJson\n attester\n refUID\n revoked\n revocationTime\n schemaId\n timeCreated\n isOffchain\n }\n }\n"): (typeof documents)["\n query GetSeedsLean($where: AttestationWhereInput!, $take: Int, $skip: Int) {\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }], take: $take, skip: $skip) {\n id\n decodedDataJson\n attester\n refUID\n revoked\n revocationTime\n schemaId\n timeCreated\n isOffchain\n }\n }\n"];
70
+ /**
71
+ * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
72
+ */
73
+ export declare function graphql(source: "\n query GetDomainOwnerships($where: AttestationWhereInput!) {\n domainOwnerships: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n decodedDataJson\n attester\n recipient\n refUID\n revoked\n revocationTime\n expirationTime\n schemaId\n timeCreated\n }\n }\n"): (typeof documents)["\n query GetDomainOwnerships($where: AttestationWhereInput!) {\n domainOwnerships: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n decodedDataJson\n attester\n recipient\n refUID\n revoked\n revocationTime\n expirationTime\n schemaId\n timeCreated\n }\n }\n"];
69
74
  /**
70
75
  * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
71
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../../src/graphql/gql/gql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../../src/graphql/gql/gql.ts"],"names":[],"mappings":"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"}
@@ -2569,6 +2569,25 @@ export type GetSeedsLeanQuery = {
2569
2569
  isOffchain: boolean;
2570
2570
  }>;
2571
2571
  };
2572
+ export type GetDomainOwnershipsQueryVariables = Exact<{
2573
+ where: AttestationWhereInput;
2574
+ }>;
2575
+ export type GetDomainOwnershipsQuery = {
2576
+ __typename?: 'Query';
2577
+ domainOwnerships: Array<{
2578
+ __typename?: 'Attestation';
2579
+ id: string;
2580
+ decodedDataJson: string;
2581
+ attester: string;
2582
+ recipient: string;
2583
+ refUID: string;
2584
+ revoked: boolean;
2585
+ revocationTime: number;
2586
+ expirationTime: number;
2587
+ schemaId: string;
2588
+ timeCreated: number;
2589
+ }>;
2590
+ };
2572
2591
  export type GetSeedIdsQueryVariables = Exact<{
2573
2592
  where: AttestationWhereInput;
2574
2593
  }>;
@@ -2700,6 +2719,7 @@ export declare const GetSchemasDocument: DocumentNode<GetSchemasQuery, GetSchema
2700
2719
  export declare const GetSchemaByNameDocument: DocumentNode<GetSchemaByNameQuery, GetSchemaByNameQueryVariables>;
2701
2720
  export declare const GetSeedsDocument: DocumentNode<GetSeedsQuery, GetSeedsQueryVariables>;
2702
2721
  export declare const GetSeedsLeanDocument: DocumentNode<GetSeedsLeanQuery, GetSeedsLeanQueryVariables>;
2722
+ export declare const GetDomainOwnershipsDocument: DocumentNode<GetDomainOwnershipsQuery, GetDomainOwnershipsQueryVariables>;
2703
2723
  export declare const GetSeedIdsDocument: DocumentNode<GetSeedIdsQuery, GetSeedIdsQueryVariables>;
2704
2724
  export declare const GetStorageTransactionIdDocument: DocumentNode<GetStorageTransactionIdQuery, GetStorageTransactionIdQueryVariables>;
2705
2725
  export declare const GetVersionsDocument: DocumentNode<GetVersionsQuery, GetVersionsQueryVariables>;