@run402/sdk 4.120.0 → 4.122.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.
Files changed (86) hide show
  1. package/README.md +1 -1
  2. package/core-dist/profiles.d.ts +2 -0
  3. package/core-dist/wallet-auth.d.ts +30 -0
  4. package/core-dist/wallet-auth.js +77 -38
  5. package/core-dist/wallet.d.ts +22 -1
  6. package/core-dist/wallet.js +21 -0
  7. package/dist/credentials.d.ts +15 -1
  8. package/dist/credentials.d.ts.map +1 -1
  9. package/dist/errors.d.ts +14 -0
  10. package/dist/errors.d.ts.map +1 -1
  11. package/dist/errors.js +22 -0
  12. package/dist/errors.js.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/namespaces/deploy.d.ts.map +1 -1
  18. package/dist/namespaces/deploy.js +3 -0
  19. package/dist/namespaces/deploy.js.map +1 -1
  20. package/dist/namespaces/deploy.types.d.ts +4 -2
  21. package/dist/namespaces/deploy.types.d.ts.map +1 -1
  22. package/dist/namespaces/deploy.types.js +4 -0
  23. package/dist/namespaces/deploy.types.js.map +1 -1
  24. package/dist/namespaces/pay.d.ts +7 -0
  25. package/dist/namespaces/pay.d.ts.map +1 -1
  26. package/dist/namespaces/pay.js +5 -0
  27. package/dist/namespaces/pay.js.map +1 -1
  28. package/dist/node/_paid-stack.d.ts +26 -3
  29. package/dist/node/_paid-stack.d.ts.map +1 -1
  30. package/dist/node/_paid-stack.js +19 -0
  31. package/dist/node/_paid-stack.js.map +1 -1
  32. package/dist/node/ci.d.ts +1 -1
  33. package/dist/node/ci.d.ts.map +1 -1
  34. package/dist/node/ci.js +8 -6
  35. package/dist/node/ci.js.map +1 -1
  36. package/dist/node/credentials.d.ts.map +1 -1
  37. package/dist/node/credentials.js +5 -4
  38. package/dist/node/credentials.js.map +1 -1
  39. package/dist/node/index.d.ts +2 -1
  40. package/dist/node/index.d.ts.map +1 -1
  41. package/dist/node/index.js +2 -1
  42. package/dist/node/index.js.map +1 -1
  43. package/dist/node/lightning-paid-fetch.d.ts.map +1 -1
  44. package/dist/node/lightning-paid-fetch.js +2 -0
  45. package/dist/node/lightning-paid-fetch.js.map +1 -1
  46. package/dist/node/mpp-pay-executor.d.ts +40 -0
  47. package/dist/node/mpp-pay-executor.d.ts.map +1 -0
  48. package/dist/node/mpp-pay-executor.js +352 -0
  49. package/dist/node/mpp-pay-executor.js.map +1 -0
  50. package/dist/node/org-adopt.d.ts +1 -1
  51. package/dist/node/org-adopt.d.ts.map +1 -1
  52. package/dist/node/org-adopt.js +9 -7
  53. package/dist/node/org-adopt.js.map +1 -1
  54. package/dist/node/paid-fetch.d.ts +2 -1
  55. package/dist/node/paid-fetch.d.ts.map +1 -1
  56. package/dist/node/paid-fetch.js +50 -22
  57. package/dist/node/paid-fetch.js.map +1 -1
  58. package/dist/node/payment-attempts.d.ts +2 -2
  59. package/dist/node/payment-attempts.d.ts.map +1 -1
  60. package/dist/node/payment-attempts.js +2 -2
  61. package/dist/node/payment-attempts.js.map +1 -1
  62. package/dist/node/payment-offers.d.ts +35 -0
  63. package/dist/node/payment-offers.d.ts.map +1 -0
  64. package/dist/node/payment-offers.js +145 -0
  65. package/dist/node/payment-offers.js.map +1 -0
  66. package/dist/node/signers/index.d.ts +26 -0
  67. package/dist/node/signers/index.d.ts.map +1 -0
  68. package/dist/node/signers/index.js +35 -0
  69. package/dist/node/signers/index.js.map +1 -0
  70. package/dist/node/signers/kms.d.ts +54 -0
  71. package/dist/node/signers/kms.d.ts.map +1 -0
  72. package/dist/node/signers/kms.js +236 -0
  73. package/dist/node/signers/kms.js.map +1 -0
  74. package/dist/node/wallets-send.d.ts +62 -0
  75. package/dist/node/wallets-send.d.ts.map +1 -0
  76. package/dist/node/wallets-send.js +149 -0
  77. package/dist/node/wallets-send.js.map +1 -0
  78. package/dist/node/wallets.d.ts +33 -5
  79. package/dist/node/wallets.d.ts.map +1 -1
  80. package/dist/node/wallets.js +78 -12
  81. package/dist/node/wallets.js.map +1 -1
  82. package/dist/secret-gate.d.ts +1 -1
  83. package/dist/secret-gate.d.ts.map +1 -1
  84. package/dist/secret-gate.js +7 -2
  85. package/dist/secret-gate.js.map +1 -1
  86. package/package.json +5 -1
