@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 +8 -4
- package/SKILL.md +6 -1
- package/dist/index.js +67 -17
- package/dist/index.js.map +1 -1
- package/dist/rpcHandler.js +31 -1
- package/dist/rpcHandler.js.map +1 -1
- package/dist/rpcServer.d.ts.map +1 -1
- package/dist/rpcServer.js +300 -0
- package/dist/rpcServer.js.map +1 -1
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +8 -0
- package/dist/skill.js.map +1 -1
- package/dist/walletConnect.d.ts +20 -4
- package/dist/walletConnect.d.ts.map +1 -1
- package/dist/walletConnect.js +112 -16
- package/dist/walletConnect.js.map +1 -1
- package/package.json +2 -1
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
|
|
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
|
-
-
|
|
44
|
-
-
|
|
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
|
|
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("
|
|
104
|
+
log.info(" Wallet app: scan the QR or paste the copied WalletConnect URI");
|
|
68
105
|
}
|
|
69
106
|
else {
|
|
70
|
-
log.info("
|
|
107
|
+
log.info(" Wallet app: scan the QR or paste the WalletConnect URI below");
|
|
71
108
|
}
|
|
72
|
-
log.info(
|
|
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
|
-
|
|
85
|
-
log.success(`Connected: ${
|
|
86
|
-
if (
|
|
87
|
-
log.dim(`Wallet: ${
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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":";AAEA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/rpcHandler.js
CHANGED
|
@@ -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
|
-
|
|
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
|
package/dist/rpcHandler.js.map
CHANGED
|
@@ -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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"}
|
package/dist/rpcServer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpcServer.d.ts","sourceRoot":"","sources":["../src/rpcServer.ts"],"names":[],"mappings":"
|
|
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
|
package/dist/rpcServer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpcServer.js","sourceRoot":"","sources":["../src/rpcServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"rpcServer.js","sourceRoot":"","sources":["../src/rpcServer.ts"],"names":[],"mappings":"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"}
|
package/dist/skill.d.ts.map
CHANGED
|
@@ -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,
|
|
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;
|
|
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"}
|
package/dist/walletConnect.d.ts
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
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"}
|
package/dist/walletConnect.js
CHANGED
|
@@ -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
|
|
44
|
+
return this.getConnectedSession() !== null;
|
|
42
45
|
}
|
|
43
46
|
get sessionTopic() {
|
|
44
|
-
return this.
|
|
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
|
-
|
|
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:
|
|
89
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
314
|
+
const session = this.getConnectedSession();
|
|
315
|
+
if (!session) {
|
|
220
316
|
throw new Error("WalletConnect session is not connected");
|
|
221
317
|
}
|
|
222
|
-
return
|
|
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.
|
|
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": {
|