@hpp-io/x402-mcp-bridge 0.0.3 → 0.1.0
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 +53 -28
- package/dist/a2a.js +11 -3
- package/dist/a2a.js.map +1 -1
- package/dist/autoTopup.d.ts +2 -0
- package/dist/autoTopup.js +4 -0
- package/dist/autoTopup.js.map +1 -1
- package/dist/cli/hpp-x402.js +3 -1
- package/dist/cli/hpp-x402.js.map +1 -1
- package/dist/cli/serve.d.ts +1 -0
- package/dist/cli/serve.js +128 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/config.d.ts +31 -14
- package/dist/config.js +27 -5
- package/dist/config.js.map +1 -1
- package/dist/funds/direct-balance.d.ts +1 -0
- package/dist/funds/direct-balance.js +5 -2
- package/dist/funds/direct-balance.js.map +1 -1
- package/dist/funds.d.ts +6 -0
- package/dist/httpX402.js +7 -0
- package/dist/httpX402.js.map +1 -1
- package/dist/index.js +40 -2
- package/dist/index.js.map +1 -1
- package/dist/sellerTools.d.ts +247 -0
- package/dist/sellerTools.js +202 -0
- package/dist/sellerTools.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +138 -3
- package/dist/server.js.map +1 -1
- package/dist/spendGuard.d.ts +24 -0
- package/dist/spendGuard.js +124 -0
- package/dist/spendGuard.js.map +1 -0
- package/package.json +7 -2
package/dist/config.js
CHANGED
|
@@ -8,6 +8,11 @@ import { z } from "zod";
|
|
|
8
8
|
const HEX_ADDR = /^0x[0-9a-fA-F]{40}$/;
|
|
9
9
|
const HEX_KEY = /^0x[0-9a-fA-F]{64}$/;
|
|
10
10
|
const KEYCHAIN_URI = /^keychain:\/\/[^\/]+\/[a-zA-Z0-9._-]+$/;
|
|
11
|
+
// Per-network defaults so USDCE_ADDRESS / HPP_RPC_URL can be omitted (zero-config).
|
|
12
|
+
const NETWORK_DEFAULTS = {
|
|
13
|
+
"eip155:181228": { rpc: "https://sepolia.hpp.io", usdc: "0x401eCb1D350407f13ba348573E5630B83638E30D" },
|
|
14
|
+
"eip155:190415": { rpc: "https://mainnet.hpp.io", usdc: "0x401eCb1D350407f13ba348573E5630B83638E30D" },
|
|
15
|
+
};
|
|
11
16
|
const Schema = z.object({
|
|
12
17
|
// Delegate EOA — signs EIP-3009 payments + executeAllowanceTransfer.
|
|
13
18
|
// Accepted forms:
|
|
@@ -22,17 +27,19 @@ const Schema = z.object({
|
|
|
22
27
|
SAFE_ADDRESS: z.string().regex(HEX_ADDR).optional(),
|
|
23
28
|
// Deployed AllowanceModule (Safe mode only; pairs with SAFE_ADDRESS).
|
|
24
29
|
ALLOWANCE_MODULE_ADDRESS: z.string().regex(HEX_ADDR).optional(),
|
|
25
|
-
// Asset paid in (USDC.e on HPP).
|
|
26
|
-
USDCE_ADDRESS: z.string().regex(HEX_ADDR),
|
|
30
|
+
// Asset paid in (USDC.e on HPP). Optional — defaults per network (below).
|
|
31
|
+
USDCE_ADDRESS: z.string().regex(HEX_ADDR).optional(),
|
|
27
32
|
// Remote MCP server we proxy to (the seller). Optional: when unset the
|
|
28
33
|
// bridge runs in local-tools-only mode (e.g. credit top-up / A2A) and skips
|
|
29
34
|
// the upstream connection entirely.
|
|
30
35
|
RESOURCE_SERVER_URL: z.string().url().optional(),
|
|
31
|
-
// Chain RPC.
|
|
32
|
-
HPP_RPC_URL: z.string().url(),
|
|
36
|
+
// Chain RPC. Optional — defaults per network (below).
|
|
37
|
+
HPP_RPC_URL: z.string().url().optional(),
|
|
33
38
|
// CAIP-2 network identifier used by @x402/evm.
|
|
34
39
|
// e.g. "eip155:181228" (HPP Sepolia) / "eip155:190415" (HPP Mainnet).
|
|
35
|
-
|
|
40
|
+
// Optional — defaults to HPP Sepolia so a bare `npx @hpp-io/x402-mcp-bridge`
|
|
41
|
+
// boots with zero config (see NETWORK_DEFAULTS + runBridge auto-wallet).
|
|
42
|
+
HPP_NETWORK: z.string().regex(/^eip155:\d+$/).optional().default("eip155:181228"),
|
|
36
43
|
// Optional knobs ------------------------------------------------------
|
|
37
44
|
// How much to pull on each topup, in atomic USDC.e units. If unset,
|
|
38
45
|
// the bridge tops up "just enough" for the upcoming payment + small
|
|
@@ -61,6 +68,15 @@ const Schema = z.object({
|
|
|
61
68
|
.url()
|
|
62
69
|
.optional()
|
|
63
70
|
.default("https://x402-discovery.hpp.io"),
|
|
71
|
+
// Seller tools (A2 Phase 1). "on" registers seller_* MCP tools so this agent
|
|
72
|
+
// can charge others over x402 (facilitator verify/settle wrappers). Off by
|
|
73
|
+
// default — buyers don't need them.
|
|
74
|
+
HPP_X402_SELLER: z.enum(["on", "off"]).optional().default("off"),
|
|
75
|
+
HPP_X402_FACILITATOR_URL: z
|
|
76
|
+
.string()
|
|
77
|
+
.url()
|
|
78
|
+
.optional()
|
|
79
|
+
.default("https://facilitator-sepolia.hpp.io"),
|
|
64
80
|
})
|
|
65
81
|
// Wallet mode is inferred from Safe config presence: both set = Safe mode
|
|
66
82
|
// (autoTopup from the Safe within an on-chain cap); both omitted = light mode
|
|
@@ -88,12 +104,18 @@ export function loadConfig(env = process.env) {
|
|
|
88
104
|
const v = parsed.data;
|
|
89
105
|
const chainId = Number(v.HPP_NETWORK.split(":")[1]);
|
|
90
106
|
const walletMode = v.SAFE_ADDRESS && v.ALLOWANCE_MODULE_ADDRESS ? "safe" : "light";
|
|
107
|
+
// Zero-config: fill USDC.e + RPC from per-network defaults when omitted.
|
|
108
|
+
const defaults = NETWORK_DEFAULTS[v.HPP_NETWORK] ?? NETWORK_DEFAULTS["eip155:181228"];
|
|
91
109
|
return {
|
|
92
110
|
...v,
|
|
111
|
+
USDCE_ADDRESS: v.USDCE_ADDRESS ?? defaults.usdc,
|
|
112
|
+
HPP_RPC_URL: v.HPP_RPC_URL ?? defaults.rpc,
|
|
93
113
|
chainId,
|
|
94
114
|
walletMode,
|
|
95
115
|
discoveryEnabled: v.HPP_X402_DISCOVERY === "on",
|
|
96
116
|
discoveryUrl: v.HPP_X402_DISCOVERY_URL,
|
|
117
|
+
sellerEnabled: v.HPP_X402_SELLER === "on",
|
|
118
|
+
facilitatorUrl: v.HPP_X402_FACILITATOR_URL,
|
|
97
119
|
};
|
|
98
120
|
}
|
|
99
121
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AACvC,MAAM,OAAO,GAAG,qBAAqB,CAAC;AACtC,MAAM,YAAY,GAAG,wCAAwC,CAAC;AAE9D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,qEAAqE;IACrE,kBAAkB;IAClB,oDAAoD;IACpD,+EAA+E;IAC/E,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAC9C,6DAA6D,CAC9D;IAEH,4EAA4E;IAC5E,2EAA2E;IAC3E,mEAAmE;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;IAEnD,sEAAsE;IACtE,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;IAE/D,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,13 +41,16 @@ export class DirectBalance {
|
|
|
41
41
|
* (sufficient balance) or throws with a funding instruction. It never returns
|
|
42
42
|
* a tx hash.
|
|
43
43
|
*/
|
|
44
|
-
async
|
|
45
|
-
|
|
44
|
+
async balance() {
|
|
45
|
+
return (await this.publicClient.readContract({
|
|
46
46
|
address: this.token,
|
|
47
47
|
abi: ERC20_BALANCE_ABI,
|
|
48
48
|
functionName: "balanceOf",
|
|
49
49
|
args: [this.delegate],
|
|
50
50
|
}));
|
|
51
|
+
}
|
|
52
|
+
async ensure(requiredAtomic) {
|
|
53
|
+
const balance = await this.balance();
|
|
51
54
|
if (balance >= requiredAtomic)
|
|
52
55
|
return null;
|
|
53
56
|
throw new Error(`insufficient USDC.e: need ${requiredAtomic}, have ${balance}. ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-balance.js","sourceRoot":"","sources":["../../src/funds/direct-balance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,kBAAkB,EAClB,IAAI,EACJ,WAAW,GAIZ,MAAM,MAAM,CAAC;AAId,MAAM,iBAAiB,GAAG;IACxB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;CACO,CAAC;AAEX,MAAM,OAAO,aAAa;IAIL;IACA;IAJF,YAAY,CAAe;IAE5C,YACmB,QAAiB,EACjB,KAAc,EAC/B,OAAe,EACf,MAAc;QAHG,aAAQ,GAAR,QAAQ,CAAS;QACjB,UAAK,GAAL,KAAK,CAAS;QAI/B,MAAM,KAAK,GAAG,WAAW,CAAC;YACxB,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,SAAS,OAAO,EAAE;YACxB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC9D,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;SACzC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"direct-balance.js","sourceRoot":"","sources":["../../src/funds/direct-balance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,kBAAkB,EAClB,IAAI,EACJ,WAAW,GAIZ,MAAM,MAAM,CAAC;AAId,MAAM,iBAAiB,GAAG;IACxB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;CACO,CAAC;AAEX,MAAM,OAAO,aAAa;IAIL;IACA;IAJF,YAAY,CAAe;IAE5C,YACmB,QAAiB,EACjB,KAAc,EAC/B,OAAe,EACf,MAAc;QAHG,aAAQ,GAAR,QAAQ,CAAS;QACjB,UAAK,GAAL,KAAK,CAAS;QAI/B,MAAM,KAAK,GAAG,WAAW,CAAC;YACxB,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,SAAS,OAAO,EAAE;YACxB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC9D,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;SACzC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,KAAK;YACnB,GAAG,EAAE,iBAAiB;YACtB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAW,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErC,IAAI,OAAO,IAAI,cAAc;YAAE,OAAO,IAAI,CAAC;QAE3C,MAAM,IAAI,KAAK,CACb,6BAA6B,cAAc,UAAU,OAAO,IAAI;YAC9D,kBAAkB,IAAI,CAAC,QAAQ,6BAA6B;YAC5D,2BAA2B,CAC9B,CAAC;IACJ,CAAC;CACF"}
|
package/dist/funds.d.ts
CHANGED
|
@@ -23,4 +23,10 @@ export interface Funds {
|
|
|
23
23
|
* host-surfaceable error when funds are insufficient and cannot be topped up.
|
|
24
24
|
*/
|
|
25
25
|
ensure(requiredAtomic: bigint): Promise<Hex | null>;
|
|
26
|
+
/**
|
|
27
|
+
* The delegate's current balance of the payment asset (atomic units) — the
|
|
28
|
+
* immediately-spendable balance. In Safe mode the Safe can top up more on
|
|
29
|
+
* demand (see {@link ensure}).
|
|
30
|
+
*/
|
|
31
|
+
balance(): Promise<bigint>;
|
|
26
32
|
}
|
package/dist/httpX402.js
CHANGED
|
@@ -24,6 +24,7 @@ import { x402Client, x402HTTPClient } from "@x402/core/client";
|
|
|
24
24
|
import { ExactEvmScheme } from "@x402/evm/exact/client";
|
|
25
25
|
import { pickExactAccept } from "./a2a.js";
|
|
26
26
|
import { loadPolicy, checkAccess, checkAmount, resolveCredentials, checkCooldown, recordPaid, acquireHostLock, } from "./policy.js";
|
|
27
|
+
import { checkWalletSpend, recordWalletSpend } from "./spendGuard.js";
|
|
27
28
|
import { log } from "./log.js";
|
|
28
29
|
export const X402_HTTP_TOOL = {
|
|
29
30
|
name: "x402_http_call",
|
|
@@ -166,6 +167,11 @@ export async function x402HttpCall(deps, args) {
|
|
|
166
167
|
const deny = checkAmount(access.limits, amount);
|
|
167
168
|
if (deny)
|
|
168
169
|
return errorResult(`blocked: ${deny}`);
|
|
170
|
+
// wallet-wide guard (per-call + daily ledger) — uniform across all payment
|
|
171
|
+
// tools; blocks a runaway agent before signing.
|
|
172
|
+
const walletDeny = checkWalletSpend(amount);
|
|
173
|
+
if (walletDeny)
|
|
174
|
+
return errorResult(`blocked: ${walletDeny}`);
|
|
169
175
|
// Ensure the delegate holds enough USDC.e (Safe autoTopup within the
|
|
170
176
|
// on-chain cap, or a light-mode balance check — same gate either way).
|
|
171
177
|
if (deps.funds) {
|
|
@@ -198,6 +204,7 @@ export async function x402HttpCall(deps, args) {
|
|
|
198
204
|
// retries; a failed settle (isError) stays retryable.
|
|
199
205
|
if (!result.isError) {
|
|
200
206
|
recordPaid(host, result.content[0].text ?? "");
|
|
207
|
+
recordWalletSpend(amount);
|
|
201
208
|
}
|
|
202
209
|
log.info("x402_http_call.done", {
|
|
203
210
|
host,
|
package/dist/httpX402.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpX402.js","sourceRoot":"","sources":["../src/httpX402.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"httpX402.js","sourceRoot":"","sources":["../src/httpX402.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,10 +14,41 @@ import { DirectBalance } from "./funds/direct-balance.js";
|
|
|
14
14
|
import { connectUpstream } from "./client.js";
|
|
15
15
|
import { startBridgeServer } from "./server.js";
|
|
16
16
|
import { DiscoveryClient } from "./discovery.js";
|
|
17
|
-
import { isKeychainURI, resolveKeychain } from "./keychain.js";
|
|
17
|
+
import { isKeychainURI, resolveKeychain, setKeychain, buildKeychainURI, } from "./keychain.js";
|
|
18
|
+
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
|
|
18
19
|
const PKG_NAME = "@hpp-io/x402-mcp-bridge";
|
|
19
|
-
const PKG_VERSION = "0.0
|
|
20
|
+
const PKG_VERSION = "0.1.0"; // mirrors package.json — bump together
|
|
21
|
+
const DEFAULT_ACCOUNT = "delegate-default";
|
|
22
|
+
/**
|
|
23
|
+
* Zero-config first run: if no DELEGATE_PRIVATE_KEY is supplied, auto-create a
|
|
24
|
+
* delegate wallet in the OS keychain (idempotent — reused on later runs) and
|
|
25
|
+
* point the env at its keychain URI. Lets a bare
|
|
26
|
+
* `npx -y @hpp-io/x402-mcp-bridge` boot with no config; the user just funds the
|
|
27
|
+
* printed address. Explicitly-set keys are untouched.
|
|
28
|
+
*/
|
|
29
|
+
function ensureDelegateKey(env) {
|
|
30
|
+
if (env.DELEGATE_PRIVATE_KEY)
|
|
31
|
+
return;
|
|
32
|
+
const uri = buildKeychainURI(DEFAULT_ACCOUNT);
|
|
33
|
+
let key;
|
|
34
|
+
let created = false;
|
|
35
|
+
try {
|
|
36
|
+
key = resolveKeychain(uri);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
key = generatePrivateKey();
|
|
40
|
+
setKeychain(DEFAULT_ACCOUNT, key);
|
|
41
|
+
created = true;
|
|
42
|
+
}
|
|
43
|
+
env.DELEGATE_PRIVATE_KEY = uri;
|
|
44
|
+
const address = privateKeyToAccount(key).address;
|
|
45
|
+
// Written straight to stderr (not the level-gated logger, which isn't
|
|
46
|
+
// configured yet at this point) so the funding address is always visible.
|
|
47
|
+
process.stderr.write(`\nhpp-x402: wallet ${created ? "created" : "ready"} → ${address}\n` +
|
|
48
|
+
` ▶ Fund it: send USDC.e to this address (no native gas needed).\n\n`);
|
|
49
|
+
}
|
|
20
50
|
export async function runBridge(env = process.env) {
|
|
51
|
+
ensureDelegateKey(env);
|
|
21
52
|
const cfg = loadConfig(env);
|
|
22
53
|
setLogLevel(cfg.LOG_LEVEL);
|
|
23
54
|
log.info("bridge.start", {
|
|
@@ -85,6 +116,12 @@ export async function runBridge(env = process.env) {
|
|
|
85
116
|
: undefined;
|
|
86
117
|
if (discovery)
|
|
87
118
|
log.info("discovery.enabled", { url: cfg.discoveryUrl });
|
|
119
|
+
// Seller tools — register seller_* when enabled.
|
|
120
|
+
const seller = cfg.sellerEnabled
|
|
121
|
+
? { network: cfg.HPP_NETWORK, facilitatorUrl: cfg.facilitatorUrl }
|
|
122
|
+
: undefined;
|
|
123
|
+
if (seller)
|
|
124
|
+
log.info("seller.enabled", { facilitator: cfg.facilitatorUrl });
|
|
88
125
|
await startBridgeServer({
|
|
89
126
|
upstream,
|
|
90
127
|
name: PKG_NAME,
|
|
@@ -93,6 +130,7 @@ export async function runBridge(env = process.env) {
|
|
|
93
130
|
network: cfg.HPP_NETWORK,
|
|
94
131
|
funds,
|
|
95
132
|
discovery,
|
|
133
|
+
seller,
|
|
96
134
|
a2aRpcTimeoutMs,
|
|
97
135
|
});
|
|
98
136
|
// Graceful shutdown: when the host closes our stdin (or Claude Desktop
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import type { Network } from "@x402/core/types";
|
|
2
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
export interface SellerDeps {
|
|
4
|
+
/** Default network for create_requirements when the caller omits one. */
|
|
5
|
+
network: Network;
|
|
6
|
+
/** Facilitator base URL used by verify/settle. */
|
|
7
|
+
facilitatorUrl: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const SELLER_CREATE_REQUIREMENTS_TOOL: {
|
|
10
|
+
readonly name: "seller_create_requirements";
|
|
11
|
+
readonly description: string;
|
|
12
|
+
readonly inputSchema: {
|
|
13
|
+
readonly type: "object";
|
|
14
|
+
readonly properties: {
|
|
15
|
+
readonly amount: {
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly description: "Price in atomic units (e.g. '10000' = 0.01 USDC.e).";
|
|
18
|
+
};
|
|
19
|
+
readonly payTo: {
|
|
20
|
+
readonly type: "string";
|
|
21
|
+
readonly description: "Your wallet address (receives payment).";
|
|
22
|
+
};
|
|
23
|
+
readonly asset: {
|
|
24
|
+
readonly type: "string";
|
|
25
|
+
readonly description: "Token address (USDC.e on HPP).";
|
|
26
|
+
};
|
|
27
|
+
readonly network: {
|
|
28
|
+
readonly type: "string";
|
|
29
|
+
readonly description: "CAIP-2 network; defaults to the bridge network.";
|
|
30
|
+
};
|
|
31
|
+
readonly scheme: {
|
|
32
|
+
readonly type: "string";
|
|
33
|
+
readonly enum: readonly ["exact", "upto", "batch-settlement"];
|
|
34
|
+
readonly description: "Payment scheme (default exact).";
|
|
35
|
+
};
|
|
36
|
+
readonly maxTimeoutSeconds: {
|
|
37
|
+
readonly type: "number";
|
|
38
|
+
readonly description: "Payment validity window (default 600).";
|
|
39
|
+
};
|
|
40
|
+
readonly extra: {
|
|
41
|
+
readonly type: "object";
|
|
42
|
+
readonly description: "Scheme-specific extras (EIP-712 domain, Permit2 proxy, channel info).";
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
readonly required: readonly ["amount", "payTo", "asset"];
|
|
46
|
+
readonly additionalProperties: false;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export declare const SELLER_GENERATE_402_TOOL: {
|
|
50
|
+
readonly name: "seller_generate_402";
|
|
51
|
+
readonly description: string;
|
|
52
|
+
readonly inputSchema: {
|
|
53
|
+
readonly type: "object";
|
|
54
|
+
readonly properties: {
|
|
55
|
+
readonly accepts: {
|
|
56
|
+
readonly type: "array";
|
|
57
|
+
readonly description: "PaymentRequirements[] the buyer may choose from.";
|
|
58
|
+
readonly items: {
|
|
59
|
+
readonly type: "object";
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
readonly resource: {
|
|
63
|
+
readonly type: "string";
|
|
64
|
+
readonly description: "The resource URL being protected.";
|
|
65
|
+
};
|
|
66
|
+
readonly error: {
|
|
67
|
+
readonly type: "string";
|
|
68
|
+
readonly description: "Optional human-readable reason.";
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
readonly required: readonly ["accepts"];
|
|
72
|
+
readonly additionalProperties: false;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
export declare const SELLER_DECODE_PAYMENT_TOOL: {
|
|
76
|
+
readonly name: "seller_decode_payment";
|
|
77
|
+
readonly description: string;
|
|
78
|
+
readonly inputSchema: {
|
|
79
|
+
readonly type: "object";
|
|
80
|
+
readonly properties: {
|
|
81
|
+
readonly paymentHeader: {
|
|
82
|
+
readonly type: "string";
|
|
83
|
+
readonly description: "The base64 X-PAYMENT header value.";
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
readonly required: readonly ["paymentHeader"];
|
|
87
|
+
readonly additionalProperties: false;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
export declare const SELLER_VERIFY_TOOL: {
|
|
91
|
+
readonly name: "seller_verify";
|
|
92
|
+
readonly description: string;
|
|
93
|
+
readonly inputSchema: {
|
|
94
|
+
readonly type: "object";
|
|
95
|
+
readonly properties: {
|
|
96
|
+
readonly paymentHeader: {
|
|
97
|
+
readonly type: "string";
|
|
98
|
+
readonly description: "The base64 X-PAYMENT header.";
|
|
99
|
+
};
|
|
100
|
+
readonly paymentRequirements: {
|
|
101
|
+
readonly type: "object";
|
|
102
|
+
readonly description: "The requirements you advertised for this resource.";
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
readonly required: readonly ["paymentHeader", "paymentRequirements"];
|
|
106
|
+
readonly additionalProperties: false;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
export declare const SELLER_SETTLE_TOOL: {
|
|
110
|
+
readonly name: "seller_settle";
|
|
111
|
+
readonly description: string;
|
|
112
|
+
readonly inputSchema: {
|
|
113
|
+
readonly type: "object";
|
|
114
|
+
readonly properties: {
|
|
115
|
+
readonly paymentHeader: {
|
|
116
|
+
readonly type: "string";
|
|
117
|
+
readonly description: "The base64 X-PAYMENT header.";
|
|
118
|
+
};
|
|
119
|
+
readonly paymentRequirements: {
|
|
120
|
+
readonly type: "object";
|
|
121
|
+
readonly description: "The requirements you advertised for this resource.";
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
readonly required: readonly ["paymentHeader", "paymentRequirements"];
|
|
125
|
+
readonly additionalProperties: false;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
export declare const SELLER_TOOLS: readonly [{
|
|
129
|
+
readonly name: "seller_create_requirements";
|
|
130
|
+
readonly description: string;
|
|
131
|
+
readonly inputSchema: {
|
|
132
|
+
readonly type: "object";
|
|
133
|
+
readonly properties: {
|
|
134
|
+
readonly amount: {
|
|
135
|
+
readonly type: "string";
|
|
136
|
+
readonly description: "Price in atomic units (e.g. '10000' = 0.01 USDC.e).";
|
|
137
|
+
};
|
|
138
|
+
readonly payTo: {
|
|
139
|
+
readonly type: "string";
|
|
140
|
+
readonly description: "Your wallet address (receives payment).";
|
|
141
|
+
};
|
|
142
|
+
readonly asset: {
|
|
143
|
+
readonly type: "string";
|
|
144
|
+
readonly description: "Token address (USDC.e on HPP).";
|
|
145
|
+
};
|
|
146
|
+
readonly network: {
|
|
147
|
+
readonly type: "string";
|
|
148
|
+
readonly description: "CAIP-2 network; defaults to the bridge network.";
|
|
149
|
+
};
|
|
150
|
+
readonly scheme: {
|
|
151
|
+
readonly type: "string";
|
|
152
|
+
readonly enum: readonly ["exact", "upto", "batch-settlement"];
|
|
153
|
+
readonly description: "Payment scheme (default exact).";
|
|
154
|
+
};
|
|
155
|
+
readonly maxTimeoutSeconds: {
|
|
156
|
+
readonly type: "number";
|
|
157
|
+
readonly description: "Payment validity window (default 600).";
|
|
158
|
+
};
|
|
159
|
+
readonly extra: {
|
|
160
|
+
readonly type: "object";
|
|
161
|
+
readonly description: "Scheme-specific extras (EIP-712 domain, Permit2 proxy, channel info).";
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
readonly required: readonly ["amount", "payTo", "asset"];
|
|
165
|
+
readonly additionalProperties: false;
|
|
166
|
+
};
|
|
167
|
+
}, {
|
|
168
|
+
readonly name: "seller_generate_402";
|
|
169
|
+
readonly description: string;
|
|
170
|
+
readonly inputSchema: {
|
|
171
|
+
readonly type: "object";
|
|
172
|
+
readonly properties: {
|
|
173
|
+
readonly accepts: {
|
|
174
|
+
readonly type: "array";
|
|
175
|
+
readonly description: "PaymentRequirements[] the buyer may choose from.";
|
|
176
|
+
readonly items: {
|
|
177
|
+
readonly type: "object";
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
readonly resource: {
|
|
181
|
+
readonly type: "string";
|
|
182
|
+
readonly description: "The resource URL being protected.";
|
|
183
|
+
};
|
|
184
|
+
readonly error: {
|
|
185
|
+
readonly type: "string";
|
|
186
|
+
readonly description: "Optional human-readable reason.";
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
readonly required: readonly ["accepts"];
|
|
190
|
+
readonly additionalProperties: false;
|
|
191
|
+
};
|
|
192
|
+
}, {
|
|
193
|
+
readonly name: "seller_decode_payment";
|
|
194
|
+
readonly description: string;
|
|
195
|
+
readonly inputSchema: {
|
|
196
|
+
readonly type: "object";
|
|
197
|
+
readonly properties: {
|
|
198
|
+
readonly paymentHeader: {
|
|
199
|
+
readonly type: "string";
|
|
200
|
+
readonly description: "The base64 X-PAYMENT header value.";
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
readonly required: readonly ["paymentHeader"];
|
|
204
|
+
readonly additionalProperties: false;
|
|
205
|
+
};
|
|
206
|
+
}, {
|
|
207
|
+
readonly name: "seller_verify";
|
|
208
|
+
readonly description: string;
|
|
209
|
+
readonly inputSchema: {
|
|
210
|
+
readonly type: "object";
|
|
211
|
+
readonly properties: {
|
|
212
|
+
readonly paymentHeader: {
|
|
213
|
+
readonly type: "string";
|
|
214
|
+
readonly description: "The base64 X-PAYMENT header.";
|
|
215
|
+
};
|
|
216
|
+
readonly paymentRequirements: {
|
|
217
|
+
readonly type: "object";
|
|
218
|
+
readonly description: "The requirements you advertised for this resource.";
|
|
219
|
+
};
|
|
220
|
+
};
|
|
221
|
+
readonly required: readonly ["paymentHeader", "paymentRequirements"];
|
|
222
|
+
readonly additionalProperties: false;
|
|
223
|
+
};
|
|
224
|
+
}, {
|
|
225
|
+
readonly name: "seller_settle";
|
|
226
|
+
readonly description: string;
|
|
227
|
+
readonly inputSchema: {
|
|
228
|
+
readonly type: "object";
|
|
229
|
+
readonly properties: {
|
|
230
|
+
readonly paymentHeader: {
|
|
231
|
+
readonly type: "string";
|
|
232
|
+
readonly description: "The base64 X-PAYMENT header.";
|
|
233
|
+
};
|
|
234
|
+
readonly paymentRequirements: {
|
|
235
|
+
readonly type: "object";
|
|
236
|
+
readonly description: "The requirements you advertised for this resource.";
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
readonly required: readonly ["paymentHeader", "paymentRequirements"];
|
|
240
|
+
readonly additionalProperties: false;
|
|
241
|
+
};
|
|
242
|
+
}];
|
|
243
|
+
export declare function sellerCreateRequirements(deps: SellerDeps, a: Record<string, unknown>): CallToolResult;
|
|
244
|
+
export declare function sellerGenerate402(a: Record<string, unknown>): CallToolResult;
|
|
245
|
+
export declare function sellerDecodePayment(a: Record<string, unknown>): CallToolResult;
|
|
246
|
+
export declare function sellerVerify(deps: SellerDeps, a: Record<string, unknown>): Promise<CallToolResult>;
|
|
247
|
+
export declare function sellerSettle(deps: SellerDeps, a: Record<string, unknown>): Promise<CallToolResult>;
|