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.
Files changed (180) hide show
  1. package/CHANGELOG.md +182 -1
  2. package/README.md +76 -47
  3. package/dist/anvil.d.ts +17 -19
  4. package/dist/anvil.d.ts.map +1 -1
  5. package/dist/anvil.js +124 -228
  6. package/dist/anvil.js.map +1 -1
  7. package/dist/chain-meta.d.ts.map +1 -1
  8. package/dist/chain-meta.js +19 -8
  9. package/dist/chain-meta.js.map +1 -1
  10. package/dist/chains.d.ts +9 -1
  11. package/dist/chains.d.ts.map +1 -1
  12. package/dist/chains.js +11 -2
  13. package/dist/chains.js.map +1 -1
  14. package/dist/clear-signing.d.ts.map +1 -1
  15. package/dist/clear-signing.js +17 -6
  16. package/dist/clear-signing.js.map +1 -1
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js.map +1 -1
  19. package/dist/context.d.ts +22 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +24 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/hosted.d.ts +12 -0
  24. package/dist/hosted.d.ts.map +1 -0
  25. package/dist/hosted.js +12 -0
  26. package/dist/hosted.js.map +1 -0
  27. package/dist/http-server.d.ts +13 -0
  28. package/dist/http-server.d.ts.map +1 -1
  29. package/dist/http-server.js +22 -7
  30. package/dist/http-server.js.map +1 -1
  31. package/dist/index.js +20 -12
  32. package/dist/index.js.map +1 -1
  33. package/dist/kv-storage.d.ts +2 -1
  34. package/dist/kv-storage.d.ts.map +1 -1
  35. package/dist/kv-storage.js +5 -2
  36. package/dist/kv-storage.js.map +1 -1
  37. package/dist/lib.d.ts +24 -0
  38. package/dist/lib.d.ts.map +1 -0
  39. package/dist/lib.js +23 -0
  40. package/dist/lib.js.map +1 -0
  41. package/dist/mcp-server.d.ts +4 -0
  42. package/dist/mcp-server.d.ts.map +1 -0
  43. package/dist/mcp-server.js +43 -0
  44. package/dist/mcp-server.js.map +1 -0
  45. package/dist/oauth.d.ts +57 -8
  46. package/dist/oauth.d.ts.map +1 -1
  47. package/dist/oauth.js +133 -63
  48. package/dist/oauth.js.map +1 -1
  49. package/dist/preview.d.ts +7 -0
  50. package/dist/preview.d.ts.map +1 -1
  51. package/dist/preview.js +21 -7
  52. package/dist/preview.js.map +1 -1
  53. package/dist/signing-requests.d.ts +81 -0
  54. package/dist/signing-requests.d.ts.map +1 -0
  55. package/dist/signing-requests.js +138 -0
  56. package/dist/signing-requests.js.map +1 -0
  57. package/dist/tools/index.d.ts +27 -1
  58. package/dist/tools/index.d.ts.map +1 -1
  59. package/dist/tools/index.js +50 -15
  60. package/dist/tools/index.js.map +1 -1
  61. package/dist/tools/{advanced.d.ts → read/advanced.d.ts} +39 -30
  62. package/dist/tools/read/advanced.d.ts.map +1 -0
  63. package/dist/tools/{advanced.js → read/advanced.js} +53 -41
  64. package/dist/tools/read/advanced.js.map +1 -0
  65. package/dist/tools/{balance.d.ts → read/balance.d.ts} +8 -7
  66. package/dist/tools/read/balance.d.ts.map +1 -0
  67. package/dist/tools/{balance.js → read/balance.js} +18 -33
  68. package/dist/tools/read/balance.js.map +1 -0
  69. package/dist/tools/{contract-info.d.ts → read/contract-info.d.ts} +20 -15
  70. package/dist/tools/read/contract-info.d.ts.map +1 -0
  71. package/dist/tools/{contract-info.js → read/contract-info.js} +54 -123
  72. package/dist/tools/read/contract-info.js.map +1 -0
  73. package/dist/tools/{contract.d.ts → read/contract.d.ts} +14 -12
  74. package/dist/tools/read/contract.d.ts.map +1 -0
  75. package/dist/tools/{contract.js → read/contract.js} +3 -2
  76. package/dist/tools/read/contract.js.map +1 -0
  77. package/dist/tools/read/ens.d.ts +104 -0
  78. package/dist/tools/read/ens.d.ts.map +1 -0
  79. package/dist/tools/{ens.js → read/ens.js} +25 -33
  80. package/dist/tools/read/ens.js.map +1 -0
  81. package/dist/tools/read/gas.d.ts +171 -0
  82. package/dist/tools/read/gas.d.ts.map +1 -0
  83. package/dist/tools/read/gas.js +333 -0
  84. package/dist/tools/read/gas.js.map +1 -0
  85. package/dist/tools/read/logs.d.ts +101 -0
  86. package/dist/tools/read/logs.d.ts.map +1 -0
  87. package/dist/tools/read/logs.js +211 -0
  88. package/dist/tools/read/logs.js.map +1 -0
  89. package/dist/tools/{signatures.d.ts → read/signatures.d.ts} +8 -4
  90. package/dist/tools/read/signatures.d.ts.map +1 -0
  91. package/dist/tools/{signatures.js → read/signatures.js} +4 -3
  92. package/dist/tools/read/signatures.js.map +1 -0
  93. package/dist/tools/read/signing.d.ts +27 -0
  94. package/dist/tools/read/signing.d.ts.map +1 -0
  95. package/dist/tools/read/signing.js +81 -0
  96. package/dist/tools/read/signing.js.map +1 -0
  97. package/dist/tools/sign/errors.d.ts +9 -0
  98. package/dist/tools/sign/errors.d.ts.map +1 -0
  99. package/dist/tools/sign/errors.js +29 -0
  100. package/dist/tools/sign/errors.js.map +1 -0
  101. package/dist/tools/sign/transactions.d.ts +141 -0
  102. package/dist/tools/sign/transactions.d.ts.map +1 -0
  103. package/dist/tools/sign/transactions.js +361 -0
  104. package/dist/tools/sign/transactions.js.map +1 -0
  105. package/dist/tools/sign/wallet.d.ts +50 -0
  106. package/dist/tools/sign/wallet.d.ts.map +1 -0
  107. package/dist/tools/sign/wallet.js +180 -0
  108. package/dist/tools/sign/wallet.js.map +1 -0
  109. package/dist/utils.d.ts +23 -2
  110. package/dist/utils.d.ts.map +1 -1
  111. package/dist/utils.js +48 -3
  112. package/dist/utils.js.map +1 -1
  113. package/dist/wallet-client.d.ts +34 -4
  114. package/dist/wallet-client.d.ts.map +1 -1
  115. package/dist/wallet-client.js +106 -27
  116. package/dist/wallet-client.js.map +1 -1
  117. package/dist/walletconnect.d.ts +100 -13
  118. package/dist/walletconnect.d.ts.map +1 -1
  119. package/dist/walletconnect.js +215 -50
  120. package/dist/walletconnect.js.map +1 -1
  121. package/package.json +12 -9
  122. package/src/anvil.ts +150 -271
  123. package/src/chain-meta.ts +16 -7
  124. package/src/chains.ts +14 -2
  125. package/src/clear-signing.ts +15 -9
  126. package/src/client.ts +0 -1
  127. package/src/context.ts +27 -0
  128. package/src/hosted.ts +11 -0
  129. package/src/http-server.ts +38 -8
  130. package/src/index.ts +20 -13
  131. package/src/kv-storage.ts +6 -3
  132. package/src/lib.ts +24 -0
  133. package/src/mcp-server.ts +47 -0
  134. package/src/oauth.ts +181 -69
  135. package/src/preview.ts +28 -7
  136. package/src/signing-requests.ts +198 -0
  137. package/src/tools/index.ts +78 -16
  138. package/src/tools/{advanced.ts → read/advanced.ts} +74 -43
  139. package/src/tools/{balance.ts → read/balance.ts} +20 -35
  140. package/src/tools/{contract-info.ts → read/contract-info.ts} +66 -146
  141. package/src/tools/{contract.ts → read/contract.ts} +4 -3
  142. package/src/tools/{ens.ts → read/ens.ts} +27 -34
  143. package/src/tools/read/gas.ts +443 -0
  144. package/src/tools/read/logs.ts +281 -0
  145. package/src/tools/{signatures.ts → read/signatures.ts} +5 -5
  146. package/src/tools/read/signing.ts +92 -0
  147. package/src/tools/sign/errors.ts +28 -0
  148. package/src/tools/sign/transactions.ts +479 -0
  149. package/src/tools/sign/wallet.ts +216 -0
  150. package/src/utils.ts +52 -3
  151. package/src/wallet-client.ts +107 -24
  152. package/src/walletconnect.ts +250 -48
  153. package/dist/tools/advanced.d.ts.map +0 -1
  154. package/dist/tools/advanced.js.map +0 -1
  155. package/dist/tools/balance.d.ts.map +0 -1
  156. package/dist/tools/balance.js.map +0 -1
  157. package/dist/tools/contract-info.d.ts.map +0 -1
  158. package/dist/tools/contract-info.js.map +0 -1
  159. package/dist/tools/contract.d.ts.map +0 -1
  160. package/dist/tools/contract.js.map +0 -1
  161. package/dist/tools/ens.d.ts +0 -119
  162. package/dist/tools/ens.d.ts.map +0 -1
  163. package/dist/tools/ens.js.map +0 -1
  164. package/dist/tools/gas.d.ts +0 -99
  165. package/dist/tools/gas.d.ts.map +0 -1
  166. package/dist/tools/gas.js +0 -181
  167. package/dist/tools/gas.js.map +0 -1
  168. package/dist/tools/logs.d.ts +0 -39
  169. package/dist/tools/logs.d.ts.map +0 -1
  170. package/dist/tools/logs.js +0 -230
  171. package/dist/tools/logs.js.map +0 -1
  172. package/dist/tools/signatures.d.ts.map +0 -1
  173. package/dist/tools/signatures.js.map +0 -1
  174. package/dist/tools/transactions.d.ts +0 -155
  175. package/dist/tools/transactions.d.ts.map +0 -1
  176. package/dist/tools/transactions.js +0 -365
  177. package/dist/tools/transactions.js.map +0 -1
  178. package/src/tools/gas.ts +0 -219
  179. package/src/tools/logs.ts +0 -293
  180. package/src/tools/transactions.ts +0 -456