@@ -0,0 +1,352 @@
1
+ /**
2
+ * `pay.fetch` on the `mpp` rail: buy an arbitrary URL whose 402 carries an
3
+ * MPP Tempo charge challenge (spec `tenant-x402-payment-client-surface`,
4
+ * design D9 of `tenant-mpp-priced-routes`).
5
+ *
6
+ * Send the request; on 402 select the first offered Tempo chain the wallet
7
+ * covers (`orderTempoCandidates`, through mppx's own selection), apply the USD
8
+ * spend guard to the selected challenge before anything is signed, sign, and
9
+ * retry the identical request with `Authorization: Payment`. The attempt is
10
+ * journaled before the signed request leaves.
11
+ *
12
+ * An MPP payment's identity is its credential, not the caller key: the
13
+ * gateway resolves a re-presented credential to the original payment and
14
+ * treats `Idempotency-Key` as correlation only. So the signed credential stays
15
+ * in this instance's memory for the identical request, and an ambiguous or
16
+ * pending outcome is answered by re-presenting it, never by signing a second
17
+ * one. A clean refusal (no funds moved) forgets it.
18
+ */
19
+ import { createHash } from "node:crypto";
20
+ import { LocalError } from "../errors.js";
21
+ import { PaymentBuyerError, gatewayPaymentBuyerError, isTrustedRun402PendingResponse, merchantReceiptRequiredError, payResponseMetadata, paymentExceedsMaxError, readPaymentErrorEnvelope, responseSignalsReplay, } from "../namespaces/pay.js";
22
+ import { createFilePaymentAttemptStore, createPaymentAttemptId, requestSummary, withPaymentAttemptHeader, } from "./payment-attempts.js";
23
+ import { mppChallenges, paymentOffers } from "./payment-offers.js";
24
+ import { PATH_USD, tempoChainById } from "./tempo.js";
25
+ /** Bounded waits for the gateway's "settlement still pending" answer to the paid request. */
26
+ export const MPP_PENDING_RETRY_LIMIT = 4;
27
+ const PENDING_RETRY_MIN_MS = 1_000;
28
+ const PENDING_RETRY_MAX_MS = 10_000;
29
+ export function createMppPayExecutor(options) {
30
+ const held = new Map();
31
+ const store = options.store ?? createFilePaymentAttemptStore();
32
+ const makeId = options.createAttemptId ?? createPaymentAttemptId;
33
+ const now = options.now ?? (() => new Date().toISOString());
34
+ const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
35
+ return async (url, init, payOptions) => {
36
+ const fingerprint = await options.fingerprint(url, init, payOptions.maxUsdMicros, payOptions.requireReceipt);
37
+ const request = new Request(url, init);
38
+ let hold = held.get(fingerprint);
39
+ if (!hold) {
40
+ const first = await options.baseFetch(request.clone());
41
+ if (first.status !== 402) {
42
+ return {
43
+ response: first,
44
+ payment: null,
45
+ outcome: "not_required",
46
+ replay: await responseSignalsReplay(first, payOptions.idempotencyKey !== undefined),
47
+ ...payResponseMetadata(first),
48
+ };
49
+ }
50
+ hold = await signForChallenge(first, request, payOptions, options, makeId);
51
+ held.set(fingerprint, hold);
52
+ }
53
+ const record = journalIntent(store, hold.attemptId, url, init, now);
54
+ write(store, record, now, "submitting", "in_progress", { provider_started_at: now() });
55
+ let response;
56
+ try {
57
+ // From here a thrown transport error leaves the outcome unknown.
58
+ response = await sendPaid(request, hold, options, sleep);
59
+ }
60
+ catch (cause) {
61
+ writeBestEffort(store, record, now, "ambiguous", "ambiguous", { last_error_code: "MPP_PAYMENT_OUTCOME_AMBIGUOUS" });
62
+ throw outcomeUnknown("The MPP payment request failed after the credential was sent; its outcome is unknown.", hold, cause);
63
+ }
64
+ return settleOutcome(url, response, hold, payOptions.idempotencyKey !== undefined, options, {
65
+ forget: () => held.delete(fingerprint),
66
+ journal: (state, mutation, extra) => writeBestEffort(store, record, now, state, mutation, extra),
67
+ });
68
+ };
69
+ }
70
+ async function signForChallenge(response, request, payOptions, options, makeId) {
71
+ const tempoOffered = mppChallenges(response).some((challenge) => challenge.method === "tempo" && challenge.intent === "charge");
72
+ if (!tempoOffered) {
73
+ await response.body?.cancel().catch(() => undefined);
74
+ throw options.unsupported(paymentOffers(response));
75
+ }
76
+ if (payOptions.requireReceipt) {
77
+ // MPP carries a protocol receipt, never a wallet-rooted merchant receipt.
78
+ await response.body?.cancel().catch(() => undefined);
79
+ throw merchantReceiptRequiredError({ protocol: "mpp" });
80
+ }
81
+ const prepared = await options.prepare(response, { method: request.method, headers: request.headers });
82
+ await response.body?.cancel().catch(() => undefined);
83
+ const offer = tempoChargeOffer(prepared.challenge);
84
+ if (offer.amountUsdMicros > payOptions.maxUsdMicros) {
85
+ throw paymentExceedsMaxError(offer.amountUsdMicros, payOptions.maxUsdMicros);
86
+ }
87
+ const credential = await prepared.createCredential();
88
+ // Keep exactly the header(s) mppx sets for this challenge; the request itself is rebuilt from `request`.
89
+ const credentialHeaders = [...new Headers(prepared.setCredential({ headers: new Headers() }, credential).headers).entries()];
90
+ return { credentialHeaders, challenge: offer, attemptId: makeId() };
91
+ }
92
+ /** Read the selected Tempo charge: pathUSD only, so base units are USD micros. */
93
+ function tempoChargeOffer(challenge) {
94
+ const request = (challenge.request ?? {});
95
+ const chain = tempoChainById(request.methodDetails?.chainId);
96
+ const amount = typeof request.amount === "string" && /^\d+$/.test(request.amount) ? Number(request.amount) : NaN;
97
+ const currency = typeof request.currency === "string" ? request.currency.toLowerCase() : "";
98
+ if (!chain || !Number.isSafeInteger(amount) || currency !== PATH_USD || typeof request.recipient !== "string") {
99
+ throw new PaymentBuyerError({
100
+ code: "PAYMENT_NETWORK_UNSUPPORTED",
101
+ message: "The MPP Tempo challenge is not a pathUSD charge on a Tempo chain this wallet pays.",
102
+ fundsMoved: false,
103
+ details: {
104
+ protocol: "mpp",
105
+ chain_id: request.methodDetails?.chainId ?? null,
106
+ currency: request.currency ?? null,
107
+ },
108
+ nextActions: [{ type: "edit_request", why: "Use a priced endpoint that charges pathUSD on Tempo mainnet or Moderato." }],
109
+ });
110
+ }
111
+ return { chainId: chain.id, network: chain.network, amountUsdMicros: amount, recipient: request.recipient };
112
+ }
113
+ async function sendPaid(request, hold, options, sleep) {
114
+ const paidRequest = () => {
115
+ const headers = new Headers(request.headers);
116
+ for (const [name, value] of hold.credentialHeaders)
117
+ headers.set(name, value);
118
+ const [, paidInit] = withPaymentAttemptHeader(request.url, { headers }, hold.attemptId, true);
119
+ return new Request(request.clone(), paidInit);
120
+ };
121
+ let response = await options.baseFetch(paidRequest());
122
+ for (let waits = 0; waits < MPP_PENDING_RETRY_LIMIT; waits += 1) {
123
+ const delayMs = await pendingRetryDelay(request.url, response, options.allowTestLocalhost === true);
124
+ if (delayMs === null)
125
+ break;
126
+ await response.body?.cancel().catch(() => undefined);
127
+ await sleep(delayMs);
128
+ // The same credential: the gateway resolves it to the same payment.
129
+ response = await options.baseFetch(paidRequest());
130
+ }
131
+ return response;
132
+ }
133
+ async function pendingRetryDelay(url, response, allowTestLocalhost) {
134
+ const envelope = await readPaymentErrorEnvelope(response);
135
+ const pending = isTrustedRun402PendingResponse({
136
+ requestUrl: url,
137
+ response,
138
+ envelope,
139
+ paymentBearing: true,
140
+ redirectsDisabled: true,
141
+ allowTestLocalhost,
142
+ });
143
+ if (!pending)
144
+ return null;
145
+ const seconds = Number(response.headers.get("retry-after"));
146
+ const ms = Number.isFinite(seconds) && seconds > 0 ? seconds * 1000 : PENDING_RETRY_MIN_MS;
147
+ return Math.min(PENDING_RETRY_MAX_MS, Math.max(PENDING_RETRY_MIN_MS, ms));
148
+ }
149
+ async function settleOutcome(url, response, hold, keyed, options, hooks) {
150
+ const receipt = readPaymentReceipt(response);
151
+ if (response.ok || receipt) {
152
+ // A Payment-Receipt on a non-2xx proves the transfer: paid, delivery failed.
153
+ hooks.journal("completed", "completed", { response_status: response.status });
154
+ return paidResult(url, response, hold, receipt, options.payer, keyed);
155
+ }
156
+ const envelope = await readPaymentErrorEnvelope(response);
157
+ const trusted = envelope ? gatewayPaymentBuyerError(response, envelope) : null;
158
+ if (trusted) {
159
+ const pending = trusted.code === "PAYMENT_INTENT_PENDING";
160
+ hooks.journal(pending ? "intent_pending" : trusted.fundsMoved === false ? "failed" : "ambiguous", pending || trusted.fundsMoved !== false ? "ambiguous" : "not_started", { response_status: response.status, last_error_code: trusted.code });
161
+ if (trusted.fundsMoved === false)
162
+ hooks.forget();
163
+ throw trusted;
164
+ }
165
+ const fundsMoved = refusalFundsMoved(response, envelope);
166
+ hooks.journal(fundsMoved === false ? "failed" : "ambiguous", fundsMoved === false ? "not_started" : "ambiguous", {
167
+ response_status: response.status,
168
+ ...(typeof envelope?.code === "string" ? { last_error_code: envelope.code } : {}),
169
+ });
170
+ if (fundsMoved === false) {
171
+ hooks.forget();
172
+ throw new PaymentBuyerError({
173
+ code: "PAYMENT_SETTLEMENT_FAILED",
174
+ message: "The seller refused the MPP Tempo credential; no funds moved.",
175
+ fundsMoved: false,
176
+ details: { protocol: "mpp", network: hold.challenge.network, upstream_status: response.status, ...upstreamCode(envelope) },
177
+ nextActions: [{ type: "retry", why: "No funds moved; retry to receive a fresh challenge." }],
178
+ safeToRetry: true,
179
+ });
180
+ }
181
+ throw outcomeUnknown("The seller answered the MPP payment without a receipt; whether the transfer landed is unknown.", hold, null, {
182
+ upstream_status: response.status,
183
+ ...upstreamCode(envelope),
184
+ });
185
+ }
186
+ /**
187
+ * A 402 is the seller re-challenging: it did not accept the credential. This
188
+ * client pays Tempo in pull mode (it signs, the seller broadcasts), so a
189
+ * refusal moved nothing unless the seller says otherwise. Any other non-2xx
190
+ * without a receipt is unknown.
191
+ */
192
+ function refusalFundsMoved(response, envelope) {
193
+ const details = envelope?.details;
194
+ const declared = envelope?.funds_moved ?? details?.funds_moved;
195
+ if (declared === true || declared === false || declared === "unknown")
196
+ return declared;
197
+ return response.status === 402 ? false : "unknown";
198
+ }
199
+ function upstreamCode(envelope) {
200
+ return typeof envelope?.code === "string" ? { upstream_code: envelope.code } : {};
201
+ }
202
+ function outcomeUnknown(message, hold, cause, details = {}) {
203
+ return new PaymentBuyerError({
204
+ code: "PAYMENT_SETTLEMENT_FAILED",
205
+ message,
206
+ fundsMoved: "unknown",
207
+ details: { protocol: "mpp", network: hold.challenge.network, payment_attempt_id: hold.attemptId, ...details },
208
+ nextActions: [{
209
+ type: "retry",
210
+ request: "repeat_identical",
211
+ why: "Repeat the identical request from this client: it re-presents the same credential, which the seller resolves to the same payment and never charges twice.",
212
+ }],
213
+ retryable: true,
214
+ safeToRetry: false,
215
+ ...(cause !== null ? { cause } : {}),
216
+ });
217
+ }
218
+ async function paidResult(url, response, hold, receipt, payer, keyed) {
219
+ const metadata = payResponseMetadata(response);
220
+ const deduplicated = metadata.deduplicated ?? false;
221
+ // MPP carries no merchant receipt and no signer authorization, so these instants are absent.
222
+ const noInstant = null;
223
+ const payment = {
224
+ protocol: "mpp",
225
+ method: "tempo",
226
+ network: hold.challenge.network,
227
+ paymentId: metadata.paymentId,
228
+ amountUsdMicros: hold.challenge.amountUsdMicros,
229
+ asset: PATH_USD,
230
+ payer,
231
+ payTo: hold.challenge.recipient,
232
+ transaction: receipt?.reference ?? "",
233
+ resourceUrl: url,
234
+ settlement: { status: receipt ? "verified" : "unavailable" },
235
+ fundsMoved: metadata.fundsMoved ?? (deduplicated ? false : true),
236
+ deduplicated,
237
+ delivery: { status: response.ok ? "fulfilled" : "failed", replay: deduplicated },
238
+ offer: { status: "unavailable", resourceUrl: null, validUntil: null },
239
+ merchantReceipt: { status: "unavailable", claim: null, issuedAt: noInstant },
240
+ signerRelationship: { kind: null, merchantRoot: null, signer: null, authorizationExpiresAt: noInstant },
241
+ policy: { requireReceipt: false, status: "not_required" },
242
+ evidence: { offer: null, merchantReceipt: null, signerAuthorization: null, protocolReceipt: receipt },
243
+ };
244
+ return {
245
+ response,
246
+ payment,
247
+ outcome: deduplicated ? "already_settled" : "settled",
248
+ replay: deduplicated || await responseSignalsReplay(response, keyed),
249
+ ...metadata,
250
+ };
251
+ }
252
+ /** The standard MPP `Payment-Receipt`: base64url JSON `{ method, reference, status, timestamp }`. */
253
+ function readPaymentReceipt(response) {
254
+ const header = response.headers.get("payment-receipt");
255
+ if (!header)
256
+ return null;
257
+ try {
258
+ const parsed = JSON.parse(Buffer.from(header, "base64url").toString("utf8"));
259
+ if (parsed.status !== "success" || typeof parsed.reference !== "string" || typeof parsed.method !== "string")
260
+ return null;
261
+ return {
262
+ method: parsed.method,
263
+ reference: parsed.reference,
264
+ status: parsed.status,
265
+ timestamp: typeof parsed.timestamp === "string" ? parsed.timestamp : null,
266
+ };
267
+ }
268
+ catch {
269
+ return null;
270
+ }
271
+ }
272
+ function journalIntent(store, attemptId, url, init, now) {
273
+ const existing = safeRead(store, attemptId);
274
+ if (existing)
275
+ return existing;
276
+ const summary = requestSummary(url, init);
277
+ const at = now();
278
+ const record = {
279
+ version: 1,
280
+ payment_attempt_id: attemptId,
281
+ rail: "mpp",
282
+ state: "intent",
283
+ mutation_state: "not_started",
284
+ method: summary.method,
285
+ origin: summary.origin,
286
+ path_sha256: summary.path_sha256,
287
+ ...(summary.caller_key_sha256 ? { caller_key_sha256: summary.caller_key_sha256 } : {}),
288
+ created_at: at,
289
+ updated_at: at,
290
+ };
291
+ try {
292
+ if (!store.claim(record)) {
293
+ throw new LocalError("The generated MPP payment attempt id already exists.", "reserving MPP payment attempt", { code: "MPP_ATTEMPT_ID_COLLISION" });
294
+ }
295
+ }
296
+ catch (cause) {
297
+ throw new PaymentBuyerError({
298
+ code: "PAYMENT_SETTLEMENT_FAILED",
299
+ message: "The MPP payment was not sent because its attempt could not be recorded.",
300
+ fundsMoved: false,
301
+ details: { protocol: "mpp", payment_attempt_id: attemptId },
302
+ nextActions: [{ type: "retry", why: "Nothing was sent; retry once the local config directory is writable." }],
303
+ safeToRetry: true,
304
+ cause,
305
+ });
306
+ }
307
+ return record;
308
+ }
309
+ function safeRead(store, attemptId) {
310
+ try {
311
+ return store.read(attemptId);
312
+ }
313
+ catch {
314
+ return null;
315
+ }
316
+ }
317
+ /** Before dispatch the write must land: an unrecorded signed request is never sent. */
318
+ function write(store, record, now, state, mutation, extra = {}) {
319
+ Object.assign(record, extra, { state, mutation_state: mutation, updated_at: now() });
320
+ try {
321
+ store.write({ ...record });
322
+ }
323
+ catch (cause) {
324
+ throw new PaymentBuyerError({
325
+ code: "PAYMENT_SETTLEMENT_FAILED",
326
+ message: "The MPP payment was not sent because its attempt could not be recorded.",
327
+ fundsMoved: false,
328
+ details: { protocol: "mpp", payment_attempt_id: record.payment_attempt_id },
329
+ nextActions: [{ type: "retry", why: "Nothing was sent; retry once the local config directory is writable." }],
330
+ safeToRetry: true,
331
+ cause,
332
+ });
333
+ }
334
+ }
335
+ function writeBestEffort(store, record, now, state, mutation, extra = {}) {
336
+ try {
337
+ write(store, record, now, state, mutation, extra);
338
+ }
339
+ catch {
340
+ // The outcome is already decided; the journal is a best-effort record of it.
341
+ }
342
+ }
343
+ /** Test seam: a stable fingerprint for callers without the paid-fetch one. */
344
+ export async function simpleMppFingerprint(url, init, maxUsdMicros, requireReceipt) {
345
+ const request = new Request(url, init);
346
+ const body = await request.clone().arrayBuffer();
347
+ return createHash("sha256")
348
+ .update(JSON.stringify([request.method, request.url, request.headers.get("idempotency-key"), maxUsdMicros, requireReceipt]))
349
+ .update(Buffer.from(body))
350
+ .digest("hex");
351
+ }
352
+ //# sourceMappingURL=mpp-pay-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpp-pay-executor.js","sourceRoot":"","sources":["../../src/node/mpp-pay-executor.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export interface SignOrgAdoptOptions {
15
15
  * The gateway binds the action/wallet/org/expiry server-side via the nonce, so
