protocol

package
v0.179.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2024 License: MPL-2.0, MPL-2.0 Imports: 126 Imported by: 2

README

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.

Documentation

Index

Constants

View Source
const (
	ActivityCenterQueryParamsReadRead = iota + 1
	ActivityCenterQueryParamsReadUnread
	ActivityCenterQueryParamsReadAll
)
View Source
const (
	FirstMessageTimestampUndefined = 0
	FirstMessageTimestampNoMessage = 1
)
View Source
const (
	MuteFor1MinDuration   = time.Minute
	MuteFor15MinsDuration = 15 * time.Minute
	MuteFor1HrsDuration   = time.Hour
	MuteFor8HrsDuration   = 8 * time.Hour
	MuteFor1WeekDuration  = 7 * 24 * time.Hour
)
View Source
const (
	MuteFor15Min requests.MutingVariation = iota + 1
	MuteFor1Hr
	MuteFor8Hr
	MuteFor1Week
	MuteTillUnmuted
	MuteTill1Min
	Unmuted
)
View Source
const (
	SyncWakuSectionKeyProfile           = "profile"
	SyncWakuSectionKeyContacts          = "contacts"
	SyncWakuSectionKeyCommunities       = "communities"
	SyncWakuSectionKeySettings          = "settings"
	SyncWakuSectionKeyKeypairs          = "keypairs"
	SyncWakuSectionKeyWatchOnlyAccounts = "watchOnlyAccounts"
)
View Source
const (
	BackupContactsPerBatch = 20
)
View Source
const (
	DefaultRequestTimeout = 15000 * time.Millisecond
)
View Source
const (
	PubKeyStringLength = 132
)
View Source
const UnfurledLinksPerMessageLimit = 5

Variables

View Source
var (
	ErrChatIDEmpty      = errors.New("chat ID is empty")
	ErrChatNotFound     = errors.New("can't find chat")
	ErrNotImplemented   = errors.New("not implemented")
	ErrContactNotFound  = errors.New("contact not found")
	ErrCommunityIDEmpty = errors.New("community ID is empty")
	ErrUserNotMember    = errors.New("user not a member")
)
View Source
var (
	ErrMessageNotAllowed                      = errors.New("message from a non-contact")
	ErrMessageForWrongChatType                = errors.New("message for the wrong chat type")
	ErrNotWatchOnlyAccount                    = errors.New("an account is not a watch only account")
	ErrWalletAccountNotSupportedForMobileApp  = errors.New("handling account is not supported for mobile app")
	ErrTryingToApplyOldWalletAccountsOrder    = errors.New("trying to apply old wallet accounts order")
	ErrTryingToStoreOldWalletAccount          = errors.New("trying to store an old wallet account")
	ErrTryingToStoreOldKeypair                = errors.New("trying to store an old keypair")
	ErrSomeFieldsMissingForWalletAccount      = errors.New("some fields are missing for wallet account")
	ErrUnknownKeypairForWalletAccount         = errors.New("keypair is not known for the wallet account")
	ErrInvalidCommunityID                     = errors.New("invalid community id")
	ErrTryingToApplyOldTokenPreferences       = errors.New("trying to apply old token preferences")
	ErrTryingToApplyOldCollectiblePreferences = errors.New("trying to apply old collectible preferences")
)
View Source
var (
	// ErrMsgAlreadyExist returned if msg already exist.
	ErrMsgAlreadyExist = errors.New("message with given ID already exist")
	HoursInTwoWeeks    = 336
)
View Source
var (
	ErrCannotChangeKeypairName = errors.New("cannot change profile keypair name")
)
View Source
var ErrCipherMessageAutentificationFailed = "cipher: message authentication failed"
View Source
var ErrDisplayNameDupeOfCommunityMember = errors.New("display name duplicates on of community members")
View Source
var ErrGetLatestContactRequestForContactInvalidID = errors.New("get-latest-contact-request-for-contact: invalid id")
View Source
var ErrGroupChatAddedContacts = errors.New("group-chat: can't add members who are not mutual contacts")
View Source
var ErrInvalidActivityCenterNotification = errors.New("invalid activity center notification")
View Source
var ErrInvalidBioLength = errors.New("invalid bio length")
View Source
var ErrInvalidDeletePermission = errors.New("don't have enough permission to delete")
View Source
var ErrInvalidDeleteTypeAuthor = errors.New("message type cannot be deleted")
View Source
var ErrInvalidEditContentType = errors.New("only text or emoji messages can be replaced")
View Source
var ErrInvalidEditOrDeleteAuthor = errors.New("sender is not the author of the message")
View Source
var ErrInvalidSocialLinkTextLength = errors.New("invalid social link text length")
View Source
var ErrNoFiltersForChat = errors.New("no filter registered for given chat")

Functions

func DecryptIdentityImagesWithIdentityPrivateKey added in v0.89.2

func DecryptIdentityImagesWithIdentityPrivateKey(iis map[string]*protobuf.IdentityImage, recipientIdentity *ecdsa.PrivateKey, senderPubKey *ecdsa.PublicKey) error

func DeletedMessageNotification added in v0.83.15

func DeletedMessageNotification(id string, chat *Chat) *localnotifications.Notification

func DummyProfileShowcasePreferences added in v0.175.1

func DummyProfileShowcasePreferences(withCollectibles bool) *identity.ProfileShowcasePreferences

func EncryptIdentityImagesWithContactPubKeys added in v0.89.2

func EncryptIdentityImagesWithContactPubKeys(iis map[string]*protobuf.IdentityImage, m *Messenger) (err error)

func FindFirstByContentType added in v0.162.1

func FindFirstByContentType(messages []*common.Message, contentType protobuf.ChatMessage_ContentType) *common.Message

func FromProfileShowcaseAccountPreferenceProto added in v0.175.1

func FromProfileShowcaseAccountPreferenceProto(p *protobuf.ProfileShowcaseAccountPreference) *identity.ProfileShowcaseAccountPreference

func FromProfileShowcaseAccountsPreferencesProto added in v0.175.1

func FromProfileShowcaseAccountsPreferencesProto(preferences []*protobuf.ProfileShowcaseAccountPreference) []*identity.ProfileShowcaseAccountPreference

func FromProfileShowcaseCollectiblesPreferencesProto added in v0.175.1

func FromProfileShowcaseCollectiblesPreferencesProto(preferences []*protobuf.ProfileShowcaseCollectiblePreference) []*identity.ProfileShowcaseCollectiblePreference

func FromProfileShowcaseCommunitiesPreferencesProto added in v0.175.1

func FromProfileShowcaseCommunitiesPreferencesProto(preferences []*protobuf.ProfileShowcaseCommunityPreference) []*identity.ProfileShowcaseCommunityPreference

func FromProfileShowcasePreferencesProto added in v0.175.1

func FromProfileShowcasePreferencesProto(p *protobuf.SyncProfileShowcasePreferences) *identity.ProfileShowcasePreferences

func FromProfileShowcaseSocialLinksPreferencesProto added in v0.176.1

func FromProfileShowcaseSocialLinksPreferencesProto(preferences []*protobuf.ProfileShowcaseSocialLinkPreference) []*identity.ProfileShowcaseSocialLinkPreference

func FromProfileShowcaseUnverifiedTokensPreferencesProto added in v0.175.1

func FromProfileShowcaseUnverifiedTokensPreferencesProto(preferences []*protobuf.ProfileShowcaseUnverifiedTokenPreference) []*identity.ProfileShowcaseUnverifiedTokenPreference

func FromProfileShowcaseVerifiedTokensPreferencesProto added in v0.175.1

func FromProfileShowcaseVerifiedTokensPreferencesProto(preferences []*protobuf.ProfileShowcaseVerifiedTokenPreference) []*identity.ProfileShowcaseVerifiedTokenPreference

func GenerateAlias

func GenerateAlias(id string) (string, error)

GenerateAlias name returns the generated name given a public key hex encoded prefixed with 0x

func GetCommunityIDFromKey added in v0.171.10

func GetCommunityIDFromKey(communityKey string) string

func GetFavicon added in v0.176.8

func GetFavicon(bodyBytes []byte) string

func Identicon

func Identicon(id string) (string, error)

Identicon returns an identicon based on the input string

func IsStatusSharedURL added in v0.171.12

func IsStatusSharedURL(url string) bool

func IsSupportedImageURL added in v0.170.0

func IsSupportedImageURL(url *neturl.URL) bool

IsSupportedImageURL detects whether a URL ends with one of the supported image extensions. It provides a quick way to identify whether URLs should be unfurled as images without needing to retrieve the full response body first.

func NewCommunityRequestToJoinNotification added in v0.74.2

func NewCommunityRequestToJoinNotification(id string, community *communities.Community, contact *Contact) *localnotifications.Notification

func NewDefaultHTTPClient added in v0.163.14

func NewDefaultHTTPClient() *http.Client

func NewMessageNotification added in v0.74.2

func NewMessageNotification(id string, message *common.Message, chat *Chat, contact *Contact, resolvePrimaryName func(string) (string, error), profilePicturesVisibility int) (*localnotifications.Notification, error)

func NewPrivateGroupInviteNotification added in v0.88.4

func NewPrivateGroupInviteNotification(id string, chat *Chat, contact *Contact, profilePicturesVisibility int) *localnotifications.Notification

func PairDevices added in v0.163.4

func PairDevices(s *suite.Suite, device1, device2 *Messenger)

func RandomBytes added in v0.171.35

func RandomBytes(length int) []byte

func RandomColor added in v0.171.35

func RandomColor() string

func RandomCommunityTags added in v0.171.35

func RandomCommunityTags(count int) []string

func RandomLettersString added in v0.171.35

func RandomLettersString(length int) string

func ReplaceMentions added in v0.143.1

func ReplaceMentions(text string, users map[string]*MentionableUser) string

func SetIdentityImagesAndWaitForChange added in v0.171.5

func SetIdentityImagesAndWaitForChange(s *suite.Suite, messenger *Messenger, timeout time.Duration, actionCallback func())

func SetSettingsAndWaitForChange added in v0.171.5

func SetSettingsAndWaitForChange(s *suite.Suite, messenger *Messenger, timeout time.Duration,
	actionCallback func(), eventCallback func(*SelfContactChangeEvent) bool)

func SortByClock added in v0.111.5

func SortByClock(msgs HasClocks)

func TearDownMessenger added in v0.171.21

func TearDownMessenger(s *suite.Suite, m *Messenger)

func ToProfileShowcaseAccountsPreferenceProto added in v0.175.1

func ToProfileShowcaseAccountsPreferenceProto(preferences []*identity.ProfileShowcaseAccountPreference) []*protobuf.ProfileShowcaseAccountPreference

func ToProfileShowcaseCollectiblesPreferenceProto added in v0.175.1

func ToProfileShowcaseCollectiblesPreferenceProto(preferences []*identity.ProfileShowcaseCollectiblePreference) []*protobuf.ProfileShowcaseCollectiblePreference

func ToProfileShowcaseCommunitiesPreferencesProto added in v0.175.1

func ToProfileShowcaseCommunitiesPreferencesProto(preferences []*identity.ProfileShowcaseCommunityPreference) []*protobuf.ProfileShowcaseCommunityPreference

func ToProfileShowcasePreferencesProto added in v0.175.1

func ToProfileShowcasePreferencesProto(p *identity.ProfileShowcasePreferences) *protobuf.SyncProfileShowcasePreferences

func ToProfileShowcaseSocialLinksPreferenceProto added in v0.176.1

func ToProfileShowcaseSocialLinksPreferenceProto(preferences []*identity.ProfileShowcaseSocialLinkPreference) []*protobuf.ProfileShowcaseSocialLinkPreference

func ToProfileShowcaseUnverifiedTokensPreferenceProto added in v0.175.1

func ToProfileShowcaseUnverifiedTokensPreferenceProto(preferences []*identity.ProfileShowcaseUnverifiedTokenPreference) []*protobuf.ProfileShowcaseUnverifiedTokenPreference

func ToProfileShowcaseVerifiedTokensPreferenceProto added in v0.175.1

func ToProfileShowcaseVerifiedTokensPreferenceProto(preferences []*identity.ProfileShowcaseVerifiedTokenPreference) []*protobuf.ProfileShowcaseVerifiedTokenPreference

func ToVerificationRequest added in v0.102.6

func ToVerificationRequest(message *protobuf.SyncVerificationRequest) *verification.Request

func URLUnfurlingSupported added in v0.171.21

func URLUnfurlingSupported(url string) bool

func ValidateAcceptContactVerification added in v0.102.6

func ValidateAcceptContactVerification(request *protobuf.AcceptContactVerification) error

func ValidateBio added in v0.105.1

func ValidateBio(bio *string) error

func ValidateContactVerificationRequest added in v0.102.6

func ValidateContactVerificationRequest(request *protobuf.RequestContactVerification) error

func ValidateDeleteForMeMessage added in v0.111.5

func ValidateDeleteForMeMessage(message *protobuf.SyncDeleteForMeMessage) error

func ValidateDeleteMessage added in v0.83.2

func ValidateDeleteMessage(message *protobuf.DeleteMessage) error

func ValidateEditMessage added in v0.80.3

func ValidateEditMessage(message *protobuf.EditMessage) error

func ValidateMembershipUpdateMessage

func ValidateMembershipUpdateMessage(message *protocol.MembershipUpdateMessage, timeNowMs uint64) error

func ValidateReceivedAcceptRequestAddressForTransaction

func ValidateReceivedAcceptRequestAddressForTransaction(message *protobuf.AcceptRequestAddressForTransaction, whisperTimestamp uint64) error

func ValidateReceivedChatMessage

func ValidateReceivedChatMessage(message *protobuf.ChatMessage, whisperTimestamp uint64) error

func ValidateReceivedDeclineRequestAddressForTransaction

func ValidateReceivedDeclineRequestAddressForTransaction(message *protobuf.DeclineRequestAddressForTransaction, whisperTimestamp uint64) error

func ValidateReceivedDeclineRequestTransaction

func ValidateReceivedDeclineRequestTransaction(message *protobuf.DeclineRequestTransaction, whisperTimestamp uint64) error

func ValidateReceivedEmojiReaction added in v0.56.4

func ValidateReceivedEmojiReaction(emoji *protobuf.EmojiReaction, whisperTimestamp uint64) error

func ValidateReceivedGroupChatInvitation added in v0.60.0

func ValidateReceivedGroupChatInvitation(invitation *protobuf.GroupChatInvitation) error

func ValidateReceivedPairInstallation

func ValidateReceivedPairInstallation(message *protobuf.SyncPairInstallation, whisperTimestamp uint64) error

func ValidateReceivedRequestAddressForTransaction

func ValidateReceivedRequestAddressForTransaction(message *protobuf.RequestAddressForTransaction, whisperTimestamp uint64) error

func ValidateReceivedRequestTransaction

func ValidateReceivedRequestTransaction(message *protobuf.RequestTransaction, whisperTimestamp uint64) error

func ValidateReceivedSendTransaction

func ValidateReceivedSendTransaction(message *protobuf.SendTransaction, whisperTimestamp uint64) error
func ValidateSocialLink(link *identity.SocialLink) error
func ValidateSocialLinks(socialLinks identity.SocialLinks) error

func ValidateStatusUpdate added in v0.83.2

func ValidateStatusUpdate(message *protobuf.StatusUpdate) error

func ValidateText added in v0.80.3

func ValidateText(text string) error

func WaitForAvailableStoreNode added in v0.171.21

func WaitForAvailableStoreNode(s *suite.Suite, m *Messenger, timeout time.Duration)

func WaitForConnectionStatus added in v0.175.1

func WaitForConnectionStatus(s *suite.Suite, waku *waku2.Waku, action func() bool)

func WaitForPeersConnected added in v0.175.3

func WaitForPeersConnected(s *suite.Suite, waku *waku2.Waku, action func() []string)

func WaitOnSignaledCommunityFound added in v0.171.35

func WaitOnSignaledCommunityFound(m *Messenger, action func(), condition func(community *communities.Community) bool, timeout time.Duration, errorMessage string) error

func WaitOnSignaledSendWakuFetchingBackupProgress added in v0.175.3

func WaitOnSignaledSendWakuFetchingBackupProgress(m *Messenger, condition func(*wakusync.WakuBackedUpDataResponse) bool, errorMessage string) (*wakusync.WakuBackedUpDataResponse, error)

func WithAutoMessageDisabled added in v0.172.1

func WithAutoMessageDisabled() func(c *config) error

func WithCheckingForBackupDisabled added in v0.172.1

func WithCheckingForBackupDisabled() func(c *config) error

func WithDatasync

func WithDatasync() func(c *config) error

func WithPushNotifications added in v0.56.1

func WithPushNotifications() func(c *config) error

Types

type ActivityCenterCountRequest added in v0.136.0

type ActivityCenterCountRequest struct {
	ActivityTypes []ActivityCenterType          `json:"activityTypes"`
	ReadType      ActivityCenterQueryParamsRead `json:"readType"`
}

type ActivityCenterCountResponse added in v0.136.0

type ActivityCenterCountResponse = map[ActivityCenterType]uint64

type ActivityCenterMembershipStatus added in v0.113.0

type ActivityCenterMembershipStatus int
const (
	ActivityCenterMembershipStatusIdle ActivityCenterMembershipStatus = iota
	ActivityCenterMembershipStatusPending
	ActivityCenterMembershipStatusAccepted
	ActivityCenterMembershipStatusDeclined
	ActivityCenterMembershipStatusAcceptedPending
	ActivityCenterMembershipStatusDeclinedPending
	ActivityCenterMembershipOwnershipChanged
)

type ActivityCenterNotification added in v0.76.0

type ActivityCenterNotification struct {
	ID                        types.HexBytes                 `json:"id"`
	ChatID                    string                         `json:"chatId"`
	CommunityID               string                         `json:"communityId"`
	MembershipStatus          ActivityCenterMembershipStatus `json:"membershipStatus"`
	Name                      string                         `json:"name"`
	Author                    string                         `json:"author"`
	Type                      ActivityCenterType             `json:"type"`
	LastMessage               *common.Message                `json:"lastMessage"`
	Message                   *common.Message                `json:"message"`
	ReplyMessage              *common.Message                `json:"replyMessage"`
	Timestamp                 uint64                         `json:"timestamp"`
	Read                      bool                           `json:"read"`
	Dismissed                 bool                           `json:"dismissed"`
	Deleted                   bool                           `json:"deleted"`
	Accepted                  bool                           `json:"accepted"`
	ContactVerificationStatus verification.RequestStatus     `json:"contactVerificationStatus"`
	TokenData                 *ActivityTokenData             `json:"tokenData"`
	//Used for synchronization. Each update should increment the UpdatedAt.
	//The value should represent the time when the update occurred.
	UpdatedAt     uint64            `json:"updatedAt"`
	AlbumMessages []*common.Message `json:"albumMessages"`
}

func (*ActivityCenterNotification) IncrementUpdatedAt added in v0.171.10

func (n *ActivityCenterNotification) IncrementUpdatedAt(timesource common.TimeSource)

func (*ActivityCenterNotification) Valid added in v0.76.0

func (n *ActivityCenterNotification) Valid() error

type ActivityCenterNotificationsRequest added in v0.136.0

type ActivityCenterNotificationsRequest struct {
	Cursor        string                        `json:"cursor"`
	Limit         uint64                        `json:"limit"`
	ActivityTypes []ActivityCenterType          `json:"activityTypes"`
	ReadType      ActivityCenterQueryParamsRead `json:"readType"`
}

type ActivityCenterPaginationResponse added in v0.76.0

type ActivityCenterPaginationResponse struct {
	Cursor        string                        `json:"cursor"`
	Notifications []*ActivityCenterNotification `json:"notifications"`
}

type ActivityCenterQueryParamsRead added in v0.114.3

type ActivityCenterQueryParamsRead uint

type ActivityCenterState added in v0.131.8

type ActivityCenterState struct {
	HasSeen   bool   `json:"hasSeen"`
	UpdatedAt uint64 `json:"updatedAt"`
}

type ActivityCenterType added in v0.76.0

type ActivityCenterType int
const (
	ActivityCenterNotificationNoType ActivityCenterType = iota
	ActivityCenterNotificationTypeNewOneToOne
	ActivityCenterNotificationTypeNewPrivateGroupChat
	ActivityCenterNotificationTypeMention
	ActivityCenterNotificationTypeReply
	ActivityCenterNotificationTypeContactRequest
	ActivityCenterNotificationTypeCommunityInvitation
	ActivityCenterNotificationTypeCommunityRequest
	ActivityCenterNotificationTypeCommunityMembershipRequest
	ActivityCenterNotificationTypeCommunityKicked
	ActivityCenterNotificationTypeContactVerification
	ActivityCenterNotificationTypeContactRemoved
	ActivityCenterNotificationTypeNewKeypairAddedToPairedDevice
	ActivityCenterNotificationTypeOwnerTokenReceived
	ActivityCenterNotificationTypeOwnershipReceived
	ActivityCenterNotificationTypeOwnershipLost
	ActivityCenterNotificationTypeSetSignerFailed
	ActivityCenterNotificationTypeSetSignerDeclined
	ActivityCenterNotificationTypeShareAccounts
	ActivityCenterNotificationTypeCommunityTokenReceived
	ActivityCenterNotificationTypeFirstCommunityTokenReceived
	ActivityCenterNotificationTypeCommunityBanned
	ActivityCenterNotificationTypeCommunityUnbanned
)

type ActivityTokenData added in v0.175.3

type ActivityTokenData struct {
	ChainID       uint64                         `json:"chainId,omitempty"`
	CollectibleID thirdparty.CollectibleUniqueID `json:"collectibleId,omitempty"`
	TxHash        string                         `json:"txHash,omitempty"`
	WalletAddress string                         `json:"walletAddress,omitempty"`
	IsFirst       bool                           `json:"isFirst,omitempty"`
	// Community data
	CommunityID string `json:"communityId,omitempty"`
	// Token data
	Amount    string `json:"amount,omitempty"`
	Name      string `json:"name,omitempty"`
	Symbol    string `json:"symbol,omitempty"`
	ImageURL  string `json:"imageUrl,omitempty"`
	TokenType int    `json:"tokenType,omitempty"`
}

type AtIndexEntry added in v0.143.1

type AtIndexEntry struct {
	From    int
	To      int
	Checked bool

	Mentioned bool
	NextAtIdx int
}

func (*AtIndexEntry) String added in v0.159.2

