@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
package/dist/cli/config.js
CHANGED
|
@@ -1,66 +1,116 @@
|
|
|
1
|
-
import { BASE_SEPOLIA_ESCROW_V2, BASE_SEPOLIA_USDC, DEFAULT_ORACLE_BASE_URL, DEFAULT_PUBLIC_REGISTRY_URL, } from "@absol-labs/sdk";
|
|
2
1
|
import { isAddress, getAddress } from "viem";
|
|
3
|
-
import {
|
|
2
|
+
import { allowedNetworks, describeAllowedNetworks, registeredDeployment, METRIK_NETWORK_ENV, resolveAgentNetwork, UnsupportedNetworkError, } from "../network.js";
|
|
4
3
|
import { CliError, configError, usageError } from "./errors.js";
|
|
5
4
|
import { stringFlag, integerFlag } from "./args.js";
|
|
6
5
|
/**
|
|
7
|
-
* TESTNET ONLY — the
|
|
6
|
+
* TESTNET ONLY — the CLI settles only on registered networks the SDK registry
|
|
7
|
+
* marks `testnet: true`.
|
|
8
8
|
*
|
|
9
9
|
* Metrik's escrow moves real USDC the moment it is pointed at a mainnet chain,
|
|
10
10
|
* and this CLI signs with a raw private key read from the environment. So the
|
|
11
|
-
* chain is an allowlist, not a default:
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* chain is an allowlist, not a default: a chain the registry does not know, or
|
|
12
|
+
* one it knows as a mainnet, is refused outright, with no override flag. There
|
|
13
|
+
* is deliberately no `--allow-mainnet` — an escape hatch that re-enables real
|
|
14
|
+
* funds would defeat the guarantee.
|
|
15
15
|
*
|
|
16
|
-
* The allowlist is enforced TWICE: once against the configured/declared
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* The allowlist is enforced TWICE: once against the configured/declared network,
|
|
17
|
+
* and again against the chain id the RPC endpoint actually reports before any
|
|
18
|
+
* fund-moving command signs anything (see `assertTestnetRpc`). The second check
|
|
19
|
+
* is what stops a testnet `--chain-id` paired with a mainnet `--rpc-url`.
|
|
20
20
|
*/
|
|
21
|
-
export const
|
|
21
|
+
export const CLI_NETWORK_POLICY = { testnetOnly: true };
|
|
22
|
+
/** Chain ids of every registered testnet this CLI will settle against. */
|
|
23
|
+
export function testnetChainIds() {
|
|
24
|
+
return allowedNetworks(CLI_NETWORK_POLICY).map((network) => network.chain.id);
|
|
25
|
+
}
|
|
22
26
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* from a block that means nothing for it.
|
|
27
|
+
* @deprecated Snapshot of {@link testnetChainIds} at import time. A network
|
|
28
|
+
* registered later is not in it; call `testnetChainIds()` instead.
|
|
29
|
+
*/
|
|
30
|
+
export const TESTNET_CHAIN_IDS = testnetChainIds();
|
|
31
|
+
/**
|
|
32
|
+
* The block the configured escrow was deployed at — the anchor of every escrow
|
|
33
|
+
* log scan — or `undefined` when the escrow is not the network's registered
|
|
34
|
+
* escrow (a run pointed at a different `--escrow` has no anchor and must be
|
|
35
|
+
* given `--from-block`, rather than silently scanning from a block that means
|
|
36
|
+
* nothing for it).
|
|
34
37
|
*/
|
|
35
|
-
export
|
|
38
|
+
export function escrowDeployBlock(config) {
|
|
39
|
+
return registeredDeployment(config.network, config.escrow)?.escrow
|
|
40
|
+
.deployBlock;
|
|
41
|
+
}
|
|
36
42
|
/**
|
|
37
|
-
* Resolves settlement configuration from flags, then env, then the
|
|
38
|
-
*
|
|
43
|
+
* Resolves settlement configuration from flags, then env, then the network's
|
|
44
|
+
* registry defaults — so `metrik discover` works with nothing configured at
|
|
39
45
|
* all, while every value stays overridable.
|
|
46
|
+
*
|
|
47
|
+
* The network is selected by `--network` / `METRIK_NETWORK` (registry id,
|
|
48
|
+
* chain id or CAIP-2 id) or by `--chain-id` / `METRIK_AGENT_CHAIN_ID`; giving
|
|
49
|
+
* both is allowed only when they agree.
|
|
40
50
|
*/
|
|
41
51
|
export function resolveConfig(args, env) {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
baseSepolia.id;
|
|
45
|
-
assertTestnetChainId(chainId, "the configured chain id");
|
|
52
|
+
const network = resolveCliNetwork(args, env);
|
|
53
|
+
const chainId = network.chain.id;
|
|
46
54
|
const rpcUrl = stringFlag(args, "rpc-url") ??
|
|
47
55
|
env.METRIK_AGENT_RPC_URL ??
|
|
48
|
-
|
|
56
|
+
network.rpcUrls[0];
|
|
49
57
|
if (rpcUrl === undefined || !isHttpUrl(rpcUrl)) {
|
|
50
58
|
throw configError(`RPC URL must be an http(s) URL (got "${rpcUrl ?? "undefined"}")`, "set --rpc-url or METRIK_AGENT_RPC_URL.");
|
|
51
59
|
}
|
|
60
|
+
const escrow = resolveAddress(stringFlag(args, "escrow") ?? env.METRIK_AGENT_ESCROW, network.escrow.address, "escrow");
|
|
61
|
+
const declared = (stringFlag(args, "escrow-generation") ?? env.METRIK_AGENT_ESCROW_GENERATION)
|
|
62
|
+
?.trim()
|
|
63
|
+
.toLowerCase();
|
|
64
|
+
if (declared !== undefined && declared !== "v2" && declared !== "v3") {
|
|
65
|
+
throw configError(`--escrow-generation must be "v2" or "v3" (got "${declared}")`);
|
|
66
|
+
}
|
|
67
|
+
const deployment = registeredDeployment(network, escrow);
|
|
68
|
+
if (deployment === undefined && declared === undefined) {
|
|
69
|
+
throw configError(`escrow ${escrow} is not a registered deployment of ${network.name}`, `the SDK pins registered escrows by code hash; for your own deployment pass --escrow-generation v2|v3 (it then only checks the interface, which any contract can fake). Registered: ${[network.escrow, ...network.legacy.map((d) => d.escrow)].map((e) => `${e.address} (${e.generation})`).join(", ")}.`);
|
|
70
|
+
}
|
|
71
|
+
if (deployment !== undefined &&
|
|
72
|
+
declared !== undefined &&
|
|
73
|
+
declared !== deployment.escrow.generation) {
|
|
74
|
+
throw configError(`--escrow-generation ${declared} contradicts the registry: ${escrow} is the ${deployment.escrow.generation} escrow`);
|
|
75
|
+
}
|
|
52
76
|
return {
|
|
53
|
-
|
|
77
|
+
network,
|
|
78
|
+
chain: network.chain,
|
|
54
79
|
chainId,
|
|
55
80
|
rpcUrl,
|
|
56
|
-
escrow
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
81
|
+
escrow,
|
|
82
|
+
...(deployment === undefined
|
|
83
|
+
? { unregisteredEscrowGeneration: declared }
|
|
84
|
+
: {}),
|
|
85
|
+
usdc: resolveAddress(stringFlag(args, "usdc") ?? env.METRIK_AGENT_USDC, network.usdc.address, "usdc"),
|
|
86
|
+
oracleBaseUrl: resolveHttpUrl(stringFlag(args, "oracle-url") ?? env.METRIK_AGENT_ORACLE_URL, network.oracleBaseUrl, "oracle-url"),
|
|
87
|
+
registryUrl: resolveHttpUrl(stringFlag(args, "registry-url") ?? env.METRIK_AGENT_REGISTRY_URL, network.publicRegistryUrl ?? `${network.oracleBaseUrl}/listings`, "registry-url"),
|
|
60
88
|
};
|
|
61
89
|
}
|
|
90
|
+
function resolveCliNetwork(args, env) {
|
|
91
|
+
const chainId = integerFlag(args, "chain-id") ?? parseEnvChainId(env.METRIK_AGENT_CHAIN_ID);
|
|
92
|
+
const selector = stringFlag(args, "network") ?? env[METRIK_NETWORK_ENV];
|
|
93
|
+
if (chainId !== undefined)
|
|
94
|
+
assertTestnetChainId(chainId, "the configured chain id");
|
|
95
|
+
let network;
|
|
96
|
+
try {
|
|
97
|
+
network = resolveAgentNetwork(selector !== undefined && selector.trim().length > 0 ? selector : chainId, CLI_NETWORK_POLICY);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
if (error instanceof UnsupportedNetworkError) {
|
|
101
|
+
throw configError(`refusing to run against network "${error.selector}": it is not a supported testnet`, `${error.message}. There is no override flag.`);
|
|
102
|
+
}
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
if (chainId !== undefined && chainId !== network.chain.id) {
|
|
106
|
+
throw configError(`--chain-id ${chainId} does not match --network ${network.id} (chain ${network.chain.id})`, "give one of them, or make them agree.");
|
|
107
|
+
}
|
|
108
|
+
return network;
|
|
109
|
+
}
|
|
62
110
|
/** Flags every command accepts for settlement configuration. */
|
|
63
111
|
export const CONFIG_FLAGS = [
|
|
112
|
+
"network",
|
|
113
|
+
"escrow-generation",
|
|
64
114
|
"chain-id",
|
|
65
115
|
"rpc-url",
|
|
66
116
|
"escrow",
|
|
@@ -71,9 +121,9 @@ export const CONFIG_FLAGS = [
|
|
|
71
121
|
/** Flags every command accepts for output shape. */
|
|
72
122
|
export const GLOBAL_FLAGS = ["json", "help"];
|
|
73
123
|
export function assertTestnetChainId(chainId, source) {
|
|
74
|
-
if (
|
|
124
|
+
if (testnetChainIds().includes(chainId))
|
|
75
125
|
return;
|
|
76
|
-
throw configError(`refusing to run against chain ${chainId}: ${source} is not a supported testnet`, `this CLI signs with a raw private key and settles real value, so it is testnet-only. Supported: ${
|
|
126
|
+
throw configError(`refusing to run against chain ${chainId}: ${source} is not a supported testnet`, `this CLI signs with a raw private key and settles real value, so it is testnet-only. Supported (registered testnets): ${describeAllowedNetworks(CLI_NETWORK_POLICY)}. There is no override flag.`);
|
|
77
127
|
}
|
|
78
128
|
/**
|
|
79
129
|
* Second half of the testnet guard: the chain the RPC ACTUALLY serves. Called
|
package/dist/cli/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/deps.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { type CheckpointProof, type HireComputeInput, type HireComputeResult, type HireTxPreview, type StreamV2, type StreamProofTransactionResult } from "@absol-labs/sdk";
|
|
2
|
-
import { type
|
|
2
|
+
import { type Transport } from "viem";
|
|
3
3
|
import { type DiscoverResult, type DiscoverServicesOptions, type ServiceListing } from "../discovery/registry.js";
|
|
4
4
|
import { type InvokeOptions, type InvokeResult, type InvokeServiceInput, type InvokeStreamReader } from "../sdk/invoke.js";
|
|
5
5
|
import { type MandateAuthorizedStreamActionInput, type OpenVerifiedStreamInput, type ReclaimAuthorizedStreamInput, type ReclaimVerifiedStreamResult } from "../sdk/client.js";
|
|
6
|
+
import type { SignedSpendMandate } from "../mandates/mandate.js";
|
|
7
|
+
import type { PayX402WithMandateInput, PayX402WithMandateResult } from "../x402-buyer/pay.js";
|
|
8
|
+
import type { RefundClient } from "@absol-labs/sdk/x402";
|
|
6
9
|
import type { CliConfig } from "./config.js";
|
|
10
|
+
import type { CliSignerAccount } from "./wallet.js";
|
|
7
11
|
/**
|
|
8
12
|
* Everything the CLI touches that is not pure computation, behind one
|
|
9
13
|
* injectable surface. Commands are written against these interfaces so the test
|
|
@@ -110,20 +114,73 @@ export interface OpenedStream {
|
|
|
110
114
|
readonly expiresAt: number;
|
|
111
115
|
readonly blockNumber: bigint;
|
|
112
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* A fund-moving call, with the mandate made EXPLICITLY optional.
|
|
119
|
+
*
|
|
120
|
+
* `null` is not "no authorization" — it is "this wallet's ceiling is enforced
|
|
121
|
+
* by a broker policy the client cannot reach or raise, so a locally self-signed
|
|
122
|
+
* mandate would be the agent attesting to its own limits on top of a stronger
|
|
123
|
+
* limit". The CLI substitutes the real ceiling instead; see
|
|
124
|
+
* `./spend-policy.ts`, which also explains why re-adding the mandate here would
|
|
125
|
+
* be a regression rather than a tidy-up.
|
|
126
|
+
*
|
|
127
|
+
* A key-holding wallet (private key, CDP) always passes a real mandate, and its
|
|
128
|
+
* path through `VerifiedStreamAgentClient` is unchanged.
|
|
129
|
+
*/
|
|
130
|
+
type MandateOptional<T extends {
|
|
131
|
+
readonly signedMandate: SignedSpendMandate;
|
|
132
|
+
}> = Omit<T, "signedMandate"> & {
|
|
133
|
+
readonly signedMandate: SignedSpendMandate | null;
|
|
134
|
+
};
|
|
135
|
+
export type CliOpenStreamInput = MandateOptional<OpenVerifiedStreamInput>;
|
|
136
|
+
export type CliStreamActionInput = MandateOptional<MandateAuthorizedStreamActionInput>;
|
|
137
|
+
export type CliReclaimStreamInput = MandateOptional<ReclaimAuthorizedStreamInput>;
|
|
113
138
|
export interface CliWriteClient {
|
|
114
139
|
/** Build + best-effort simulate the hire WITHOUT broadcasting (`--dry-run`). */
|
|
115
140
|
buildHireTx(input: HireComputeInput): Promise<HireTxPreview>;
|
|
116
|
-
openVerifiedStream(input:
|
|
117
|
-
closeStream(input:
|
|
118
|
-
reclaimStream(input:
|
|
141
|
+
openVerifiedStream(input: CliOpenStreamInput): Promise<HireComputeResult>;
|
|
142
|
+
closeStream(input: CliStreamActionInput): Promise<StreamProofTransactionResult>;
|
|
143
|
+
reclaimStream(input: CliReclaimStreamInput): Promise<ReclaimVerifiedStreamResult>;
|
|
119
144
|
/**
|
|
120
145
|
* The no-proof escape hatch. Separate from {@link reclaimStream} because it is
|
|
121
146
|
* a different transaction with a different outcome, not a mode of the same one
|
|
122
147
|
* — see `VerifiedStreamAgentClient.reclaimUnverifiedStream`.
|
|
123
148
|
*/
|
|
124
|
-
reclaimUnverifiedStream(input:
|
|
149
|
+
reclaimUnverifiedStream(input: CliStreamActionInput): Promise<StreamProofTransactionResult>;
|
|
125
150
|
/** Operator-only: redeem the verified-earned balance for a stream. */
|
|
126
|
-
claimStream(input:
|
|
151
|
+
claimStream(input: CliStreamActionInput): Promise<StreamProofTransactionResult>;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Per-wallet write-path overrides.
|
|
155
|
+
*
|
|
156
|
+
* `transport` exists for exactly one reason: a Privy wallet has no local
|
|
157
|
+
* `signTransaction`. Its EIP-1193 provider performs `eth_sendTransaction`
|
|
158
|
+
* itself, so the provider must BE the wallet client's transport rather than the
|
|
159
|
+
* plain `http(--rpc-url)` every local signer uses. Left unset — which is every
|
|
160
|
+
* private-key and CDP run — the transport is unchanged, byte for byte.
|
|
161
|
+
*/
|
|
162
|
+
export interface CreateWriteClientOptions {
|
|
163
|
+
readonly transport?: Transport;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The buyer side of x402 (`metrik pay` / `metrik refund`). Behind the injectable
|
|
167
|
+
* surface like every other side effect, and loaded lazily by default so a CLI
|
|
168
|
+
* run that never pays over x402 never imports `@x402/*`.
|
|
169
|
+
*/
|
|
170
|
+
export interface CliX402 {
|
|
171
|
+
/** Mandate-gated `payWithX402` (see `../x402-buyer/pay.ts`). */
|
|
172
|
+
readonly pay: (input: PayX402WithMandateInput) => Promise<PayX402WithMandateResult>;
|
|
173
|
+
/**
|
|
174
|
+
* The SDK's `refundClient`, bound to ONE stream and verifying every relay
|
|
175
|
+
* "success" against the chain this CLI is configured for.
|
|
176
|
+
*/
|
|
177
|
+
readonly refundClient: (config: CliConfig, target: {
|
|
178
|
+
readonly refundUrl: string;
|
|
179
|
+
readonly streamId: `0x${string}`;
|
|
180
|
+
readonly opener?: `0x${string}`;
|
|
181
|
+
readonly maxAttempts?: number;
|
|
182
|
+
readonly maxDelayMs?: number;
|
|
183
|
+
}) => Promise<RefundClient>;
|
|
127
184
|
}
|
|
128
185
|
export interface CliDependencies {
|
|
129
186
|
readonly createReadClient: (config: CliConfig) => CliReadClient;
|
|
@@ -133,13 +190,35 @@ export interface CliDependencies {
|
|
|
133
190
|
* calldata and simply reports that the allowance read and simulation were
|
|
134
191
|
* skipped; every fund-moving method throws rather than inventing a signer.
|
|
135
192
|
*/
|
|
136
|
-
readonly createWriteClient: (config: CliConfig, account:
|
|
193
|
+
readonly createWriteClient: (config: CliConfig, account: CliSignerAccount | null, options?: CreateWriteClientOptions) => CliWriteClient;
|
|
137
194
|
readonly discover: (options: DiscoverServicesOptions) => Promise<DiscoverResult>;
|
|
138
195
|
readonly invoke: (streamId: `0x${string}`, request: InvokeServiceInput, options: InvokeOptions) => Promise<InvokeResult>;
|
|
139
196
|
readonly createInvokeStreamReader: (config: CliConfig) => InvokeStreamReader;
|
|
140
197
|
readonly nowSeconds: () => number;
|
|
141
198
|
readonly sleep: (ms: number) => Promise<void>;
|
|
199
|
+
/** Optional so an embedder's existing dependency object keeps compiling. */
|
|
200
|
+
readonly x402?: CliX402;
|
|
142
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* The RPC transport, with an explicit per-call budget.
|
|
204
|
+
*
|
|
205
|
+
* viem's defaults leave a single `eth_call` able to hang for a long time behind
|
|
206
|
+
* three backing-off retries, which is how a `status` run reached two minutes
|
|
207
|
+
* with nothing on screen. Bounding it here bounds every read and every
|
|
208
|
+
* simulation the SDK performs, in one place.
|
|
209
|
+
*/
|
|
210
|
+
export declare function rpcTransport(config: CliConfig): import("viem").HttpTransport<undefined, false>;
|
|
143
211
|
export declare const defaultCliDependencies: CliDependencies;
|
|
212
|
+
/**
|
|
213
|
+
* The write-client options a resolved wallet implies.
|
|
214
|
+
*
|
|
215
|
+
* Kept next to {@link CreateWriteClientOptions} so every fund-moving command
|
|
216
|
+
* spells the transport decision the same way, and so a wallet that needs a
|
|
217
|
+
* provider transport cannot be broadcast through a plain RPC by a command that
|
|
218
|
+
* simply forgot to pass it.
|
|
219
|
+
*/
|
|
220
|
+
export declare function writeClientOptions(wallet: {
|
|
221
|
+
readonly transport?: Transport;
|
|
222
|
+
} | null): CreateWriteClientOptions;
|
|
144
223
|
export type { DiscoverResult, ServiceListing };
|
|
145
224
|
//# sourceMappingURL=deps.d.ts.map
|
package/dist/cli/deps.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,4BAA4B,EAClC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA8B,KAAK,
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/deps.js
CHANGED
|
@@ -22,17 +22,29 @@ const STREAM_OPENED_EVENT = getAbiItem({
|
|
|
22
22
|
* with nothing on screen. Bounding it here bounds every read and every
|
|
23
23
|
* simulation the SDK performs, in one place.
|
|
24
24
|
*/
|
|
25
|
-
function rpcTransport(config) {
|
|
25
|
+
export function rpcTransport(config) {
|
|
26
26
|
return http(config.rpcUrl, {
|
|
27
27
|
timeout: RPC_TIMEOUT_MS,
|
|
28
28
|
retryCount: RPC_RETRY_COUNT,
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* An `--escrow` the registry does not record was declared with
|
|
33
|
+
* `--escrow-generation`: the only case the SDK may skip its code-hash pin.
|
|
34
|
+
*/
|
|
35
|
+
function unregisteredEscrowOptions(config) {
|
|
36
|
+
return config.unregisteredEscrowGeneration === undefined
|
|
37
|
+
? {}
|
|
38
|
+
: {
|
|
39
|
+
allowUnregisteredEscrow: true,
|
|
40
|
+
escrowGeneration: config.unregisteredEscrowGeneration,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
31
43
|
/** Shared `MetrikClient` construction: one escrow, declared as V2 on both keys. */
|
|
32
|
-
function createMetrikClient(config, account) {
|
|
44
|
+
function createMetrikClient(config, account, transport) {
|
|
33
45
|
return new MetrikClient({
|
|
34
46
|
chain: config.chain,
|
|
35
|
-
transport: rpcTransport(config),
|
|
47
|
+
transport: transport ?? rpcTransport(config),
|
|
36
48
|
escrow: config.escrow,
|
|
37
49
|
// Declared on BOTH keys: without `escrowV2` the SDK routes reads and
|
|
38
50
|
// settlement through the legacy V1 ABI, which reverts against
|
|
@@ -42,6 +54,7 @@ function createMetrikClient(config, account) {
|
|
|
42
54
|
usdc: config.usdc,
|
|
43
55
|
oracleBaseUrl: config.oracleBaseUrl,
|
|
44
56
|
settlementTarget: { chainId: config.chainId, escrow: config.escrow },
|
|
57
|
+
...unregisteredEscrowOptions(config),
|
|
45
58
|
...(account === undefined ? {} : { account }),
|
|
46
59
|
});
|
|
47
60
|
}
|
|
@@ -159,40 +172,80 @@ export const defaultCliDependencies = {
|
|
|
159
172
|
},
|
|
160
173
|
};
|
|
161
174
|
},
|
|
162
|
-
createWriteClient(config, account) {
|
|
175
|
+
createWriteClient(config, account, options) {
|
|
176
|
+
// A Privy wallet's provider IS the transport (see CreateWriteClientOptions);
|
|
177
|
+
// every other wallet keeps the plain bounded HTTP transport.
|
|
178
|
+
const transport = options?.transport ?? rpcTransport(config);
|
|
163
179
|
const clientConfig = {
|
|
164
180
|
chain: config.chain,
|
|
165
|
-
transport
|
|
181
|
+
transport,
|
|
166
182
|
escrow: config.escrow,
|
|
167
183
|
escrowV2: config.escrow,
|
|
168
184
|
usdc: config.usdc,
|
|
169
185
|
oracleBaseUrl: config.oracleBaseUrl,
|
|
170
186
|
settlementTarget: { chainId: config.chainId, escrow: config.escrow },
|
|
187
|
+
...unregisteredEscrowOptions(config),
|
|
171
188
|
...(account === null ? {} : { account }),
|
|
172
189
|
};
|
|
173
190
|
// The mandate-gated agent client owns every fund-moving call; the raw SDK
|
|
174
191
|
// client is used only for the build-only `--dry-run` preview, which
|
|
175
192
|
// broadcasts nothing.
|
|
176
193
|
const agentClient = new VerifiedStreamAgentClient(clientConfig);
|
|
177
|
-
const metrik = createMetrikClient(config,
|
|
194
|
+
const metrik = createMetrikClient(config, account === null ? undefined : account, transport);
|
|
178
195
|
return {
|
|
179
196
|
async buildHireTx(input) {
|
|
180
197
|
return await metrik.buildHireTx(input);
|
|
181
198
|
},
|
|
182
|
-
async openVerifiedStream(input) {
|
|
183
|
-
|
|
199
|
+
async openVerifiedStream({ signedMandate, ...input }) {
|
|
200
|
+
// No mandate means a policy-enforced wallet: the ceiling was already
|
|
201
|
+
// checked against the broker's own `/v1/config` before we got here, and
|
|
202
|
+
// the broker checks it AGAIN server-side on the transaction it signs.
|
|
203
|
+
// Going straight at the SDK client is the same path the SDK-driven
|
|
204
|
+
// (non-CLI) flow has always used.
|
|
205
|
+
if (signedMandate === null) {
|
|
206
|
+
return await metrik.hireVerifiedService({
|
|
207
|
+
operator: input.operator,
|
|
208
|
+
serviceRef: input.serviceRef,
|
|
209
|
+
budgetUsdc: input.budgetUsdc,
|
|
210
|
+
ratePerSecond: input.ratePerSecondUsdc,
|
|
211
|
+
maxDurationSeconds: input.maxDurationSeconds,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
return await agentClient.openVerifiedStream({
|
|
215
|
+
...input,
|
|
216
|
+
signedMandate,
|
|
217
|
+
});
|
|
184
218
|
},
|
|
185
|
-
async closeStream(input) {
|
|
186
|
-
|
|
219
|
+
async closeStream({ signedMandate, ...input }) {
|
|
220
|
+
if (signedMandate === null)
|
|
221
|
+
return await metrik.close(input.streamId);
|
|
222
|
+
return await agentClient.closeStream({ ...input, signedMandate });
|
|
187
223
|
},
|
|
188
|
-
async reclaimStream(input) {
|
|
189
|
-
|
|
224
|
+
async reclaimStream({ signedMandate, ...input }) {
|
|
225
|
+
if (signedMandate === null) {
|
|
226
|
+
const closeResult = input.closeFirst
|
|
227
|
+
? await metrik.close(input.streamId)
|
|
228
|
+
: null;
|
|
229
|
+
return {
|
|
230
|
+
closeResult,
|
|
231
|
+
reclaimResult: await metrik.reclaim(input.streamId),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
return await agentClient.reclaimStream({ ...input, signedMandate });
|
|
190
235
|
},
|
|
191
|
-
async reclaimUnverifiedStream(input) {
|
|
192
|
-
|
|
236
|
+
async reclaimUnverifiedStream({ signedMandate, ...input }) {
|
|
237
|
+
if (signedMandate === null) {
|
|
238
|
+
return await metrik.reclaimUnverified(input.streamId);
|
|
239
|
+
}
|
|
240
|
+
return await agentClient.reclaimUnverifiedStream({
|
|
241
|
+
...input,
|
|
242
|
+
signedMandate,
|
|
243
|
+
});
|
|
193
244
|
},
|
|
194
|
-
async claimStream(input) {
|
|
195
|
-
|
|
245
|
+
async claimStream({ signedMandate, ...input }) {
|
|
246
|
+
if (signedMandate === null)
|
|
247
|
+
return await metrik.claim(input.streamId);
|
|
248
|
+
return await agentClient.claimStream({ ...input, signedMandate });
|
|
196
249
|
},
|
|
197
250
|
};
|
|
198
251
|
},
|
|
@@ -220,8 +273,41 @@ export const defaultCliDependencies = {
|
|
|
220
273
|
nowSeconds() {
|
|
221
274
|
return Math.floor(Date.now() / 1000);
|
|
222
275
|
},
|
|
276
|
+
x402: {
|
|
277
|
+
async pay(input) {
|
|
278
|
+
const { payX402WithMandate } = await import("../x402-buyer/pay.js");
|
|
279
|
+
return await payX402WithMandate(input);
|
|
280
|
+
},
|
|
281
|
+
async refundClient(config, target) {
|
|
282
|
+
const { refundClient } = await import("@absol-labs/sdk/x402");
|
|
283
|
+
return refundClient(target.refundUrl, {
|
|
284
|
+
streamId: target.streamId,
|
|
285
|
+
...(target.opener === undefined ? {} : { opener: target.opener }),
|
|
286
|
+
// Every relay "success" is checked against the receipt on THIS chain.
|
|
287
|
+
verifyWith: createMetrikClient(config),
|
|
288
|
+
expectedChainId: config.chainId,
|
|
289
|
+
...(target.maxAttempts === undefined
|
|
290
|
+
? {}
|
|
291
|
+
: { maxAttempts: target.maxAttempts }),
|
|
292
|
+
...(target.maxDelayMs === undefined
|
|
293
|
+
? {}
|
|
294
|
+
: { maxDelayMs: target.maxDelayMs }),
|
|
295
|
+
});
|
|
296
|
+
},
|
|
297
|
+
},
|
|
223
298
|
async sleep(ms) {
|
|
224
299
|
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
225
300
|
},
|
|
226
301
|
};
|
|
302
|
+
/**
|
|
303
|
+
* The write-client options a resolved wallet implies.
|
|
304
|
+
*
|
|
305
|
+
* Kept next to {@link CreateWriteClientOptions} so every fund-moving command
|
|
306
|
+
* spells the transport decision the same way, and so a wallet that needs a
|
|
307
|
+
* provider transport cannot be broadcast through a plain RPC by a command that
|
|
308
|
+
* simply forgot to pass it.
|
|
309
|
+
*/
|
|
310
|
+
export function writeClientOptions(wallet) {
|
|
311
|
+
return wallet?.transport === undefined ? {} : { transport: wallet.transport };
|
|
312
|
+
}
|
|
227
313
|
//# sourceMappingURL=deps.js.map
|
package/dist/cli/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,YAAY,GAOb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,WAAW;AACrB,yDAAyD;AACvD,CAAC;AACH,uEAAuE;GACrE,CAAC;AACH,wEAAwE;GACtE,CAAC,CAAC;AAEN,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGhC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KACrB;CAOT;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKnE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKpE;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,WAAW;AACrB,yDAAyD;AACvD,CAAC;AACH,uEAAuE;GACrE,CAAC;AACH,wEAAwE;GACtE,CAAC,CAAC;AAEN,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGhC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KACrB;CAOT;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKnE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAKpE;AAyDD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcpD;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CAgBnB;AAaD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAelD"}
|
package/dist/cli/errors.js
CHANGED
|
@@ -48,6 +48,26 @@ function namesTheRevert(line) {
|
|
|
48
48
|
/\breverted:/.test(line) ||
|
|
49
49
|
/\bpanicked with code\b/.test(line));
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Links that state the OUTCOME rather than open a sentence the next link
|
|
53
|
+
* completes — so the trailing "…and it reverted" carries nothing.
|
|
54
|
+
*
|
|
55
|
+
* `metrik status <a stream id that does not exist>` used to print
|
|
56
|
+
*
|
|
57
|
+
* stream 0x…: does not exist on the escrow: The contract function
|
|
58
|
+
* "getStream" reverted.
|
|
59
|
+
*
|
|
60
|
+
* The first link is the whole answer; the tail is viem restating that a revert
|
|
61
|
+
* is how the escrow says so. Contrast "reclaim simulation failed", which is a
|
|
62
|
+
* PREFIX — dropping the boilerplate after it would leave a failure with no
|
|
63
|
+
* stated reason at all, which is why the one-boilerplate rule exists.
|
|
64
|
+
*/
|
|
65
|
+
const STATES_THE_OUTCOME = [
|
|
66
|
+
/\bdoes not exist on the escrow\b/,
|
|
67
|
+
];
|
|
68
|
+
function statesTheOutcome(line) {
|
|
69
|
+
return STATES_THE_OUTCOME.some((pattern) => pattern.test(line));
|
|
70
|
+
}
|
|
51
71
|
function isBoilerplate(line) {
|
|
52
72
|
return VIEM_BOILERPLATE.some((pattern) => pattern.test(line));
|
|
53
73
|
}
|
|
@@ -76,7 +96,7 @@ export function describeError(error) {
|
|
|
76
96
|
}
|
|
77
97
|
/** Exported for the test that pins the shape of the chain, not the wording. */
|
|
78
98
|
export function stripRedundantBoilerplate(chain) {
|
|
79
|
-
const decoded = chain.some((line) => namesTheRevert(line) && !isBoilerplate(line));
|
|
99
|
+
const decoded = chain.some((line) => (namesTheRevert(line) || statesTheOutcome(line)) && !isBoilerplate(line));
|
|
80
100
|
let keptBoilerplate = false;
|
|
81
101
|
const kept = chain.filter((line, index) => {
|
|
82
102
|
if (!isBoilerplate(line))
|
package/dist/cli/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"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"}
|