Sign the root over WalletConnect (#83)

* Sign the root over WalletConnect

Wallet 1.3.0's DApp browser never delivers injected-provider requests, so the page could
not get a signature from any installed wallet. WalletConnect is the route installed
wallets answer: on the phone the page opens the wallet by its pezkuwiwallet://wc link,
elsewhere it shows a code for the wallet to scan, then asks for polkadot_signMessage on
<Bytes>payload</Bytes>. Measured over a real session on the 1.3.0 signing code: the
signature verifies under the "substrate" context, which is what the thresholds count.

The injected provider stays as a second button for wallets where it works. The
WalletConnect bundle is built from scripts/root/wc (pinned versions, node build.mjs).

* Open the wallet by a fixed link, not the peer's redirect

The redirect in a WalletConnect session's peer metadata is supplied by whichever wallet
connects, so following it let a connecting peer navigate the signing page anywhere,
javascript: included.
This commit is contained in:
SatoshiQaziMuhammed authored and GitHub committed 2026-11-05 04:25:23 +04:00
1 parent 306c65532e
commit c3bc55d37c
6 files changed
+2078 -58

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
{
"name": "pezkuwi-root-signing-walletconnect",
"private": true,
"type": "module",
"description": "Builds docs/root-signing/vendor/walletconnect.js: node build.mjs",
"dependencies": {
"@walletconnect/sign-client": "2.23.9",
"buffer": "6.0.3",
"process": "0.11.10",
"qrcode": "1.5.4"
},
"devDependencies": {
"esbuild": "0.28.1"
}
}