Fixes#11817
Instead of getting revealed accounts from the community description (it's no longer available), uses the new `getRevealedAccountsForAllMembers` API. Uses it async so that we do not slow the start process. The model is updated correctly when we finish loading them.
* rename `fetchMessageByMessageId` to `getMessageByMessageId`
* move reply clicking logic to `StatusMessageReply`
* make message found animation faster
* `asyncGetMessageById`
This commit includes the following changes:
1. Request from backend the messages count in a specific interval as opposed to all messages timestamps in that interval.
2. Update the chart end date before refreshing the data
3. Fix metrics type parsing in community service
4. Fix a bug where the new incoming data was not processed by ChartJs without a hover event on the chart. The fix here is to manually request paint() on model changes.d
Issues found and not handled here:
1. On large communities the backend request can take 3 minutes to complete
2. CPU usage can easily go to 100% when switching chart tabs on large communities. All the requests are processed by the backend.
Fixes#10770
There were two issues, the first one was that categories were included in the search model because the categories are now part of the chat_model.
Also, since it used the chat_model, some chats were not part of the search model at start, because they weren't loaded yet.
I fixed by using the chats from the service directly instead.
* feat(Community): Community messaging statistics chart
Close 11152
- Use se `collectCommunityMessageMetrics` for messaging statistics chart
in community overview
* feat(Community): Transfer community metrics with dto objects
* feat: impl simple string-based model for community metrics
* fix(Community): Review fixes and fix for changing community when chat is open
* Update src/app/modules/main/chat_section/controller.nim
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
---------
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
Bump Status GO to support session based activity requests
Transaction module was replaced by activity module,
this change removes the old code.
Details:
- Remove transaction.Item and use the DTO directly
- Replace the still using missing functionality
- Remove old way of fetching transactions in response to the history event
- Use activity filter to provide history for "recents" in Send.
Closes#11339
Also: refactor(communities), moved request to join funcs to communities module
This is needed because we can now request to join from the Import popup
Closes#11242
1. Fix an issue where importing a community using private key triggers the import finished event without updating the community data if the community is already imported with public key
2. Show toast messages on importCommunity and privateKeyRemoved events
3. Group community import toast messages handlers and move them from ContactsColumnView to AppMain. IMO these toast messages handlers should not be dependent on ContactsColumnView.
- Settings/About now displays the `status-go` version, read from its
`VERSION` file
- use the actual app icon, to differentiate between prod/dev version
- make the version numbers clickable, taking the user to either the
release notes (prod) or the GH commit browser (dev)
- add "Is production" switch to the About page in storybook
Closes#11424
This partially addresses #11186 as it implements the delete
functionality for community tokens.
If a deployment failed, users have the ability to delete the added
community token from the list.
The retry functionality will be implemented in a follow up commit.
Needs: https://github.com/status-im/status-go/pull/3794
We've been using this signal whenever a user has sent a transaction that
attemps to deploy a smart contract onchain.
However, at this point it's not yet known if the transaction will
actually go through. So to reflect what's actually happening, this
commits renames a few things:
- `SIGNAL_COMMUNITY_TOKEN_DEPLOYED` becomes
`SIGNAL_COMMUNITY_TOKEN_DEPLOYMENT_STARTED`
- `CommunityTokenDeployedArgs` becomes `CommunityTokenDeploymentArgs`
- `onCommunityTokenDeployed` becomes `onCommunityTokenDeploymentStarted`
This should remove any confusion around whether or not deployment is
indeed finished.
As discussed in https://github.com/status-im/status-go/pull/3798, there
was a need to separate the logic in `AddCommunityToken()` into two API.
This commit adjust the client to these changes such that:
1. After community token deployment tx was sent, we create
a `CommunityToken` and add it to the database for tracking purposes
2. Once the tx is mined or dropped, we add the community token to the
community description and publish it, or we update the deployment
state in the database
Needs: https://github.com/status-im/status-go/pull/3798
This change corrects legacy naming that was causing confusion.
Community invites are no longer sent to users. Instead, the community is
just shared. If a user is interested in joining this shared commmunity,
they must submit a request to join.
Adding the export control node popup. The popup is behind an authentication wall.
1. Create ExportControlNodePopup qml
2. Add the popup in storybook
3. Create authentication flow with qml callback to open the popup after authentication
4. Add the popup open action in Global.qml
Fixes#11153
Adds `editSharedAddressesWithAuthentication` in the chat_section view to be called from QML.
Also adds the `communityEditSharedAddressesSucceeded` and `communityEditSharedAddressesFailed` signals in the communities module to be used by QML to know if it worked.
- labels changed in Figma, updated in the app
- `Show encrypted QR of keypairs on device` is displayed only if needed now,
for this I had to add account/keypair `operability` feature, so far it handles only
displaying a context menu option, later in a separate issue a proper functionality
will be added
- wallet related toast notifications moved to the proper place (`AppMain.qml`, where
actually all notifications should be handled), not in the place where they occurs, we
need to review other notifications as well and move them there
Fixes#11514
The problem was that we were not handling the error from request to join correctly.
Then I added an event that sends a signal to the QML to show a toast about an error. I don't show the actual error to the user because usually it's not super helpful. It will be in the logs.
The status-go change makes it so that we don't save the request to join if the permission check failed.
Fixes#11273
Enables passing a private key as well as a public key to `RequestCommunityInfoFromMailserver`.
Also fixes a small issue in the error handling in the service
Adjst burning and minting flows to handle assets.
Supplies are passed from qml to nim as strings - "2" for ERC721, "1.5" for ERC20
String amounts are converted to Uint256 type. Additionally ERC20 amounts are converted to basic units (wei-like, decimals=18).
Uint256 values are passed to backend functions and then coverted to strings which can be converted to bigInt.BigInt types.
Supply and RemainingSupply are exposed to qml as floats.
Issue #11129
Fixes#11272
The problem was that we didn't handle the cancelation (checking with password was empty).
Now we do and we send the signal to cancel when it's the case.
Bump status-go to include required changes
Refactor the API usage to use the new async APIs.
Support multiple events in the same block
Report loading state for all the APIs
Also
- fix the loadingData state in the controller.nim
- reset the model to empty when the filter is invalidated due to
address and chain IDs change
Closes#11170
Fixes#11125
Updates the communities asset and collectibles lists when a new token is deployed.
Also refactors the section module to remove all that code and use the communities token list instead.
Adds community ID to the token list model so that we can show only the global tokens and the tokens from the community are shown in the community
This commit makes use of the newly introduced APIs added in
https://github.com/status-im/status-go/pull/3657
The idea is that clients can retrieve the last known channel permission
state from the database make use of the in the UI, before waiting for an
async onchain check to finish.
Closes#11156
Refactor code to use the token identity instead of token code
Removed the debugging activity view as now we have the API integrated
in the history view
Fixed the activity type in the activity entry
Closes: #11025
Fixes#10410
Adds the permission model to the curated communities model.
Also fixes the assetsModel and collectiblesModel used by the community portal, because it was using the basic Chat Store created in AppMain, but that store doesn't have the assets model.
Fixes#11041
Fixes the bug where going to a muted channel with a mention doesn't mark it as read. This was because the QML doesn't call mark as read when a channel doesn't have unviewed messages. That was because our Nim code put 0 as unviewedMessageCount when a channel is muted.
I changed it so that channels always have the value from status-go. No more conditions on the Nim side. Now the condition is on the QML side. So we hide the badge in QML instead. That also means that showing the number of unviewed message, even in a muted channel works.
I also fixed a bug where we counted muted messages on app restart for the normal badge. Usually it didn't cause issues, because it's rare that you had messages in a muted channel and nothing else. You'd also have unread messages in an unmuted channel. so you'd go there, read it, and it would then update the parent badge.
While testing this issue, I discovered that we in fact count muted channels for the parent badge.
So i fixed it in this one too.
So while chats don't have any Nim code for muted chats, sections do, because status-go doesn't really give us that information.
Bumps status-go to include the new API.
Add a new RecipientsModel to the activity controller.
Extends the activity Controller with API to access and manage data in
the RecipientsModel.
Resolving addresses to names remains to be implemented.
Updates #10025
Handle 'new transfers' event for activity view
to load transactions. It is a temporary solution until integration of
sequential transfer fetching is properly done with activity filter
Bump status-go with the refactoring of hasMore and add offset
Add support for continuously loading activity in the wallet API.
Extend the debugging demo with continuously loading
Closes#10994
Bump status-go to include the async API changes
Handle the wallet-activity-filtering-done event
Propagate the has more flag
Extend the debugging UX
Update #10994