epistery 1.5.9 → 1.5.11
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/client/witness.js +268 -0
- package/dist/utils/Utils.d.ts.map +1 -1
- package/dist/utils/Utils.js +22 -2
- package/dist/utils/Utils.js.map +1 -1
- package/index.mjs +17 -2
- package/package.json +1 -1
- package/routes/connect.mjs +64 -2
- package/src/utils/Utils.ts +22 -2
package/client/witness.js
CHANGED
|
@@ -44,6 +44,118 @@ async function ensureEthers() {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
// --- Orphaned-rivet recovery -------------------------------------------------
|
|
48
|
+
// A RivetWallet is split across two per-origin stores: the rivet record
|
|
49
|
+
// (keyId + AES-encrypted private key) in localStorage["epistery"], and the
|
|
50
|
+
// non-extractable AES master key that decrypts it in IndexedDB
|
|
51
|
+
// (EpisteryRivets/masterKeys, keyed by keyId). Browsers evict IndexedDB far
|
|
52
|
+
// more aggressively than localStorage, so the master key can vanish while the
|
|
53
|
+
// rivet record survives. sign() then throws "Master key not found" on every
|
|
54
|
+
// connect(), and connect() never self-heals because it only mints a fresh
|
|
55
|
+
// rivet when there is NO wallet at all (see `if (!witness.wallet)` below).
|
|
56
|
+
//
|
|
57
|
+
// reset_master_key() is the manual recovery path: it finds rivet records whose
|
|
58
|
+
// master key is missing and removes those records so the next page load mints
|
|
59
|
+
// a fresh device key for this origin. It is intentionally NOT called from
|
|
60
|
+
// connect() — advise affected users to run reset_master_key() in the console
|
|
61
|
+
// until the impact of auto-healing is understood.
|
|
62
|
+
//
|
|
63
|
+
// Scope note: IndexedDB and localStorage are siloed per ORIGIN (scheme + host
|
|
64
|
+
// + port), stricter than cookies. This only ever touches the current origin;
|
|
65
|
+
// it cannot affect any other site. The cost is a NEW device address for THIS
|
|
66
|
+
// origin — anything bound to the old address here (follows, previously-signed
|
|
67
|
+
// messages) will not carry over.
|
|
68
|
+
async function reset_master_key({ confirm = true } = {}) {
|
|
69
|
+
const raw = localStorage.getItem("epistery");
|
|
70
|
+
if (!raw) {
|
|
71
|
+
console.log(
|
|
72
|
+
"[reset_master_key] No epistery storage on this origin — nothing to reset. Reload to mint a fresh device key.",
|
|
73
|
+
);
|
|
74
|
+
return { removed: 0, healthy: 0 };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
let data;
|
|
78
|
+
try {
|
|
79
|
+
data = JSON.parse(raw);
|
|
80
|
+
} catch (e) {
|
|
81
|
+
console.warn(
|
|
82
|
+
"[reset_master_key] epistery storage is corrupt JSON; clearing it.",
|
|
83
|
+
e,
|
|
84
|
+
);
|
|
85
|
+
localStorage.removeItem("epistery");
|
|
86
|
+
setTimeout(() => location.reload(), 250);
|
|
87
|
+
return { removed: -1, healthy: 0 };
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Support both the legacy single-wallet shape and the multi-wallet shape.
|
|
91
|
+
const isMulti = Array.isArray(data.wallets);
|
|
92
|
+
const entries = isMulti
|
|
93
|
+
? data.wallets
|
|
94
|
+
: data.wallet
|
|
95
|
+
? [{ id: "legacy", wallet: data.wallet }]
|
|
96
|
+
: [];
|
|
97
|
+
|
|
98
|
+
const orphaned = [];
|
|
99
|
+
let healthy = 0;
|
|
100
|
+
for (const entry of entries) {
|
|
101
|
+
const wal = entry.wallet || entry;
|
|
102
|
+
if (!wal || wal.source !== "rivet") continue;
|
|
103
|
+
const masterKey = wal.keyId
|
|
104
|
+
? await RivetWallet.getMasterKey(wal.keyId)
|
|
105
|
+
: null;
|
|
106
|
+
if (masterKey) {
|
|
107
|
+
healthy++;
|
|
108
|
+
} else {
|
|
109
|
+
orphaned.push({ id: entry.id, keyId: wal.keyId, address: wal.address });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (orphaned.length === 0) {
|
|
114
|
+
console.log(
|
|
115
|
+
`[reset_master_key] No orphaned rivets found (${healthy} healthy). Nothing to do.`,
|
|
116
|
+
);
|
|
117
|
+
return { removed: 0, healthy };
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
console.log(
|
|
121
|
+
`[reset_master_key] Found ${orphaned.length} orphaned rivet(s) — master key missing from IndexedDB:`,
|
|
122
|
+
orphaned,
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
if (confirm && typeof window?.confirm === "function") {
|
|
126
|
+
const ok = window.confirm(
|
|
127
|
+
`Epistery: ${orphaned.length} device key(s) on ${location.host} can't be unlocked — ` +
|
|
128
|
+
`the browser evicted their master key. Reset will mint a NEW device address for this site only. Continue?`,
|
|
129
|
+
);
|
|
130
|
+
if (!ok) {
|
|
131
|
+
console.log("[reset_master_key] Cancelled — no changes made.");
|
|
132
|
+
return { removed: 0, healthy, cancelled: true };
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (isMulti) {
|
|
137
|
+
const orphanIds = new Set(orphaned.map((o) => o.id));
|
|
138
|
+
data.wallets = data.wallets.filter((w) => !orphanIds.has(w.id));
|
|
139
|
+
if (orphanIds.has(data.defaultWalletId)) {
|
|
140
|
+
data.defaultWalletId = data.wallets[0]?.id || null;
|
|
141
|
+
}
|
|
142
|
+
localStorage.setItem("epistery", JSON.stringify(data));
|
|
143
|
+
} else {
|
|
144
|
+
// Legacy shape: the single wallet is the orphan.
|
|
145
|
+
localStorage.removeItem("epistery");
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
console.log(
|
|
149
|
+
`[reset_master_key] Removed ${orphaned.length} orphaned rivet(s) (${healthy} healthy kept). Reloading to mint a fresh device key…`,
|
|
150
|
+
);
|
|
151
|
+
setTimeout(() => location.reload(), 250);
|
|
152
|
+
return { removed: orphaned.length, healthy };
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (typeof window !== "undefined") {
|
|
156
|
+
window.reset_master_key = reset_master_key;
|
|
157
|
+
}
|
|
158
|
+
|
|
47
159
|
export default class Witness {
|
|
48
160
|
constructor(rootPath) {
|
|
49
161
|
if (Witness.instance) return Witness.instance;
|
|
@@ -1162,6 +1274,162 @@ export default class Witness {
|
|
|
1162
1274
|
};
|
|
1163
1275
|
}
|
|
1164
1276
|
|
|
1277
|
+
// Bind this origin's local rivet to an existing IdentityContract owned by
|
|
1278
|
+
// the user at another epistery host (defaults to epistery.io). This is the
|
|
1279
|
+
// cross-host counterpart of the in-browser `acceptJoinToken` flow — the
|
|
1280
|
+
// ferry that lets a user pick an authorized rivet on epistery.io to sign a
|
|
1281
|
+
// join token for a fresh rivet on `acme-host.example`.
|
|
1282
|
+
//
|
|
1283
|
+
// Flow:
|
|
1284
|
+
// 1. Ensure we have a local RivetWallet to register as the new rivet.
|
|
1285
|
+
// If the current default isn't a Browser-type rivet, mint a fresh one.
|
|
1286
|
+
// 2. Open <issuerUrl>/auth in a popup, passing audience + nonce + the
|
|
1287
|
+
// local rivet address as `targetRivetAddress`. The issuer's auth page
|
|
1288
|
+
// drives `prepareAddRivetToContract` + `addRivet` on chain AND has
|
|
1289
|
+
// the user's authorized rivet sign a join token bound to this rivet.
|
|
1290
|
+
// 3. Receive the base64 join token via postMessage. Call
|
|
1291
|
+
// `localRivet.acceptJoinToken(joinToken)` — that verifies the
|
|
1292
|
+
// signature, calls `upgradeToContract(contractAddress)`, and now the
|
|
1293
|
+
// local rivet presents the contract address as its identity.
|
|
1294
|
+
// 4. Re-run key exchange so the host's server sees the new identity.
|
|
1295
|
+
async bindToEpisteryIdentity({
|
|
1296
|
+
issuerUrl = "https://epistery.io",
|
|
1297
|
+
} = {}) {
|
|
1298
|
+
await ensureEthers();
|
|
1299
|
+
|
|
1300
|
+
// Step 1: ensure a local rivet that isn't already bound to a contract.
|
|
1301
|
+
let localRivet = this.wallet;
|
|
1302
|
+
const haveUsableRivet =
|
|
1303
|
+
localRivet &&
|
|
1304
|
+
localRivet.source === "rivet" &&
|
|
1305
|
+
!localRivet.contractAddress;
|
|
1306
|
+
if (!haveUsableRivet) {
|
|
1307
|
+
localRivet = await RivetWallet.create(ethers);
|
|
1308
|
+
localRivet.label = "Browser Wallet";
|
|
1309
|
+
this.wallet = localRivet;
|
|
1310
|
+
this.save();
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
// Step 2: open the issuer's auth popup and await the join token.
|
|
1314
|
+
const nonce = ethers.utils.hexlify(ethers.utils.randomBytes(16));
|
|
1315
|
+
const audience = location.host;
|
|
1316
|
+
const { joinToken, identityName, identityDomain, contractAddress, chainId } =
|
|
1317
|
+
await this._runEpisteryAuth(issuerUrl, {
|
|
1318
|
+
audience,
|
|
1319
|
+
nonce,
|
|
1320
|
+
target_rivet: localRivet.address,
|
|
1321
|
+
});
|
|
1322
|
+
|
|
1323
|
+
if (!joinToken) {
|
|
1324
|
+
throw new Error("Issuer did not return a join token");
|
|
1325
|
+
}
|
|
1326
|
+
|
|
1327
|
+
// Step 3: accept the token. acceptJoinToken verifies the signature
|
|
1328
|
+
// against the inviter's claim, then upgrades this rivet to present the
|
|
1329
|
+
// contract address (see RivetWallet.acceptJoinToken + upgradeToContract).
|
|
1330
|
+
await localRivet.acceptJoinToken(joinToken, ethers);
|
|
1331
|
+
|
|
1332
|
+
// Best-effort metadata from the issuer — handy for the UI but the
|
|
1333
|
+
// authoritative identity is the contract on-chain.
|
|
1334
|
+
if (identityName) localRivet.label = identityDomain
|
|
1335
|
+
? `${identityName}@${identityDomain}`
|
|
1336
|
+
: identityName;
|
|
1337
|
+
this.save();
|
|
1338
|
+
|
|
1339
|
+
// Step 4: re-run key exchange so the host learns the new identity.
|
|
1340
|
+
// performKeyExchange now sees wallet.address == contractAddress and
|
|
1341
|
+
// wallet.rivetAddress == the original rivet, and posts both.
|
|
1342
|
+
//
|
|
1343
|
+
// The issuer's addRivet tx may still be confirming when we land here —
|
|
1344
|
+
// the host's /connect verifies on-chain isAuthorized, which won't pass
|
|
1345
|
+
// until the tx mines (~30s on Polygon). Retry with backoff so the
|
|
1346
|
+
// binding is robust without forcing the issuer to block on confirmation.
|
|
1347
|
+
let lastErr = null;
|
|
1348
|
+
const delays = [0, 5000, 10000, 15000, 20000, 30000]; // ~80s total
|
|
1349
|
+
for (const delay of delays) {
|
|
1350
|
+
if (delay) await new Promise((r) => setTimeout(r, delay));
|
|
1351
|
+
try {
|
|
1352
|
+
await this.performKeyExchange();
|
|
1353
|
+
lastErr = null;
|
|
1354
|
+
break;
|
|
1355
|
+
} catch (e) {
|
|
1356
|
+
lastErr = e;
|
|
1357
|
+
// Only retry on 401-ish (server rejected the contract claim).
|
|
1358
|
+
// Other errors (network, etc.) also retry — cheap and bounded.
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
if (lastErr) throw lastErr;
|
|
1362
|
+
|
|
1363
|
+
return {
|
|
1364
|
+
id: localRivet.id,
|
|
1365
|
+
address: localRivet.address, // = contract
|
|
1366
|
+
rivetAddress: localRivet.rivetAddress,
|
|
1367
|
+
source: localRivet.source,
|
|
1368
|
+
label: localRivet.label,
|
|
1369
|
+
identityName: identityName || null,
|
|
1370
|
+
identityDomain: identityDomain || null,
|
|
1371
|
+
contractAddress: contractAddress || localRivet.contractAddress,
|
|
1372
|
+
chainId: chainId || null,
|
|
1373
|
+
};
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
// Open <issuerUrl>/auth in a popup and await a postMessage result.
|
|
1377
|
+
// The issuer's auth page posts `{type:"epistery-auth", joinToken, ...}`
|
|
1378
|
+
// back to this window when the user has approved and the inviter rivet
|
|
1379
|
+
// has signed a join token. Rejects on issuer error or popup close.
|
|
1380
|
+
async _runEpisteryAuth(issuerUrl, params) {
|
|
1381
|
+
const url = new URL("/auth", issuerUrl);
|
|
1382
|
+
for (const [k, v] of Object.entries(params)) {
|
|
1383
|
+
url.searchParams.set(k, v);
|
|
1384
|
+
}
|
|
1385
|
+
const expectedOrigin = new URL(issuerUrl).origin;
|
|
1386
|
+
const popup = window.open(
|
|
1387
|
+
url.toString(),
|
|
1388
|
+
"epistery-auth",
|
|
1389
|
+
"width=480,height=720,resizable=yes,scrollbars=yes",
|
|
1390
|
+
);
|
|
1391
|
+
if (!popup) {
|
|
1392
|
+
throw new Error(
|
|
1393
|
+
`Popup blocked. Allow popups for ${location.host} to add an Epistery Identity.`,
|
|
1394
|
+
);
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
return new Promise((resolve, reject) => {
|
|
1398
|
+
let settled = false;
|
|
1399
|
+
const cleanup = () => {
|
|
1400
|
+
settled = true;
|
|
1401
|
+
window.removeEventListener("message", onMessage);
|
|
1402
|
+
clearInterval(closeWatcher);
|
|
1403
|
+
};
|
|
1404
|
+
const onMessage = (event) => {
|
|
1405
|
+
if (event.origin !== expectedOrigin) return;
|
|
1406
|
+
const msg = event.data;
|
|
1407
|
+
if (!msg || msg.type !== "epistery-auth") return;
|
|
1408
|
+
if (msg.error) {
|
|
1409
|
+
cleanup();
|
|
1410
|
+
try { popup.close(); } catch (e) {}
|
|
1411
|
+
reject(new Error(msg.error));
|
|
1412
|
+
return;
|
|
1413
|
+
}
|
|
1414
|
+
// The issuer posts whatever fields it has; callers care about
|
|
1415
|
+
// joinToken at minimum. Pass the whole payload through.
|
|
1416
|
+
cleanup();
|
|
1417
|
+
try { popup.close(); } catch (e) {}
|
|
1418
|
+
resolve(msg);
|
|
1419
|
+
};
|
|
1420
|
+
window.addEventListener("message", onMessage);
|
|
1421
|
+
|
|
1422
|
+
// If the user closes the window before completing, surface that.
|
|
1423
|
+
const closeWatcher = setInterval(() => {
|
|
1424
|
+
if (settled) return;
|
|
1425
|
+
if (popup.closed) {
|
|
1426
|
+
cleanup();
|
|
1427
|
+
reject(new Error("Epistery auth window closed before completing"));
|
|
1428
|
+
}
|
|
1429
|
+
}, 500);
|
|
1430
|
+
});
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1165
1433
|
async setDefaultWallet(walletId) {
|
|
1166
1434
|
const storageData = this.loadStorageData();
|
|
1167
1435
|
const walletData = storageData.wallets.find((w) => w.id === walletId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI9D,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,YAAY,CAA6B;IAIxD,OAAO,CAAC,MAAM,CAAC,WAAW,CAAyC;IAGnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAS;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAS;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAM;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAM;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAK;IAG1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAO;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAEtD;;;;;OAKG;mBACkB,qBAAqB;IAK1C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;WAKnB,gBAAgB,CAAC,MAAM,GAAE,MAAoB,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/Utils.js
CHANGED
|
@@ -81,10 +81,21 @@ class Utils {
|
|
|
81
81
|
// Load domain config
|
|
82
82
|
this.config.setPath(domain);
|
|
83
83
|
const domainConfig = this.config.data.domain ? this.config.data : { domain: domain };
|
|
84
|
-
// Get default provider if not set
|
|
84
|
+
// Get default provider if not set.
|
|
85
|
+
//
|
|
86
|
+
// epistery-host (multi-domain) keeps the shared default at
|
|
87
|
+
// root [default.provider]; hosted domains may override it.
|
|
88
|
+
// Single-domain consumers (epistery/app, /chat, /scan) put their
|
|
89
|
+
// provider at the root [provider] section — there is no
|
|
90
|
+
// "default" because there's only one domain. Fall back through
|
|
91
|
+
// both so we never leave domainConfig.provider as a JS undefined
|
|
92
|
+
// (which Config.save would persist as the literal text
|
|
93
|
+
// "provider=undefined", and which on reload becomes a truthy
|
|
94
|
+
// string that bypasses the `||` fallback below at chainFor).
|
|
85
95
|
if (!domainConfig.provider) {
|
|
86
96
|
this.config.setPath('/');
|
|
87
|
-
domainConfig.provider =
|
|
97
|
+
domainConfig.provider =
|
|
98
|
+
this.config.data.default?.provider ?? this.config.data.provider;
|
|
88
99
|
this.config.setPath(domain); // Switch back to domain
|
|
89
100
|
}
|
|
90
101
|
if (!domainConfig.wallet) {
|
|
@@ -96,6 +107,15 @@ class Utils {
|
|
|
96
107
|
publicKey: wallet.publicKey,
|
|
97
108
|
privateKey: wallet.privateKey,
|
|
98
109
|
};
|
|
110
|
+
// Strip any keys still undefined before persist — Config.save()
|
|
111
|
+
// serializes undefined as the literal string "undefined", which
|
|
112
|
+
// becomes truthy on reload and trips downstream consumers (the
|
|
113
|
+
// chainFor throw we chased). Belt-and-suspenders against any
|
|
114
|
+
// other field that could be undefined here in the future.
|
|
115
|
+
for (const k of Object.keys(domainConfig)) {
|
|
116
|
+
if (domainConfig[k] === undefined)
|
|
117
|
+
delete domainConfig[k];
|
|
118
|
+
}
|
|
99
119
|
this.config.data = domainConfig;
|
|
100
120
|
this.config.save();
|
|
101
121
|
console.log(`[debug] Created new wallet for domain: ${domain}`);
|
package/dist/utils/Utils.js.map
CHANGED
|
@@ -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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"}
|
package/index.mjs
CHANGED
|
@@ -113,8 +113,13 @@ class EpisteryAttach {
|
|
|
113
113
|
Buffer.from(cookieValue, "base64").toString("utf8"),
|
|
114
114
|
);
|
|
115
115
|
if (sessionData?.rivetAddress) {
|
|
116
|
+
const hasContract = !!sessionData.contractAddress;
|
|
116
117
|
return {
|
|
117
|
-
address:
|
|
118
|
+
address: hasContract
|
|
119
|
+
? sessionData.contractAddress
|
|
120
|
+
: sessionData.rivetAddress,
|
|
121
|
+
signerAddress: sessionData.rivetAddress,
|
|
122
|
+
contractAddress: sessionData.contractAddress || null,
|
|
118
123
|
publicKey: sessionData.publicKey,
|
|
119
124
|
authenticated: sessionData.authenticated || false,
|
|
120
125
|
};
|
|
@@ -179,8 +184,18 @@ class EpisteryAttach {
|
|
|
179
184
|
Buffer.from(req.cookies._epistery, "base64").toString("utf8"),
|
|
180
185
|
);
|
|
181
186
|
if (sessionData && sessionData.rivetAddress) {
|
|
187
|
+
// If the session was established with a contract-backed rivet
|
|
188
|
+
// (i.e. /connect verified IdentityContract.isAuthorized), surface
|
|
189
|
+
// the contract as the canonical identity and keep the rivet as
|
|
190
|
+
// signerAddress. Plain Tier 1 sessions (no contract) keep
|
|
191
|
+
// address == rivet — back-compat.
|
|
192
|
+
const hasContract = !!sessionData.contractAddress;
|
|
182
193
|
req.episteryClient = {
|
|
183
|
-
address:
|
|
194
|
+
address: hasContract
|
|
195
|
+
? sessionData.contractAddress
|
|
196
|
+
: sessionData.rivetAddress,
|
|
197
|
+
signerAddress: sessionData.rivetAddress,
|
|
198
|
+
contractAddress: sessionData.contractAddress || null,
|
|
184
199
|
publicKey: sessionData.publicKey,
|
|
185
200
|
authenticated: sessionData.authenticated || false,
|
|
186
201
|
};
|
package/package.json
CHANGED
package/routes/connect.mjs
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import express from "express";
|
|
2
|
+
import { createRequire } from "module";
|
|
2
3
|
import { Epistery } from "../dist/epistery.js";
|
|
3
4
|
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const ethers = require("ethers");
|
|
7
|
+
|
|
8
|
+
// Subset of IdentityContract used to verify a rivet's membership claim.
|
|
9
|
+
// Both V2 and V3 IdentityContract expose isAuthorized(address).
|
|
10
|
+
const IDENTITY_AUTHORIZED_ABI = [
|
|
11
|
+
"function isAuthorized(address) view returns (bool)",
|
|
12
|
+
];
|
|
13
|
+
|
|
4
14
|
/**
|
|
5
15
|
* Connect routes - key exchange and wallet creation
|
|
6
16
|
* @param {Object} epistery - The EpisteryAttach instance
|
|
@@ -41,8 +51,56 @@ export default function connectRoutes(epistery) {
|
|
|
41
51
|
error: "Key exchange failed - invalid client credentials",
|
|
42
52
|
});
|
|
43
53
|
}
|
|
54
|
+
|
|
55
|
+
// If the client presents a contract-backed identity (Tier 2), verify
|
|
56
|
+
// on-chain that the signing rivet is actually one of the contract's
|
|
57
|
+
// authorized rivets. This is what closes the cross-host trust loop —
|
|
58
|
+
// the witness can claim any contract address, but the chain is truth.
|
|
59
|
+
//
|
|
60
|
+
// Provider: use the host's domain RPC. v0 assumes the IdentityContract
|
|
61
|
+
// lives on the same chain as the host. Cross-chain identity is a
|
|
62
|
+
// future concern.
|
|
63
|
+
let verifiedContractAddress = null;
|
|
64
|
+
const claimedContract = data.contractAddress || data.identityAddress;
|
|
65
|
+
if (claimedContract) {
|
|
66
|
+
try {
|
|
67
|
+
const rpcUrl =
|
|
68
|
+
serverWallet?.provider?.privateRpc ||
|
|
69
|
+
serverWallet?.provider?.rpc ||
|
|
70
|
+
process.env.CHAIN_RPC_URL;
|
|
71
|
+
if (!rpcUrl) {
|
|
72
|
+
return res.status(500).json({
|
|
73
|
+
error: "No chain RPC configured to verify identity contract",
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const provider = new ethers.providers.JsonRpcProvider(rpcUrl);
|
|
77
|
+
const identity = new ethers.Contract(
|
|
78
|
+
claimedContract,
|
|
79
|
+
IDENTITY_AUTHORIZED_ABI,
|
|
80
|
+
provider,
|
|
81
|
+
);
|
|
82
|
+
const isAuth = await identity.isAuthorized(data.clientAddress);
|
|
83
|
+
if (!isAuth) {
|
|
84
|
+
return res.status(401).json({
|
|
85
|
+
error:
|
|
86
|
+
"Identity contract does not authorize this rivet (isAuthorized returned false)",
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
verifiedContractAddress = claimedContract;
|
|
90
|
+
} catch (e) {
|
|
91
|
+
console.error("[connect] Identity contract verification failed:", e.message);
|
|
92
|
+
return res.status(401).json({
|
|
93
|
+
error: `Identity contract verification failed: ${e.message}`,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
44
98
|
const clientInfo = {
|
|
45
|
-
|
|
99
|
+
// For verified contract sessions, present the contract as the
|
|
100
|
+
// canonical identity. The rivet remains accessible as signerAddress.
|
|
101
|
+
address: verifiedContractAddress || data.clientAddress,
|
|
102
|
+
signerAddress: data.clientAddress,
|
|
103
|
+
contractAddress: verifiedContractAddress,
|
|
46
104
|
publicKey: data.clientPublicKey,
|
|
47
105
|
};
|
|
48
106
|
try {
|
|
@@ -60,9 +118,13 @@ export default function connectRoutes(epistery) {
|
|
|
60
118
|
}
|
|
61
119
|
req.episteryClient = clientInfo;
|
|
62
120
|
|
|
63
|
-
// Create session cookie
|
|
121
|
+
// Create session cookie. Rivet address always recorded; contract
|
|
122
|
+
// address only when we just verified it on-chain. Downstream middleware
|
|
123
|
+
// (index.mjs) surfaces contractAddress as req.episteryClient.address
|
|
124
|
+
// when present.
|
|
64
125
|
const sessionData = {
|
|
65
126
|
rivetAddress: data.clientAddress,
|
|
127
|
+
contractAddress: verifiedContractAddress || null,
|
|
66
128
|
publicKey: data.clientPublicKey,
|
|
67
129
|
authenticated: clientInfo.authenticated || false,
|
|
68
130
|
timestamp: new Date().toISOString(),
|
package/src/utils/Utils.ts
CHANGED
|
@@ -72,10 +72,21 @@ export class Utils {
|
|
|
72
72
|
|
|
73
73
|
const domainConfig = this.config.data.domain ? this.config.data : {domain: domain};
|
|
74
74
|
|
|
75
|
-
// Get default provider if not set
|
|
75
|
+
// Get default provider if not set.
|
|
76
|
+
//
|
|
77
|
+
// epistery-host (multi-domain) keeps the shared default at
|
|
78
|
+
// root [default.provider]; hosted domains may override it.
|
|
79
|
+
// Single-domain consumers (epistery/app, /chat, /scan) put their
|
|
80
|
+
// provider at the root [provider] section — there is no
|
|
81
|
+
// "default" because there's only one domain. Fall back through
|
|
82
|
+
// both so we never leave domainConfig.provider as a JS undefined
|
|
83
|
+
// (which Config.save would persist as the literal text
|
|
84
|
+
// "provider=undefined", and which on reload becomes a truthy
|
|
85
|
+
// string that bypasses the `||` fallback below at chainFor).
|
|
76
86
|
if (!domainConfig.provider) {
|
|
77
87
|
this.config.setPath('/');
|
|
78
|
-
domainConfig.provider =
|
|
88
|
+
domainConfig.provider =
|
|
89
|
+
this.config.data.default?.provider ?? this.config.data.provider;
|
|
79
90
|
this.config.setPath(domain); // Switch back to domain
|
|
80
91
|
}
|
|
81
92
|
|
|
@@ -91,6 +102,15 @@ export class Utils {
|
|
|
91
102
|
privateKey: wallet.privateKey,
|
|
92
103
|
};
|
|
93
104
|
|
|
105
|
+
// Strip any keys still undefined before persist — Config.save()
|
|
106
|
+
// serializes undefined as the literal string "undefined", which
|
|
107
|
+
// becomes truthy on reload and trips downstream consumers (the
|
|
108
|
+
// chainFor throw we chased). Belt-and-suspenders against any
|
|
109
|
+
// other field that could be undefined here in the future.
|
|
110
|
+
for (const k of Object.keys(domainConfig) as Array<keyof typeof domainConfig>) {
|
|
111
|
+
if (domainConfig[k] === undefined) delete domainConfig[k];
|
|
112
|
+
}
|
|
113
|
+
|
|
94
114
|
this.config.data = domainConfig;
|
|
95
115
|
this.config.save();
|
|
96
116
|
|