epistery 1.3.0 → 1.3.2

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.
@@ -575,14 +575,20 @@ class Utils {
575
575
  const agentContract = new ethers_1.ethers.Contract(agentContractAddress, AgentArtifact.abi, ownerWallet);
576
576
  // Use helper functions
577
577
  const gasPrice = await this.getGasPriceWithBuffer(ownerWallet, Utils.GAS_PRICE_BUFFER_PERCENT);
578
- // Estimate gas for the contract write
578
+ // Estimate gas for the contract write - this will fail early if contract will revert
579
579
  let gasLimit;
580
580
  try {
581
581
  const estimatedGas = await agentContract.estimateGas.addToWhitelist(listName, addressToAdd, name, role, meta);
582
582
  gasLimit = this.addGasBuffer(estimatedGas, Utils.GAS_LIMIT_BUFFER_PERCENT);
583
583
  console.log(`Contract addToWhitelist - Estimated Gas: ${estimatedGas.toString()}, With Buffer: ${gasLimit.toString()}`);
584
584
  }
585
- catch (error) {
585
+ catch (estimateError) {
586
+ // Gas estimation failure often means the transaction will revert
587
+ // Try to extract the revert reason
588
+ const revertReason = this.extractRevertReason(estimateError);
589
+ if (revertReason) {
590
+ throw new Error(revertReason);
591
+ }
586
592
  console.warn('Gas estimation for contract addToWhitelist failed, using default limit');
587
593
  gasLimit = ethers_1.ethers.BigNumber.from(Utils.FALLBACK_GAS_LIMIT);
588
594
  }
@@ -593,14 +599,73 @@ class Utils {
593
599
  console.log(`Added ${addressToAdd} to whitelist ${listName} (name: ${name}, role: ${role}). Tx: ${tx.hash}`);
594
600
  console.log(`Waiting for confirmation...`);
595
601
  const receipt = await tx.wait();
602
+ // Check if transaction was successful
603
+ if (receipt.status === 0) {
604
+ throw new Error('Transaction reverted');
605
+ }
596
606
  console.log(`Transaction confirmed in block ${receipt.blockNumber}`);
597
607
  console.log(`Gas used: ${receipt.gasUsed.toString()}`);
598
608
  return receipt;
599
609
  }
600
610
  catch (error) {
611
+ // Try to extract a meaningful revert reason from the error
612
+ const revertReason = this.extractRevertReason(error);
613
+ if (revertReason) {
614
+ console.error('Whitelist operation failed:', revertReason);
615
+ throw new Error(revertReason);
616
+ }
601
617
  console.error('Error adding to whitelist:', error);
602
- throw new Error(`Failed to add to whitelist: ${error}`);
618
+ throw new Error(`Failed to add to whitelist: ${error.message || error}`);
619
+ }
620
+ }
621
+ /**
622
+ * Extract revert reason from various error formats
623
+ */
624
+ static extractRevertReason(error) {
625
+ if (!error)
626
+ return null;
627
+ // Check for common revert reason locations
628
+ const errorString = error.toString();
629
+ const errorMessage = error.message || '';
630
+ const reason = error.reason;
631
+ // Known revert messages from our contract
632
+ const knownRevertMessages = [
633
+ 'Address already in whitelist',
634
+ 'List name cannot be empty',
635
+ 'Address cannot be zero',
636
+ 'Invalid role',
637
+ 'Address not in whitelist'
638
+ ];
639
+ // Check if error contains any known revert message
640
+ for (const msg of knownRevertMessages) {
641
+ if (errorString.includes(msg) || errorMessage.includes(msg) || reason?.includes(msg)) {
642
+ return msg;
643
+ }
644
+ }
645
+ // Try to decode from error data if available
646
+ if (error.data && typeof error.data === 'string' && error.data.length > 2) {
647
+ try {
648
+ // Error data format: 0x08c379a0 + offset + length + message (for Error(string))
649
+ if (error.data.startsWith('0x08c379a0')) {
650
+ const abiCoder = new ethers_1.ethers.utils.AbiCoder();
651
+ const decoded = abiCoder.decode(['string'], '0x' + error.data.slice(10));
652
+ if (decoded[0])
653
+ return decoded[0];
654
+ }
655
+ }
656
+ catch {
657
+ // Decoding failed, continue
658
+ }
659
+ }
660
+ // Check nested error structures
661
+ if (error.error) {
662
+ return this.extractRevertReason(error.error);
603
663
  }
664
+ // Return the reason if it exists and is meaningful
665
+ if (reason && reason !== 'null' && reason !== null) {
666
+ return reason;
667
+ }
668
+ return null;
604
669
  }
605
670
  static async RemoveFromWhitelist(ownerWallet, listName, addressToRemove, contractAddress) {
606
671
  try {
@@ -677,6 +742,27 @@ class Utils {
677
742
  throw new Error(`Failed to check whitelist status: ${error}`);
678
743
  }
679
744
  }
745
+ static async GetListsForMember(wallet, ownerAddress, memberAddress, contractAddress) {
746
+ try {
747
+ const agentContractAddress = contractAddress || process.env.AGENT_CONTRACT_ADDRESS;
748
+ if (!agentContractAddress || agentContractAddress === '0x0000000000000000000000000000000000000000') {
749
+ throw new Error('Agent contract address not configured');
750
+ }
751
+ const agentContract = new ethers_1.ethers.Contract(agentContractAddress, AgentArtifact.abi, wallet);
752
+ const memberships = await agentContract.getListsForMember(ownerAddress, memberAddress);
753
+ // Normalize the response
754
+ const plainMemberships = memberships.map((entry) => ({
755
+ listName: entry.listName,
756
+ role: entry.role,
757
+ addedAt: entry.addedAt.toNumber ? entry.addedAt.toNumber() : Number(entry.addedAt)
758
+ }));
759
+ return plainMemberships;
760
+ }
761
+ catch (error) {
762
+ console.error('Error getting lists for member:', error);
763
+ throw new Error(`Failed to get lists for member: ${error}`);
764
+ }
765
+ }
680
766
  static async CreateApproval(requestorWallet, approverAddress, fileName, fileHash, domain) {
681
767
  try {
682
768
  const agentContractAddress = process.env.AGENT_CONTRACT_ADDRESS;
@@ -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
@@ -11,7 +11,7 @@ const __filename = fileURLToPath(import.meta.url);
11
11
  const __dirname = path.dirname(__filename);
12
12
 
13
13
  // Expected Agent contract version - must match contract VERSION constant
14
- export const EXPECTED_CONTRACT_VERSION = "2.0.0";
14
+ export const EXPECTED_CONTRACT_VERSION = "3.0.0";
15
15
 
16
16
  // Helper function to get or create domain configurations src/utils/Config.ts system
17
17
  function getDomainConfig(domain) {
@@ -57,8 +57,37 @@ class EpisteryAttach {
57
57
  next();
58
58
  });
59
59
 
60
- // Session middleware - restore req.episteryClient from _epistery cookie
60
+ // Authentication middleware - handle Bot auth and session cookies
61
61
  app.use(async (req, res, next) => {
62
+ // 1. Check for Bot authentication (CLI/programmatic access)
63
+ if (!req.episteryClient && req.headers.authorization?.startsWith("Bot ")) {
64
+ try {
65
+ const authHeader = req.headers.authorization.substring(4);
66
+ const decoded = Buffer.from(authHeader, "base64").toString("utf8");
67
+ const payload = JSON.parse(decoded);
68
+
69
+ const { address, signature, message } = payload;
70
+
71
+ if (address && signature && message) {
72
+ // Verify the signature using ethers
73
+ const { ethers } = await import("ethers");
74
+ const recoveredAddress = ethers.utils.verifyMessage(message, signature);
75
+
76
+ if (recoveredAddress.toLowerCase() === address.toLowerCase()) {
77
+ req.episteryClient = {
78
+ address: address,
79
+ authenticated: true,
80
+ authType: "bot",
81
+ };
82
+ }
83
+ }
84
+ } catch (error) {
85
+ console.error("[epistery] Bot auth error:", error.message);
86
+ // Continue to try other auth methods
87
+ }
88
+ }
89
+
90
+ // 2. Check for session cookie (_epistery)
62
91
  if (!req.episteryClient && req.cookies?._epistery) {
63
92
  try {
64
93
  const sessionData = JSON.parse(
@@ -167,7 +196,7 @@ class EpisteryAttach {
167
196
  /**
168
197
  * Check if an address is on a list for the current server domain
169
198
  * @param {string} address - The address to check
170
- * @param {string} listName - Name of the list to check
199
+ * @param {string} listName - Name of the list to check, if null return all for address
171
200
  * @returns {Promise<boolean>} True if address is on the list
172
201
  */
173
202
  async isListed(address, listName) {
@@ -207,6 +236,47 @@ class EpisteryAttach {
207
236
  );
208
237
  }
209
238
 
239
+ /**
240
+ * Get all list memberships for a specific address
241
+ * @param {string} address - The address to look up
242
+ * @returns {Promise<Array>} Array of membership entries with listName, role, addedAt
243
+ */
244
+ async getListsForMember(address) {
245
+ if (!this.domain?.wallet) {
246
+ throw new Error("Server wallet not initialized for domain");
247
+ }
248
+
249
+ if (!this.domainName) {
250
+ throw new Error("Domain name not set");
251
+ }
252
+
253
+ if (!address) {
254
+ throw new Error("Address is required");
255
+ }
256
+
257
+ // Initialize server wallet if not already done
258
+ const serverWallet = Utils.InitServerWallet(this.domainName);
259
+ if (!serverWallet) {
260
+ throw new Error("Server wallet not connected");
261
+ }
262
+
263
+ // Get contract address from domain config
264
+ this.config.setPath(`/${this.domainName}`);
265
+ const contractAddress =
266
+ this.config.data?.agent_contract_address ||
267
+ process.env.AGENT_CONTRACT_ADDRESS;
268
+ if (!contractAddress) {
269
+ throw new Error("Agent contract address not configured for domain");
270
+ }
271
+
272
+ return await Utils.GetListsForMember(
273
+ serverWallet,
274
+ this.domain.wallet.address,
275
+ address,
276
+ contractAddress,
277
+ );
278
+ }
279
+
210
280
  /**
211
281
  * Get the contract sponsor (owner) address
212
282
  * @returns {Promise<string>} The sponsor's Ethereum address
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epistery",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
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",
@@ -90,7 +90,7 @@ export default function whitelistRoutes(epistery) {
90
90
  if (episterySession) {
91
91
  try {
92
92
  const sessionData = JSON.parse(
93
- Buffer.from(episterySession, "base64").toString("utf8")
93
+ Buffer.from(episterySession, "base64").toString("utf8"),
94
94
  );
95
95
  if (sessionData && sessionData.rivetAddress) {
96
96
  return {
@@ -122,7 +122,7 @@ export default function whitelistRoutes(epistery) {
122
122
  // Primary: Check if address is on the epistery::admin list
123
123
  const isOnAdminList = await epistery.isListed(
124
124
  rivetAddress,
125
- "epistery::admin"
125
+ "epistery::admin",
126
126
  );
127
127
 
128
128
  if (isOnAdminList) {
@@ -267,6 +267,54 @@ export default function whitelistRoutes(epistery) {
267
267
  }
268
268
  });
269
269
 
270
+ // Lists by address endpoint - get all whitelists an address belongs to
271
+ // Query params: ?address=0x...
272
+ router.get("/listsByAddress", async (req, res) => {
273
+ try {
274
+ const { address } = req.query;
275
+
276
+ if (!address || !/^0x[a-fA-F0-9]{40}$/.test(address)) {
277
+ return res.status(400).json({
278
+ error: "Invalid or missing address parameter",
279
+ });
280
+ }
281
+
282
+ // Get memberships from contract
283
+ const memberships = await epistery.getListsForMember(address);
284
+
285
+ res.json({
286
+ client: {
287
+ address: address,
288
+ whitelists: memberships.map((m) => m.listName),
289
+ memberships: memberships.map((m) => ({
290
+ listName: m.listName,
291
+ role: m.role,
292
+ roleName: getRoleName(m.role),
293
+ addedAt: m.addedAt,
294
+ })),
295
+ whitelistedBy: epistery.domain?.wallet?.address || null,
296
+ },
297
+ });
298
+ } catch (error) {
299
+ console.error("[whitelist] Lists by address error:", error);
300
+ res.status(500).json({
301
+ error: error.message,
302
+ });
303
+ }
304
+ });
305
+
306
+ // Helper function to get role name
307
+ function getRoleName(role) {
308
+ const roleNames = {
309
+ 0: "none",
310
+ 1: "read",
311
+ 2: "edit",
312
+ 3: "admin",
313
+ 4: "owner",
314
+ };
315
+ return roleNames[role] || "unknown";
316
+ }
317
+
270
318
  // Auth endpoint - establish session from rivet signature
271
319
  router.post("/auth", express.json(), async (req, res) => {
272
320
  try {
@@ -305,7 +353,7 @@ export default function whitelistRoutes(epistery) {
305
353
  timestamp: Date.now(),
306
354
  };
307
355
  const sessionToken = Buffer.from(JSON.stringify(sessionData)).toString(
308
- "base64"
356
+ "base64",
309
357
  );
310
358
 
311
359
  res.cookie("_epistery", sessionToken, {
@@ -452,7 +500,7 @@ export default function whitelistRoutes(epistery) {
452
500
  address,
453
501
  name || "",
454
502
  role || 0,
455
- meta || ""
503
+ meta || "",
456
504
  );
457
505
 
458
506
  res.json({
@@ -561,7 +609,7 @@ export default function whitelistRoutes(epistery) {
561
609
  const existing = pendingRequests.find(
562
610
  (r) =>
563
611
  r.address.toLowerCase() === address.toLowerCase() &&
564
- r.listName === listName
612
+ r.listName === listName,
565
613
  );
566
614
 
567
615
  if (existing) {
@@ -659,7 +707,7 @@ export default function whitelistRoutes(epistery) {
659
707
  const request = pendingRequests.find(
660
708
  (r) =>
661
709
  r.address.toLowerCase() === address.toLowerCase() &&
662
- r.listName === listName
710
+ r.listName === listName,
663
711
  );
664
712
 
665
713
  if (!request) {
@@ -681,7 +729,7 @@ export default function whitelistRoutes(epistery) {
681
729
  addedMethod: "access-request",
682
730
  requestedAt: request.timestamp,
683
731
  approvedAt: new Date().toISOString(),
684
- })
732
+ }),
685
733
  );
686
734
 
687
735
  request.status = "approved";
@@ -689,6 +737,7 @@ export default function whitelistRoutes(epistery) {
689
737
  request.status = "denied";
690
738
  }
691
739
 
740
+ pendingRequests.pop();
692
741
  res.json({
693
742
  success: true,
694
743
  approved,
package/src/epistery.ts CHANGED
@@ -105,7 +105,7 @@ export class Epistery {
105
105
  const result = await Utils.ReadFromContract(provider, clientWalletInfo.address);
106
106
  return result;
107
107
  }
108
- catch(error) {
108
+ catch (error) {
109
109
  throw error;
110
110
  }
111
111
  }
@@ -213,7 +213,7 @@ export class Epistery {
213
213
  throw new Error("Error while writing to contract. Receipt was null.");
214
214
  return ipfsData;
215
215
  }
216
- catch(error) {
216
+ catch (error) {
217
217
  throw error;
218
218
  }
219
219
 
@@ -241,7 +241,7 @@ export class Epistery {
241
241
  transfers: receipts
242
242
  };
243
243
  }
244
- catch(error) {
244
+ catch (error) {
245
245
  throw error;
246
246
  }
247
247
  }
@@ -302,7 +302,7 @@ export class Epistery {
302
302
  if (!receipt) return false;
303
303
  return receipt;
304
304
  }
305
- catch(error) {
305
+ catch (error) {
306
306
  throw error;
307
307
  }
308
308
  }
@@ -326,7 +326,7 @@ export class Epistery {
326
326
  const approvals = await Utils.GetApprovalsByAddress(clientWallet, approverAddress, requestorAddress);
327
327
  return approvals;
328
328
  }
329
- catch(error) {
329
+ catch (error) {
330
330
  throw error;
331
331
  }
332
332
  }
@@ -344,7 +344,7 @@ export class Epistery {
344
344
  const approvals = await Utils.GetAllApprovalsForApprover(provider, approverAddress);
345
345
  return approvals;
346
346
  }
347
- catch(error) {
347
+ catch (error) {
348
348
  throw error;
349
349
  }
350
350
  }
@@ -362,7 +362,7 @@ export class Epistery {
362
362
  const approvals = await Utils.GetAllApprovalsForRequestor(provider, requestorAddress);
363
363
  return approvals;
364
364
  }
365
- catch(error) {
365
+ catch (error) {
366
366
  throw error;
367
367
  }
368
368
  }
@@ -423,7 +423,7 @@ export class Epistery {
423
423
  if (!receipt) return false;
424
424
  return receipt;
425
425
  }
426
- catch(error) {
426
+ catch (error) {
427
427
  throw error;
428
428
  }
429
429
  }
@@ -855,7 +855,7 @@ export class Epistery {
855
855
  signature: serverSignature,
856
856
  identified: true,
857
857
  authenticated: false,
858
- profile:undefined
858
+ profile: undefined
859
859
  };
860
860
 
861
861
  return response;
@@ -940,7 +940,7 @@ export class Epistery {
940
940
  if (!ipfsHash) {
941
941
  throw new Error('Failed to upload to IPFS');
942
942
  }
943
-
943
+
944
944
  // Setup contract for execution
945
945
  const agentContractAddress = process.env.AGENT_CONTRACT_ADDRESS;
946
946
  if (!agentContractAddress || agentContractAddress === '0x0000000000000000000000000000000000000000') {
@@ -952,7 +952,7 @@ export class Epistery {
952
952
  AgentArtifact.abi,
953
953
  provider // Read-only provider, no signer
954
954
  );
955
-
955
+
956
956
  // Estimate gas for contract/transactions
957
957
  let estimatedGas: ethers.BigNumber;
958
958
  try {
@@ -1632,8 +1632,11 @@ export class Epistery {
1632
1632
  const artifact = JSON.parse(artifactData);
1633
1633
 
1634
1634
  // Create contract factory to get deployment bytecode (no signer needed for getting deployment tx)
1635
+ // IdentityContract constructor requires: constructor(string memory _name, string memory _domain)
1636
+ // - _name: Identity name
1637
+ // - _domain: Domain where identity is minted
1635
1638
  const factory = new ethers.ContractFactory(artifact.abi, artifact.bytecode);
1636
- const deployTx = factory.getDeployTransaction();
1639
+ const deployTx = factory.getDeployTransaction(clientAddress, domain);
1637
1640
 
1638
1641
  // Estimate gas for contract deployment
1639
1642
  let estimatedGas: ethers.BigNumber;