@ironwallet/mcp-server 1.1.0 → 1.2.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.
Files changed (82) hide show
  1. package/README.md +6 -2
  2. package/dist/api/balances.d.ts +1 -0
  3. package/dist/api/balances.js +1 -1
  4. package/dist/api/balances.js.map +1 -1
  5. package/dist/api/history/index.d.ts +49 -0
  6. package/dist/api/history/index.js +206 -0
  7. package/dist/api/history/index.js.map +1 -0
  8. package/dist/api/history/merge.d.ts +63 -0
  9. package/dist/api/history/merge.js +208 -0
  10. package/dist/api/history/merge.js.map +1 -0
  11. package/dist/api/history/normalize.d.ts +37 -0
  12. package/dist/api/history/normalize.js +149 -0
  13. package/dist/api/history/normalize.js.map +1 -0
  14. package/dist/api/history/pace.d.ts +8 -0
  15. package/dist/api/history/pace.js +17 -0
  16. package/dist/api/history/pace.js.map +1 -0
  17. package/dist/api/history/providers/blockcypher.d.ts +24 -0
  18. package/dist/api/history/providers/blockcypher.js +70 -0
  19. package/dist/api/history/providers/blockcypher.js.map +1 -0
  20. package/dist/api/history/providers/esplora.d.ts +41 -0
  21. package/dist/api/history/providers/esplora.js +100 -0
  22. package/dist/api/history/providers/esplora.js.map +1 -0
  23. package/dist/api/history/providers/etherscan.d.ts +36 -0
  24. package/dist/api/history/providers/etherscan.js +118 -0
  25. package/dist/api/history/providers/etherscan.js.map +1 -0
  26. package/dist/api/history/providers/nodereal.d.ts +27 -0
  27. package/dist/api/history/providers/nodereal.js +93 -0
  28. package/dist/api/history/providers/nodereal.js.map +1 -0
  29. package/dist/api/history/providers/solana.d.ts +47 -0
  30. package/dist/api/history/providers/solana.js +211 -0
  31. package/dist/api/history/providers/solana.js.map +1 -0
  32. package/dist/api/history/providers/toncenter.d.ts +56 -0
  33. package/dist/api/history/providers/toncenter.js +203 -0
  34. package/dist/api/history/providers/toncenter.js.map +1 -0
  35. package/dist/api/history/providers/trongrid.d.ts +48 -0
  36. package/dist/api/history/providers/trongrid.js +144 -0
  37. package/dist/api/history/providers/trongrid.js.map +1 -0
  38. package/dist/api/history/providers/tronscan.d.ts +55 -0
  39. package/dist/api/history/providers/tronscan.js +153 -0
  40. package/dist/api/history/providers/tronscan.js.map +1 -0
  41. package/dist/api/history/providers/xrp.d.ts +39 -0
  42. package/dist/api/history/providers/xrp.js +150 -0
  43. package/dist/api/history/providers/xrp.js.map +1 -0
  44. package/dist/api/history/types.d.ts +112 -0
  45. package/dist/api/history/types.js +26 -0
  46. package/dist/api/history/types.js.map +1 -0
  47. package/dist/api/swap.d.ts +2 -0
  48. package/dist/api/swap.js +24 -10
  49. package/dist/api/swap.js.map +1 -1
  50. package/dist/config.d.ts +6 -0
  51. package/dist/config.js +66 -0
  52. package/dist/config.js.map +1 -1
  53. package/dist/consent/copy.d.ts +2 -2
  54. package/dist/consent/copy.js +2 -1
  55. package/dist/consent/copy.js.map +1 -1
  56. package/dist/generated/env-config.js +92 -1
  57. package/dist/generated/env-config.js.map +1 -1
  58. package/dist/generated/env-profile.d.ts +7 -0
  59. package/dist/keystore/store.js +33 -4
  60. package/dist/keystore/store.js.map +1 -1
  61. package/dist/npm-registry.d.ts +45 -0
  62. package/dist/npm-registry.js +175 -0
  63. package/dist/npm-registry.js.map +1 -0
  64. package/dist/server.js +3 -0
  65. package/dist/server.js.map +1 -1
  66. package/dist/tools/definitions.d.ts +23 -1
  67. package/dist/tools/definitions.js +72 -20
  68. package/dist/tools/definitions.js.map +1 -1
  69. package/dist/tools/history.d.ts +7 -0
  70. package/dist/tools/history.js +70 -0
  71. package/dist/tools/history.js.map +1 -0
  72. package/dist/tools/index.js +4 -0
  73. package/dist/tools/index.js.map +1 -1
  74. package/dist/tools/runtime.d.ts +8 -0
  75. package/dist/tools/runtime.js +110 -0
  76. package/dist/tools/runtime.js.map +1 -0
  77. package/dist/web/manager.d.ts +6 -0
  78. package/dist/web/manager.js +142 -4
  79. package/dist/web/manager.js.map +1 -1
  80. package/package.json +2 -2
  81. package/server.json +19 -3
  82. package/tools.json +89 -11
