@ironwallet/mcp-server 1.0.1 → 1.0.3

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.
Files changed (63) hide show
  1. package/README.md +17 -11
  2. package/dist/api/rates.d.ts +62 -0
  3. package/dist/api/rates.js +198 -0
  4. package/dist/api/rates.js.map +1 -0
  5. package/dist/api/swap.d.ts +1 -1
  6. package/dist/api/swap.js +1 -1
  7. package/dist/config.d.ts +16 -12
  8. package/dist/config.js +48 -31
  9. package/dist/config.js.map +1 -1
  10. package/dist/consent/copy.d.ts +18 -0
  11. package/dist/consent/copy.js +27 -0
  12. package/dist/consent/copy.js.map +1 -0
  13. package/dist/consent/store.d.ts +23 -0
  14. package/dist/consent/store.js +63 -0
  15. package/dist/consent/store.js.map +1 -0
  16. package/dist/device-fingerprint.d.ts +18 -0
  17. package/dist/device-fingerprint.js +81 -0
  18. package/dist/device-fingerprint.js.map +1 -0
  19. package/dist/generated/env-config.js +3 -1
  20. package/dist/generated/env-config.js.map +1 -1
  21. package/dist/generated/env-profile.d.ts +4 -0
  22. package/dist/keystore/store.js +3 -7
  23. package/dist/keystore/store.js.map +1 -1
  24. package/dist/keystore/types.d.ts +8 -3
  25. package/dist/local-secrets.d.ts +2 -2
  26. package/dist/local-secrets.js +5 -9
  27. package/dist/local-secrets.js.map +1 -1
  28. package/dist/networks.d.ts +5 -0
  29. package/dist/networks.js +21 -0
  30. package/dist/networks.js.map +1 -0
  31. package/dist/policy.d.ts +33 -3
  32. package/dist/policy.js +121 -32
  33. package/dist/policy.js.map +1 -1
  34. package/dist/restrict-private-file.d.ts +9 -0
  35. package/dist/restrict-private-file.js +53 -0
  36. package/dist/restrict-private-file.js.map +1 -0
  37. package/dist/server.js +3 -2
  38. package/dist/server.js.map +1 -1
  39. package/dist/tools/definitions.d.ts +40 -0
  40. package/dist/tools/definitions.js +256 -0
  41. package/dist/tools/definitions.js.map +1 -0
  42. package/dist/tools/helpers.d.ts +0 -3
  43. package/dist/tools/helpers.js +0 -3
  44. package/dist/tools/helpers.js.map +1 -1
  45. package/dist/tools/index.d.ts +1 -0
  46. package/dist/tools/index.js +1 -0
  47. package/dist/tools/index.js.map +1 -1
  48. package/dist/tools/swap.d.ts +1 -1
  49. package/dist/tools/swap.js +12 -76
  50. package/dist/tools/swap.js.map +1 -1
  51. package/dist/tools/transfer.d.ts +1 -1
  52. package/dist/tools/transfer.js +13 -54
  53. package/dist/tools/transfer.js.map +1 -1
  54. package/dist/tools/wallets.d.ts +1 -1
  55. package/dist/tools/wallets.js +110 -47
  56. package/dist/tools/wallets.js.map +1 -1
  57. package/dist/wallet/derive.d.ts +1 -1
  58. package/dist/wallet/derive.js +1 -1
  59. package/dist/web/manager.js +64 -3
  60. package/dist/web/manager.js.map +1 -1
  61. package/package.json +30 -5
  62. package/server.json +23 -0
  63. package/tools.json +632 -0
@@ -1,13 +1,10 @@
1
1
  /**
2
2
  * Shared MCP tool helpers: response shaping, logging wrapper, wallet session.
3
3
  */
4
- import { z } from "zod";
5
- import { ALL_NETWORKS } from "../config.js";
6
4
  import { resolveEntry, syncAddresses, unlockMnemonic, } from "../keystore/store.js";
7
5
  import { requirePassphrase } from "../passphrase.js";
8
6
  import { getAccessToken } from "../api/auth.js";
9
7
  import { logError, logInfo, newCorrelationId, } from "../log.js";
