Commit Graph

10843 Commits

Author SHA1 Message Date
Alex Jbanca 7603f24372 refactor: Remove business logic from WC ui components
This commit brings a separation of concerns for the UI components involved in dApp interactions.

Issue: The UI components depend on the WalletConnectService and also on its dependencies like DAppsRequestHAndler. As a result the UI components have a hard dependency on the WalletConnect specifics and are incompatible with BC. This results in duplication of logic.
Issue: The UI components operate on WalletConnect specific JSON object. E.g. session objects, session proposal etc. As a result the UI is built around the WalletConnect message format.
Issue: The UI components operate on ListModel items received through functions and stored internally. Any change in the model would result in a crash.
Solution: Remove the WalletConnectService dependency from DAppsWorkflow. The DAppsWorkflow now operates with models, signals and functions. This is the first step in the broader refactoring. Moving the logic into the service itself will allow us to further refactor the WC and BC.

How does it work now:

Dependencies - The UI components have a dependency on models. SessionRequestsModel and DAppsModel.
Pairing - The pairing is initiated in the UI. On user input a pairingValidationRequested signal is emitted and the result is received as a function pairingValidated. If the url is valid the UI requests a pairingRequested. When the WalletConnectService is refactored we can go further and request only pairingRequested and to receive a pairingResult call as a function with the result. In the current implementation on pairingRequested we'll receive a connectDApp request.
Connecting dApps - The flow is initiated with connectDApp function. This call currently contains all the needed info as args. In the next step it could be replaced with a ConnectionRequests model. The connectDApp call triggered a connection popup if we're not currently showing one to the user. If we're currently showing one it will be queued (corner case). The connection can be accepted with connectionAccepted and rejected with connectionDeclined. Once the connection is accepted we're expecting a result connectionSuccessful or connectionFailed. The connectionSuccessful also expects a new id for the established connection.
Signing - The signing flow orbits around the SessionRequestsModel. Each item from the model will generate a popup showing the sign details to the user. Sign can be accepted or rejected using signRequestAccepted or signRequestRejected. No response is currently expected. The model is expected to remove the sign request item.
2024-10-09 13:32:53 +03:00
Siddarth Kumar 7c39fe40b0
fix(status-go)_: install protobuf (#16488) 2024-10-09 14:46:33 +05:30
Michał Cieślak 62cfed201f chore: Utils.qml content divided into two categories
Initial separation of backend-independ and stateless content
from backend-dependent method/properties which are a subject
of further refactors.

Closes: #16481
2024-10-09 09:41:57 +02:00
Igor Sirotin a4646cd71c
fix(status-go)_: add missing status-go dependencies (#16470)
Requires things like: go-bindata mockgen protobuf

Fixes:
https://github.com/status-im/status-desktop/issues/16477

For more details see:
https://github.com/status-im/status-go/pull/5878

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-10-08 19:36:20 +05:30
Lukáš Tinkl 717a792e8c fix: Update "Welcome to Status Beta" startup dialog
- reword the sentence, remove ref to 1.0 release

Fixes #16447
2024-10-08 12:51:51 +02:00
Anastasiya Semenkevich 9c04d2ee9b tests: keypair rename test simplified 2024-10-08 13:10:15 +03:00
Anastasiya Semenkevich 273a960471 chore: update timeouts 2024-10-08 13:10:15 +03:00
Alex Jbanca b8c4dfac34 chore: Set-up the initial codeowners
The CODEOWNSERS file defines the default code owners for specific files or folders in the repo. The code owners are automatically added to PR review.
For more details see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners.
2024-10-07 17:34:58 +03:00
Lukáš Tinkl 63fb79abd6 fix(CurrencyStore): fix passing the CurrencyStore around
- now that we no longer have them as singletons, just pass the one and
only instance down from AppMain
2024-10-07 12:09:23 +02:00
Lukáš Tinkl 235162dc01 fix(community): Token gating info when permission not met and set to private
- hide the permission from the `PermissionsRow` when it's set to private
and the conditions are not met
- display a tooltip "(Not) eligible to join" over the lock icon
- show the same info in both community portal and profile dialog's
community showcase tab
- speedup searching/filtering in the community portal
- fixup and extend the SB pages to demonstrate the new behavior

Fixes #14747
2024-10-07 12:09:23 +02:00
Lukáš Tinkl fe9308fa1e fix(StatusCommunityCard): fixup margins/padding and spacing
- according to the Figma designs; looks much better now in both
small/big views
- don't stretch the bottomRow component unnecessarily in the Loader;
provide implicit width for the tags container instead
2024-10-07 12:09:23 +02:00
Anastasiya Semenkevich 7c5af79b19 chore: update test 2024-10-07 11:08:34 +03:00
Anastasiya Semenkevich 43acfc82ab chore: use driver 2024-10-07 11:08:34 +03:00
Michał Cieślak 9503def18b chore: applicationWindow property removed from Global singleton
Closes: #16455
2024-10-05 14:15:35 +02:00
Anastasiya Semenkevich ffc5da3805 tests: add better condition when waiting for status change 2024-10-04 12:07:40 +03:00
Sale Djenic 3a511c04d5 fix: suggested path calculation updated when adding previously deleted key pair
Fixes #16380
2024-10-03 23:08:25 +02:00
Michał Cieślak 05f73ebf78 stores: shared/RootStore made not singleton
Closes: #16247
2024-10-03 20:08:32 +02:00
Michał Cieślak 152fac2e3c chore: adjust storybook pages to address changes in stores 2024-10-03 20:08:32 +02:00
Michał Cieślak 2af0d6668b stores: access shared/RootStore via explicit property instead of singleton 2024-10-03 20:08:32 +02:00
Michał Cieślak dd871c7e34 Storybook: LazyStackLayoutPage added 2024-10-03 20:08:32 +02:00
Cuteivist 932e6e2820
feat(wallet): Recalculate specific entries in accounts model (#16344) 2024-10-03 14:49:10 +02:00
Lukáš Tinkl 277f408e0c fix(ProfileContextMenu): stop leaking memory
- got removed in a recent refactoring, restore it
- when a context menu component is opened via `Global.openMenu()`, it
has to be destroyed manually
2024-10-03 14:34:12 +02:00
Lukáš Tinkl 2c46764829 fix(MembersTabPanel): Buttons in the Member tab do not work
- move the MouseArea into `background` so that it doesn't obscure the
potential action buttons
- fixup SB page

Fixes #16426
2024-10-03 14:34:12 +02:00
Sale Djenic 100389aa8d chore: align buying/releasing/setting ens usernames with the new sending flow
Based on changes done in this PR https://github.com/status-im/status-go/pull/5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 2nd part of #16336
2024-10-02 16:16:29 +02:00
Lukáš Tinkl e3512938f6 fix(MessageContextMenuView): Message context menu displaying incorrectly
- restore previous context menu item spacing (ColumnLayout has an
implicit spacing of 5)
- don't wrap the MessageReactionsRow into an extra Item container; fixes
the emoji reactions row being garbled
- enhance the SB page so that the above can be seen/tested there and
rename it to match the component name
- some smaller cleanups

Fixes #16409
2024-10-02 15:58:59 +02:00
Lukáš Tinkl 3025ac9208 fix(StatusMessage): fix forgotten enum value in StatusMessage.OutgoingStatus
- also fix typo in the default value of `outgoingStatus`
2024-10-02 15:58:59 +02:00
Jonathan Rainville 252061d8e8
feat(sync): add a fallback mechanism when the pairing does't work (#15820)
Fixes #15750

When the pairing fails, the UI now let's the user use the seed phrase instead.
When they do, a call is send to the original device and both instances will show an AC notif.
When the original device accepts the pairing, the call is made to pair and sync the devices and the AC notifs get deleted
2024-10-02 09:54:35 -04:00
Anastasiya Semenkevich 4133afb676 chore: squeeze 2 tests into one, so links previews are checked on PR level too 2024-10-02 16:12:43 +03:00
Michał Cieślak 9acf8d8709 stores: remove isWalletEnabled from shared/RootStore
Closes: #16254
2024-10-02 13:38:22 +02:00
Michał Cieślak a46f3b0864 stores: flatNetworks removed from shared/RootStore 2024-10-02 13:38:22 +02:00
Michał Cieślak 1b3a4cf955 stores: walletSection usages moved from shared/RootStore to wallet/RootStore 2024-10-02 13:38:22 +02:00
Michał Cieślak 3c6ea3be43 HistoryView: wallet root store taken as an explicit dependency 2024-10-02 13:38:22 +02:00
Michał Cieślak 26b588cc40 shared/RootStore: token related content moved to TokensStore 2024-10-02 13:38:22 +02:00
Michał Cieślak 502c8df411 shared/RootStore: make the SB stub empty
Closes: #16252
2024-10-02 00:08:20 +02:00
Michał Cieślak 47f75c1ae2 TransactionDetailView: RootStore and CurrenciesStore decoupled 2024-10-02 00:08:20 +02:00
Michał Cieślak afe1cd59c0 shared/RootStore: remove duplicated methods of CurrenciesStore 2024-10-02 00:08:20 +02:00
Michał Cieślak 0686552bc3 TransactionDetailView: refactored to take root store as a dependency 2024-10-02 00:08:20 +02:00
Michał Cieślak c3a234908d CurrenciesStore: static model removed from store 2024-10-02 00:08:20 +02:00
Anastasiya Semenkevich e015fface7 chore: change 1x1 chat to add contacts through settings 2024-10-01 23:57:41 +02:00
Michał Cieślak f8d33656e6 fix: add PreferredDisplayName to user_model
- excludes logic of resolving preferred display name to shared
  contacts_utils
- expose PreferredDisplayName role from user_model
- improves PreferredDisplayName handling in member_model

Closes: #16429
2024-10-01 23:57:41 +02:00
Sale Djenic ee9091377f chore: align buying stickers flow with the new sending flow
Based on changes done in this PR https://github.com/status-im/status-go/pull/5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 1st part of #16336
2024-10-01 17:21:26 +02:00
Sale Djenic ad7e2df78a chore: improvements of the sending route generated by the router process
Closes #14636
2024-10-01 17:21:26 +02:00
Michał Cieślak 8bc6db5405 Fixed link to CONTRIBUTING.md in the PR template 2024-10-01 16:00:54 +02:00
Jonathan Rainville 0a8f8d7026
fix(minting): fix minting tokens on Windows (#16422)
Fixes #16326

Passes the image through the image formatting function before sending
2024-09-30 11:14:41 -04:00
Anastasiya Semenkevich 87e91de90c chore: add timeout for clicks 2024-09-30 17:56:27 +03:00
Cuteivist 83d7c03585
feat(wallet): Add metrics for Send / Bridge / Swap (#16400) 2024-09-30 10:34:28 +02:00
Lukáš Tinkl 2e249f9941 fix[WalletConnect] Incorrect authentication method icon on sign modal
- `loginType` was not propagated correctly, also due to a wrong
RootStore
- plus an evil typo: `account.migragedToKeycard` :)

Fixes #16089
2024-09-29 11:01:35 +02:00
Lukáš Tinkl d09448e406 fix(AddEditSavedAddressPopup): fix validating account
- `contactsModuleInst` was undefined due to a different RootStore
2024-09-29 11:01:35 +02:00
Lukáš Tinkl a0112f063e fix(TransactionDelegate): fix `transactionType`
- the `addressesEqual` was forgotten in the TransactionDelegate but it's
referenced by `transactionType` function inside the store
2024-09-29 11:01:35 +02:00
Anastasiya Semenkevich 54afe78b94 tests: update existing test to open send modal from chat message 2024-09-27 21:27:22 +03:00