@@ -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
  import type { ChainName } from './types.js'
@@ -28,6 +30,42 @@ interface Session {
28
30
  peer?: string
29
31
  }
30
32
 
33
+ /** Sessions do not record who paired them, so the mapping is kept alongside in the same store. */
34
+ const BINDINGS_KEY = 'web3-tools-mcp:session-identities'
35
+
36
+ /**
37
+ * The sessions an identity may sign with.
38
+ *
39
+ * Matched by the binding recorded when the session was approved, never by the accounts it
40
+ * reports — a wallet states its own account list, so trusting that would let a peer claim
41
+ * someone else's address and be handed their signing requests.
42
+ *
43
+ * An unbound session is one paired before bindings existed. It counts only for the shared
44
+ * identity, which is a server with a single user; under a real identity it belongs to
45
+ * nobody rather than to whoever asks first.
46
+ */
47
+ export function ownedSessions<T extends { topic: string }>(live: T[], bindings: Record<string, string>, identity: string): T[] {
48
+ return live.filter((s) => bindings[s.topic] === identity || (identity === DEFAULT_IDENTITY && !bindings[s.topic]))
49
+ }
50
+
51
+ /**
52
+ * Bindings with no session behind them any more.
53
+ *
54
+ * An empty session list yields nothing: a store that has not hydrated looks exactly like one
55
+ * with no sessions, and clearing every binding would strand wallets that are still paired.
56
+ */
57
+ export function orphanedBindings(live: { topic: string }[], bindings: Record<string, string>): string[] {
58
+ if (live.length === 0) return []
59
+ const known = new Set(live.map((session) => session.topic))
60
+ return Object.keys(bindings).filter((topic) => !known.has(topic))
61
+ }
62
+
63
+ /** What was paired before and is not paired now — a wallet that ended its own session. */
64
+ export function droppedSessions<T extends { topic: string }>(before: T[], after: { topic: string }[]): T[] {
65
+ const live = new Set(after.map((session) => session.topic))
66
+ return before.filter((session) => !live.has(session.topic))
67
+ }
68
+
31
69
  const METHODS = ['eth_sendTransaction', 'personal_sign', 'eth_signTypedData_v4']
