@absol-labs/agent 0.12.0-rc.2 → 0.12.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/claim.d.ts +15 -0
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +65 -23
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/pay.d.ts +10 -0
- package/dist/cli/commands/pay.d.ts.map +1 -1
- package/dist/cli/commands/pay.js +246 -50
- package/dist/cli/commands/pay.js.map +1 -1
- package/dist/cli/commands/refund.d.ts +23 -12
- package/dist/cli/commands/refund.d.ts.map +1 -1
- package/dist/cli/commands/refund.js +104 -131
- package/dist/cli/commands/refund.js.map +1 -1
- package/dist/cli/deps.d.ts +6 -0
- package/dist/cli/deps.d.ts.map +1 -1
- package/dist/cli/deps.js +3 -0
- package/dist/cli/deps.js.map +1 -1
- package/dist/cli/errors.d.ts +8 -1
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/status.d.ts +6 -0
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +25 -6
- package/dist/cli/status.js.map +1 -1
- package/dist/gateway/x402-opener-mode.d.ts.map +1 -1
- package/dist/gateway/x402-opener-mode.js +104 -7
- package/dist/gateway/x402-opener-mode.js.map +1 -1
- package/dist/mcp/server.d.ts +10 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +21 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/x402-tools.d.ts +7 -1
- package/dist/mcp/x402-tools.d.ts.map +1 -1
- package/dist/mcp/x402-tools.js +159 -6
- package/dist/mcp/x402-tools.js.map +1 -1
- package/dist/x402-buyer/index.d.ts +1 -0
- package/dist/x402-buyer/index.d.ts.map +1 -1
- package/dist/x402-buyer/index.js +1 -0
- package/dist/x402-buyer/index.js.map +1 -1
- package/dist/x402-buyer/pay.d.ts +38 -2
- package/dist/x402-buyer/pay.d.ts.map +1 -1
- package/dist/x402-buyer/pay.js +52 -2
- package/dist/x402-buyer/pay.js.map +1 -1
- package/dist/x402-buyer/refund-actions.d.ts +168 -0
- package/dist/x402-buyer/refund-actions.d.ts.map +1 -0
- package/dist/x402-buyer/refund-actions.js +351 -0
- package/dist/x402-buyer/refund-actions.js.map +1 -0
- package/dist/x402-opener/block-floors.d.ts +35 -0
- package/dist/x402-opener/block-floors.d.ts.map +1 -0
- package/dist/x402-opener/block-floors.js +72 -0
- package/dist/x402-opener/block-floors.js.map +1 -0
- package/dist/x402-opener/facilitator-server.d.ts.map +1 -1
- package/dist/x402-opener/facilitator-server.js +7 -0
- package/dist/x402-opener/facilitator-server.js.map +1 -1
- package/dist/x402-opener/index.d.ts +1 -0
- package/dist/x402-opener/index.d.ts.map +1 -1
- package/dist/x402-opener/index.js +1 -0
- package/dist/x402-opener/index.js.map +1 -1
- package/dist/x402-opener/refund-relay.d.ts +62 -1
- package/dist/x402-opener/refund-relay.d.ts.map +1 -1
- package/dist/x402-opener/refund-relay.js +387 -208
- package/dist/x402-opener/refund-relay.js.map +1 -1
- package/dist/x402-opener/scheme.d.ts +8 -0
- package/dist/x402-opener/scheme.d.ts.map +1 -1
- package/dist/x402-opener/scheme.js +14 -0
- package/dist/x402-opener/scheme.js.map +1 -1
- package/docs/cli.md +62 -9
- package/docs/mcp-reference.md +23 -0
- package/docs/x402.md +126 -29
- package/package.json +2 -2
- package/src/cli/commands/claim.ts +72 -30
- package/src/cli/commands/pay.ts +299 -51
- package/src/cli/commands/refund.ts +133 -143
- package/src/cli/deps.ts +9 -0
- package/src/cli/errors.ts +8 -1
- package/src/cli/status.ts +28 -7
- package/src/gateway/x402-opener-mode.ts +131 -6
- package/src/mcp/server.ts +30 -1
- package/src/mcp/x402-tools.ts +222 -7
- package/src/x402-buyer/index.ts +1 -0
- package/src/x402-buyer/pay.ts +99 -2
- package/src/x402-buyer/refund-actions.ts +486 -0
- package/src/x402-opener/block-floors.ts +78 -0
- package/src/x402-opener/facilitator-server.ts +7 -0
- package/src/x402-opener/index.ts +1 -0
- package/src/x402-opener/refund-relay.ts +486 -217
- package/src/x402-opener/scheme.ts +38 -0
|
@@ -40,6 +40,7 @@ import {
|
|
|
40
40
|
|
|
41
41
|
import { x402StreamOpenerAbi, x402StreamOpenerFactoryAbi } from "./abi.js";
|
|
42
42
|
import type { OperatorSignedListingResolver } from "./listing-resolver.js";
|
|
43
|
+
import type { StreamBlockFloors } from "./block-floors.js";
|
|
43
44
|
import { RelayerQueue } from "./relayer-queue.js";
|
|
44
45
|
import {
|
|
45
46
|
chainIdFromNetwork,
|
|
@@ -233,6 +234,12 @@ export interface MetrikOpenerExactSchemeConfig {
|
|
|
233
234
|
* when the relay is actually mounted. Default false.
|
|
234
235
|
*/
|
|
235
236
|
readonly advertiseRefundRelay?: boolean;
|
|
237
|
+
/**
|
|
238
|
+
* Records the block of every successful settlement per stream id, shared
|
|
239
|
+
* with the refund relay, so the relay never answers about a just-opened
|
|
240
|
+
* stream from a lagging RPC node (it would look unknown). Optional.
|
|
241
|
+
*/
|
|
242
|
+
readonly streamFloors?: StreamBlockFloors;
|
|
236
243
|
}
|
|
237
244
|
|
|
238
245
|
/**
|
|
@@ -855,6 +862,36 @@ export class MetrikOpenerExactScheme implements SchemeNetworkFacilitator {
|
|
|
855
862
|
plan: OpenerSettlementPlan,
|
|
856
863
|
opener: Address,
|
|
857
864
|
network: Network,
|
|
865
|
+
): Promise<SettleResponse> {
|
|
866
|
+
const mined: { block?: bigint } = {};
|
|
867
|
+
const response = await this.awaitSettlementOutcome(
|
|
868
|
+
hash,
|
|
869
|
+
auth,
|
|
870
|
+
plan,
|
|
871
|
+
opener,
|
|
872
|
+
network,
|
|
873
|
+
mined,
|
|
874
|
+
);
|
|
875
|
+
if (response.success && mined.block !== undefined) {
|
|
876
|
+
const streamId = (
|
|
877
|
+
response.extra?.[OPENER_EXTRA_KEY] as { streamId?: unknown } | undefined
|
|
878
|
+
)?.streamId;
|
|
879
|
+
if (typeof streamId === "string") {
|
|
880
|
+
// The refund relay must answer about this stream from this block or
|
|
881
|
+
// later: a lagging RPC node would otherwise report it as unknown.
|
|
882
|
+
this.config.streamFloors?.note(streamId, mined.block);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
return response;
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
private async awaitSettlementOutcome(
|
|
889
|
+
hash: Hex,
|
|
890
|
+
auth: ExactEIP3009Payload & { signature: Hex },
|
|
891
|
+
plan: OpenerSettlementPlan,
|
|
892
|
+
opener: Address,
|
|
893
|
+
network: Network,
|
|
894
|
+
mined: { block?: bigint },
|
|
858
895
|
): Promise<SettleResponse> {
|
|
859
896
|
const payer = getAddress(auth.authorization.from);
|
|
860
897
|
let receipt;
|
|
@@ -863,6 +900,7 @@ export class MetrikOpenerExactScheme implements SchemeNetworkFacilitator {
|
|
|
863
900
|
hash,
|
|
864
901
|
timeout: this.receiptTimeoutMs,
|
|
865
902
|
});
|
|
903
|
+
mined.block = receipt.blockNumber;
|
|
866
904
|
} catch (error) {
|
|
867
905
|
// Broadcast but unconfirmed: keep the pending entry so a retry
|
|
868
906
|
// reconciles against this hash. Never success without a receipt.
|