@absol-labs/agent 0.12.0-rc.1 → 0.12.0-rc.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 (113) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/commands/claim.d.ts +32 -0
  3. package/dist/cli/commands/claim.d.ts.map +1 -1
  4. package/dist/cli/commands/claim.js +115 -27
  5. package/dist/cli/commands/claim.js.map +1 -1
  6. package/dist/cli/commands/pay.d.ts +15 -0
  7. package/dist/cli/commands/pay.d.ts.map +1 -1
  8. package/dist/cli/commands/pay.js +131 -7
  9. package/dist/cli/commands/pay.js.map +1 -1
  10. package/dist/cli/commands/reclaim.d.ts.map +1 -1
  11. package/dist/cli/commands/reclaim.js +20 -4
  12. package/dist/cli/commands/reclaim.js.map +1 -1
  13. package/dist/cli/commands/refund.d.ts +19 -1
  14. package/dist/cli/commands/refund.d.ts.map +1 -1
  15. package/dist/cli/commands/refund.js +200 -27
  16. package/dist/cli/commands/refund.js.map +1 -1
  17. package/dist/cli/commands/status.d.ts.map +1 -1
  18. package/dist/cli/commands/status.js +11 -1
  19. package/dist/cli/commands/status.js.map +1 -1
  20. package/dist/cli/commands/watch.d.ts.map +1 -1
  21. package/dist/cli/commands/watch.js +2 -0
  22. package/dist/cli/commands/watch.js.map +1 -1
  23. package/dist/cli/context.d.ts +19 -0
  24. package/dist/cli/context.d.ts.map +1 -1
  25. package/dist/cli/deps.d.ts +20 -0
  26. package/dist/cli/deps.d.ts.map +1 -1
  27. package/dist/cli/deps.js +14 -0
  28. package/dist/cli/deps.js.map +1 -1
  29. package/dist/cli/progress.d.ts +13 -1
  30. package/dist/cli/progress.d.ts.map +1 -1
  31. package/dist/cli/progress.js +7 -1
  32. package/dist/cli/progress.js.map +1 -1
  33. package/dist/cli/run.d.ts.map +1 -1
  34. package/dist/cli/run.js +26 -14
  35. package/dist/cli/run.js.map +1 -1
  36. package/dist/cli/status.d.ts +103 -0
  37. package/dist/cli/status.d.ts.map +1 -1
  38. package/dist/cli/status.js +310 -41
  39. package/dist/cli/status.js.map +1 -1
  40. package/dist/cli/wallet.d.ts +1 -1
  41. package/dist/cli/wallet.d.ts.map +1 -1
  42. package/dist/cli/wallet.js +28 -4
  43. package/dist/cli/wallet.js.map +1 -1
  44. package/dist/gateway/http-server.d.ts +17 -0
  45. package/dist/gateway/http-server.d.ts.map +1 -1
  46. package/dist/gateway/http-server.js +76 -9
  47. package/dist/gateway/http-server.js.map +1 -1
  48. package/dist/gateway/x402-opener-mode.d.ts +39 -2
  49. package/dist/gateway/x402-opener-mode.d.ts.map +1 -1
  50. package/dist/gateway/x402-opener-mode.js +169 -36
  51. package/dist/gateway/x402-opener-mode.js.map +1 -1
  52. package/dist/mcp/server.d.ts +12 -0
  53. package/dist/mcp/server.d.ts.map +1 -1
  54. package/dist/mcp/server.js +28 -9
  55. package/dist/mcp/server.js.map +1 -1
  56. package/dist/mcp/x402-tools.d.ts +8 -3
  57. package/dist/mcp/x402-tools.d.ts.map +1 -1
  58. package/dist/mcp/x402-tools.js +126 -6
  59. package/dist/mcp/x402-tools.js.map +1 -1
  60. package/dist/sdk/client.d.ts +13 -0
  61. package/dist/sdk/client.d.ts.map +1 -1
  62. package/dist/sdk/client.js +15 -0
  63. package/dist/sdk/client.js.map +1 -1
  64. package/dist/x402-buyer/pay.d.ts +22 -0
  65. package/dist/x402-buyer/pay.d.ts.map +1 -1
  66. package/dist/x402-buyer/pay.js +33 -3
  67. package/dist/x402-buyer/pay.js.map +1 -1
  68. package/dist/x402-opener/facilitator-entry.js +4 -1
  69. package/dist/x402-opener/facilitator-entry.js.map +1 -1
  70. package/dist/x402-opener/facilitator-server.d.ts +29 -0
  71. package/dist/x402-opener/facilitator-server.d.ts.map +1 -1
  72. package/dist/x402-opener/facilitator-server.js +67 -1
  73. package/dist/x402-opener/facilitator-server.js.map +1 -1
  74. package/dist/x402-opener/refund-relay.d.ts +30 -4
  75. package/dist/x402-opener/refund-relay.d.ts.map +1 -1
  76. package/dist/x402-opener/refund-relay.js +123 -22
  77. package/dist/x402-opener/refund-relay.js.map +1 -1
  78. package/dist/x402-opener/scheme.d.ts +79 -0
  79. package/dist/x402-opener/scheme.d.ts.map +1 -1
  80. package/dist/x402-opener/scheme.js +326 -40
  81. package/dist/x402-opener/scheme.js.map +1 -1
  82. package/dist/x402-opener/terms.d.ts +61 -1
  83. package/dist/x402-opener/terms.d.ts.map +1 -1
  84. package/dist/x402-opener/terms.js +94 -2
  85. package/dist/x402-opener/terms.js.map +1 -1
  86. package/docs/cli.md +87 -9
  87. package/docs/mcp-reference.md +18 -2
  88. package/docs/quickstart.md +3 -3
  89. package/docs/x402.md +150 -10
  90. package/package.json +3 -3
  91. package/src/cli/commands/claim.ts +167 -32
  92. package/src/cli/commands/pay.ts +150 -8
  93. package/src/cli/commands/reclaim.ts +25 -5
  94. package/src/cli/commands/refund.ts +231 -33
  95. package/src/cli/commands/status.ts +11 -1
  96. package/src/cli/commands/watch.ts +4 -0
  97. package/src/cli/context.ts +16 -0
  98. package/src/cli/deps.ts +37 -0
  99. package/src/cli/progress.ts +21 -2
  100. package/src/cli/run.ts +26 -13
  101. package/src/cli/status.ts +440 -43
  102. package/src/cli/wallet.ts +44 -7
  103. package/src/gateway/http-server.ts +96 -8
  104. package/src/gateway/x402-opener-mode.ts +234 -37
  105. package/src/mcp/server.ts +43 -11
  106. package/src/mcp/x402-tools.ts +171 -7
  107. package/src/sdk/client.ts +25 -0
  108. package/src/x402-buyer/pay.ts +41 -3
  109. package/src/x402-opener/facilitator-entry.ts +4 -1
  110. package/src/x402-opener/facilitator-server.ts +101 -1
  111. package/src/x402-opener/refund-relay.ts +150 -20
  112. package/src/x402-opener/scheme.ts +459 -41
  113. package/src/x402-opener/terms.ts +155 -2
