Commit Graph

10811 Commits

Author SHA1 Message Date
Alex Jbanca 1449306160
feat(BC): Implement eth_signTypedData_v4 in BrowserConnect
This commit renames the personalSign to Sign in nim and status-go to enable `eth_signTypedData_v4` signing.
The sing request coming from the status-go API contains the signing method to be used by the client. Currently we're supporting personal sign and signTypedData_v4.

The only difference between these two signing methods is the order of challenge and address in the `params` array. This is handled in the SappsConnectorSDK::buildSignRequest
2024-11-19 14:23:37 +02:00
Alex Jbanca ca0456ecae
fix(BC): Implementing the personal_sign 2024-11-11 18:22:45 +02:00
Alex Jbanca 00fb1ff60a
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-09 00:38:52 +02:00
Alex Jbanca 1ecd960cb2
feat(BC): Unify dapp sessions between WalletConnect and BrowserConnect
New component introduced (DAppsModel) to provide a common model for WC and BC. The WCDappsProvider and BCDappsProvider components are responsible to fill the model from different sources
2024-11-07 21:10:16 +02:00
Alex Jbanca 4636f80260
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-07 21:06:11 +02:00
Alex Jbanca 8a55d063a5
fix(StatusQ): Do not require ssl to check the internet connection 2024-11-07 21:06:11 +02:00
Alex Jbanca 705d595bdb
fix(WC): Adding tests for ChainsAvailabilityWatchdog and ChainsSupervisorPlugin
+ move other tests from the wrong folder
2024-11-07 21:06:11 +02:00
Alex Jbanca adf760e81c
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-07 21:06:11 +02:00
Alex Jbanca 94672b0e36
fix(WC): Disable primary action buttons when the service is not available
+ Disable the `Connect` button after the first request
2024-11-07 21:06:10 +02:00
Alex Jbanca 78c131f19f
feat(WalletConnect): Expose `emitSessionEvent` function from the WC js SDK
This commit exposes the `emitSessionEvent` function to qml
2024-11-07 21:06:10 +02:00
Alex Jbanca c7ddf16515
fix(connectionStatus): Remove redundant `changed` notifier from nim
There is no need to emit `changed` event for the QObject exposed from nim if only the underlying data changes.
2024-11-07 21:06:10 +02:00
Alex Jbanca 9d64cc1a57
feat(WC): Implementing SIWE flows
to squash.- implementing siwe flows
2024-11-07 21:06:08 +02:00
Alex Jbanca 9d6840ef4a
fix(WC): Update storybook mocked store to respond to sign requests 2024-11-07 21:06:07 +02:00
Alex Jbanca a398d348a4
fix(WC): Fix property names collisions
to squash - property names collisions
2024-11-07 21:06:04 +02:00
Alex Jbanca 80b5d7e9a8
feat(SIWE): Add siwe support to the webSdk integration
This PR implements the functions needed for siwe in the webSdk integration, updates the WC version and fixes an issue where the webpack does not automatically inject `Buffer` plugin needed by the SIWE impl in WC.
2024-11-07 16:01:51 +02:00
Anastasiya Semenkevich 9eaf4cc4ea chore(@e2e): improve permission test 2024-11-06 14:58:31 +03:00
Anastasiya Semenkevich 75bf886124 chore(@qml): add object name for navigation bar 2024-11-06 14:58:31 +03:00
Anastasiya Semenkevich 6c10c7c928 chore(@qml): use title as identifier in action button object name 2024-11-06 14:58:31 +03:00
Anastasiya Semenkevich e6a7af8708 chore(@e2e): replace clicking listItem with checking checkbox 2024-11-05 18:13:29 +03:00
Anastasiya Semenkevich 1b2f4f3c94 chore(@qml): add object names for memberListItem and checkBox 2024-11-05 18:13:29 +03:00
Jonathan Rainville d6d546739d fix skipping hidden chats 2024-11-05 11:33:35 +01:00
Lukáš Tinkl 3dd94f4b72 fix[Chat] Jump to popup missing channel emojis
- add `emoji` to the channel list model
- WIP fix hiding unavailable channels due to permissions

Fixes #16623
2024-11-05 11:33:35 +01:00
Anastasiya Semenkevich 5aefbb8446 chore(@e2e): allow account list to load before selecting 2024-11-04 19:27:34 +03:00
Anastasiya Semenkevich 542cd01568 chore(@e2e): fix tests to reflect new settings list 2024-11-04 13:53:28 +01:00
Michał Cieślak 5238074ed3 Settings list simplified
- UI simplified, made independent from the backend
- dedicated model created, filtering on the level of model instead of
  per delegate
- using ListView instead of mutliple Repeaters
- UI models removed from ProfileSectionStore

Closes: #16675
2024-11-04 13:53:28 +01:00
Michał Cieślak b62aad6b34 Windows installer: remove bin dir as a first step of installation
It fixes problem with unwanted qmldir in 2.31 which is in `bin/StatusQ`
when overriding 2.30.1 or older installation.

