agent0-sdk 0.3.0-rc.1 → 1.0.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.
Files changed (57) hide show
  1. package/README.md +95 -56
  2. package/dist/core/agent.d.ts +37 -2
  3. package/dist/core/agent.d.ts.map +1 -1
  4. package/dist/core/agent.js +362 -24
  5. package/dist/core/agent.js.map +1 -1
  6. package/dist/core/contracts.d.ts +335 -60
  7. package/dist/core/contracts.d.ts.map +1 -1
  8. package/dist/core/contracts.js +174 -59
  9. package/dist/core/contracts.js.map +1 -1
  10. package/dist/core/endpoint-crawler.d.ts +7 -0
  11. package/dist/core/endpoint-crawler.d.ts.map +1 -1
  12. package/dist/core/endpoint-crawler.js +43 -4
  13. package/dist/core/endpoint-crawler.js.map +1 -1
  14. package/dist/core/feedback-manager.d.ts +9 -29
  15. package/dist/core/feedback-manager.d.ts.map +1 -1
  16. package/dist/core/feedback-manager.js +140 -223
  17. package/dist/core/feedback-manager.js.map +1 -1
  18. package/dist/core/indexer.d.ts.map +1 -1
  19. package/dist/core/indexer.js +4 -2
  20. package/dist/core/indexer.js.map +1 -1
  21. package/dist/core/ipfs-client.d.ts +3 -3
  22. package/dist/core/ipfs-client.d.ts.map +1 -1
  23. package/dist/core/ipfs-client.js +31 -14
  24. package/dist/core/ipfs-client.js.map +1 -1
  25. package/dist/core/oasf-validator.d.ts +16 -0
  26. package/dist/core/oasf-validator.d.ts.map +1 -0
  27. package/dist/core/oasf-validator.js +26 -0
  28. package/dist/core/oasf-validator.js.map +1 -0
  29. package/dist/core/sdk.d.ts +9 -11
  30. package/dist/core/sdk.d.ts.map +1 -1
  31. package/dist/core/sdk.js +37 -37
  32. package/dist/core/sdk.js.map +1 -1
  33. package/dist/core/subgraph-client.d.ts +1 -1
  34. package/dist/core/subgraph-client.d.ts.map +1 -1
  35. package/dist/core/subgraph-client.js +74 -14
  36. package/dist/core/subgraph-client.js.map +1 -1
  37. package/dist/core/web3-client.d.ts +98 -6
  38. package/dist/core/web3-client.d.ts.map +1 -1
  39. package/dist/core/web3-client.js +119 -11
  40. package/dist/core/web3-client.js.map +1 -1
  41. package/dist/models/enums.d.ts +2 -1
  42. package/dist/models/enums.d.ts.map +1 -1
  43. package/dist/models/enums.js +1 -0
  44. package/dist/models/enums.js.map +1 -1
  45. package/dist/models/generated/subgraph-types.d.ts +11 -3
  46. package/dist/models/generated/subgraph-types.d.ts.map +1 -1
  47. package/dist/models/interfaces.d.ts +65 -0
  48. package/dist/models/interfaces.d.ts.map +1 -1
  49. package/dist/taxonomies/generated/all_domains.d.ts +9 -0
  50. package/dist/taxonomies/generated/all_domains.d.ts.map +1 -0
  51. package/dist/taxonomies/generated/all_domains.js +1574 -0
  52. package/dist/taxonomies/generated/all_domains.js.map +1 -0
  53. package/dist/taxonomies/generated/all_skills.d.ts +9 -0
  54. package/dist/taxonomies/generated/all_skills.d.ts.map +1 -0
  55. package/dist/taxonomies/generated/all_skills.js +1039 -0
  56. package/dist/taxonomies/generated/all_skills.js.map +1 -0
  57. package/package.json +7 -4
@@ -6,6 +6,7 @@ import { EndpointType, TrustModel } from '../models/enums.js';
6
6
  import { EndpointCrawler } from './endpoint-crawler.js';