package/README.md CHANGED
@@ -72,13 +72,16 @@ The mnemonic never appears in tool inputs/outputs, logs meant for the agent, or
72
72
  <!-- tools-table -->
73
73
  | Tool | Purpose | Moves funds? |
74
74
  |------|---------|:------------:|
75
+ | `get_runtime_info` | Running version vs published npm package | no |
76
+ | `prepare_update` | Stage the npm update for the next restart | no |
75
77
  | `list_wallets` | Names, addresses, and `policy` | no |
76
78
  | `accept_mcp_consent` | Record chat acceptance of the MCP disclaimer | no |
77
79
  | `create_wallets` | New wallets; returns a browser `backup_url` | no |
78
- | `open_wallet_manager` | Local browser UI to import / create / back up | no |
80
+ | `open_wallet_manager` | Local browser UI to import / create / back up / delete | no |
79
81
  | `set_wallet_policy` | Replace per-wallet limits (`readOnly`, `maxPerTxUsd`, allow-list) | no |
80
82
  | `get_deposit_qr` | PNG QR (try chat; else local `qr_url`) | no |
81
83
  | `get_balance` | Native or token balance | no |
84
+ | `get_transaction_history` | Recent txs from public explorers (paged) | no |
82
85
  | `estimate_transfer` | Fee estimate, no broadcast | no |
83
86
  | `send_transfer` | Sign locally and send | **yes** |
84
87
  | `get_operation_status` | Poll a transfer | no |
@@ -89,12 +92,13 @@ The mnemonic never appears in tool inputs/outputs, logs meant for the agent, or
89
92
  | `get_swap_status` | Poll a swap | no |
90
93
  <!-- /tools-table -->
91
94
 
92
- No tool accepts or returns a seed. Import and backup only in the local browser (`open_wallet_manager` / `backup_url`).
95
+ No tool accepts or returns a seed. Import, backup, and delete only in the local browser (`open_wallet_manager` / `backup_url`).
93
96
 
94
97
  ### Wallets
95
98
 
96
99
  - **Create:** `create_wallets` — the agent gets names and addresses; open `backup_url` in a browser to view and back up recovery phrases.
97
100
  - **Import / back up:** `open_wallet_manager` — loopback-only page; the phrase is typed or shown only in the browser.
101
+ - **Delete:** the Delete button in the manager. A separate confirmation page asks the user to retype the wallet name; a wallet that was never backed up also needs an explicit acknowledgement that its recovery phrase is destroyed. Funds are not moved. There is no MCP tool for this.
98
102
  - **List:** `list_wallets`
99
103
  - **Deposit QR:** `get_deposit_qr` — PNG (generated on the fly) plus `qr_url`. Show the image in chat when the host renders it; otherwise open `qr_url`. Pass `network` for one chain. The wallet manager also has a QR button next to each address.
100
104
 
