@walletchan/rpc 0.1.1 → 0.1.3

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/README.md CHANGED
@@ -38,12 +38,12 @@ From this repo:
38
38
  pnpm dev:walletchan-rpc --chain base
39
39
  ```
40
40
 
41
- On first use, the CLI copies the `wc:` URI to your clipboard, then prints a terminal QR code and raw URI.
41
+ On first use, the CLI copies the `wc:` URI to your clipboard, then prints a terminal QR code, raw URI, and browser QR URL.
42
42
 
43
- - WalletChan extension: open More -> WalletConnect and paste.
44
- - Mobile wallets: scan the QR code.
43
+ - Wallet app: scan the QR code or paste the WalletConnect URI.
44
+ - Browser QR page: open `http://127.0.0.1:4209/qr`, then scan the QR or copy the URI.
45
45
 
46
- The local RPC and `SKILL.md` endpoint start immediately at `http://127.0.0.1:4209` by default. Wallet requests become available after the wallet session is approved.
46
+ The local RPC, `SKILL.md`, and `/qr` endpoints start immediately at `http://127.0.0.1:4209` by default. Wallet requests become available after the wallet session is approved.
47
47
 
48
48
  ## Agent Skill
49
49
 
@@ -55,6 +55,8 @@ curl http://127.0.0.1:4209/SKILL.md
55
55
 
56
56
  The live skill includes the current RPC URL, approved account, active chain, and batching state.
57
57
 
58
+ If the wallet connection is revoked, the RPC treats the session as disconnected once the WalletConnect session is deleted, expires, or updates to zero approved accounts. In an interactive terminal, the CLI prints the disconnect reason and waits for Enter before generating a fresh WalletConnect URI. Non-interactive callers can call `http://127.0.0.1:4209/pairing` to get a fresh URI without restarting the RPC process, or show `http://127.0.0.1:4209/qr` so the user can scan the browser QR page.
59
+
58
60
  ## Chains
59
61
 
60
62
  WalletChan RPC is not limited to the chains in this table. It can expose any EVM chain that the connected wallet supports when you provide a numeric chain ID and upstream RPC URL.
@@ -178,6 +180,8 @@ Rejected methods:
178
180
 
179
181
  WalletConnect sessions persist across CLI restarts by default. If a compatible stored session exists for the same host and port, the CLI reuses it and skips the QR/paste flow.
180
182
 
183
+ During a running process, stale or manually revoked sessions are invalidated automatically. Interactive CLI sessions prompt for Enter before generating a new URI; a fresh pairing URI is also available from `/pairing`. The browser QR page at `/qr` polls the local process and updates automatically when a new URI is issued. `/uri` remains available as a compatibility alias.
184
+
181
185
  To discard stored sessions and force a fresh pairing:
182
186
 
183
187
  ```bash
package/SKILL.md CHANGED
@@ -27,7 +27,9 @@ yarn dlx @walletchan/rpc --chain base
27
27
  bunx @walletchan/rpc --chain base
28
28
  ```
29
29
 
30
- The CLI starts the local RPC and `SKILL.md` endpoint immediately, then displays a WalletConnect QR/URI if no reusable session exists. The user must approve the WalletConnect session before wallet send/sign requests can succeed. Stored WalletConnect sessions are reused across CLI restarts by default.
30
+ The CLI starts the local RPC, browser QR page, and `SKILL.md` endpoint immediately, then displays a WalletConnect QR/URI if no reusable session exists. The user must approve the WalletConnect session before wallet send/sign requests can succeed. Stored WalletConnect sessions are reused across CLI restarts by default.
31
+
32
+ If the user needs to pair or re-pair, show `http://127.0.0.1:4209/qr` by default. It displays a wallet-agnostic QR image and copy button in the browser, and refreshes automatically if a new WalletConnect URI is issued. If the user is on a different port, use that port. `/uri` remains available as a compatibility alias.
31
33
 
32
34
  Built-in chain aliases and default RPC URLs are copied from WalletChan's extension registry. Common aliases include `ethereum`, `arbitrum`, `base`, `bnb`, `optimism`, `megaeth`, `polygon`, `unichain`, `gnosis`, `monad`, `sonic`, `sei`, `mantle`, `linea`, `berachain`, and `base-sepolia`.
33
35
 
@@ -71,12 +73,15 @@ Read-only JSON-RPC methods may be forwarded to the configured upstream RPC. Loca
71
73
  - If a request targets a different configured chain, include the target `chainId` or call `wallet_switchEthereumChain` first.
72
74
  - If the needed EVM chain is not configured, ask the user to restart the CLI with `--chain <chainId> --rpc <chainId>=https://...`.
73
75
  - WalletConnect sessions persist across CLI restarts. Ask the user to restart with `--force-new-session` only when they want a fresh pairing.
76
+ - For disconnected sessions, prefer showing the browser QR page (`/qr`) over relying on terminal-rendered or chat-rendered QR images.
74
77
 
75
78
  ## Discovery
76
79
 
77
80
  ```bash
78
81
  curl -s http://127.0.0.1:4209/health
79
82
  curl -s http://127.0.0.1:4209/session
83
+ curl -s http://127.0.0.1:4209/pairing
84
+ curl -s http://127.0.0.1:4209/qr?format=json
80
85
  curl -s http://127.0.0.1:4209/SKILL.md
81
86
  ```
82
87
 
package/dist/index.js CHANGED
@@ -5,11 +5,12 @@ import { copyToClipboard } from "./clipboard.js";
5
5
  import { formatChains } from "./chains.js";
6
6
  import { log, stopActiveSpinner, style, withSpinner } from "./logger.js";
7
7
  import { startRpcServer } from "./rpcServer.js";