7
7
  import { parseAgentId } from '../utils/id-format.js';
8
8
  import { TIMEOUTS } from '../utils/constants.js';
9
+ import { validateSkill, validateDomain } from './oasf-validator.js';
9
10
  /**
10
11
  * Agent class for managing individual agents
11
12
  */
@@ -138,16 +139,354 @@ export class Agent {
138
139
  this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
139
140
  return this;
140
141
  }
141
- setAgentWallet(address, chainId) {
142
- this.registrationFile.walletAddress = address;
143
- this.registrationFile.walletChainId = chainId;
144
- // Check if wallet changed
145
- if (address !== this._lastRegisteredWallet) {
146
- this._dirtyMetadata.add('agentWallet');
142
+ removeEndpoint(arg1, arg2) {
143
+ const { type, value } = arg1 && typeof arg1 === 'object'
144
+ ? { type: arg1.type, value: arg1.value }
145
+ : { type: arg1, value: arg2 };
146
+ if (type === undefined && value === undefined) {
147
+ // Remove all endpoints
148
+ this.registrationFile.endpoints = [];
149
+ }
150
+ else {
151
+ // Remove matching endpoints (wildcard semantics)
152
+ this.registrationFile.endpoints = this.registrationFile.endpoints.filter((ep) => {
153
+ const typeMatches = type === undefined || ep.type === type;
154
+ const valueMatches = value === undefined || ep.value === value;
155
+ return !(typeMatches && valueMatches);
156
+ });
157
+ }
158
+ this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
159
+ return this;
160
+ }
161
+ /**
162
+ * Remove all endpoints.
163
+ */
164
+ removeEndpoints() {
165
+ return this.removeEndpoint();
166
+ }
167
+ // OASF endpoint management
168
+ _getOrCreateOasfEndpoint() {
169
+ // Find existing OASF endpoint
170
+ const existing = this.registrationFile.endpoints.find((ep) => ep.type === EndpointType.OASF);
171
+ if (existing) {
172
+ return existing;
173
+ }
174
+ // Create new OASF endpoint with default values
175
+ const oasfEndpoint = {
176
+ type: EndpointType.OASF,
177
+ value: 'https://github.com/agntcy/oasf/',
178
+ meta: { version: 'v0.8.0', skills: [], domains: [] },
179
+ };
180
+ this.registrationFile.endpoints.push(oasfEndpoint);
181
+ return oasfEndpoint;
182
+ }
183
+ addSkill(slug, validateOASF = false) {
184
+ /**
185
+ * Add a skill to the OASF endpoint.
186
+ * @param slug The skill slug to add (e.g., "natural_language_processing/summarization")
187
+ * @param validateOASF If true, validate the slug against the OASF taxonomy (default: false)
188
+ * @returns this for method chaining
189
+ * @throws Error if validateOASF=true and the slug is not valid
190
+ */
191
+ if (validateOASF) {
192
+ if (!validateSkill(slug)) {
193
+ throw new Error(`Invalid OASF skill slug: ${slug}. ` +
194
+ 'Use validateOASF=false to skip validation.');
195
+ }
196
+ }
197
+ const oasfEndpoint = this._getOrCreateOasfEndpoint();
198
+ // Initialize skills array if missing
199
+ if (!oasfEndpoint.meta) {
200
+ oasfEndpoint.meta = {};
201
+ }
202
+ if (!Array.isArray(oasfEndpoint.meta.skills)) {
203
+ oasfEndpoint.meta.skills = [];
204
+ }
205
+ // Add slug if not already present (avoid duplicates)
206
+ const skills = oasfEndpoint.meta.skills;
207
+ if (!skills.includes(slug)) {
208
+ skills.push(slug);
209
+ }
210
+ this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
211
+ return this;
212
+ }
213
+ removeSkill(slug) {
214
+ /**
215
+ * Remove a skill from the OASF endpoint.
216
+ * @param slug The skill slug to remove
217
+ * @returns this for method chaining
218
+ */
219
+ // Find OASF endpoint
220
+ const oasfEndpoint = this.registrationFile.endpoints.find((ep) => ep.type === EndpointType.OASF);
221
+ if (oasfEndpoint && oasfEndpoint.meta) {
222
+ const skills = oasfEndpoint.meta.skills;
223
+ if (Array.isArray(skills)) {
224
+ const index = skills.indexOf(slug);
225
+ if (index !== -1) {
226
+ skills.splice(index, 1);
227
+ }
228
+ }
229
+ this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
230
+ }
231
+ return this;
232
+ }
233
+ addDomain(slug, validateOASF = false) {
234
+ /**
235
+ * Add a domain to the OASF endpoint.
236
+ * @param slug The domain slug to add (e.g., "finance_and_business/investment_services")
237
+ * @param validateOASF If true, validate the slug against the OASF taxonomy (default: false)
238
+ * @returns this for method chaining
239
+ * @throws Error if validateOASF=true and the slug is not valid
240
+ */
241
+ if (validateOASF) {
242
+ if (!validateDomain(slug)) {
243
+ throw new Error(`Invalid OASF domain slug: ${slug}. ` +
244
+ 'Use validateOASF=false to skip validation.');
245
+ }
246
+ }
247
+ const oasfEndpoint = this._getOrCreateOasfEndpoint();
248
+ // Initialize domains array if missing
249
+ if (!oasfEndpoint.meta) {
250
+ oasfEndpoint.meta = {};
251
+ }
252
+ if (!Array.isArray(oasfEndpoint.meta.domains)) {
253
+ oasfEndpoint.meta.domains = [];
254
+ }
255
+ // Add slug if not already present (avoid duplicates)
256
+ const domains = oasfEndpoint.meta.domains;
257
+ if (!domains.includes(slug)) {
258
+ domains.push(slug);
147
259
  }
148
260
  this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
149
261
  return this;
150
262
  }
263
+ removeDomain(slug) {
264
+ /**
265
+ * Remove a domain from the OASF endpoint.
266
+ * @param slug The domain slug to remove
267
+ * @returns this for method chaining
268
+ */
269
+ // Find OASF endpoint
270
+ const oasfEndpoint = this.registrationFile.endpoints.find((ep) => ep.type === EndpointType.OASF);
271
+ if (oasfEndpoint && oasfEndpoint.meta) {
272
+ const domains = oasfEndpoint.meta.domains;
273
+ if (Array.isArray(domains)) {
274
+ const index = domains.indexOf(slug);
275
+ if (index !== -1) {
276
+ domains.splice(index, 1);
277
+ }
278
+ }
279
+ this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
280
+ }
281
+ return this;
282
+ }
283
+ /**
284
+ * Set agent wallet on-chain with EIP-712 signature verification (ERC-8004 Jan 2026).
285
+ *
286
+ * This is a clean breaking API: it is on-chain only.
287
+ * If the agent is not registered yet, this throws.
288
+ */
289
+ async setAgentWallet(newWallet, opts) {
290
+ if (!this.registrationFile.agentId) {
291
+ throw new Error('Agent must be registered before setting agentWallet on-chain. ' +
292
+ 'Register the agent first, then call setAgentWallet().');
293
+ }
294
+ if (!this.sdk.web3Client.signer) {
295
+ throw new Error('No SDK signer available to submit setAgentWallet transaction');
296
+ }
297
+ // Validate newWallet address
298
+ if (!this.sdk.web3Client.isAddress(newWallet)) {
299
+ throw new Error(`Invalid newWallet address: ${newWallet}`);
300
+ }
301
+ const { tokenId } = parseAgentId(this.registrationFile.agentId);
302
+ const identityRegistry = this.sdk.getIdentityRegistry();
303
+ // Optional short-circuit if already set
304
+ try {
305
+ const currentWallet = await this.sdk.web3Client.callContract(identityRegistry, 'getAgentWallet', BigInt(tokenId));
306
+ if (typeof currentWallet === 'string' &&
307
+ currentWallet.toLowerCase() === newWallet.toLowerCase()) {
308
+ const chainId = await this.sdk.chainId();
309
+ this.registrationFile.walletAddress = newWallet;
310
+ this.registrationFile.walletChainId = chainId;
311
+ this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
312
+ return '';
313
+ }
314
+ }
315
+ catch {
316
+ // ignore and proceed
317
+ }
318
+ // Deadline: contract enforces a short window. Use chain time (latest block timestamp)
319
+ // rather than local system time to avoid clock skew causing reverts.
320
+ const latestBlock = await this.sdk.web3Client.provider.getBlock('latest');
321
+ const chainNow = latestBlock?.timestamp ?? Math.floor(Date.now() / 1000);
322
+ const deadlineValue = opts?.deadline ?? chainNow + 60;
323
+ if (deadlineValue < chainNow) {
324
+ throw new Error(`Invalid deadline: ${deadlineValue} is in the past (chain time: ${chainNow})`);
325
+ }
326
+ if (deadlineValue > chainNow + 300) {
327
+ throw new Error(`Invalid deadline: ${deadlineValue} is too far in the future. ` +
328
+ `ERC-8004 setAgentWallet requires a short deadline (<= chainTime + 300s). ` +
329
+ `(chain time: ${chainNow})`);
330
+ }
331
+ const chainId = await this.sdk.chainId();
332
+ const verifyingContract = await identityRegistry.getAddress();
333
+ const owner = await this.sdk.web3Client.callContract(identityRegistry, 'ownerOf', BigInt(tokenId));
334
+ // Prefer reading the actual EIP-712 domain from the contract (if supported)
335
+ // to avoid any future divergence in name/version.
336
+ let domainName;
337
+ let domainVersion;
338
+ try {
339
+ const domainInfo = await this.sdk.web3Client.callContract(identityRegistry, 'eip712Domain');
340
+ // eip712Domain() returns: (fields, name, version, chainId, verifyingContract, salt, extensions)
341
+ // In ethers v6 this is typically a Result array-like object.
342
+ domainName = domainInfo?.name ?? domainInfo?.[1];
343
+ domainVersion = domainInfo?.version ?? domainInfo?.[2];
344
+ }
345
+ catch {
346
+ // ignore and use defaults
347
+ }
348
+ // If the contract exposes a domain separator, try to select a matching (name, version)
349
+ // deterministically from common candidates.
350
+ let domainSeparatorOnChain;
351
+ try {
352
+ domainSeparatorOnChain = await this.sdk.web3Client.callContract(identityRegistry, 'DOMAIN_SEPARATOR');
353
+ }
354
+ catch {
355
+ // ignore
356
+ }
357
+ // Preflight estimateGas to catch signature/domain/type mismatches early.
358
+ const estimateSetAgentWallet = async (sig) => {
359
+ const fn = identityRegistry.getFunction
360
+ ? identityRegistry.getFunction('setAgentWallet')
361
+ : null;
362
+ if (fn?.estimateGas) {
363
+ await fn.estimateGas(BigInt(tokenId), newWallet, BigInt(deadlineValue), sig);
364
+ }
365
+ else if (identityRegistry.estimateGas?.setAgentWallet) {
366
+ await identityRegistry.estimateGas.setAgentWallet(BigInt(tokenId), newWallet, BigInt(deadlineValue), sig);
367
+ }
368
+ };
369
+ // Determine signature
370
+ let signature;
371
+ if (opts?.signature) {
372
+ signature =
373
+ typeof opts.signature === 'string' ? opts.signature : ethers.hexlify(opts.signature);
374
+ if (!signature.startsWith('0x')) {
375
+ signature = `0x${signature}`;
376
+ }
377
+ }
378
+ else {
379
+ // The new wallet MUST sign (EOA path). Support a few domain/type variants to match deployed registries.
380
+ const signerForNewWallet = opts?.newWalletSigner;
381
+ const sdkSignerAddress = await this.sdk.web3Client.getAddress();
382
+ // If no explicit signer was provided, allow the one-wallet case (SDK signer == newWallet)
383
+ if (!signerForNewWallet) {
384
+ if (!sdkSignerAddress || sdkSignerAddress.toLowerCase() !== newWallet.toLowerCase()) {
385
+ throw new Error(`The new wallet must sign the EIP-712 message. ` +
386
+ `Pass opts.newWalletSigner (private key or Signer) or opts.signature. ` +
387
+ `SDK signer is ${sdkSignerAddress || 'unknown'}, newWallet is ${newWallet}.`);
388
+ }
389
+ }
390
+ else {
391
+ const signerAddress = await this.sdk.web3Client.addressOf(signerForNewWallet);
392
+ if (signerAddress.toLowerCase() !== newWallet.toLowerCase()) {
393
+ throw new Error(`newWalletSigner address (${signerAddress}) does not match newWallet (${newWallet}).`);
394
+ }
395
+ }
396
+ const domainNames = [];
397
+ if (domainName)
398
+ domainNames.push(domainName);
399
+ // Common known names across deployments/spec revisions
400
+ domainNames.push('ERC8004IdentityRegistry', 'IdentityRegistry', 'ERC8004IdentityRegistryUpgradeable', 'IdentityRegistryUpgradeable');
401
+ const domainVersions = [domainVersion || '1', '1'];
402
+ // If we have a domain separator, prefer the (name, version) that matches it.
403
+ if (domainSeparatorOnChain) {
404
+ const match = domainNames.flatMap((dn) => domainVersions.map((dv) => ({ dn, dv }))).find(({ dn, dv }) => {
405
+ try {
406
+ const computed = ethers.TypedDataEncoder.hashDomain({
407
+ name: dn,
408
+ version: dv,
409
+ chainId,
410
+ verifyingContract,
411
+ });
412
+ return computed.toLowerCase() === String(domainSeparatorOnChain).toLowerCase();
413
+ }
414
+ catch {
415
+ return false;
416
+ }
417
+ });
418
+ if (match) {
419
+ domainNames.unshift(match.dn);
420
+ domainVersions.unshift(match.dv);
421
+ }
422
+ }
423
+ // Try (with owner) first, then (no owner) legacy; and try each domain name.
424
+ const variants = [];
425
+ for (const dn of domainNames) {
426
+ for (const dv of domainVersions) {
427
+ variants.push(this.sdk.web3Client.buildAgentWalletSetTypedData({
428
+ agentId: BigInt(tokenId),
429
+ newWallet,
430
+ owner,
431
+ deadline: BigInt(deadlineValue),
432
+ chainId,
433
+ verifyingContract,
434
+ domainName: dn,
435
+ domainVersion: dv,
436
+ }));
437
+ variants.push(this.sdk.web3Client.buildAgentWalletSetTypedDataNoOwner({
438
+ agentId: BigInt(tokenId),
439
+ newWallet,
440
+ deadline: BigInt(deadlineValue),
441
+ chainId,
442
+ verifyingContract,
443
+ domainName: dn,
444
+ domainVersion: dv,
445
+ }));
446
+ }
447
+ }
448
+ let lastError;
449
+ const trySignAndEstimate = async (signerMode) => {
450
+ for (const v of variants) {
451
+ try {
452
+ const sig = signerMode === 'newWallet'
453
+ ? signerForNewWallet
454
+ ? await this.sdk.web3Client.signTypedDataWith(signerForNewWallet, v.domain, v.types, v.message)
455
+ : await this.sdk.web3Client.signTypedData(v.domain, v.types, v.message)
456
+ : await this.sdk.web3Client.signTypedData(v.domain, v.types, v.message);
457
+ const recovered = this.sdk.web3Client.recoverTypedDataSigner(v.domain, v.types, v.message, sig);
458
+ const expected = signerMode === 'newWallet' ? newWallet.toLowerCase() : (sdkSignerAddress || '').toLowerCase();
459
+ if (!expected || recovered.toLowerCase() !== expected) {
460
+ throw new Error(`EIP-712 signature recovery mismatch (${signerMode} signing): recovered ${recovered} but expected ${expected || 'unknown'}`);
461
+ }
462
+ await estimateSetAgentWallet(sig);
463
+ signature = sig;
464
+ return;
465
+ }
466
+ catch (e) {
467
+ lastError = e;
468
+ }
469
+ }
470
+ };
471
+ // Preferred: newWallet signs (spec-aligned)
472
+ await trySignAndEstimate('newWallet');
473
+ // Fallback: some legacy deployments may require the agent owner (tx sender) to sign instead.
474
+ if (!signature && sdkSignerAddress) {
475
+ await trySignAndEstimate('owner');
476
+ }
477
+ if (!signature) {
478
+ const msg = lastError instanceof Error ? lastError.message : String(lastError);
479
+ throw new Error(`Failed to produce a valid setAgentWallet signature for this registry: ${msg}`);
480
+ }
481
+ }
482
+ // Call contract function (tx sender is SDK signer: owner/operator)
483
+ const txHash = await this.sdk.web3Client.transactContract(identityRegistry, 'setAgentWallet', {}, BigInt(tokenId), newWallet, BigInt(deadlineValue), signature);
484
+ // Update local registration file
485
+ this.registrationFile.walletAddress = newWallet;
486
+ this.registrationFile.walletChainId = chainId;
487
+ this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
488
+ return txHash;
489
+ }
151
490
  setActive(active) {
152
491
  this.registrationFile.active = active;
153
492
  this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
@@ -235,13 +574,13 @@ export class Agent {
235
574
  }
236
575
  // Update agent URI on-chain
237
576
  const { tokenId } = parseAgentId(this.registrationFile.agentId);
238
- const txHash = await this.sdk.web3Client.transactContract(this.sdk.getIdentityRegistry(), 'setAgentUri', {}, BigInt(tokenId), `ipfs://${ipfsCid}`);
577
+ const txHash = await this.sdk.web3Client.transactContract(this.sdk.getIdentityRegistry(), 'setAgentURI', {}, BigInt(tokenId), `ipfs://${ipfsCid}`);
239
578
  // Wait for transaction to be confirmed (30 second timeout like Python)
240
579
  // If timeout, continue - transaction was sent and will eventually confirm
241
580
  try {
242
581
  await this.sdk.web3Client.waitForTransaction(txHash, TIMEOUTS.TRANSACTION_WAIT);
243
582
  }
244
- catch (error) {
583
+ catch {
245
584
  // Transaction was sent and will eventually confirm - continue silently
246
585
  }
247
586
  // Clear dirty flags
@@ -261,7 +600,7 @@ export class Agent {
261
600
  const ipfsCid = await this.sdk.ipfsClient.addRegistrationFile(this.registrationFile, chainId, identityRegistryAddress);
262
601
  // Step 3: Set agent URI on-chain
263
602
  const { tokenId } = parseAgentId(this.registrationFile.agentId);
264
- const txHash = await this.sdk.web3Client.transactContract(this.sdk.getIdentityRegistry(), 'setAgentUri', {}, BigInt(tokenId), `ipfs://${ipfsCid}`);
603
+ const txHash = await this.sdk.web3Client.transactContract(this.sdk.getIdentityRegistry(), 'setAgentURI', {}, BigInt(tokenId), `ipfs://${ipfsCid}`);
265
604
  // Wait for transaction to be confirmed
266
605
  await this.sdk.web3Client.waitForTransaction(txHash);
267
606
  // Clear dirty flags
@@ -282,7 +621,7 @@ export class Agent {
282
621
  }
283
622
  if (this.registrationFile.agentId) {
284
623
  // Agent already registered - update agent URI
285
- await this.setAgentUri(agentUri);
624
+ await this.setAgentURI(agentUri);
286
625
  return this.registrationFile;
287
626
  }
288
627
  else {
@@ -293,13 +632,13 @@ export class Agent {
293
632
  /**
294
633
  * Set agent URI (for updates)
295
634
  */
296
- async setAgentUri(agentUri) {
635
+ async setAgentURI(agentURI) {
297
636
  if (!this.registrationFile.agentId) {
298
637
  throw new Error('Agent must be registered before setting URI');
299
638
  }
300
639
  const { tokenId } = parseAgentId(this.registrationFile.agentId);
301
- await this.sdk.web3Client.transactContract(this.sdk.getIdentityRegistry(), 'setAgentUri', {}, BigInt(tokenId), agentUri);
302
- this.registrationFile.agentURI = agentUri;
640
+ await this.sdk.web3Client.transactContract(this.sdk.getIdentityRegistry(), 'setAgentURI', {}, BigInt(tokenId), agentURI);
641
+ this.registrationFile.agentURI = agentURI;
303
642
  this.registrationFile.updatedAt = Math.floor(Date.now() / 1000);
304
643
  }
305
644
  /**
@@ -392,8 +731,8 @@ export class Agent {
392
731
  // Update metadata one by one (like Python SDK)
393
732
  // Only send transactions for dirty (changed) metadata keys
394
733
  for (const entry of metadataEntries) {
395
- if (this._dirtyMetadata.has(entry.key)) {
396
- const txHash = await this.sdk.web3Client.transactContract(identityRegistry, 'setMetadata', {}, BigInt(tokenId), entry.key, entry.value);
734
+ if (this._dirtyMetadata.has(entry.metadataKey)) {
735
+ const txHash = await this.sdk.web3Client.transactContract(identityRegistry, 'setMetadata', {}, BigInt(tokenId), entry.metadataKey, entry.metadataValue);
397
736
  // Wait with 30 second timeout (like Python SDK)
398
737
  // If timeout, log warning but continue - transaction was sent and will eventually confirm
399
738
  try {
@@ -407,16 +746,15 @@ export class Agent {
407
746
  }
408
747
  _collectMetadataForRegistration() {
409
748
  const entries = [];
410
- // Collect wallet address if set
411
- if (this.registrationFile.walletAddress && this.registrationFile.walletChainId) {
412
- const walletValue = `eip155:${this.registrationFile.walletChainId}:${this.registrationFile.walletAddress}`;
413
- entries.push({
414
- key: 'agentWallet',
415
- value: new TextEncoder().encode(walletValue),
416
- });
417
- }
749
+ // Note: agentWallet is now a reserved metadata key that cannot be set via setMetadata()
750
+ // It must be set using setAgentWallet() with EIP-712 signature verification
751
+ // We do not include it in metadata entries here
418
752
  // Collect custom metadata
419
753
  for (const [key, value] of Object.entries(this.registrationFile.metadata)) {
754
+ // Skip agentWallet if it somehow got into metadata
755
+ if (key === 'agentWallet') {
756
+ continue;
757
+ }
420
758
  let valueBytes;
421
759
  if (typeof value === 'string') {
422
760
  valueBytes = new TextEncoder().encode(value);
@@ -427,7 +765,7 @@ export class Agent {
427
765
  else {
428
766
  valueBytes = new TextEncoder().encode(JSON.stringify(value));
429
767
  }
430
- entries.push({ key, value: valueBytes });
768
+ entries.push({ metadataKey: key, metadataValue: valueBytes });
431
769
  }
432
770
  return entries;
433
771
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}