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.
- package/.test.env +25 -0
- package/cli/epistery.mjs +9 -10
- package/dist/chains/registry.d.ts +2 -2
- package/dist/chains/registry.d.ts.map +1 -1
- package/dist/chains/registry.js +4 -4
- package/dist/chains/registry.js.map +1 -1
- package/dist/epistery.d.ts +1 -1
- package/dist/epistery.d.ts.map +1 -1
- package/dist/epistery.js +4 -4
- package/dist/epistery.js.map +1 -1
- package/dist/utils/CliWallet.d.ts +9 -5
- package/dist/utils/CliWallet.d.ts.map +1 -1
- package/dist/utils/CliWallet.js +18 -13
- package/dist/utils/CliWallet.js.map +1 -1
- package/dist/utils/Config.d.ts +104 -48
- package/dist/utils/Config.d.ts.map +1 -1
- package/dist/utils/Config.js +273 -116
- package/dist/utils/Config.js.map +1 -1
- package/dist/utils/Utils.d.ts +10 -2
- package/dist/utils/Utils.d.ts.map +1 -1
- package/dist/utils/Utils.js +18 -9
- package/dist/utils/Utils.js.map +1 -1
- package/docs/RivetSignerConfigAuthority.md +219 -0
- package/index.mjs +10 -9
- package/package.json +1 -1
- package/routes/auth.mjs +6 -6
- package/routes/domain.mjs +2 -2
- package/routes/fido.mjs +4 -4
- package/src/chains/registry.ts +4 -4
- package/src/epistery.ts +4 -4
- package/src/utils/CliWallet.ts +18 -13
- package/src/utils/Config.ts +313 -106
- package/src/utils/Utils.ts +19 -9
- package/test/config/.epistery/127.0.0.1/config.ini +15 -0
- package/test/config/.epistery/config.ini +14 -0
- package/test/config/.epistery/localhost/config.ini +16 -0
- package/test/config/.epistery/no-pending-claim.local/config.ini +15 -0
- package/test/config/.epistery/test-claim-1782325887560.local/config.ini +20 -0
- package/test/config/.epistery/test-idempotent-1782325887610.local/config.ini +20 -0
- package/test/config/.epistery/test-init-1782325888110.local/config.ini +16 -0
- package/test/routes/auth.test.ts +7 -3
- package/test/routes/identity.test.ts +0 -41
- package/test/routes/status.test.ts +5 -39
- package/test/setup.ts +9 -9
- package/test/utils.ts +9 -3
package/dist/utils/Config.js
CHANGED
|
@@ -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
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
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
|
|
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
|
-
//
|
|
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.
|
|
39
|
+
this.initializeSync();
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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));
|
|
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
|
-
|
|
64
|
-
this.load();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get current path
|
|
68
|
-
*/
|
|
69
|
-
getPath() {
|
|
70
|
-
return this.currentPath;
|
|
64
|
+
await this.load();
|
|
71
65
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
|
|
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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
|
|
181
|
+
return res;
|
|
147
182
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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
|
package/dist/utils/Config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/utils/Config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/utils/Config.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/Utils.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/utils/Utils.js
CHANGED
|
@@ -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;
|
package/dist/utils/Utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,qCAAkC;AAElC,sCAAqC;AAErC,MAAa,KAAK;IAQT,MAAM,CAAC,gBAAgB,CAAC,SAAiB,WAAW;
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"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"}
|