epistery 2.0.4 → 2.2.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.
Files changed (45) hide show
  1. package/.test.env +25 -0
  2. package/cli/epistery.mjs +9 -10
  3. package/dist/chains/registry.d.ts +2 -2
  4. package/dist/chains/registry.d.ts.map +1 -1
  5. package/dist/chains/registry.js +4 -4
  6. package/dist/chains/registry.js.map +1 -1
  7. package/dist/epistery.d.ts +1 -1
  8. package/dist/epistery.d.ts.map +1 -1
  9. package/dist/epistery.js +4 -4
  10. package/dist/epistery.js.map +1 -1
  11. package/dist/utils/CliWallet.d.ts +9 -5
  12. package/dist/utils/CliWallet.d.ts.map +1 -1
  13. package/dist/utils/CliWallet.js +18 -13
  14. package/dist/utils/CliWallet.js.map +1 -1
  15. package/dist/utils/Config.d.ts +104 -48
  16. package/dist/utils/Config.d.ts.map +1 -1
  17. package/dist/utils/Config.js +273 -116
  18. package/dist/utils/Config.js.map +1 -1
  19. package/dist/utils/Utils.d.ts +10 -2
  20. package/dist/utils/Utils.d.ts.map +1 -1
  21. package/dist/utils/Utils.js +18 -9
  22. package/dist/utils/Utils.js.map +1 -1
  23. package/docs/RivetSignerConfigAuthority.md +219 -0
  24. package/index.mjs +10 -9
  25. package/package.json +1 -1
  26. package/routes/auth.mjs +6 -6
  27. package/routes/domain.mjs +2 -2
  28. package/routes/fido.mjs +4 -4
  29. package/src/chains/registry.ts +4 -4
  30. package/src/epistery.ts +4 -4
  31. package/src/utils/CliWallet.ts +18 -13
  32. package/src/utils/Config.ts +313 -106
  33. package/src/utils/Utils.ts +19 -9
  34. package/test/config/.epistery/127.0.0.1/config.ini +15 -0
  35. package/test/config/.epistery/config.ini +14 -0
  36. package/test/config/.epistery/localhost/config.ini +16 -0
  37. package/test/config/.epistery/no-pending-claim.local/config.ini +15 -0
  38. package/test/config/.epistery/test-claim-1782325887560.local/config.ini +20 -0
  39. package/test/config/.epistery/test-idempotent-1782325887610.local/config.ini +20 -0
  40. package/test/config/.epistery/test-init-1782325888110.local/config.ini +16 -0
  41. package/test/routes/auth.test.ts +7 -3
  42. package/test/routes/identity.test.ts +0 -41
  43. package/test/routes/status.test.ts +5 -39
  44. package/test/setup.ts +9 -9
  45. package/test/utils.ts +9 -3
@@ -3,26 +3,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Config = void 0;
6
+ exports.Config = exports.RemoteConfig = exports.LocalConfig = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
+ const promises_1 = __importDefault(require("fs/promises"));
8
9
  const path_1 = require("path");
9
10
  const ini_1 = __importDefault(require("ini"));
11
+ const ethers_1 = require("ethers");
12
+ /** Normalize a path: leading slash, no trailing slash, lowercase. */
13
+ function normalizePath(path) {
14
+ path = path.trim();
15
+ if (!path.startsWith('/'))
16
+ path = '/' + path;
17
+ if (path.length > 1 && path.endsWith('/'))
18
+ path = path.slice(0, -1);
19
+ return path.toLowerCase();
20
+ }
10
21
  /**
11
- * Epistery Config - Path-based configuration system
12
- *
13
- * Provides unified, filesystem-like config management:
14
- * - setPath('/') → ~/.epistery/config.ini
15
- * - setPath('/domain') → ~/.epistery/domain/config.ini
16
- * - setPath('/.ssl/domain') → ~/.epistery/.ssl/domain/config.ini
17
- *
18
- * Usage:
19
- * const config = new Config('epistery');
20
- * config.setPath('/wiki.rootz.global');
21
- * config.load();
22
- * config.data.verified = true;
23
- * config.save();
22
+ * LocalConfig the filesystem backend under ~/.epistery. This is the original
23
+ * Config behavior, with all IO made async. It is also what the epistery-authority
24
+ * server mounts as its own storage backend (one implementation, not two).
24
25
  */