8
- import { WalletConnectBridge } from "./walletConnect.js";
8
+ import { WalletConnectBridge, } from "./walletConnect.js";
9
9
  async function main() {
10
10
  const config = parseCli(process.argv);
11
11
  let activeChain = config.chains[0];
12
12
  let server = null;
13
+ let reconnecting = false;
13
14
  let shuttingDown = false;
14
15
  const wallet = new WalletConnectBridge({
15
16
  chains: config.chains,
@@ -48,6 +49,11 @@ async function main() {
48
49
  log.raw(formatCliSummary(config));
49
50
  log.raw("");
50
51
  server = startRpcServer(config, context);
52
+ wallet.onDisconnect((info) => {
53
+ if (!shuttingDown) {
54
+ void handleWalletDisconnect(info);
55
+ }
56
+ });
51
57
  let session = await wallet.init();
52
58
  if (session) {
53
59
  log.success(`Reused WalletConnect session: ${session.accounts.join(", ")}`);
@@ -60,16 +66,47 @@ async function main() {
60
66
  if (config.forceNewSession) {
61
67
  log.dim("Stored WalletConnect sessions cleared.");
62
68
  }
69
+ session = await runPairingFlow();
70
+ }
71
+ printReadyInfo(session);
72
+ async function handleWalletDisconnect(info) {
73
+ if (reconnecting)
74
+ return;
75
+ reconnecting = true;
76
+ stopActiveSpinner();
77
+ log.raw("");
78
+ log.error(`WalletConnect disconnected: ${info.reason}`);
79
+ if (!process.stdin.isTTY) {
80
+ log.warn(`Generate a new URI with curl http://${config.host}:${config.port}/pairing, open http://${config.host}:${config.port}/qr, or use the MCP get_pairing_uri tool.`);
81
+ reconnecting = false;
82
+ return;
83
+ }
84
+ while (!shuttingDown && !wallet.connected) {
85
+ await waitForEnter("Press Enter to generate a new WalletConnect URI...");
86
+ if (shuttingDown || wallet.connected)
87
+ break;
88
+ try {
89
+ const newSession = await runPairingFlow();
90
+ printReadyInfo(newSession);
91
+ break;
92
+ }
93
+ catch (error) {
94
+ log.error(error instanceof Error ? error.message : String(error));
95
+ }
96
+ }
97
+ reconnecting = false;
98
+ }
99
+ async function runPairingFlow() {
63
100
  const proposal = await wallet.createSessionProposal();
64
101
  const clipboard = await copyToClipboard(proposal.uri);
65
102
  log.info("Pair with a wallet:");
66
103
  if (clipboard.success) {
67
- log.info(" WalletChan extension: More -> WalletConnect -> paste");
104
+ log.info(" Wallet app: scan the QR or paste the copied WalletConnect URI");
68
105
  }
69
106
  else {
70
- log.info(" WalletChan extension: More -> WalletConnect -> paste the URI below");
107
+ log.info(" Wallet app: scan the QR or paste the WalletConnect URI below");
71
108
  }
72
- log.info(" Mobile wallet: scan the QR");
109
+ log.info(` Browser QR: http://${config.host}:${config.port}/qr`);
73
110
  log.raw("");
74
111
  qrcode.generate(proposal.uri, { small: true }, (qr) => log.raw(qr));
75
112
  log.raw(proposal.uri);
@@ -81,21 +118,34 @@ async function main() {
81
118
  log.warn("Copy the WalletConnect URI above manually.");
82
119
  }
83
120
  log.raw("");
84
- session = await withSpinner("Waiting for wallet approval", proposal.approval);
85
- log.success(`Connected: ${session.accounts.join(", ")}`);
86
- if (session.peerName) {
87
- log.dim(`Wallet: ${session.peerName}${session.peerUrl ? ` (${session.peerUrl})` : ""}`);
121
+ const approvedSession = await withSpinner("Waiting for wallet approval", proposal.approval);
122
+ log.success(`Connected: ${approvedSession.accounts.join(", ")}`);
123
+ if (approvedSession.peerName) {
124
+ log.dim(`Wallet: ${approvedSession.peerName}${approvedSession.peerUrl ? ` (${approvedSession.peerUrl})` : ""}`);
88
125
  }
126
+ return approvedSession;
89
127
  }
90
- log.raw("");
91
- log.info(`Chains: ${formatChains(config.chains)}`);
92
- log.info(`Active chain: ${activeChain.name} (${activeChain.chainId})`);
93
- log.raw("");
94
- log.info("Cast example:");
95
- log.raw(` cast send 0xContractAddress "transfer(address,uint256)" 0xRecipient 1000000000000000000 --rpc-url http://${config.host}:${config.port} --unlocked --from ${session.accounts[0] || "0xYourAddress"}`);
96
- log.raw("");
97
- log.info("Forge script example:");
98
- log.raw(` forge script script/Deploy.s.sol --rpc-url http://${config.host}:${config.port} --broadcast --unlocked --sender ${session.accounts[0] || "0xYourAddress"}`);
128
+ function printReadyInfo(readySession) {
129
+ log.raw("");
130
+ log.info(`Chains: ${formatChains(config.chains)}`);
131
+ log.info(`Active chain: ${activeChain.name} (${activeChain.chainId})`);
132
+ log.raw("");
133
+ log.info("Cast example:");
134
+ log.raw(` cast send 0xContractAddress "transfer(address,uint256)" 0xRecipient 1000000000000000000 --rpc-url http://${config.host}:${config.port} --unlocked --from ${readySession.accounts[0] || "0xYourAddress"}`);
135
+ log.raw("");
136
+ log.info("Forge script example:");
137
+ log.raw(` forge script script/Deploy.s.sol --rpc-url http://${config.host}:${config.port} --broadcast --unlocked --sender ${readySession.accounts[0] || "0xYourAddress"}`);
138
+ }
139
+ }
140
+ function waitForEnter(message) {
141
+ return new Promise((resolveWait) => {
142
+ process.stdout.write(`${style.yellow(message)} `);
143
+ process.stdin.resume();
144
+ process.stdin.once("data", () => {
145
+ process.stdin.pause();
146
+ resolveWait();
147
+ });
148
+ });
99
149
  }
100
150
  main().catch((error) => {
101
151
  log.error(error instanceof Error ? error.message : String(error));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,9 @@ async function switchEthereumChain(request, context) {
83
83
  return null;
84
84
  }
85
85
  async function sendTransaction(request, context) {
86
+ if (!context.wallet.connected) {
87
+ throw walletDisconnectedError();
88
+ }
86
89
  const params = getParamsArray(request);
87
90
  const tx = params[0];
88
91
  if (!isRecord(tx)) {
@@ -123,7 +126,18 @@ async function sendBundleStatusRequest(request, context) {
123
126
  return sendWalletRequest(request, context, chain);
124
127
  }
125
128
  async function sendWalletRequest(request, context, chain) {
126
- return context.wallet.request(chain.chainId, request.method, getParamsArray(request));
129
+ if (!context.wallet.connected) {
130
+ throw walletDisconnectedError();
131
+ }
132
+ try {
133
+ return await context.wallet.request(chain.chainId, request.method, getParamsArray(request));
134
+ }
135
+ catch (error) {
136
+ if (isWalletConnectDisconnectedError(error)) {
137
+ throw walletDisconnectedError(error instanceof Error ? error.message : String(error));
138
+ }
139
+ throw error;
140
+ }
127
141
  }
128
142
  function resolveSignatureChain(request, context) {
129
143
  if (request.method !== "eth_signTypedData_v3" &&
@@ -194,4 +208,20 @@ function getBundleIdParam(params) {
194
208
  function isRecord(value) {
195
209
  return typeof value === "object" && value !== null && !Array.isArray(value);
196
210
  }
211
+ function walletDisconnectedError(reason) {
212
+ return new RpcError(4900, "WalletConnect session is disconnected. Pair a wallet again using /pairing or WalletChan MCP get_pairing_uri.", {
213
+ code: "walletconnect_disconnected",
214
+ needsPairing: true,
215
+ reason,
216
+ });
217
+ }
218
+ function isWalletConnectDisconnectedError(error) {
219
+ const message = error instanceof Error ? error.message : String(error);
220
+ return /WalletConnect session is not connected/i.test(message) ||
221
+ /WalletConnect session .*disconnected/i.test(message) ||
222
+ /session .*expired/i.test(message) ||
223
+ /session .*removed/i.test(message) ||
224
+ /session topic/i.test(message) ||
225
+ /No matching key/i.test(message);
226
+ }
197
227
  //# sourceMappingURL=rpcHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpcHandler.js","sourceRoot":"","sources":["../src/rpcHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpcHandler.js","sourceRoot":"","sources":["../src/rpcHandler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpcServer.d.ts","sourceRoot":"","sources":["../src/rpcServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,CA0DjF"}
1
+ {"version":3,"file":"rpcServer.d.ts","sourceRoot":"","sources":["../src/rpcServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,CAsFjF"}
package/dist/rpcServer.js CHANGED
@@ -1,5 +1,7 @@
1
+ import { randomBytes } from "node:crypto";
1
2
  import { serve } from "@hono/node-server";
2
3
  import { Hono } from "hono";
4
+ import QRCode from "qrcode";
3
5
  import { formatChains } from "./chains.js";
4
6
  import { log } from "./logger.js";
5
7
  import { handleRpcRequest } from "./rpcHandler.js";
@@ -31,6 +33,7 @@ export function startRpcServer(config, context) {
31
33
  app.get("/health", (c) => c.json({
32
34
  ok: true,
33
35
  connected: context.wallet.connected,
36
+ accounts: context.wallet.getAccounts(),
34
37
  activeChainId: context.getActiveChain().chainId,
35
38
  chains: context.chains.map((chain) => ({
36
39
  name: chain.name,
@@ -43,6 +46,31 @@ export function startRpcServer(config, context) {
43
46
  chains: formatChains(context.chains),
44
47
  session: context.wallet.connected ? context.wallet.getSessionInfo() : null,
45
48
  }));
49
+ app.get("/qr", (c) => pairingQrResponse(c, config, context));
50
+ app.get("/uri", (c) => pairingQrResponse(c, config, context));
51
+ app.get("/pairing", async (c) => {
52
+ try {
53
+ const pairingUri = await context.wallet.getPairingUri();
54
+ return c.json({
55
+ connected: context.wallet.connected,
56
+ pairingUri,
57
+ pairingUrl: formatPairingUrl(config),
58
+ activeChainId: context.getActiveChain().chainId,
59
+ chains: context.chains.map((chain) => ({
60
+ name: chain.name,
61
+ chainId: chain.chainId,
62
+ })),
63
+ });
64
+ }
65
+ catch (error) {
66
+ return c.json({
67
+ connected: false,
68
+ pairingUri: null,
69
+ pairingUrl: formatPairingUrl(config),
70
+ error: error instanceof Error ? error.message : "Failed to create WalletConnect pairing URI",
71
+ }, 500);
72
+ }
73
+ });
46
74
  return serve({
47
75
  fetch: app.fetch,
48
76
  hostname: config.host,
@@ -51,9 +79,281 @@ export function startRpcServer(config, context) {
51
79
  log.dim("RPC server ready");
52
80
  });
53
81
  }
82
+ async function pairingQrResponse(c, config, context) {
83
+ const format = c.req.query("format");
84
+ if (format === "json") {
85
+ try {
86
+ return c.json(await getPairingViewState(config, context, true));
87
+ }
88
+ catch (error) {
89
+ return c.json({
90
+ connected: false,
91
+ pairingUri: null,
92
+ pairingUrl: formatPairingUrl(config),
93
+ qrDataUrl: null,
94
+ error: error instanceof Error ? error.message : "Failed to create WalletConnect pairing URI",
95
+ }, 500);
96
+ }
97
+ }
98
+ return qrPageResponse(c, config, context);
99
+ }
54
100
  function skillResponse(c, config, context) {
55
101
  return c.body(formatRuntimeSkill(config, context), 200, {
56
102
  "Content-Type": "text/markdown; charset=utf-8",
57
103
  });
58
104
  }
105
+ async function qrPageResponse(c, config, context) {
106
+ const nonce = randomBytes(16).toString("base64");
107
+ const initialState = await getPairingViewState(config, context, true).catch((error) => ({
108
+ connected: false,
109
+ pairingUri: null,
110
+ pairingUrl: formatPairingUrl(config),
111
+ qrDataUrl: null,
112
+ activeChainId: context.getActiveChain().chainId,
113
+ chains: context.chains.map((chain) => ({
114
+ name: chain.name,
115
+ chainId: chain.chainId,
116
+ })),
117
+ error: error instanceof Error ? error.message : "Failed to create WalletConnect pairing URI",
118
+ }));
119
+ return c.body(formatQrPage(initialState, nonce), 200, {
120
+ "Content-Type": "text/html; charset=utf-8",
121
+ "Cache-Control": "no-store",
122
+ "Referrer-Policy": "no-referrer",
123
+ "X-Content-Type-Options": "nosniff",
124
+ "Content-Security-Policy": [
125
+ "default-src 'none'",
126
+ "img-src data:",
127
+ "connect-src 'self'",
128
+ `script-src 'nonce-${nonce}'`,
129
+ `style-src 'nonce-${nonce}'`,
130
+ "base-uri 'none'",
131
+ "form-action 'none'",
132
+ ].join("; "),
133
+ });
134
+ }
135
+ async function getPairingViewState(config, context, includeQr) {
136
+ const pairingUri = await context.wallet.getPairingUri();
137
+ const connected = context.wallet.connected;
138
+ const effectiveUri = connected ? null : pairingUri;
139
+ return {
140
+ connected,
141
+ pairingUri: effectiveUri,
142
+ pairingUrl: formatPairingUrl(config),
143
+ qrDataUrl: effectiveUri && includeQr ? await createQrDataUrl(effectiveUri) : null,
144
+ activeChainId: context.getActiveChain().chainId,
145
+ chains: context.chains.map((chain) => ({
146
+ name: chain.name,
147
+ chainId: chain.chainId,
148
+ })),
149
+ message: connected
150
+ ? "A wallet is connected to WalletChan RPC."
151
+ : effectiveUri
152
+ ? "Connect your wallet to WalletChan RPC via WalletConnect."
153
+ : "WalletChan RPC is waiting for a WalletConnect URI.",
154
+ };
155
+ }
156
+ async function createQrDataUrl(uri) {
157
+ try {
158
+ return await QRCode.toDataURL(uri, {
159
+ errorCorrectionLevel: "M",
160
+ margin: 2,
161
+ scale: 8,
162
+ type: "image/png",
163
+ });
164
+ }
165
+ catch {
166
+ return null;
167
+ }
168
+ }
169
+ function formatPairingUrl(config) {
170
+ const host = config.host === "0.0.0.0" ? "127.0.0.1" : config.host;
171
+ return `http://${host}:${config.port}/qr`;
172
+ }
173
+ function formatQrPage(initialState, nonce) {
174
+ const initialJson = escapeScriptJson(JSON.stringify(initialState));
175
+ return `<!doctype html>
176
+ <html lang="en">
177
+ <head>
178
+ <meta charset="utf-8">
179
+ <meta name="viewport" content="width=device-width, initial-scale=1">
180
+ <title>WalletConnect Pairing</title>
181
+ <style nonce="${nonce}">
182
+ :root {
183
+ color-scheme: light;
184
+ --red: #d02020;
185
+ --blue: #1040c0;
186
+ --yellow: #f0c020;
187
+ --ink: #111111;
188
+ --paper: #f8f6ef;
189
+ --panel: #ffffff;
190
+ }
191
+ * { box-sizing: border-box; }
192
+ body {
193
+ margin: 0;
194
+ min-height: 100vh;
195
+ display: grid;
196
+ place-items: center;
197
+ background: var(--paper);
198
+ color: var(--ink);
199
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
200
+ }
201
+ main {
202
+ width: min(92vw, 440px);
203
+ padding: 28px;
204
+ border: 4px solid var(--ink);
205
+ background: var(--panel);
206
+ box-shadow: 10px 10px 0 var(--blue);
207
+ }
208
+ h1 {
209
+ margin: 0 0 10px;
210
+ font-size: 28px;
211
+ line-height: 1.05;
212
+ letter-spacing: 0;
213
+ }
214
+ .status {
215
+ margin: 0 0 18px;
216
+ min-height: 24px;
217
+ font-weight: 700;
218
+ }
219
+ .qr-wrap {
220
+ display: grid;
221
+ place-items: center;
222
+ min-height: 300px;
223
+ border: 3px solid var(--ink);
224
+ background: #ffffff;
225
+ margin: 18px 0;
226
+ }
227
+ .qr-wrap img {
228
+ width: min(280px, 78vw);
229
+ height: min(280px, 78vw);
230
+ image-rendering: pixelated;
231
+ }
232
+ .connected {
233
+ display: none;
234
+ padding: 28px;
235
+ text-align: center;
236
+ font-weight: 800;
237
+ background: var(--yellow);
238
+ border: 3px solid var(--ink);
239
+ }
240
+ textarea {
241
+ width: 100%;
242
+ min-height: 88px;
243
+ resize: vertical;
244
+ border: 3px solid var(--ink);
245
+ padding: 10px;
246
+ font: 12px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
247
+ color: var(--ink);
248
+ background: #ffffff;
249
+ }
250
+ button {
251
+ width: 100%;
252
+ height: 48px;
253
+ margin-top: 12px;
254
+ border: 3px solid var(--ink);
255
+ background: var(--yellow);
256
+ color: var(--ink);
257
+ font: inherit;
258
+ font-weight: 900;
259
+ cursor: pointer;
260
+ box-shadow: 5px 5px 0 var(--ink);
261
+ }
262
+ button:disabled {
263
+ cursor: not-allowed;
264
+ opacity: 0.55;
265
+ box-shadow: none;
266
+ }
267
+ .hint {
268
+ margin: 14px 0 0;
269
+ font-size: 13px;
270
+ line-height: 1.45;
271
+ }
272
+ .error { color: var(--red); }
273
+ </style>
274
+ </head>
275
+ <body>
276
+ <main>
277
+ <h1>WalletConnect Pairing</h1>
278
+ <p id="status" class="status">Loading pairing state...</p>
279
+ <div id="qrWrap" class="qr-wrap">
280
+ <img id="qr" alt="WalletConnect pairing QR code">
281
+ <div id="connected" class="connected">Wallet connected</div>
282
+ </div>
283
+ <textarea id="uri" readonly aria-label="WalletConnect URI"></textarea>
284
+ <button id="copy" type="button">Copy URI</button>
285
+ <p class="hint">Scan this QR from any WalletConnect-capable wallet, or copy and paste the URI.</p>
286
+ </main>
287
+ <script id="initial-state" type="application/json" nonce="${nonce}">${initialJson}</script>
288
+ <script nonce="${nonce}">
289
+ const stateEl = document.getElementById("initial-state");
290
+ const statusEl = document.getElementById("status");
291
+ const qrEl = document.getElementById("qr");
292
+ const connectedEl = document.getElementById("connected");
293
+ const uriEl = document.getElementById("uri");
294
+ const copyEl = document.getElementById("copy");
295
+ let currentUri = "";
296
+
297
+ function render(state) {
298
+ const connected = state && state.connected === true;
299
+ const uri = !connected && typeof state.pairingUri === "string" ? state.pairingUri : "";
300
+ currentUri = uri;
301
+ statusEl.textContent = state && typeof state.message === "string"
302
+ ? state.message
303
+ : connected
304
+ ? "A wallet is connected to WalletChan RPC."
305
+ : "Waiting for a WalletConnect URI.";
306
+ statusEl.className = state && state.error ? "status error" : "status";
307
+ qrEl.style.display = uri && state.qrDataUrl ? "block" : "none";
308
+ connectedEl.style.display = connected ? "block" : "none";
309
+ if (uri && state.qrDataUrl) qrEl.src = state.qrDataUrl;
310
+ uriEl.value = uri;
311
+ copyEl.disabled = !uri;
312
+ copyEl.textContent = uri ? "Copy URI" : connected ? "Connected" : "Waiting";
313
+ }
314
+
315
+ async function refresh() {
316
+ try {
317
+ const response = await fetch("/qr?format=json", { cache: "no-store" });
318
+ render(await response.json());
319
+ } catch (error) {
320
+ render({
321
+ connected: false,
322
+ pairingUri: currentUri,
323
+ qrDataUrl: qrEl.src || null,
324
+ error: String(error),
325
+ message: "Could not refresh pairing state. The last URI remains below if available."
326
+ });
327
+ }
328
+ }
329
+
330
+ copyEl.addEventListener("click", async () => {
331
+ if (!currentUri) return;
332
+ try {
333
+ await navigator.clipboard.writeText(currentUri);
334
+ } catch {
335
+ uriEl.focus();
336
+ uriEl.select();
337
+ document.execCommand("copy");
338
+ }
339
+ copyEl.textContent = "Copied";
340
+ window.setTimeout(() => {
341
+ if (currentUri) copyEl.textContent = "Copy URI";
342
+ }, 1500);
343
+ });
344
+
345
+ render(JSON.parse(stateEl.textContent || "{}"));
346
+ window.setInterval(refresh, 2500);
347
+ </script>
348
+ </body>
349
+ </html>`;
350
+ }
351
+ function escapeScriptJson(value) {
352
+ return value
353
+ .replace(/</g, "\\u003c")
354
+ .replace(/>/g, "\\u003e")
355
+ .replace(/&/g, "\\u0026")
356
+ .replace(/\u2028/g, "\\u2028")
357
+ .replace(/\u2029/g, "\\u2029");
358
+ }
59
359
  //# sourceMappingURL=rpcServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpcServer.js","sourceRoot":"","sources":["../src/rpcServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpcServer.js","sourceRoot":"","sources":["../src/rpcServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAmB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,aAAa,EAA6C,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,OAAmB;IACnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,KAAK,UAAU,SAAS,CAAC,CAAgJ;QACvK,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,8BAA8B,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClF,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAyB,EAAE,OAAO,CAAC,CAAC,CAC5E,CAAC;gBACF,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAA+B,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAsB,EAAE,OAAO,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACzB,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACvB,CAAC,CAAC,IAAI,CAAC;QACL,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QACnC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;QACtC,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO;QAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;KACJ,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CACxB,CAAC,CAAC,IAAI,CAAC;QACL,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QACnC,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO;QAC/C,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI;KAC3E,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;gBACnC,UAAU;gBACV,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBACpC,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO;gBAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBACpC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4CAA4C;aAC7F,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CACV;QACE,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,MAAM,CAAC,IAAI;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,EACD,GAAG,EAAE;QACH,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC9B,CAAC,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,CAAU,EAAE,MAAiB,EAAE,OAAmB;IACjF,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBACpC,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4CAA4C;aAC7F,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,CAAU,EAAE,MAAiB,EAAE,OAAmB;IACvE,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE;QACtD,cAAc,EAAE,8BAA8B;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,CAAU,EAAE,MAAiB,EAAE,OAAmB;IAC9E,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtF,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACpC,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO;QAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4CAA4C;KAC7F,CAAC,CAAC,CAAC;IAEJ,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;QACpD,cAAc,EAAE,0BAA0B;QAC1C,eAAe,EAAE,UAAU;QAC3B,iBAAiB,EAAE,aAAa;QAChC,wBAAwB,EAAE,SAAS;QACnC,yBAAyB,EAAE;YACzB,oBAAoB;YACpB,eAAe;YACf,oBAAoB;YACpB,qBAAqB,KAAK,GAAG;YAC7B,oBAAoB,KAAK,GAAG;YAC5B,iBAAiB;YACjB,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,MAAiB,EAAE,OAAmB,EAAE,SAAkB;IAC3F,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IACnD,OAAO;QACL,SAAS;QACT,UAAU,EAAE,YAAY;QACxB,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACpC,SAAS,EAAE,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QACjF,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,OAAO;QAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,OAAO,EAAE,SAAS;YAChB,CAAC,CAAC,0CAA0C;YAC5C,CAAC,CAAC,YAAY;gBACZ,CAAC,CAAC,0DAA0D;gBAC5D,CAAC,CAAC,oDAAoD;KAC3D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YACjC,oBAAoB,EAAE,GAAG;YACzB,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAiB;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IACnE,OAAO,UAAU,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,YAAqC,EAAE,KAAa;IACxE,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,OAAO;;;;;;kBAMS,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DA0GuC,KAAK,KAAK,WAAW;mBAChE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6DhB,CAAC;AACT,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiBlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,CA2IjF"}
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiBlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,CAmJjF"}
package/dist/skill.js CHANGED
@@ -13,6 +13,7 @@ const BATCH_METHODS = [
13
13
  ];
14
14
  export function formatRuntimeSkill(config, context) {
15
15
  const rpcUrl = `http://${config.host}:${config.port}`;
16
+ const pairingUrl = `${rpcUrl}/qr`;
16
17
  const activeChain = context.getActiveChain();
17
18
  const activeChainId = toHexChainId(activeChain.chainId);
18
19
  const session = getSession(context);
@@ -33,6 +34,7 @@ This skill was served by a live WalletChan RPC instance. Use the runtime details
33
34
  ## Runtime
34
35
 
35
36
  - RPC URL: \`${rpcUrl}\`
37
+ - Pairing QR URL: \`${pairingUrl}\`
36
38
  - Connected: \`${context.wallet.connected ? "yes" : "no"}\`
37
39
  - Approved accounts: ${accounts.length > 0 ? accounts.map((account) => `\`${account}\``).join(", ") : "`none`"}
38
40
  - Active chain: \`${activeChain.name}\` (${activeChain.chainId}, \`${activeChainId}\`)
@@ -44,6 +46,8 @@ This skill was served by a live WalletChan RPC instance. Use the runtime details
44
46
 
45
47
  Send standard JSON-RPC over HTTP to \`${rpcUrl}\` or \`${rpcUrl}/rpc\`. Any JSON-RPC client can use this endpoint, including JavaScript code, shell scripts, viem, ethers, Foundry, or an AI agent.
46
48
 
49
+ If no wallet is paired, show the user \`${pairingUrl}\` so they can connect a wallet to WalletChan RPC via WalletConnect. The page displays a browser QR code, includes a copy button for the WalletConnect URI, and refreshes its pairing state automatically.
50
+
47
51
  Built-in chain aliases and default RPC URLs are copied from WalletChan's extension registry. Common aliases include \`ethereum\`, \`arbitrum\`, \`base\`, \`bnb\`, \`optimism\`, \`megaeth\`, \`polygon\`, \`unichain\`, \`gnosis\`, \`monad\`, \`sonic\`, \`sei\`, \`mantle\`, \`linea\`, \`berachain\`, and \`base-sepolia\`.
48
52
 
49
53
  WalletChan RPC is not limited to built-in chain names. The CLI can expose any EVM chain supported by the connected wallet when the user starts it with a numeric chain ID and upstream RPC URL, for example \`--chain 43114 --rpc 43114=https://api.avax.network/ext/bc/C/rpc\`.
@@ -59,6 +63,7 @@ Read-only JSON-RPC methods may be forwarded to the configured upstream RPC. Loca
59
63
  - Use \`eth_sendTransaction\` for sends. Never use \`eth_sendRawTransaction\`, \`eth_sign\`, or \`eth_signTransaction\`.
60
64
  - Every send/sign/batch request opens a user approval prompt in the connected wallet.
61
65
  - If the wallet rejects a request, report the rejection to the user. Do not retry rejected sends automatically.
66
+ - If a wallet-mutating request returns JSON-RPC code \`4900\` with \`data.code: "walletconnect_disconnected"\`, the WalletConnect session was closed or lost. Show \`${pairingUrl}\` to the user, or call \`${rpcUrl}/pairing\` and show the returned URI, wait for pairing, then retry with freshly prepared transaction data when applicable.
62
67
  - Use only an approved account from \`eth_accounts\` as \`from\` or Foundry \`--sender\`.
63
68
  - If a request targets a different configured chain, include the target \`chainId\` or call \`wallet_switchEthereumChain\` first.
64
69
  - If the needed EVM chain is not configured, ask the user to restart the CLI with \`--chain <chainId> --rpc <chainId>=https://...\`.
@@ -69,6 +74,9 @@ Read-only JSON-RPC methods may be forwarded to the configured upstream RPC. Loca
69
74
  \`\`\`bash
70
75
  curl -s ${rpcUrl}/health
71
76
  curl -s ${rpcUrl}/session
77
+ curl -s ${rpcUrl}/pairing
78
+ curl -s ${rpcUrl}/qr?format=json
79
+ # Browser QR page: ${pairingUrl}
72
80
  curl -s ${rpcUrl}/SKILL.md
73
81
  \`\`\`
74
82
 
package/dist/skill.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIzD,MAAM,gBAAgB,GAAG;IACvB,qBAAqB;IACrB,eAAe;IACf,sBAAsB;IACtB,sBAAsB;CACvB,CAAC;AAEF,MAAM,aAAa,GAAG;IACpB,wBAAwB;IACxB,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB;CACzB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,OAAmB;IACvE,MAAM,MAAM,GAAG,UAAU,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,uBAAuB,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe;QACrC,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,aAAa,CAAC;QACzC,CAAC,CAAC,gBAAgB,CAAC;IAErB,OAAO;;;;;;;;;;;eAWM,MAAM;iBACJ,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;uBACjC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC1F,WAAW,CAAC,IAAI,OAAO,WAAW,CAAC,OAAO,OAAO,aAAa;yBACzD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;cAClD,OAAO,EAAE,QAAQ,IAAI,SAAS,KAAK,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;;;;wCAIxD,MAAM,WAAW,MAAM;;;;;;;;EAQ7D,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;UAiB7C,MAAM;UACN,MAAM;UACN,MAAM;;;;UAIN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8BI,aAAa;iBAChB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BnB,MAAM;;WAET,gBAAgB;;;;;;;cAOb,MAAM;;;aAGP,gBAAgB;;;;CAI5B,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,OAAmB;IACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIzD,MAAM,gBAAgB,GAAG;IACvB,qBAAqB;IACrB,eAAe;IACf,sBAAsB;IACtB,sBAAsB;CACvB,CAAC;AAEF,MAAM,aAAa,GAAG;IACpB,wBAAwB;IACxB,kBAAkB;IAClB,uBAAuB;IACvB,wBAAwB;CACzB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,OAAmB;IACvE,MAAM,MAAM,GAAG,UAAU,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,GAAG,MAAM,KAAK,CAAC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,uBAAuB,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe;QACrC,CAAC,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,aAAa,CAAC;QACzC,CAAC,CAAC,gBAAgB,CAAC;IAErB,OAAO;;;;;;;;;;;eAWM,MAAM;sBACC,UAAU;iBACf,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;uBACjC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC1F,WAAW,CAAC,IAAI,OAAO,WAAW,CAAC,OAAO,OAAO,aAAa;yBACzD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;cAClD,OAAO,EAAE,QAAQ,IAAI,SAAS,KAAK,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;;;;wCAIxD,MAAM,WAAW,MAAM;;0CAErB,UAAU;;;;;;;;EAQlD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;uKASgH,UAAU,6BAA6B,MAAM;;;;;;;;;UAS1M,MAAM;UACN,MAAM;UACN,MAAM;UACN,MAAM;qBACK,UAAU;UACrB,MAAM;;;;UAIN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8BI,aAAa;iBAChB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BnB,MAAM;;WAET,gBAAgB;;;;;;;cAOb,MAAM;;;aAGP,gBAAgB;;;;CAI5B,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,OAAmB;IACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,4 +1,9 @@
1
1
  import type { RuntimeChain } from "./chains.js";
2
+ interface SessionProposal {
3
+ uri: string;
4
+ approval: () => Promise<SessionInfo>;
5
+ createdAt: number;
6
+ }
2
7
  export interface WalletConnectBridgeConfig {
3
8
  chains: RuntimeChain[];
4
9
  forceNewSession: boolean;
@@ -14,19 +19,25 @@ export interface SessionInfo {
14
19
  peerUrl: string;
15
20
  topic: string;
16
21
  }
22
+ export interface SessionDisconnectInfo {
23
+ reason: string;
24
+ topic: string;
25
+ }
26
+ type SessionDisconnectListener = (info: SessionDisconnectInfo) => void;
17
27
  export declare class WalletConnectBridge {
18
28
  private readonly config;
19
29
  private client;
30
+ private readonly disconnectListeners;
20
31
  private session;
32
+ private pendingProposal;
21
33
  private readonly methods;
22
34
  constructor(config: WalletConnectBridgeConfig);
23
35
  get connected(): boolean;
24
36
  get sessionTopic(): string | null;
37
+ onDisconnect(listener: SessionDisconnectListener): () => void;
25
38
  init(): Promise<SessionInfo | null>;
26
- createSessionProposal(): Promise<{
27
- uri: string;
28
- approval: () => Promise<SessionInfo>;
29
- }>;
39
+ createSessionProposal(): Promise<SessionProposal>;
40
+ getPairingUri(): Promise<string | null>;
30
41
  request(chainId: number, method: string, params: unknown[]): Promise<unknown>;
31
42
  getAccounts(chainId?: number): string[];
32
43
  getSessionInfo(): SessionInfo;
@@ -35,10 +46,15 @@ export declare class WalletConnectBridge {
35
46
  private attachListeners;
36
47
  private validateSession;
37
48
  private restoreStoredSession;
49
+ private getPendingProposal;
50
+ private getConnectedSession;
51
+ private clearSession;
52
+ private emitDisconnect;
38
53
  private disconnectStoredSessions;
39
54
  private disconnectTopic;
40
55
  private getClient;
41
56
  private getSession;
42
57
  private getChainLabel;
43
58
  }
59
+ export {};
44
60
  //# sourceMappingURL=walletConnect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"walletConnect.d.ts","sourceRoot":"","sources":["../src/walletConnect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgChD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAmB;IAKlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEN,MAAM,EAAE,yBAAyB;IAM9D,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IAEK,IAAI,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA8BnC,qBAAqB,IAAI,OAAO,CAAC;QACrC,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;KACtC,CAAC;IA4BI,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBnF,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAKvC,cAAc,IAAI,WAAW;IAUvB,gBAAgB,CAAC,OAAO,SAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,oBAAoB;YAgBd,wBAAwB;YAkBxB,eAAe;IAY7B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,aAAa;CAItB"}
1
+ {"version":3,"file":"walletConnect.d.ts","sourceRoot":"","sources":["../src/walletConnect.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiChD,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,KAAK,yBAAyB,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAEvE,qBAAa,mBAAmB;IAOlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAC5E,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEN,MAAM,EAAE,yBAAyB;IAM9D,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IAED,YAAY,CAAC,QAAQ,EAAE,yBAAyB,GAAG,MAAM,IAAI;IAOvD,IAAI,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA8BnC,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC;IA2CjD,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMvC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBnF,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAMvC,cAAc,IAAI,WAAW;IAUvB,gBAAgB,CAAC,OAAO,SAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;YAMR,wBAAwB;YAkBxB,eAAe;IAY7B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa;CAItB"}
@@ -19,6 +19,7 @@ const BATCH_METHODS = [
19
19
  "wallet_showCallsStatus",
20
20
  ];
21
21
  const WALLETCONNECT_EVENTS = ["chainChanged", "accountsChanged"];
22
+ const PAIRING_URI_TTL_MS = 4 * 60 * 1000;
22
23
  const APPROVAL_METHODS = new Set([
23
24
  "eth_sendTransaction",
24
25
  "personal_sign",
@@ -29,7 +30,9 @@ const APPROVAL_METHODS = new Set([
29
30
  export class WalletConnectBridge {
30
31
  config;
31
32
  client = null;
33
+ disconnectListeners = new Set();
32
34
  session = null;
35
+ pendingProposal = null;
33
36
  methods;
34
37
  constructor(config) {
35
38
  this.config = config;
@@ -38,10 +41,16 @@ export class WalletConnectBridge {
38
41
  : [...BASE_METHODS];
39
42
  }
40
43
  get connected() {
41
- return !!this.session;
44
+ return this.getConnectedSession() !== null;
42
45
  }
43
46
  get sessionTopic() {
44
- return this.session?.topic || null;
47
+ return this.getConnectedSession()?.topic || null;
48
+ }
49
+ onDisconnect(listener) {
50
+ this.disconnectListeners.add(listener);
51
+ return () => {
52
+ this.disconnectListeners.delete(listener);
53
+ };
45
54
  }
46
55
  async init() {
47
56
  process.env.DISABLE_GLOBAL_CORE ||= "true";
@@ -69,6 +78,9 @@ export class WalletConnectBridge {
69
78
  return this.restoreStoredSession();
70
79
  }
71
80
  async createSessionProposal() {
81
+ const pending = this.getPendingProposal();
82
+ if (!this.connected && pending)
83
+ return pending;
72
84
  const client = this.getClient();
73
85
  const chains = this.config.chains.map((chain) => toCaip2(chain.chainId));
74
86
  const { uri, approval } = await client.connect({
@@ -83,15 +95,32 @@ export class WalletConnectBridge {
83
95
  if (!uri) {
84
96
  throw new Error("WalletConnect did not return a pairing URI");
85
97
  }
86
- return {
98
+ let proposal;
99
+ const approvalPromise = approval()
100
+ .then((session) => {
101
+ this.validateSession(session);
102
+ this.session = session;
103
+ return this.getSessionInfo();
104
+ })
105
+ .finally(() => {
106
+ if (this.pendingProposal === proposal) {
107
+ this.pendingProposal = null;
108
+ }
109
+ });
110
+ void approvalPromise.catch(() => undefined);
111
+ proposal = {
87
112
  uri,
88
- approval: async () => {
89
- const session = await approval();
90
- this.validateSession(session);
91
- this.session = session;
92
- return this.getSessionInfo();
93
- },
113
+ approval: () => approvalPromise,
114
+ createdAt: Date.now(),
94
115
  };
116
+ this.pendingProposal = proposal;
117
+ return proposal;
118
+ }
119
+ async getPairingUri() {
120
+ if (this.connected)
121
+ return null;
122
+ const proposal = await this.createSessionProposal();
123
+ return proposal.uri;
95
124
  }
96
125
  async request(chainId, method, params) {
97
126
  const client = this.getClient();
@@ -108,7 +137,9 @@ export class WalletConnectBridge {
108
137
  return withSpinner(formatApprovalMessage(method, this.getChainLabel(chainId)), sendRequest);
109
138
  }
110
139
  getAccounts(chainId) {
111
- const session = this.getSession();
140
+ const session = this.getConnectedSession();
141
+ if (!session)
142
+ return [];
112
143
  return getSessionAccounts(session, chainId);
113
144
  }
114
145
  getSessionInfo() {
@@ -127,23 +158,41 @@ export class WalletConnectBridge {
127
158
  this.session = null;
128
159
  }
129
160
  close() {
130
- this.session = null;
161
+ this.clearSession();
131
162
  }
132
163
  attachListeners() {
133
164
  const client = this.getClient();
134
165
  client.on("session_delete", ({ topic }) => {
135
166
  if (this.session?.topic === topic) {
136
- this.session = null;
167
+ this.clearSession("WalletConnect session was closed by the wallet.");
137
168
  }
138
169
  });
139
170
  client.on("session_expire", ({ topic }) => {
140
171
  if (this.session?.topic === topic) {
141
- this.session = null;
172
+ this.clearSession("WalletConnect session expired.");
142
173
  }
143
174
  });
144
175
  client.on("session_update", ({ topic }) => {
145
176
  if (this.session?.topic === topic) {
146
- this.session = client.session.get(topic);
177
+ try {
178
+ this.session = client.session.get(topic);
179
+ }
180
+ catch {
181
+ this.clearSession("WalletConnect session was removed.");
182
+ return;
183
+ }
184
+ this.getConnectedSession();
185
+ }
186
+ });
187
+ client.on("session_event", (event) => {
188
+ if (this.session?.topic !== event.topic)
189
+ return;
190
+ const sessionEvent = event.params?.event;
191
+ if (sessionEvent?.name === "accountsChanged" && Array.isArray(sessionEvent.data) && sessionEvent.data.length === 0) {
192
+ this.clearSession("WalletConnect session no longer has approved accounts.");
193
+ }
194
+ if (sessionEvent?.name === "disconnect") {
195
+ this.clearSession("WalletConnect session was disconnected by the wallet.");
147
196
  }
148
197
  });
149
198
  }
@@ -183,6 +232,52 @@ export class WalletConnectBridge {
183
232
  }
184
233
  return null;
185
234
  }
235
+ getPendingProposal() {
236
+ if (!this.pendingProposal)
237
+ return null;
238
+ if (Date.now() - this.pendingProposal.createdAt <= PAIRING_URI_TTL_MS) {
239
+ return this.pendingProposal;
240
+ }
241
+ this.pendingProposal = null;
242
+ return null;
243
+ }
244
+ getConnectedSession() {
245
+ if (!this.session)
246
+ return null;
247
+ if (this.client && this.session.topic) {
248
+ try {
249
+ this.session = this.client.session.get(this.session.topic);
250
+ }
251
+ catch {
252
+ this.clearSession("WalletConnect session was removed.");
253
+ return null;
254
+ }
255
+ }
256
+ if (isSessionExpired(this.session)) {
257
+ this.clearSession("WalletConnect session expired.");
258
+ return null;
259
+ }
260
+ try {
261
+ this.validateSession(this.session);
262
+ return this.session;
263
+ }
264
+ catch (error) {
265
+ this.clearSession(error instanceof Error ? error.message : "WalletConnect session is no longer valid.");
266
+ return null;
267
+ }
268
+ }
269
+ clearSession(reason) {
270
+ const previousTopic = this.session?.topic;
271
+ this.session = null;
272
+ if (reason && previousTopic) {
273
+ this.emitDisconnect({ reason, topic: previousTopic });
274
+ }
275
+ }
276
+ emitDisconnect(info) {
277
+ for (const listener of this.disconnectListeners) {
278
+ listener(info);
279
+ }
280
+ }
186
281
  async disconnectStoredSessions(message) {
187
282
  const client = this.getClient();
188
283
  const topics = new Set();
@@ -216,10 +311,11 @@ export class WalletConnectBridge {
216
311
  return this.client;
217
312
  }
218
313
  getSession() {
219
- if (!this.session) {
314
+ const session = this.getConnectedSession();
315
+ if (!session) {
220
316
  throw new Error("WalletConnect session is not connected");
221
317
  }
222
- return this.session;
318
+ return session;
223
319
  }
224
320
  getChainLabel(chainId) {
225
321
  const chain = this.config.chains.find((configured) => configured.chainId === chainId);
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@walletchan/rpc",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "description": "Local JSON-RPC proxy that routes wallet requests through WalletConnect",
6
6
  "license": "MIT",
@@ -50,6 +50,7 @@
50
50
  "@walletconnect/sign-client": "2.23.9",
51
51
  "commander": "^14.0.0",
52
52
  "hono": "^4.5.0",
53
+ "qrcode": "1.5.3",
53
54
  "qrcode-terminal": "^0.12.0"
54
55
  },
55
56
  "devDependencies": {