status-go/protocol
Andrea Maria Piana 7650f3003e Fix some issues with pinned messages
There were a couple of issues on how we handle pinned messages:

1) Clock of the message was only checked when saving, meaning that the
   client would receive potentially updates that were not to be
   processed.
2) We relied on the client to generate a notification for a pinned
   message by sending a normal message through the wire. This PR changes
   the behavior so that the notification is generated locally, either on
   response to a network event or client event.
3) When deleting a message, we pull all the replies/pinned notifications
   and send them over to the client so they know that those messages
   needs updating.
2023-04-25 16:02:48 +01:00
..
anonmetrics Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
audio
common Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
communities Community request to join changes for pending and declined states (#3387) 2023-04-21 14:48:47 +05:30
datasync
discord refactor(import-tool): process import data in chunks 2023-01-30 12:23:56 +01:00
encryption Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
ens feat: make kdf iterations configurable when creating a multiaccount (#2796) 2022-09-27 16:27:20 -04:00
identity feat:support backup/sync social settings (#3407) 2023-04-20 06:59:09 +08:00
internal/sqlite
migrations Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
protobuf Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
pushnotificationclient Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
pushnotificationserver Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
requests Add muted_till param for chats (#3258) 2023-04-16 17:06:00 +02:00
sqlite replace deprecated ioutil.TempDir with os.MkdirTemp 2023-01-03 15:40:11 +01:00
subscription
transport Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
tt
urls Allow/Add YouTube and Twitter mobile link previews (#3314) 2023-03-30 15:27:12 +02:00
v1 feat:support backup/sync social settings (#3407) 2023-04-20 06:59:09 +08:00
verification feat(ActivityCenter): Add message for canceling contact requests (#2992) 2022-12-14 12:27:02 +04:00
wakusync feat: sync and backup wallet accounts 2023-04-21 16:35:24 +02:00
zaputil
LICENSE
README.md
activity_center.go Add muted_till param for chats (#3258) 2023-04-16 17:06:00 +02:00
activity_center_persistence.go feat: refactor activity center endpoints (#3237) 2023-03-03 18:31:48 +04:00
activity_center_persistence_test.go feat: refactor activity center endpoints (#3237) 2023-03-03 18:31:48 +04:00
chat.go Add muted_till param for chats (#3258) 2023-04-16 17:06:00 +02: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 Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
contact.go Remove contact from the contact list of contacts the blocked contact 2023-04-20 13:52:08 +03:00
contact_test.go Compute emojiHash on-the-fly 2023-03-06 13:22:40 +02: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 Add primary & secondary names 2023-02-27 15:13:43 +00:00
message_builder.go
message_persistence.go Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
message_validator.go Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
message_validator_test.go
messenger.go Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
messenger_activity_center.go feat: refactor activity center endpoints (#3237) 2023-03-03 18:31:48 +04:00
messenger_activity_center_test.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
messenger_auto_message.go Add read/unread messenger functions for activity center 2022-10-26 17:19:44 +01:00
messenger_backup.go feat: accounts improvement 2023-04-21 16:35:24 +02:00
messenger_backup_handler.go feat: sync and backup wallet accounts 2023-04-21 16:35:24 +02:00
messenger_backup_test.go feat: sync and backup wallet accounts 2023-04-21 16:35:24 +02:00
messenger_base_test.go Add methods to sign and recover messages/signatures to AccountManager 2023-03-16 12:25:06 +01: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 Update wakuext_buildContact 2023-03-14 16:57:33 +01: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 Community request to join changes for pending and declined states (#3387) 2023-04-21 14:48:47 +05:30
messenger_config.go feat: sync and backup wallet accounts 2023-04-21 16:35:24 +02:00
messenger_contact_requests_test.go Unifying the endpoints for contact flows (#3379) 2023-04-25 15:27:15 +04:00
messenger_contact_update_test.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
messenger_contact_verification.go Add primary & secondary names 2023-02-27 15:13:43 +00:00
messenger_contact_verification_test.go Unifying the endpoints for contact flows (#3379) 2023-04-25 15:27:15 +04:00
messenger_contacts.go Unifying the endpoints for contact flows (#3379) 2023-04-25 15:27:15 +04:00
messenger_delete_message_for_everyone_test.go fix(activity_center): Add remove activity center notifications array to message response (#3277) 2023-03-16 21:41:53 +03:00
messenger_delete_message_for_me_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_delete_message_test.go fix(image-album): make sure to delete all images part of an album (#3380) 2023-04-14 13:17:56 -04:00
messenger_discv5.go
messenger_edit_message_test.go Linting and some fixes on contact requests handling 2023-02-08 17:48:09 +00:00
messenger_emoji_test.go Fix duplicated notifications on receiving contact update 2023-02-14 09:22:37 +00:00
messenger_ens.go
messenger_group_chat.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
messenger_group_chat_test.go feat: allow group admin to delete others message (#3259) 2023-03-07 22:38:09 +08:00
messenger_handler.go Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
messenger_handler_test.go Split clock values for contacts 2023-01-31 15:43:00 +00:00
messenger_identity.go feat:support backup/sync social settings (#3407) 2023-04-20 06:59:09 +08:00
messenger_identity_image_test.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
messenger_installations_test.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
messenger_keycard.go feat: backup keycards to and fetch them from waku 2023-02-28 19:23:36 +01: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_mention.go rewrite mention in go (#3309) 2023-04-07 16:47:38 +08:00
messenger_mention_test.go rewrite mention in go (#3309) 2023-04-07 16:47:38 +08:00
messenger_messages.go Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
messenger_mute_test.go Add muted_till param for chats (#3258) 2023-04-16 17:06:00 +02:00
messenger_peers.go chore: upgrade go-waku to v0.5 (#3213) 2023-02-22 17:58:17 -04:00
messenger_pin_message_test.go Fix some issues with pinned messages 2023-04-25 16:02:48 +01:00
messenger_pin_messages.go Fix some issues with pinned messages 2023-04-25 16:02:48 +01: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 Fix some issues with pinned messages 2023-04-25 16:02:48 +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 feat: Update saved addresses DB to store ENS, isTest flag and chains (#3183) 2023-03-06 16:26:46 +03:00
messenger_send_images_album_test.go fix(image-album): make sure to delete all images part of an album (#3380) 2023-04-14 13:17:56 -04: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 support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_chat_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_clear_history_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_keycard_change_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_keycards_state_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_profile_picture_test.go support local pairing after logged in as receiver; pair installation;(#3202) 2023-02-28 20:32:45 +08:00
messenger_sync_raw_messages.go feat:support backup/sync social settings (#3407) 2023-04-20 06:59:09 +08:00
messenger_sync_saved_addresses_test.go feat: Update saved addresses DB to store ENS, isTest flag and chains (#3183) 2023-03-06 16:26:46 +03:00
messenger_sync_settings.go feat: backup display name improvements 2023-03-31 16:20:50 +02:00
messenger_sync_settings_test.go chore: unused `latest_derived_path` removed from `settings` table 2023-04-21 16:35:24 +02: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: `SaveAccounts` endpoint changed to `SaveAccount` which requires a single account to be provided instead of array of accounts 2023-04-21 16:35:24 +02:00
messenger_test.go Remove contact from the contact list of contacts the blocked contact 2023-04-20 13:52:08 +03: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 Add muted_till param for chats (#3258) 2023-04-16 17:06:00 +02:00
persistence_collapsed_community_categories.go Fix collapsed tests 2023-03-16 13:40:20 +00:00
persistence_test.go feat: implement community members count 2023-03-29 17:08:41 +02:00
push_notification_test.go Add spiff workflow cmd 2023-03-16 14:31:34 +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.