32
70
  const EVENTS = ['chainChanged', 'accountsChanged']
33
71
  const APPROVAL_TIMEOUT = 300_000
@@ -37,9 +75,7 @@ const APPROVAL_TIMEOUT = 300_000
37
75
  * a local one is only reachable from the machine it runs on, and says so.
38
76
  */
39
77
  function serverUrl(): string {
40
- if (process.env.MCP_PUBLIC_URL) return process.env.MCP_PUBLIC_URL.replace(/\/$/, '')
41
- if (process.env.MCP_HTTP_PORT) return `http://localhost:${process.env.MCP_HTTP_PORT}`
42
- return 'http://localhost'
78
+ return process.env.MCP_PUBLIC_URL?.replace(/\/$/, '') ?? 'http://localhost'
43
79
  }
44
80
 
45
81
  function storePath(): string {
@@ -54,6 +90,8 @@ export class PhoneSigner {
54
90
  private pairing: { uri: string; expiresAt: number } | undefined
55
91
  /** Label shown in the wallet; whoever is driving this server says who they are. */
56
92
  private agent: string | undefined
93
+ /** The last edit of the bindings key; the next one queues behind it. */
94
+ private bindingsEdit: Promise<unknown> = Promise.resolve()
57
95
 
58
96
  constructor(private projectId: string) {}
59
97
 
@@ -87,26 +125,100 @@ export class PhoneSigner {
87
125
  return this.starting
88
126
  }
89
127
 
90
- /** The most recent still-valid session, if the phone is already paired. */
91
- async session(): Promise<Session | undefined> {
92
- await this.start()
93
- const sessions = this.client?.session.getAll() ?? []
94
- const live = sessions.filter((s) => s.expiry * 1000 > Date.now())
95
- const session = live[live.length - 1]
96
- if (!session) return undefined
97
-
98
- const accounts = session.namespaces.eip155?.accounts ?? []
99
- return {
100
- topic: session.topic,
101
- // "eip155:8453:0xabc…" → address / chain id
102
- accounts: [...new Set(accounts.map((a) => a.split(':')[2] as string))],
103
- chains: [...new Set(accounts.map((a) => Number(a.split(':')[1])))],
104
- peer: session.peer?.metadata?.name
128
+ /**
129
+ * Who each session belongs to, kept in the client's own store so it lands in the file or
130
+ * in Redis exactly as the sessions themselves do.
131
+ */
132
+ private async bindings(): Promise<Record<string, string>> {
133
+ return (await this.client?.core.storage.getItem<Record<string, string>>(BINDINGS_KEY)) ?? {}
134
+ }
135
+
136
+ /**
137
+ * All bindings live under one key, so an edit is a read-modify-write — and two approvals
138
+ * settling together would each read the same map and the second would erase the first.
139
+ * Edits queue behind each other instead.
140
+ *
141
+ * ponytail: serialised per process only. Several server processes on one Redis still
142
+ * race; one key per topic would end that.
143
+ */
144
+ private updateBindings(edit: (bindings: Record<string, string>) => void): Promise<void> {
145
+ const next = this.bindingsEdit.then(async () => {
146
+ const bindings = await this.bindings()
147
+ edit(bindings)
148
+ await this.client?.core.storage.setItem(BINDINGS_KEY, bindings)
149
+ })
150
+ this.bindingsEdit = next.catch(() => {})
151
+ return next
152
+ }
153
+
154
+ private bind(topic: string, identity: string): Promise<void> {
155
+ return this.updateBindings((bindings) => {
156
+ bindings[topic] = identity
157
+ })
158
+ }
159
+
160
+ /**
161
+ * Some wallets keep one session per site, so approving a second pairing in the same app
162
+ * ends the first — the session vanishes from the store and the binding is left pointing at
163
+ * nothing. Worth saying out loud: `pair_phone_wallet` has just listed that wallet as still
164
+ * paired, and the next `wallet_status` will quietly show one fewer.
165
+ */
166
+ private async reportReplaced(identity: string, before: Session[]): Promise<void> {
167
+ const dropped = droppedSessions(before, await this.sessions(identity))
168
+ if (dropped.length === 0) return
169
+
170
+ for (const session of dropped) {
171
+ log(
172
+ 'warning',
173
+ 'WalletConnect',
174
+ `${session.peer ?? 'A wallet'} ended its earlier pairing for ${session.accounts[0] ?? 'an account'} when this one was approved — ` +
175
+ 'it keeps one session per site. Pair a different wallet app to hold both at once.'
176
+ )
105
177
  }
178
+
179
+ await this.sweepBindings()
180
+ }
181
+
182
+ /**
183
+ * Bindings outlive the sessions they point at, so they accumulate. Swept here rather than
184
+ * on every read: a pairing has just settled, which is the one moment the session store is
185
+ * known to be populated.
186
+ */
187
+ private async sweepBindings(): Promise<void> {
188
+ const orphans = orphanedBindings(this.client?.session.getAll() ?? [], await this.bindings())
189
+ if (orphans.length === 0) return
190
+
191
+ await this.updateBindings((bindings) => {
192
+ for (const topic of orphans) delete bindings[topic]
193
+ })
194
+ log('info', 'WalletConnect', `Cleared ${orphans.length} binding(s) whose session is gone`)
195
+ }
196
+
197
+ /** Every session this identity owns, live or not — what disconnecting should sweep. */
198
+ private async owned(identity: string) {
199
+ await this.start()
200
+ return ownedSessions(this.client?.session.getAll() ?? [], await this.bindings(), identity)
201
+ }
202
+
203
+ /**
204
+ * One of this identity's paired wallets.
205
+ *
206
+ * `account` picks between them when more than one is paired; without it the most recent
207
+ * wins, which is the only one most people have. Selecting by address is safe here in a
208
+ * way that *identifying* by address would not be: the candidates are already narrowed to
209
+ * sessions this identity was bound to when they were approved, so a wallet claiming an
210
+ * address it does not hold can only reach its own owner.
211
+ */
212
+ async session(identity: string = DEFAULT_IDENTITY, account?: string): Promise<Session | undefined> {
213
+ const paired = await this.sessions(identity)
214
+ if (!account) return paired[paired.length - 1]
215
+
216
+ const wanted = account.toLowerCase()
217
+ return paired.find((session) => session.accounts.some((a) => a.toLowerCase() === wanted))
106
218
  }
107
219
 
108
- async isPaired(): Promise<boolean> {
109
- return Boolean(await this.session())
220
+ async isPaired(identity?: string): Promise<boolean> {
221
+ return Boolean(await this.session(identity))
110
222
  }
111
223
 
112
224
  /**
@@ -124,15 +236,31 @@ export class PhoneSigner {
124
236
  * settles, so every reply the wallet sends goes to a topic nobody is listening on. A
125
237
  * stale name in the dialog is a far smaller cost than signing that silently hangs.
126
238
  */
239
+ /**
240
+ * Hand every session one identity owns to another. A login pairs before anybody is known,
241
+ * under a placeholder, and the wallet it proved becomes that person's to sign with.
242
+ */
243
+ async rebind(from: string, to: string): Promise<void> {
244
+ await this.start()
245
+ await this.updateBindings((bindings) => {
246
+ for (const [topic, identity] of Object.entries(bindings)) {
247
+ if (identity === from) bindings[topic] = to
248
+ }
249
+ })
250
+ }
251
+
127
252
  nameAgent(agent?: string): void {
128
253
  if (agent && !this.client) this.agent = agent
129
254
  }
130
255
 
131
- async pair(chains: ChainName[]): Promise<string> {
256
+ async pair(chains: ChainName[], identity: string = DEFAULT_IDENTITY): Promise<string> {
132
257
  await this.start()
133
258
  log('info', 'WalletConnect', `Pairing as "${this.agent ?? 'default name'}" for ${chains.length} chain(s)`)
134
259
  if (!this.client) throw new Error('WalletConnect failed to start')
135
260
 
261
+ // What this identity had before, so the approval can tell whether the wallet kept it.
262
+ const before = await this.sessions(identity)
263
+
136
264
  const clientManager = getClientManager()
137
265
  const eip155 = chains.map((chain) => `eip155:${clientManager.getChainId(chain)}`)
138
266
 
@@ -146,16 +274,37 @@ export class PhoneSigner {
146
274
  this.pairing = { uri, expiresAt: Date.now() + APPROVAL_TIMEOUT }
147
275
 
148
276
  approval()
149
- .then((session) => log('info', 'WalletConnect', `Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`))
277
+ .then(async (session) => {
278
+ // Recorded as the session settles: whoever asked for this pairing owns it.
279
+ await this.bind(session.topic, identity)
280
+ log('info', 'WalletConnect', `Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`)
281
+ await this.reportReplaced(identity, before)
282
+ })
150
283
  .catch((error) => log('warning', 'WalletConnect', `Pairing was not completed: ${error.message}`))
151
284
 
152
285
  return uri
153
286
  }
154
287
 
155
- /** Send a request to the paired wallet. Throws if the chain is outside the session. */
156
- async request(chain: ChainName, method: string, params: unknown[]): Promise<unknown> {
157
- const session = await this.session()
158
- if (!session || !this.client) throw new Error('No phone wallet paired')
288
+ /** Send a request to one of this identity's wallets. Throws if the chain is outside the session. */
289
+ async request(
290
+ chain: ChainName,
291
+ method: string,
292
+ params: unknown[],
293
+ target: {
294
+ identity?: string
295
+ account?: string
296
+ /**
297
+ * Called once the request is with the wallet and only a human is left. Everything that
298
+ * can fail quickly — no session, a chain this one never approved — has already thrown
299
+ * by then, so the caller can stop waiting without hiding a real error.
300
+ */
301
+ onWaiting?: () => void
302
+ } = {}
303
+ ): Promise<unknown> {
304
+ const session = await this.session(target.identity, target.account)
305
+ if (!session || !this.client) {
306
+ throw new Error(target.account ? `No phone wallet paired for account ${target.account}` : 'No phone wallet paired')
307
+ }
159
308
 
160
309
  const chainId = getClientManager().getChainId(chain)
161
310
  if (!session.chains.includes(chainId)) {
@@ -171,11 +320,17 @@ export class PhoneSigner {
171
320
  `→ ${method} on ${chain}, session ${session.topic.slice(0, 8)}, waiting for ${session.peer ?? 'wallet'}`
172
321
  )
173
322
  try {
174
- const result = await this.client.request({
323
+ const answer = this.client.request({
175
324
  topic: session.topic,
176
325
  chainId: `eip155:${chainId}`,
177
326
  request: { method, params }
178
327
  })
328
+
329
+ // Neither MetaMask nor Rabby pushes a notification, so nobody is going to notice this
330
+ // in the next few seconds unless they already had the wallet open.
331
+ target.onWaiting?.()
332
+
333
+ const result = await answer
179
334
  log('info', 'WalletConnect', `← ${method} answered in ${Date.now() - started}ms`)
180
335
  return result
181
336
  } catch (error) {
@@ -185,33 +340,57 @@ export class PhoneSigner {
185
340
  }
186
341
  }
187
342
 
188
- /** Every live session, not just the one that would be used for signing. */
189
- async sessions(): Promise<Session[]> {
190
- await this.start()
191
- return (this.client?.session.getAll() ?? []).map((session) => ({
192
- topic: session.topic,
193
- accounts: [...new Set((session.namespaces.eip155?.accounts ?? []).map((a) => a.split(':')[2] as string))],
194
- chains: [...new Set((session.namespaces.eip155?.accounts ?? []).map((a) => Number(a.split(':')[1])))],
195
- peer: session.peer?.metadata?.name
196
- }))
343
+ /** Every wallet this identity can currently sign with, oldest pairing first. */
344
+ async sessions(identity: string = DEFAULT_IDENTITY): Promise<Session[]> {
345
+ const live = (await this.owned(identity)).filter((session) => session.expiry * 1000 > Date.now())
346
+ return live.map((session) => {
347
+ // "eip155:8453:0xabc…" → address / chain id
348
+ const accounts = session.namespaces.eip155?.accounts ?? []
349
+ return {
350
+ topic: session.topic,
351
+ accounts: [...new Set(accounts.map((a) => a.split(':')[2] as string))],
352
+ chains: [...new Set(accounts.map((a) => Number(a.split(':')[1])))],
353
+ peer: session.peer?.metadata?.name
354
+ }
355
+ })
197
356
  }
198
357
 
199
358
  /**
200
- * Disconnect everything: sessions, and the pairings underneath them. Each pairing
201
- * attempt leaves one behind whether or not a wallet ever approved it, so they
202
- * accumulate quietly in the store.
359
+ * Disconnect one of this identity's wallets, or all of them when no account is named.
360
+ *
361
+ * Pairings underneath are swept only once no session is left at all. Each pairing attempt
362
+ * leaves one behind whether or not a wallet ever approved it, so they accumulate quietly —
363
+ * but a pairing does not record who made it, so dropping them while anyone still has a
364
+ * session could take somebody else's with it.
203
365
  */
204
- async disconnectAll(): Promise<{ sessions: number; pairings: number }> {
366
+ async disconnect(identity: string = DEFAULT_IDENTITY, account?: string): Promise<{ sessions: number; pairings: number }> {
205
367
  await this.start()
206
368
  if (!this.client) return { sessions: 0, pairings: 0 }
207
369
 
208
- const sessions = this.client.session.getAll()
209
- for (const session of sessions) {
370
+ let topics: Set<string>
371
+ if (account) {
372
+ // Same rule that picks a wallet to sign with, so you can drop exactly what you chose.
373
+ const match = await this.session(identity, account)
374
+ if (!match) throw new Error(`No paired wallet holds ${account}`)
375
+ topics = new Set([match.topic])
376
+ } else {
377
+ // Expired sessions included: they are still this identity's to clean up.
378
+ topics = new Set((await this.owned(identity)).map((session) => session.topic))
379
+ }
380
+
381
+ for (const topic of topics) {
210
382
  await this.client
211
- .disconnect({ topic: session.topic, reason: { code: 6000, message: 'User disconnected' } })
383
+ .disconnect({ topic, reason: { code: 6000, message: 'User disconnected' } })
212
384
  .catch((error) => log('warning', 'WalletConnect', `Could not disconnect a session: ${error.message}`))
213
385
  }
214
386
 
387
+ await this.updateBindings((bindings) => {
388
+ for (const topic of topics) delete bindings[topic]
389
+ })
390
+
391
+ const remaining = this.client.session.getAll().length
392
+ if (remaining > 0) return { sessions: topics.size, pairings: 0 }
393
+
215
394
  const pairings = this.client.core.pairing.getPairings()
216
395
  for (const pairing of pairings) {
217
396
  await this.client.core.pairing
@@ -219,11 +398,7 @@ export class PhoneSigner {
219
398
  .catch((error) => log('warning', 'WalletConnect', `Could not drop a pairing: ${error.message}`))
220
399
  }
221
400
 
222
- return { sessions: sessions.length, pairings: pairings.length }
223
- }
224
-
225
- async unpair(): Promise<void> {
226
- await this.disconnectAll()
401
+ return { sessions: topics.size, pairings: pairings.length }
227
402
  }
228
403
  }
229
404
 
@@ -281,6 +456,33 @@ export async function pairingLinks(projectId: string, uri: string, search?: stri
281
456
  )
282
457
  }
283
458
 
459
+ // qrcode-terminal's own encoder, already a dependency for the chat QR; it ships untyped.
460
+ const require = createRequire(import.meta.url)
461
+ const QRCode = require('qrcode-terminal/vendor/QRCode') as new (
462
+ typeNumber: number,
463
+ level: number
464
+ ) => { addData(text: string): void; make(): void; getModuleCount(): number; isDark(row: number, col: number): boolean }
465
+ const LOW_CORRECTION = 1
466
+
467
+ /** A QR as SVG, for a page to show. The terminal QR is only legible in monospace. */
468
+ export function qrSvg(text: string): string {
469
+ const qr = new QRCode(-1, LOW_CORRECTION)
470
+ qr.addData(text)
471
+ qr.make()
472
+
473
+ const size = qr.getModuleCount()
474
+ const quiet = 4
475
+ let path = ''
476
+ for (let row = 0; row < size; row++) {
477
+ for (let col = 0; col < size; col++) {
478
+ if (qr.isDark(row, col)) path += `M${col + quiet} ${row + quiet}h1v1h-1z`
479
+ }
480
+ }
481
+
482
+ const box = size + quiet * 2
483
+ 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>`
484
+ }
485
+
284
486
  let signer: PhoneSigner | null = null
285
487
 
286
488
  /** Configured only when a WalletConnect project id is present. */
@@ -1 +0,0 @@
1
- {"version":3,"file":"advanced.d.ts","sourceRoot":"","sources":["../../src/tools/advanced.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMvB,wBAqZC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../src/tools/advanced.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAavB,wBA4JC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract-info.d.ts","sourceRoot":"","sources":["../../src/tools/contract-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFvB,wBAwdC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract-info.js","sourceRoot":"","sources":["../../src/tools/contract-info.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/tools/contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBvB,wBA2IC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/tools/contract.ts"],"names":[],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import { z } from 'zod';
2
- declare const _default: {
3
- resolve_ens_name: {
4
- title: string;
5
- description: string;
6
- schema: z.ZodObject<{
7
- chain: z.ZodDefault<z.ZodEnum<["arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>>;
8
- name: z.ZodString;
9
- universalResolver: z.ZodOptional<z.ZodBoolean>;
10
- }, "strip", z.ZodTypeAny, {
11
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
12
- name: string;
13
- universalResolver?: boolean | undefined;
14
- }, {
15
- name: string;
16
- chain?: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost" | undefined;
17
- universalResolver?: boolean | undefined;
18
- }>;
19
- handler: (args: {
20
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
21
- name: string;
22
- universalResolver?: boolean | undefined;
23
- }) => Promise<import("../types.js").ToolResult>;
24
- };
25
- reverse_resolve_ens: {
26
- title: string;
27
- description: string;
28
- schema: z.ZodObject<{
29
- chain: z.ZodDefault<z.ZodEnum<["arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>>;
30
- address: z.ZodString;
31
- universalResolver: z.ZodOptional<z.ZodBoolean>;
32
- }, "strip", z.ZodTypeAny, {
33
- address: string;
34
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
35
- universalResolver?: boolean | undefined;
36
- }, {
37
- address: string;
38
- chain?: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost" | undefined;
39
- universalResolver?: boolean | undefined;
40
- }>;
41
- handler: (args: {
42
- address: string;
43
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
44
- universalResolver?: boolean | undefined;
45
- }) => Promise<import("../types.js").ToolResult>;
46
- };
47
- get_ens_text_record: {
48
- title: string;
49
- description: string;
50
- schema: z.ZodObject<{
51
- chain: z.ZodDefault<z.ZodEnum<["arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>>;
52
- name: z.ZodString;
53
- key: z.ZodString;
54
- universalResolver: z.ZodOptional<z.ZodBoolean>;
55
- }, "strip", z.ZodTypeAny, {
56
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
57
- key: string;
58
- name: string;
59
- universalResolver?: boolean | undefined;
60
- }, {
61
- key: string;
62
- name: string;
63
- chain?: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost" | undefined;
64
- universalResolver?: boolean | undefined;
65
- }>;
66
- handler: (args: {
67
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
68
- key: string;
69
- name: string;
70
- universalResolver?: boolean | undefined;
71
- }) => Promise<import("../types.js").ToolResult>;
72
- };
73
- get_ens_avatar: {
74
- title: string;
75
- description: string;
76
- schema: z.ZodObject<{
77
- chain: z.ZodDefault<z.ZodEnum<["arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>>;
78
- name: z.ZodString;
79
- universalResolver: z.ZodOptional<z.ZodBoolean>;
80
- }, "strip", z.ZodTypeAny, {
81
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
82
- name: string;
83
- universalResolver?: boolean | undefined;
84
- }, {
85
- name: string;
86
- chain?: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost" | undefined;
87
- universalResolver?: boolean | undefined;
88
- }>;
89
- handler: (args: {
90
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
91
- name: string;
92
- universalResolver?: boolean | undefined;
93
- }) => Promise<import("../types.js").ToolResult>;
94
- };
95
- batch_resolve_ens_names: {
96
- title: string;
97
- description: string;
98
- schema: z.ZodObject<{
99
- chain: z.ZodDefault<z.ZodEnum<["arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost", ...("arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost")[]]>>;
100
- names: z.ZodArray<z.ZodString, "many">;
101
- universalResolver: z.ZodOptional<z.ZodBoolean>;
102
- }, "strip", z.ZodTypeAny, {
103
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
104
- names: string[];
105
- universalResolver?: boolean | undefined;
106
- }, {
107
- names: string[];
108
- chain?: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost" | undefined;
109
- universalResolver?: boolean | undefined;
110
- }>;
111
- handler: (args: {
112
- chain: "arbitrum" | "mainnet" | "avalanche" | "base" | "bnb" | "gnosis" | "sonic" | "optimism" | "polygon" | "zksync" | "linea" | "unichain" | "localhost";
113
- names: string[];
114
- universalResolver?: boolean | undefined;
115
- }) => Promise<import("../types.js").ToolResult>;
116
- };
117
- };
118
- export default _default;
119
- //# sourceMappingURL=ens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ens.d.ts","sourceRoot":"","sources":["../../src/tools/ens.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2LvB,wBAwPC"}