func (e *AtIndexEntry) String() string

type Chat

type Chat struct {
	// ID is the id of the chat, for public chats it is the name e.g. status, for one-to-one
	// is the hex encoded public key and for group chats is a random uuid appended with
	// the hex encoded pk of the creator of the chat
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Color       string `json:"color"`
	Emoji       string `json:"emoji"`
	// Active indicates whether the chat has been soft deleted
	Active bool `json:"active"`

	// ViewersCanPostReactions indicates whether users can post reactions in view only mode
	ViewersCanPostReactions bool `json:"viewersCanPostReactions"`

	ChatType ChatType `json:"chatType"`

	// Timestamp indicates the last time this chat has received/sent a message
	Timestamp int64 `json:"timestamp"`
	// LastClockValue indicates the last clock value to be used when sending messages
	LastClockValue uint64 `json:"lastClockValue"`
	// DeletedAtClockValue indicates the clock value at time of deletion, messages
	// with lower clock value of this should be discarded
	DeletedAtClockValue uint64 `json:"deletedAtClockValue"`
	// ReadMessagesAtClockValue indicates the clock value of time till all
	// messages are considered as read
	ReadMessagesAtClockValue uint64
	// Denormalized fields
	UnviewedMessagesCount uint            `json:"unviewedMessagesCount"`
	UnviewedMentionsCount uint            `json:"unviewedMentionsCount"`
	LastMessage           *common.Message `json:"lastMessage"`

	// Group chat fields
	// Members are the members who have been invited to the group chat
	Members []ChatMember `json:"members"`
	// MembershipUpdates is all the membership events in the chat
	MembershipUpdates []v1protocol.MembershipUpdateEvent `json:"membershipUpdateEvents"`

	// Generated username name of the chat for one-to-ones
	Alias string `json:"alias,omitempty"`
	// Identicon generated from public key
	Identicon string `json:"identicon"`

	// Muted is used to check whether we want to receive
	// push notifications for this chat
	Muted bool `json:"muted"`

	// Time in which chat was muted
	MuteTill time.Time `json:"muteTill,omitempty"`

	// Public key of administrator who created invitation link
	InvitationAdmin string `json:"invitationAdmin,omitempty"`

	// Public key of administrator who sent us group invitation
	ReceivedInvitationAdmin string `json:"receivedInvitationAdmin,omitempty"`

	// Public key of user profile
	Profile string `json:"profile,omitempty"`

	// CommunityID is the id of the community it belongs to
	CommunityID string `json:"communityId,omitempty"`

	// CategoryID is the id of the community category this chat belongs to.
	CategoryID string `json:"categoryId,omitempty"`

	// Joined is a timestamp that indicates when the chat was joined
	Joined int64 `json:"joined,omitempty"`

	// SyncedTo is the time up until it has synced with a mailserver
	SyncedTo uint32 `json:"syncedTo,omitempty"`

	// SyncedFrom is the time from when it was synced with a mailserver
	SyncedFrom uint32 `json:"syncedFrom,omitempty"`

	// FirstMessageTimestamp is the time when first message was sent/received on the chat
	// valid only for community chats
	// 0 - undefined
	// 1 - no messages
	FirstMessageTimestamp uint32 `json:"firstMessageTimestamp,omitempty"`

	// Highlight is used for highlight chats
	Highlight bool `json:"highlight,omitempty"`

	// Image of the chat in Base64 format
	Base64Image string `json:"image,omitempty"`

	// If true, the chat is invisible if permissions are not met
	HideIfPermissionsNotMet bool `json:"hideIfPermissionsNotMet,omitempty"`
}

func CreateCommunityChat added in v0.67.0

func CreateCommunityChat(orgID, chatID string, orgChat *protobuf.CommunityChat, timesource common.TimeSource) *Chat

func CreateCommunityChats added in v0.67.0

func CreateCommunityChats(org *communities.Community, timesource common.TimeSource) []*Chat

func CreateGroupChat

func CreateGroupChat(timesource common.TimeSource) Chat

func CreateOneToOneChat

func CreateOneToOneChat(name string, publicKey *ecdsa.PublicKey, timesource common.TimeSource) *Chat

func CreateProfileChat deprecated added in v0.62.14

func CreateProfileChat(pubkey string, timesource common.TimeSource) *Chat

Deprecated: CreateProfileChat shouldn't be used and is only left here in case profile chat feature is re-introduced.

func CreatePublicChat

func CreatePublicChat(name string, timesource common.TimeSource) *Chat

func CreateTimelineChat deprecated added in v0.79.0

func CreateTimelineChat(timesource common.TimeSource) *Chat

Deprecated: CreateTimelineChat shouldn't be used and is only left here in case profile chat feature is re-introduced.

func OneToOneFromPublicKey

func OneToOneFromPublicKey(pk *ecdsa.PublicKey, timesource common.TimeSource) *Chat

func (*Chat) CommunityChat added in v0.74.2

func (c *Chat) CommunityChat() bool

func (*Chat) CommunityChatID added in v0.67.0

func (c *Chat) CommunityChatID() string
func (c *Chat) DeepLink() string

func (*Chat) HasMember added in v0.52.4

func (c *Chat) HasMember(memberID string) bool

func (*Chat) IsActivePersonalChat added in v0.140.2

func (c *Chat) IsActivePersonalChat() bool

func (*Chat) MembersAsPublicKeys

func (c *Chat) MembersAsPublicKeys() ([]*ecdsa.PublicKey, error)

func (*Chat) NextClockAndTimestamp

func (c *Chat) NextClockAndTimestamp(timesource common.TimeSource) (uint64, uint64)

NextClockAndTimestamp returns the next clock value and the current timestamp

func (*Chat) OneToOne

func (c *Chat) OneToOne() bool

func (*Chat) PrivateGroupChat added in v0.74.2

func (c *Chat) PrivateGroupChat() bool

func (*Chat) ProfileUpdates deprecated added in v0.62.14

func (c *Chat) ProfileUpdates() bool

Deprecated: ProfileUpdates shouldn't be used and is only left here in case profile chat feature is re-introduced.

func (*Chat) Public

func (c *Chat) Public() bool

func (*Chat) PublicKey

func (c *Chat) PublicKey() (*ecdsa.PublicKey, error)

func (*Chat) RemoveMember added in v0.101.0

func (c *Chat) RemoveMember(memberID string)

func (*Chat) Timeline deprecated added in v0.63.4

func (c *Chat) Timeline() bool

Deprecated: Timeline shouldn't be used and is only left here in case profile chat feature is re-introduced.

func (*Chat) UpdateFirstMessageTimestamp added in v0.109.1

func (c *Chat) UpdateFirstMessageTimestamp(timestamp uint32) bool

func (*Chat) UpdateFromMessage

func (c *Chat) UpdateFromMessage(message *common.Message, timesource common.TimeSource) error

func (*Chat) Validate

func (c *Chat) Validate() error

type ChatContext added in v0.176.5

type ChatContext string

func GetChatContextFromChatType added in v0.176.5

func GetChatContextFromChatType(chatType ChatType) ChatContext

type ChatMember

type ChatMember struct {
	// ID is the hex encoded public key of the member
	ID string `json:"id"`
	// Admin indicates if the member is an admin of the group chat
	Admin bool `json:"admin"`
}

ChatMember represents a member who participates in a group chat

func (ChatMember) PublicKey

func (c ChatMember) PublicKey() (*ecdsa.PublicKey, error)

type ChatMembershipUpdate

type ChatMembershipUpdate struct {
	// Unique identifier for the event
	ID string `json:"id"`
	// Type indicates the kind of event
	Type protobuf.MembershipUpdateEvent_EventType `json:"type"`
	// Name represents the name in the event of changing name events
	Name string `json:"name,omitempty"`
	// Clock value of the event
	ClockValue uint64 `json:"clockValue"`
	// Signature of the event
	Signature string `json:"signature"`
	// Hex encoded public key of the creator of the event
	From string `json:"from"`
	// Target of the event for single-target events
	Member string `json:"member,omitempty"`
	// Target of the event for multi-target events
	Members []string `json:"members,omitempty"`
}

ChatMembershipUpdate represent an event on membership of the chat

type ChatMentionContext added in v0.143.1

type ChatMentionContext struct {
	ChatID             string
	InputSegments      []InputSegment
	MentionSuggestions map[string]*MentionableUser
	MentionState       *MentionState
	PreviousText       string // user input text before the last change
	NewText            string
}

func NewChatMentionContext added in v0.143.1

func NewChatMentionContext(chatID string) *ChatMentionContext

type ChatPreview added in v0.87.1

type ChatPreview struct {
	// ID is the id of the chat, for public chats it is the name e.g. status, for one-to-one
	// is the hex encoded public key and for group chats is a random uuid appended with
	// the hex encoded pk of the creator of the chat
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Color       string `json:"color"`
	Emoji       string `json:"emoji"`
	// Active indicates whether the chat has been soft deleted
	Active bool `json:"active"`

	ChatType ChatType `json:"chatType"`

	// Timestamp indicates the last time this chat has received/sent a message
	Timestamp int64 `json:"timestamp"`
	// LastClockValue indicates the last clock value to be used when sending messages
	LastClockValue uint64 `json:"lastClockValue"`
	// DeletedAtClockValue indicates the clock value at time of deletion, messages
	// with lower clock value of this should be discarded
	DeletedAtClockValue uint64 `json:"deletedAtClockValue"`

	// Denormalized fields
	UnviewedMessagesCount uint `json:"unviewedMessagesCount"`
	UnviewedMentionsCount uint `json:"unviewedMentionsCount"`

	// Generated username name of the chat for one-to-ones
	Alias string `json:"alias,omitempty"`
	// Identicon generated from public key
	Identicon string `json:"identicon"`

	// Muted is used to check whether we want to receive
	// push notifications for this chat
	Muted bool `json:"muted,omitempty"`

	// Time in which chat will be  ummuted
	MuteTill time.Time `json:"muteTill,omitempty"`

	// Public key of user profile
	Profile string `json:"profile,omitempty"`

	// CommunityID is the id of the community it belongs to
	CommunityID string `json:"communityId,omitempty"`

	// CategoryID is the id of the community category this chat belongs to.
	CategoryID string `json:"categoryId,omitempty"`

	// Joined is a timestamp that indicates when the chat was joined
	Joined int64 `json:"joined,omitempty"`

	// SyncedTo is the time up until it has synced with a mailserver
	SyncedTo uint32 `json:"syncedTo,omitempty"`

	// SyncedFrom is the time from when it was synced with a mailserver
	SyncedFrom uint32 `json:"syncedFrom,omitempty"`

	// ParsedText is the parsed markdown for displaying
	ParsedText json.RawMessage `json:"parsedText,omitempty"`

	Text string `json:"text,omitempty"`

	ContentType protobuf.ChatMessage_ContentType `json:"contentType,omitempty"`

	// Highlight is used for highlight chats
	Highlight bool `json:"highlight,omitempty"`

	// Used for display invited community's name in the last message
	ContentCommunityID string `json:"contentCommunityId,omitempty"`

	// Members array to represent how many there are for chats preview of group chats
	Members []ChatMember `json:"members"`

	OutgoingStatus   string `json:"outgoingStatus,omitempty"`
	ResponseTo       string `json:"responseTo"`
	AlbumImagesCount uint32 `json:"albumImagesCount,omitempty"`
	From             string `json:"from"`
	Deleted          bool   `json:"deleted"`
	DeletedForMe     bool   `json:"deletedForMe"`

	// Image of the chat in Base64 format
	Base64Image string `json:"image,omitempty"`
}

type ChatType

type ChatType int
const (
	ChatTypeOneToOne ChatType = iota + 1
	ChatTypePublic
	ChatTypePrivateGroupChat
	// Deprecated: CreateProfileChat shouldn't be used
	// and is only left here in case profile chat feature is re-introduced.
	ChatTypeProfile
	// Deprecated: ChatTypeTimeline shouldn't be used
	// and is only left here in case profile chat feature is re-introduced.
	ChatTypeTimeline
	ChatTypeCommunityChat
)

type ClearedHistory added in v0.94.3

type ClearedHistory struct {
	ChatID    string `json:"chatId"`
	ClearedAt uint64 `json:"clearedAt"`
}

type CollapsedCommunityCategory added in v0.138.4

type CollapsedCommunityCategory struct {
	CommunityID string `json:"communityId"`
	CategoryID  string `json:"categoryId"`
	Collapsed   bool   `json:"collapsed"`
}

type CommunitiesKeyDistributorImpl added in v0.162.13

type CommunitiesKeyDistributorImpl struct {
	// contains filtered or unexported fields
}

func (*CommunitiesKeyDistributorImpl) Distribute added in v0.162.13

func (*CommunitiesKeyDistributorImpl) Generate added in v0.171.39

type CommunityChannelURLData added in v0.161.2

type CommunityChannelURLData struct {
	Emoji       string `json:"emoji"`
	DisplayName string `json:"displayName"`
	Description string `json:"description"`
	Color       string `json:"color"`
	ChannelUUID string `json:"channelUuid"`
}

type CommunityMetricsResponse added in v0.162.14

type CommunityMetricsResponse struct {
	Type        requests.CommunityMetricsRequestType `json:"type"`
	CommunityID types.HexBytes                       `json:"communityId"`
	Intervals   []MetricsIntervalResponse            `json:"intervals"`
}

type CommunityURLData added in v0.161.2

type CommunityURLData struct {
	DisplayName  string   `json:"displayName"`
	Description  string   `json:"description"`
	MembersCount uint32   `json:"membersCount"`
	Color        string   `json:"color"`
	TagIndices   []uint32 `json:"tagIndices"`
	CommunityID  string   `json:"communityId"`
}

type ConnectedPeer added in v0.96.0

type ConnectedPeer struct {
	UniqueID string
}

type Contact

type Contact struct {
	// ID of the contact. It's a hex-encoded public key (prefixed with 0x).
	ID string `json:"id"`
	// Ethereum address of the contact
	Address string `json:"address,omitempty"`
	// ENS name of contact
	EnsName string `json:"name,omitempty"`
	// EnsVerified whether we verified the name of the contact
	ENSVerified bool `json:"ensVerified"`
	// Generated username name of the contact
	Alias string `json:"alias,omitempty"`
	// Identicon generated from public key
	Identicon string `json:"identicon"`
	// LastUpdated is the last time we received an update from the contact
	// updates should be discarded if last updated is less than the one stored
	LastUpdated uint64 `json:"lastUpdated"`

	// LastUpdatedLocally is the last time we updated the contact locally
	LastUpdatedLocally uint64 `json:"lastUpdatedLocally"`

	LocalNickname string `json:"localNickname,omitempty"`

	// Display name of the contact
	DisplayName string `json:"displayName"`

	// Customization color of the contact
	CustomizationColor multiaccountscommon.CustomizationColor `json:"customizationColor,omitempty"`

	// Bio - description of the contact (tell us about yourself)
	Bio string `json:"bio"`

	// Deprecated: use social links from ProfileShowcasePreferences
	SocialLinks identity.SocialLinks `json:"socialLinks"`

	Images map[string]images.IdentityImage `json:"images"`

	Blocked bool `json:"blocked"`

	// ContactRequestRemoteState is the state of the contact request
	// on the contact's end
	ContactRequestRemoteState ContactRequestState `json:"contactRequestRemoteState"`
	// ContactRequestRemoteClock is the clock for incoming contact requests
	ContactRequestRemoteClock uint64 `json:"contactRequestRemoteClock"`

	// ContactRequestLocalState is the state of the contact request
	// on our end
	ContactRequestLocalState ContactRequestState `json:"contactRequestLocalState"`
	// ContactRequestLocalClock is the clock for outgoing contact requests
	ContactRequestLocalClock uint64 `json:"contactRequestLocalClock"`

	IsSyncing bool
	Removed   bool

	VerificationStatus VerificationStatus       `json:"verificationStatus"`
	TrustStatus        verification.TrustStatus `json:"trustStatus"`
}

Contact has information about a "Contact"

func BuildContactFromPublicKey added in v0.79.0

func BuildContactFromPublicKey(publicKey *ecdsa.PublicKey) (*Contact, error)

func (*Contact) AcceptContactRequest added in v0.100.0

func (c *Contact) AcceptContactRequest(clock uint64) ContactRequestProcessingResponse

func (*Contact) Block added in v0.88.0

func (c *Contact) Block(clock uint64)

func (*Contact) BlockDesktop added in v0.98.3

func (c *Contact) BlockDesktop()

func (*Contact) CanonicalImage added in v0.74.2

func (c *Contact) CanonicalImage(profilePicturesVisibility settings.ProfilePicturesVisibilityType) string

func (*Contact) ContactRequestAccepted added in v0.100.0

func (c *Contact) ContactRequestAccepted(clock uint64) ContactRequestProcessingResponse

func (*Contact) ContactRequestPropagatedState added in v0.130.0

func (c *Contact) ContactRequestPropagatedState() *protobuf.ContactRequestPropagatedState

func (*Contact) ContactRequestPropagatedStateReceived added in v0.130.0

func (c *Contact) ContactRequestPropagatedStateReceived(state *protobuf.ContactRequestPropagatedState) ContactRequestProcessingResponse

ContactRequestPropagatedStateReceived handles the propagation of state from the other end.

func (*Contact) ContactRequestReceived added in v0.100.0

func (c *Contact) ContactRequestReceived(clock uint64) ContactRequestProcessingResponse

func (*Contact) ContactRequestRetracted added in v0.100.0

func (c *Contact) ContactRequestRetracted(clock uint64, fromSyncing bool) ContactRequestProcessingResponse

func (*Contact) ContactRequestSent added in v0.100.0

func (c *Contact) ContactRequestSent(clock uint64) ContactRequestProcessingResponse

func (*Contact) DismissContactRequest added in v0.100.0

func (c *Contact) DismissContactRequest(clock uint64) ContactRequestProcessingResponse

func (Contact) IsTrusted added in v0.102.6

func (c Contact) IsTrusted() bool

func (Contact) IsUntrustworthy added in v0.102.6

func (c Contact) IsUntrustworthy() bool

func (Contact) IsUnverified added in v0.102.6

func (c Contact) IsUnverified() bool

func (Contact) IsVerified added in v0.102.6

func (c Contact) IsVerified() bool

func (Contact) IsVerifying added in v0.102.6

func (c Contact) IsVerifying() bool

func (*Contact) MarshalJSON added in v0.125.4

func (c *Contact) MarshalJSON() ([]byte, error)

func (*Contact) PrimaryName added in v0.133.2

func (c *Contact) PrimaryName() string

func (*Contact) ProcessSyncContactRequestState added in v0.135.2

func (c *Contact) ProcessSyncContactRequestState(remoteState ContactRequestState, remoteClock uint64, localState ContactRequestState, localClock uint64)

func (Contact) PublicKey

func (c Contact) PublicKey() (*ecdsa.PublicKey, error)

func (*Contact) RetractContactRequest added in v0.100.0

func (c *Contact) RetractContactRequest(clock uint64) ContactRequestProcessingResponse

func (*Contact) SecondaryName added in v0.133.2

func (c *Contact) SecondaryName() string

func (*Contact) Unblock added in v0.88.0

func (c *Contact) Unblock(clock uint64)

type ContactDeviceInfo

type ContactDeviceInfo struct {
	// The installation id of the device
	InstallationID string `json:"id"`
	// Timestamp represents the last time we received this info
	Timestamp int64 `json:"timestamp"`
	// FCMToken is to be used for push notifications
	FCMToken string `json:"fcmToken"`
}

ContactDeviceInfo is a struct containing information about a particular device owned by a contact

type ContactRequestProcessingResponse added in v0.126.0

type ContactRequestProcessingResponse struct {
	// contains filtered or unexported fields
}

type ContactRequestState added in v0.100.0

type ContactRequestState int
const (
	ContactRequestStateNone ContactRequestState = iota
	ContactRequestStateMutual
	ContactRequestStateSent
	// Received is a confusing state, we should use
	// sent for both, since they are now stored in different
	// states
	ContactRequestStateReceived
	ContactRequestStateDismissed
)

type ContactURLData added in v0.161.2

type ContactURLData struct {
	DisplayName string `json:"displayName"`
	Description string `json:"description"`
	PublicKey   string `json:"publicKey"`
}

type CurrentMessageState

type CurrentMessageState struct {
	// Message is the protobuf message received
	Message *protobuf.ChatMessage
	// MessageID is the ID of the message
	MessageID string
	// WhisperTimestamp is the whisper timestamp of the message
	WhisperTimestamp uint64
	// Contact is the contact associated with the author of the message
	Contact *Contact
	// PublicKey is the public key of the author of the message
	PublicKey *ecdsa.PublicKey

	StatusMessage *v1protocol.StatusMessage
}

type DefaultMessagesIterator added in v0.174.5

type DefaultMessagesIterator struct {
	// contains filtered or unexported fields
}

func (*DefaultMessagesIterator) HasNext added in v0.174.5

func (it *DefaultMessagesIterator) HasNext() bool

func (*DefaultMessagesIterator) Next added in v0.174.5

type DeleteMessage added in v0.83.2

type DeleteMessage struct {
	*protobuf.DeleteMessage

	// ID is the ID of the message that has been edited
	ID string `json:"id,omitempty"`

	// From is a public key of the author of the edit reaction.
	From string `json:"from,omitempty"`

	// SigPubKey is the ecdsa encoded public key of the edit author
	SigPubKey *ecdsa.PublicKey `json:"-"`
}

DeleteMessage represents a delete of a message from a user in the application layer, used for persistence, querying and signaling

func NewDeleteMessage added in v0.163.14

func NewDeleteMessage() *DeleteMessage

func (*DeleteMessage) GetProtobuf added in v0.83.2

func (e *DeleteMessage) GetProtobuf() proto.Message

GetProtoBuf returns the struct's embedded protobuf struct this function is required to implement the ChatEntity interface

func (*DeleteMessage) GetSigPubKey added in v0.83.2

func (e *DeleteMessage) GetSigPubKey() *ecdsa.PublicKey

GetSigPubKey returns an ecdsa encoded public key this function is required to implement the ChatEntity interface

func (*DeleteMessage) SetMessageType added in v0.83.2

func (e *DeleteMessage) SetMessageType(messageType protobuf.MessageType)

SetMessageType a setter for the MessageType field this function is required to implement the ChatEntity interface

func (*DeleteMessage) WrapGroupMessage added in v0.83.2