25
- class Config {
26
+ class LocalConfig {
26
27
  constructor(rootName = 'epistery') {
27
28
  this.currentPath = '/';
28
29
  this.data = {};
@@ -31,137 +32,284 @@ class Config {
31
32
  this.configDir = (0, path_1.join)(this.homeDir, '.' + this.rootName);
32
33
  this.currentDir = this.configDir;
33
34
  this.currentFile = (0, path_1.join)(this.configDir, 'config.ini');
34
- // Initialize root config if it doesn't exist
35
+ // Bootstrap is synchronous: seed the root config so the very first run has
36
+ // somewhere to read the authority URL from. Only this seed stays sync; all
37
+ // subsequent IO is async.
35
38
  if (!fs_1.default.existsSync(this.currentFile)) {
36
- this.initialize();
39
+ this.initializeSync();
37
40
  }
38
41
  }
39
- /**
40
- * Set current working path and load config (like cd)
41
- * Examples: '/', 'domain', '/domain', '/.ssl/domain'
42
- * Leading slash is optional and will be added if not present
43
- * Automatically loads the config at the specified path
44
- */
45
- setPath(path) {
46
- // Normalize path: ensure leading slash, remove trailing slash, lowercase
47
- path = path.trim();
48
- if (!path.startsWith('/'))
49
- path = '/' + path;
50
- if (path.length > 1 && path.endsWith('/'))
51
- path = path.slice(0, -1);
52
- path = path.toLowerCase();
42
+ initializeSync() {
43
+ if (!fs_1.default.existsSync(this.currentDir)) {
44
+ fs_1.default.mkdirSync(this.currentDir, { recursive: true });
45
+ }
46
+ const defaultContent = this.currentPath === '/' ? defaultIni : '';
47
+ fs_1.default.writeFileSync(this.currentFile, defaultContent);
48
+ this.data = ini_1.default.decode(defaultContent);
49
+ }
50
+ getPath() {
51
+ return this.currentPath;
52
+ }
53
+ async setPath(path) {
54
+ path = normalizePath(path);
53
55
  this.currentPath = path;
54
- // Calculate directory and file paths
55
56
  if (path === '/') {
56
57
  this.currentDir = this.configDir;
57
58
  this.currentFile = (0, path_1.join)(this.configDir, 'config.ini');
58
59
  }
59
60
  else {
60
- this.currentDir = (0, path_1.join)(this.configDir, path.slice(1)); // Remove leading /
61
+ this.currentDir = (0, path_1.join)(this.configDir, path.slice(1));
61
62
  this.currentFile = (0, path_1.join)(this.currentDir, 'config.ini');
62
63
  }
63
- // Automatically load the config at this path
64
- this.load();
65
- }
66
- /**
67
- * Get current path
68
- */
69
- getPath() {
70
- return this.currentPath;
64
+ await this.load();
71
65
  }
72
- /**
73
- * Initialize config at current path
74
- */
75
- initialize() {
76
- if (!fs_1.default.existsSync(this.currentDir)) {
77
- fs_1.default.mkdirSync(this.currentDir, { recursive: true });
66
+ async load() {
67
+ try {
68
+ const fileData = await promises_1.default.readFile(this.currentFile, 'utf8');
69
+ this.data = ini_1.default.decode(fileData);
78
70
  }
79
- // Write default config for root, empty for paths
80
- const defaultContent = this.currentPath === '/' ? defaultIni : '';
81
- fs_1.default.writeFileSync(this.currentFile, defaultContent);
82
- this.data = ini_1.default.decode(defaultContent);
83
- }
84
- /**
85
- * Load config from current path
86
- */
87
- load() {
88
- if (!fs_1.default.existsSync(this.currentFile)) {
71
+ catch {
89
72
  this.data = {};
90
- return;
91
73
  }
92
- const fileData = fs_1.default.readFileSync(this.currentFile, 'utf8');
93
- this.data = ini_1.default.decode(fileData);
94
74
  }
95
- /**
96
- * Read config from arbitrary path without changing current path
97
- * @param path Path to read from (e.g., '/', '/domain')
98
- * @returns Parsed config data from that path
99
- */
100
- read(path) {
101
- // Normalize path
102
- path = path.trim();
103
- if (!path.startsWith('/'))
104
- path = '/' + path;
105
- if (path.length > 1 && path.endsWith('/'))
106
- path = path.slice(0, -1);
107
- path = path.toLowerCase();
108
- // Calculate file location
109
- let configFile;
110
- if (path === '/') {
111
- configFile = (0, path_1.join)(this.configDir, 'config.ini');
112
- }
113
- else {
114
- configFile = (0, path_1.join)(this.configDir, path.slice(1), 'config.ini');
75
+ async read(path) {
76
+ path = normalizePath(path);
77
+ const configFile = path === '/'
78
+ ? (0, path_1.join)(this.configDir, 'config.ini')
79
+ : (0, path_1.join)(this.configDir, path.slice(1), 'config.ini');
80
+ try {
81
+ const fileData = await promises_1.default.readFile(configFile, 'utf8');
82
+ return ini_1.default.decode(fileData);
115
83
  }
116
- // Read and parse
117
- if (!fs_1.default.existsSync(configFile)) {
84
+ catch {
118
85
  return {};
119
86
  }
120
- const fileData = fs_1.default.readFileSync(configFile, 'utf8');
121
- return ini_1.default.decode(fileData);
122
87
  }
123
- /**
124
- * Save config to current path
125
- */
126
- save() {
127
- if (!fs_1.default.existsSync(this.currentDir)) {
128
- fs_1.default.mkdirSync(this.currentDir, { recursive: true });
88
+ async save() {
89
+ await promises_1.default.mkdir(this.currentDir, { recursive: true });
90
+ await promises_1.default.writeFile(this.currentFile, ini_1.default.stringify(this.data));
91
+ }
92
+ async readFile(filename) {
93
+ return promises_1.default.readFile((0, path_1.join)(this.currentDir, filename));
94
+ }
95
+ async writeFile(filename, data) {
96
+ await promises_1.default.mkdir(this.currentDir, { recursive: true });
97
+ await promises_1.default.writeFile((0, path_1.join)(this.currentDir, filename), data);
98
+ }
99
+ async exists() {
100
+ try {
101
+ await promises_1.default.access(this.currentFile);
102
+ return true;
103
+ }
104
+ catch {
105
+ return false;
129
106
  }
130
- const text = ini_1.default.stringify(this.data);
131
- fs_1.default.writeFileSync(this.currentFile, text);
132
107
  }
133
- /**
134
- * Read file from current path directory
135
- */
136
- readFile(filename) {
137
- return fs_1.default.readFileSync((0, path_1.join)(this.currentDir, filename));
108
+ async listPaths() {
109
+ try {
110
+ const entries = await promises_1.default.readdir(this.currentDir, { withFileTypes: true });
111
+ return entries.filter(e => e.isDirectory()).map(e => e.name);
112
+ }
113
+ catch {
114
+ return [];
115
+ }
138
116
  }
139
- /**
140
- * Write file to current path directory
141
- */
142
- writeFile(filename, data) {
143
- if (!fs_1.default.existsSync(this.currentDir)) {
144
- fs_1.default.mkdirSync(this.currentDir, { recursive: true });
117
+ }
118
+ exports.LocalConfig = LocalConfig;
119
+ /**
120
+ * RemoteConfig — HTTP client to an epistery-authority server. Implements the
121
+ * same ConfigStore interface; the authority mounts a LocalConfig behind it.
122
+ *
123
+ * Auth is the rivet key-exchange: the machine signs a challenge with its
124
+ * device key, and the authority issues a bearer token (see epistery-authority
125
+ * lib/auth.mjs). In Phase 1 config data (including the wallet mnemonic) is
126
+ * still served; Phase 2 splits public from secret and adds /sign/*.
127
+ */
128
+ class RemoteConfig {
129
+ constructor(baseUrl, machineAddress, signChallenge, basePath = '') {
130
+ this.baseUrl = baseUrl;
131
+ this.machineAddress = machineAddress;
132
+ this.signChallenge = signChallenge;
133
+ this.data = {};
134
+ this.currentPath = '/';
135
+ this.token = null;
136
+ this.baseUrl = baseUrl.replace(/\/+$/, '');
137
+ this.basePath = (!basePath || basePath === '/') ? '' : normalizePath(basePath);
138
+ }
139
+ getPath() {
140
+ return this.currentPath; // the client's logical path (unprefixed)
141
+ }
142
+ /** Map a client path into the authority's namespace under basePath. */
143
+ prefixed(path) {
144
+ const p = normalizePath(path);
145
+ if (!this.basePath)
146
+ return p;
147
+ return p === '/' ? this.basePath : this.basePath + p;
148
+ }
149
+ async authenticate() {
150
+ const fetch = globalThis.fetch;
151
+ const cRes = await fetch(`${this.baseUrl}/auth/challenge`, {
152
+ method: 'POST',
153
+ headers: { 'content-type': 'application/json' },
154
+ body: JSON.stringify({ machineAddress: this.machineAddress }),
155
+ });
156
+ if (!cRes.ok)
157
+ throw new Error(`authority challenge failed: ${cRes.status}`);
158
+ const { challenge } = await cRes.json();
159
+ const message = `Epistery Key Exchange - ${this.machineAddress} - ${challenge}`;
160
+ const signature = await this.signChallenge(message);
161
+ const vRes = await fetch(`${this.baseUrl}/auth/verify`, {
162
+ method: 'POST',
163
+ headers: { 'content-type': 'application/json' },
164
+ body: JSON.stringify({ machineAddress: this.machineAddress, message, signature }),
165
+ });
166
+ if (!vRes.ok)
167
+ throw new Error(`authority verify failed: ${vRes.status}`);
168
+ this.token = (await vRes.json()).token;
169
+ }
170
+ async authedFetch(pathAndQuery, init = {}) {
171
+ const fetch = globalThis.fetch;
172
+ if (!this.token)
173
+ await this.authenticate();
174
+ const withAuth = () => ({ ...init, headers: { ...(init.headers || {}), authorization: `Bearer ${this.token}` } });
175
+ let res = await fetch(this.baseUrl + pathAndQuery, withAuth());
176
+ if (res.status === 401) {
177
+ this.token = null; // expired — re-auth once
178
+ await this.authenticate();
179
+ res = await fetch(this.baseUrl + pathAndQuery, withAuth());
145
180
  }
146
- fs_1.default.writeFileSync((0, path_1.join)(this.currentDir, filename), data);
181
+ return res;
147
182
  }
148
- /**
149
- * Check if config exists at current path
150
- */
151
- exists() {
152
- return fs_1.default.existsSync(this.currentFile);
183
+ async setPath(path) {
184
+ this.currentPath = normalizePath(path);
185
+ await this.load();
186
+ }
187
+ async load() {
188
+ this.data = await this.read(this.currentPath);
189
+ }
190
+ async read(path) {
191
+ const p = this.prefixed(path);
192
+ const res = await this.authedFetch(`/config${p === '/' ? '/' : p}`);
193
+ if (!res.ok)
194
+ return {};
195
+ return (await res.json()).data || {};
196
+ }
197
+ async save() {
198
+ const p = this.prefixed(this.currentPath);
199
+ const res = await this.authedFetch(`/config${p === '/' ? '/' : p}`, {
200
+ method: 'PUT',
201
+ headers: { 'content-type': 'application/json' },
202
+ body: JSON.stringify({ data: this.data }),
203
+ });
204
+ if (!res.ok)
205
+ throw new Error(`authority save failed: ${res.status}`);
206
+ }
207
+ filePrefix() {
208
+ const p = this.prefixed(this.currentPath);
209
+ return p === '/' ? '' : p;
210
+ }
211
+ async readFile(filename) {
212
+ const res = await this.authedFetch(`/file${this.filePrefix()}/${filename}`);
213
+ if (!res.ok)
214
+ throw new Error(`authority file read failed: ${res.status}`);
215
+ return Buffer.from(await res.arrayBuffer());
216
+ }
217
+ async writeFile(filename, data) {
218
+ const res = await this.authedFetch(`/file${this.filePrefix()}/${filename}`, {
219
+ method: 'PUT',
220
+ headers: { 'content-type': 'application/octet-stream' },
221
+ body: data,
222
+ });
223
+ if (!res.ok)
224
+ throw new Error(`authority file write failed: ${res.status}`);
225
+ }
226
+ async exists() {
227
+ const data = await this.read(this.currentPath);
228
+ return !!data && Object.keys(data).length > 0;
229
+ }
230
+ async listPaths() {
231
+ const p = this.prefixed(this.currentPath);
232
+ const res = await this.authedFetch(`/paths${p === '/' ? '/' : p}`);
233
+ if (!res.ok)
234
+ return [];
235
+ return (await res.json()).paths || [];
236
+ }
237
+ }
238
+ exports.RemoteConfig = RemoteConfig;
239
+ /**
240
+ * Config — the public facade. `new Config()` selects the backend synchronously
241
+ * (reading only the local bootstrap), then delegates every async operation.
242
+ * Existing call sites change only by adding `await`.
243
+ */
244
+ class Config {
245
+ constructor(rootName = 'epistery') {
246
+ this.local = new LocalConfig(rootName);
247
+ const authorityUrl = Config.resolveAuthorityUrl(rootName);
248
+ if (authorityUrl) {
249
+ const { machineAddress, sign } = Config.machineSigner(rootName);
250
+ // Per-role subtree: this host's '/' maps under it on the authority, so a
251
+ // pool of like role instances shares one config + cert subtree.
252
+ const root = process.env.EPISTERY_CONFIG_ROOT
253
+ || Config.readBootstrap(rootName)?.authority?.root || '';
254
+ this.backend = new RemoteConfig(authorityUrl, machineAddress, sign, root);
255
+ }
256
+ else {
257
+ this.backend = this.local;
258
+ }
259
+ }
260
+ /** Read the local bootstrap config.ini synchronously (authority selection only). */
261
+ static readBootstrap(rootName) {
262
+ const homeDir = (process.platform === 'win32' ? process.env.USERPROFILE : process.env.HOME) || '';
263
+ const file = (0, path_1.join)(homeDir, '.' + rootName, 'config.ini');
264
+ try {
265
+ return ini_1.default.decode(fs_1.default.readFileSync(file, 'utf8'));
266
+ }
267
+ catch {
268
+ return {};
269
+ }
270
+ }
271
+ static resolveAuthorityUrl(rootName) {
272
+ if (process.env.EPISTERY_CONFIG_URL)
273
+ return process.env.EPISTERY_CONFIG_URL;
274
+ const boot = Config.readBootstrap(rootName);
275
+ return boot?.authority?.url || null;
153
276
  }
154
277
  /**
155
- * List all subdirectories at current path
278
+ * Build the machine signer used to authenticate to the authority. The machine
279
+ * rivet key lives in the local bootstrap [authority] section (Phase 1). A
280
+ * future TPM-backed key replaces this without changing the call site.
156
281
  */
157
- listPaths() {
158
- if (!fs_1.default.existsSync(this.currentDir)) {
159
- return [];
282
+ static machineSigner(rootName) {
283
+ const boot = Config.readBootstrap(rootName);
284
+ const a = boot?.authority || {};
285
+ let wallet;
286
+ if (a.machineMnemonic) {
287
+ wallet = ethers_1.ethers.Wallet.fromMnemonic(a.machineMnemonic);
288
+ }
289
+ else if (a.machineKey) {
290
+ wallet = new ethers_1.ethers.Wallet(a.machineKey);
160
291
  }
161
- return fs_1.default.readdirSync(this.currentDir, { withFileTypes: true })
162
- .filter(dirent => dirent.isDirectory())
163
- .map(dirent => dirent.name);
292
+ else {
293
+ throw new Error('Config: [authority] url is set but no machine credential ([authority] machineMnemonic or machineKey) is configured to authenticate to it.');
294
+ }
295
+ return { machineAddress: wallet.address, sign: (m) => wallet.signMessage(m) };
164
296
  }
297
+ // Local-machine facts (always the bootstrap LocalConfig, even in remote mode):
298
+ // these are filesystem paths some callers need (e.g. CliWallet session dir).
299
+ get rootName() { return this.local.rootName; }
300
+ get homeDir() { return this.local.homeDir; }
301
+ get configDir() { return this.local.configDir; }
302
+ get data() { return this.backend.data; }
303
+ set data(v) { this.backend.data = v; }
304
+ getPath() { return this.backend.getPath(); }
305
+ setPath(path) { return this.backend.setPath(path); }
306
+ load() { return this.backend.load(); }
307
+ read(path) { return this.backend.read(path); }
308
+ save() { return this.backend.save(); }
309
+ readFile(filename) { return this.backend.readFile(filename); }
310
+ writeFile(filename, data) { return this.backend.writeFile(filename, data); }
311
+ exists() { return this.backend.exists(); }
312
+ listPaths() { return this.backend.listPaths(); }
165
313
  }
166
314
  exports.Config = Config;
167
315
  const defaultIni = `[profile]
@@ -204,5 +352,14 @@ nativeCurrencyDecimals=18
204
352
  ; minPriorityFeeGwei=25 ; Polygon RPC floor (don't lower)
205
353
  ; [default.rpc.81.policy]
206
354
  ; maxGasPriceGwei=1000 ; legacy-chain analogue (JOC)
355
+
356
+ ; Shared Configuration Authority (optional). When set, Config reads/writes
357
+ ; through the epistery-authority server instead of the local filesystem, so
358
+ ; this host becomes a stateless pool member. EPISTERY_CONFIG_URL overrides url.
359
+ ; [authority]
360
+ ; url=https://epistery-authority-1.internal:4500
361
+ ; machineMnemonic=... ; this machine's rivet (or machineKey=0x…)
362
+ ; root=/relay ; optional: this role's subtree on the authority
363
+ ; ; (a pool of like instances shares it). EPISTERY_CONFIG_ROOT overrides.
207
364
  `;
208
365
  //# sourceMappingURL=Config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/utils/Config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,+BAA4B;AAC5B,8CAAsB;AAEtB;;;;;;;;;;;;;;GAcG;AACH,MAAa,MAAM;IAWjB,YAAY,WAAmB,UAAU;QANjC,gBAAW,GAAW,GAAG,CAAC;QAI3B,SAAI,GAAQ,EAAE,CAAC;QAGpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjG,IAAI,CAAC,SAAS,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEtD,6CAA6C;QAC7C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,IAAY;QACzB,yEAAyE;QACzE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,qCAAqC;QACrC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;YAC1E,IAAI,CAAC,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,iDAAiD;QACjD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,aAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,IAAI;QACT,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,aAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,IAAY;QACtB,iBAAiB;QACjB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1B,0BAA0B;QAC1B,IAAI,UAAkB,CAAC;QACvB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,UAAU,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACjE,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,aAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,IAAI;QACT,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,GAAG,aAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,QAAgB;QAC9B,OAAO,YAAE,CAAC,YAAY,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,QAAgB,EAAE,IAAqB;QACtD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,YAAE,CAAC,aAAa,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,MAAM;QACX,OAAO,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,SAAS;QACd,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,YAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC5D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;aACtC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AApKD,wBAoKC;AAED,MAAM,UAAU,GAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCC,CAAA"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/utils/Config.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,17 @@ export declare class Utils {
5
5
  private static config;
6
6
  private static serverWallet;
7
7
  private static walletCache;
8
- static InitServerWallet(domain?: string): ethers.Wallet | null;
8
+ static InitServerWallet(domain?: string): Promise<ethers.Wallet | null>;
9
9
  static GetServerWallet(): ethers.Wallet | null;
10
+ /**
11
+ * Synchronous accessor for a domain's already-initialized wallet, read from
12
+ * the per-domain cache. Returns null if InitServerWallet(domain) has not been
13
+ * awaited yet. This lets the synchronous `get signer()` getter survive the
14
+ * async migration: setDomain() awaits InitServerWallet to warm the cache, and
15
+ * the getter reads it here without re-entering async config IO.
16
+ */
17
+ static GetServerWalletFor(domain: string): ethers.Wallet | null;
10
18
  static GetConfig(): Config;
11
- static GetDomainInfo(domain?: string): DomainConfig;
19
+ static GetDomainInfo(domain?: string): Promise<DomainConfig>;
12
20
  }
13
21
  //# sourceMappingURL=Utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,YAAY,CAA6B;IAIxD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAyC;WAErD,gBAAgB,CAAC,MAAM,GAAE,MAAoB,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;WAmFpE,eAAe,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI;WAIvC,SAAS,IAAI,MAAM;WAOnB,aAAa,CAAC,MAAM,GAAE,MAAoB,GAAG,YAAY;CA4BxE"}
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,YAAY,CAA6B;IAIxD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAyC;WAE/C,gBAAgB,CAAC,MAAM,GAAE,MAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;WAmFnF,eAAe,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI;IAIrD;;;;;;OAMG;WACW,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;WAIxD,SAAS,IAAI,MAAM;WAOb,aAAa,CAAC,MAAM,GAAE,MAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;CA2BvF"}
@@ -5,7 +5,7 @@ const ethers_1 = require("ethers");
5
5
  const Config_1 = require("./Config");
6
6
  const chains_1 = require("../chains");
7
7
  class Utils {
8
- static InitServerWallet(domain = 'localhost') {
8
+ static async InitServerWallet(domain = 'localhost') {
9
9
  // Fast path: return cached wallet for this domain. Avoids both the
10
10
  // wallet-rebuild cost and the static config setPath mutation.
11
11
  const cached = this.walletCache.get(domain);
@@ -18,7 +18,7 @@ class Utils {
18
18
  this.config = new Config_1.Config();
19
19
  }
20
20
  // Load domain config
21
- this.config.setPath(domain);
21
+ await this.config.setPath(domain);
22
22
  const domainConfig = this.config.data.domain ? this.config.data : { domain: domain };
23
23
  // Get default provider if not set.
24
24
  //
@@ -32,10 +32,10 @@ class Utils {
32
32
  // "provider=undefined", and which on reload becomes a truthy
33
33
  // string that bypasses the `||` fallback below at chainFor).
34
34
  if (!domainConfig.provider) {
35
- this.config.setPath('/');
35
+ await this.config.setPath('/');
36
36
  domainConfig.provider =
37
37
  this.config.data.default?.provider ?? this.config.data.provider;
38
- this.config.setPath(domain); // Switch back to domain
38
+ await this.config.setPath(domain); // Switch back to domain
39
39
  }
40
40
  if (!domainConfig.wallet) {
41
41
  console.log(`No wallet found for domain: ${domain}, creating new wallet...`);
@@ -56,7 +56,7 @@ class Utils {
56
56
  delete domainConfig[k];
57
57
  }
58
58
  this.config.data = domainConfig;
59
- this.config.save();
59
+ await this.config.save();
60
60
  console.log(`[debug] Created new wallet for domain: ${domain}`);
61
61
  console.log(`[debug] Wallet address: ${wallet.address}`);
62
62
  }
@@ -79,18 +79,27 @@ class Utils {
79
79
  static GetServerWallet() {
80
80
  return this.serverWallet;
81
81
  }
82
+ /**
83
+ * Synchronous accessor for a domain's already-initialized wallet, read from
84
+ * the per-domain cache. Returns null if InitServerWallet(domain) has not been
85
+ * awaited yet. This lets the synchronous `get signer()` getter survive the
86
+ * async migration: setDomain() awaits InitServerWallet to warm the cache, and
87
+ * the getter reads it here without re-entering async config IO.
88
+ */
89
+ static GetServerWalletFor(domain) {
90
+ return this.walletCache.get(domain) || null;
91
+ }
82
92
  static GetConfig() {
83
93
  if (!this.config) {
84
94
  this.config = new Config_1.Config();
85
95
  }
86
96
  return this.config;
87
97
  }
88
- static GetDomainInfo(domain = 'localhost') {
98
+ static async GetDomainInfo(domain = 'localhost') {
89
99
  if (!this.config) {
90
100
  this.config = new Config_1.Config();
91
101
  }
92
- this.config.setPath(`/${domain}`);
93
- this.config.load();
102
+ await this.config.setPath(`/${domain}`);
94
103
  if (!this.config.data.domain)
95
104
  return { domain: domain };
96
105
  const domainConfig = this.config.data;
@@ -102,7 +111,7 @@ class Utils {
102
111
  // read epistery.domain.provider.rpc (e.g. connect's on-chain contract
103
112
  // verification) get no RPC. read('/') doesn't move the current path.
104
113
  if (!domainConfig.provider) {
105
- const rootData = this.config.read('/');
114
+ const rootData = await this.config.read('/');
106
115
  domainConfig.provider = rootData.default?.provider ?? rootData.provider;
107
116
  }
108
117
  return domainConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"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"}