web3-tools-mcp 2.0.0 → 2.0.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,40 @@
2
2
 
3
3
  Notable changes per release. Dates are release dates; unreleased work sits at the top.
4
4
 
5
+ ## [2.0.2] — 2026-09-22
6
+
7
+ ### Fixed
8
+
9
+ - **Phone signing hung, for real this time.** 2.0.1 had the right symptom but the wrong
10
+ cause, and did not fix it. Naming the agent in `pair_phone_wallet` started a second
11
+ WalletConnect client, because the handler had already started one to check for an
12
+ existing session. The first client's engine kept running, and its heartbeat sweeps
13
+ "orphaned" subscriptions against its own, empty session list — so two seconds after the
14
+ new session settled, it unsubscribed the session's topic. Every reply the wallet sent
15
+ after that went nowhere. Closing the old transport, which is what 2.0.1 did, never
16
+ stopped that heartbeat.
17
+
18
+ Now there is only ever one client. The agent's name is set before it starts, and a
19
+ running client is never replaced. If one already exists, the wallet dialog keeps the
20
+ earlier name, which costs far less than signing that silently hangs.
21
+
22
+ Found by trapping every `unsubscribe` with a stack trace. If you paired under 2.0.0 or
23
+ 2.0.1, run `disconnect_phone_wallet` and pair again.
24
+
25
+ ## [2.0.1] — 2026-09-22
26
+
27
+ ### Fixed
28
+
29
+ - **A phone signature could never come back.** Naming the agent in `pair_phone_wallet`
30
+ replaces the WalletConnect client, because its metadata is fixed at init — but the old
31
+ one was dropped without being closed. Two clients then shared one storage directory and
32
+ overwrote each other's subscription record, so the surviving session was left subscribed
33
+ to nothing: a request reached the wallet, you approved it, and the reply was published
34
+ where nobody was listening. The tool simply hung. The replaced client is closed now.
35
+
36
+ If you hit this, re-pair after upgrading — the stored session's subscription is what was
37
+ lost, and a fresh client rebuilds it.
38
+
5
39
  ## [2.0.0] — 2026-09-21
6
40
 
7
41
  The theme is signing: where a transaction can be signed, and what you are told before you
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import { WalletRelay } from 'web3-wallet-relay';
5
5
  import packageJson from '../package.json' with { type: 'json' };
6
6
  import { initializeClientManager, SUPPORTED_CHAINS } from './client.js';
7
7
  import { startHttpServer } from './http-server.js';
8
+ import { attachLogServer } from './log.js';
8
9
  import { registerAllTools } from './tools/index.js';
9
10
  import { parseCommandLineArgs } from './utils.js';
10
11
  import { getWalletClient } from './wallet-client.js';
