@clawpay-hedera/hak-plugin 1.0.0 → 1.0.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.
@@ -1,5 +1,9 @@
1
1
  /**
2
2
  * clawpay_call_paid_tool — Call a paid MCP tool and pay USDC automatically via x402.
3
+ *
4
+ * Supports two x402 response formats:
5
+ * 1. HTTP 402 with X-Payment header (raw x402 spec)
6
+ * 2. MCP-wrapped: HTTP 200 with payment requirements in result._meta["x402/error"] (ClawPay proxy)
3
7
  */
4
8
  import { z } from "zod";
5
9
  import type { ClawPayPluginConfig } from "../config.js";
@@ -23,6 +27,8 @@ export declare function callPaidToolExecute(config: ClawPayPluginConfig, params:
23
27
  result: unknown;
24
28
  receipt: null;
25
29
  error?: undefined;
30
+ requiresPayment?: undefined;
31
+ requirements?: undefined;
26
32
  amount?: undefined;
27
33
  recipient?: undefined;
28
34
  } | {
@@ -30,6 +36,38 @@ export declare function callPaidToolExecute(config: ClawPayPluginConfig, params:
30
36
  paid?: undefined;
31
37
  result?: undefined;
32
38
  receipt?: undefined;
39
+ requiresPayment?: undefined;
40
+ requirements?: undefined;
41
+ amount?: undefined;
42
+ recipient?: undefined;
43
+ } | {
44
+ requiresPayment: boolean;
45
+ error: string;
46
+ requirements: {
47
+ payTo: string;
48
+ asset: string;
49
+ maxAmountRequired: string;
50
+ network?: string;
51
+ };
52
+ paid?: undefined;
53
+ result?: undefined;
54
+ receipt?: undefined;
55
+ amount?: undefined;
56
+ recipient?: undefined;
57
+ } | {
58
+ paid: boolean;
59
+ error: string;
60
+ requirements: {
61
+ payTo: string;
62
+ asset: string;
63
+ maxAmountRequired: string;
64
+ network?: string;
65
+ };
66
+ receipt: {
67
+ txId: string;
68
+ };
69
+ result?: undefined;
70
+ requiresPayment?: undefined;
33
71
  amount?: undefined;
34
72
  recipient?: undefined;
35
73
  } | {
@@ -41,5 +79,7 @@ export declare function callPaidToolExecute(config: ClawPayPluginConfig, params:
41
79
  txId: string;
42
80
  };
43
81
  error?: undefined;
82
+ requiresPayment?: undefined;
83
+ requirements?: undefined;
44
84
  }>;
45
85
  //# sourceMappingURL=call-paid-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"call-paid-tool.d.ts","sourceRoot":"","sources":["../../src/tools/call-paid-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,uBAAuB,0TAGsC,CAAC;AAE3E,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAoH/C"}
1
+ {"version":3,"file":"call-paid-tool.d.ts","sourceRoot":"","sources":["../../src/tools/call-paid-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,uBAAuB,0TAGsC,CAAC;AA2E3E,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;eAtEpC,MAAM;eAAS,MAAM;2BAAqB,MAAM;kBAAY,MAAM;;;;;;;;;;;eAAlE,MAAM;eAAS,MAAM;2BAAqB,MAAM;kBAAY,MAAM;;;;;;;;;;;;;;;;;;;;GAwJ7E"}
@@ -1,5 +1,9 @@
1
1
  /**
2
2
  * clawpay_call_paid_tool — Call a paid MCP tool and pay USDC automatically via x402.
3
+ *
4
+ * Supports two x402 response formats:
5
+ * 1. HTTP 402 with X-Payment header (raw x402 spec)
6
+ * 2. MCP-wrapped: HTTP 200 with payment requirements in result._meta["x402/error"] (ClawPay proxy)
3
7
  */
4
8
  import { z } from "zod";
5
9
  export const CALL_PAID_TOOL = "clawpay_call_paid_tool";
@@ -12,10 +16,63 @@ export const callPaidToolDescription = `Call a paid tool on a ClawPay MCP server
12
16
  The payment is handled transparently — the agent's Hedera wallet signs a USDC transfer,
13
17
  and the Blocky402 facilitator submits it gaslessly.
14
18
  Use clawpay_discover_agents first to find the MCP endpoint and tool name.`;
19
+ /** Extract x402 payment requirements from either HTTP 402 or MCP-wrapped response */
20
+ function extractPaymentRequirements(httpStatus, headers, body) {
21
+ // Format 1: HTTP 402 with x-payment header
22
+ if (httpStatus === 402) {
23
+ const raw = headers.get("x-payment");
24
+ if (raw) {
25
+ try {
26
+ return JSON.parse(Buffer.from(raw, "base64").toString());
27
+ }
28
+ catch { /* fall through */ }
29
+ }
30
+ }
31
+ // Format 2: MCP-wrapped — result._meta["x402/error"].accepts[0]
32
+ const x402Error = body?.result?._meta?.["x402/error"] || body?._meta?.["x402/error"];
33
+ if (x402Error?.accepts?.[0]) {
34
+ return x402Error.accepts[0];
35
+ }
36
+ return null;
37
+ }
38
+ /** Sign a USDC payment on Hedera and return the base64-encoded payment token */
39
+ async function signPayment(config, requirements) {
40
+ const { Client, TransferTransaction, AccountId, TokenId, PrivateKey, TransactionId, Timestamp } = await import("@hashgraph/sdk");
41
+ const pk = PrivateKey.fromStringECDSA((config.operatorKey || "").replace(/^0x/, ""));
42
+ const payerId = AccountId.fromString(config.operatorId || "0.0.6514537");
43
+ const payTo = requirements.payTo || requirements.pay_to;
44
+ const recipientId = payTo.startsWith("0.0.")
45
+ ? AccountId.fromString(payTo)
46
+ : AccountId.fromEvmAddress(0, 0, payTo);
47
+ const asset = requirements.asset;
48
+ const tokenEntityNum = parseInt(asset.replace(/^0x/, ""), 16);
49
+ const tokenId = TokenId.fromString(`0.0.${tokenEntityNum}`);
50
+ const amount = Number(requirements.maxAmountRequired || requirements.amount);
51
+ const feePayerAccountId = config.facilitatorFeePayer
52
+ ? AccountId.fromString(config.facilitatorFeePayer)
53
+ : payerId;
54
+ const hederaClient = config.network === "testnet" ? Client.forTestnet() : Client.forMainnet();
55
+ const txId = TransactionId.withValidStart(feePayerAccountId, Timestamp.generate());
56
+ const tx = new TransferTransaction()
57
+ .addTokenTransfer(tokenId, payerId, -amount)
58
+ .addTokenTransfer(tokenId, recipientId, amount)
59
+ .setTransactionId(txId)
60
+ .setMaxTransactionFee(2_000_000)
61
+ .setTransactionValidDuration(180);
62
+ const frozenTx = tx.freezeWith(hederaClient);
63
+ const signedTx = await frozenTx.sign(pk);
64
+ const txBytes = signedTx.toBytes();
65
+ const paymentToken = Buffer.from(JSON.stringify({
66
+ x402Version: 1,
67
+ payload: { transaction: Buffer.from(txBytes).toString("base64") },
68
+ })).toString("base64");
69
+ hederaClient.close();
70
+ return { paymentToken, txId: txId.toString(), amount, payTo };
71
+ }
15
72
  export async function callPaidToolExecute(config, params) {
16
73
  const { mcpEndpoint, toolName, args } = params;
17
74
  try {
18
- // Step 1: Call the MCP endpoint if it requires payment, we get a 402 with PaymentRequirements
75
+ // Step 1: Call the MCP endpoint without payment
19
76
  const initRes = await fetch(mcpEndpoint, {
20
77
  method: "POST",
21
78
  headers: { "Content-Type": "application/json" },
@@ -26,79 +83,61 @@ export async function callPaidToolExecute(config, params) {
26
83
  params: { name: toolName, arguments: args || {} },
27
84
  }),
28
85
  });
29
- // If 200, tool is free — return result directly
30
- if (initRes.ok) {
31
- const result = await initRes.json();
32
- return { paid: false, result, receipt: null };
86
+ const body = await initRes.json();
87
+ // Check for payment requirements (both HTTP 402 and MCP-wrapped formats)
88
+ const requirements = extractPaymentRequirements(initRes.status, initRes.headers, body);
89
+ // No payment required return result directly
90
+ if (!requirements) {
91
+ if (initRes.ok)
92
+ return { paid: false, result: body, receipt: null };
93
+ return { error: `Unexpected status ${initRes.status}: ${JSON.stringify(body).slice(0, 200)}` };
33
94
  }
34
- // If 402, extract payment requirements and pay
35
- if (initRes.status === 402) {
36
- const paymentRequirements = initRes.headers.get("x-payment");
37
- if (!paymentRequirements) {
38
- return { error: "Server returned 402 but no payment requirements header" };
39
- }
40
- const requirements = JSON.parse(Buffer.from(paymentRequirements, "base64").toString());
41
- // Build x402 payment header using Hedera HTS
42
- const { Client, TransferTransaction, AccountId, TokenId, PrivateKey, TransactionId, Timestamp } = await import("@hashgraph/sdk");
43
- const pk = PrivateKey.fromStringECDSA((config.operatorKey || "").replace(/^0x/, ""));
44
- const payerId = AccountId.fromString(config.operatorId || "0.0.6514537");
45
- // Parse recipient from payment requirements
46
- const payTo = requirements.payTo || requirements.pay_to;
47
- const recipientId = payTo.startsWith("0.0.")
48
- ? AccountId.fromString(payTo)
49
- : AccountId.fromEvmAddress(0, 0, payTo);
50
- // Parse token and amount
51
- const asset = requirements.asset;
52
- const tokenEntityNum = parseInt(asset.replace(/^0x/, ""), 16);
53
- const tokenId = TokenId.fromString(`0.0.${tokenEntityNum}`);
54
- const amount = Number(requirements.maxAmountRequired || requirements.amount);
55
- // Facilitator pays gas
56
- const feePayerAccountId = config.facilitatorFeePayer
57
- ? AccountId.fromString(config.facilitatorFeePayer)
58
- : payerId;
59
- const hederaClient = config.network === "testnet"
60
- ? Client.forTestnet()
61
- : Client.forMainnet();
62
- const txId = TransactionId.withValidStart(feePayerAccountId, Timestamp.generate());
63
- const tx = new TransferTransaction()
64
- .addTokenTransfer(tokenId, payerId, -amount)
65
- .addTokenTransfer(tokenId, recipientId, amount)
66
- .setTransactionId(txId)
67
- .setMaxTransactionFee(2_000_000)
68
- .setTransactionValidDuration(180);
69
- const frozenTx = tx.freezeWith(hederaClient);
70
- const signedTx = await frozenTx.sign(pk);
71
- const txBytes = signedTx.toBytes();
72
- const paymentHeader = Buffer.from(JSON.stringify({
73
- x402Version: 1,
74
- payload: { transaction: Buffer.from(txBytes).toString("base64") },
75
- })).toString("base64");
76
- hederaClient.close();
77
- // Step 2: Retry the call with payment header
78
- const paidRes = await fetch(mcpEndpoint, {
79
- method: "POST",
80
- headers: {
81
- "Content-Type": "application/json",
82
- "X-PAYMENT": paymentHeader,
83
- "X-PAYMENT-VERSION": "1",
95
+ // Payment required sign and retry
96
+ if (!config.operatorKey) {
97
+ return {
98
+ requiresPayment: true,
99
+ error: "Payment required but no HEDERA_OPERATOR_KEY configured",
100
+ requirements,
101
+ };
102
+ }
103
+ const payment = await signPayment(config, requirements);
104
+ // Step 2: Retry with payment — send both as HTTP header AND MCP _meta
105
+ const paidRes = await fetch(mcpEndpoint, {
106
+ method: "POST",
107
+ headers: {
108
+ "Content-Type": "application/json",
109
+ "X-PAYMENT": payment.paymentToken,
110
+ "X-PAYMENT-VERSION": "1",
111
+ },
112
+ body: JSON.stringify({
113
+ jsonrpc: "2.0",
114
+ id: 2,
115
+ method: "tools/call",
116
+ params: {
117
+ name: toolName,
118
+ arguments: args || {},
119
+ _meta: { "x402/payment": payment.paymentToken },
84
120
  },
85
- body: JSON.stringify({
86
- jsonrpc: "2.0",
87
- id: 2,
88
- method: "tools/call",
89
- params: { name: toolName, arguments: args || {} },
90
- }),
91
- });
92
- const result = await paidRes.json();
121
+ }),
122
+ });
123
+ const result = await paidRes.json();
124
+ // Check if the retry also returned a payment error (e.g. insufficient funds)
125
+ const retryReqs = extractPaymentRequirements(paidRes.status, paidRes.headers, result);
126
+ if (retryReqs) {
93
127
  return {
94
- paid: true,
95
- amount: `$${(amount / 1_000_000).toFixed(4)} USDC`,
96
- recipient: payTo,
97
- result,
98
- receipt: { txId: txId.toString() },
128
+ paid: false,
129
+ error: "Payment was signed but server still requires payment (verification may have failed)",
130
+ requirements: retryReqs,
131
+ receipt: { txId: payment.txId },
99
132
  };
100
133
  }
101
- return { error: `Unexpected status ${initRes.status}: ${await initRes.text()}` };
134
+ return {
135
+ paid: true,
136
+ amount: `${(payment.amount / 1_000_000).toFixed(4)} USDC`,
137
+ recipient: payment.payTo,
138
+ result,
139
+ receipt: { txId: payment.txId },
140
+ };
102
141
  }
103
142
  catch (error) {
104
143
  return { error: `Tool call failed: ${error.message}` };
@@ -1 +1 @@
1
- {"version":3,"file":"call-paid-tool.js","sourceRoot":"","sources":["../../src/tools/call-paid-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-paid-tool.js","sourceRoot":"","sources":["../../src/tools/call-paid-tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawpay-hedera/hak-plugin",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "ClawPay plugin for Hedera Agent Kit — discover, pay for, and rate AI agent tools on Hedera via x402",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",