web3-tools-mcp 2.0.2 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +182 -1
- package/README.md +76 -47
- package/dist/anvil.d.ts +17 -19
- package/dist/anvil.d.ts.map +1 -1
- package/dist/anvil.js +124 -228
- package/dist/anvil.js.map +1 -1
- package/dist/chain-meta.d.ts.map +1 -1
- package/dist/chain-meta.js +19 -8
- package/dist/chain-meta.js.map +1 -1
- package/dist/chains.d.ts +9 -1
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +11 -2
- package/dist/chains.js.map +1 -1
- package/dist/clear-signing.d.ts.map +1 -1
- package/dist/clear-signing.js +17 -6
- package/dist/clear-signing.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/context.d.ts +22 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +24 -0
- package/dist/context.js.map +1 -0
- package/dist/hosted.d.ts +12 -0
- package/dist/hosted.d.ts.map +1 -0
- package/dist/hosted.js +12 -0
- package/dist/hosted.js.map +1 -0
- package/dist/http-server.d.ts +13 -0
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +22 -7
- package/dist/http-server.js.map +1 -1
- package/dist/index.js +20 -12
- package/dist/index.js.map +1 -1
- package/dist/kv-storage.d.ts +2 -1
- package/dist/kv-storage.d.ts.map +1 -1
- package/dist/kv-storage.js +5 -2
- package/dist/kv-storage.js.map +1 -1
- package/dist/lib.d.ts +24 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +23 -0
- package/dist/lib.js.map +1 -0
- package/dist/mcp-server.d.ts +4 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +43 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/oauth.d.ts +57 -8
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +133 -63
- package/dist/oauth.js.map +1 -1
- package/dist/preview.d.ts +7 -0
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +21 -7
- package/dist/preview.js.map +1 -1
- package/dist/signing-requests.d.ts +81 -0
- package/dist/signing-requests.d.ts.map +1 -0
- package/dist/signing-requests.js +138 -0
- package/dist/signing-requests.js.map +1 -0
- package/dist/tools/index.d.ts +27 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +50 -15
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/{advanced.d.ts → read/advanced.d.ts} +39 -30
- package/dist/tools/read/advanced.d.ts.map +1 -0
- package/dist/tools/{advanced.js → read/advanced.js} +53 -41
- package/dist/tools/read/advanced.js.map +1 -0
- package/dist/tools/{balance.d.ts → read/balance.d.ts} +8 -7
- package/dist/tools/read/balance.d.ts.map +1 -0
- package/dist/tools/{balance.js → read/balance.js} +18 -33
- package/dist/tools/read/balance.js.map +1 -0
- package/dist/tools/{contract-info.d.ts → read/contract-info.d.ts} +20 -15
- package/dist/tools/read/contract-info.d.ts.map +1 -0
- package/dist/tools/{contract-info.js → read/contract-info.js} +54 -123
- package/dist/tools/read/contract-info.js.map +1 -0
- package/dist/tools/{contract.d.ts → read/contract.d.ts} +14 -12
- package/dist/tools/read/contract.d.ts.map +1 -0
- package/dist/tools/{contract.js → read/contract.js} +3 -2
- package/dist/tools/read/contract.js.map +1 -0
- package/dist/tools/read/ens.d.ts +104 -0
- package/dist/tools/read/ens.d.ts.map +1 -0
- package/dist/tools/{ens.js → read/ens.js} +25 -33
- package/dist/tools/read/ens.js.map +1 -0
- package/dist/tools/read/gas.d.ts +171 -0
- package/dist/tools/read/gas.d.ts.map +1 -0
- package/dist/tools/read/gas.js +333 -0
- package/dist/tools/read/gas.js.map +1 -0
- package/dist/tools/read/logs.d.ts +101 -0
- package/dist/tools/read/logs.d.ts.map +1 -0
- package/dist/tools/read/logs.js +211 -0
- package/dist/tools/read/logs.js.map +1 -0
- package/dist/tools/{signatures.d.ts → read/signatures.d.ts} +8 -4
- package/dist/tools/read/signatures.d.ts.map +1 -0
- package/dist/tools/{signatures.js → read/signatures.js} +4 -3
- package/dist/tools/read/signatures.js.map +1 -0
- package/dist/tools/read/signing.d.ts +27 -0
- package/dist/tools/read/signing.d.ts.map +1 -0
- package/dist/tools/read/signing.js +81 -0
- package/dist/tools/read/signing.js.map +1 -0
- package/dist/tools/sign/errors.d.ts +9 -0
- package/dist/tools/sign/errors.d.ts.map +1 -0
- package/dist/tools/sign/errors.js +29 -0
- package/dist/tools/sign/errors.js.map +1 -0
- package/dist/tools/sign/transactions.d.ts +141 -0
- package/dist/tools/sign/transactions.d.ts.map +1 -0
- package/dist/tools/sign/transactions.js +361 -0
- package/dist/tools/sign/transactions.js.map +1 -0
- package/dist/tools/sign/wallet.d.ts +50 -0
- package/dist/tools/sign/wallet.d.ts.map +1 -0
- package/dist/tools/sign/wallet.js +180 -0
- package/dist/tools/sign/wallet.js.map +1 -0
- package/dist/utils.d.ts +23 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +48 -3
- package/dist/utils.js.map +1 -1
- package/dist/wallet-client.d.ts +34 -4
- package/dist/wallet-client.d.ts.map +1 -1
- package/dist/wallet-client.js +106 -27
- package/dist/wallet-client.js.map +1 -1
- package/dist/walletconnect.d.ts +100 -13
- package/dist/walletconnect.d.ts.map +1 -1
- package/dist/walletconnect.js +215 -50
- package/dist/walletconnect.js.map +1 -1
- package/package.json +12 -9
- package/src/anvil.ts +150 -271
- package/src/chain-meta.ts +16 -7
- package/src/chains.ts +14 -2
- package/src/clear-signing.ts +15 -9
- package/src/client.ts +0 -1
- package/src/context.ts +27 -0
- package/src/hosted.ts +11 -0
- package/src/http-server.ts +38 -8
- package/src/index.ts +20 -13
- package/src/kv-storage.ts +6 -3
- package/src/lib.ts +24 -0
- package/src/mcp-server.ts +47 -0
- package/src/oauth.ts +181 -69
- package/src/preview.ts +28 -7
- package/src/signing-requests.ts +198 -0
- package/src/tools/index.ts +78 -16
- package/src/tools/{advanced.ts → read/advanced.ts} +74 -43
- package/src/tools/{balance.ts → read/balance.ts} +20 -35
- package/src/tools/{contract-info.ts → read/contract-info.ts} +66 -146
- package/src/tools/{contract.ts → read/contract.ts} +4 -3
- package/src/tools/{ens.ts → read/ens.ts} +27 -34
- package/src/tools/read/gas.ts +443 -0
- package/src/tools/read/logs.ts +281 -0
- package/src/tools/{signatures.ts → read/signatures.ts} +5 -5
- package/src/tools/read/signing.ts +92 -0
- package/src/tools/sign/errors.ts +28 -0
- package/src/tools/sign/transactions.ts +479 -0
- package/src/tools/sign/wallet.ts +216 -0
- package/src/utils.ts +52 -3
- package/src/wallet-client.ts +107 -24
- package/src/walletconnect.ts +250 -48
- package/dist/tools/advanced.d.ts.map +0 -1
- package/dist/tools/advanced.js.map +0 -1
- package/dist/tools/balance.d.ts.map +0 -1
- package/dist/tools/balance.js.map +0 -1
- package/dist/tools/contract-info.d.ts.map +0 -1
- package/dist/tools/contract-info.js.map +0 -1
- package/dist/tools/contract.d.ts.map +0 -1
- package/dist/tools/contract.js.map +0 -1
- package/dist/tools/ens.d.ts +0 -119
- package/dist/tools/ens.d.ts.map +0 -1
- package/dist/tools/ens.js.map +0 -1
- package/dist/tools/gas.d.ts +0 -99
- package/dist/tools/gas.d.ts.map +0 -1
- package/dist/tools/gas.js +0 -181
- package/dist/tools/gas.js.map +0 -1
- package/dist/tools/logs.d.ts +0 -39
- package/dist/tools/logs.d.ts.map +0 -1
- package/dist/tools/logs.js +0 -230
- package/dist/tools/logs.js.map +0 -1
- package/dist/tools/signatures.d.ts.map +0 -1
- package/dist/tools/signatures.js.map +0 -1
- package/dist/tools/transactions.d.ts +0 -155
- package/dist/tools/transactions.d.ts.map +0 -1
- package/dist/tools/transactions.js +0 -365
- package/dist/tools/transactions.js.map +0 -1
- package/src/tools/gas.ts +0 -219
- package/src/tools/logs.ts +0 -293
- package/src/tools/transactions.ts +0 -456
package/dist/walletconnect.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { mkdirSync } from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
2
3
|
import { homedir } from 'node:os';
|
|
3
4
|
import { join } from 'node:path';
|
|
4
5
|
import { getClientManager } from './client.js';
|
|
6
|
+
import { DEFAULT_IDENTITY } from './context.js';
|
|
5
7
|
import { getKeyValueStorage } from './kv-storage.js';
|
|
6
8
|
import { log } from './log.js';
|
|
7
9
|
async function importSignClient() {
|
|
@@ -9,6 +11,39 @@ async function importSignClient() {
|
|
|
9
11
|
const { SignClient } = await import('@walletconnect/sign-client');
|
|
10
12
|
return SignClient;
|
|
11
13
|
}
|
|
14
|
+
/** Sessions do not record who paired them, so the mapping is kept alongside in the same store. */
|
|
15
|
+
const BINDINGS_KEY = 'web3-tools-mcp:session-identities';
|
|
16
|
+
/**
|
|
17
|
+
* The sessions an identity may sign with.
|
|
18
|
+
*
|
|
19
|
+
* Matched by the binding recorded when the session was approved, never by the accounts it
|
|
20
|
+
* reports — a wallet states its own account list, so trusting that would let a peer claim
|
|
21
|
+
* someone else's address and be handed their signing requests.
|
|
22
|
+
*
|
|
23
|
+
* An unbound session is one paired before bindings existed. It counts only for the shared
|
|
24
|
+
* identity, which is a server with a single user; under a real identity it belongs to
|
|
25
|
+
* nobody rather than to whoever asks first.
|
|
26
|
+
*/
|
|
27
|
+
export function ownedSessions(live, bindings, identity) {
|
|
28
|
+
return live.filter((s) => bindings[s.topic] === identity || (identity === DEFAULT_IDENTITY && !bindings[s.topic]));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Bindings with no session behind them any more.
|
|
32
|
+
*
|
|
33
|
+
* An empty session list yields nothing: a store that has not hydrated looks exactly like one
|
|
34
|
+
* with no sessions, and clearing every binding would strand wallets that are still paired.
|
|
35
|
+
*/
|
|
36
|
+
export function orphanedBindings(live, bindings) {
|
|
37
|
+
if (live.length === 0)
|
|
38
|
+
return [];
|
|
39
|
+
const known = new Set(live.map((session) => session.topic));
|
|
40
|
+
return Object.keys(bindings).filter((topic) => !known.has(topic));
|
|
41
|
+
}
|
|
42
|
+
/** What was paired before and is not paired now — a wallet that ended its own session. */
|
|
43
|
+
export function droppedSessions(before, after) {
|
|
44
|
+
const live = new Set(after.map((session) => session.topic));
|
|
45
|
+
return before.filter((session) => !live.has(session.topic));
|
|
46
|
+
}
|
|
12
47
|
const METHODS = ['eth_sendTransaction', 'personal_sign', 'eth_signTypedData_v4'];
|
|
13
48
|
const EVENTS = ['chainChanged', 'accountsChanged'];
|
|
14
49
|
const APPROVAL_TIMEOUT = 300_000;
|
|
@@ -17,11 +52,7 @@ const APPROVAL_TIMEOUT = 300_000;
|
|
|
17
52
|
* a local one is only reachable from the machine it runs on, and says so.
|
|
18
53
|
*/
|
|
19
54
|
function serverUrl() {
|
|
20
|
-
|
|
21
|
-
return process.env.MCP_PUBLIC_URL.replace(/\/$/, '');
|
|
22
|
-
if (process.env.MCP_HTTP_PORT)
|
|
23
|
-
return `http://localhost:${process.env.MCP_HTTP_PORT}`;
|
|
24
|
-
return 'http://localhost';
|
|
55
|
+
return process.env.MCP_PUBLIC_URL?.replace(/\/$/, '') ?? 'http://localhost';
|
|
25
56
|
}
|
|
26
57
|
function storePath() {
|
|
27
58
|
const dir = join(process.env.XDG_CONFIG_HOME ?? join(homedir(), '.config'), 'web3-tools-mcp');
|
|
@@ -35,6 +66,8 @@ export class PhoneSigner {
|
|
|
35
66
|
pairing;
|
|
36
67
|
/** Label shown in the wallet; whoever is driving this server says who they are. */
|
|
37
68
|
agent;
|
|
69
|
+
/** The last edit of the bindings key; the next one queues behind it. */
|
|
70
|
+
bindingsEdit = Promise.resolve();
|
|
38
71
|
constructor(projectId) {
|
|
39
72
|
this.projectId = projectId;
|
|
40
73
|
}
|
|
@@ -67,25 +100,89 @@ export class PhoneSigner {
|
|
|
67
100
|
});
|
|
68
101
|
return this.starting;
|
|
69
102
|
}
|
|
70
|
-
/**
|
|
71
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Who each session belongs to, kept in the client's own store so it lands in the file or
|
|
105
|
+
* in Redis exactly as the sessions themselves do.
|
|
106
|
+
*/
|
|
107
|
+
async bindings() {
|
|
108
|
+
return (await this.client?.core.storage.getItem(BINDINGS_KEY)) ?? {};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* All bindings live under one key, so an edit is a read-modify-write — and two approvals
|
|
112
|
+
* settling together would each read the same map and the second would erase the first.
|
|
113
|
+
* Edits queue behind each other instead.
|
|
114
|
+
*
|
|
115
|
+
* ponytail: serialised per process only. Several server processes on one Redis still
|
|
116
|
+
* race; one key per topic would end that.
|
|
117
|
+
*/
|
|
118
|
+
updateBindings(edit) {
|
|
119
|
+
const next = this.bindingsEdit.then(async () => {
|
|
120
|
+
const bindings = await this.bindings();
|
|
121
|
+
edit(bindings);
|
|
122
|
+
await this.client?.core.storage.setItem(BINDINGS_KEY, bindings);
|
|
123
|
+
});
|
|
124
|
+
this.bindingsEdit = next.catch(() => { });
|
|
125
|
+
return next;
|
|
126
|
+
}
|
|
127
|
+
bind(topic, identity) {
|
|
128
|
+
return this.updateBindings((bindings) => {
|
|
129
|
+
bindings[topic] = identity;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Some wallets keep one session per site, so approving a second pairing in the same app
|
|
134
|
+
* ends the first — the session vanishes from the store and the binding is left pointing at
|
|
135
|
+
* nothing. Worth saying out loud: `pair_phone_wallet` has just listed that wallet as still
|
|
136
|
+
* paired, and the next `wallet_status` will quietly show one fewer.
|
|
137
|
+
*/
|
|
138
|
+
async reportReplaced(identity, before) {
|
|
139
|
+
const dropped = droppedSessions(before, await this.sessions(identity));
|
|
140
|
+
if (dropped.length === 0)
|
|
141
|
+
return;
|
|
142
|
+
for (const session of dropped) {
|
|
143
|
+
log('warning', 'WalletConnect', `${session.peer ?? 'A wallet'} ended its earlier pairing for ${session.accounts[0] ?? 'an account'} when this one was approved — ` +
|
|
144
|
+
'it keeps one session per site. Pair a different wallet app to hold both at once.');
|
|
145
|
+
}
|
|
146
|
+
await this.sweepBindings();
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Bindings outlive the sessions they point at, so they accumulate. Swept here rather than
|
|
150
|
+
* on every read: a pairing has just settled, which is the one moment the session store is
|
|
151
|
+
* known to be populated.
|
|
152
|
+
*/
|
|
153
|
+
async sweepBindings() {
|
|
154
|
+
const orphans = orphanedBindings(this.client?.session.getAll() ?? [], await this.bindings());
|
|
155
|
+
if (orphans.length === 0)
|
|
156
|
+
return;
|
|
157
|
+
await this.updateBindings((bindings) => {
|
|
158
|
+
for (const topic of orphans)
|
|
159
|
+
delete bindings[topic];
|
|
160
|
+
});
|
|
161
|
+
log('info', 'WalletConnect', `Cleared ${orphans.length} binding(s) whose session is gone`);
|
|
162
|
+
}
|
|
163
|
+
/** Every session this identity owns, live or not — what disconnecting should sweep. */
|
|
164
|
+
async owned(identity) {
|
|
72
165
|
await this.start();
|
|
73
|
-
|
|
74
|
-
const live = sessions.filter((s) => s.expiry * 1000 > Date.now());
|
|
75
|
-
const session = live[live.length - 1];
|
|
76
|
-
if (!session)
|
|
77
|
-
return undefined;
|
|
78
|
-
const accounts = session.namespaces.eip155?.accounts ?? [];
|
|
79
|
-
return {
|
|
80
|
-
topic: session.topic,
|
|
81
|
-
// "eip155:8453:0xabc…" → address / chain id
|
|
82
|
-
accounts: [...new Set(accounts.map((a) => a.split(':')[2]))],
|
|
83
|
-
chains: [...new Set(accounts.map((a) => Number(a.split(':')[1])))],
|
|
84
|
-
peer: session.peer?.metadata?.name
|
|
85
|
-
};
|
|
166
|
+
return ownedSessions(this.client?.session.getAll() ?? [], await this.bindings(), identity);
|
|
86
167
|
}
|
|
87
|
-
|
|
88
|
-
|
|
168
|
+
/**
|
|
169
|
+
* One of this identity's paired wallets.
|
|
170
|
+
*
|
|
171
|
+
* `account` picks between them when more than one is paired; without it the most recent
|
|
172
|
+
* wins, which is the only one most people have. Selecting by address is safe here in a
|
|
173
|
+
* way that *identifying* by address would not be: the candidates are already narrowed to
|
|
174
|
+
* sessions this identity was bound to when they were approved, so a wallet claiming an
|
|
175
|
+
* address it does not hold can only reach its own owner.
|
|
176
|
+
*/
|
|
177
|
+
async session(identity = DEFAULT_IDENTITY, account) {
|
|
178
|
+
const paired = await this.sessions(identity);
|
|
179
|
+
if (!account)
|
|
180
|
+
return paired[paired.length - 1];
|
|
181
|
+
const wanted = account.toLowerCase();
|
|
182
|
+
return paired.find((session) => session.accounts.some((a) => a.toLowerCase() === wanted));
|
|
183
|
+
}
|
|
184
|
+
async isPaired(identity) {
|
|
185
|
+
return Boolean(await this.session(identity));
|
|
89
186
|
}
|
|
90
187
|
/**
|
|
91
188
|
* Start a pairing and return its URI immediately, resolving the wallet's approval in the
|
|
@@ -102,15 +199,30 @@ export class PhoneSigner {
|
|
|
102
199
|
* settles, so every reply the wallet sends goes to a topic nobody is listening on. A
|
|
103
200
|
* stale name in the dialog is a far smaller cost than signing that silently hangs.
|
|
104
201
|
*/
|
|
202
|
+
/**
|
|
203
|
+
* Hand every session one identity owns to another. A login pairs before anybody is known,
|
|
204
|
+
* under a placeholder, and the wallet it proved becomes that person's to sign with.
|
|
205
|
+
*/
|
|
206
|
+
async rebind(from, to) {
|
|
207
|
+
await this.start();
|
|
208
|
+
await this.updateBindings((bindings) => {
|
|
209
|
+
for (const [topic, identity] of Object.entries(bindings)) {
|
|
210
|
+
if (identity === from)
|
|
211
|
+
bindings[topic] = to;
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
105
215
|
nameAgent(agent) {
|
|
106
216
|
if (agent && !this.client)
|
|
107
217
|
this.agent = agent;
|
|
108
218
|
}
|
|
109
|
-
async pair(chains) {
|
|
219
|
+
async pair(chains, identity = DEFAULT_IDENTITY) {
|
|
110
220
|
await this.start();
|
|
111
221
|
log('info', 'WalletConnect', `Pairing as "${this.agent ?? 'default name'}" for ${chains.length} chain(s)`);
|
|
112
222
|
if (!this.client)
|
|
113
223
|
throw new Error('WalletConnect failed to start');
|
|
224
|
+
// What this identity had before, so the approval can tell whether the wallet kept it.
|
|
225
|
+
const before = await this.sessions(identity);
|
|
114
226
|
const clientManager = getClientManager();
|
|
115
227
|
const eip155 = chains.map((chain) => `eip155:${clientManager.getChainId(chain)}`);
|
|
116
228
|
const { uri, approval } = await this.client.connect({
|
|
@@ -122,15 +234,21 @@ export class PhoneSigner {
|
|
|
122
234
|
throw new Error('WalletConnect did not return a pairing URI');
|
|
123
235
|
this.pairing = { uri, expiresAt: Date.now() + APPROVAL_TIMEOUT };
|
|
124
236
|
approval()
|
|
125
|
-
.then((session) =>
|
|
237
|
+
.then(async (session) => {
|
|
238
|
+
// Recorded as the session settles: whoever asked for this pairing owns it.
|
|
239
|
+
await this.bind(session.topic, identity);
|
|
240
|
+
log('info', 'WalletConnect', `Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`);
|
|
241
|
+
await this.reportReplaced(identity, before);
|
|
242
|
+
})
|
|
126
243
|
.catch((error) => log('warning', 'WalletConnect', `Pairing was not completed: ${error.message}`));
|
|
127
244
|
return uri;
|
|
128
245
|
}
|
|
129
|
-
/** Send a request to
|
|
130
|
-
async request(chain, method, params) {
|
|
131
|
-
const session = await this.session();
|
|
132
|
-
if (!session || !this.client)
|
|
133
|
-
throw new Error('No phone wallet paired');
|
|
246
|
+
/** Send a request to one of this identity's wallets. Throws if the chain is outside the session. */
|
|
247
|
+
async request(chain, method, params, target = {}) {
|
|
248
|
+
const session = await this.session(target.identity, target.account);
|
|
249
|
+
if (!session || !this.client) {
|
|
250
|
+
throw new Error(target.account ? `No phone wallet paired for account ${target.account}` : 'No phone wallet paired');
|
|
251
|
+
}
|
|
134
252
|
const chainId = getClientManager().getChainId(chain);
|
|
135
253
|
if (!session.chains.includes(chainId)) {
|
|
136
254
|
throw new Error(`The paired wallet did not approve ${chain} (chain ${chainId}). It approved: ${session.chains.join(', ')}. Re-pair to add it.`);
|
|
@@ -138,11 +256,15 @@ export class PhoneSigner {
|
|
|
138
256
|
const started = Date.now();
|
|
139
257
|
log('info', 'WalletConnect', `→ ${method} on ${chain}, session ${session.topic.slice(0, 8)}, waiting for ${session.peer ?? 'wallet'}`);
|
|
140
258
|
try {
|
|
141
|
-
const
|
|
259
|
+
const answer = this.client.request({
|
|
142
260
|
topic: session.topic,
|
|
143
261
|
chainId: `eip155:${chainId}`,
|
|
144
262
|
request: { method, params }
|
|
145
263
|
});
|
|
264
|
+
// Neither MetaMask nor Rabby pushes a notification, so nobody is going to notice this
|
|
265
|
+
// in the next few seconds unless they already had the wallet open.
|
|
266
|
+
target.onWaiting?.();
|
|
267
|
+
const result = await answer;
|
|
146
268
|
log('info', 'WalletConnect', `← ${method} answered in ${Date.now() - started}ms`);
|
|
147
269
|
return result;
|
|
148
270
|
}
|
|
@@ -152,41 +274,63 @@ export class PhoneSigner {
|
|
|
152
274
|
throw error;
|
|
153
275
|
}
|
|
154
276
|
}
|
|
155
|
-
/** Every
|
|
156
|
-
async sessions() {
|
|
157
|
-
await this.
|
|
158
|
-
return
|
|
159
|
-
|
|
160
|
-
accounts
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
277
|
+
/** Every wallet this identity can currently sign with, oldest pairing first. */
|
|
278
|
+
async sessions(identity = DEFAULT_IDENTITY) {
|
|
279
|
+
const live = (await this.owned(identity)).filter((session) => session.expiry * 1000 > Date.now());
|
|
280
|
+
return live.map((session) => {
|
|
281
|
+
// "eip155:8453:0xabc…" → address / chain id
|
|
282
|
+
const accounts = session.namespaces.eip155?.accounts ?? [];
|
|
283
|
+
return {
|
|
284
|
+
topic: session.topic,
|
|
285
|
+
accounts: [...new Set(accounts.map((a) => a.split(':')[2]))],
|
|
286
|
+
chains: [...new Set(accounts.map((a) => Number(a.split(':')[1])))],
|
|
287
|
+
peer: session.peer?.metadata?.name
|
|
288
|
+
};
|
|
289
|
+
});
|
|
164
290
|
}
|
|
165
291
|
/**
|
|
166
|
-
* Disconnect
|
|
167
|
-
*
|
|
168
|
-
*
|
|
292
|
+
* Disconnect one of this identity's wallets, or all of them when no account is named.
|
|
293
|
+
*
|
|
294
|
+
* Pairings underneath are swept only once no session is left at all. Each pairing attempt
|
|
295
|
+
* leaves one behind whether or not a wallet ever approved it, so they accumulate quietly —
|
|
296
|
+
* but a pairing does not record who made it, so dropping them while anyone still has a
|
|
297
|
+
* session could take somebody else's with it.
|
|
169
298
|
*/
|
|
170
|
-
async
|
|
299
|
+
async disconnect(identity = DEFAULT_IDENTITY, account) {
|
|
171
300
|
await this.start();
|
|
172
301
|
if (!this.client)
|
|
173
302
|
return { sessions: 0, pairings: 0 };
|
|
174
|
-
|
|
175
|
-
|
|
303
|
+
let topics;
|
|
304
|
+
if (account) {
|
|
305
|
+
// Same rule that picks a wallet to sign with, so you can drop exactly what you chose.
|
|
306
|
+
const match = await this.session(identity, account);
|
|
307
|
+
if (!match)
|
|
308
|
+
throw new Error(`No paired wallet holds ${account}`);
|
|
309
|
+
topics = new Set([match.topic]);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
// Expired sessions included: they are still this identity's to clean up.
|
|
313
|
+
topics = new Set((await this.owned(identity)).map((session) => session.topic));
|
|
314
|
+
}
|
|
315
|
+
for (const topic of topics) {
|
|
176
316
|
await this.client
|
|
177
|
-
.disconnect({ topic
|
|
317
|
+
.disconnect({ topic, reason: { code: 6000, message: 'User disconnected' } })
|
|
178
318
|
.catch((error) => log('warning', 'WalletConnect', `Could not disconnect a session: ${error.message}`));
|
|
179
319
|
}
|
|
320
|
+
await this.updateBindings((bindings) => {
|
|
321
|
+
for (const topic of topics)
|
|
322
|
+
delete bindings[topic];
|
|
323
|
+
});
|
|
324
|
+
const remaining = this.client.session.getAll().length;
|
|
325
|
+
if (remaining > 0)
|
|
326
|
+
return { sessions: topics.size, pairings: 0 };
|
|
180
327
|
const pairings = this.client.core.pairing.getPairings();
|
|
181
328
|
for (const pairing of pairings) {
|
|
182
329
|
await this.client.core.pairing
|
|
183
330
|
.disconnect({ topic: pairing.topic })
|
|
184
331
|
.catch((error) => log('warning', 'WalletConnect', `Could not drop a pairing: ${error.message}`));
|
|
185
332
|
}
|
|
186
|
-
return { sessions:
|
|
187
|
-
}
|
|
188
|
-
async unpair() {
|
|
189
|
-
await this.disconnectAll();
|
|
333
|
+
return { sessions: topics.size, pairings: pairings.length };
|
|
190
334
|
}
|
|
191
335
|
}
|
|
192
336
|
let wallets;
|
|
@@ -228,6 +372,27 @@ export async function pairingLinks(projectId, uri, search) {
|
|
|
228
372
|
return [wallet.name, `${base}wc?uri=${encoded}`];
|
|
229
373
|
}));
|
|
230
374
|
}
|
|
375
|
+
// qrcode-terminal's own encoder, already a dependency for the chat QR; it ships untyped.
|
|
376
|
+
const require = createRequire(import.meta.url);
|
|
377
|
+
const QRCode = require('qrcode-terminal/vendor/QRCode');
|
|
378
|
+
const LOW_CORRECTION = 1;
|
|
379
|
+
/** A QR as SVG, for a page to show. The terminal QR is only legible in monospace. */
|
|
380
|
+
export function qrSvg(text) {
|
|
381
|
+
const qr = new QRCode(-1, LOW_CORRECTION);
|
|
382
|
+
qr.addData(text);
|
|
383
|
+
qr.make();
|
|
384
|
+
const size = qr.getModuleCount();
|
|
385
|
+
const quiet = 4;
|
|
386
|
+
let path = '';
|
|
387
|
+
for (let row = 0; row < size; row++) {
|
|
388
|
+
for (let col = 0; col < size; col++) {
|
|
389
|
+
if (qr.isDark(row, col))
|
|
390
|
+
path += `M${col + quiet} ${row + quiet}h1v1h-1z`;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
const box = size + quiet * 2;
|
|
394
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${box} ${box}" shape-rendering="crispEdges"><rect width="${box}" height="${box}" fill="#fff"/><path d="${path}"/></svg>`;
|
|
395
|
+
}
|
|
231
396
|
let signer = null;
|
|
232
397
|
/** Configured only when a WalletConnect project id is present. */
|
|
233
398
|
export function getPhoneSigner() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletconnect.js","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"walletconnect.js","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "web3-tools-mcp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
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
|
-
"main": "dist/
|
|
7
|
-
"types": "dist/
|
|
6
|
+
"main": "dist/lib.js",
|
|
7
|
+
"types": "dist/lib.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/lib.d.ts",
|
|
11
|
+
"import": "./dist/lib.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
8
14
|
"bin": {
|
|
9
15
|
"web3-tools-mcp": "dist/index.js"
|
|
10
16
|
},
|
|
@@ -16,7 +22,7 @@
|
|
|
16
22
|
"src"
|
|
17
23
|
],
|
|
18
24
|
"engines": {
|
|
19
|
-
"node": ">=20.
|
|
25
|
+
"node": ">=20.19.0"
|
|
20
26
|
},
|
|
21
27
|
"scripts": {
|
|
22
28
|
"clean": "rm -rf dist",
|
|
@@ -64,7 +70,7 @@
|
|
|
64
70
|
"express": "^5.2.1",
|
|
65
71
|
"qrcode-terminal": "^0.12.0",
|
|
66
72
|
"viem": "^2.31.4",
|
|
67
|
-
"web3-wallet-relay": "
|
|
73
|
+
"web3-wallet-relay": "3.1.0",
|
|
68
74
|
"ws": "^8.18.0",
|
|
69
75
|
"zod": "^3.25.76"
|
|
70
76
|
},
|
|
@@ -77,8 +83,5 @@
|
|
|
77
83
|
"dotenv": "^17.2.3",
|
|
78
84
|
"typescript": "^5.0.0",
|
|
79
85
|
"vitest": "^3.2.4"
|
|
80
|
-
}
|
|
81
|
-
"workspaces": [
|
|
82
|
-
"wallet"
|
|
83
|
-
]
|
|
86
|
+
}
|
|
84
87
|
}
|