- adds a new NIM method `isMnemonicDuplicate` which checks for
duplicates
- use it in the "seedphrase recovery flows"
- in case of a duplicate seedphrase, present the user with a more
suitable error message (other than a plan "Invalid seedphrase")
- fixes re-importing the same seed leading to an infinite splash screen
loop due to an "account already exists" error
Fixes#17248
For the PIN pages:
- add a `pinSettingInProgress` bool hint to `KeycardCreatePinPage` when
setting/authorizing the PIN is in progress to be able to correctly
display the Back button
- don't display the "success" image yet when in progress
- use the hint in related flows
- extract the default attempts numbers to `Constants`
For the backup seed phrase sequence:
- the mnemonic is a string and gets submitted when exiting the
BackupSeedphraseReveal, not right after its (re)creation
- when starting the flow (going from `KeycardCreatePinDelayedPage`),
replace instead of push, so that Back skips the PIN page
- fixup the related SB pages
Fixes#17218
Show the exchange rate approximation in swap. The exchange rate shows when the swap input is valid.
It has 3 states:
1. invisibile - when the pay/receive input is empty
2. visible and loading - while fetching the routes. Happens whenever the swap input changes AND the input is valid
3. visbile, with data - once the routes have been fetched
- remove `tryToSetPinFunction` and correct `setPin` functions; those
were not used in LoginScreen
- consistently report login errors to the LoginScreen, including details
for the keycard profiles
- display error details in a popup (extracted from `LoginKeycardBox` to
`LoginScreen`) for both password and keycard profiles
- add login error simulation buttons to SB pages
Fixes#17258
1. Max button functionality
2. Hardcode swap modal to swap USDT <-> WETH
3. Fixing some issues found
4. Not limiting number entered by user
fixes#17198, #17200
- changes the order of the "Create profile on empty Keycard" flow to
match Figma (seedphrase -> create pin -> add key pair)
- fixup tests to match the order
Fixes#17216
- the manual "I've insterted a keycard" reload buttons are no longer
needed; we can rely solely on the HW keycard state
- when doing a "Restart", also reset the internal mock/store states
Fixes#17234
- display validation messages closer to the input fields
- warn about pass too long, info for "passwords match"
- fix an actual bug when two too long passwords would be considered as
"valid" by the UI
- various fixes and UX improvements for the respective SB pages
Iterates: #17101
To fully fix the above issue, we need a more complete Figma design,
depicting the various error scenarios
- integrate it into the UI and StoryBook
- a new keycardState is introduced: `FactoryResetting` (matching the
backend)
- a new store method introduced: `startKeycardFactoryReset()`
Fixes: #17094
* feat(onboarding): integrate all keycard flows for the new onboarding
Fixes#17079
* chore: bump submodules to merged versions
* fix: rebase fixes
* chore: bump status-keycard-go to use Go 1.21
* feat: add FactoryResetting state
* chore: minor fixes
* add KeycardRemainingPinAttempts
* minor fixes
* minor fixes
---------
Co-authored-by: Igor Sirotin <sirotin@status.im>
- LoginScreen SB page simplified
- OnboardingLayoutPage - settings introduced for handier testing
- LoginScreen moved from OnboardingLayout to OnboardingFlow, making first flow's page bound to model content (instead of relying on check during initialization)
- UnblockWithPukFlow removed from OnboardingLayout (now it's used only in OnboardingFlow)
- Login error/success processing extracted from LoginScreen to OnboardingLayout
- small bug fixed in Utils::objectTypeName
Closes: #17160
- popup displayed only ever once
- triggered when section is switched to anything else than wallet
(default for new users) or settings (profile visible first anyway)
- add the popup to SB
Fixes#17027