@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.
- package/README.md +1 -1
- package/dist/cli/commands/claim.d.ts +32 -0
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +115 -27
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/pay.d.ts +15 -0
- package/dist/cli/commands/pay.d.ts.map +1 -1
- package/dist/cli/commands/pay.js +131 -7
- package/dist/cli/commands/pay.js.map +1 -1
- package/dist/cli/commands/reclaim.d.ts.map +1 -1
- package/dist/cli/commands/reclaim.js +20 -4
- package/dist/cli/commands/reclaim.js.map +1 -1
- package/dist/cli/commands/refund.d.ts +19 -1
- package/dist/cli/commands/refund.d.ts.map +1 -1
- package/dist/cli/commands/refund.js +200 -27
- package/dist/cli/commands/refund.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +11 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js +2 -0
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/context.d.ts +19 -0
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/deps.d.ts +20 -0
- package/dist/cli/deps.d.ts.map +1 -1
- package/dist/cli/deps.js +14 -0
- package/dist/cli/deps.js.map +1 -1
- package/dist/cli/progress.d.ts +13 -1
- package/dist/cli/progress.d.ts.map +1 -1
- package/dist/cli/progress.js +7 -1
- package/dist/cli/progress.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +26 -14
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/status.d.ts +103 -0
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +310 -41
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/wallet.d.ts +1 -1
- package/dist/cli/wallet.d.ts.map +1 -1
- package/dist/cli/wallet.js +28 -4
- package/dist/cli/wallet.js.map +1 -1
- package/dist/gateway/http-server.d.ts +17 -0
- package/dist/gateway/http-server.d.ts.map +1 -1
- package/dist/gateway/http-server.js +76 -9
- package/dist/gateway/http-server.js.map +1 -1
- package/dist/gateway/x402-opener-mode.d.ts +39 -2
- package/dist/gateway/x402-opener-mode.d.ts.map +1 -1
- package/dist/gateway/x402-opener-mode.js +169 -36
- package/dist/gateway/x402-opener-mode.js.map +1 -1
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +28 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/x402-tools.d.ts +8 -3
- package/dist/mcp/x402-tools.d.ts.map +1 -1
- package/dist/mcp/x402-tools.js +126 -6
- package/dist/mcp/x402-tools.js.map +1 -1
- package/dist/sdk/client.d.ts +13 -0
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +15 -0
- package/dist/sdk/client.js.map +1 -1
- package/dist/x402-buyer/pay.d.ts +22 -0
- package/dist/x402-buyer/pay.d.ts.map +1 -1
- package/dist/x402-buyer/pay.js +33 -3
- package/dist/x402-buyer/pay.js.map +1 -1
- package/dist/x402-opener/facilitator-entry.js +4 -1
- package/dist/x402-opener/facilitator-entry.js.map +1 -1
- package/dist/x402-opener/facilitator-server.d.ts +29 -0
- package/dist/x402-opener/facilitator-server.d.ts.map +1 -1
- package/dist/x402-opener/facilitator-server.js +67 -1
- package/dist/x402-opener/facilitator-server.js.map +1 -1
- package/dist/x402-opener/refund-relay.d.ts +30 -4
- package/dist/x402-opener/refund-relay.d.ts.map +1 -1
- package/dist/x402-opener/refund-relay.js +123 -22
- package/dist/x402-opener/refund-relay.js.map +1 -1
- package/dist/x402-opener/scheme.d.ts +79 -0
- package/dist/x402-opener/scheme.d.ts.map +1 -1
- package/dist/x402-opener/scheme.js +326 -40
- package/dist/x402-opener/scheme.js.map +1 -1
- package/dist/x402-opener/terms.d.ts +61 -1
- package/dist/x402-opener/terms.d.ts.map +1 -1
- package/dist/x402-opener/terms.js +94 -2
- package/dist/x402-opener/terms.js.map +1 -1
- package/docs/cli.md +87 -9
- package/docs/mcp-reference.md +18 -2
- package/docs/quickstart.md +3 -3
- package/docs/x402.md +150 -10
- package/package.json +3 -3
- package/src/cli/commands/claim.ts +167 -32
- package/src/cli/commands/pay.ts +150 -8
- package/src/cli/commands/reclaim.ts +25 -5
- package/src/cli/commands/refund.ts +231 -33
- package/src/cli/commands/status.ts +11 -1
- package/src/cli/commands/watch.ts +4 -0
- package/src/cli/context.ts +16 -0
- package/src/cli/deps.ts +37 -0
- package/src/cli/progress.ts +21 -2
- package/src/cli/run.ts +26 -13
- package/src/cli/status.ts +440 -43
- package/src/cli/wallet.ts +44 -7
- package/src/gateway/http-server.ts +96 -8
- package/src/gateway/x402-opener-mode.ts +234 -37
- package/src/mcp/server.ts +43 -11
- package/src/mcp/x402-tools.ts +171 -7
- package/src/sdk/client.ts +25 -0
- package/src/x402-buyer/pay.ts +41 -3
- package/src/x402-opener/facilitator-entry.ts +4 -1
- package/src/x402-opener/facilitator-server.ts +101 -1
- package/src/x402-opener/refund-relay.ts +150 -20
- package/src/x402-opener/scheme.ts +459 -41
- package/src/x402-opener/terms.ts +155 -2
package/dist/sdk/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/client.js
CHANGED
|
@@ -59,6 +59,21 @@ export class VerifiedStreamAgentClient {
|
|
|
59
59
|
await this.authorizeExistingStreamAction(input);
|
|
60
60
|
return await this.sdkClient.claim(input.streamId);
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Operator-only, StreamEscrowV3 only: redeem the stream's on-chain proven
|
|
64
|
+
* high-water (`claimProven`) without a fresh proof. Authorized exactly like
|
|
65
|
+
* {@link claimStream} — it pays the same party from the same escrow, only an
|
|
66
|
+
* amount already proven against a signed checkpoint root and recorded
|
|
67
|
+
* on-chain, so it can never pay more than a proof claim could have.
|
|
68
|
+
*/
|
|
69
|
+
async claimProvenStream(input) {
|
|
70
|
+
const claimProven = this.sdkClient.claimProven?.bind(this.sdkClient);
|
|
71
|
+
if (claimProven === undefined) {
|
|
72
|
+
throw new Error("this SDK client cannot send claimProven (StreamEscrowV3 only)");
|
|
73
|
+
}
|
|
74
|
+
await this.authorizeExistingStreamAction(input);
|
|
75
|
+
return await claimProven(input.streamId);
|
|
76
|
+
}
|
|
62
77
|
async closeStream(input) {
|
|
63
78
|
await this.authorizeBuyerRecovery(input);
|
|
64
79
|
return await this.sdkClient.close(input.streamId);
|
package/dist/sdk/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAKlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,2BAA2B,GAI5B,MAAM,wBAAwB,CAAC;AAsBhC,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAChC,MAA0B;IAE1B,OAAO,mBAAmB,IAAI,MAAM,CAAC;AACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
|
package/dist/x402-buyer/pay.d.ts
CHANGED
|
@@ -21,6 +21,15 @@ import { type HireRequest, type MandateDecision, type SignedSpendMandate } from
|
|
|
21
21
|
* | `maxDurationSeconds` | `maxDuration` (the stream's window) |
|
|
22
22
|
* | `allowedOperators` | `operator` (who the stream pays) |
|
|
23
23
|
*
|
|
24
|
+
* An UPFRONT ("minimum charge") opener quote is mapped the same way, with
|
|
25
|
+
* `budgetUsdc = price` — the WHOLE payment, of which `upfrontAmount` is
|
|
26
|
+
* non-refundable (paid to the seller at settlement) and only the rest is
|
|
27
|
+
* escrowed. So the per-stream and total caps always count the upfront part as
|
|
28
|
+
* spent, and nothing a refund returns is ever credited back. Its size is also
|
|
29
|
+
* capped separately, before signing, by the SDK's `maxUpfrontAmount` (default
|
|
30
|
+
* 0.10 USDC; pass {@link PayX402WithMandateInput.maxUpfrontAmount} to tighten
|
|
31
|
+
* it, `0n` to refuse every upfront charge).
|
|
32
|
+
*
|
|
24
33
|
* The check runs inside the SDK's `onQuote` hook — after every SDK protection
|
|
25
34
|
* (scheme, network, USDC domain, EIP-3009 only, registered factory, on-chain
|
|
26
35
|
* `predict`, authorization lifetime) and BEFORE anything is signed — so a
|
|
@@ -62,6 +71,12 @@ export interface PayX402WithMandateInput {
|
|
|
62
71
|
readonly maxRatePerSecond?: bigint;
|
|
63
72
|
/** Refuse a quote the seller can fully earn in fewer verified seconds. */
|
|
64
73
|
readonly minDurationSeconds?: number;
|
|
74
|
+
/**
|
|
75
|
+
* Ceiling on the NON-REFUNDABLE upfront part of an upfront-opener quote, base
|
|
76
|
+
* units (the SDK's `maxUpfrontAmount`). Default the SDK's 0.10 USDC; `0n`
|
|
77
|
+
* refuses any upfront charge. Never above the price ceiling in effect.
|
|
78
|
+
*/
|
|
79
|
+
readonly maxUpfrontAmount?: bigint;
|
|
65
80
|
/** Passed through to the SDK (transport, fetch, publicClient, ...). */
|
|
66
81
|
readonly sdkOptions?: Pick<PayWithX402Options, "publicClient" | "transport" | "fetch" | "allowInsecureHttp" | "maxAuthorizationSeconds" | "allowLegacyFactory">;
|
|
67
82
|
/** Test seam: the SDK payer. Default `payWithX402`. */
|
|
@@ -111,12 +126,19 @@ export declare class X402PostSignatureError extends Error {
|
|
|
111
126
|
/** The stream the payment opened, when it could be identified. */
|
|
112
127
|
readonly streamId: `0x${string}` | null;
|
|
113
128
|
readonly opener: `0x${string}`;
|
|
129
|
+
/**
|
|
130
|
+
* `true` when the chain shows (or the signed quote implies) an UPFRONT-ONLY
|
|
131
|
+
* payment: no stream, the whole price was a non-refundable charge, nothing
|
|
132
|
+
* to recover.
|
|
133
|
+
*/
|
|
134
|
+
readonly upfrontOnly: boolean;
|
|
114
135
|
constructor(context: {
|
|
115
136
|
readonly state: X402PostSignatureState;
|
|
116
137
|
readonly approved: HireRequest;
|
|
117
138
|
readonly quote: X402QuoteSummary;
|
|
118
139
|
readonly authorization: SignedTransferAuthorization | null;
|
|
119
140
|
readonly streamId: `0x${string}` | null;
|
|
141
|
+
readonly upfrontOnly?: boolean;
|
|
120
142
|
readonly cause: unknown;
|
|
121
143
|
});
|
|
122
144
|
/** Only an authorization that provably can never move funds frees its reservation. */
|
|
@@ -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;AACrD,OAAO,EAEL,WAAW,EAEX,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAE/E,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC
|
|
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
|
@@ -21,6 +21,15 @@ import { checkMandate, verifySignedMandate, } from "../mandates/mandate.js";
|
|
|
21
21
|
* | `maxDurationSeconds` | `maxDuration` (the stream's window) |
|
|
22
22
|
* | `allowedOperators` | `operator` (who the stream pays) |
|
|
23
23
|
*
|
|
24
|
+
* An UPFRONT ("minimum charge") opener quote is mapped the same way, with
|
|
25
|
+
* `budgetUsdc = price` — the WHOLE payment, of which `upfrontAmount` is
|
|
26
|
+
* non-refundable (paid to the seller at settlement) and only the rest is
|
|
27
|
+
* escrowed. So the per-stream and total caps always count the upfront part as
|
|
28
|
+
* spent, and nothing a refund returns is ever credited back. Its size is also
|
|
29
|
+
* capped separately, before signing, by the SDK's `maxUpfrontAmount` (default
|
|
30
|
+
* 0.10 USDC; pass {@link PayX402WithMandateInput.maxUpfrontAmount} to tighten
|
|
31
|
+
* it, `0n` to refuse every upfront charge).
|
|
32
|
+
*
|
|
24
33
|
* The check runs inside the SDK's `onQuote` hook — after every SDK protection
|
|
25
34
|
* (scheme, network, USDC domain, EIP-3009 only, registered factory, on-chain
|
|
26
35
|
* `predict`, authorization lifetime) and BEFORE anything is signed — so a
|
|
@@ -82,9 +91,18 @@ export class X402PostSignatureError extends Error {
|
|
|
82
91
|
/** The stream the payment opened, when it could be identified. */
|
|
83
92
|
streamId;
|
|
84
93
|
opener;
|
|
94
|
+
/**
|
|
95
|
+
* `true` when the chain shows (or the signed quote implies) an UPFRONT-ONLY
|
|
96
|
+
* payment: no stream, the whole price was a non-refundable charge, nothing
|
|
97
|
+
* to recover.
|
|
98
|
+
*/
|
|
99
|
+
upfrontOnly;
|
|
85
100
|
constructor(context) {
|
|
101
|
+
const upfrontOnly = context.upfrontOnly === true || context.quote.upfrontOnly === true;
|
|
86
102
|
const what = context.state === "used"
|
|
87
|
-
?
|
|
103
|
+
? upfrontOnly
|
|
104
|
+
? "the payment SETTLED (the authorization was used) as an UPFRONT-ONLY charge: the whole price went to the seller, no stream was opened and there is nothing to refund"
|
|
105
|
+
: `the payment SETTLED (the authorization was used)${context.streamId === null ? ", but its stream could not be identified" : ` into stream ${context.streamId}`}`
|
|
88
106
|
: context.state === "possibly-used"
|
|
89
107
|
? "the payment MAY HAVE SETTLED: whether the authorization was used could not be established, so treat it as spent"
|
|
90
108
|
: context.state === "unused-but-valid"
|
|
@@ -98,6 +116,7 @@ export class X402PostSignatureError extends Error {
|
|
|
98
116
|
this.authorization = context.authorization;
|
|
99
117
|
this.streamId = context.streamId;
|
|
100
118
|
this.opener = getAddress(context.quote.payTo);
|
|
119
|
+
this.upfrontOnly = upfrontOnly;
|
|
101
120
|
}
|
|
102
121
|
/** Only an authorization that provably can never move funds frees its reservation. */
|
|
103
122
|
get releasable() {
|
|
@@ -174,6 +193,8 @@ export async function payX402WithMandate(input) {
|
|
|
174
193
|
}
|
|
175
194
|
const maxAmount = smaller(smaller(mandate.maxPerStreamUsdc, remaining), input.maxAmount);
|
|
176
195
|
const maxRatePerSecond = smaller(mandate.maxRatePerSecondUsdc, input.maxRatePerSecond);
|
|
196
|
+
// A negative maxUpfrontAmount is refused by the SDK (InvalidInputError)
|
|
197
|
+
// before the seller is contacted.
|
|
177
198
|
// 3. The per-quote mandate check, before signing.
|
|
178
199
|
let denial = null;
|
|
179
200
|
let approved = null;
|
|
@@ -203,6 +224,9 @@ export async function payX402WithMandate(input) {
|
|
|
203
224
|
network: input.network,
|
|
204
225
|
maxAmount,
|
|
205
226
|
maxRatePerSecond,
|
|
227
|
+
...(input.maxUpfrontAmount === undefined
|
|
228
|
+
? {}
|
|
229
|
+
: { maxUpfrontAmount: smaller(input.maxUpfrontAmount, maxAmount) }),
|
|
206
230
|
...(input.minDurationSeconds === undefined
|
|
207
231
|
? {}
|
|
208
232
|
: { minDurationSeconds: input.minDurationSeconds }),
|
|
@@ -262,6 +286,7 @@ async function classifyPostSignatureFailure(input, context) {
|
|
|
262
286
|
let used = typeof sdkError.authorizationUsed === "boolean"
|
|
263
287
|
? sdkError.authorizationUsed
|
|
264
288
|
: null;
|
|
289
|
+
let upfrontOnly = sdkError.upfrontOnly === true;
|
|
265
290
|
let streamId = typeof sdkError.streamId === "string" &&
|
|
266
291
|
/^0x[0-9a-fA-F]{64}$/.test(sdkError.streamId)
|
|
267
292
|
? sdkError.streamId
|
|
@@ -296,16 +321,20 @@ async function classifyPostSignatureFailure(input, context) {
|
|
|
296
321
|
publicClient: reader,
|
|
297
322
|
});
|
|
298
323
|
streamId = recovery.streamId;
|
|
324
|
+
// An upfront-only payment opens no stream: the opener's
|
|
325
|
+
// UpfrontCharged (streamId 0), read on-chain, proves it was used.
|
|
326
|
+
if (recovery.upfrontOnly)
|
|
327
|
+
upfrontOnly = true;
|
|
299
328
|
}
|
|
300
329
|
catch {
|
|
301
330
|
streamId = null;
|
|
302
331
|
}
|
|
303
|
-
if (streamId !== null)
|
|
332
|
+
if (streamId !== null || upfrontOnly)
|
|
304
333
|
used = true;
|
|
305
334
|
}
|
|
306
335
|
}
|
|
307
336
|
const nowSeconds = BigInt(Math.floor(Date.now() / 1000));
|
|
308
|
-
const state = streamId !== null || used === true
|
|
337
|
+
const state = streamId !== null || upfrontOnly || used === true
|
|
309
338
|
? "used"
|
|
310
339
|
: used === false && authorization !== null
|
|
311
340
|
? authorization.validBefore <= nowSeconds
|
|
@@ -318,6 +347,7 @@ async function classifyPostSignatureFailure(input, context) {
|
|
|
318
347
|
quote: context.quote,
|
|
319
348
|
authorization,
|
|
320
349
|
streamId,
|
|
350
|
+
upfrontOnly,
|
|
321
351
|
cause: context.error,
|
|
322
352
|
});
|
|
323
353
|
}
|
|
@@ -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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"}
|
|
@@ -13,7 +13,10 @@ async function main() {
|
|
|
13
13
|
const { binding } = server;
|
|
14
14
|
console.error(`[metrik-opener-facilitator] listening on port ${server.boundPort} — chain ${binding.chainId}, ` +
|
|
15
15
|
`factory ${binding.factory}, escrow ${binding.escrow}, token ${binding.usdc}, relayer ${binding.relayer}. ` +
|
|
16
|
-
|
|
16
|
+
(binding.upfront === undefined
|
|
17
|
+
? "Upfront (minimum-charge) opener: OFF. "
|
|
18
|
+
: `Upfront (minimum-charge) opener factory ${binding.upfront.factory} (implementation ${binding.upfront.implementation}): ON — its non-refundable upfrontAmount is paid to the seller at settlement, only price - upfrontAmount is escrowed and refundable. `) +
|
|
19
|
+
"Every payment settles through the opener factory's deployAndSettle (an escrow stream for the metered part); nothing is ever transferred to payTo directly. " +
|
|
17
20
|
(server.refundRelayEnabled
|
|
18
21
|
? "Gasless refund relay ON at /streams/:streamId (close needs the payer's signature; reclaim is permissionless and pays only payerOf). There is no automatic refund: nothing is sent unless an endpoint is called."
|
|
19
22
|
: "Gasless refund relay OFF (METRIK_OPENER_FACILITATOR_REFUND_RELAY=0): a gateway will refuse to quote through this facilitator."));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facilitator-entry.js","sourceRoot":"","sources":["../../src/x402-opener/facilitator-entry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;;;;;;GAOG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,mCAAmC,EAAE,CAAC;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,KAAK,CACX,iDAAiD,MAAM,CAAC,SAAS,YAAY,OAAO,CAAC,OAAO,IAAI;QAC9F,WAAW,OAAO,CAAC,OAAO,YAAY,OAAO,CAAC,MAAM,WAAW,OAAO,CAAC,IAAI,aAAa,OAAO,CAAC,OAAO,IAAI;QAC3G,
|
|
1
|
+
{"version":3,"file":"facilitator-entry.js","sourceRoot":"","sources":["../../src/x402-opener/facilitator-entry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;;;;;;GAOG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,mCAAmC,EAAE,CAAC;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,KAAK,CACX,iDAAiD,MAAM,CAAC,SAAS,YAAY,OAAO,CAAC,OAAO,IAAI;QAC9F,WAAW,OAAO,CAAC,OAAO,YAAY,OAAO,CAAC,MAAM,WAAW,OAAO,CAAC,IAAI,aAAa,OAAO,CAAC,OAAO,IAAI;QAC3G,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;YAC5B,CAAC,CAAC,wCAAwC;YAC1C,CAAC,CAAC,2CAA2C,OAAO,CAAC,OAAO,CAAC,OAAO,oBAAoB,OAAO,CAAC,OAAO,CAAC,cAAc,uIAAuI,CAAC;QAChQ,6JAA6J;QAC7J,CAAC,MAAM,CAAC,kBAAkB;YACxB,CAAC,CAAC,iNAAiN;YACnN,CAAC,CAAC,+HAA+H,CAAC,CACvI,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;QAClC,OAAO,CAAC,KAAK,CACX,+BAA+B,MAAM,2BAA2B,CACjE,CAAC;QACF,MAAM;aACH,KAAK,EAAE;aACP,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,6EAA6E;IAC7E,OAAO,CAAC,KAAK,CACX,KAAK,YAAY,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,oDAAoD,CACzD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -59,6 +59,13 @@ export interface OpenerFacilitatorOptions {
|
|
|
59
59
|
readonly rpcUrl: string;
|
|
60
60
|
readonly relayerPrivateKey: Hex;
|
|
61
61
|
readonly factoryAddress: Address;
|
|
62
|
+
/**
|
|
63
|
+
* The `X402UpfrontStreamOpenerFactory` to settle ALSO (same escrow), or
|
|
64
|
+
* undefined for stream openers only. See {@link resolveUpfrontFactory}.
|
|
65
|
+
*/
|
|
66
|
+
readonly upfrontFactoryAddress?: Address;
|
|
67
|
+
/** The implementation the upfront factory must report (the registry's). */
|
|
68
|
+
readonly upfrontImplementation?: Address;
|
|
62
69
|
readonly escrowAddress: Address;
|
|
63
70
|
readonly assetAllowlist: readonly Address[];
|
|
64
71
|
/** Default: a {@link RegistryListingResolver} on the public registry. */
|
|
@@ -107,6 +114,10 @@ export interface OpenerFacilitatorEnvConfig {
|
|
|
107
114
|
readonly authToken: string;
|
|
108
115
|
readonly requireAuthOnVerify: boolean;
|
|
109
116
|
readonly factoryAddress: Address;
|
|
117
|
+
/** The upfront opener factory also settled, when enabled. */
|
|
118
|
+
readonly upfrontFactoryAddress?: Address;
|
|
119
|
+
/** Its expected implementation, when the registry records it. */
|
|
120
|
+
readonly upfrontImplementation?: Address;
|
|
110
121
|
readonly escrowAddress: Address;
|
|
111
122
|
readonly assetAllowlist: readonly Address[];
|
|
112
123
|
readonly registryUrl: string;
|
|
@@ -141,6 +152,12 @@ export interface OpenerRefundRelayEnvConfig {
|
|
|
141
152
|
* registry entry; on a network the registry does not know (or one with no
|
|
142
153
|
* opener factory) each must be given explicitly.
|
|
143
154
|
* - `METRIK_OPENER_FACILITATOR_FACTORY_ADDRESS` — default the network's registered factory.
|
|
155
|
+
* - `METRIK_OPENER_FACILITATOR_UPFRONT_FACTORY_ADDRESS` — the
|
|
156
|
+
* `X402UpfrontStreamOpenerFactory` (upfront "minimum charge" listings) settled
|
|
157
|
+
* ALONGSIDE the stream factory. Default: the registry's upfront factory for
|
|
158
|
+
* the configured escrow, when it records one (Base Sepolia: bound to
|
|
159
|
+
* StreamEscrowV3); none otherwise. `off` disables it. It must be bound to the
|
|
160
|
+
* same escrow and token, or the facilitator refuses to start.
|
|
144
161
|
* - `METRIK_OPENER_FACILITATOR_ESCROW_ADDRESS` — default the network's registered `StreamEscrowV2`.
|
|
145
162
|
* - `METRIK_OPENER_FACILITATOR_ASSETS` — comma-separated allowlist; default the network's USDC.
|
|
146
163
|
* - `METRIK_OPENER_FACILITATOR_REGISTRY_URL` — default the public listings registry.
|
|
@@ -171,6 +188,18 @@ export interface OpenerRefundRelayEnvConfig {
|
|
|
171
188
|
* right-most `X-Forwarded-For` hop; default off. Enable only behind a proxy.
|
|
172
189
|
*/
|
|
173
190
|
export declare function parseOpenerFacilitatorEnvConfig(env?: NodeJS.ProcessEnv): OpenerFacilitatorEnvConfig | undefined;
|
|
191
|
+
/**
|
|
192
|
+
* The upfront opener factory the facilitator also settles, from
|
|
193
|
+
* `METRIK_OPENER_FACILITATOR_UPFRONT_FACTORY_ADDRESS`: unset = the network
|
|
194
|
+
* registry's upfront factory OF THE CONFIGURED ESCROW'S deployment (so a
|
|
195
|
+
* facilitator pinned to a legacy escrow never picks up a factory bound to
|
|
196
|
+
* another one); `off`/`none`/`0`/`false` = disabled; an address = that factory
|
|
197
|
+
* (its implementation is pinned only when the registry records it).
|
|
198
|
+
*/
|
|
199
|
+
export declare function resolveUpfrontFactory(raw: string | undefined, network: Network, escrowAddress: Address): {
|
|
200
|
+
readonly upfrontFactoryAddress: Address;
|
|
201
|
+
readonly upfrontImplementation?: Address;
|
|
202
|
+
} | undefined;
|
|
174
203
|
/** Builds and starts the facilitator service entirely from the environment. */
|
|
175
204
|
export declare function startOpenerFacilitatorServerFromEnv(env?: NodeJS.ProcessEnv): Promise<OpenerFacilitatorServer & {
|
|
176
205
|
readonly boundPort: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facilitator-server.d.ts","sourceRoot":"","sources":["../../src/x402-opener/facilitator-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"facilitator-server.d.ts","sourceRoot":"","sources":["../../src/x402-opener/facilitator-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { timingSafeEqual, createHash } from "node:crypto";
|
|
2
2
|
import { createServer, } from "node:http";
|
|
3
|
-
import { networkForCaip2 } from "@absol-labs/sdk";
|
|
3
|
+
import { networkForCaip2, networkOpenerFactories } from "@absol-labs/sdk";
|
|
4
4
|
import { x402Facilitator } from "@x402/core/facilitator";
|
|
5
5
|
import { createPublicClient, createWalletClient, getAddress, http, isAddress, isHex, } from "viem";
|
|
6
6
|
import { privateKeyToAccount } from "viem/accounts";
|
|
@@ -348,6 +348,12 @@ export async function buildOpenerFacilitator(options) {
|
|
|
348
348
|
advertiseRefundRelay: options.refundRelay !== undefined,
|
|
349
349
|
network: options.network,
|
|
350
350
|
factoryAddress: options.factoryAddress,
|
|
351
|
+
...(options.upfrontFactoryAddress === undefined
|
|
352
|
+
? {}
|
|
353
|
+
: { upfrontFactoryAddress: options.upfrontFactoryAddress }),
|
|
354
|
+
...(options.upfrontImplementation === undefined
|
|
355
|
+
? {}
|
|
356
|
+
: { upfrontImplementation: options.upfrontImplementation }),
|
|
351
357
|
escrowAddress: options.escrowAddress,
|
|
352
358
|
assetAllowlist: options.assetAllowlist,
|
|
353
359
|
publicClient,
|
|
@@ -371,6 +377,9 @@ export async function buildOpenerFacilitator(options) {
|
|
|
371
377
|
refundRelay = new OpenerRefundRelay({
|
|
372
378
|
network: options.network,
|
|
373
379
|
factoryAddress: options.factoryAddress,
|
|
380
|
+
...(options.upfrontFactoryAddress === undefined
|
|
381
|
+
? {}
|
|
382
|
+
: { upfrontFactoryAddress: options.upfrontFactoryAddress }),
|
|
374
383
|
escrowAddress: options.escrowAddress,
|
|
375
384
|
oracleUrl: relay.oracleUrl,
|
|
376
385
|
publicClient,
|
|
@@ -420,6 +429,12 @@ export async function buildOpenerFacilitator(options) {
|
|
|
420
429
|
* registry entry; on a network the registry does not know (or one with no
|
|
421
430
|
* opener factory) each must be given explicitly.
|
|
422
431
|
* - `METRIK_OPENER_FACILITATOR_FACTORY_ADDRESS` — default the network's registered factory.
|
|
432
|
+
* - `METRIK_OPENER_FACILITATOR_UPFRONT_FACTORY_ADDRESS` — the
|
|
433
|
+
* `X402UpfrontStreamOpenerFactory` (upfront "minimum charge" listings) settled
|
|
434
|
+
* ALONGSIDE the stream factory. Default: the registry's upfront factory for
|
|
435
|
+
* the configured escrow, when it records one (Base Sepolia: bound to
|
|
436
|
+
* StreamEscrowV3); none otherwise. `off` disables it. It must be bound to the
|
|
437
|
+
* same escrow and token, or the facilitator refuses to start.
|
|
423
438
|
* - `METRIK_OPENER_FACILITATOR_ESCROW_ADDRESS` — default the network's registered `StreamEscrowV2`.
|
|
424
439
|
* - `METRIK_OPENER_FACILITATOR_ASSETS` — comma-separated allowlist; default the network's USDC.
|
|
425
440
|
* - `METRIK_OPENER_FACILITATOR_REGISTRY_URL` — default the public listings registry.
|
|
@@ -495,6 +510,7 @@ export function parseOpenerFacilitatorEnvConfig(env = process.env) {
|
|
|
495
510
|
else {
|
|
496
511
|
escrowAddress = requireAddress(env, "METRIK_OPENER_FACILITATOR_ESCROW_ADDRESS");
|
|
497
512
|
}
|
|
513
|
+
const upfront = resolveUpfrontFactory(env.METRIK_OPENER_FACILITATOR_UPFRONT_FACTORY_ADDRESS, network, escrowAddress);
|
|
498
514
|
const assetsRaw = env.METRIK_OPENER_FACILITATOR_ASSETS?.trim();
|
|
499
515
|
let assetAllowlist;
|
|
500
516
|
if (assetsRaw === undefined || assetsRaw.length === 0) {
|
|
@@ -542,6 +558,7 @@ export function parseOpenerFacilitatorEnvConfig(env = process.env) {
|
|
|
542
558
|
minAmount: BigInt(positiveInt(env, "METRIK_OPENER_FACILITATOR_MIN_AMOUNT", 10_000)),
|
|
543
559
|
settleRateLimitPerMinute: positiveInt(env, "METRIK_OPENER_FACILITATOR_SETTLE_RATE_LIMIT_PER_MINUTE", DEFAULT_SETTLE_RATE_LIMIT_PER_MINUTE),
|
|
544
560
|
factoryAddress,
|
|
561
|
+
...(upfront === undefined ? {} : upfront),
|
|
545
562
|
escrowAddress,
|
|
546
563
|
assetAllowlist,
|
|
547
564
|
registryUrl,
|
|
@@ -549,6 +566,49 @@ export function parseOpenerFacilitatorEnvConfig(env = process.env) {
|
|
|
549
566
|
receiptTimeoutMs: receiptTimeoutSeconds * 1000,
|
|
550
567
|
};
|
|
551
568
|
}
|
|
569
|
+
/**
|
|
570
|
+
* The upfront opener factory the facilitator also settles, from
|
|
571
|
+
* `METRIK_OPENER_FACILITATOR_UPFRONT_FACTORY_ADDRESS`: unset = the network
|
|
572
|
+
* registry's upfront factory OF THE CONFIGURED ESCROW'S deployment (so a
|
|
573
|
+
* facilitator pinned to a legacy escrow never picks up a factory bound to
|
|
574
|
+
* another one); `off`/`none`/`0`/`false` = disabled; an address = that factory
|
|
575
|
+
* (its implementation is pinned only when the registry records it).
|
|
576
|
+
*/
|
|
577
|
+
export function resolveUpfrontFactory(raw, network, escrowAddress) {
|
|
578
|
+
const value = raw?.trim() ?? "";
|
|
579
|
+
const registered = networkForCaip2(network);
|
|
580
|
+
const forEscrow = registered === undefined
|
|
581
|
+
? undefined
|
|
582
|
+
: networkOpenerFactories(registered).find((entry) => entry.kind === "upfront" &&
|
|
583
|
+
getAddress(entry.deployment.escrow.address) ===
|
|
584
|
+
getAddress(escrowAddress));
|
|
585
|
+
if (value.length === 0) {
|
|
586
|
+
if (forEscrow === undefined)
|
|
587
|
+
return undefined;
|
|
588
|
+
return {
|
|
589
|
+
upfrontFactoryAddress: getAddress(forEscrow.address),
|
|
590
|
+
...(forEscrow.implementation === null
|
|
591
|
+
? {}
|
|
592
|
+
: { upfrontImplementation: getAddress(forEscrow.implementation) }),
|
|
593
|
+
};
|
|
594
|
+
}
|
|
595
|
+
if (["off", "none", "0", "false", "no"].includes(value.toLowerCase())) {
|
|
596
|
+
return undefined;
|
|
597
|
+
}
|
|
598
|
+
if (!isAddress(value)) {
|
|
599
|
+
throw new Error("METRIK_OPENER_FACILITATOR_UPFRONT_FACTORY_ADDRESS must be an EVM address (or off)");
|
|
600
|
+
}
|
|
601
|
+
const known = registered === undefined
|
|
602
|
+
? undefined
|
|
603
|
+
: networkOpenerFactories(registered).find((entry) => entry.kind === "upfront" &&
|
|
604
|
+
getAddress(entry.address) === getAddress(value));
|
|
605
|
+
return {
|
|
606
|
+
upfrontFactoryAddress: getAddress(value),
|
|
607
|
+
...(known?.implementation == null
|
|
608
|
+
? {}
|
|
609
|
+
: { upfrontImplementation: getAddress(known.implementation) }),
|
|
610
|
+
};
|
|
611
|
+
}
|
|
552
612
|
function parseRefundRelayEnv(env, network) {
|
|
553
613
|
const raw = env.METRIK_OPENER_FACILITATOR_REFUND_RELAY?.trim() ?? "";
|
|
554
614
|
if (raw.length > 0 &&
|
|
@@ -608,6 +668,12 @@ export async function startOpenerFacilitatorServerFromEnv(env = process.env) {
|
|
|
608
668
|
rpcUrl: config.rpcUrl,
|
|
609
669
|
relayerPrivateKey: config.relayerPrivateKey,
|
|
610
670
|
factoryAddress: config.factoryAddress,
|
|
671
|
+
...(config.upfrontFactoryAddress === undefined
|
|
672
|
+
? {}
|
|
673
|
+
: { upfrontFactoryAddress: config.upfrontFactoryAddress }),
|
|
674
|
+
...(config.upfrontImplementation === undefined
|
|
675
|
+
? {}
|
|
676
|
+
: { upfrontImplementation: config.upfrontImplementation }),
|
|
611
677
|
escrowAddress: config.escrowAddress,
|
|
612
678
|
assetAllowlist: config.assetAllowlist,
|
|
613
679
|
registryUrl: config.registryUrl,
|