@absol-labs/agent 0.11.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 +42 -50
- package/dist/capability/invocation-capability.d.ts +2 -2
- 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.js +1 -1
- 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 +35 -3
- 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 +2 -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 +58 -4
- 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 +3 -2
- 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 +184 -16
- 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 +8 -12
- 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 +33 -0
- package/dist/cli/deps.d.ts.map +1 -1
- package/dist/cli/deps.js +37 -1
- 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.map +1 -1
- package/dist/cli/privy.js +4 -2
- package/dist/cli/privy.js.map +1 -1
- 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/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 +1 -1
- package/dist/cli/wallet.js +2 -2
- 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 +83 -31
- package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
- package/dist/gateway/caller-auth-gateway.js +180 -27
- package/dist/gateway/caller-auth-gateway.js.map +1 -1
- package/dist/gateway/http-server.d.ts +111 -44
- package/dist/gateway/http-server.d.ts.map +1 -1
- package/dist/gateway/http-server.js +439 -155
- 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 +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +52 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +228 -37
- package/dist/mcp/server.js.map +1 -1
- 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 +4 -0
- package/dist/sdk/invoke.d.ts.map +1 -1
- package/dist/sdk/invoke.js +2 -5
- 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 +3 -30
- package/dist/x402/facilitator.d.ts.map +1 -1
- package/dist/x402/facilitator.js +0 -27
- 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/dist/zktls/t2-delivery-proof.d.ts +6 -6
- package/docs/agent-layer.md +3 -2
- package/docs/autonomous-privy-wallet.md +188 -0
- package/docs/cli.md +184 -31
- package/docs/langchain.md +5 -0
- package/docs/mcp-reference.md +75 -5
- package/docs/probe-capability.md +191 -0
- package/docs/quickstart.md +36 -1
- package/docs/threat-model.md +20 -0
- package/docs/x402.md +628 -595
- package/package.json +19 -17
- package/src/capability/probe-capability.ts +355 -0
- package/src/cli/args.ts +29 -0
- package/src/cli/commands/claim.ts +1 -1
- package/src/cli/commands/close.ts +36 -3
- package/src/cli/commands/invoke.ts +5 -2
- package/src/cli/commands/mcp.ts +18 -2
- package/src/cli/commands/open.ts +75 -4
- package/src/cli/commands/pay.ts +442 -0
- package/src/cli/commands/reclaim-unverified.ts +8 -2
- package/src/cli/commands/reclaim.ts +252 -14
- package/src/cli/commands/refund.ts +277 -0
- package/src/cli/commands/status.ts +17 -1
- package/src/cli/commands/streams.ts +10 -14
- package/src/cli/commands/watch.ts +7 -1
- package/src/cli/config.ts +139 -52
- package/src/cli/deps.ts +74 -1
- 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 +4 -2
- 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/status.ts +14 -1
- package/src/cli/wallet.ts +2 -2
- 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 +320 -68
- package/src/gateway/http-server.ts +629 -220
- 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 +82 -19
- package/src/mcp/server.ts +319 -42
- package/src/mcp/x402-tools.ts +621 -0
- package/src/network.ts +302 -0
- package/src/sdk/invoke.ts +6 -5
- 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 +3 -43
- 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/gateway/x402-mode.d.ts +0 -123
- package/dist/gateway/x402-mode.d.ts.map +0 -1
- package/dist/gateway/x402-mode.js +0 -212
- package/dist/gateway/x402-mode.js.map +0 -1
- package/dist/x402/delivery-oracle.d.ts +0 -108
- package/dist/x402/delivery-oracle.d.ts.map +0 -1
- package/dist/x402/delivery-oracle.js +0 -174
- package/dist/x402/delivery-oracle.js.map +0 -1
- package/dist/x402/facilitator-server-entry.d.ts +0 -3
- package/dist/x402/facilitator-server-entry.d.ts.map +0 -1
- package/dist/x402/facilitator-server-entry.js +0 -27
- package/dist/x402/facilitator-server-entry.js.map +0 -1
- package/dist/x402/facilitator-server.d.ts +0 -73
- package/dist/x402/facilitator-server.d.ts.map +0 -1
- package/dist/x402/facilitator-server.js +0 -305
- package/dist/x402/facilitator-server.js.map +0 -1
- package/dist/x402/payment-requirements.d.ts +0 -106
- package/dist/x402/payment-requirements.d.ts.map +0 -1
- package/dist/x402/payment-requirements.js +0 -138
- package/dist/x402/payment-requirements.js.map +0 -1
- package/dist/x402/relayer.d.ts +0 -41
- package/dist/x402/relayer.d.ts.map +0 -1
- package/dist/x402/relayer.js +0 -64
- package/dist/x402/relayer.js.map +0 -1
- package/dist/x402/resource-index.d.ts +0 -75
- package/dist/x402/resource-index.d.ts.map +0 -1
- package/dist/x402/resource-index.js +0 -126
- package/dist/x402/resource-index.js.map +0 -1
- package/dist/x402/verified-delivery-facilitator.d.ts +0 -285
- package/dist/x402/verified-delivery-facilitator.d.ts.map +0 -1
- package/dist/x402/verified-delivery-facilitator.js +0 -423
- package/dist/x402/verified-delivery-facilitator.js.map +0 -1
- package/src/gateway/x402-mode.ts +0 -350
- package/src/x402/delivery-oracle.ts +0 -285
- package/src/x402/facilitator-server-entry.ts +0 -35
- package/src/x402/facilitator-server.ts +0 -445
- package/src/x402/payment-requirements.ts +0 -231
- package/src/x402/relayer.ts +0 -122
- package/src/x402/resource-index.ts +0 -228
- package/src/x402/verified-delivery-facilitator.ts +0 -744
|
@@ -2,6 +2,7 @@ import { attesterDisclosure } from "../attesters.js";
|
|
|
2
2
|
import { assertTestnetRpc, parseBytes32 } from "../config.js";
|
|
3
3
|
import { usageError } from "../errors.js";
|
|
4
4
|
import { readStreamReport, streamReportJson, streamReportRows, } from "../status.js";
|
|
5
|
+
import { escrowGenerationFor } from "../../escrow-generation.js";
|
|
5
6
|
export const statusCommand = {
|
|
6
7
|
name: "status",
|
|
7
8
|
summary: "Show a stream's on-chain state and its oracle-verified accrual",
|
|
@@ -21,7 +22,7 @@ export const statusCommand = {
|
|
|
21
22
|
// diverge from index 5 onward, so a wrong-chain read does not revert — it
|
|
22
23
|
// silently decodes something else into fields with the right names.
|
|
23
24
|
await assertTestnetRpc(config, () => read.getChainId());
|
|
24
|
-
const report = await readStreamReport(read, streamId, deps.nowSeconds());
|
|
25
|
+
const report = await readStreamReport(read, streamId, deps.nowSeconds(), escrowGenerationFor(config.chainId, config.escrow));
|
|
25
26
|
out.result(streamReportJson(report));
|
|
26
27
|
// Who attests, before the numbers. Printed on stderr so it survives `--json`
|
|
27
28
|
// and cannot be lost by a consumer that only parses stdout.
|
|
@@ -30,6 +31,14 @@ export const statusCommand = {
|
|
|
30
31
|
out.note(disclosure);
|
|
31
32
|
out.print(`Stream ${streamId}`);
|
|
32
33
|
out.table(streamReportRows(report));
|
|
34
|
+
const opener = report.stream.opener ?? null;
|
|
35
|
+
if (opener !== null) {
|
|
36
|
+
out.print("");
|
|
37
|
+
out.print(`Bought over x402: the escrow accepts close/reclaim only from the opener ${opener}. ` +
|
|
38
|
+
`\`metrik close ${streamId}\` (signed by the payer ${report.stream.payer}) routes through it; ` +
|
|
39
|
+
`\`metrik reclaim ${streamId}\` sends the permissionless opener.reclaim, and the refund always goes to the payer. ` +
|
|
40
|
+
"A payer with no gas can use the seller's relay instead: `metrik refund <streamId> --refund-url <url> --close --reclaim`. Nothing refunds automatically.");
|
|
41
|
+
}
|
|
33
42
|
if (report.settlement.pending) {
|
|
34
43
|
out.print("");
|
|
35
44
|
out.print("This stream has stopped but its final checkpoint has not landed, so there is no settled reclaimable figure yet — reclaim reverts until the oracle publishes a checkpoint reaching the stop time. `metrik reclaim <streamId>` waits for exactly that.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,gEAAgE;IACzE,KAAK,EAAE,0BAA0B;IACjC,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,KAAK;IACZ,KAAK,CAAC,GAAG,CAAC,OAAuB;QAC/B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAC5C,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,6EAA6E;QAC7E,uEAAuE;QACvE,0EAA0E;QAC1E,oEAAoE;QACpE,MAAM,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,IAAI,EACJ,QAAQ,EACR,IAAI,CAAC,UAAU,EAAE,EACjB,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CACnD,CAAC;QAEF,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,6EAA6E;QAC7E,4DAA4D;QAC5D,MAAM,UAAU,GAAG,kBAAkB,CACnC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAC;QACF,IAAI,UAAU,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QAC5C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CACP,2EAA2E,MAAM,IAAI;gBACnF,kBAAkB,QAAQ,2BAA2B,MAAM,CAAC,MAAM,CAAC,KAAK,uBAAuB;gBAC/F,oBAAoB,QAAQ,uFAAuF;gBACnH,yJAAyJ,CAC5J,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CACP,sPAAsP,CACvP,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CACP,mJAAmJ,CACpJ,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { BASE_SEPOLIA_ESCROW_V2 } from "@absol-labs/sdk";
|
|
2
1
|
import { getAddress, isAddress } from "viem";
|
|
3
2
|
import { integerFlag, stringFlag } from "../args.js";
|
|
4
3
|
import { formatUsdc } from "../amounts.js";
|
|
5
|
-
import {
|
|
4
|
+
import { assertTestnetRpc, escrowDeployBlock, } from "../config.js";
|
|
6
5
|
import { CliError, configError, usageError } from "../errors.js";
|
|
7
6
|
import { escrowScanRange } from "../scan-range.js";
|
|
8
7
|
import { optionalCliWallet, PRIVATE_KEY_ENV } from "../wallet.js";
|
|
@@ -18,7 +17,7 @@ const SCAN_CONCURRENCY = 6;
|
|
|
18
17
|
/**
|
|
19
18
|
* Attempts per window before it is reported as unscanned. A public RPC answers
|
|
20
19
|
* a burst of `eth_getLogs` with an occasional 429 — measured against
|
|
21
|
-
*
|
|
20
|
+
* the network's public RPC, 2 of 212 windows on a full-history scan — and a transient
|
|
22
21
|
* rate-limit is NOT a window that cannot be scanned. Declaring it one would
|
|
23
22
|
* make the "this scan is incomplete" warning routine, and a warning that fires
|
|
24
23
|
* on every healthy run is a warning nobody reads on the run that matters.
|
|
@@ -49,7 +48,7 @@ export const streamsCommand = {
|
|
|
49
48
|
// index 5 onward — a wrong-chain read does not revert, it decodes something
|
|
50
49
|
// else into fields with the right names.
|
|
51
50
|
await assertTestnetRpc(config, () => read.getChainId());
|
|
52
|
-
const anchor = resolveAnchorBlock(args, config
|
|
51
|
+
const anchor = resolveAnchorBlock(args, config);
|
|
53
52
|
const head = await read.blockNumber();
|
|
54
53
|
const range = escrowScanRange(head, anchor.block);
|
|
55
54
|
// Retention canary, before the scan is believed. A node that has pruned its
|
|
@@ -184,19 +183,16 @@ async function resolveScanAddress(context) {
|
|
|
184
183
|
* constant for — so an overridden `--escrow` or `--from-block` scans without a
|
|
185
184
|
* canary rather than with a meaningless one.
|
|
186
185
|
*/
|
|
187
|
-
function resolveAnchorBlock(args,
|
|
186
|
+
function resolveAnchorBlock(args, config) {
|
|
188
187
|
const override = integerFlag(args, "from-block");
|
|
189
|
-
const
|
|
188
|
+
const deployBlock = escrowDeployBlock(config);
|
|
190
189
|
if (override !== undefined) {
|
|
191
190
|
return { block: BigInt(override), canary: null };
|
|
192
191
|
}
|
|
193
|
-
if (
|
|
194
|
-
throw configError(`no scan anchor is known for escrow ${escrow}`,
|
|
192
|
+
if (deployBlock === undefined) {
|
|
193
|
+
throw configError(`no scan anchor is known for escrow ${config.escrow}`, `the scan is anchored at the escrow's deploy block, and the network registry only records it for ${config.network.name}'s registered escrow (${config.network.escrow.address}). Pass --from-block <deploy block> for a different escrow.`);
|
|
195
194
|
}
|
|
196
|
-
return {
|
|
197
|
-
block: BASE_SEPOLIA_ESCROW_V2_DEPLOY_BLOCK,
|
|
198
|
-
canary: BASE_SEPOLIA_ESCROW_V2_DEPLOY_BLOCK,
|
|
199
|
-
};
|
|
195
|
+
return { block: deployBlock, canary: deployBlock };
|
|
200
196
|
}
|
|
201
197
|
/**
|
|
202
198
|
* Page every window for every selected role filter, bounded concurrency.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../../src/cli/commands/streams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"streams.js","sourceRoot":"","sources":["../../../src/cli/commands/streams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjE,eAAO,MAAM,YAAY,EAAE,WA8D1B,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { integerFlag } from "../args.js";
|
|
|
2
2
|
import { assertTestnetRpc, parseBytes32 } from "../config.js";
|
|
3
3
|
import { describeError, usageError } from "../errors.js";
|
|
4
4
|
import { readStreamReport, streamReportJson, streamReportRows, } from "../status.js";
|
|
5
|
+
import { escrowGenerationFor } from "../../escrow-generation.js";
|
|
5
6
|
const DEFAULT_INTERVAL_SECONDS = 15;
|
|
6
7
|
export const watchCommand = {
|
|
7
8
|
name: "watch",
|
|
@@ -30,7 +31,7 @@ export const watchCommand = {
|
|
|
30
31
|
await deps.sleep(interval * 1_000);
|
|
31
32
|
let report;
|
|
32
33
|
try {
|
|
33
|
-
report = await readStreamReport(read, streamId, deps.nowSeconds());
|
|
34
|
+
report = await readStreamReport(read, streamId, deps.nowSeconds(), escrowGenerationFor(config.chainId, config.escrow));
|
|
34
35
|
}
|
|
35
36
|
catch (error) {
|
|
36
37
|
// A transient RPC blip must not end a long watch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/cli/commands/watch.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/config.d.ts
CHANGED
|
@@ -1,48 +1,66 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { MetrikNetwork } from "@absol-labs/sdk";
|
|
2
|
+
import { type Chain } from "viem";
|
|
2
3
|
import { type ParsedArgs } from "./args.js";
|
|
3
4
|
/**
|
|
4
|
-
* TESTNET ONLY — the
|
|
5
|
+
* TESTNET ONLY — the CLI settles only on registered networks the SDK registry
|
|
6
|
+
* marks `testnet: true`.
|
|
5
7
|
*
|
|
6
8
|
* Metrik's escrow moves real USDC the moment it is pointed at a mainnet chain,
|
|
7
9
|
* and this CLI signs with a raw private key read from the environment. So the
|
|
8
|
-
* chain is an allowlist, not a default:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* chain is an allowlist, not a default: a chain the registry does not know, or
|
|
11
|
+
* one it knows as a mainnet, is refused outright, with no override flag. There
|
|
12
|
+
* is deliberately no `--allow-mainnet` — an escape hatch that re-enables real
|
|
13
|
+
* funds would defeat the guarantee.
|
|
12
14
|
*
|
|
13
|
-
* The allowlist is enforced TWICE: once against the configured/declared
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* The allowlist is enforced TWICE: once against the configured/declared network,
|
|
16
|
+
* and again against the chain id the RPC endpoint actually reports before any
|
|
17
|
+
* fund-moving command signs anything (see `assertTestnetRpc`). The second check
|
|
18
|
+
* is what stops a testnet `--chain-id` paired with a mainnet `--rpc-url`.
|
|
17
19
|
*/
|
|
18
|
-
export declare const
|
|
20
|
+
export declare const CLI_NETWORK_POLICY: {
|
|
21
|
+
readonly testnetOnly: true;
|
|
22
|
+
};
|
|
23
|
+
/** Chain ids of every registered testnet this CLI will settle against. */
|
|
24
|
+
export declare function testnetChainIds(): number[];
|
|
19
25
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* Verified against Base Sepolia on 2026-09-17: `eth_getLogs` for this single
|
|
24
|
-
* block returns 6 escrow logs (the deployment's own events). History is
|
|
25
|
-
* immutable, so that is a stable known answer forever, which is what lets the
|
|
26
|
-
* same block serve as the log-retention canary in `metrik streams`.
|
|
27
|
-
*
|
|
28
|
-
* It is tied to that ONE address. A run pointed at a different `--escrow` has
|
|
29
|
-
* no anchor and must be given `--from-block`, rather than silently scanning
|
|
30
|
-
* from a block that means nothing for it.
|
|
26
|
+
* @deprecated Snapshot of {@link testnetChainIds} at import time. A network
|
|
27
|
+
* registered later is not in it; call `testnetChainIds()` instead.
|
|
31
28
|
*/
|
|
32
|
-
export declare const
|
|
29
|
+
export declare const TESTNET_CHAIN_IDS: readonly number[];
|
|
33
30
|
export interface CliConfig {
|
|
34
|
-
|
|
31
|
+
/** The registered network this run settles on (from the SDK registry). */
|
|
32
|
+
readonly network: MetrikNetwork;
|
|
33
|
+
readonly chain: Chain;
|
|
35
34
|
readonly chainId: number;
|
|
36
35
|
readonly rpcUrl: string;
|
|
37
36
|
readonly escrow: `0x${string}`;
|
|
38
37
|
readonly usdc: `0x${string}`;
|
|
39
38
|
readonly oracleBaseUrl: string;
|
|
40
39
|
readonly registryUrl: string;
|
|
40
|
+
/**
|
|
41
|
+
* Set ONLY for an `--escrow` the registry does not record, from the explicit
|
|
42
|
+
* `--escrow-generation`: the SDK then opts out of its code-hash pin
|
|
43
|
+
* (`allowUnregisteredEscrow`). A registered escrow's generation comes from
|
|
44
|
+
* the registry.
|
|
45
|
+
*/
|
|
46
|
+
readonly unregisteredEscrowGeneration?: "v2" | "v3";
|
|
41
47
|
}
|
|
42
48
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
49
|
+
* The block the configured escrow was deployed at — the anchor of every escrow
|
|
50
|
+
* log scan — or `undefined` when the escrow is not the network's registered
|
|
51
|
+
* escrow (a run pointed at a different `--escrow` has no anchor and must be
|
|
52
|
+
* given `--from-block`, rather than silently scanning from a block that means
|
|
53
|
+
* nothing for it).
|
|
54
|
+
*/
|
|
55
|
+
export declare function escrowDeployBlock(config: CliConfig): bigint | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Resolves settlement configuration from flags, then env, then the network's
|
|
58
|
+
* registry defaults — so `metrik discover` works with nothing configured at
|
|
45
59
|
* all, while every value stays overridable.
|
|
60
|
+
*
|
|
61
|
+
* The network is selected by `--network` / `METRIK_NETWORK` (registry id,
|
|
62
|
+
* chain id or CAIP-2 id) or by `--chain-id` / `METRIK_AGENT_CHAIN_ID`; giving
|
|
63
|
+
* both is allowed only when they agree.
|
|
46
64
|
*/
|
|
47
65
|
export declare function resolveConfig(args: ParsedArgs, env: NodeJS.ProcessEnv): CliConfig;
|
|
48
66
|
/** Flags every command accepts for settlement configuration. */
|
package/dist/cli/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,MAAM,CAAC;AAWzD,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAErE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB;;CAAiC,CAAC;AAEjE,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAsB,CAAC;AAEtE,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,4BAA4B,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAGvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,SAAS,CAwEX;AAkCD,gEAAgE;AAChE,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EASzC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAAqB,CAAC;AAEhE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ1E;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAkBf;AA6CD,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAKxE"}
|
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
|
@@ -4,6 +4,8 @@ import { type DiscoverResult, type DiscoverServicesOptions, type ServiceListing
|
|
|
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
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";
|
|
7
9
|
import type { CliConfig } from "./config.js";
|
|
8
10
|
import type { CliSignerAccount } from "./wallet.js";
|
|
9
11
|
/**
|
|
@@ -160,6 +162,26 @@ export interface CliWriteClient {
|
|
|
160
162
|
export interface CreateWriteClientOptions {
|
|
161
163
|
readonly transport?: Transport;
|
|
162
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>;
|
|
184
|
+
}
|
|
163
185
|
export interface CliDependencies {
|
|
164
186
|
readonly createReadClient: (config: CliConfig) => CliReadClient;
|
|
165
187
|
/**
|
|
@@ -174,7 +196,18 @@ export interface CliDependencies {
|
|
|
174
196
|
readonly createInvokeStreamReader: (config: CliConfig) => InvokeStreamReader;
|
|
175
197
|
readonly nowSeconds: () => number;
|
|
176
198
|
readonly sleep: (ms: number) => Promise<void>;
|
|
199
|
+
/** Optional so an embedder's existing dependency object keeps compiling. */
|
|
200
|
+
readonly x402?: CliX402;
|
|
177
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>;
|
|
178
211
|
export declare const defaultCliDependencies: CliDependencies;
|
|
179
212
|
/**
|
|
180
213
|
* The write-client options a resolved wallet implies.
|
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,SAAS,EAAE,MAAM,MAAM,CAAC;AAElE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EACjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/cli/deps.ts"],"names":[],"mappings":"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"}
|