Commit Graph
3 Commits
Author SHA1 Message Date
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
SatoshiQaziMuhammed 306c65532e Name each wallet step on the root signing page (#82)
The wallet answers DApp requests one at a time and waits without limit for each, so a
tap that reaches a stalled wallet showed nothing. The page now names the step it is
waiting on, says after 45 s that the wallet is not answering and how to reset it, and
disables the button while a request is pending so repeated taps do not queue more.
2026-11-05 03:21:41 +04:00
SatoshiQaziMuhammed 6864b8c0aa Root signing page and a root chain check for replacing the root keys (#81)
- signed_config.py root drafts a later root in docs/root-signing/proposals/,
  where wallets never look, and keeps the current targets key by default.
- docs/root-signing/: a page for the Pezkuwi Wallet DApp browser that shows
  the proposal and its fingerprint, has the holder's wallet sign
  <Bytes>payload</Bytes>, checks every signature as the wallet will, collects
  signature codes and offers root.N.json once two current and two new holders
  have signed. Crypto bundles are served beside it.
- scripts/root/verify_root.mjs checks every published signed/root.N.json the
  way installed wallets do; Code Quality runs it. Wallet 1.3.0 accepts sr25519
  only under the substrate signing context, and a root it cannot verify stops
  its config refresh, so such a root must never reach master.
- Draft root 2: three new holder accounts, threshold 2, five years.
2026-11-04 23:58:11 +04:00