Skip to content

feat: real designs for Keystone hardware wallet signup and signing - #591

Open
n13 wants to merge 3 commits into
mainfrom
feat/keystone_design
Open

feat: real designs for Keystone hardware wallet signup and signing#591
n13 wants to merge 3 commits into
mainfrom
feat/keystone_design

Conversation

@n13

@n13 n13 commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Replaces the dev-design Keystone screens with the real designs from the Quantus Redesign Figma.

Screenshots: See below (simulator)

Designs:

Add Keystone flow (2 screens)

  • AddHardwareAccountScreen rewritten as the intro screen: hero product image, headline, "Connect Hardware Wallet" button, and a "Don't have one? Get a Keystone ↗" link. Constructor unchanged, so existing callers (add-account menu, create-account) are untouched.
  • New ConnectKeystoneScreen: firmware reminder + on-device steps with the Figma icons, then "Ready to Scan" opens the QR scanner. The name/address form is gone — the account is created directly after scanning (name defaults to "Keystone Wallet"). Debug test-address path kept in kDebugMode.

Send signing flow — now a 3-step journey

Most of the send flow is unchanged; the branch where the user signs with Keystone is redesigned:

  • Step 1/3 KeystoneSignScreen: step indicator, "Scan with your Keystone", bordered QR card, "YOU ARE SIGNING" details (amount/recipient + checksum), "Continue to Sign" / "Cancel Transaction".
  • Step 2/3 new KeystoneVerifyScreen: "Check your Keystone Screen" — dark summary card with amount and recipient, red mismatch warning, "Continue to Sign" / "It doesn't match".
  • Step 3/3 AnimatedQrScanner restyled: app bar, step header, rounded camera view with corner brackets, "RECEIVING SIGNATURE" progress bar.
  • New KeystoneRejectScreen ("It doesn't match"): reject-on-device instructions, "I rejected it on Keystone", "Contact Support" mailto.

Multisig hardware signing gets the same new flow automatically since it shares these screens.

Supporting changes

  • New textSubtle color in AppColorsV2, shared KeystoneStepLabel / KeystoneWarningCard widgets, UnderlinedTextLink component
  • Figma assets (hero image, logo, step icons) added to assets/v2/
  • New/updated l10n strings; stale Indonesian overrides for changed/removed strings dropped (fall back to English)
  • Removed unused KeystoneSigningSession.title (app bar is "Sign with Keystone" per design)

Deliberate deviations from Figma

  • Step 2 "≈ $10" fiat row omitted — no fiat data in the signing session
  • Scanner torch button dropped to match the design

Testing

  • melos run format clean; dart analyze --fatal-infos clean on lib/ and test/ (melos' own analyze run kept crashing its analysis server on mobile-app — env flake, not a code issue)
  • Not yet tested on device — set AppConstants.debugHardwareWallet to force the Keystone path for testing without hardware

@n13

n13 commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator Author
Simulator Screenshot - iPhone 17 - 2026-08-02 at 15 22 47 Simulator Screenshot - iPhone 17 - 2026-08-02 at 15 22 52 Simulator Screenshot - iPhone 17 - 2026-08-02 at 15 22 59

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant