status-go/protocol
Alex Jbanca 2bcd7e97a6
fix(LinksPreview): Validate image links in the links preview request (#3169)
Motivated by: https://github.com/status-im/status-desktop/pull/9084
While we don't request preview data from Tenor because the url itself will contain the GIF image, we still need to validate the url in the preview request. This is done using a HEAD request where we expect the response status code to be 200 OK.
At the same time we will add the content type to the preview response.
2023-02-08 15:23:55 +02:00
..
anonmetrics Split clock values for contacts 2023-01-31 15:43:00 +00:00
audio
common Move images to shared namespace 2023-02-02 19:18:06 +00:00
communities Add community request to response when a response handled 2023-02-07 13:17:19 +00:00
datasync
discord refactor(import-tool): process import data in chunks 2023-01-30 12:23:56 +01:00
encryption Split clock values for contacts 2023-01-31 15:43:00 +00:00
ens feat: make kdf iterations configurable when creating a multiaccount (#2796) 2022-09-27 16:27:20 -04:00
identity ColourHash is a distinct type that has a discrete pattern 2022-11-28 16:26:07 +00:00
internal/sqlite
migrations Fix broken migrations 2023-02-01 18:31:32 +00:00
protobuf Fix image fields (#3121) 2023-02-02 12:00:49 +04:00
pushnotificationclient Split clock values for contacts 2023-01-31 15:43:00 +00:00
pushnotificationserver Split clock values for contacts 2023-01-31 15:43:00 +00:00
requests Move images to shared namespace 2023-02-02 19:18:06 +00:00
sqlite replace deprecated ioutil.TempDir with os.MkdirTemp 2023-01-03 15:40:11 +01:00
subscription
transport Split clock values for contacts 2023-01-31 15:43:00 +00:00
tt
urls fix(LinksPreview): Validate image links in the links preview request (#3169) 2023-02-08 15:23:55 +02:00
v1 fix TestGroupChatMembersRemoval sometimes failed (#3037) 2023-01-05 23:37:50 +08:00
verification feat(ActivityCenter): Add message for canceling contact requests (#2992) 2022-12-14 12:27:02 +04:00
wakusync Upgrade linter to 1.50.0 2023-01-13 17:52:03 +00:00
zaputil
LICENSE
README.md
activity_center.go Handle identity verifications 2022-10-26 17:19:44 +01:00
activity_center_persistence.go Support providing a list of activity types when counting unread notifications (#3141) 2023-01-30 20:43:13 +01:00
chat.go Fix private group members details not being sent on preview (#2936) 2022-11-03 11:57:51 +03:00
chat_group_proxy.go
chat_test.go Add compressed key to multiaccount/messages/contacts 2023-01-30 16:40:40 +00:00
communities_messenger_test.go Add community request to response when a response handled 2023-02-07 13:17:19 +00:00
contact.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
contact_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
delete_for_me_message.go feat: delete for me (#2866) 2022-09-28 19:42:17 +08:00
delete_message.go
edit_message.go
emoji_reaction.go
errors.go
group_chat_invitation.go
group_chat_system_messages.go feat: Handle image in group chat 2022-09-01 12:19:01 +02:00
identity_images.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
local_notifications.go
message_builder.go
message_persistence.go Fix image fields (#3121) 2023-02-02 12:00:49 +04:00
message_validator.go feat: introduce discord import tool 2022-10-28 09:52:26 +02:00
message_validator_test.go
messenger.go Move images to shared namespace 2023-02-02 19:18:06 +00:00
messenger_activity_center.go Support providing a list of activity types when counting unread notifications (#3141) 2023-01-30 20:43:13 +01:00
messenger_activity_center_test.go
messenger_auto_message.go Add read/unread messenger functions for activity center 2022-10-26 17:19:44 +01:00
messenger_backup.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_backup_handler.go chore: code review comments applied 2022-12-23 15:07:14 +01:00
messenger_backup_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_bookmarks.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08: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 Issue 13813 -- Use messenger ns for browser CRUD (#2801) 2022-08-24 16:05:35 +02:00
messenger_chats.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_communities.go refactor(import-tool): process import data in chunks 2023-01-30 12:23:56 +01:00
messenger_config.go feat: backup profile data to waku and sync them from waku 2022-12-23 15:07:14 +01:00
messenger_contact_requests_test.go Move images to shared namespace 2023-02-02 19:18:06 +00:00
messenger_contact_update_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_contact_verification.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_contact_verification_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_contacts.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_delete_message_for_everyone_test.go feat: add deleted by xxx support (#3077) 2023-02-01 08:57:35 +08:00
messenger_delete_message_for_me_test.go feat: delete message for new design (#2922) 2022-11-17 18:11:58 +08:00
messenger_delete_message_test.go feat: add deleted by xxx support (#3077) 2023-02-01 08:57:35 +08:00
messenger_discv5.go
messenger_edit_message_test.go feat: make any member able to add new users to group chat 2022-09-13 12:16:14 +02:00
messenger_emoji_test.go feat: make replies act as mentions 2023-01-10 13:39:57 -05:00
messenger_ens.go
messenger_group_chat.go Move images to shared namespace 2023-02-02 19:18:06 +00:00
messenger_group_chat_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_handler.go Add community request to response when a response handled 2023-02-07 13:17:19 +00:00
messenger_handler_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_identity.go feat: backup profile data to waku and sync them from waku 2022-12-23 15:07:14 +01:00
messenger_identity_image_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_installations_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_mailserver.go fix: add cursors to store queries 2023-01-27 17:03:59 -04:00
messenger_mailserver_cycle.go Update messenger_mailserver_cycle.go 2023-01-19 13:56:50 -04:00
messenger_maps.go
messenger_messages.go feat: add deleted by xxx support (#3077) 2023-02-01 08:57:35 +08:00
messenger_mute_test.go
messenger_peers.go feat: add wakuext_listenAddresses 2022-11-28 08:10:51 -04:00
messenger_pin_message_test.go
messenger_pin_messages.go feat: introduce `CommunityAdminSettings` in `CommunityDescription` 2022-05-18 09:58:11 +02:00
messenger_reply_test.go fix(reply-test): fix reply test because msgs could come out of order 2023-01-11 16:24:42 -05:00
messenger_response.go feat: add deleted by xxx support (#3077) 2023-02-01 08:57:35 +08:00
messenger_response_test.go
messenger_saved_address.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_share_image_test.go Fix image fields (#3121) 2023-02-02 12:00:49 +04:00
messenger_status_updates.go Upgrade linter to 1.50.0 2023-01-13 17:52:03 +00:00
messenger_status_updates_test.go Timeout automatic status updates (#2757) 2022-08-03 04:38:01 +05:30
messenger_switcher_cards.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
messenger_sync_bookmark_test.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_sync_chat_test.go fix(community): don't delete chat and messages when leaving community 2022-12-09 14:43:56 -05:00
messenger_sync_clear_history_test.go
messenger_sync_profile_picture_test.go Added multiaccounts.Database tests for new funcs 2022-08-22 13:27:59 +01:00
messenger_sync_raw_messages.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_sync_saved_addresses_test.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_sync_settings.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_sync_settings_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_sync_verification_test.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_sync_wallets_test.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_walletconnect.go Implement wallet connect session CRUD API 2022-08-19 12:32:00 +01:00
messenger_walletconnect_test.go Implement wallet connect session CRUD API 2022-08-19 12:32:00 +01:00
persistence.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
persistence_test.go Support providing a list of activity types when counting unread notifications (#3141) 2023-01-30 20:43:13 +01:00
push_notification_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
status_update.go
switcher_card.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
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.