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 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":"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"}
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/utils/Utils.ts"],"names":[],"mappings":"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"}
@@ -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 = this.config.data.default?.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}`);
@@ -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: sessionData.rivetAddress,
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: sessionData.rivetAddress,
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epistery",
3
- "version": "1.5.9",
3
+ "version": "1.5.11",
4
4
  "description": "Epistery brings blockchain capabilities to mundane web tasks like engagement metrics, authentication and commerce of all sorts.",
5
5
  "author": "Rootz Corp.",
6
6
  "license": "MIT",
@@ -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
- address: data.clientAddress,
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 with rivet identity
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(),
@@ -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 = this.config.data.default?.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