status-go/protocol
frank f04a9a8726
feat(sync)!: leftovers work for sync fallback (#5794)
* feat(sync)!: remove compatibility with v2.29

* feat(sync)_: add AC notifications when initiating the sync fallback

Needed for https://github.com/status-im/status-desktop/issues/15750

Adds an AC notification when the syncing fails and the user is prompted to use a seed phrase instead.
There is one notification for the initiator (created) and one for the old account (received).
Once the flow is completed, ie the receiver presses Enable and sync,  the notifications are deleted

* test_: update test

* fix_: lint issue

* chore_: ignore tmp file generated by make lint-fix

* chore_: rename EnableAndSyncInstallation to EnableInstallationAndSync

* chore_: address review feedback

* chore_: revert changes to .gitignore

* fix_: simplify code

* fix_: keep old API

---------

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2024-09-19 16:17:46 +08:00
..
anonmetrics feat(metrics)_: add centralized metrics 2024-07-11 10:05:31 +01:00
audio
common feat_: accept community join request with mvds (#5787) 2024-09-05 18:53:09 +08:00
communities feat_: accept community join request with mvds (#5787) 2024-09-05 18:53:09 +08: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_: Orphaned generated code (#4086) 2024-09-03 21:32:23 +01:00
ens
identity chore(identity)_: remove old social links implementation (#5214) 2024-05-24 10:35:34 +02:00
internal/sqlite
migrations feat(sync)!: leftovers work for sync fallback (#5794) 2024-09-19 16:17:46 +08:00
peersyncing Extend peersyncing to sync 1-to-1 messages (#4962) 2024-05-14 12:20:13 +02:00
protobuf fix_: share all future addresses storage 2024-07-18 12:08:40 +03:00
pushnotificationclient feat_: rate limit message publishing (#5523) 2024-08-01 14:36:25 -04:00
pushnotificationserver feat(metrics)_: add centralized metrics 2024-07-11 10:05:31 +01:00
requests feat(sync)!: leftovers work for sync fallback (#5794) 2024-09-19 16:17:46 +08:00
sqlite Add basic peersyncing 2024-01-23 12:46:17 +00:00
storenodes refactor: remove wakuv1 code from mailserver cycle and add ENR to list of storenodes (#5753) 2024-09-05 10:25:26 -04:00
subscription
transport refactor: remove wakuv1 code from mailserver cycle and add ENR to list of storenodes (#5753) 2024-09-05 10:25:26 -04:00
tt fix_: enable tests to run with `-count` more than 1 (#5757) 2024-08-23 19:30:58 +00:00
v1 Always set PubsubTopic in filters 2023-11-18 02:26:34 +02:00
verification
wakusync chore(identity)_: remove old social links implementation (#5214) 2024-05-24 10:35:34 +02:00
zaputil fix_: enable tests to run with `-count` more than 1 (#5757) 2024-08-23 19:30:58 +00:00
LICENSE
README.md
activity_center.go feat(sync)!: leftovers work for sync fallback (#5794) 2024-09-19 16:17:46 +08:00
activity_center_persistence.go feat(sync)!: leftovers work for sync fallback (#5794) 2024-09-19 16:17:46 +08:00
activity_center_persistence_test.go fix!: ensure deleting message does not accidentally delete unrelated notifications (#5789) 2024-09-03 10:12:44 +01:00
chat.go fix!: move `MuteFor24Hr` to the end of the enum (#5813) 2024-09-10 11:25:40 +01:00
chat_group_proxy.go
chat_test.go bug_: fix resend type for private group messages (#5258) 2024-05-30 14:18:54 +02:00
communities_events_eventual_consistency_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_events_owner_without_community_key_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_events_token_master_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_events_utils_test.go feat_: request to join community message use mvds (#5723) 2024-08-28 22:11:34 +08:00
communities_key_distributor.go feat_: retry sending specific messages 2024-05-02 05:40:49 +08:00
communities_messenger_admin_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_messenger_helpers_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_messenger_shared_member_address_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_messenger_signers_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_messenger_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_messenger_test_suite_base_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
communities_messenger_token_permissions_test.go refactor_: use concrete datatypes instead of `string` (#5701) 2024-08-16 19:24:21 +01:00
contact.go chore(identity)_: remove old social links implementation (#5214) 2024-05-24 10:35:34 +02: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 feat: Profile showcase data sharing (#4209) 2023-11-09 22:59:01 +04:00
linkpreview_unfurler.go
linkpreview_unfurler_image.go fix(ImageUnfurler): set title for image links (#4215) 2023-10-26 17:52:52 +01:00
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 fix(unfurl)_: The application crashes when generating status user profile link preview 2024-07-01 21:57:18 +07:00
local_notifications.go feat: new deeplink status-im->status-app (#4198) 2023-11-02 13:56:06 +08:00
message_builder.go
message_persistence.go fix(search)_: search now works with Discord import and bridged messages (#5489) 2024-07-05 13:33:14 -04:00
message_validator.go fix: validate display name on account creation (#4994) 2024-03-28 16:57:59 +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 feat(sync)!: leftovers work for sync fallback (#5794) 2024-09-19 16:17:46 +08:00
messenger_activity_center.go feat_: retry sending specific messages 2024-05-02 05:40:49 +08:00
messenger_activity_center_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
messenger_auto_message.go
messenger_backup.go fix_: fix deleted communities query (#5232) 2024-05-27 10:09:15 -07:00
messenger_backup_handler.go chore(communities)_: request missing channels' encryption keys in a loop 2024-07-16 16:44:50 +02:00
messenger_backup_test.go fix_: Flaky TestBackupKeypairs test (#5811) 2024-09-09 20:30:05 +05:30
messenger_base_test.go chore_: refactor `TestMessengerCollapsedComunityCategoriesSuite` (#5790) 2024-09-03 12:39:49 +01:00
messenger_bookmarks.go
messenger_bridge_message_test.go fix(search)_: search now works with Discord import and bridged messages (#5489) 2024-07-05 13:33:14 -04:00
messenger_browsers.go
messenger_browsers_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_builder_test.go chore_: refactor `TestMessengerCollapsedComunityCategoriesSuite` (#5790) 2024-09-03 12:39:49 +01: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 add image to chat preview (#4888) 2024-04-09 17:39:14 +02:00
messenger_collapsed_community_categories.go
messenger_collapsed_community_categories_test.go chore_: refactor `TestMessengerCollapsedComunityCategoriesSuite` (#5790) 2024-09-03 12:39:49 +01:00
messenger_communities.go feat_: accept community join request with mvds (#5787) 2024-09-05 18:53:09 +08:00
messenger_communities_import_discord.go chore(no-torrent)_: Renamed Torrent to Archive 2024-06-07 13:44:12 +01:00
messenger_communities_sharding_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02: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 refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_community_shard.go feat_: rate limit message publishing (#5523) 2024-08-01 14:36:25 -04:00
messenger_community_storenodes.go feat_: rate limit message publishing (#5523) 2024-08-01 14:36:25 -04:00
messenger_config.go fix_: send accounts event on handling backed up accounts (#5739) 2024-08-31 00:58:03 +05:30
messenger_config_test.go refactor: remove wakuv1 code from mailserver cycle and add ENR to list of storenodes (#5753) 2024-09-05 10:25:26 -04:00
messenger_contact_requests_test.go feat: add contact customization color (#4869) 2024-04-03 22:49:57 +08:00
messenger_contact_update_test.go feat: add contact customization color (#4869) 2024-04-03 22:49:57 +08:00
messenger_contact_verification.go feat_: retry sending specific messages 2024-05-02 05:40:49 +08:00
messenger_contact_verification_test.go fix_: Add contact to removeTrustStatus response (#5058) 2024-04-18 19:28:44 +04:00
messenger_contacts.go fix_:sync contact request decision (#5130) 2024-05-15 08:01:47 +08:00
messenger_contacts_test.go chore(identity)_: remove old social links implementation (#5214) 2024-05-24 10:35:34 +02:00
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: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
messenger_delete_message_for_me_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_delete_messages_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
messenger_discv5.go
messenger_edit_message_test.go fix: handle bridge message edits 2024-04-07 23:24:46 +02:00
messenger_emoji_reactions.go feat_: retry sending specific messages 2024-05-02 05:40:49 +08: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 feat_: retry sending specific messages 2024-05-02 05:40:49 +08:00
messenger_group_chat_test.go feat: add contact customization color (#4869) 2024-04-03 22:49:57 +08:00
messenger_handler.go fix!: ensure deleting message does not accidentally delete unrelated notifications (#5789) 2024-09-03 10:12:44 +01:00
messenger_handler_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_handlers.go feat_: implement connector service (#5375) (#5403) 2024-06-24 07:29:40 -07:00
messenger_identity.go perf(login)!: Set-up messenger filters outside login flow (#5229) 2024-06-10 12:02:42 -03:00
messenger_identity_display_name_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_identity_image_test.go chore_: refactor `TestMessengerCollapsedComunityCategoriesSuite` (#5790) 2024-09-03 12:39:49 +01:00
messenger_installations_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_keycard.go
messenger_linkpreview.go feat: new `GetTextURLsToUnfurl` endpoint which extends GetURLs (#4294) 2023-11-17 13:32:37 +00:00
messenger_linkpreview_test.go Add favicons to external link previews (#4788) 2024-03-12 22:47:51 +02:00
messenger_mailserver.go fix_: make mailserver availability subscriptions concurrency safe (#5804) 2024-09-05 15:18:23 -04:00
messenger_mailserver_cycle.go fix_: make mailserver availability subscriptions concurrency safe (#5804) 2024-09-05 15:18:23 -04:00
messenger_mailserver_processMailserverBatch_test.go refactor: remove wakuv1 code from mailserver cycle and add ENR to list of storenodes (#5753) 2024-09-05 10:25:26 -04:00
messenger_maps.go
messenger_mention.go fix(mentions)_: add callID for `OnChangeText` (#3806) 2024-09-19 13:03:56 +08:00
messenger_mention_test.go fix(mentions)_: add callID for `OnChangeText` (#3806) 2024-09-19 13:03:56 +08:00
messenger_messages.go feat(messages)_: enable deleting bridge messages as admin (#5330) 2024-06-14 10:51:56 -04:00
messenger_messages_order_controller_test.go feat: introduce `MessagesOrderController` 2024-02-09 16:02:17 +01:00
messenger_messages_tracking_test.go refactor: only use shards (#5474) 2024-07-15 20:55:12 +05:30
messenger_mute_test.go
messenger_offline_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
messenger_pairing_and_syncing.go feat(sync)!: leftovers work for sync fallback (#5794) 2024-09-19 16:17:46 +08:00
messenger_pairing_and_syncing_test.go feat(sync)!: leftovers work for sync fallback (#5794) 2024-09-19 16:17:46 +08:00
messenger_peers.go refactor_: use concrete datatypes instead of `string` (#5701) 2024-08-16 19:24:21 +01:00
messenger_peersyncing.go feat_: rate limit message publishing (#5523) 2024-08-01 14:36:25 -04:00
messenger_peersyncing_test.go chore(test_stats)_: better stats, print skipped tests (#5781) 2024-08-29 21:09:26 +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 bug_: fix resend type for private group messages (#5258) 2024-05-30 14:18:54 +02:00
messenger_profile_showcase.go feat_: retry sending specific messages 2024-05-02 05:40:49 +08: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 fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
messenger_raw_message_resend.go fix(communities)_: validate if RawMessage from DB is valid before sending it 2024-07-23 19:54:39 +02:00
messenger_raw_message_resend_test.go feat_: request to join community message use mvds (#5723) 2024-08-28 22:11:34 +08:00
messenger_remove_message_test.go chore(community)_: serialise community jsons with image URLs 2024-07-11 18:55:24 +07:00
messenger_reply_test.go
messenger_response.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_response_test.go
messenger_saved_address.go feat_: accounts/saved addresses capacity related api endpoints added 2024-08-06 08:19:33 +02:00
messenger_send_images_album_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
messenger_settings.go Check for mobile data connection if setting is on (#5511) 2024-07-26 22:34:57 +01:00
messenger_settings_test.go feat: add contact customization color (#4869) 2024-04-03 22:49:57 +08: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 urls package (#5810) 2024-09-09 14:45:21 +01:00
messenger_share_urls_test.go chore: remove urls package (#5810) 2024-09-09 14:45:21 +01:00
messenger_status_updates.go feat_: rate limit message publishing (#5523) 2024-08-01 14:36:25 -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 fix_: make StoreNodeRequestManager filters ephemeral (#5582) 2024-07-26 08:53:08 +01: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 refactor: remove wakuv1 code from mailserver cycle and add ENR to list of storenodes (#5753) 2024-09-05 10:25:26 -04:00
messenger_storenode_request_test.go refactor_: use concrete datatypes instead of `string` (#5701) 2024-08-16 19:24:21 +01:00
messenger_switcher_cards.go
messenger_sync_activity_center_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
messenger_sync_bookmark_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_sync_chat_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_sync_clear_history_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08: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 feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_sync_keycards_state_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_sync_profile_picture_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_sync_raw_messages.go fix(communities)_: ensure community sync doesn't override joined state 2024-06-20 15:37:20 +02:00
messenger_sync_saved_addresses_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08: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 feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_sync_wallets_test.go feat: fallback pairing seed (#5614) 2024-07-30 17:14:05 +08:00
messenger_test.go chore_: small mailserver async fetching refactor 2024-07-16 10:53:42 +03:00
messenger_testing_utils.go refactor_: use concrete datatypes instead of `string` (#5701) 2024-08-16 19:24:21 +01:00
messenger_unread_test.go fix(CommunityMember)_: update LastUpdateClock 2024-07-09 18:19:40 +02:00
messenger_validate_requests_test.go fix(config)_: add API calls to set new waku node and max backups 2024-06-04 22:52:18 +07:00
messenger_waku_wrapper_test.go feat: introduce `testWakuWrapper` and `testPublicWakuAPIWrapper` 2024-02-09 16:02:17 +01:00
messenger_wallet.go feat_: accounts/saved addresses capacity related api endpoints added 2024-08-06 08:19:33 +02:00
messenger_wallet_test.go feat_: accounts/saved addresses capacity related api endpoints added 2024-08-06 08:19:33 +02:00
messenger_walletconnect.go
messenger_walletconnect_test.go
node_config_persistence_test.go fix(config)_: add API calls to set new waku node and max backups 2024-06-04 22:52:18 +07:00
persistence.go chore(identity)_: remove old social links implementation (#5214) 2024-05-24 10:35:34 +02:00
persistence_collapsed_community_categories.go
persistence_metrics.go
persistence_profile_showcase.go feat: Add an expiration and periodical publishing for community grants (#5024) 2024-04-17 16:53:51 +02: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 chore(community)_: serialise community jsons with image URLs 2024-07-11 18:55:24 +07:00
persistence_test.go chore(identity)_: remove old social links implementation (#5214) 2024-05-24 10:35:34 +02:00
push_notification_test.go fix: reject handling requests to join without revealed accounts (#5549) 2024-08-07 17:57:02 +02:00
status_update.go
switcher_card.go
transaction_validator.go
transaction_validator_test.go
waku_builder_test.go refactor: only use shards (#5474) 2024-07-15 20:55:12 +05:30

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.