Closes: #16693
2024-11-04 13:03:05 +01:00
Sale Djenic 6ffbf38b0a fix: bridging tx improvements 2024-11-04 12:27:34 +01:00
Lukáš Tinkl dd2c65e0fb fix(AddAccountPopup): account list for address selection is empty
- use a similar approach as in the DerivationPath popup; ListView
instead of a Repeater
- some smaller fixes & speedups in the SFPM
- reenable the test

Fixes #16683
2024-11-04 12:24:33 +01:00
Lukáš Tinkl 84017104f4 fix(StatusPageIndicator): fix rendering of last page button text
- do not hardcode the button width as that might get elided for large
values, and display erroneously "..." instead of the value
2024-11-04 12:24:33 +01:00
Sale Djenic e3128587d8 fix: fill missing fees in tx object received from dApp
Fixes #16528
2024-11-04 11:32:19 +01:00
Lukáš Tinkl 623333ab8c fix: improve image type detection
- use the same approach as status-go to detect the image type, relying
on "magic" type matching instead of looking at the file extension (now
using C++ and QMime*)
- add a little error popup when the user tries to upload an unsupported
image type while creating/editing a community
- expose all the image related properties from the C++ backend instead
of constructing and duplicating them in QML
- cleanup some unused/dead code

Fixes #16668
2024-11-04 10:29:01 +01:00
Michał Cieślak e3238b3fd2 Monitoring Tool: possibility of nested objects inspection 2024-11-02 22:49:57 +01:00
Jonathan Rainville 27ececad63
perf(contacts): make initial contacts fetching async (#16560)
* perf(contacts): make initial contacts fetching async 

Fixes #16509

* fix: don't fetch contact if we don't have it in cache

Fixes #16509

* feat: add a visible loading indicator when the chats are not ready yet
2024-11-01 10:32:20 -04:00
Jonathan Rainville 36f2bb79a9
fix(members): fix member count not updating correctly on join (#16680)
* fix(members): fix member count not updating correctly on join

Fixes #16672

The issue was that the requests to join were not handled in time for when the community update came in, so when we udpated the section, we got both the normal member and the pending member still and they clashed and the pending one came on top, meaning that the joined member was not counted.
On a restart it would fix itself.
To fix it, I reordered the parsing of communities and requests, so that the request is updated first, ie deleted because it is now accepted.
I also fixed the function that handles request to that the state gets updated at all times. Before, it would only get updated if it was not accepted, pending or waiting for address.
Finally, there was a weird scenario where as a TM, I saw myself as pending even if I was joined, so I fixed it by removing duplicates.

* chore(@e2e): remove xfail mark from pin messages test

---------

Co-authored-by: Anastasiya Semenkevich <anastasija.ig@gmail.com>
2024-11-01 09:45:09 -04:00
Anastasiya Semenkevich 893fe604e8 chore(@e2e): mark test as xfail because of issue
https://github.com/status-im/status-desktop/issues/16683
2024-11-01 14:50:17 +03: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 5aa5390b6c
fix(curated): only load curated communities once (#16657) 2024-10-31 11:07:05 -04:00
Anastasiya Semenkevich eae6beab9c chore(@e2e): mark pin messages test with xfail
https://github.com/status-im/status-desktop/issues/16672
2024-10-31 13:18:49 +03:00
Michał Cieślak c009321ba2 chore: unused, outdated code removed from ContactsView
Closes: #16650
2024-10-31 11:11:30 +01:00
Michał Cieślak ba80ba97f7 compressedPubKey exposed via backend models, usages of Utils.getCompressedPk removed, SB pages simplified 2024-10-31 11:11:30 +01:00
Michał Cieślak 2853284751 Makefile: link nim tests to status-go and bump nim-tests docker image 2024-10-31 11:11:30 +01:00
Michał Cieślak 28f6bee90e Utils.getCompressedPk removed from multiple components 2024-10-31 11:11:30 +01:00
Michał Cieślak 0f98244e1f UserListPanel simplified, dependency on utilsStore removed 2024-10-31 11:11:30 +01:00
Michał Cieślak 0db6fe2701 Invite flow: compressedKey added to the model, api simplified 2024-10-31 11:11:30 +01:00
Michał Cieślak 143cf63dc0 Community invite flow: dependency on stores reduced 2024-10-31 11:11:30 +01:00
Michał Cieślak ff5e1654ec Unused hasAddedContacts property removed from multiple components 2024-10-31 11:11:30 +01:00
Michał Cieślak adc8f5bc3a ContactPanel api simplified 2024-10-31 11:11:30 +01:00
Michał Cieślak 9b5b5a4a60 ContactPanel delegate made backend-independent 2024-10-31 11:11:30 +01:00
Jonathan Rainville 189d016694
fix(members): fix list showing all members when missing encryption keys (#16654)
Fixes #16614

The problem was that I was missing encryption keys for some channels, but since I'm an admin, I still have access, so I could see the member list and it was showing me all members because of a missing condition in the code
2024-10-30 15:02:58 -04:00
Jonathan Rainville 9e70e69faf
fix(mentions): fix wrong user list given to mentions model (#16656)
Fixes #16602

This was broken when we refactored the members to use a single model for public channels. Those public channels then didn't have any members in their model they used for suggestions.
This is fixed by putting the logic in the UsersStore and reusing that store whenever we need a list of the members.
2024-10-30 15:02:46 -04:00