status-go/protocol
Jonathan Rainville 0cac2af1db
fix(community): getting kicked out of a community should still spectate (#4217)
Fixes https://github.com/status-im/status-desktop/issues/12558

When getting kicked out of  a community, before we used to leave the community completely, but just keep the filters on.
That created a problem when reopening the app, because the community disappeared and could even create a problem in desktop where it tried to open the last opened community but it's no longer there.

The fix now is that when getting kicked out, we instead just remove ourselves from the community and set Joined to false, but we keep the community spectated.
2023-10-27 15:20:08 -04:00
..
anonmetrics fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
audio
common Fix encryption id && rekey with a single message 2023-10-24 20:48:54 +01:00
communities fix(community): getting kicked out of a community should still spectate (#4217) 2023-10-27 15:20:08 -04:00
datasync
discord feat(discord): Import single channel from discord (#4160) 2023-10-25 12:32:21 -04:00
encryption fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
ens fix: use proper migrations for protocol's test database 2023-10-03 15:11:58 +02:00
identity feat: enable passing ring width from mobile (#3903) 2023-09-01 16:17:46 +08:00
internal/sqlite
migrations fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
protobuf fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
pushnotificationclient fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
pushnotificationserver fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
requests feat(discord): Import single channel from discord (#4160) 2023-10-25 12:32:21 -04:00
sqlite fix: use proper migrations for protocol's test database 2023-10-03 15:11:58 +02:00
subscription
transport fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
tt
urls feat: add parsing for new links format (#3665) 2023-07-04 17:48:52 +04:00
v1 fix: publish group member info (#4184) 2023-10-25 21:11:04 +03:00
verification fix: use proper migrations for protocol's test database 2023-10-03 15:11:58 +02:00
wakusync Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
zaputil
LICENSE
README.md
activity_center.go feat(albums): Adds album of images to AC notification (#3977) 2023-09-19 20:17:11 +03:00
activity_center_persistence.go fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
activity_center_persistence_test.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
chat.go feat(pairing): sync 1-1 chats and groups on pairing devices (#4102) 2023-10-17 09:24:15 -04:00
chat_group_proxy.go
chat_test.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
communities_events_owner_without_community_key_test.go Add queue for processing community description & configurable control node 2023-10-17 21:00:24 +01:00
communities_events_token_master_test.go Add queue for processing community description & configurable control node 2023-10-17 21:00:24 +01:00
communities_events_utils_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
communities_key_distributor.go chore: enable community rekey loop 2023-10-27 16:29:26 +02:00
communities_messenger_admin_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
communities_messenger_helpers_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
communities_messenger_signers_test.go feat: ensure unique control node across devices 2023-10-22 21:50:41 +02:00
communities_messenger_test.go chore: enable community rekey loop 2023-10-27 16:29:26 +02:00
communities_messenger_token_permissions_test.go Use WakuV2 in MessengerCommunitiesTokenPermissionsSuite 2023-10-11 12:56:38 +03:00
contact.go fix: shared links and link previews contain full self information (#4169) 2023-10-24 11:15:32 +01:00
contact_test.go Compute emojiHash on-the-fly 2023-03-06 13:22:40 +02:00
delete_message.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
edit_message.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
emoji_reaction.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
errors.go fix(archives): Skip importing the archives for community when user not a member (#4006) 2023-09-15 10:42:28 +03:00
group_chat_invitation.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
group_chat_system_messages.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
identity_images.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
linkpreview_unfurler.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
linkpreview_unfurler_image.go fix(ImageUnfurler): set title for image links (#4215) 2023-10-26 17:52:52 +01:00
linkpreview_unfurler_oembed.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
linkpreview_unfurler_opengraph.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
linkpreview_unfurler_status.go fix: shared links and link previews contain full self information (#4169) 2023-10-24 11:15:32 +01:00
local_notifications.go [#17288] fix: Mention is displayed as public key in PNs (#4079) 2023-10-03 19:29:27 +03:00
message_builder.go
message_persistence.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
message_validator.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
message_validator_test.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger.go feat(discord): Import single channel from discord (#4160) 2023-10-25 12:32:21 -04:00
messenger_activity_center.go fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
messenger_activity_center_test.go fix(messenger_communities): block messages and reactions to token gated or spectated communities (#4064) 2023-10-25 10:26:18 -04:00
messenger_auto_message.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger_backup.go feat: ensure unique control node across devices 2023-10-22 21:50:41 +02:00
messenger_backup_handler.go feat(backup): add 1-1 chats and group chats to backup (#4073) 2023-10-12 17:15:05 -04:00
messenger_backup_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_base_test.go feat: url unfurling settings (#4128) 2023-10-13 15:31:56 +01:00
messenger_bookmarks.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_browsers.go
messenger_browsers_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_chats.go feat(pairing): sync 1-1 chats and groups on pairing devices (#4102) 2023-10-17 09:24:15 -04:00
messenger_collapsed_community_categories.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
messenger_collapsed_community_categories_test.go Fix collapsed tests 2023-03-16 13:40:20 +00:00
messenger_communities.go fix(community): getting kicked out of a community should still spectate (#4217) 2023-10-27 15:20:08 -04:00
messenger_community_for_mobile_testing.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_community_metrics.go feat: Collecting community messages count metrics (#3802) 2023-08-01 17:08:57 +04:00
messenger_community_metrics_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_config.go feat(Collectibles): Change Collectibles service name to CommunityTokens. 2023-08-29 11:01:01 +02:00
messenger_contact_requests_test.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
messenger_contact_update_test.go fx: deprecate profile and timeline chats (#3809) 2023-08-03 17:16:11 +03:00
messenger_contact_verification.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
messenger_contact_verification_test.go Run tests separately, make sure messenger is shutdown, fix torrent test 2023-06-23 11:30:04 +01:00
messenger_contacts.go fix: shared links and link previews contain full self information (#4169) 2023-10-24 11:15:32 +01:00
messenger_contacts_test.go fix: shared links and link previews contain full self information (#4169) 2023-10-24 11:15:32 +01:00
messenger_delete_message_for_everyone_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_delete_message_for_me_test.go [status-mobile-16467] Fix delete for me on receiver side using wrong chatID (#3732) 2023-07-10 22:26:32 +03:00
messenger_delete_message_test.go Hotfix: mark `Chat` and `Pin` archive messages as seen (#3992) (#3999) 2023-09-07 13:33:20 +03:00
messenger_discv5.go
messenger_edit_message_test.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
messenger_emoji_test.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger_ens.go
messenger_group_chat.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
messenger_group_chat_test.go fix: publish group member info (#4184) 2023-10-25 21:11:04 +03:00
messenger_handler.go fix: publish group member info (#4184) 2023-10-25 21:11:04 +03:00
messenger_handler_test.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger_handlers.go fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
messenger_identity.go fix: shared links and link previews contain full self information (#4169) 2023-10-24 11:15:32 +01:00
messenger_identity_display_name_test.go fix: converting profile to/from keycard/regular keypair handling 2023-09-07 13:02:25 +02:00
messenger_identity_image_test.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
messenger_identity_social_links_test.go fix: profile social links updated 2023-06-06 09:59:12 +02:00
messenger_installations_test.go feat(pairing): sync 1-1 chats and groups on pairing devices (#4102) 2023-10-17 09:24:15 -04:00
messenger_keycard.go chore: synchronization improvements applied to keycards 2023-07-11 15:14:49 +02:00
messenger_linkpreview.go make lint-fix ignore for messenger_handlers.go (#4181) 2023-10-24 11:42:56 +08:00
messenger_linkpreview_test.go fix(ImageUnfurler): set title for image links (#4215) 2023-10-26 17:52:52 +01:00
messenger_mailserver.go fix: set pubsubTopic in request community info from mailserver (#4194) 2023-10-25 11:13:35 +01:00
messenger_mailserver_cycle.go chore: `forceFetchingBackup` param added to `RequestAllHistoricMessages` and `RequestAllHistoricMessagesWithRetries` functions 2023-06-09 17:42:11 +02:00
messenger_mailserver_processMailserverBatch_test.go feat: use protected topics for communities 2023-08-23 13:56:00 -04:00
messenger_maps.go fix: don't store ourselves as a contact (#3627) 2023-07-12 12:46:56 +03:00
messenger_mention.go [mention] fix relate issues to input segments (#3766) 2023-07-25 16:47:24 +08:00
messenger_mention_test.go [mention] fix relate issues to input segments (#3766) 2023-07-25 16:47:24 +08:00
messenger_messages.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
messenger_mute_test.go fx: deprecate profile and timeline chats (#3809) 2023-08-03 17:16:11 +03:00
messenger_peers.go feat: use protected topics for communities 2023-08-23 13:56:00 -04:00
messenger_pin_message_test.go Hotfix: mark `Chat` and `Pin` archive messages as seen (#3992) (#3999) 2023-09-07 13:33:20 +03:00
messenger_pin_messages.go Add TestPinMessageInCommunityChat, adjust pin permissions 2023-10-26 13:22:32 +03:00
messenger_profile_showcase.go feat: Profile showcase backend (#4005) 2023-10-24 14:43:18 +04:00
messenger_profile_showcase_test.go feat: Profile showcase backend (#4005) 2023-10-24 14:43:18 +04:00
messenger_reply_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_response.go waku2: static shards (#3944) 2023-10-12 15:21:49 -04:00
messenger_response_test.go Fix duplicated notifications on receiving contact update 2023-02-14 09:22:37 +00:00
messenger_saved_address.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger_send_images_album_test.go feat(albums): Adds album of images to AC notification (#3977) 2023-09-19 20:17:11 +03:00
messenger_share_image_test.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger_share_urls.go feat: Added ERC20 community id (#4189) 2023-10-25 18:49:18 +02:00
messenger_share_urls_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_status_updates.go feat: use protected topics for communities 2023-08-23 13:56:00 -04:00
messenger_status_updates_test.go
messenger_switcher_cards.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
messenger_sync_activity_center_test.go fix: sync decision on join community request (#4190) 2023-10-26 12:17:18 +08:00
messenger_sync_bookmark_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_chat_test.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
messenger_sync_clear_history_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_sync_customization_color_test.go fix: Extract `PairDevices` func (#3857) 2023-08-10 16:57:52 +03:00
messenger_sync_keycard_change_test.go fix: review comments applied 2023-07-25 18:11:05 +02:00
messenger_sync_keycards_state_test.go fix: review comments applied 2023-07-25 18:11:05 +02:00
messenger_sync_profile_picture_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_sync_raw_messages.go feat(pairing): sync 1-1 chats and groups on pairing devices (#4102) 2023-10-17 09:24:15 -04:00
messenger_sync_saved_addresses_test.go Fix encryption id && rekey with a single message 2023-10-24 20:48:54 +01:00
messenger_sync_settings.go fix: shared links and link previews contain full self information (#4169) 2023-10-24 11:15:32 +01:00
messenger_sync_settings_test.go feat: url unfurling settings (#4128) 2023-10-13 15:31:56 +01:00
messenger_sync_verification_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_wallets_test.go fix: function name change 2023-07-26 08:23:55 +02:00
messenger_test.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
messenger_testing_utils.go fix: shared links and link previews contain full self information (#4169) 2023-10-24 11:15:32 +01:00
messenger_wallet.go feat: register and maintain keycard local pairing file by `status-go` 2023-09-13 17:15:32 +02:00
messenger_walletconnect.go
messenger_walletconnect_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
persistence.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
persistence_collapsed_community_categories.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
persistence_metrics.go feat: Collecting community messages count metrics (#3802) 2023-08-01 17:08:57 +04:00
persistence_profile_showcase.go feat: Profile showcase backend (#4005) 2023-10-24 14:43:18 +04:00
persistence_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
push_notification_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
status_update.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
switcher_card.go
transaction_validator.go
transaction_validator_test.go

README.md

status-go/protocol

This is an implementation of the secure transport and payloads which are a part of the Status Client specification.

This implementation uses SQLite and SQLCipher for persistent storage.

The payloads are encoded using protocol-buffers.

Content

  • messenger.go is the main file which exports Messenger struct. This is a public API to interact with this implementation of the Status Chat Protocol.
  • protobuf/ contains protobuf files implementing payloads described in the Payloads spec.
  • encryption/ implements the Secure Transport spec.
  • transport/ connects the Status Chat Protocol with a wire-protocol which in our case is either Whisper or Waku.
  • datasync/ is an adapter for MVDS.
  • applicationmetadata/ is an outer layer wrapping a payload with an app-specific metadata like a signature.
  • identity/ implements details related to creating a three-word name and identicon.
  • migrations/ contains implementation specific migrations for the sqlite database which is used by Messenger as a persistent data store.

History

Originally this package was a dedicated repo called status-protocol-go and was migrated into status-go. The new status-go/protocol package maintained its own dependencies until sub modules were removed and the root go.mod file managed all dependencies for the entire status-go repo.