@absol-labs/agent 0.12.0-rc.2 → 0.12.0-rc.4
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/cli/commands/claim.d.ts +15 -0
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +65 -23
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/pay.d.ts +10 -0
- package/dist/cli/commands/pay.d.ts.map +1 -1
- package/dist/cli/commands/pay.js +246 -50
- package/dist/cli/commands/pay.js.map +1 -1
- package/dist/cli/commands/refund.d.ts +23 -12
- package/dist/cli/commands/refund.d.ts.map +1 -1
- package/dist/cli/commands/refund.js +104 -131
- package/dist/cli/commands/refund.js.map +1 -1
- package/dist/cli/deps.d.ts +6 -0
- package/dist/cli/deps.d.ts.map +1 -1
- package/dist/cli/deps.js +3 -0
- package/dist/cli/deps.js.map +1 -1
- package/dist/cli/errors.d.ts +8 -1
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/status.d.ts +6 -0
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +25 -6
- package/dist/cli/status.js.map +1 -1
- package/dist/gateway/x402-opener-mode.d.ts.map +1 -1
- package/dist/gateway/x402-opener-mode.js +104 -7
- package/dist/gateway/x402-opener-mode.js.map +1 -1
- package/dist/mcp/server.d.ts +10 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +21 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/x402-tools.d.ts +7 -1
- package/dist/mcp/x402-tools.d.ts.map +1 -1
- package/dist/mcp/x402-tools.js +159 -6
- package/dist/mcp/x402-tools.js.map +1 -1
- package/dist/x402-buyer/index.d.ts +1 -0
- package/dist/x402-buyer/index.d.ts.map +1 -1
- package/dist/x402-buyer/index.js +1 -0
- package/dist/x402-buyer/index.js.map +1 -1
- package/dist/x402-buyer/pay.d.ts +38 -2
- package/dist/x402-buyer/pay.d.ts.map +1 -1
- package/dist/x402-buyer/pay.js +52 -2
- package/dist/x402-buyer/pay.js.map +1 -1
- package/dist/x402-buyer/refund-actions.d.ts +168 -0
- package/dist/x402-buyer/refund-actions.d.ts.map +1 -0
- package/dist/x402-buyer/refund-actions.js +351 -0
- package/dist/x402-buyer/refund-actions.js.map +1 -0
- package/dist/x402-opener/block-floors.d.ts +35 -0
- package/dist/x402-opener/block-floors.d.ts.map +1 -0
- package/dist/x402-opener/block-floors.js +72 -0
- package/dist/x402-opener/block-floors.js.map +1 -0
- package/dist/x402-opener/facilitator-server.d.ts.map +1 -1
- package/dist/x402-opener/facilitator-server.js +7 -0
- package/dist/x402-opener/facilitator-server.js.map +1 -1
- package/dist/x402-opener/index.d.ts +1 -0
- package/dist/x402-opener/index.d.ts.map +1 -1
- package/dist/x402-opener/index.js +1 -0
- package/dist/x402-opener/index.js.map +1 -1
- package/dist/x402-opener/refund-relay.d.ts +62 -1
- package/dist/x402-opener/refund-relay.d.ts.map +1 -1
- package/dist/x402-opener/refund-relay.js +387 -208
- package/dist/x402-opener/refund-relay.js.map +1 -1
- package/dist/x402-opener/scheme.d.ts +8 -0
- package/dist/x402-opener/scheme.d.ts.map +1 -1
- package/dist/x402-opener/scheme.js +14 -0
- package/dist/x402-opener/scheme.js.map +1 -1
- package/docs/cli.md +62 -9
- package/docs/mcp-reference.md +23 -0
- package/docs/x402.md +126 -29
- package/package.json +2 -2
- package/src/cli/commands/claim.ts +72 -30
- package/src/cli/commands/pay.ts +299 -51
- package/src/cli/commands/refund.ts +133 -143
- package/src/cli/deps.ts +9 -0
- package/src/cli/errors.ts +8 -1
- package/src/cli/status.ts +28 -7
- package/src/gateway/x402-opener-mode.ts +131 -6
- package/src/mcp/server.ts +30 -1
- package/src/mcp/x402-tools.ts +222 -7
- package/src/x402-buyer/index.ts +1 -0
- package/src/x402-buyer/pay.ts +99 -2
- package/src/x402-buyer/refund-actions.ts +486 -0
- package/src/x402-opener/block-floors.ts +78 -0
- package/src/x402-opener/facilitator-server.ts +7 -0
- package/src/x402-opener/index.ts +1 -0
- package/src/x402-opener/refund-relay.ts +486 -217
- package/src/x402-opener/scheme.ts +38 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/x402-buyer/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/x402-buyer/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
package/dist/x402-buyer/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/x402-buyer/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/x402-buyer/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
package/dist/x402-buyer/pay.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { MetrikNetwork } from "@absol-labs/sdk";
|
|
2
|
-
import { payWithX402, type PayWithX402Options, type PayWithX402Result, type SignedTransferAuthorization, type X402PayerSigner, type X402QuoteSummary } from "@absol-labs/sdk/x402";
|
|
1
|
+
import type { MetrikClient, MetrikNetwork } from "@absol-labs/sdk";
|
|
2
|
+
import { payWithX402, refundClient, type PayWithX402Options, type PayWithX402Result, type SignedTransferAuthorization, type X402PayerSigner, type X402QuoteSummary } from "@absol-labs/sdk/x402";
|
|
3
3
|
import { type PublicClient } from "viem";
|
|
4
4
|
import { type HireRequest, type MandateDecision, type SignedSpendMandate } from "../mandates/mandate.js";
|
|
5
|
+
import { type CloseAfterOutcome } from "./refund-actions.js";
|
|
5
6
|
/**
|
|
6
7
|
* Buyer-side x402 payments under a spend mandate (metrik-agent#121).
|
|
7
8
|
*
|
|
@@ -98,6 +99,34 @@ export interface PayX402WithMandateInput {
|
|
|
98
99
|
* the network's first RPC.
|
|
99
100
|
*/
|
|
100
101
|
readonly chainReader?: Pick<PublicClient, "readContract" | "getLogs" | "getBlockNumber">;
|
|
102
|
+
/**
|
|
103
|
+
* Close the stream and reclaim the unearned part right after a successful
|
|
104
|
+
* paid response, at the buyer's request: `signer` signs the payer's Close,
|
|
105
|
+
* the seller's refund relay sends it (and pays the gas), the client waits
|
|
106
|
+
* (bounded, honouring `Retry-After`) for the checkpoint covering the close,
|
|
107
|
+
* then asks the relay to reclaim to the payer. This is the buyer's own
|
|
108
|
+
* client acting for the buyer, not an automatic refund. Its outcome is
|
|
109
|
+
* {@link PayX402WithMandateResult.closeAfter}; a close/reclaim that does not
|
|
110
|
+
* finish never fails the payment. `true` uses the defaults below.
|
|
111
|
+
*/
|
|
112
|
+
readonly closeAfter?: boolean | CloseAfterOptions;
|
|
113
|
+
}
|
|
114
|
+
/** Options of {@link PayX402WithMandateInput.closeAfter}. */
|
|
115
|
+
export interface CloseAfterOptions {
|
|
116
|
+
/**
|
|
117
|
+
* Recommended: checks every relayed close/reclaim against its mined receipt,
|
|
118
|
+
* so `closeAfter.refundedUsdc` is the amount the receipt proves. Without it
|
|
119
|
+
* the relay's word is reported and `refundedUsdc` stays `null`.
|
|
120
|
+
*/
|
|
121
|
+
readonly verifyWith?: MetrikClient;
|
|
122
|
+
/** Relay attempts while it says "not yet" (default the SDK's, 5). */
|
|
123
|
+
readonly maxAttempts?: number;
|
|
124
|
+
/** Longest single wait honoured, ms (default the SDK's, 60 000). */
|
|
125
|
+
readonly maxDelayMs?: number;
|
|
126
|
+
/** Injectable delay (tests). */
|
|
127
|
+
readonly sleep?: (ms: number) => Promise<void>;
|
|
128
|
+
/** Test seam: the refund client factory. Default the SDK's `refundClient`. */
|
|
129
|
+
readonly refundClientImpl?: typeof refundClient;
|
|
101
130
|
}
|
|
102
131
|
/** What is known about a payment whose signature was handed out but that did not complete cleanly. */
|
|
103
132
|
export type X402PostSignatureState =
|
|
@@ -147,6 +176,13 @@ export declare class X402PostSignatureError extends Error {
|
|
|
147
176
|
export interface PayX402WithMandateResult extends PayWithX402Result {
|
|
148
177
|
/** The stream-open request the mandate approved (null if nothing was paid). */
|
|
149
178
|
readonly approved: HireRequest | null;
|
|
179
|
+
/**
|
|
180
|
+
* What `closeAfter` did: `null` when it was not requested or nothing was
|
|
181
|
+
* paid. What the payment finally cost is `approved.budgetUsdc -
|
|
182
|
+
* closeAfter.refundedUsdc` (when `refundedUsdc` is non-null): a caller that
|
|
183
|
+
* tracks cumulative spend counts only that.
|
|
184
|
+
*/
|
|
185
|
+
readonly closeAfter: CloseAfterOutcome | null;
|
|
150
186
|
}
|
|
151
187
|
/**
|
|
152
188
|
* Pay an x402 v2 endpoint through the SDK's `payWithX402`, gated by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../src/x402-buyer/pay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../src/x402-buyer/pay.ts"],"names":[],"mappings":"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"}
|
package/dist/x402-buyer/pay.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { findStreamForAuthorization, payWithX402, X402PaymentRefusedError, } from "@absol-labs/sdk/x402";
|
|
1
|
+
import { findStreamForAuthorization, payWithX402, refundClient, X402PaymentRefusedError, } from "@absol-labs/sdk/x402";
|
|
2
2
|
import { decodePaymentSignatureHeader } from "@x402/core/http";
|
|
3
3
|
import { createPublicClient, getAddress, http } from "viem";
|
|
4
4
|
import { checkMandate, verifySignedMandate, } from "../mandates/mandate.js";
|
|
5
|
+
import { closeAfterPayment } from "./refund-actions.js";
|
|
5
6
|
/**
|
|
6
7
|
* Buyer-side x402 payments under a spend mandate (metrik-agent#121).
|
|
7
8
|
*
|
|
@@ -273,7 +274,56 @@ export async function payX402WithMandate(input) {
|
|
|
273
274
|
sentAuthorization,
|
|
274
275
|
});
|
|
275
276
|
}
|
|
276
|
-
|
|
277
|
+
const closeAfter = input.closeAfter === undefined ||
|
|
278
|
+
input.closeAfter === false ||
|
|
279
|
+
!result.paid ||
|
|
280
|
+
result.metrikStreamOpener === null
|
|
281
|
+
? null
|
|
282
|
+
: await runCloseAfter(input, result.metrikStreamOpener);
|
|
283
|
+
return { ...result, approved: result.paid ? approved : null, closeAfter };
|
|
284
|
+
}
|
|
285
|
+
/** {@link PayX402WithMandateInput.closeAfter}, with the SDK's refund client. */
|
|
286
|
+
async function runCloseAfter(input, payment) {
|
|
287
|
+
const options = typeof input.closeAfter === "object" ? input.closeAfter : {};
|
|
288
|
+
const sleep = options.sleep ??
|
|
289
|
+
(async (ms) => {
|
|
290
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
291
|
+
});
|
|
292
|
+
const open = options.refundClientImpl ?? refundClient;
|
|
293
|
+
return await closeAfterPayment({
|
|
294
|
+
payment,
|
|
295
|
+
payer: getAddress(input.signer.address),
|
|
296
|
+
openRefunds: async () => open(payment, {
|
|
297
|
+
...(options.verifyWith === undefined
|
|
298
|
+
? {
|
|
299
|
+
// Chain access proves the opener's kind (the Close's EIP-712
|
|
300
|
+
// domain) when no MetrikClient is given.
|
|
301
|
+
publicClient: input.sdkOptions?.publicClient ??
|
|
302
|
+
createPublicClient({
|
|
303
|
+
chain: input.network.chain,
|
|
304
|
+
transport: input.sdkOptions?.transport ??
|
|
305
|
+
http(input.network.rpcUrls[0]),
|
|
306
|
+
}),
|
|
307
|
+
network: input.network,
|
|
308
|
+
}
|
|
309
|
+
: { verifyWith: options.verifyWith }),
|
|
310
|
+
expectedChainId: input.network.chain.id,
|
|
311
|
+
...(input.sdkOptions?.fetch === undefined
|
|
312
|
+
? {}
|
|
313
|
+
: { fetch: input.sdkOptions.fetch }),
|
|
314
|
+
...(options.maxAttempts === undefined
|
|
315
|
+
? {}
|
|
316
|
+
: { maxAttempts: options.maxAttempts }),
|
|
317
|
+
...(options.maxDelayMs === undefined
|
|
318
|
+
? {}
|
|
319
|
+
: { maxDelayMs: options.maxDelayMs }),
|
|
320
|
+
sleep,
|
|
321
|
+
}),
|
|
322
|
+
// The mandate's owner IS the payer (checked before paying): the buyer's
|
|
323
|
+
// own recovery needs nothing more.
|
|
324
|
+
closeSigner: async () => input.signer,
|
|
325
|
+
sleep,
|
|
326
|
+
});
|
|
277
327
|
}
|
|
278
328
|
/**
|
|
279
329
|
* After a failure past the point of signing, establish what happened from the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/x402-buyer/pay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/x402-buyer/pay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import type { RefundClient, RefundRelayResult, RefundStatus, X402PayerSigner } from "@absol-labs/sdk/x402";
|
|
2
|
+
/**
|
|
3
|
+
* The buyer's own close + reclaim of an x402 stream, through the seller's
|
|
4
|
+
* gasless refund relay. ONE implementation behind `metrik refund`,
|
|
5
|
+
* `metrik pay --close-after`, the MCP `x402_pay` tool's `closeAfter` and
|
|
6
|
+
* {@link closeAfterPayment} (`@absol-labs/agent/x402-buyer`).
|
|
7
|
+
*
|
|
8
|
+
* Nothing here is an automatic refund: it runs only when the buyer asks for
|
|
9
|
+
* it, and it is the buyer's own client that signs the Close and asks the
|
|
10
|
+
* relay to send the permissionless reclaim. The relay pays the gas; the
|
|
11
|
+
* opener always sends the reclaim to the payer.
|
|
12
|
+
*
|
|
13
|
+
* The waits are bounded and the relay's own: `RefundClient.status()` waits
|
|
14
|
+
* out a `503 chain-lagging` (honouring `Retry-After`), and
|
|
15
|
+
* `RefundClient.reclaim()` retries, bounded by the client's `maxAttempts` /
|
|
16
|
+
* `maxDelayMs`, while the relay says the checkpoint covering the close is not
|
|
17
|
+
* posted yet.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* After a close/reclaim, how many times the summary re-reads the relay until
|
|
21
|
+
* it reflects the transaction just mined (a load-balanced RPC behind the relay
|
|
22
|
+
* can answer from a node that has not seen it yet), and how long it waits
|
|
23
|
+
* between reads. Bounded: past it the summary is derived from the verified
|
|
24
|
+
* receipts instead.
|
|
25
|
+
*/
|
|
26
|
+
export declare const POST_ACTION_READS = 6;
|
|
27
|
+
export declare const POST_ACTION_INTERVAL_MS = 1500;
|
|
28
|
+
/** Why a recovery is over. */
|
|
29
|
+
export type FinishedReason = "reclaimed" | "nothing-to-reclaim";
|
|
30
|
+
/** Why a requested close / reclaim sent nothing. */
|
|
31
|
+
export type SkipReason = FinishedReason | "already-closed";
|
|
32
|
+
/** Which step of a close + reclaim did not finish. */
|
|
33
|
+
export type RefundActionStage = "close" | "reclaim";
|
|
34
|
+
export interface RefundActionsInput {
|
|
35
|
+
/** The SDK refund client, bound to ONE stream. */
|
|
36
|
+
readonly refunds: RefundClient;
|
|
37
|
+
readonly streamId: `0x${string}`;
|
|
38
|
+
readonly opener: `0x${string}`;
|
|
39
|
+
/** The payer as the chain (or the signed payment) knows it, when known. */
|
|
40
|
+
readonly payer: `0x${string}` | null;
|
|
41
|
+
/** Stop the stream (the payer signs the opener's EIP-712 Close). */
|
|
42
|
+
readonly close: boolean;
|
|
43
|
+
/** Ask the relay to send the permissionless reclaim (to the payer). */
|
|
44
|
+
readonly reclaim: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* The payer's signer, resolved only when a Close actually has to be signed
|
|
47
|
+
* (a stream that is already closed needs no wallet). Its caller authorizes
|
|
48
|
+
* it (e.g. the mandate owner's signature) before returning it.
|
|
49
|
+
*/
|
|
50
|
+
readonly closeSigner: () => Promise<X402PayerSigner>;
|
|
51
|
+
readonly sleep: (ms: number) => Promise<void>;
|
|
52
|
+
/** Progress lines (stderr in the CLI). */
|
|
53
|
+
readonly note?: (line: string) => void;
|
|
54
|
+
/** What the run is waiting on, while it waits (`null` clears it). */
|
|
55
|
+
readonly setActivity?: (activity: string | null) => void;
|
|
56
|
+
/** Wording of the reclaim wait for {@link RefundActionsInput.setActivity}. */
|
|
57
|
+
readonly reclaimActivity?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface RefundActionsResult {
|
|
60
|
+
readonly close: RefundRelayResult | null;
|
|
61
|
+
readonly closeSkipped: SkipReason | null;
|
|
62
|
+
readonly reclaim: RefundRelayResult | null;
|
|
63
|
+
readonly reclaimSkipped: SkipReason | null;
|
|
64
|
+
/** The relay's view AFTER this run's actions (or derived from their receipts). */
|
|
65
|
+
readonly status: RefundStatus;
|
|
66
|
+
/**
|
|
67
|
+
* Set when the recovery is over without a reclaim from THIS run: the stream
|
|
68
|
+
* was already reclaimed, or the verified delivery covers the whole deposit.
|
|
69
|
+
*/
|
|
70
|
+
readonly finished: FinishedReason | null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* A close or reclaim that did not complete. `closed` says whether the stream
|
|
74
|
+
* is known to be closed (by this run or before it), so the caller can name the
|
|
75
|
+
* exact command that finishes the job. `cause` is the SDK's error, unchanged.
|
|
76
|
+
*/
|
|
77
|
+
export declare class RefundActionsError extends Error {
|
|
78
|
+
readonly stage: RefundActionStage;
|
|
79
|
+
readonly closed: boolean;
|
|
80
|
+
readonly closeResult: RefundRelayResult | null;
|
|
81
|
+
constructor(context: {
|
|
82
|
+
readonly stage: RefundActionStage;
|
|
83
|
+
readonly closed: boolean;
|
|
84
|
+
readonly closeResult: RefundRelayResult | null;
|
|
85
|
+
readonly cause: unknown;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Close and/or reclaim one x402 stream through its refund relay, then read
|
|
90
|
+
* the state AFTER those actions. Finished states (already closed, already
|
|
91
|
+
* reclaimed, nothing to reclaim) are reported, not thrown. Anything else that
|
|
92
|
+
* fails is a {@link RefundActionsError} carrying the SDK's error as `cause`.
|
|
93
|
+
*/
|
|
94
|
+
export declare function runRefundActions(input: RefundActionsInput): Promise<RefundActionsResult>;
|
|
95
|
+
/** The outcome of a close + reclaim run right after a paid response. */
|
|
96
|
+
export interface CloseAfterOutcome {
|
|
97
|
+
/**
|
|
98
|
+
* `completed`: closed and reclaimed (or the relay says nothing is left).
|
|
99
|
+
* `nothing-to-close`: an upfront-only payment, no stream was opened.
|
|
100
|
+
* `incomplete`: the close or the reclaim did not finish; nothing is lost —
|
|
101
|
+
* finish it with the refund command (`incomplete.stage` says which part).
|
|
102
|
+
*/
|
|
103
|
+
readonly outcome: "completed" | "nothing-to-close" | "incomplete";
|
|
104
|
+
readonly streamId: `0x${string}` | null;
|
|
105
|
+
readonly close: RefundRelayResult | null;
|
|
106
|
+
readonly closeSkipped: SkipReason | null;
|
|
107
|
+
readonly reclaim: RefundRelayResult | null;
|
|
108
|
+
readonly reclaimSkipped: SkipReason | null;
|
|
109
|
+
/**
|
|
110
|
+
* Base units returned to the payer by THIS run's reclaim, from the mined
|
|
111
|
+
* receipt's `ReclaimForwarded` (only when the receipt was verified; `null`
|
|
112
|
+
* otherwise, including a relay-reported amount nobody checked).
|
|
113
|
+
*/
|
|
114
|
+
readonly refundedUsdc: bigint | null;
|
|
115
|
+
readonly finished: FinishedReason | null;
|
|
116
|
+
readonly status: RefundStatus | null;
|
|
117
|
+
readonly incomplete: {
|
|
118
|
+
readonly stage: RefundActionStage | "no-relay";
|
|
119
|
+
/** Whether the stream is known to be closed already. */
|
|
120
|
+
readonly closed: boolean;
|
|
121
|
+
readonly reason: string;
|
|
122
|
+
readonly error: unknown;
|
|
123
|
+
} | null;
|
|
124
|
+
}
|
|
125
|
+
export interface CloseAfterPaymentInput extends Omit<RefundActionsInput, "refunds" | "streamId" | "opener" | "close" | "reclaim"> {
|
|
126
|
+
/** The settled payment (`metrikStreamOpener` of the pay result). */
|
|
127
|
+
readonly payment: {
|
|
128
|
+
readonly streamId: `0x${string}` | null;
|
|
129
|
+
readonly opener: `0x${string}`;
|
|
130
|
+
readonly refundUrl: string | null;
|
|
131
|
+
};
|
|
132
|
+
/** Builds the SDK refund client for that stream (the caller's own wiring). */
|
|
133
|
+
readonly openRefunds: () => Promise<RefundClient>;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Right after a paid response, at the BUYER's request: close the stream the
|
|
137
|
+
* payment opened (the payer signs the Close, the relay pays the gas), wait for
|
|
138
|
+
* the checkpoint covering the close, and reclaim the unearned remainder to the
|
|
139
|
+
* payer. Never throws for a close/reclaim failure: the payment already
|
|
140
|
+
* succeeded, so the outcome says what did not finish instead.
|
|
141
|
+
*
|
|
142
|
+
* An upfront-only payment (no stream) has nothing to close: the outcome is
|
|
143
|
+
* `nothing-to-close` and nothing is requested, signed or sent.
|
|
144
|
+
*/
|
|
145
|
+
export declare function closeAfterPayment(input: CloseAfterPaymentInput): Promise<CloseAfterOutcome>;
|
|
146
|
+
/**
|
|
147
|
+
* The relay's view of a stream AFTER this run's actions. Reads until it
|
|
148
|
+
* reflects them (closed after a close, reclaimed after a reclaim), bounded;
|
|
149
|
+
* if the relay still lags, the state those verified transactions imply is
|
|
150
|
+
* reported instead, marked as derived. With no action, one plain read.
|
|
151
|
+
*/
|
|
152
|
+
export declare function statusAfterActions(refunds: RefundClient, done: {
|
|
153
|
+
readonly closed: boolean;
|
|
154
|
+
readonly reclaim: RefundRelayResult | null;
|
|
155
|
+
readonly payer: `0x${string}` | null;
|
|
156
|
+
readonly opener: `0x${string}`;
|
|
157
|
+
readonly streamId: `0x${string}`;
|
|
158
|
+
readonly sleep: (ms: number) => Promise<void>;
|
|
159
|
+
}): Promise<RefundStatus>;
|
|
160
|
+
/**
|
|
161
|
+
* Whether the relay's status says nothing is left to recover. `reclaimed` is
|
|
162
|
+
* the chain's one-reclaim-per-stream flag; `next: none` with `reclaimable: 0`
|
|
163
|
+
* is the relay's "the verified delivery covers the whole deposit".
|
|
164
|
+
*/
|
|
165
|
+
export declare function finishedReason(status: RefundStatus): FinishedReason | null;
|
|
166
|
+
/** The relay's refusal code, looked up through a few `cause` links. */
|
|
167
|
+
export declare function relayCode(error: unknown): string | null;
|
|
168
|
+
//# sourceMappingURL=refund-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refund-actions.d.ts","sourceRoot":"","sources":["../../src/x402-buyer/refund-actions.ts"],"names":[],"mappings":"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"}
|