func (e *DeleteMessage) WrapGroupMessage() bool

WrapGroupMessage indicates whether we should wrap this in membership information

type EditMessage added in v0.80.3

type EditMessage struct {
	*protobuf.EditMessage

	// ID is the ID of the message that has been edited
	ID string `json:"id,omitempty"`

	// From is a public key of the author of the edit reaction.
	From string `json:"from,omitempty"`

	// SigPubKey is the ecdsa encoded public key of the edit author
	SigPubKey *ecdsa.PublicKey `json:"-"`

	// LocalChatID is the chatID of the local chat (one-to-one are not symmetric)
	LocalChatID string `json:"localChatId"`
}

EditMessage represents an edit of a message from a user in the application layer, used for persistence, querying and signaling

func NewEditMessage added in v0.163.14

func NewEditMessage() *EditMessage

func (*EditMessage) GetProtobuf added in v0.80.3

func (e *EditMessage) GetProtobuf() proto.Message

GetProtoBuf returns the struct's embedded protobuf struct this function is required to implement the ChatEntity interface

func (*EditMessage) GetSigPubKey added in v0.80.3

func (e *EditMessage) GetSigPubKey() *ecdsa.PublicKey

GetSigPubKey returns an ecdsa encoded public key this function is required to implement the ChatEntity interface

func (*EditMessage) SetMessageType added in v0.80.3

func (e *EditMessage) SetMessageType(messageType protobuf.MessageType)

SetMessageType a setter for the MessageType field this function is required to implement the ChatEntity interface

func (*EditMessage) WrapGroupMessage added in v0.80.3

func (e *EditMessage) WrapGroupMessage() bool

WrapGroupMessage indicates whether we should wrap this in membership information

type EmojiReaction added in v0.56.4

type EmojiReaction struct {
	*protobuf.EmojiReaction

	// From is a public key of the author of the emoji reaction.
	From string `json:"from,omitempty"`

	// SigPubKey is the ecdsa encoded public key of the emoji reaction author
	SigPubKey *ecdsa.PublicKey `json:"-"`

	// LocalChatID is the chatID of the local chat (one-to-one are not symmetric)
	LocalChatID string `json:"localChatId"`
}

EmojiReaction represents an emoji reaction from a user in the application layer, used for persistence, querying and signaling

func NewEmojiReaction added in v0.163.14

func NewEmojiReaction() *EmojiReaction

func (*EmojiReaction) GetProtobuf added in v0.56.4

func (e *EmojiReaction) GetProtobuf() proto.Message

GetProtoBuf returns the struct's embedded protobuf struct this function is required to implement the ChatEntity interface

func (*EmojiReaction) GetSigPubKey added in v0.56.4

func (e *EmojiReaction) GetSigPubKey() *ecdsa.PublicKey

GetSigPubKey returns an ecdsa encoded public key this function is required to implement the ChatEntity interface

func (*EmojiReaction) ID added in v0.56.4

func (e *EmojiReaction) ID() string

ID is the Keccak256() contatenation of From-MessageID-EmojiType

func (*EmojiReaction) MarshalJSON added in v0.56.4

func (e *EmojiReaction) MarshalJSON() ([]byte, error)

func (*EmojiReaction) SetMessageType added in v0.56.4

func (e *EmojiReaction) SetMessageType(messageType protobuf.MessageType)

SetMessageType a setter for the MessageType field this function is required to implement the ChatEntity interface

func (*EmojiReaction) WrapGroupMessage added in v0.69.0

func (e *EmojiReaction) WrapGroupMessage() bool

WrapGroupMessage indicates whether we should wrap this in membership information

type EnvelopeEventsInterceptor added in v0.64.7

type EnvelopeEventsInterceptor struct {
	EnvelopeEventsHandler transport.EnvelopeEventsHandler
	Messenger             *Messenger
}

func (EnvelopeEventsInterceptor) EnvelopeExpired added in v0.64.7

func (interceptor EnvelopeEventsInterceptor) EnvelopeExpired(identifiers [][]byte, err error)

EnvelopeExpired triggered when envelope is expired but wasn't delivered to any peer.

func (EnvelopeEventsInterceptor) EnvelopeSent added in v0.64.7

func (interceptor EnvelopeEventsInterceptor) EnvelopeSent(identifiers [][]byte)

EnvelopeSent triggered when envelope delivered at least to 1 peer.

func (EnvelopeEventsInterceptor) MailServerRequestCompleted added in v0.64.7

func (interceptor EnvelopeEventsInterceptor) MailServerRequestCompleted(requestID types.Hash, lastEnvelopeHash types.Hash, cursor []byte, err error)

MailServerRequestCompleted triggered when the mailserver sends a message to notify that the request has been completed

func (EnvelopeEventsInterceptor) MailServerRequestExpired added in v0.64.7

func (interceptor EnvelopeEventsInterceptor) MailServerRequestExpired(hash types.Hash)

MailServerRequestExpired triggered when the mailserver request expires

type EthClient

type EthClient interface {
	TransactionByHash(context.Context, types.Hash) (coretypes.Message, coretypes.TransactionStatus, error)
}

type FetchCommunityRequest added in v0.171.10

type FetchCommunityRequest struct {
	// CommunityKey should be either a public or a private community key
	CommunityKey    string       `json:"communityKey"`
	Shard           *shard.Shard `json:"shard"`
	TryDatabase     bool         `json:"tryDatabase"`
	WaitForResponse bool         `json:"waitForResponse"`
}

func (*FetchCommunityRequest) Validate added in v0.171.10

func (r *FetchCommunityRequest) Validate() error

type GroupChatInvitation added in v0.60.0

type GroupChatInvitation struct {
	*protobuf.GroupChatInvitation

	// From is a public key of the author of the invitation request.
	From string `json:"from,omitempty"`

	// SigPubKey is the ecdsa encoded public key of the invitation author
	SigPubKey *ecdsa.PublicKey `json:"-"`
}

Invitation represents a group chat invitation request from a user in the application layer, used for persistence, querying and signaling

func NewGroupChatInvitation added in v0.163.14

func NewGroupChatInvitation() *GroupChatInvitation

func (*GroupChatInvitation) GetProtobuf added in v0.60.0

func (g *GroupChatInvitation) GetProtobuf() proto.Message

GetProtoBuf returns the struct's embedded protobuf struct this function is required to implement the ChatEntity interface

func (*GroupChatInvitation) GetSigPubKey added in v0.60.0

func (g *GroupChatInvitation) GetSigPubKey() *ecdsa.PublicKey

GetSigPubKey returns an ecdsa encoded public key this function is required to implement the ChatEntity interface

func (*GroupChatInvitation) ID added in v0.60.0

func (g *GroupChatInvitation) ID() string

ID is the Keccak256() contatenation of From-ChatId

func (*GroupChatInvitation) MarshalJSON added in v0.60.0

func (g *GroupChatInvitation) MarshalJSON() ([]byte, error)

type HasClocks added in v0.111.5

type HasClocks interface {
	GetClock(i int) uint64
}

type Headers added in v0.170.0

type Headers map[string]string

type ImageUnfurler added in v0.170.0

type ImageUnfurler struct {
	// contains filtered or unexported fields
}

func NewImageUnfurler added in v0.170.0

func NewImageUnfurler(URL *neturl.URL, logger *zap.Logger, httpClient *http.Client) *ImageUnfurler

func (*ImageUnfurler) Unfurl added in v0.170.0

func (u *ImageUnfurler) Unfurl() (*common.LinkPreview, error)

type InputSegment added in v0.143.1

type InputSegment struct {
	Type  SegmentType `json:"type"`
	Value string      `json:"value"`
}

type MailserverBatch added in v0.79.0

type MailserverBatch struct {
	From        uint32
	To          uint32
	Cursor      string
	PubsubTopic string
	Topics      []types.TopicType
	ChatIDs     []string
}

type MentionManager added in v0.143.1

type MentionManager struct {
	*Messenger
	// contains filtered or unexported fields
}

func NewMentionManager added in v0.143.1

func NewMentionManager(m *Messenger) *MentionManager

func (*MentionManager) ClearMentions added in v0.143.1

func (m *MentionManager) ClearMentions(chatID string)

func (*MentionManager) OnChangeText added in v0.148.3

func (m *MentionManager) OnChangeText(chatID, fullText string) (*ChatMentionContext, error)

func (*MentionManager) ReplaceWithPublicKey added in v0.151.5

func (m *MentionManager) ReplaceWithPublicKey(chatID, text string) (string, error)

func (*MentionManager) SelectMention added in v0.151.5

func (m *MentionManager) SelectMention(chatID, text, primaryName, publicKey string) (*ChatMentionContext, error)

func (*MentionManager) ToInputField added in v0.143.1

func (m *MentionManager) ToInputField(chatID, text string) (*ChatMentionContext, error)

type MentionState added in v0.143.1

type MentionState struct {
	AtSignIdx    int
	AtIdxs       []*AtIndexEntry
	MentionEnd   int
	PreviousText string
	NewText      string
	Start        int
	End          int
	// contains filtered or unexported fields
}

func (*MentionState) String added in v0.143.1

func (ms *MentionState) String() string

type MentionableUser added in v0.143.1

type MentionableUser struct {
	*Contact

	Key          string // a unique identifier of a mentionable user
	Match        string
	SearchedText string
	// contains filtered or unexported fields
}

func MatchMention added in v0.143.1

func MatchMention(text string, users map[string]*MentionableUser, mentionKeyIdx int) *MentionableUser

func (*MentionableUser) GetDisplayName added in v0.143.1

func (c *MentionableUser) GetDisplayName() string

func (*MentionableUser) MarshalJSON added in v0.143.1

func (c *MentionableUser) MarshalJSON() ([]byte, error)

type MessageDeliveredHandler added in v0.71.5

type MessageDeliveredHandler func(string, string)

type MessagesIterator added in v0.174.5

type MessagesIterator interface {
	HasNext() bool
	Next() (transport.Filter, []*types.Message)
}

func NewDefaultMessagesIterator added in v0.174.5

func NewDefaultMessagesIterator(chatWithMessages map[transport.Filter][]*types.Message) MessagesIterator

type Messenger

type Messenger struct {
	// contains filtered or unexported fields
}

Messenger is a entity managing chats and messages. It acts as a bridge between the application and encryption layers. It needs to expose an interface to manage installations because installations are managed by the user. Similarly, it needs to expose an interface to manage mailservers because they can also be managed by the user.

func NewMessenger

func NewMessenger(
	nodeName string,
	identity *ecdsa.PrivateKey,
	node types.Node,
	installationID string,
	peerStore *mailservers.PeerStore,
	opts ...Option,
) (*Messenger, error)

func (*Messenger) AcceptActivityCenterNotifications added in v0.76.0

func (m *Messenger) AcceptActivityCenterNotifications(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error)

func (*Messenger) AcceptActivityCenterNotificationsForInvitesFromUser added in v0.171.3

func (m *Messenger) AcceptActivityCenterNotificationsForInvitesFromUser(ctx context.Context, userPublicKey string, updatedAt uint64) ([]*ActivityCenterNotification, error)

func (*Messenger) AcceptContactRequest added in v0.100.0

func (m *Messenger) AcceptContactRequest(ctx context.Context, request *requests.AcceptContactRequest) (*MessengerResponse, error)

func (*Messenger) AcceptContactVerificationRequest added in v0.102.6

func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, id string, response string) (*MessengerResponse, error)

func (*Messenger) AcceptLatestContactRequestForContact added in v0.102.2

func (m *Messenger) AcceptLatestContactRequestForContact(ctx context.Context, request *requests.AcceptLatestContactRequestForContact) (*MessengerResponse, error)

func (*Messenger) AcceptRequestAddressForTransaction

func (m *Messenger) AcceptRequestAddressForTransaction(ctx context.Context, messageID, address string) (*MessengerResponse, error)

func (*Messenger) AcceptRequestToJoinCommunity added in v0.72.0

func (m *Messenger) AcceptRequestToJoinCommunity(request *requests.AcceptRequestToJoinCommunity) (*MessengerResponse, error)

func (*Messenger) AcceptRequestTransaction

func (m *Messenger) AcceptRequestTransaction(ctx context.Context, transactionHash, messageID string, signature []byte) (*MessengerResponse, error)

func (*Messenger) AcceptedPendingRequestsToJoinForCommunity added in v0.163.4

func (m *Messenger) AcceptedPendingRequestsToJoinForCommunity(id types.HexBytes) ([]*communities.RequestToJoin, error)

func (*Messenger) AcceptedRequestsToJoinForCommunity added in v0.158.0

func (m *Messenger) AcceptedRequestsToJoinForCommunity(id types.HexBytes) ([]*communities.RequestToJoin, error)

func (*Messenger) ActiveChats added in v0.76.0

func (m *Messenger) ActiveChats() []*Chat

func (*Messenger) ActivityCenterNotification added in v0.125.4

func (m *Messenger) ActivityCenterNotification(id types.HexBytes) (*ActivityCenterNotification, error)

func (*Messenger) ActivityCenterNotifications added in v0.76.0

func (m *Messenger) ActivityCenterNotifications(request ActivityCenterNotificationsRequest) (*ActivityCenterPaginationResponse, error)

func (*Messenger) ActivityCenterNotificationsCount added in v0.136.0

func (m *Messenger) ActivityCenterNotificationsCount(request ActivityCenterCountRequest) (*ActivityCenterCountResponse, error)

func (*Messenger) AddActivityCenterNotificationToResponse added in v0.171.21

func (m *Messenger) AddActivityCenterNotificationToResponse(communityID string, acType ActivityCenterType, response *MessengerResponse)

func (*Messenger) AddAdminsToGroupChat

func (m *Messenger) AddAdminsToGroupChat(ctx context.Context, chatID string, members []string) (*MessengerResponse, error)

func (*Messenger) AddBookmark added in v0.102.2

func (m *Messenger) AddBookmark(ctx context.Context, bookmark browsers.Bookmark) error

func (*Messenger) AddBrowser added in v0.106.1

func (m *Messenger) AddBrowser(ctx context.Context, browser browsers.Browser) error

func (*Messenger) AddCommunityToken added in v0.133.2

func (m *Messenger) AddCommunityToken(communityID string, chainID int, address string) error

func (*Messenger) AddContact added in v0.68.4

func (m *Messenger) AddContact(ctx context.Context, request *requests.AddContact) (*MessengerResponse, error)

func (*Messenger) AddMailserver

func (m *Messenger) AddMailserver(enode string) error

NOT IMPLEMENTED

func (*Messenger) AddMembersToGroupChat

func (m *Messenger) AddMembersToGroupChat(ctx context.Context, chatID string, members []string) (*MessengerResponse, error)
func (m *Messenger) AddOrReplaceSocialLinks(socialLinks identity.SocialLinks) error

func (*Messenger) AddPushNotificationsServer added in v0.56.1

func (m *Messenger) AddPushNotificationsServer(ctx context.Context, publicKey *ecdsa.PublicKey, serverType pushnotificationclient.ServerType) error

AddPushNotificationsServer adds a push notification server

func (*Messenger) AddRelayPeer added in v0.88.4

func (m *Messenger) AddRelayPeer(address string) (peer.ID, error)

func (*Messenger) AddRoleToMember added in v0.115.5

func (m *Messenger) AddRoleToMember(request *requests.AddRoleToMember) (*MessengerResponse, error)

func (*Messenger) AddStorePeer added in v0.88.4

func (m *Messenger) AddStorePeer(address string) (peer.ID, error)

func (*Messenger) AddWalletConnectSession added in v0.105.1

func (m *Messenger) AddWalletConnectSession(request *requests.AddWalletConnectSession) error

func (*Messenger) AddedContacts added in v0.90.0

func (m *Messenger) AddedContacts() []*Contact

func (*Messenger) AllMessageByChatIDWhichMatchTerm added in v0.83.8

func (m *Messenger) AllMessageByChatIDWhichMatchTerm(chatID string, searchTerm string, caseSensitive bool) ([]*common.Message, error)

func (*Messenger) AllMessagesFromChatsAndCommunitiesWhichMatchTerm added in v0.83.14

func (m *Messenger) AllMessagesFromChatsAndCommunitiesWhichMatchTerm(communityIds []string, chatIds []string, searchTerm string, caseSensitive bool) ([]*common.Message, error)

func (*Messenger) AllNonApprovedCommunitiesRequestsToJoin added in v0.171.30

func (m *Messenger) AllNonApprovedCommunitiesRequestsToJoin() ([]*communities.RequestToJoin, error)

func (*Messenger) AutoMessageEnabled added in v0.91.12

func (m *Messenger) AutoMessageEnabled() (bool, error)

func (*Messenger) BackupData added in v0.90.0

func (m *Messenger) BackupData(ctx context.Context) (uint64, error)

func (*Messenger) BanUserFromCommunity added in v0.73.9

func (m *Messenger) BanUserFromCommunity(ctx context.Context, request *requests.BanUserFromCommunity) (*MessengerResponse, error)

func (*Messenger) BlockContact

func (m *Messenger) BlockContact(ctx context.Context, contactID string, fromSyncing bool) (*MessengerResponse, error)

func (*Messenger) BlockContactDesktop added in v0.98.3

func (m *Messenger) BlockContactDesktop(ctx context.Context, contactID string) (*MessengerResponse, error)

The same function as the one above. Should be removed with https://github.com/status-im/status-desktop/issues/8805

func (*Messenger) BlockedContacts added in v0.90.0

func (m *Messenger) BlockedContacts() []*Contact

func (*Messenger) BloomFilter added in v0.85.0

func (m *Messenger) BloomFilter() []byte

func (*Messenger) BuildContact added in v0.125.4

func (m *Messenger) BuildContact(request *requests.BuildContact) (*Contact, error)

func (*Messenger) BuildProfileShowcaseFromIdentity added in v0.171.12

func (m *Messenger) BuildProfileShowcaseFromIdentity(state *ReceivedMessageState, message *protobuf.ProfileShowcase) error

func (*Messenger) CanDeleteMessageForEveryoneInCommunity added in v0.137.2

func (m *Messenger) CanDeleteMessageForEveryoneInCommunity(communityID string, publicKey *ecdsa.PublicKey) bool

func (*Messenger) CanDeleteMessageForEveryoneInPrivateGroupChat added in v0.137.2

func (m *Messenger) CanDeleteMessageForEveryoneInPrivateGroupChat(chat *Chat, publicKey *ecdsa.PublicKey) bool

func (*Messenger) CancelRequestToJoinCommunity added in v0.114.1

func (m *Messenger) CancelRequestToJoinCommunity(ctx context.Context, request *requests.CancelRequestToJoinCommunity) (*MessengerResponse, error)

func (*Messenger) CancelVerificationRequest added in v0.102.6

func (m *Messenger) CancelVerificationRequest(ctx context.Context, id string) (*MessengerResponse, error)

func (*Messenger) CanceledRequestsToJoinForCommunity added in v0.114.1

func (m *Messenger) CanceledRequestsToJoinForCommunity(id types.HexBytes) ([]*communities.RequestToJoin, error)

func (*Messenger) ChangeGroupChatName added in v0.52.1

func (m *Messenger) ChangeGroupChatName(ctx context.Context, chatID string, name string) (*MessengerResponse, error)

func (*Messenger) Chat added in v0.87.1

func (m *Messenger) Chat(chatID string) *Chat

func (*Messenger) Chats

func (m *Messenger) Chats() []*Chat

func (*Messenger) ChatsPreview added in v0.87.1

func (m *Messenger) ChatsPreview() []*ChatPreview

func (*Messenger) CheckAllCommunityChannelsPermissions added in v0.159.2

func (*Messenger) CheckAndDeletePendingRequestToJoinCommunity added in v0.146.4

func (m *Messenger) CheckAndDeletePendingRequestToJoinCommunity(ctx context.Context, sendResponse bool) (*MessengerResponse, error)

func (*Messenger) CheckCommunitiesToUnmute added in v0.159.2

func (m *Messenger) CheckCommunitiesToUnmute() (*MessengerResponse, error)

func (*Messenger) CheckCommunityChannelPermissions added in v0.159.2

func (m *Messenger) CheckCommunityChannelPermissions(request *requests.CheckCommunityChannelPermissions) (*communities.CheckChannelPermissionsResponse, error)

func (*Messenger) CheckPermissionsToJoinCommunity added in v0.151.13

func (m *Messenger) CheckPermissionsToJoinCommunity(request *requests.CheckPermissionToJoinCommunity) (*communities.CheckPermissionToJoinResponse, error)

func (*Messenger) ClearHistory added in v0.68.4

func (m *Messenger) ClearHistory(request *requests.ClearHistory) (*MessengerResponse, error)

func (*Messenger) CollapsedCommunityCategories added in v0.138.4

func (m *Messenger) CollapsedCommunityCategories() ([]CollapsedCommunityCategory, error)

func (*Messenger) CollectCommunityMetrics added in v0.162.14

func (m *Messenger) CollectCommunityMetrics(request *requests.CommunityMetricsRequest) (*CommunityMetricsResponse, error)

func (*Messenger) Communities added in v0.67.0

func (m *Messenger) Communities() ([]*communities.Community, error)

func (*Messenger) CommunityUpdateLastOpenedAt added in v0.172.8

func (m *Messenger) CommunityUpdateLastOpenedAt(communityID string) (int64, error)

func (*Messenger) ConfirmJoiningGroup

func (m *Messenger) ConfirmJoiningGroup(ctx context.Context, chatID string) (*MessengerResponse, error)

Kept only for backward compatibility (auto-join), explicit join has been removed

func (*Messenger) ConnectionChanged added in v0.79.0

func (m *Messenger) ConnectionChanged(state connection.State)

func (*Messenger) Contacts

func (m *Messenger) Contacts() []*Contact

func (*Messenger) ControlledCommunities added in v0.171.8

func (m *Messenger) ControlledCommunities() ([]*communities.Community, error)

func (*Messenger) CreateClosedCommunity added in v0.162.14

func (m *Messenger) CreateClosedCommunity() (*MessengerResponse, error)

func (*Messenger) CreateCommunity added in v0.67.0

func (m *Messenger) CreateCommunity(request *requests.CreateCommunity, createDefaultChannel bool) (*MessengerResponse, error)

func (*Messenger) CreateCommunityCategory added in v0.79.3

func (m *Messenger) CreateCommunityCategory(request *requests.CreateCommunityCategory) (*MessengerResponse, error)

func (*Messenger) CreateCommunityChat added in v0.67.0