@@ -1 +1 @@
1
- {"version":3,"file":"facilitator-server.js","sourceRoot":"","sources":["../../src/x402-opener/facilitator-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"facilitator-server.js","sourceRoot":"","sources":["../../src/x402-opener/facilitator-server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type Account, type Address, type Chain, type Hex, type PublicClient, type Transport, type WalletClient } from "viem";
2
2
  import { RelayerQueue } from "./relayer-queue.js";
3
+ import { type OpenerKind } from "./terms.js";
3
4
  /**
4
5
  * The gasless refund relay of the Metrik x402 opener facilitator
5
6
  * (metrik-agent#119).
@@ -28,9 +29,18 @@ import { RelayerQueue } from "./relayer-queue.js";
28
29
  *
29
30
  * ## Bounded against gas abuse
30
31
  *
31
- * - Only streams whose escrow buyer is an opener of the configured factory
32
- * (`factory.isOpener(stream.buyer)`, on-chain) are served; everything else is
33
- * `404` before any signature check, oracle call or simulation.
32
+ * - Only streams whose escrow buyer is an opener of a configured factory
33
+ * (`factory.isOpener(stream.buyer)`, on-chain: the stream factory, and the
34
+ * upfront factory when configured) are served; everything else is `404`
35
+ * before any signature check, oracle call or simulation. Which factory
36
+ * claims the opener decides its KIND, and so the EIP-712 domain its payer
37
+ * signs under ("Metrik X402StreamOpener" or "Metrik X402UpfrontStreamOpener").
38
+ * - Stream id 0 is an UPFRONT-ONLY payment (`upfrontAmount == price`): no
39
+ * stream exists and nothing was escrowed. Every route answers
40
+ * `nothing-to-refund` for it without a chain read, and no close or reclaim is
41
+ * ever submitted for it.
42
+ * - For an upfront opener, only the stream deposit (`price - upfrontAmount`)
43
+ * is refundable; the status reports that as `maxRefund`, never the price.
34
44
  * - Every precondition the contract would check is read first (status, expiry,
35
45
  * settlement window, reclaimed flag, non-zero refund). A request that would
36
46
  * have no real effect never reaches the relayer.
@@ -51,6 +61,12 @@ import { RelayerQueue } from "./relayer-queue.js";
51
61
  /** EIP-712 domain name/version of `X402StreamOpener`. Checked against the opener's ERC-5267 domain. */
52
62
  export declare const OPENER_EIP712_NAME = "Metrik X402StreamOpener";
53
63
  export declare const OPENER_EIP712_VERSION = "1";
64
+ /** EIP-712 domain name of `X402UpfrontStreamOpener` (same version, same types). */
65
+ export declare const UPFRONT_OPENER_EIP712_NAME = "Metrik X402UpfrontStreamOpener";
66
+ /** The EIP-712 domain name an opener of `kind` signs under. */
67
+ export declare function openerEip712Name(kind: OpenerKind): string;
68
+ /** True for the all-zero bytes32: an upfront-only payment, no stream. */
69
+ export declare function isNoStreamId(streamId: string): boolean;
54
70
  /** The two payer-signed opener actions. */
55
71
  export type OpenerSignedAction = "Close" | "ReclaimUnverified";
56
72
  declare const ACTION_FIELDS: readonly [{
@@ -76,6 +92,8 @@ export declare const MIN_SIGNATURE_DEADLINE_HEADROOM_SECONDS = 60n;
76
92
  */
77
93
  export declare function openerActionTypedData(input: {
78
94
  readonly action: OpenerSignedAction;
95
+ /** The opener's kind (read on-chain); default `"stream"`. Picks the domain name. */
96
+ readonly kind?: OpenerKind;
79
97
  readonly opener: Address;
80
98
  readonly chainId: number;
81
99
  readonly streamId: Hex;
@@ -83,7 +101,7 @@ export declare function openerActionTypedData(input: {
83
101
  readonly deadline: bigint;
84
102
  }): {
85
103
  readonly domain: {
86
- readonly name: "Metrik X402StreamOpener";
104
+ readonly name: string;
87
105
  readonly version: "1";
88
106
  readonly chainId: number;
89
107
  readonly verifyingContract: `0x${string}`;
@@ -108,6 +126,11 @@ export interface OpenerRefundRelayConfig {
108
126
  /** CAIP-2 network (`eip155:<chainId>`), as the registry gives it. Must match the RPC's chain id. */
109
127
  readonly network: string;
110
128
  readonly factoryAddress: Address;
129
+ /**
130
+ * The `X402UpfrontStreamOpenerFactory` whose clones are served too (same
131
+ * escrow, checked by {@link OpenerRefundRelay.init}). Unset = stream openers only.
132
+ */
133
+ readonly upfrontFactoryAddress?: Address;
111
134
  /** The `StreamEscrowV2` the factory settles into (checked by {@link OpenerRefundRelay.init}). */
112
135
  readonly escrowAddress: Address;
113
136
  /** Base URL of the Metrik oracle that serves `GET /checkpoint/proof?streamId=`. */
@@ -166,6 +189,7 @@ export declare class OpenerRefundRelay implements RefundRelayHandler {
166
189
  private readonly config;
167
190
  private readonly chainId;
168
191
  private readonly factory;
192
+ private readonly upfrontFactory;
169
193
  private readonly escrow;
170
194
  private readonly oracleUrl;
171
195
  private readonly queue;
@@ -225,6 +249,8 @@ export declare class OpenerRefundRelay implements RefundRelayHandler {
225
249
  private verifyPayerSignature;
226
250
  private chainNow;
227
251
  private readNonce;
252
+ /** An upfront opener's immutable terms (`price`, `upfrontAmount`). */
253
+ private readUpfrontTerms;
228
254
  private readLatestCheckedAt;
229
255
  private readReclaimable;
230
256
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"refund-relay.d.ts","sourceRoot":"","sources":["../../src/x402-opener/refund-relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refund-relay.d.ts","sourceRoot":"","sources":["../../src/x402-opener/refund-relay.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { streamEscrowV2Abi } from "@absol-labs/shared";
1
+ import { streamEscrowV2Abi, x402UpfrontStreamOpenerAbi, x402UpfrontStreamOpenerFactoryAbi, } from "@absol-labs/shared";
2
2
  import { BaseError, ContractFunctionRevertedError, concat, decodeEventLog, encodeAbiParameters, getAddress, isAddress, isErc6492Signature, isHex, keccak256, maxUint256, } from "viem";
3
3
  import { x402StreamOpenerAbi, x402StreamOpenerFactoryAbi } from "./abi.js";
4
4
  import { RelayerQueue } from "./relayer-queue.js";
@@ -32,9 +32,18 @@ import { escrowGenerationFor, readEscapeHatchReadyAt, UnsupportedEscrowGeneratio
32
32
  *
33
33
  * ## Bounded against gas abuse
34
34
  *
35
- * - Only streams whose escrow buyer is an opener of the configured factory
36
- * (`factory.isOpener(stream.buyer)`, on-chain) are served; everything else is
37
- * `404` before any signature check, oracle call or simulation.
35
+ * - Only streams whose escrow buyer is an opener of a configured factory
36
+ * (`factory.isOpener(stream.buyer)`, on-chain: the stream factory, and the
37
+ * upfront factory when configured) are served; everything else is `404`
38
+ * before any signature check, oracle call or simulation. Which factory
39
+ * claims the opener decides its KIND, and so the EIP-712 domain its payer
40
+ * signs under ("Metrik X402StreamOpener" or "Metrik X402UpfrontStreamOpener").
41
+ * - Stream id 0 is an UPFRONT-ONLY payment (`upfrontAmount == price`): no
42
+ * stream exists and nothing was escrowed. Every route answers
43
+ * `nothing-to-refund` for it without a chain read, and no close or reclaim is
44
+ * ever submitted for it.
45
+ * - For an upfront opener, only the stream deposit (`price - upfrontAmount`)
46
+ * is refundable; the status reports that as `maxRefund`, never the price.
38
47
  * - Every precondition the contract would check is read first (status, expiry,
39
48
  * settlement window, reclaimed flag, non-zero refund). A request that would
40
49
  * have no real effect never reaches the relayer.
@@ -55,6 +64,16 @@ import { escrowGenerationFor, readEscapeHatchReadyAt, UnsupportedEscrowGeneratio
55
64
  /** EIP-712 domain name/version of `X402StreamOpener`. Checked against the opener's ERC-5267 domain. */
56
65
  export const OPENER_EIP712_NAME = "Metrik X402StreamOpener";
57
66
  export const OPENER_EIP712_VERSION = "1";
67
+ /** EIP-712 domain name of `X402UpfrontStreamOpener` (same version, same types). */
68
+ export const UPFRONT_OPENER_EIP712_NAME = "Metrik X402UpfrontStreamOpener";
69
+ /** The EIP-712 domain name an opener of `kind` signs under. */
70
+ export function openerEip712Name(kind) {
71
+ return kind === "upfront" ? UPFRONT_OPENER_EIP712_NAME : OPENER_EIP712_NAME;
72
+ }
73
+ /** True for the all-zero bytes32: an upfront-only payment, no stream. */
74
+ export function isNoStreamId(streamId) {
75
+ return /^0x0{64}$/i.test(streamId);
76
+ }
58
77
  const ACTION_FIELDS = [
59
78
  { name: "streamId", type: "bytes32" },
60
79
  { name: "nonce", type: "uint256" },
@@ -83,7 +102,7 @@ const CHECKPOINT_RETRY_HINT_SECONDS = 30;
83
102
  export function openerActionTypedData(input) {
84
103
  return {
85
104
  domain: {
86
- name: OPENER_EIP712_NAME,
105
+ name: openerEip712Name(input.kind ?? "stream"),
87
106
  version: OPENER_EIP712_VERSION,
88
107
  chainId: input.chainId,
89
108
  verifyingContract: getAddress(input.opener),
@@ -188,6 +207,7 @@ export class OpenerRefundRelay {
188
207
  config;
189
208
  chainId;
190
209
  factory;
210
+ upfrontFactory;
191
211
  escrow;
192
212
  oracleUrl;
193
213
  queue;
@@ -212,6 +232,17 @@ export class OpenerRefundRelay {
212
232
  throw new Error("factoryAddress and escrowAddress must be EVM addresses");
213
233
  }
214
234
  this.factory = getAddress(config.factoryAddress);
235
+ if (config.upfrontFactoryAddress !== undefined &&
236
+ !isAddress(config.upfrontFactoryAddress)) {
237
+ throw new Error("upfrontFactoryAddress must be an EVM address");
238
+ }
239
+ this.upfrontFactory =
240
+ config.upfrontFactoryAddress === undefined
241
+ ? undefined
242
+ : getAddress(config.upfrontFactoryAddress);
243
+ if (this.upfrontFactory === this.factory) {
244
+ throw new Error("upfrontFactoryAddress must differ from factoryAddress");
245
+ }
215
246
  this.escrow = getAddress(config.escrowAddress);
216
247
  const generation = config.escrowGeneration ?? escrowGenerationFor(this.chainId, this.escrow);
217
248
  if (generation !== "v2" && generation !== "v3") {
@@ -281,6 +312,16 @@ export class OpenerRefundRelay {
281
312
  if (getAddress(factoryEscrow) !== this.escrow) {
282
313
  throw new Error(`refund relay: factory escrow ${factoryEscrow} is not the configured escrow ${this.escrow}`);
283
314
  }
315
+ if (this.upfrontFactory !== undefined) {
316
+ const upfrontEscrow = await publicClient.readContract({
317
+ address: this.upfrontFactory,
318
+ abi: x402UpfrontStreamOpenerFactoryAbi,
319
+ functionName: "escrow",
320
+ });
321
+ if (getAddress(upfrontEscrow) !== this.escrow) {
322
+ throw new Error(`refund relay: upfront factory escrow ${upfrontEscrow} is not the configured escrow ${this.escrow}`);
323
+ }
324
+ }
284
325
  this.escapeGraceSeconds = BigInt(await publicClient.readContract({
285
326
  address: this.escrow,
286
327
  abi: streamEscrowV2Abi,
@@ -292,6 +333,8 @@ export class OpenerRefundRelay {
292
333
  const streamId = parseStreamId(rawStreamId);
293
334
  if (streamId === undefined)
294
335
  return invalidStreamId();
336
+ if (isNoStreamId(streamId))
337
+ return nothingToRefund(404);
295
338
  const cached = this.fresh(this.statusCache, streamId);
296
339
  if (cached !== undefined)
297
340
  return cached.response;
@@ -307,12 +350,15 @@ export class OpenerRefundRelay {
307
350
  const resolved = await this.resolve(rawStreamId);
308
351
  if ("status" in resolved)
309
352
  return resolved;
310
- const { streamId, stream, opener, payer } = resolved;
353
+ const { streamId, stream, opener, payer, kind, factory } = resolved;
311
354
  const grace = this.grace();
312
- const [now, nonce, latestCheckedAt] = await Promise.all([
355
+ const [now, nonce, latestCheckedAt, upfrontTerms] = await Promise.all([
313
356
  this.chainNow(),
314
357
  this.readNonce(opener, payer),
315
358
  this.readLatestCheckedAt(),
359
+ kind === "upfront"
360
+ ? this.readUpfrontTerms(opener)
361
+ : Promise.resolve(undefined),
316
362
  ]);
317
363
  const closed = stream.status === 1;
318
364
  const stopAt = stopTime(stream);
@@ -356,6 +402,7 @@ export class OpenerRefundRelay {
356
402
  },
357
403
  typedData: jsonTypedData(openerActionTypedData({
358
404
  action: "Close",
405
+ kind,
359
406
  opener,
360
407
  chainId: this.chainId,
361
408
  streamId,
@@ -398,6 +445,7 @@ export class OpenerRefundRelay {
398
445
  },
399
446
  typedData: jsonTypedData(openerActionTypedData({
400
447
  action: "ReclaimUnverified",
448
+ kind,
401
449
  opener,
402
450
  chainId: this.chainId,
403
451
  streamId,
@@ -421,12 +469,24 @@ export class OpenerRefundRelay {
421
469
  streamId,
422
470
  chainId: this.chainId,
423
471
  escrow: this.escrow,
424
- factory: this.factory,
472
+ factory,
473
+ openerKind: kind,
425
474
  opener,
426
475
  payer,
427
476
  operator: stream.operator,
428
477
  serviceRef: stream.serviceRef,
429
478
  deposit: stream.deposit.toString(),
479
+ // The most any refund of this payment can return: the escrowed
480
+ // deposit. For an upfront opener that is price - upfrontAmount; the
481
+ // upfront part was paid to the seller at settlement and is final.
482
+ maxRefund: stream.deposit.toString(),
483
+ ...(upfrontTerms === undefined
484
+ ? {}
485
+ : {
486
+ price: upfrontTerms.price.toString(),
487
+ upfrontAmount: upfrontTerms.upfrontAmount.toString(),
488
+ upfrontNote: `${upfrontTerms.upfrontAmount.toString()} of the ${upfrontTerms.price.toString()} paid was a non-refundable per-call charge, paid to the seller at settlement; at most the ${stream.deposit.toString()} escrowed can be refunded.`,
489
+ }),
430
490
  ratePerSecond: stream.ratePerSecond.toString(),
431
491
  claimedCumulative: stream.claimedCumulative.toString(),
432
492
  openedAt: Number(stream.openedAt),
@@ -460,6 +520,8 @@ export class OpenerRefundRelay {
460
520
  const streamId = parseStreamId(rawStreamId);
461
521
  if (streamId === undefined)
462
522
  return invalidStreamId();
523
+ if (isNoStreamId(streamId))
524
+ return nothingToRefund(409);
463
525
  const signed = parseSignedBody(body);
464
526
  if ("status" in signed)
465
527
  return signed;
@@ -471,7 +533,7 @@ export class OpenerRefundRelay {
471
533
  const resolved = await this.resolve(streamId);
472
534
  if ("status" in resolved)
473
535
  return resolved;
474
- const { stream, opener, payer } = resolved;
536
+ const { stream, opener, payer, kind } = resolved;
475
537
  const now = await this.chainNow();
476
538
  if (stream.status === 1) {
477
539
  return fail(409, "already-closed", "the stream is already closed", {
@@ -481,7 +543,7 @@ export class OpenerRefundRelay {
481
543
  if (now >= stream.expiresAt) {
482
544
  return fail(409, "stream-expired", "the stream has already reached expiresAt; there is nothing to close — reclaim directly", { next: this.link(`/streams/${streamId}/reclaim`) });
483
545
  }
484
- const refused = await this.verifyPayerSignature("Close", streamId, opener, payer, signed, now);
546
+ const refused = await this.verifyPayerSignature("Close", kind, streamId, opener, payer, signed, now);
485
547
  if (refused !== undefined)
486
548
  return refused;
487
549
  return await this.submit(key, streamId, {
@@ -499,6 +561,8 @@ export class OpenerRefundRelay {
499
561
  const streamId = parseStreamId(rawStreamId);
500
562
  if (streamId === undefined)
501
563
  return invalidStreamId();
564
+ if (isNoStreamId(streamId))
565
+ return nothingToRefund(409);
502
566
  const key = ledgerKey("reclaim", streamId);
503
567
  const early = await this.precheck(key, "reclaim");
504
568
  if (early !== undefined)
@@ -560,6 +624,8 @@ export class OpenerRefundRelay {
560
624
  const streamId = parseStreamId(rawStreamId);
561
625
  if (streamId === undefined)
562
626
  return invalidStreamId();
627
+ if (isNoStreamId(streamId))
628
+ return nothingToRefund(409);
563
629
  const signed = parseSignedBody(body);
564
630
  if ("status" in signed)
565
631
  return signed;
@@ -571,7 +637,7 @@ export class OpenerRefundRelay {
571
637
  const resolved = await this.resolve(streamId);
572
638
  if ("status" in resolved)
573
639
  return resolved;
574
- const { stream, opener, payer } = resolved;
640
+ const { stream, opener, payer, kind } = resolved;
575
641
  if (stream.reclaimed)
576
642
  return alreadyReclaimed();
577
643
  const now = await this.chainNow();
@@ -588,7 +654,7 @@ export class OpenerRefundRelay {
588
654
  if (amount <= 0n) {
589
655
  return fail(409, "nothing-to-reclaim", "the seller already claimed the whole deposit; there is nothing to refund");
590
656
  }
591
- const refused = await this.verifyPayerSignature("ReclaimUnverified", streamId, opener, payer, signed, now);
657
+ const refused = await this.verifyPayerSignature("ReclaimUnverified", kind, streamId, opener, payer, signed, now);
592
658
  if (refused !== undefined)
593
659
  return refused;
594
660
  return await this.submit(key, streamId, {
@@ -844,14 +910,30 @@ export class OpenerRefundRelay {
844
910
  if (!isAddress(stream.buyer))
845
911
  return notFound();
846
912
  const buyer = getAddress(stream.buyer);
847
- const isOpener = await publicClient.readContract({
848
- address: this.factory,
849
- abi: x402StreamOpenerFactoryAbi,
850
- functionName: "isOpener",
851
- args: [buyer],
852
- });
853
- if (isOpener !== true)
913
+ // The kind is whichever CONFIGURED factory's isOpener claims the buyer,
914
+ // read on-chain — never inferred from the address, code or the request.
915
+ const [isStreamOpener, isUpfrontOpener] = await Promise.all([
916
+ publicClient.readContract({
917
+ address: this.factory,
918
+ abi: x402StreamOpenerFactoryAbi,
919
+ functionName: "isOpener",
920
+ args: [buyer],
921
+ }),
922
+ this.upfrontFactory === undefined
923
+ ? Promise.resolve(false)
924
+ : publicClient.readContract({
925
+ address: this.upfrontFactory,
926
+ abi: x402UpfrontStreamOpenerFactoryAbi,
927
+ functionName: "isOpener",
928
+ args: [buyer],
929
+ }),
930
+ ]);
931
+ if ((isStreamOpener === true) === (isUpfrontOpener === true)) {
932
+ // Neither (not our opener) — or both, which CREATE2 makes impossible.
854
933
  return notFound();
934
+ }
935
+ const kind = isUpfrontOpener === true ? "upfront" : "stream";
936
+ const factory = kind === "upfront" ? this.upfrontFactory : this.factory;
855
937
  const payer = await publicClient.readContract({
856
938
  address: buyer,
857
939
  abi: x402StreamOpenerAbi,
@@ -864,6 +946,8 @@ export class OpenerRefundRelay {
864
946
  streamId,
865
947
  opener: buyer,
866
948
  payer: getAddress(payer),
949
+ kind,
950
+ factory,
867
951
  stream: {
868
952
  buyer,
869
953
  operator: getAddress(stream.operator),
@@ -881,7 +965,7 @@ export class OpenerRefundRelay {
881
965
  };
882
966
  }
883
967
  /** Off-chain check of a payer-signed opener action. `undefined` = valid. */
884
- async verifyPayerSignature(action, streamId, opener, payer, signed, now) {
968
+ async verifyPayerSignature(action, kind, streamId, opener, payer, signed, now) {
885
969
  if (signed.deadline < now + MIN_SIGNATURE_DEADLINE_HEADROOM_SECONDS) {
886
970
  return fail(403, "signature-expired", `the signed deadline must be at least ${MIN_SIGNATURE_DEADLINE_HEADROOM_SECONDS} s after the current chain time (${Number(now)}) so the transaction can be mined in time`, { chainTime: Number(now) });
887
971
  }
@@ -901,7 +985,7 @@ export class OpenerRefundRelay {
901
985
  return fail(409, "nonce-mismatch", `the payer's current opener nonce is ${nonce}; sign again over it`, { payerNonce: nonce.toString() });
902
986
  }
903
987
  const [, name, version, chainId, verifyingContract] = domain;
904
- if (name !== OPENER_EIP712_NAME ||
988
+ if (name !== openerEip712Name(kind) ||
905
989
  version !== OPENER_EIP712_VERSION ||
906
990
  BigInt(chainId) !== BigInt(this.chainId) ||
907
991
  getAddress(verifyingContract) !== opener) {
@@ -914,6 +998,7 @@ export class OpenerRefundRelay {
914
998
  address: payer,
915
999
  ...openerActionTypedData({
916
1000
  action,
1001
+ kind,
917
1002
  opener,
918
1003
  chainId: this.chainId,
919
1004
  streamId,
@@ -945,6 +1030,18 @@ export class OpenerRefundRelay {
945
1030
  args: [payer],
946
1031
  }));
947
1032
  }
1033
+ /** An upfront opener's immutable terms (`price`, `upfrontAmount`). */
1034
+ async readUpfrontTerms(opener) {
1035
+ const terms = (await this.config.publicClient.readContract({
1036
+ address: opener,
1037
+ abi: x402UpfrontStreamOpenerAbi,
1038
+ functionName: "terms",
1039
+ }));
1040
+ return {
1041
+ price: BigInt(terms.price),
1042
+ upfrontAmount: BigInt(terms.upfrontAmount),
1043
+ };
1044
+ }
948
1045
  async readLatestCheckedAt() {
949
1046
  return BigInt(await this.config.publicClient.readContract({
950
1047
  address: this.escrow,
@@ -1185,7 +1282,11 @@ function invalidStreamId() {
1185
1282
  return fail(400, "invalid-stream-id", "streamId must be a 32-byte 0x-hex value");
1186
1283
  }
1187
1284
  function notFound() {
1188
- return fail(404, "not-found", "no stream opened through this facilitator's X402StreamOpenerFactory has that id");
1285
+ return fail(404, "not-found", "no stream opened through this facilitator's opener factories has that id");
1286
+ }
1287
+ /** Stream id 0: an upfront-only payment. Never read, closed or reclaimed. */
1288
+ function nothingToRefund(status) {
1289
+ return fail(status, "nothing-to-refund", "stream id 0 is an upfront-only payment (upfrontAmount == price): the whole price was paid to the seller at settlement, no stream was opened, nothing was escrowed, and there is nothing to close or reclaim");
1189
1290
  }
1190
1291
  function inProgress() {
1191
1292
  return fail(409, "in-progress", "a relayed transaction for this stream is in flight; retry shortly", {}, 5);