Commit Graph

318 Commits

Author SHA1 Message Date
Igor Sirotin a00bf6977b
fix_: publish community periodically (#5709) (#5715)
* fix_: publish community at app start

* fix_: allow publishing community with same clock

* chore_: increase community publish interval to 24 hours
2024-08-15 16:49:08 +01:00
Igor Sirotin 01288227d3
fix_: log utc timestamp (#5672)
* fix_: log zone-agnostic time

* chore_: use time.Truncate
2024-08-07 18:54:42 +01:00
Mykhailo Prakhov 58a9557c58
fix: reject handling requests to join without revealed accounts (#5549)
* fix(requestToJoin)_: request to join must have revealed addresses with signature

* fix(tests)_: fix tests

* chore(tests)_: increase tests timeout
2024-08-07 17:57:02 +02:00
richΛrd 5212f337d7
feat_: rate limit message publishing (#5523) 2024-08-01 14:36:25 -04:00
Andrea Maria Piana 3cc4767638
Check for mobile data connection if setting is on (#5511)
* feat_: Check for mobile data connection if setting is on

* fix_: check code control flag inside  asyncRequestAllHistoricMessages

---------

Co-authored-by: Igor Sirotin <sirotin@status.im>
2024-07-26 22:34:57 +01:00
Mykhailo Prakhov 30fee0cfd3 fix(communities)_: validate if RawMessage from DB is valid before sending it 2024-07-23 19:54:39 +02:00
Mykhailo Prakhov 54555b47de fix(logs)_: remove community private key logging in publishCommunityPrivilegedMemberSyncMessage 2024-07-19 16:50:40 +02:00
Vitaly Vlasov 3ef445dbcf fix_: share all future addresses storage 2024-07-18 12:08:40 +03:00
Patryk Osmaczko 9403475572 chore(communities)_: request missing channels' encryption keys in a loop
closes: status-im/status-desktop#14683
2024-07-16 16:44:50 +02:00
Prem Chaitanya Prathi 9a703162c4
refactor: only use shards (#5474)
* refactor_: use shards by default

* fix_: metadata lightclient check

* chore_: update go-waku
2024-07-15 20:55:12 +05:30
Andrey Bocharnikov 02b822802c chore(community)_: serialise community jsons with image URLs
Fix status-im/status-desktop#15340
2024-07-11 18:55:24 +07:00
Mykhailo Prakhov 7ec5b18642 fix(CommunitySharedAddresses)_:
- TokenMaster request shared addresses on restoring from a backup
- Fixes sharing members revealed adresses
- Filter out outdated ApplicationMetadataMessage_COMMUNITY_PRIVILEGED_USER_SYNC_MESSAGE messages
2024-07-09 18:19:40 +02:00
Mykhailo Prakhov fc401bc8a7
fix(communities)_: kick AC notification after control node device change (#5472)
fix(communities)_: kick AC notification after control node device change
2024-07-05 10:38:12 +02:00
Prem Chaitanya Prathi 437f830b51
feat_: aggregate filter subscriptions to do bulk subs with peer (#5440)
* feat_: aggregate filter subscriptions to do bulk subs with peer

* chore_: take possible deadlock fix in go-waku

* fix_: don't resubscribe filters unless there is a change in shard for community (#5467)
2024-07-04 10:34:53 +05:30
Jonathan Rainville d942ad1a1f
fix(manager)_: make sure createCommunityPermission schedules the reeval (#5404)
Fixes https://github.com/status-im/status-desktop/issues/15175

The problem was that we used StartMembersReevaluaitonLoop in createCommunityPermission, in case the loop was never started. Indeed it worked if it was the first ever permission, because the loop would then start and members would be re-evaluated.

However, if the loop was already started, in the case where there were previous permissions, the call would just early exit, because it was already started.

The solution here is to use `ScheduleMembersReevaluaiton` like other permission functions use. To make sure a first permission still works, we call startLoop in schedule if the task doesn't exist.
2024-06-25 14:46:29 -04:00
frank e0673ad1ff
feat(community)_: Move images from community data to MediaServer (#5336)
* feat(community)_: Move images from community data to MediaServer

* test_: fix lint issue

* test_: add more test statements

* feat_: deprecate old API

* test_: addressed review feedback from Icaro

* fix_: addressed review feedback from Jonathan

* chore_:wrap image url in an object
2024-06-24 17:37:44 +08:00
Patryk Osmaczko 0995802428 fix(communities)_: ensure community sync doesn't override joined state
potentially fixes: status-im/status-desktop#15009
2024-06-20 15:37:20 +02:00
Jonathan Rainville 4a63201a79
fix_: send request for shared addresses when restoring a community (#5314)
* fix_: send request for shared addresses when restoring a community

Needed for https://github.com/status-im/status-desktop/issues/14289

When someone restores a community that they joined, it now sends a message to the control node to get their shared addresses back.

It's lighter that backing up the addresses all the time on waku and should only be needed once.

* fix_: filter communities before to avoid passing `alreadyHandled` parameter to `requestCommunityKeysAndSharedAddresses`

---------

Co-authored-by: Patryk Osmaczko <osmaczkopatryk@gmail.com>
2024-06-14 13:32:55 -04:00
Patryk Osmaczko 27934a4e1f chore(communities)_: reject outdated community descriptions
Prevent the inclusion of CommunityDescription with an outdated clock in
MessengerResponse to avoid false-positives in tests and reduce redundant
data exchange between status-go and clients.
2024-06-11 08:49:07 +02:00
Samuel Hawksby-Robinson 3d68013332 chore(no-torrent)_: Renamed Torrent to Archive
I've renamed TorrentManager to ArchiveManager, ArchiveManager to ArchiveFileManager, TorrentContract to ArchiveService, ArchiveContract to ArchiveFileService. I've also renamed all init functions and struct fields to the appropriate archive-centric naming.
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson a9c7db6f25 chore(no-torrent)_: Replaced entirely LogStdout with default logger 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 6b5b738662 chore(no-torrent)_: Fixed torrent tests 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson bf5ab8c46b chore(no-torrent)_: moved archive related funcs into ArchiveManager
To be honest once I started this work I quickly realised how pointless it is as archiving functionality and torrent seeding functionality are really entwined. So I'm keeping the code I've done but it is a bit pointless without spending a lot of time untangling torrenting and archiving. I'm just going to make an interface for all the functions that are used publically from TorrentManager. I think that this will be the fast way to move on from this issue. I don't like this work any more, there is a lot of work to do elsewhere and torrent is a rabbit hole filled with canned worms.
2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 4761b1245e chore(no-torrent)_: removed TorrentManager from checkIfIMemberOfCommunity 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 66d57a3fd0 chore(no-torrent)_: Unexported all exported funcs not used externally 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 93256fc252 chore(no-torrent)_: Made torrentClientReady() belong to TorrentManager 2024-06-07 13:44:12 +01:00
Samuel Hawksby-Robinson 9b458c63e0 chore(no-torrent)_: I've fully split Manager from TorrentManager
I've removed any mention or dependency of TorrentManager from Manager. There is still more work to do, but Messenger now communicates directly with a TorrentManager rather than asking the communities Manager to handle it. I've ensured that LogStdout() is only called from TorrentManager and removed entirely from Manager, this functionality seems to be some kind of debug tool specifically for torrent related functionality. Next I need to focus on functions within Messenger that call a TorrentManager and see how to isolate these from the main flows, following that I also need fix the tests that are broken. I will also need to refactor torrentClientReady() so that it is a function of TorrentManager, this may allow for pushing more functions into TorrentManager which will lead to better torrent encapsulation.
2024-06-07 13:44:12 +01:00
Michal Iskierko b38a9f5878 fix_: Publish token actions to privileged members
Send information to owners and token masters about operations: burn, airdrop, remote destruct.
Add CommunityTokenActionSignal to signalize client side.

Fix #13371
2024-06-03 12:19:19 +02:00
Mykhailo Prakhov 2053bd323b
fix(community)_: handle outdated request to join and request to join response when we have been joined (#5271) 2024-05-31 19:16:45 +02:00
Jonathan Rainville 64d2860571
chore_: remove Light permission checks that are no longer needed (#5267) 2024-05-31 10:22:08 -04:00
Mykhailo Prakhov 3cae2e06f3
fix(ActivityCenterNotification)_: update pending state of request to join ActivityCenterNotification when member was joined (#5242) 2024-05-28 17:02:30 +02:00
Igor Sirotin 19875ed9b5
fix: archive decryption fail (#5076)
* fix_: delay archive import if decryption failed

* chore_: minor cleanup

* chore_: test archive import of encrypted channel

* test(TestImportDecryptedArchiveMessages)_: first iteration

* feat_: GetHashRatchetMessagesCountForGroup

* chore_: log community description and shard info message ids

* test(TestImportDecryptedArchiveMessages)_: cleanup

* fix_: rebase issues

* chore_: remove temporal test

* test(TestImportDecryptedArchiveMessages)_: cleanup

* chore_: lint fix

* fix(TestImportDecryptedArchiveMessages)_: ForceMembersReevaluation
2024-05-27 13:49:09 +01:00
Michal Iskierko 6f1b82966a feat_: light, no-network versions of permission checking functions
Light functions are based on the fact that permissions are met if the user is on community/channel member list.
If the user is not on the list, permissions will not be met and the client is responsible to use regular permissions-check functions.
For all permissions-check functions, corresponding light versions are added: CheckAllChannelsPermissionsLight,
CheckChannelPermissionsLight, CheckPermissionToJoinLight.

Issue #14220
2024-05-20 14:17:40 +02:00
Michal Iskierko 574450289c feat_: Move community tokens transaction listening to status-go
Use EventWatcher to catch wallet events.
Handling all community tokens wallet events in communitytokens service (database and messenger operations).
Adding new signal to nim: CommunityTokenTransactionSignal, which is emitted everytime when the event is received.

Issue #4351
2024-05-16 16:18:15 +02:00
Jonathan Rainville 5ca1cb0a0f
fix(messenger)_: make sure chats have an unread count of 0 for channels you can't view (#5062)
Fixes https://github.com/status-im/status-desktop/issues/14421

The problem is that you can receive messages to  a channel, then later, before marking them as read, a permission is added to them, so you no longer have access.
Then, you can't even mark it as read if it's hidden.
Here, I fix it by setting the unread count on Init at 0 if the user doesn't have view access to it. And I make sure we update the counts when we are removed from a channel
2024-05-15 15:57:12 -04:00
Godfrain Jacques 627e23ffa5
fix_: mitigate permission stuck in pending state (#5070)
This PR mitigates permission stuck in pending state upon making device a
control node. It fixes [#14023](status-im/status-desktop#14023)
2024-05-10 08:56:40 -07:00
Mykhailo Prakhov cb4c19cece
feat(encryption)_: request control node to resend ecnryption keys during restoring account by a seed phrase (#5142) 2024-05-10 10:04:46 +02:00
Andrey Bocharnikov 8cd4560823 fix(communities)_: prepare messages content for GetCommunityMemberAllMessages
Fixes #14060
2024-05-09 20:27:05 +07:00
Igor Sirotin 3e4367a7cf
fix_: community members reevaluation fixes (#5117)
* fix_: prevent publishing older community description

* fix_: schedule member reevaluation instead of reevaluating in parallel

* fix_: lock community on members reevaluation

* fix(TestJoinCommunityAsAdminWithMemberAndAdminPermission)_: setup waitOnCommunitiesEvent in advance

* fix(TestEditSharedAddresses)_: remove redundant community description retrieval
2024-05-08 16:32:46 +01:00
Igor Sirotin 1c43b7a29b
chore_: better community json log (#5118) 2024-05-08 15:49:41 +01:00
frank 8c5a735438 feat_: retry sending specific messages 2024-05-02 05:40:49 +08:00
Ajay Sivan 0ef4fb8cc7
chore_: log revealed addresses on join/edit (#5073) 2024-04-24 18:54:25 -07:00
Mikhail Rogachev 6da423fc71
feat: Add an expiration and periodical publishing for community grants (#5024)
* feat_: add periodical publishing for community grants
feat_: Validate grant when receiving it
feat_: add expiration for grants
feat_: add test for grants expiration
fix_: move grants test to profile showcase, fix a few bugs
* feat_: use one group mesage to update grants
* chore_: review fixes
2024-04-17 16:53:51 +02:00
Godfrain Jacques e6fee1a84e
fix_: token-permitted channel input not locked (#5046)
Issue #14117
2024-04-10 10:51:58 -07:00
Ibrahem Khalil 18cc3a16d5
Return request to join acceptance notifications (#4909) 2024-04-09 21:32:03 +02:00
yqrashawn aa73a0512c
feat: add contact customization color (#4869) 2024-04-03 22:49:57 +08:00
Patryk Osmaczko 7f44d4d12a refactor: remove unused `COMMUNITY_EVENTS_MESSAGE_REJECTED` 2024-03-25 13:18:20 +01:00
Mikhail Rogachev c7e7445f5c
Fix: ignore nil contact 'IsDisplayNameDupeOfCommunityMember' (#4956) 2024-03-21 20:43:51 +01:00
Patryk Osmaczko 0aed93ff04 fix: encrypt community's Categories and ActiveMembersCount
fixes: #4943
fixes: #4944
2024-03-20 18:41:07 -04:00
Mykhailo Prakhov ad342c8887
feat: get and delete community member messages API (#4932) 2024-03-19 20:44:49 +01:00