Jonathan Rainville
5f4aab3121
feat(community)_: send signals about member reevaluation in progress ( #5120 )
...
Needed for https://github.com/status-im/status-desktop/issues/14378
2024-05-08 15:55:30 -04:00
Jonathan Rainville
db0cc10a73
fix(permisisons)_: private permisisons shouldn't affect the check ( #5116 )
...
Fixes https://github.com/status-im/status-desktop/issues/14608
2024-05-08 14:45:58 -04: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
Jonathan Rainville
9c2c638aaf
fix(communities)_: fix curated comm fetch not starting for unknown comm ( #5110 ) ( #5111 )
2024-05-03 13:17:11 -04:00
Jonathan Rainville
852a5beb39
feat_: limit number of members in a community and number of pending requests ( #5107 )
...
* feat(community): limit nb of requests to join and members
Needed for https://github.com/status-im/status-desktop/issues/14532
* chore: simplify TestRequestAccessAgain
* chore: add a test for the member limit
2024-05-01 13:27:31 -04:00
Ajay Sivan
0ef4fb8cc7
chore_: log revealed addresses on join/edit ( #5073 )
2024-04-24 18:54:25 -07:00
Ajay Sivan
faf823f62f
fix_: filter private permissions & add Id keys in check_permissions_response ( #5059 )
2024-04-19 09:23:54 -07:00
Siddarth Kumar
d6c4682479
chore_: bump go to 1.20 ( #5027 )
...
This commit attempts to upgrade go version to 1.20.12
This commit also removes the following items from lint checks :
* `goconst`
* `structcheck`
* `deadcode`
* `golint`
* `varcheck`
Mobile PR for QA purposes -> https://github.com/status-im/status-mobile/pull/19564
2024-04-18 18:48:02 +02:00
Patryk Osmaczko
bd91f5ab49
fix_: keep community locks map unreleased when Manager stops
...
`ReevaluateMembers` is run as a separate goroutine and sometimes it is
executed after `Manager` has been stopped. It tries to use the lock and
in consequence, it panics. Ensuring the map is still there prevents that.
^Happened in test: `TestCreateTokenPermission`.
2024-04-17 17:31:38 +02:00
Patryk Osmaczko
9d309886f7
fix_: mitigate race conditions on community
...
mitigates: status-im/status-desktop#14432
2024-04-17 17:31:38 +02: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
Jonathan Rainville
6c82a6c2be
fix(manager): make both perms satisfied if viewAndPost is satisfied
...
Fixes https://github.com/status-im/status-desktop/issues/14209
2024-04-04 14:34:59 -04:00
yqrashawn
aa73a0512c
feat: add contact customization color ( #4869 )
2024-04-03 22:49:57 +08:00
Mykhailo Prakhov
3c76fdc626
fix: crash in dbRecordBundleToCommunity if event was signed not by a control node ( #5009 )
2024-04-03 14:51:28 +02:00
Igor Sirotin
3bd00cb416
chore: log incorrect amountInWeis ( #5005 )
2024-04-02 14:54:24 +01:00
Patryk Osmaczko
5b7910ae5a
fix: validate community events read from database
...
Despite the expectation that only validated events are stored in the
database, instances have been identified where invalid events are saved.
This can lead to unexpected behavior or crashes.
This commit adds validation for community events read from the database
to prevent such cases.
**NOTE**: this fix does not address the root cause, which involves
invalid events being saved to the database. The exact scenario leading
to this issue has yet to be identified.
mitigates: status-im/status-desktop#14106
2024-03-27 14:31:03 +01:00
Igor Sirotin
1a2880b365
Fix/community tags indices ( #4992 )
...
* fix: strict order of community tags
* make tags containers private
* fix RandomCommunityTags implementation
2024-03-26 20:02:12 +00:00
Patryk Osmaczko
7f44d4d12a
refactor: remove unused `COMMUNITY_EVENTS_MESSAGE_REJECTED`
2024-03-25 13:18:20 +01:00
Mykhailo Prakhov
b931a75bd8
fix: crash on control node side dutring handling edited shared address from the member who left the community ( #4967 )
2024-03-22 15:25:37 +01:00
Patryk Osmaczko
0aed93ff04
fix: encrypt community's Categories and ActiveMembersCount
...
fixes : #4943
fixes : #4944
2024-03-20 18:41:07 -04:00
Andrea Maria Piana
894eb5758e
Add canView to chat & fix admin role
2024-03-20 16:48:07 -04:00
Mykhailo Prakhov
a1033f466a
feat: add new CommunityMemberState - CommunityMemberBanWithAllMessagesDelete ( #4941 )
2024-03-19 14:40:23 +01:00
Patryk Osmaczko
17c5ab414b
fix: ensure `CommunityDescription` reprocessing on decryption failure
...
Previously, `CommunityDescription` instances failing partial decryption
were not reprocessed due to duplicate message check. This commit fixes
the issue by bypassing the check for such descriptions, allowing their
reprocessing upon receiving missing encryption key.
fixes : status-im/status-desktop#13647
2024-03-18 22:24:24 +01:00
Michal Iskierko
8bf03609fc
feat: Add HideIfPermissionsNotMet to CommunityChat struct
...
Issue #13291
2024-03-18 15:01:29 +01:00
Andrea Maria Piana
67dfff2324
Add index to hash ratchet & cache processed description
2024-03-13 11:35:11 +00:00
Jonathan Rainville
6f119b9c53
fix(community): fix member role not being updated
2024-03-12 11:04:45 -04:00
Jonathan Rainville
605e3a4ed0
fix(community): fix editing a community channel loses the members
2024-03-12 11:04:45 -04:00
Jonathan Rainville
e3810148d8
feat: add ViewersCanPostReactions to Chat object
...
Needed https://github.com/status-im/status-desktop/issues/13523
2024-03-12 11:04:45 -04:00
Patryk Osmaczko
b02e3b19e2
feat: add permissions reevaluation request
...
Token master can't manage members directly, so it must request
reevaluation from the control node.
fixes : status-im/status-desktop#13778
2024-03-12 14:15:01 +01:00
Patryk Osmaczko
1de61d1933
fix: channel members evaluation on request acceptance
...
If there is only `viewAndPost` permission set on a channel, members who
don't satisfy the criteria shouldn't be able to view the channel.
2024-03-12 14:15:01 +01:00
Igor Sirotin
bdb2b261a6
feature: view only channel reactions ( #4820 )
...
* CommunityMember channel role
* make generate
2024-03-01 17:15:38 +00:00
Mykhailo Prakhov
84713384bb
fix: TestAdminBanMemberWithDeletingAllMessages test fix ( #4855 )
2024-03-01 17:37:20 +01:00
Jonathan Rainville
390d706b3f
fix: fix permission criteria being empty ( #4841 )
...
Fixes https://github.com/status-im/status-desktop/issues/13775
2024-02-29 16:25:34 -05:00
Mykhailo Prakhov
77214dcb5d
feat: admins can delete all members messages during the ban ( #4834 )
2024-02-29 18:54:17 +01:00
Michal Iskierko
df930b1d73
feat: New field in TokenCriteria proto
...
AmountInWei will have a wei-like units.
Amount field becomes deprecated because it kept string with float value.
Comparison (in case of Decimals == 5):
Amount (deprecated) = "1.2"
AmountInWei = "120000"
Issue #11588
2024-02-27 16:25:26 +01:00
Mykhailo Prakhov
92bc64bb41
feat: kicked/banned member should not have spectated mode after the kick/ban ( #4806 )
2024-02-26 13:33:07 +01:00
frank
4581c4f5f7
fix: sometimes channels do not randomly appear in test community after its creation ( #4669 )
2024-02-23 10:16:51 +08:00
Michał Iskierko
ba7faea027
fix: Use correct chains when checking permissions: mainnet or testnet ( #4793 )
...
Fix #18896
2024-02-22 10:17:35 -05:00
Mykhailo Prakhov
3959948c4c
chore: fix ban/unban flow and delete all messages feature ( #4743 )
...
feat: delete all messages for banned member and ban/unban AC notifications
2024-02-22 11:25:13 +01:00
Mikhail Rogachev
eb5bad4868
Feat: Profile showcase validate collectible ownership ( #4737 )
...
* feat: profile showcase checks then presenting collectibles
* chore: more obvious CollectiblesManager configuration
2024-02-22 11:08:58 +03:00
Patryk Osmaczko
e2cab1a8ae
fix: ensure community events eventual consistency
...
- Extracted `community_events_factory.go`
- Introduced `eventsProcessor`
- Improved processing logic order
- Improved events filtering
- Introduced concept of `EventTypeID` to prevent redundant events handling
- Added sanity check before events appliance when reading community from
database
- Removed reject&re-apply scheme (no more ping-pong issue)
- Fixed and added more variants to eventual consistency test
fixes : status-im/status-desktop#13387
fixes : status-im/status-desktop#13388
2024-02-20 21:07:01 +01:00
Patryk Osmaczko
f7c40d4c40
chore: use lamport timestamp for events clock
...
- make clock logical per event type
- increase clock precision to millisecends
Rationale:
https://www.notion.so/Eventual-consistency-9d6a9c6c55c14ab1aee76f801301522b
iterates: status-im/status-desktop#13387
2024-02-20 21:07:01 +01:00
Mikhail Rogachev
526e3d74f1
Feat: proof of membership for profile showcase communities ( #4713 )
...
* chore: move profile showcase structures to the indentity package
* feat: implement proof of membership for unecrypted communities
* feat: implement proof of membership for encrypted communties with grants
2024-02-15 22:13:12 +03:00
Andrea Maria Piana
598e3217ba
Signal user if the networks are not supported
2024-02-13 12:09:46 +00:00
Igor Sirotin
5e905518aa
fix: missing fields in Communtiy CreateDeepCopy ( #4718 )
2024-02-12 23:26:32 +00:00
Andrea Maria Piana
daef5c56e2
Add HighestRole & ordered roles to permission response
...
This commit adds HighestRole & a list of permissions in order of
importance to the CheckPermissionToJoinResponse.
This simplify client code so that it doesn't need to be calculated on
the client.
2024-02-12 12:18:56 +00:00
Mikhail Rogachev
3ea2002904
Feat: Modify grants for profile showcase use ( #4694 )
...
* chore: regenerate proto binaries
* feat: remove unused grant code for community's canPost
2024-02-11 15:11:04 +03:00
Michal Iskierko
cc66f43713
fix: fix permissions checker
...
Improve CheckPermissions function.
Check separately member and admin+tokenmaster permissions..
Issue #12884
2024-02-09 19:00:43 +01:00
Icaro Motta
e7e6782241
Fix: linter error
2024-02-07 20:10:49 +00:00
Icaro Motta
31277f1e9e
Fix: cover case where criteria doesn't have token IDs
2024-02-07 20:10:49 +00:00
Icaro Motta
b727f1e14b
Extract entire permissioned balances logic to separate file
2024-02-07 20:10:49 +00:00
Icaro Motta
105703e2eb
Remove zombie code from experiments
2024-02-07 20:10:49 +00:00
Icaro Motta
4f8a66fc07
Create endpoint to get permissioned balances
2024-02-07 20:10:49 +00:00
Andrea Maria Piana
605fe40e32
Fix encryption metadata issues #4613
...
This commit fixes a few issues with communities encryption:
Key distribution was disconnected from the community description, this created a case where the key would arrive after the community description and that would result in the client thinking that it was kicked.
To overcome this, we added a message that signals the user that is kicked. Also, we distribute the key with the community description so that there's no more issues with timing.
This is a bit expensive for large communities, and it will require some further optimizations.
Key distribution is now also connected to the request to join response, so there are no timing issues.
Fixes an issue with key distribution (race condition) where the community would be modified before being compared, resulting in a comparison of two identical communities, which would result in no key being distributed. This commit only partially address the issue.
2024-02-07 10:25:41 +00:00
richΛrd
98c1ebec05
fix: handle community shard unassignment and update ( #4627 )
2024-01-30 13:56:59 -04:00
Igor Sirotin
1f0fc2935c
fix: clear waku envelopes cache when deleting a chat ( #4621 )
...
* chore: extract `ErrPermissionToJoinNotSatisfied`
* chore: disable resending messages in communities tests
* chore: move newTestMessenger extraOptions to testMessengerConfig
* chore: `WithTestStoreNode` messenger option
* feat: waku `ClearEnvelopesCache` method
* fix: call `ClearEnvelopesCache` when deleting chat
* chore: `TestBecomeMemberPermissions` checks messages after rejoin
2024-01-30 13:43:34 +00:00
Patryk Osmaczko
ac81c15805
fix: ignore outdated COMMUNITY_SHARD_KEY messages
...
This mitigates issue where community shard on client's side was not in
sync with owner's.
relates to: status-im/status-desktop#13217
2024-01-29 18:21:51 +01:00
Patryk Osmaczko
1a85a29b1b
chore: cover community sharding with tests
...
closes : #4262
2024-01-24 14:24:57 +01:00
Ibrahem Khalil
436d229856
Add last opened at key for community ( #4514 )
2024-01-21 12:55:14 +02:00
Siddarth Kumar
926f6a3c72
Revert "test: bump go-libp2p"
...
This reverts commit d0ca4447c6
.
2024-01-18 20:29:33 +00:00
Richard Ramos
d0ca4447c6
test: bump go-libp2p
2024-01-18 14:28:06 +00:00
Igor Sirotin
a5acffc001
fix: TestFetchRealCommunity with shards fleet ( #4553 )
...
* fix: TestFetchRealCommunity with shards fleet
* fix: DefaultShardPubsubTopic
* chore: print waku query request id
2024-01-16 13:38:41 +03:00
Mykhailo Prakhov
94bee02ef7
chore: fetch comunity token metadata during handling community description ( #4562 )
2024-01-16 09:08:56 +01:00
Patryk Osmaczko
2a5dc6dec0
chore: remove boilerplate check of `communities.GetByID` clients
...
motivated by:
https://github.com/status-im/status-go/pull/4514#discussion_r1445808116
2024-01-10 18:58:17 +01:00
Ibrahem Khalil
e1b52f9eae
Add joined at key to communities ( #4513 )
2024-01-09 20:36:47 +02:00
Patryk Osmaczko
16f11d49df
fix: flaky TestEncryptionDecryption
...
fixes : #4510
2024-01-08 21:18:51 +01:00
Igor Sirotin
405d468e0e
fix: force verifiedOwner in `handleSyncInstallationCommunity` ( #4405 ) ( #4538 )
2024-01-08 15:57:57 +00:00
Mykhailo Prakhov
5c704b2ec2
chore: check and manualy verify community if during the fetchCommunity, community was added to the verification loop ( #4533 )
2024-01-05 18:09:38 +01:00
Patryk Osmaczko
1d3c618fb4
feat: encrypt `CommunityDescription` fields
...
Extended `CommunityDescription` with a `privateData` map. This map
associates each hash ratchet `key_id` and `seq_no` with an encrypted
`CommunityDescription`. Each encrypted instance includes only data
requiring encryption.
closes : status-im/status-desktop#12851
closes : status-im/status-desktop#12852
closes : status-im/status-desktop#12853
2023-12-22 18:17:06 +01:00
Mykhailo Prakhov
134137f9c5
feat: implemented a mechanism to retrieve shard information for a given community ID ( #4499 )
...
* feat: a mechanism to retrieve shard information for a given community ID
2023-12-22 13:37:37 +01:00
Boris Melnik
6d77fb771a
fix(windows-build): Remove free space check for archives ( #4485 )
2023-12-20 21:21:02 +03:00
Mykhailo Prakhov
a5f6a6c2f6
fix: privileged member accepted/rejected request to join action is not approved by the control node after the member leaved and tries to join the community again ( #4487 )
2023-12-19 14:45:34 +01:00
Mykhailo Prakhov
45bd8c16da
fix: do not ignore banned list if EventsData is nil ( #4473 )
2023-12-19 12:00:29 +01:00
Igor Sirotin
e3ef8c649a
chore: store node requests manager ( #4446 )
2023-12-15 19:50:12 +00:00
Ibrahem Khalil
90c31afe7c
New way of sharing communities ( #4341 )
2023-12-15 13:55:32 +02:00
Boris Melnik
af9d3bc7b3
fix(history-archive): Skip dowloading data from torrent if free space is not enought ( #4449 )
2023-12-14 12:52:10 +03:00
Ibrahem Khalil
be8568e174
Community member joins the community if he sends a request to join an… ( #4321 )
2023-12-09 14:46:30 +02:00
Mikhail Rogachev
238a6e2f2d
Fix: Empty community tags in always empty slice, not nil ( #4420 )
2023-12-08 15:13:36 +07:00
Mykhailo Prakhov
fe604b2806
fix: tokenMaster does not have members revealed addresses ( #4425 )
2023-12-07 17:27:14 +01:00
Mykhailo Prakhov
04c533b8d5
chore: API for getting all non-approved requests to join for all communities ( #4422 )
2023-12-05 15:50:45 +01:00
Mykhailo Prakhov
058120fad9
chore: parse all non confirmed requests to join of the community during getting all communities ( #4409 )
2023-12-04 19:20:09 +01:00
Patryk Osmaczko
9820acd74d
refactor(communities)_: delegate Community creation in Persistence
...
In persistence.go, the lack of sufficient knowledge for constructing
fully initialized Community objects required clients to manually call
`initializeCommunity`. This commit addresses the issue by delegating
Community creation to Manager. It also removes queries and logic
duplication.
2023-12-04 12:41:39 +01:00
Mykhailo Prakhov
b9197510b1
fix: use community controlNode pubkey instead of community ID for verifying the received community data signer ( #4411 )
2023-12-04 10:56:54 +01:00
Mikhail Rogachev
317ad2f906
feat: Ignore AC notifications created before the request to join the community ( #4385 )
...
* fix: Ignore AC notifications created before the request to join the community
* review fixes
2023-11-29 19:28:04 +04:00
Mykhailo Prakhov
19464eb345
feat: show activity center notification if user must reveal addressed to join/rejoin the community ( #4373 )
...
- show activity center notification if user must reveal addressed to join/rejoin the community
- fixed unit test, added validation that ex-owner receive AC notification
2023-11-27 10:54:46 +01:00
Mykhailo Prakhov
5cd20ded4e
chore: fix sending request to join msg's to the new owner ( #4371 )
2023-11-23 16:58:43 +01:00
Richard Ramos
d198ac63fc
fix: find free port for torrent
2023-11-22 16:41:27 -04:00
Richard Ramos
c012f94681
fix: send request on non protected topics, and add missing shard information on invite
2023-11-18 12:12:06 -04:00
Vitaly Vlasov
1794b93c16
Always set PubsubTopic in filters
2023-11-18 02:26:34 +02:00
Dario Gabriel Lipicar
e17d4606b1
fix: implement cancellable collectibles requests
2023-11-17 10:35:30 -03:00
Patryk Osmaczko
2c55b9c676
feat: cache curated communities in db
...
closes : status-im/status-desktop#12277
2023-11-16 17:21:28 +01:00
Igor Sirotin
a178d724b1
fix: correct parsing shared url without data ( #4283 )
2023-11-10 16:33:37 +00:00
richΛrd
2c954d42cf
feat: replace DefaultPubsubTopic by Shard 32 ( #4161 )
2023-11-09 20:29:15 -04:00
Mykhailo Prakhov
b15fa6d2c8
fix: promote self to community control node event if we are not a community member ( #4270 )
2023-11-07 14:18:59 +01:00
Patryk Osmaczko
4fddcb54ff
refactor: extract Community.ChatID
2023-11-04 00:11:40 +01:00
Patryk Osmaczko
667e427b63
refactor: base community key actions evaluation on Encrypted() property
2023-11-04 00:11:40 +01:00
Patryk Osmaczko
953ed4c8e4
chore: update directory abi and addresses
...
closes : status-im/status-desktop#12569
2023-11-03 17:56:21 +01:00
Patryk Osmaczko
25f25e9853
chore: populate Community with PubsubTopicPrivateKey
...
part of: status-im/status-desktop#12408
2023-11-03 11:27:43 +01:00
Sale Djenic
11a3612290
feat: support signing of a join/edit community request from within the app or keycard
2023-11-03 07:49:01 +01:00