@@ -21,5 +21,6 @@ export interface BalanceResult {
21
21
  /** Human-readable balance formatted with `decimals`. */
22
22
  formatted: string;
23
23
  }
24
+ export declare const NATIVE_SYMBOL: Record<NetworkId, string>;
24
25
  /** Read the on-chain balance for a wallet address on the given network. */
25
26
  export declare function getBalance(network: NetworkId, address: string, contractAddress?: string): Promise<BalanceResult>;
@@ -20,7 +20,7 @@ const ERC20_ABI = [
20
20
  "function decimals() view returns (uint8)",
21
21
  "function symbol() view returns (string)",
22
22
  ];
23
- const NATIVE_SYMBOL = {
23
+ export const NATIVE_SYMBOL = {
24
24
  ethereum: "ETH",
25
25
  bsc: "BNB",
26
26
  polygon: "POL",
@@ -1 +1 @@
1
- {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../src/api/balances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../src/api/balances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Transaction history façade: resolve the provider chain for a network from
3
+ * config, run the merge engine against the first provider that answers, and
4
+ * hand back one normalized page.
5
+ *
6
+ * Failure semantics matter here: an indexer outage must never look like an
7
+ * empty history. When every provider fails the result is `unavailable` with
8
+ * the per-provider errors; when the build has no indexer for the network it
9
+ * is `unsupported`.
10
+ */
11
+ import { type NetworkId } from "../../config.js";
12
+ import { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT, type HistoryApiSpec, type HistoryItem, type HistoryProvider } from "./types.js";
13
+ export { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT };
14
+ export interface HistoryAttempt {
15
+ provider: string;
16
+ error: string;
17
+ }
18
+ export type HistoryResult = {
19
+ status: "ok";
20
+ source: string;
21
+ items: HistoryItem[];
22
+ nextCursor: string | null;
23
+ hasMore: boolean;
24
+ /** Providers that failed before `source` answered. */
25
+ failed: HistoryAttempt[];
26
+ } | {
27
+ status: "unavailable";
28
+ failed: HistoryAttempt[];
29
+ } | {
30
+ status: "unsupported";
31
+ reason: string;
32
+ };
33
+ export declare function buildProvider(spec: HistoryApiSpec, network: NetworkId, address: string): HistoryProvider | null;
34
+ export interface ConfiguredProvider {
35
+ kind: HistoryApiSpec["kind"];
36
+ provider: HistoryProvider;
37
+ }
38
+ export declare function providersFor(network: NetworkId, address: string): ConfiguredProvider[];
39
+ /**
40
+ * A token transfer and the transaction that carried it arrive from different
41
+ * sources with the same hash. Keep the informative token row, fold the fee of
42
+ * the zero-value call into it, and drop the bare call. Page-local by design.
43
+ */
44
+ export declare function collapseCarrierCalls(items: HistoryItem[]): HistoryItem[];
45
+ export declare function getTransactionHistory(network: NetworkId, address: string, opts: {
46
+ limit?: number;
47
+ cursor?: string;
48
+ correlationId: string;
49
+ }): Promise<HistoryResult>;
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Transaction history façade: resolve the provider chain for a network from
3
+ * config, run the merge engine against the first provider that answers, and
4
+ * hand back one normalized page.
5
+ *
6
+ * Failure semantics matter here: an indexer outage must never look like an
7
+ * empty history. When every provider fails the result is `unavailable` with
8
+ * the per-provider errors; when the build has no indexer for the network it
9
+ * is `unsupported`.
10
+ */
11
+ import { getConfig, isEvmNetwork } from "../../config.js";
12
+ import { logInfo, logWarn } from "../../log.js";
13
+ import { decodeCursor, encodeCursor, mergeSources } from "./merge.js";
14
+ import { blockcypherProvider } from "./providers/blockcypher.js";
15
+ import { esploraProvider } from "./providers/esplora.js";
16
+ import { etherscanProvider } from "./providers/etherscan.js";
17
+ import { noderealProvider } from "./providers/nodereal.js";
18
+ import { solanaProvider } from "./providers/solana.js";
19
+ import { toncenterProvider, toncenterV3 } from "./providers/toncenter.js";
20
+ import { trongridProvider } from "./providers/trongrid.js";
21
+ import { tronscanProvider } from "./providers/tronscan.js";
22
+ import { xrpProvider } from "./providers/xrp.js";
23
+ import { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT, } from "./types.js";
24
+ export { HISTORY_DEFAULT_LIMIT, HISTORY_MAX_LIMIT };
25
+ /**
26
+ * Per-attempt timeout and retry cap for indexer calls. A dead primary costs
27
+ * at most 2 × 8 s + backoff before the chain moves to the fallback provider;
28
+ * MCP hosts typically give a tool call about a minute.
29
+ */
30
+ const HISTORY_HTTP_TIMEOUT_MS = 8000;
31
+ const HISTORY_HTTP_RETRIES = 1;
32
+ /** Extra merge rounds to refill a page after carrier calls were folded into token rows. */
33
+ const MAX_REFILL_ROUNDS = 2;
34
+ /** Default endpoint for a kind when the profile entry has no `url`. */
35
+ function defaultUrlFor(kind, network) {
36
+ const cfg = getConfig();
37
+ switch (kind) {
38
+ case "trongrid":
39
+ return cfg.tronApiUrl;
40
+ case "esplora":
41
+ return network === "bitcoin" ? cfg.bitcoinApiUrl : network === "litecoin" ? cfg.litecoinApiUrl : null;
42
+ case "blockcypher":
43
+ return cfg.dogeApiUrl;
44
+ case "solana-rpc":
45
+ return cfg.solanaRpcUrl;
46
+ case "toncenter":
47
+ return toncenterV3(cfg.tonApiUrl);
48
+ case "xrp-rpc":
49
+ return cfg.xrpRpcUrl;
50
+ default:
51
+ return null;
52
+ }
53
+ }
54
+ export function buildProvider(spec, network, address) {
55
+ const url = (spec.url ?? defaultUrlFor(spec.kind, network))?.replace(/\/+$/, "");
56
+ if (!url)
57
+ return null;
58
+ switch (spec.kind) {
59
+ case "etherscan":
60
+ return isEvmNetwork(network) ? etherscanProvider(url, address, network) : null;
61
+ case "nodereal":
62
+ return isEvmNetwork(network) ? noderealProvider(url, address, network) : null;
63
+ case "tronscan":
64
+ return network === "tron" ? tronscanProvider(url, address) : null;
65
+ case "trongrid":
66
+ return network === "tron" ? trongridProvider(url, address) : null;
67
+ case "esplora":
68
+ return network === "bitcoin" || network === "litecoin" ? esploraProvider(url, address, network) : null;
69
+ case "blockcypher":
70
+ return network === "doge" ? blockcypherProvider(url, address, network) : null;
71
+ case "solana-rpc":
72
+ return network === "solana" ? solanaProvider(url, address) : null;
73
+ case "toncenter":
74
+ return network === "ton" ? toncenterProvider(toncenterV3(url) ?? url, address) : null;
75
+ case "xrp-rpc":
76
+ return network === "xrp" ? xrpProvider(url, address) : null;
77
+ default:
78
+ return null;
79
+ }
80
+ }
81
+ export function providersFor(network, address) {
82
+ const specs = getConfig().historyApis[network] ?? [];
83
+ const out = [];
84
+ for (const spec of specs) {
85
+ const provider = buildProvider(spec, network, address);
86
+ if (provider)
87
+ out.push({ kind: spec.kind, provider });
88
+ }
89
+ return out;
90
+ }
91
+ /**
92
+ * A token transfer and the transaction that carried it arrive from different
93
+ * sources with the same hash. Keep the informative token row, fold the fee of
94
+ * the zero-value call into it, and drop the bare call. Page-local by design.
95
+ */
96
+ export function collapseCarrierCalls(items) {
97
+ const tokenHashes = new Map();
98
+ for (const it of items) {
99
+ if (it.kind === "token_transfer" && !tokenHashes.has(it.hash))
100
+ tokenHashes.set(it.hash, it);
101
+ }
102
+ if (tokenHashes.size === 0)
103
+ return items;
104
+ const out = [];
105
+ for (const it of items) {
106
+ const carrier = (it.kind === "contract_call" || it.kind === "other") && it.amount.raw === "0";
107
+ const token = carrier ? tokenHashes.get(it.hash) : undefined;
108
+ if (token) {
109
+ if (!token.fee && it.fee && it.direction !== "in")
110
+ token.fee = it.fee;
111
+ if (token.block === null && it.block !== null)
112
+ token.block = it.block;
113
+ if (token.status === "confirmed" && it.status === "failed")
114
+ token.status = "failed";
115
+ continue;
116
+ }
117
+ out.push(it);
118
+ }
119
+ return out;
120
+ }
121
+ export async function getTransactionHistory(network, address, opts) {
122
+ const limit = Math.min(HISTORY_MAX_LIMIT, Math.max(1, opts.limit ?? HISTORY_DEFAULT_LIMIT));
123
+ const providers = providersFor(network, address);
124
+ if (providers.length === 0) {
125
+ return {
126
+ status: "unsupported",
127
+ reason: `No transaction-history indexer is configured for ${network} in this build.`,
128
+ };
129
+ }
130
+ let previous;
131
+ let candidates = providers;
132
+ if (opts.cursor) {
133
+ const decoded = decodeCursor(opts.cursor);
134
+ // Cursor state is provider-kind specific (page numbers, fingerprints, …),
135
+ // so later pages may use any configured provider of the same kind — that
136
+ // keeps the fallback (e.g. a second Esplora or Solana RPC host) available.
137
+ candidates = providers.filter((p) => p.kind === decoded.p);
138
+ if (candidates.length === 0) {
139
+ throw new Error(`Cursor was issued by a "${decoded.p}" provider, which is not configured for ${network}. Call again without cursor.`);
140
+ }
141
+ previous = { s: decoded.s, b: decoded.b };
142
+ }
143
+ const failed = [];
144
+ const started = Date.now();
145
+ const cfg = getConfig();
146
+ const ctx = {
147
+ correlationId: opts.correlationId,
148
+ http: {
149
+ correlationId: opts.correlationId,
150
+ timeoutMs: Math.min(cfg.httpTimeoutMs, HISTORY_HTTP_TIMEOUT_MS),
151
+ retries: Math.min(cfg.httpRetries, HISTORY_HTTP_RETRIES),
152
+ },
153
+ };
154
+ for (const { kind, provider } of candidates) {
155
+ try {
156
+ // Folding a zero-value carrier call into its token row shortens the
157
+ // page, so pull a little more until `limit` rows or the stream ends.
158
+ let cursorState = previous;
159
+ let raw = [];
160
+ let items = [];
161
+ let hasMore = true;
162
+ for (let round = 0; round <= MAX_REFILL_ROUNDS && hasMore && items.length < limit; round++) {
163
+ const merged = await mergeSources(provider.sources, limit - items.length, cursorState, ctx, limit);
164
+ cursorState = { s: merged.state, b: merged.boundary };
165
+ hasMore = merged.hasMore;
166
+ raw = raw.concat(merged.items);
167
+ items = collapseCarrierCalls(raw);
168
+ }
169
+ logInfo("history.ok", {
170
+ correlationId: opts.correlationId,
171
+ network,
172
+ address,
173
+ provider: provider.label,
174
+ items: items.length,
175
+ hasMore,
176
+ failedProviders: failed.map((f) => f.provider),
177
+ elapsedMs: Date.now() - started,
178
+ });
179
+ return {
180
+ status: "ok",
181
+ source: provider.label,
182
+ items,
183
+ nextCursor: hasMore && cursorState
184
+ ? encodeCursor({ v: 1, p: kind, s: cursorState.s, ...(cursorState.b ? { b: cursorState.b } : {}) })
185
+ : null,
186
+ hasMore,
187
+ failed,
188
+ };
189
+ }
190
+ catch (e) {
191
+ const message = e instanceof Error ? e.message : String(e);
192
+ if (/^Invalid cursor/.test(message))
193
+ throw e;
194
+ failed.push({ provider: provider.label, error: message });
195
+ logWarn("history.provider.fail", {
196
+ correlationId: opts.correlationId,
197
+ network,
198
+ address,
199
+ provider: provider.label,
200
+ error: message,
201
+ });
202
+ }
203
+ }
204
+ return { status: "unavailable", failed };
205
+ }
206
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/history/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * K-way merge of newest-first sources with a resumable cursor.
3
+ *
4
+ * Each source is a paged stream. Per source we remember which page we are on
5
+ * (`cursor`, the value that fetched it) and how many items of that page were
6
+ * already emitted (`skip`). Re-fetching a partially consumed page and skipping
7
+ * is what makes partial consumption exact for cursor-only APIs (TronGrid
8
+ * fingerprints, Esplora last_seen_txid, Solana `before`), where a mid-page
9
+ * cursor cannot be synthesized.
10
+ *
11
+ * Per call we load at most two pages per source, so a window always holds at
12
+ * least `limit` items unless the source is exhausted. The merge then emits up
13
+ * to `limit` items strictly by timestamp. If some source has an empty window
14
+ * but is not exhausted (an API returned fewer rows than asked), we stop early
15
+ * rather than emit out-of-order items — unless nothing was emitted yet, in
16
+ * which case progress beats perfect ordering.
17
+ *
18
+ * Offset-paged indexers (Etherscan-compatible, NodeReal, TronScan, TonCenter)
19
+ * drift when a new transaction lands between two calls: every page shifts by
20
+ * one and the last row of the previous page shows up again. The cursor
21
+ * therefore also carries the boundary — the oldest emitted timestamp and the
22
+ * hashes emitted at it — and later pages drop anything newer than or equal to
23
+ * that boundary. Newer rows are either duplicates or transactions that arrived
24
+ * after the first page; both belong to a fresh query, not to page N.
25
+ */
26
+ import type { HistoryItem, HistorySource, SourceContext } from "./types.js";
27
+ export interface SourceState {
28
+ /** Page cursor that fetches the current page (null = first page). */
29
+ cursor: string | null;
30
+ /** Items of that page already emitted. */
31
+ skip: number;
32
+ /** True when the stream is fully consumed. */
33
+ done: boolean;
34
+ }
35
+ /** Oldest emitted row(s): timestamp and every hash emitted at that timestamp. */
36
+ export interface Boundary {
37
+ ts: number;
38
+ h: string[];
39
+ }
40
+ export interface CursorState {
41
+ v: number;
42
+ /** Provider kind the cursor belongs to (page numbers / fingerprints are kind-specific). */
43
+ p: string;
44
+ s: Record<string, SourceState>;
45
+ b?: Boundary;
46
+ }
47
+ export declare function encodeCursor(state: CursorState): string;
48
+ export declare function decodeCursor(cursor: string): CursorState;
49
+ export interface MergeResult {
50
+ items: HistoryItem[];
51
+ /** Per-source state after this page; feed back through encodeCursor. */
52
+ state: Record<string, SourceState>;
53
+ /** Oldest emitted row(s) of this page, or the previous boundary when nothing was emitted. */
54
+ boundary: Boundary | undefined;
55
+ hasMore: boolean;
56
+ }
57
+ /**
58
+ * @param limit rows to emit
59
+ * @param pageSize rows to request per source page (defaults to `limit`); a
60
+ * refill round asks for a full page while emitting only the
61
+ * remainder, so it does not crawl in tiny requests
62
+ */
63
+ export declare function mergeSources(sources: HistorySource[], limit: number, previous: Pick<CursorState, "s" | "b"> | undefined, ctx: SourceContext, pageSize?: number): Promise<MergeResult>;