@@ -86,10 +87,7 @@ if (config.customRpcUrls) {
86
87
  // Initialize client manager
87
88
  initializeClientManager(config);
88
89
  function createMcpServer() {
89
- const server = new McpServer({
90
- name: 'web3-tools-mcp',
91
- version: packageJson.version
92
- });
90
+ const server = new McpServer({ name: 'web3-tools-mcp', version: packageJson.version }, { capabilities: { logging: {} } });
93
91
  registerAllTools(server);
94
92
  return server;
95
93
  }
@@ -147,7 +145,9 @@ async function main() {
147
145
  return;
148
146
  }
149
147
  const transport = new StdioServerTransport();
150
- await createMcpServer().connect(transport);
148
+ const server = createMcpServer();
149
+ attachLogServer(server);
150
+ await server.connect(transport);
151
151
  console.error('Web3 Tools MCP Server running on stdio');
152
152
  // The relay may still be picking a free port, and its URL carries the pairing token.
153
153
  await walletReady;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/log.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ type Level = 'debug' | 'info' | 'warning' | 'error';
3
+ /**
4
+ * Forward logs to the MCP client as well as stderr. Only stdio attaches: it has one server
5
+ * for the life of the process, while HTTP builds one per request and answers in plain JSON,
6
+ * with no stream to push a notification down.
7
+ */
8
+ export declare function attachLogServer(mcp: McpServer): void;
9
+ /**
10
+ * Always stderr, so a host's log capture sees it; stdout is the JSON-RPC stream in stdio
11
+ * mode and must carry nothing else. Also sent to the client as `notifications/message`,
12
+ * because some clients keep a server's messages but not its stderr.
13
+ */
14
+ export declare function log(level: Level, logger: string, message: string): void;
15
+ export {};
16
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;AAInD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvE"}
package/dist/log.js ADDED
@@ -0,0 +1,20 @@
1
+ let server;
2
+ /**
3
+ * Forward logs to the MCP client as well as stderr. Only stdio attaches: it has one server
4
+ * for the life of the process, while HTTP builds one per request and answers in plain JSON,
5
+ * with no stream to push a notification down.
6
+ */
7
+ export function attachLogServer(mcp) {
8
+ server = mcp;
9
+ }
10
+ /**
11
+ * Always stderr, so a host's log capture sees it; stdout is the JSON-RPC stream in stdio
12
+ * mode and must carry nothing else. Also sent to the client as `notifications/message`,
13
+ * because some clients keep a server's messages but not its stderr.
14
+ */
15
+ export function log(level, logger, message) {
16
+ console.error(`[${logger}] ${message}`);
17
+ // Before the client has initialised there is nothing to send to; losing those is fine.
18
+ server?.sendLoggingMessage({ level, logger, data: message }).catch(() => { });
19
+ }
20
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAIA,IAAI,MAA6B,CAAA;AAEjC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,MAAM,GAAG,GAAG,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,MAAc,EAAE,OAAe;IAC/D,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC,CAAA;IACvC,uFAAuF;IACvF,MAAM,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAC9E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwHvB,wBAwUC"}
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0HvB,wBA0UC"}
@@ -3,6 +3,7 @@ import qrcode from 'qrcode-terminal';
3
3
  import { encodeFunctionData, isAddress, parseAbiItem, parseUnits, toHex } from 'viem';
4
4
  import { z } from 'zod';
5
5
  import { getClientManager, SUPPORTED_CHAINS } from '../client.js';
6
+ import { log } from '../log.js';
6
7
  import { buildTxPreview } from '../preview.js';
7
8
  import { createTool, formatResponse } from '../utils.js';
8
9
  import { getWalletClient } from '../wallet-client.js';
@@ -50,6 +51,7 @@ async function signOnPhone(chain, tx) {
50
51
  return { txHash, preview, signedWith: 'phone' };
51
52
  }
52
53
  async function requestSignature(chain, tx, signWith) {
54
+ log('info', 'Transaction', `${chain} → ${tx.to}, signing with ${signWith}`);
53
55
  if (signWith === 'phone')
54
56
  return signOnPhone(chain, tx);
55
57
  const wallet = getWalletClient();
@@ -94,7 +96,7 @@ function describeError(error) {
94
96
  return String(error);
95
97
  }
96
98
  function failure(error, message) {
97
- console.error('[Transaction]', message, '—', describeError(error));
99
+ log('warning', 'Transaction', `${message} — ${describeError(error)}`);
98
100
  return formatResponse({
99
101
  success: false,
100
102
  error: describeError(error),
@@ -261,6 +263,8 @@ export default {
261
263
  });
262
264
  }
263
265
  try {
266
+ // Before anything starts the client: its name is fixed the moment it does.
267
+ phone.nameAgent(args.agent);
264
268
  const existing = await phone.session();
265
269
  if (existing) {
266
270
  return formatResponse({
@@ -271,7 +275,7 @@ export default {
271
275
  });
272
276
  }
273
277
  const chains = (args.chains ?? SUPPORTED_CHAINS.filter((c) => c !== 'localhost'));
274
- const uri = await phone.pair(chains, args.agent);
278
+ const uri = await phone.pair(chains);
275
279
  const projectId = getClientManager().getConfig().walletConnectProjectId;
276
280
  return formatResponse({
277
281
  qr: await qrFor(uri),
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,18 @@ export declare class PhoneSigner {
22
22
  * background — a tool result only reaches the user once it returns, so blocking here
23
23
  * would hide the QR they are supposed to scan.
24
24
  */
25
- pair(chains: ChainName[], agent?: string): Promise<string>;
25
+ /**
26
+ * Name who is asking, for the wallet's approval dialog. Takes effect only before the
27
+ * client starts, because WalletConnect fixes metadata at init — call it first.
28
+ *
29
+ * There is deliberately no way to relabel a running client. Replacing it leaves the old
30
+ * one's engine alive, and its heartbeat sweeps "orphaned" subscriptions against its own,
31
+ * empty session list — unsubscribing the new session's topic two seconds after it
32
+ * settles, so every reply the wallet sends goes to a topic nobody is listening on. A
33
+ * stale name in the dialog is a far smaller cost than signing that silently hangs.
34
+ */
35
+ nameAgent(agent?: string): void;
36
+ pair(chains: ChainName[]): Promise<string>;
26
37
  /** Send a request to the paired wallet. Throws if the chain is outside the session. */
27
38
  request(chain: ChainName, method: string, params: unknown[]): Promise<unknown>;
28
39
  /** Every live session, not just the one that would be used for signing. */
@@ -1 +1 @@
1
- {"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAiB3C,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAsBD,qBAAa,WAAW;IAOV,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAAgD;IAC/D,mFAAmF;IACnF,OAAO,CAAC,KAAK,CAAoB;gBAEb,SAAS,EAAE,MAAM;YAEvB,KAAK;IA8BnB,2EAA2E;IACrE,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAiBvC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC;;;;OAIG;IACG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BhE,uFAAuF;IACjF,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBpF,2EAA2E;IACrE,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAUpC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBhE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B;AAiCD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcnH;AAID,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAKnD"}
1
+ {"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAiB3C,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAsBD,qBAAa,WAAW;IAOV,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAAgD;IAC/D,mFAAmF;IACnF,OAAO,CAAC,KAAK,CAAoB;gBAEb,SAAS,EAAE,MAAM;YAEvB,KAAK;IA8BnB,2EAA2E;IACrE,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAiBvC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC;;;;OAIG;IACH;;;;;;;;;OASG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBhD,uFAAuF;IACjF,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCpF,2EAA2E;IACrE,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAUpC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBhE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B;AAiCD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcnH;AAID,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAKnD"}
@@ -3,6 +3,7 @@ import { homedir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import { getClientManager } from './client.js';
5
5
  import { getKeyValueStorage } from './kv-storage.js';
6
+ import { log } from './log.js';
6
7
  async function importSignClient() {
7
8
  // Imported lazily: several MB of SDK that is pointless to load without a project ID.
8
9
  const { SignClient } = await import('@walletconnect/sign-client');
@@ -91,15 +92,23 @@ export class PhoneSigner {
91
92
  * background — a tool result only reaches the user once it returns, so blocking here
92
93
  * would hide the QR they are supposed to scan.
93
94
  */
94
- async pair(chains, agent) {
95
- // Metadata is fixed when the client starts, so a new label needs a new client. Only
96
- // safe while nothing is connected — an existing session owns the old client.
97
- if (agent && agent !== this.agent && this.client && this.client.session.getAll().length === 0) {
98
- this.client = undefined;
99
- }
100
- if (agent)
95
+ /**
96
+ * Name who is asking, for the wallet's approval dialog. Takes effect only before the
97
+ * client starts, because WalletConnect fixes metadata at init — call it first.
98
+ *
99
+ * There is deliberately no way to relabel a running client. Replacing it leaves the old
100
+ * one's engine alive, and its heartbeat sweeps "orphaned" subscriptions against its own,
101
+ * empty session list — unsubscribing the new session's topic two seconds after it
102
+ * settles, so every reply the wallet sends goes to a topic nobody is listening on. A
103
+ * stale name in the dialog is a far smaller cost than signing that silently hangs.
104
+ */
105
+ nameAgent(agent) {
106
+ if (agent && !this.client)
101
107
  this.agent = agent;
108
+ }
109
+ async pair(chains) {
102
110
  await this.start();
111
+ log('info', 'WalletConnect', `Pairing as "${this.agent ?? 'default name'}" for ${chains.length} chain(s)`);
103
112
  if (!this.client)
104
113
  throw new Error('WalletConnect failed to start');
105
114
  const clientManager = getClientManager();
@@ -113,8 +122,8 @@ export class PhoneSigner {
113
122
  throw new Error('WalletConnect did not return a pairing URI');
114
123
  this.pairing = { uri, expiresAt: Date.now() + APPROVAL_TIMEOUT };
115
124
  approval()
116
- .then((session) => console.error(`[WalletConnect] Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`))
117
- .catch((error) => console.error('[WalletConnect] Pairing was not completed:', error.message));
125
+ .then((session) => log('info', 'WalletConnect', `Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`))
126
+ .catch((error) => log('warning', 'WalletConnect', `Pairing was not completed: ${error.message}`));
118
127
  return uri;
119
128
  }
120
129
  /** Send a request to the paired wallet. Throws if the chain is outside the session. */
@@ -126,11 +135,22 @@ export class PhoneSigner {
126
135
  if (!session.chains.includes(chainId)) {
127
136
  throw new Error(`The paired wallet did not approve ${chain} (chain ${chainId}). It approved: ${session.chains.join(', ')}. Re-pair to add it.`);
128
137
  }
129
- return this.client.request({
130
- topic: session.topic,
131
- chainId: `eip155:${chainId}`,
132
- request: { method, params }
133
- });
138
+ const started = Date.now();
139
+ log('info', 'WalletConnect', `→ ${method} on ${chain}, session ${session.topic.slice(0, 8)}, waiting for ${session.peer ?? 'wallet'}`);
140
+ try {
141
+ const result = await this.client.request({
142
+ topic: session.topic,
143
+ chainId: `eip155:${chainId}`,
144
+ request: { method, params }
145
+ });
146
+ log('info', 'WalletConnect', `← ${method} answered in ${Date.now() - started}ms`);
147
+ return result;
148
+ }
149
+ catch (error) {
150
+ const reason = error?.message ?? String(error);
151
+ log('warning', 'WalletConnect', `← ${method} failed after ${Date.now() - started}ms: ${reason}`);
152
+ throw error;
153
+ }
134
154
  }
135
155
  /** Every live session, not just the one that would be used for signing. */
136
156
  async sessions() {
@@ -155,13 +175,13 @@ export class PhoneSigner {
155
175
  for (const session of sessions) {
156
176
  await this.client
157
177
  .disconnect({ topic: session.topic, reason: { code: 6000, message: 'User disconnected' } })
158
- .catch((error) => console.error('[WalletConnect] Could not disconnect a session:', error.message));
178
+ .catch((error) => log('warning', 'WalletConnect', `Could not disconnect a session: ${error.message}`));
159
179
  }
160
180
  const pairings = this.client.core.pairing.getPairings();
161
181
  for (const pairing of pairings) {
162
182
  await this.client.core.pairing
163
183
  .disconnect({ topic: pairing.topic })
164
- .catch((error) => console.error('[WalletConnect] Could not drop a pairing:', error.message));
184
+ .catch((error) => log('warning', 'WalletConnect', `Could not drop a pairing: ${error.message}`));
165
185
  }
166
186
  return { sessions: sessions.length, pairings: pairings.length };
167
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"walletconnect.js","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAYpD,KAAK,UAAU,gBAAgB;IAC7B,qFAAqF;IACrF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAA;IACjE,OAAO,UAAU,CAAA;AACnB,CAAC;AASD,MAAM,OAAO,GAAG,CAAC,qBAAqB,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAA;AAChF,MAAM,MAAM,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;AAClD,MAAM,gBAAgB,GAAG,OAAO,CAAA;AAEhC;;;GAGG;AACH,SAAS,SAAS;IAChB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACpF,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,oBAAoB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;IACrF,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAA;IAC7F,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,OAAO,WAAW;IAOF;IANZ,MAAM,CAA4B;IAClC,QAAQ,CAA2B;IACnC,OAAO,CAAgD;IAC/D,mFAAmF;IAC3E,KAAK,CAAoB;IAEjC,YAAoB,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAEjC,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;QAEvC,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAA;YAC3C,qFAAqF;YACrF,gFAAgF;YAChF,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAA;YACpC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC;gBACnC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBAC1E,iFAAiF;gBACjF,kFAAkF;gBAClF,iFAAiF;gBACjF,oDAAoD;gBACpD,QAAQ,EAAE;oBACR,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,qBAAqB,CAAC,CAAC,CAAC,2BAA2B;oBACnF,WAAW,EAAE,kFAAkF;oBAC/F,GAAG,EAAE,SAAS,EAAE;oBAChB,KAAK,EAAE,EAAE;iBACV;aACF,CAAC,CAAmB,CAAA;QACvB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAA;QAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAA;QAC1D,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,4CAA4C;YAC5C,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC;YACtE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI;SACnC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,MAAmB,EAAE,KAAc;QAC5C,oFAAoF;QACpF,6EAA6E;QAC7E,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9F,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACzB,CAAC;QACD,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAE7B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAElE,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEjF,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClD,oFAAoF;YACpF,4DAA4D;YAC5D,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;SACrF,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QACvE,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAA;QAEhE,QAAQ,EAAE;aACP,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;aAC7G,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAE/F,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,MAAc,EAAE,MAAiB;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACpC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAEvE,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,qCAAqC,KAAK,WAAW,OAAO,mBAAmB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAC/H,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,UAAU,OAAO,EAAE;YAC5B,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;SAC5B,CAAC,CAAA;IACJ,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC;YACzG,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI;SACnC,CAAC,CAAC,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;QAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,MAAM;iBACd,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC;iBAC1F,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QACtG,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QACvD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;iBAC3B,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;iBACpC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAChG,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;IAC5B,CAAC;CACF;AAQD,IAAI,OAAkC,CAAA;AAEtC;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC7C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAA;IAE3B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,+DAA+D,SAAS,qBAAqB,CAAC,CAAA;QAC3H,MAAM,QAAQ,GACX,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA2E,CAAC,QAAQ,IAAI,EAAE,CAAA;QAEnH,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC9B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;aACrH,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAAA;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAA;IACd,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,GAAW,EAAE,MAAe;IAChF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAEvC,MAAM,OAAO,GAAG,MAAM;QACpB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEzB,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAA;QACxE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,UAAU,OAAO,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,IAAI,MAAM,GAAuB,IAAI,CAAA;AAErC,kEAAkE;AAClE,MAAM,UAAU,cAAc;IAC5B,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC,SAAS,EAAE,CAAC,sBAAsB,CAAA;IACvE,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3B,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAA;IAChD,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"walletconnect.js","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web3-tools-mcp",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "Model Context Protocol server for blockchain data and transaction signing — sign in a browser wallet or on your phone, with simulation and ERC-7730 clear signing before you approve",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -6,6 +6,7 @@ import { WalletRelay } from 'web3-wallet-relay'
6
6
  import packageJson from '../package.json' with { type: 'json' }
7
7
  import { initializeClientManager, SUPPORTED_CHAINS } from './client.js'
8
8
  import { startHttpServer } from './http-server.js'
9
+ import { attachLogServer } from './log.js'
9
10
  import { registerAllTools } from './tools/index.js'
10
11
  import { parseCommandLineArgs } from './utils.js'
11
12
  import { getWalletClient } from './wallet-client.js'
@@ -92,10 +93,7 @@ if (config.customRpcUrls) {
92
93
  initializeClientManager(config)
93
94
 
94
95
  function createMcpServer() {
95
- const server = new McpServer({
96
- name: 'web3-tools-mcp',
97
- version: packageJson.version
98
- })
96
+ const server = new McpServer({ name: 'web3-tools-mcp', version: packageJson.version }, { capabilities: { logging: {} } })
99
97
  registerAllTools(server)
100
98
  return server
101
99
  }
@@ -161,7 +159,9 @@ async function main() {
161
159
  }
162
160
 
163
161
  const transport = new StdioServerTransport()
164
- await createMcpServer().connect(transport)
162
+ const server = createMcpServer()
163
+ attachLogServer(server)
164
+ await server.connect(transport)
165
165
  console.error('Web3 Tools MCP Server running on stdio')
166
166
  // The relay may still be picking a free port, and its URL carries the pairing token.
167
167
  await walletReady
package/src/log.ts ADDED
@@ -0,0 +1,25 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2
+
3
+ type Level = 'debug' | 'info' | 'warning' | 'error'
4
+
5
+ let server: McpServer | undefined
6
+
7
+ /**
8
+ * Forward logs to the MCP client as well as stderr. Only stdio attaches: it has one server
9
+ * for the life of the process, while HTTP builds one per request and answers in plain JSON,
10
+ * with no stream to push a notification down.
11
+ */
12
+ export function attachLogServer(mcp: McpServer): void {
13
+ server = mcp
14
+ }
15
+
16
+ /**
17
+ * Always stderr, so a host's log capture sees it; stdout is the JSON-RPC stream in stdio
18
+ * mode and must carry nothing else. Also sent to the client as `notifications/message`,
19
+ * because some clients keep a server's messages but not its stderr.
20
+ */
21
+ export function log(level: Level, logger: string, message: string): void {
22
+ console.error(`[${logger}] ${message}`)
23
+ // Before the client has initialised there is nothing to send to; losing those is fine.
24
+ server?.sendLoggingMessage({ level, logger, data: message }).catch(() => {})
25
+ }
@@ -3,6 +3,7 @@ import qrcode from 'qrcode-terminal'
3
3
  import { type AbiFunction, type Address, encodeFunctionData, isAddress, parseAbiItem, parseUnits, toHex } from 'viem'
4
4
  import { z } from 'zod'
5
5
  import { getClientManager, SUPPORTED_CHAINS } from '../client.js'
6
+ import { log } from '../log.js'
6
7
  import { buildTxPreview, type RawTx, type TxPreview } from '../preview.js'
7
8
  import type { ChainName } from '../types.js'
8
9
  import { createTool, formatResponse } from '../utils.js'
@@ -66,6 +67,7 @@ async function signOnPhone(chain: ChainName, tx: RawTx & { data?: string }) {
66
67
  }
67
68
 
68
69
  async function requestSignature(chain: ChainName, tx: RawTx & { data?: string }, signWith: SignWith) {
70
+ log('info', 'Transaction', `${chain} → ${tx.to}, signing with ${signWith}`)
69
71
  if (signWith === 'phone') return signOnPhone(chain, tx)
70
72
 
71
73
  const wallet = getWalletClient()
@@ -113,7 +115,7 @@ function describeError(error: unknown): string {
113
115
  }
114
116
 
115
117
  function failure(error: unknown, message: string) {
116
- console.error('[Transaction]', message, '—', describeError(error))
118
+ log('warning', 'Transaction', `${message} — ${describeError(error)}`)
117
119
  return formatResponse({
118
120
  success: false,
119
121
  error: describeError(error),
@@ -330,6 +332,8 @@ export default {
330
332
  }
331
333
 
332
334
  try {
335
+ // Before anything starts the client: its name is fixed the moment it does.
336
+ phone.nameAgent(args.agent)
333
337
  const existing = await phone.session()
334
338
  if (existing) {
335
339
  return formatResponse({
@@ -341,7 +345,7 @@ export default {
341
345
  }
342
346
 
343
347
  const chains = (args.chains ?? SUPPORTED_CHAINS.filter((c) => c !== 'localhost')) as ChainName[]
344
- const uri = await phone.pair(chains, args.agent)
348
+ const uri = await phone.pair(chains)
345
349
  const projectId = getClientManager().getConfig().walletConnectProjectId as string
346
350
 
347
351
  return formatResponse({
@@ -3,6 +3,7 @@ import { homedir } from 'node:os'
3
3
  import { join } from 'node:path'
4
4
  import { getClientManager } from './client.js'
5
5
  import { getKeyValueStorage } from './kv-storage.js'
6
+ import { log } from './log.js'
6
7
  import type { ChainName } from './types.js'
7
8
 
8
9
  /**
@@ -113,15 +114,23 @@ export class PhoneSigner {
113
114
  * background — a tool result only reaches the user once it returns, so blocking here
114
115
  * would hide the QR they are supposed to scan.
115
116
  */
116
- async pair(chains: ChainName[], agent?: string): Promise<string> {
117
- // Metadata is fixed when the client starts, so a new label needs a new client. Only
118
- // safe while nothing is connected — an existing session owns the old client.
119
- if (agent && agent !== this.agent && this.client && this.client.session.getAll().length === 0) {
120
- this.client = undefined
121
- }
122
- if (agent) this.agent = agent
117
+ /**
118
+ * Name who is asking, for the wallet's approval dialog. Takes effect only before the
119
+ * client starts, because WalletConnect fixes metadata at init — call it first.
120
+ *
121
+ * There is deliberately no way to relabel a running client. Replacing it leaves the old
122
+ * one's engine alive, and its heartbeat sweeps "orphaned" subscriptions against its own,
123
+ * empty session list — unsubscribing the new session's topic two seconds after it
124
+ * settles, so every reply the wallet sends goes to a topic nobody is listening on. A
125
+ * stale name in the dialog is a far smaller cost than signing that silently hangs.
126
+ */
127
+ nameAgent(agent?: string): void {
128
+ if (agent && !this.client) this.agent = agent
129
+ }
123
130
 
131
+ async pair(chains: ChainName[]): Promise<string> {
124
132
  await this.start()
133
+ log('info', 'WalletConnect', `Pairing as "${this.agent ?? 'default name'}" for ${chains.length} chain(s)`)
125
134
  if (!this.client) throw new Error('WalletConnect failed to start')
126
135
 
127
136
  const clientManager = getClientManager()
@@ -137,8 +146,8 @@ export class PhoneSigner {
137
146
  this.pairing = { uri, expiresAt: Date.now() + APPROVAL_TIMEOUT }
138
147
 
139
148
  approval()
140
- .then((session) => console.error(`[WalletConnect] Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`))
141
- .catch((error) => console.error('[WalletConnect] Pairing was not completed:', error.message))
149
+ .then((session) => log('info', 'WalletConnect', `Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`))
150
+ .catch((error) => log('warning', 'WalletConnect', `Pairing was not completed: ${error.message}`))
142
151
 
143
152
  return uri
144
153
  }
@@ -155,11 +164,25 @@ export class PhoneSigner {
155
164
  )
156
165
  }
157
166
 
158
- return this.client.request({
159
- topic: session.topic,
160
- chainId: `eip155:${chainId}`,
161
- request: { method, params }
162
- })
167
+ const started = Date.now()
168
+ log(
169
+ 'info',
170
+ 'WalletConnect',
171
+ `→ ${method} on ${chain}, session ${session.topic.slice(0, 8)}, waiting for ${session.peer ?? 'wallet'}`
172
+ )
173
+ try {
174
+ const result = await this.client.request({
175
+ topic: session.topic,
176
+ chainId: `eip155:${chainId}`,
177
+ request: { method, params }
178
+ })
179
+ log('info', 'WalletConnect', `← ${method} answered in ${Date.now() - started}ms`)
180
+ return result
181
+ } catch (error) {
182
+ const reason = (error as { message?: string })?.message ?? String(error)
183
+ log('warning', 'WalletConnect', `← ${method} failed after ${Date.now() - started}ms: ${reason}`)
184
+ throw error
185
+ }
163
186
  }
164
187
 
165
188
  /** Every live session, not just the one that would be used for signing. */
@@ -186,14 +209,14 @@ export class PhoneSigner {
186
209
  for (const session of sessions) {
187
210
  await this.client
188
211
  .disconnect({ topic: session.topic, reason: { code: 6000, message: 'User disconnected' } })
189
- .catch((error) => console.error('[WalletConnect] Could not disconnect a session:', error.message))
212
+ .catch((error) => log('warning', 'WalletConnect', `Could not disconnect a session: ${error.message}`))
190
213
  }
191
214
 
192
215
  const pairings = this.client.core.pairing.getPairings()
193
216
  for (const pairing of pairings) {
194
217
  await this.client.core.pairing
195
218
  .disconnect({ topic: pairing.topic })
196
- .catch((error) => console.error('[WalletConnect] Could not drop a pairing:', error.message))
219
+ .catch((error) => log('warning', 'WalletConnect', `Could not drop a pairing: ${error.message}`))
197
220
  }
198
221
 
199
222
  return { sessions: sessions.length, pairings: pairings.length }