* 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>
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.
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)
* 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>
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
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.
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.
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
+ 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
* 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
* 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>
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
* 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
* 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>