Fixes#16832
Implements all the needed basic Nim functions for the new onboarding.
They do no do anything just yet. They shall be integrated in another commit.
Fixes#16896
The problem was that we relied on the `SIGNAL_PINNED_MESSAGES_LOADED` event to apply the pinned status to messages, but that only happens at the start and a lot of messages are not loaded at start if they are not in the first 30 messages.
To fix this, I just added `pinnedBy` to the Message object in status-go. This way, we can easily tell straight from the MessageDto if a message is pinned and by whom.
- we have a dedicated asset category for them; makes no sense to try to
parse the path to the emoji file and treat it as an (SVG) image
- also fix the signal calls; over time more params were added and not
all the calls were adjusted
- fix selecting the "Chats" category, `model.colorHash.toJson()` is not
something we can do directly in QML :)
- fix group chat images
* fix(block): fix context menus not updating when blocking/unblocking
Fixes#16948
* fix(cr): fix context menus not containing the contact request info
Fixes#16952
Part of #16832
Adds the basic files needed for the new onboarding, aka onboarding V2.
It does not do anything yet, but it's ready to be implemented.
It is locked behind a feature flag.
To enable it, run the app with `export FLAG_ONBOARDING_V2_ENABLED=1`
- listen to the NIM's signal `SIGNAL_REMOVED_TRUST_STATUS`
- emit a signal for QML signal accordingly
- emit a toast/notification as a result
Fixes#16949
Fixes#16640
This makes it so that when you block a contact, it now also removes the chat and the messages as expected by the requirements and as Mobile does.
To do so, I use the same API as mobile instead of the forked desktop one. I removed the desktop one as it is no longer needed (see status-go PR)
I also fixed an issue when unblocking where it would send a double toast messages with one saying you "removed the contact", but it was already removed.
Fixes#16967
I cannot confirm for sure if the crash is fixed.
However, using the trace from the crash, I removed the function that caused the crash, since it's not useful, and since then, I couldn't reproduce the issue.
The problem is that the issue was not that easily reproducible.
* 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.