Feat/sync activity center notification (#3535)
fix flaky test: TestRetrieveBlockedContact resolve conflict when rebase origin/develop Feat/sync activity center notification (#3581) * feat: sync activity center notification * add test * fix lint issue * fix failed test * addressed feedback from sale * fix failed test * addressed feedback from ilmotta go generate ./protocol/migrations/sqlite/... feat: add updated_at for syncing activity center notification
This commit is contained in:
parent
e53c2c0a6d
commit
b6d4e75cf1
|
@ -66,6 +66,9 @@ type ActivityCenterNotification struct {
|
|||
Deleted bool `json:"deleted"`
|
||||
Accepted bool `json:"accepted"`
|
||||
ContactVerificationStatus verification.RequestStatus `json:"contactVerificationStatus"`
|
||||
//Used for synchronization. Each update should increment the UpdatedAt.
|
||||
//The value should represent the time when the update occurred.
|
||||
UpdatedAt uint64 `json:"updatedAt"`
|
||||
}
|
||||
|
||||
type ActivityCenterNotificationsRequest struct {
|
||||
|
@ -88,7 +91,8 @@ type ActivityCenterPaginationResponse struct {
|
|||
type ActivityCenterCountResponse = map[ActivityCenterType]uint64
|
||||
|
||||
type ActivityCenterState struct {
|
||||
HasSeen bool `json:"hasSeen"`
|
||||
HasSeen bool `json:"hasSeen"`
|
||||
UpdatedAt uint64 `json:"updatedAt"`
|
||||
}
|
||||
|
||||
func (n *ActivityCenterNotification) Valid() error {
|
||||
|
|
|
@ -11,18 +11,21 @@ import (
|
|||
"github.com/status-im/status-go/protocol/common"
|
||||
)
|
||||
|
||||
func (db sqlitePersistence) DeleteActivityCenterNotification(id []byte) error {
|
||||
_, err := db.db.Exec(`DELETE FROM activity_center_notifications WHERE id = ?`, id)
|
||||
const allFieldsForTableActivityCenterNotification = `id, timestamp, notification_type, chat_id, read, dismissed, accepted, message, author,
|
||||
reply_message, community_id, membership_status, contact_verification_status, deleted, updated_at`
|
||||
|
||||
func (db sqlitePersistence) DeleteActivityCenterNotificationByID(id []byte, updatedAt uint64) error {
|
||||
_, err := db.db.Exec(`UPDATE activity_center_notifications SET deleted = 1, updated_at = ? WHERE id = ? AND NOT deleted`, updatedAt, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DeleteActivityCenterNotificationForMessage(chatID string, messageID string) error {
|
||||
func (db sqlitePersistence) DeleteActivityCenterNotificationForMessage(chatID string, messageID string, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
var tx *sql.Tx
|
||||
var err error
|
||||
|
||||
tx, err = db.db.BeginTx(context.Background(), &sql.TxOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
defer func() {
|
||||
if err == nil {
|
||||
|
@ -40,48 +43,58 @@ func (db sqlitePersistence) DeleteActivityCenterNotificationForMessage(chatID st
|
|||
_, notifications, err := db.buildActivityCenterQuery(tx, params)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var ids []types.HexBytes
|
||||
var matchNotifications []*ActivityCenterNotification
|
||||
withNotification := func(a *ActivityCenterNotification) {
|
||||
a.Read = true
|
||||
a.Dismissed = true
|
||||
a.Deleted = true
|
||||
a.UpdatedAt = updatedAt
|
||||
ids = append(ids, a.ID)
|
||||
matchNotifications = append(matchNotifications, a)
|
||||
}
|
||||
|
||||
for _, notification := range notifications {
|
||||
if notification.LastMessage != nil && notification.LastMessage.ID == messageID {
|
||||
ids = append(ids, notification.ID)
|
||||
withNotification(notification)
|
||||
}
|
||||
|
||||
if notification.Message != nil && notification.Message.ID == messageID {
|
||||
ids = append(ids, notification.ID)
|
||||
withNotification(notification)
|
||||
}
|
||||
}
|
||||
|
||||
if len(ids) > 0 {
|
||||
idsArgs := make([]interface{}, 0, len(ids))
|
||||
args := make([]interface{}, 0, len(ids)+1)
|
||||
args = append(args, updatedAt)
|
||||
for _, id := range ids {
|
||||
idsArgs = append(idsArgs, id)
|
||||
args = append(args, id)
|
||||
}
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
query := "UPDATE activity_center_notifications SET read = 1, dismissed = 1, deleted = 1 WHERE id IN (" + inVector + ")" // nolint: gosec
|
||||
_, err = tx.Exec(query, idsArgs...)
|
||||
return err
|
||||
query := "UPDATE activity_center_notifications SET read = 1, dismissed = 1, deleted = 1, updated_at = ? WHERE id IN (" + inVector + ")" // nolint: gosec
|
||||
_, err = tx.Exec(query, args...)
|
||||
return matchNotifications, err
|
||||
}
|
||||
|
||||
return nil
|
||||
return matchNotifications, nil
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) SaveActivityCenterNotification(notification *ActivityCenterNotification) error {
|
||||
func (db sqlitePersistence) SaveActivityCenterNotification(notification *ActivityCenterNotification, updateState bool) (int64, error) {
|
||||
var tx *sql.Tx
|
||||
var err error
|
||||
|
||||
err = notification.Valid()
|
||||
if err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
tx, err = db.db.BeginTx(context.Background(), &sql.TxOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
defer func() {
|
||||
if err == nil {
|
||||
|
@ -92,21 +105,12 @@ func (db sqlitePersistence) SaveActivityCenterNotification(notification *Activit
|
|||
_ = tx.Rollback()
|
||||
}()
|
||||
|
||||
if notification.Type == ActivityCenterNotificationTypeNewOneToOne ||
|
||||
notification.Type == ActivityCenterNotificationTypeNewPrivateGroupChat {
|
||||
// Delete other notifications, so it pops us again if it was not dismissed
|
||||
_, err = tx.Exec(`DELETE FROM activity_center_notifications WHERE id = ? AND (dismissed OR accepted)`, notification.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// encode message
|
||||
var encodedMessage []byte
|
||||
if notification.Message != nil {
|
||||
encodedMessage, err = json.Marshal(notification.Message)
|
||||
if err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -115,11 +119,11 @@ func (db sqlitePersistence) SaveActivityCenterNotification(notification *Activit
|
|||
if notification.ReplyMessage != nil {
|
||||
encodedReplyMessage, err = json.Marshal(notification.ReplyMessage)
|
||||
if err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
|
||||
_, err = tx.Exec(`
|
||||
result, err := tx.Exec(`
|
||||
INSERT OR REPLACE
|
||||
INTO activity_center_notifications (
|
||||
id,
|
||||
|
@ -135,9 +139,10 @@ func (db sqlitePersistence) SaveActivityCenterNotification(notification *Activit
|
|||
read,
|
||||
accepted,
|
||||
dismissed,
|
||||
deleted
|
||||
deleted,
|
||||
updated_at
|
||||
)
|
||||
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
|
||||
SELECT ?,?,?,?,?,?,?,?,?,?,?,?,?,?,? WHERE NOT EXISTS (SELECT 1 FROM activity_center_notifications WHERE id = ? AND updated_at >= ?)
|
||||
`,
|
||||
notification.ID,
|
||||
notification.Timestamp,
|
||||
|
@ -153,14 +158,90 @@ func (db sqlitePersistence) SaveActivityCenterNotification(notification *Activit
|
|||
notification.Accepted,
|
||||
notification.Dismissed,
|
||||
notification.Deleted,
|
||||
notification.UpdatedAt,
|
||||
notification.ID,
|
||||
notification.UpdatedAt,
|
||||
)
|
||||
|
||||
// When we have inserted or updated unread notification - mark whole activity_center_settings as unseen
|
||||
if err == nil && !notification.Read {
|
||||
_, err = tx.Exec(`UPDATE activity_center_states SET has_seen = 0`)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
n, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return n, err
|
||||
}
|
||||
|
||||
return err
|
||||
// When we have inserted or updated unread notification - mark whole activity_center_settings as unseen
|
||||
if updateState && n > 0 && !notification.Read {
|
||||
_, err = tx.Exec(`UPDATE activity_center_states SET has_seen = 0, updated_at = ?`, notification.UpdatedAt)
|
||||
}
|
||||
|
||||
return n, nil
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) parseRowFromTableActivityCenterNotification(rows *sql.Rows, withNotification func(notification *ActivityCenterNotification)) ([]*ActivityCenterNotification, error) {
|
||||
var notifications []*ActivityCenterNotification
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var chatID sql.NullString
|
||||
var communityID sql.NullString
|
||||
var messageBytes []byte
|
||||
var replyMessageBytes []byte
|
||||
var author sql.NullString
|
||||
notification := &ActivityCenterNotification{}
|
||||
err := rows.Scan(
|
||||
¬ification.ID,
|
||||
¬ification.Timestamp,
|
||||
¬ification.Type,
|
||||
&chatID,
|
||||
¬ification.Read,
|
||||
¬ification.Dismissed,
|
||||
¬ification.Accepted,
|
||||
&messageBytes,
|
||||
&author,
|
||||
&replyMessageBytes,
|
||||
&communityID,
|
||||
¬ification.MembershipStatus,
|
||||
¬ification.ContactVerificationStatus,
|
||||
¬ification.Deleted,
|
||||
¬ification.UpdatedAt,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if chatID.Valid {
|
||||
notification.ChatID = chatID.String
|
||||
}
|
||||
|
||||
if communityID.Valid {
|
||||
notification.CommunityID = communityID.String
|
||||
}
|
||||
|
||||
if author.Valid {
|
||||
notification.Author = author.String
|
||||
}
|
||||
|
||||
if len(messageBytes) > 0 {
|
||||
err = json.Unmarshal(messageBytes, ¬ification.Message)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
if len(replyMessageBytes) > 0 {
|
||||
err = json.Unmarshal(replyMessageBytes, ¬ification.ReplyMessage)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
if withNotification != nil {
|
||||
withNotification(notification)
|
||||
}
|
||||
notifications = append(notifications, notification)
|
||||
}
|
||||
|
||||
return notifications, nil
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) unmarshalActivityCenterNotificationRow(row *sql.Row) (*ActivityCenterNotification, error) {
|
||||
|
@ -188,7 +269,8 @@ func (db sqlitePersistence) unmarshalActivityCenterNotificationRow(row *sql.Row)
|
|||
&replyMessageBytes,
|
||||
¬ification.ContactVerificationStatus,
|
||||
&name,
|
||||
&author)
|
||||
&author,
|
||||
¬ification.UpdatedAt)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -268,7 +350,8 @@ func (db sqlitePersistence) unmarshalActivityCenterNotificationRows(rows *sql.Ro
|
|||
¬ification.ContactVerificationStatus,
|
||||
&name,
|
||||
&author,
|
||||
&latestCursor)
|
||||
&latestCursor,
|
||||
¬ification.UpdatedAt)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
@ -419,7 +502,8 @@ func (db sqlitePersistence) buildActivityCenterQuery(tx *sql.Tx, params activity
|
|||
a.contact_verification_status,
|
||||
c.name,
|
||||
a.author,
|
||||
substr('0000000000000000000000000000000000000000000000000000000000000000' || a.timestamp, -64, 64) || hex(a.id) as cursor
|
||||
substr('0000000000000000000000000000000000000000000000000000000000000000' || a.timestamp, -64, 64) || hex(a.id) as cursor,
|
||||
a.updated_at
|
||||
FROM activity_center_notifications a
|
||||
LEFT JOIN chats c
|
||||
ON
|
||||
|
@ -436,6 +520,7 @@ func (db sqlitePersistence) buildActivityCenterQuery(tx *sql.Tx, params activity
|
|||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
return db.unmarshalActivityCenterNotificationRows(rows)
|
||||
}
|
||||
|
@ -474,14 +559,14 @@ func (db sqlitePersistence) runActivityCenterIDQuery(query string) ([][]byte, er
|
|||
}
|
||||
|
||||
func (db sqlitePersistence) GetNotReadActivityCenterNotificationIds() ([][]byte, error) {
|
||||
return db.runActivityCenterIDQuery("SELECT a.id FROM activity_center_notifications a WHERE NOT a.read")
|
||||
return db.runActivityCenterIDQuery("SELECT a.id FROM activity_center_notifications a WHERE NOT a.read AND NOT a.deleted")
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) GetToProcessActivityCenterNotificationIds() ([][]byte, error) {
|
||||
return db.runActivityCenterIDQuery(`
|
||||
SELECT a.id
|
||||
FROM activity_center_notifications a
|
||||
WHERE NOT a.deleted AND NOT a.dismissed AND NOT a.accepted
|
||||
WHERE NOT a.dismissed AND NOT a.accepted AND NOT a.deleted
|
||||
`)
|
||||
}
|
||||
|
||||
|
@ -515,7 +600,7 @@ func (db sqlitePersistence) GetActivityCenterNotificationsByID(ids []types.HexBy
|
|||
}
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
rows, err := db.db.Query("SELECT a.id, a.read, a.accepted, a.dismissed FROM activity_center_notifications a WHERE a.id IN ("+inVector+")", idsArgs...) // nolint: gosec
|
||||
rows, err := db.db.Query("SELECT a.id, a.read, a.accepted, a.dismissed FROM activity_center_notifications a WHERE a.id IN ("+inVector+") AND NOT a.deleted", idsArgs...) // nolint: gosec
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -540,6 +625,7 @@ func (db sqlitePersistence) GetActivityCenterNotificationsByID(ids []types.HexBy
|
|||
return notifications, nil
|
||||
}
|
||||
|
||||
// GetActivityCenterNotificationByID returns a notification by its ID even it's deleted logically
|
||||
func (db sqlitePersistence) GetActivityCenterNotificationByID(id types.HexBytes) (*ActivityCenterNotification, error) {
|
||||
row := db.db.QueryRow(`
|
||||
SELECT
|
||||
|
@ -558,7 +644,8 @@ func (db sqlitePersistence) GetActivityCenterNotificationByID(id types.HexBytes)
|
|||
a.reply_message,
|
||||
a.contact_verification_status,
|
||||
c.name,
|
||||
a.author
|
||||
a.author,
|
||||
a.updated_at
|
||||
FROM activity_center_notifications a
|
||||
LEFT JOIN chats c
|
||||
ON
|
||||
|
@ -606,97 +693,168 @@ func (db sqlitePersistence) activityCenterNotifications(params activityCenterQue
|
|||
return latestCursor, notifications, nil
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotifications() error {
|
||||
_, err := db.db.Exec(`UPDATE activity_center_notifications SET read = 1, dismissed = 1 WHERE NOT dismissed AND NOT accepted`)
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotifications(updatedAt uint64) error {
|
||||
_, err := db.db.Exec(`UPDATE activity_center_notifications SET read = 1, dismissed = 1, updated_at = ? WHERE NOT dismissed AND NOT accepted AND NOT deleted`, updatedAt)
|
||||
return err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotificationsFromUser(userPublicKey string) error {
|
||||
_, err := db.db.Exec(`
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotificationsFromUser(userPublicKey string, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
query := fmt.Sprintf(`SELECT %s FROM activity_center_notifications WHERE
|
||||
author = ? AND
|
||||
NOT deleted AND
|
||||
NOT dismissed AND
|
||||
NOT accepted`, allFieldsForTableActivityCenterNotification)
|
||||
rows, err := db.db.Query(query, userPublicKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var notifications []*ActivityCenterNotification
|
||||
notifications, err = db.parseRowFromTableActivityCenterNotification(rows, func(notification *ActivityCenterNotification) {
|
||||
notification.Read = true
|
||||
notification.Dismissed = true
|
||||
notification.UpdatedAt = updatedAt
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = db.db.Exec(`
|
||||
UPDATE activity_center_notifications
|
||||
SET read = 1, dismissed = 1
|
||||
SET read = 1, dismissed = 1, updated_at = ?
|
||||
WHERE author = ?
|
||||
AND NOT deleted
|
||||
AND NOT dismissed
|
||||
AND NOT accepted
|
||||
`,
|
||||
userPublicKey)
|
||||
return err
|
||||
updatedAt, userPublicKey)
|
||||
return notifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DeleteActivityCenterNotifications(ids []types.HexBytes) error {
|
||||
func (db sqlitePersistence) DeleteActivityCenterNotifications(ids []types.HexBytes, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
if len(ids) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
args := make([]interface{}, 0, len(ids)+1)
|
||||
args = append(args, updatedAt)
|
||||
for _, id := range ids {
|
||||
args = append(args, id)
|
||||
}
|
||||
|
||||
// nolint: gosec
|
||||
query := fmt.Sprintf(`SELECT %s FROM activity_center_notifications WHERE id IN (%s) AND NOT deleted`,
|
||||
allFieldsForTableActivityCenterNotification,
|
||||
inVector)
|
||||
rows, err := db.db.Query(query, args[1:]...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
notifications, err := db.parseRowFromTableActivityCenterNotification(rows, func(notification *ActivityCenterNotification) {
|
||||
notification.Deleted = true
|
||||
notification.UpdatedAt = updatedAt
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
update := "UPDATE activity_center_notifications SET deleted = 1, updated_at = ? WHERE id IN (" + inVector + ") AND NOT deleted"
|
||||
_, err = db.db.Exec(update, args...)
|
||||
|
||||
return notifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DismissActivityCenterNotifications(ids []types.HexBytes, updatedAt uint64) error {
|
||||
if len(ids) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
idsArgs := make([]interface{}, 0, len(ids))
|
||||
args := make([]interface{}, 0, len(ids)+1)
|
||||
args = append(args, updatedAt)
|
||||
for _, id := range ids {
|
||||
idsArgs = append(idsArgs, id)
|
||||
args = append(args, id)
|
||||
}
|
||||
args = append(args, updatedAt)
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
query := "UPDATE activity_center_notifications SET deleted = 1 WHERE id IN (" + inVector + ")"
|
||||
_, err := db.db.Exec(query, idsArgs...)
|
||||
|
||||
query := "UPDATE activity_center_notifications SET read = 1, dismissed = 1, updated_at = ? WHERE id IN (" + inVector + ") AND not deleted AND updated_at < ?" // nolint: gosec
|
||||
_, err := db.db.Exec(query, args...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DismissActivityCenterNotifications(ids []types.HexBytes) error {
|
||||
if len(ids) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
idsArgs := make([]interface{}, 0, len(ids))
|
||||
for _, id := range ids {
|
||||
idsArgs = append(idsArgs, id)
|
||||
}
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
query := "UPDATE activity_center_notifications SET read = 1, dismissed = 1 WHERE id IN (" + inVector + ")" // nolint: gosec
|
||||
_, err := db.db.Exec(query, idsArgs...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotificationsFromCommunity(communityID string) error {
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotificationsFromCommunity(communityID string, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
|
||||
chatIDs, err := db.AllChatIDsByCommunity(communityID)
|
||||
if err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
chatIDsCount := len(chatIDs)
|
||||
if chatIDsCount == 0 {
|
||||
return nil
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
chatIDsArgs := make([]interface{}, 0, chatIDsCount)
|
||||
args := make([]interface{}, 0, chatIDsCount+1)
|
||||
args = append(args, updatedAt)
|
||||
for _, chatID := range chatIDs {
|
||||
chatIDsArgs = append(chatIDsArgs, chatID)
|
||||
args = append(args, chatID)
|
||||
}
|
||||
|
||||
inVector := strings.Repeat("?, ", chatIDsCount-1) + "?"
|
||||
query := "UPDATE activity_center_notifications SET read = 1, dismissed = 1 WHERE chat_id IN (" + inVector + ")" // nolint: gosec
|
||||
_, err = db.db.Exec(query, chatIDsArgs...)
|
||||
return err
|
||||
// nolint: gosec
|
||||
query := fmt.Sprintf(`SELECT %s FROM activity_center_notifications WHERE chat_id IN (%s) AND NOT deleted`, allFieldsForTableActivityCenterNotification, inVector)
|
||||
rows, err := db.db.Query(query, args[1:]...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
notifications, err := db.parseRowFromTableActivityCenterNotification(rows, func(notification *ActivityCenterNotification) {
|
||||
notification.Read = true
|
||||
notification.Dismissed = true
|
||||
notification.UpdatedAt = updatedAt
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
query = "UPDATE activity_center_notifications SET read = 1, dismissed = 1, updated_at = ? WHERE chat_id IN (" + inVector + ") AND NOT deleted" // nolint: gosec
|
||||
_, err = db.db.Exec(query, args...)
|
||||
return notifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotificationsFromChatID(chatID string) error {
|
||||
func (db sqlitePersistence) DismissAllActivityCenterNotificationsFromChatID(chatID string, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
query := fmt.Sprintf(`SELECT %s FROM activity_center_notifications
|
||||
WHERE chat_id = ?
|
||||
AND NOT deleted
|
||||
AND NOT accepted
|
||||
AND notification_type != ?`, allFieldsForTableActivityCenterNotification)
|
||||
rows, err := db.db.Query(query, chatID, ActivityCenterNotificationTypeContactRequest)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
notifications, err := db.parseRowFromTableActivityCenterNotification(rows, func(notification *ActivityCenterNotification) {
|
||||
notification.Read = true
|
||||
notification.Dismissed = true
|
||||
notification.UpdatedAt = updatedAt
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// We exclude notifications related to contacts, since those we don't want to
|
||||
// be cleared.
|
||||
query := `
|
||||
query = `
|
||||
UPDATE activity_center_notifications
|
||||
SET read = 1, dismissed = 1
|
||||
WHERE NOT deleted
|
||||
SET read = 1, dismissed = 1, updated_at = ?
|
||||
WHERE chat_id = ?
|
||||
AND NOT deleted
|
||||
AND NOT accepted
|
||||
AND chat_id = ?
|
||||
AND notification_type != ?
|
||||
`
|
||||
_, err := db.db.Exec(query, chatID, ActivityCenterNotificationTypeContactRequest)
|
||||
return err
|
||||
_, err = db.db.Exec(query, updatedAt, chatID, ActivityCenterNotificationTypeContactRequest)
|
||||
return notifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) AcceptAllActivityCenterNotifications() ([]*ActivityCenterNotification, error) {
|
||||
func (db sqlitePersistence) AcceptAllActivityCenterNotifications(updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
var tx *sql.Tx
|
||||
var err error
|
||||
|
||||
|
@ -714,15 +872,15 @@ func (db sqlitePersistence) AcceptAllActivityCenterNotifications() ([]*ActivityC
|
|||
}()
|
||||
|
||||
_, notifications, err := db.buildActivityCenterQuery(tx, activityCenterQueryParams{})
|
||||
|
||||
_, err = tx.Exec(`UPDATE activity_center_notifications SET read = 1, accepted = 1 WHERE NOT accepted AND NOT dismissed`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return notifications, nil
|
||||
|
||||
_, err = tx.Exec(`UPDATE activity_center_notifications SET read = 1, accepted = 1, updated_at = ? WHERE NOT dismissed AND NOT accepted AND NOT deleted`, updatedAt)
|
||||
return notifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) AcceptActivityCenterNotifications(ids []types.HexBytes) ([]*ActivityCenterNotification, error) {
|
||||
func (db sqlitePersistence) AcceptActivityCenterNotifications(ids []types.HexBytes, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
|
||||
var tx *sql.Tx
|
||||
var err error
|
||||
|
@ -740,28 +898,38 @@ func (db sqlitePersistence) AcceptActivityCenterNotifications(ids []types.HexByt
|
|||
_ = tx.Rollback()
|
||||
}()
|
||||
|
||||
args := make([]interface{}, 0, len(ids)+1)
|
||||
args = append(args, updatedAt)
|
||||
for _, id := range ids {
|
||||
args = append(args, id)
|
||||
}
|
||||
args = append(args, updatedAt)
|
||||
|
||||
params := activityCenterQueryParams{
|
||||
ids: ids,
|
||||
}
|
||||
|
||||
_, notifications, err := db.buildActivityCenterQuery(tx, params)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
idsArgs := make([]interface{}, 0, len(ids))
|
||||
for _, id := range ids {
|
||||
idsArgs = append(idsArgs, id)
|
||||
var updateNotifications []*ActivityCenterNotification
|
||||
for _, n := range notifications {
|
||||
if n.UpdatedAt >= updatedAt {
|
||||
continue
|
||||
}
|
||||
n.Read = true
|
||||
n.Accepted = true
|
||||
n.UpdatedAt = updatedAt
|
||||
updateNotifications = append(updateNotifications, n)
|
||||
}
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
query := "UPDATE activity_center_notifications SET read = 1, accepted = 1 WHERE id IN (" + inVector + ")" // nolint: gosec
|
||||
_, err = tx.Exec(query, idsArgs...)
|
||||
return notifications, err
|
||||
query := "UPDATE activity_center_notifications SET read = 1, accepted = 1, updated_at = ? WHERE id IN (" + inVector + ") AND NOT deleted AND updated_at < ?" // nolint: gosec
|
||||
_, err = tx.Exec(query, args...)
|
||||
return updateNotifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey string) ([]*ActivityCenterNotification, error) {
|
||||
func (db sqlitePersistence) AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey string, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
var tx *sql.Tx
|
||||
var err error
|
||||
|
||||
|
@ -778,27 +946,35 @@ func (db sqlitePersistence) AcceptActivityCenterNotificationsForInvitesFromUser(
|
|||
_ = tx.Rollback()
|
||||
}()
|
||||
|
||||
params := activityCenterQueryParams{
|
||||
author: userPublicKey,
|
||||
activityCenterTypes: []ActivityCenterType{ActivityCenterNotificationTypeNewPrivateGroupChat},
|
||||
query := fmt.Sprintf(`SELECT %s FROM activity_center_notifications
|
||||
WHERE author = ?
|
||||
AND NOT deleted
|
||||
AND NOT dismissed
|
||||
AND NOT accepted
|
||||
AND notification_type = ?`, allFieldsForTableActivityCenterNotification)
|
||||
rows, err := tx.Query(query, userPublicKey, ActivityCenterNotificationTypeNewPrivateGroupChat)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, notifications, err := db.buildActivityCenterQuery(tx, params)
|
||||
|
||||
notifications, err := db.parseRowFromTableActivityCenterNotification(rows, func(notification *ActivityCenterNotification) {
|
||||
notification.Read = true
|
||||
notification.Accepted = true
|
||||
notification.UpdatedAt = updatedAt
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = tx.Exec(`
|
||||
UPDATE activity_center_notifications
|
||||
SET read = 1, accepted = 1
|
||||
WHERE NOT accepted
|
||||
AND NOT dismissed
|
||||
SET read = 1, accepted = 1, updated_at = ?
|
||||
WHERE author = ?
|
||||
AND NOT deleted
|
||||
AND author = ?
|
||||
AND NOT dismissed
|
||||
AND NOT accepted
|
||||
AND notification_type = ?
|
||||
`,
|
||||
userPublicKey, ActivityCenterNotificationTypeNewPrivateGroupChat)
|
||||
updatedAt, userPublicKey, ActivityCenterNotificationTypeNewPrivateGroupChat)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -807,36 +983,53 @@ func (db sqlitePersistence) AcceptActivityCenterNotificationsForInvitesFromUser(
|
|||
return notifications, nil
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) MarkAllActivityCenterNotificationsRead() error {
|
||||
_, err := db.db.Exec(`UPDATE activity_center_notifications SET read = 1 WHERE NOT read`)
|
||||
func (db sqlitePersistence) MarkAllActivityCenterNotificationsRead(updatedAt uint64) error {
|
||||
_, err := db.db.Exec(`UPDATE activity_center_notifications SET read = 1, updated_at = ? WHERE NOT read AND NOT deleted`, updatedAt)
|
||||
return err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) MarkActivityCenterNotificationsRead(ids []types.HexBytes) error {
|
||||
func (db sqlitePersistence) MarkActivityCenterNotificationsRead(ids []types.HexBytes, updatedAt uint64) error {
|
||||
|
||||
idsArgs := make([]interface{}, 0, len(ids))
|
||||
args := make([]interface{}, 0, len(ids)+1)
|
||||
args = append(args, updatedAt)
|
||||
for _, id := range ids {
|
||||
idsArgs = append(idsArgs, id)
|
||||
args = append(args, id)
|
||||
}
|
||||
args = append(args, updatedAt)
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
query := "UPDATE activity_center_notifications SET read = 1 WHERE id IN (" + inVector + ")" // nolint: gosec
|
||||
_, err := db.db.Exec(query, idsArgs...)
|
||||
query := "UPDATE activity_center_notifications SET read = 1, updated_at = ? WHERE id IN (" + inVector + ") AND NOT deleted AND updated_at < ?" // nolint: gosec
|
||||
_, err := db.db.Exec(query, args...)
|
||||
return err
|
||||
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) MarkActivityCenterNotificationsUnread(ids []types.HexBytes) error {
|
||||
func (db sqlitePersistence) MarkActivityCenterNotificationsUnread(ids []types.HexBytes, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
|
||||
idsArgs := make([]interface{}, 0, len(ids))
|
||||
args := make([]interface{}, 0, len(ids)+1)
|
||||
args = append(args, updatedAt)
|
||||
for _, id := range ids {
|
||||
idsArgs = append(idsArgs, id)
|
||||
args = append(args, id)
|
||||
}
|
||||
|
||||
inVector := strings.Repeat("?, ", len(ids)-1) + "?"
|
||||
query := "UPDATE activity_center_notifications SET read = 0 WHERE id IN (" + inVector + ")" // nolint: gosec
|
||||
_, err := db.db.Exec(query, idsArgs...)
|
||||
return err
|
||||
// nolint: gosec
|
||||
query := fmt.Sprintf("SELECT %s FROM activity_center_notifications WHERE id IN (%s) AND NOT deleted", allFieldsForTableActivityCenterNotification, inVector)
|
||||
rows, err := db.db.Query(query, args[1:]...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
notifications, err := db.parseRowFromTableActivityCenterNotification(rows, func(notification *ActivityCenterNotification) {
|
||||
notification.Read = false
|
||||
notification.UpdatedAt = updatedAt
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
query = "UPDATE activity_center_notifications SET read = 0, updated_at = ? WHERE id IN (" + inVector + ") AND NOT deleted" // nolint: gosec
|
||||
_, err = db.db.Exec(query, args...)
|
||||
return notifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) ActivityCenterNotifications(cursor string, limit uint64, activityTypes []ActivityCenterType, readType ActivityCenterQueryParamsRead, accepted bool) (string, []*ActivityCenterNotification, error) {
|
||||
|
@ -880,18 +1073,19 @@ func (db sqlitePersistence) ActiveContactRequestNotification(contactID string) (
|
|||
a.reply_message,
|
||||
a.contact_verification_status,
|
||||
c.name,
|
||||
a.author
|
||||
a.author,
|
||||
a.updated_at
|
||||
FROM activity_center_notifications a
|
||||
LEFT JOIN chats c ON c.id = a.chat_id
|
||||
WHERE NOT a.deleted
|
||||
WHERE a.author = ?
|
||||
AND NOT a.deleted
|
||||
AND NOT a.dismissed
|
||||
AND NOT a.accepted
|
||||
AND a.notification_type = ?
|
||||
AND a.author = ?
|
||||
ORDER BY a.timestamp DESC
|
||||
LIMIT 1
|
||||
`
|
||||
row := db.db.QueryRow(query, ActivityCenterNotificationTypeContactRequest, contactID)
|
||||
row := db.db.QueryRow(query, contactID, ActivityCenterNotificationTypeContactRequest)
|
||||
notification, err := db.unmarshalActivityCenterNotificationRow(row)
|
||||
if err == sql.ErrNoRows {
|
||||
return nil, nil
|
||||
|
@ -899,36 +1093,55 @@ func (db sqlitePersistence) ActiveContactRequestNotification(contactID string) (
|
|||
return notification, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) HardDeleteChatContactRequestActivityCenterNotifications(chatID string) error {
|
||||
_, err := db.db.Exec(`
|
||||
DELETE FROM activity_center_notifications
|
||||
func (db sqlitePersistence) DeleteChatContactRequestActivityCenterNotifications(chatID string, updatedAt uint64) ([]*ActivityCenterNotification, error) {
|
||||
query := fmt.Sprintf(`SELECT %s FROM activity_center_notifications WHERE chat_id = ? AND NOT deleted AND notification_type = ?`, allFieldsForTableActivityCenterNotification)
|
||||
rows, err := db.db.Query(query, chatID, ActivityCenterNotificationTypeContactRequest)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
notifications, err := db.parseRowFromTableActivityCenterNotification(rows, func(notification *ActivityCenterNotification) {
|
||||
notification.Deleted = true
|
||||
notification.UpdatedAt = updatedAt
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = db.db.Exec(`
|
||||
UPDATE activity_center_notifications SET deleted = 1, updated_at = ?
|
||||
WHERE
|
||||
chat_id = ?
|
||||
AND NOT deleted
|
||||
AND notification_type = ?
|
||||
`, chatID, ActivityCenterNotificationTypeContactRequest)
|
||||
return err
|
||||
`, updatedAt, chatID, ActivityCenterNotificationTypeContactRequest)
|
||||
return notifications, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) HasUnseenActivityCenterNotifications() (bool, error) {
|
||||
row := db.db.QueryRow(`SELECT has_seen FROM activity_center_states`)
|
||||
func (db sqlitePersistence) HasUnseenActivityCenterNotifications() (bool, uint64, error) {
|
||||
row := db.db.QueryRow(`SELECT has_seen, updated_at FROM activity_center_states`)
|
||||
hasSeen := true
|
||||
err := row.Scan(&hasSeen)
|
||||
return !hasSeen, err
|
||||
updatedAt := uint64(0)
|
||||
err := row.Scan(&hasSeen, &updatedAt)
|
||||
return !hasSeen, updatedAt, err
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) MarkAsSeenActivityCenterNotifications() error {
|
||||
_, err := db.db.Exec(`UPDATE activity_center_states SET has_seen = 1`)
|
||||
return err
|
||||
func (db sqlitePersistence) UpdateActivityCenterNotificationState(state *ActivityCenterState) (int64, error) {
|
||||
result, err := db.db.Exec(`UPDATE activity_center_states SET has_seen = ?, updated_at = ? WHERE updated_at < ?`, state.HasSeen, state.UpdatedAt, state.UpdatedAt)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return result.RowsAffected()
|
||||
}
|
||||
|
||||
func (db sqlitePersistence) GetActivityCenterState() (*ActivityCenterState, error) {
|
||||
unseen, err := db.HasUnseenActivityCenterNotifications()
|
||||
unseen, updatedAt, err := db.HasUnseenActivityCenterNotifications()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
state := &ActivityCenterState{
|
||||
HasSeen: !unseen,
|
||||
HasSeen: !unseen,
|
||||
UpdatedAt: updatedAt,
|
||||
}
|
||||
return state, nil
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package protocol
|
|||
import (
|
||||
"strconv"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
|
@ -10,15 +11,24 @@ import (
|
|||
"github.com/status-im/status-go/protocol/common"
|
||||
)
|
||||
|
||||
func currentMilliseconds() uint64 {
|
||||
c := time.Now().UnixMilli()
|
||||
return uint64(c)
|
||||
}
|
||||
|
||||
func createNotifications(t *testing.T, p *sqlitePersistence, notifications []*ActivityCenterNotification) []*ActivityCenterNotification {
|
||||
now := currentMilliseconds()
|
||||
for index, notif := range notifications {
|
||||
if notif.Timestamp == 0 {
|
||||
notif.Timestamp = 1
|
||||
notif.Timestamp = now
|
||||
}
|
||||
if len(notif.ID) == 0 {
|
||||
notif.ID = types.HexBytes(strconv.Itoa(index))
|
||||
}
|
||||
err := p.SaveActivityCenterNotification(notif)
|
||||
if notif.UpdatedAt == 0 {
|
||||
notif.UpdatedAt = now
|
||||
}
|
||||
_, err := p.SaveActivityCenterNotification(notif, true)
|
||||
require.NoError(t, err, notif.ID)
|
||||
}
|
||||
|
||||
|
@ -26,7 +36,7 @@ func createNotifications(t *testing.T, p *sqlitePersistence, notifications []*Ac
|
|||
var createdNotifications []*ActivityCenterNotification
|
||||
for _, notif := range notifications {
|
||||
n, err := p.GetActivityCenterNotificationByID(notif.ID)
|
||||
require.NoError(t, err, n.ID)
|
||||
require.NoError(t, err, notif.ID)
|
||||
createdNotifications = append(createdNotifications, n)
|
||||
}
|
||||
|
||||
|
@ -55,7 +65,7 @@ func TestDeleteActivityCenterNotificationsWhenEmpty(t *testing.T) {
|
|||
count, _ = p.ActivityCenterNotificationsCount([]ActivityCenterType{}, ActivityCenterQueryParamsReadUnread, false)
|
||||
require.Equal(t, uint64(1), count)
|
||||
|
||||
err = p.DeleteActivityCenterNotifications([]types.HexBytes{})
|
||||
_, err = p.DeleteActivityCenterNotifications([]types.HexBytes{}, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
|
||||
count, _ = p.ActivityCenterNotificationsCount([]ActivityCenterType{}, ActivityCenterQueryParamsReadUnread, false)
|
||||
|
@ -84,7 +94,7 @@ func TestDeleteActivityCenterNotificationsWithMultipleIds(t *testing.T) {
|
|||
count, _ = p.ActivityCenterNotificationsCount([]ActivityCenterType{}, ActivityCenterQueryParamsReadUnread, false)
|
||||
require.Equal(t, uint64(3), count)
|
||||
|
||||
err = p.DeleteActivityCenterNotifications([]types.HexBytes{notifications[1].ID, notifications[2].ID})
|
||||
_, err = p.DeleteActivityCenterNotifications([]types.HexBytes{notifications[1].ID, notifications[2].ID}, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
|
||||
count, _ = p.ActivityCenterNotificationsCount([]ActivityCenterType{}, ActivityCenterQueryParamsReadUnread, false)
|
||||
|
@ -158,7 +168,7 @@ func TestDeleteActivityCenterNotificationsForMessage(t *testing.T) {
|
|||
})
|
||||
|
||||
// Test: soft delete only the notifications that have Message.ID == messages[0].ID.
|
||||
err = p.DeleteActivityCenterNotificationForMessage(chat.ID, messages[0].ID)
|
||||
_, err = p.DeleteActivityCenterNotificationForMessage(chat.ID, messages[0].ID, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
|
||||
notif, err := p.GetActivityCenterNotificationByID(nID1)
|
||||
|
@ -178,7 +188,7 @@ func TestDeleteActivityCenterNotificationsForMessage(t *testing.T) {
|
|||
|
||||
// Test: soft delete the notifications that have Message.ID == messages[1].ID
|
||||
// or LastMessage.ID == chat.LastMessage.
|
||||
err = p.DeleteActivityCenterNotificationForMessage(chat.ID, messages[1].ID)
|
||||
_, err = p.DeleteActivityCenterNotificationForMessage(chat.ID, messages[1].ID, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
|
||||
for _, id := range []types.HexBytes{nID2, nID3} {
|
||||
|
@ -196,7 +206,7 @@ func TestDeleteActivityCenterNotificationsForMessage(t *testing.T) {
|
|||
require.False(t, notif.Read)
|
||||
|
||||
// Test: don't do anything if passed a chat and message without notifications.
|
||||
err = p.DeleteActivityCenterNotificationForMessage(chat2.ID, messages[2].ID)
|
||||
_, err = p.DeleteActivityCenterNotificationForMessage(chat2.ID, messages[2].ID, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
|
@ -239,7 +249,7 @@ func TestAcceptActivityCenterNotificationsForInvitesFromUser(t *testing.T) {
|
|||
|
||||
var notif *ActivityCenterNotification
|
||||
for _, notif = range notifications {
|
||||
err = p.SaveActivityCenterNotification(notif)
|
||||
_, err = p.SaveActivityCenterNotification(notif, true)
|
||||
require.NoError(t, err, notif.ID)
|
||||
}
|
||||
|
||||
|
@ -250,7 +260,7 @@ func TestAcceptActivityCenterNotificationsForInvitesFromUser(t *testing.T) {
|
|||
require.False(t, notifications[0].Accepted)
|
||||
require.False(t, notifications[0].Read)
|
||||
|
||||
notifications, err = p.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey)
|
||||
notifications, err = p.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey, 1)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, notifications, 1)
|
||||
require.Equal(t, nID2, notifications[0].ID)
|
||||
|
@ -268,9 +278,9 @@ func TestAcceptActivityCenterNotificationsForInvitesFromUser(t *testing.T) {
|
|||
Author: userPublicKey,
|
||||
Deleted: true,
|
||||
}
|
||||
err = p.SaveActivityCenterNotification(notif)
|
||||
_, err = p.SaveActivityCenterNotification(notif, true)
|
||||
require.NoError(t, err)
|
||||
_, err = p.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey)
|
||||
_, err = p.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
notif, err = p.GetActivityCenterNotificationByID(notif.ID)
|
||||
require.NoError(t, err)
|
||||
|
@ -286,9 +296,9 @@ func TestAcceptActivityCenterNotificationsForInvitesFromUser(t *testing.T) {
|
|||
Author: userPublicKey,
|
||||
Dismissed: true,
|
||||
}
|
||||
err = p.SaveActivityCenterNotification(notif)
|
||||
_, err = p.SaveActivityCenterNotification(notif, true)
|
||||
require.NoError(t, err)
|
||||
_, err = p.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey)
|
||||
_, err = p.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
notif, err = p.GetActivityCenterNotificationByID(notif.ID)
|
||||
require.NoError(t, err)
|
||||
|
@ -371,7 +381,7 @@ func TestHasPendingNotificationsForChat(t *testing.T) {
|
|||
Type: ActivityCenterNotificationTypeCommunityRequest,
|
||||
Timestamp: 1,
|
||||
}
|
||||
err = p.SaveActivityCenterNotification(notif)
|
||||
_, err = p.SaveActivityCenterNotification(notif, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
result, err = p.HasPendingNotificationsForChat(chat.ID)
|
||||
|
@ -412,7 +422,7 @@ func TestDismissAllActivityCenterNotificationsFromUser(t *testing.T) {
|
|||
},
|
||||
})
|
||||
|
||||
err = p.DismissAllActivityCenterNotificationsFromUser(publicKey)
|
||||
_, err = p.DismissAllActivityCenterNotificationsFromUser(publicKey, 1)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Ignores already soft deleted.
|
||||
|
@ -492,7 +502,7 @@ func TestDismissAllActivityCenterNotificationsFromChatID(t *testing.T) {
|
|||
},
|
||||
})
|
||||
|
||||
err = p.DismissAllActivityCenterNotificationsFromChatID(chatID)
|
||||
_, err = p.DismissAllActivityCenterNotificationsFromChatID(chatID, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
|
||||
// Ignores already soft deleted.
|
||||
|
@ -615,17 +625,19 @@ func TestActiveContactRequestNotification(t *testing.T) {
|
|||
// one according to the notification's timestamp.
|
||||
expectedID := types.HexBytes("667")
|
||||
|
||||
t1 := currentMilliseconds()
|
||||
t2 := currentMilliseconds()
|
||||
createNotifications(t, p, []*ActivityCenterNotification{
|
||||
{
|
||||
ID: expectedID,
|
||||
Timestamp: 3,
|
||||
Timestamp: t2 + 1,
|
||||
ChatID: chat.ID,
|
||||
Author: contactID,
|
||||
Type: ActivityCenterNotificationTypeContactRequest,
|
||||
},
|
||||
{
|
||||
ID: types.HexBytes("666"),
|
||||
Timestamp: 2,
|
||||
Timestamp: t1,
|
||||
ChatID: chat.ID,
|
||||
Author: contactID,
|
||||
Type: ActivityCenterNotificationTypeContactRequest,
|
||||
|
@ -705,7 +717,7 @@ func TestActivityCenterPersistence(t *testing.T) {
|
|||
ChatID: chat.ID,
|
||||
Timestamp: 1,
|
||||
}
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
cursor, notifications, err := p.ActivityCenterNotifications("", 2, []ActivityCenterType{}, ActivityCenterQueryParamsReadAll, false)
|
||||
|
@ -722,7 +734,7 @@ func TestActivityCenterPersistence(t *testing.T) {
|
|||
Type: ActivityCenterNotificationTypeNewOneToOne,
|
||||
Timestamp: 2,
|
||||
}
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
cursor, notifications, err = p.ActivityCenterNotifications("", 1, []ActivityCenterType{}, ActivityCenterQueryParamsReadAll, false)
|
||||
|
@ -745,20 +757,24 @@ func TestActivityCenterPersistence(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(2), count)
|
||||
|
||||
var updatedAt uint64 = 1
|
||||
// Mark first one as read
|
||||
require.NoError(t, p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID1}))
|
||||
require.NoError(t, p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID1}, updatedAt))
|
||||
count, err = p.ActivityCenterNotificationsCount([]ActivityCenterType{}, ActivityCenterQueryParamsReadUnread, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(1), count)
|
||||
|
||||
// Mark first one as unread
|
||||
require.NoError(t, p.MarkActivityCenterNotificationsUnread([]types.HexBytes{nID1}))
|
||||
updatedAt++
|
||||
_, err = p.MarkActivityCenterNotificationsUnread([]types.HexBytes{nID1}, updatedAt)
|
||||
require.NoError(t, err)
|
||||
count, err = p.ActivityCenterNotificationsCount([]ActivityCenterType{}, ActivityCenterQueryParamsReadUnread, false)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, uint64(2), count)
|
||||
|
||||
// Mark all read
|
||||
require.NoError(t, p.MarkAllActivityCenterNotificationsRead())
|
||||
updatedAt++
|
||||
require.NoError(t, p.MarkAllActivityCenterNotificationsRead(updatedAt))
|
||||
_, notifications, err = p.ActivityCenterNotifications(cursor, 2, []ActivityCenterType{}, ActivityCenterQueryParamsReadAll, false)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, notifications, 2)
|
||||
|
@ -772,8 +788,8 @@ func TestActivityCenterPersistence(t *testing.T) {
|
|||
require.Equal(t, uint64(0), count)
|
||||
|
||||
// Mark first one as accepted
|
||||
|
||||
notifications, err = p.AcceptActivityCenterNotifications([]types.HexBytes{nID1})
|
||||
updatedAt++
|
||||
notifications, err = p.AcceptActivityCenterNotifications([]types.HexBytes{nID1}, updatedAt)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, notifications, 1)
|
||||
_, notifications, err = p.ActivityCenterNotifications("", 2, []ActivityCenterType{}, ActivityCenterQueryParamsReadAll, false)
|
||||
|
@ -782,7 +798,8 @@ func TestActivityCenterPersistence(t *testing.T) {
|
|||
require.Len(t, notifications, 1)
|
||||
|
||||
// Mark last one as dismissed
|
||||
require.NoError(t, p.DismissActivityCenterNotifications([]types.HexBytes{nID2}))
|
||||
updatedAt++
|
||||
require.NoError(t, p.DismissActivityCenterNotifications([]types.HexBytes{nID2}, updatedAt))
|
||||
_, notifications, err = p.ActivityCenterNotifications("", 2, []ActivityCenterType{}, ActivityCenterQueryParamsReadAll, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
|
@ -795,11 +812,12 @@ func TestActivityCenterPersistence(t *testing.T) {
|
|||
Type: ActivityCenterNotificationTypeNewOneToOne,
|
||||
Timestamp: 3,
|
||||
}
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Mark all as accepted
|
||||
notifications, err = p.AcceptAllActivityCenterNotifications()
|
||||
updatedAt++
|
||||
notifications, err = p.AcceptAllActivityCenterNotifications(updatedAt)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, notifications, 2)
|
||||
|
||||
|
@ -814,11 +832,12 @@ func TestActivityCenterPersistence(t *testing.T) {
|
|||
Type: ActivityCenterNotificationTypeNewOneToOne,
|
||||
Timestamp: 4,
|
||||
}
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Mark all as dismissed
|
||||
require.NoError(t, p.DismissAllActivityCenterNotifications())
|
||||
updatedAt++
|
||||
require.NoError(t, p.DismissAllActivityCenterNotifications(updatedAt))
|
||||
_, notifications, err = p.ActivityCenterNotifications("", 2, []ActivityCenterType{}, ActivityCenterQueryParamsReadAll, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
|
@ -881,14 +900,14 @@ func TestActivityCenterReadUnreadPagination(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, notification := range allNotifications {
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// Mark the notification as read
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID2})
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID2}, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID4})
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID4}, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
|
||||
// Fetch UNREAD notifications, first page.
|
||||
|
@ -997,7 +1016,7 @@ func TestActivityCenterReadUnreadFilterByTypes(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, notification := range allNotifications {
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
|
@ -1053,7 +1072,7 @@ func TestActivityCenterReadUnreadFilterByTypes(t *testing.T) {
|
|||
|
||||
// Mark all notifications as read.
|
||||
for _, notification := range allNotifications {
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{notification.ID})
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{notification.ID}, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
|
@ -1103,7 +1122,7 @@ func TestActivityCenterReadUnread(t *testing.T) {
|
|||
Timestamp: 1,
|
||||
}
|
||||
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
notification = &ActivityCenterNotification{
|
||||
|
@ -1113,11 +1132,11 @@ func TestActivityCenterReadUnread(t *testing.T) {
|
|||
Timestamp: 1,
|
||||
}
|
||||
|
||||
err = p.SaveActivityCenterNotification(notification)
|
||||
_, err = p.SaveActivityCenterNotification(notification, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Mark the notification as read
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID2})
|
||||
err = p.MarkActivityCenterNotificationsRead([]types.HexBytes{nID2}, currentMilliseconds())
|
||||
require.NoError(t, err)
|
||||
|
||||
cursor, notifications, err := p.ActivityCenterNotifications(
|
||||
|
|
|
@ -3119,6 +3119,7 @@ func (r *ReceivedMessageState) updateExistingActivityCenterNotification(publicKe
|
|||
|
||||
notification.Message = message
|
||||
notification.ReplyMessage = responseTo
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(r.Response, notification)
|
||||
if err != nil {
|
||||
|
@ -3152,12 +3153,10 @@ func (r *ReceivedMessageState) addNewActivityCenterNotification(publicKey ecdsa.
|
|||
ChatID: chat.ID,
|
||||
CommunityID: chat.CommunityID,
|
||||
Author: message.From,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
err := m.addActivityCenterNotification(r.Response, notification)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return m.addActivityCenterNotification(r.Response, notification)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -3792,6 +3791,40 @@ func (m *Messenger) handleRetrievedMessages(chatWithMessages map[transport.Filte
|
|||
continue
|
||||
}
|
||||
|
||||
case protobuf.SyncActivityCenterNotifications:
|
||||
if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
|
||||
logger.Warn("not coming from us, ignoring")
|
||||
continue
|
||||
}
|
||||
|
||||
a := msg.ParsedMessage.Interface().(protobuf.SyncActivityCenterNotifications)
|
||||
m.outputToCSV(msg.TransportMessage.Timestamp, msg.ID, senderID, filter.Topic, filter.ChatID, msg.Type, a)
|
||||
logger.Debug("Handling SyncActivityCenterNotification", zap.Any("message", a))
|
||||
|
||||
err = m.handleSyncActivityCenterNotifications(messageState, &a)
|
||||
if err != nil {
|
||||
logger.Warn("failed to handle SyncActivityCenterNotification", zap.Error(err))
|
||||
allMessagesProcessed = false
|
||||
continue
|
||||
}
|
||||
|
||||
case protobuf.SyncActivityCenterNotificationState:
|
||||
if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
|
||||
logger.Warn("not coming from us, ignoring")
|
||||
continue
|
||||
}
|
||||
|
||||
a := msg.ParsedMessage.Interface().(protobuf.SyncActivityCenterNotificationState)
|
||||
m.outputToCSV(msg.TransportMessage.Timestamp, msg.ID, senderID, filter.Topic, filter.ChatID, msg.Type, a)
|
||||
logger.Debug("Handling SyncActivityCenterNotificationState", zap.Any("message", a))
|
||||
|
||||
err = m.handleSyncActivityCenterNotificationState(messageState, &a)
|
||||
if err != nil {
|
||||
logger.Warn("failed to handle SyncActivityCenterNotificationState", zap.Error(err))
|
||||
allMessagesProcessed = false
|
||||
continue
|
||||
}
|
||||
|
||||
case protobuf.SyncSetting:
|
||||
if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
|
||||
logger.Warn("not coming from us, ignoring")
|
||||
|
@ -4328,12 +4361,14 @@ func (m *Messenger) handleRetrievedMessages(chatWithMessages map[transport.Filte
|
|||
}
|
||||
|
||||
// Activity Center notification
|
||||
now := m.getCurrentTimeInMillis()
|
||||
notification := &ActivityCenterNotification{
|
||||
ID: types.FromHex(uuid.New().String()),
|
||||
Type: ActivityCenterNotificationTypeCommunityKicked,
|
||||
Timestamp: m.getTimesource().GetCurrentTime(),
|
||||
Timestamp: now,
|
||||
CommunityID: changes.Community.IDString(),
|
||||
Read: false,
|
||||
UpdatedAt: now,
|
||||
}
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
|
@ -4767,10 +4802,15 @@ func (m *Messenger) markAllRead(chatID string, clock uint64, shouldBeSynced bool
|
|||
}
|
||||
|
||||
func (m *Messenger) MarkAllRead(chatID string) error {
|
||||
err := m.persistence.DismissAllActivityCenterNotificationsFromChatID(chatID)
|
||||
notifications, err := m.persistence.DismissAllActivityCenterNotificationsFromChatID(chatID, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("MarkAllRead, failed to sync activity center notifications", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
clock, _ := m.latestIncomingMessageClock(chatID)
|
||||
|
||||
|
@ -4786,7 +4826,7 @@ func (m *Messenger) MarkAllRead(chatID string) error {
|
|||
}
|
||||
|
||||
func (m *Messenger) MarkAllReadInCommunity(communityID string) ([]string, error) {
|
||||
err := m.persistence.DismissAllActivityCenterNotificationsFromCommunity(communityID)
|
||||
notifications, err := m.persistence.DismissAllActivityCenterNotificationsFromCommunity(communityID, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -4812,6 +4852,14 @@ func (m *Messenger) MarkAllReadInCommunity(communityID string) ([]string, error)
|
|||
err = errors.New(fmt.Sprintf("chat with chatID %s not found", chatID))
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return chatIDs, err
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("MarkAllReadInCommunity, error syncing activity center notifications", zap.Error(err))
|
||||
}
|
||||
|
||||
return chatIDs, err
|
||||
}
|
||||
|
@ -5680,6 +5728,10 @@ func (m *Messenger) getTimesource() common.TimeSource {
|
|||
return m.transport
|
||||
}
|
||||
|
||||
func (m *Messenger) getCurrentTimeInMillis() uint64 {
|
||||
return m.getTimesource().GetCurrentTime()
|
||||
}
|
||||
|
||||
// AddPushNotificationsServer adds a push notification server
|
||||
func (m *Messenger) AddPushNotificationsServer(ctx context.Context, publicKey *ecdsa.PublicKey, serverType pushnotificationclient.ServerType) error {
|
||||
if m.pushNotificationClient == nil {
|
||||
|
|
|
@ -2,6 +2,9 @@ package protocol
|
|||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/status-im/status-go/protocol/verification"
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/pkg/errors"
|
||||
|
@ -60,16 +63,67 @@ func (m *Messenger) ActivityCenterNotificationsCount(request ActivityCenterCount
|
|||
}
|
||||
|
||||
func (m *Messenger) HasUnseenActivityCenterNotifications() (bool, error) {
|
||||
return m.persistence.HasUnseenActivityCenterNotifications()
|
||||
seen, _, err := m.persistence.HasUnseenActivityCenterNotifications()
|
||||
return seen, err
|
||||
}
|
||||
|
||||
func (m *Messenger) GetActivityCenterState() (*ActivityCenterState, error) {
|
||||
return m.persistence.GetActivityCenterState()
|
||||
}
|
||||
|
||||
func (m *Messenger) syncActivityCenterNotificationState(state *ActivityCenterState) error {
|
||||
if state == nil {
|
||||
return nil
|
||||
}
|
||||
syncStateMessage := &protobuf.SyncActivityCenterNotificationState{
|
||||
UpdatedAt: state.UpdatedAt,
|
||||
HasSeen: state.HasSeen,
|
||||
}
|
||||
encodedMessage, err := proto.Marshal(syncStateMessage)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return m.sendToPairedDevices(context.TODO(), common.RawMessage{
|
||||
Payload: encodedMessage,
|
||||
MessageType: protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_NOTIFICATION_STATE,
|
||||
ResendAutomatically: true,
|
||||
})
|
||||
}
|
||||
|
||||
func (m *Messenger) syncActivityCenterNotifications(notifications []*ActivityCenterNotification) (err error) {
|
||||
if notifications == nil {
|
||||
return nil
|
||||
}
|
||||
var s []*protobuf.SyncActivityCenterNotification
|
||||
for _, n := range notifications {
|
||||
var p *protobuf.SyncActivityCenterNotification
|
||||
p, err = convertActivityCenterNotificationToProtobuf(*n)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
s = append(s, p)
|
||||
}
|
||||
var encodedMessage []byte
|
||||
encodedMessage, err = proto.Marshal(&protobuf.SyncActivityCenterNotifications{
|
||||
ActivityCenterNotifications: s,
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
return m.sendToPairedDevices(context.TODO(), common.RawMessage{
|
||||
Payload: encodedMessage,
|
||||
MessageType: protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_NOTIFICATION,
|
||||
ResendAutomatically: true,
|
||||
})
|
||||
}
|
||||
|
||||
func (m *Messenger) MarkAsSeenActivityCenterNotifications() (*MessengerResponse, error) {
|
||||
response := &MessengerResponse{}
|
||||
err := m.persistence.MarkAsSeenActivityCenterNotifications()
|
||||
s := &ActivityCenterState{
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
HasSeen: true,
|
||||
}
|
||||
n, err := m.persistence.UpdateActivityCenterNotificationState(s)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -80,22 +134,26 @@ func (m *Messenger) MarkAsSeenActivityCenterNotifications() (*MessengerResponse,
|
|||
}
|
||||
|
||||
response.SetActivityCenterState(state)
|
||||
if n > 0 {
|
||||
return response, m.syncActivityCenterNotificationState(state)
|
||||
}
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (m *Messenger) MarkAllActivityCenterNotificationsRead(ctx context.Context) (*MessengerResponse, error) {
|
||||
response := &MessengerResponse{}
|
||||
updateAt := m.getCurrentTimeInMillis()
|
||||
if m.hasPairedDevices() {
|
||||
ids, err := m.persistence.GetNotReadActivityCenterNotificationIds()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
_, err = m.MarkActivityCenterNotificationsRead(ctx, toHexBytes(ids), true)
|
||||
_, err = m.MarkActivityCenterNotificationsRead(ctx, toHexBytes(ids), updateAt, true)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err := m.persistence.MarkAllActivityCenterNotificationsRead()
|
||||
err := m.persistence.MarkAllActivityCenterNotificationsRead(updateAt)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -109,9 +167,12 @@ func (m *Messenger) MarkAllActivityCenterNotificationsRead(ctx context.Context)
|
|||
return response, nil
|
||||
}
|
||||
|
||||
func (m *Messenger) MarkActivityCenterNotificationsRead(ctx context.Context, ids []types.HexBytes, sync bool) (*MessengerResponse, error) {
|
||||
func (m *Messenger) MarkActivityCenterNotificationsRead(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error) {
|
||||
response := &MessengerResponse{}
|
||||
err := m.persistence.MarkActivityCenterNotificationsRead(ids)
|
||||
if updatedAt == 0 {
|
||||
updatedAt = m.getCurrentTimeInMillis()
|
||||
}
|
||||
err := m.persistence.MarkActivityCenterNotificationsRead(ids, updatedAt)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -125,7 +186,7 @@ func (m *Messenger) MarkActivityCenterNotificationsRead(ctx context.Context, ids
|
|||
}
|
||||
|
||||
syncMessage := &protobuf.SyncActivityCenterRead{
|
||||
Clock: m.getTimesource().GetCurrentTime(),
|
||||
Clock: updatedAt,
|
||||
Ids: fromHexBytes(ids),
|
||||
}
|
||||
|
||||
|
@ -154,10 +215,15 @@ func (m *Messenger) MarkActivityCenterNotificationsRead(ctx context.Context, ids
|
|||
|
||||
func (m *Messenger) MarkActivityCenterNotificationsUnread(ids []types.HexBytes) (*MessengerResponse, error) {
|
||||
response := &MessengerResponse{}
|
||||
err := m.persistence.MarkActivityCenterNotificationsUnread(ids)
|
||||
notifications, err := m.persistence.MarkActivityCenterNotificationsUnread(ids, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("MarkActivityCenterNotificationsUnread, failed to sync activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
state, err := m.persistence.GetActivityCenterState()
|
||||
if err != nil {
|
||||
|
@ -212,13 +278,11 @@ func (m *Messenger) processAcceptedActivityCenterNotifications(ctx context.Conte
|
|||
|
||||
for i := range notifications {
|
||||
ids[i] = notifications[i].ID
|
||||
notifications[i].Accepted = true
|
||||
notifications[i].Read = true
|
||||
}
|
||||
|
||||
if sync {
|
||||
syncMessage := &protobuf.SyncActivityCenterAccepted{
|
||||
Clock: m.getTimesource().GetCurrentTime(),
|
||||
Clock: m.getCurrentTimeInMillis(),
|
||||
Ids: ids,
|
||||
}
|
||||
|
||||
|
@ -241,13 +305,16 @@ func (m *Messenger) processAcceptedActivityCenterNotifications(ctx context.Conte
|
|||
return m.processActivityCenterNotifications(notifications, !sync)
|
||||
}
|
||||
|
||||
func (m *Messenger) AcceptActivityCenterNotifications(ctx context.Context, ids []types.HexBytes, sync bool) (*MessengerResponse, error) {
|
||||
|
||||
func (m *Messenger) AcceptActivityCenterNotifications(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error) {
|
||||
if len(ids) == 0 {
|
||||
return nil, errors.New("notifications ids are not provided")
|
||||
}
|
||||
|
||||
notifications, err := m.persistence.AcceptActivityCenterNotifications(ids)
|
||||
if updatedAt == 0 {
|
||||
updatedAt = m.getCurrentTimeInMillis()
|
||||
}
|
||||
|
||||
notifications, err := m.persistence.AcceptActivityCenterNotifications(ids, updatedAt)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -255,8 +322,11 @@ func (m *Messenger) AcceptActivityCenterNotifications(ctx context.Context, ids [
|
|||
return m.processAcceptedActivityCenterNotifications(ctx, notifications, sync)
|
||||
}
|
||||
|
||||
func (m *Messenger) DismissActivityCenterNotifications(ctx context.Context, ids []types.HexBytes, sync bool) (*MessengerResponse, error) {
|
||||
err := m.persistence.DismissActivityCenterNotifications(ids)
|
||||
func (m *Messenger) DismissActivityCenterNotifications(ctx context.Context, ids []types.HexBytes, updatedAt uint64, sync bool) (*MessengerResponse, error) {
|
||||
if updatedAt == 0 {
|
||||
updatedAt = m.getCurrentTimeInMillis()
|
||||
}
|
||||
err := m.persistence.DismissActivityCenterNotifications(ids, updatedAt)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -271,7 +341,7 @@ func (m *Messenger) DismissActivityCenterNotifications(ctx context.Context, ids
|
|||
}
|
||||
|
||||
syncMessage := &protobuf.SyncActivityCenterDismissed{
|
||||
Clock: m.getTimesource().GetCurrentTime(),
|
||||
Clock: updatedAt,
|
||||
Ids: fromHexBytes(ids),
|
||||
}
|
||||
|
||||
|
@ -290,7 +360,15 @@ func (m *Messenger) DismissActivityCenterNotifications(ctx context.Context, ids
|
|||
}
|
||||
|
||||
func (m *Messenger) DeleteActivityCenterNotifications(ctx context.Context, ids []types.HexBytes, sync bool) error {
|
||||
return m.persistence.DeleteActivityCenterNotifications(ids)
|
||||
notifications, err := m.persistence.DeleteActivityCenterNotifications(ids, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("DeleteActivityCenterNotifications, failed to sync activity center notifications", zap.Error(err))
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *Messenger) ActivityCenterNotification(id types.HexBytes) (*ActivityCenterNotification, error) {
|
||||
|
@ -298,7 +376,7 @@ func (m *Messenger) ActivityCenterNotification(id types.HexBytes) (*ActivityCent
|
|||
}
|
||||
|
||||
func (m *Messenger) handleActivityCenterRead(state *ReceivedMessageState, message protobuf.SyncActivityCenterRead) error {
|
||||
resp, err := m.MarkActivityCenterNotificationsRead(context.TODO(), toHexBytes(message.Ids), false)
|
||||
resp, err := m.MarkActivityCenterNotificationsRead(context.TODO(), toHexBytes(message.Ids), message.Clock, false)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -308,7 +386,7 @@ func (m *Messenger) handleActivityCenterRead(state *ReceivedMessageState, messag
|
|||
}
|
||||
|
||||
func (m *Messenger) handleActivityCenterAccepted(state *ReceivedMessageState, message protobuf.SyncActivityCenterAccepted) error {
|
||||
resp, err := m.AcceptActivityCenterNotifications(context.TODO(), toHexBytes(message.Ids), false)
|
||||
resp, err := m.AcceptActivityCenterNotifications(context.TODO(), toHexBytes(message.Ids), message.Clock, false)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -318,7 +396,7 @@ func (m *Messenger) handleActivityCenterAccepted(state *ReceivedMessageState, me
|
|||
}
|
||||
|
||||
func (m *Messenger) handleActivityCenterDismissed(state *ReceivedMessageState, message protobuf.SyncActivityCenterDismissed) error {
|
||||
resp, err := m.DismissActivityCenterNotifications(context.TODO(), toHexBytes(message.Ids), false)
|
||||
resp, err := m.DismissActivityCenterNotifications(context.TODO(), toHexBytes(message.Ids), message.Clock, false)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -326,3 +404,118 @@ func (m *Messenger) handleActivityCenterDismissed(state *ReceivedMessageState, m
|
|||
|
||||
return state.Response.Merge(resp)
|
||||
}
|
||||
|
||||
func (m *Messenger) handleSyncActivityCenterNotificationState(state *ReceivedMessageState, a *protobuf.SyncActivityCenterNotificationState) error {
|
||||
s := &ActivityCenterState{
|
||||
HasSeen: a.HasSeen,
|
||||
UpdatedAt: a.UpdatedAt,
|
||||
}
|
||||
n, err := m.persistence.UpdateActivityCenterNotificationState(s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if n > 0 {
|
||||
state.Response.SetActivityCenterState(s)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Messenger) handleSyncActivityCenterNotifications(state *ReceivedMessageState, a *protobuf.SyncActivityCenterNotifications) error {
|
||||
var notifications []*ActivityCenterNotification
|
||||
for _, n := range a.ActivityCenterNotifications {
|
||||
notification, err := convertActivityCenterNotificationFromProtobuf(n)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
affectedNum, err := m.persistence.SaveActivityCenterNotification(notification, false)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if affectedNum > 0 {
|
||||
notifications = append(notifications, notification)
|
||||
}
|
||||
}
|
||||
response, err := m.processActivityCenterNotifications(notifications, true)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return state.Response.Merge(response)
|
||||
}
|
||||
|
||||
func convertActivityCenterNotificationToProtobuf(n ActivityCenterNotification) (syncActivityCenterNotification *protobuf.SyncActivityCenterNotification, err error) {
|
||||
var (
|
||||
message []byte
|
||||
replyMessage []byte
|
||||
)
|
||||
if n.Message != nil {
|
||||
message, err = json.Marshal(n.Message)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
if n.ReplyMessage != nil {
|
||||
replyMessage, err = json.Marshal(n.ReplyMessage)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
syncActivityCenterNotification = &protobuf.SyncActivityCenterNotification{
|
||||
Id: n.ID,
|
||||
Timestamp: n.Timestamp,
|
||||
NotificationType: protobuf.SyncActivityCenterNotification_NotificationType(n.Type),
|
||||
ChatId: n.ChatID,
|
||||
Read: n.Read,
|
||||
Dismissed: n.Dismissed,
|
||||
Accepted: n.Accepted,
|
||||
Message: message,
|
||||
Author: n.Author,
|
||||
ReplyMessage: replyMessage,
|
||||
CommunityId: n.CommunityID,
|
||||
MembershipStatus: protobuf.SyncActivityCenterNotification_MembershipStatus(n.MembershipStatus),
|
||||
ContactVerificationStatus: protobuf.SyncActivityCenterNotification_ContactVerificationStatus(n.ContactVerificationStatus),
|
||||
Deleted: n.Deleted,
|
||||
UpdatedAt: n.UpdatedAt,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func convertActivityCenterNotificationFromProtobuf(proto *protobuf.SyncActivityCenterNotification) (*ActivityCenterNotification, error) {
|
||||
if proto == nil {
|
||||
return nil, errors.New("convertActivityCenterNotificationFromProtobuf, proto is nil")
|
||||
}
|
||||
|
||||
a := &ActivityCenterNotification{
|
||||
ID: proto.Id,
|
||||
ChatID: proto.ChatId,
|
||||
CommunityID: proto.CommunityId,
|
||||
MembershipStatus: ActivityCenterMembershipStatus(proto.MembershipStatus),
|
||||
Author: proto.Author,
|
||||
Type: ActivityCenterType(proto.NotificationType),
|
||||
Timestamp: proto.Timestamp,
|
||||
Read: proto.Read,
|
||||
Accepted: proto.Accepted,
|
||||
Dismissed: proto.Dismissed,
|
||||
Deleted: proto.Deleted,
|
||||
ContactVerificationStatus: verification.RequestStatus(proto.ContactVerificationStatus),
|
||||
UpdatedAt: proto.UpdatedAt,
|
||||
}
|
||||
|
||||
if len(proto.Message) > 0 {
|
||||
message := &common.Message{}
|
||||
err := json.Unmarshal(proto.Message, &message)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
a.Message = message
|
||||
}
|
||||
if len(proto.ReplyMessage) > 0 {
|
||||
replyMessage := &common.Message{}
|
||||
err := json.Unmarshal(proto.ReplyMessage, &replyMessage)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
a.ReplyMessage = replyMessage
|
||||
}
|
||||
|
||||
return a, nil
|
||||
}
|
||||
|
|
|
@ -689,6 +689,7 @@ func (m *Messenger) RequestToJoinCommunity(request *requests.RequestToJoinCommun
|
|||
MembershipStatus: ActivityCenterMembershipStatusPending,
|
||||
Read: true,
|
||||
Deleted: false,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
|
@ -830,7 +831,8 @@ func (m *Messenger) CancelRequestToJoinCommunity(request *requests.CancelRequest
|
|||
}
|
||||
|
||||
if notification != nil {
|
||||
err = m.persistence.DeleteActivityCenterNotification(types.FromHex(requestToJoin.ID.String()))
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
err = m.persistence.DeleteActivityCenterNotificationByID(types.FromHex(requestToJoin.ID.String()), notification.UpdatedAt)
|
||||
if err != nil {
|
||||
m.logger.Error("failed to delete notification from Activity Center", zap.Error(err))
|
||||
return nil, err
|
||||
|
@ -838,6 +840,11 @@ func (m *Messenger) CancelRequestToJoinCommunity(request *requests.CancelRequest
|
|||
|
||||
// set notification as deleted, so that the client will remove the activity center notification from UI
|
||||
notification.Deleted = true
|
||||
err = m.syncActivityCenterNotifications([]*ActivityCenterNotification{notification})
|
||||
if err != nil {
|
||||
m.logger.Error("CancelRequestToJoinCommunity, failed to sync activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
response.AddActivityCenterNotification(notification)
|
||||
}
|
||||
|
||||
|
@ -921,6 +928,7 @@ func (m *Messenger) AcceptRequestToJoinCommunity(request *requests.AcceptRequest
|
|||
notification.MembershipStatus = ActivityCenterMembershipStatusAccepted
|
||||
notification.Read = true
|
||||
notification.Accepted = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
|
@ -954,6 +962,7 @@ func (m *Messenger) DeclineRequestToJoinCommunity(request *requests.DeclineReque
|
|||
notification.MembershipStatus = ActivityCenterMembershipStatusDeclined
|
||||
notification.Read = true
|
||||
notification.Dismissed = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
|
@ -966,7 +975,7 @@ func (m *Messenger) DeclineRequestToJoinCommunity(request *requests.DeclineReque
|
|||
}
|
||||
|
||||
func (m *Messenger) LeaveCommunity(communityID types.HexBytes) (*MessengerResponse, error) {
|
||||
err := m.persistence.DismissAllActivityCenterNotificationsFromCommunity(communityID.String())
|
||||
notifications, err := m.persistence.DismissAllActivityCenterNotificationsFromCommunity(communityID.String(), m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -1018,6 +1027,12 @@ func (m *Messenger) LeaveCommunity(communityID types.HexBytes) (*MessengerRespon
|
|||
}
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("LeaveCommunity, failed to sync activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return mr, nil
|
||||
}
|
||||
|
||||
|
@ -1094,12 +1109,18 @@ func (m *Messenger) CheckAndDeletePendingRequestToJoinCommunity(sendResponse boo
|
|||
if notification != nil {
|
||||
// Delete activity centre notification for community admin
|
||||
if notification.Type == ActivityCenterNotificationTypeCommunityMembershipRequest {
|
||||
err = m.persistence.DeleteActivityCenterNotification(types.FromHex(requestToJoin.ID.String()))
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
err = m.persistence.DeleteActivityCenterNotificationByID(types.FromHex(requestToJoin.ID.String()), notification.UpdatedAt)
|
||||
if err != nil {
|
||||
m.logger.Error("failed to delete notification from activity center", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
notification.Deleted = true
|
||||
err = m.syncActivityCenterNotifications([]*ActivityCenterNotification{notification})
|
||||
if err != nil {
|
||||
m.logger.Error("CheckAndDeletePendingRequestToJoinCommunity, failed to sync activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
response.AddActivityCenterNotification(notification)
|
||||
}
|
||||
// Update activity centre notification for requester
|
||||
|
@ -1107,6 +1128,7 @@ func (m *Messenger) CheckAndDeletePendingRequestToJoinCommunity(sendResponse boo
|
|||
notification.MembershipStatus = ActivityCenterMembershipStatusIdle
|
||||
notification.Read = false
|
||||
notification.Deleted = false
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
m.logger.Error("failed to update notification in activity center", zap.Error(err))
|
||||
|
|
|
@ -246,6 +246,7 @@ func (m *Messenger) CancelVerificationRequest(ctx context.Context, id string) (*
|
|||
message := notification.Message
|
||||
message.ContactVerificationState = common.ContactVerificationStateCanceled
|
||||
notification.Read = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
|
@ -356,6 +357,7 @@ func (m *Messenger) AcceptContactVerificationRequest(ctx context.Context, id str
|
|||
notification.ReplyMessage = replyMessage
|
||||
notification.Read = true
|
||||
notification.Accepted = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(resp, notification)
|
||||
if err != nil {
|
||||
|
@ -452,6 +454,7 @@ func (m *Messenger) VerifiedTrusted(ctx context.Context, request *requests.Verif
|
|||
notification.Message.ContactVerificationState = common.ContactVerificationStateTrusted
|
||||
notification.Read = true
|
||||
notification.Accepted = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
|
@ -558,6 +561,7 @@ func (m *Messenger) VerifiedUntrustworthy(ctx context.Context, request *requests
|
|||
notification.Message.ContactVerificationState = common.ContactVerificationStateUntrustworthy
|
||||
notification.Read = true
|
||||
notification.Accepted = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
|
@ -666,6 +670,7 @@ func (m *Messenger) DeclineContactVerificationRequest(ctx context.Context, id st
|
|||
notification.ContactVerificationStatus = verification.RequestStatusDECLINED
|
||||
notification.Read = true
|
||||
notification.Dismissed = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
message := notification.Message
|
||||
message.ContactVerificationState = common.ContactVerificationStateDeclined
|
||||
|
@ -1043,6 +1048,7 @@ func (m *Messenger) createOrUpdateOutgoingContactVerificationNotification(contac
|
|||
Read: vr.RequestStatus != verification.RequestStatusACCEPTED, // Mark as Unread Accepted notification because we are waiting for the asnwer
|
||||
Accepted: vr.RequestStatus == verification.RequestStatusTRUSTED || vr.RequestStatus == verification.RequestStatusUNTRUSTWORTHY,
|
||||
Dismissed: vr.RequestStatus == verification.RequestStatusDECLINED,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
return m.addActivityCenterNotification(response, notification)
|
||||
|
@ -1062,6 +1068,7 @@ func (m *Messenger) createOrUpdateIncomingContactVerificationNotification(contac
|
|||
Read: vr.RequestStatus != verification.RequestStatusPENDING, // Unread only for pending incomming
|
||||
Accepted: vr.RequestStatus == verification.RequestStatusACCEPTED || vr.RequestStatus == verification.RequestStatusTRUSTED || vr.RequestStatus == verification.RequestStatusUNTRUSTWORTHY,
|
||||
Dismissed: vr.RequestStatus == verification.RequestStatusDECLINED,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
return m.addActivityCenterNotification(messageState.Response, notification)
|
||||
|
|
|
@ -210,6 +210,7 @@ func (m *Messenger) declineContactRequest(requestID string, syncing bool) (*Mess
|
|||
notification.Message = contactRequest
|
||||
notification.Read = true
|
||||
notification.Dismissed = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
|
@ -320,6 +321,7 @@ func (m *Messenger) updateAcceptedContactRequest(response *MessengerResponse, co
|
|||
notification.Message = contactRequest
|
||||
notification.Read = true
|
||||
notification.Accepted = true
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
if err != nil {
|
||||
|
@ -591,6 +593,7 @@ func (m *Messenger) generateOutgoingContactRequestNotification(contact *Contact,
|
|||
contactRequest.ContactRequestState == common.ContactRequestStatePending,
|
||||
Accepted: contactRequest.ContactRequestState == common.ContactRequestStateAccepted,
|
||||
Dismissed: contactRequest.ContactRequestState == common.ContactRequestStateDismissed,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -860,11 +863,17 @@ func (m *Messenger) blockContact(response *MessengerResponse, contactID string,
|
|||
}
|
||||
|
||||
// We remove anything that's related to this contact request
|
||||
err = m.persistence.HardDeleteChatContactRequestActivityCenterNotifications(contact.ID)
|
||||
notifications, err := m.persistence.DeleteChatContactRequestActivityCenterNotifications(contact.ID, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("BlockContact, error syncing activity center notifications", zap.Error(err))
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
return contact, chats, nil
|
||||
}
|
||||
|
||||
|
@ -883,11 +892,17 @@ func (m *Messenger) BlockContact(contactID string) (*MessengerResponse, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
err = m.persistence.DismissAllActivityCenterNotificationsFromUser(contactID)
|
||||
notifications, err := m.persistence.DismissAllActivityCenterNotificationsFromUser(contactID, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("BlockContact, error syncing activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
|
@ -907,11 +922,17 @@ func (m *Messenger) BlockContactDesktop(contactID string) (*MessengerResponse, e
|
|||
return nil, err
|
||||
}
|
||||
|
||||
err = m.persistence.DismissAllActivityCenterNotificationsFromUser(contactID)
|
||||
notifications, err := m.persistence.DismissAllActivityCenterNotificationsFromUser(contactID, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("BlockContactDesktop, error syncing activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -747,10 +747,15 @@ func (m *Messenger) leaveGroupChat(ctx context.Context, response *MessengerRespo
|
|||
}
|
||||
|
||||
func (m *Messenger) LeaveGroupChat(ctx context.Context, chatID string, remove bool) (*MessengerResponse, error) {
|
||||
err := m.persistence.DismissAllActivityCenterNotificationsFromChatID(chatID)
|
||||
notifications, err := m.persistence.DismissAllActivityCenterNotificationsFromChatID(chatID, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("LeaveGroupChat, Failed to sync activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var response MessengerResponse
|
||||
return m.leaveGroupChat(ctx, &response, chatID, remove, true)
|
||||
|
@ -778,7 +783,7 @@ func (m *Messenger) DeclineAllPendingGroupInvitesFromUser(response *MessengerRes
|
|||
}
|
||||
|
||||
// Decline group invites from activity center notifications
|
||||
notifications, err := m.persistence.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey)
|
||||
notifications, err := m.persistence.AcceptActivityCenterNotificationsForInvitesFromUser(userPublicKey, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -789,5 +794,12 @@ func (m *Messenger) DeclineAllPendingGroupInvitesFromUser(response *MessengerRes
|
|||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("DeclineAllPendingGroupInvitesFromUser, Failed to sync activity center notifications", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
|
|
@ -262,6 +262,7 @@ func (m *Messenger) createMessageNotification(chat *Chat, messageState *Received
|
|||
Timestamp: messageState.CurrentMessageState.WhisperTimestamp,
|
||||
ChatID: chat.ID,
|
||||
CommunityID: chat.CommunityID,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
err := m.addActivityCenterNotification(messageState.Response, notification)
|
||||
|
@ -313,12 +314,19 @@ func (m *Messenger) createIncomingContactRequestNotification(contact *Contact, m
|
|||
notification.Read = true
|
||||
notification.Accepted = true
|
||||
notification.Dismissed = false
|
||||
err = m.persistence.SaveActivityCenterNotification(notification)
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
_, err = m.persistence.SaveActivityCenterNotification(notification, true)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
messageState.Response.AddMessage(contactRequest)
|
||||
messageState.Response.AddActivityCenterNotification(notification)
|
||||
|
||||
err = m.syncActivityCenterNotifications([]*ActivityCenterNotification{notification})
|
||||
if err != nil {
|
||||
m.logger.Error("createIncomingContactRequestNotification, failed to sync activity center notifications", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -338,6 +346,7 @@ func (m *Messenger) createIncomingContactRequestNotification(contact *Contact, m
|
|||
Read: contactRequest.ContactRequestState == common.ContactRequestStateAccepted || contactRequest.ContactRequestState == common.ContactRequestStateDismissed,
|
||||
Accepted: contactRequest.ContactRequestState == common.ContactRequestStateAccepted,
|
||||
Dismissed: contactRequest.ContactRequestState == common.ContactRequestStateDismissed,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
return m.addActivityCenterNotification(messageState.Response, notification)
|
||||
|
@ -1014,6 +1023,7 @@ func (m *Messenger) handleRetractContactRequest(response *MessengerResponse, con
|
|||
Timestamp: m.getTimesource().GetCurrentTime(),
|
||||
ChatID: contact.ID,
|
||||
Read: false,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
err = m.addActivityCenterNotification(response, notification)
|
||||
|
@ -1362,7 +1372,8 @@ func (m *Messenger) HandleCommunityCancelRequestToJoin(state *ReceivedMessageSta
|
|||
}
|
||||
|
||||
if notification != nil {
|
||||
err = m.persistence.DeleteActivityCenterNotification(types.FromHex(requestToJoin.ID.String()))
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
err = m.persistence.DeleteActivityCenterNotificationByID(types.FromHex(requestToJoin.ID.String()), notification.UpdatedAt)
|
||||
if err != nil {
|
||||
m.logger.Error("failed to delete notification from Activity Center", zap.Error(err))
|
||||
return err
|
||||
|
@ -1371,6 +1382,11 @@ func (m *Messenger) HandleCommunityCancelRequestToJoin(state *ReceivedMessageSta
|
|||
// sending signal to client to remove the activity center notification from UI
|
||||
response := &MessengerResponse{}
|
||||
notification.Deleted = true
|
||||
err = m.syncActivityCenterNotifications([]*ActivityCenterNotification{notification})
|
||||
if err != nil {
|
||||
m.logger.Error("HandleCommunityCancelRequestToJoin, failed to sync activity center notifications", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
response.AddActivityCenterNotification(notification)
|
||||
|
||||
signal.SendNewMessages(response)
|
||||
|
@ -1452,6 +1468,7 @@ func (m *Messenger) HandleCommunityRequestToJoin(state *ReceivedMessageState, si
|
|||
CommunityID: community.IDString(),
|
||||
MembershipStatus: ActivityCenterMembershipStatusPending,
|
||||
Deleted: false,
|
||||
UpdatedAt: m.getCurrentTimeInMillis(),
|
||||
}
|
||||
|
||||
err = m.addActivityCenterNotification(state.Response, notification)
|
||||
|
@ -1472,6 +1489,7 @@ func (m *Messenger) HandleCommunityRequestToJoin(state *ReceivedMessageState, si
|
|||
} else {
|
||||
notification.MembershipStatus = ActivityCenterMembershipStatusDeclined
|
||||
}
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
err = m.addActivityCenterNotification(state.Response, notification)
|
||||
if err != nil {
|
||||
m.logger.Error("failed to save notification", zap.Error(err))
|
||||
|
@ -1557,6 +1575,7 @@ func (m *Messenger) HandleCommunityRequestToJoinResponse(state *ReceivedMessageS
|
|||
} else {
|
||||
notification.MembershipStatus = ActivityCenterMembershipStatusDeclined
|
||||
}
|
||||
notification.UpdatedAt = m.getCurrentTimeInMillis()
|
||||
err = m.addActivityCenterNotification(state.Response, notification)
|
||||
if err != nil {
|
||||
m.logger.Warn("failed to update notification", zap.Error(err))
|
||||
|
@ -1747,7 +1766,7 @@ func (m *Messenger) HandleDeleteMessage(state *ReceivedMessageState, deleteMessa
|
|||
}
|
||||
|
||||
m.logger.Debug("deleting activity center notification for message", zap.String("chatID", chat.ID), zap.String("messageID", messageToDelete.ID))
|
||||
err = m.persistence.DeleteActivityCenterNotificationForMessage(chat.ID, messageToDelete.ID)
|
||||
notifications, err := m.persistence.DeleteActivityCenterNotificationForMessage(chat.ID, messageToDelete.ID, m.getCurrentTimeInMillis())
|
||||
|
||||
if err != nil {
|
||||
m.logger.Warn("failed to delete notifications for deleted message", zap.Error(err))
|
||||
|
@ -1769,6 +1788,12 @@ func (m *Messenger) HandleDeleteMessage(state *ReceivedMessageState, deleteMessa
|
|||
}
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("HandleDeleteMessage, failed to sync activity center notifications", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
state.Response.AddRemovedMessage(&RemovedMessage{MessageID: messageToDelete.ID, ChatID: chat.ID, DeletedBy: deleteMessage.DeleteMessage.DeletedBy})
|
||||
state.Response.AddNotification(DeletedMessageNotification(messageToDelete.ID, chat))
|
||||
state.Response.AddActivityCenterNotification(&ActivityCenterNotification{
|
||||
|
@ -1853,7 +1878,7 @@ func (m *Messenger) HandleDeleteForMeMessage(state *ReceivedMessageState, delete
|
|||
|
||||
m.logger.Debug("deleting activity center notification for message", zap.String("chatID", chat.ID), zap.String("messageID", messageToDelete.ID))
|
||||
|
||||
err = m.persistence.DeleteActivityCenterNotificationForMessage(chat.ID, messageToDelete.ID)
|
||||
notifications, err := m.persistence.DeleteActivityCenterNotificationForMessage(chat.ID, messageToDelete.ID, m.getCurrentTimeInMillis())
|
||||
if err != nil {
|
||||
m.logger.Warn("failed to delete notifications for deleted message", zap.Error(err))
|
||||
return err
|
||||
|
@ -1867,6 +1892,12 @@ func (m *Messenger) HandleDeleteForMeMessage(state *ReceivedMessageState, delete
|
|||
}
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications(notifications)
|
||||
if err != nil {
|
||||
m.logger.Error("HandleDeleteForMeMessage, failed to sync activity center notifications", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
state.Response.AddMessage(messageToDelete)
|
||||
}
|
||||
state.Response.AddChat(chat)
|
||||
|
@ -2161,20 +2192,29 @@ func (m *Messenger) HandleImportedChatMessage(state *ReceivedMessageState) error
|
|||
}
|
||||
|
||||
func (m *Messenger) addActivityCenterNotification(response *MessengerResponse, notification *ActivityCenterNotification) error {
|
||||
err := m.persistence.SaveActivityCenterNotification(notification)
|
||||
_, err := m.persistence.SaveActivityCenterNotification(notification, true)
|
||||
if err != nil {
|
||||
m.logger.Error("failed to save notification", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
err = m.syncActivityCenterNotifications([]*ActivityCenterNotification{notification})
|
||||
if err != nil {
|
||||
m.logger.Error("addActivityCenterNotification, failed to sync activity center notifications", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
state, err := m.persistence.GetActivityCenterState()
|
||||
if err != nil {
|
||||
m.logger.Error("failed to obtain activity center state", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
response.AddActivityCenterNotification(notification)
|
||||
response.SetActivityCenterState(state)
|
||||
|
||||
if !notification.Read {
|
||||
return m.syncActivityCenterNotificationState(state)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,153 @@
|
|||
package protocol
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/ecdsa"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
gethbridge "github.com/status-im/status-go/eth-node/bridge/geth"
|
||||
"github.com/status-im/status-go/eth-node/crypto"
|
||||
"github.com/status-im/status-go/protocol/encryption/multidevice"
|
||||
"github.com/status-im/status-go/protocol/tt"
|
||||
"github.com/status-im/status-go/waku"
|
||||
|
||||
"github.com/stretchr/testify/suite"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/status-im/status-go/eth-node/types"
|
||||
)
|
||||
|
||||
func TestMessengerSyncActivityCenterNotificationSuite(t *testing.T) {
|
||||
suite.Run(t, new(MessengerSyncActivityCenterNotificationSuite))
|
||||
}
|
||||
|
||||
type MessengerSyncActivityCenterNotificationSuite struct {
|
||||
suite.Suite
|
||||
m *Messenger // main instance of Messenger
|
||||
theirMessenger *Messenger
|
||||
privateKey *ecdsa.PrivateKey // private key for the main instance of Messenger
|
||||
|
||||
// If one wants to send messages between different instances of Messenger,
|
||||
// a single Waku service should be shared.
|
||||
shh types.Waku
|
||||
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
func (s *MessengerSyncActivityCenterNotificationSuite) SetupTest() {
|
||||
s.logger = tt.MustCreateTestLogger()
|
||||
|
||||
config := waku.DefaultConfig
|
||||
config.MinimumAcceptedPoW = 0
|
||||
shh := waku.New(&config, s.logger)
|
||||
s.shh = gethbridge.NewGethWakuWrapper(shh)
|
||||
s.Require().NoError(shh.Start())
|
||||
|
||||
s.m = s.newMessenger()
|
||||
s.privateKey = s.m.identity
|
||||
// We start the messenger in order to receive installations
|
||||
_, err := s.m.Start()
|
||||
s.Require().NoError(err)
|
||||
|
||||
// pair
|
||||
s.theirMessenger, err = newMessengerWithKey(s.shh, s.privateKey, s.logger, nil)
|
||||
s.Require().NoError(err)
|
||||
err = s.theirMessenger.SetInstallationMetadata(s.theirMessenger.installationID, &multidevice.InstallationMetadata{
|
||||
Name: "their-name",
|
||||
DeviceType: "their-device-type",
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
_, err = s.theirMessenger.SendPairInstallation(context.Background(), nil)
|
||||
s.Require().NoError(err)
|
||||
// Wait for the message to reach its destination
|
||||
_, err = WaitOnMessengerResponse(
|
||||
s.m,
|
||||
func(r *MessengerResponse) bool { return len(r.Installations) > 0 },
|
||||
"installation not received",
|
||||
)
|
||||
s.Require().NoError(err)
|
||||
err = s.m.EnableInstallation(s.theirMessenger.installationID)
|
||||
s.Require().NoError(err)
|
||||
}
|
||||
|
||||
func (s *MessengerSyncActivityCenterNotificationSuite) TearDownTest() {
|
||||
s.Require().NoError(s.m.Shutdown())
|
||||
s.Require().NoError(s.theirMessenger.Shutdown())
|
||||
}
|
||||
|
||||
func (s *MessengerSyncActivityCenterNotificationSuite) newMessenger() *Messenger {
|
||||
privateKey, err := crypto.GenerateKey()
|
||||
s.Require().NoError(err)
|
||||
|
||||
messenger, err := newMessengerWithKey(s.shh, privateKey, s.logger, nil)
|
||||
s.Require().NoError(err)
|
||||
|
||||
return messenger
|
||||
}
|
||||
|
||||
func (s *MessengerSyncActivityCenterNotificationSuite) TestSyncActivityCenterNotification() {
|
||||
// add notification
|
||||
now := currentMilliseconds()
|
||||
notificationID := types.HexBytes("123")
|
||||
expectedNotification := &ActivityCenterNotification{
|
||||
ID: notificationID,
|
||||
Author: "author",
|
||||
Type: ActivityCenterNotificationTypeContactRequest,
|
||||
Timestamp: now,
|
||||
UpdatedAt: now,
|
||||
}
|
||||
err := s.m.addActivityCenterNotification(&MessengerResponse{}, expectedNotification)
|
||||
s.Require().NoError(err)
|
||||
|
||||
// Wait for the message to reach its destination
|
||||
err = tt.RetryWithBackOff(func() error {
|
||||
response, err := s.theirMessenger.RetrieveAll()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(response.ActivityCenterNotifications()) == 1 {
|
||||
require.Equal(s.T(), expectedNotification, response.ActivityCenterNotifications()[0])
|
||||
return nil
|
||||
}
|
||||
return errors.New("not received notifications")
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
|
||||
notification, err := s.theirMessenger.ActivityCenterNotification(notificationID)
|
||||
s.Require().NoError(err)
|
||||
s.Require().Equal(expectedNotification, notification)
|
||||
|
||||
// check state
|
||||
s1, err := s.m.GetActivityCenterState()
|
||||
s.Require().NoError(err)
|
||||
s.Require().NotNil(s1)
|
||||
s.Require().False(s1.HasSeen)
|
||||
s2, err := s.theirMessenger.GetActivityCenterState()
|
||||
s.Require().NoError(err)
|
||||
s.Require().NotNil(s2)
|
||||
s.Require().False(s2.HasSeen)
|
||||
s.Require().Equal(s1.UpdatedAt, s2.UpdatedAt)
|
||||
|
||||
// mark as seen
|
||||
_, err = s.m.MarkAsSeenActivityCenterNotifications()
|
||||
s.Require().NoError(err)
|
||||
err = tt.RetryWithBackOff(func() error {
|
||||
response, err := s.theirMessenger.RetrieveAll()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if response.ActivityCenterState() != nil {
|
||||
require.True(s.T(), response.ActivityCenterState().HasSeen)
|
||||
return nil
|
||||
}
|
||||
return errors.New("not received notification state")
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
s3, err := s.theirMessenger.GetActivityCenterState()
|
||||
s.Require().NoError(err)
|
||||
s.Require().NotNil(s3)
|
||||
s.Require().True(s3.HasSeen)
|
||||
}
|
|
@ -628,7 +628,14 @@ func (s *MessengerSuite) TestRetrieveBlockedContact() {
|
|||
response, err := receiver.RetrieveAll()
|
||||
s.Require().NoError(err)
|
||||
if require {
|
||||
s.Require().Len(response.Messages(), 1)
|
||||
containTextMsg := false
|
||||
for _, msg := range response.Messages() {
|
||||
if msg.ContentType == protobuf.ChatMessage_TEXT_PLAIN && msg.Text == "text-input-message" {
|
||||
containTextMsg = true
|
||||
break
|
||||
}
|
||||
}
|
||||
s.Require().True(containTextMsg)
|
||||
} else {
|
||||
s.Require().Len(response.Messages(), 0)
|
||||
}
|
||||
|
|
|
@ -90,6 +90,7 @@
|
|||
// 1683725607_mark_discord_messages_as_seen.up.sql (108B)
|
||||
// 1684174617_add_url_previews_to_user_messages.up.sql (58B)
|
||||
// 1684175608_add_token_balances.up.sql (467B)
|
||||
// 1684979808_sync_activity_center_notifications.up.sql (169B)
|
||||
// README.md (554B)
|
||||
// doc.go (850B)
|
||||
|
||||
|
@ -175,7 +176,7 @@ func _000001_initDownDbSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5e, 0xbb, 0x3f, 0x1, 0x75, 0x19, 0x70, 0x86, 0xa7, 0x34, 0x40, 0x17, 0x34, 0x3e, 0x18, 0x51, 0x79, 0xd4, 0x22, 0xad, 0x8f, 0x80, 0xcc, 0xa6, 0xcc, 0x6, 0x2b, 0x62, 0x2, 0x47, 0xba, 0xf9}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -195,7 +196,7 @@ func _000001_initUpDbSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x60, 0xdc, 0xeb, 0xe, 0xc2, 0x4f, 0x75, 0xa, 0xf6, 0x3e, 0xc7, 0xc4, 0x4, 0xe2, 0xe1, 0xa4, 0x73, 0x2f, 0x4a, 0xad, 0x1a, 0x0, 0xc3, 0x93, 0x9d, 0x77, 0x3e, 0x31, 0x91, 0x77, 0x2e, 0xc8}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -215,7 +216,7 @@ func _000002_add_last_ens_clock_valueUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4d, 0x3, 0x8f, 0xd5, 0x85, 0x83, 0x47, 0xbe, 0xf9, 0x82, 0x7e, 0x81, 0xa4, 0xbd, 0xaa, 0xd5, 0x98, 0x18, 0x5, 0x2d, 0x82, 0x42, 0x3b, 0x3, 0x50, 0xc3, 0x1e, 0x84, 0x35, 0xf, 0xb6, 0x2b}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -235,7 +236,7 @@ func _1586358095_add_replaceUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd2, 0xb3, 0xa9, 0xc7, 0x7f, 0x9d, 0x8f, 0x43, 0x8c, 0x9e, 0x58, 0x8d, 0x44, 0xbc, 0xfa, 0x6b, 0x5f, 0x3f, 0x5a, 0xbe, 0xe8, 0xb1, 0x16, 0xf, 0x91, 0x2a, 0xa0, 0x71, 0xbb, 0x8d, 0x6b, 0xcb}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -255,7 +256,7 @@ func _1588665364_add_image_dataUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd6, 0xc6, 0x35, 0xb4, 0x4c, 0x39, 0x96, 0x29, 0x30, 0xda, 0xf4, 0x8f, 0xcb, 0xf1, 0x9f, 0x84, 0xdc, 0x88, 0xd4, 0xd5, 0xbc, 0xb6, 0x5b, 0x46, 0x78, 0x67, 0x76, 0x1a, 0x5, 0x36, 0xdc, 0xe5}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -275,7 +276,7 @@ func _1589365189_add_pow_targetUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4e, 0x3a, 0xe2, 0x2e, 0x7d, 0xaf, 0xbb, 0xcc, 0x21, 0xa1, 0x7a, 0x41, 0x9a, 0xd0, 0xbb, 0xa9, 0xc8, 0x35, 0xf9, 0x32, 0x34, 0x46, 0x44, 0x9a, 0x86, 0x40, 0x7c, 0xb9, 0x23, 0xc7, 0x3, 0x3f}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -295,7 +296,7 @@ func _1591277220_add_index_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9c, 0xfe, 0xbe, 0xd5, 0xb8, 0x8f, 0xdd, 0xef, 0xbb, 0xa8, 0xad, 0x7f, 0xed, 0x5b, 0x5b, 0x2f, 0xe6, 0x82, 0x27, 0x78, 0x1f, 0xb9, 0x57, 0xdc, 0x8, 0xc2, 0xb2, 0xa9, 0x9a, 0x4, 0xe1, 0x7a}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -315,7 +316,7 @@ func _1593087212_add_mute_chat_and_raw_message_fieldsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x73, 0x99, 0x61, 0xd1, 0xaa, 0xb4, 0xbf, 0xaf, 0xd7, 0x20, 0x17, 0x40, 0xf9, 0x2, 0xfb, 0xcc, 0x40, 0x2a, 0xd, 0x86, 0x36, 0x30, 0x88, 0x89, 0x25, 0x80, 0x42, 0xb0, 0x5b, 0xe9, 0x73, 0x78}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -335,7 +336,7 @@ func _1595862781_add_audio_dataUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xae, 0xd2, 0xee, 0x55, 0xfb, 0x36, 0xa4, 0x92, 0x66, 0xe, 0x81, 0x62, 0x1e, 0x7a, 0x69, 0xa, 0xd5, 0x4b, 0xa5, 0x6a, 0x8d, 0x1d, 0xce, 0xf3, 0x3e, 0xc0, 0x5f, 0x9c, 0x66, 0x1b, 0xb4, 0xed}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -355,7 +356,7 @@ func _1595865249_create_emoji_reactions_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3e, 0xc5, 0x43, 0x5c, 0x3d, 0x53, 0x43, 0x2c, 0x1a, 0xa5, 0xb6, 0xbf, 0x7, 0x4, 0x5a, 0x3e, 0x40, 0x8b, 0xa4, 0x57, 0x12, 0x58, 0xbc, 0x42, 0xe2, 0xc3, 0xde, 0x76, 0x98, 0x80, 0xe2, 0xbe}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -375,7 +376,7 @@ func _1596805115_create_group_chat_invitations_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6d, 0xb1, 0x14, 0x6d, 0x54, 0x28, 0x67, 0xc3, 0x23, 0x6a, 0xfc, 0x80, 0xdf, 0x9e, 0x4c, 0x35, 0x36, 0xf, 0xf8, 0xf3, 0x5f, 0xae, 0xad, 0xb, 0xc1, 0x51, 0x8e, 0x17, 0x7, 0xe5, 0x7f, 0x91}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -395,7 +396,7 @@ func _1597322655_add_invitation_admin_chat_fieldUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa9, 0x7a, 0xa0, 0xf2, 0xdb, 0x13, 0x91, 0x91, 0xa8, 0x34, 0x1a, 0xa1, 0x49, 0x68, 0xd5, 0xae, 0x2c, 0xd8, 0xd5, 0xea, 0x8f, 0x8c, 0xc7, 0x2, 0x4e, 0x58, 0x2c, 0x3a, 0x14, 0xd4, 0x4f, 0x2c}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -415,7 +416,7 @@ func _1597757544_add_nicknameUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf4, 0xa2, 0x64, 0x50, 0xc5, 0x4, 0xb9, 0x8b, 0xd1, 0x18, 0x9b, 0xc3, 0x91, 0x36, 0x2a, 0x1f, 0xc3, 0x6c, 0x2d, 0x92, 0xf8, 0x5e, 0xff, 0xb1, 0x59, 0x61, 0x2, 0x1c, 0xe1, 0x85, 0x90, 0xa4}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -435,7 +436,7 @@ func _1598955122_add_mentionsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8d, 0x22, 0x17, 0x92, 0xd2, 0x11, 0x4e, 0x7, 0x93, 0x9a, 0x55, 0xfd, 0xb, 0x97, 0xc4, 0x63, 0x6a, 0x81, 0x97, 0xcd, 0xb2, 0xf8, 0x4b, 0x5f, 0x3c, 0xfa, 0x3a, 0x38, 0x53, 0x10, 0xed, 0x9d}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -455,7 +456,7 @@ func _1599641390_add_emoji_reactions_indexUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf9, 0xd8, 0xdc, 0xa7, 0xb, 0x92, 0x7a, 0x61, 0x37, 0x24, 0x1c, 0x77, 0x5e, 0xe, 0x7e, 0xfc, 0x9f, 0x98, 0x7b, 0x65, 0xe7, 0xf9, 0x71, 0x57, 0x89, 0x2d, 0x90, 0x1b, 0xf6, 0x5e, 0x37, 0xe8}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -475,7 +476,7 @@ func _1599720851_add_seen_index_remove_long_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x24, 0x1c, 0xc4, 0x78, 0x91, 0xc7, 0xeb, 0xfe, 0xc8, 0xa0, 0xd8, 0x13, 0x27, 0x97, 0xc8, 0x96, 0x56, 0x97, 0x33, 0x2c, 0x1e, 0x16, 0x8a, 0xd3, 0x49, 0x99, 0x3, 0xe9, 0xbb, 0xc4, 0x5, 0x3c}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -495,7 +496,7 @@ func _1603198582_add_profile_chat_fieldUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xaa, 0xca, 0xe, 0x46, 0xa0, 0x9, 0x9d, 0x47, 0x57, 0xe9, 0xfb, 0x17, 0xeb, 0x9c, 0xf6, 0xb8, 0x1d, 0xe9, 0xd, 0x0, 0xd5, 0xe5, 0xd8, 0x9e, 0x60, 0xa, 0xbf, 0x32, 0x2c, 0x52, 0x7f, 0x6a}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -515,7 +516,7 @@ func _1603816533_add_linksUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc9, 0x24, 0xd6, 0x1d, 0xa, 0x83, 0x1e, 0x4d, 0xf, 0xae, 0x4d, 0x8c, 0x51, 0x32, 0xa8, 0x37, 0xb0, 0x14, 0xfb, 0x32, 0x34, 0xc8, 0xc, 0x4e, 0x5b, 0xc5, 0x15, 0x65, 0x73, 0x0, 0x0, 0x1d}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -535,7 +536,7 @@ func _1603888149_create_chat_identity_last_published_tableUpSql() (*asset, error
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0644), modTime: time.Unix(1608652331, 0)}
|
||||
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7f, 0x9, 0xf, 0xfb, 0xdb, 0x3c, 0x86, 0x70, 0x82, 0xda, 0x10, 0x25, 0xe2, 0x4e, 0x40, 0x45, 0xab, 0x8b, 0x1c, 0x91, 0x7c, 0xf1, 0x70, 0x2e, 0x81, 0xf3, 0x71, 0x45, 0xda, 0xe2, 0xa4, 0x57}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -555,7 +556,7 @@ func _1605075346_add_communitiesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0644), modTime: time.Unix(1610388501, 0)}
|
||||
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1f, 0x64, 0xea, 0xb4, 0xae, 0x9e, 0xdb, 0x9, 0x58, 0xb6, 0x5c, 0x7a, 0x50, 0xc5, 0xfe, 0x93, 0x5d, 0x36, 0x85, 0x5d, 0x6a, 0xba, 0xc9, 0x7e, 0x84, 0xd7, 0xbf, 0x2a, 0x53, 0xf3, 0x97, 0xf1}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -575,7 +576,7 @@ func _1610117927_add_message_cacheUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0644), modTime: time.Unix(1611563400, 0)}
|
||||
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0xf1, 0xf0, 0x82, 0x79, 0x28, 0x19, 0xc2, 0x39, 0x6a, 0xa5, 0x96, 0x59, 0x23, 0xa0, 0xed, 0x60, 0x58, 0x86, 0x9, 0xb9, 0xad, 0xfb, 0xa, 0xe3, 0x47, 0x6e, 0xa1, 0x18, 0xe8, 0x39, 0x2c}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -595,7 +596,7 @@ func _1610959908_add_dont_wrap_to_raw_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1611825589, 0)}
|
||||
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x71, 0x2, 0x9a, 0xca, 0xd4, 0x38, 0x44, 0x30, 0x2b, 0xa8, 0x27, 0x32, 0x63, 0x53, 0x22, 0x60, 0x59, 0x84, 0x23, 0x96, 0x77, 0xf0, 0x56, 0xd7, 0x94, 0xe0, 0x95, 0x28, 0x6, 0x1d, 0x4e, 0xb1}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -615,7 +616,7 @@ func _1610960912_add_send_on_personal_topicUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1611825589, 0)}
|
||||
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x77, 0xac, 0x2f, 0xc4, 0xd, 0xa7, 0x1b, 0x37, 0x30, 0xc2, 0x68, 0xee, 0xde, 0x54, 0x5e, 0xbf, 0x3f, 0xa0, 0xd6, 0xc6, 0x9f, 0xd4, 0x34, 0x12, 0x76, 0x1e, 0x66, 0x4a, 0xfc, 0xf, 0xee, 0xc9}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -635,7 +636,7 @@ func _1612870480_add_datasync_idUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1614251236, 0)}
|
||||
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0x9a, 0xbc, 0xfa, 0xaa, 0x8c, 0x9c, 0x37, 0x67, 0x15, 0x9c, 0x7e, 0x78, 0x75, 0x66, 0x82, 0x18, 0x72, 0x10, 0xbc, 0xd4, 0xab, 0x44, 0xfe, 0x57, 0x85, 0x6d, 0x19, 0xf5, 0x96, 0x8a, 0xbe}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -655,7 +656,7 @@ func _1614152139_add_communities_request_to_joinUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0644), modTime: time.Unix(1614608661, 0)}
|
||||
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x11, 0x3, 0x26, 0xf9, 0x29, 0x50, 0x4f, 0xcd, 0x46, 0xe5, 0xb1, 0x6b, 0xb9, 0x2, 0x40, 0xb1, 0xdf, 0x4a, 0x4c, 0x7a, 0xda, 0x3, 0x35, 0xcd, 0x2d, 0xcc, 0x80, 0x7d, 0x57, 0x5f, 0x3, 0x5c}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -675,7 +676,7 @@ func _1615374373_add_confirmationsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0644), modTime: time.Unix(1615904318, 0)}
|
||||
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdd, 0xa6, 0x65, 0xc5, 0x1d, 0xb2, 0x77, 0x36, 0xe3, 0x79, 0xda, 0xe8, 0x7a, 0xa4, 0xdf, 0x45, 0xae, 0xd8, 0xb4, 0xba, 0x90, 0xfd, 0x74, 0x71, 0x14, 0x75, 0x73, 0x72, 0xb9, 0x9e, 0x1, 0x81}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -695,7 +696,7 @@ func _1617694931_add_notification_centerUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0644), modTime: time.Unix(1618824585, 0)}
|
||||
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0x45, 0xc6, 0xc9, 0x73, 0xbb, 0x1f, 0xda, 0xa3, 0x4d, 0x19, 0x98, 0x85, 0x2d, 0xca, 0xda, 0xcc, 0x3b, 0x32, 0xff, 0xc7, 0x7b, 0xe3, 0x9f, 0x9b, 0x2a, 0x93, 0xf5, 0xdf, 0x65, 0x38, 0x91}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -715,7 +716,7 @@ func _1618923660_create_pin_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1621413223, 0)}
|
||||
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x61, 0x44, 0x3a, 0xbe, 0x30, 0xd2, 0x7e, 0xc0, 0xe2, 0x8e, 0x65, 0x53, 0x54, 0xbb, 0x7a, 0x1c, 0xb3, 0x5d, 0xd2, 0xa6, 0xa9, 0x28, 0xb7, 0xa4, 0x5f, 0x8b, 0x9, 0x5f, 0x17, 0xc1, 0x85, 0x21}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -735,7 +736,7 @@ func _1619094007_add_joined_chat_fieldUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1621413223, 0)}
|
||||
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfa, 0x30, 0x81, 0x3a, 0x2f, 0x9f, 0xb3, 0x0, 0x55, 0x8e, 0x1d, 0xa8, 0xb0, 0x68, 0xf0, 0x40, 0x1a, 0x6c, 0xaa, 0xfc, 0x33, 0xd1, 0xd1, 0x55, 0x3f, 0xf2, 0xbd, 0x54, 0xa1, 0x2b, 0x40, 0x95}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -755,7 +756,7 @@ func _1619099821_add_last_synced_fieldUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1621576592, 0)}
|
||||
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf, 0x52, 0x22, 0xe, 0x2f, 0xd7, 0x93, 0x5f, 0x42, 0xc2, 0x93, 0x4, 0x35, 0x6f, 0xc9, 0x19, 0xed, 0x6b, 0x52, 0x6f, 0xae, 0x99, 0xe2, 0x68, 0x3d, 0x4f, 0x40, 0xe, 0xe1, 0xa, 0x47, 0x21}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -775,7 +776,7 @@ func _1621933219_add_mentionedUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1623420243, 0)}
|
||||
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x76, 0x8a, 0xc9, 0x7, 0x8f, 0xa5, 0xcb, 0x12, 0x21, 0x4e, 0xfe, 0x96, 0x77, 0xcf, 0x7f, 0x76, 0x75, 0x36, 0x2c, 0xf8, 0x1d, 0x13, 0xcb, 0xcd, 0x6e, 0x70, 0xbf, 0xf5, 0x93, 0x67, 0xd1}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -795,7 +796,7 @@ func _1622010048_add_unviewed_mentions_countUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1623420243, 0)}
|
||||
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7c, 0x16, 0x85, 0xa6, 0x5b, 0xe1, 0x66, 0xb9, 0x84, 0xbe, 0x7f, 0xa, 0x77, 0x23, 0xb9, 0xef, 0x8e, 0x2, 0x8, 0xfc, 0x61, 0xb2, 0x43, 0xa9, 0x63, 0xae, 0xb4, 0xdf, 0x30, 0xb1, 0x61, 0x4b}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -815,7 +816,7 @@ func _1622061278_add_message_activity_center_notification_fieldUpSql() (*asset,
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1623420243, 0)}
|
||||
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8, 0xc, 0xa6, 0x1f, 0xa5, 0xc6, 0x7c, 0x6f, 0xab, 0x2c, 0x2d, 0xb5, 0xa4, 0xdd, 0xc1, 0xd6, 0x44, 0x83, 0xf9, 0xb1, 0xa5, 0xce, 0x34, 0x3d, 0x2, 0xa9, 0x35, 0xcf, 0xc6, 0xb2, 0x43, 0x37}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -835,7 +836,7 @@ func _1622464518_set_synced_to_fromUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0644), modTime: time.Unix(1623420243, 0)}
|
||||
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x33, 0x3e, 0x2b, 0xa, 0x1e, 0xc7, 0x6d, 0x6f, 0xd1, 0x1d, 0xe8, 0x4b, 0xdd, 0x92, 0x76, 0xea, 0xf2, 0x3e, 0x15, 0x85, 0xc4, 0xc3, 0x31, 0xf1, 0xc0, 0xa2, 0xd7, 0x47, 0xde, 0x4e, 0xfd, 0xc6}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -855,7 +856,7 @@ func _1622464519_add_chat_descriptionUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0644), modTime: time.Unix(1623420243, 0)}
|
||||
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x2e, 0x89, 0x31, 0xec, 0xef, 0xeb, 0x43, 0xf5, 0x96, 0x6d, 0xce, 0x91, 0x8a, 0x37, 0x2a, 0x11, 0x7a, 0x3f, 0xd9, 0x10, 0xbb, 0xa1, 0xbc, 0x7, 0xe0, 0x3b, 0xa5, 0xf4, 0xa6, 0xf4, 0xa1}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -875,7 +876,7 @@ func _1622622253_add_pinned_by_to_pin_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1623420243, 0)}
|
||||
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9b, 0x94, 0xa3, 0x45, 0x91, 0x1e, 0x66, 0xd1, 0x96, 0x5a, 0xaf, 0xfa, 0x29, 0x39, 0xa8, 0x3a, 0x97, 0x4c, 0x65, 0x6, 0x96, 0x90, 0x4c, 0xfe, 0xce, 0x7d, 0x5d, 0xd4, 0xb3, 0x8, 0x6d, 0x5f}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -895,7 +896,7 @@ func _1623938329_add_author_activity_center_notification_fieldUpSql() (*asset, e
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1624017080, 0)}
|
||||
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0xe6, 0xa7, 0xd5, 0x26, 0xff, 0xab, 0x92, 0x88, 0xf0, 0xd3, 0x34, 0xd9, 0x2f, 0xe7, 0x18, 0x1a, 0x40, 0xf9, 0xbe, 0x8e, 0xfc, 0xd0, 0x4f, 0x1f, 0x4a, 0xb9, 0x83, 0x3f, 0xa9, 0xde, 0xb}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -915,7 +916,7 @@ func _1623938330_add_edit_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0644), modTime: time.Unix(1628358694, 0)}
|
||||
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xd2, 0xce, 0xe, 0x5c, 0x19, 0xbe, 0x5e, 0x29, 0xbe, 0x9b, 0x31, 0x53, 0x76, 0xb2, 0xc8, 0x56, 0xf0, 0x82, 0xfe, 0x7d, 0x6c, 0xe8, 0x5c, 0xe9, 0x7a, 0x5d, 0x5, 0xc4, 0x92, 0x38, 0xe3}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -935,7 +936,7 @@ func _1624978434_add_muted_communityUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1628358694, 0)}
|
||||
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6, 0xdc, 0x6e, 0x6f, 0x97, 0xc7, 0x3d, 0x50, 0xab, 0x80, 0x87, 0x44, 0x43, 0x38, 0xe6, 0xc5, 0xc1, 0x91, 0x26, 0xf, 0x16, 0xe, 0xd9, 0x32, 0x37, 0x25, 0x96, 0x25, 0x6, 0xc8, 0xb5, 0x4a}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -955,7 +956,7 @@ func _1625018910_add_repply_message_activity_center_notification_fieldUpSql() (*
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1628358694, 0)}
|
||||
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf2, 0x52, 0x12, 0x40, 0xd8, 0x6f, 0x71, 0x97, 0x46, 0x39, 0xaa, 0x74, 0x41, 0xcd, 0x45, 0x4c, 0xe8, 0xd9, 0xe2, 0x56, 0x8e, 0x78, 0x18, 0x62, 0xf6, 0xa8, 0x36, 0xe9, 0x9a, 0x1f, 0xc, 0xb1}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -975,7 +976,7 @@ func _1625762506_add_deleted_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0644), modTime: time.Unix(1628358701, 0)}
|
||||
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x61, 0x42, 0xb6, 0x8c, 0x7f, 0x2d, 0xec, 0xa9, 0x6d, 0x3d, 0x0, 0xa3, 0x32, 0xd8, 0x4a, 0x38, 0x5c, 0x97, 0xfc, 0x68, 0xde, 0xa9, 0xb7, 0xd8, 0xde, 0xb, 0x29, 0x93, 0xdc, 0x81, 0xf8}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -995,7 +996,7 @@ func _1627388946_add_communities_synced_atUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1628358701, 0)}
|
||||
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc1, 0xbd, 0x9b, 0x6a, 0xc9, 0x1a, 0x7a, 0x34, 0xcf, 0x5f, 0x80, 0x9e, 0x8c, 0x1c, 0xc0, 0xec, 0x4e, 0x78, 0xb0, 0x2d, 0x15, 0x77, 0x38, 0x4a, 0x6a, 0x5, 0x84, 0xf5, 0x8d, 0x8b, 0xbe, 0x9}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1015,7 +1016,7 @@ func _1628280060_createUsermessagesIndexSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1628783235, 0)}
|
||||
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0x6f, 0x70, 0x47, 0x40, 0xab, 0xa8, 0x60, 0xe0, 0xf9, 0x8, 0x7e, 0x19, 0x9d, 0xba, 0x33, 0x16, 0xfc, 0x3c, 0xdc, 0xa8, 0xa6, 0x53, 0x61, 0x39, 0x82, 0x91, 0xcf, 0x69, 0xd8, 0xf2, 0xcf}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1035,7 +1036,7 @@ func _1632303896_modify_contacts_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0644), modTime: time.Unix(1633515512, 0)}
|
||||
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x81, 0x1e, 0x6c, 0x3c, 0xd, 0xd7, 0x7d, 0xbb, 0x19, 0xbc, 0xe4, 0x7, 0xfd, 0xf8, 0x66, 0x6d, 0x78, 0xf6, 0x4, 0xe6, 0x51, 0xe4, 0xe6, 0xdc, 0xe, 0x5a, 0x2e, 0xac, 0xe6, 0xe7, 0x24, 0x69}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1055,7 +1056,7 @@ func _1633349838_add_emoji_column_in_chatsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1633515512, 0)}
|
||||
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcb, 0x33, 0xcb, 0x3b, 0xa9, 0x99, 0x77, 0x6a, 0xea, 0xc4, 0x39, 0xd7, 0xa1, 0x49, 0xa7, 0xdf, 0xff, 0x72, 0xda, 0x34, 0x21, 0x67, 0x66, 0xca, 0x65, 0x46, 0x1, 0xa6, 0x4e, 0xf9, 0x38, 0x86}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1075,7 +1076,7 @@ func _1634831235_add_highlight_column_in_chatsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1635162188, 0)}
|
||||
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xaa, 0x63, 0x5c, 0x73, 0x19, 0x83, 0xbd, 0x35, 0x80, 0x9f, 0x66, 0xec, 0x4c, 0xbc, 0x9d, 0x2d, 0x52, 0x91, 0x6d, 0xb3, 0x2b, 0x87, 0xde, 0x24, 0x46, 0x5c, 0xd, 0xfd, 0x78, 0xf5, 0xe3, 0xe9}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1095,7 +1096,7 @@ func _1634896007_add_last_updated_locally_and_removedUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1637051072, 0)}
|
||||
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2e, 0xa8, 0x34, 0xe2, 0xc0, 0x62, 0xc8, 0xd6, 0x5a, 0x87, 0xe3, 0x70, 0xe1, 0xc4, 0x16, 0x9c, 0x60, 0x2e, 0x98, 0xf0, 0x91, 0x84, 0xbe, 0xe0, 0xdf, 0x3e, 0x4d, 0x24, 0xc4, 0x6c, 0x40, 0x17}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1115,7 +1116,7 @@ func _1635840039_add_clock_read_at_column_in_chatsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0644), modTime: time.Unix(1636362489, 0)}
|
||||
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6c, 0xba, 0x3f, 0xba, 0x1a, 0x71, 0xa8, 0x9, 0x19, 0xbe, 0x1e, 0x38, 0x50, 0x30, 0x3a, 0x52, 0x15, 0x29, 0xee, 0x49, 0x19, 0x6f, 0x53, 0xc2, 0xc6, 0x6c, 0xd9, 0x80, 0x7e, 0xb9, 0x58, 0x7a}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1135,7 +1136,7 @@ func _1637852321_add_received_invitation_admin_column_in_chatsUpSql() (*asset, e
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1638003948, 0)}
|
||||
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x70, 0x8b, 0x92, 0x56, 0x83, 0x70, 0x7f, 0x6, 0xb2, 0xd, 0x1c, 0x2f, 0xcc, 0x93, 0xc3, 0x85, 0x8c, 0xc2, 0x38, 0x94, 0x7e, 0x88, 0x3f, 0x39, 0x34, 0xf8, 0x90, 0xcf, 0x83, 0x68, 0x3d, 0xe5}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1155,7 +1156,7 @@ func _1645034601_display_nameUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1669629376, 0)}
|
||||
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x15, 0xfc, 0xda, 0x70, 0x53, 0x19, 0x90, 0x20, 0x4, 0x1c, 0x99, 0x42, 0x53, 0x1a, 0xd6, 0xb8, 0xbb, 0x8a, 0xe8, 0xbe, 0xcc, 0xb7, 0xc, 0x7f, 0x73, 0x50, 0x18, 0xf1, 0x8b, 0x18, 0x54, 0x64}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1175,7 +1176,7 @@ func _1645034602_add_mutual_contact_requestUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1a, 0xe0, 0x5d, 0x68, 0xb8, 0x50, 0xa4, 0xbb, 0x3e, 0x4f, 0x2, 0x87, 0xad, 0x87, 0x6e, 0x38, 0xdf, 0xc8, 0x4c, 0xe2, 0x5f, 0xd1, 0x6, 0xdc, 0xe7, 0xbd, 0x4a, 0x9c, 0xf3, 0x91, 0xa1, 0x51}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1195,7 +1196,7 @@ func _1650373957_add_contact_request_stateUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5e, 0xc1, 0x3f, 0x29, 0xe, 0x19, 0x86, 0x1a, 0x4c, 0x6c, 0x2a, 0x90, 0x9d, 0xdf, 0xb1, 0xb, 0x72, 0x25, 0xcd, 0x6c, 0x5f, 0xd, 0x51, 0x9e, 0x85, 0xc0, 0x9, 0xb7, 0xbc, 0x87, 0x23, 0xec}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1215,7 +1216,7 @@ func _1656958989_contact_verificationUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3a, 0x3f, 0x28, 0x38, 0x33, 0xdb, 0xe9, 0x4d, 0xc0, 0x54, 0x8c, 0x2a, 0x73, 0xc4, 0xdd, 0x5c, 0xc5, 0x1a, 0x93, 0x4b, 0x6, 0x13, 0xbe, 0x42, 0xd2, 0x7f, 0xd4, 0xc, 0xc5, 0x4e, 0x6d, 0xce}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1235,7 +1236,7 @@ func _1658236268_add_discord_message_authors_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1658236268_add_discord_message_authors_table.up.sql", size: 191, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1658236268_add_discord_message_authors_table.up.sql", size: 191, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3d, 0xb7, 0xdb, 0x79, 0x1, 0x15, 0xe7, 0x76, 0x5d, 0x22, 0x54, 0x82, 0x9a, 0xbe, 0x24, 0xc1, 0x82, 0xcf, 0x67, 0x91, 0x53, 0xcc, 0xac, 0x74, 0x18, 0x61, 0x69, 0x68, 0x19, 0xca, 0x2b, 0xa8}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1255,7 +1256,7 @@ func _1659619997_add_discord_messages_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1659619997_add_discord_messages_table.up.sql", size: 371, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1659619997_add_discord_messages_table.up.sql", size: 371, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x12, 0x9c, 0x96, 0xe2, 0x42, 0x3f, 0x94, 0x62, 0xc2, 0x76, 0xab, 0x3b, 0x4c, 0x85, 0x36, 0x48, 0xcc, 0x73, 0x60, 0x93, 0x5a, 0xd6, 0x7, 0xd6, 0x0, 0xee, 0x1b, 0x1e, 0x34, 0x58, 0x99}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1275,7 +1276,7 @@ func _1660226788_create_chat_identity_social_linksUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1660226788_create_chat_identity_social_links.up.sql", size: 318, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1660226788_create_chat_identity_social_links.up.sql", size: 318, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3c, 0x76, 0x40, 0xe9, 0x85, 0xc4, 0x38, 0xf8, 0xe5, 0x5d, 0xe8, 0x13, 0x46, 0x1b, 0xc, 0x1, 0xe9, 0x2f, 0x74, 0xd1, 0x79, 0x59, 0xa4, 0xdb, 0x4a, 0x4a, 0xf4, 0x98, 0x58, 0x3c, 0x57, 0xd3}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1295,7 +1296,7 @@ func _1660226789_add_walletconnectsessions_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1660226789_add_walletconnectsessions_table.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1660226789_add_walletconnectsessions_table.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf8, 0x5c, 0x72, 0x2, 0xed, 0x36, 0x19, 0x91, 0x4d, 0x1a, 0xc1, 0xab, 0x84, 0xfa, 0x41, 0xb1, 0x46, 0xa5, 0xdb, 0x3f, 0x76, 0x47, 0xd3, 0x75, 0x3c, 0x6a, 0x8e, 0x78, 0xe6, 0x41, 0xdc, 0x7f}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1315,7 +1316,7 @@ func _1661242854_add_communities_requests_to_leaveUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1661242854_add_communities_requests_to_leave.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1661242854_add_communities_requests_to_leave.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x49, 0x2e, 0x7d, 0x14, 0xef, 0x6e, 0x95, 0x4b, 0x6, 0x70, 0x2e, 0xd1, 0xf6, 0x59, 0xf9, 0xe, 0x56, 0xa, 0x9c, 0x80, 0x18, 0xca, 0xb9, 0x49, 0x19, 0xf, 0x89, 0x94, 0x36, 0x6d, 0x93, 0x9a}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1335,7 +1336,7 @@ func _1662044232_add_chat_imageUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1662044232_add_chat_image.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1662044232_add_chat_image.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb3, 0x74, 0xdf, 0x50, 0x79, 0x73, 0x9e, 0xd0, 0xff, 0xa4, 0xd3, 0x87, 0xc3, 0x48, 0x31, 0x6c, 0xdf, 0xa6, 0x20, 0x85, 0xe6, 0x4e, 0x19, 0x9d, 0xef, 0xcc, 0x84, 0x2b, 0x5d, 0x44, 0x34, 0x6}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1355,7 +1356,7 @@ func _1662106895_add_chat_first_message_timestampUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8b, 0x55, 0x74, 0xfa, 0xf5, 0x51, 0x85, 0x19, 0xfd, 0xfb, 0x6, 0x79, 0x4d, 0x1d, 0xd, 0x3, 0x46, 0x66, 0x34, 0x1e, 0xce, 0x91, 0x21, 0x29, 0xf6, 0x71, 0xe7, 0x31, 0x39, 0x8f, 0x9d, 0x5}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1375,7 +1376,7 @@ func _1662723928_add_discord_author_image_fieldsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1e, 0x5b, 0x48, 0x57, 0x98, 0x55, 0x9a, 0xf1, 0x75, 0xf7, 0xb5, 0x41, 0x5e, 0x96, 0xc5, 0xce, 0xfc, 0x30, 0x5c, 0x15, 0x35, 0x9e, 0x4e, 0x4a, 0x3b, 0x38, 0x42, 0xc4, 0x27, 0x3c, 0x87, 0xbf}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1395,7 +1396,7 @@ func _1664195977_add_deleted_for_mesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7d, 0x9d, 0x13, 0x9, 0xaa, 0x44, 0x14, 0x93, 0xe2, 0xf5, 0x53, 0xb7, 0x79, 0xa8, 0x18, 0xf0, 0x6c, 0xa4, 0x9c, 0x73, 0xc1, 0xaa, 0xc5, 0x2e, 0xc5, 0x41, 0xd7, 0x24, 0xb0, 0xd7, 0xb8, 0xdf}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1415,7 +1416,7 @@ func _1664367420_add_discord_attachments_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x48, 0xe1, 0xb6, 0x4f, 0x6f, 0x92, 0x0, 0xb4, 0xf, 0x55, 0x12, 0x1c, 0x98, 0x6d, 0xbc, 0x1e, 0xfd, 0xae, 0x1c, 0xce, 0xd1, 0x3d, 0x2, 0x21, 0x2e, 0xc0, 0x13, 0xa, 0xb2, 0xec, 0x81, 0x13}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1435,7 +1436,7 @@ func _1665079662_add_spectated_column_in_communitiesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa0, 0x5d, 0xfe, 0xe2, 0xbe, 0xdf, 0xba, 0x45, 0xe9, 0xfc, 0xa7, 0x5f, 0xda, 0x19, 0xdb, 0x40, 0x96, 0x59, 0x78, 0xa, 0xd7, 0x4a, 0xca, 0x1a, 0x93, 0xfb, 0xae, 0x6d, 0x74, 0x7, 0x36, 0xdd}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1455,7 +1456,7 @@ func _1665479047_add_community_id_in_notificationsUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd9, 0x8f, 0x8b, 0x1c, 0xaa, 0x6a, 0x56, 0xd6, 0xa5, 0x88, 0x57, 0x13, 0x8f, 0xea, 0xb9, 0x23, 0x82, 0x50, 0xb7, 0x65, 0x1f, 0xab, 0xfa, 0x23, 0x6f, 0x0, 0x7, 0xb6, 0x6e, 0xb5, 0x85, 0x44}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1475,7 +1476,7 @@ func _1665484435_add_encrypted_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0x5c, 0x1e, 0x1c, 0x7f, 0xae, 0x5f, 0xeb, 0x3c, 0x6c, 0xcd, 0xc2, 0x99, 0x48, 0x5c, 0x83, 0xa0, 0xa2, 0x97, 0x5, 0x39, 0x82, 0x71, 0x90, 0x47, 0x21, 0x84, 0x29, 0x19, 0xa4, 0x7a, 0x90}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1495,7 +1496,7 @@ func _1665560200_add_contact_verification_individualUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 509, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 509, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc5, 0xbb, 0x61, 0xfd, 0xbf, 0x33, 0x1d, 0x4e, 0x5f, 0xbd, 0x86, 0x42, 0xb0, 0x6c, 0xf7, 0x39, 0x19, 0x6e, 0x72, 0x35, 0xfd, 0x1b, 0xd6, 0xbd, 0xf6, 0x81, 0x21, 0xc4, 0xaa, 0x6, 0x62, 0x40}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1515,7 +1516,7 @@ func _1670921937_add_album_idUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1670921937_add_album_id.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1670921937_add_album_id.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xae, 0x83, 0x58, 0xb7, 0x77, 0x5, 0xca, 0xe3, 0xda, 0x32, 0x8f, 0x7b, 0xa4, 0x2f, 0x4c, 0xaf, 0x5f, 0xfa, 0x94, 0x36, 0xe4, 0xf9, 0x7, 0xc6, 0xd6, 0xb7, 0x90, 0xf3, 0xe5, 0xb5, 0x3}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1535,7 +1536,7 @@ func _1673373000_add_repliedUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1673373000_add_replied.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1673373000_add_replied.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x1c, 0xae, 0xf2, 0xf, 0xb4, 0xc2, 0xba, 0x3c, 0xfe, 0x7b, 0xb0, 0xf, 0xf, 0xd5, 0xbc, 0xe2, 0xa7, 0xad, 0x50, 0xd9, 0x5a, 0xe8, 0x96, 0x22, 0x65, 0x89, 0xcf, 0x4a, 0x9a, 0x1b, 0x94}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1555,7 +1556,7 @@ func _1673428910_add_image_width_heightUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1673428910_add_image_width_height.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1673428910_add_image_width_height.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x74, 0xda, 0x93, 0x2a, 0x9b, 0x6b, 0xb7, 0x96, 0xcd, 0xac, 0xf, 0xaf, 0x54, 0x89, 0x9e, 0x91, 0x5b, 0xd0, 0x4a, 0xa, 0x8d, 0x9e, 0x80, 0x66, 0x26, 0x9e, 0xb5, 0xa9, 0x8, 0xec, 0x2d, 0x6c}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1575,7 +1576,7 @@ func _1674210659_add_contact_request_local_clockUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1674210659_add_contact_request_local_clock.up.sql", size: 691, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1674210659_add_contact_request_local_clock.up.sql", size: 691, mode: os.FileMode(0644), modTime: time.Unix(1675323904, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x92, 0x72, 0x39, 0xfe, 0x72, 0x98, 0xfc, 0x91, 0x20, 0x10, 0xe8, 0xf5, 0xac, 0x79, 0xa8, 0x1c, 0xca, 0x7b, 0x35, 0xa, 0xc1, 0x56, 0x49, 0x9a, 0xfc, 0xbd, 0x64, 0x9d, 0xdf, 0xd2, 0x60, 0x70}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1595,7 +1596,7 @@ func _1675212323_add_deleted_byUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1675212323_add_deleted_by.up.sql", size: 57, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1675212323_add_deleted_by.up.sql", size: 57, mode: os.FileMode(0644), modTime: time.Unix(1675323904, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x85, 0x37, 0x29, 0x2f, 0xd, 0x5a, 0xb6, 0xdb, 0xa7, 0x8, 0x86, 0xfc, 0x7a, 0x70, 0xd8, 0x4d, 0xe6, 0xf0, 0x57, 0xe7, 0xd1, 0x95, 0xd5, 0x4, 0x40, 0x2f, 0x7a, 0x5, 0x4f, 0xc2, 0x97, 0xbc}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1615,7 +1616,7 @@ func _1675247084_add_activity_center_statesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1675247084_add_activity_center_states.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1675247084_add_activity_center_states.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1677122376, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xba, 0x90, 0x7d, 0x55, 0xc7, 0x40, 0x29, 0x26, 0x97, 0x45, 0x5c, 0xdf, 0xba, 0x61, 0xb, 0xfc, 0x3d, 0x7a, 0x6c, 0x42, 0xe4, 0x95, 0x78, 0xb0, 0xc5, 0x1f, 0x73, 0xe9, 0x33, 0x51, 0xc8, 0x81}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1635,7 +1636,7 @@ func _1675272329_fix_protocol_migrationUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1675272329_fix_protocol_migration.up.sql", size: 183, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1675272329_fix_protocol_migration.up.sql", size: 183, mode: os.FileMode(0644), modTime: time.Unix(1675323904, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb6, 0xe0, 0x11, 0x4c, 0x66, 0x55, 0x72, 0xd3, 0xe6, 0x98, 0xa4, 0xe7, 0x44, 0xf9, 0x3b, 0x3a, 0x3f, 0xd9, 0x91, 0x1e, 0x4f, 0xfc, 0x56, 0x63, 0xe5, 0xa4, 0x83, 0xfc, 0x7c, 0xcf, 0x18, 0x99}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1655,7 +1656,7 @@ func _1676998418_fix_activity_center_migrationUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1676998418_fix_activity_center_migration.up.sql", size: 178, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1676998418_fix_activity_center_migration.up.sql", size: 178, mode: os.FileMode(0644), modTime: time.Unix(1677468108, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8a, 0xdc, 0x64, 0xb1, 0x47, 0x67, 0xda, 0x2c, 0x26, 0x29, 0x6b, 0x6f, 0xb, 0xfa, 0x45, 0xf3, 0xad, 0x8b, 0x1a, 0x5f, 0x1c, 0xed, 0xd7, 0xea, 0x54, 0xf5, 0x3f, 0xb8, 0xf6, 0xf9, 0x44, 0x53}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1675,7 +1676,7 @@ func _1677278861_add_deleted_column_to_activity_center_notifications_tableUpSql(
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql", size: 381, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql", size: 381, mode: os.FileMode(0644), modTime: time.Unix(1677468108, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x38, 0x3a, 0x95, 0xaf, 0x81, 0xb0, 0x85, 0x8d, 0x73, 0xda, 0x7b, 0x2a, 0x35, 0xa6, 0xaa, 0xcc, 0x4c, 0x35, 0xa3, 0xa8, 0xbd, 0xd1, 0x37, 0xe8, 0x5d, 0x83, 0xa4, 0x33, 0x1f, 0x10, 0xe4, 0xe6}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1695,7 +1696,7 @@ func _1677486338_add_community_tokens_tableUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1677486338_add_community_tokens_table.up.sql", size: 527, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1677486338_add_community_tokens_table.up.sql", size: 527, mode: os.FileMode(0644), modTime: time.Unix(1677564198, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfb, 0x7b, 0x3d, 0x7e, 0x79, 0xc4, 0x3a, 0xf1, 0xda, 0x4b, 0xc6, 0xd1, 0xd, 0xfb, 0xb2, 0xb9, 0x7f, 0x81, 0x29, 0xab, 0xd8, 0x1, 0x20, 0xd7, 0xe1, 0xaf, 0x3e, 0x67, 0x1b, 0xdb, 0xf9, 0xd5}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1715,7 +1716,7 @@ func _1678292329_add_collapsed_categoriesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1678292329_add_collapsed_categories.up.sql", size: 170, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1678292329_add_collapsed_categories.up.sql", size: 170, mode: os.FileMode(0644), modTime: time.Unix(1679051421, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x46, 0x63, 0x86, 0xd5, 0x7, 0xe2, 0x25, 0x15, 0x1b, 0xfe, 0xf3, 0xe, 0x50, 0x48, 0x11, 0x3c, 0x7c, 0xc6, 0xe5, 0xab, 0x8d, 0x1f, 0xe8, 0x3c, 0xcb, 0xf0, 0x8d, 0xa7, 0x49, 0x4c, 0x16, 0x4f}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1735,7 +1736,7 @@ func _1678800760_add_index_to_raw_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1678800760_add_index_to_raw_messages.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1678800760_add_index_to_raw_messages.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1679302848, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9d, 0xd9, 0x8d, 0x22, 0x46, 0xae, 0x7b, 0x53, 0x3e, 0x51, 0x39, 0xad, 0xad, 0x38, 0x50, 0x6, 0xfa, 0xb9, 0xc4, 0x9f, 0x8d, 0xd2, 0x67, 0x0, 0xef, 0x58, 0x13, 0xab, 0x6a, 0x67, 0xf3, 0x7e}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1755,7 +1756,7 @@ func _1678877478_add_communities_requests_to_join_revealed_addresses_tableUpSql(
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql", size: 168, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql", size: 168, mode: os.FileMode(0644), modTime: time.Unix(1679652393, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x82, 0x1, 0xb4, 0xb2, 0x94, 0x25, 0xd5, 0x2e, 0x45, 0xc3, 0xb1, 0x2c, 0xeb, 0x1a, 0x52, 0xe0, 0x4b, 0x9b, 0x46, 0xf4, 0xc, 0xac, 0x1, 0x1e, 0x90, 0xbc, 0x64, 0x38, 0x10, 0xf1, 0xaf, 0xac}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1775,7 +1776,7 @@ func _1679326850_add_community_token_ownersUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1679326850_add_community_token_owners.up.sql", size: 206, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1679326850_add_community_token_owners.up.sql", size: 206, mode: os.FileMode(0644), modTime: time.Unix(1680000580, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe9, 0xe6, 0x25, 0x67, 0xd1, 0xd6, 0x54, 0x88, 0xb1, 0x80, 0x1e, 0x2d, 0x9c, 0xfa, 0x1c, 0xc7, 0x63, 0x6e, 0xf9, 0x66, 0xb1, 0x68, 0xc6, 0xf8, 0x51, 0xb6, 0xd5, 0x4e, 0x93, 0x39, 0x5e, 0xc0}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1795,7 +1796,7 @@ func _1680011500_add_album_images_countUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1680011500_add_album_images_count.up.sql", size: 71, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1680011500_add_album_images_count.up.sql", size: 71, mode: os.FileMode(0644), modTime: time.Unix(1680260624, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2e, 0x55, 0x99, 0x31, 0xcc, 0x80, 0x78, 0xc3, 0x51, 0x13, 0x63, 0x6f, 0x1a, 0xfd, 0x53, 0xd2, 0xf4, 0x13, 0x4b, 0xb2, 0x4f, 0x99, 0xb8, 0x7b, 0x7, 0x99, 0xb6, 0xab, 0x88, 0x2e, 0x7, 0x8}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1815,7 +1816,7 @@ func _1680114896_add_index_on_album_idUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1680114896_add_index_on_album_id.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1680114896_add_index_on_album_id.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1680260624, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb3, 0x7e, 0xd5, 0xcd, 0x2d, 0xab, 0xd4, 0x32, 0x26, 0x50, 0x3a, 0x5b, 0x8e, 0x1c, 0xcc, 0x35, 0xf8, 0xa1, 0x2a, 0xc1, 0x23, 0xf6, 0x90, 0xfe, 0x84, 0x3, 0xde, 0x5a, 0xee, 0xc6, 0xfc, 0x2a}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1835,7 +1836,7 @@ func _1681655289_add_mute_tillUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1681655289_add_mute_till.up.sql", size: 51, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1681655289_add_mute_till.up.sql", size: 51, mode: os.FileMode(0644), modTime: time.Unix(1681955252, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd1, 0xbe, 0xce, 0xb8, 0xe1, 0x30, 0xe7, 0xa7, 0xe0, 0x7d, 0x97, 0xf4, 0x26, 0xb8, 0x57, 0x1d, 0x2a, 0xed, 0x18, 0xf2, 0xa, 0xe3, 0x77, 0x29, 0x18, 0x55, 0x9, 0x74, 0x2c, 0x24, 0x5a, 0x19}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1855,7 +1856,7 @@ func _1681934966_add_index_response_toUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1681934966_add_index_response_to.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1681934966_add_index_response_to.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1682560340, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3b, 0xed, 0xa6, 0x7e, 0x51, 0xf2, 0xa1, 0x3c, 0x78, 0x9a, 0xa7, 0x7a, 0x51, 0x25, 0x7d, 0xdd, 0x4b, 0xf3, 0x45, 0xeb, 0x3f, 0xad, 0x23, 0x3e, 0xac, 0x16, 0x28, 0x62, 0x7, 0x8c, 0xe0, 0xa0}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1875,7 +1876,7 @@ func _1682528339_add_index_user_messages_unseenUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1682528339_add_index_user_messages_unseen.up.sql", size: 104, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1682528339_add_index_user_messages_unseen.up.sql", size: 104, mode: os.FileMode(0644), modTime: time.Unix(1683172161, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x35, 0xfa, 0x98, 0xdd, 0x74, 0x5e, 0x21, 0x1f, 0xf2, 0x56, 0x17, 0x96, 0xfe, 0xbb, 0x44, 0x4c, 0xa1, 0xd8, 0x9f, 0x2e, 0x6, 0x2f, 0xd8, 0x23, 0xec, 0x94, 0x8c, 0x53, 0xf3, 0xf0, 0x40, 0xe7}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1895,7 +1896,7 @@ func _1683707289_recreate_deleted_for_mesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1683707289_recreate_deleted_for_mes.up.sql", size: 408, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1683707289_recreate_deleted_for_mes.up.sql", size: 408, mode: os.FileMode(0644), modTime: time.Unix(1683811675, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5b, 0x9d, 0xd6, 0x45, 0x41, 0x29, 0x44, 0xf6, 0x14, 0x38, 0xeb, 0xdf, 0x6b, 0x5d, 0x9c, 0x45, 0x4b, 0xc3, 0xa8, 0xbd, 0x38, 0x14, 0xd9, 0x73, 0xf1, 0x51, 0xbb, 0x9f, 0x14, 0x36, 0xf2, 0x11}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1915,7 +1916,7 @@ func _1683725607_mark_discord_messages_as_seenUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1683725607_mark_discord_messages_as_seen.up.sql", size: 108, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1683725607_mark_discord_messages_as_seen.up.sql", size: 108, mode: os.FileMode(0644), modTime: time.Unix(1683810836, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd7, 0x2a, 0xc3, 0x43, 0xea, 0x5e, 0x3, 0x2e, 0xce, 0x79, 0xea, 0xa5, 0x67, 0x61, 0x8c, 0xe4, 0xb9, 0xb7, 0x4d, 0xd5, 0xd5, 0xb0, 0x35, 0xc8, 0x2b, 0xa0, 0x3f, 0xd8, 0xde, 0xea, 0x4e, 0x16}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1935,7 +1936,7 @@ func _1684174617_add_url_previews_to_user_messagesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1684174617_add_url_previews_to_user_messages.up.sql", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1684174617_add_url_previews_to_user_messages.up.sql", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1684505071, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdc, 0xb0, 0x72, 0xe3, 0xe4, 0xa9, 0x63, 0x82, 0xea, 0x52, 0x70, 0xb6, 0xa0, 0x73, 0x55, 0x7a, 0x78, 0xa8, 0xd2, 0xb0, 0xf4, 0x78, 0x8a, 0xd, 0x5a, 0xa2, 0x9d, 0x92, 0xdc, 0xce, 0x1c, 0x71}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1955,11 +1956,31 @@ func _1684175608_add_token_balancesUpSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1684175608_add_token_balances.up.sql", size: 467, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
|
||||
info := bindataFileInfo{name: "1684175608_add_token_balances.up.sql", size: 467, mode: os.FileMode(0644), modTime: time.Unix(1684755650, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1b, 0x4e, 0xe0, 0x48, 0x34, 0x1, 0x4d, 0x88, 0x11, 0x54, 0x20, 0x52, 0x5c, 0x57, 0x14, 0xa9, 0xa9, 0x36, 0xa4, 0x28, 0x59, 0x48, 0xa8, 0xa, 0x76, 0xec, 0x37, 0xee, 0x9e, 0xd2, 0x20, 0xaa}}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var __1684979808_sync_activity_center_notificationsUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\xcc\xc1\x09\x02\x31\x10\x05\xd0\xbb\x55\xfc\x12\xbc\x7b\x8a\x26\x82\x30\x66\x41\x26\xe7\x30\x64\x23\xcc\x25\x2b\xe6\x2b\xd8\xbd\x1d\x08\x36\xf0\x82\x68\xba\x41\xc3\x51\x12\xac\xd1\xdf\xce\x4f\x6d\x7d\xb0\x3f\xeb\xa4\xb1\x4f\x84\x18\x71\x5a\xa4\x5c\x33\x5e\x8f\xd5\xd8\xd7\x6a\xc4\x25\x2b\xf2\xa2\xc8\x45\x04\x31\x9d\x43\x11\xc5\xfe\xb0\xfb\x05\x8e\x8d\x7e\xf7\x66\xf4\x6d\xfc\xeb\x7e\x03\x00\x00\xff\xff\x09\xb8\x1a\x7c\xa9\x00\x00\x00")
|
||||
|
||||
func _1684979808_sync_activity_center_notificationsUpSqlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
__1684979808_sync_activity_center_notificationsUpSql,
|
||||
"1684979808_sync_activity_center_notifications.up.sql",
|
||||
)
|
||||
}
|
||||
|
||||
func _1684979808_sync_activity_center_notificationsUpSql() (*asset, error) {
|
||||
bytes, err := _1684979808_sync_activity_center_notificationsUpSqlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "1684979808_sync_activity_center_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1686047555, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd8, 0xf5, 0xf7, 0x94, 0xa9, 0xa1, 0x60, 0x26, 0x9d, 0xca, 0x31, 0xf, 0x14, 0xd, 0x70, 0xf8, 0xab, 0x40, 0x29, 0x73, 0x61, 0xbd, 0x1b, 0xb6, 0xc4, 0x31, 0x77, 0x9e, 0x32, 0xa8, 0xce, 0x6d}}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _readmeMd = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x91\xc1\xce\xd3\x30\x10\x84\xef\x7e\x8a\x91\x7a\x01\xa9\x2a\x8f\xc0\x0d\x71\x82\x03\x48\x1c\xc9\x36\x9e\x36\x96\x1c\x6f\xf0\xae\x93\xe6\xed\x91\xa3\xc2\xdf\xff\x66\xed\xd8\x33\xdf\x78\x4f\xa7\x13\xbe\xea\x06\x57\x6c\x35\x39\x31\xa7\x7b\x15\x4f\x5a\xec\x73\x08\xbf\x08\x2d\x79\x7f\x4a\x43\x5b\x86\x17\xfd\x8c\x21\xea\x56\x5e\x47\x90\x4a\x14\x75\x48\xde\x64\x37\x2c\x6a\x96\xae\x99\x48\x05\xf6\x27\x77\x13\xad\x08\xae\x8a\x51\xe7\x25\xf3\xf1\xa9\x9f\xf9\x58\x58\x2c\xad\xbc\xe0\x8b\x56\xf0\x21\x5d\xeb\x4c\x95\xb3\xae\x84\x60\xd4\xdc\xe6\x82\x5d\x1b\x36\x6d\x39\x62\x92\xf5\xb8\x11\xdb\x92\xd3\x28\xce\xe0\x13\xe1\x72\xcd\x3c\x63\xd4\x65\x87\xae\xac\xe8\xc3\x28\x2e\x67\x44\x66\x3a\x21\x25\xa2\x72\xac\x14\x67\xbc\x84\x9f\x53\x32\x8c\x52\x70\x25\x56\xd6\xfd\x8d\x05\x37\xad\x30\x9d\x9f\xa6\x86\x0f\xcd\x58\x7f\xcf\x34\x93\x3b\xed\x90\x9f\xa4\x1f\xcf\x30\x85\x4d\x07\x58\xaf\x7f\x25\xc4\x9d\xf3\x72\x64\x84\xd0\x7f\xf9\x9b\x3a\x2d\x84\xef\x85\x48\x66\x8d\xd8\x88\x9b\x8c\x8c\x98\x5b\xf6\x74\x14\x4e\x33\x0d\xc9\xe0\x93\x38\xda\x12\xc5\x69\xbd\xe4\xf0\x2e\x7a\x78\x07\x1c\xfe\x13\x9f\x91\x29\x31\x95\x7b\x7f\x62\x59\x37\xb4\xe5\x5e\x25\xfe\x33\xee\xd5\x53\x71\xd6\xda\x3a\xd8\xcb\xde\x2e\xf8\xa1\x90\x55\x53\x0c\xc7\xaa\x0d\xe9\x76\x14\x29\x1c\x7b\x68\xdd\x2f\xe1\x6f\x00\x00\x00\xff\xff\x3c\x0a\xc2\xfe\x2a\x02\x00\x00")
|
||||
|
||||
func readmeMdBytes() ([]byte, error) {
|
||||
|
@ -1975,7 +1996,7 @@ func readmeMd() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1610388501, 0)}
|
||||
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1c, 0x6e, 0xfb, 0xcc, 0x81, 0x94, 0x4d, 0x8c, 0xa0, 0x3b, 0x5, 0xb0, 0x18, 0xd6, 0xbb, 0xb3, 0x79, 0xc8, 0x8f, 0xff, 0xc1, 0x10, 0xf9, 0xf, 0x20, 0x1b, 0x4a, 0x74, 0x96, 0x42, 0xd7, 0xa8}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -1995,7 +2016,7 @@ func docGo() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
|
||||
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa0, 0xcc, 0x41, 0xe1, 0x61, 0x12, 0x97, 0xe, 0x36, 0x8c, 0xa7, 0x9e, 0xe0, 0x6e, 0x59, 0x9e, 0xee, 0xd5, 0x4a, 0xcf, 0x1e, 0x60, 0xd6, 0xc3, 0x3a, 0xc9, 0x6c, 0xf2, 0x86, 0x5a, 0xb4, 0x1e}}
|
||||
return a, nil
|
||||
}
|
||||
|
@ -2271,6 +2292,8 @@ var _bindata = map[string]func() (*asset, error){
|
|||
|
||||
"1684175608_add_token_balances.up.sql": _1684175608_add_token_balancesUpSql,
|
||||
|
||||
"1684979808_sync_activity_center_notifications.up.sql": _1684979808_sync_activity_center_notificationsUpSql,
|
||||
|
||||
"README.md": readmeMd,
|
||||
|
||||
"doc.go": docGo,
|
||||
|
@ -2407,8 +2430,9 @@ var _bintree = &bintree{nil, map[string]*bintree{
|
|||
"1683725607_mark_discord_messages_as_seen.up.sql": &bintree{_1683725607_mark_discord_messages_as_seenUpSql, map[string]*bintree{}},
|
||||
"1684174617_add_url_previews_to_user_messages.up.sql": &bintree{_1684174617_add_url_previews_to_user_messagesUpSql, map[string]*bintree{}},
|
||||
"1684175608_add_token_balances.up.sql": &bintree{_1684175608_add_token_balancesUpSql, map[string]*bintree{}},
|
||||
"README.md": &bintree{readmeMd, map[string]*bintree{}},
|
||||
"doc.go": &bintree{docGo, map[string]*bintree{}},
|
||||
"1684979808_sync_activity_center_notifications.up.sql": &bintree{_1684979808_sync_activity_center_notificationsUpSql, map[string]*bintree{}},
|
||||
"README.md": &bintree{readmeMd, map[string]*bintree{}},
|
||||
"doc.go": &bintree{docGo, map[string]*bintree{}},
|
||||
}}
|
||||
|
||||
// RestoreAsset restores an asset under the given directory.
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE activity_center_states ADD COLUMN updated_at INT NOT NULL DEFAULT 0;
|
||||
ALTER TABLE activity_center_notifications ADD COLUMN updated_at INT NOT NULL DEFAULT 0;
|
|
@ -1,19 +1,19 @@
|
|||
package protocol
|
||||
|
||||
func (p *sqlitePersistence) UpsertCollapsedCommunityCategory(category CollapsedCommunityCategory) error {
|
||||
func (db *sqlitePersistence) UpsertCollapsedCommunityCategory(category CollapsedCommunityCategory) error {
|
||||
var err error
|
||||
if category.Collapsed {
|
||||
_, err = p.db.Exec("INSERT INTO collapsed_community_categories(community_id, category_id) VALUES(?,?)", category.CommunityID, category.CategoryID)
|
||||
_, err = db.db.Exec("INSERT INTO collapsed_community_categories(community_id, category_id) VALUES(?,?)", category.CommunityID, category.CategoryID)
|
||||
} else {
|
||||
_, err = p.db.Exec("DELETE FROM collapsed_community_categories WHERE community_id = ? AND category_id = ?", category.CommunityID, category.CategoryID)
|
||||
_, err = db.db.Exec("DELETE FROM collapsed_community_categories WHERE community_id = ? AND category_id = ?", category.CommunityID, category.CategoryID)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *sqlitePersistence) CollapsedCommunityCategories() ([]CollapsedCommunityCategory, error) {
|
||||
func (db *sqlitePersistence) CollapsedCommunityCategories() ([]CollapsedCommunityCategory, error) {
|
||||
var categories []CollapsedCommunityCategory
|
||||
|
||||
rows, err := p.db.Query(`
|
||||
rows, err := db.db.Query(`
|
||||
SELECT
|
||||
community_id,
|
||||
category_id
|
||||
|
|
|
@ -89,6 +89,8 @@ const (
|
|||
ApplicationMetadataMessage_SYNC_SOCIAL_LINKS ApplicationMetadataMessage_Type = 64
|
||||
ApplicationMetadataMessage_SYNC_ENS_USERNAME_DETAIL ApplicationMetadataMessage_Type = 65
|
||||
ApplicationMetadataMessage_SYNC_FULL_KEYPAIR ApplicationMetadataMessage_Type = 66
|
||||
ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_NOTIFICATION ApplicationMetadataMessage_Type = 67
|
||||
ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_NOTIFICATION_STATE ApplicationMetadataMessage_Type = 68
|
||||
)
|
||||
|
||||
var ApplicationMetadataMessage_Type_name = map[int32]string{
|
||||
|
@ -158,6 +160,8 @@ var ApplicationMetadataMessage_Type_name = map[int32]string{
|
|||
64: "SYNC_SOCIAL_LINKS",
|
||||
65: "SYNC_ENS_USERNAME_DETAIL",
|
||||
66: "SYNC_FULL_KEYPAIR",
|
||||
67: "SYNC_ACTIVITY_CENTER_NOTIFICATION",
|
||||
68: "SYNC_ACTIVITY_CENTER_NOTIFICATION_STATE",
|
||||
}
|
||||
|
||||
var ApplicationMetadataMessage_Type_value = map[string]int32{
|
||||
|
@ -227,6 +231,8 @@ var ApplicationMetadataMessage_Type_value = map[string]int32{
|
|||
"SYNC_SOCIAL_LINKS": 64,
|
||||
"SYNC_ENS_USERNAME_DETAIL": 65,
|
||||
"SYNC_FULL_KEYPAIR": 66,
|
||||
"SYNC_ACTIVITY_CENTER_NOTIFICATION": 67,
|
||||
"SYNC_ACTIVITY_CENTER_NOTIFICATION_STATE": 68,
|
||||
}
|
||||
|
||||
func (x ApplicationMetadataMessage_Type) String() string {
|
||||
|
@ -305,65 +311,66 @@ func init() {
|
|||
}
|
||||
|
||||
var fileDescriptor_ad09a6406fcf24c7 = []byte{
|
||||
// 959 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0x6b, 0x73, 0x53, 0x37,
|
||||
0x13, 0x7e, 0x03, 0x79, 0x13, 0x50, 0x6e, 0x8a, 0xc8, 0xc5, 0xb9, 0x1b, 0x43, 0x43, 0x80, 0xd6,
|
||||
0xb4, 0xd0, 0x76, 0xda, 0x52, 0xda, 0xca, 0xd2, 0xc6, 0x16, 0x3e, 0x47, 0x3a, 0x48, 0x3a, 0xee,
|
||||
0xb8, 0x5f, 0x34, 0xa6, 0xb8, 0x4c, 0x66, 0x80, 0x78, 0x88, 0xf9, 0x90, 0x7f, 0xd8, 0x5f, 0xd1,
|
||||
0xdf, 0xd2, 0xd1, 0xb9, 0xe8, 0x38, 0x89, 0x53, 0x3e, 0x25, 0xde, 0x7d, 0x76, 0x57, 0xfb, 0xec,
|
||||
0xb3, 0x7b, 0x50, 0x63, 0x30, 0x1a, 0xbd, 0x3b, 0xf9, 0x73, 0x30, 0x3e, 0x39, 0xfd, 0xe0, 0xde,
|
||||
0x0f, 0xc7, 0x83, 0x37, 0x83, 0xf1, 0xc0, 0xbd, 0x1f, 0x9e, 0x9d, 0x0d, 0xde, 0x0e, 0x9b, 0xa3,
|
||||
0x8f, 0xa7, 0xe3, 0x53, 0x72, 0x2b, 0xfb, 0xf3, 0xfa, 0xd3, 0x5f, 0x8d, 0x7f, 0x56, 0xd0, 0x36,
|
||||
0xad, 0x02, 0xe2, 0x02, 0x1f, 0xe7, 0x70, 0xb2, 0x8b, 0x6e, 0x9f, 0x9d, 0xbc, 0xfd, 0x30, 0x18,
|
||||
0x7f, 0xfa, 0x38, 0xac, 0xcd, 0xd4, 0x67, 0x8e, 0x16, 0x75, 0x65, 0x20, 0x35, 0x34, 0x3f, 0x1a,
|
||||
0x9c, 0xbf, 0x3b, 0x1d, 0xbc, 0xa9, 0xdd, 0xc8, 0x7c, 0xe5, 0x4f, 0xf2, 0x02, 0xcd, 0x8e, 0xcf,
|
||||
0x47, 0xc3, 0xda, 0xcd, 0xfa, 0xcc, 0xd1, 0xf2, 0xd3, 0x87, 0xcd, 0xb2, 0x5e, 0xf3, 0xfa, 0x5a,
|
||||
0x4d, 0x7b, 0x3e, 0x1a, 0xea, 0x2c, 0xac, 0xf1, 0xf7, 0x32, 0x9a, 0xf5, 0x3f, 0xc9, 0x02, 0x9a,
|
||||
0x4f, 0x65, 0x57, 0xaa, 0xdf, 0x25, 0xfe, 0x1f, 0xc1, 0x68, 0x91, 0x75, 0xa8, 0x75, 0x31, 0x18,
|
||||
0x43, 0xdb, 0x80, 0x67, 0x08, 0x41, 0xcb, 0x4c, 0x49, 0x4b, 0x99, 0x75, 0x69, 0xc2, 0xa9, 0x05,
|
||||
0x7c, 0x83, 0xec, 0xa1, 0xad, 0x18, 0xe2, 0x16, 0x68, 0xd3, 0x11, 0x49, 0x61, 0x0e, 0x21, 0x37,
|
||||
0xc9, 0x3a, 0x5a, 0x4d, 0xa8, 0xd0, 0x4e, 0x48, 0x63, 0x69, 0x14, 0x51, 0x2b, 0x94, 0xc4, 0xb3,
|
||||
0xde, 0x6c, 0xfa, 0x92, 0x5d, 0x34, 0xff, 0x9f, 0xdc, 0x43, 0x07, 0x1a, 0x5e, 0xa5, 0x60, 0xac,
|
||||
0xa3, 0x9c, 0x6b, 0x30, 0xc6, 0x1d, 0x2b, 0xed, 0xac, 0xa6, 0xd2, 0x50, 0x96, 0x81, 0xe6, 0xc8,
|
||||
0x23, 0x74, 0x48, 0x19, 0x83, 0xc4, 0xba, 0xcf, 0x61, 0xe7, 0xc9, 0x63, 0xf4, 0x80, 0x03, 0x8b,
|
||||
0x84, 0x84, 0xcf, 0x82, 0x6f, 0x91, 0x4d, 0x74, 0xa7, 0x04, 0x4d, 0x3a, 0x6e, 0x93, 0x35, 0x84,
|
||||
0x0d, 0x48, 0x7e, 0xc1, 0x8a, 0xc8, 0x01, 0xda, 0xb9, 0x9c, 0x7b, 0x12, 0xb0, 0xe0, 0xa9, 0xb9,
|
||||
0xd2, 0xa4, 0x2b, 0x08, 0xc4, 0x8b, 0xd3, 0xdd, 0x94, 0x31, 0x95, 0x4a, 0x8b, 0x97, 0xc8, 0x5d,
|
||||
0xb4, 0x77, 0xd5, 0x9d, 0xa4, 0xad, 0x48, 0x30, 0xe7, 0xe7, 0x82, 0x97, 0xc9, 0x3e, 0xda, 0x2e,
|
||||
0xe7, 0xc1, 0x14, 0x07, 0x47, 0x79, 0x0f, 0xb4, 0x15, 0x06, 0x62, 0x90, 0x16, 0xaf, 0x90, 0x06,
|
||||
0xda, 0x4f, 0x52, 0xd3, 0x71, 0x52, 0x59, 0x71, 0x2c, 0x58, 0x9e, 0x42, 0x43, 0x5b, 0x18, 0xab,
|
||||
0x73, 0xca, 0xb1, 0x67, 0xe8, 0xbf, 0x31, 0x4e, 0x83, 0x49, 0x94, 0x34, 0x80, 0x57, 0xc9, 0x0e,
|
||||
0xda, 0xbc, 0x0a, 0x7e, 0x95, 0x82, 0xee, 0x63, 0x42, 0xee, 0xa3, 0xfa, 0x35, 0xce, 0x2a, 0xc5,
|
||||
0x1d, 0xdf, 0xf5, 0xb4, 0x7a, 0x19, 0x7f, 0x78, 0xcd, 0xb7, 0x34, 0xcd, 0x5d, 0x84, 0xaf, 0x7b,
|
||||
0x09, 0x42, 0xac, 0x5e, 0x0a, 0xa7, 0xa1, 0xe0, 0x79, 0x83, 0x6c, 0xa1, 0xf5, 0xb6, 0x56, 0x69,
|
||||
0x92, 0xd1, 0xe2, 0x84, 0xec, 0x09, 0x9b, 0x77, 0xb7, 0x49, 0x56, 0xd1, 0x52, 0x6e, 0xe4, 0x20,
|
||||
0xad, 0xb0, 0x7d, 0x5c, 0xf3, 0x68, 0xa6, 0xe2, 0x38, 0x95, 0xc2, 0xf6, 0x1d, 0x07, 0xc3, 0xb4,
|
||||
0x48, 0x32, 0xf4, 0x16, 0xa9, 0xa1, 0xb5, 0xca, 0x35, 0x91, 0x67, 0xdb, 0xbf, 0xba, 0xf2, 0x84,
|
||||
0x69, 0x2b, 0xf7, 0x52, 0x09, 0x89, 0x77, 0xc8, 0x0a, 0x5a, 0x48, 0x84, 0x0c, 0xb2, 0xdf, 0xf5,
|
||||
0xbb, 0x03, 0x5c, 0x54, 0xbb, 0xb3, 0xe7, 0x5f, 0x62, 0x2c, 0xb5, 0xa9, 0x29, 0x57, 0x67, 0xdf,
|
||||
0xf7, 0xc2, 0x21, 0x82, 0x89, 0x7d, 0x39, 0xf0, 0xa2, 0x9a, 0xa6, 0x99, 0xa2, 0x34, 0xae, 0x93,
|
||||
0x6d, 0xb4, 0x41, 0xa5, 0x92, 0xfd, 0x58, 0xa5, 0xc6, 0xc5, 0x60, 0xb5, 0x60, 0xae, 0x45, 0x2d,
|
||||
0xeb, 0xe0, 0xbb, 0x61, 0xab, 0xb2, 0x96, 0x35, 0xc4, 0xaa, 0x07, 0x1c, 0x37, 0xfc, 0xd4, 0x2a,
|
||||
0x73, 0x51, 0xca, 0x78, 0x02, 0x39, 0xbe, 0x47, 0x10, 0x9a, 0x6b, 0x51, 0xd6, 0x4d, 0x13, 0x7c,
|
||||
0x3f, 0x28, 0xd2, 0x33, 0xdb, 0xf3, 0x9d, 0x32, 0x90, 0x16, 0x74, 0x0e, 0xfd, 0x22, 0x28, 0xf2,
|
||||
0xb2, 0x3b, 0xdf, 0x46, 0xe0, 0xf8, 0xd0, 0x2b, 0x6e, 0x2a, 0x84, 0x0b, 0x13, 0x0b, 0x63, 0x80,
|
||||
0xe3, 0x07, 0x19, 0x13, 0x1e, 0xd3, 0x52, 0xaa, 0x1b, 0x53, 0xdd, 0xc5, 0x47, 0x64, 0x03, 0x91,
|
||||
0xfc, 0x85, 0x11, 0x50, 0xed, 0x3a, 0xc2, 0x58, 0xa5, 0xfb, 0xf8, 0xa1, 0xa7, 0x31, 0xb3, 0x1b,
|
||||
0xb0, 0x56, 0xc8, 0x36, 0x7e, 0x44, 0xea, 0x68, 0xb7, 0x1a, 0x04, 0xd5, 0xac, 0x23, 0x7a, 0xe0,
|
||||
0x62, 0xda, 0x96, 0x60, 0x23, 0x21, 0xbb, 0xf8, 0xb1, 0x1f, 0x62, 0x16, 0x93, 0x68, 0x75, 0x2c,
|
||||
0x22, 0x70, 0x89, 0x60, 0x36, 0xd5, 0x80, 0xbf, 0x0c, 0xd9, 0xca, 0x1d, 0xfb, 0x2a, 0x23, 0x33,
|
||||
0x3f, 0x25, 0xe5, 0x1e, 0x95, 0x4a, 0x6c, 0x7a, 0xd6, 0x34, 0x58, 0x9d, 0x2f, 0xd7, 0x45, 0xe7,
|
||||
0x13, 0x72, 0x88, 0x1a, 0xd7, 0xea, 0xa1, 0x92, 0xeb, 0xd7, 0x15, 0xf5, 0x01, 0x5c, 0xb4, 0x62,
|
||||
0xf0, 0x37, 0xbe, 0x97, 0x32, 0xb4, 0xac, 0xd0, 0x03, 0x1d, 0x64, 0x8f, 0x9f, 0x7a, 0x35, 0x5c,
|
||||
0x7a, 0xdf, 0x05, 0xc0, 0x33, 0x9f, 0xa2, 0xbc, 0x41, 0x53, 0x11, 0xdf, 0x06, 0x4d, 0x58, 0x9d,
|
||||
0x1a, 0x0b, 0xdc, 0xa5, 0x06, 0x34, 0xfe, 0x2e, 0x8c, 0x7a, 0x12, 0x1d, 0xfa, 0xfb, 0x3e, 0x8c,
|
||||
0xfa, 0x52, 0xe7, 0x8e, 0x03, 0x13, 0xc6, 0x27, 0xfe, 0x21, 0x3f, 0x3e, 0x53, 0x28, 0x88, 0x80,
|
||||
0xf6, 0x00, 0xff, 0xe8, 0xfd, 0x59, 0x8a, 0x42, 0xe2, 0xfe, 0xdc, 0xc6, 0x95, 0xd2, 0x7f, 0x0a,
|
||||
0x33, 0x37, 0xb4, 0x07, 0xbc, 0xbc, 0xca, 0xf8, 0xb9, 0x3f, 0x23, 0x55, 0x5e, 0x46, 0x25, 0x83,
|
||||
0xe8, 0xca, 0xc6, 0xfd, 0xec, 0x99, 0x29, 0x7c, 0x53, 0xfb, 0x7e, 0x11, 0x86, 0xdd, 0x85, 0xbe,
|
||||
0xff, 0x00, 0xe1, 0x5f, 0xfc, 0x79, 0x2f, 0x2d, 0x8c, 0x6a, 0xee, 0x8a, 0xfb, 0xf1, 0x6b, 0xa0,
|
||||
0xc8, 0x28, 0x26, 0x68, 0xe4, 0xbc, 0x8e, 0x0c, 0xfe, 0x8d, 0xec, 0xa2, 0x5a, 0x66, 0x06, 0x69,
|
||||
0x32, 0xd6, 0x24, 0x8d, 0xc1, 0x71, 0xb0, 0x54, 0x44, 0x98, 0x86, 0xa0, 0xe3, 0x34, 0x8a, 0x42,
|
||||
0x91, 0x56, 0x6b, 0xe9, 0x8f, 0x85, 0xe6, 0x93, 0xe7, 0xe5, 0xf7, 0xf7, 0xf5, 0x5c, 0xf6, 0xdf,
|
||||
0xb3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x5f, 0xbf, 0xf4, 0x92, 0x26, 0x08, 0x00, 0x00,
|
||||
// 976 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0x6d, 0x73, 0x13, 0x37,
|
||||
0x10, 0x6e, 0x20, 0x4d, 0x40, 0x79, 0x53, 0x44, 0x5e, 0x9c, 0x77, 0xc7, 0x40, 0x08, 0xd0, 0x9a,
|
||||
0x16, 0xda, 0x4e, 0x5b, 0x4a, 0x5b, 0x59, 0xda, 0xd8, 0xc2, 0x77, 0xd2, 0x21, 0xe9, 0xdc, 0x71,
|
||||
0xbf, 0x68, 0x4c, 0x71, 0x99, 0xcc, 0x00, 0xf1, 0x10, 0xe7, 0x43, 0xfe, 0x4b, 0x7f, 0x45, 0x7f,
|
||||
0x61, 0x47, 0xf7, 0xea, 0x24, 0x97, 0xe6, 0x53, 0xe2, 0xdd, 0x67, 0x77, 0xb5, 0xcf, 0x3e, 0xbb,
|
||||
0x87, 0x1a, 0x83, 0xd1, 0xe8, 0xc3, 0xf1, 0x5f, 0x83, 0xf1, 0xf1, 0xc9, 0x27, 0xf7, 0x71, 0x38,
|
||||
0x1e, 0xbc, 0x1b, 0x8c, 0x07, 0xee, 0xe3, 0xf0, 0xf4, 0x74, 0xf0, 0x7e, 0xd8, 0x1c, 0x7d, 0x3e,
|
||||
0x19, 0x9f, 0x90, 0x3b, 0xc9, 0x9f, 0xb7, 0x67, 0x7f, 0x37, 0xfe, 0xc5, 0x68, 0x93, 0x96, 0x01,
|
||||
0x61, 0x86, 0x0f, 0x53, 0x38, 0xd9, 0x46, 0x77, 0x4f, 0x8f, 0xdf, 0x7f, 0x1a, 0x8c, 0xcf, 0x3e,
|
||||
0x0f, 0x6b, 0x53, 0xf5, 0xa9, 0xc3, 0x79, 0x5d, 0x1a, 0x48, 0x0d, 0xcd, 0x8e, 0x06, 0xe7, 0x1f,
|
||||
0x4e, 0x06, 0xef, 0x6a, 0xb7, 0x12, 0x5f, 0xfe, 0x93, 0xbc, 0x42, 0xd3, 0xe3, 0xf3, 0xd1, 0xb0,
|
||||
0x76, 0xbb, 0x3e, 0x75, 0xb8, 0xf8, 0xfc, 0x71, 0x33, 0xaf, 0xd7, 0xbc, 0xbe, 0x56, 0xd3, 0x9e,
|
||||
0x8f, 0x86, 0x3a, 0x09, 0x6b, 0xfc, 0xb3, 0x84, 0xa6, 0xfd, 0x4f, 0x32, 0x87, 0x66, 0x63, 0xd9,
|
||||
0x95, 0xea, 0x0f, 0x89, 0xbf, 0x20, 0x18, 0xcd, 0xb3, 0x0e, 0xb5, 0x2e, 0x04, 0x63, 0x68, 0x1b,
|
||||
0xf0, 0x14, 0x21, 0x68, 0x91, 0x29, 0x69, 0x29, 0xb3, 0x2e, 0x8e, 0x38, 0xb5, 0x80, 0x6f, 0x91,
|
||||
0x1d, 0xb4, 0x11, 0x42, 0xd8, 0x02, 0x6d, 0x3a, 0x22, 0xca, 0xcc, 0x45, 0xc8, 0x6d, 0xb2, 0x8a,
|
||||
0x96, 0x23, 0x2a, 0xb4, 0x13, 0xd2, 0x58, 0x1a, 0x04, 0xd4, 0x0a, 0x25, 0xf1, 0xb4, 0x37, 0x9b,
|
||||
0xbe, 0x64, 0x17, 0xcd, 0x5f, 0x92, 0xfb, 0x68, 0x4f, 0xc3, 0x9b, 0x18, 0x8c, 0x75, 0x94, 0x73,
|
||||
0x0d, 0xc6, 0xb8, 0x23, 0xa5, 0x9d, 0xd5, 0x54, 0x1a, 0xca, 0x12, 0xd0, 0x0c, 0x79, 0x82, 0x0e,
|
||||
0x28, 0x63, 0x10, 0x59, 0x77, 0x13, 0x76, 0x96, 0x3c, 0x45, 0x8f, 0x38, 0xb0, 0x40, 0x48, 0xb8,
|
||||
0x11, 0x7c, 0x87, 0xac, 0xa3, 0x7b, 0x39, 0x68, 0xd2, 0x71, 0x97, 0xac, 0x20, 0x6c, 0x40, 0xf2,
|
||||
0x0b, 0x56, 0x44, 0xf6, 0xd0, 0xd6, 0xe5, 0xdc, 0x93, 0x80, 0x39, 0x4f, 0xcd, 0x95, 0x26, 0x5d,
|
||||
0x46, 0x20, 0x9e, 0xaf, 0x76, 0x53, 0xc6, 0x54, 0x2c, 0x2d, 0x5e, 0x20, 0xfb, 0x68, 0xe7, 0xaa,
|
||||
0x3b, 0x8a, 0x5b, 0x81, 0x60, 0xce, 0xcf, 0x05, 0x2f, 0x92, 0x5d, 0xb4, 0x99, 0xcf, 0x83, 0x29,
|
||||
0x0e, 0x8e, 0xf2, 0x1e, 0x68, 0x2b, 0x0c, 0x84, 0x20, 0x2d, 0x5e, 0x22, 0x0d, 0xb4, 0x1b, 0xc5,
|
||||
0xa6, 0xe3, 0xa4, 0xb2, 0xe2, 0x48, 0xb0, 0x34, 0x85, 0x86, 0xb6, 0x30, 0x56, 0xa7, 0x94, 0x63,
|
||||
0xcf, 0xd0, 0xff, 0x63, 0x9c, 0x06, 0x13, 0x29, 0x69, 0x00, 0x2f, 0x93, 0x2d, 0xb4, 0x7e, 0x15,
|
||||
0xfc, 0x26, 0x06, 0xdd, 0xc7, 0x84, 0x3c, 0x40, 0xf5, 0x6b, 0x9c, 0x65, 0x8a, 0x7b, 0xbe, 0xeb,
|
||||
0xaa, 0x7a, 0x09, 0x7f, 0x78, 0xc5, 0xb7, 0x54, 0xe5, 0xce, 0xc2, 0x57, 0xbd, 0x04, 0x21, 0x54,
|
||||
0xaf, 0x85, 0xd3, 0x90, 0xf1, 0xbc, 0x46, 0x36, 0xd0, 0x6a, 0x5b, 0xab, 0x38, 0x4a, 0x68, 0x71,
|
||||
0x42, 0xf6, 0x84, 0x4d, 0xbb, 0x5b, 0x27, 0xcb, 0x68, 0x21, 0x35, 0x72, 0x90, 0x56, 0xd8, 0x3e,
|
||||
0xae, 0x79, 0x34, 0x53, 0x61, 0x18, 0x4b, 0x61, 0xfb, 0x8e, 0x83, 0x61, 0x5a, 0x44, 0x09, 0x7a,
|
||||
0x83, 0xd4, 0xd0, 0x4a, 0xe9, 0x9a, 0xc8, 0xb3, 0xe9, 0x5f, 0x5d, 0x7a, 0x8a, 0x69, 0x2b, 0xf7,
|
||||
0x5a, 0x09, 0x89, 0xb7, 0xc8, 0x12, 0x9a, 0x8b, 0x84, 0x2c, 0x64, 0xbf, 0xed, 0x77, 0x07, 0xb8,
|
||||
0x28, 0x77, 0x67, 0xc7, 0xbf, 0xc4, 0x58, 0x6a, 0x63, 0x93, 0xaf, 0xce, 0xae, 0xef, 0x85, 0x43,
|
||||
0x00, 0x13, 0xfb, 0xb2, 0xe7, 0x45, 0x55, 0xa5, 0x99, 0xac, 0x34, 0xae, 0x93, 0x4d, 0xb4, 0x46,
|
||||
0xa5, 0x92, 0xfd, 0x50, 0xc5, 0xc6, 0x85, 0x60, 0xb5, 0x60, 0xae, 0x45, 0x2d, 0xeb, 0xe0, 0xfd,
|
||||
0x62, 0xab, 0x92, 0x96, 0x35, 0x84, 0xaa, 0x07, 0x1c, 0x37, 0xfc, 0xd4, 0x4a, 0x73, 0x56, 0xca,
|
||||
0x78, 0x02, 0x39, 0xbe, 0x4f, 0x10, 0x9a, 0x69, 0x51, 0xd6, 0x8d, 0x23, 0xfc, 0xa0, 0x50, 0xa4,
|
||||
0x67, 0xb6, 0xe7, 0x3b, 0x65, 0x20, 0x2d, 0xe8, 0x14, 0xfa, 0xb0, 0x50, 0xe4, 0x65, 0x77, 0xba,
|
||||
0x8d, 0xc0, 0xf1, 0x81, 0x57, 0x5c, 0x25, 0x84, 0x0b, 0x13, 0x0a, 0x63, 0x80, 0xe3, 0x47, 0x09,
|
||||
0x13, 0x1e, 0xd3, 0x52, 0xaa, 0x1b, 0x52, 0xdd, 0xc5, 0x87, 0x64, 0x0d, 0x91, 0xf4, 0x85, 0x01,
|
||||
0x50, 0xed, 0x3a, 0xc2, 0x58, 0xa5, 0xfb, 0xf8, 0xb1, 0xa7, 0x31, 0xb1, 0x1b, 0xb0, 0x56, 0xc8,
|
||||
0x36, 0x7e, 0x42, 0xea, 0x68, 0xbb, 0x1c, 0x04, 0xd5, 0xac, 0x23, 0x7a, 0xe0, 0x42, 0xda, 0x96,
|
||||
0x60, 0x03, 0x21, 0xbb, 0xf8, 0xa9, 0x1f, 0x62, 0x12, 0x13, 0x69, 0x75, 0x24, 0x02, 0x70, 0x91,
|
||||
0x60, 0x36, 0xd6, 0x80, 0xbf, 0x2a, 0xb2, 0xe5, 0x3b, 0xf6, 0x75, 0x42, 0x66, 0x7a, 0x4a, 0xf2,
|
||||
0x3d, 0xca, 0x95, 0xd8, 0xf4, 0xac, 0x69, 0xb0, 0x3a, 0x5d, 0xae, 0x8b, 0xce, 0x67, 0xe4, 0x00,
|
||||
0x35, 0xae, 0xd5, 0x43, 0x29, 0xd7, 0x6f, 0x4a, 0xea, 0x0b, 0x70, 0xd6, 0x8a, 0xc1, 0xdf, 0xfa,
|
||||
0x5e, 0xf2, 0xd0, 0xbc, 0x42, 0x0f, 0x74, 0x21, 0x7b, 0xfc, 0xdc, 0xab, 0xe1, 0xd2, 0xfb, 0x2e,
|
||||
0x00, 0x5e, 0xf8, 0x14, 0xf9, 0x0d, 0xaa, 0x44, 0x7c, 0x57, 0x68, 0xc2, 0xea, 0xd8, 0x58, 0xe0,
|
||||
0x2e, 0x36, 0xa0, 0xf1, 0xf7, 0xc5, 0xa8, 0x27, 0xd1, 0x45, 0x7f, 0x3f, 0x14, 0xa3, 0xbe, 0xd4,
|
||||
0xb9, 0xe3, 0xc0, 0x84, 0xf1, 0x89, 0x7f, 0x4c, 0x8f, 0x4f, 0x05, 0x05, 0x01, 0xd0, 0x1e, 0xe0,
|
||||
0x9f, 0xbc, 0x3f, 0x49, 0x91, 0x49, 0xdc, 0x9f, 0xdb, 0xb0, 0x54, 0xfa, 0xcf, 0xc5, 0xcc, 0x0d,
|
||||
0xed, 0x01, 0xcf, 0xaf, 0x32, 0x7e, 0xe9, 0xcf, 0x48, 0x99, 0x97, 0x51, 0xc9, 0x20, 0xb8, 0xb2,
|
||||
0x71, 0xbf, 0x78, 0x66, 0x32, 0x5f, 0x65, 0xdf, 0xaf, 0x8a, 0x61, 0x77, 0xa1, 0xef, 0x3f, 0x40,
|
||||
0xf8, 0x57, 0x7f, 0xde, 0x73, 0x0b, 0xa3, 0x9a, 0xbb, 0xec, 0x7e, 0xfc, 0x56, 0x50, 0x64, 0x14,
|
||||
0x13, 0x34, 0x70, 0x5e, 0x47, 0x06, 0xff, 0x4e, 0xb6, 0x51, 0x2d, 0x31, 0x83, 0x34, 0x09, 0x6b,
|
||||
0x92, 0x86, 0xe0, 0x38, 0x58, 0x2a, 0x02, 0x4c, 0x8b, 0xa0, 0xa3, 0x38, 0x08, 0x8a, 0x22, 0x2d,
|
||||
0xf2, 0x10, 0xed, 0x57, 0x2e, 0xc0, 0xe4, 0x3d, 0xc3, 0xcc, 0x5f, 0xdd, 0x1b, 0x61, 0xce, 0xdf,
|
||||
0x0b, 0xc0, 0xbc, 0xb5, 0xf0, 0xe7, 0x5c, 0xf3, 0xd9, 0xcb, 0xfc, 0x9b, 0xfe, 0x76, 0x26, 0xf9,
|
||||
0xef, 0xc5, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x53, 0x02, 0xd0, 0x7a, 0x08, 0x00, 0x00,
|
||||
}
|
||||
|
|
|
@ -79,5 +79,7 @@ message ApplicationMetadataMessage {
|
|||
SYNC_SOCIAL_LINKS = 64;
|
||||
SYNC_ENS_USERNAME_DETAIL = 65;
|
||||
SYNC_FULL_KEYPAIR = 66;
|
||||
SYNC_ACTIVITY_CENTER_NOTIFICATION = 67;
|
||||
SYNC_ACTIVITY_CENTER_NOTIFICATION_STATE = 68;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,129 @@ var _ = math.Inf
|
|||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type SyncActivityCenterNotification_NotificationType int32
|
||||
|
||||
const (
|
||||
SyncActivityCenterNotification_NoType SyncActivityCenterNotification_NotificationType = 0
|
||||
SyncActivityCenterNotification_NewOneToOne SyncActivityCenterNotification_NotificationType = 1
|
||||
SyncActivityCenterNotification_NewPrivateGroupChat SyncActivityCenterNotification_NotificationType = 2
|
||||
SyncActivityCenterNotification_Mention SyncActivityCenterNotification_NotificationType = 3
|
||||
SyncActivityCenterNotification_Reply SyncActivityCenterNotification_NotificationType = 4
|
||||
SyncActivityCenterNotification_ContactRequest SyncActivityCenterNotification_NotificationType = 5
|
||||
SyncActivityCenterNotification_CommunityInvitation SyncActivityCenterNotification_NotificationType = 6
|
||||
SyncActivityCenterNotification_CommunityRequest SyncActivityCenterNotification_NotificationType = 7
|
||||
SyncActivityCenterNotification_CommunityMembershipRequest SyncActivityCenterNotification_NotificationType = 8
|
||||
SyncActivityCenterNotification_CommunityKicked SyncActivityCenterNotification_NotificationType = 9
|
||||
SyncActivityCenterNotification_ContactVerification SyncActivityCenterNotification_NotificationType = 10
|
||||
)
|
||||
|
||||
var SyncActivityCenterNotification_NotificationType_name = map[int32]string{
|
||||
0: "NoType",
|
||||
1: "NewOneToOne",
|
||||
2: "NewPrivateGroupChat",
|
||||
3: "Mention",
|
||||
4: "Reply",
|
||||
5: "ContactRequest",
|
||||
6: "CommunityInvitation",
|
||||
7: "CommunityRequest",
|
||||
8: "CommunityMembershipRequest",
|
||||
9: "CommunityKicked",
|
||||
10: "ContactVerification",
|
||||
}
|
||||
|
||||
var SyncActivityCenterNotification_NotificationType_value = map[string]int32{
|
||||
"NoType": 0,
|
||||
"NewOneToOne": 1,
|
||||
"NewPrivateGroupChat": 2,
|
||||
"Mention": 3,
|
||||
"Reply": 4,
|
||||
"ContactRequest": 5,
|
||||
"CommunityInvitation": 6,
|
||||
"CommunityRequest": 7,
|
||||
"CommunityMembershipRequest": 8,
|
||||
"CommunityKicked": 9,
|
||||
"ContactVerification": 10,
|
||||
}
|
||||
|
||||
func (x SyncActivityCenterNotification_NotificationType) String() string {
|
||||
return proto.EnumName(SyncActivityCenterNotification_NotificationType_name, int32(x))
|
||||
}
|
||||
|
||||
func (SyncActivityCenterNotification_NotificationType) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{20, 0}
|
||||
}
|
||||
|
||||
type SyncActivityCenterNotification_MembershipStatus int32
|
||||
|
||||
const (
|
||||
SyncActivityCenterNotification_MembershipStatusIdle SyncActivityCenterNotification_MembershipStatus = 0
|
||||
SyncActivityCenterNotification_MembershipStatusPending SyncActivityCenterNotification_MembershipStatus = 1
|
||||
SyncActivityCenterNotification_MembershipStatusAccepted SyncActivityCenterNotification_MembershipStatus = 2
|
||||
SyncActivityCenterNotification_MembershipStatusDeclined SyncActivityCenterNotification_MembershipStatus = 3
|
||||
)
|
||||
|
||||
var SyncActivityCenterNotification_MembershipStatus_name = map[int32]string{
|
||||
0: "MembershipStatusIdle",
|
||||
1: "MembershipStatusPending",
|
||||
2: "MembershipStatusAccepted",
|
||||
3: "MembershipStatusDeclined",
|
||||
}
|
||||
|
||||
var SyncActivityCenterNotification_MembershipStatus_value = map[string]int32{
|
||||
"MembershipStatusIdle": 0,
|
||||
"MembershipStatusPending": 1,
|
||||
"MembershipStatusAccepted": 2,
|
||||
"MembershipStatusDeclined": 3,
|
||||
}
|
||||
|
||||
func (x SyncActivityCenterNotification_MembershipStatus) String() string {
|
||||
return proto.EnumName(SyncActivityCenterNotification_MembershipStatus_name, int32(x))
|
||||
}
|
||||
|
||||
func (SyncActivityCenterNotification_MembershipStatus) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{20, 1}
|
||||
}
|
||||
|
||||
type SyncActivityCenterNotification_ContactVerificationStatus int32
|
||||
|
||||
const (
|
||||
SyncActivityCenterNotification_Unknown SyncActivityCenterNotification_ContactVerificationStatus = 0
|
||||
SyncActivityCenterNotification_Pending SyncActivityCenterNotification_ContactVerificationStatus = 1
|
||||
SyncActivityCenterNotification_Accepted SyncActivityCenterNotification_ContactVerificationStatus = 2
|
||||
SyncActivityCenterNotification_Declined SyncActivityCenterNotification_ContactVerificationStatus = 3
|
||||
SyncActivityCenterNotification_Cancelled SyncActivityCenterNotification_ContactVerificationStatus = 4
|
||||
SyncActivityCenterNotification_Trusted SyncActivityCenterNotification_ContactVerificationStatus = 5
|
||||
SyncActivityCenterNotification_UnTrustWorthy SyncActivityCenterNotification_ContactVerificationStatus = 6
|
||||
)
|
||||
|
||||
var SyncActivityCenterNotification_ContactVerificationStatus_name = map[int32]string{
|
||||
0: "Unknown",
|
||||
1: "Pending",
|
||||
2: "Accepted",
|
||||
3: "Declined",
|
||||
4: "Cancelled",
|
||||
5: "Trusted",
|
||||
6: "UnTrustWorthy",
|
||||
}
|
||||
|
||||
var SyncActivityCenterNotification_ContactVerificationStatus_value = map[string]int32{
|
||||
"Unknown": 0,
|
||||
"Pending": 1,
|
||||
"Accepted": 2,
|
||||
"Declined": 3,
|
||||
"Cancelled": 4,
|
||||
"Trusted": 5,
|
||||
"UnTrustWorthy": 6,
|
||||
}
|
||||
|
||||
func (x SyncActivityCenterNotification_ContactVerificationStatus) String() string {
|
||||
return proto.EnumName(SyncActivityCenterNotification_ContactVerificationStatus_name, int32(x))
|
||||
}
|
||||
|
||||
func (SyncActivityCenterNotification_ContactVerificationStatus) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{20, 2}
|
||||
}
|
||||
|
||||
type SyncTrustedUser_TrustStatus int32
|
||||
|
||||
const (
|
||||
|
@ -45,7 +168,7 @@ func (x SyncTrustedUser_TrustStatus) String() string {
|
|||
}
|
||||
|
||||
func (SyncTrustedUser_TrustStatus) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{28, 0}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{31, 0}
|
||||
}
|
||||
|
||||
type SyncVerificationRequest_VerificationStatus int32
|
||||
|
@ -79,7 +202,7 @@ func (x SyncVerificationRequest_VerificationStatus) String() string {
|
|||
}
|
||||
|
||||
func (SyncVerificationRequest_VerificationStatus) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{29, 0}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{32, 0}
|
||||
}
|
||||
|
||||
type SyncContactRequestDecision_DecisionStatus int32
|
||||
|
@ -104,7 +227,7 @@ func (x SyncContactRequestDecision_DecisionStatus) String() string {
|
|||
}
|
||||
|
||||
func (SyncContactRequestDecision_DecisionStatus) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{30, 0}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{33, 0}
|
||||
}
|
||||
|
||||
type SyncKeycardAction_Action int32
|
||||
|
@ -147,7 +270,7 @@ func (x SyncKeycardAction_Action) String() string {
|
|||
}
|
||||
|
||||
func (SyncKeycardAction_Action) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{35, 0}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{38, 0}
|
||||
}
|
||||
|
||||
// `FetchingBackedUpDataDetails` is used to describe how many messages a single backup data structure consists of
|
||||
|
@ -1717,6 +1840,243 @@ func (m *SyncActivityCenterDismissed) GetIds() [][]byte {
|
|||
return nil
|
||||
}
|
||||
|
||||
type SyncActivityCenterNotificationState struct {
|
||||
UpdatedAt uint64 `protobuf:"varint,1,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
|
||||
HasSeen bool `protobuf:"varint,2,opt,name=has_seen,json=hasSeen,proto3" json:"has_seen,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotificationState) Reset() { *m = SyncActivityCenterNotificationState{} }
|
||||
func (m *SyncActivityCenterNotificationState) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncActivityCenterNotificationState) ProtoMessage() {}
|
||||
func (*SyncActivityCenterNotificationState) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{18}
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotificationState) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SyncActivityCenterNotificationState.Unmarshal(m, b)
|
||||
}
|
||||
func (m *SyncActivityCenterNotificationState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_SyncActivityCenterNotificationState.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *SyncActivityCenterNotificationState) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SyncActivityCenterNotificationState.Merge(m, src)
|
||||
}
|
||||
func (m *SyncActivityCenterNotificationState) XXX_Size() int {
|
||||
return xxx_messageInfo_SyncActivityCenterNotificationState.Size(m)
|
||||
}
|
||||
func (m *SyncActivityCenterNotificationState) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_SyncActivityCenterNotificationState.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_SyncActivityCenterNotificationState proto.InternalMessageInfo
|
||||
|
||||
func (m *SyncActivityCenterNotificationState) GetUpdatedAt() uint64 {
|
||||
if m != nil {
|
||||
return m.UpdatedAt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotificationState) GetHasSeen() bool {
|
||||
if m != nil {
|
||||
return m.HasSeen
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type SyncActivityCenterNotifications struct {
|
||||
ActivityCenterNotifications []*SyncActivityCenterNotification `protobuf:"bytes,1,rep,name=activity_center_notifications,json=activityCenterNotifications,proto3" json:"activity_center_notifications,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotifications) Reset() { *m = SyncActivityCenterNotifications{} }
|
||||
func (m *SyncActivityCenterNotifications) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncActivityCenterNotifications) ProtoMessage() {}
|
||||
func (*SyncActivityCenterNotifications) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{19}
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotifications) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SyncActivityCenterNotifications.Unmarshal(m, b)
|
||||
}
|
||||
func (m *SyncActivityCenterNotifications) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_SyncActivityCenterNotifications.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *SyncActivityCenterNotifications) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SyncActivityCenterNotifications.Merge(m, src)
|
||||
}
|
||||
func (m *SyncActivityCenterNotifications) XXX_Size() int {
|
||||
return xxx_messageInfo_SyncActivityCenterNotifications.Size(m)
|
||||
}
|
||||
func (m *SyncActivityCenterNotifications) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_SyncActivityCenterNotifications.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_SyncActivityCenterNotifications proto.InternalMessageInfo
|
||||
|
||||
func (m *SyncActivityCenterNotifications) GetActivityCenterNotifications() []*SyncActivityCenterNotification {
|
||||
if m != nil {
|
||||
return m.ActivityCenterNotifications
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type SyncActivityCenterNotification struct {
|
||||
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
||||
NotificationType SyncActivityCenterNotification_NotificationType `protobuf:"varint,3,opt,name=notification_type,json=notificationType,proto3,enum=protobuf.SyncActivityCenterNotification_NotificationType" json:"notification_type,omitempty"`
|
||||
ChatId string `protobuf:"bytes,4,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
|
||||
Read bool `protobuf:"varint,5,opt,name=read,proto3" json:"read,omitempty"`
|
||||
Dismissed bool `protobuf:"varint,6,opt,name=dismissed,proto3" json:"dismissed,omitempty"`
|
||||
Accepted bool `protobuf:"varint,7,opt,name=accepted,proto3" json:"accepted,omitempty"`
|
||||
Message []byte `protobuf:"bytes,8,opt,name=message,proto3" json:"message,omitempty"`
|
||||
Author string `protobuf:"bytes,9,opt,name=author,proto3" json:"author,omitempty"`
|
||||
ReplyMessage []byte `protobuf:"bytes,10,opt,name=reply_message,json=replyMessage,proto3" json:"reply_message,omitempty"`
|
||||
CommunityId string `protobuf:"bytes,11,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"`
|
||||
MembershipStatus SyncActivityCenterNotification_MembershipStatus `protobuf:"varint,12,opt,name=membership_status,json=membershipStatus,proto3,enum=protobuf.SyncActivityCenterNotification_MembershipStatus" json:"membership_status,omitempty"`
|
||||
ContactVerificationStatus SyncActivityCenterNotification_ContactVerificationStatus `protobuf:"varint,13,opt,name=contact_verification_status,json=contactVerificationStatus,proto3,enum=protobuf.SyncActivityCenterNotification_ContactVerificationStatus" json:"contact_verification_status,omitempty"`
|
||||
Deleted bool `protobuf:"varint,14,opt,name=deleted,proto3" json:"deleted,omitempty"`
|
||||
UpdatedAt uint64 `protobuf:"varint,15,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) Reset() { *m = SyncActivityCenterNotification{} }
|
||||
func (m *SyncActivityCenterNotification) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncActivityCenterNotification) ProtoMessage() {}
|
||||
func (*SyncActivityCenterNotification) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{20}
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SyncActivityCenterNotification.Unmarshal(m, b)
|
||||
}
|
||||
func (m *SyncActivityCenterNotification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_SyncActivityCenterNotification.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *SyncActivityCenterNotification) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SyncActivityCenterNotification.Merge(m, src)
|
||||
}
|
||||
func (m *SyncActivityCenterNotification) XXX_Size() int {
|
||||
return xxx_messageInfo_SyncActivityCenterNotification.Size(m)
|
||||
}
|
||||
func (m *SyncActivityCenterNotification) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_SyncActivityCenterNotification.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_SyncActivityCenterNotification proto.InternalMessageInfo
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetId() []byte {
|
||||
if m != nil {
|
||||
return m.Id
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetTimestamp() uint64 {
|
||||
if m != nil {
|
||||
return m.Timestamp
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetNotificationType() SyncActivityCenterNotification_NotificationType {
|
||||
if m != nil {
|
||||
return m.NotificationType
|
||||
}
|
||||
return SyncActivityCenterNotification_NoType
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetChatId() string {
|
||||
if m != nil {
|
||||
return m.ChatId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetRead() bool {
|
||||
if m != nil {
|
||||
return m.Read
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetDismissed() bool {
|
||||
if m != nil {
|
||||
return m.Dismissed
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetAccepted() bool {
|
||||
if m != nil {
|
||||
return m.Accepted
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetMessage() []byte {
|
||||
if m != nil {
|
||||
return m.Message
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetAuthor() string {
|
||||
if m != nil {
|
||||
return m.Author
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetReplyMessage() []byte {
|
||||
if m != nil {
|
||||
return m.ReplyMessage
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetCommunityId() string {
|
||||
if m != nil {
|
||||
return m.CommunityId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetMembershipStatus() SyncActivityCenterNotification_MembershipStatus {
|
||||
if m != nil {
|
||||
return m.MembershipStatus
|
||||
}
|
||||
return SyncActivityCenterNotification_MembershipStatusIdle
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetContactVerificationStatus() SyncActivityCenterNotification_ContactVerificationStatus {
|
||||
if m != nil {
|
||||
return m.ContactVerificationStatus
|
||||
}
|
||||
return SyncActivityCenterNotification_Unknown
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetDeleted() bool {
|
||||
if m != nil {
|
||||
return m.Deleted
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *SyncActivityCenterNotification) GetUpdatedAt() uint64 {
|
||||
if m != nil {
|
||||
return m.UpdatedAt
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type SyncBookmark struct {
|
||||
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
|
||||
Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
|
||||
|
@ -1733,7 +2093,7 @@ func (m *SyncBookmark) Reset() { *m = SyncBookmark{} }
|
|||
func (m *SyncBookmark) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncBookmark) ProtoMessage() {}
|
||||
func (*SyncBookmark) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{18}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{21}
|
||||
}
|
||||
|
||||
func (m *SyncBookmark) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -1810,7 +2170,7 @@ func (m *SyncEnsUsernameDetail) Reset() { *m = SyncEnsUsernameDetail{} }
|
|||
func (m *SyncEnsUsernameDetail) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncEnsUsernameDetail) ProtoMessage() {}
|
||||
func (*SyncEnsUsernameDetail) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{19}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{22}
|
||||
}
|
||||
|
||||
func (m *SyncEnsUsernameDetail) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -1871,7 +2231,7 @@ func (m *SyncClearHistory) Reset() { *m = SyncClearHistory{} }
|
|||
func (m *SyncClearHistory) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncClearHistory) ProtoMessage() {}
|
||||
func (*SyncClearHistory) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{20}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{23}
|
||||
}
|
||||
|
||||
func (m *SyncClearHistory) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -1923,7 +2283,7 @@ func (m *SyncProfilePicture) Reset() { *m = SyncProfilePicture{} }
|
|||
func (m *SyncProfilePicture) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncProfilePicture) ProtoMessage() {}
|
||||
func (*SyncProfilePicture) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{21}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{24}
|
||||
}
|
||||
|
||||
func (m *SyncProfilePicture) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2005,7 +2365,7 @@ func (m *SyncProfilePictures) Reset() { *m = SyncProfilePictures{} }
|
|||
func (m *SyncProfilePictures) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncProfilePictures) ProtoMessage() {}
|
||||
func (*SyncProfilePictures) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{22}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{25}
|
||||
}
|
||||
|
||||
func (m *SyncProfilePictures) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2062,7 +2422,7 @@ func (m *SyncAccount) Reset() { *m = SyncAccount{} }
|
|||
func (m *SyncAccount) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncAccount) ProtoMessage() {}
|
||||
func (*SyncAccount) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{23}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{26}
|
||||
}
|
||||
|
||||
func (m *SyncAccount) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2185,7 +2545,7 @@ func (m *SyncKeypair) Reset() { *m = SyncKeypair{} }
|
|||
func (m *SyncKeypair) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncKeypair) ProtoMessage() {}
|
||||
func (*SyncKeypair) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{24}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{27}
|
||||
}
|
||||
|
||||
func (m *SyncKeypair) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2274,7 +2634,7 @@ func (m *SyncKeypairFull) Reset() { *m = SyncKeypairFull{} }
|
|||
func (m *SyncKeypairFull) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncKeypairFull) ProtoMessage() {}
|
||||
func (*SyncKeypairFull) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{25}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{28}
|
||||
}
|
||||
|
||||
func (m *SyncKeypairFull) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2327,7 +2687,7 @@ func (m *SyncSavedAddress) Reset() { *m = SyncSavedAddress{} }
|
|||
func (m *SyncSavedAddress) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncSavedAddress) ProtoMessage() {}
|
||||
func (*SyncSavedAddress) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{26}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{29}
|
||||
}
|
||||
|
||||
func (m *SyncSavedAddress) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2417,7 +2777,7 @@ func (m *SyncCommunitySettings) Reset() { *m = SyncCommunitySettings{} }
|
|||
func (m *SyncCommunitySettings) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncCommunitySettings) ProtoMessage() {}
|
||||
func (*SyncCommunitySettings) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{27}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{30}
|
||||
}
|
||||
|
||||
func (m *SyncCommunitySettings) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2472,7 +2832,7 @@ func (m *SyncTrustedUser) Reset() { *m = SyncTrustedUser{} }
|
|||
func (m *SyncTrustedUser) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncTrustedUser) ProtoMessage() {}
|
||||
func (*SyncTrustedUser) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{28}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{31}
|
||||
}
|
||||
|
||||
func (m *SyncTrustedUser) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2533,7 +2893,7 @@ func (m *SyncVerificationRequest) Reset() { *m = SyncVerificationRequest
|
|||
func (m *SyncVerificationRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncVerificationRequest) ProtoMessage() {}
|
||||
func (*SyncVerificationRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{29}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{32}
|
||||
}
|
||||
|
||||
func (m *SyncVerificationRequest) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2630,7 +2990,7 @@ func (m *SyncContactRequestDecision) Reset() { *m = SyncContactRequestDe
|
|||
func (m *SyncContactRequestDecision) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncContactRequestDecision) ProtoMessage() {}
|
||||
func (*SyncContactRequestDecision) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{30}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{33}
|
||||
}
|
||||
|
||||
func (m *SyncContactRequestDecision) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2689,7 +3049,7 @@ func (m *BackedUpProfile) Reset() { *m = BackedUpProfile{} }
|
|||
func (m *BackedUpProfile) String() string { return proto.CompactTextString(m) }
|
||||
func (*BackedUpProfile) ProtoMessage() {}
|
||||
func (*BackedUpProfile) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{31}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{34}
|
||||
}
|
||||
|
||||
func (m *BackedUpProfile) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2764,7 +3124,7 @@ func (m *RawMessage) Reset() { *m = RawMessage{} }
|
|||
func (m *RawMessage) String() string { return proto.CompactTextString(m) }
|
||||
func (*RawMessage) ProtoMessage() {}
|
||||
func (*RawMessage) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{32}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{35}
|
||||
}
|
||||
|
||||
func (m *RawMessage) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2813,7 +3173,7 @@ func (m *SyncRawMessage) Reset() { *m = SyncRawMessage{} }
|
|||
func (m *SyncRawMessage) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncRawMessage) ProtoMessage() {}
|
||||
func (*SyncRawMessage) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{33}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{36}
|
||||
}
|
||||
|
||||
func (m *SyncRawMessage) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2871,7 +3231,7 @@ func (m *SyncKeycard) Reset() { *m = SyncKeycard{} }
|
|||
func (m *SyncKeycard) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncKeycard) ProtoMessage() {}
|
||||
func (*SyncKeycard) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{34}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{37}
|
||||
}
|
||||
|
||||
func (m *SyncKeycard) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -2947,7 +3307,7 @@ func (m *SyncKeycardAction) Reset() { *m = SyncKeycardAction{} }
|
|||
func (m *SyncKeycardAction) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncKeycardAction) ProtoMessage() {}
|
||||
func (*SyncKeycardAction) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{35}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{38}
|
||||
}
|
||||
|
||||
func (m *SyncKeycardAction) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -3001,7 +3361,7 @@ func (m *SyncSocialLinks) Reset() { *m = SyncSocialLinks{} }
|
|||
func (m *SyncSocialLinks) String() string { return proto.CompactTextString(m) }
|
||||
func (*SyncSocialLinks) ProtoMessage() {}
|
||||
func (*SyncSocialLinks) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{36}
|
||||
return fileDescriptor_d61ab7221f0b5518, []int{39}
|
||||
}
|
||||
|
||||
func (m *SyncSocialLinks) XXX_Unmarshal(b []byte) error {
|
||||
|
@ -3037,6 +3397,9 @@ func (m *SyncSocialLinks) GetClock() uint64 {
|
|||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("protobuf.SyncActivityCenterNotification_NotificationType", SyncActivityCenterNotification_NotificationType_name, SyncActivityCenterNotification_NotificationType_value)
|
||||
proto.RegisterEnum("protobuf.SyncActivityCenterNotification_MembershipStatus", SyncActivityCenterNotification_MembershipStatus_name, SyncActivityCenterNotification_MembershipStatus_value)
|
||||
proto.RegisterEnum("protobuf.SyncActivityCenterNotification_ContactVerificationStatus", SyncActivityCenterNotification_ContactVerificationStatus_name, SyncActivityCenterNotification_ContactVerificationStatus_value)
|
||||
proto.RegisterEnum("protobuf.SyncTrustedUser_TrustStatus", SyncTrustedUser_TrustStatus_name, SyncTrustedUser_TrustStatus_value)
|
||||
proto.RegisterEnum("protobuf.SyncVerificationRequest_VerificationStatus", SyncVerificationRequest_VerificationStatus_name, SyncVerificationRequest_VerificationStatus_value)
|
||||
proto.RegisterEnum("protobuf.SyncContactRequestDecision_DecisionStatus", SyncContactRequestDecision_DecisionStatus_name, SyncContactRequestDecision_DecisionStatus_value)
|
||||
|
@ -3063,6 +3426,9 @@ func init() {
|
|||
proto.RegisterType((*SyncActivityCenterRead)(nil), "protobuf.SyncActivityCenterRead")
|
||||
proto.RegisterType((*SyncActivityCenterAccepted)(nil), "protobuf.SyncActivityCenterAccepted")
|
||||
proto.RegisterType((*SyncActivityCenterDismissed)(nil), "protobuf.SyncActivityCenterDismissed")
|
||||
proto.RegisterType((*SyncActivityCenterNotificationState)(nil), "protobuf.SyncActivityCenterNotificationState")
|
||||
proto.RegisterType((*SyncActivityCenterNotifications)(nil), "protobuf.SyncActivityCenterNotifications")
|
||||
proto.RegisterType((*SyncActivityCenterNotification)(nil), "protobuf.SyncActivityCenterNotification")
|
||||
proto.RegisterType((*SyncBookmark)(nil), "protobuf.SyncBookmark")
|
||||
proto.RegisterType((*SyncEnsUsernameDetail)(nil), "protobuf.SyncEnsUsernameDetail")
|
||||
proto.RegisterType((*SyncClearHistory)(nil), "protobuf.SyncClearHistory")
|
||||
|
@ -3089,197 +3455,226 @@ func init() {
|
|||
}
|
||||
|
||||
var fileDescriptor_d61ab7221f0b5518 = []byte{
|
||||
// 3057 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x39, 0x4d, 0x73, 0x1b, 0xc7,
|
||||
0xb1, 0xc6, 0x07, 0xf1, 0xd1, 0x00, 0x41, 0x68, 0x44, 0x4b, 0x10, 0x25, 0x97, 0xa4, 0xb5, 0x5d,
|
||||
0xd6, 0x7b, 0xe5, 0x47, 0xbd, 0x27, 0xbf, 0xc4, 0x8e, 0x24, 0x97, 0x03, 0x01, 0xb0, 0x45, 0x51,
|
||||
0x02, 0x99, 0x21, 0x21, 0xc7, 0xa9, 0x54, 0x6d, 0x46, 0xbb, 0x23, 0x62, 0xcd, 0xc5, 0x2e, 0xb2,
|
||||
0x33, 0xa0, 0x02, 0x1f, 0x52, 0x95, 0xfc, 0x82, 0x54, 0x2e, 0xf1, 0xd1, 0xe7, 0x54, 0x4e, 0xa9,
|
||||
0xca, 0x21, 0xb7, 0x9c, 0x52, 0xb9, 0xe7, 0x98, 0xfc, 0x82, 0x54, 0x7e, 0x40, 0x8e, 0xa9, 0xe9,
|
||||
0x99, 0xfd, 0xc2, 0x87, 0x42, 0x56, 0x4e, 0x39, 0x61, 0xbb, 0xa7, 0xbb, 0xb7, 0xb7, 0xbf, 0x7b,
|
||||
0x00, 0x9b, 0x53, 0xe6, 0x45, 0x5e, 0x70, 0xb2, 0x3b, 0x8d, 0x42, 0x19, 0x92, 0x1a, 0xfe, 0xbc,
|
||||
0x98, 0xbd, 0xdc, 0xb9, 0xec, 0x8c, 0x99, 0xb4, 0x3d, 0x97, 0x07, 0xd2, 0x93, 0x73, 0x7d, 0xbc,
|
||||
0x73, 0x59, 0xcc, 0x03, 0xc7, 0x16, 0x5c, 0x4a, 0x2f, 0x38, 0x11, 0x06, 0x69, 0xb1, 0xe9, 0xd4,
|
||||
0xf7, 0x1c, 0x26, 0xbd, 0x30, 0xb0, 0x27, 0x5c, 0x32, 0x97, 0x49, 0x66, 0x4f, 0xb8, 0x10, 0xec,
|
||||
0x84, 0x6b, 0x1a, 0x8b, 0xc1, 0xf5, 0x4f, 0xb9, 0x74, 0xc6, 0x5e, 0x70, 0xf2, 0x88, 0x39, 0xa7,
|
||||
0xdc, 0x1d, 0x4d, 0xfb, 0x4c, 0xb2, 0x3e, 0x97, 0xcc, 0xf3, 0x05, 0xb9, 0x09, 0x0d, 0x64, 0x0a,
|
||||
0x66, 0x93, 0x17, 0x3c, 0xea, 0x14, 0x6e, 0x15, 0xee, 0x6c, 0x52, 0x50, 0xa8, 0x21, 0x62, 0xc8,
|
||||
0x6d, 0x68, 0xca, 0x50, 0x32, 0x3f, 0xa6, 0x28, 0x22, 0x45, 0x03, 0x71, 0x9a, 0xc4, 0xfa, 0x45,
|
||||
0x15, 0x2a, 0x4a, 0xf6, 0x6c, 0x4a, 0xb6, 0x61, 0xc3, 0xf1, 0x43, 0xe7, 0x14, 0x05, 0x95, 0xa9,
|
||||
0x06, 0x48, 0x0b, 0x8a, 0x9e, 0x8b, 0x9c, 0x75, 0x5a, 0xf4, 0x5c, 0xf2, 0x09, 0xd4, 0x9c, 0x30,
|
||||
0x90, 0xcc, 0x91, 0xa2, 0x53, 0xba, 0x55, 0xba, 0xd3, 0xb8, 0xf7, 0xf6, 0x6e, 0xfc, 0xf9, 0xbb,
|
||||
0x47, 0xf3, 0xc0, 0xd9, 0x0b, 0x84, 0x64, 0xbe, 0x8f, 0x1f, 0xd6, 0xd3, 0x94, 0xcf, 0xef, 0xd1,
|
||||
0x84, 0x89, 0x7c, 0x07, 0x1a, 0x4e, 0x38, 0x99, 0xcc, 0x02, 0x4f, 0x7a, 0x5c, 0x74, 0xca, 0x28,
|
||||
0xe3, 0x6a, 0x5e, 0x46, 0xcf, 0x10, 0xcc, 0x69, 0x96, 0x96, 0x1c, 0xc0, 0x56, 0x2c, 0xc6, 0xd8,
|
||||
0xa0, 0xb3, 0x71, 0xab, 0x70, 0xa7, 0x71, 0xef, 0xdd, 0x94, 0xfd, 0x35, 0x06, 0xa3, 0x8b, 0xdc,
|
||||
0x64, 0x04, 0x24, 0x23, 0x3f, 0x96, 0x59, 0xb9, 0x88, 0xcc, 0x15, 0x02, 0xc8, 0x07, 0x50, 0x9d,
|
||||
0x46, 0xe1, 0x4b, 0xcf, 0xe7, 0x9d, 0x2a, 0xca, 0xba, 0x96, 0xca, 0x8a, 0x65, 0x1c, 0x6a, 0x02,
|
||||
0x1a, 0x53, 0x92, 0x67, 0xd0, 0x32, 0x8f, 0xb1, 0x1e, 0xb5, 0x8b, 0xe8, 0xb1, 0xc0, 0x4c, 0xee,
|
||||
0x42, 0xd5, 0x44, 0x5c, 0xa7, 0x8e, 0x72, 0xde, 0xcc, 0x9b, 0xf8, 0x48, 0x1f, 0xd2, 0x98, 0x4a,
|
||||
0x19, 0x37, 0x0e, 0xd1, 0x58, 0x01, 0xb8, 0x90, 0x71, 0x17, 0xb8, 0xc9, 0x03, 0x68, 0xbc, 0x9c,
|
||||
0xf9, 0xfe, 0x3e, 0x9f, 0xab, 0x6c, 0xe9, 0x34, 0x16, 0x2d, 0xa1, 0xb4, 0x30, 0x87, 0x9f, 0xce,
|
||||
0x7c, 0x9f, 0x66, 0xa9, 0x95, 0x67, 0x32, 0x60, 0xac, 0x50, 0xf3, 0x42, 0x9e, 0x59, 0x16, 0x40,
|
||||
0xba, 0xd0, 0x7e, 0xc5, 0xa4, 0x33, 0x3e, 0x08, 0xfc, 0x79, 0xd7, 0x71, 0xc2, 0x59, 0x20, 0x3b,
|
||||
0x9b, 0xab, 0xcc, 0x63, 0x0e, 0xe9, 0x12, 0x39, 0xb1, 0xe1, 0xea, 0x22, 0x2e, 0x56, 0xaf, 0x75,
|
||||
0x11, 0xf5, 0xd6, 0x49, 0xb1, 0xfe, 0x5e, 0x86, 0xe6, 0xb3, 0x99, 0x2f, 0xbd, 0xf8, 0x8d, 0x04,
|
||||
0xca, 0x01, 0x9b, 0x70, 0xcc, 0xcb, 0x3a, 0xc5, 0x67, 0x72, 0x03, 0xea, 0xd2, 0x9b, 0x70, 0x21,
|
||||
0xd9, 0x64, 0x8a, 0xd9, 0x59, 0xa2, 0x29, 0x42, 0x9d, 0xea, 0x1a, 0xe4, 0x84, 0x41, 0xa7, 0x84,
|
||||
0x6c, 0x29, 0x82, 0x7c, 0x02, 0xe0, 0x84, 0x7e, 0x18, 0xd9, 0x63, 0x26, 0xc6, 0x26, 0x01, 0x6f,
|
||||
0xa5, 0x4a, 0x67, 0xdf, 0xbd, 0xdb, 0x53, 0x84, 0x8f, 0x99, 0x18, 0xd3, 0xba, 0x13, 0x3f, 0x92,
|
||||
0x6b, 0xaa, 0x06, 0x28, 0x01, 0x9e, 0x8b, 0x09, 0x58, 0xa2, 0x55, 0x84, 0xf7, 0x5c, 0xf2, 0x1e,
|
||||
0x6c, 0x9d, 0xf2, 0xb9, 0xc3, 0x22, 0xd7, 0x36, 0x35, 0x12, 0xd3, 0xa9, 0x4e, 0x5b, 0x06, 0x7d,
|
||||
0xa8, 0xb1, 0xe4, 0x2a, 0x54, 0x4f, 0xf9, 0xdc, 0x9e, 0x79, 0x2e, 0xe6, 0x48, 0x9d, 0x56, 0x4e,
|
||||
0xf9, 0x7c, 0xe4, 0xb9, 0xe4, 0x21, 0x54, 0xbc, 0x09, 0x3b, 0xe1, 0x2a, 0xfe, 0x95, 0x66, 0xef,
|
||||
0xac, 0xd1, 0x6c, 0xcf, 0x14, 0xd9, 0x3d, 0x45, 0x4c, 0x0d, 0x0f, 0xb9, 0x0b, 0x97, 0x9d, 0x99,
|
||||
0x90, 0xe1, 0xc4, 0xfb, 0x4a, 0x97, 0x56, 0x54, 0x0c, 0x53, 0xa0, 0x4e, 0x49, 0xee, 0x08, 0x3f,
|
||||
0x6d, 0xe7, 0x36, 0xd4, 0x93, 0x6f, 0x54, 0x25, 0xd0, 0x0b, 0x5c, 0xfe, 0x93, 0x4e, 0xe1, 0x56,
|
||||
0xe9, 0x4e, 0x89, 0x6a, 0x60, 0xe7, 0x2f, 0x05, 0xd8, 0xcc, 0xbd, 0x2d, 0xab, 0x7c, 0x21, 0xa7,
|
||||
0x7c, 0xec, 0xaa, 0x62, 0xc6, 0x55, 0x1d, 0xa8, 0x4e, 0xd9, 0xdc, 0x0f, 0x99, 0x8b, 0xae, 0x68,
|
||||
0xd2, 0x18, 0x54, 0xaf, 0x7b, 0xe5, 0xb9, 0x52, 0xf9, 0x40, 0x19, 0x51, 0x03, 0xe4, 0x0a, 0x54,
|
||||
0xc6, 0xdc, 0x3b, 0x19, 0x4b, 0x63, 0x5b, 0x03, 0x91, 0x1d, 0xa8, 0xa9, 0x04, 0x17, 0xde, 0x57,
|
||||
0x1c, 0x6d, 0x5a, 0xa2, 0x09, 0x4c, 0xde, 0x86, 0xcd, 0x08, 0x9f, 0x6c, 0xc9, 0xa2, 0x13, 0x2e,
|
||||
0xd1, 0xa6, 0x25, 0xda, 0xd4, 0xc8, 0x63, 0xc4, 0xa5, 0x05, 0xbe, 0x96, 0x29, 0xf0, 0xd6, 0x9f,
|
||||
0x0b, 0x70, 0xf9, 0x69, 0xe8, 0x30, 0xdf, 0x78, 0xe6, 0xd0, 0x28, 0xf7, 0x2d, 0x28, 0x9f, 0xf2,
|
||||
0xb9, 0x40, 0x53, 0x34, 0xee, 0xdd, 0x4e, 0xbd, 0xb0, 0x82, 0x78, 0x77, 0x9f, 0xcf, 0x29, 0x92,
|
||||
0x93, 0xfb, 0xd0, 0x9c, 0x28, 0x37, 0x31, 0x93, 0x5d, 0x45, 0xcc, 0x89, 0x2b, 0xab, 0x9d, 0x48,
|
||||
0x73, 0xb4, 0xea, 0x0b, 0xa7, 0x4c, 0x88, 0x57, 0x61, 0xe4, 0x9a, 0xa8, 0x4d, 0xe0, 0x9d, 0xff,
|
||||
0x81, 0xd2, 0x3e, 0x9f, 0xaf, 0xcc, 0x05, 0x02, 0x65, 0xd5, 0xf4, 0xf0, 0x55, 0x4d, 0x8a, 0xcf,
|
||||
0xd6, 0xef, 0x0b, 0xf0, 0x66, 0x4e, 0x51, 0xce, 0xa3, 0xc7, 0xdc, 0xf7, 0x43, 0x15, 0xa1, 0x26,
|
||||
0x32, 0xed, 0x33, 0x1e, 0x09, 0x2f, 0x0c, 0x50, 0xd8, 0x06, 0x6d, 0x19, 0xf4, 0x73, 0x8d, 0x55,
|
||||
0x4e, 0x9e, 0x72, 0x8e, 0x41, 0xae, 0x25, 0x57, 0x14, 0xb8, 0xe7, 0x62, 0xdf, 0xe5, 0x67, 0x9e,
|
||||
0xc3, 0x6d, 0x54, 0x45, 0x6b, 0x0a, 0x1a, 0x35, 0x54, 0x0a, 0xa5, 0x04, 0x72, 0x3e, 0xe5, 0xe8,
|
||||
0xdd, 0x84, 0xe0, 0x78, 0x3e, 0xc5, 0xec, 0x15, 0xde, 0x49, 0xc0, 0xe4, 0x2c, 0xe2, 0xe8, 0xe5,
|
||||
0x26, 0x4d, 0x11, 0xd6, 0x37, 0x05, 0x68, 0x2b, 0xb5, 0xb3, 0x9d, 0x74, 0x4d, 0x77, 0x7e, 0x0f,
|
||||
0xb6, 0xbc, 0x0c, 0x95, 0x9d, 0xb4, 0xea, 0x56, 0x16, 0x9d, 0xd3, 0x19, 0x55, 0x2a, 0x2d, 0xa9,
|
||||
0x14, 0x1b, 0xb6, 0x9c, 0x8f, 0xdc, 0xd8, 0x44, 0x1b, 0x38, 0x3a, 0xc4, 0xa0, 0xf5, 0xb7, 0x02,
|
||||
0x5c, 0x5d, 0xd3, 0xec, 0xcf, 0x39, 0x47, 0xbc, 0x0d, 0x9b, 0xa6, 0x63, 0xd9, 0x98, 0xba, 0x46,
|
||||
0xa5, 0xa6, 0x41, 0xea, 0x3c, 0xbb, 0x06, 0x35, 0x1e, 0x08, 0x3b, 0xa3, 0x58, 0x95, 0x07, 0x02,
|
||||
0x6d, 0x7c, 0x1b, 0x9a, 0x3e, 0x13, 0xd2, 0x9e, 0x4d, 0x5d, 0x26, 0xb9, 0xae, 0x43, 0x65, 0xda,
|
||||
0x50, 0xb8, 0x91, 0x46, 0xa9, 0x6f, 0x16, 0x73, 0x21, 0xf9, 0xc4, 0x96, 0xec, 0x44, 0xb5, 0xf5,
|
||||
0x92, 0xfa, 0x66, 0x8d, 0x3a, 0x66, 0x27, 0x82, 0xbc, 0x0b, 0x2d, 0x5f, 0xc5, 0x88, 0x1d, 0x78,
|
||||
0xce, 0x29, 0xbe, 0x44, 0x97, 0xa2, 0x4d, 0xc4, 0x0e, 0x0d, 0xd2, 0xfa, 0x59, 0x05, 0xae, 0xad,
|
||||
0x9d, 0x6c, 0xc8, 0xff, 0xc2, 0x76, 0x56, 0x11, 0x1b, 0x79, 0xfd, 0xb9, 0xf9, 0x7a, 0x92, 0x51,
|
||||
0xe8, 0xa9, 0x3e, 0xf9, 0x0f, 0x36, 0x85, 0xf2, 0x2d, 0x73, 0x5d, 0xee, 0x62, 0x41, 0xad, 0x51,
|
||||
0x0d, 0xa8, 0x38, 0x79, 0xa1, 0x9c, 0xcc, 0x5d, 0x1c, 0x19, 0x6a, 0x34, 0x06, 0x15, 0xfd, 0x64,
|
||||
0xa6, 0x74, 0x6a, 0x68, 0x7a, 0x04, 0x14, 0x7d, 0xc4, 0x27, 0xe1, 0x19, 0x77, 0xb1, 0xa3, 0xd7,
|
||||
0x68, 0x0c, 0x92, 0x5b, 0xd0, 0x1c, 0x33, 0x61, 0xa3, 0x58, 0x7b, 0x26, 0xb0, 0x37, 0xd7, 0x28,
|
||||
0x8c, 0x99, 0xe8, 0x2a, 0xd4, 0x08, 0x0b, 0xfc, 0x19, 0x8f, 0xbc, 0x97, 0xf1, 0xe8, 0x2c, 0x24,
|
||||
0x93, 0x33, 0xdd, 0x7a, 0x4b, 0x94, 0x64, 0x8f, 0x8e, 0xf0, 0x04, 0x87, 0xe0, 0x68, 0x26, 0x64,
|
||||
0x4c, 0xb9, 0x85, 0x94, 0x0d, 0xc4, 0x19, 0x92, 0x8f, 0xe1, 0xba, 0x99, 0x0c, 0xed, 0x88, 0xff,
|
||||
0x78, 0xc6, 0x85, 0xd4, 0x5e, 0x44, 0x16, 0xde, 0x69, 0x23, 0x47, 0xc7, 0x90, 0x50, 0x4d, 0x81,
|
||||
0xce, 0x54, 0xfc, 0x7c, 0x3d, 0xbb, 0x4e, 0x83, 0x4b, 0x6b, 0xd9, 0x7b, 0x98, 0x19, 0x9f, 0xc0,
|
||||
0x8d, 0x45, 0x76, 0x65, 0x0e, 0xc9, 0xcd, 0xeb, 0x09, 0xf2, 0x5f, 0xcb, 0xf3, 0x53, 0xa4, 0xd0,
|
||||
0xef, 0x5f, 0x2f, 0x40, 0x2b, 0x70, 0x79, 0xbd, 0x00, 0xad, 0xc1, 0x6d, 0x68, 0xba, 0x9e, 0x98,
|
||||
0xfa, 0x6c, 0xae, 0xe3, 0x6b, 0x1b, 0x5d, 0xdf, 0x30, 0x38, 0x15, 0x63, 0xd6, 0xab, 0xe5, 0x7c,
|
||||
0x8f, 0xc7, 0x93, 0xd5, 0xf9, 0xbe, 0x14, 0xd4, 0xc5, 0x15, 0x41, 0xbd, 0x18, 0xb9, 0xa5, 0xa5,
|
||||
0xc8, 0xb5, 0x1e, 0xc1, 0xce, 0xe2, 0x8b, 0x0f, 0x67, 0x2f, 0x7c, 0xcf, 0xe9, 0x8d, 0xd9, 0x39,
|
||||
0x6b, 0x8d, 0xf5, 0xbb, 0x12, 0x6c, 0xe6, 0xd6, 0x8a, 0x7f, 0xc9, 0xd7, 0xc4, 0xc4, 0xbc, 0x09,
|
||||
0x8d, 0x69, 0xe4, 0x9d, 0x31, 0xc9, 0xed, 0x53, 0x3e, 0x37, 0xdd, 0x1b, 0x0c, 0x4a, 0x75, 0xa3,
|
||||
0x5b, 0xaa, 0xaa, 0x0a, 0x27, 0xf2, 0xa6, 0x4a, 0x2f, 0xcc, 0xcb, 0x26, 0xcd, 0xa2, 0x54, 0x33,
|
||||
0xff, 0x32, 0xf4, 0x02, 0x93, 0x95, 0x35, 0x6a, 0x20, 0xd5, 0xea, 0x74, 0xac, 0x72, 0x17, 0x9b,
|
||||
0x79, 0x8d, 0x26, 0x70, 0x9a, 0x34, 0xd5, 0x6c, 0xd2, 0x1c, 0x40, 0xdb, 0x78, 0x57, 0xd8, 0x32,
|
||||
0xb4, 0x95, 0x1c, 0x33, 0x21, 0xbd, 0xbb, 0x6e, 0x79, 0x32, 0xe4, 0xc7, 0xe1, 0x93, 0xd0, 0x0b,
|
||||
0x68, 0x2b, 0xca, 0xc1, 0xe4, 0x01, 0xd4, 0xe2, 0x91, 0xdd, 0xac, 0x08, 0x37, 0xd7, 0x08, 0x32,
|
||||
0xbb, 0x82, 0xa0, 0x09, 0x83, 0xea, 0x60, 0x3c, 0x70, 0xa2, 0xf9, 0x54, 0x26, 0x49, 0x9f, 0x22,
|
||||
0xb0, 0xbf, 0x4d, 0xb9, 0x23, 0x59, 0x9a, 0xfa, 0x29, 0x42, 0x35, 0x2d, 0x43, 0xaa, 0x12, 0x18,
|
||||
0x87, 0x8c, 0x26, 0x5a, 0xae, 0x95, 0xa2, 0xf7, 0xf9, 0x5c, 0x58, 0x3f, 0x2f, 0xc1, 0xf5, 0xd7,
|
||||
0x7c, 0x91, 0xf1, 0x57, 0x21, 0xf1, 0xd7, 0x5b, 0x00, 0x53, 0x8c, 0x0d, 0x74, 0x97, 0xf6, 0x7f,
|
||||
0x5d, 0x63, 0x94, 0xb7, 0x12, 0xa7, 0x97, 0xb2, 0x4e, 0x7f, 0x4d, 0x61, 0xbd, 0x0a, 0x55, 0xb3,
|
||||
0xcf, 0xa3, 0xf7, 0xea, 0xb4, 0xa2, 0xc0, 0x3d, 0x57, 0xc5, 0x6d, 0xbc, 0xf6, 0xcd, 0xd5, 0x69,
|
||||
0x45, 0x3b, 0x3e, 0xc1, 0xed, 0xa1, 0x13, 0x75, 0xfa, 0x56, 0xf5, 0xcb, 0x10, 0x20, 0xa7, 0x40,
|
||||
0x22, 0x7e, 0xc6, 0x99, 0xcf, 0x5d, 0x55, 0xe4, 0x22, 0x2e, 0x44, 0x32, 0xe8, 0x3e, 0x3c, 0x97,
|
||||
0x1b, 0x77, 0xa9, 0xe1, 0xef, 0xc6, 0xec, 0x83, 0x40, 0x46, 0x73, 0x7a, 0x29, 0x5a, 0xc4, 0xef,
|
||||
0xf4, 0xe1, 0xca, 0x6a, 0x62, 0xd2, 0x86, 0x92, 0xb2, 0x90, 0x1e, 0xa2, 0xd4, 0xa3, 0x52, 0xf7,
|
||||
0x8c, 0xf9, 0x33, 0x6e, 0xa2, 0x5f, 0x03, 0xf7, 0x8b, 0x1f, 0x15, 0xac, 0x5f, 0x16, 0xa1, 0xbd,
|
||||
0x98, 0x81, 0xe4, 0xe3, 0xcc, 0x2d, 0xc0, 0xd2, 0x80, 0xb8, 0xa6, 0x57, 0x66, 0xee, 0x00, 0x3e,
|
||||
0x83, 0xa6, 0x71, 0x94, 0x32, 0xa8, 0xe8, 0x14, 0x17, 0x27, 0xfd, 0xf5, 0x29, 0x4f, 0x1b, 0xd3,
|
||||
0xe4, 0x59, 0xed, 0x98, 0xd5, 0x78, 0xd0, 0x2c, 0x61, 0x08, 0xbf, 0x46, 0x8d, 0x78, 0xe6, 0x8c,
|
||||
0x39, 0xfe, 0x8d, 0x9b, 0x08, 0xeb, 0x43, 0xd8, 0xc2, 0x53, 0xa5, 0x90, 0x69, 0x5d, 0xe7, 0x2b,
|
||||
0x45, 0x0f, 0x61, 0x3b, 0x66, 0x7c, 0xa6, 0xef, 0x7a, 0x04, 0xe5, 0xec, 0xbc, 0xdc, 0xdf, 0x85,
|
||||
0x2b, 0x7a, 0x39, 0x95, 0xde, 0x99, 0x27, 0xe7, 0x3d, 0x1e, 0x48, 0x1e, 0xbd, 0x86, 0xbf, 0x0d,
|
||||
0x25, 0xcf, 0xd5, 0xe6, 0x6d, 0x52, 0xf5, 0x68, 0xf5, 0x75, 0x39, 0xcd, 0x4b, 0xe8, 0x3a, 0x0e,
|
||||
0xc7, 0xbc, 0x3d, 0xaf, 0x94, 0x81, 0xce, 0xcb, 0xbc, 0x94, 0xbe, 0x27, 0x26, 0x9e, 0x10, 0x17,
|
||||
0x10, 0xf3, 0x4d, 0x01, 0x9a, 0x4a, 0xce, 0xa3, 0x30, 0x3c, 0x9d, 0xb0, 0xe8, 0x74, 0x3d, 0xe3,
|
||||
0x2c, 0xf2, 0x8d, 0x19, 0xd4, 0x63, 0x32, 0xac, 0x96, 0x32, 0xc3, 0xea, 0x75, 0xa8, 0x63, 0xa3,
|
||||
0xb1, 0x15, 0xad, 0x4e, 0xe4, 0x1a, 0x22, 0x46, 0x91, 0x9f, 0x9d, 0x38, 0x36, 0xf2, 0x13, 0xc7,
|
||||
0x5b, 0x00, 0x2e, 0xf7, 0xb9, 0x9a, 0xdc, 0x98, 0xc4, 0x44, 0x2e, 0xd3, 0xba, 0xc1, 0x74, 0xa5,
|
||||
0xf5, 0x53, 0x78, 0x53, 0x69, 0x38, 0x08, 0xc4, 0x48, 0xf0, 0x48, 0xbd, 0x48, 0xaf, 0xe9, 0x6b,
|
||||
0x54, 0xdd, 0x81, 0xda, 0xcc, 0xd0, 0x19, 0x7d, 0x13, 0x18, 0xb7, 0xe6, 0x31, 0xf3, 0x70, 0x48,
|
||||
0xd7, 0x15, 0xa8, 0x8a, 0xf0, 0x5e, 0x6e, 0x20, 0x2a, 0xe7, 0xd4, 0xb3, 0x9e, 0xe8, 0xe4, 0xeb,
|
||||
0xf9, 0x9c, 0x45, 0x8f, 0x3d, 0x21, 0xc3, 0x68, 0x9e, 0x2d, 0x4b, 0x85, 0x5c, 0x59, 0x7a, 0x0b,
|
||||
0xc0, 0x51, 0x84, 0xfa, 0x5b, 0x8a, 0xfa, 0x5b, 0x0c, 0xa6, 0x2b, 0xad, 0x3f, 0x15, 0x80, 0x28,
|
||||
0x61, 0xe6, 0xea, 0xe9, 0xd0, 0x73, 0xd4, 0xba, 0xb1, 0x72, 0xa5, 0xca, 0xec, 0xac, 0xc5, 0x35,
|
||||
0x3b, 0x6b, 0x09, 0x37, 0x82, 0xa5, 0x9d, 0xb5, 0x8c, 0xe8, 0x78, 0x67, 0xbd, 0x0e, 0x75, 0x1c,
|
||||
0x01, 0x70, 0x69, 0xd5, 0x3b, 0x04, 0x2e, 0xad, 0x47, 0x2b, 0x97, 0xd6, 0x0a, 0x12, 0xac, 0x59,
|
||||
0x5a, 0xab, 0xd9, 0xa5, 0x75, 0x0c, 0x97, 0x97, 0xbf, 0x44, 0xac, 0xdf, 0xcb, 0x3f, 0x82, 0xda,
|
||||
0xd4, 0x10, 0x99, 0x62, 0x73, 0x23, 0x9f, 0xe7, 0x79, 0x49, 0x34, 0xa1, 0xb6, 0x7e, 0x53, 0x84,
|
||||
0x46, 0xe6, 0x42, 0x68, 0x8d, 0xdf, 0x3b, 0x50, 0x35, 0xe5, 0x3c, 0xb6, 0x97, 0x01, 0xb3, 0x2a,
|
||||
0x95, 0x72, 0x2a, 0xe5, 0x9b, 0x95, 0x1e, 0x1d, 0x32, 0xcd, 0x8a, 0x40, 0x79, 0xca, 0xe4, 0xd8,
|
||||
0x34, 0x1e, 0x7c, 0x4e, 0x3c, 0x55, 0xc9, 0x78, 0x2a, 0x7b, 0x17, 0xa3, 0x47, 0xf6, 0xe4, 0x2e,
|
||||
0x66, 0x1b, 0x36, 0xf8, 0x24, 0xfc, 0xd2, 0xc3, 0x7d, 0xbf, 0x4e, 0x35, 0xa0, 0x5c, 0xf5, 0x8a,
|
||||
0xf9, 0x3e, 0x97, 0x66, 0x86, 0x37, 0x90, 0x12, 0xae, 0xc2, 0xc8, 0x34, 0x73, 0x7c, 0x46, 0xb7,
|
||||
0x7a, 0xae, 0xcb, 0x03, 0xd3, 0xc4, 0x0d, 0xb4, 0x7e, 0x80, 0xb7, 0xbe, 0x36, 0xe6, 0x8a, 0xef,
|
||||
0xf1, 0x56, 0x9b, 0x2b, 0x63, 0x94, 0xe2, 0xca, 0xfb, 0x93, 0x52, 0x7e, 0xbd, 0xcf, 0xac, 0xd1,
|
||||
0xf8, 0x8c, 0x13, 0x2b, 0x8f, 0xbc, 0x33, 0xee, 0xda, 0x2f, 0xa3, 0x70, 0x62, 0xac, 0xd4, 0x30,
|
||||
0xb8, 0x4f, 0xa3, 0x70, 0x42, 0x1e, 0xc0, 0x8e, 0x9e, 0x2d, 0x05, 0x77, 0x6d, 0x3c, 0x30, 0x2b,
|
||||
0x32, 0x5e, 0xf0, 0xe8, 0x44, 0xbf, 0x8a, 0x93, 0xa6, 0xe0, 0x6e, 0x3f, 0x39, 0xdf, 0x53, 0xc7,
|
||||
0x7a, 0x5f, 0x0a, 0x9c, 0x58, 0xbc, 0x36, 0x2c, 0x68, 0x14, 0x4a, 0xff, 0x3f, 0xa8, 0x99, 0x36,
|
||||
0x12, 0xb7, 0xef, 0x35, 0x17, 0x88, 0x09, 0x99, 0x35, 0xd3, 0x3d, 0x23, 0x73, 0xe5, 0x49, 0xee,
|
||||
0xa2, 0x1d, 0xf0, 0x7a, 0xb4, 0xb0, 0xea, 0x16, 0xd2, 0xd0, 0xd2, 0x98, 0x4a, 0xbd, 0xd6, 0xdc,
|
||||
0xa3, 0xc5, 0x71, 0xbc, 0xcc, 0xa1, 0x4e, 0x69, 0x42, 0x66, 0xfd, 0xa3, 0xa0, 0x4b, 0xc8, 0x11,
|
||||
0x3b, 0x4b, 0xe6, 0x80, 0x6c, 0xbc, 0x16, 0xf2, 0xf1, 0xba, 0xea, 0x06, 0xeb, 0x06, 0xd4, 0x5f,
|
||||
0xb2, 0xb3, 0x70, 0x16, 0x79, 0x52, 0xbb, 0xa6, 0x46, 0x53, 0xc4, 0x6b, 0x6a, 0xeb, 0x6d, 0x68,
|
||||
0xea, 0xc9, 0xde, 0xce, 0xa6, 0x70, 0x43, 0xe3, 0xf4, 0xea, 0xf1, 0xdf, 0x70, 0x49, 0x17, 0x45,
|
||||
0x31, 0x0e, 0x23, 0x89, 0x53, 0x98, 0x30, 0xf1, 0xba, 0x85, 0x07, 0x47, 0x0a, 0xaf, 0xa6, 0x31,
|
||||
0xa1, 0xfa, 0x00, 0x0f, 0x84, 0xb9, 0xcb, 0x53, 0x8f, 0x2a, 0x8e, 0x3c, 0x61, 0x4b, 0x2e, 0xe2,
|
||||
0xb0, 0xad, 0x78, 0xe2, 0x98, 0x0b, 0xf9, 0xa4, 0x5c, 0x2b, 0xb7, 0x37, 0xac, 0x5f, 0x15, 0x74,
|
||||
0xf5, 0x5e, 0x1a, 0x64, 0xd7, 0x84, 0xe5, 0xe2, 0x58, 0xa7, 0x6d, 0x90, 0x1b, 0xeb, 0x06, 0x70,
|
||||
0x73, 0xac, 0xcb, 0xb0, 0xcd, 0x22, 0x67, 0xec, 0x9d, 0x71, 0x5b, 0xcc, 0xa6, 0x53, 0xa5, 0x3b,
|
||||
0x0f, 0xd8, 0x0b, 0xdf, 0x2c, 0x31, 0x35, 0x7a, 0xc3, 0x90, 0x75, 0x35, 0xd5, 0x91, 0x26, 0x1a,
|
||||
0x68, 0x1a, 0xeb, 0xb7, 0x05, 0x1d, 0x0c, 0xc7, 0x6a, 0x0b, 0x55, 0x7b, 0x2d, 0x8f, 0xce, 0x79,
|
||||
0x6f, 0xf2, 0x31, 0x54, 0xcc, 0x22, 0xab, 0xde, 0xd3, 0x5a, 0x1c, 0xfe, 0x33, 0x02, 0x77, 0x8f,
|
||||
0xd3, 0x15, 0x97, 0x1a, 0x26, 0xeb, 0x3e, 0x34, 0x32, 0x68, 0xd2, 0x80, 0xea, 0x68, 0xb8, 0x3f,
|
||||
0x3c, 0xf8, 0x7c, 0xd8, 0x7e, 0x43, 0x01, 0xc7, 0x74, 0x74, 0x74, 0x3c, 0xe8, 0xb7, 0x0b, 0xe4,
|
||||
0x12, 0x6c, 0x8e, 0x86, 0x08, 0x7e, 0x7e, 0x40, 0x8f, 0x1f, 0x7f, 0xd1, 0x2e, 0x5a, 0xdf, 0x94,
|
||||
0xf4, 0x12, 0xf8, 0x3c, 0xb3, 0x64, 0x9b, 0xe1, 0x74, 0x8d, 0xf2, 0x04, 0xca, 0x98, 0x3f, 0x26,
|
||||
0x98, 0xd4, 0xb3, 0xfa, 0x20, 0x19, 0x9a, 0x04, 0x2f, 0xca, 0x50, 0x05, 0x97, 0x33, 0x56, 0x25,
|
||||
0x28, 0x38, 0x89, 0x73, 0x3c, 0x45, 0x28, 0x97, 0x98, 0xb5, 0x45, 0x37, 0x35, 0x73, 0xb7, 0x91,
|
||||
0xe0, 0xba, 0x78, 0x6b, 0x18, 0x71, 0x31, 0x0d, 0x03, 0x11, 0x57, 0xc6, 0x04, 0x56, 0x45, 0x36,
|
||||
0xe2, 0x53, 0xdf, 0xd3, 0xcc, 0x3a, 0xfe, 0xea, 0x06, 0xd3, 0x95, 0x84, 0xaf, 0xbe, 0x4c, 0xa8,
|
||||
0xa1, 0x65, 0xff, 0x3f, 0x6f, 0xd9, 0x15, 0x5f, 0xbd, 0xfb, 0x7c, 0xe9, 0xba, 0x61, 0xe5, 0x15,
|
||||
0x84, 0xf6, 0x61, 0x3d, 0x19, 0xe3, 0xbe, 0x0f, 0x64, 0x99, 0x73, 0xc9, 0x17, 0x87, 0x83, 0x61,
|
||||
0x7f, 0x6f, 0xf8, 0x59, 0xbb, 0x40, 0x9a, 0x50, 0xeb, 0xf6, 0x7a, 0x83, 0x43, 0xe5, 0x99, 0xa2,
|
||||
0x82, 0xfa, 0x83, 0xde, 0xd3, 0xbd, 0xe1, 0xa0, 0xdf, 0x2e, 0x29, 0xa8, 0xd7, 0x1d, 0xf6, 0x06,
|
||||
0x4f, 0x07, 0xfd, 0x76, 0xd9, 0xfa, 0x6b, 0x41, 0xcf, 0x77, 0xbd, 0xdc, 0xae, 0xdf, 0xe7, 0x8e,
|
||||
0x27, 0xd6, 0x5f, 0x22, 0xde, 0x80, 0xba, 0xb1, 0xe7, 0x5e, 0x1c, 0x69, 0x29, 0x82, 0xfc, 0x10,
|
||||
0xb6, 0x5c, 0xc3, 0x6f, 0xe7, 0x22, 0xef, 0x83, 0xc5, 0x49, 0x79, 0xd5, 0x2b, 0x77, 0xe3, 0x07,
|
||||
0x63, 0x9e, 0x96, 0x9b, 0x83, 0xad, 0xf7, 0xa1, 0x95, 0xa7, 0xc8, 0x7d, 0xec, 0x1b, 0xb9, 0x8f,
|
||||
0x2d, 0x58, 0x7f, 0x2c, 0xc2, 0xd6, 0xc2, 0x1f, 0x68, 0xeb, 0x7b, 0xfe, 0xe2, 0xad, 0x46, 0x71,
|
||||
0xe9, 0x56, 0x83, 0xbc, 0x0f, 0x24, 0x4b, 0x62, 0x67, 0xd7, 0xc3, 0x76, 0x86, 0x50, 0xd7, 0xaa,
|
||||
0xec, 0x10, 0x51, 0xbe, 0xc8, 0x10, 0x41, 0x1e, 0x42, 0x53, 0x84, 0x8e, 0xc7, 0x7c, 0xdb, 0xf7,
|
||||
0x82, 0xd3, 0xf8, 0x5f, 0xcb, 0x85, 0xff, 0xc2, 0x8e, 0x90, 0xe2, 0xa9, 0x22, 0xa0, 0x0d, 0x91,
|
||||
0x02, 0xe4, 0x7b, 0xb0, 0xad, 0x36, 0xd4, 0x78, 0x90, 0xb4, 0xdd, 0xe4, 0x7f, 0xca, 0xd2, 0xf2,
|
||||
0xd2, 0xbe, 0x34, 0xa9, 0x52, 0xc2, 0x17, 0x51, 0xc2, 0x12, 0x00, 0x94, 0xbd, 0x32, 0x1b, 0x48,
|
||||
0x76, 0xda, 0x2b, 0xe4, 0xa7, 0xbd, 0x7d, 0x68, 0x98, 0xbf, 0xa4, 0x8f, 0x55, 0x0b, 0x2e, 0xa2,
|
||||
0xe3, 0xff, 0x2b, 0x7d, 0x63, 0x37, 0xfd, 0x13, 0xfb, 0x99, 0xf9, 0x0f, 0xdb, 0x08, 0xdd, 0x55,
|
||||
0x0c, 0x34, 0xcb, 0x6d, 0xfd, 0xba, 0x00, 0x2d, 0xa5, 0x62, 0xe6, 0xcd, 0xdf, 0x86, 0x46, 0x94,
|
||||
0x40, 0xf1, 0x2a, 0xb9, 0x9d, 0xca, 0x4f, 0x49, 0x69, 0x96, 0x90, 0xdc, 0x83, 0x6d, 0x31, 0x7b,
|
||||
0x61, 0x7a, 0xac, 0x78, 0x22, 0xc2, 0xe0, 0xd1, 0x5c, 0xf2, 0x78, 0xf8, 0x5a, 0x79, 0x46, 0xde,
|
||||
0x87, 0x4b, 0xf1, 0xf5, 0x45, 0xca, 0xa0, 0xef, 0x74, 0x96, 0x0f, 0xac, 0xaf, 0x0b, 0xc9, 0x20,
|
||||
0xa3, 0xfa, 0x28, 0x2e, 0x21, 0x49, 0x88, 0xa9, 0xc7, 0x95, 0x9d, 0xf2, 0x0a, 0x54, 0xcc, 0x45,
|
||||
0xa8, 0xee, 0x02, 0x06, 0xca, 0x06, 0x69, 0x39, 0x17, 0xa4, 0x37, 0xa0, 0x9e, 0xde, 0x03, 0x6c,
|
||||
0xe0, 0x6a, 0x94, 0x22, 0xd2, 0x7c, 0xad, 0x64, 0x87, 0xdf, 0x3f, 0x14, 0xe1, 0x52, 0x46, 0x35,
|
||||
0xb5, 0x85, 0x85, 0x01, 0xb9, 0x0f, 0x15, 0x86, 0x4f, 0xa8, 0x63, 0xeb, 0x9e, 0xb5, 0x72, 0x30,
|
||||
0xd0, 0xc4, 0xbb, 0xfa, 0x87, 0x1a, 0x0e, 0xf2, 0x0e, 0x6c, 0x86, 0xbe, 0x6b, 0x48, 0x46, 0x49,
|
||||
0xbf, 0xc9, 0x23, 0xcd, 0xb4, 0xa2, 0x20, 0xb3, 0x6c, 0xaf, 0x99, 0x3d, 0x62, 0x2a, 0xd5, 0x7f,
|
||||
0x2b, 0x46, 0xbb, 0x4b, 0xb0, 0xb9, 0x3f, 0xf8, 0xa2, 0xd7, 0xa5, 0x7d, 0xbb, 0xdb, 0xef, 0x63,
|
||||
0x6a, 0x13, 0x68, 0x75, 0x7b, 0xbd, 0x83, 0xd1, 0xf0, 0xf8, 0xc8, 0xe0, 0x0a, 0xe4, 0x32, 0x6c,
|
||||
0xc5, 0x64, 0xfd, 0xc1, 0xd3, 0x81, 0x2e, 0x78, 0xdb, 0xd0, 0x4e, 0x08, 0xe9, 0xe0, 0xd9, 0xc1,
|
||||
0x73, 0x2c, 0x7c, 0x00, 0x95, 0xa7, 0x07, 0xbd, 0x7d, 0x55, 0xf6, 0x54, 0x95, 0x18, 0x0d, 0x0d,
|
||||
0xb4, 0x41, 0xb6, 0xa0, 0x31, 0xda, 0xeb, 0xdb, 0xa3, 0xc3, 0x7e, 0x57, 0x09, 0xa8, 0x90, 0x36,
|
||||
0x34, 0x87, 0xdd, 0x67, 0x03, 0xbb, 0xf7, 0xb8, 0x3b, 0xfc, 0x6c, 0xd0, 0x6f, 0x57, 0xad, 0x1f,
|
||||
0xe9, 0xf6, 0x9b, 0x49, 0x39, 0xf2, 0xe1, 0x42, 0x8e, 0x2e, 0xc5, 0x62, 0x4a, 0x9c, 0x4f, 0xcf,
|
||||
0xc4, 0x49, 0xc5, 0x8c, 0x93, 0x1e, 0x6d, 0xfe, 0xa0, 0xb1, 0x7b, 0xf7, 0x41, 0xcc, 0xfc, 0xa2,
|
||||
0x82, 0x4f, 0x1f, 0xfc, 0x33, 0x00, 0x00, 0xff, 0xff, 0x35, 0x39, 0xcc, 0x36, 0x3a, 0x22, 0x00,
|
||||
0x00,
|
||||
// 3535 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3a, 0x4d, 0x73, 0x23, 0x49,
|
||||
0x56, 0x53, 0x92, 0xac, 0x8f, 0x27, 0x59, 0x2e, 0x67, 0x7b, 0xba, 0xd5, 0xee, 0x9e, 0xed, 0xee,
|
||||
0x9a, 0x9d, 0xd8, 0x86, 0x18, 0x3c, 0xd0, 0x03, 0xec, 0xee, 0x7c, 0xc4, 0xa0, 0x96, 0x34, 0xd3,
|
||||
0x1e, 0x77, 0xcb, 0x26, 0x6d, 0xcf, 0xb0, 0x04, 0x11, 0x45, 0x76, 0x55, 0xb6, 0x55, 0xeb, 0x52,
|
||||
0x95, 0xa8, 0x4c, 0xd9, 0x68, 0x0f, 0x04, 0x6c, 0x04, 0x67, 0x08, 0x2e, 0xcc, 0x71, 0xce, 0x04,
|
||||
0x27, 0x22, 0x38, 0x10, 0xc1, 0x81, 0x13, 0xc1, 0x9d, 0x23, 0xfc, 0x02, 0x82, 0x0b, 0x37, 0x8e,
|
||||
0x44, 0xbe, 0xcc, 0xfa, 0xd2, 0x47, 0x63, 0x07, 0x27, 0x4e, 0xce, 0xf7, 0xf2, 0xe5, 0xcb, 0x57,
|
||||
0xf9, 0xbe, 0x9f, 0x0c, 0xdb, 0x33, 0x16, 0x24, 0x41, 0x74, 0x71, 0x30, 0x4b, 0x62, 0x19, 0x93,
|
||||
0x26, 0xfe, 0x79, 0x3d, 0x7f, 0xb3, 0x7f, 0xc7, 0x9b, 0x30, 0xe9, 0x06, 0x3e, 0x8f, 0x64, 0x20,
|
||||
0x17, 0x7a, 0x7b, 0xff, 0x8e, 0x58, 0x44, 0x9e, 0x2b, 0xb8, 0x94, 0x41, 0x74, 0x21, 0x0c, 0xd2,
|
||||
0x61, 0xb3, 0x59, 0x18, 0x78, 0x4c, 0x06, 0x71, 0xe4, 0x4e, 0xb9, 0x64, 0x3e, 0x93, 0xcc, 0x9d,
|
||||
0x72, 0x21, 0xd8, 0x05, 0xd7, 0x34, 0x0e, 0x83, 0x07, 0x5f, 0x72, 0xe9, 0x4d, 0x82, 0xe8, 0xe2,
|
||||
0x39, 0xf3, 0x2e, 0xb9, 0x7f, 0x3e, 0x1b, 0x32, 0xc9, 0x86, 0x5c, 0xb2, 0x20, 0x14, 0xe4, 0x11,
|
||||
0xb4, 0xf1, 0x50, 0x34, 0x9f, 0xbe, 0xe6, 0x49, 0xcf, 0x7a, 0x6c, 0x3d, 0xdd, 0xa6, 0xa0, 0x50,
|
||||
0x63, 0xc4, 0x90, 0x27, 0xd0, 0x91, 0xb1, 0x64, 0x61, 0x4a, 0x51, 0x41, 0x8a, 0x36, 0xe2, 0x34,
|
||||
0x89, 0xf3, 0x97, 0x0d, 0xa8, 0x2b, 0xde, 0xf3, 0x19, 0xd9, 0x83, 0x2d, 0x2f, 0x8c, 0xbd, 0x4b,
|
||||
0x64, 0x54, 0xa3, 0x1a, 0x20, 0x5d, 0xa8, 0x04, 0x3e, 0x9e, 0x6c, 0xd1, 0x4a, 0xe0, 0x93, 0x2f,
|
||||
0xa0, 0xe9, 0xc5, 0x91, 0x64, 0x9e, 0x14, 0xbd, 0xea, 0xe3, 0xea, 0xd3, 0xf6, 0xb3, 0xf7, 0x0f,
|
||||
0xd2, 0xcf, 0x3f, 0x38, 0x5d, 0x44, 0xde, 0x61, 0x24, 0x24, 0x0b, 0x43, 0xfc, 0xb0, 0x81, 0xa6,
|
||||
0xfc, 0xe6, 0x19, 0xcd, 0x0e, 0x91, 0x9f, 0x42, 0xdb, 0x8b, 0xa7, 0xd3, 0x79, 0x14, 0xc8, 0x80,
|
||||
0x8b, 0x5e, 0x0d, 0x79, 0xdc, 0x2b, 0xf3, 0x18, 0x18, 0x82, 0x05, 0x2d, 0xd2, 0x92, 0x63, 0xd8,
|
||||
0x49, 0xd9, 0x98, 0x37, 0xe8, 0x6d, 0x3d, 0xb6, 0x9e, 0xb6, 0x9f, 0x7d, 0x90, 0x1f, 0x7f, 0xcb,
|
||||
0x83, 0xd1, 0xe5, 0xd3, 0xe4, 0x1c, 0x48, 0x81, 0x7f, 0xca, 0xb3, 0x7e, 0x1b, 0x9e, 0x6b, 0x18,
|
||||
0x90, 0x8f, 0xa1, 0x31, 0x4b, 0xe2, 0x37, 0x41, 0xc8, 0x7b, 0x0d, 0xe4, 0x75, 0x3f, 0xe7, 0x95,
|
||||
0xf2, 0x38, 0xd1, 0x04, 0x34, 0xa5, 0x24, 0xaf, 0xa0, 0x6b, 0x96, 0xa9, 0x1c, 0xcd, 0xdb, 0xc8,
|
||||
0xb1, 0x74, 0x98, 0x7c, 0x04, 0x0d, 0x63, 0x71, 0xbd, 0x16, 0xf2, 0x79, 0xb7, 0xfc, 0xc4, 0xa7,
|
||||
0x7a, 0x93, 0xa6, 0x54, 0xea, 0x71, 0x53, 0x13, 0x4d, 0x05, 0x80, 0x5b, 0x3d, 0xee, 0xd2, 0x69,
|
||||
0xf2, 0x29, 0xb4, 0xdf, 0xcc, 0xc3, 0xf0, 0x88, 0x2f, 0x94, 0xb7, 0xf4, 0xda, 0xcb, 0x2f, 0xa1,
|
||||
0xa4, 0x30, 0x9b, 0x5f, 0xce, 0xc3, 0x90, 0x16, 0xa9, 0x95, 0x66, 0x0a, 0x60, 0x2a, 0x50, 0xe7,
|
||||
0x56, 0x9a, 0x59, 0x65, 0x40, 0xfa, 0x60, 0x5f, 0x33, 0xe9, 0x4d, 0x8e, 0xa3, 0x70, 0xd1, 0xf7,
|
||||
0xbc, 0x78, 0x1e, 0xc9, 0xde, 0xf6, 0xba, 0xe7, 0x31, 0x9b, 0x74, 0x85, 0x9c, 0xb8, 0x70, 0x6f,
|
||||
0x19, 0x97, 0x8a, 0xd7, 0xbd, 0x8d, 0x78, 0x9b, 0xb8, 0x38, 0xff, 0x59, 0x83, 0xce, 0xab, 0x79,
|
||||
0x28, 0x83, 0xf4, 0x46, 0x02, 0xb5, 0x88, 0x4d, 0x39, 0xfa, 0x65, 0x8b, 0xe2, 0x9a, 0x3c, 0x84,
|
||||
0x96, 0x0c, 0xa6, 0x5c, 0x48, 0x36, 0x9d, 0xa1, 0x77, 0x56, 0x69, 0x8e, 0x50, 0xbb, 0x3a, 0x06,
|
||||
0x79, 0x71, 0xd4, 0xab, 0xe2, 0xb1, 0x1c, 0x41, 0xbe, 0x00, 0xf0, 0xe2, 0x30, 0x4e, 0xdc, 0x09,
|
||||
0x13, 0x13, 0xe3, 0x80, 0x8f, 0x73, 0xa1, 0x8b, 0x77, 0x1f, 0x0c, 0x14, 0xe1, 0x0b, 0x26, 0x26,
|
||||
0xb4, 0xe5, 0xa5, 0x4b, 0x72, 0x5f, 0xc5, 0x00, 0xc5, 0x20, 0xf0, 0xd1, 0x01, 0xab, 0xb4, 0x81,
|
||||
0xf0, 0xa1, 0x4f, 0x7e, 0x04, 0x3b, 0x97, 0x7c, 0xe1, 0xb1, 0xc4, 0x77, 0x4d, 0x8c, 0x44, 0x77,
|
||||
0x6a, 0xd1, 0xae, 0x41, 0x9f, 0x68, 0x2c, 0xb9, 0x07, 0x8d, 0x4b, 0xbe, 0x70, 0xe7, 0x81, 0x8f,
|
||||
0x3e, 0xd2, 0xa2, 0xf5, 0x4b, 0xbe, 0x38, 0x0f, 0x7c, 0xf2, 0x19, 0xd4, 0x83, 0x29, 0xbb, 0xe0,
|
||||
0xca, 0xfe, 0x95, 0x64, 0x3f, 0xdc, 0x20, 0xd9, 0xa1, 0x09, 0xb2, 0x87, 0x8a, 0x98, 0x9a, 0x33,
|
||||
0xe4, 0x23, 0xb8, 0xe3, 0xcd, 0x85, 0x8c, 0xa7, 0xc1, 0x2f, 0x74, 0x68, 0x45, 0xc1, 0xd0, 0x05,
|
||||
0x5a, 0x94, 0x94, 0xb6, 0xf0, 0xd3, 0xf6, 0x9f, 0x40, 0x2b, 0xfb, 0x46, 0x15, 0x02, 0x83, 0xc8,
|
||||
0xe7, 0x7f, 0xdc, 0xb3, 0x1e, 0x57, 0x9f, 0x56, 0xa9, 0x06, 0xf6, 0xff, 0xcd, 0x82, 0xed, 0xd2,
|
||||
0x6d, 0x45, 0xe1, 0xad, 0x92, 0xf0, 0xa9, 0xaa, 0x2a, 0x05, 0x55, 0xf5, 0xa0, 0x31, 0x63, 0x8b,
|
||||
0x30, 0x66, 0x3e, 0xaa, 0xa2, 0x43, 0x53, 0x50, 0x5d, 0x77, 0x1d, 0xf8, 0x52, 0xe9, 0x40, 0x3d,
|
||||
0xa2, 0x06, 0xc8, 0x5d, 0xa8, 0x4f, 0x78, 0x70, 0x31, 0x91, 0xe6, 0x6d, 0x0d, 0x44, 0xf6, 0xa1,
|
||||
0xa9, 0x1c, 0x5c, 0x04, 0xbf, 0xe0, 0xf8, 0xa6, 0x55, 0x9a, 0xc1, 0xe4, 0x7d, 0xd8, 0x4e, 0x70,
|
||||
0xe5, 0x4a, 0x96, 0x5c, 0x70, 0x89, 0x6f, 0x5a, 0xa5, 0x1d, 0x8d, 0x3c, 0x43, 0x5c, 0x1e, 0xe0,
|
||||
0x9b, 0x85, 0x00, 0xef, 0xfc, 0xab, 0x05, 0x77, 0x5e, 0xc6, 0x1e, 0x0b, 0x8d, 0x66, 0x4e, 0x8c,
|
||||
0x70, 0xbf, 0x05, 0xb5, 0x4b, 0xbe, 0x10, 0xf8, 0x14, 0xed, 0x67, 0x4f, 0x72, 0x2d, 0xac, 0x21,
|
||||
0x3e, 0x38, 0xe2, 0x0b, 0x8a, 0xe4, 0xe4, 0x13, 0xe8, 0x4c, 0x95, 0x9a, 0x98, 0xf1, 0xae, 0x0a,
|
||||
0xfa, 0xc4, 0xdd, 0xf5, 0x4a, 0xa4, 0x25, 0x5a, 0xf5, 0x85, 0x33, 0x26, 0xc4, 0x75, 0x9c, 0xf8,
|
||||
0xc6, 0x6a, 0x33, 0x78, 0xff, 0xd7, 0xa0, 0x7a, 0xc4, 0x17, 0x6b, 0x7d, 0x81, 0x40, 0x4d, 0x25,
|
||||
0x3d, 0xbc, 0xaa, 0x43, 0x71, 0xed, 0xfc, 0x83, 0x05, 0xef, 0x96, 0x04, 0xe5, 0x3c, 0x79, 0xc1,
|
||||
0xc3, 0x30, 0x56, 0x16, 0x6a, 0x2c, 0xd3, 0xbd, 0xe2, 0x89, 0x08, 0xe2, 0x08, 0x99, 0x6d, 0xd1,
|
||||
0xae, 0x41, 0x7f, 0xa3, 0xb1, 0x4a, 0xc9, 0x33, 0xce, 0xd1, 0xc8, 0x35, 0xe7, 0xba, 0x02, 0x0f,
|
||||
0x7d, 0xcc, 0xbb, 0xfc, 0x2a, 0xf0, 0xb8, 0x8b, 0xa2, 0x68, 0x49, 0x41, 0xa3, 0xc6, 0x4a, 0xa0,
|
||||
0x9c, 0x40, 0x2e, 0x66, 0x1c, 0xb5, 0x9b, 0x11, 0x9c, 0x2d, 0x66, 0xe8, 0xbd, 0x22, 0xb8, 0x88,
|
||||
0x98, 0x9c, 0x27, 0x1c, 0xb5, 0xdc, 0xa1, 0x39, 0xc2, 0xf9, 0xde, 0x02, 0x5b, 0x89, 0x5d, 0xcc,
|
||||
0xa4, 0x1b, 0xb2, 0xf3, 0x8f, 0x60, 0x27, 0x28, 0x50, 0xb9, 0x59, 0xaa, 0xee, 0x16, 0xd1, 0x25,
|
||||
0x99, 0x51, 0xa4, 0xea, 0x8a, 0x48, 0xe9, 0xc3, 0xd6, 0xca, 0x96, 0x9b, 0x3e, 0xd1, 0x16, 0x96,
|
||||
0x0e, 0x29, 0xe8, 0xfc, 0x87, 0x05, 0xf7, 0x36, 0x24, 0xfb, 0x1b, 0xd6, 0x11, 0xef, 0xc3, 0xb6,
|
||||
0xc9, 0x58, 0x2e, 0xba, 0xae, 0x11, 0xa9, 0x63, 0x90, 0xda, 0xcf, 0xee, 0x43, 0x93, 0x47, 0xc2,
|
||||
0x2d, 0x08, 0xd6, 0xe0, 0x91, 0xc0, 0x37, 0x7e, 0x02, 0x9d, 0x90, 0x09, 0xe9, 0xce, 0x67, 0x3e,
|
||||
0x93, 0x5c, 0xc7, 0xa1, 0x1a, 0x6d, 0x2b, 0xdc, 0xb9, 0x46, 0xa9, 0x6f, 0x16, 0x0b, 0x21, 0xf9,
|
||||
0xd4, 0x95, 0xec, 0x42, 0xa5, 0xf5, 0xaa, 0xfa, 0x66, 0x8d, 0x3a, 0x63, 0x17, 0x82, 0x7c, 0x00,
|
||||
0xdd, 0x50, 0xd9, 0x88, 0x1b, 0x05, 0xde, 0x25, 0x5e, 0xa2, 0x43, 0xd1, 0x36, 0x62, 0xc7, 0x06,
|
||||
0xe9, 0xfc, 0x59, 0x1d, 0xee, 0x6f, 0xac, 0x6c, 0xc8, 0xaf, 0xc3, 0x5e, 0x51, 0x10, 0x17, 0xcf,
|
||||
0x86, 0x0b, 0xf3, 0xf5, 0xa4, 0x20, 0xd0, 0x4b, 0xbd, 0xf3, 0xff, 0xf8, 0x29, 0x94, 0x6e, 0x99,
|
||||
0xef, 0x73, 0x1f, 0x03, 0x6a, 0x93, 0x6a, 0x40, 0xd9, 0xc9, 0x6b, 0xa5, 0x64, 0xee, 0x63, 0xc9,
|
||||
0xd0, 0xa4, 0x29, 0xa8, 0xe8, 0xa7, 0x73, 0x25, 0x53, 0x5b, 0xd3, 0x23, 0xa0, 0xe8, 0x13, 0x3e,
|
||||
0x8d, 0xaf, 0xb8, 0x8f, 0x19, 0xbd, 0x49, 0x53, 0x90, 0x3c, 0x86, 0xce, 0x84, 0x09, 0x17, 0xd9,
|
||||
0xba, 0x73, 0x81, 0xb9, 0xb9, 0x49, 0x61, 0xc2, 0x44, 0x5f, 0xa1, 0xce, 0x31, 0xc0, 0x5f, 0xf1,
|
||||
0x24, 0x78, 0x93, 0x96, 0xce, 0x42, 0x32, 0x39, 0xd7, 0xa9, 0xb7, 0x4a, 0x49, 0x71, 0xeb, 0x14,
|
||||
0x77, 0xb0, 0x08, 0x4e, 0xe6, 0x42, 0xa6, 0x94, 0x3b, 0x48, 0xd9, 0x46, 0x9c, 0x21, 0xf9, 0x1c,
|
||||
0x1e, 0x98, 0xca, 0xd0, 0x4d, 0xf8, 0x1f, 0xcd, 0xb9, 0x90, 0x5a, 0x8b, 0x78, 0x84, 0xf7, 0x6c,
|
||||
0x3c, 0xd1, 0x33, 0x24, 0x54, 0x53, 0xa0, 0x32, 0xd5, 0x79, 0xbe, 0xf9, 0xb8, 0x76, 0x83, 0xdd,
|
||||
0x8d, 0xc7, 0x07, 0xe8, 0x19, 0x5f, 0xc0, 0xc3, 0xe5, 0xe3, 0xea, 0x39, 0x24, 0x37, 0xd7, 0x13,
|
||||
0x3c, 0x7f, 0xbf, 0x7c, 0x9e, 0x22, 0x85, 0xbe, 0x7f, 0x33, 0x03, 0x2d, 0xc0, 0x9d, 0xcd, 0x0c,
|
||||
0xb4, 0x04, 0x4f, 0xa0, 0xe3, 0x07, 0x62, 0x16, 0xb2, 0x85, 0xb6, 0xaf, 0x3d, 0x54, 0x7d, 0xdb,
|
||||
0xe0, 0x94, 0x8d, 0x39, 0xd7, 0xab, 0xfe, 0x9e, 0x96, 0x27, 0xeb, 0xfd, 0x7d, 0xc5, 0xa8, 0x2b,
|
||||
0x6b, 0x8c, 0x7a, 0xd9, 0x72, 0xab, 0x2b, 0x96, 0xeb, 0x3c, 0x87, 0xfd, 0xe5, 0x8b, 0x4f, 0xe6,
|
||||
0xaf, 0xc3, 0xc0, 0x1b, 0x4c, 0xd8, 0x0d, 0x63, 0x8d, 0xf3, 0xf7, 0x55, 0xd8, 0x2e, 0xb5, 0x15,
|
||||
0xff, 0xeb, 0xb9, 0x0e, 0x3a, 0xe6, 0x23, 0x68, 0xcf, 0x92, 0xe0, 0x8a, 0x49, 0xee, 0x5e, 0xf2,
|
||||
0x85, 0xc9, 0xde, 0x60, 0x50, 0x2a, 0x1b, 0x3d, 0x56, 0x51, 0x55, 0x78, 0x49, 0x30, 0x53, 0x72,
|
||||
0xa1, 0x5f, 0x76, 0x68, 0x11, 0xa5, 0x92, 0xf9, 0xcf, 0xe3, 0x20, 0x32, 0x5e, 0xd9, 0xa4, 0x06,
|
||||
0x52, 0xa9, 0x4e, 0xdb, 0x2a, 0xf7, 0x31, 0x99, 0x37, 0x69, 0x06, 0xe7, 0x4e, 0xd3, 0x28, 0x3a,
|
||||
0xcd, 0x31, 0xd8, 0x46, 0xbb, 0xc2, 0x95, 0xb1, 0xab, 0xf8, 0x98, 0x0a, 0xe9, 0x83, 0x4d, 0xcd,
|
||||
0x93, 0x21, 0x3f, 0x8b, 0xbf, 0x8e, 0x83, 0x88, 0x76, 0x93, 0x12, 0x4c, 0x3e, 0x85, 0x66, 0x5a,
|
||||
0xb2, 0x9b, 0x16, 0xe1, 0xd1, 0x06, 0x46, 0xa6, 0x57, 0x10, 0x34, 0x3b, 0xa0, 0x32, 0x18, 0x8f,
|
||||
0xbc, 0x64, 0x31, 0x93, 0x99, 0xd3, 0xe7, 0x08, 0xcc, 0x6f, 0x33, 0xee, 0x49, 0x96, 0xbb, 0x7e,
|
||||
0x8e, 0x50, 0x49, 0xcb, 0x90, 0x2a, 0x07, 0xc6, 0x22, 0xa3, 0x83, 0x2f, 0xd7, 0xcd, 0xd1, 0x47,
|
||||
0x7c, 0x21, 0x9c, 0x5f, 0x56, 0xe1, 0xc1, 0x5b, 0xbe, 0xc8, 0xe8, 0xcb, 0xca, 0xf4, 0xf5, 0x1e,
|
||||
0xc0, 0x0c, 0x6d, 0x03, 0xd5, 0xa5, 0xf5, 0xdf, 0xd2, 0x18, 0xa5, 0xad, 0x4c, 0xe9, 0xd5, 0xa2,
|
||||
0xd2, 0xdf, 0x12, 0x58, 0xef, 0x41, 0xc3, 0xf4, 0xf3, 0xa8, 0xbd, 0x16, 0xad, 0x2b, 0xf0, 0xd0,
|
||||
0x57, 0x76, 0x9b, 0xb6, 0x7d, 0x0b, 0xb5, 0x5b, 0xd7, 0x8a, 0xcf, 0x70, 0x87, 0xa8, 0x44, 0xed,
|
||||
0xbe, 0x0d, 0x7d, 0x19, 0x02, 0xe4, 0x12, 0x48, 0xc2, 0xaf, 0x38, 0x0b, 0xb9, 0xaf, 0x82, 0x5c,
|
||||
0xc2, 0x85, 0xc8, 0x0a, 0xdd, 0xcf, 0x6e, 0xa4, 0xc6, 0x03, 0x6a, 0xce, 0xf7, 0xd3, 0xe3, 0xa3,
|
||||
0x48, 0x26, 0x0b, 0xba, 0x9b, 0x2c, 0xe3, 0xf7, 0x87, 0x70, 0x77, 0x3d, 0x31, 0xb1, 0xa1, 0xaa,
|
||||
0x5e, 0x48, 0x17, 0x51, 0x6a, 0xa9, 0xc4, 0xbd, 0x62, 0xe1, 0x9c, 0x1b, 0xeb, 0xd7, 0xc0, 0x27,
|
||||
0x95, 0x9f, 0x58, 0xce, 0x5f, 0x55, 0xc0, 0x5e, 0xf6, 0x40, 0xf2, 0x79, 0x61, 0x0a, 0xb0, 0x52,
|
||||
0x20, 0x6e, 0xc8, 0x95, 0x85, 0x19, 0xc0, 0x57, 0xd0, 0x31, 0x8a, 0x52, 0x0f, 0x2a, 0x7a, 0x95,
|
||||
0xe5, 0x4a, 0x7f, 0xb3, 0xcb, 0xd3, 0xf6, 0x2c, 0x5b, 0xab, 0x1e, 0xb3, 0x91, 0x16, 0x9a, 0x55,
|
||||
0x34, 0xe1, 0xb7, 0x88, 0x91, 0xd6, 0x9c, 0xe9, 0x89, 0xff, 0xc3, 0x24, 0xc2, 0xf9, 0x31, 0xec,
|
||||
0xe0, 0xae, 0x12, 0xc8, 0xa4, 0xae, 0x9b, 0x85, 0xa2, 0xcf, 0x60, 0x2f, 0x3d, 0xf8, 0x4a, 0xcf,
|
||||
0x7a, 0x04, 0xe5, 0xec, 0xa6, 0xa7, 0x7f, 0x07, 0xee, 0xea, 0xe6, 0x54, 0x06, 0x57, 0x81, 0x5c,
|
||||
0x0c, 0x78, 0x24, 0x79, 0xf2, 0x96, 0xf3, 0x36, 0x54, 0x03, 0x5f, 0x3f, 0x6f, 0x87, 0xaa, 0xa5,
|
||||
0x33, 0xd4, 0xe1, 0xb4, 0xcc, 0xa1, 0xef, 0x79, 0x1c, 0xfd, 0xf6, 0xa6, 0x5c, 0x46, 0xda, 0x2f,
|
||||
0xcb, 0x5c, 0x86, 0x81, 0x98, 0x06, 0x42, 0xdc, 0x82, 0x8d, 0x0b, 0xef, 0xaf, 0xb2, 0x19, 0xc7,
|
||||
0xb2, 0x94, 0xc2, 0xb9, 0x72, 0xeb, 0xb4, 0xb8, 0x62, 0xd2, 0xf0, 0x6c, 0x19, 0x4c, 0x5f, 0x2a,
|
||||
0x07, 0x56, 0x35, 0x83, 0xe0, 0x3c, 0xc2, 0xa7, 0x6a, 0xd2, 0xc6, 0x84, 0x89, 0x53, 0xce, 0x23,
|
||||
0xe7, 0x2f, 0x2c, 0x78, 0xf4, 0xf6, 0x1b, 0x04, 0x09, 0xe1, 0x3d, 0x66, 0xb6, 0x5d, 0x0f, 0xf7,
|
||||
0xdd, 0xa8, 0x48, 0x60, 0xec, 0xfb, 0xe9, 0xf2, 0x7c, 0x60, 0x13, 0x47, 0xfa, 0x80, 0x6d, 0xbe,
|
||||
0xcd, 0xf9, 0xc7, 0x16, 0xfc, 0xe0, 0xed, 0xe7, 0x57, 0xa2, 0xda, 0x4a, 0xab, 0x5f, 0x2b, 0xb6,
|
||||
0xfa, 0x6f, 0x60, 0xb7, 0x28, 0x6e, 0x5e, 0xde, 0x77, 0x9f, 0xfd, 0xf4, 0xa6, 0x22, 0x1f, 0x14,
|
||||
0x01, 0xd5, 0x0d, 0x50, 0x3b, 0x5a, 0xc2, 0x14, 0x63, 0x61, 0xad, 0x14, 0x0b, 0x09, 0xd4, 0x12,
|
||||
0xce, 0xd2, 0xfc, 0x86, 0x6b, 0x25, 0xb2, 0x9f, 0x5a, 0x83, 0x49, 0x6f, 0x39, 0x42, 0xe5, 0x3e,
|
||||
0x66, 0x2c, 0xce, 0xa4, 0xb8, 0x0c, 0x56, 0xa5, 0xa1, 0x99, 0x81, 0x62, 0x97, 0xda, 0xa1, 0x29,
|
||||
0xa8, 0x32, 0x29, 0x9b, 0xcb, 0x49, 0xd6, 0xcc, 0x1b, 0x48, 0xb7, 0xbe, 0xb3, 0x70, 0x91, 0xce,
|
||||
0x4e, 0x31, 0x1b, 0x75, 0x54, 0xeb, 0x3b, 0x0b, 0x17, 0xc6, 0xc7, 0x56, 0x02, 0x76, 0x5b, 0x57,
|
||||
0x38, 0xc5, 0x80, 0xfd, 0x06, 0x76, 0xa7, 0x7c, 0xfa, 0x9a, 0x27, 0x62, 0x12, 0xcc, 0xd2, 0x62,
|
||||
0xb1, 0x73, 0xcb, 0x87, 0x7c, 0x95, 0x71, 0xd0, 0xa5, 0x25, 0xb5, 0xa7, 0x4b, 0x18, 0xf2, 0x4b,
|
||||
0x2b, 0x2f, 0x17, 0xd7, 0x55, 0xb2, 0xdb, 0x78, 0xe5, 0xf3, 0x1b, 0x5f, 0x99, 0x76, 0x22, 0x2b,
|
||||
0x95, 0x6f, 0x56, 0xf1, 0xad, 0x6e, 0xa9, 0x67, 0xf6, 0x79, 0xc8, 0x95, 0x06, 0xba, 0xda, 0x65,
|
||||
0x0c, 0xb8, 0xe4, 0x6c, 0x3b, 0x4b, 0xce, 0xe6, 0xfc, 0x97, 0x05, 0xf6, 0xb2, 0xb5, 0x10, 0x80,
|
||||
0xfa, 0x38, 0x56, 0x2b, 0xfb, 0x1d, 0xb2, 0x03, 0xed, 0x31, 0xbf, 0x3e, 0x8e, 0xf8, 0x59, 0x7c,
|
||||
0x1c, 0x71, 0xdb, 0x22, 0xf7, 0xe0, 0xce, 0x98, 0x5f, 0x9f, 0xe8, 0xa2, 0xe9, 0xab, 0x24, 0x9e,
|
||||
0xcf, 0x54, 0xf0, 0xb3, 0x2b, 0xa4, 0x0d, 0x8d, 0x57, 0x3c, 0x52, 0x4c, 0xec, 0x2a, 0x69, 0xc1,
|
||||
0x16, 0x55, 0x0a, 0xb3, 0x6b, 0x84, 0x40, 0x77, 0x50, 0x2a, 0x55, 0xed, 0x2d, 0xc5, 0x24, 0x8b,
|
||||
0xc4, 0x87, 0xd1, 0x55, 0x20, 0xf1, 0x72, 0xbb, 0x4e, 0xf6, 0xc0, 0x5e, 0x4e, 0x94, 0x76, 0x83,
|
||||
0xfc, 0x00, 0xf6, 0x33, 0x6c, 0xae, 0x92, 0x74, 0xbf, 0x49, 0xee, 0xc0, 0x4e, 0xb6, 0x7f, 0x14,
|
||||
0xa8, 0x4e, 0xc5, 0x6e, 0xe9, 0x3b, 0x56, 0x1e, 0xcc, 0x06, 0xe7, 0xcf, 0x2d, 0xb0, 0x97, 0x15,
|
||||
0x4b, 0x7a, 0xb0, 0xb7, 0x8c, 0x3b, 0xf4, 0x43, 0xf5, 0x02, 0x0f, 0xe0, 0xde, 0xf2, 0xce, 0x09,
|
||||
0x8f, 0xfc, 0x20, 0xba, 0xb0, 0x2d, 0xf2, 0x10, 0x7a, 0xcb, 0x9b, 0x69, 0xf4, 0xb5, 0x2b, 0xeb,
|
||||
0x76, 0x87, 0xdc, 0x0b, 0x55, 0xc5, 0x68, 0x57, 0x9d, 0x3f, 0xb5, 0xe0, 0xfe, 0x46, 0x6d, 0xab,
|
||||
0xe7, 0x3c, 0x8f, 0x2e, 0xa3, 0xf8, 0x3a, 0xb2, 0xdf, 0x51, 0x40, 0x7e, 0x67, 0x07, 0x9a, 0x85,
|
||||
0x3b, 0x3a, 0xd0, 0xcc, 0x79, 0x92, 0x6d, 0x68, 0x0d, 0x58, 0xe4, 0xf1, 0x30, 0xe4, 0xbe, 0x5d,
|
||||
0x53, 0xe7, 0xce, 0x54, 0x63, 0xc4, 0x7d, 0x7b, 0x8b, 0xec, 0xc2, 0xf6, 0x79, 0x84, 0xe0, 0xb7,
|
||||
0x71, 0x22, 0x27, 0x0b, 0xbb, 0xee, 0x7c, 0x6f, 0x41, 0x47, 0xd9, 0xe3, 0xf3, 0x38, 0xbe, 0x9c,
|
||||
0xb2, 0xe4, 0x72, 0x73, 0xa8, 0x9f, 0x27, 0xa1, 0x49, 0x5c, 0x6a, 0x99, 0x8d, 0x17, 0xaa, 0x85,
|
||||
0xf1, 0xc2, 0x03, 0x68, 0x61, 0x6b, 0xe0, 0x2a, 0x5a, 0x1d, 0x54, 0x9a, 0x88, 0x38, 0x4f, 0xc2,
|
||||
0x62, 0x8f, 0xb8, 0x55, 0xee, 0x11, 0xdf, 0x03, 0x30, 0xc6, 0xaa, 0x2c, 0xb4, 0xae, 0x2d, 0xd4,
|
||||
0x60, 0xfa, 0xd2, 0xf9, 0x13, 0x78, 0x57, 0x49, 0x38, 0x8a, 0xc4, 0xb9, 0xe0, 0x89, 0xba, 0x48,
|
||||
0x0f, 0x56, 0x37, 0x88, 0xba, 0x0f, 0xcd, 0xb9, 0xa1, 0x33, 0xf2, 0x66, 0x30, 0xce, 0x39, 0x27,
|
||||
0x2c, 0xc0, 0xb1, 0x8a, 0xae, 0x19, 0x1b, 0x08, 0x1f, 0x96, 0x5a, 0xd8, 0x5a, 0x49, 0x3c, 0xe7,
|
||||
0x6b, 0x5d, 0x2e, 0x0d, 0x42, 0xce, 0x92, 0x17, 0x81, 0x90, 0x71, 0xb2, 0x28, 0x06, 0x4f, 0xab,
|
||||
0x14, 0x3c, 0xdf, 0x03, 0xf0, 0x14, 0xa1, 0xfe, 0x16, 0x13, 0xdc, 0x0d, 0xa6, 0x2f, 0x9d, 0x7f,
|
||||
0xb1, 0x80, 0x28, 0x66, 0xe6, 0xc7, 0x82, 0x93, 0xc0, 0x93, 0xf3, 0x84, 0xaf, 0x1d, 0x82, 0x15,
|
||||
0xa6, 0x8c, 0x95, 0x0d, 0x53, 0xc6, 0x2a, 0xce, 0x70, 0x56, 0xa6, 0x8c, 0x35, 0x44, 0xa7, 0x53,
|
||||
0xc6, 0x07, 0xd0, 0xc2, 0xa6, 0x0d, 0xc7, 0x8c, 0x7a, 0xea, 0x83, 0x63, 0xc6, 0xd3, 0xb5, 0x63,
|
||||
0xc6, 0x3a, 0x12, 0x6c, 0x18, 0x33, 0x36, 0x8a, 0x63, 0xc6, 0x09, 0xdc, 0x59, 0xfd, 0x12, 0xb1,
|
||||
0x79, 0x92, 0xfa, 0x13, 0x68, 0xce, 0x0c, 0x91, 0x29, 0x0f, 0x1f, 0x96, 0x43, 0x62, 0x99, 0x13,
|
||||
0xcd, 0xa8, 0x9d, 0xbf, 0xad, 0x40, 0xbb, 0x30, 0xc2, 0xdf, 0xa0, 0xf7, 0x1e, 0x34, 0x4c, 0x01,
|
||||
0x9e, 0xbe, 0x97, 0x01, 0x8b, 0x22, 0x55, 0x4b, 0x22, 0x95, 0xdb, 0x0b, 0xdd, 0xec, 0x15, 0xda,
|
||||
0x0b, 0x02, 0xb5, 0x19, 0x93, 0x13, 0xd3, 0x2a, 0xe0, 0x3a, 0xd3, 0x54, 0xbd, 0xa0, 0xa9, 0xe2,
|
||||
0xf4, 0x5c, 0x0f, 0x59, 0xb2, 0xe9, 0xf9, 0x1e, 0x6c, 0xf1, 0x69, 0xfc, 0xf3, 0x00, 0x73, 0x5f,
|
||||
0x8b, 0x6a, 0x40, 0xa9, 0xea, 0x9a, 0x85, 0x21, 0x97, 0x66, 0xea, 0x62, 0x20, 0xc5, 0x5c, 0x99,
|
||||
0x91, 0x69, 0xbf, 0x70, 0x8d, 0x6a, 0x0d, 0x7c, 0x9f, 0x47, 0xa6, 0xed, 0x32, 0xd0, 0xe6, 0x91,
|
||||
0x8b, 0xf3, 0x9d, 0x79, 0xae, 0xf4, 0x97, 0x97, 0xf5, 0xcf, 0x55, 0x78, 0x94, 0xca, 0xda, 0x89,
|
||||
0x77, 0xb5, 0x3c, 0x90, 0x2d, 0x0c, 0x3e, 0x71, 0x8d, 0x33, 0x06, 0x9e, 0x04, 0x57, 0xdc, 0x77,
|
||||
0xdf, 0x24, 0xf1, 0xd4, 0xbc, 0x52, 0xdb, 0xe0, 0xbe, 0x4c, 0xe2, 0x29, 0xf9, 0x14, 0xf6, 0xf5,
|
||||
0x34, 0x40, 0x70, 0xdf, 0xc5, 0x0d, 0x33, 0xd4, 0xc4, 0x91, 0xbc, 0x76, 0xf4, 0x7b, 0x38, 0x1b,
|
||||
0x10, 0xdc, 0x1f, 0x66, 0xfb, 0x87, 0x6a, 0x5b, 0x4f, 0xb8, 0x22, 0x2f, 0x65, 0xaf, 0x1f, 0x16,
|
||||
0x34, 0x0a, 0xb9, 0xff, 0x06, 0x56, 0x1d, 0xca, 0x22, 0xd2, 0x86, 0x6b, 0xc3, 0x4f, 0x3e, 0x19,
|
||||
0x99, 0x33, 0xd7, 0x55, 0x7e, 0xe1, 0x47, 0x2a, 0xf2, 0x11, 0xbe, 0x03, 0xfe, 0xa0, 0x65, 0xad,
|
||||
0xfb, 0xdd, 0xc8, 0xd0, 0xd2, 0x94, 0x4a, 0x5d, 0x6b, 0x7e, 0xf9, 0x48, 0xed, 0x78, 0xf5, 0x84,
|
||||
0xda, 0xa5, 0x19, 0x99, 0xf3, 0xdf, 0x96, 0x0e, 0x21, 0xa7, 0xec, 0x2a, 0xeb, 0xdc, 0x8a, 0xf6,
|
||||
0x6a, 0x95, 0xed, 0x75, 0xdd, 0x6f, 0x0e, 0x0f, 0xa1, 0xf5, 0x86, 0x5d, 0xc5, 0xf3, 0x24, 0x90,
|
||||
0x5a, 0x35, 0x4d, 0x9a, 0x23, 0xde, 0x12, 0x5b, 0x9f, 0x40, 0x47, 0xe7, 0x7a, 0xb7, 0xe8, 0xc2,
|
||||
0x6d, 0x8d, 0xd3, 0xc3, 0xa2, 0x5f, 0x85, 0x5d, 0x1d, 0x14, 0xc5, 0x24, 0x4e, 0x24, 0xf6, 0xcd,
|
||||
0xc2, 0xd8, 0xeb, 0x0e, 0x6e, 0x9c, 0x2a, 0xbc, 0xea, 0x9f, 0x85, 0xca, 0x03, 0x3c, 0x12, 0xa6,
|
||||
0x60, 0x53, 0x4b, 0x65, 0x47, 0x81, 0x70, 0x25, 0x17, 0xa9, 0xd9, 0xd6, 0x03, 0x71, 0xc6, 0x85,
|
||||
0xfc, 0xba, 0xd6, 0xac, 0xd9, 0x5b, 0xce, 0x5f, 0x5b, 0x3a, 0x7a, 0xaf, 0x8c, 0x1e, 0x36, 0x98,
|
||||
0xe5, 0x72, 0x5d, 0x57, 0x59, 0xad, 0xeb, 0x46, 0xf0, 0x68, 0xa2, 0xc3, 0xb0, 0xcb, 0x12, 0x6f,
|
||||
0x12, 0x5c, 0x71, 0x57, 0xcc, 0x67, 0x33, 0x25, 0x3b, 0x8f, 0xd8, 0xeb, 0xd0, 0x8c, 0x9d, 0x9a,
|
||||
0xf4, 0xa1, 0x21, 0xeb, 0x6b, 0xaa, 0x53, 0x4d, 0x34, 0xd2, 0x34, 0xce, 0xdf, 0x59, 0xda, 0x18,
|
||||
0x4c, 0x7a, 0x54, 0xb9, 0xe5, 0x86, 0x93, 0xee, 0xcf, 0xa1, 0x6e, 0x4a, 0x3b, 0x5d, 0x96, 0x2f,
|
||||
0x8d, 0x6b, 0x0a, 0x0c, 0x0f, 0xce, 0xf2, 0xa1, 0x24, 0x35, 0x87, 0x9c, 0x4f, 0xa0, 0x5d, 0x40,
|
||||
0x63, 0x9a, 0x1f, 0x1f, 0x8d, 0x8f, 0xbf, 0x1d, 0xeb, 0x34, 0x7f, 0x46, 0xcf, 0x4f, 0xcf, 0x46,
|
||||
0x43, 0xdb, 0xc2, 0x74, 0x3d, 0x46, 0xf0, 0xdb, 0x63, 0x7a, 0xf6, 0xe2, 0x67, 0x76, 0xc5, 0xf9,
|
||||
0xbe, 0xaa, 0xc7, 0x76, 0xc5, 0x72, 0xc1, 0x54, 0x41, 0x1b, 0x84, 0x27, 0x50, 0x43, 0xff, 0x31,
|
||||
0xc6, 0xa4, 0xd6, 0xea, 0x83, 0x64, 0x6c, 0x1c, 0xbc, 0x22, 0x63, 0x65, 0x5c, 0xde, 0x44, 0x85,
|
||||
0xa0, 0xe8, 0x22, 0xf5, 0xf1, 0x1c, 0xa1, 0x54, 0x62, 0x06, 0x4d, 0x3a, 0xa9, 0x99, 0x69, 0x74,
|
||||
0x86, 0xeb, 0xe3, 0xef, 0x3c, 0x09, 0x17, 0xb3, 0x38, 0x12, 0x69, 0x64, 0xcc, 0x60, 0x15, 0x64,
|
||||
0x55, 0xe5, 0x1e, 0xe8, 0xc3, 0xda, 0xfe, 0x5a, 0x06, 0xd3, 0x97, 0x84, 0xaf, 0x1f, 0xff, 0x36,
|
||||
0xf1, 0x65, 0x7f, 0xb3, 0xfc, 0xb2, 0x6b, 0xbe, 0xfa, 0x60, 0x4d, 0x99, 0xbc, 0x6e, 0x68, 0xac,
|
||||
0x75, 0xd8, 0xca, 0x1a, 0xef, 0xdf, 0x03, 0xb2, 0xa1, 0xe4, 0x2a, 0xea, 0xe2, 0x64, 0x34, 0x1e,
|
||||
0x1e, 0x8e, 0xbf, 0x32, 0x25, 0xd7, 0x60, 0x30, 0x3a, 0x51, 0x9a, 0xd1, 0x25, 0xd7, 0x68, 0xf0,
|
||||
0xf2, 0x70, 0x3c, 0x1a, 0xda, 0x55, 0x05, 0x0d, 0xfa, 0xe3, 0xc1, 0xe8, 0xe5, 0x68, 0x68, 0xd7,
|
||||
0x9c, 0x7f, 0xb7, 0x74, 0x47, 0x5e, 0x2e, 0x79, 0x87, 0xdc, 0x0b, 0xc4, 0xe6, 0x9f, 0x7d, 0x1e,
|
||||
0x42, 0xcb, 0xbc, 0xe7, 0x61, 0x6a, 0x69, 0x39, 0x82, 0xfc, 0x01, 0xec, 0xf8, 0xe6, 0xbc, 0x5b,
|
||||
0xb2, 0xbc, 0x8f, 0x97, 0x67, 0x1b, 0xeb, 0xae, 0x3c, 0x48, 0x17, 0xe6, 0x79, 0xba, 0x7e, 0x09,
|
||||
0x76, 0x3e, 0x84, 0x6e, 0x99, 0xa2, 0xf4, 0xb1, 0xef, 0x94, 0x3e, 0xd6, 0x72, 0xfe, 0xb9, 0x02,
|
||||
0x3b, 0x4b, 0xff, 0xf2, 0xb0, 0x39, 0xe7, 0x2f, 0xcf, 0xa1, 0x2b, 0x2b, 0x73, 0x68, 0xf2, 0x21,
|
||||
0x90, 0x22, 0x89, 0x5b, 0x1c, 0xe8, 0xd9, 0x05, 0x42, 0x1d, 0xab, 0x8a, 0x45, 0x44, 0xed, 0x36,
|
||||
0x45, 0x04, 0xf9, 0x0c, 0x3a, 0x22, 0xf6, 0x02, 0x16, 0xba, 0x61, 0x10, 0x5d, 0xa6, 0xff, 0x67,
|
||||
0xb2, 0xf4, 0xdf, 0x0b, 0xa7, 0x48, 0xf1, 0x52, 0x11, 0xd0, 0xb6, 0xc8, 0x01, 0xf2, 0xbb, 0xb0,
|
||||
0xc7, 0x23, 0xe1, 0xa6, 0x85, 0xa4, 0xeb, 0x67, 0xff, 0x59, 0x52, 0x5d, 0x1d, 0xb3, 0xae, 0x54,
|
||||
0xaa, 0x94, 0xf0, 0x65, 0x94, 0x70, 0x04, 0x00, 0x65, 0xd7, 0x69, 0x3f, 0x5b, 0xa8, 0xf6, 0xac,
|
||||
0x72, 0xb5, 0x77, 0x04, 0x6d, 0xd3, 0x08, 0xab, 0x86, 0x0c, 0x9f, 0xb0, 0xfb, 0xec, 0x57, 0xf2,
|
||||
0x1b, 0xfb, 0xf9, 0xbf, 0x1d, 0xbd, 0x32, 0xff, 0x75, 0x64, 0x98, 0x1e, 0x60, 0xe7, 0x5f, 0x3c,
|
||||
0xed, 0xfc, 0x8d, 0x05, 0x5d, 0x25, 0x62, 0xe1, 0xe6, 0xdf, 0x86, 0x76, 0x92, 0x41, 0xe9, 0x70,
|
||||
0x64, 0x2f, 0xe7, 0x9f, 0x93, 0xd2, 0x22, 0x21, 0x79, 0x06, 0x7b, 0x62, 0xfe, 0xda, 0xe4, 0x58,
|
||||
0xf1, 0xb5, 0x88, 0xa3, 0xe7, 0x0b, 0xc9, 0xd3, 0xe2, 0x6b, 0xed, 0x1e, 0xf9, 0x10, 0x76, 0xd3,
|
||||
0x81, 0x73, 0x7e, 0x40, 0x4f, 0xe1, 0x57, 0x37, 0x9c, 0xef, 0xac, 0xac, 0x90, 0x51, 0x79, 0x14,
|
||||
0x9b, 0x90, 0xcc, 0xc4, 0xd4, 0x72, 0x6d, 0xa6, 0xbc, 0x0b, 0x75, 0xf3, 0xd3, 0x95, 0xce, 0x02,
|
||||
0x06, 0x2a, 0x1a, 0x69, 0xad, 0x64, 0xa4, 0x0f, 0xa1, 0x95, 0x4f, 0x6e, 0xb7, 0x70, 0x98, 0x95,
|
||||
0x23, 0x72, 0x7f, 0xad, 0x17, 0x8b, 0xdf, 0x7f, 0xaa, 0xc0, 0x6e, 0x41, 0x34, 0xd5, 0xcd, 0xc7,
|
||||
0x11, 0xf9, 0x04, 0xea, 0x0c, 0x57, 0x28, 0x63, 0xf7, 0x99, 0xb3, 0xb6, 0x30, 0xd0, 0xc4, 0x07,
|
||||
0xfa, 0x0f, 0x35, 0x27, 0xc8, 0x0f, 0x61, 0x3b, 0x0e, 0x7d, 0x43, 0x72, 0x9e, 0xe5, 0x9b, 0x32,
|
||||
0xd2, 0x54, 0x2b, 0x0a, 0x32, 0xe3, 0xd1, 0x0d, 0xb5, 0x47, 0x4a, 0xa5, 0xf2, 0x6f, 0xdd, 0x48,
|
||||
0xb7, 0x0b, 0xdb, 0x47, 0xa3, 0x9f, 0x0d, 0xfa, 0x74, 0xe8, 0xf6, 0x87, 0x43, 0x74, 0x6d, 0x02,
|
||||
0xdd, 0xfe, 0x60, 0x70, 0x7c, 0x3e, 0x3e, 0x3b, 0x35, 0x38, 0x4b, 0xb5, 0xd2, 0x29, 0xd9, 0x70,
|
||||
0xf4, 0x72, 0xa4, 0x03, 0xde, 0x1e, 0xd8, 0x19, 0x21, 0x1d, 0xbd, 0x3a, 0xfe, 0x06, 0x03, 0x1f,
|
||||
0x40, 0xfd, 0xe5, 0xf1, 0xe0, 0x48, 0x85, 0x3d, 0x15, 0x25, 0xce, 0xc7, 0x06, 0xda, 0x22, 0x3b,
|
||||
0xd0, 0x3e, 0x3f, 0x1c, 0xba, 0xe7, 0x27, 0xc3, 0xbe, 0x62, 0x50, 0x27, 0x36, 0x74, 0xc6, 0xfd,
|
||||
0x57, 0x23, 0x77, 0xf0, 0xa2, 0x3f, 0xfe, 0x6a, 0x34, 0xb4, 0x1b, 0xce, 0x1f, 0xea, 0xf4, 0x5b,
|
||||
0x70, 0x39, 0xf2, 0xe3, 0x25, 0x1f, 0x5d, 0xb1, 0xc5, 0x9c, 0xb8, 0xec, 0x9e, 0x99, 0x92, 0x2a,
|
||||
0x05, 0x25, 0x3d, 0xdf, 0xfe, 0xfd, 0xf6, 0xc1, 0x47, 0x9f, 0xa6, 0x87, 0x5f, 0xd7, 0x71, 0xf5,
|
||||
0xf1, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x54, 0xc8, 0x8b, 0xec, 0x27, 0x00, 0x00,
|
||||
}
|
||||
|
|
|
@ -189,6 +189,61 @@ message SyncActivityCenterDismissed {
|
|||
repeated bytes ids = 2;
|
||||
}
|
||||
|
||||
message SyncActivityCenterNotificationState {
|
||||
uint64 updated_at = 1;
|
||||
bool has_seen = 2;
|
||||
}
|
||||
|
||||
message SyncActivityCenterNotifications {
|
||||
repeated SyncActivityCenterNotification activity_center_notifications = 1;
|
||||
}
|
||||
|
||||
message SyncActivityCenterNotification {
|
||||
bytes id = 1;
|
||||
uint64 timestamp = 2;
|
||||
NotificationType notification_type = 3;
|
||||
enum NotificationType {
|
||||
NoType = 0;
|
||||
NewOneToOne = 1;
|
||||
NewPrivateGroupChat = 2;
|
||||
Mention = 3;
|
||||
Reply = 4;
|
||||
ContactRequest = 5;
|
||||
CommunityInvitation = 6;
|
||||
CommunityRequest = 7;
|
||||
CommunityMembershipRequest = 8;
|
||||
CommunityKicked = 9;
|
||||
ContactVerification = 10;
|
||||
}
|
||||
string chat_id = 4;
|
||||
bool read = 5;
|
||||
bool dismissed = 6;
|
||||
bool accepted = 7;
|
||||
bytes message = 8;
|
||||
string author = 9;
|
||||
bytes reply_message = 10;
|
||||
string community_id = 11;
|
||||
MembershipStatus membership_status = 12;
|
||||
enum MembershipStatus {
|
||||
MembershipStatusIdle = 0;
|
||||
MembershipStatusPending = 1;
|
||||
MembershipStatusAccepted = 2;
|
||||
MembershipStatusDeclined = 3;
|
||||
}
|
||||
ContactVerificationStatus contact_verification_status = 13;
|
||||
enum ContactVerificationStatus {
|
||||
Unknown = 0;
|
||||
Pending = 1;
|
||||
Accepted = 2;
|
||||
Declined = 3;
|
||||
Cancelled = 4;
|
||||
Trusted = 5;
|
||||
UnTrustWorthy = 6;
|
||||
}
|
||||
bool deleted = 14;
|
||||
uint64 updated_at = 15;
|
||||
}
|
||||
|
||||
message SyncBookmark {
|
||||
uint64 clock = 1;
|
||||
string url = 2;
|
||||
|
|
|
@ -328,6 +328,10 @@ func (m *StatusMessage) HandleApplication() error {
|
|||
return m.unmarshalProtobufData(new(protobuf.SyncKeypair))
|
||||
case protobuf.ApplicationMetadataMessage_SYNC_FULL_KEYPAIR:
|
||||
return m.unmarshalProtobufData(new(protobuf.SyncKeypairFull))
|
||||
case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_NOTIFICATION:
|
||||
return m.unmarshalProtobufData(new(protobuf.SyncActivityCenterNotifications))
|
||||
case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_NOTIFICATION_STATE:
|
||||
return m.unmarshalProtobufData(new(protobuf.SyncActivityCenterNotificationState))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -1152,7 +1152,7 @@ func (api *PublicAPI) MarkAllActivityCenterNotificationsRead(ctx context.Context
|
|||
}
|
||||
|
||||
func (api *PublicAPI) MarkActivityCenterNotificationsRead(ctx context.Context, ids []types.HexBytes) (*protocol.MessengerResponse, error) {
|
||||
return api.service.messenger.MarkActivityCenterNotificationsRead(ctx, ids, true)
|
||||
return api.service.messenger.MarkActivityCenterNotificationsRead(ctx, ids, 0, true)
|
||||
}
|
||||
|
||||
func (api *PublicAPI) MarkActivityCenterNotificationsUnread(ids []types.HexBytes) (*protocol.MessengerResponse, error) {
|
||||
|
@ -1160,11 +1160,11 @@ func (api *PublicAPI) MarkActivityCenterNotificationsUnread(ids []types.HexBytes
|
|||
}
|
||||
|
||||
func (api *PublicAPI) AcceptActivityCenterNotifications(ctx context.Context, ids []types.HexBytes) (*protocol.MessengerResponse, error) {
|
||||
return api.service.messenger.AcceptActivityCenterNotifications(ctx, ids, true)
|
||||
return api.service.messenger.AcceptActivityCenterNotifications(ctx, ids, 0, true)
|
||||
}
|
||||
|
||||
func (api *PublicAPI) DismissActivityCenterNotifications(ctx context.Context, ids []types.HexBytes) error {
|
||||
_, err := api.service.messenger.DismissActivityCenterNotifications(ctx, ids, true)
|
||||
_, err := api.service.messenger.DismissActivityCenterNotifications(ctx, ids, 0, true)
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue