Keeps watch-only accounts, drops the protocol that cannot work. ImportQr scanned a Parity Signer QR — SUBSTRATE_ID 0x53, CRYPTO_SR25519 0x01, a crypto-type byte with no ML-DSA value — so no Quantus device could ever answer it, and one branch hardcoded createAccountSuri(..., 'sr25519', ...). But it was also the *only* caller of createAccountExternal, so deleting it would have taken watch-only accounts with it. Those are wanted independently of how the address arrives, and are what the account list is used for. TrackAddress takes a pasted SS58 string instead, which for Quantus is the common case anyway: the address is on screen in another wallet, not on a signing device. It round-trips through decodeAddress/encodeAddress, which rejects a mistyped address by its checksum rather than storing one that can never receive anything, and normalises the prefix so an address pasted from a tool using a different one displays the way the rest of the extension displays it. The signing path had to change with it, and this is the part that would have been a bug. `isExternal && !isHardware` previously rendered the QR signer — and a tracked address satisfies exactly that condition, so leaving it would have shown a Parity QR that nothing can scan, for an account that can never sign. External accounts now show the decoded call and say plainly that the extension holds no key for them. That makes Signing/Qr.tsx unreachable, along with the CMD_MORTAL and CMD_SIGN_MESSAGE Parity command bytes and the _onSignature callback, whose whole job was accepting a signature produced outside the extension. All removed. approveSignSignature in the background is deliberately left. Unlike Ledger, which is gone for good, external signing returns when quantus/extension#10 ports the flow to multipart UR — the message it carries is the right shape for that, and deleting it would only mean writing it again. Two specs rewritten rather than deleted: the one asserting a QR scanner appears for external accounts now asserts the extrinsic and the cannot-sign warning appear instead. Typecheck, lint and 65 tests clean; build:chrome completes. Refs quantus/extension#10, quantus/extension#5 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
@polkadot/extension-ui
UI for the @polkadot/extension