@stellar-agent/x402-client 0.4.4 → 0.5.1

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/README.md CHANGED
@@ -20,9 +20,31 @@ stellar-agent pay x402 http://127.0.0.1:PORT/paid-report --allow-localhost-demo
20
20
  ## Safety
21
21
 
22
22
  - This package is for local Testnet demos.
23
- - Production facilitator-backed x402 support is intentionally out of scope for `0.4.x`.
23
+ - `verifyX402PaymentProof` validates local x402 proofs against Testnet payment evidence: amount, asset, destination, source, resource, nonce, freshness, success, and replay state.
24
+ - Use Horizon-backed verification for real Testnet settlement checks. Mock verification is only for CI-safe demos and local examples.
25
+ - Production facilitator-backed x402 support is intentionally out of scope for this release.
24
26
  - Payment policy and receipts are handled by the CLI flow before and after Testnet payment submission.
25
27
 
28
+ ## Server Verification
29
+
30
+ ```ts
31
+ import { verifyX402PaymentProof } from "@stellar-agent/x402-client";
32
+
33
+ const acceptedTransactions = new Set<string>();
34
+ const verification = await verifyX402PaymentProof({
35
+ proof,
36
+ requirement,
37
+ acceptedTransactions,
38
+ horizonUrl: "https://horizon-testnet.stellar.org"
39
+ });
40
+
41
+ if (!verification.ok) {
42
+ // Return HTTP 402 with verification.error.
43
+ }
44
+ ```
45
+
46
+ The helper fails closed when Horizon evidence is unavailable or when the transaction does not contain a matching payment operation.
47
+
26
48
  ## Links
27
49
 
28
50
  - GitHub: https://github.com/someone-in-texas/Stellar-Agent
package/dist/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export interface X402PaymentRequirement {
10
10
  recipient: string;
11
11
  resource: string;
12
12
  nonce: string;
13
+ issuedAt?: string;
14
+ expiresAt?: string;
13
15
  memo?: string;
14
16
  }