10
- export const networkEnum = z.enum(ALL_NETWORKS);
11
8
  /** MCP 2025-06-18: audience=user asks the host to show the image in the UI. */
12
9
  const USER_VISIBLE_IMAGE = {
13
10
  audience: ["user", "assistant"],
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * MCP tool registrations. Design rule: the mnemonic never crosses the agent
3
3
  * boundary. Tools return addresses, balances, estimates, and tx hashes — never
4
4
  * seed words. There is intentionally no export_seed / import_wallet tool.
5
+ * create_wallets is blocked until MCP consent is on file.
5
6
  */
6
7
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
8
  export declare function registerTools(server: McpServer): void;
@@ -2,6 +2,7 @@
2
2
  * MCP tool registrations. Design rule: the mnemonic never crosses the agent
3
3
  * boundary. Tools return addresses, balances, estimates, and tx hashes — never
4
4
  * seed words. There is intentionally no export_seed / import_wallet tool.
5
+ * create_wallets is blocked until MCP consent is on file.
5
6
  */
6
7
  import { ok, session, withToolLog } from "./helpers.js";
7
8
  import { registerWalletTools } from "./wallets.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAC7C,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAC7C,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * MCP tools for Swap Proxy (SWP): discovery, estimate, execute, status.
2
+ * MCP tools for swaps: discovery, estimate, execute, status.
3
3
  */
4
4
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
5
  import type { ToolHelpers } from "./helpers.js";
@@ -1,27 +1,13 @@
1
1
  /**
2
- * MCP tools for Swap Proxy (SWP): discovery, estimate, execute, status.
2
+ * MCP tools for swaps: discovery, estimate, execute, status.
3
3
  */
4
- import { z } from "zod";
5
4
  import { assertServerWritable, canSwap, parseNetworkId } from "../config.js";
6
5
  import { getBalance } from "../api/balances.js";
7
6
  import { assetKey, createSwap, estimateSwap, executeSwap, getSwapStatus, listSwapAssetsFrom, listSwapAssetsTo, listSwapNetworks, resolveSwapAsset, } from "../api/swap.js";
8
7
  import { signSwapTransactions } from "../signing/swap.js";
9
- import { enforcePolicy } from "../policy.js";
8
+ import { enforcePolicy, enforceUsdLimit } from "../policy.js";
10
9
  import { logInfo } from "../log.js";
11
- const assetInputSchema = z.object({
12
- network: z.string().describe("Network id, e.g. ethereum, bsc, bitcoin."),
13
- symbol: z.string().describe("Asset symbol, e.g. ETH, USDT."),
14
- address: z
15
- .string()
16
- .optional()
17
- .nullable()
18
- .describe("Token contract address. Omit/null for the native coin."),
19
- decimals: z
20
- .number()
21
- .int()
22
- .optional()
23
- .describe("Token decimals. If omitted, resolved via SWP catalog (paged). Prefer passing decimals (+ address for tokens) from list_swap_assets."),
24
- });
10
+ import { mcpToolConfig, toolDefinition, } from "./definitions.js";
25
11
  async function enrichAssets(items, addresses) {
26
12
  return Promise.all(items.map(async (asset) => {
27
13
  const net = parseNetworkId(asset.network);
@@ -120,13 +106,7 @@ async function prepareSwapSides(helpers, opts) {
120
106
  }
121
107
  export function registerSwapTools(server, helpers) {
122
108
  const { ok, withToolLog, session } = helpers;
123
- server.registerTool("list_swap_networks", {
124
- title: "List swap networks",
125
- description: "List networks available for Swap Proxy (SWP). Use before listing swap assets.",
126
- inputSchema: {
127
- wallet: z.string().optional(),
128
- },
129
- }, async ({ wallet }) => withToolLog("list_swap_networks", { wallet }, async ({ correlationId }) => {
109
+ server.registerTool("list_swap_networks", mcpToolConfig(toolDefinition("list_swap_networks")), async ({ wallet }) => withToolLog("list_swap_networks", { wallet }, async ({ correlationId }) => {
130
110
  const { token } = await session(wallet, correlationId);
131
111
  const networks = await listSwapNetworks(token, { correlationId });
132
112
  return ok({
@@ -141,21 +121,7 @@ export function registerSwapTools(server, helpers) {
141
121
  }),
142
122
  });
143
123
  }));
144
- server.registerTool("list_swap_assets", {
145
- title: "List swap assets",
146
- description: "List tradable assets from Swap Proxy. direction=from lists sell assets; direction=to requires fromNetwork/fromSymbol (and fromAddress for tokens) and lists buy assets. Enriches with wallet address and balance when possible.",
147
- inputSchema: {
148
- wallet: z.string().optional(),
149
- direction: z.enum(["from", "to"]),
150
- fromNetwork: z.string().optional(),
151
- fromSymbol: z.string().optional(),
152
- fromAddress: z.string().optional().nullable(),
153
- search: z.string().optional(),
154
- networks: z.array(z.string()).optional(),
155
- page: z.number().int().positive().optional(),
156
- pageSize: z.number().int().positive().max(100).optional(),
157
- },
158
- }, async (args) => withToolLog("list_swap_assets", args, async ({ correlationId }) => {
124
+ server.registerTool("list_swap_assets", mcpToolConfig(toolDefinition("list_swap_assets")), async (args) => withToolLog("list_swap_assets", args, async ({ correlationId }) => {
159
125
  const { entry, token } = await session(args.wallet, correlationId);
160
126
  let page;
161
127
  if (args.direction === "from") {
@@ -192,20 +158,7 @@ export function registerSwapTools(server, helpers) {
192
158
  items,
193
159
  });
194
160
  }));
195
- server.registerTool("estimate_swap", {
196
- title: "Estimate swap",
197
- description: "Get a Swap Proxy quote (amounts, fees, operationId). Quote can expire — prefer execute_swap for sending (it re-estimates). Amount is a decimal string; set maxMode=true to sell the full balance (backend corrects amount).",
198
- inputSchema: {
199
- wallet: z.string().optional(),
200
- from: assetInputSchema,
201
- to: assetInputSchema,
202
- amount: z
203
- .string()
204
- .optional()
205
- .describe("Sell amount as decimal string. Required unless maxMode."),
206
- maxMode: z.boolean().optional(),
207
- },
208
- }, async ({ wallet, from, to, amount, maxMode }) => withToolLog("estimate_swap", { wallet, from, to, amount, maxMode }, async ({ correlationId }) => {
161
+ server.registerTool("estimate_swap", mcpToolConfig(toolDefinition("estimate_swap")), async ({ wallet, from, to, amount, maxMode }) => withToolLog("estimate_swap", { wallet, from, to, amount, maxMode }, async ({ correlationId }) => {
209
162
  const prep = await prepareSwapSides(helpers, {
210
163
  wallet,
211
164
  from,
@@ -234,20 +187,7 @@ export function registerSwapTools(server, helpers) {
234
187
  note: "Quote may expire. Call execute_swap to create+sign+broadcast (it performs a fresh estimate).",
235
188
  });
236
189
  }));
237
- server.registerTool("execute_swap", {
238
- title: "Execute swap",
239
- description: "Execute a swap via Swap Proxy: fresh estimate → create → local sign → execute. Does NOT use the transfer relay. Irreversible once submitted — no second confirmation. Returns operationId and txHash; poll with get_swap_status.",
240
- inputSchema: {
241
- wallet: z.string().optional(),
242
- from: assetInputSchema,
243
- to: assetInputSchema,
244
- amount: z
245
- .string()
246
- .optional()
247
- .describe("Sell amount as decimal string. Required unless maxMode."),
248
- maxMode: z.boolean().optional(),
249
- },
250
- }, async ({ wallet, from, to, amount, maxMode }) => withToolLog("execute_swap", { wallet, from, to, amount, maxMode }, async ({ correlationId, started }) => {
190
+ server.registerTool("execute_swap", mcpToolConfig(toolDefinition("execute_swap")), async ({ wallet, from, to, amount, maxMode }) => withToolLog("execute_swap", { wallet, from, to, amount, maxMode }, async ({ correlationId, started }) => {
251
191
  assertServerWritable("swap");
252
192
  const prep = await prepareSwapSides(helpers, {
253
193
  wallet,
@@ -278,10 +218,13 @@ export function registerSwapTools(server, helpers) {
278
218
  }
279
219
  // Mobile: from.amount = requested sellAmount; correctedAmountFrom separate.
280
220
  const corrected = est.correctedAmountFrom ?? est.from.amount ?? prep.sellAmount;
281
- enforcePolicy(prep.entry, {
221
+ await enforceUsdLimit(prep.entry, {
282
222
  kind: "swap",
283
223
  network: prep.sell.networkId,
284
224
  amount: corrected,
225
+ symbol: prep.fromSide.asset.symbol,
226
+ tokenAddress: prep.fromSide.asset.address ?? undefined,
227
+ correlationId,
285
228
  });
286
229
  const createFrom = {
287
230
  ...prep.fromSide,
@@ -326,14 +269,7 @@ export function registerSwapTools(server, helpers) {
326
269
  note: "Poll get_swap_status with operationId until complete. Do not re-execute blindly after a timeout.",
327
270
  });
328
271
  }));
329
- server.registerTool("get_swap_status", {
330
- title: "Get swap status",
331
- description: "Poll Swap Proxy order/operation status by operationId.",
332
- inputSchema: {
333
- wallet: z.string().optional(),
334
- operationId: z.string(),
335
- },
336
- }, async ({ wallet, operationId }) => withToolLog("get_swap_status", { wallet, operationId }, async ({ correlationId }) => {
272
+ server.registerTool("get_swap_status", mcpToolConfig(toolDefinition("get_swap_status")), async ({ wallet, operationId }) => withToolLog("get_swap_status", { wallet, operationId }, async ({ correlationId }) => {
337
273
  const { token } = await session(wallet, correlationId);
338
274
  const status = await getSwapStatus(token, operationId, {
339
275
  correlationId,
@@ -1 +1 @@
1
- {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/tools/swap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/tools/swap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,aAAa,EAEb,cAAc,GACf,MAAM,kBAAkB,CAAC;AAK1B,KAAK,UAAU,YAAY,CACzB,KAAkB,EAClB,SAAiC;IAcjC,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,OAA2B,CAAC;QAChC,IAAI,UAA8B,CAAC;QACnC,IAAI,aAAa,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,UAAU,CAC1B,GAAG,EACH,aAAa,EACb,KAAK,CAAC,OAAO,IAAI,SAAS,CAC3B,CAAC;gBACF,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC;gBACxB,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;QACD,OAAO;YACL,GAAG,KAAK;YACR,aAAa;YACb,OAAO;YACP,UAAU;YACV,UAAU;YACV,UAAU;SACX,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,KAAa,EACb,OAAmB,EACnB,aAAqB,EACrB,MAA0B,EAC1B,aAAqB,EACrB,eAA2B;IAE3B,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE;QACnD,aAAa;QACb,eAAe;KAChB,CAAC,CAAC;IACH,OAAO;QACL,KAAK;QACL,OAAO,EAAE,aAAa;QACtB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,SAAiC,EACjC,OAAe;IAEf,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,sBAAsB,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,MAAM,SAAS,uFAAuF,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,sEAAsE;AACtE,SAAS,iBAAiB,CACxB,SAAiC,EACjC,OAAe;IAEf,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,uCAAuC,OAAO,wCAAwC,CACvF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,MAAM,SAAS,8FAA8F,CAC9G,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,8EAA8E;AAC9E,KAAK,UAAU,gBAAgB,CAC7B,OAAoB,EACpB,IAOC;IAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CACtD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,CACnB,CAAC;IACF,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,IAAI,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,UAAU,CAC1B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAC/B,CAAC;QACF,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC;QAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,SAAS,WAAW,CAClF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,KAAK,EACL,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,aAAa,CACnB,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,KAAK,EACL,IAAI,CAAC,EAAE,EACP,GAAG,CAAC,OAAO,EACX,SAAS,EACT,IAAI,CAAC,aAAa,EAClB,QAAQ,CAAC,KAAK,CACf,CAAC;IAEF,OAAO;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,GAAG;QACH,MAAM;QACN,UAAU;QACV,QAAQ;QACR,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,OAAoB;IACvE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB,aAAa,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,EACnD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CACnB,WAAW,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACxE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,CAAC;YACR,aAAa;YACb,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClC,OAAO;oBACL,GAAG,CAAC;oBACJ,SAAS,EAAE,EAAE;oBACb,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;iBACvC,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB,aAAa,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,EACjD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,WAAW,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAChE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC9B,IAAI,GAAG,MAAM,kBAAkB,CAC7B,KAAK,EACL;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,MAAM,gBAAgB,CAC3B,KAAK,EACL;gBACE,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,CAAC,WAAW;oBACzB,MAAM,EAAE,IAAI,CAAC,UAAU;oBACvB,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;iBAClC;gBACD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,EAAE,CAAC;YACR,aAAa;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,EAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9C,WAAW,CACT,eAAe,EACf,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EACrC,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE;YAC3C,MAAM;YACN,IAAI;YACJ,EAAE;YACF,MAAM;YACN,OAAO;YACP,aAAa;SACd,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAC5B,IAAI,CAAC,KAAK,EACV;YACE,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;QACF,OAAO,EAAE,CAAC;YACR,aAAa;YACb,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU;YAC9C,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM;YACvB,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;YAC5C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI;YACvB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,8FAA8F;SACrG,CAAC,CAAC;IACL,CAAC,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9C,WAAW,CACT,cAAc,EACd,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EACrC,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE;YAC3C,MAAM;YACN,IAAI;YACJ,EAAE;YACF,MAAM;YACN,OAAO;YACP,aAAa;SACd,CAAC,CAAC;QAEH,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE;YACxB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO,CAAC,4BAA4B,EAAE;YACpC,aAAa;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAC5B,IAAI,CAAC,KAAK,EACV;YACE,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,4EAA4E;QAC5E,MAAM,SAAS,GACb,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;QAEhE,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE;YAChC,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC5B,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;YAClC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS;YACtD,aAAa;SACd,CAAC,CAAC;QAEH,MAAM,UAAU,GAAa;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,MAAM,EAAE,IAAI,CAAC,UAAU;SACxB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,IAAI,CAAC,KAAK,EACV;YACE,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,mBAAmB,EAAE,SAAS;YAC9B,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;QACF,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EACnB,IAAI,CAAC,QAAQ,EACb,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,IAAI,CAAC,KAAK,EACV;YACE,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,kBAAkB,EAAE,MAAM;SAC3B,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;QAEF,MAAM,SAAS,GACb,MAAM,CAAC,IAAI,CACT,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB,CACjE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAEjB,OAAO,EAAE,CAAC;YACR,aAAa;YACb,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,MAAM;YAC5C,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM;YACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;YAC1C,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAChC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;YAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;YAC/B,IAAI,EAAE,kGAAkG;SACzG,CAAC,CAAC;IACL,CAAC,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAChD,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAChC,WAAW,CACT,iBAAiB,EACjB,EAAE,MAAM,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE;YACrD,aAAa;SACd,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC,CACF,CACJ,CAAC;AACJ,CAAC"}
@@ -2,5 +2,5 @@
2
2
  * MCP tools for balance reads and transfer relay (estimate → sign → forward).
3
3
  */
4
4
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
- import { type ToolHelpers } from "./helpers.js";
5
+ import type { ToolHelpers } from "./helpers.js";
6
6
  export declare function registerTransferTools(server: McpServer, helpers: ToolHelpers): void;
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * MCP tools for balance reads and transfer relay (estimate → sign → forward).
3
3
  */
4
- import { z } from "zod";
5
4
  import { assertServerWritable, canSend } from "../config.js";
6
5
  import { resolveEntry } from "../keystore/store.js";
7
6
  import { estimate, forward, operationState } from "../api/relay.js";
@@ -9,9 +8,9 @@ import { getBalance } from "../api/balances.js";
9
8
  import { parseUnits, formatUnits } from "ethers";
10
9
  import { signForward } from "../signing/index.js";
11
10
  import { tonPublicKeyHex } from "../signing/ton.js";
12
- import { enforcePolicy } from "../policy.js";
11
+ import { enforcePolicy, enforceUsdLimit } from "../policy.js";
13
12
  import { logInfo, logWarn } from "../log.js";
14
- import { networkEnum } from "./helpers.js";
13
+ import { mcpToolConfig, toolDefinition } from "./definitions.js";
15
14
  /**
16
15
  * Estimate a transfer and, if the amount + fee would exceed the balance, reduce
17
16
  * the amount to `balance - fee` and re-estimate. Fees for native coins are paid
@@ -119,18 +118,7 @@ async function resolveAmountForFee(opts) {
119
118
  }
120
119
  export function registerTransferTools(server, helpers) {
121
120
  const { ok, withToolLog, session } = helpers;
122
- server.registerTool("get_balance", {
123
- title: "Get balance",
124
- description: "Get the balance for a wallet on a network. Optionally pass a token contract address; omit for the native coin.",
125
- inputSchema: {
126
- wallet: z.string().optional().describe("Wallet name. Optional if only one exists."),
127
- network: networkEnum,
128
- tokenAddress: z
129
- .string()
130
- .optional()
131
- .describe("Token contract address. Omit for the native coin."),
132
- },
133
- }, async ({ wallet, network, tokenAddress }) => withToolLog("get_balance", { wallet, network, tokenAddress }, async ({ correlationId }) => {
121
+ server.registerTool("get_balance", mcpToolConfig(toolDefinition("get_balance")), async ({ wallet, network, tokenAddress }) => withToolLog("get_balance", { wallet, network, tokenAddress }, async ({ correlationId }) => {
134
122
  const entry = resolveEntry(wallet);
135
123
  const address = entry.addresses[network];
136
124
  if (!address) {
@@ -139,21 +127,7 @@ export function registerTransferTools(server, helpers) {
139
127
  const result = await getBalance(network, address, tokenAddress);
140
128
  return ok({ ...result, correlationId });
141
129
  }));
142
- server.registerTool("estimate_transfer", {
143
- title: "Estimate transfer",
144
- description: "Estimate fees for a transfer without sending. Returns fees and the number of transactions that would be signed.",
145
- inputSchema: {
146
- wallet: z.string().optional(),
147
- network: networkEnum,
148
- to: z.string().describe("Recipient address."),
149
- amount: z.string().describe("Amount in asset units (decimal string)."),
150
- tokenAddress: z
151
- .string()
152
- .optional()
153
- .describe("Token contract address. Omit for the native coin."),
154
- memo: z.string().optional(),
155
- },
156
- }, async ({ wallet, network, to, amount, tokenAddress, memo }) => withToolLog("estimate_transfer", { wallet, network, to, amount, tokenAddress, hasMemo: Boolean(memo) }, async ({ correlationId }) => {
130
+ server.registerTool("estimate_transfer", mcpToolConfig(toolDefinition("estimate_transfer")), async ({ wallet, network, to, amount, tokenAddress, memo }) => withToolLog("estimate_transfer", { wallet, network, to, amount, tokenAddress, hasMemo: Boolean(memo) }, async ({ correlationId }) => {
157
131
  if (!canSend(network)) {
158
132
  throw new Error(`Sending on "${network}" is not supported.`);
159
133
  }
@@ -177,21 +151,7 @@ export function registerTransferTools(server, helpers) {
177
151
  correlationId,
178
152
  });
179
153
  }));
180
- server.registerTool("send_transfer", {
181
- title: "Send transfer",
182
- description: "Send a transfer: sign locally with the wallet's key and broadcast via the Ironwallet forward relay (estimate -> sign -> forward) for EVM, Tron, Bitcoin, Litecoin, Doge, Solana, XRP and TON. Irreversible once broadcast — no second confirmation. Returns the transaction hash (and operation id where applicable).",
183
- inputSchema: {
184
- wallet: z.string().optional(),
185
- network: networkEnum,
186
- to: z.string().describe("Recipient address."),
187
- amount: z.string().describe("Amount in asset units (decimal string)."),
188
- tokenAddress: z
189
- .string()
190
- .optional()
191
- .describe("Token contract address. Omit for the native coin."),
192
- memo: z.string().optional(),
193
- },
194
- }, async ({ wallet, network, to, amount, tokenAddress, memo }) => withToolLog("send_transfer", { wallet, network, to, amount, tokenAddress, hasMemo: Boolean(memo) }, async ({ correlationId, started }) => {
154
+ server.registerTool("send_transfer", mcpToolConfig(toolDefinition("send_transfer")), async ({ wallet, network, to, amount, tokenAddress, memo }) => withToolLog("send_transfer", { wallet, network, to, amount, tokenAddress, hasMemo: Boolean(memo) }, async ({ correlationId, started }) => {
195
155
  assertServerWritable("send");
196
156
  if (!canSend(network)) {
197
157
  throw new Error(`Sending on "${network}" is not supported.`);
@@ -220,7 +180,14 @@ export function registerTransferTools(server, helpers) {
220
180
  kind: "transfer",
221
181
  network,
222
182
  toAddress: to,
183
+ });
184
+ await enforceUsdLimit(entry, {
185
+ kind: "transfer",
186
+ network,
223
187
  amount: resolved.amount,
188
+ symbol: resolved.symbol,
189
+ tokenAddress,
190
+ correlationId,
224
191
  });
225
192
  const params = {
226
193
  fromAddress: address,
@@ -266,15 +233,7 @@ export function registerTransferTools(server, helpers) {
266
233
  : {}),
267
234
  });
268
235
  }));
269
- server.registerTool("get_operation_status", {
270
- title: "Get operation status",
271
- description: "Poll the state of a forward operation by its operation id.",
272
- inputSchema: {
273
- wallet: z.string().optional(),
274
- network: networkEnum,
275
- operationId: z.string(),
276
- },
277
- }, async ({ wallet, network, operationId }) => withToolLog("get_operation_status", { wallet, network, operationId }, async ({ correlationId }) => {
236
+ server.registerTool("get_operation_status", mcpToolConfig(toolDefinition("get_operation_status")), async ({ wallet, network, operationId }) => withToolLog("get_operation_status", { wallet, network, operationId }, async ({ correlationId }) => {
278
237
  const { token } = await session(wallet, correlationId);
279
238
  const state = await operationState(network, token, operationId, {
280
239
  correlationId,
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/tools/transfer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAkB,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAuB,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAc7D;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAUlC;IACC,MAAM,EACJ,OAAO,EACP,KAAK,EACL,OAAO,EACP,EAAE,EACF,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,aAAa,GACd,GAAG,IAAI,CAAC;IACT,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnC,OAAO,CAAC,2BAA2B,EAAE;QACnC,aAAa;QACb,OAAO;QACP,OAAO;QACP,EAAE;QACF,eAAe,EAAE,IAAI,CAAC,MAAM;QAC5B,OAAO,EAAE,GAAG,CAAC,SAAS;QACtB,UAAU,EAAE,GAAG,CAAC,GAAG;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ;QACR,YAAY;QACZ,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC;KACzC,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,GAAG,GAAG,MAAM,QAAQ,CACtB,OAAO,EACP,KAAK,EACL;QACE,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,EAAE;QACb,YAAY;QACZ,MAAM;QACN,IAAI;QACJ,aAAa;KACd,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,CAAiB,EAAU,EAAE,CAC1C,MAAM,CACJ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC;QACrE,GAAG,CACN,CAAC;IAEJ,MAAM,WAAW,GAAG,CAAC,CAAiB,EAAE,GAAW,EAAU,EAAE;QAC7D,MAAM,OAAO,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC;QACzC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,wEAAwE;IACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,0BAA0B,EAAE;YAClC,aAAa;YACb,IAAI,EAAE,CAAC;YACP,MAAM;YACN,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE;YAClC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;YACzB,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;YAClC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;YACjC,IAAI,EAAE,YAAY,GAAG,MAAM,IAAI,UAAU;YACzC,QAAQ;YACR,eAAe,EAAE,GAAG,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,IAAI,YAAY,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;YACxC,OAAO,CAAC,wBAAwB,EAAE;gBAChC,aAAa;gBACb,MAAM;gBACN,QAAQ;gBACR,eAAe,EAAE,IAAI,CAAC,MAAM;gBAC5B,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAClC,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC,CAAC;YACH,OAAO;gBACL,GAAG;gBACH,MAAM;gBACN,QAAQ;gBACR,eAAe,EAAE,IAAI,CAAC,MAAM;gBAC5B,OAAO,EAAE,GAAG,CAAC,SAAS;gBACtB,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAClC,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;QACzC,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,WAAW,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,+BAA+B;gBACnE,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CACtD,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC;QACpB,MAAM,GAAG,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC7C,QAAQ,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,4BAA4B,EAAE;YACpC,aAAa;YACb,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,MAAM;YAChB,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;YAClC,OAAO,EAAE,GAAG,CAAC,SAAS;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAClB,OAAO,EACP,KAAK,EACL;YACE,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,EAAE;YACb,YAAY;YACZ,MAAM;YACN,IAAI;YACJ,aAAa;SACd,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,OAAoB;IAC3E,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,gHAAgH;QAClH,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;YACnF,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;SACjE;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,CAC1C,WAAW,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QACxF,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,YAAY,OAAO,WAAW,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,iHAAiH;QACnH,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,WAAW;YACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACtE,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5D,WAAW,CACT,mBAAmB,EACnB,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EACrE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,qBAAqB,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,aAAa,GACjB,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB,OAAO,EACP,KAAK,EACL;YACE,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,EAAE;YACb,YAAY;YACZ,MAAM;YACN,IAAI;YACJ,aAAa;SACd,EACD,EAAE,aAAa,EAAE,CAClB,CAAC;QACF,OAAO,EAAE,CAAC;YACR,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM;YAClC,OAAO,EAAE,GAAG,CAAC,cAAc,EAAE,OAAO;YACpC,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,QAAQ;YACtC,kBAAkB,EAAE,GAAG,CAAC,cAAc,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;YACvE,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,aAAa;SACd,CAAC,CAAC;IACL,CAAC,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,uTAAuT;QACzT,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,WAAW;YACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACtE,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAC5D,WAAW,CACT,eAAe,EACf,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EACrE,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,qBAAqB,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,4BAA4B,EAAE;YACpC,aAAa;YACb,MAAM,EAAE,KAAK,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO;YACpB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,aAAa,GACjB,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;YACzC,OAAO;YACP,KAAK;YACL,OAAO;YACP,EAAE;YACF,YAAY;YACZ,MAAM;YACN,IAAI;YACJ,aAAa;YACb,aAAa;SACd,CAAC,CAAC;QAEH,aAAa,CAAC,KAAK,EAAE;YACnB,IAAI,EAAE,UAAU;YAChB,OAAO;YACP,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,EAAE;YACb,YAAY;YACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI;YACJ,aAAa;SACd,CAAC;QAEF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,IAAI,EAAE,CAAC;QAClE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,+BAA+B,EAAE;YACvC,aAAa;YACb,OAAO;YACP,OAAO,EAAE,GAAG,CAAC,MAAM;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,cAAc,EAAE,QAAQ,CAAC,QAAQ;SAClC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzD,OAAO,CAAC,4BAA4B,EAAE;YACpC,aAAa;YACb,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW;YACnC,WAAW,EAAE,MAAM,CAAC,MAAM;SAC3B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,CAAC,GAAG,EACZ,MAAM,EACN,EAAE,aAAa,EAAE,CAClB,CAAC;QAEF,OAAO,EAAE,CAAC;YACR,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,cAAc,EAAE,QAAQ,CAAC,QAAQ;YACjC,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,aAAa;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;YAC/B,GAAG,CAAC,QAAQ,CAAC,QAAQ;gBACnB,CAAC,CAAC;oBACE,IAAI,EAAE,aAAa,QAAQ,CAAC,eAAe,2CAA2C,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,SAAS,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI;iBACrK;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CACzC,WAAW,CACT,sBAAsB,EACtB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAChC,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;YAC9D,aAAa;SACd,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACzC,CAAC,CACF,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/tools/transfer.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * MCP tools for local keystore wallet management.
3
3
  */
4
4
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
- import { type ToolHelpers } from "./helpers.js";
5
+ import type { ToolHelpers } from "./helpers.js";
6
6
  export declare function registerWalletTools(server: McpServer, helpers: ToolHelpers): void;