16
16
  * there is no canonical statement to match (simpler than `signCiDelegation`).
17
17
  */
18
- export declare function signOrgAdopt(nonce: string, opts?: SignOrgAdoptOptions): string;
18
+ export declare function signOrgAdopt(nonce: string, opts?: SignOrgAdoptOptions): Promise<string>;
19
19
  export interface AdoptOrgOptions {
20
20
  /**
21
21
  * The wallet (0x EVM address) whose agent-owned org to adopt. Defaults to the
@@ -1 +1 @@
1
- {"version":3,"file":"org-adopt.d.ts","sourceRoot":"","sources":["../../src/node/org-adopt.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAOnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6GAA6G;IAC7G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAyBlF;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAqC1F"}
1
+ {"version":3,"file":"org-adopt.d.ts","sourceRoot":"","sources":["../../src/node/org-adopt.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAQnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6GAA6G;IAC7G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BjG;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAqC1F"}
@@ -1,6 +1,7 @@
1
1
  /** Node-only helpers to adopt the org your wallet's agent owns. */
2
2
  import { readWallet } from "../../core-dist/wallet.js";
3
- import { buildSIWxAuthHeaders } from "../../core-dist/wallet-auth.js";
3
+ import { prepareSIWx } from "../../core-dist/wallet-auth.js";
4
+ import { personalMessageSignerFor, walletCanSign } from "./signers/index.js";
4
5
  import { getApiBase } from "../../core-dist/config.js";
5
6
  import { loadLiveControlPlaneSession } from "../../core-dist/control-plane-session.js";
6
7
  import { LocalError } from "../errors.js";
@@ -10,19 +11,19 @@ import { LocalError } from "../errors.js";
10
11
  * The gateway binds the action/wallet/org/expiry server-side via the nonce, so
11
12
  * there is no canonical statement to match (simpler than `signCiDelegation`).
12
13
  */
13
- export function signOrgAdopt(nonce, opts = {}) {
14
+ export async function signOrgAdopt(nonce, opts = {}) {
14
15
  if (!nonce || typeof nonce !== "string") {
15
16
  throw new LocalError("signOrgAdopt requires the challenge nonce", "signing org adopt");
16
17
  }
17
18
  const localWallet = readWallet(opts.walletPath);
18
- if (!localWallet || !localWallet.address || !localWallet.privateKey) {
19
+ if (!localWallet || !localWallet.address || !walletCanSign(localWallet)) {
19
20
  throw new LocalError("No local wallet configured. Run `run402 init` before adopting an org.", "signing org adopt");
20
21
  }
21
22
  const apiBase = opts.apiBase ?? getApiBase();
22
23
  const url = new URL("/orgs/v1/adopt", apiBase);
23
24
  const now = new Date();
24
- const headers = buildSIWxAuthHeaders({
25
- wallet: localWallet,
25
+ const prepared = prepareSIWx({
26
+ address: localWallet.address,
26
27
  domain: url.hostname,
27
28
  uri: url.toString(),
28
29
  statement: "Adopt wallet-owned org",
@@ -31,7 +32,8 @@ export function signOrgAdopt(nonce, opts = {}) {
31
32
  issuedAt: opts.issuedAt ?? now.toISOString(),
32
33
  expirationTime: opts.expirationTime ?? new Date(now.getTime() + 5 * 60 * 1000).toISOString(),
33
34
  });
34
- return headers["SIGN-IN-WITH-X"];
35
+ const sign = await personalMessageSignerFor(localWallet);
36
+ return prepared.finish(await sign(prepared.message))["SIGN-IN-WITH-X"];
35
37
  }
36
38
  /**
37
39
  * Run the full org adopt dance (Node): resolve the human's write-capable
@@ -62,7 +64,7 @@ export async function adoptOrg(r, opts = {}) {
62
64
  wallet = localWallet.address;
63
65
  }
64
66
  const challenge = await r.orgs.adopt.challenge({ wallet, token });
65
- const siwx = signOrgAdopt(challenge.nonce, {
67
+ const siwx = await signOrgAdopt(challenge.nonce, {
66
68
  apiBase: opts.apiBase,
67
69
  walletPath: opts.walletPath,
68
70
  chainId: opts.chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"org-adopt.js","sourceRoot":"","sources":["../../src/node/org-adopt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"org-adopt.js","sourceRoot":"","sources":["../../src/node/org-adopt.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { Run402Error } from "../errors.js";
20
20
  import type { MppStack, X402Stack } from "./_paid-stack.js";
21
21
  import { PaymentBuyerError, type PayExecutor } from "../namespaces/pay.js";
22
22
  import { type PaymentAttemptStore } from "./payment-attempts.js";
23
+ import { type PaymentOffer, type PaymentRail } from "./payment-offers.js";
23
24
  import { type TempoChain } from "./tempo.js";
24
25
  type FetchFn = typeof globalThis.fetch;
25
26
  interface RpcClient {
@@ -273,7 +274,7 @@ interface X402OfferReceiptRuntime {
273
274
  * the identical request re-presents that proof; it never mints a replacement.
274
275
  */
275
276
  export declare function createX402BuyerFetch(client: X402BuyerClient, options: X402BuyerFetchOptions): PayExecutor;
276
- export declare function paymentNetworkUnsupportedError(challengeNetworkValues: string[], walletNetworkValues: string[], extra?: Record<string, unknown>): PaymentBuyerError;
277
+ export declare function paymentNetworkUnsupportedError(challengeNetworkValues: string[], walletNetworkValues: string[], extra?: Record<string, unknown>, offers?: readonly PaymentOffer[], configuredRail?: PaymentRail): PaymentBuyerError;
277
278
  /**
278
279
  * Request-scoped payment tracker around `@x402/fetch`.
279
280
  *
@@ -1 +1 @@
1
- {"version":3,"file":"paid-fetch.d.ts","sourceRoot":"","sources":["../../src/node/paid-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paid-fetch.d.ts","sourceRoot":"","sources":["../../src/node/paid-fetch.ts"],"names":[],"mappings":"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"}