web3-tools-mcp 2.0.1 → 3.0.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 +117 -0
- package/README.md +5 -0
- 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/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/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 +13 -4
- package/dist/http-server.js.map +1 -1
- package/dist/index.js +19 -15
- package/dist/index.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/log.d.ts +16 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +20 -0
- package/dist/log.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 +41 -6
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +75 -41
- 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 +14 -2
- 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 +37 -15
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/{advanced.d.ts → read/advanced.d.ts} +30 -26
- package/dist/tools/read/advanced.d.ts.map +1 -0
- package/dist/tools/{advanced.js → read/advanced.js} +10 -10
- 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} +2 -2
- package/dist/tools/read/balance.js.map +1 -0
- package/dist/tools/{contract-info.d.ts → read/contract-info.d.ts} +18 -15
- package/dist/tools/read/contract-info.d.ts.map +1 -0
- package/dist/tools/{contract-info.js → read/contract-info.js} +2 -2
- 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} +2 -2
- package/dist/tools/read/contract.js.map +1 -0
- package/dist/tools/{ens.d.ts → read/ens.d.ts} +30 -25
- package/dist/tools/read/ens.d.ts.map +1 -0
- package/dist/tools/{ens.js → read/ens.js} +2 -2
- 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 +368 -0
- package/dist/tools/read/gas.js.map +1 -0
- package/dist/tools/{logs.d.ts → read/logs.d.ts} +6 -5
- package/dist/tools/read/logs.d.ts.map +1 -0
- package/dist/tools/{logs.js → read/logs.js} +2 -2
- 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} +1 -1
- 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 +75 -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/{transactions.d.ts → sign/transactions.d.ts} +48 -62
- package/dist/tools/sign/transactions.d.ts.map +1 -0
- package/dist/tools/sign/transactions.js +316 -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 +5 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +5 -2
- package/dist/utils.js.map +1 -1
- package/dist/wallet-client.d.ts +33 -4
- package/dist/wallet-client.d.ts.map +1 -1
- package/dist/wallet-client.js +90 -24
- package/dist/wallet-client.js.map +1 -1
- package/dist/walletconnect.d.ts +111 -13
- package/dist/walletconnect.d.ts.map +1 -1
- package/dist/walletconnect.js +248 -68
- package/dist/walletconnect.js.map +1 -1
- package/package.json +10 -4
- package/src/anvil.ts +150 -271
- package/src/chains.ts +14 -2
- package/src/client.ts +0 -1
- package/src/context.ts +27 -0
- package/src/hosted.ts +11 -0
- package/src/http-server.ts +30 -5
- package/src/index.ts +19 -16
- package/src/lib.ts +24 -0
- package/src/log.ts +25 -0
- package/src/mcp-server.ts +47 -0
- package/src/oauth.ts +98 -45
- package/src/preview.ts +21 -2
- package/src/signing-requests.ts +198 -0
- package/src/tools/index.ts +67 -16
- package/src/tools/{advanced.ts → read/advanced.ts} +13 -11
- package/src/tools/{balance.ts → read/balance.ts} +3 -3
- package/src/tools/{contract-info.ts → read/contract-info.ts} +3 -3
- package/src/tools/{contract.ts → read/contract.ts} +3 -3
- package/src/tools/{ens.ts → read/ens.ts} +3 -3
- package/src/tools/read/gas.ts +480 -0
- package/src/tools/{logs.ts → read/logs.ts} +3 -3
- package/src/tools/{signatures.ts → read/signatures.ts} +2 -2
- package/src/tools/read/signing.ts +86 -0
- package/src/tools/sign/errors.ts +28 -0
- package/src/tools/sign/transactions.ts +428 -0
- package/src/tools/sign/wallet.ts +216 -0
- package/src/utils.ts +5 -2
- package/src/wallet-client.ts +91 -22
- package/src/walletconnect.ts +286 -66
- 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.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.map +0 -1
- 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.map +0 -1
- package/dist/tools/transactions.js +0 -361
- package/dist/tools/transactions.js.map +0 -1
- package/src/tools/gas.ts +0 -219
- package/src/tools/transactions.ts +0 -452
package/dist/walletconnect.js
CHANGED
|
@@ -1,13 +1,49 @@
|
|
|
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';
|
|
8
|
+
import { log } from './log.js';
|
|
6
9
|
async function importSignClient() {
|
|
7
10
|
// Imported lazily: several MB of SDK that is pointless to load without a project ID.
|
|
8
11
|
const { SignClient } = await import('@walletconnect/sign-client');
|
|
9
12
|
return SignClient;
|
|
10
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
|
+
}
|
|
11
47
|
const METHODS = ['eth_sendTransaction', 'personal_sign', 'eth_signTypedData_v4'];
|
|
12
48
|
const EVENTS = ['chainChanged', 'accountsChanged'];
|
|
13
49
|
const APPROVAL_TIMEOUT = 300_000;
|
|
@@ -16,11 +52,7 @@ const APPROVAL_TIMEOUT = 300_000;
|
|
|
16
52
|
* a local one is only reachable from the machine it runs on, and says so.
|
|
17
53
|
*/
|
|
18
54
|
function serverUrl() {
|
|
19
|
-
|
|
20
|
-
return process.env.MCP_PUBLIC_URL.replace(/\/$/, '');
|
|
21
|
-
if (process.env.MCP_HTTP_PORT)
|
|
22
|
-
return `http://localhost:${process.env.MCP_HTTP_PORT}`;
|
|
23
|
-
return 'http://localhost';
|
|
55
|
+
return process.env.MCP_PUBLIC_URL?.replace(/\/$/, '') ?? 'http://localhost';
|
|
24
56
|
}
|
|
25
57
|
function storePath() {
|
|
26
58
|
const dir = join(process.env.XDG_CONFIG_HOME ?? join(homedir(), '.config'), 'web3-tools-mcp');
|
|
@@ -34,6 +66,8 @@ export class PhoneSigner {
|
|
|
34
66
|
pairing;
|
|
35
67
|
/** Label shown in the wallet; whoever is driving this server says who they are. */
|
|
36
68
|
agent;
|
|
69
|
+
/** The last edit of the bindings key; the next one queues behind it. */
|
|
70
|
+
bindingsEdit = Promise.resolve();
|
|
37
71
|
constructor(projectId) {
|
|
38
72
|
this.projectId = projectId;
|
|
39
73
|
}
|
|
@@ -66,47 +100,129 @@ export class PhoneSigner {
|
|
|
66
100
|
});
|
|
67
101
|
return this.starting;
|
|
68
102
|
}
|
|
69
|
-
/**
|
|
70
|
-
|
|
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) {
|
|
71
165
|
await this.start();
|
|
72
|
-
|
|
73
|
-
const live = sessions.filter((s) => s.expiry * 1000 > Date.now());
|
|
74
|
-
const session = live[live.length - 1];
|
|
75
|
-
if (!session)
|
|
76
|
-
return undefined;
|
|
77
|
-
const accounts = session.namespaces.eip155?.accounts ?? [];
|
|
78
|
-
return {
|
|
79
|
-
topic: session.topic,
|
|
80
|
-
// "eip155:8453:0xabc…" → address / chain id
|
|
81
|
-
accounts: [...new Set(accounts.map((a) => a.split(':')[2]))],
|
|
82
|
-
chains: [...new Set(accounts.map((a) => Number(a.split(':')[1])))],
|
|
83
|
-
peer: session.peer?.metadata?.name
|
|
84
|
-
};
|
|
166
|
+
return ownedSessions(this.client?.session.getAll() ?? [], await this.bindings(), identity);
|
|
85
167
|
}
|
|
86
|
-
|
|
87
|
-
|
|
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));
|
|
88
186
|
}
|
|
89
187
|
/**
|
|
90
188
|
* Start a pairing and return its URI immediately, resolving the wallet's approval in the
|
|
91
189
|
* background — a tool result only reaches the user once it returns, so blocking here
|
|
92
190
|
* would hide the QR they are supposed to scan.
|
|
93
191
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
192
|
+
/**
|
|
193
|
+
* Name who is asking, for the wallet's approval dialog. Takes effect only before the
|
|
194
|
+
* client starts, because WalletConnect fixes metadata at init — call it first.
|
|
195
|
+
*
|
|
196
|
+
* There is deliberately no way to relabel a running client. Replacing it leaves the old
|
|
197
|
+
* one's engine alive, and its heartbeat sweeps "orphaned" subscriptions against its own,
|
|
198
|
+
* empty session list — unsubscribing the new session's topic two seconds after it
|
|
199
|
+
* settles, so every reply the wallet sends goes to a topic nobody is listening on. A
|
|
200
|
+
* stale name in the dialog is a far smaller cost than signing that silently hangs.
|
|
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
|
+
}
|
|
215
|
+
nameAgent(agent) {
|
|
216
|
+
if (agent && !this.client)
|
|
106
217
|
this.agent = agent;
|
|
218
|
+
}
|
|
219
|
+
async pair(chains, identity = DEFAULT_IDENTITY) {
|
|
107
220
|
await this.start();
|
|
221
|
+
log('info', 'WalletConnect', `Pairing as "${this.agent ?? 'default name'}" for ${chains.length} chain(s)`);
|
|
108
222
|
if (!this.client)
|
|
109
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);
|
|
110
226
|
const clientManager = getClientManager();
|
|
111
227
|
const eip155 = chains.map((chain) => `eip155:${clientManager.getChainId(chain)}`);
|
|
112
228
|
const { uri, approval } = await this.client.connect({
|
|
@@ -118,60 +234,103 @@ export class PhoneSigner {
|
|
|
118
234
|
throw new Error('WalletConnect did not return a pairing URI');
|
|
119
235
|
this.pairing = { uri, expiresAt: Date.now() + APPROVAL_TIMEOUT };
|
|
120
236
|
approval()
|
|
121
|
-
.then((session) =>
|
|
122
|
-
|
|
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
|
+
})
|
|
243
|
+
.catch((error) => log('warning', 'WalletConnect', `Pairing was not completed: ${error.message}`));
|
|
123
244
|
return uri;
|
|
124
245
|
}
|
|
125
|
-
/** Send a request to
|
|
126
|
-
async request(chain, method, params) {
|
|
127
|
-
const session = await this.session();
|
|
128
|
-
if (!session || !this.client)
|
|
129
|
-
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
|
+
}
|
|
130
252
|
const chainId = getClientManager().getChainId(chain);
|
|
131
253
|
if (!session.chains.includes(chainId)) {
|
|
132
254
|
throw new Error(`The paired wallet did not approve ${chain} (chain ${chainId}). It approved: ${session.chains.join(', ')}. Re-pair to add it.`);
|
|
133
255
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
256
|
+
const started = Date.now();
|
|
257
|
+
log('info', 'WalletConnect', `→ ${method} on ${chain}, session ${session.topic.slice(0, 8)}, waiting for ${session.peer ?? 'wallet'}`);
|
|
258
|
+
try {
|
|
259
|
+
const answer = this.client.request({
|
|
260
|
+
topic: session.topic,
|
|
261
|
+
chainId: `eip155:${chainId}`,
|
|
262
|
+
request: { method, params }
|
|
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;
|
|
268
|
+
log('info', 'WalletConnect', `← ${method} answered in ${Date.now() - started}ms`);
|
|
269
|
+
return result;
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
const reason = error?.message ?? String(error);
|
|
273
|
+
log('warning', 'WalletConnect', `← ${method} failed after ${Date.now() - started}ms: ${reason}`);
|
|
274
|
+
throw error;
|
|
275
|
+
}
|
|
139
276
|
}
|
|
140
|
-
/** Every
|
|
141
|
-
async sessions() {
|
|
142
|
-
await this.
|
|
143
|
-
return
|
|
144
|
-
|
|
145
|
-
accounts
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
+
});
|
|
149
290
|
}
|
|
150
291
|
/**
|
|
151
|
-
* Disconnect
|
|
152
|
-
*
|
|
153
|
-
*
|
|
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.
|
|
154
298
|
*/
|
|
155
|
-
async
|
|
299
|
+
async disconnect(identity = DEFAULT_IDENTITY, account) {
|
|
156
300
|
await this.start();
|
|
157
301
|
if (!this.client)
|
|
158
302
|
return { sessions: 0, pairings: 0 };
|
|
159
|
-
|
|
160
|
-
|
|
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) {
|
|
161
316
|
await this.client
|
|
162
|
-
.disconnect({ topic
|
|
163
|
-
.catch((error) =>
|
|
317
|
+
.disconnect({ topic, reason: { code: 6000, message: 'User disconnected' } })
|
|
318
|
+
.catch((error) => log('warning', 'WalletConnect', `Could not disconnect a session: ${error.message}`));
|
|
164
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 };
|
|
165
327
|
const pairings = this.client.core.pairing.getPairings();
|
|
166
328
|
for (const pairing of pairings) {
|
|
167
329
|
await this.client.core.pairing
|
|
168
330
|
.disconnect({ topic: pairing.topic })
|
|
169
|
-
.catch((error) =>
|
|
331
|
+
.catch((error) => log('warning', 'WalletConnect', `Could not drop a pairing: ${error.message}`));
|
|
170
332
|
}
|
|
171
|
-
return { sessions:
|
|
172
|
-
}
|
|
173
|
-
async unpair() {
|
|
174
|
-
await this.disconnectAll();
|
|
333
|
+
return { sessions: topics.size, pairings: pairings.length };
|
|
175
334
|
}
|
|
176
335
|
}
|
|
177
336
|
let wallets;
|
|
@@ -213,6 +372,27 @@ export async function pairingLinks(projectId, uri, search) {
|
|
|
213
372
|
return [wallet.name, `${base}wc?uri=${encoded}`];
|
|
214
373
|
}));
|
|
215
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
|
+
}
|
|
216
396
|
let signer = null;
|
|
217
397
|
/** Configured only when a WalletConnect project id is present. */
|
|
218
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.0.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
|
},
|
|
@@ -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": "2.0.0",
|
|
68
74
|
"ws": "^8.18.0",
|
|
69
75
|
"zod": "^3.25.76"
|
|
70
76
|
},
|