Commit Graph

2680 Commits

Author SHA1 Message Date
Jonathan Rainville 91513acea2 wip simplified keycard api 2024-12-16 14:38:09 -05:00
Jonathan Rainville d4e2d4dc50
fix(admin): fix nicknames not showing in the admin tab immediately (#16969)
Fixes #16957

We didn't listen to the event in the main module.
2024-12-13 14:31:54 -05:00
Sale Djenic 37251afe60 fix(wallet): bring back chat settings panel that was missing 2024-12-13 16:49:05 +01:00
Sale Djenic 4acebbe799 fix(wallet): adding ens name to the model and improving ephemeral notification with saved address if exists 2024-12-13 16:49:05 +01:00
Michał Cieślak ad6e1376a7 Wallet: add missing notification on keypairImportModule change
Closes: #16773
2024-12-12 10:59:47 +01:00
Sale Djenic 1bd54401a2 fix(wallet): cannot recover Status profile if there is no metadata on a keycard
fixes: #16907
2024-12-08 18:52:54 +01:00
Sale Djenic 017bae3a51 fix(wallet): cannot sing tx sent from imported key pair if the profile is migrated to keycard
fixes: #16901
2024-12-06 15:34:39 +01:00
Sale Djenic 9fcaaaa94c fix(swap): after approving spending cap with a keycard the swap transaction fails
fixes: #16867
2024-12-06 15:34:39 +01:00
Alex Jbanca 50c065f606 fix(CommunityTokens): Fixing crash on token update
closes: #16875 #16860 #16859
(cherry picked from commit 5fcb425b47)
2024-12-05 17:58:14 +03:00
Lukáš Tinkl fe759f3599
chore: identify version numbers using a git tag (#16652)
* chore: identify version numbers using a git tag

- remove VERSION file
- expose the `GIT_COMMIT`so that we can properly construct the web links
when the user clicks the version number in Settings/About
- some smaller cleanups and warning fixes

Fixes #12349

* fix_: ci artifact version and use version scripts

---------

Co-authored-by: Igor Sirotin <sirotin@status.im>
2024-12-04 22:42:48 +00:00
Khushboo Mehta 481350385e feat(@desktop/wallet): Adding feature flag for Simple Send until it is ready for release
fixes #16710
2024-12-04 21:34:12 +01:00
Cuteivist 5bf4ba22c2
feat: Payment Request modal (#16744) 2024-12-04 11:19:27 -05:00
Jonathan Rainville 387eab4fcf
fix(edit): fix message edits loses the album of images (#16827)
Fixes #16741

The problem was that we replaced the ContentType from Image to Text, so on restart, it doesn't understand it had images anymore.

Fixed in status-go by reusing the ContentType of the original message.

This makes it so that we don't need to pass the ContentType from Nim anymore, so I removed that param from the code.
2024-12-04 11:11:56 -05:00
Jonathan Rainville f400a9402d
chore(metrics): add metric when we finally get to the app (#16856)
Fixes #16803 and #16804

When we finally do the call to go to the main app, we check if we were doing a login or an onboarding and then send a metric (if enabled)
2024-12-04 10:00:47 -05:00
Dario Gabriel Lipicar 293ffd647e fix(@desktop/wallet): use unique activity entry key 2024-12-04 09:29:42 -03:00
Dario Gabriel Lipicar 7c0eb01294 chore: remove unused activity details code 2024-12-04 09:29:42 -03:00
Cuteivist ba86132ec0
feat: payment request nim input area model (#16822)
* feat: payment request nim input area model

* feat: Update model count
2024-12-03 12:40:25 +01:00
Alex Jbanca 845fd4a445 fix(BC): Fixing the chains parsing on accepted connections
+ Fixing crash due to exception raised in the Qt slot execution
2024-12-02 16:02:01 +02:00
Dario Gabriel Lipicar 0a358f66bf fix(@desktop/wallet): properly handle tx send error 2024-11-29 09:49:48 -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
Alex Jbanca 271fc15bd4 chore(BC): Enable BrowserConnect feature flag 2024-11-27 16:43:35 +02:00
Dario Gabriel Lipicar 4a35c7d5b1 chore: fixes 2024-11-25 18:48:45 -03:00
Dario Gabriel Lipicar bde7507a46 feat(activity): adapt to activityV2 API 2024-11-25 18:48:45 -03:00
Sale Djenic fd63893515 feat(wallet): in app tx related notifications improvements
Closes #16338
2024-11-25 14:47:03 +01:00
Sale Djenic bb797d56bf chore(general): preparing signals to be able to handle tx status change 2024-11-25 14:47:03 +01:00
Alex Jbanca 1da7081405 fix(BC): Fixing the send transaction
The send transaction was successful, but the transaction hash is not recognized by the dApp because it was being hashed again.
2024-11-22 13:52:26 +02:00
Alex Jbanca b555d19a1a 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-22 12:47:01 +02:00
Alex Jbanca a39728ba94 feat(WalletFirst): Rearrange left nav bar and open wallet section by default
1. Wallet section is the default section
2. Wallet section is the first section in the left nav bar
2024-11-22 12:24:03 +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 d9a78da1d3 fix(BC): Implementing the personal_sign 2024-11-22 11:32:10 +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 bb483b3365 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-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 0d67d5138b 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-20 18:10:29 +02:00
Michał Cieślak fd768c0fe8 IsCurrentUser role exposed from user/member models
Additionally, fixed but causing that isCurrentUser was not initialized
via initMemberItem
2024-11-13 09:49:07 +01: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
Sale Djenic e3128587d8 fix: fill missing fees in tx object received from dApp
Fixes #16528
2024-11-04 11:32:19 +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
Jonathan Rainville 5aa5390b6c
fix(curated): only load curated communities once (#16657) 2024-10-31 11:07:05 -04: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
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
Sale Djenic 03a0a18313 fix: links do not work in the terms of name registration popup
Fixes #16658
2024-10-30 14:10:40 +01: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
Jonathan Rainville f7823cd0b7
refactor(members): unify members models into one (#16508)
Fixes #16433
2024-10-25 21:25:50 -04:00
Jonathan Rainville d317df032d
Improve performance by only updating the properties that changed in the model instead of reseting (#16436)
* perf(notifications): update item props instead of resetting the item

* perf(sections): update sections by properties instead of reseting
2024-10-23 09:50:05 -04:00
Jakub Sokołowski 5a97b034e2
fix(nim-tests): split tests into individual targets (#16546)
* fix(nim-tests): split tests into individual targets

Otherwise combining separate `nim` calls with `;` results in only the
last one informing `make` call what exit code the hole target had.

Resolves:
https://github.com/status-im/status-desktop/issues/16545

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* test: fix message_model test

* fix; Update default sorting for assets and collectibles (#16552)

* chore(status-go): bump status-go to latest (#16559)

* test: fix collectibles_model test

---------

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
Co-authored-by: Cuteivist <emil.sawicki9@gmail.com>
Co-authored-by: Dario Gabriel Lipicar <dario@status.im>
2024-10-21 14:49:17 -04: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