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/wallet-client.js
CHANGED
|
@@ -3,15 +3,25 @@ import { randomBytes } from 'node:crypto';
|
|
|
3
3
|
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import { LOCAL_PORT_ATTEMPTS, WalletRelay } from 'web3-wallet-relay';
|
|
6
|
+
import { LOCAL_PORT_ATTEMPTS, roomToken, WalletRelay } from 'web3-wallet-relay';
|
|
7
7
|
import { WebSocket } from 'ws';
|
|
8
|
+
import { HOSTED } from './hosted.js';
|
|
8
9
|
const REQUEST_TIMEOUT = 300_000;
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Past this point the page may have signed and broadcast without the answer reaching us, so
|
|
12
|
+
* a failure is not a rejection: retrying blindly could send the same thing twice.
|
|
13
|
+
*/
|
|
14
|
+
const OUTCOME_UNKNOWN = 'The outcome is unknown — it may still have been signed or broadcast. Check the wallet or a block explorer before retrying.';
|
|
15
|
+
/**
|
|
16
|
+
* How long a client with nothing in flight keeps its socket. A hosted server makes one per
|
|
17
|
+
* person who ever signed, and without this each would hold a relay connection for the life
|
|
18
|
+
* of the process. The next call reconnects.
|
|
19
|
+
*/
|
|
20
|
+
const IDLE_TIMEOUT = 10 * 60_000;
|
|
21
|
+
/** Always the signer token: this URL goes to a browser, which may not act as a requester. */
|
|
22
|
+
function pairingUrlFor(port, secret, identity) {
|
|
13
23
|
const base = HOSTED ? (process.env.MCP_PUBLIC_URL ?? `http://localhost:${port}`) : `http://127.0.0.1:${port}`;
|
|
14
|
-
return `${base.replace(/\/$/, '')}/#t=${
|
|
24
|
+
return `${base.replace(/\/$/, '')}/#t=${roomToken(secret, identity, 'signer')}`;
|
|
15
25
|
}
|
|
16
26
|
const SIGNER_WAIT_TIMEOUT = 30_000;
|
|
17
27
|
const CONNECT_ATTEMPTS = 8;
|
|
@@ -68,6 +78,7 @@ export function localToken() {
|
|
|
68
78
|
* WALLET_SERVER_URL is set, otherwise starts one in-process and talks to that.
|
|
69
79
|
*/
|
|
70
80
|
export class WalletClient {
|
|
81
|
+
identity;
|
|
71
82
|
relayOptions;
|
|
72
83
|
relay = null;
|
|
73
84
|
ws = null;
|
|
@@ -80,11 +91,20 @@ export class WalletClient {
|
|
|
80
91
|
pageUrl;
|
|
81
92
|
pageAgent;
|
|
82
93
|
lastOpenedAt = 0;
|
|
83
|
-
|
|
94
|
+
idleTimer = null;
|
|
95
|
+
/** Instance fields so tests can shorten the waits instead of sitting out the real ones. */
|
|
84
96
|
signerWaitTimeout = SIGNER_WAIT_TIMEOUT;
|
|
97
|
+
idleTimeout = IDLE_TIMEOUT;
|
|
98
|
+
requestTimeout = REQUEST_TIMEOUT;
|
|
85
99
|
remoteUrl = process.env.WALLET_SERVER_URL;
|
|
86
100
|
remoteToken = process.env.WALLET_TOKEN;
|
|
87
|
-
|
|
101
|
+
/**
|
|
102
|
+
* `identity` is the room this client works in. Everything below it — the socket's token,
|
|
103
|
+
* the pairing link it hands out — is signed for that room, so two identities on one relay
|
|
104
|
+
* cannot see each other's pages or transactions.
|
|
105
|
+
*/
|
|
106
|
+
constructor(identity, relayOptions = {}) {
|
|
107
|
+
this.identity = identity;
|
|
88
108
|
this.relayOptions = relayOptions;
|
|
89
109
|
}
|
|
90
110
|
get isRemote() {
|
|
@@ -115,8 +135,8 @@ export class WalletClient {
|
|
|
115
135
|
// minute to come back.
|
|
116
136
|
for (let attempt = 0; attempt < CONNECT_ATTEMPTS; attempt++) {
|
|
117
137
|
try {
|
|
118
|
-
await this.openSocket(url, this.remoteToken);
|
|
119
|
-
this.pairingUrl = `${this.remoteUrl}#t=${this.remoteToken}`;
|
|
138
|
+
await this.openSocket(url, roomToken(this.remoteToken, this.identity, 'requester'));
|
|
139
|
+
this.pairingUrl = `${this.remoteUrl}#t=${roomToken(this.remoteToken, this.identity, 'signer')}`;
|
|
120
140
|
return;
|
|
121
141
|
}
|
|
122
142
|
catch (error) {
|
|
@@ -138,22 +158,23 @@ export class WalletClient {
|
|
|
138
158
|
* the fix would be for the higher port to hand over when a lower one answers.
|
|
139
159
|
*/
|
|
140
160
|
async connectLocal() {
|
|
141
|
-
const
|
|
161
|
+
const secret = this.relayOptions.token ?? localToken();
|
|
162
|
+
const requester = roomToken(secret, this.identity, 'requester');
|
|
142
163
|
const ports = this.relayOptions.port ? [this.relayOptions.port] : LOCAL_PORTS;
|
|
143
164
|
for (const port of ports) {
|
|
144
165
|
try {
|
|
145
|
-
await this.openSocket(`ws://127.0.0.1:${port}`,
|
|
146
|
-
this.pairingUrl = pairingUrlFor(port,
|
|
166
|
+
await this.openSocket(`ws://127.0.0.1:${port}`, requester);
|
|
167
|
+
this.pairingUrl = pairingUrlFor(port, secret, this.identity);
|
|
147
168
|
return;
|
|
148
169
|
}
|
|
149
170
|
catch {
|
|
150
171
|
// Nothing on this port, or something that isn't our relay — keep looking.
|
|
151
172
|
}
|
|
152
173
|
}
|
|
153
|
-
this.relay = new WalletRelay({ port: ports[0], token });
|
|
174
|
+
this.relay = new WalletRelay({ port: ports[0], token: secret });
|
|
154
175
|
await this.relay.start();
|
|
155
|
-
await this.openSocket(`ws://127.0.0.1:${this.relay.getPort()}`,
|
|
156
|
-
this.pairingUrl = this.relay.
|
|
176
|
+
await this.openSocket(`ws://127.0.0.1:${this.relay.getPort()}`, requester);
|
|
177
|
+
this.pairingUrl = pairingUrlFor(this.relay.getPort(), secret, this.identity);
|
|
157
178
|
}
|
|
158
179
|
/**
|
|
159
180
|
* Connect and complete the handshake. Resolves only once the relay acks with `ready`, so
|
|
@@ -186,6 +207,7 @@ export class WalletClient {
|
|
|
186
207
|
clearTimeout(timer);
|
|
187
208
|
ws.off('message', onHandshake);
|
|
188
209
|
this.ws = ws;
|
|
210
|
+
this.rearmIdle();
|
|
189
211
|
resolve();
|
|
190
212
|
};
|
|
191
213
|
ws.on('message', onHandshake);
|
|
@@ -205,6 +227,10 @@ export class WalletClient {
|
|
|
205
227
|
this.signerAddress = undefined;
|
|
206
228
|
this.pageUrl = undefined;
|
|
207
229
|
this.pageAgent = undefined;
|
|
230
|
+
for (const [id, pending] of this.pending) {
|
|
231
|
+
this.pending.delete(id);
|
|
232
|
+
pending.reject(new Error(`Lost the connection to the wallet relay before the wallet answered. ${OUTCOME_UNKNOWN}`));
|
|
233
|
+
}
|
|
208
234
|
});
|
|
209
235
|
});
|
|
210
236
|
}
|
|
@@ -230,11 +256,30 @@ export class WalletClient {
|
|
|
230
256
|
if (!pending)
|
|
231
257
|
return;
|
|
232
258
|
this.pending.delete(message.id);
|
|
259
|
+
this.rearmIdle();
|
|
233
260
|
if (message.success)
|
|
234
261
|
pending.resolve(message.result);
|
|
235
262
|
else
|
|
236
263
|
pending.reject(new Error(message.error || 'Transaction failed'));
|
|
237
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Drop the socket, and this client, once nothing has needed it for a while. The owner of
|
|
267
|
+
* a local relay is exempt: it is the one that has to stop that relay at shutdown.
|
|
268
|
+
*/
|
|
269
|
+
rearmIdle() {
|
|
270
|
+
if (this.idleTimer)
|
|
271
|
+
clearTimeout(this.idleTimer);
|
|
272
|
+
if (this.relay)
|
|
273
|
+
return;
|
|
274
|
+
this.idleTimer = setTimeout(() => {
|
|
275
|
+
if (this.pending.size > 0)
|
|
276
|
+
return this.rearmIdle();
|
|
277
|
+
this.ws?.close();
|
|
278
|
+
if (clients.get(this.identity) === this)
|
|
279
|
+
clients.delete(this.identity);
|
|
280
|
+
}, this.idleTimeout);
|
|
281
|
+
this.idleTimer.unref();
|
|
282
|
+
}
|
|
238
283
|
/** Wait for a wallet page to connect, opening the browser first when running locally. */
|
|
239
284
|
async waitForSigner() {
|
|
240
285
|
await this.connect();
|
|
@@ -268,11 +313,17 @@ export class WalletClient {
|
|
|
268
313
|
throw new Error('Wallet relay disconnected');
|
|
269
314
|
return new Promise((resolve, reject) => {
|
|
270
315
|
this.pending.set(request.id, { resolve, reject });
|
|
271
|
-
|
|
316
|
+
this.rearmIdle();
|
|
317
|
+
ws.send(JSON.stringify({ ...request, expiresAt: Date.now() + this.requestTimeout }));
|
|
272
318
|
setTimeout(() => {
|
|
273
|
-
if (this.pending.delete(request.id))
|
|
274
|
-
|
|
275
|
-
|
|
319
|
+
if (this.pending.delete(request.id)) {
|
|
320
|
+
this.rearmIdle();
|
|
321
|
+
// So the page stops offering it; its own expiresAt covers a cancel that never lands.
|
|
322
|
+
if (ws.readyState === WebSocket.OPEN)
|
|
323
|
+
ws.send(JSON.stringify({ type: 'cancel', id: request.id }));
|
|
324
|
+
reject(new Error(`Wallet request timed out. ${OUTCOME_UNKNOWN}`));
|
|
325
|
+
}
|
|
326
|
+
}, this.requestTimeout);
|
|
276
327
|
});
|
|
277
328
|
}
|
|
278
329
|
isConnected() {
|
|
@@ -292,9 +343,11 @@ export class WalletClient {
|
|
|
292
343
|
getUrl() {
|
|
293
344
|
if (this.pairingUrl)
|
|
294
345
|
return this.pairingUrl;
|
|
295
|
-
if (this.remoteUrl)
|
|
296
|
-
|
|
297
|
-
|
|
346
|
+
if (this.remoteUrl) {
|
|
347
|
+
const token = this.remoteToken ? roomToken(this.remoteToken, this.identity, 'signer') : '';
|
|
348
|
+
return `${this.remoteUrl}#t=${token}`;
|
|
349
|
+
}
|
|
350
|
+
return pairingUrlFor(LOCAL_PORTS[0], this.relayOptions.token ?? localToken(), this.identity);
|
|
298
351
|
}
|
|
299
352
|
/** A relay we do not own, or a server with no desktop, has no browser for us to open. */
|
|
300
353
|
get canOpenBrowser() {
|
|
@@ -361,15 +414,41 @@ export class WalletClient {
|
|
|
361
414
|
});
|
|
362
415
|
}
|
|
363
416
|
async stop() {
|
|
417
|
+
if (this.idleTimer)
|
|
418
|
+
clearTimeout(this.idleTimer);
|
|
364
419
|
this.ws?.close();
|
|
365
420
|
await this.relay?.stop();
|
|
366
421
|
this.relay = null;
|
|
367
422
|
}
|
|
368
423
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
424
|
+
const clients = new Map();
|
|
425
|
+
let relayOptions = {};
|
|
426
|
+
/**
|
|
427
|
+
* Where the relay is, for every client this process makes.
|
|
428
|
+
*
|
|
429
|
+
* A property of the deployment rather than of any one person: a hosted server runs the
|
|
430
|
+
* relay on its own port with its own secret, and each identity's client has to reach that
|
|
431
|
+
* one. Set it before anybody signs — a client that cannot find a relay starts its own,
|
|
432
|
+
* which then has nobody in it.
|
|
433
|
+
*/
|
|
434
|
+
export function configureWalletRelay(options) {
|
|
435
|
+
relayOptions = options;
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* One client per identity, because everything it holds is that person's: the socket, the
|
|
439
|
+
* in-flight requests, and which page is open with which account. A single-user server has
|
|
440
|
+
* exactly one, which is every self-hosted run.
|
|
441
|
+
*/
|
|
442
|
+
export function getWalletClient(identity) {
|
|
443
|
+
let client = clients.get(identity);
|
|
444
|
+
if (!client) {
|
|
445
|
+
client = new WalletClient(identity, relayOptions);
|
|
446
|
+
clients.set(identity, client);
|
|
447
|
+
}
|
|
373
448
|
return client;
|
|
374
449
|
}
|
|
450
|
+
/** Every live client, for shutdown — callers outside a tool call have no identity of their own. */
|
|
451
|
+
export function allWalletClients() {
|
|
452
|
+
return [...clients.values()];
|
|
453
|
+
}
|
|
375
454
|
//# sourceMappingURL=wallet-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-client.js","sourceRoot":"","sources":["../src/wallet-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wallet-client.js","sourceRoot":"","sources":["../src/wallet-client.ts"],"names":[],"mappings":"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"}
|
package/dist/walletconnect.d.ts
CHANGED
|
@@ -5,6 +5,35 @@ interface Session {
|
|
|
5
5
|
chains: number[];
|
|
6
6
|
peer?: string;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* The sessions an identity may sign with.
|
|
10
|
+
*
|
|
11
|
+
* Matched by the binding recorded when the session was approved, never by the accounts it
|
|
12
|
+
* reports — a wallet states its own account list, so trusting that would let a peer claim
|
|
13
|
+
* someone else's address and be handed their signing requests.
|
|
14
|
+
*
|
|
15
|
+
* An unbound session is one paired before bindings existed. It counts only for the shared
|
|
16
|
+
* identity, which is a server with a single user; under a real identity it belongs to
|
|
17
|
+
* nobody rather than to whoever asks first.
|
|
18
|
+
*/
|
|
19
|
+
export declare function ownedSessions<T extends {
|
|
20
|
+
topic: string;
|
|
21
|
+
}>(live: T[], bindings: Record<string, string>, identity: string): T[];
|
|
22
|
+
/**
|
|
23
|
+
* Bindings with no session behind them any more.
|
|
24
|
+
*
|
|
25
|
+
* An empty session list yields nothing: a store that has not hydrated looks exactly like one
|
|
26
|
+
* with no sessions, and clearing every binding would strand wallets that are still paired.
|
|
27
|
+
*/
|
|
28
|
+
export declare function orphanedBindings(live: {
|
|
29
|
+
topic: string;
|
|
30
|
+
}[], bindings: Record<string, string>): string[];
|
|
31
|
+
/** What was paired before and is not paired now — a wallet that ended its own session. */
|
|
32
|
+
export declare function droppedSessions<T extends {
|
|
33
|
+
topic: string;
|
|
34
|
+
}>(before: T[], after: {
|
|
35
|
+
topic: string;
|
|
36
|
+
}[]): T[];
|
|
8
37
|
export declare class PhoneSigner {
|
|
9
38
|
private projectId;
|
|
10
39
|
private client;
|
|
@@ -12,11 +41,51 @@ export declare class PhoneSigner {
|
|
|
12
41
|
private pairing;
|
|
13
42
|
/** Label shown in the wallet; whoever is driving this server says who they are. */
|
|
14
43
|
private agent;
|
|
44
|
+
/** The last edit of the bindings key; the next one queues behind it. */
|
|
45
|
+
private bindingsEdit;
|
|
15
46
|
constructor(projectId: string);
|
|
16
47
|
private start;
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Who each session belongs to, kept in the client's own store so it lands in the file or
|
|
50
|
+
* in Redis exactly as the sessions themselves do.
|
|
51
|
+
*/
|
|
52
|
+
private bindings;
|
|
53
|
+
/**
|
|
54
|
+
* All bindings live under one key, so an edit is a read-modify-write — and two approvals
|
|
55
|
+
* settling together would each read the same map and the second would erase the first.
|
|
56
|
+
* Edits queue behind each other instead.
|
|
57
|
+
*
|
|
58
|
+
* ponytail: serialised per process only. Several server processes on one Redis still
|
|
59
|
+
* race; one key per topic would end that.
|
|
60
|
+
*/
|
|
61
|
+
private updateBindings;
|
|
62
|
+
private bind;
|
|
63
|
+
/**
|
|
64
|
+
* Some wallets keep one session per site, so approving a second pairing in the same app
|
|
65
|
+
* ends the first — the session vanishes from the store and the binding is left pointing at
|
|
66
|
+
* nothing. Worth saying out loud: `pair_phone_wallet` has just listed that wallet as still
|
|
67
|
+
* paired, and the next `wallet_status` will quietly show one fewer.
|
|
68
|
+
*/
|
|
69
|
+
private reportReplaced;
|
|
70
|
+
/**
|
|
71
|
+
* Bindings outlive the sessions they point at, so they accumulate. Swept here rather than
|
|
72
|
+
* on every read: a pairing has just settled, which is the one moment the session store is
|
|
73
|
+
* known to be populated.
|
|
74
|
+
*/
|
|
75
|
+
private sweepBindings;
|
|
76
|
+
/** Every session this identity owns, live or not — what disconnecting should sweep. */
|
|
77
|
+
private owned;
|
|
78
|
+
/**
|
|
79
|
+
* One of this identity's paired wallets.
|
|
80
|
+
*
|
|
81
|
+
* `account` picks between them when more than one is paired; without it the most recent
|
|
82
|
+
* wins, which is the only one most people have. Selecting by address is safe here in a
|
|
83
|
+
* way that *identifying* by address would not be: the candidates are already narrowed to
|
|
84
|
+
* sessions this identity was bound to when they were approved, so a wallet claiming an
|
|
85
|
+
* address it does not hold can only reach its own owner.
|
|
86
|
+
*/
|
|
87
|
+
session(identity?: string, account?: string): Promise<Session | undefined>;
|
|
88
|
+
isPaired(identity?: string): Promise<boolean>;
|
|
20
89
|
/**
|
|
21
90
|
* Start a pairing and return its URI immediately, resolving the wallet's approval in the
|
|
22
91
|
* background — a tool result only reaches the user once it returns, so blocking here
|
|
@@ -32,22 +101,38 @@ export declare class PhoneSigner {
|
|
|
32
101
|
* settles, so every reply the wallet sends goes to a topic nobody is listening on. A
|
|
33
102
|
* stale name in the dialog is a far smaller cost than signing that silently hangs.
|
|
34
103
|
*/
|
|
104
|
+
/**
|
|
105
|
+
* Hand every session one identity owns to another. A login pairs before anybody is known,
|
|
106
|
+
* under a placeholder, and the wallet it proved becomes that person's to sign with.
|
|
107
|
+
*/
|
|
108
|
+
rebind(from: string, to: string): Promise<void>;
|
|
35
109
|
nameAgent(agent?: string): void;
|
|
36
|
-
pair(chains: ChainName[]): Promise<string>;
|
|
37
|
-
/** Send a request to
|
|
38
|
-
request(chain: ChainName, method: string, params: unknown[]
|
|
39
|
-
|
|
40
|
-
|
|
110
|
+
pair(chains: ChainName[], identity?: string): Promise<string>;
|
|
111
|
+
/** Send a request to one of this identity's wallets. Throws if the chain is outside the session. */
|
|
112
|
+
request(chain: ChainName, method: string, params: unknown[], target?: {
|
|
113
|
+
identity?: string;
|
|
114
|
+
account?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Called once the request is with the wallet and only a human is left. Everything that
|
|
117
|
+
* can fail quickly — no session, a chain this one never approved — has already thrown
|
|
118
|
+
* by then, so the caller can stop waiting without hiding a real error.
|
|
119
|
+
*/
|
|
120
|
+
onWaiting?: () => void;
|
|
121
|
+
}): Promise<unknown>;
|
|
122
|
+
/** Every wallet this identity can currently sign with, oldest pairing first. */
|
|
123
|
+
sessions(identity?: string): Promise<Session[]>;
|
|
41
124
|
/**
|
|
42
|
-
* Disconnect
|
|
43
|
-
*
|
|
44
|
-
*
|
|
125
|
+
* Disconnect one of this identity's wallets, or all of them when no account is named.
|
|
126
|
+
*
|
|
127
|
+
* Pairings underneath are swept only once no session is left at all. Each pairing attempt
|
|
128
|
+
* leaves one behind whether or not a wallet ever approved it, so they accumulate quietly —
|
|
129
|
+
* but a pairing does not record who made it, so dropping them while anyone still has a
|
|
130
|
+
* session could take somebody else's with it.
|
|
45
131
|
*/
|
|
46
|
-
|
|
132
|
+
disconnect(identity?: string, account?: string): Promise<{
|
|
47
133
|
sessions: number;
|
|
48
134
|
pairings: number;
|
|
49
135
|
}>;
|
|
50
|
-
unpair(): Promise<void>;
|
|
51
136
|
}
|
|
52
137
|
/**
|
|
53
138
|
* Links that open a wallet straight onto this pairing, for when the agent is running on
|
|
@@ -57,6 +142,8 @@ export declare class PhoneSigner {
|
|
|
57
142
|
* the latter, opening the wallet with no prompt or diverting to an app store.
|
|
58
143
|
*/
|
|
59
144
|
export declare function pairingLinks(projectId: string, uri: string, search?: string): Promise<Record<string, string>>;
|
|
145
|
+
/** A QR as SVG, for a page to show. The terminal QR is only legible in monospace. */
|
|
146
|
+
export declare function qrSvg(text: string): string;
|
|
60
147
|
/** Configured only when a WalletConnect project id is present. */
|
|
61
148
|
export declare function getPhoneSigner(): PhoneSigner | null;
|
|
62
149
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"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"}
|