mirror of
https://github.com/status-im/status-go.git
synced 2025-02-03 10:25:35 +00:00
511d6bfc54
* feat(share-links): Add protobuf and encode/decode url data methods * feat(new-links-format): Adds generators for new links format * feat: add parsing for new links format * feat: add messenger-level pubkey serialization and tests * feat: fix and test CreateCommunityURLWithChatKey * feat: impl and test parseCommunityURLWithChatKey * feat: fix and test CreateCommunityURLWithData * feat: impl and test parseCommunityURLWithData (not working) * feat: UrlDataResponse as response share urls api * feat: impl& tested ShareCommunityChannelURLWithChatKey * feat: impl & tested ParseCommunityChannelURLWithChatKey * fix: bring urls to new format * feat: add regexp for community channel urls * feat: impl & test contact urls with chatKey, Ens and data * fix: encodeDataURL/encodeDataURL patch from Samyoul * fix: fix unmarshalling protobufs * fix: fix minor issues, temporary comment TestParseUserURLWithENS * fix: allow url to contain extra `#` in the signature * fix: check signatures with SigToPub * chore: lint fixes * fix: encode the signature * feat: Check provided channelID is Uuid * fix(share-community-url): Remove if community encrypted scope * fix: review fixes * fix: use proto.Unmarshal instead of json.Marshal * feat(share-urls): Adds TagsIndices to community data * feat: support tag indices to community url data --------- Co-authored-by: Boris Melnik <borismelnik@status.im>
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 exportsMessenger
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 byMessenger
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.