209 Commits

Author SHA1 Message Date
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
Jonathan Rainville
50132c5a0e
Refactor contacts models to have a single model, remove useless properties and improve updating (#16667)
* refactor(contacts): refactor 5 contact models into one and filter in QML

Fixes #16549

Refactors the 5 types of contact models (all, mutuals, banned, received and sent) into only the `allContacts` and use an Adaptor on the QML side to filter into the needed models.
This cleans the Nim side a lot and makes applying updates to the contacts' model way simpler.

* chore(contacts): remove useless and duplicated contact properties

OptionalName and isSyncing were never used.
DefaultDisplayName was not really used and is actually a duplication of preferredDisplayName, so I replaced the limited usages of DefaultDisplayName by preferredDisplayName

* refactor(contacts): improve updates by not removing and re-adding

We used to update contact items by removing them from the models and re-adding them. This is highly inefficient.
Instead, the proper way is to update only the values that changed.

* user_model: onItemChanged signal removed

* user_model: sorting by online status no longer needed on nim side

* Chat/RootStore: contactsModel property removed

* ContactsStore encapsulation improved

* ContactsStore: contacts model adaptor moved outside store

---------

Co-authored-by: Michał Cieślak <michalcieslak@status.im>
2024-11-28 09:15:34 -05:00
Khushboo Mehta
f1395a3a0a feat(@desktop/wallet): Adapt AmountToSend for Simple Send
fixes #16703
2024-11-27 16:40:53 +01:00
Khushboo Mehta
dc716ad1b0 feat(@desktop/wallet): Adapt Token Selector
fixes #16702
2024-11-27 16:40:41 +01:00
Alex Jbanca
fa4755ce9e feat(WalletFirst): Integrate the BuyReceiveBanner in the app
+ store the card state in user settings
+ amend the BannerCard close button state. It needs to change color on hover and to become visible only when the card is hovered.
2024-11-27 16:50:58 +02:00
Alex Jbanca
b04a9a4dd2 feat(dapps): Add connector badge to WC and BC dapps
Adding connector badge to the dapps list and connect modal
Updating the RoundImageWithBadge to support custom badge size and margins
Updating the RoundImageWithBadge to support both SVG and PNG as source
Polish the dapps sign modal badge to match the design
2024-11-27 14:19:34 +02:00
Anastasiya Semenkevich
9b73badd22 feat: buy flow wording adjusted 2024-11-26 20:02:47 +03:00
Alex Jbanca
5e6db4d2ff feat(WalletFirst): Creating the wallet banner UI component
Banner items are created as per design.
Banner items support customizable close button.
Banner items have hove state as per design.
Banner items are added to storybook with all possible configurations.
Banner items have a close animation including fade-out and the remaining item occupy the empty space.
QML tests are added.
2024-11-22 12:47:18 +02:00
Alex Jbanca
793aeb15c3 fix(Dapps): Fixing fees in transaction requests
Fixes:
1. Fixing the laggy scrolling on transaction requiests popups. The root cause of this issue was the fees request and also the estimated time request. These periodic requests were blocking. Now we'll call these API async.
2. Fixing the max fees: The fees computation was using 21k as gasLimit. This value was hardcoded in WC. Now we're requesting the gasLimit if it's not provided by the dApp. This call is also async.
3. Fixing the periodicity of the fees computation. The fees were computed by the client only if the tx object didn't already provide the fees. But the tx could fail if when the fees are highly volatile because it was not being overridden. Now Status is computing the fees periodically for all tx requests.
4. Fixing an issue where the loading state of the fees text in the modal was showing text underneath the loading animation. Fixed by updating the AnimatedText to support a custom target property. The text component used for session requests is using `cusomColor` property to set the text color and the `color` for the text must not be overriden.
2024-11-22 11:32:41 +02:00
Alex Jbanca
106988d534 fix(WC): Refactor dapps service to work with multiple SDKs
This PR is refactoring the dapps service to avoid code duplication between SDKs and also to avoid overlapping requests/responses.
It brings Browser Connect inline with Wallet Connect in terms of session management and sign transactions.

New architecture:

WalletConnectService becomes DAppsService. Its responsibility is to provide dapp access to the app. This is the component currently used by the UI
What does it do:
1. Provide dapp APIs line connect, disconnect, session requests etc
2. Spawn app notifications on dapp events
3. Timeout requests if the dapp does not respons

DAppsRequestHandler becomes DAppsModule. This component is consumed by the DAppService. Its responsibility is to aggregate all the building blocks for the dapps, but does not control any of the dapp features or consume the SDKs requests.
What does it do:
1. Aggregate all the building blocks for dapps (currently known as plugins)

DAppConnectionsPlugin - This component provides the session management features line connect, disconnect and provide a model with the connected dapps.
SignRequestPlugin - This component provides the sign request management. It receives the sign request from the dapp, translates it to what Status understands and manages the lifecycle of the request.
2024-11-20 18:10:29 +02:00
Alex Jbanca
7e1e827148 feat(WC): Enable Wallet Connect feature by default
+ Update the dialog where the user choses the connection to enable or disable the connection option based on flags
+ Separating the walletConnect flag and browserConnect flag usage so that either one can be disabled without affecting the other feature
+ Update qml test
2024-11-20 18:10:29 +02:00
Alex Jbanca
514428ee57 fix(WC): Adding tests for ChainsAvailabilityWatchdog and ChainsSupervisorPlugin
+ move other tests from the wrong folder
2024-11-20 18:10:29 +02:00
Alex Jbanca
cb772dc6b5 feat(WC): Handle unavailable chains or internet connection
This commits implements the `connect` `disconnect` session events for WC and also disables primary buttons for WC whenever there is no connection to internet or chains.

+ update tests
2024-11-20 18:10:29 +02:00
Alex Jbanca
517a10f805 feat(WC): Implementing SIWE flows
To squash - Implementing SIWE flows
2024-11-20 18:10:29 +02:00
Alex Jbanca
65013e8b58 fix(WC): Fix property names collisions
to squash - property names collisions
2024-11-20 18:10:29 +02:00
Anthony
22c4bb2846 feat: hide mercuryo
fix #16757
fix #16765
2024-11-19 11:16:16 +01:00
Michał Cieślak
6b334a4085 StatusQ: ModelEntryChangeTracker component introduced 2024-11-14 15:13:24 +01:00
Dario Gabriel Lipicar
ea94065c57 fix(swap): invalidate old uuid and route when a new route request is made
Fixes #16574
2024-10-31 12:12:28 -03:00
Jonathan Rainville
d511c25d2e
remove old code about ID verification and fix trustStatus bug (#16548)
* chore: remove old code about ID verification

* refactor(trust): remove untrustowrthy and isVerified from items and use trustStatus

* chore(status-go): up status-go to get fix for trustStatus reseting

Fixes #16392

* chore: remove verified/trusted profile showcase category
2024-10-29 14:08:12 -04:00
Sale Djenic
f6055946d4 chore: usage of goerli removed 2024-10-29 15:46:09 +01:00
Lukáš Tinkl
d9d6d90dc9 [Style] remove legacy Style and its themes
- legacy Style and ThemePalette removed
- moved and deduplicated font definitions into `Theme` (unrelated to a
color palette)
- `Style.current.foo` -> `Theme.foo`
- `Style.current.fooColor` -> `Theme.palette.fooColor`
- upgrade the imports to 5.15
- removed some mode dead components

Fixes #16514
2024-10-22 15:54:31 +02:00
Anastasiya Semenkevich
05f8005336 chore(@storybook): skip flaky test 2024-10-18 20:14:28 +03:00
Sale Djenic
fe5c135486 chore: sign the flow only once if approval and transaction need to be placed once after another (swap flow)
Closes #16337
2024-10-16 09:52:46 +02:00
Alex Jbanca
684d0b4d63 fix: DAppsWorkflow flaky test 2024-10-15 13:40:48 +03:00
Michał Cieślak
03db15529e Cleanup after #16497 workaround 2024-10-11 23:37:50 +02:00
Michał Cieślak
f75e4e0c47 Introduce ability of calling StatusQ methods from nim
Closes: #16496
2024-10-11 23:37:50 +02:00