status-go/protocol
Jonathan Rainville 2445cda3e0
fix(contacts): fix blocking a non-contact sends a signal to the other (#4799)
Fixes https://github.com/status-im/status-desktop/issues/13545

The code is correct in sending an updated CR to make sure the sync doesn't sync back the previous state or at least overrides it.
However, if we never were a contact with the person sending us a CR, and we block them, it sends them a "you got removed" message, which first doesn't make sense but also could let them know they got blocked/ignored.
The trick is just to make sure we added them first. Then dismissing the CR makes sense.
2024-02-26 12:49:04 -05:00
..
anonmetrics chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
audio Add audio messages 2020-07-27 17:14:50 +02:00
common fix: flaky `MessengerStoreNodeRequestSuite` (#4721) 2024-02-12 22:30:19 +00:00
communities feat: kicked/banned member should not have spectated mode after the kick/ban (#4806) 2024-02-26 13:33:07 +01:00
datasync Add basic peersyncing 2024-01-23 12:46:17 +00:00
discord feat(discord): Import single channel from discord (#4160) 2023-10-25 12:32:21 -04:00
encryption fix: sync&backup channels encryption keys 2024-02-26 16:41:30 +01:00
ens fix: use proper migrations for protocol's test database 2023-10-03 15:11:58 +02:00
identity Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
internal/sqlite Sync Settings (#2478) 2022-03-23 18:47:00 +00:00
migrations Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
peersyncing Add basic peersyncing 2024-01-23 12:46:17 +00:00
protobuf fix: sync&backup channels encryption keys 2024-02-26 16:41:30 +01:00
pushnotificationclient chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
pushnotificationserver chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
requests chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
sqlite Add basic peersyncing 2024-01-23 12:46:17 +00:00
storenodes enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
subscription Move to monorepo structure (#1684) 2019-11-21 17:19:22 +01:00
transport chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
tt chore: store node requests manager (#4446) 2023-12-15 19:50:12 +00:00
urls feat: add parsing for new links format (#3665) 2023-07-04 17:48:52 +04:00
v1 Always set PubsubTopic in filters 2023-11-18 02:26:34 +02:00
verification fix: use proper migrations for protocol's test database 2023-10-03 15:11:58 +02:00
wakusync Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
zaputil Move to monorepo structure (#1684) 2019-11-21 17:19:22 +01:00
LICENSE Move to monorepo structure (#1684) 2019-11-21 17:19:22 +01:00
README.md Added basic history of the protocol package (#1984) 2020-06-04 11:23:09 +01:00
activity_center.go chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
activity_center_persistence.go chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01: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: new deeplink status-im->status-app (#4198) 2023-11-02 13:56:06 +08:00
chat_group_proxy.go Clean up protocol package (#1890) 2020-03-09 07:19:23 +01:00
chat_test.go feat: new deeplink status-im->status-app (#4198) 2023-11-02 13:56:06 +08:00
communities_events_eventual_consistency_test.go fix: ensure community events eventual consistency 2024-02-20 21:07:01 +01:00
communities_events_owner_without_community_key_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
communities_events_token_master_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
communities_events_utils_test.go [Fixes: #4687] Change requestsToJoinCommunity to a map 2024-02-08 11:18:53 +00:00
communities_key_distributor.go feat: encrypt `CommunityDescription` fields 2023-12-22 18:17:06 +01:00
communities_messenger_admin_test.go fix: ensure community events eventual consistency 2024-02-20 21:07:01 +01:00
communities_messenger_helpers_test.go [Fixes: #4687] Change requestsToJoinCommunity to a map 2024-02-08 11:18:53 +00:00
communities_messenger_signers_test.go feat: kicked/banned member should not have spectated mode after the kick/ban (#4806) 2024-02-26 13:33:07 +01:00
communities_messenger_test.go fix: sync&backup channels encryption keys 2024-02-26 16:41:30 +01:00
communities_messenger_token_permissions_test.go fix: waku connection status subscription lock (#4762) 2024-02-19 23:44:38 +00:00
contact.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03: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 feat: Profile showcase data sharing (#4209) 2023-11-09 22:59:01 +04: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 chore: fetch contact with `StoreNodeRequestManager` (#4484) 2023-12-20 12:49:12 +00:00
local_notifications.go feat: new deeplink status-im->status-app (#4198) 2023-11-02 13:56:06 +08:00
message_builder.go add PinMessage and PinnedMessage (#2180) 2021-05-14 23:22:50 +02:00
message_persistence.go chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
message_validator.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
message_validator_test.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
messages_iterator.go feat: introduce `MessagesIterator` 2024-02-09 16:02:17 +01:00
messenger.go fix: sync&backup channels encryption keys 2024-02-26 16:41:30 +01:00
messenger_activity_center.go feat: Community token received notification (#4682) 2024-02-19 14:55:38 +01:00
messenger_activity_center_test.go fix flaky test TestMarkMessagesSeenMarksNotificationsRead (#4781) 2024-02-22 09:44:14 +08:00
messenger_auto_message.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger_backup.go fix: sync&backup channels encryption keys 2024-02-26 16:41:30 +01:00
messenger_backup_handler.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_backup_test.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_base_test.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_bookmarks.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_bridge_message_test.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
messenger_browsers.go Issue 13813 -- Use messenger ns for browser CRUD (#2801) 2022-08-24 16:05:35 +02:00
messenger_browsers_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_builder_test.go feat: introduce `MessagesOrderController` 2024-02-09 16:02:17 +01:00
messenger_chats.go fix: better calculation of from/to mailserver batch parameters (#4702) 2024-02-12 12:20:56 +00: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: sync&backup channels encryption keys 2024-02-26 16:41:30 +01:00
messenger_communities_import_discord.go feat(discord_import): send signal when the import was cleaned up (#4693) 2024-02-12 16:04:12 -05:00
messenger_communities_sharding_test.go fix: waku connection status subscription lock (#4762) 2024-02-19 23:44:38 +00:00
messenger_community_for_mobile_testing.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_community_for_mobile_testing_test.go fix: sometimes channels do not randomly appear in test community after its creation (#4669) 2024-02-23 10:16:51 +08:00
messenger_community_metrics.go chore: remove boilerplate check of `communities.GetByID` clients 2024-01-10 18:58:17 +01:00
messenger_community_metrics_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_community_shard.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_community_storenodes.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_config.go Feat: Profile showcase validate collectible ownership (#4737) 2024-02-22 11:08:58 +03:00
messenger_contact_requests_test.go fix: keep flaky tests compilable and easy to find 2024-02-19 21:46:35 +01:00
messenger_contact_update_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_contact_verification.go fix: fix contact not updating when an ID verif is canceled (#4719) 2024-02-13 14:34:56 -05:00
messenger_contact_verification_test.go fix: fix contact not updating when an ID verif is canceled (#4719) 2024-02-13 14:34:56 -05:00
messenger_contacts.go fix(contacts): fix blocking a non-contact sends a signal to the other (#4799) 2024-02-26 12:49:04 -05:00
messenger_contacts_test.go fix: self-contact related flaky tests (#4312) 2023-11-13 20:07:35 +00:00
messenger_curated_communities.go [#4671] Increase interval between calls to Directory contract (#4672) 2024-02-05 14:01:59 +01:00
messenger_delete_message_for_everyone_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_delete_message_for_me_test.go Add basic peersyncing 2024-01-23 12:46:17 +00:00
messenger_delete_message_test.go feat: use media server for community collectible images 2023-12-16 08:49:58 -03:00
messenger_discv5.go feat: Add DiscV5 to Waku2 (#2434) 2021-11-22 09:40:14 -04:00
messenger_edit_message_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_emoji_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_ens.go Request/Decline access to communities 2021-02-26 15:35:43 +01:00
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 Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_handler_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_handlers.go chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
messenger_identity.go fix: set display name issue (#4642) 2024-02-01 19:13:41 +03:30
messenger_identity_display_name_test.go fix: set display name issue (#4642) 2024-02-01 19:13:41 +03:30
messenger_identity_image_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_identity_social_links_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_installations_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_keycard.go chore: synchronization improvements applied to keycards 2023-07-11 15:14:49 +02:00
messenger_linkpreview.go feat: new `GetTextURLsToUnfurl` endpoint which extends GetURLs (#4294) 2023-11-17 13:32:37 +00:00
messenger_linkpreview_test.go feat: new `GetTextURLsToUnfurl` endpoint which extends GetURLs (#4294) 2023-11-17 13:32:37 +00:00
messenger_mailserver.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_mailserver_cycle.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_mailserver_processMailserverBatch_test.go chore: store node requests manager (#4446) 2023-12-15 19:50:12 +00: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 chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
messenger_messages_order_controller_test.go feat: introduce `MessagesOrderController` 2024-02-09 16:02:17 +01:00
messenger_messages_tracking_test.go chore: extend `CreateWakuV2Network` with `useShardAsDefaultTopic` 2024-01-24 14:24:57 +01:00
messenger_mute_test.go fx: deprecate profile and timeline chats (#3809) 2023-08-03 17:16:11 +03:00
messenger_offline_test.go fix: keep flaky tests compilable and easy to find 2024-02-19 21:46:35 +01:00
messenger_peers.go feat: use protected topics for communities 2023-08-23 13:56:00 -04:00
messenger_peersyncing.go Add basic peersyncing 2024-01-23 12:46:17 +00:00
messenger_peersyncing_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
messenger_pin_message_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_pin_messages.go Feat: Modify grants for profile showcase use (#4694) 2024-02-11 15:11:04 +03:00
messenger_profile_showcase.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_profile_showcase_proto_conversions.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_profile_showcase_test.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_reply_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_response.go chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
messenger_response_test.go Fix duplicated notifications on receiving contact update 2023-02-14 09:22:37 +00:00
messenger_saved_address.go fix: saved addresses sync (`TestSyncDeletesOfSavedAddresses` flaky test) (#4742) 2024-02-16 09:45:10 +00:00
messenger_send_images_album_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_settings.go feat: implement new endpoint to set customization color (#4568) 2024-02-07 18:20:54 +03:00
messenger_settings_test.go feat: implement new endpoint to set customization color (#4568) 2024-02-07 18:20:54 +03:00
messenger_share_image_test.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
messenger_share_urls.go chore: remove boilerplate check of `communities.GetByID` clients 2024-01-10 18:58:17 +01:00
messenger_share_urls_test.go Fix: Empty community tags in always empty slice, not nil (#4420) 2023-12-08 15:13:36 +07:00
messenger_status_updates.go feat: use protected topics for communities 2023-08-23 13:56:00 -04:00
messenger_status_updates_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_store_node_request_manager.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_store_node_request_manager_config.go fix: remove store node envelopes ordering hotfix (#4622) 2024-01-27 13:02:12 +00:00
messenger_storenode_comunity_test.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_storenode_request_test.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_switcher_cards.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
messenger_sync_activity_center_test.go New way of sharing communities (#4341) 2023-12-15 13:55:32 +02:00
messenger_sync_bookmark_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_chat_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_clear_history_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_sync_contact_request_decision_test.go Fix/duplicate accept cr messages (#4367) 2023-12-05 12:22:20 +08:00
messenger_sync_customization_color_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_keycard_change_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_keycards_state_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01: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: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_sync_saved_addresses_test.go fix: saved addresses sync (`TestSyncDeletesOfSavedAddresses` flaky test) (#4742) 2024-02-16 09:45:10 +00:00
messenger_sync_settings.go fix (@status-go/stickers) Stickers still show in the recent list after being uninstalled (#4474) 2023-12-21 10:05:30 -08:00
messenger_sync_settings_test.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_sync_verification_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_wallets_test.go Comment out all logged flaky tests 2024-01-18 06:36:12 +00:00
messenger_test.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
messenger_testing_utils.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
messenger_unread_test.go feat: Return seen/unseen messages count in MessnegerResponse (#4461) 2023-12-25 13:25:22 +07:00
messenger_waku_wrapper_test.go feat: introduce `testWakuWrapper` and `testPublicWakuAPIWrapper` 2024-02-09 16:02:17 +01:00
messenger_wallet.go Feat: Save and dispatch profile showcase on wallet account change (#4674) 2024-02-07 12:30:56 +03:00
messenger_walletconnect.go Implement wallet connect session CRUD API 2022-08-19 12:32:00 +01:00
messenger_walletconnect_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
persistence.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08: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: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
persistence_profile_showcase_test.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
persistence_quoted_message_test.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
persistence_test.go chore: fix ban/unban flow and delete all messages feature (#4743) 2024-02-22 11:25:13 +01:00
push_notification_test.go [Fixes: #4687] Change requestsToJoinCommunity to a map 2024-02-08 11:18:53 +00:00
status_update.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
switcher_card.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
transaction_validator.go Move message to common namespace 2020-09-09 21:22:12 +02:00
transaction_validator_test.go Move message to common namespace 2020-09-09 21:22:12 +02:00
waku_builder_test.go chore: testWakuV2Config (#4704) 2024-02-12 12:53:15 +00:00

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.