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.
- package/artifacts/build-info/77fa7a8b1d8980b54997e3a44ae9801d.json +1 -0
- package/artifacts/contracts/agent.sol/Agent.dbg.json +1 -1
- package/artifacts/contracts/agent.sol/Agent.json +43 -2
- package/client/wallet.js +253 -183
- package/client/witness.js +4 -4
- package/contracts/agent.sol +50 -4
- package/demo/whitelist-test.html +46 -0
- package/dist/epistery.d.ts.map +1 -1
- package/dist/epistery.js +4 -1
- package/dist/epistery.js.map +1 -1
- package/dist/utils/Utils.d.ts +5 -0
- package/dist/utils/Utils.d.ts.map +1 -1
- package/dist/utils/Utils.js +89 -3
- package/dist/utils/Utils.js.map +1 -1
- package/index.mjs +73 -3
- package/package.json +1 -1
- package/routes/whitelist/index.mjs +56 -7
- package/src/epistery.ts +15 -12
- package/src/utils/Utils.ts +106 -4
- package/artifacts/build-info/06755c4b5b78c3712cbf3383ae571054.json +0 -1
package/dist/utils/Utils.js
CHANGED
|
@@ -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 (
|
|
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;
|
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
|
@@ -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 = "
|
|
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
|
-
//
|
|
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
|
@@ -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;
|