15
17
  export interface X402PaymentProof {
@@ -23,7 +25,36 @@ export interface X402PaymentProof {
23
25
  amount: string;
24
26
  resource: string;
25
27
  nonce: string;
28
+ submittedAt?: string;
26
29
  }
30
+ export interface X402VerifiedPaymentOperation {
31
+ source: string;
32
+ destination: string;
33
+ asset: string;
34
+ amount: string;
35
+ }
36
+ export interface X402VerifiedPayment {
37
+ transactionHash: string;
38
+ successful: boolean;
39
+ ledger?: number;
40
+ createdAt?: string;
41
+ memo?: string;
42
+ operations: X402VerifiedPaymentOperation[];
43
+ }
44
+ export type X402PaymentLoader = (proof: X402PaymentProof) => Promise<X402VerifiedPayment | null>;
45
+ export type X402PaymentVerification = {
46
+ ok: true;
47
+ settlement: {
48
+ mode: "horizon" | "mock";
49
+ transactionHash: string;
50
+ ledger?: number;
51
+ createdAt?: string;
52
+ operation: X402VerifiedPaymentOperation;
53
+ };
54
+ } | {
55
+ ok: false;
56
+ error: "invalid_payment_proof" | "payment_nonce_expired" | "payment_proof_replayed" | "payment_settlement_unavailable" | "payment_not_successful" | "payment_operation_mismatch";
57
+ };
27
58
  export interface X402PaymentResult {
28
59
  firstStatus: number;
29
60
  finalStatus: number;
@@ -55,12 +86,32 @@ export declare function runX402Payment(args: {
55
86
  }): Promise<X402PaymentResult>;
56
87
  export declare function parseX402Requirement(response: Response): Promise<X402PaymentRequirement>;
57
88
  export declare function validateRequirement(value: unknown): X402PaymentRequirement;
89
+ export declare function verifyX402PaymentProof(args: {
90
+ proof: X402PaymentProof;
91
+ requirement: X402PaymentRequirement;
92
+ acceptedTransactions?: Set<string>;
93
+ mode?: "horizon" | "mock";
94
+ now?: Date;
95
+ maxChallengeAgeMs?: number;
96
+ horizonUrl?: string | null;
97
+ fetchImpl?: typeof fetch;
98
+ loadPayment?: X402PaymentLoader;
99
+ }): Promise<X402PaymentVerification>;
100
+ export declare function x402ChallengeMemo(requirement: Pick<X402PaymentRequirement, "nonce" | "resource">): string;
101
+ export declare function loadX402PaymentFromHorizon(args: {
102
+ transactionHash: string;
103
+ horizonUrl?: string | null;
104
+ fetchImpl?: typeof fetch;
105
+ }): Promise<X402VerifiedPayment | null>;
58
106
  export declare function startPaidApiDemo(args: {
59
107
  recipient: string;
60
108
  amount?: string;
61
109
  asset?: string;
62
110
  port?: number;
63
111
  host?: string;
112
+ verificationMode?: "mock" | "horizon";
113
+ horizonUrl?: string | null;
114
+ loadPayment?: X402PaymentLoader;
64
115
  }): Promise<{
65
116
  url: string;
66
117
  close(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EAEd,aAAa,EAGd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,0BAA0B,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,sBAAsB,CAAC;IACpC,cAAc,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACtE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,WAAW,CAAC;CACtC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2H7B;AAgBD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAQ9F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CA8B1E;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CAiFD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import { StellarAgentError, makeId, parseAmount } from "@stellar-agent/core";
1
+ import { TESTNET_PROFILE, StellarAgentError, makeId, parseAmount } from "@stellar-agent/core";
2
2
  import { appendEvent, writeReceipt } from "@stellar-agent/ledger-logger";
3
3
  import { evaluatePaymentRequest } from "@stellar-agent/policy";
4
4
  import { sendPayment } from "@stellar-agent/stellar";
5
+ import { createHash } from "node:crypto";
5
6
  import { createServer } from "node:http";
6
7
  export async function runX402Payment(args) {
7
8
  const fetchImpl = args.fetchImpl ?? fetch;
@@ -78,6 +79,7 @@ export async function runX402Payment(args) {
78
79
  amount: parseAmount(requirement.amount).value,
79
80
  resource: requirement.resource,
80
81
  nonce: requirement.nonce,
82
+ submittedAt: new Date().toISOString(),
81
83
  ...(transaction.ledger === undefined ? {} : { ledger: transaction.ledger })
82
84
  };
83
85
  const paid = await fetchResource(fetchImpl, args.url, {
@@ -164,6 +166,17 @@ export function validateRequirement(value) {
164
166
  });
165
167
  }
166
168
  parseAmount(candidate.amount, candidate.asset);
169
+ const expectedMemo = x402ChallengeMemo({
170
+ resource: candidate.resource,
171
+ nonce: candidate.nonce
172
+ });
173
+ if (candidate.memo !== undefined && candidate.memo !== expectedMemo) {
174
+ throw new StellarAgentError({
175
+ code: "INVALID_INPUT",
176
+ message: "HTTP 402 response included an x402 memo that was not bound to the challenge.",
177
+ docs: "docs/x402-and-mpp.md#local-x402-demo"
178
+ });
179
+ }
167
180
  return {
168
181
  protocol: "stellar-agent-local-x402",
169
182
  version: 1,
@@ -173,7 +186,147 @@ export function validateRequirement(value) {
173
186
  asset: candidate.asset,
174
187
  resource: candidate.resource,
175
188
  nonce: candidate.nonce,
176
- ...(candidate.memo === undefined ? {} : { memo: candidate.memo })
189
+ ...(candidate.issuedAt === undefined ? {} : { issuedAt: candidate.issuedAt }),
190
+ ...(candidate.expiresAt === undefined ? {} : { expiresAt: candidate.expiresAt }),
191
+ memo: expectedMemo
192
+ };
193
+ }
194
+ export async function verifyX402PaymentProof(args) {
195
+ const expectedAmount = parseAmount(args.requirement.amount, args.requirement.asset).value;
196
+ let proofAmount;
197
+ try {
198
+ proofAmount = parseAmount(args.proof.amount, args.proof.asset).value;
199
+ }
200
+ catch {
201
+ return { ok: false, error: "invalid_payment_proof" };
202
+ }
203
+ if (args.proof.protocol !== args.requirement.protocol ||
204
+ args.proof.version !== args.requirement.version ||
205
+ !/^[a-f0-9]{64}$/i.test(args.proof.transactionHash) ||
206
+ !args.proof.payer ||
207
+ args.requirement.network !== "testnet" ||
208
+ args.proof.recipient !== args.requirement.recipient ||
209
+ args.proof.asset !== args.requirement.asset ||
210
+ proofAmount !== expectedAmount ||
211
+ args.proof.resource !== args.requirement.resource ||
212
+ args.proof.nonce !== args.requirement.nonce) {
213
+ return { ok: false, error: "invalid_payment_proof" };
214
+ }
215
+ if (isExpiredRequirement(args.requirement, args.now ?? new Date(), args.maxChallengeAgeMs ?? 5 * 60 * 1000)) {
216
+ return { ok: false, error: "payment_nonce_expired" };
217
+ }
218
+ if (args.acceptedTransactions?.has(args.proof.transactionHash)) {
219
+ return { ok: false, error: "payment_proof_replayed" };
220
+ }
221
+ const mode = args.mode ?? "horizon";
222
+ const payment = args.loadPayment
223
+ ? await args.loadPayment(args.proof)
224
+ : mode === "mock"
225
+ ? mockVerifiedPayment(args.proof)
226
+ : await loadX402PaymentFromHorizon({
227
+ transactionHash: args.proof.transactionHash,
228
+ horizonUrl: args.horizonUrl ?? TESTNET_PROFILE.horizonUrl,
229
+ ...(args.fetchImpl === undefined ? {} : { fetchImpl: args.fetchImpl })
230
+ });
231
+ if (!payment)
232
+ return { ok: false, error: "payment_settlement_unavailable" };
233
+ if (!payment.successful)
234
+ return { ok: false, error: "payment_not_successful" };
235
+ const operation = payment.operations.find((candidate) => candidate.source === args.proof.payer &&
236
+ candidate.destination === args.requirement.recipient &&
237
+ candidate.asset === args.requirement.asset &&
238
+ parseAmount(candidate.amount, candidate.asset).value === expectedAmount);
239
+ if (!operation)
240
+ return { ok: false, error: "payment_operation_mismatch" };
241
+ if (payment.memo !== x402ChallengeMemo(args.requirement)) {
242
+ return { ok: false, error: "payment_operation_mismatch" };
243
+ }
244
+ args.acceptedTransactions?.add(args.proof.transactionHash);
245
+ return {
246
+ ok: true,
247
+ settlement: {
248
+ mode,
249
+ transactionHash: payment.transactionHash,
250
+ ...(payment.ledger === undefined ? {} : { ledger: payment.ledger }),
251
+ ...(payment.createdAt === undefined ? {} : { createdAt: payment.createdAt }),
252
+ operation
253
+ }
254
+ };
255
+ }
256
+ export function x402ChallengeMemo(requirement) {
257
+ return `x402:${createHash("sha256").update(`${requirement.nonce}\0${requirement.resource}`).digest("hex").slice(0, 22)}`;
258
+ }
259
+ export async function loadX402PaymentFromHorizon(args) {
260
+ if (!args.horizonUrl)
261
+ return null;
262
+ const fetchImpl = args.fetchImpl ?? fetch;
263
+ const baseUrl = args.horizonUrl.replace(/\/$/, "");
264
+ const transaction = await fetchJson(fetchImpl, `${baseUrl}/transactions/${args.transactionHash}`);
265
+ if (!transaction)
266
+ return null;
267
+ const operationsUrl = `${baseUrl}/transactions/${args.transactionHash}/operations?limit=200`;
268
+ const operations = await fetchJson(fetchImpl, operationsUrl);
269
+ const records = Array.isArray(operations?._embedded?.records) ? operations._embedded.records : [];
270
+ return {
271
+ transactionHash: String(transaction.hash ?? args.transactionHash),
272
+ successful: transaction.successful === true,
273
+ ...(typeof transaction.ledger === "number" ? { ledger: transaction.ledger } : {}),
274
+ ...(typeof transaction.created_at === "string" ? { createdAt: transaction.created_at } : {}),
275
+ ...(typeof transaction.memo === "string" ? { memo: transaction.memo } : {}),
276
+ operations: records.flatMap((record) => {
277
+ if (record?.type !== "payment")
278
+ return [];
279
+ const asset = record.asset_type === "native" ? "XLM" : `${record.asset_code}:${record.asset_issuer}`;
280
+ if (!record.from || !record.to || !record.amount)
281
+ return [];
282
+ return [
283
+ {
284
+ source: String(record.from),
285
+ destination: String(record.to),
286
+ asset,
287
+ amount: String(record.amount)
288
+ }
289
+ ];
290
+ })
291
+ };
292
+ }
293
+ async function fetchJson(fetchImpl, url) {
294
+ try {
295
+ const response = await fetchImpl(url);
296
+ if (!response.ok)
297
+ return null;
298
+ return response.json();
299
+ }
300
+ catch {
301
+ return null;
302
+ }
303
+ }
304
+ function isExpiredRequirement(requirement, now, maxChallengeAgeMs) {
305
+ if (requirement.expiresAt && Number.isFinite(Date.parse(requirement.expiresAt)) && Date.parse(requirement.expiresAt) < now.getTime()) {
306
+ return true;
307
+ }
308
+ if (!requirement.issuedAt)
309
+ return false;
310
+ const issuedAt = Date.parse(requirement.issuedAt);
311
+ if (!Number.isFinite(issuedAt))
312
+ return true;
313
+ return now.getTime() - issuedAt > maxChallengeAgeMs;
314
+ }
315
+ function mockVerifiedPayment(proof) {
316
+ return {
317
+ transactionHash: proof.transactionHash,
318
+ successful: true,
319
+ ...(proof.ledger === undefined ? {} : { ledger: proof.ledger }),
320
+ ...(proof.submittedAt === undefined ? {} : { createdAt: proof.submittedAt }),
321
+ memo: x402ChallengeMemo(proof),
322
+ operations: [
323
+ {
324
+ source: proof.payer,
325
+ destination: proof.recipient,
326
+ asset: proof.asset,
327
+ amount: proof.amount
328
+ }
329
+ ]
177
330
  };
178
331
  }
179
332
  export async function startPaidApiDemo(args) {
@@ -181,9 +334,10 @@ export async function startPaidApiDemo(args) {
181
334
  const amount = args.amount ?? "0.0000001";
182
335
  const asset = args.asset ?? "XLM";
183
336
  parseAmount(amount, asset);
184
- const nonce = makeId("x402_req");
337
+ const maxChallengeAgeMs = 5 * 60 * 1000;
338
+ const issuedRequirements = new Map();
185
339
  const acceptedTransactions = new Set();
186
- const server = createServer((request, response) => {
340
+ const server = createServer(async (request, response) => {
187
341
  if (request.url?.startsWith("/health")) {
188
342
  writeJson(response, 200, { ok: true });
189
343
  return;
@@ -195,6 +349,7 @@ export async function startPaidApiDemo(args) {
195
349
  const proofHeader = request.headers["x-payment"];
196
350
  if (!proofHeader) {
197
351
  const resource = paidResource(host, server);
352
+ const issuedAt = new Date();
198
353
  const requirement = {
199
354
  protocol: "stellar-agent-local-x402",
200
355
  version: 1,
@@ -203,9 +358,12 @@ export async function startPaidApiDemo(args) {
203
358
  amount,
204
359
  recipient: args.recipient,
205
360
  resource,
206
- nonce,
207
- memo: "x402-demo"
361
+ nonce: makeId("x402_req"),
362
+ issuedAt: issuedAt.toISOString(),
363
+ expiresAt: new Date(issuedAt.getTime() + maxChallengeAgeMs).toISOString()
208
364
  };
365
+ requirement.memo = x402ChallengeMemo(requirement);
366
+ issuedRequirements.set(requirement.nonce, requirement);
209
367
  const encoded = JSON.stringify(requirement);
210
368
  response.setHeader("Payment-Required", encoded);
211
369
  response.setHeader("X-Payment-Required", encoded);
@@ -213,17 +371,7 @@ export async function startPaidApiDemo(args) {
213
371
  return;
214
372
  }
215
373
  const proof = parseProofHeader(proofHeader);
216
- const resource = paidResource(host, server);
217
- if (!proof ||
218
- proof.protocol !== "stellar-agent-local-x402" ||
219
- proof.version !== 1 ||
220
- !proof.transactionHash ||
221
- !proof.payer ||
222
- proof.recipient !== args.recipient ||
223
- proof.asset !== asset ||
224
- proof.amount !== parseAmount(amount, asset).value ||
225
- proof.resource !== resource ||
226
- proof.nonce !== nonce) {
374
+ if (!proof) {
227
375
  writeJson(response, 402, { ok: false, error: "invalid_payment_proof" });
228
376
  return;
229
377
  }
@@ -231,7 +379,25 @@ export async function startPaidApiDemo(args) {
231
379
  writeJson(response, 402, { ok: false, error: "payment_proof_replayed" });
232
380
  return;
233
381
  }
234
- acceptedTransactions.add(proof.transactionHash);
382
+ const issuedRequirement = proof.nonce ? issuedRequirements.get(proof.nonce) : undefined;
383
+ if (!issuedRequirement) {
384
+ writeJson(response, 402, { ok: false, error: "payment_nonce_not_issued" });
385
+ return;
386
+ }
387
+ const verification = await verifyX402PaymentProof({
388
+ proof,
389
+ requirement: issuedRequirement,
390
+ acceptedTransactions,
391
+ mode: args.verificationMode ?? "mock",
392
+ maxChallengeAgeMs,
393
+ ...(args.horizonUrl === undefined ? {} : { horizonUrl: args.horizonUrl }),
394
+ ...(args.loadPayment === undefined ? {} : { loadPayment: args.loadPayment })
395
+ });
396
+ if (!verification.ok) {
397
+ writeJson(response, 402, { ok: false, error: verification.error });
398
+ return;
399
+ }
400
+ issuedRequirements.delete(issuedRequirement.nonce);
235
401
  writeJson(response, 200, {
236
402
  ok: true,
237
403
  id: makeId("paid_report"),
@@ -239,7 +405,8 @@ export async function startPaidApiDemo(args) {
239
405
  paid: {
240
406
  transactionHash: proof.transactionHash,
241
407
  amount: proof.amount,
242
- asset: proof.asset
408
+ asset: proof.asset,
409
+ verifier: verification.settlement.mode
243
410
  }
244
411
  });
245
412
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAEjB,MAAM,EACN,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAwB,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAC;AA2CpF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAapC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC;IAC5D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACzB,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,WAAW,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3C,cAAc,EAAE,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE;gBAClD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAClC,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,SAAS;aACnB,CAAC;YACF,YAAY,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACtD,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QAC7B,WAAW,EAAE,WAAW,CAAC,SAAS;QAClC,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;QAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACjG,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7E,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;KAC/C,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,iBAAiB,CAAC;YAC1B,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,4CAA4C;YACrD,IAAI,EAAE,qEAAqE;YAC3E,IAAI,EAAE,sCAAsC;SAC7C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QAClD,MAAM,IAAI,iBAAiB,CAAC;YAC1B,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,iCAAiC;YAC1C,IAAI,EAAE,sCAAsC;SAC7C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC;QACxC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,WAAW,CAAC,SAAS;QAClC,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QACrE,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IACH,MAAM,KAAK,GAAqB;QAC9B,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE,CAAC;QACV,eAAe,EAAE,WAAW,CAAC,IAAI;QACjC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QAC5B,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK;QAC7C,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;KAC5E,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACpD,OAAO,EAAE;YACP,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAClC,uBAAuB,EAAE,WAAW,CAAC,IAAI;SAC1C;KACF,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACtE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE;QACjE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;QACjD,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE;YACP,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC7B,WAAW,EAAE,WAAW,CAAC,SAAS;YAClC,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;SACtE;QACD,cAAc;QACd,WAAW;QACX,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QAChG,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB;QAClE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE;KAC1G,CAAC,CAAC;IACH,OAAO;QACL,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,IAAI,CAAC,MAAM;QACxB,WAAW;QACX,cAAc;QACd,WAAW;QACX,WAAW;QACX,YAAY;QACZ,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,SAAuB,EAAE,GAAW,EAAE,IAAkB;IACnF,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,iBAAiB,CAAC;YAC1B,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE,oCAAoC;YAC7C,IAAI,EAAE,sDAAsD;YAC5D,IAAI,EAAE,sCAAsC;YAC5C,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAAkB;IAC3D,MAAM,MAAM,GACV,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC1C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,SAAS,GAAG,KAAwC,CAAC;IAC3D,IACE,SAAS,CAAC,QAAQ,KAAK,0BAA0B;QACjD,SAAS,CAAC,OAAO,KAAK,CAAC;QACvB,SAAS,CAAC,OAAO,KAAK,SAAS;QAC/B,CAAC,SAAS,CAAC,SAAS;QACpB,CAAC,SAAS,CAAC,MAAM;QACjB,CAAC,SAAS,CAAC,KAAK;QAChB,CAAC,SAAS,CAAC,QAAQ;QACnB,CAAC,SAAS,CAAC,KAAK,EAChB,CAAC;QACD,MAAM,IAAI,iBAAiB,CAAC;YAC1B,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,yEAAyE;YAClF,IAAI,EAAE,sCAAsC;SAC7C,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO;QACL,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAMtC;IAIC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IAClC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAwB,EAAE,QAAwB,EAAE,EAAE;QACjF,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,WAAW,GAA2B;gBAC1C,QAAQ,EAAE,0BAA0B;gBACpC,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,SAAS;gBAClB,KAAK;gBACL,MAAM;gBACN,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ;gBACR,KAAK;gBACL,IAAI,EAAE,WAAW;aAClB,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5C,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAChD,QAAQ,CAAC,SAAS,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAClD,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,IACE,CAAC,KAAK;YACN,KAAK,CAAC,QAAQ,KAAK,0BAA0B;YAC7C,KAAK,CAAC,OAAO,KAAK,CAAC;YACnB,CAAC,KAAK,CAAC,eAAe;YACtB,CAAC,KAAK,CAAC,KAAK;YACZ,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YAClC,KAAK,CAAC,KAAK,KAAK,KAAK;YACrB,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK;YACjD,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAC3B,KAAK,CAAC,KAAK,KAAK,KAAK,EACrB,CAAC;YACD,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACpD,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvB,EAAE,EAAE,IAAI;YACR,EAAE,EAAE,MAAM,CAAC,aAAa,CAAC;YACzB,OAAO,EAAE,mCAAmC;YAC5C,IAAI,EAAE;gBACJ,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO;QACL,GAAG,EAAE,UAAU,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,cAAc;QACxD,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO;QACL,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,0DAA0D;QACrE,QAAQ,EAAE,GAAG;QACb,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,MAAuC;IACzE,OAAO,UAAU,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;AAC7D,CAAC;AAED,SAAS,kBAAkB,CAAC,kBAA0B,EAAE,YAAoB;IAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QACnI,MAAM,IAAI,iBAAiB,CAAC;YAC1B,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,yEAAyE;YAClF,IAAI,EAAE,sCAAsC;SAC7C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAAuC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,QAAwB,EAAE,MAAc,EAAE,IAAa;IACxE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAqC;IAC7D,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stellar-agent/x402-client",
3
- "version": "0.4.4",
3
+ "version": "0.5.1",
4
4
  "description": "Local Testnet x402-style payment demo client and server helpers for Stellar Agent Bridge.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -32,9 +32,9 @@
32
32
  "test": "vitest run"
33
33
  },
34
34
  "dependencies": {
35
- "@stellar-agent/core": "0.4.4",
36
- "@stellar-agent/ledger-logger": "0.4.4",
37
- "@stellar-agent/policy": "0.4.4",
38
- "@stellar-agent/stellar": "0.4.4"
35
+ "@stellar-agent/core": "0.5.1",
36
+ "@stellar-agent/ledger-logger": "0.5.1",
37
+ "@stellar-agent/policy": "0.5.1",
38
+ "@stellar-agent/stellar": "0.5.1"
39
39
  }
40
40
  }