@ic402/client 0.1.5 → 2.0.0

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/dist/client.js CHANGED
@@ -1,4 +1,10 @@
1
+ import { Principal } from '@icp-sdk/core/principal';
2
+ /** JSON.stringify that handles BigInt values. */
3
+ function safeStringify(value) {
4
+ return JSON.stringify(value, (_key, val) => typeof val === 'bigint' ? val.toString() : val);
5
+ }
1
6
  import { signVoucher } from './voucher.js';
7
+ import { Ic402Error, classifyNetworkError, probeX402 as probeX402Url, createEvmClient, getEvmNonce, getFeeData, broadcastTransaction as broadcastTx, registerAgent as registerAgentFlow, } from './evm.js';
2
8
  /**
3
9
  * ic402 TypeScript client SDK.
4
10
  *
@@ -7,7 +13,6 @@ import { signVoucher } from './voucher.js';
7
13
  */
8
14
  export class Ic402Client {
9
15
  config;
10
- totalSpent = 0n;
11
16
  constructor(config) {
12
17
  this.config = config;
13
18
  }
@@ -16,13 +21,9 @@ export class Ic402Client {
16
21
  *
17
22
  * Flow: call method → if #paymentRequired → icrc2_approve → create sig → retry
18
23
  */
19
- async call(canisterId, method, args,
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- actorFactory) {
22
- if (!actorFactory) {
23
- throw new Error('actorFactory required: provide a function that creates an actor for the canister');
24
- }
25
- const actor = actorFactory(canisterId);
24
+ async call(method, args, canisterId) {
25
+ const cid = canisterId ?? this.config.canisterId;
26
+ const actor = this.config.actorFactory(cid);
26
27
  const result = await actor[method](...args);
27
28
  // Check for payment required response
28
29
  if (result && typeof result === 'object' && 'paymentRequired' in result) {
@@ -30,23 +31,14 @@ export class Ic402Client {
30
31
  throw new Error('Payment required but autoPayment is disabled');
31
32
  }
32
33
  const requirement = result.paymentRequired;
33
- // Check budget limits
34
- if (this.config.budget?.maxPerRequest &&
35
- requirement.amount > this.config.budget.maxPerRequest) {
36
- throw new Error(`Amount ${requirement.amount} exceeds maxPerRequest ${this.config.budget.maxPerRequest}`);
37
- }
38
- if (this.config.budget?.maxTotal &&
39
- this.totalSpent + requirement.amount > this.config.budget.maxTotal) {
40
- throw new Error('Total budget exceeded');
41
- }
42
34
  if (!this.config.ledger || !this.config.ledgerActorFactory) {
43
35
  throw new Error('Auto-approval requires ledger and ledgerActorFactory in config');
44
36
  }
45
- // ICRC-2 approve: allow the target canister to spend the required amount
37
+ // ICRC-2 approve: allow the target canister to spend amount + fee buffer
46
38
  const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
47
39
  const approveResult = await ledgerActor.icrc2_approve({
48
- spender: { owner: canisterId, subaccount: [] },
49
- amount: requirement.amount,
40
+ spender: { owner: Principal.fromText(cid), subaccount: [] },
41
+ amount: requirement.amount + (this.config.approvalFeeBuffer ?? 100000n),
50
42
  fee: [],
51
43
  memo: [],
52
44
  from_subaccount: [],
@@ -55,16 +47,16 @@ export class Ic402Client {
55
47
  expires_at: [],
56
48
  });
57
49
  if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
58
- throw new Error(`ICRC-2 approve failed: ${JSON.stringify(approveResult.Err)}`);
50
+ throw new Error(`ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
59
51
  }
60
- this.totalSpent += requirement.amount;
61
52
  // Construct PaymentSignature from the requirement's nonce and retry
53
+ const sender = this.config.identity?.getPrincipal().toText() ?? '';
62
54
  const sig = {
63
55
  scheme: 'exact',
64
56
  network: this.config.network,
65
57
  signature: requirement.nonce,
66
58
  publicKey: [],
67
- sender: '',
59
+ sender,
68
60
  nonce: requirement.nonce,
69
61
  authorization: [],
70
62
  };
@@ -87,13 +79,10 @@ export class Ic402Client {
87
79
  *
88
80
  * Flow: requestSession → calculate deposit → icrc2_approve → openSession → SessionHandle
89
81
  */
90
- async openSession(canisterId, config,
91
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
- actorFactory, signer) {
93
- if (!actorFactory) {
94
- throw new Error('actorFactory required');
95
- }
96
- const actor = actorFactory(canisterId);
82
+ async openSession(sessionConfig, signer, canisterId) {
83
+ const cid = canisterId ?? this.config.canisterId;
84
+ const config = sessionConfig;
85
+ const actor = this.config.actorFactory(cid);
97
86
  let intent = await actor.requestSession();
98
87
  // For EVM sessions, override the intent's network, token, and recipient
99
88
  if (config?.evmNetwork) {
@@ -107,19 +96,14 @@ export class Ic402Client {
107
96
  const maxDeposit = config?.maxDeposit ?? this.config.sessions?.maxDeposit ?? intent.suggestedDeposit;
108
97
  const autoClose = config?.autoClose ?? this.config.sessions?.autoClose ?? true;
109
98
  const idleTimeout = config?.idleTimeout ?? this.config.sessions?.idleTimeout;
110
- // Check budget
111
- if (this.config.budget?.maxSessionDeposit &&
112
- maxDeposit > this.config.budget.maxSessionDeposit) {
113
- throw new Error(`Deposit ${maxDeposit} exceeds maxSessionDeposit ${this.config.budget.maxSessionDeposit}`);
114
- }
115
99
  const isEvm = !!config?.evmTxHash;
116
100
  const network = config?.evmNetwork ?? this.config.network;
117
101
  // ICRC-2 approve deposit amount (ICP sessions only)
118
102
  if (!isEvm && this.config.autoPayment && this.config.ledger && this.config.ledgerActorFactory) {
119
103
  const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
120
104
  const approveResult = await ledgerActor.icrc2_approve({
121
- spender: { owner: canisterId, subaccount: [] },
122
- amount: maxDeposit,
105
+ spender: { owner: Principal.fromText(cid), subaccount: [] },
106
+ amount: maxDeposit + (this.config.approvalFeeBuffer ?? 100000n),
123
107
  fee: [],
124
108
  memo: [],
125
109
  from_subaccount: [],
@@ -128,10 +112,10 @@ export class Ic402Client {
128
112
  expires_at: [],
129
113
  });
130
114
  if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
131
- throw new Error(`ICRC-2 approve failed: ${JSON.stringify(approveResult.Err)}`);
115
+ throw new Error(`ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
132
116
  }
133
117
  }
134
- const sessionConfig = {
118
+ const openConfig = {
135
119
  maxDeposit,
136
120
  autoClose,
137
121
  idleTimeout: idleTimeout ? [idleTimeout] : [],
@@ -144,24 +128,48 @@ export class Ic402Client {
144
128
  if (signer) {
145
129
  pubKey = new Uint8Array(await signer.getPublicKey());
146
130
  }
131
+ const evmAuth = config?.authorization;
147
132
  const sig = {
148
133
  scheme: 'exact',
149
134
  network,
150
135
  signature: isEvm
151
136
  ? Array.from(new TextEncoder().encode(config.evmTxHash))
152
137
  : new Uint8Array(0),
153
- publicKey: [Array.from(pubKey)],
138
+ publicKey: [pubKey],
154
139
  sender: config?.evmSender ?? '',
155
140
  nonce: new Uint8Array(32),
156
- authorization: [],
141
+ authorization: evmAuth
142
+ ? [
143
+ {
144
+ from: evmAuth.from,
145
+ to: evmAuth.to,
146
+ value: typeof evmAuth.value === 'bigint' ? evmAuth.value : BigInt(evmAuth.value),
147
+ validAfter: typeof evmAuth.validAfter === 'bigint'
148
+ ? evmAuth.validAfter
149
+ : BigInt(evmAuth.validAfter),
150
+ validBefore: typeof evmAuth.validBefore === 'bigint'
151
+ ? evmAuth.validBefore
152
+ : BigInt(evmAuth.validBefore),
153
+ nonce: evmAuth.nonce,
154
+ v: evmAuth.v,
155
+ r: evmAuth.r,
156
+ s: evmAuth.s,
157
+ },
158
+ ]
159
+ : [],
157
160
  };
158
- const result = await actor.openSession(sessionConfig, sig);
161
+ const result = await actor.openSession(openConfig, sig);
159
162
  if ('err' in result) {
160
163
  throw new Error(`Failed to open session: ${result.err}`);
161
164
  }
162
165
  const state = result.ok;
163
166
  let sequence = 0n;
164
167
  let consumed = 0n;
168
+ // M-7: bind the verifying canister's principal into every voucher signature.
169
+ // M-7: bind to the canister the session was actually opened on (the resolved
170
+ // `cid`, which honors the per-call canisterId override) — not config.canisterId,
171
+ // or vouchers would bind to the wrong canister and be rejected on the override path.
172
+ const canisterIdText = cid;
165
173
  const handle = {
166
174
  id: state.id,
167
175
  deposited: state.deposited,
@@ -185,7 +193,7 @@ export class Ic402Client {
185
193
  // Sign voucher
186
194
  let signature = new Uint8Array(64);
187
195
  if (signer) {
188
- signature = new Uint8Array(await signVoucher(signer, state.id, consumed, sequence));
196
+ signature = new Uint8Array(await signVoucher(signer, canisterIdText, state.id, consumed, sequence));
189
197
  }
190
198
  const voucher = {
191
199
  sessionId: state.id,
@@ -203,12 +211,20 @@ export class Ic402Client {
203
211
  return callResult;
204
212
  },
205
213
  async callForContent(method, callArgs) {
206
- const cost = intent.costPerCall ?? 1n;
214
+ // costPerCall is a Candid `opt nat` → decodes to [bigint] (Some) or [] (None),
215
+ // ALWAYS an array, so `?? 1n` never fires and `consumed += array` would throw
216
+ // "Cannot mix BigInt and other types". Mirror the guard in call().
217
+ const rawCost = intent.costPerCall;
218
+ const cost = Array.isArray(rawCost) && rawCost.length > 0
219
+ ? BigInt(rawCost[0])
220
+ : typeof rawCost === 'bigint'
221
+ ? rawCost
222
+ : 1n;
207
223
  consumed += cost;
208
224
  sequence += 1n;
209
225
  let sig = new Uint8Array(64);
210
226
  if (signer) {
211
- sig = new Uint8Array(await signVoucher(signer, state.id, consumed, sequence));
227
+ sig = new Uint8Array(await signVoucher(signer, canisterIdText, state.id, consumed, sequence));
212
228
  }
213
229
  const v = {
214
230
  sessionId: state.id,
@@ -230,7 +246,7 @@ export class Ic402Client {
230
246
  if ('ok' in closeResult) {
231
247
  return closeResult.ok;
232
248
  }
233
- throw new Error(`Failed to close session: ${JSON.stringify(closeResult)}`);
249
+ throw new Error(`Failed to close session: ${safeStringify(closeResult)}`);
234
250
  },
235
251
  };
236
252
  return handle;
@@ -294,6 +310,269 @@ export class Ic402Client {
294
310
  }
295
311
  throw new Error('Unknown delivery method');
296
312
  }
313
+ // ── EVM Remote Signing ──
314
+ /**
315
+ * Fetch from an x402-gated URL. The full flow:
316
+ * 1. Client probes the URL → gets 402 with payment requirements
317
+ * 2. Client calls canister signX402Payment → gets signed EIP-3009 header
318
+ * 3. Client retries the URL with the signed X-Payment header
319
+ *
320
+ * @param url - The x402-gated URL to fetch
321
+ * @param actorFactory - Factory to create canister actor
322
+ */
323
+ async fetchX402(url, options) {
324
+ const { init, chainId } = options ?? {};
325
+ const cid = chainId ?? this.tryExtractChainId();
326
+ if (!cid) {
327
+ return {
328
+ status: 'error',
329
+ error: new Ic402Error('config_error', 'EVM chain ID required: set config.network to "eip155:<chainId>" or pass chainId to fetchX402'),
330
+ };
331
+ }
332
+ const actor = this.config.actorFactory(this.config.canisterId);
333
+ // 1. Probe
334
+ const probeResult = await probeX402Url(url, cid, init);
335
+ if (probeResult.status === 'free')
336
+ return probeResult;
337
+ if (probeResult.status === 'error')
338
+ return probeResult;
339
+ const { paymentOption } = probeResult;
340
+ // 2. Sign via canister
341
+ let signed;
342
+ try {
343
+ // Extract chain ID from payment option's network (e.g., "eip155:8453" → 8453)
344
+ const optionChainId = parseInt(paymentOption.network.replace('eip155:', ''), 10) || cid;
345
+ const result = await actor.signX402Payment(optionChainId, paymentOption.asset, paymentOption.recipient, paymentOption.amount, paymentOption.tokenName, paymentOption.tokenVersion);
346
+ if ('err' in result) {
347
+ return { status: 'error', error: new Ic402Error('sign_failed', result.err) };
348
+ }
349
+ signed = result.ok;
350
+ }
351
+ catch (e) {
352
+ const msg = e instanceof Error ? e.message : String(e);
353
+ return { status: 'error', error: new Ic402Error('sign_failed', msg, e) };
354
+ }
355
+ // 3. Retry with payment header.
356
+ // H-10: echo the ic402 server nonce from the 402 challenge into the payment
357
+ // payload so the canister can lock the bound amount (otherwise the
358
+ // EVM-over-HTTP settlement returns #expired). Mirrors evm.ts fetchX402.
359
+ let headerToSend = signed.header;
360
+ if (paymentOption.ic402Nonce) {
361
+ try {
362
+ const obj = JSON.parse(atob(signed.header));
363
+ obj.ic402Nonce = paymentOption.ic402Nonce;
364
+ headerToSend = btoa(JSON.stringify(obj));
365
+ }
366
+ catch {
367
+ headerToSend = signed.header;
368
+ }
369
+ }
370
+ let response;
371
+ try {
372
+ const headers = new Headers(init?.headers);
373
+ headers.set('X-Payment', headerToSend);
374
+ headers.set('Payment-Signature', headerToSend);
375
+ response = await fetch(url, { ...init, headers });
376
+ }
377
+ catch (e) {
378
+ return { status: 'error', error: classifyNetworkError(e) };
379
+ }
380
+ const body = await response.text();
381
+ if (response.ok)
382
+ return { status: 'ok', code: response.status, body, paidAmount: signed.paidAmount };
383
+ if (response.status === 402)
384
+ return { status: 'error', error: new Ic402Error('settlement_failed', body.slice(0, 200)) };
385
+ return {
386
+ status: 'error',
387
+ error: new Ic402Error('http_error', `HTTP ${response.status}: ${body.slice(0, 200)}`),
388
+ };
389
+ }
390
+ /**
391
+ * Register the canister as an agent on the ERC-8004 IdentityRegistry.
392
+ * Full flow: get chain state → canister signs → client broadcasts → poll receipt.
393
+ *
394
+ * @param actorFactory - Factory to create canister actor
395
+ * @param rpcUrl - Optional custom RPC URL for the target chain
396
+ */
397
+ async registerAgent(rpcUrl, chainId) {
398
+ const cid = chainId ?? this.extractChainId();
399
+ const actor = this.config.actorFactory(this.config.canisterId);
400
+ const evmAddress = await actor.getEvmAddress();
401
+ const rpc = rpcUrl ?? this.config.evmRpcUrl;
402
+ const result = await registerAgentFlow(async (nonce, maxFee, priorityFee) => {
403
+ const r = await actor.signAgentRegistration(nonce, maxFee, priorityFee);
404
+ if ('err' in r)
405
+ throw new Ic402Error('sign_failed', r.err);
406
+ return r.ok;
407
+ }, evmAddress, cid, rpc);
408
+ if (result.tokenId != null) {
409
+ try {
410
+ await actor.setAgentId?.(result.tokenId);
411
+ }
412
+ catch {
413
+ /* optional */
414
+ }
415
+ }
416
+ return { tokenId: result.tokenId, txHash: result.txHash };
417
+ }
418
+ /**
419
+ * Sign and broadcast an ERC-20 transfer.
420
+ * Client fetches chain state, canister signs, client broadcasts.
421
+ */
422
+ async sendErc20Transfer(tokenAddress, recipient, amount, rpcUrl) {
423
+ const chainId = this.extractChainId();
424
+ const actor = this.config.actorFactory(this.config.canisterId);
425
+ const evmAddress = await actor.getEvmAddress();
426
+ const rpc = rpcUrl ?? this.config.evmRpcUrl;
427
+ const client = createEvmClient(chainId, rpc);
428
+ const [nonce, fees] = await Promise.all([getEvmNonce(client, evmAddress), getFeeData(client)]);
429
+ const result = await actor.signErc20Transfer(chainId, tokenAddress, recipient, amount, nonce, fees.maxFeePerGas, fees.maxPriorityFeePerGas);
430
+ if ('err' in result)
431
+ throw new Ic402Error('sign_failed', result.err);
432
+ const txHash = await broadcastTx(client, result.ok.rawTx);
433
+ return { txHash };
434
+ }
435
+ /**
436
+ * Sign and broadcast a native ETH transfer.
437
+ */
438
+ async sendEthTransfer(recipient, amountWei, rpcUrl) {
439
+ const chainId = this.extractChainId();
440
+ const actor = this.config.actorFactory(this.config.canisterId);
441
+ const evmAddress = await actor.getEvmAddress();
442
+ const rpc = rpcUrl ?? this.config.evmRpcUrl;
443
+ const client = createEvmClient(chainId, rpc);
444
+ const [nonce, fees] = await Promise.all([getEvmNonce(client, evmAddress), getFeeData(client)]);
445
+ const result = await actor.signEthTransfer(chainId, recipient, amountWei, 21000, nonce, fees.maxFeePerGas, fees.maxPriorityFeePerGas);
446
+ if ('err' in result)
447
+ throw new Ic402Error('sign_failed', result.err);
448
+ const txHash = await broadcastTx(client, result.ok.rawTx);
449
+ return { txHash };
450
+ }
451
+ /** Extract numeric chain ID from CAIP-2 network string, or null if not EVM. */
452
+ tryExtractChainId() {
453
+ const match = this.config.network.match(/^eip155:(\d+)$/);
454
+ return match ? parseInt(match[1], 10) : null;
455
+ }
456
+ /** Extract chain ID or throw. */
457
+ extractChainId() {
458
+ const id = this.tryExtractChainId();
459
+ if (id == null)
460
+ throw new Ic402Error('config_error', `Expected EVM network (eip155:*), got: ${this.config.network}`);
461
+ return id;
462
+ }
463
+ // ── Service Marketplace ──
464
+ /**
465
+ * List available services from the canister.
466
+ */
467
+ async listServices() {
468
+ const actor = this.config.actorFactory(this.config.canisterId);
469
+ return actor.listServices();
470
+ }
471
+ /**
472
+ * Submit a paid service request. Handles x402 payment automatically.
473
+ * Returns the job ID for polling.
474
+ */
475
+ async submitServiceRequest(serviceId, params) {
476
+ const actor = this.config.actorFactory(this.config.canisterId);
477
+ const result = await actor.submitServiceRequest(serviceId, Array.from(params), []);
478
+ if (result && typeof result === 'object' && 'paymentRequired' in result) {
479
+ if (!this.config.autoPayment) {
480
+ throw new Ic402Error('config_error', 'Payment required but autoPayment is disabled');
481
+ }
482
+ if (!this.config.ledger || !this.config.ledgerActorFactory) {
483
+ throw new Ic402Error('config_error', 'Auto-approval requires ledger and ledgerActorFactory');
484
+ }
485
+ const requirement = result.paymentRequired;
486
+ const amount = Array.isArray(requirement) && requirement.length > 0 ? requirement[0].amount : 0n;
487
+ // Approve amount + fee buffer (ICRC-2 transfer_from deducts fee from allowance)
488
+ const approveAmount = amount + (this.config.approvalFeeBuffer ?? 100000n);
489
+ const ledgerActor = this.config.ledgerActorFactory(this.config.ledger);
490
+ const approveResult = await ledgerActor.icrc2_approve({
491
+ spender: { owner: Principal.fromText(this.config.canisterId), subaccount: [] },
492
+ amount: approveAmount,
493
+ fee: [],
494
+ memo: [],
495
+ from_subaccount: [],
496
+ created_at_time: [],
497
+ expected_allowance: [],
498
+ expires_at: [],
499
+ });
500
+ if (approveResult && typeof approveResult === 'object' && 'Err' in approveResult) {
501
+ throw new Ic402Error('sign_failed', `ICRC-2 approve failed: ${safeStringify(approveResult.Err)}`);
502
+ }
503
+ // Convert nonce to proper array — Candid may decode vec nat8 as Uint8Array or indexed object
504
+ const rawNonce = requirement[0]?.nonce ?? new Uint8Array(32);
505
+ const nonce = rawNonce instanceof Uint8Array
506
+ ? Array.from(rawNonce)
507
+ : Array.isArray(rawNonce)
508
+ ? rawNonce
509
+ : Object.values(rawNonce);
510
+ // Sender must be the caller's principal — derive from identity if available
511
+ const sender = this.config.identity?.getPrincipal().toText() ?? '';
512
+ const sig = {
513
+ scheme: 'exact',
514
+ network: this.config.network,
515
+ signature: nonce,
516
+ publicKey: [],
517
+ sender,
518
+ nonce,
519
+ authorization: [],
520
+ };
521
+ const retryResult = await actor.submitServiceRequest(serviceId, Array.from(params), [sig]);
522
+ if (retryResult && typeof retryResult === 'object' && 'ok' in retryResult) {
523
+ return retryResult.ok;
524
+ }
525
+ if (retryResult && typeof retryResult === 'object' && 'error' in retryResult) {
526
+ throw new Ic402Error('sign_failed', retryResult.error);
527
+ }
528
+ throw new Ic402Error('unknown', `Unexpected result: ${safeStringify(retryResult)}`);
529
+ }
530
+ if (result && typeof result === 'object' && 'ok' in result) {
531
+ return result.ok;
532
+ }
533
+ if (result && typeof result === 'object' && 'error' in result) {
534
+ throw new Ic402Error('sign_failed', result.error);
535
+ }
536
+ throw new Ic402Error('unknown', `Unexpected result: ${safeStringify(result)}`);
537
+ }
538
+ /**
539
+ * Poll for a job result until completed or max attempts reached.
540
+ * Returns the full job record when done.
541
+ */
542
+ async pollJobResult(jobId, maxAttempts = 30, intervalMs = 2000) {
543
+ const actor = this.config.actorFactory(this.config.canisterId);
544
+ for (let i = 0; i < maxAttempts; i++) {
545
+ const job = await actor.getJob(jobId);
546
+ // Candid opt returns [job] or []
547
+ const j = Array.isArray(job) && job.length > 0 ? job[0] : job;
548
+ if (!j)
549
+ throw new Ic402Error('unknown', `Job not found: ${jobId}`);
550
+ const status = j.status;
551
+ if ('Settled' in status || 'Verified' in status || 'Submitted' in status) {
552
+ return j;
553
+ }
554
+ if ('Disputed' in status) {
555
+ throw new Ic402Error('sign_failed', `Job disputed: ${jobId}`);
556
+ }
557
+ if ('Expired' in status || 'Refunded' in status) {
558
+ throw new Ic402Error('not_confirmed', `Job expired or refunded: ${jobId}`);
559
+ }
560
+ if (i < maxAttempts - 1) {
561
+ await new Promise((r) => setTimeout(r, intervalMs));
562
+ }
563
+ }
564
+ throw new Ic402Error('not_confirmed', `Job ${jobId} not completed within ${maxAttempts} attempts`);
565
+ }
566
+ /**
567
+ * Dispute a job result (for BuyerConfirm verification).
568
+ */
569
+ async disputeJob(jobId, reason) {
570
+ const actor = this.config.actorFactory(this.config.canisterId);
571
+ const result = await actor.disputeJob(jobId, reason);
572
+ if (result && typeof result === 'object' && 'err' in result) {
573
+ throw new Ic402Error('unknown', result.err);
574
+ }
575
+ }
297
576
  /**
298
577
  * Discover agents via ERC-8004 registries.
299
578
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}