234 Commits

Author SHA1 Message Date
Lukáš Tinkl
0ef547a645 fix(onboarding): Incorrect Back Navigation and Button Visibility on PIN Screens
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
2025-02-14 14:48:33 +01:00
Alex Jbanca
36872b6f1c feat(Swap): display the exchange rate approximation in swap
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
2025-02-13 22:32:14 +02:00
Cuteivist
ac4a36b081
feat(wallet): New chain icon (#17263) 2025-02-13 14:04:30 +01:00
Igor Sirotin
5c68e01e02
feat: collect KeyUID during LoginWithLostKeycardSeedphrase (#17278)
* feat: collect `KeyUID` during `LoginWithLostKeycardSeedphrase`

* chore: address pr comments
2025-02-13 00:03:09 +03:00
Khushboo-dev-cpp
b6fd97d36b feat(@desktop/wallet): Enable simple send by default 2025-02-12 17:07:22 +01:00
Lukáš Tinkl
57ba401228 chore(Onboarding): add unblock flows tests of LoginScreen
- to be completed/finished when the flows actually work
2025-02-12 14:07:03 +01:00
Lukáš Tinkl
262f51a102 fix(Onboarding): Better handling of login errors
- 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
2025-02-12 14:07:03 +01:00
Michał Cieślak
d1ac45ce6c Onboarding: KeycardCreatePinPage and SeedphrasePage refactored to be pure UI components
Now those components are not aware of any logic in the upper layer,
making the flows more structured and easier to follow.

Required for: #17232
2025-02-12 13:54:46 +01:00
Khushboo-dev-cpp
91846f38b0 feat(@desktop/wallet): Add swap button in left sidebar
fixes #17197
2025-02-12 10:54:48 +01:00
Khushboo-dev-cpp
28496a93b1 feat(@desktop/wallet): Remove progressive pixel reduction in Send and Swap 2025-02-11 20:21:07 +01:00
Khushboo-dev-cpp
296b717f54 feat(@desktop/wallet): Swap changes needed for -2.33
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
2025-02-11 20:21:07 +01:00
Cuteivist
d01ab02a5a
feat: Update interactive states in simple send modal (#17253) 2025-02-11 19:44:23 +01:00
Michał Cieślak
cee35cb164 Onboarding: Add key pair page aligned to the design
Dedicated page for operation of adding new key pair to the keycard,
with minimal times for displaying in progress and success states.

Closes: #17233
2025-02-11 12:44:46 +01:00
Lukáš Tinkl
bc5da78180 fix(Onboarding): Incorrect Navigation Flow for 'Use existing phrase' Option
- 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
2025-02-10 17:20:56 +01:00
Michał Cieślak
7649ad45ca feat(Onboarding): KeycardExtractingKeysPage excluded from KeycardEnterPinPage
Closes: #17205
2025-02-07 17:24:20 +01:00
Igor Sirotin
6fe5330e5b
fix: use mnemonic as BIP-39 string (#17246) 2025-02-07 15:14:52 +00:00
Michał Cieślak
d26991bc72 feat: LoginScreen biometrics integration using Keychain
Required for #17085
2025-02-06 19:20:38 +01:00
Lukáš Tinkl
c20662e6a4 fix(EnterSeedPhrase): fix backspace or delete
- fields can be cleared by selecting a word and pressing backspace or
delete

Iterates: #17105
2025-02-06 14:56:07 +01:00
Lukáš Tinkl
241f21e4ea fix(EnterSeedPhrase): focus last input field after paste
Iterates: #17105
2025-02-06 14:56:07 +01:00
Cuteivist
79432938b2
feat(wallet): Update recipient data in send sign modal (#17164) 2025-02-06 10:08:54 +01:00
Jonathan Rainville
bf5de4087e
feat: Integrate new logins flows happy paths (#17137)
* feat(login): integrate basic login flows happy paths

Fixes #17137

* fix: rebase issues and pr comments

* chore: switch status-keycard-go to master branch

* fix: tests

---------

Co-authored-by: Igor Sirotin <sirotin@status.im>
2025-02-04 15:08:13 +00:00
Jonathan Rainville
2d549f42be
feat: Implement the keycard flows for the new onboarding (#17127)
* 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>
2025-02-04 13:22:05 +00:00
Khushboo-dev-cpp
19c6e910d8 feat(@desktop/wallet): Wrtie Unit tests for SimpleSendModal, SimpleTransactionFees and SendModalFooter
fixes #17123
2025-02-03 16:20:13 +01:00
Michał Cieślak
944568eaf7 Onboarding: LoginScreen location adjusted
- 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
2025-01-31 13:54:49 +01:00
Lukáš Tinkl
df741d6260 feat(Onboarding): implement the new UnblockWithPukFlow
- integrate the PUK unblock flow into the Onboarding and Login screen
- added a dedicated SB page for it
- remove the `Locked` keycard state everywhere in favor of `BlockedPIN`
and `BlockedPUK`
- fix the various "Locked" buttons, based on the context and the state
of the keycard

Fixes: #17092
2025-01-29 12:38:43 +01:00
Michał Cieślak
cf85dea32d Onboarding lost keycard - basic tests
Closes: #17095
2025-01-29 11:00:16 +01:00
Lukáš Tinkl
2ec862231a feat(StatusButton): add an outline variant
- only for `StatusButton` as for the `StatusFlatButton` it's not desired
- also use defined metrics for padding/spacing
- add a QML test

Fixes #17124
2025-01-28 11:34:30 +01:00
Cuteivist
28690379e1
feat: Simple send modal recipient view (#17096)
* feat: Simple send modal recipient view

* feat: Handle duplicate entries in recent recipient view
2025-01-27 17:35:59 +01:00
Khushboo Mehta
4b2457a17b feat(@desktop/wallet): Adapt invocations to New Simple Send Modal
fixes #17023
2025-01-27 15:50:32 +01:00
Alex Jbanca
e60cf57831 Revert "feat: hide mercuryo"
This reverts commit 22c4bb2846c2a88f79ccb326fbbb885ead077d41.
2025-01-27 15:52:10 +02:00
Lukáš Tinkl
acb24c9e7b fix(KeycardCreateProfileFlow): swap the order of PIN and Seed pages
- first Create the PIN, then backup or enter the seed phrase
- fix and simplify the tests to reflect the reality; we are always
creating a PIN here since it's an empty keycard
2025-01-24 15:27:07 +01:00
Alex Jbanca
2efe0c199d perf(SwapModal): improve the performance on tokenSelectorAdaptor 2025-01-24 15:19:41 +02:00
Khushboo Mehta
5793204e01 feat(@desktop/wallet): Integrates the new sign model into the simple send
fixes #17060
2025-01-24 13:51:59 +01:00
Khushboo Mehta
bb0908021e feat(@desktop/wallet): New Send Sign Modal
fixes #16708
2025-01-24 13:51:59 +01:00
Lukáš Tinkl
638676ed0b feat(Onboarding) Implement new Login screen
- implement the new UI and frontend logic of the Login screen
- integrate it (as a separate page) into the OnboardingLayout
- add SB pages
- add an integration QML test
- add some TODOs and FIXMEs for the existing and new external flows,
which will be covered separately in followup PRs

Fixes #17057
2025-01-23 17:41:43 +01:00
Alex Jbanca
b6bc5d1e29 feat(dapps): Adding dapp metrics
closes #16912

Sending the dapps events to mixpanel

| Event Name | Properties | Possible Values | Notes |
| --- | --- | --- | --- |
| dapps-health | state | - wc_available
- wc_unavailable
- chains_down
- network_down
- pair_error
- connection_error
- sign_error |  |
|  | error |  | string description |
| dapps-navigation | flow | - dapps_list_opened
- connect_initiated
- disconnect_initiated
- pair_initiated |  |
|  | connector | - wallet_connect
- browser_connect |  |
| dapps-connection | flow | - proposal_received
- proposal_accepted
- proposal_rejected
- connected
- disconnected |  |
|  | networks | networks[string] - array of networks | Array of proposed or connected networks |
|  | methods | methods[string] - array of methods | Array of proposed methods |
|  | dapp | dapp uri |  |
|  | connector | - wallet_connect
- browser_connect |  |
|  | isSiwe | boolean |  |
| dapps-sign | flow | - sign_received
- sign_accepted
- sign_rejected |  |
|  | connector | - wallet_connect
- browser_connect |  |
|  | method | - personal_sign
- eth_sign
- eth_signTypedData_v4
- eth_signTypedData
- eth_signTransaction
- eth_sendTransaction |  |
|  | dapp | string - dapp uri |  |
|  | chainId | int - chain id |  |
2025-01-22 11:40:00 +02:00
Michał Cieślak
07640e4bd9 Onboarding: metrics handling externalized 2025-01-14 10:49:42 +01:00
Michał Cieślak
2cee665734 Onboarding: keycard pin-related delays parametrized
Closes: #17031
2025-01-14 10:49:42 +01:00
Michał Cieślak
ad1a1da369 SyncProgressPage: built-in timeout removed 2025-01-14 10:49:42 +01:00
Michał Cieślak
96a974622e Onboarding: non-intrusive current page name inspection 2025-01-14 10:49:42 +01:00
Lukáš Tinkl
7547442e39 fix(OnboardingFlow): collect enableBiometrics and seedphrase data
- extend the  tests to verify whether we collected the correct data
- restore the "pointing hand" cursor on clickable elements
- some minor improvements
2025-01-14 10:49:42 +01:00
Michał Cieślak
4be5c2fa27 feat(OnboardingLayout): Decompose into smaller, pure ui sub-flows
Closes: #16947
2025-01-14 10:49:42 +01:00
Lukáš Tinkl
3705249e40 feat(Onboarding): Create Profile & Login flows
- implement the basic Onboarding UI skeleton and the Create Profile
flows
- adjust the PasswordView and EnterSeedPhrase views to the latest design
- add the main OnboardingLayout and StatusPinInput pages to Storybook
- change terminology app-wide: "Seed phrase" -> "Recovery phrase"
- implement the Login flows (seed, sync, keycard)
- amend the keycard flow sequences with separate (non) empty page

Fixes #16719
Fixes #16742
Fixes #16743
2025-01-14 10:49:42 +01:00
Khushboo Mehta
2394def19b feat(@desktop/wallet): New Error component defined for simple send
fixes #16707
2025-01-07 18:14:14 +05:30
Khushboo Mehta
0d4d1b0ba7 feat(@desktop/wallet): Move the Account Selector logic to show selected token balance on a sepcific network to a dedicated WalletAccountsSelectorAdaptor
fixes #16705
2025-01-06 22:50:26 +05:30
Cuteivist
5bf4ba22c2
feat: Payment Request modal (#16744) 2024-12-04 11:19:27 -05:00
Cuteivist
7998b0640f
Feat/request payment cards 16737 (#16740)
* feat: Payment Request cards

* feat: Card fixes
2024-12-03 09:36:04 +01:00
Alex Jbanca
9490dbb57e refactoring(dapps): Move WC and BC popups in the global scope
closes #16831

Moving the dapp popups to the global scope in order for them to be triggered on any view.
There are a few changes required for this:
1. DAppsWorkflow has been split. Previously all popups were declared in the `DappsComboBox`. Now the DAppsWorkflow inherits the QObject instead and the `DappsComboBox` is used as is in the wallet header.
2. The DAppsWorkflow has been moved to AppMain. The DAppsWorkflow will be constructed in the scope of DAppsService and connected directly to the service signals
3. Updated tests and storybook with the new structure
4. Removed the `dAppsService` from `Global`. There's no reason to keep the `dAppsService` instance in the `Global` singleton.
2024-12-03 09:52:28 +02:00
Michał Cieślak
7323889a8c ContactDetails decomposed into smaller, more specialized components
Closes: #16793
2024-11-29 17:46:50 +01:00
Dario Gabriel Lipicar
228197e2c4 feat(@desktop/wallet): Round down max value in Send and Swap modals 2024-11-29 08:39:58 -03:00