func (m *Messenger) CreateCommunityChat(communityID types.HexBytes, c *protobuf.CommunityChat) (*MessengerResponse, error)

func (*Messenger) CreateCommunityTokenDeploymentSignature added in v0.168.1

func (m *Messenger) CreateCommunityTokenDeploymentSignature(ctx context.Context, chainID uint64, addressFrom string, communityID string) ([]byte, error)

func (*Messenger) CreateCommunityTokenPermission added in v0.136.0

func (m *Messenger) CreateCommunityTokenPermission(request *requests.CreateCommunityTokenPermission) (*MessengerResponse, error)

func (*Messenger) CreateGroupChatFromInvitation added in v0.60.0

func (m *Messenger) CreateGroupChatFromInvitation(name string, chatID string, adminPK string) (*MessengerResponse, error)

func (*Messenger) CreateGroupChatWithMembers

func (m *Messenger) CreateGroupChatWithMembers(ctx context.Context, name string, members []string) (*MessengerResponse, error)

func (*Messenger) CreateOneToOneChat added in v0.72.0

func (m *Messenger) CreateOneToOneChat(request *requests.CreateOneToOneChat) (*MessengerResponse, error)

func (*Messenger) CreateOpenCommunity added in v0.162.14

func (m *Messenger) CreateOpenCommunity() (*MessengerResponse, error)

func (*Messenger) CreateProfileChat deprecated added in v0.79.0

func (m *Messenger) CreateProfileChat(request *requests.CreateProfileChat) (*MessengerResponse, error)

Deprecated: CreateProfileChat shouldn't be used and is only left here in case profile chat feature is re-introduced.

func (*Messenger) CreatePublicChat added in v0.79.0

func (m *Messenger) CreatePublicChat(request *requests.CreatePublicChat) (*MessengerResponse, error)

func (*Messenger) CreateResponseWithACNotification added in v0.171.11

func (m *Messenger) CreateResponseWithACNotification(communityID string, acType ActivityCenterType, isRead bool, tokenDataJSON string) (*MessengerResponse, error)

func (*Messenger) CreateTokenGatedCommunity added in v0.162.14

func (m *Messenger) CreateTokenGatedCommunity() (*MessengerResponse, error)

func (*Messenger) CuratedCommunities added in v0.100.1

func (m *Messenger) CuratedCommunities() (*communities.KnownCommunitiesResponse, error)

func (*Messenger) DeactivateChat added in v0.68.4

func (m *Messenger) DeactivateChat(request *requests.DeactivateChat) (*MessengerResponse, error)

func (*Messenger) DeclineAllPendingGroupInvitesFromUser added in v0.91.8

func (m *Messenger) DeclineAllPendingGroupInvitesFromUser(ctx context.Context, response *MessengerResponse, userPublicKey string) (*MessengerResponse, error)

Decline all pending group invites from a user

func (*Messenger) DeclineContactRequest added in v0.131.11

func (m *Messenger) DeclineContactRequest(ctx context.Context, request *requests.DeclineContactRequest) (*MessengerResponse, error)

func (*Messenger) DeclineContactVerificationRequest added in v0.102.6

func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, id string) (*MessengerResponse, error)

func (*Messenger) DeclineRequestAddressForTransaction

func (m *Messenger) DeclineRequestAddressForTransaction(ctx context.Context, messageID string) (*MessengerResponse, error)

func (*Messenger) DeclineRequestToJoinCommunity added in v0.72.0

func (m *Messenger) DeclineRequestToJoinCommunity(request *requests.DeclineRequestToJoinCommunity) (*MessengerResponse, error)

func (*Messenger) DeclineRequestTransaction

func (m *Messenger) DeclineRequestTransaction(ctx context.Context, messageID string) (*MessengerResponse, error)

func (*Messenger) DeclinedPendingRequestsToJoinForCommunity added in v0.163.4

func (m *Messenger) DeclinedPendingRequestsToJoinForCommunity(id types.HexBytes) ([]*communities.RequestToJoin, error)

func (*Messenger) DeclinedRequestsToJoinForCommunity added in v0.106.1

func (m *Messenger) DeclinedRequestsToJoinForCommunity(id types.HexBytes) ([]*communities.RequestToJoin, error)

func (*Messenger) DecryptProfileShowcaseEntriesWithPubKey added in v0.171.12

func (m *Messenger) DecryptProfileShowcaseEntriesWithPubKey(senderPubKey *ecdsa.PublicKey, encrypted *protobuf.ProfileShowcaseEntriesEncrypted) (*protobuf.ProfileShowcaseEntries, error)

func (*Messenger) DefaultFilters added in v0.171.21

func (*Messenger) DeleteAccount added in v0.102.6

func (m *Messenger) DeleteAccount(address types.Address) error

func (*Messenger) DeleteAllKeycardsWithKeyUID added in v0.161.6

func (m *Messenger) DeleteAllKeycardsWithKeyUID(ctx context.Context, keyUID string) error

func (*Messenger) DeleteBrowser added in v0.106.1

func (m *Messenger) DeleteBrowser(ctx context.Context, id string) error

func (*Messenger) DeleteChat

func (m *Messenger) DeleteChat(chatID string) error

func (*Messenger) DeleteCommunityCategory added in v0.79.3

func (m *Messenger) DeleteCommunityCategory(request *requests.DeleteCommunityCategory) (*MessengerResponse, error)

func (*Messenger) DeleteCommunityChat added in v0.83.8

func (m *Messenger) DeleteCommunityChat(communityID types.HexBytes, chatID string) (*MessengerResponse, error)

func (*Messenger) DeleteCommunityMemberMessages added in v0.177.0

func (m *Messenger) DeleteCommunityMemberMessages(request *requests.DeleteCommunityMemberMessages) (*MessengerResponse, error)

func (*Messenger) DeleteCommunityTokenPermission added in v0.136.0

func (m *Messenger) DeleteCommunityTokenPermission(request *requests.DeleteCommunityTokenPermission) (*MessengerResponse, error)

func (*Messenger) DeleteKeycard added in v0.133.2

func (m *Messenger) DeleteKeycard(ctx context.Context, keycardUID string) error

func (*Messenger) DeleteKeycardAccounts added in v0.161.6

func (m *Messenger) DeleteKeycardAccounts(ctx context.Context, keycardUID string, accountAddresses []types.Address) error

func (*Messenger) DeleteKeypair added in v0.162.13

func (m *Messenger) DeleteKeypair(keyUID string) error

func (*Messenger) DeleteMessage

func (m *Messenger) DeleteMessage(id string) error

func (*Messenger) DeleteMessageAndSend added in v0.83.2

func (m *Messenger) DeleteMessageAndSend(ctx context.Context, messageID string) (*MessengerResponse, error)

func (*Messenger) DeleteMessageForMeAndSync added in v0.111.5

func (m *Messenger) DeleteMessageForMeAndSync(ctx context.Context, localChatID string, messageID string) (*MessengerResponse, error)

func (*Messenger) DeleteMessagesByChatID

func (m *Messenger) DeleteMessagesByChatID(id string) error

func (*Messenger) DeleteProfileShowcaseCommunity added in v0.174.5

func (m *Messenger) DeleteProfileShowcaseCommunity(community *communities.Community) error

func (*Messenger) DeleteProfileShowcaseWalletAccount added in v0.174.0

func (m *Messenger) DeleteProfileShowcaseWalletAccount(account *accounts.Account) error

func (*Messenger) DeleteSavedAddress added in v0.111.5

func (m *Messenger) DeleteSavedAddress(ctx context.Context, address gethcommon.Address, isTest bool) error

func (*Messenger) DeleteSwitcherCard added in v0.117.3

func (m *Messenger) DeleteSwitcherCard(cardID string) error

func (*Messenger) DestroyWalletConnectSession added in v0.105.1

func (m *Messenger) DestroyWalletConnectSession(peerID string) error

func (*Messenger) DialPeer added in v0.88.4

func (m *Messenger) DialPeer(address string) error

func (*Messenger) DialPeerByID added in v0.88.4

func (m *Messenger) DialPeerByID(peerID string) error

func (*Messenger) DisableCommunityHistoryArchiveProtocol added in v0.98.1

func (m *Messenger) DisableCommunityHistoryArchiveProtocol() error

func (*Messenger) DisableInstallation

func (m *Messenger) DisableInstallation(id string) error

func (*Messenger) DisablePushNotificationsBlockMentions added in v0.61.0

func (m *Messenger) DisablePushNotificationsBlockMentions() error

DisablePushNotificationsBlockMentions is used to indicate that we want to received push notifications for mentions

func (*Messenger) DisablePushNotificationsFromContactsOnly added in v0.56.1

func (m *Messenger) DisablePushNotificationsFromContactsOnly() error

DisablePushNotificationsFromContactsOnly is used to indicate that we want to received push notifications from anyone

func (*Messenger) DisableSendingPushNotifications added in v0.56.1

func (m *Messenger) DisableSendingPushNotifications() error

DisableSendingPushNotifications signals the client not to send any push notification

func (*Messenger) DisconnectActiveMailserver added in v0.93.2

func (m *Messenger) DisconnectActiveMailserver()

func (*Messenger) DiscordImportChannelMarkedAsCancelled added in v0.171.6

func (m *Messenger) DiscordImportChannelMarkedAsCancelled(channelID string) bool

func (*Messenger) DiscordImportMarkedAsCancelled added in v0.114.1

func (m *Messenger) DiscordImportMarkedAsCancelled(communityID string) bool

func (*Messenger) DismissActivityCenterNotifications added in v0.76.0

func (m *Messenger) DismissActivityCenterNotifications(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error)

func (*Messenger) DismissActivityCenterNotificationsByCommunity added in v0.171.27

func (m *Messenger) DismissActivityCenterNotificationsByCommunity(ctx context.Context, request *requests.DismissCommunityNotifications) error

func (*Messenger) DismissAllActivityCenterNotificationsFromChatID added in v0.171.3

func (m *Messenger) DismissAllActivityCenterNotificationsFromChatID(ctx context.Context, chatID string, updatedAt uint64) ([]*ActivityCenterNotification, error)

func (*Messenger) DismissAllActivityCenterNotificationsFromCommunity added in v0.171.3

func (m *Messenger) DismissAllActivityCenterNotificationsFromCommunity(ctx context.Context, communityID string, updatedAt uint64) ([]*ActivityCenterNotification, error)

func (*Messenger) DismissAllActivityCenterNotificationsFromUser added in v0.171.3

func (m *Messenger) DismissAllActivityCenterNotificationsFromUser(ctx context.Context, userPublicKey string, updatedAt uint64) ([]*ActivityCenterNotification, error)

func (*Messenger) DismissLatestContactRequestForContact added in v0.102.2

func (m *Messenger) DismissLatestContactRequestForContact(ctx context.Context, request *requests.DismissLatestContactRequestForContact) (*MessengerResponse, error)

func (*Messenger) DispatchProfileShowcase added in v0.174.0

func (m *Messenger) DispatchProfileShowcase() error

func (*Messenger) DropPeer added in v0.88.4

func (m *Messenger) DropPeer(peerID string) error

func (*Messenger) ENSVerified added in v0.72.0

func (m *Messenger) ENSVerified(pubkey, ensName string) error

func (*Messenger) EditCommunity added in v0.79.0

func (m *Messenger) EditCommunity(request *requests.EditCommunity) (*MessengerResponse, error)

func (*Messenger) EditCommunityCategory added in v0.79.3

func (m *Messenger) EditCommunityCategory(request *requests.EditCommunityCategory) (*MessengerResponse, error)

func (*Messenger) EditCommunityChat added in v0.79.8

func (m *Messenger) EditCommunityChat(communityID types.HexBytes, chatID string, c *protobuf.CommunityChat) (*MessengerResponse, error)

func (*Messenger) EditCommunityTokenPermission added in v0.136.0

func (m *Messenger) EditCommunityTokenPermission(request *requests.EditCommunityTokenPermission) (*MessengerResponse, error)

func (*Messenger) EditGroupChat added in v0.105.1

func (m *Messenger) EditGroupChat(ctx context.Context, chatID string, name string, color string, image images.CroppedImage) (*MessengerResponse, error)

func (*Messenger) EditMessage added in v0.80.3

func (m *Messenger) EditMessage(ctx context.Context, request *requests.EditMessage) (*MessengerResponse, error)

func (*Messenger) EditSharedAddressesForCommunity added in v0.161.4

func (m *Messenger) EditSharedAddressesForCommunity(request *requests.EditSharedAddresses) (*MessengerResponse, error)

func (*Messenger) EmitMailserverAvailable added in v0.98.1

func (m *Messenger) EmitMailserverAvailable()

func (*Messenger) EmojiReactionsByChatID added in v0.56.4

func (m *Messenger) EmojiReactionsByChatID(chatID string, cursor string, limit int) ([]*EmojiReaction, error)

func (*Messenger) EmojiReactionsByChatIDMessageID added in v0.89.20

func (m *Messenger) EmojiReactionsByChatIDMessageID(chatID string, messageID string) ([]*EmojiReaction, error)

func (*Messenger) EnableBackedupMessagesProcessing added in v0.162.9

func (m *Messenger) EnableBackedupMessagesProcessing()

func (*Messenger) EnableCommunityHistoryArchiveProtocol added in v0.98.1

func (m *Messenger) EnableCommunityHistoryArchiveProtocol() error

func (*Messenger) EnableInstallation

func (m *Messenger) EnableInstallation(id string) error

func (*Messenger) EnablePushNotificationsBlockMentions added in v0.61.0

func (m *Messenger) EnablePushNotificationsBlockMentions() error

EnablePushNotificationsBlockMentions is used to indicate that we dont want to received push notifications for mentions

func (*Messenger) EnablePushNotificationsFromContactsOnly added in v0.56.1

func (m *Messenger) EnablePushNotificationsFromContactsOnly() error

EnablePushNotificationsFromContactsOnly is used to indicate that we want to received push notifications only from contacts

func (*Messenger) EnableSendingPushNotifications added in v0.56.1

func (m *Messenger) EnableSendingPushNotifications() error

EnableSendingPushNotifications signals the client to send push notifications

func (*Messenger) EncryptProfileShowcaseEntriesWithContactPubKeys added in v0.171.12

func (m *Messenger) EncryptProfileShowcaseEntriesWithContactPubKeys(entries *protobuf.ProfileShowcaseEntries, contacts []*Contact) (*protobuf.ProfileShowcaseEntriesEncrypted, error)

func (*Messenger) ExportCommunity added in v0.67.0

func (m *Messenger) ExportCommunity(id types.HexBytes) (*ecdsa.PrivateKey, error)

func (*Messenger) ExtractDiscordChannelsAndCategories added in v0.105.1

func (m *Messenger) ExtractDiscordChannelsAndCategories(filesToImport []string) (*MessengerResponse, map[string]*discord.ImportError)

func (*Messenger) ExtractDiscordDataFromImportFiles added in v0.105.1

func (m *Messenger) ExtractDiscordDataFromImportFiles(filesToImport []string) (*discord.ExtractedData, map[string]*discord.ImportError)

func (*Messenger) FetchCommunity added in v0.171.10

func (m *Messenger) FetchCommunity(request *FetchCommunityRequest) (*communities.Community, error)

FetchCommunity installs filter for community and requests its details from mailserver.

If `request.TryDatabase` is true, it first looks for community in database, and requests from mailserver only if it wasn't found locally. If `request.WaitForResponse` is true, it waits until it has the community before returning it. If `request.WaitForResponse` is false, it installs filter for community and requests its details from mailserver. When response received it will be passed through signals handler.

func (*Messenger) FetchContact added in v0.171.37

func (m *Messenger) FetchContact(contactID string, waitForResponse bool) (*Contact, error)

func (*Messenger) FetchMessages added in v0.171.21

func (m *Messenger) FetchMessages(request *requests.FetchMessages) error

func (*Messenger) FillGaps added in v0.79.0

func (m *Messenger) FillGaps(chatID string, messageIDs []string) error

func (*Messenger) FindCommunityInfoFromDB added in v0.172.1

func (m *Messenger) FindCommunityInfoFromDB(communityID string) (*communities.Community, error)

func (*Messenger) FindStatusMessageIDForBridgeMessageID added in v0.179.1

func (m *Messenger) FindStatusMessageIDForBridgeMessageID(bridgeMessageID string) (string, error)

func (*Messenger) FirstUnseenMessageID added in v0.117.1

func (m *Messenger) FirstUnseenMessageID(chatID string) (string, error)

func (*Messenger) GarbageCollectRemovedBookmarks added in v0.102.2

func (m *Messenger) GarbageCollectRemovedBookmarks() error

func (*Messenger) GenerateEditCommunityRequestsForSigning added in v0.171.9

func (m *Messenger) GenerateEditCommunityRequestsForSigning(memberPubKey string, communityID types.HexBytes, addressesToReveal []string) ([]account.SignParams, error)

func (*Messenger) GenerateJoiningCommunityRequestsForSigning added in v0.171.9

func (m *Messenger) GenerateJoiningCommunityRequestsForSigning(memberPubKey string, communityID types.HexBytes, addressesToReveal []string) ([]account.SignParams, error)

func (*Messenger) GetActivityCenterState added in v0.131.8

func (m *Messenger) GetActivityCenterState() (*ActivityCenterState, error)

func (*Messenger) GetAllCommunityTokens added in v0.148.4

func (m *Messenger) GetAllCommunityTokens() ([]*token.CommunityToken, error)

func (*Messenger) GetBrowsers added in v0.106.1

func (m *Messenger) GetBrowsers(ctx context.Context) (browsers []*browsers.Browser, err error)

func (*Messenger) GetCollectiblePreferences added in v0.172.6

func (m *Messenger) GetCollectiblePreferences() ([]walletsettings.CollectiblePreferences, error)

func (*Messenger) GetCommunitiesSettings added in v0.96.4

func (m *Messenger) GetCommunitiesSettings() ([]communities.CommunitySettings, error)

func (*Messenger) GetCommunityByID added in v0.94.12

func (m *Messenger) GetCommunityByID(communityID types.HexBytes) (*communities.Community, error)

func (*Messenger) GetCommunityCheckChannelPermissionResponses added in v0.159.7

func (m *Messenger) GetCommunityCheckChannelPermissionResponses(communityID types.HexBytes) (*communities.CheckAllChannelsPermissionsResponse, error)

func (*Messenger) GetCommunityMemberAllMessages added in v0.177.0

func (m *Messenger) GetCommunityMemberAllMessages(request *requests.CommunityMemberMessages) ([]*common.Message, error)

func (*Messenger) GetCommunityMembersForWalletAddresses added in v0.163.8

func (m *Messenger) GetCommunityMembersForWalletAddresses(communityID types.HexBytes, chainID uint64) (map[string]*Contact, error)

func (*Messenger) GetCommunityPermissionedBalances added in v0.174.3

func (m *Messenger) GetCommunityPermissionedBalances(request *requests.GetPermissionedBalances) (map[gethcommon.Address][]communities.PermissionedBalance, error)

func (*Messenger) GetCommunityStorenodes added in v0.175.3

func (m *Messenger) GetCommunityStorenodes(communityID types.HexBytes) (*MessengerResponse, error)

func (*Messenger) GetCommunityToken added in v0.167.5

func (m *Messenger) GetCommunityToken(communityID string, chainID int, address string) (*token.CommunityToken, error)

func (*Messenger) GetCommunityTokens added in v0.133.2

func (m *Messenger) GetCommunityTokens(communityID string) ([]*token.CommunityToken, error)

func (*Messenger) GetContactByID added in v0.44.2

func (m *Messenger) GetContactByID(pubKey string) *Contact

GetContactByID returns a Contact for given pubKey, if it's known. This function automatically checks if pubKey is self identity key and returns a Contact filled with self information. pubKey is assumed to include `0x` prefix

func (*Messenger) GetCurrentTimeInMillis added in v0.171.3

func (m *Messenger) GetCurrentTimeInMillis() uint64

func (*Messenger) GetCurrentUserStatus added in v0.83.2

func (m *Messenger) GetCurrentUserStatus() (*UserStatus, error)

func (*Messenger) GetDeleteForMeMessages added in v0.151.4

func (m *Messenger) GetDeleteForMeMessages() ([]*protobuf.SyncDeleteForMeMessage, error)

func (*Messenger) GetGroupChatInvitations added in v0.60.0

func (m *Messenger) GetGroupChatInvitations() ([]*GroupChatInvitation, error)

func (*Messenger) GetLatestContactRequestForContact added in v0.176.3

func (m *Messenger) GetLatestContactRequestForContact(contactID string) (*MessengerResponse, error)

func (*Messenger) GetLatestVerificationRequestFrom added in v0.114.1

func (m *Messenger) GetLatestVerificationRequestFrom(contactID string) (*verification.Request, error)

func (*Messenger) GetMentionsManager added in v0.143.1

func (m *Messenger) GetMentionsManager() *MentionManager

func (*Messenger) GetOwnPrimaryName added in v0.167.5

func (m *Messenger) GetOwnPrimaryName() (string, error)

func (*Messenger) GetProfileShowcaseAccountsByAddress added in v0.172.10

func (m *Messenger) GetProfileShowcaseAccountsByAddress(address string) ([]*identity.ProfileShowcaseAccount, error)

func (*Messenger) GetProfileShowcaseEntriesLimit added in v0.176.7

func (m *Messenger) GetProfileShowcaseEntriesLimit() (int, error)

func (*Messenger) GetProfileShowcaseForContact added in v0.171.12

func (m *Messenger) GetProfileShowcaseForContact(contactID string, validate bool) (*identity.ProfileShowcase, error)

func (*Messenger) GetProfileShowcaseForSelfIdentity added in v0.171.12

func (m *Messenger) GetProfileShowcaseForSelfIdentity() (*protobuf.ProfileShowcase, error)

func (*Messenger) GetProfileShowcasePreferences added in v0.171.5

func (m *Messenger) GetProfileShowcasePreferences() (*identity.ProfileShowcasePreferences, error)

func (*Messenger) GetProfileShowcaseSocialLinksLimit added in v0.176.7

func (m *Messenger) GetProfileShowcaseSocialLinksLimit() (int, error)

func (*Messenger) GetPushNotificationsServers added in v0.59.0

func (m *Messenger) GetPushNotificationsServers() ([]*pushnotificationclient.PushNotificationServer, error)

GetPushNotificationsServers returns the servers used for push notifications

func (*Messenger) GetReceivedVerificationRequests added in v0.102.6

