status-go/protocol
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
..
anonmetrics chore: make generate with custom `-modtime` (#4896) 2024-03-08 09:25:17 +00:00
audio Add audio messages 2020-07-27 17:14:50 +02:00
common feat: handling replies for bridged messages 2024-03-13 12:50:15 +01:00
communities fix: ensure `CommunityDescription` reprocessing on decryption failure 2024-03-18 22:24:24 +01:00
datasync Add basic peersyncing 2024-01-23 12:46:17 +00:00
discord
encryption Port back migrations from release branch 2024-03-14 13:27:12 +00:00
ens
identity Feat: Simplify profile showcase preferences (#4854) 2024-03-08 17:20:23 +01:00
internal/sqlite
migrations Port back migrations from release branch 2024-03-14 13:27:12 +00:00
peersyncing Add basic peersyncing 2024-01-23 12:46:17 +00:00
protobuf make generate 2024-03-18 15:01:29 +01:00
pushnotificationclient chore: make generate with custom `-modtime` (#4896) 2024-03-08 09:25:17 +00:00
pushnotificationserver chore: make generate with custom `-modtime` (#4896) 2024-03-08 09:25:17 +00:00
requests Peer syncing toggle (#4758) 2024-03-05 11:44:09 +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: make generate with custom `-modtime` (#4896) 2024-03-08 09:25:17 +00:00
tt chore: introduce silent test logger config 2024-02-27 11:00:29 +01:00
urls
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
LICENSE
README.md
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
chat.go feat: Add HideIfPermissionsNotMet to CommunityChat struct 2024-03-18 15:01:29 +01:00
chat_group_proxy.go
chat_test.go Fix contact details large image is always empty (#4864) 2024-03-06 09:25:19 -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 feat: admins can delete all members messages during the ban (#4834) 2024-02-29 18:54:17 +01:00
communities_events_token_master_test.go feat: admins can delete all members messages during the ban (#4834) 2024-02-29 18:54:17 +01:00
communities_events_utils_test.go fix: TestAdminBanMemberWithDeletingAllMessages test fix (#4855) 2024-03-01 17:37:20 +01:00
communities_key_distributor.go feat: encrypt `CommunityDescription` fields 2023-12-22 18:17:06 +01:00
communities_messenger_admin_test.go feat: admins can delete all members messages during the ban (#4834) 2024-02-29 18:54:17 +01:00
communities_messenger_helpers_test.go chore: disable curated communities loop in tests (#4894) 2024-03-09 09:42:06 +00:00
communities_messenger_signers_test.go chore: unskip flaky tests 2024-02-29 21:58:36 +01:00
communities_messenger_test.go feat: Add HideIfPermissionsNotMet to CommunityChat struct 2024-03-18 15:01:29 +01:00
communities_messenger_token_permissions_test.go chore: add test that validates that the member role gets updated 2024-03-12 11:04:45 -04:00
contact.go Feat: Add social links to the profile showcase (#4775) 2024-02-26 16:53:40 +03:00
contact_test.go
delete_message.go
edit_message.go
emoji_reaction.go
errors.go
group_chat_invitation.go
group_chat_system_messages.go
identity_images.go
linkpreview_unfurler.go
linkpreview_unfurler_image.go
linkpreview_unfurler_oembed.go
linkpreview_unfurler_opengraph.go Add favicons to external link previews (#4788) 2024-03-12 22:47:51 +02:00
linkpreview_unfurler_status.go chore: fetch contact with `StoreNodeRequestManager` (#4484) 2023-12-20 12:49:12 +00:00
local_notifications.go
message_builder.go
message_persistence.go feat: handling replies for bridged messages 2024-03-13 12:50:15 +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: ensure `CommunityDescription` reprocessing on decryption failure 2024-03-18 22:24:24 +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: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_auto_message.go
messenger_backup.go fix: recovering/migrating keypairs fixes 2024-03-01 11:11:16 +01:00
messenger_backup_handler.go fix: race condition on updating account.Name during handle BackupData 2024-03-07 20:18:50 +08:00
messenger_backup_test.go chore: skip TestBackupSettings 2024-03-06 18:05:40 +01: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
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
messenger_browsers_test.go
messenger_builder_test.go chore: disable curated communities loop in tests (#4894) 2024-03-09 09:42:06 +00:00
messenger_chat_context_test.go Fix contact details large image is always empty (#4864) 2024-03-06 09:25:19 -08: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
messenger_collapsed_community_categories_test.go
messenger_communities.go feat: Add HideIfPermissionsNotMet to CommunityChat struct 2024-03-18 15:01:29 +01:00
messenger_communities_import_discord.go feat: Add HideIfPermissionsNotMet to CommunityChat struct 2024-03-18 15:01:29 +01: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 feat: New field in TokenCriteria proto 2024-02-27 16:25:26 +01: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
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 chore: disable curated communities loop in tests (#4894) 2024-03-09 09:42:06 +00:00
messenger_config_test.go chore: disable curated communities loop in tests (#4894) 2024-03-09 09:42:06 +00:00
messenger_contact_requests_test.go chore: unskip flaky tests 2024-02-29 21:58:36 +01:00
messenger_contact_update_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_contact_verification.go Fix: handle accepted contact verifaction if persistedVR is null (#4918) 2024-03-14 20:56:26 +01:00
messenger_contact_verification_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_contacts.go Feat: add endpoint for getting latest pending CR for a contact (#4819) 2024-02-28 23:00:35 +03:00
messenger_contacts_test.go
messenger_curated_communities.go chore: disable curated communities loop in tests (#4894) 2024-03-09 09:42:06 +00:00
messenger_delete_message_for_everyone_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_delete_message_for_me_test.go Revert "Comment out all logged flaky tests" 2024-02-27 11:00:29 +01:00
messenger_delete_message_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_discv5.go
messenger_edit_message_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_emoji_reactions.go feature: view only channel reactions (#4820) 2024-03-01 17:15:38 +00:00
messenger_emoji_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_ens.go
messenger_group_chat.go
messenger_group_chat_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_handler.go feature: view only channel reactions (#4820) 2024-03-01 17:15:38 +00:00
messenger_handler_test.go
messenger_handlers.go feat: add permissions reevaluation request 2024-03-12 14:15:01 +01:00
messenger_identity.go fix: race condition on updating account.Name during handle BackupData 2024-03-07 20:18:50 +08:00
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 contact details large image is always empty (#4864) 2024-03-06 09:25:19 -08:00
messenger_identity_social_links_test.go
messenger_installations_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_keycard.go
messenger_linkpreview.go
messenger_linkpreview_test.go Add favicons to external link previews (#4788) 2024-03-12 22:47:51 +02:00
messenger_mailserver.go enable custom community storenodes (#4532) 2024-02-20 17:49:39 +02:00
messenger_mailserver_cycle.go chore: disable curated communities loop in tests (#4894) 2024-03-09 09:42:06 +00:00
messenger_mailserver_processMailserverBatch_test.go chore: store node requests manager (#4446) 2023-12-15 19:50:12 +00:00
messenger_maps.go
messenger_mention.go
messenger_mention_test.go
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 fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_mute_test.go
messenger_offline_test.go chore: faster TestCommunityOfflineEdit (#4800) 2024-02-27 19:38:40 +00:00
messenger_peers.go
messenger_peersyncing.go Peer syncing toggle (#4758) 2024-03-05 11:44:09 +01:00
messenger_peersyncing_test.go chore: skip TestMessengerPeersyncingSuite 2024-03-06 18:05:40 +01:00
messenger_pin_message_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_pin_messages.go feature: view only channel reactions (#4820) 2024-03-01 17:15:38 +00:00
messenger_profile_showcase.go Fix: the validation of collectibles should not be dependent on capitalization (#4917) 2024-03-13 15:19:33 +01:00
messenger_profile_showcase_proto_conversions.go Feat: Simplify profile showcase preferences (#4854) 2024-03-08 17:20:23 +01:00
messenger_profile_showcase_test.go Feat: Simplify profile showcase preferences (#4854) 2024-03-08 17:20:23 +01:00
messenger_reply_test.go
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
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: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_settings.go Peer syncing toggle (#4758) 2024-03-05 11:44:09 +01: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: prevent messenger being started twice 2024-02-27 11:00:29 +01: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: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_status_updates.go
messenger_status_updates_test.go
messenger_store_node_request_manager.go chore: improve StoreNodeRequestManager for community custom storenodes (#4860) 2024-03-04 20:46:25 +00: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 chore: skip flaky TestSetStorenodeForCommunity_fetchMessagesFromNewStorenode 2024-03-11 22:02:07 +01:00
messenger_storenode_request_test.go Add index to hash ratchet & cache processed description 2024-03-13 11:35:11 +00:00
messenger_switcher_cards.go
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
messenger_sync_chat_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_sync_clear_history_test.go
messenger_sync_contact_request_decision_test.go
messenger_sync_customization_color_test.go
messenger_sync_keycard_change_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_sync_keycards_state_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
messenger_sync_profile_picture_test.go
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: prevent messenger being started twice 2024-02-27 11:00:29 +01: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
messenger_sync_wallets_test.go Revert "Comment out all logged flaky tests" 2024-02-27 11:00:29 +01:00
messenger_test.go Add favicons to external link previews (#4788) 2024-03-12 22:47:51 +02:00
messenger_testing_utils.go Feat: Simplify profile showcase preferences (#4854) 2024-03-08 17:20:23 +01: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
messenger_walletconnect_test.go
persistence.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
persistence_collapsed_community_categories.go
persistence_metrics.go
persistence_profile_showcase.go Feat: Simplify profile showcase preferences (#4854) 2024-03-08 17:20:23 +01:00
persistence_profile_showcase_test.go Feat: Simplify profile showcase preferences (#4854) 2024-03-08 17:20:23 +01:00
persistence_quoted_message_test.go fix: process empty albumId in albumMessages (#4874) (#4898) 2024-03-08 13:48:22 +00:00
persistence_test.go feat: handling replies for bridged messages 2024-03-13 12:50:15 +01:00
push_notification_test.go fix: prevent messenger being started twice 2024-02-27 11:00:29 +01:00
status_update.go
switcher_card.go
transaction_validator.go
transaction_validator_test.go
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.