Files
pezkuwi-wallet-utils/scripts/root/wc/build.mjs
T
SatoshiQaziMuhammed c3bc55d37c 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.
2026-11-05 04:25:23 +04:00

16 lines
457 B
JavaScript

// Bundles entry.js into the signing page's vendor directory: npm ci && node build.mjs
import { build } from 'esbuild';
await build({
entryPoints: ['entry.js'],
bundle: true,
format: 'iife',
globalName: 'RootSigningWC',
platform: 'browser',
target: 'es2020',
outfile: '../../../docs/root-signing/vendor/walletconnect.js',
minify: true,
legalComments: 'eof',
define: { 'process.env.NODE_ENV': '"production"', global: 'globalThis' },
});