func (m *Messenger) GetReceivedVerificationRequests(ctx context.Context) ([]*verification.Request, error)

func (*Messenger) GetRevealedAccounts added in v0.163.4

func (m *Messenger) GetRevealedAccounts(communityID types.HexBytes, memberPk string) ([]*protobuf.RevealedAccount, error)

func (*Messenger) GetRevealedAccountsForAllMembers added in v0.163.4

func (m *Messenger) GetRevealedAccountsForAllMembers(communityID types.HexBytes) (map[string][]*protobuf.RevealedAccount, error)

func (*Messenger) GetSavedAddresses added in v0.172.5

func (m *Messenger) GetSavedAddresses(ctx context.Context) ([]*wallet.SavedAddress, error)

func (*Messenger) GetSelfContact added in v0.171.21

func (m *Messenger) GetSelfContact() *Contact
func (m *Messenger) GetSocialLinks() (identity.SocialLinks, error)

func (*Messenger) GetStats added in v0.83.8

func (m *Messenger) GetStats() types.StatsSummary

func (*Messenger) GetTextURLsToUnfurl added in v0.171.21

func (m *Messenger) GetTextURLsToUnfurl(text string) *URLsUnfurlPlan

func (*Messenger) GetTokenPreferences added in v0.171.27

func (m *Messenger) GetTokenPreferences() ([]walletsettings.TokenPreferences, error)

func (*Messenger) GetTransport added in v0.177.0

func (m *Messenger) GetTransport() *transport.Transport

func (*Messenger) GetTrustStatus added in v0.102.6

func (m *Messenger) GetTrustStatus(contactID string) (verification.TrustStatus, error)

func (*Messenger) GetURLs deprecated added in v0.171.21

func (m *Messenger) GetURLs(text string) []string

Deprecated: GetURLs is deprecated in favor of more generic GetTextURLsToUnfurl.

This is a wrapper around GetTextURLsToUnfurl that returns the list of URLs found in the text without any additional information.

func (*Messenger) GetVerificationRequestSentTo added in v0.102.6

func (m *Messenger) GetVerificationRequestSentTo(ctx context.Context, contactID string) (*verification.Request, error)

func (*Messenger) GetWalletConnectSession added in v0.105.1

func (m *Messenger) GetWalletConnectSession() ([]WalletConnectSession, error)

func (*Messenger) HandleAcceptContactRequest added in v0.100.0

