@absol-labs/agent 0.10.0 → 0.12.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -30
- package/dist/capability/invocation-capability.d.ts +20 -8
- package/dist/capability/invocation-capability.d.ts.map +1 -1
- package/dist/capability/invocation-capability.js.map +1 -1
- package/dist/capability/probe-capability.d.ts +225 -0
- package/dist/capability/probe-capability.d.ts.map +1 -0
- package/dist/capability/probe-capability.js +248 -0
- package/dist/capability/probe-capability.js.map +1 -0
- package/dist/cli/args.d.ts +11 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +23 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +21 -5
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.d.ts.map +1 -1
- package/dist/cli/commands/close.js +51 -7
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/invoke.d.ts +2 -0
- package/dist/cli/commands/invoke.d.ts.map +1 -1
- package/dist/cli/commands/invoke.js +3 -2
- package/dist/cli/commands/invoke.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +15 -2
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/open.d.ts.map +1 -1
- package/dist/cli/commands/open.js +121 -15
- package/dist/cli/commands/open.js.map +1 -1
- package/dist/cli/commands/pay.d.ts +19 -0
- package/dist/cli/commands/pay.d.ts.map +1 -0
- package/dist/cli/commands/pay.js +355 -0
- package/dist/cli/commands/pay.js.map +1 -0
- package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -1
- package/dist/cli/commands/reclaim-unverified.js +15 -6
- package/dist/cli/commands/reclaim-unverified.js.map +1 -1
- package/dist/cli/commands/reclaim.d.ts +23 -2
- package/dist/cli/commands/reclaim.d.ts.map +1 -1
- package/dist/cli/commands/reclaim.js +200 -21
- package/dist/cli/commands/reclaim.js.map +1 -1
- package/dist/cli/commands/refund.d.ts +13 -0
- package/dist/cli/commands/refund.d.ts.map +1 -0
- package/dist/cli/commands/refund.js +224 -0
- package/dist/cli/commands/refund.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +10 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/streams.js +9 -13
- package/dist/cli/commands/streams.js.map +1 -1
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js +2 -1
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/config.d.ts +44 -26
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +88 -38
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/deps.d.ts +86 -7
- package/dist/cli/deps.d.ts.map +1 -1
- package/dist/cli/deps.js +102 -16
- package/dist/cli/deps.js.map +1 -1
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/errors.js +21 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/escape-hatch.d.ts +6 -4
- package/dist/cli/escape-hatch.d.ts.map +1 -1
- package/dist/cli/escape-hatch.js +6 -2
- package/dist/cli/escape-hatch.js.map +1 -1
- package/dist/cli/listings.d.ts +18 -0
- package/dist/cli/listings.d.ts.map +1 -1
- package/dist/cli/listings.js +22 -12
- package/dist/cli/listings.js.map +1 -1
- package/dist/cli/preflight.d.ts +20 -14
- package/dist/cli/preflight.d.ts.map +1 -1
- package/dist/cli/preflight.js +34 -20
- package/dist/cli/preflight.js.map +1 -1
- package/dist/cli/privy.d.ts +83 -0
- package/dist/cli/privy.d.ts.map +1 -0
- package/dist/cli/privy.js +232 -0
- package/dist/cli/privy.js.map +1 -0
- package/dist/cli/reclaimability.d.ts +82 -0
- package/dist/cli/reclaimability.d.ts.map +1 -0
- package/dist/cli/reclaimability.js +80 -0
- package/dist/cli/reclaimability.js.map +1 -0
- package/dist/cli/run.d.ts +2 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +40 -11
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/scan-range.d.ts +2 -2
- package/dist/cli/scan-range.js +2 -2
- package/dist/cli/spend-policy.d.ts +60 -0
- package/dist/cli/spend-policy.d.ts.map +1 -0
- package/dist/cli/spend-policy.js +65 -0
- package/dist/cli/spend-policy.js.map +1 -0
- package/dist/cli/status.d.ts +3 -1
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +15 -3
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/wallet.d.ts +109 -40
- package/dist/cli/wallet.d.ts.map +1 -1
- package/dist/cli/wallet.js +109 -44
- package/dist/cli/wallet.js.map +1 -1
- package/dist/discovery/rate-band.d.ts +74 -0
- package/dist/discovery/rate-band.d.ts.map +1 -0
- package/dist/discovery/rate-band.js +114 -0
- package/dist/discovery/rate-band.js.map +1 -0
- package/dist/escrow-generation.d.ts +81 -0
- package/dist/escrow-generation.d.ts.map +1 -0
- package/dist/escrow-generation.js +76 -0
- package/dist/escrow-generation.js.map +1 -0
- package/dist/frameworks/agentkit.d.ts +8 -4
- package/dist/frameworks/agentkit.d.ts.map +1 -1
- package/dist/frameworks/agentkit.js +27 -10
- package/dist/frameworks/agentkit.js.map +1 -1
- package/dist/frameworks/eliza.d.ts +3 -3
- package/dist/frameworks/eliza.d.ts.map +1 -1
- package/dist/frameworks/eliza.js +15 -6
- package/dist/frameworks/eliza.js.map +1 -1
- package/dist/frameworks/langchain.d.ts.map +1 -1
- package/dist/frameworks/langchain.js +8 -0
- package/dist/frameworks/langchain.js.map +1 -1
- package/dist/gateway/caller-auth-gateway.d.ts +91 -4
- package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
- package/dist/gateway/caller-auth-gateway.js +184 -7
- package/dist/gateway/caller-auth-gateway.js.map +1 -1
- package/dist/gateway/http-server.d.ts +121 -1
- package/dist/gateway/http-server.d.ts.map +1 -1
- package/dist/gateway/http-server.js +474 -5
- package/dist/gateway/http-server.js.map +1 -1
- package/dist/gateway/probe-auth.d.ts +112 -0
- package/dist/gateway/probe-auth.d.ts.map +1 -0
- package/dist/gateway/probe-auth.js +127 -0
- package/dist/gateway/probe-auth.js.map +1 -0
- package/dist/gateway/signed-rate-bounds.d.ts +51 -0
- package/dist/gateway/signed-rate-bounds.d.ts.map +1 -0
- package/dist/gateway/signed-rate-bounds.js +94 -0
- package/dist/gateway/signed-rate-bounds.js.map +1 -0
- package/dist/gateway/x402-opener-mode.d.ts +215 -0
- package/dist/gateway/x402-opener-mode.d.ts.map +1 -0
- package/dist/gateway/x402-opener-mode.js +639 -0
- package/dist/gateway/x402-opener-mode.js.map +1 -0
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/dist/mandates/env.d.ts +3 -2
- package/dist/mandates/env.d.ts.map +1 -1
- package/dist/mandates/env.js +3 -2
- package/dist/mandates/env.js.map +1 -1
- package/dist/mcp/server.d.ts +100 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +719 -39
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/service-invoker.d.ts +97 -0
- package/dist/mcp/service-invoker.d.ts.map +1 -0
- package/dist/mcp/service-invoker.js +167 -0
- package/dist/mcp/service-invoker.js.map +1 -0
- package/dist/mcp/x402-tools.d.ts +104 -0
- package/dist/mcp/x402-tools.d.ts.map +1 -0
- package/dist/mcp/x402-tools.js +434 -0
- package/dist/mcp/x402-tools.js.map +1 -0
- package/dist/network.d.ts +119 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +199 -0
- package/dist/network.js.map +1 -0
- package/dist/sdk/invoke.d.ts +23 -4
- package/dist/sdk/invoke.d.ts.map +1 -1
- package/dist/sdk/invoke.js +71 -10
- package/dist/sdk/invoke.js.map +1 -1
- package/dist/wallet/autonomous-wallet-broker.d.ts +3 -0
- package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -1
- package/dist/wallet/autonomous-wallet-broker.js +27 -23
- package/dist/wallet/autonomous-wallet-broker.js.map +1 -1
- package/dist/wallet/autonomous-wallet-protocol.d.ts +8 -2
- package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -1
- package/dist/wallet/autonomous-wallet-protocol.js +9 -2
- package/dist/wallet/autonomous-wallet-protocol.js.map +1 -1
- package/dist/wallet/autonomous-wallet.d.ts.map +1 -1
- package/dist/wallet/autonomous-wallet.js +3 -2
- package/dist/wallet/autonomous-wallet.js.map +1 -1
- package/dist/wallet/broker-escrows.d.ts +222 -0
- package/dist/wallet/broker-escrows.d.ts.map +1 -0
- package/dist/wallet/broker-escrows.js +36 -0
- package/dist/wallet/broker-escrows.js.map +1 -0
- package/dist/wallet/lifecycle.d.ts +21 -5
- package/dist/wallet/lifecycle.d.ts.map +1 -1
- package/dist/wallet/lifecycle.js +32 -12
- package/dist/wallet/lifecycle.js.map +1 -1
- package/dist/wallet/privy-broker-server.d.ts.map +1 -1
- package/dist/wallet/privy-broker-server.js +31 -26
- package/dist/wallet/privy-broker-server.js.map +1 -1
- package/dist/wallet/privy-session-broker.d.ts +14 -5
- package/dist/wallet/privy-session-broker.d.ts.map +1 -1
- package/dist/wallet/privy-session-broker.js +29 -17
- package/dist/wallet/privy-session-broker.js.map +1 -1
- package/dist/wallet/privy-session-provider.d.ts +3 -1
- package/dist/wallet/privy-session-provider.d.ts.map +1 -1
- package/dist/wallet/privy-session-provider.js +5 -3
- package/dist/wallet/privy-session-provider.js.map +1 -1
- package/dist/wallet/provider.d.ts.map +1 -1
- package/dist/wallet/provider.js +15 -8
- package/dist/wallet/provider.js.map +1 -1
- package/dist/x402/facilitator.d.ts +42 -17
- package/dist/x402/facilitator.d.ts.map +1 -1
- package/dist/x402/facilitator.js +49 -33
- package/dist/x402/facilitator.js.map +1 -1
- package/dist/x402-buyer/guarded-fetch.d.ts +51 -0
- package/dist/x402-buyer/guarded-fetch.d.ts.map +1 -0
- package/dist/x402-buyer/guarded-fetch.js +147 -0
- package/dist/x402-buyer/guarded-fetch.js.map +1 -0
- package/dist/x402-buyer/index.d.ts +10 -0
- package/dist/x402-buyer/index.d.ts.map +1 -0
- package/dist/x402-buyer/index.js +10 -0
- package/dist/x402-buyer/index.js.map +1 -0
- package/dist/x402-buyer/pay.d.ts +135 -0
- package/dist/x402-buyer/pay.d.ts.map +1 -0
- package/dist/x402-buyer/pay.js +336 -0
- package/dist/x402-buyer/pay.js.map +1 -0
- package/dist/x402-opener/abi.d.ts +684 -0
- package/dist/x402-opener/abi.d.ts.map +1 -0
- package/dist/x402-opener/abi.js +880 -0
- package/dist/x402-opener/abi.js.map +1 -0
- package/dist/x402-opener/facilitator-entry.d.ts +3 -0
- package/dist/x402-opener/facilitator-entry.d.ts.map +1 -0
- package/dist/x402-opener/facilitator-entry.js +37 -0
- package/dist/x402-opener/facilitator-entry.js.map +1 -0
- package/dist/x402-opener/facilitator-server.d.ts +180 -0
- package/dist/x402-opener/facilitator-server.d.ts.map +1 -0
- package/dist/x402-opener/facilitator-server.js +696 -0
- package/dist/x402-opener/facilitator-server.js.map +1 -0
- package/dist/x402-opener/index.d.ts +14 -0
- package/dist/x402-opener/index.d.ts.map +1 -0
- package/dist/x402-opener/index.js +14 -0
- package/dist/x402-opener/index.js.map +1 -0
- package/dist/x402-opener/listing-resolver.d.ts +55 -0
- package/dist/x402-opener/listing-resolver.d.ts.map +1 -0
- package/dist/x402-opener/listing-resolver.js +125 -0
- package/dist/x402-opener/listing-resolver.js.map +1 -0
- package/dist/x402-opener/refund-relay.d.ts +240 -0
- package/dist/x402-opener/refund-relay.d.ts.map +1 -0
- package/dist/x402-opener/refund-relay.js +1240 -0
- package/dist/x402-opener/refund-relay.js.map +1 -0
- package/dist/x402-opener/relayer-queue.d.ts +14 -0
- package/dist/x402-opener/relayer-queue.d.ts.map +1 -0
- package/dist/x402-opener/relayer-queue.js +18 -0
- package/dist/x402-opener/relayer-queue.js.map +1 -0
- package/dist/x402-opener/scheme.d.ts +217 -0
- package/dist/x402-opener/scheme.d.ts.map +1 -0
- package/dist/x402-opener/scheme.js +749 -0
- package/dist/x402-opener/scheme.js.map +1 -0
- package/dist/x402-opener/terms.d.ts +105 -0
- package/dist/x402-opener/terms.d.ts.map +1 -0
- package/dist/x402-opener/terms.js +212 -0
- package/dist/x402-opener/terms.js.map +1 -0
- package/dist/zktls/reclaim.d.ts +2 -2
- package/docs/agent-layer.md +13 -8
- package/docs/autonomous-privy-wallet.md +188 -0
- package/docs/cli.md +342 -53
- package/docs/langchain.md +5 -0
- package/docs/mcp-hosted.md +4 -3
- package/docs/mcp-reference.md +245 -0
- package/docs/probe-capability.md +191 -0
- package/docs/quickstart.md +54 -5
- package/docs/threat-model.md +24 -3
- package/docs/x402.md +681 -0
- package/package.json +19 -6
- package/src/capability/invocation-capability.ts +17 -1
- package/src/capability/probe-capability.ts +355 -0
- package/src/cli/args.ts +29 -0
- package/src/cli/commands/claim.ts +31 -5
- package/src/cli/commands/close.ts +56 -7
- package/src/cli/commands/invoke.ts +6 -2
- package/src/cli/commands/mcp.ts +18 -2
- package/src/cli/commands/open.ts +151 -14
- package/src/cli/commands/pay.ts +442 -0
- package/src/cli/commands/reclaim-unverified.ts +24 -6
- package/src/cli/commands/reclaim.ts +274 -19
- package/src/cli/commands/refund.ts +277 -0
- package/src/cli/commands/status.ts +17 -1
- package/src/cli/commands/streams.ts +11 -15
- package/src/cli/commands/watch.ts +7 -1
- package/src/cli/config.ts +139 -52
- package/src/cli/deps.ts +189 -25
- package/src/cli/errors.ts +24 -1
- package/src/cli/escape-hatch.ts +19 -5
- package/src/cli/listings.ts +43 -10
- package/src/cli/preflight.ts +36 -21
- package/src/cli/privy.ts +398 -0
- package/src/cli/reclaimability.ts +154 -0
- package/src/cli/run.ts +54 -11
- package/src/cli/scan-range.ts +2 -2
- package/src/cli/spend-policy.ts +139 -0
- package/src/cli/status.ts +14 -1
- package/src/cli/wallet.ts +189 -58
- package/src/discovery/rate-band.ts +172 -0
- package/src/escrow-generation.ts +135 -0
- package/src/frameworks/agentkit.ts +45 -11
- package/src/frameworks/eliza.ts +27 -5
- package/src/frameworks/langchain.ts +14 -0
- package/src/gateway/caller-auth-gateway.ts +336 -13
- package/src/gateway/http-server.ts +690 -7
- package/src/gateway/probe-auth.ts +191 -0
- package/src/gateway/signed-rate-bounds.ts +164 -0
- package/src/gateway/x402-opener-mode.ts +974 -0
- package/src/index.ts +112 -14
- package/src/mandates/env.ts +3 -2
- package/src/mcp/server.ts +973 -44
- package/src/mcp/service-invoker.ts +285 -0
- package/src/mcp/x402-tools.ts +621 -0
- package/src/network.ts +302 -0
- package/src/sdk/invoke.ts +96 -17
- package/src/wallet/autonomous-wallet-broker.ts +46 -20
- package/src/wallet/autonomous-wallet-protocol.ts +11 -2
- package/src/wallet/autonomous-wallet.ts +4 -2
- package/src/wallet/broker-escrows.ts +66 -0
- package/src/wallet/lifecycle.ts +53 -18
- package/src/wallet/privy-broker-server.ts +35 -25
- package/src/wallet/privy-session-broker.ts +58 -25
- package/src/wallet/privy-session-provider.ts +7 -3
- package/src/wallet/provider.ts +20 -15
- package/src/x402/facilitator.ts +85 -46
- package/src/x402-buyer/guarded-fetch.ts +213 -0
- package/src/x402-buyer/index.ts +9 -0
- package/src/x402-buyer/pay.ts +517 -0
- package/src/x402-opener/abi.ts +881 -0
- package/src/x402-opener/facilitator-entry.ts +45 -0
- package/src/x402-opener/facilitator-server.ts +1014 -0
- package/src/x402-opener/index.ts +13 -0
- package/src/x402-opener/listing-resolver.ts +202 -0
- package/src/x402-opener/refund-relay.ts +1743 -0
- package/src/x402-opener/relayer-queue.ts +18 -0
- package/src/x402-opener/scheme.ts +1133 -0
- package/src/x402-opener/terms.ts +300 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refund-relay.js","sourceRoot":"","sources":["../../src/x402-opener/refund-relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializes every relayer submission (simulate + broadcast) of one facilitator
|
|
3
|
+
* process, so concurrent requests never race for the relayer account's nonce.
|
|
4
|
+
*
|
|
5
|
+
* The opener scheme (`deployAndSettle`) and the refund relay (`closeWithSig`,
|
|
6
|
+
* `reclaim`, `reclaimUnverifiedWithSig`) share ONE queue when they share one
|
|
7
|
+
* relayer key: two independent queues would reintroduce the race.
|
|
8
|
+
*/
|
|
9
|
+
export declare class RelayerQueue {
|
|
10
|
+
private tail;
|
|
11
|
+
/** Runs `task` after every previously queued task settles (success or failure). */
|
|
12
|
+
run<T>(task: () => Promise<T>): Promise<T>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=relayer-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayer-queue.d.ts","sourceRoot":"","sources":["../../src/x402-opener/relayer-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAuC;IAEnD,mFAAmF;IACnF,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAK3C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializes every relayer submission (simulate + broadcast) of one facilitator
|
|
3
|
+
* process, so concurrent requests never race for the relayer account's nonce.
|
|
4
|
+
*
|
|
5
|
+
* The opener scheme (`deployAndSettle`) and the refund relay (`closeWithSig`,
|
|
6
|
+
* `reclaim`, `reclaimUnverifiedWithSig`) share ONE queue when they share one
|
|
7
|
+
* relayer key: two independent queues would reintroduce the race.
|
|
8
|
+
*/
|
|
9
|
+
export class RelayerQueue {
|
|
10
|
+
tail = Promise.resolve();
|
|
11
|
+
/** Runs `task` after every previously queued task settles (success or failure). */
|
|
12
|
+
run(task) {
|
|
13
|
+
const next = this.tail.then(task, task);
|
|
14
|
+
this.tail = next.catch(() => undefined);
|
|
15
|
+
return next;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=relayer-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relayer-queue.js","sourceRoot":"","sources":["../../src/x402-opener/relayer-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACf,IAAI,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEnD,mFAAmF;IACnF,GAAG,CAAI,IAAsB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import type { FacilitatorContext, Network, PaymentPayload, PaymentRequirements, SchemeNetworkFacilitator, SettleResponse, VerifyResponse } from "@x402/core/types";
|
|
2
|
+
import { type Account, type Address, type Chain, type PublicClient, type Transport, type WalletClient } from "viem";
|
|
3
|
+
import type { OperatorSignedListingResolver } from "./listing-resolver.js";
|
|
4
|
+
import { RelayerQueue } from "./relayer-queue.js";
|
|
5
|
+
/**
|
|
6
|
+
* `MetrikOpenerExactScheme` — an x402 v2 `exact` facilitator scheme that
|
|
7
|
+
* settles every payment INTO a `StreamEscrowV2` stream through the ownerless
|
|
8
|
+
* `X402StreamOpenerFactory` (metrik-agent#116, metrik-contracts#48).
|
|
9
|
+
*
|
|
10
|
+
* ## What it composes, and what it refuses
|
|
11
|
+
*
|
|
12
|
+
* Standard `exact` checks (EIP-712 signature, recipient == `payTo`, value ==
|
|
13
|
+
* amount, validity window, asset is a contract, balance / nonce simulation of
|
|
14
|
+
* the transfer) are delegated to the official `@x402/evm` `ExactEvmScheme`
|
|
15
|
+
* verifier, never reimplemented. On top of it, every payment must satisfy:
|
|
16
|
+
*
|
|
17
|
+
* - `assetTransferMethod` is EIP-3009. Permit2 and every other method are
|
|
18
|
+
* refused: the opener only ever pulls an EIP-3009 authorization.
|
|
19
|
+
* - The signature is NOT ERC-6492-wrapped. A counterfactual smart wallet would
|
|
20
|
+
* need a factory deploy the opener cannot perform; refused with a reason.
|
|
21
|
+
* - `asset` is on the allowlist AND is the factory's own settlement token.
|
|
22
|
+
* - `payTo == factory.predict(terms)`, recomputed on-chain from the configured
|
|
23
|
+
* factory for the terms in `extra.metrikStreamOpener` — never compared by
|
|
24
|
+
* code or codehash (a byte-identical clone outside the factory proves
|
|
25
|
+
* nothing). The factory named in `extra` must be the configured one.
|
|
26
|
+
* - `(operator, serviceRef)` resolve to exactly ONE operator-signed listing via
|
|
27
|
+
* the existing discovery signature verification; the rate is inside the
|
|
28
|
+
* listing's signed commercial bounds when it declares them.
|
|
29
|
+
* - `0 < amount <= ratePerSecond * maxDuration`.
|
|
30
|
+
* - `factory.deployAndSettle` simulates cleanly from the relayer.
|
|
31
|
+
*
|
|
32
|
+
* Any doubt — an RPC error, an unreachable registry, a malformed field — is an
|
|
33
|
+
* invalid verdict. Nothing here ever fails open.
|
|
34
|
+
*
|
|
35
|
+
* ## Settlement
|
|
36
|
+
*
|
|
37
|
+
* `settle` re-runs the full verification, then calls `deployAndSettle` from the
|
|
38
|
+
* relayer, waits for the receipt, and returns success ONLY when the mined
|
|
39
|
+
* receipt carries both the opener's `StreamOpenedFor` and the escrow's
|
|
40
|
+
* `StreamOpened` for exactly this payer, nonce, amount and terms. The stock
|
|
41
|
+
* `ExactEvmScheme.settle` is never called: it would transfer the USDC straight
|
|
42
|
+
* to `payTo`, and USDC that reaches an opener any other way than
|
|
43
|
+
* `settleAndOpen` is unrecoverable. The signer handed to the stock scheme
|
|
44
|
+
* cannot broadcast at all, so that path is closed structurally too.
|
|
45
|
+
*
|
|
46
|
+
* ## At most one success per authorization
|
|
47
|
+
*
|
|
48
|
+
* An EIP-3009 authorization (chain + asset + payer + nonce) receives AT MOST
|
|
49
|
+
* ONE successful `SettleResponse` from this instance, ever. A settle of an
|
|
50
|
+
* authorization that is in flight, or already settled, returns `success:
|
|
51
|
+
* false` with `duplicate_settlement` (carrying the tx hash when there is one),
|
|
52
|
+
* and `verify` refuses it the same way — so one payment can never buy two
|
|
53
|
+
* served responses. After a `settlement_pending` (receipt wait timed out) the
|
|
54
|
+
* next settle of the SAME payload reconciles against the broadcast tx and may
|
|
55
|
+
* receive the one success, if none was delivered before. The ledger is
|
|
56
|
+
* in-memory and per instance: a multi-instance deployment needs a shared store
|
|
57
|
+
* and does not have one today.
|
|
58
|
+
*
|
|
59
|
+
* Relayer submissions (simulate + write) are serialized so concurrent payers
|
|
60
|
+
* never race for the relayer's account nonce.
|
|
61
|
+
*/
|
|
62
|
+
/** Reasons this scheme adds to the stock `exact` ones. All fail closed. */
|
|
63
|
+
export declare const OpenerInvalidReason: {
|
|
64
|
+
readonly unsupportedScheme: "metrik_opener_unsupported_scheme";
|
|
65
|
+
readonly unsupportedNetwork: "metrik_opener_unsupported_network";
|
|
66
|
+
readonly unsupportedVersion: "metrik_opener_unsupported_x402_version";
|
|
67
|
+
readonly acceptedMismatch: "metrik_opener_accepted_requirements_mismatch";
|
|
68
|
+
readonly unsupportedAssetTransferMethod: "metrik_opener_asset_transfer_method_not_eip3009";
|
|
69
|
+
readonly erc6492Unsupported: "metrik_opener_erc6492_signature_unsupported";
|
|
70
|
+
readonly missingSignature: "metrik_opener_missing_signature";
|
|
71
|
+
readonly assetNotAllowed: "metrik_opener_asset_not_allowed";
|
|
72
|
+
readonly invalidTerms: "metrik_opener_invalid_terms";
|
|
73
|
+
readonly factoryMismatch: "metrik_opener_factory_mismatch";
|
|
74
|
+
readonly payToMismatch: "metrik_opener_pay_to_not_predicted_opener";
|
|
75
|
+
readonly invalidAmount: "metrik_opener_invalid_amount";
|
|
76
|
+
readonly amountExceedsTerms: "metrik_opener_amount_exceeds_rate_times_duration";
|
|
77
|
+
readonly listingUnavailable: "metrik_opener_listing_registry_unavailable";
|
|
78
|
+
readonly listingNotFound: "metrik_opener_listing_not_found";
|
|
79
|
+
readonly listingAmbiguous: "metrik_opener_listing_ambiguous";
|
|
80
|
+
readonly listingRateOutOfBounds: "metrik_opener_listing_rate_out_of_bounds";
|
|
81
|
+
readonly simulationFailed: "metrik_opener_settle_simulation_failed";
|
|
82
|
+
readonly verifyError: "metrik_opener_verify_error";
|
|
83
|
+
readonly transactionReverted: "metrik_opener_transaction_reverted";
|
|
84
|
+
readonly streamEventMismatch: "metrik_opener_stream_event_mismatch";
|
|
85
|
+
readonly settlementPending: "settlement_pending";
|
|
86
|
+
readonly settleError: "metrik_opener_settle_error";
|
|
87
|
+
readonly amountBelowMinimum: "metrik_opener_amount_below_minimum";
|
|
88
|
+
/**
|
|
89
|
+
* This authorization is already being settled, or already settled, by this
|
|
90
|
+
* facilitator instance. May carry the settlement transaction hash. Never a
|
|
91
|
+
* second success (see "At most one success" on the class).
|
|
92
|
+
*/
|
|
93
|
+
readonly duplicateSettlement: "duplicate_settlement";
|
|
94
|
+
readonly settlementCapacity: "metrik_opener_settlement_capacity_exhausted";
|
|
95
|
+
};
|
|
96
|
+
/** Default facilitator minimum payment: 10000 base units = 0.01 USDC. */
|
|
97
|
+
export declare const DEFAULT_OPENER_MIN_AMOUNT = 10000n;
|
|
98
|
+
export interface MetrikOpenerExactSchemeConfig {
|
|
99
|
+
/** CAIP-2 network (`eip155:<chainId>`), as the registry gives it. Must match the RPC's chain id. */
|
|
100
|
+
readonly network: Network;
|
|
101
|
+
/** The deployed `X402StreamOpenerFactory`. */
|
|
102
|
+
readonly factoryAddress: Address;
|
|
103
|
+
/** The `StreamEscrowV2` the factory must point at (checked by {@link init}). */
|
|
104
|
+
readonly escrowAddress: Address;
|
|
105
|
+
/** Settlement tokens this facilitator accepts. Must contain `factory.usdc()`. */
|
|
106
|
+
readonly assetAllowlist: readonly Address[];
|
|
107
|
+
/** Read client for the network. */
|
|
108
|
+
readonly publicClient: PublicClient<Transport, Chain | undefined>;
|
|
109
|
+
/** Relayer wallet. Pays gas for `deployAndSettle`; never holds buyer funds. */
|
|
110
|
+
readonly walletClient: WalletClient<Transport, Chain | undefined, Account>;
|
|
111
|
+
readonly listingResolver: OperatorSignedListingResolver;
|
|
112
|
+
/** How long to wait for a settlement receipt before reporting `settlement_pending`. Default 60s. */
|
|
113
|
+
readonly receiptTimeoutMs?: number;
|
|
114
|
+
/**
|
|
115
|
+
* Smallest accepted payment, token base units. Default
|
|
116
|
+
* {@link DEFAULT_OPENER_MIN_AMOUNT}. Every settlement costs the relayer a
|
|
117
|
+
* full `deployAndSettle`, so dust payments would be a gas drain.
|
|
118
|
+
*/
|
|
119
|
+
readonly minAmount?: bigint;
|
|
120
|
+
/** Injectable clock (unix seconds), for tests. */
|
|
121
|
+
readonly now?: () => number;
|
|
122
|
+
/**
|
|
123
|
+
* The relayer's submission queue. Pass the SAME queue to every component
|
|
124
|
+
* that broadcasts from this relayer key (the refund relay does), so their
|
|
125
|
+
* transactions never race for the account nonce. Default: a private queue.
|
|
126
|
+
*/
|
|
127
|
+
readonly relayerQueue?: RelayerQueue;
|
|
128
|
+
/**
|
|
129
|
+
* Advertise `refundRelay: true` in the `/supported` marker: this service
|
|
130
|
+
* also runs the gasless refund relay (`/streams/:streamId/...`). Set only
|
|
131
|
+
* when the relay is actually mounted. Default false.
|
|
132
|
+
*/
|
|
133
|
+
readonly advertiseRefundRelay?: boolean;
|
|
134
|
+
}
|
|
135
|
+
/** What {@link MetrikOpenerExactScheme.init} proved about the on-chain wiring. */
|
|
136
|
+
export interface OpenerFacilitatorBinding {
|
|
137
|
+
readonly chainId: number;
|
|
138
|
+
readonly factory: Address;
|
|
139
|
+
readonly escrow: Address;
|
|
140
|
+
readonly usdc: Address;
|
|
141
|
+
readonly relayer: Address;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Marker this facilitator advertises in `GET /supported` (`kinds[].extra`), so
|
|
145
|
+
* a resource server can refuse to quote an opener `payTo` through any
|
|
146
|
+
* facilitator that would settle it with a plain `transferWithAuthorization`
|
|
147
|
+
* (which strands the funds). See {@link readOpenerFacilitatorMarker}.
|
|
148
|
+
*/
|
|
149
|
+
export interface OpenerFacilitatorMarker {
|
|
150
|
+
readonly settlement: "x402-stream-opener";
|
|
151
|
+
readonly factory: Address;
|
|
152
|
+
readonly escrow: Address;
|
|
153
|
+
readonly usdc: Address;
|
|
154
|
+
readonly chainId: number;
|
|
155
|
+
/** Smallest accepted amount, base units (decimal string). */
|
|
156
|
+
readonly minAmount: string;
|
|
157
|
+
/** How long `settle` waits for a receipt before `settlement_pending`. */
|
|
158
|
+
readonly receiptTimeoutSeconds: number;
|
|
159
|
+
/**
|
|
160
|
+
* True when the same service runs the gasless refund relay
|
|
161
|
+
* (`GET /streams/:streamId`, `POST /streams/:streamId/close|reclaim`).
|
|
162
|
+
* Absent (read as false) otherwise.
|
|
163
|
+
*/
|
|
164
|
+
readonly refundRelay?: true;
|
|
165
|
+
}
|
|
166
|
+
export declare class MetrikOpenerExactScheme implements SchemeNetworkFacilitator {
|
|
167
|
+
private readonly config;
|
|
168
|
+
readonly scheme: "exact";
|
|
169
|
+
readonly caipFamily = "eip155:*";
|
|
170
|
+
private readonly stock;
|
|
171
|
+
private readonly chainId;
|
|
172
|
+
private readonly allowlist;
|
|
173
|
+
private readonly receiptTimeoutMs;
|
|
174
|
+
private readonly minAmount;
|
|
175
|
+
private readonly now;
|
|
176
|
+
private readonly ledger;
|
|
177
|
+
/** Serializes relayer submissions (simulate + write) so nonces never collide. */
|
|
178
|
+
private readonly relayerQueue;
|
|
179
|
+
private binding;
|
|
180
|
+
constructor(config: MetrikOpenerExactSchemeConfig);
|
|
181
|
+
/**
|
|
182
|
+
* Proves the on-chain wiring before the facilitator serves anything: the RPC
|
|
183
|
+
* is on the configured chain, the factory has code, points at the configured
|
|
184
|
+
* escrow, and its token is allowlisted. Throws otherwise (the service refuses
|
|
185
|
+
* to start).
|
|
186
|
+
*/
|
|
187
|
+
init(): Promise<OpenerFacilitatorBinding>;
|
|
188
|
+
/** `/supported` extra: the marker a resource server checks before quoting an opener. */
|
|
189
|
+
getExtra(_network: string): Record<string, unknown> | undefined;
|
|
190
|
+
getSigners(_network: string): string[];
|
|
191
|
+
verify(payload: PaymentPayload, requirements: PaymentRequirements, context?: FacilitatorContext): Promise<VerifyResponse>;
|
|
192
|
+
settle(payload: PaymentPayload, requirements: PaymentRequirements, context?: FacilitatorContext): Promise<SettleResponse>;
|
|
193
|
+
/** Records the outcome of one settle attempt in the ledger and returns it. */
|
|
194
|
+
private finish;
|
|
195
|
+
/**
|
|
196
|
+
* Simulate + broadcast `deployAndSettle`, one at a time. Concurrent
|
|
197
|
+
* submissions from one relayer would otherwise race for the same account
|
|
198
|
+
* nonce and all but one would fail after the upstream already did the work.
|
|
199
|
+
*/
|
|
200
|
+
private submitSerialized;
|
|
201
|
+
/** chain + asset + payer + authorization nonce, or undefined if unparseable. */
|
|
202
|
+
private ledgerKey;
|
|
203
|
+
/**
|
|
204
|
+
* Drops entries whose authorization can no longer be settled by anyone
|
|
205
|
+
* (past `validBefore` plus a grace). Never drops an in-flight entry.
|
|
206
|
+
*/
|
|
207
|
+
private pruneLedger;
|
|
208
|
+
private awaitSettlement;
|
|
209
|
+
/** Every Metrik check plus the stock verifier. Cheapest, most local first. */
|
|
210
|
+
private check;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Reads an opener facilitator marker out of a `/supported` kind's `extra`, or
|
|
214
|
+
* `undefined` when the facilitator does not advertise opener settlement.
|
|
215
|
+
*/
|
|
216
|
+
export declare function readOpenerFacilitatorMarker(extra: Record<string, unknown> | undefined): OpenerFacilitatorMarker | undefined;
|
|
217
|
+
//# sourceMappingURL=scheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheme.d.ts","sourceRoot":"","sources":["../../src/x402-opener/scheme.ts"],"names":[],"mappings":"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"}
|