func (m *Messenger) HandleAcceptContactRequest(state *ReceivedMessageState, message *protobuf.AcceptContactRequest, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleAcceptContactVerification added in v0.102.6

func (m *Messenger) HandleAcceptContactVerification(state *ReceivedMessageState, request *protobuf.AcceptContactVerification, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleAcceptRequestAddressForTransaction added in v0.80.3

func (m *Messenger) HandleAcceptRequestAddressForTransaction(messageState *ReceivedMessageState, command *protobuf.AcceptRequestAddressForTransaction, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleAnonymousMetricBatch added in v0.86.2

func (m *Messenger) HandleAnonymousMetricBatch(state *ReceivedMessageState, amb *protobuf.AnonymousMetricBatch, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleBackup added in v0.90.0

func (m *Messenger) HandleBackup(state *ReceivedMessageState, message *protobuf.Backup, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCancelContactVerification added in v0.117.1

func (m *Messenger) HandleCancelContactVerification(state *ReceivedMessageState, request *protobuf.CancelContactVerification, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleChatIdentity added in v0.80.3

func (m *Messenger) HandleChatIdentity(state *ReceivedMessageState, ci *protobuf.ChatIdentity, statusMessage *v1protocol.StatusMessage) error

HandleChatIdentity handles an incoming protobuf.ChatIdentity extracts contact information stored in the protobuf and adds it to the user's contact for update.

func (*Messenger) HandleChatMessage added in v0.80.3

func (m *Messenger) HandleChatMessage(state *ReceivedMessageState, message *protobuf.ChatMessage, statusMessage *v1protocol.StatusMessage, fromArchive bool) error

func (*Messenger) HandleCommunityCancelRequestToJoin added in v0.114.1

func (m *Messenger) HandleCommunityCancelRequestToJoin(state *ReceivedMessageState, cancelRequestToJoinProto *protobuf.CommunityCancelRequestToJoin, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityDescription added in v0.163.14

func (m *Messenger) HandleCommunityDescription(state *ReceivedMessageState, message *protobuf.CommunityDescription, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityEditSharedAddresses added in v0.161.4

func (m *Messenger) HandleCommunityEditSharedAddresses(state *ReceivedMessageState, editRevealedAddressesProto *protobuf.CommunityEditSharedAddresses, statusMessage *v1protocol.StatusMessage) error

HandleCommunityEditSharedAddresses handles an edit a user has made to their shared addresses

func (*Messenger) HandleCommunityEventsMessage added in v0.163.14

func (m *Messenger) HandleCommunityEventsMessage(state *ReceivedMessageState, message *protobuf.CommunityEventsMessage, statusMessage *v1protocol.StatusMessage) error
func (m *Messenger) HandleCommunityMessageArchiveMagnetlink(state *ReceivedMessageState, message *protobuf.CommunityMessageArchiveMagnetlink, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityPrivilegedUserSyncMessage added in v0.163.14

func (m *Messenger) HandleCommunityPrivilegedUserSyncMessage(state *ReceivedMessageState, message *protobuf.CommunityPrivilegedUserSyncMessage, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityPublicShardInfo added in v0.171.39

func (m *Messenger) HandleCommunityPublicShardInfo(state *ReceivedMessageState, a *protobuf.CommunityPublicShardInfo, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityPublicStorenodesInfo added in v0.175.3

func (m *Messenger) HandleCommunityPublicStorenodesInfo(state *ReceivedMessageState, a *protobuf.CommunityPublicStorenodesInfo, statusMessage *v1protocol.StatusMessage) error

HandleCommunityPublicStorenodesInfo will process the control message sent by the community owner on updating the community storenodes for his community (sendCommunityPublicStorenodesInfo). The message will be received by many peers that are not interested on that community, so if we don't have this community in our DB we just ignore this message.

func (*Messenger) HandleCommunityReevaluatePermissionsRequest added in v0.176.7

func (m *Messenger) HandleCommunityReevaluatePermissionsRequest(state *ReceivedMessageState, request *protobuf.CommunityReevaluatePermissionsRequest, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityRequestToJoin added in v0.80.3

func (m *Messenger) HandleCommunityRequestToJoin(state *ReceivedMessageState, requestToJoinProto *protobuf.CommunityRequestToJoin, statusMessage *v1protocol.StatusMessage) error

HandleCommunityRequestToJoin handles an community request to join

func (*Messenger) HandleCommunityRequestToJoinResponse added in v0.103.2

func (m *Messenger) HandleCommunityRequestToJoinResponse(state *ReceivedMessageState, requestToJoinResponseProto *protobuf.CommunityRequestToJoinResponse, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityRequestToLeave added in v0.106.3

func (m *Messenger) HandleCommunityRequestToLeave(state *ReceivedMessageState, requestToLeaveProto *protobuf.CommunityRequestToLeave, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityShardKey added in v0.170.0

func (m *Messenger) HandleCommunityShardKey(state *ReceivedMessageState, message *protobuf.CommunityShardKey, statusMessage *v1protocol.StatusMessage) error

HandleCommunityShardKey handles the private keys for the community shards

func (*Messenger) HandleCommunityUpdateGrant added in v0.179.5

func (m *Messenger) HandleCommunityUpdateGrant(state *ReceivedMessageState, message *protobuf.CommunityUpdateGrant, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleCommunityUserKicked added in v0.174.0

func (m *Messenger) HandleCommunityUserKicked(state *ReceivedMessageState, message *protobuf.CommunityUserKicked, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleContactCodeAdvertisement added in v0.163.14

func (m *Messenger) HandleContactCodeAdvertisement(state *ReceivedMessageState, cca *protobuf.ContactCodeAdvertisement, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleContactUpdate added in v0.80.3

func (m *Messenger) HandleContactUpdate(state *ReceivedMessageState, message *protobuf.ContactUpdate, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleDeclineContactVerification added in v0.102.6

func (m *Messenger) HandleDeclineContactVerification(state *ReceivedMessageState, request *protobuf.DeclineContactVerification, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleDeclineRequestAddressForTransaction added in v0.80.3

func (m *Messenger) HandleDeclineRequestAddressForTransaction(messageState *ReceivedMessageState, command *protobuf.DeclineRequestAddressForTransaction, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleDeclineRequestTransaction added in v0.80.3

func (m *Messenger) HandleDeclineRequestTransaction(messageState *ReceivedMessageState, command *protobuf.DeclineRequestTransaction, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleDeleteCommunityMemberMessages added in v0.177.0

func (m *Messenger) HandleDeleteCommunityMemberMessages(state *ReceivedMessageState, request *protobuf.DeleteCommunityMemberMessages, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleDeleteMessage added in v0.83.2

func (m *Messenger) HandleDeleteMessage(state *ReceivedMessageState, deleteProto *protobuf.DeleteMessage, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleEditMessage added in v0.80.3

func (m *Messenger) HandleEditMessage(state *ReceivedMessageState, editProto *protobuf.EditMessage, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleEmojiReaction added in v0.80.3

func (m *Messenger) HandleEmojiReaction(state *ReceivedMessageState, pbEmojiR *protobuf.EmojiReaction, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleGroupChatInvitation added in v0.80.3

func (m *Messenger) HandleGroupChatInvitation(state *ReceivedMessageState, pbGHInvitations *protobuf.GroupChatInvitation, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleHistoryArchiveMagnetlinkMessage added in v0.100.0

func (m *Messenger) HandleHistoryArchiveMagnetlinkMessage(state *ReceivedMessageState, communityPubKey *ecdsa.PublicKey, magnetlink string, clock uint64) error

func (*Messenger) HandleMembershipUpdate added in v0.80.3

func (m *Messenger) HandleMembershipUpdate(messageState *ReceivedMessageState, chat *Chat, rawMembershipUpdate *protobuf.MembershipUpdateMessage, translations *systemMessageTranslationsMap) error

func (*Messenger) HandleMembershipUpdateMessage added in v0.163.14

func (m *Messenger) HandleMembershipUpdateMessage(messageState *ReceivedMessageState, rawMembershipUpdate *protobuf.MembershipUpdateMessage, statusMessage *v1protocol.StatusMessage) error

HandleMembershipUpdate updates a Chat instance according to the membership updates. It retrieves chat, if exists, and merges membership updates from the message. Finally, the Chat is updated with the new group events.

func (*Messenger) HandlePinMessage added in v0.80.3

func (m *Messenger) HandlePinMessage(state *ReceivedMessageState, message *protobuf.PinMessage, statusMessage *v1protocol.StatusMessage, fromArchive bool) error

func (*Messenger) HandlePushNotificationQuery added in v0.163.14

func (m *Messenger) HandlePushNotificationQuery(state *ReceivedMessageState, message *protobuf.PushNotificationQuery, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandlePushNotificationQueryResponse added in v0.163.14

func (m *Messenger) HandlePushNotificationQueryResponse(state *ReceivedMessageState, message *protobuf.PushNotificationQueryResponse, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandlePushNotificationRegistration added in v0.163.14

func (m *Messenger) HandlePushNotificationRegistration(state *ReceivedMessageState, encryptedRegistration []byte, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandlePushNotificationRegistrationResponse added in v0.163.14

func (m *Messenger) HandlePushNotificationRegistrationResponse(state *ReceivedMessageState, message *protobuf.PushNotificationRegistrationResponse, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandlePushNotificationRequest added in v0.163.14

func (m *Messenger) HandlePushNotificationRequest(state *ReceivedMessageState, message *protobuf.PushNotificationRequest, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandlePushNotificationResponse added in v0.163.14

func (m *Messenger) HandlePushNotificationResponse(state *ReceivedMessageState, message *protobuf.PushNotificationResponse, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleRequestAddressForTransaction added in v0.80.3

func (m *Messenger) HandleRequestAddressForTransaction(messageState *ReceivedMessageState, command *protobuf.RequestAddressForTransaction, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleRequestContactVerification added in v0.102.6

func (m *Messenger) HandleRequestContactVerification(state *ReceivedMessageState, request *protobuf.RequestContactVerification, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleRequestTransaction added in v0.80.3

func (m *Messenger) HandleRequestTransaction(messageState *ReceivedMessageState, command *protobuf.RequestTransaction, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleRetractContactRequest added in v0.100.0

func (m *Messenger) HandleRetractContactRequest(state *ReceivedMessageState, message *protobuf.RetractContactRequest, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSendTransaction added in v0.80.3

func (m *Messenger) HandleSendTransaction(messageState *ReceivedMessageState, command *protobuf.SendTransaction, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleStatusUpdate added in v0.83.2

func (m *Messenger) HandleStatusUpdate(state *ReceivedMessageState, message *protobuf.StatusUpdate, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncAccount added in v0.163.14

func (m *Messenger) HandleSyncAccount(state *ReceivedMessageState, message *protobuf.SyncAccount, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncAccountCustomizationColor added in v0.163.14

func (m *Messenger) HandleSyncAccountCustomizationColor(state *ReceivedMessageState, message *protobuf.SyncAccountCustomizationColor, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncAccountsPositions added in v0.162.9

func (m *Messenger) HandleSyncAccountsPositions(state *ReceivedMessageState, message *protobuf.SyncAccountsPositions, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncActivityCenterAccepted added in v0.163.14

func (m *Messenger) HandleSyncActivityCenterAccepted(state *ReceivedMessageState, message *protobuf.SyncActivityCenterAccepted, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncActivityCenterCommunityRequestDecision added in v0.171.7

func (m *Messenger) HandleSyncActivityCenterCommunityRequestDecision(state *ReceivedMessageState, a *protobuf.SyncActivityCenterCommunityRequestDecision, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncActivityCenterDeleted added in v0.171.3

func (m *Messenger) HandleSyncActivityCenterDeleted(state *ReceivedMessageState, message *protobuf.SyncActivityCenterDeleted, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncActivityCenterDismissed added in v0.163.14

func (m *Messenger) HandleSyncActivityCenterDismissed(state *ReceivedMessageState, message *protobuf.SyncActivityCenterDismissed, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncActivityCenterRead added in v0.163.14

func (m *Messenger) HandleSyncActivityCenterRead(state *ReceivedMessageState, message *protobuf.SyncActivityCenterRead, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncActivityCenterUnread added in v0.171.3

func (m *Messenger) HandleSyncActivityCenterUnread(state *ReceivedMessageState, message *protobuf.SyncActivityCenterUnread, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncBookmark added in v0.163.14

func (m *Messenger) HandleSyncBookmark(state *ReceivedMessageState, message *protobuf.SyncBookmark, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncChat added in v0.171.1

func (m *Messenger) HandleSyncChat(state *ReceivedMessageState, message *protobuf.SyncChat, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncChatMessagesRead added in v0.89.18

func (m *Messenger) HandleSyncChatMessagesRead(state *ReceivedMessageState, message *protobuf.SyncChatMessagesRead, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncChatRemoved added in v0.89.7

func (m *Messenger) HandleSyncChatRemoved(state *ReceivedMessageState, message *protobuf.SyncChatRemoved, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncClearHistory added in v0.163.14

func (m *Messenger) HandleSyncClearHistory(state *ReceivedMessageState, message *protobuf.SyncClearHistory, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncCollectiblePreferences added in v0.172.6

func (m *Messenger) HandleSyncCollectiblePreferences(state *ReceivedMessageState, message *protobuf.SyncCollectiblePreferences, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncCommunitySettings added in v0.163.14

func (m *Messenger) HandleSyncCommunitySettings(messageState *ReceivedMessageState, syncCommunitySettings *protobuf.SyncCommunitySettings, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncContactRequestDecision added in v0.106.2

func (m *Messenger) HandleSyncContactRequestDecision(state *ReceivedMessageState, message *protobuf.SyncContactRequestDecision, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncDeleteForMeMessage added in v0.163.14

func (m *Messenger) HandleSyncDeleteForMeMessage(state *ReceivedMessageState, deleteForMeMessage *protobuf.SyncDeleteForMeMessage, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncEnsUsernameDetail added in v0.163.14

func (m *Messenger) HandleSyncEnsUsernameDetail(state *ReceivedMessageState, syncMessage *protobuf.SyncEnsUsernameDetail, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncInstallationAccount added in v0.163.14

func (m *Messenger) HandleSyncInstallationAccount(state *ReceivedMessageState, message *protobuf.SyncInstallationAccount, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncInstallationCommunity added in v0.163.14

func (m *Messenger) HandleSyncInstallationCommunity(messageState *ReceivedMessageState, syncCommunity *protobuf.SyncInstallationCommunity, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncInstallationContactV2 added in v0.163.14

func (m *Messenger) HandleSyncInstallationContactV2(state *ReceivedMessageState, message *protobuf.SyncInstallationContactV2, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncKeypair added in v0.152.2

func (m *Messenger) HandleSyncKeypair(state *ReceivedMessageState, message *protobuf.SyncKeypair, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncPairInstallation added in v0.163.14

func (m *Messenger) HandleSyncPairInstallation(state *ReceivedMessageState, message *protobuf.SyncPairInstallation, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncProfilePictures added in v0.98.4

func (m *Messenger) HandleSyncProfilePictures(state *ReceivedMessageState, message *protobuf.SyncProfilePictures, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncProfileShowcasePreferences added in v0.175.1

func (m *Messenger) HandleSyncProfileShowcasePreferences(state *ReceivedMessageState, p *protobuf.SyncProfileShowcasePreferences, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncRawMessages added in v0.118.0

func (m *Messenger) HandleSyncRawMessages(rawMessages []*protobuf.RawMessage) error

func (*Messenger) HandleSyncSavedAddress added in v0.163.14

func (m *Messenger) HandleSyncSavedAddress(state *ReceivedMessageState, syncMessage *protobuf.SyncSavedAddress, statusMessage *v1protocol.StatusMessage) (err error)

func (*Messenger) HandleSyncSetting added in v0.163.14

func (m *Messenger) HandleSyncSetting(messageState *ReceivedMessageState, message *protobuf.SyncSetting, statusMessage *v1protocol.StatusMessage) error
func (m *Messenger) HandleSyncSocialLinks(state *ReceivedMessageState, message *protobuf.SyncSocialLinks, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncTokenPreferences added in v0.171.27

func (m *Messenger) HandleSyncTokenPreferences(state *ReceivedMessageState, message *protobuf.SyncTokenPreferences, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncTrustedUser added in v0.163.14

func (m *Messenger) HandleSyncTrustedUser(state *ReceivedMessageState, message *protobuf.SyncTrustedUser, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HandleSyncVerificationRequest added in v0.163.14

func (m *Messenger) HandleSyncVerificationRequest(state *ReceivedMessageState, message *protobuf.SyncVerificationRequest, statusMessage *v1protocol.StatusMessage) error

func (*Messenger) HasPairedDevices added in v0.134.0

func (m *Messenger) HasPairedDevices() bool

func (*Messenger) HasUnseenActivityCenterNotifications added in v0.131.8

func (m *Messenger) HasUnseenActivityCenterNotifications() (bool, error)

func (*Messenger) IdentityPublicKey added in v0.94.12

func (m *Messenger) IdentityPublicKey() *ecdsa.PublicKey

func (*Messenger) IdentityPublicKeyCompressed added in v0.134.0

func (m *Messenger) IdentityPublicKeyCompressed() []byte

func (*Messenger) IdentityPublicKeyString added in v0.162.1

func (m *Messenger) IdentityPublicKeyString() string

func (*Messenger) ImageServerURL added in v0.94.6

func (m *Messenger) ImageServerURL() string

func (*Messenger) ImportCommunity added in v0.67.0

func (m *Messenger) ImportCommunity(ctx context.Context, key *ecdsa.PrivateKey) (*MessengerResponse, error)

func (*Messenger) Init

func (m *Messenger) Init() error

Init analyzes chats and contacts in order to setup filters which are responsible for retrieving messages.

func (*Messenger) InitCommunityFilters added in v0.171.21

func (m *Messenger) InitCommunityFilters(communityFiltersToInitialize []transport.CommunityFilterToInitialize) ([]*transport.Filter, error)

func (*Messenger) InitHistoryArchiveTasks added in v0.98.1

func (m *Messenger) InitHistoryArchiveTasks(communities []*communities.Community)

func (*Messenger) Installations

func (m *Messenger) Installations() []*multidevice.Installation

func (*Messenger) IsDisplayNameDupeOfCommunityMember added in v0.176.3

func (m *Messenger) IsDisplayNameDupeOfCommunityMember(name string) (bool, error)

func (*Messenger) Join

func (m *Messenger) Join(chat *Chat) ([]*transport.Filter, error)

func (*Messenger) JoinCommunity added in v0.67.0

func (m *Messenger) JoinCommunity(ctx context.Context, communityID types.HexBytes, forceJoin bool) (*MessengerResponse, error)

func (*Messenger) JoinedCommunities added in v0.67.0

func (m *Messenger) JoinedCommunities() ([]*communities.Community, error)

func (*Messenger) KeycardLocked added in v0.133.2

func (m *Messenger) KeycardLocked(ctx context.Context, keycardUID string) error

func (*Messenger) KeycardUnlocked added in v0.133.2

func (m *Messenger) KeycardUnlocked(ctx context.Context, keycardUID string) error

func (*Messenger) LeaveCommunity added in v0.67.0

func (m *Messenger) LeaveCommunity(communityID types.HexBytes) (*MessengerResponse, error)

func (*Messenger) LeaveGroupChat

func (m *Messenger) LeaveGroupChat(ctx context.Context, chatID string, remove bool) (*MessengerResponse, error)

func (*Messenger) ListenAddresses added in v0.115.4

func (m *Messenger) ListenAddresses() ([]string, error)

func (*Messenger) LoadFilters

func (m *Messenger) LoadFilters(filters []*transport.Filter) ([]*transport.Filter, error)

func (*Messenger) Mailservers

func (m *Messenger) Mailservers() ([]string, error)

NOT IMPLEMENTED

func (*Messenger) MarkActivityCenterNotificationsDeleted added in v0.171.3

func (m *Messenger) MarkActivityCenterNotificationsDeleted(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error)

func (*Messenger) MarkActivityCenterNotificationsRead added in v0.80.2

func (m *Messenger) MarkActivityCenterNotificationsRead(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error)

func (*Messenger) MarkActivityCenterNotificationsUnread added in v0.91.0

func (m *Messenger) MarkActivityCenterNotificationsUnread(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error)

func (*Messenger) MarkAllActivityCenterNotificationsRead added in v0.76.0

func (m *Messenger) MarkAllActivityCenterNotificationsRead(ctx context.Context) (*MessengerResponse, error)

func (*Messenger) MarkAllRead added in v0.47.0

func (m *Messenger) MarkAllRead(ctx context.Context, chatID string) (*MessengerResponse, error)

func (*Messenger) MarkAllReadInCommunity added in v0.87.0

func (m *Messenger) MarkAllReadInCommunity(ctx context.Context, communityID string) (*MessengerResponse, error)

func (*Messenger) MarkAsSeenActivityCenterNotifications added in v0.131.8

func (m *Messenger) MarkAsSeenActivityCenterNotifications() (*MessengerResponse, error)

func (*Messenger) MarkAsTrusted added in v0.102.6

func (m *Messenger) MarkAsTrusted(ctx context.Context, contactID string) error

func (*Messenger) MarkAsUntrustworthy added in v0.102.6

func (m *Messenger) MarkAsUntrustworthy(ctx context.Context, contactID string) error

func (*Messenger) MarkDiscordChannelImportAsCancelled added in v0.171.6

func (m *Messenger) MarkDiscordChannelImportAsCancelled(channelID string)

func (*Messenger) MarkDiscordCommunityImportAsCancelled added in v0.114.1

func (m *Messenger) MarkDiscordCommunityImportAsCancelled(communityID string)

func (*Messenger) MarkKeypairFullyOperable added in v0.163.4

func (m *Messenger) MarkKeypairFullyOperable(keyUID string) error

func (*Messenger) MarkMessageAsUnread added in v0.171.31

func (m *Messenger) MarkMessageAsUnread(chatID string, messageID string) (*MessengerResponse, error)

func (*Messenger) MarkMessagesRead added in v0.171.40

func (m *Messenger) MarkMessagesRead(chatID string, ids []string) (*MessengerResponse, error)

func (*Messenger) MarkMessagesSeen deprecated

func (m *Messenger) MarkMessagesSeen(chatID string, ids []string) (uint64, uint64, []*ActivityCenterNotification, error)

Deprecated: Use MarkMessagesRead instead

func (*Messenger) MessageByChatID

func (m *Messenger) MessageByChatID(chatID, cursor string, limit int) ([]*common.Message, string, error)

func (*Messenger) MessageByID

func (m *Messenger) MessageByID(id string) (*common.Message, error)

func (*Messenger) MessagesExist

func (m *Messenger) MessagesExist(ids []string) (map[string]bool, error)

func (*Messenger) MoveWalletAccount added in v0.162.9

func (m *Messenger) MoveWalletAccount(fromPosition int64, toPosition int64) error

func (*Messenger) MuteAllCommunityChats added in v0.162.5

func (m *Messenger) MuteAllCommunityChats(request *requests.MuteCommunity) (time.Time, error)

func (*Messenger) MuteChat added in v0.56.1

func (m *Messenger) MuteChat(request *requests.MuteChat) (time.Time, error)

MuteChat signals to the messenger that we don't want to be notified on new messages from this chat

func (*Messenger) MuteChatV2 added in v0.145.2

func (m *Messenger) MuteChatV2(muteParams *requests.MuteChat) (time.Time, error)

func (*Messenger) MuteCommunityTill added in v0.162.5

func (m *Messenger) MuteCommunityTill(communityID []byte, muteTill time.Time) error

func (*Messenger) MuteDuration added in v0.162.5

func (m *Messenger) MuteDuration(mutedType requests.MutingVariation) (time.Time, error)

func (*Messenger) MutualContacts added in v0.100.0

func (m *Messenger) MutualContacts() []*Contact

func (*Messenger) MyCanceledRequestToJoinForCommunityID added in v0.171.30

func (m *Messenger) MyCanceledRequestToJoinForCommunityID(communityID []byte) (*communities.RequestToJoin, error)

func (*Messenger) MyCanceledRequestsToJoin added in v0.114.1

func (m *Messenger) MyCanceledRequestsToJoin() ([]*communities.RequestToJoin, error)

func (*Messenger) MyPendingRequestsToJoin added in v0.72.0

func (m *Messenger) MyPendingRequestsToJoin() ([]*communities.RequestToJoin, error)

func (*Messenger) OnDatasyncAcks added in v0.172.10

func (m *Messenger) OnDatasyncAcks(sender *ecdsa.PublicKey, acks [][]byte)

func (*Messenger) OnDatasyncOffer added in v0.172.10

func (m *Messenger) OnDatasyncOffer(response *common.HandleMessageResponse) error

func (*Messenger) OnDatasyncRequests added in v0.172.10

func (m *Messenger) OnDatasyncRequests(requester *ecdsa.PublicKey, messageIDs [][]byte) error

func (*Messenger) Online added in v0.172.1

func (m *Messenger) Online() bool

func (*Messenger) Peers added in v0.88.4

func (m *Messenger) Peers() map[string]types.WakuV2Peer

func (*Messenger) PendingContactRequests added in v0.100.0

func (m *Messenger) PendingContactRequests(cursor string, limit int) ([]*common.Message, string, error)

func (*Messenger) PendingNotificationContactRequest added in v0.102.2

func (m *Messenger) PendingNotificationContactRequest(contactID string) (*ActivityCenterNotification, error)

func (*Messenger) PendingRequestsToJoinForCommunity added in v0.72.0

func (m *Messenger) PendingRequestsToJoinForCommunity(id types.HexBytes) ([]*communities.RequestToJoin, error)

func (*Messenger) PinnedMessageByChatID added in v0.78.0

func (m *Messenger) PinnedMessageByChatID(chatID, cursor string, limit int) ([]*common.PinnedMessage, string, error)

func (*Messenger) ProcessAllMessages added in v0.171.21

func (m *Messenger) ProcessAllMessages()

func (*Messenger) PromoteSelfToControlNode added in v0.171.5

func (m *Messenger) PromoteSelfToControlNode(communityID types.HexBytes) (*MessengerResponse, error)

func (*Messenger) PublishIdentityImage added in v0.89.10

func (m *Messenger) PublishIdentityImage() error

func (*Messenger) PublishMessengerResponse added in v0.171.21

func (m *Messenger) PublishMessengerResponse(response *MessengerResponse)

func (*Messenger) ReSendChatMessage

func (m *Messenger) ReSendChatMessage(ctx context.Context, messageID string) error

ReSendChatMessage pulls a message from the database and sends it again

func (*Messenger) ReevaluateCommunityMembersPermissions added in v0.163.14

func (m *Messenger) ReevaluateCommunityMembersPermissions(request *requests.ReevaluateCommunityMembersPermissions) (*MessengerResponse, error)

func (*Messenger) RegisterForPushNotifications added in v0.56.1

func (m *Messenger) RegisterForPushNotifications(ctx context.Context, deviceToken, apnTopic string, tokenType protobuf.PushNotificationRegistration_TokenType) error

RegisterForPushNotification register deviceToken with any push notification server enabled

func (*Messenger) RegisteredForPushNotifications added in v0.56.1

func (m *Messenger) RegisteredForPushNotifications() (bool, error)

RegisteredForPushNotifications returns whether we successfully registered with all the servers

func (*Messenger) RemoveBookmark added in v0.102.2

func (m *Messenger) RemoveBookmark(ctx context.Context, url string) error

func (*Messenger) RemoveCommunityToken added in v0.162.13

func (m *Messenger) RemoveCommunityToken(chainID int, contractAddress string) error

func (*Messenger) RemoveContact added in v0.68.4

func (m *Messenger) RemoveContact(ctx context.Context, pubKey string) (*MessengerResponse, error)

func (*Messenger) RemoveFilters

func (m *Messenger) RemoveFilters(filters []*transport.Filter) error

func (*Messenger) RemoveMailserver

func (m *Messenger) RemoveMailserver(id string) error

NOT IMPLEMENTED

func (*Messenger) RemoveMembersFromGroupChat added in v0.117.1

func (m *Messenger) RemoveMembersFromGroupChat(ctx context.Context, chatID string, members []string) (*MessengerResponse, error)

func (*Messenger) RemovePrivateKey added in v0.162.9

func (m *Messenger) RemovePrivateKey(id types.HexBytes) (*MessengerResponse, error)

func (*Messenger) RemovePubsubTopicPrivateKey added in v0.172.11

func (m *Messenger) RemovePubsubTopicPrivateKey(topic string) error

func (*Messenger) RemovePushNotificationServer added in v0.56.1

func (m *Messenger) RemovePushNotificationServer(ctx context.Context, publicKey *ecdsa.PublicKey) error

RemovePushNotificationServer removes a push notification server

func (*Messenger) RemoveRoleFromMember added in v0.115.5

func (m *Messenger) RemoveRoleFromMember(request *requests.RemoveRoleFromMember) (*MessengerResponse, error)

func (*Messenger) RemoveTrustStatus added in v0.102.6

func (m *Messenger) RemoveTrustStatus(ctx context.Context, contactID string) error

func (*Messenger) RemoveTrustVerificationStatus added in v0.179.6

func (m *Messenger) RemoveTrustVerificationStatus(ctx context.Context, contactID string) (*MessengerResponse, error)

func (*Messenger) RemoveUserFromCommunity added in v0.67.0

func (m *Messenger) RemoveUserFromCommunity(id types.HexBytes, pkString string) (*MessengerResponse, error)

func (*Messenger) ReorderCommunityCategories added in v0.79.3

func (m *Messenger) ReorderCommunityCategories(request *requests.ReorderCommunityCategories) (*MessengerResponse, error)

func (*Messenger) ReorderCommunityChat added in v0.79.3

func (m *Messenger) ReorderCommunityChat(request *requests.ReorderCommunityChat) (*MessengerResponse, error)

func (*Messenger) RequestAddressForTransaction

func (m *Messenger) RequestAddressForTransaction(ctx context.Context, chatID, from, value, contract string) (*MessengerResponse, error)

func (*Messenger) RequestAllHistoricMessages added in v0.79.0

func (m *Messenger) RequestAllHistoricMessages(forceFetchingBackup, withRetries bool) (*MessengerResponse, error)

RequestAllHistoricMessages requests all the historic messages for any topic

func (*Messenger) RequestExtractDiscordChannelsAndCategories added in v0.105.1

func (m *Messenger) RequestExtractDiscordChannelsAndCategories(filesToImport []string)

func (*Messenger) RequestImportDiscordChannel added in v0.171.6

func (m *Messenger) RequestImportDiscordChannel(request *requests.ImportDiscordChannel)

func (*Messenger) RequestImportDiscordCommunity added in v0.114.1

func (m *Messenger) RequestImportDiscordCommunity(request *requests.ImportDiscordCommunity)

func (*Messenger) RequestToJoinCommunity added in v0.72.0

func (m *Messenger) RequestToJoinCommunity(request *requests.RequestToJoinCommunity) (*MessengerResponse, error)

func (*Messenger) RequestTransaction

func (m *Messenger) RequestTransaction(ctx context.Context, chatID, value, contract, address string) (*MessengerResponse, error)

func (*Messenger) ResolvePrimaryName added in v0.167.5

func (m *Messenger) ResolvePrimaryName(mentionID string) (string, error)

func (*Messenger) RetractContactRequest added in v0.100.0

func (m *Messenger) RetractContactRequest(request *requests.RetractContactRequest) (*MessengerResponse, error)

func (*Messenger) RetrieveAll

func (m *Messenger) RetrieveAll() (*MessengerResponse, error)

RetrieveAll retrieves messages from all filters, processes them and returns a MessengerResponse to the client

func (*Messenger) SaveChat

func (m *Messenger) SaveChat(chat *Chat) error

func (*Messenger) SaveCommunityToken added in v0.162.13

func (m *Messenger) SaveCommunityToken(token *token.CommunityToken, croppedImage *images.CroppedImage) (*token.CommunityToken, error)

func (*Messenger) SaveMessages

func (m *Messenger) SaveMessages(messages []*common.Message) error

func (*Messenger) SaveOrUpdateAccount added in v0.152.2

func (m *Messenger) SaveOrUpdateAccount(acc *accounts.Account) error

func (*Messenger) SaveOrUpdateKeycard added in v0.161.6

func (m *Messenger) SaveOrUpdateKeycard(ctx context.Context, keycard *accounts.Keycard) (err error)

This function stores keycard to db and notifies paired devices about that if keycard with `KeycardUID` is not already stored. Keycard position is fully maintained by the backend. If keycard is already stored, this function updates `KeycardName` and adds accounts which are not already added, in this case `KeycardLocked` and `Position` remains as they were, they won't be changed.

func (*Messenger) SaveOrUpdateKeypair added in v0.152.2

func (m *Messenger) SaveOrUpdateKeypair(keypair *accounts.Keypair) error

func (*Messenger) SavePinMessages added in v0.78.0

func (m *Messenger) SavePinMessages(messages []*common.PinMessage) error

func (*Messenger) SaveSyncDisplayName added in v0.142.9

func (m *Messenger) SaveSyncDisplayName(displayName string, clock uint64) error

func (*Messenger) SelectMailserver

func (m *Messenger) SelectMailserver(id string) error

NOT IMPLEMENTED

func (*Messenger) SendChatMessage

func (m *Messenger) SendChatMessage(ctx context.Context, message *common.Message) (*MessengerResponse, error)

SendChatMessage takes a minimal message and sends it based on the corresponding chat

func (*Messenger) SendChatMessages added in v0.64.3

func (m *Messenger) SendChatMessages(ctx context.Context, messages []*common.Message) (*MessengerResponse, error)

SendChatMessages takes a array of messages and sends it based on the corresponding chats

func (*Messenger) SendCommunityShardKey added in v0.170.0

func (m *Messenger) SendCommunityShardKey(community *communities.Community, pubkeys []*ecdsa.PublicKey) error

func (*Messenger) SendContactRequest added in v0.100.0

func (m *Messenger) SendContactRequest(ctx context.Context, request *requests.SendContactRequest) (*MessengerResponse, error)

func (*Messenger) SendContactUpdate

func (m *Messenger) SendContactUpdate(ctx context.Context, chatID, ensName, profileImage string, customizationColor multiaccountscommon.CustomizationColor) (*MessengerResponse, error)

SendContactUpdate sends a contact update to a user and adds the user to contacts

func (*Messenger) SendContactUpdates

func (m *Messenger) SendContactUpdates(ctx context.Context, ensName, profileImage string, customizationColor multiaccountscommon.CustomizationColor) (err error)

Send contact updates to all contacts added by us

func (*Messenger) SendContactVerificationRequest added in v0.102.6

func (m *Messenger) SendContactVerificationRequest(ctx context.Context, contactID string, challenge string) (*MessengerResponse, error)

func (*Messenger) SendEmojiReaction added in v0.56.4

func (m *Messenger) SendEmojiReaction(ctx context.Context, chatID, messageID string, emojiID protobuf.EmojiReaction_Type) (*MessengerResponse, error)

func (*Messenger) SendEmojiReactionRetraction added in v0.56.4

func (m *Messenger) SendEmojiReactionRetraction(ctx context.Context, emojiReactionID string) (*MessengerResponse, error)

func (*Messenger) SendGroupChatInvitationRejection added in v0.60.0

func (m *Messenger) SendGroupChatInvitationRejection(ctx context.Context, invitationRequestID string) (*MessengerResponse, error)

func (*Messenger) SendGroupChatInvitationRequest added in v0.60.0

func (m *Messenger) SendGroupChatInvitationRequest(ctx context.Context, chatID string, adminPK string,
	message string) (*MessengerResponse, error)

func (*Messenger) SendGroupChatMessage added in v0.138.8

func (m *Messenger) SendGroupChatMessage(request *requests.SendGroupChatMessage) (*MessengerResponse, error)

func (*Messenger) SendMessageToControlNode added in v0.171.21

func (m *Messenger) SendMessageToControlNode(community *communities.Community, rawMessage common.RawMessage) ([]byte, error)

func (*Messenger) SendOneToOneMessage added in v0.138.8

func (m *Messenger) SendOneToOneMessage(request *requests.SendOneToOneMessage) (*MessengerResponse, error)

func (*Messenger) SendPairInstallation

func (m *Messenger) SendPairInstallation(ctx context.Context, rawMessageHandler RawMessageHandler) (*MessengerResponse, error)

SendPairInstallation sends a pair installation message

func (*Messenger) SendPinMessage added in v0.78.0

func (m *Messenger) SendPinMessage(ctx context.Context, message *common.PinMessage) (*MessengerResponse, error)

SendPinMessage sends the PinMessage to the corresponding chat

func (*Messenger) SendTransaction

func (m *Messenger) SendTransaction(ctx context.Context, chatID, value, contract, transactionHash string, signature []byte) (*MessengerResponse, error)

func (*Messenger) SetBio added in v0.105.1

func (m *Messenger) SetBio(bio string) error

func (*Messenger) SetCommunityShard added in v0.170.0

func (m *Messenger) SetCommunityShard(request *requests.SetCommunityShard) (*MessengerResponse, error)

func (*Messenger) SetCommunityStorenodes added in v0.175.3

func (m *Messenger) SetCommunityStorenodes(request *requests.SetCommunityStorenodes) (*MessengerResponse, error)

func (*Messenger) SetContactLocalNickname added in v0.90.0

func (m *Messenger) SetContactLocalNickname(request *requests.SetContactLocalNickname) (*MessengerResponse, error)

func (*Messenger) SetCustomNodes added in v0.171.21

func (m *Messenger) SetCustomNodes(request *requests.SetCustomNodes) error

func (*Messenger) SetCustomizationColor added in v0.174.1

func (m *Messenger) SetCustomizationColor(ctx context.Context, request *requests.SetCustomizationColor) error

func (*Messenger) SetDisplayName added in v0.94.12

func (m *Messenger) SetDisplayName(displayName string) error

func (*Messenger) SetInstallationDeviceType added in v0.134.0

func (m *Messenger) SetInstallationDeviceType(deviceType string) error

func (*Messenger) SetInstallationMetadata

func (m *Messenger) SetInstallationMetadata(id string, data *multidevice.InstallationMetadata) error

func (*Messenger) SetInstallationName added in v0.138.8

func (m *Messenger) SetInstallationName(id string, name string) error

func (*Messenger) SetKeycardName added in v0.133.2

func (m *Messenger) SetKeycardName(ctx context.Context, keycardUID string, kpName string) error

func (*Messenger) SetLightClient added in v0.171.21

func (m *Messenger) SetLightClient(request *requests.SetLightClient) error

func (*Messenger) SetLocalPairing added in v0.118.0

func (m *Messenger) SetLocalPairing(localPairing bool)

func (*Messenger) SetLogLevel added in v0.171.21

func (m *Messenger) SetLogLevel(request *requests.SetLogLevel) error

func (*Messenger) SetMutePropertyOnChatsByCategory added in v0.102.6

func (m *Messenger) SetMutePropertyOnChatsByCategory(request *requests.MuteCategory, muted bool) error

func (*Messenger) SetMuted added in v0.81.0

func (m *Messenger) SetMuted(request *requests.MuteCommunity) error

func (*Messenger) SetP2PServer added in v0.93.2

func (m *Messenger) SetP2PServer(server *p2p.Server)

func (*Messenger) SetPinnedMailservers added in v0.96.0

func (m *Messenger) SetPinnedMailservers(mailservers map[string]string) error

func (*Messenger) SetProfileShowcasePreferences added in v0.171.5

func (m *Messenger) SetProfileShowcasePreferences(preferences *identity.ProfileShowcasePreferences, sync bool) error

func (*Messenger) SetUserStatus added in v0.83.2

func (m *Messenger) SetUserStatus(ctx context.Context, newStatus int, newCustomText string) error

func (*Messenger) ShareCommunity added in v0.72.0

func (m *Messenger) ShareCommunity(request *requests.ShareCommunity) (*MessengerResponse, error)

func (*Messenger) ShareCommunityChannelURLWithChatKey added in v0.161.2

func (m *Messenger) ShareCommunityChannelURLWithChatKey(request *requests.CommunityChannelShareURL) (string, error)

func (*Messenger) ShareCommunityChannelURLWithData added in v0.161.2

func (m *Messenger) ShareCommunityChannelURLWithData(request *requests.CommunityChannelShareURL) (string, error)

func (*Messenger) ShareCommunityURLWithChatKey added in v0.161.2

func (m *Messenger) ShareCommunityURLWithChatKey(communityID types.HexBytes) (string, error)

func (*Messenger) ShareCommunityURLWithData added in v0.161.2

func (m *Messenger) ShareCommunityURLWithData(communityID types.HexBytes) (string, error)

func (*Messenger) ShareImageMessage added in v0.94.8

func (m *Messenger) ShareImageMessage(request *requests.ShareImageMessage) (*MessengerResponse, error)

func (*Messenger) ShareUserURLWithChatKey added in v0.161.2

func (m *Messenger) ShareUserURLWithChatKey(contactID string) (string, error)

func (*Messenger) ShareUserURLWithData added in v0.161.2

func (m *Messenger) ShareUserURLWithData(contactID string) (string, error)

func (*Messenger) ShareUserURLWithENS added in v0.161.2

func (m *Messenger) ShareUserURLWithENS(contactID string) (string, error)

func (*Messenger) Shutdown

func (m *Messenger) Shutdown() (err error)

Shutdown takes care of ensuring a clean shutdown of Messenger

func (*Messenger) SignData added in v0.171.9

func (m *Messenger) SignData(signParams []account.SignParams) ([]string, error)

Signs the provided messages with the provided accounts and password. Provided accounts must not belong to a keypair that is migrated to a keycard. Otherwise, the signing will fail, cause such accounts should be signed with a keycard.

func (*Messenger) SignMessage added in v0.56.6

func (m *Messenger) SignMessage(message string) ([]byte, error)

func (*Messenger) SlowdownArchivesImport added in v0.156.1

func (m *Messenger) SlowdownArchivesImport()

func (*Messenger) SpectateCommunity added in v0.111.5

func (m *Messenger) SpectateCommunity(communityID types.HexBytes) (*MessengerResponse, error)

func (*Messenger) SpectatedCommunities added in v0.111.5

func (m *Messenger) SpectatedCommunities() ([]*communities.Community, error)

func (*Messenger) SpeedupArchivesImport added in v0.156.1

func (m *Messenger) SpeedupArchivesImport()

func (*Messenger) SplitFiltersByStoreNode added in v0.175.3

func (m *Messenger) SplitFiltersByStoreNode(filters []*transport.Filter) map[string][]*transport.Filter

func (*Messenger) Start

func (m *Messenger) Start() (*MessengerResponse, error)

func (*Messenger) StartDiscV5 added in v0.91.8

func (m *Messenger) StartDiscV5() error

func (*Messenger) StartMailserverCycle added in v0.93.2

func (m *Messenger) StartMailserverCycle(mailservers []mailservers.Mailserver) error

func (*Messenger) StartPushNotificationsServer added in v0.56.1

func (m *Messenger) StartPushNotificationsServer() error

StartPushNotificationsServer initialize and start a push notification server, using the current messenger identity key

func (*Messenger) StartRetrieveMessagesLoop added in v0.171.21

func (m *Messenger) StartRetrieveMessagesLoop(tick time.Duration, cancel <-chan struct{})

func (*Messenger) StatusUpdates added in v0.83.2

func (m *Messenger) StatusUpdates() ([]UserStatus, error)

func (*Messenger) StopDiscV5 added in v0.91.8

func (m *Messenger) StopDiscV5() error

func (*Messenger) StopPushNotificationsServer added in v0.56.1

func (m *Messenger) StopPushNotificationsServer() error

StopPushNotificationServer stops the push notification server if running

func (*Messenger) StorePubsubTopicKey added in v0.166.1

func (m *Messenger) StorePubsubTopicKey(topic string, privKey *ecdsa.PrivateKey) error

func (*Messenger) SubscribeMailserverAvailable added in v0.98.1

func (m *Messenger) SubscribeMailserverAvailable() chan struct{}

func (*Messenger) SubscribeToPubsubTopic added in v0.166.1

func (m *Messenger) SubscribeToPubsubTopic(topic string, optPublicKey *ecdsa.PublicKey) error

Subscribe to a pubsub topic, passing an optional public key if the pubsub topic is protected

func (*Messenger) SubscribeToSelfContactChanges added in v0.171.21

func (m *Messenger) SubscribeToSelfContactChanges() chan *SelfContactChangeEvent

func (*Messenger) SwitcherCards added in v0.117.3

func (m *Messenger) SwitcherCards() ([]SwitcherCard, error)

func (*Messenger) SyncBookmark added in v0.94.4

func (m *Messenger) SyncBookmark(ctx context.Context, bookmark *browsers.Bookmark, rawMessageHandler RawMessageHandler) error

func (*Messenger) SyncChatFromSyncedFrom added in v0.79.0

func (m *Messenger) SyncChatFromSyncedFrom(chatID string) (uint32, error)

func (*Messenger) SyncCommunitySettings added in v0.102.2

func (m *Messenger) SyncCommunitySettings(ctx context.Context, settings *communities.CommunitySettings) error

func (*Messenger) SyncDevices

func (m *Messenger) SyncDevices(ctx context.Context, ensName, photoPath string, rawMessageHandler RawMessageHandler) (err error)

SyncDevices sends all public chats and contacts to paired devices TODO remove use of photoPath in contacts

func (*Messenger) SyncEnsNamesWithDispatchMessage added in v0.148.3

func (m *Messenger) SyncEnsNamesWithDispatchMessage(ctx context.Context, usernameDetail *ensservice.UsernameDetail) error

func (*Messenger) SyncTrustedUser added in v0.102.6

func (m *Messenger) SyncTrustedUser(ctx context.Context, publicKey string, ts verification.TrustStatus, rawMessageHandler RawMessageHandler) error

func (*Messenger) SyncVerificationRequest added in v0.102.6

func (m *Messenger) SyncVerificationRequest(ctx context.Context, vr *verification.Request, rawMessageHandler RawMessageHandler) error

func (*Messenger) ToBackground added in v0.94.0

func (m *Messenger) ToBackground()

func (*Messenger) ToForeground added in v0.94.0

func (m *Messenger) ToForeground()

func (*Messenger) ToggleCollapsedCommunityCategory added in v0.138.4

func (m *Messenger) ToggleCollapsedCommunityCategory(request *requests.ToggleCollapsedCommunityCategory) error

func (*Messenger) TogglePeerSyncing added in v0.176.3

func (m *Messenger) TogglePeerSyncing(request *requests.TogglePeerSyncingRequest) error

func (*Messenger) ToggleUseMailservers added in v0.96.0

func (m *Messenger) ToggleUseMailservers(value bool) error

func (*Messenger) UnMuteAllCommunityChats added in v0.162.5

func (m *Messenger) UnMuteAllCommunityChats(communityID string) (time.Time, error)

func (*Messenger) UnbanUserFromCommunity added in v0.102.6

func (m *Messenger) UnbanUserFromCommunity(request *requests.UnbanUserFromCommunity) (*MessengerResponse, error)

func (*Messenger) UnblockContact added in v0.90.0

func (m *Messenger) UnblockContact(contactID string) (*MessengerResponse, error)

func (*Messenger) UnfurlURLs added in v0.151.12

func (m *Messenger) UnfurlURLs(httpClient *http.Client, urls []string) (UnfurlURLsResponse, error)

UnfurlURLs assumes clients pass URLs verbatim that were validated and processed by GetURLs.

func (*Messenger) UnmuteChat added in v0.56.1

func (m *Messenger) UnmuteChat(chatID string) error

UnmuteChat signals to the messenger that we want to be notified on new messages from this chat

func (*Messenger) UnregisterFromPushNotifications added in v0.56.1

func (m *Messenger) UnregisterFromPushNotifications(ctx context.Context) error

UnregisterFromPushNotifications unregister from any server

func (*Messenger) UpdateBookmark added in v0.102.2

func (m *Messenger) UpdateBookmark(ctx context.Context, oldURL string, bookmark browsers.Bookmark) error

func (*Messenger) UpdateCollectiblePreferences added in v0.172.6

func (m *Messenger) UpdateCollectiblePreferences(preferences []walletsettings.CollectiblePreferences) error

func (*Messenger) UpdateCommunityFilters added in v0.170.0

func (m *Messenger) UpdateCommunityFilters(community *communities.Community) error

func (*Messenger) UpdateCommunityTokenAddress added in v0.163.14

func (m *Messenger) UpdateCommunityTokenAddress(chainID int, oldContractAddress string, newContractAddress string) error

func (*Messenger) UpdateCommunityTokenState added in v0.133.2

func (m *Messenger) UpdateCommunityTokenState(chainID int, contractAddress string, deployState token.DeployState) error

func (*Messenger) UpdateCommunityTokenSupply added in v0.158.0

func (m *Messenger) UpdateCommunityTokenSupply(chainID int, contractAddress string, supply *bigint.BigInt) error

func (*Messenger) UpdateKeycardUID added in v0.133.2

func (m *Messenger) UpdateKeycardUID(ctx context.Context, oldKeycardUID string, newKeycardUID string) error

func (*Messenger) UpdateKeypairName added in v0.152.2

func (m *Messenger) UpdateKeypairName(keyUID string, name string) error

func (*Messenger) UpdateMessageOutgoingStatus

func (m *Messenger) UpdateMessageOutgoingStatus(id, newOutgoingStatus string) error

func (*Messenger) UpdateMuteCommunityStatus added in v0.162.5

func (m *Messenger) UpdateMuteCommunityStatus(communityID string, muted bool, mutedType requests.MutingVariation) (time.Time, error)

func (*Messenger) UpdateProfileShowcaseCommunity added in v0.179.5

func (m *Messenger) UpdateProfileShowcaseCommunity(community *communities.Community) error

func (*Messenger) UpdateProfileShowcaseWalletAccount added in v0.174.0

func (m *Messenger) UpdateProfileShowcaseWalletAccount(account *accounts.Account) error

func (*Messenger) UpdateTokenPreferences added in v0.171.27

func (m *Messenger) UpdateTokenPreferences(preferences []walletsettings.TokenPreferences) error

func (*Messenger) UpsertSavedAddress added in v0.111.5

func (m *Messenger) UpsertSavedAddress(ctx context.Context, sa wallet.SavedAddress) error

func (*Messenger) UpsertSwitcherCard added in v0.117.3

func (m *Messenger) UpsertSwitcherCard(request *requests.UpsertSwitcherCard) error

func (*Messenger) ValidateTransactions

func (m *Messenger) ValidateTransactions(ctx context.Context, addresses []types.Address) (*MessengerResponse, error)

func (*Messenger) VerifiedTrusted added in v0.102.6

func (m *Messenger) VerifiedTrusted(ctx context.Context, request *requests.VerifiedTrusted) (*MessengerResponse, error)

func (*Messenger) VerifiedUntrustworthy added in v0.102.6

func (m *Messenger) VerifiedUntrustworthy(ctx context.Context, request *requests.VerifiedUntrustworthy) (*MessengerResponse, error)

type MessengerResponse

type MessengerResponse struct {
	Contacts                      []*Contact
	Installations                 []*multidevice.Installation
	Invitations                   []*GroupChatInvitation
	CommunityChanges              []*communities.CommunityChanges
	AnonymousMetrics              []*appmetrics.AppMetric
	Mailservers                   []mailservers.Mailserver
	CommunityStorenodes           []storenodes.Storenode
	Bookmarks                     []*browsers.Bookmark
	Settings                      []*settings.SyncSettingField
	IdentityImages                []images.IdentityImage
	CustomizationColor            string
	WatchOnlyAccounts             []*accounts.Account
	Keypairs                      []*accounts.Keypair
	AccountsPositions             []*accounts.Account
	TokenPreferences              []walletsettings.TokenPreferences
	CollectiblePreferences        []walletsettings.CollectiblePreferences
	DiscordCategories             []*discord.Category
	DiscordChannels               []*discord.Channel
	DiscordOldestMessageTimestamp int
	BackupHandled                 bool

	SocialLinksInfo *identity.SocialLinksInfo
	// contains filtered or unexported fields
}

func WaitOnMessengerResponse added in v0.162.1

func WaitOnMessengerResponse(m *Messenger, condition func(*MessengerResponse) bool, errorMessage string) (*MessengerResponse, error)

WaitOnMessengerResponse Wait until the condition is true or the timeout is reached.

func WaitOnSignaledMessengerResponse added in v0.171.3

func WaitOnSignaledMessengerResponse(m *Messenger, condition func(*MessengerResponse) bool, errorMessage string) (*MessengerResponse, error)

func (*MessengerResponse) ActivityCenterNotifications added in v0.76.0

func (r *MessengerResponse) ActivityCenterNotifications() []*ActivityCenterNotification

func (*MessengerResponse) ActivityCenterState added in v0.131.8

func (r *MessengerResponse) ActivityCenterState() *ActivityCenterState

func (*MessengerResponse) AddActivityCenterNotification added in v0.76.0

func (r *MessengerResponse) AddActivityCenterNotification(n *ActivityCenterNotification)

func (*MessengerResponse) AddActivityCenterNotifications added in v0.76.0

func (r *MessengerResponse) AddActivityCenterNotifications(ns []*ActivityCenterNotification)

func (*MessengerResponse) AddBookmark added in v0.94.4

func (r *MessengerResponse) AddBookmark(bookmark *browsers.Bookmark)

func (*MessengerResponse) AddBookmarks added in v0.94.4

func (r *MessengerResponse) AddBookmarks(bookmarks []*browsers.Bookmark)

func (*MessengerResponse) AddChat added in v0.72.0

func (r *MessengerResponse) AddChat(c *Chat)

func (*MessengerResponse) AddChats added in v0.72.0

func (r *MessengerResponse) AddChats(chats []*Chat)

func (*MessengerResponse) AddClearedHistory added in v0.94.3

func (r *MessengerResponse) AddClearedHistory(ch *ClearedHistory)

func (*MessengerResponse) AddCommunities added in v0.72.0

func (r *MessengerResponse) AddCommunities(communities []*communities.Community)

func (*MessengerResponse) AddCommunity added in v0.72.0

func (r *MessengerResponse) AddCommunity(c *communities.Community)

func (*MessengerResponse) AddCommunitySettings added in v0.96.4

func (r *MessengerResponse) AddCommunitySettings(c *communities.CommunitySettings)

func (*MessengerResponse) AddContact added in v0.100.0

func (r *MessengerResponse) AddContact(c *Contact)

func (*MessengerResponse) AddContacts added in v0.130.3

func (r *MessengerResponse) AddContacts(contacts []*Contact)

func (*MessengerResponse) AddDeletedMessages added in v0.175.3

func (r *MessengerResponse) AddDeletedMessages(messagesToAdd []*protobuf.DeleteCommunityMemberMessage)

func (*MessengerResponse) AddDiscordCategory added in v0.105.1

func (r *MessengerResponse) AddDiscordCategory(dc *discord.Category)

func (*MessengerResponse) AddDiscordChannel added in v0.105.1

func (r *MessengerResponse) AddDiscordChannel(dc *discord.Channel)

func (*MessengerResponse) AddDiscordMessage added in v0.114.1

func (r *MessengerResponse) AddDiscordMessage(message *protobuf.DiscordMessage)

func (*MessengerResponse) AddDiscordMessageAttachment added in v0.114.1

func (r *MessengerResponse) AddDiscordMessageAttachment(attachment *protobuf.DiscordMessageAttachment)

func (*MessengerResponse) AddDiscordMessageAttachments added in v0.114.1

func (r *MessengerResponse) AddDiscordMessageAttachments(attachments []*protobuf.DiscordMessageAttachment)

func (*MessengerResponse) AddDiscordMessageAuthor added in v0.114.1

func (r *MessengerResponse) AddDiscordMessageAuthor(author *protobuf.DiscordMessageAuthor)

func (*MessengerResponse) AddEmojiReaction added in v0.131.2

func (r *MessengerResponse) AddEmojiReaction(er *EmojiReaction)

func (*MessengerResponse) AddEmojiReactions added in v0.131.2

func (r *MessengerResponse) AddEmojiReactions(ers []*EmojiReaction)

func (*MessengerResponse) AddEnsUsernameDetail added in v0.148.3

func (r *MessengerResponse) AddEnsUsernameDetail(detail *ensservice.UsernameDetail)

func (*MessengerResponse) AddEnsUsernameDetails added in v0.148.3

func (r *MessengerResponse) AddEnsUsernameDetails(details []*ensservice.UsernameDetail)

func (*MessengerResponse) AddInstallation added in v0.131.2

func (r *MessengerResponse) AddInstallation(i *multidevice.Installation)

func (*MessengerResponse) AddInstallations added in v0.131.2

func (r *MessengerResponse) AddInstallations(installations []*multidevice.Installation)

func (*MessengerResponse) AddMessage added in v0.79.0

func (r *MessengerResponse) AddMessage(message *common.Message)

func (*MessengerResponse) AddMessages added in v0.80.3

func (r *MessengerResponse) AddMessages(ms []*common.Message)

func (*MessengerResponse) AddNotification added in v0.74.2

func (r *MessengerResponse) AddNotification(n *localnotifications.Notification)

func (*MessengerResponse) AddNotifications added in v0.74.2

func (r *MessengerResponse) AddNotifications(notifications []*localnotifications.Notification)

func (*MessengerResponse) AddPinMessage added in v0.78.0

func (r *MessengerResponse) AddPinMessage(pm *common.PinMessage)

func (*MessengerResponse) AddPinMessages added in v0.78.0

func (r *MessengerResponse) AddPinMessages(pms []*common.PinMessage)

func (*MessengerResponse) AddRemovedChat added in v0.72.0

func (r *MessengerResponse) AddRemovedChat(chatID string)

func (*MessengerResponse) AddRemovedChats added in v0.72.0

func (r *MessengerResponse) AddRemovedChats(chats []string)

func (*MessengerResponse) AddRemovedMessage added in v0.83.2

func (r *MessengerResponse) AddRemovedMessage(rm *RemovedMessage)

func (*MessengerResponse) AddRemovedMessages added in v0.83.2

func (r *MessengerResponse) AddRemovedMessages(messages []*RemovedMessage)

func (*MessengerResponse) AddRequestToJoinCommunity added in v0.146.4

func (r *MessengerResponse) AddRequestToJoinCommunity(requestToJoin *communities.RequestToJoin)

func (*MessengerResponse) AddRequestsToJoinCommunity added in v0.158.0

func (r *MessengerResponse) AddRequestsToJoinCommunity(requestsToJoin []*communities.RequestToJoin)

func (*MessengerResponse) AddSavedAddress added in v0.131.2

func (r *MessengerResponse) AddSavedAddress(er *wallet.SavedAddress)

func (*MessengerResponse) AddSavedAddresses added in v0.131.2

func (r *MessengerResponse) AddSavedAddresses(ers []*wallet.SavedAddress)

func (*MessengerResponse) AddSeenAndUnseenMessages added in v0.171.40

func (r *MessengerResponse) AddSeenAndUnseenMessages(message *SeenUnseenMessages)

func (*MessengerResponse) AddSetting added in v0.117.3

func (r *MessengerResponse) AddSetting(s *settings.SyncSettingField)

func (*MessengerResponse) AddSeveralSeenAndUnseenMessages added in v0.171.40

func (r *MessengerResponse) AddSeveralSeenAndUnseenMessages(messages []*SeenUnseenMessages)

func (*MessengerResponse) AddSeveralUpdatedProfileShowcaseContactIDs added in v0.178.1

func (r *MessengerResponse) AddSeveralUpdatedProfileShowcaseContactIDs(contactIDs []string)

func (*MessengerResponse) AddStatusUpdate added in v0.83.2

func (r *MessengerResponse) AddStatusUpdate(upd UserStatus)

func (*MessengerResponse) AddTrustStatus added in v0.102.6

func (r *MessengerResponse) AddTrustStatus(contactID string, trustStatus verification.TrustStatus)

func (*MessengerResponse) AddTrustStatuses added in v0.102.6

func (r *MessengerResponse) AddTrustStatuses(ts map[string]verification.TrustStatus)

func (*MessengerResponse) AddUpdatedProfileShowcaseContactID added in v0.178.1

func (r *MessengerResponse) AddUpdatedProfileShowcaseContactID(contactID string)

func (*MessengerResponse) AddVerificationRequest added in v0.102.6

func (r *MessengerResponse) AddVerificationRequest(vr *verification.Request)

func (*MessengerResponse) AddVerificationRequests added in v0.102.6

func (r *MessengerResponse) AddVerificationRequests(vrs []*verification.Request)

func (*MessengerResponse) Chats

func (r *MessengerResponse) Chats() []*Chat

func (*MessengerResponse) ClearNotifications added in v0.74.2

func (r *MessengerResponse) ClearNotifications()

func (*MessengerResponse) ClearedHistories added in v0.94.3

func (r *MessengerResponse) ClearedHistories() []*ClearedHistory

func (*MessengerResponse) Communities added in v0.67.0

func (r *MessengerResponse) Communities() []*communities.Community

func (*MessengerResponse) CommunitiesSettings added in v0.96.4

func (r *MessengerResponse) CommunitiesSettings() []*communities.CommunitySettings

func (*MessengerResponse) DeletedMessages added in v0.175.3

func (r *MessengerResponse) DeletedMessages() map[string]string

func (*MessengerResponse) DeletedMessagesInChats added in v0.175.3

func (r *MessengerResponse) DeletedMessagesInChats() map[string][]string

func (*MessengerResponse) DiscordMessageAttachments added in v0.114.1

func (r *MessengerResponse) DiscordMessageAttachments() []*protobuf.DiscordMessageAttachment

func (*MessengerResponse) DiscordMessageAuthors added in v0.114.1

func (r *MessengerResponse) DiscordMessageAuthors() []*protobuf.DiscordMessageAuthor

func (*MessengerResponse) DiscordMessages added in v0.114.1

func (r *MessengerResponse) DiscordMessages() []*protobuf.DiscordMessage

func (*MessengerResponse) EmojiReactions added in v0.56.4

func (r *MessengerResponse) EmojiReactions() []*EmojiReaction

func (*MessengerResponse) EnsUsernameDetails added in v0.148.3

func (r *MessengerResponse) EnsUsernameDetails() []*ensservice.UsernameDetail

func (*MessengerResponse) GetBookmarks added in v0.148.3

func (r *MessengerResponse) GetBookmarks() []*browsers.Bookmark

func (*MessengerResponse) GetMessage added in v0.80.3

func (r *MessengerResponse) GetMessage(messageID string) *common.Message

func (*MessengerResponse) GetSeenAndUnseenMessages added in v0.171.40

func (r *MessengerResponse) GetSeenAndUnseenMessages() []*SeenUnseenMessages

func (*MessengerResponse) GetUpdatedProfileShowcaseContactIDs added in v0.178.1

func (r *MessengerResponse) GetUpdatedProfileShowcaseContactIDs() []string

func (*MessengerResponse) HasDiscordCategory added in v0.105.1

func (r *MessengerResponse) HasDiscordCategory(id string) bool

func (*MessengerResponse) HasDiscordChannel added in v0.105.1

func (r *MessengerResponse) HasDiscordChannel(id string) bool

func (*MessengerResponse) IsEmpty

func (r *MessengerResponse) IsEmpty() bool

func (*MessengerResponse) MarshalJSON added in v0.72.0

func (r *MessengerResponse) MarshalJSON() ([]byte, error)

func (*MessengerResponse) Merge added in v0.64.3

func (r *MessengerResponse) Merge(response *MessengerResponse) error

Merge takes another response and appends the new Chats & new Messages and replaces the existing Messages & Chats if they have the same ID

func (*MessengerResponse) MergeDeletedMessages added in v0.175.3

func (r *MessengerResponse) MergeDeletedMessages(messagesToAdd map[string]string)

func (*MessengerResponse) Messages

func (r *MessengerResponse) Messages() []*common.Message

Messages extracts the messages from the response and returns them as a slice. Since 'r.messages' is a map, the order of messages in the resulting slice is not guaranteed and can vary with each call to this method. This is inherent to Go's map iteration behavior, which does not define a sequence for the order of map elements. Consumers should not depend on the ordering of messages in the slice for any logic that requires consistent ordering, as map iteration order can change when keys are added or deleted. Consider sorting the slice after retrieval if a specific order is needed.

func (*MessengerResponse) Notifications added in v0.68.4

func (r *MessengerResponse) Notifications() []*localnotifications.Notification

func (*MessengerResponse) PinMessages added in v0.78.0

func (r *MessengerResponse) PinMessages() []*common.PinMessage

func (*MessengerResponse) RemoveActivityCenterNotification added in v0.102.2

func (r *MessengerResponse) RemoveActivityCenterNotification(id string) bool

func (*MessengerResponse) RemovedChats added in v0.67.0

func (r *MessengerResponse) RemovedChats() []string

func (*MessengerResponse) RemovedMessages added in v0.83.2

func (r *MessengerResponse) RemovedMessages() []*RemovedMessage

func (*MessengerResponse) RequestsToJoinCommunity added in v0.72.0

func (r *MessengerResponse) RequestsToJoinCommunity() []*communities.RequestToJoin

func (*MessengerResponse) SavedAddresses added in v0.111.5

func (r *MessengerResponse) SavedAddresses() []*wallet.SavedAddress

func (*MessengerResponse) SetActivityCenterState added in v0.131.8

func (r *MessengerResponse) SetActivityCenterState(activityCenterState *ActivityCenterState)

func (*MessengerResponse) SetCurrentStatus added in v0.83.2

func (r *MessengerResponse) SetCurrentStatus(status UserStatus)

func (*MessengerResponse) SetMessages added in v0.80.3

func (r *MessengerResponse) SetMessages(messages []*common.Message)

func (*MessengerResponse) StatusUpdates added in v0.83.2

func (r *MessengerResponse) StatusUpdates() []UserStatus

func (*MessengerResponse) TrustStatus added in v0.102.6

func (r *MessengerResponse) TrustStatus() map[string]verification.TrustStatus

func (*MessengerResponse) UpdateCommunitySettings added in v0.171.30

func (r *MessengerResponse) UpdateCommunitySettings(communitySettings []*communities.CommunitySettings)

func (*MessengerResponse) VerificationRequests added in v0.102.6

func (r *MessengerResponse) VerificationRequests() []*verification.Request

type MessengerSignalsHandler added in v0.76.3

type MessengerSignalsHandler interface {
	MessageDelivered(chatID string, messageID string)
	CommunityInfoFound(community *communities.Community)
	MessengerResponse(response *MessengerResponse)
	HistoryRequestStarted(numBatches int)
	HistoryRequestCompleted()

	BackupPerformed(uint64)
	HistoryArchivesProtocolEnabled()
	HistoryArchivesProtocolDisabled()
	CreatingHistoryArchives(communityID string)
	NoHistoryArchivesCreated(communityID string, from int, to int)
	HistoryArchivesCreated(communityID string, from int, to int)
	HistoryArchivesSeeding(communityID string)
	HistoryArchivesUnseeded(communityID string)
	HistoryArchiveDownloaded(communityID string, from int, to int)
	DownloadingHistoryArchivesStarted(communityID string)
	DownloadingHistoryArchivesFinished(communityID string)
	ImportingHistoryArchiveMessages(communityID string)
	StatusUpdatesTimedOut(statusUpdates *[]UserStatus)
	DiscordCategoriesAndChannelsExtracted(categories []*discord.Category, channels []*discord.Channel, oldestMessageTimestamp int64, errors map[string]*discord.ImportError)
	DiscordCommunityImportProgress(importProgress *discord.ImportProgress)
	DiscordCommunityImportFinished(communityID string)
	DiscordCommunityImportCancelled(communityID string)
	DiscordCommunityImportCleanedUp(communityID string)
	DiscordChannelImportProgress(importProgress *discord.ImportProgress)
	DiscordChannelImportFinished(communityID string, channelID string)
	DiscordChannelImportCancelled(channelID string)
	SendWakuFetchingBackupProgress(response *wakusync.WakuBackedUpDataResponse)
	SendWakuBackedUpProfile(response *wakusync.WakuBackedUpDataResponse)
	SendWakuBackedUpSettings(response *wakusync.WakuBackedUpDataResponse)
	SendWakuBackedUpKeypair(response *wakusync.WakuBackedUpDataResponse)
	SendWakuBackedUpWatchOnlyAccount(response *wakusync.WakuBackedUpDataResponse)
	SendCuratedCommunitiesUpdate(response *communities.KnownCommunitiesResponse)
}

type MessengerSignalsHandlerMock added in v0.171.3

type MessengerSignalsHandlerMock struct {
	MessengerSignalsHandler
	// contains filtered or unexported fields
}

func (*MessengerSignalsHandlerMock) CommunityInfoFound added in v0.171.35

func (m *MessengerSignalsHandlerMock) CommunityInfoFound(community *communities.Community)

func (*MessengerSignalsHandlerMock) MessageDelivered added in v0.171.3

func (m *MessengerSignalsHandlerMock) MessageDelivered(chatID string, messageID string)

func (*MessengerSignalsHandlerMock) MessengerResponse added in v0.171.3

func (m *MessengerSignalsHandlerMock) MessengerResponse(response *MessengerResponse)

func (*MessengerSignalsHandlerMock) SendWakuBackedUpKeypair added in v0.175.3

func (m *MessengerSignalsHandlerMock) SendWakuBackedUpKeypair(*wakusync.WakuBackedUpDataResponse)

func (*MessengerSignalsHandlerMock) SendWakuBackedUpProfile added in v0.175.3

func (m *MessengerSignalsHandlerMock) SendWakuBackedUpProfile(*wakusync.WakuBackedUpDataResponse)

func (*MessengerSignalsHandlerMock) SendWakuBackedUpSettings added in v0.175.3

func (m *MessengerSignalsHandlerMock) SendWakuBackedUpSettings(*wakusync.WakuBackedUpDataResponse)

func (*MessengerSignalsHandlerMock) SendWakuBackedUpWatchOnlyAccount added in v0.175.3

func (m *MessengerSignalsHandlerMock) SendWakuBackedUpWatchOnlyAccount(*wakusync.WakuBackedUpDataResponse)

func (*MessengerSignalsHandlerMock) SendWakuFetchingBackupProgress added in v0.175.3

func (m *MessengerSignalsHandlerMock) SendWakuFetchingBackupProgress(response *wakusync.WakuBackedUpDataResponse)

type MetricsIntervalResponse added in v0.162.14

type MetricsIntervalResponse struct {
	StartTimestamp uint64   `json:"startTimestamp"`
	EndTimestamp   uint64   `json:"endTimestamp"`
	Timestamps     []uint64 `json:"timestamps"`
	Count          int      `json:"count"`
}

type MutualStateUpdateType added in v0.157.2

type MutualStateUpdateType int
const (
	MutualStateUpdateTypeSent MutualStateUpdateType = iota + 1
	MutualStateUpdateTypeAdded
	MutualStateUpdateTypeRemoved
)

type NotificationBody added in v0.74.2

type NotificationBody struct {
	Message   *common.Message        `json:"message"`
	Contact   *Contact               `json:"contact"`
	Chat      *Chat                  `json:"chat"`
	Community *communities.Community `json:"community"`
}

func (NotificationBody) MarshalJSON added in v0.74.2

func (n NotificationBody) MarshalJSON() ([]byte, error)

type OEmbedResponse added in v0.170.0

type OEmbedResponse struct {
	Title        string `json:"title"`
	ThumbnailURL string `json:"thumbnail_url"`
}

type OEmbedUnfurler added in v0.170.0

type OEmbedUnfurler struct {
	// contains filtered or unexported fields
}

func NewOEmbedUnfurler added in v0.170.0

func NewOEmbedUnfurler(oembedEndpoint string,
	url *neturl.URL,
	logger *zap.Logger,
	httpClient *http.Client) *OEmbedUnfurler

func (OEmbedUnfurler) Unfurl added in v0.170.0

func (u OEmbedUnfurler) Unfurl() (*common.LinkPreview, error)

type OpenGraphMetadata added in v0.170.0

type OpenGraphMetadata struct {
	Title        string `json:"title" meta:"og:title"`
	Description  string `json:"description" meta:"og:description"`
	ThumbnailURL string `json:"thumbnailUrl" meta:"og:image"`
}

type OpenGraphUnfurler added in v0.170.0

type OpenGraphUnfurler struct {
	// contains filtered or unexported fields
}

OpenGraphUnfurler should be preferred over OEmbedUnfurler because oEmbed gives back a JSON response with a "html" field that's supposed to be embedded in an iframe (hardly useful for existing Status' clients).

func NewOpenGraphUnfurler added in v0.170.0

func NewOpenGraphUnfurler(URL *neturl.URL, logger *zap.Logger, httpClient *http.Client) *OpenGraphUnfurler

func (*OpenGraphUnfurler) Unfurl added in v0.170.0

func (u *OpenGraphUnfurler) Unfurl() (*common.LinkPreview, error)

type Option

type Option func(*config) error

func WithAccount added in v0.65.0

func WithAccount(acc *multiaccounts.Account) Option

func WithAccountManager added in v0.172.10

func WithAccountManager(accountManager account.Manager) Option

func WithAnonMetricsClientConfig added in v0.86.2

func WithAnonMetricsClientConfig(anonMetricsClientConfig *anonmetrics.ClientConfig) Option

func WithAnonMetricsServerConfig added in v0.86.2

func WithAnonMetricsServerConfig(anonMetricsServerConfig *anonmetrics.ServerConfig) Option

func WithAppSettings added in v0.89.2

func WithAppSettings(s settings.Settings, nc params.NodeConfig) Option

func WithBrowserDatabase added in v0.94.4

func WithBrowserDatabase(bd *browsers.Database) Option

func WithClusterConfig added in v0.93.2

func WithClusterConfig(cc params.ClusterConfig) Option

func WithCollectiblesManager added in v0.175.3

func WithCollectiblesManager(collectiblesManager communities.CollectiblesManager) Option

func WithCommunityTokensService added in v0.166.1

func WithCommunityTokensService(s communitytokens.ServiceInterface) Option

func WithCustomLogger

func WithCustomLogger(logger *zap.Logger) Option

func WithDatabase

func WithDatabase(db *sql.DB) Option

func WithENSVerificationConfig added in v0.72.0

func WithENSVerificationConfig(url, address string) Option

func WithEnvelopesMonitorConfig

func WithEnvelopesMonitorConfig(emc *transport.EnvelopesMonitorConfig) Option

func WithHTTPServer added in v0.98.6

func WithHTTPServer(s *server.MediaServer) Option

func WithMailserversDatabase added in v0.69.0

func WithMailserversDatabase(ma *mailservers.Database) Option

func WithMessageCSV added in v0.106.1

func WithMessageCSV(enabled bool) Option

func WithMultiAccounts added in v0.65.0

func WithMultiAccounts(ma *multiaccounts.Database) Option

func WithPushNotificationClientConfig added in v0.56.1

func WithPushNotificationClientConfig(pushNotificationClientConfig *pushnotificationclient.Config) Option

func WithPushNotificationServerConfig added in v0.56.1

func WithPushNotificationServerConfig(pushNotificationServerConfig *pushnotificationserver.Config) Option

func WithRPCClient added in v0.100.1

func WithRPCClient(r *rpc.Client) Option

func WithResendParams added in v0.171.25

func WithResendParams(minDelay time.Duration, maxCount int) Option

func WithSignalsHandler added in v0.76.3

func WithSignalsHandler(h MessengerSignalsHandler) Option

func WithSystemMessagesTranslations

func WithSystemMessagesTranslations(t map[protobuf.MembershipUpdateEvent_EventType]string) Option

WithSystemMessagesTranslations is required for Group Chats which are currently disabled. nolint: unused

func WithTelemetry added in v0.89.20

func WithTelemetry(serverURL string) Option

func WithTokenManager added in v0.159.2

func WithTokenManager(tokenManager communities.TokenManager) Option

func WithToplevelDatabaseMigrations added in v0.89.2

func WithToplevelDatabaseMigrations() Option

func WithTorrentConfig added in v0.96.2

func WithTorrentConfig(tc *params.TorrentConfig) Option

func WithVerifyTransactionClient

func WithVerifyTransactionClient(client EthClient) Option

func WithWakuService added in v0.171.11

func WithWakuService(s *wakuv2.Waku) Option

func WithWalletConfig added in v0.142.2

func WithWalletConfig(wc *params.WalletConfig) Option

func WithWalletDatabase added in v0.163.14

func WithWalletDatabase(db *sql.DB) Option

func WithWalletService added in v0.151.13

func WithWalletService(s *wallet.Service) Option

type RawMessageHandler added in v0.118.0

type RawMessageHandler func(ctx context.Context, rawMessage common.RawMessage) (common.RawMessage, error)

type ReceivedMessageState

type ReceivedMessageState struct {
	// State on the message being processed
	CurrentMessageState *CurrentMessageState
	// AllChats in memory
	AllChats *chatMap
	// All contacts in memory
	AllContacts *contactMap
	// List of contacts modified
	ModifiedContacts *stringBoolMap
	// All installations in memory
	AllInstallations *installationMap
	// List of communities modified
	ModifiedInstallations *stringBoolMap
	// Map of existing messages
	ExistingMessagesMap map[string]bool
	// EmojiReactions is a list of emoji reactions for the current batch
	// indexed by from-message-id-emoji-type
	EmojiReactions map[string]*EmojiReaction
	// GroupChatInvitations is a list of invitation requests or rejections
	GroupChatInvitations map[string]*GroupChatInvitation
	// Response to the client
	Response           *MessengerResponse
	ResolvePrimaryName func(string) (string, error)
	// Timesource is a time source for clock values/timestamps.
	Timesource              common.TimeSource
	AllBookmarks            map[string]*browsers.Bookmark
	AllVerificationRequests []*verification.Request
	AllTrustStatus          map[string]verification.TrustStatus
}

type RemovedMessage added in v0.84.1

type RemovedMessage struct {
	ChatID    string `json:"chatId"`
	MessageID string `json:"messageId"`
	DeletedBy string `json:"deletedBy,omitempty"`
}

type SeenUnseenMessages added in v0.171.40

type SeenUnseenMessages struct {
	ChatID            string `json:"chatId"`
	Count             uint64 `json:"count"`
	CountWithMentions uint64 `json:"countWithMentions"`
	Seen              bool   `json:"seen"`
}

type SegmentType added in v0.143.1

type SegmentType int
const (
	Text SegmentType = iota
	Mention
)

type SelfContactChangeEvent added in v0.171.21

type SelfContactChangeEvent struct {
	DisplayNameChanged   bool
	PreferredNameChanged bool
	BioChanged           bool
	SocialLinksChanged   bool
	ImagesChanged        bool
}

type SortedMailserver added in v0.96.0

type SortedMailserver struct {
	Address         string
	RTTMs           int
	CanConnectAfter time.Time
}

type StatusUnfurler added in v0.170.0

type StatusUnfurler struct {
	// contains filtered or unexported fields
}

func NewStatusUnfurler added in v0.170.0

func NewStatusUnfurler(URL string, messenger *Messenger, logger *zap.Logger) *StatusUnfurler

func (*StatusUnfurler) Unfurl added in v0.170.0

func (u *StatusUnfurler) Unfurl() (*common.StatusLinkPreview, error)

type StoreNodeRequestConfig added in v0.171.40

type StoreNodeRequestConfig struct {
	WaitForResponse   bool
	StopWhenDataFound bool
	InitialPageSize   uint32
	FurtherPageSize   uint32
}

type StoreNodeRequestManager added in v0.171.35

type StoreNodeRequestManager struct {
	// contains filtered or unexported fields
}

func NewStoreNodeRequestManager added in v0.171.37

func NewStoreNodeRequestManager(m *Messenger) *StoreNodeRequestManager

func (*StoreNodeRequestManager) FetchCommunities added in v0.171.35

func (m *StoreNodeRequestManager) FetchCommunities(communities []communities.CommunityShard, opts []StoreNodeRequestOption) error

FetchCommunities makes a FetchCommunity for each element in given `communities` list. For each successfully fetched community, a `CommunityFound` event will be emitted. Ability to subscribe to results is not provided, because it's not needed and would complicate the code. `FetchCommunity` can be called directly if such functionality is needed.

This function intentionally doesn't fetch multiple content topics in a single store node request. For now FetchCommunities is only used for regular (once in 2 minutes) fetching of curated communities. If one of those content topics is spammed with to many envelopes, then on each iteration we will have to fetch all of this spam first to get the envelopes in other content topics. To avoid this we keep independent requests for each content topic.

func (*StoreNodeRequestManager) FetchCommunity added in v0.171.35

FetchCommunity makes a single request to store node for a given community id/shard pair. When a community is successfully fetched, a `CommunityFound` event will be emitted. If `waitForResponse == true`, the function will also wait for the store node response and return the fetched community. Automatically waits for an available store node. When a `nil` community and `nil` error is returned, that means the community wasn't found at the store node.

func (*StoreNodeRequestManager) FetchContact added in v0.171.37

type StoreNodeRequestOption added in v0.171.40

type StoreNodeRequestOption func(*StoreNodeRequestConfig)

func WithFurtherPageSize added in v0.171.40

func WithFurtherPageSize(furtherPageSize uint32) StoreNodeRequestOption

func WithInitialPageSize added in v0.171.40

func WithInitialPageSize(initialPageSize uint32) StoreNodeRequestOption

func WithStopWhenDataFound added in v0.171.40

func WithStopWhenDataFound(stopWhenDataFound bool) StoreNodeRequestOption

func WithWaitForResponseOption added in v0.171.40

func WithWaitForResponseOption(waitForResponse bool) StoreNodeRequestOption

type StoreNodeRequestStats added in v0.171.37

type StoreNodeRequestStats struct {
	FetchedEnvelopesCount int
	FetchedPagesCount     int
}

StoreNodeRequestStats is used in tests

type SwitcherCard added in v0.117.3

type SwitcherCard struct {
	CardID   string `json:"cardId,omitempty"`
	Type     int    `json:"type"`
	Clock    uint64 `json:"clock"`
	ScreenID string `json:"screenId"`
}

type TextDiff added in v0.148.3

type TextDiff struct {
	// contains filtered or unexported fields
}

type TransactionToValidate

type TransactionToValidate struct {
	TransactionHash string
	CommandID       string
	MessageID       string
	RetryCount      int
	// First seen indicates the whisper timestamp of the first time we seen this
	FirstSeen uint64
	// Validate indicates whether we should be validating this transaction
	Validate  bool
	Signature []byte
	From      *ecdsa.PublicKey
}

type TransactionValidator

type TransactionValidator struct {
	// contains filtered or unexported fields
}

func NewTransactionValidator

func NewTransactionValidator(addresses []types.Address, persistence *sqlitePersistence, client EthClient, logger *zap.Logger) *TransactionValidator

func (*TransactionValidator) ValidateTransaction

func (t *TransactionValidator) ValidateTransaction(ctx context.Context, parameters *common.CommandParameters, from *ecdsa.PublicKey) (*VerifyTransactionResponse, error)

func (*TransactionValidator) ValidateTransactions

func (t *TransactionValidator) ValidateTransactions(ctx context.Context) ([]*VerifyTransactionResponse, error)

type URLDataResponse added in v0.161.2

type URLDataResponse struct {
	Community *CommunityURLData        `json:"community"`
	Channel   *CommunityChannelURLData `json:"channel"`
	Contact   *ContactURLData          `json:"contact"`
	Shard     *shard.Shard             `json:"shard,omitempty"`
}

func ParseSharedURL added in v0.171.12

func ParseSharedURL(url string) (*URLDataResponse, error)

type URLUnfurlPermission added in v0.171.21

type URLUnfurlPermission int
const (
	URLUnfurlingAllowed URLUnfurlPermission = iota
	URLUnfurlingAskUser
	URLUnfurlingForbiddenBySettings
	URLUnfurlingNotSupported
)

type URLUnfurlingMetadata added in v0.171.21

type URLUnfurlingMetadata struct {
	URL               string              `json:"url"`
	Permission        URLUnfurlPermission `json:"permission"`
	IsStatusSharedURL bool                `json:"isStatusSharedURL"`
}

type URLsUnfurlPlan added in v0.171.21

type URLsUnfurlPlan struct {
	URLs []URLUnfurlingMetadata `json:"urls"`
}

type UnfurlURLsResponse added in v0.170.0

type UnfurlURLsResponse struct {
	LinkPreviews       []*common.LinkPreview       `json:"linkPreviews,omitempty"`
	StatusLinkPreviews []*common.StatusLinkPreview `json:"statusLinkPreviews,omitempty"`
}

type Unfurler added in v0.170.0

type Unfurler interface {
	Unfurl() (*common.LinkPreview, error)
}

type UserStatus added in v0.83.2

type UserStatus struct {
	PublicKey  string `json:"publicKey,omitempty"`
	StatusType int    `json:"statusType"`
	Clock      uint64 `json:"clock"`
	CustomText string `json:"text"`
}

func ToUserStatus added in v0.83.2

func ToUserStatus(msg *protobuf.StatusUpdate) UserStatus

type VerificationStatus added in v0.102.6

type VerificationStatus int
const (
	VerificationStatusUNVERIFIED VerificationStatus = iota
	VerificationStatusVERIFYING
	VerificationStatusVERIFIED
)

type VerifyTransactionResponse

type VerifyTransactionResponse struct {
	Pending bool
	// AccordingToSpec means that the transaction is valid,
	// the user should be notified, but is not the same as
	// what was requested, for example because the value is different
	AccordingToSpec bool
	// Valid means that the transaction is valid
	Valid bool
	// The actual value received
	Value string
	// The contract used in case of tokens
	Contract string
	// The address the transaction was actually sent
	Address string

	Message     *common.Message
	Transaction *TransactionToValidate
}

type WalletConnectSession added in v0.105.1

type WalletConnectSession struct {
	PeerID   string `json:"peerId"`
	DAppName string `json:"dappName"`
	DAppURL  string `json:"dappURL"`
	Info     string `json:"info"`
}

Source Files

Directories

Path Synopsis
internal
Package sqlite is responsible for creation of encrypted sqlite3 database using sqlcipher driver.
Package sqlite is responsible for creation of encrypted sqlite3 database using sqlcipher driver.
package storenodes provides functionality to work with community specific storenodes Current limitations: - we support only one storenode per community - we assume that the storenode is always active - we don't support a way to regularly check connection similar to the `messenger_mailserver_cycle.go`
package storenodes provides functionality to work with community specific storenodes Current limitations: - we support only one storenode per community - we assume that the storenode is always active - we don't support a way to regularly check connection similar to the `messenger_mailserver_cycle.go`

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL