From 526e3d74f1ed90525249ca793505009e2eb1cf61 Mon Sep 17 00:00:00 2001 From: Mikhail Rogachev Date: Thu, 15 Feb 2024 22:13:12 +0300 Subject: [PATCH] Feat: proof of membership for profile showcase communities (#4713) * chore: move profile showcase structures to the indentity package * feat: implement proof of membership for unecrypted communities * feat: implement proof of membership for encrypted communties with grants --- protocol/communities/manager.go | 41 + protocol/communities/persistence.go | 25 + protocol/identity/profile_showcase.go | 145 +++ protocol/messenger_profile_showcase.go | 308 +++--- protocol/messenger_profile_showcase_test.go | 233 +++-- protocol/messenger_response.go | 14 +- protocol/migrations/migrations.go | 906 ++++++++++-------- .../1707749393_add_community_grants.up.sql | 5 + protocol/persistence_profile_showcase.go | 200 +--- protocol/persistence_profile_showcase_test.go | 142 +-- protocol/protobuf/profile_showcase.pb.go | 86 +- protocol/protobuf/profile_showcase.proto | 1 + services/ext/api.go | 9 +- 13 files changed, 1270 insertions(+), 845 deletions(-) create mode 100644 protocol/identity/profile_showcase.go create mode 100644 protocol/migrations/sqlite/1707749393_add_community_grants.up.sql diff --git a/protocol/communities/manager.go b/protocol/communities/manager.go index 67edd7e35..8dee0102b 100644 --- a/protocol/communities/manager.go +++ b/protocol/communities/manager.go @@ -797,6 +797,16 @@ func (m *Manager) CreateCommunity(request *requests.CreateCommunity, publish boo return nil, err } + // Save grant for own community + grant, err := community.BuildGrant(&m.identity.PublicKey, "") + if err != nil { + return nil, err + } + err = m.persistence.SaveCommunityGrant(community.IDString(), grant, description.Clock) + if err != nil { + return nil, err + } + // Mark this device as the control node syncControlNode := &protobuf.SyncCommunityControlNode{ Clock: 1, @@ -1272,6 +1282,16 @@ func (m *Manager) ImportCommunity(key *ecdsa.PrivateKey, clock uint64) (*Communi return nil, err } + // Save grant for own community + grant, err := community.BuildGrant(&m.identity.PublicKey, "") + if err != nil { + return nil, err + } + err = m.persistence.SaveCommunityGrant(community.IDString(), grant, community.Description().Clock) + if err != nil { + return nil, err + } + // Mark this device as the control node syncControlNode := &protobuf.SyncCommunityControlNode{ Clock: clock, @@ -2850,6 +2870,10 @@ func (m *Manager) HandleCommunityRequestToJoinResponse(signer *ecdsa.PublicKey, return nil, err } + if err = m.handleCommunityGrant(community.ID(), request.Grant, request.Clock); err != nil { + return nil, err + } + err = m.persistence.SaveCommunity(community) if err != nil { @@ -4405,6 +4429,10 @@ func (m *Manager) GetAllCommunityTokens() ([]*community_token.CommunityToken, er return m.persistence.GetAllCommunityTokens() } +func (m *Manager) GetCommunityGrant(communityID string) ([]byte, uint64, error) { + return m.persistence.GetCommunityGrant(communityID) +} + func (m *Manager) ImageToBase64(uri string) string { if uri == "" { return "" @@ -4720,6 +4748,19 @@ func (m *Manager) handleCommunityTokensMetadata(community *Community) error { return nil } +func (m *Manager) handleCommunityGrant(communityID types.HexBytes, grant []byte, clock uint64) error { + _, oldClock, err := m.persistence.GetCommunityGrant(communityID.String()) + if err != nil { + return err + } + + if oldClock >= clock { + return nil + } + + return m.persistence.SaveCommunityGrant(communityID.String(), grant, clock) +} + func (m *Manager) FetchCommunityToken(community *Community, tokenMetadata *protobuf.CommunityTokenMetadata, chainID uint64, contractAddress string) (*community_token.CommunityToken, error) { communityID := community.IDString() diff --git a/protocol/communities/persistence.go b/protocol/communities/persistence.go index ab1dbcfd2..abb9eaf7d 100644 --- a/protocol/communities/persistence.go +++ b/protocol/communities/persistence.go @@ -1326,6 +1326,31 @@ func (p *Persistence) RemoveCommunityToken(chainID int, contractAddress string) return err } +func (p *Persistence) GetCommunityGrant(communityID string) ([]byte, uint64, error) { + var grant []byte + var clock uint64 + + err := p.db.QueryRow(`SELECT grant, clock FROM community_grants WHERE community_id = ?`, communityID).Scan(&grant, &clock) + if err == sql.ErrNoRows { + return []byte{}, 0, nil + } else if err != nil { + return []byte{}, 0, err + } + + return grant, clock, nil +} + +func (p *Persistence) SaveCommunityGrant(communityID string, grant []byte, clock uint64) error { + _, err := p.db.Exec(`INSERT OR REPLACE INTO community_grants(community_id, grant, clock) VALUES (?, ?, ?)`, + communityID, grant, clock) + return err +} + +func (p *Persistence) RemoveCommunityGrant(communityID string) error { + _, err := p.db.Exec(`DELETE FROM community_grants WHERE community_id = ?`, communityID) + return err +} + func decodeWrappedCommunityDescription(wrappedDescriptionBytes []byte) (*protobuf.CommunityDescription, error) { metadata := &protobuf.ApplicationMetadataMessage{} diff --git a/protocol/identity/profile_showcase.go b/protocol/identity/profile_showcase.go new file mode 100644 index 000000000..3de7bcb44 --- /dev/null +++ b/protocol/identity/profile_showcase.go @@ -0,0 +1,145 @@ +package identity + +import "errors" + +var ErrorNoAccountProvidedWithTokenOrCollectible = errors.New("no account provided with tokens or collectible") +var ErrorDublicateAccountAddress = errors.New("duplicate account address") +var ErrorAccountVisibilityLowerThanCollectible = errors.New("account visibility lower than collectible") + +type ProfileShowcaseVisibility int + +const ( + ProfileShowcaseVisibilityNoOne ProfileShowcaseVisibility = iota + ProfileShowcaseVisibilityIDVerifiedContacts + ProfileShowcaseVisibilityContacts + ProfileShowcaseVisibilityEveryone +) + +type ProfileShowcaseMembershipStatus int + +const ( + ProfileShowcaseMembershipStatusUnproven ProfileShowcaseMembershipStatus = iota + ProfileShowcaseMembershipStatusProvenMember + ProfileShowcaseMembershipStatusNotAMember +) + +type ProfileShowcaseCommunityPreference struct { + CommunityID string `json:"communityId"` + ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` + Order int `json:"order"` +} + +type ProfileShowcaseAccountPreference struct { + Address string `json:"address"` + Name string `json:"name"` + ColorID string `json:"colorId"` + Emoji string `json:"emoji"` + ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` + Order int `json:"order"` +} + +type ProfileShowcaseCollectiblePreference struct { + ContractAddress string `json:"contractAddress"` + ChainID uint64 `json:"chainId"` + TokenID string `json:"tokenId"` + CommunityID string `json:"communityId"` + AccountAddress string `json:"accountAddress"` + ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` + Order int `json:"order"` +} + +type ProfileShowcaseVerifiedTokenPreference struct { + Symbol string `json:"symbol"` + ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` + Order int `json:"order"` +} + +type ProfileShowcaseUnverifiedTokenPreference struct { + ContractAddress string `json:"contractAddress"` + ChainID uint64 `json:"chainId"` + CommunityID string `json:"communityId"` + ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` + Order int `json:"order"` +} + +type ProfileShowcasePreferences struct { + Communities []*ProfileShowcaseCommunityPreference `json:"communities"` + Accounts []*ProfileShowcaseAccountPreference `json:"accounts"` + Collectibles []*ProfileShowcaseCollectiblePreference `json:"collectibles"` + VerifiedTokens []*ProfileShowcaseVerifiedTokenPreference `json:"verifiedTokens"` + UnverifiedTokens []*ProfileShowcaseUnverifiedTokenPreference `json:"unverifiedTokens"` +} + +type ProfileShowcaseCommunity struct { + CommunityID string `json:"communityId"` + Order int `json:"order"` + MembershipStatus ProfileShowcaseMembershipStatus `json:"membershipStatus"` +} + +type ProfileShowcaseAccount struct { + ContactID string `json:"contactId"` + Address string `json:"address"` + Name string `json:"name"` + ColorID string `json:"colorId"` + Emoji string `json:"emoji"` + Order int `json:"order"` +} + +type ProfileShowcaseCollectible struct { + ContractAddress string `json:"contractAddress"` + ChainID uint64 `json:"chainId"` + TokenID string `json:"tokenId"` + CommunityID string `json:"communityId"` + AccountAddress string `json:"accountAddress"` + Order int `json:"order"` +} + +type ProfileShowcaseVerifiedToken struct { + Symbol string `json:"symbol"` + Order int `json:"order"` +} + +type ProfileShowcaseUnverifiedToken struct { + ContractAddress string `json:"contractAddress"` + ChainID uint64 `json:"chainId"` + CommunityID string `json:"communityId"` + Order int `json:"order"` +} + +type ProfileShowcase struct { + ContactID string `json:"contactId"` + Communities []*ProfileShowcaseCommunity `json:"communities"` + Accounts []*ProfileShowcaseAccount `json:"accounts"` + Collectibles []*ProfileShowcaseCollectible `json:"collectibles"` + VerifiedTokens []*ProfileShowcaseVerifiedToken `json:"verifiedTokens"` + UnverifiedTokens []*ProfileShowcaseUnverifiedToken `json:"unverifiedTokens"` +} + +func Validate(preferences *ProfileShowcasePreferences) error { + if (len(preferences.VerifiedTokens) > 0 || len(preferences.UnverifiedTokens) > 0 || len(preferences.Collectibles) > 0) && + len(preferences.Accounts) == 0 { + return ErrorNoAccountProvidedWithTokenOrCollectible + } + + accountsMap := make(map[string]*ProfileShowcaseAccountPreference) + for _, account := range preferences.Accounts { + if _, ok := accountsMap[account.Address]; ok { + return ErrorDublicateAccountAddress + } + accountsMap[account.Address] = account + } + + for _, collectible := range preferences.Collectibles { + account, ok := accountsMap[collectible.AccountAddress] + if !ok { + return nil + // NOTE: with current wallet collectible implementation we don't know account on this stage + // return errorNoAccountAddressForCollectible + } + if account.ShowcaseVisibility < collectible.ShowcaseVisibility { + return ErrorAccountVisibilityLowerThanCollectible + } + } + + return nil +} diff --git a/protocol/messenger_profile_showcase.go b/protocol/messenger_profile_showcase.go index 6cdfe4142..20f26d00e 100644 --- a/protocol/messenger_profile_showcase.go +++ b/protocol/messenger_profile_showcase.go @@ -1,50 +1,65 @@ package protocol import ( + "bytes" "crypto/ecdsa" crand "crypto/rand" "errors" "reflect" + "sort" "github.com/golang/protobuf/proto" + "go.uber.org/zap" + "github.com/status-im/status-go/eth-node/crypto" "github.com/status-im/status-go/multiaccounts/accounts" "github.com/status-im/status-go/protocol/common" "github.com/status-im/status-go/protocol/communities" + "github.com/status-im/status-go/protocol/identity" "github.com/status-im/status-go/protocol/protobuf" ) -var errorNoAccountProvidedWithTokenOrCollectible = errors.New("no account provided with tokens or collectible") -var errorDublicateAccountAddress = errors.New("duplicate account address") - -// NOTE: this error is temporary unused because we don't know account on this stage -// var errorNoAccountAddressForCollectible = errors.New("no account found for collectible") -var errorAccountVisibilityLowerThanCollectible = errors.New("account visibility lower than collectible") var errorDecryptingPayloadEncryptionKey = errors.New("decrypting the payload encryption key resulted in no error and a nil key") -func toProfileShowcaseCommunityProto(preferences []*ProfileShowcaseCommunityPreference, visibility ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseCommunity { - communities := []*protobuf.ProfileShowcaseCommunity{} +func (m *Messenger) toProfileShowcaseCommunityProto(preferences []*identity.ProfileShowcaseCommunityPreference, visibility identity.ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseCommunity { + entries := []*protobuf.ProfileShowcaseCommunity{} for _, preference := range preferences { if preference.ShowcaseVisibility != visibility { continue } - communities = append(communities, &protobuf.ProfileShowcaseCommunity{ + entry := &protobuf.ProfileShowcaseCommunity{ CommunityId: preference.CommunityID, Order: uint32(preference.Order), - }) + } + + community, err := m.communitiesManager.GetByIDString(preference.CommunityID) + if err != nil { + m.logger.Warn("failed to get community for profile entry ", zap.Error(err)) + } + + if community != nil && community.Encrypted() { + grant, _, err := m.communitiesManager.GetCommunityGrant(preference.CommunityID) + if err != nil { + m.logger.Warn("failed to get community for profile entry ", zap.Error(err)) + } + + entry.Grant = grant + } + + entries = append(entries, entry) } - return communities + return entries } -func toProfileShowcaseAccountProto(preferences []*ProfileShowcaseAccountPreference, visibility ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseAccount { - accounts := []*protobuf.ProfileShowcaseAccount{} +func (m *Messenger) toProfileShowcaseAccountProto(preferences []*identity.ProfileShowcaseAccountPreference, visibility identity.ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseAccount { + entries := []*protobuf.ProfileShowcaseAccount{} for _, preference := range preferences { if preference.ShowcaseVisibility != visibility { continue } - accounts = append(accounts, &protobuf.ProfileShowcaseAccount{ + entries = append(entries, &protobuf.ProfileShowcaseAccount{ Address: preference.Address, Name: preference.Name, ColorId: preference.ColorID, @@ -52,17 +67,17 @@ func toProfileShowcaseAccountProto(preferences []*ProfileShowcaseAccountPreferen Order: uint32(preference.Order), }) } - return accounts + return entries } -func toProfileShowcaseCollectibleProto(preferences []*ProfileShowcaseCollectiblePreference, visibility ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseCollectible { - collectibles := []*protobuf.ProfileShowcaseCollectible{} +func (m *Messenger) toProfileShowcaseCollectibleProto(preferences []*identity.ProfileShowcaseCollectiblePreference, visibility identity.ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseCollectible { + entries := []*protobuf.ProfileShowcaseCollectible{} for _, preference := range preferences { if preference.ShowcaseVisibility != visibility { continue } - collectibles = append(collectibles, &protobuf.ProfileShowcaseCollectible{ + entries = append(entries, &protobuf.ProfileShowcaseCollectible{ ContractAddress: preference.ContractAddress, ChainId: preference.ChainID, TokenId: preference.TokenID, @@ -71,55 +86,89 @@ func toProfileShowcaseCollectibleProto(preferences []*ProfileShowcaseCollectible Order: uint32(preference.Order), }) } - return collectibles + return entries } -func toProfileShowcaseVerifiedTokensProto(preferences []*ProfileShowcaseVerifiedTokenPreference, visibility ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseVerifiedToken { - tokens := []*protobuf.ProfileShowcaseVerifiedToken{} +func (m *Messenger) toProfileShowcaseVerifiedTokensProto(preferences []*identity.ProfileShowcaseVerifiedTokenPreference, visibility identity.ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseVerifiedToken { + entries := []*protobuf.ProfileShowcaseVerifiedToken{} for _, preference := range preferences { if preference.ShowcaseVisibility != visibility { continue } - tokens = append(tokens, &protobuf.ProfileShowcaseVerifiedToken{ + entries = append(entries, &protobuf.ProfileShowcaseVerifiedToken{ Symbol: preference.Symbol, Order: uint32(preference.Order), }) } - return tokens + return entries } -func toProfileShowcaseUnverifiedTokensProto(preferences []*ProfileShowcaseUnverifiedTokenPreference, visibility ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseUnverifiedToken { - tokens := []*protobuf.ProfileShowcaseUnverifiedToken{} +func (m *Messenger) toProfileShowcaseUnverifiedTokensProto(preferences []*identity.ProfileShowcaseUnverifiedTokenPreference, visibility identity.ProfileShowcaseVisibility) []*protobuf.ProfileShowcaseUnverifiedToken { + entries := []*protobuf.ProfileShowcaseUnverifiedToken{} for _, preference := range preferences { if preference.ShowcaseVisibility != visibility { continue } - tokens = append(tokens, &protobuf.ProfileShowcaseUnverifiedToken{ + entries = append(entries, &protobuf.ProfileShowcaseUnverifiedToken{ ContractAddress: preference.ContractAddress, ChainId: preference.ChainID, Order: uint32(preference.Order), }) } - return tokens + return entries } -func fromProfileShowcaseCommunityProto(messages []*protobuf.ProfileShowcaseCommunity) []*ProfileShowcaseCommunity { - communities := []*ProfileShowcaseCommunity{} - for _, entry := range messages { - communities = append(communities, &ProfileShowcaseCommunity{ - CommunityID: entry.CommunityId, - Order: int(entry.Order), +func (m *Messenger) fromProfileShowcaseCommunityProto(senderPubKey *ecdsa.PublicKey, messages []*protobuf.ProfileShowcaseCommunity) []*identity.ProfileShowcaseCommunity { + entries := []*identity.ProfileShowcaseCommunity{} + for _, message := range messages { + entry := &identity.ProfileShowcaseCommunity{ + CommunityID: message.CommunityId, + Order: int(message.Order), + MembershipStatus: identity.ProfileShowcaseMembershipStatusUnproven, + } + + community, err := m.FetchCommunity(&FetchCommunityRequest{ + CommunityKey: message.CommunityId, + Shard: nil, + TryDatabase: true, + WaitForResponse: true, }) + if err != nil { + m.logger.Warn("failed to fetch community for profile entry ", zap.Error(err)) + } + + if community != nil && community.Encrypted() { + grant, err := community.VerifyGrantSignature(message.Grant) + if err != nil { + m.logger.Warn("failed to verify grant signature ", zap.Error(err)) + entry.MembershipStatus = identity.ProfileShowcaseMembershipStatusNotAMember + } else { + if grant != nil && bytes.Equal(grant.MemberId, crypto.CompressPubkey(senderPubKey)) { + entry.MembershipStatus = identity.ProfileShowcaseMembershipStatusProvenMember + } else { // Show as not a member if membership can't be proven + entry.MembershipStatus = identity.ProfileShowcaseMembershipStatusNotAMember + } + } + } else if community != nil { + // Use member list as a proof for unecrypted communities + if community.HasMember(senderPubKey) { + entry.MembershipStatus = identity.ProfileShowcaseMembershipStatusProvenMember + } else { + entry.MembershipStatus = identity.ProfileShowcaseMembershipStatusNotAMember + } + } + + entries = append(entries, entry) } - return communities + return entries } -func fromProfileShowcaseAccountProto(messages []*protobuf.ProfileShowcaseAccount) []*ProfileShowcaseAccount { - accounts := []*ProfileShowcaseAccount{} +func (m *Messenger) fromProfileShowcaseAccountProto(messages []*protobuf.ProfileShowcaseAccount) []*identity.ProfileShowcaseAccount { + entries := []*identity.ProfileShowcaseAccount{} for _, entry := range messages { - accounts = append(accounts, &ProfileShowcaseAccount{ + entries = append(entries, &identity.ProfileShowcaseAccount{ Address: entry.Address, Name: entry.Name, ColorID: entry.ColorId, @@ -127,13 +176,13 @@ func fromProfileShowcaseAccountProto(messages []*protobuf.ProfileShowcaseAccount Order: int(entry.Order), }) } - return accounts + return entries } -func fromProfileShowcaseCollectibleProto(messages []*protobuf.ProfileShowcaseCollectible) []*ProfileShowcaseCollectible { - collectibles := []*ProfileShowcaseCollectible{} +func (m *Messenger) fromProfileShowcaseCollectibleProto(messages []*protobuf.ProfileShowcaseCollectible) []*identity.ProfileShowcaseCollectible { + entries := []*identity.ProfileShowcaseCollectible{} for _, entry := range messages { - collectibles = append(collectibles, &ProfileShowcaseCollectible{ + entries = append(entries, &identity.ProfileShowcaseCollectible{ ContractAddress: entry.ContractAddress, ChainID: entry.ChainId, TokenID: entry.TokenId, @@ -142,63 +191,34 @@ func fromProfileShowcaseCollectibleProto(messages []*protobuf.ProfileShowcaseCol Order: int(entry.Order), }) } - return collectibles + return entries } -func fromProfileShowcaseVerifiedTokenProto(messages []*protobuf.ProfileShowcaseVerifiedToken) []*ProfileShowcaseVerifiedToken { - tokens := []*ProfileShowcaseVerifiedToken{} +func (m *Messenger) fromProfileShowcaseVerifiedTokenProto(messages []*protobuf.ProfileShowcaseVerifiedToken) []*identity.ProfileShowcaseVerifiedToken { + entries := []*identity.ProfileShowcaseVerifiedToken{} for _, entry := range messages { - tokens = append(tokens, &ProfileShowcaseVerifiedToken{ + entries = append(entries, &identity.ProfileShowcaseVerifiedToken{ Symbol: entry.Symbol, Order: int(entry.Order), }) } - return tokens + return entries } -func fromProfileShowcaseUnverifiedTokenProto(messages []*protobuf.ProfileShowcaseUnverifiedToken) []*ProfileShowcaseUnverifiedToken { - tokens := []*ProfileShowcaseUnverifiedToken{} +func (m *Messenger) fromProfileShowcaseUnverifiedTokenProto(messages []*protobuf.ProfileShowcaseUnverifiedToken) []*identity.ProfileShowcaseUnverifiedToken { + entries := []*identity.ProfileShowcaseUnverifiedToken{} for _, entry := range messages { - tokens = append(tokens, &ProfileShowcaseUnverifiedToken{ + entries = append(entries, &identity.ProfileShowcaseUnverifiedToken{ ContractAddress: entry.ContractAddress, ChainID: entry.ChainId, Order: int(entry.Order), }) } - return tokens + return entries } -func Validate(preferences *ProfileShowcasePreferences) error { - if (len(preferences.VerifiedTokens) > 0 || len(preferences.UnverifiedTokens) > 0 || len(preferences.Collectibles) > 0) && - len(preferences.Accounts) == 0 { - return errorNoAccountProvidedWithTokenOrCollectible - } - - accountsMap := make(map[string]*ProfileShowcaseAccountPreference) - for _, account := range preferences.Accounts { - if _, ok := accountsMap[account.Address]; ok { - return errorDublicateAccountAddress - } - accountsMap[account.Address] = account - } - - for _, collectible := range preferences.Collectibles { - account, ok := accountsMap[collectible.AccountAddress] - if !ok { - return nil - // NOTE: with current wallet collectible implementation we don't know account on this stage - // return errorNoAccountAddressForCollectible - } - if account.ShowcaseVisibility < collectible.ShowcaseVisibility { - return errorAccountVisibilityLowerThanCollectible - } - } - - return nil -} - -func (m *Messenger) SetProfileShowcasePreferences(preferences *ProfileShowcasePreferences) error { - err := Validate(preferences) +func (m *Messenger) SetProfileShowcasePreferences(preferences *identity.ProfileShowcasePreferences) error { + err := identity.Validate(preferences) if err != nil { return err } @@ -215,15 +235,15 @@ func (m *Messenger) DispatchProfileShowcase() error { return m.publishContactCode() } -func (m *Messenger) GetProfileShowcasePreferences() (*ProfileShowcasePreferences, error) { +func (m *Messenger) GetProfileShowcasePreferences() (*identity.ProfileShowcasePreferences, error) { return m.persistence.GetProfileShowcasePreferences() } -func (m *Messenger) GetProfileShowcaseForContact(contactID string) (*ProfileShowcase, error) { +func (m *Messenger) GetProfileShowcaseForContact(contactID string) (*identity.ProfileShowcase, error) { return m.persistence.GetProfileShowcaseForContact(contactID) } -func (m *Messenger) GetProfileShowcaseAccountsByAddress(address string) ([]*ProfileShowcaseAccount, error) { +func (m *Messenger) GetProfileShowcaseAccountsByAddress(address string) ([]*identity.ProfileShowcaseAccount, error) { return m.persistence.GetProfileShowcaseAccountsByAddress(address) } @@ -324,27 +344,27 @@ func (m *Messenger) GetProfileShowcaseForSelfIdentity() (*protobuf.ProfileShowca } forEveryone := &protobuf.ProfileShowcaseEntries{ - Communities: toProfileShowcaseCommunityProto(preferences.Communities, ProfileShowcaseVisibilityEveryone), - Accounts: toProfileShowcaseAccountProto(preferences.Accounts, ProfileShowcaseVisibilityEveryone), - Collectibles: toProfileShowcaseCollectibleProto(preferences.Collectibles, ProfileShowcaseVisibilityEveryone), - VerifiedTokens: toProfileShowcaseVerifiedTokensProto(preferences.VerifiedTokens, ProfileShowcaseVisibilityEveryone), - UnverifiedTokens: toProfileShowcaseUnverifiedTokensProto(preferences.UnverifiedTokens, ProfileShowcaseVisibilityEveryone), + Communities: m.toProfileShowcaseCommunityProto(preferences.Communities, identity.ProfileShowcaseVisibilityEveryone), + Accounts: m.toProfileShowcaseAccountProto(preferences.Accounts, identity.ProfileShowcaseVisibilityEveryone), + Collectibles: m.toProfileShowcaseCollectibleProto(preferences.Collectibles, identity.ProfileShowcaseVisibilityEveryone), + VerifiedTokens: m.toProfileShowcaseVerifiedTokensProto(preferences.VerifiedTokens, identity.ProfileShowcaseVisibilityEveryone), + UnverifiedTokens: m.toProfileShowcaseUnverifiedTokensProto(preferences.UnverifiedTokens, identity.ProfileShowcaseVisibilityEveryone), } forContacts := &protobuf.ProfileShowcaseEntries{ - Communities: toProfileShowcaseCommunityProto(preferences.Communities, ProfileShowcaseVisibilityContacts), - Accounts: toProfileShowcaseAccountProto(preferences.Accounts, ProfileShowcaseVisibilityContacts), - Collectibles: toProfileShowcaseCollectibleProto(preferences.Collectibles, ProfileShowcaseVisibilityContacts), - VerifiedTokens: toProfileShowcaseVerifiedTokensProto(preferences.VerifiedTokens, ProfileShowcaseVisibilityContacts), - UnverifiedTokens: toProfileShowcaseUnverifiedTokensProto(preferences.UnverifiedTokens, ProfileShowcaseVisibilityContacts), + Communities: m.toProfileShowcaseCommunityProto(preferences.Communities, identity.ProfileShowcaseVisibilityContacts), + Accounts: m.toProfileShowcaseAccountProto(preferences.Accounts, identity.ProfileShowcaseVisibilityContacts), + Collectibles: m.toProfileShowcaseCollectibleProto(preferences.Collectibles, identity.ProfileShowcaseVisibilityContacts), + VerifiedTokens: m.toProfileShowcaseVerifiedTokensProto(preferences.VerifiedTokens, identity.ProfileShowcaseVisibilityContacts), + UnverifiedTokens: m.toProfileShowcaseUnverifiedTokensProto(preferences.UnverifiedTokens, identity.ProfileShowcaseVisibilityContacts), } forIDVerifiedContacts := &protobuf.ProfileShowcaseEntries{ - Communities: toProfileShowcaseCommunityProto(preferences.Communities, ProfileShowcaseVisibilityIDVerifiedContacts), - Accounts: toProfileShowcaseAccountProto(preferences.Accounts, ProfileShowcaseVisibilityIDVerifiedContacts), - Collectibles: toProfileShowcaseCollectibleProto(preferences.Collectibles, ProfileShowcaseVisibilityIDVerifiedContacts), - VerifiedTokens: toProfileShowcaseVerifiedTokensProto(preferences.VerifiedTokens, ProfileShowcaseVisibilityIDVerifiedContacts), - UnverifiedTokens: toProfileShowcaseUnverifiedTokensProto(preferences.UnverifiedTokens, ProfileShowcaseVisibilityIDVerifiedContacts), + Communities: m.toProfileShowcaseCommunityProto(preferences.Communities, identity.ProfileShowcaseVisibilityIDVerifiedContacts), + Accounts: m.toProfileShowcaseAccountProto(preferences.Accounts, identity.ProfileShowcaseVisibilityIDVerifiedContacts), + Collectibles: m.toProfileShowcaseCollectibleProto(preferences.Collectibles, identity.ProfileShowcaseVisibilityIDVerifiedContacts), + VerifiedTokens: m.toProfileShowcaseVerifiedTokensProto(preferences.VerifiedTokens, identity.ProfileShowcaseVisibilityIDVerifiedContacts), + UnverifiedTokens: m.toProfileShowcaseUnverifiedTokensProto(preferences.UnverifiedTokens, identity.ProfileShowcaseVisibilityIDVerifiedContacts), } mutualContacts := []*Contact{} @@ -377,33 +397,66 @@ func (m *Messenger) GetProfileShowcaseForSelfIdentity() (*protobuf.ProfileShowca }, nil } +func (m *Messenger) buildProfileShowcaseFromEntries( + contactID string, + communities []*identity.ProfileShowcaseCommunity, + accounts []*identity.ProfileShowcaseAccount, + collectibles []*identity.ProfileShowcaseCollectible, + verifiedTokens []*identity.ProfileShowcaseVerifiedToken, + unverifiedTokens []*identity.ProfileShowcaseUnverifiedToken) *identity.ProfileShowcase { + sort.Slice(communities, func(i, j int) bool { + return communities[j].Order > communities[i].Order + }) + sort.Slice(accounts, func(i, j int) bool { + return accounts[j].Order > accounts[i].Order + }) + sort.Slice(collectibles, func(i, j int) bool { + return collectibles[j].Order > collectibles[i].Order + }) + sort.Slice(verifiedTokens, func(i, j int) bool { + return verifiedTokens[j].Order > verifiedTokens[i].Order + }) + sort.Slice(unverifiedTokens, func(i, j int) bool { + return unverifiedTokens[j].Order > unverifiedTokens[i].Order + }) + + return &identity.ProfileShowcase{ + ContactID: contactID, + Communities: communities, + Accounts: accounts, + Collectibles: collectibles, + VerifiedTokens: verifiedTokens, + UnverifiedTokens: unverifiedTokens, + } +} + func (m *Messenger) BuildProfileShowcaseFromIdentity(state *ReceivedMessageState, message *protobuf.ProfileShowcase) error { - communities := []*ProfileShowcaseCommunity{} - accounts := []*ProfileShowcaseAccount{} - collectibles := []*ProfileShowcaseCollectible{} - verifiedTokens := []*ProfileShowcaseVerifiedToken{} - unverifiedTokens := []*ProfileShowcaseUnverifiedToken{} - - communities = append(communities, fromProfileShowcaseCommunityProto(message.ForEveryone.Communities)...) - accounts = append(accounts, fromProfileShowcaseAccountProto(message.ForEveryone.Accounts)...) - collectibles = append(collectibles, fromProfileShowcaseCollectibleProto(message.ForEveryone.Collectibles)...) - verifiedTokens = append(verifiedTokens, fromProfileShowcaseVerifiedTokenProto(message.ForEveryone.VerifiedTokens)...) - unverifiedTokens = append(unverifiedTokens, fromProfileShowcaseUnverifiedTokenProto(message.ForEveryone.UnverifiedTokens)...) - senderPubKey := state.CurrentMessageState.PublicKey contactID := state.CurrentMessageState.Contact.ID + communities := []*identity.ProfileShowcaseCommunity{} + accounts := []*identity.ProfileShowcaseAccount{} + collectibles := []*identity.ProfileShowcaseCollectible{} + verifiedTokens := []*identity.ProfileShowcaseVerifiedToken{} + unverifiedTokens := []*identity.ProfileShowcaseUnverifiedToken{} + + communities = append(communities, m.fromProfileShowcaseCommunityProto(senderPubKey, message.ForEveryone.Communities)...) + accounts = append(accounts, m.fromProfileShowcaseAccountProto(message.ForEveryone.Accounts)...) + collectibles = append(collectibles, m.fromProfileShowcaseCollectibleProto(message.ForEveryone.Collectibles)...) + verifiedTokens = append(verifiedTokens, m.fromProfileShowcaseVerifiedTokenProto(message.ForEveryone.VerifiedTokens)...) + unverifiedTokens = append(unverifiedTokens, m.fromProfileShowcaseUnverifiedTokenProto(message.ForEveryone.UnverifiedTokens)...) + forContacts, err := m.DecryptProfileShowcaseEntriesWithPubKey(senderPubKey, message.ForContacts) if err != nil { return err } if forContacts != nil { - communities = append(communities, fromProfileShowcaseCommunityProto(forContacts.Communities)...) - accounts = append(accounts, fromProfileShowcaseAccountProto(forContacts.Accounts)...) - collectibles = append(collectibles, fromProfileShowcaseCollectibleProto(forContacts.Collectibles)...) - verifiedTokens = append(verifiedTokens, fromProfileShowcaseVerifiedTokenProto(forContacts.VerifiedTokens)...) - unverifiedTokens = append(unverifiedTokens, fromProfileShowcaseUnverifiedTokenProto(forContacts.UnverifiedTokens)...) + communities = append(communities, m.fromProfileShowcaseCommunityProto(senderPubKey, forContacts.Communities)...) + accounts = append(accounts, m.fromProfileShowcaseAccountProto(forContacts.Accounts)...) + collectibles = append(collectibles, m.fromProfileShowcaseCollectibleProto(forContacts.Collectibles)...) + verifiedTokens = append(verifiedTokens, m.fromProfileShowcaseVerifiedTokenProto(forContacts.VerifiedTokens)...) + unverifiedTokens = append(unverifiedTokens, m.fromProfileShowcaseUnverifiedTokenProto(forContacts.UnverifiedTokens)...) } forIDVerifiedContacts, err := m.DecryptProfileShowcaseEntriesWithPubKey(senderPubKey, message.ForIdVerifiedContacts) @@ -412,24 +465,15 @@ func (m *Messenger) BuildProfileShowcaseFromIdentity(state *ReceivedMessageState } if forIDVerifiedContacts != nil { - communities = append(communities, fromProfileShowcaseCommunityProto(forIDVerifiedContacts.Communities)...) - accounts = append(accounts, fromProfileShowcaseAccountProto(forIDVerifiedContacts.Accounts)...) - collectibles = append(collectibles, fromProfileShowcaseCollectibleProto(forIDVerifiedContacts.Collectibles)...) - verifiedTokens = append(verifiedTokens, fromProfileShowcaseVerifiedTokenProto(forIDVerifiedContacts.VerifiedTokens)...) - unverifiedTokens = append(unverifiedTokens, fromProfileShowcaseUnverifiedTokenProto(forIDVerifiedContacts.UnverifiedTokens)...) + communities = append(communities, m.fromProfileShowcaseCommunityProto(senderPubKey, forIDVerifiedContacts.Communities)...) + accounts = append(accounts, m.fromProfileShowcaseAccountProto(forIDVerifiedContacts.Accounts)...) + collectibles = append(collectibles, m.fromProfileShowcaseCollectibleProto(forIDVerifiedContacts.Collectibles)...) + verifiedTokens = append(verifiedTokens, m.fromProfileShowcaseVerifiedTokenProto(forIDVerifiedContacts.VerifiedTokens)...) + unverifiedTokens = append(unverifiedTokens, m.fromProfileShowcaseUnverifiedTokenProto(forIDVerifiedContacts.UnverifiedTokens)...) } - // TODO: validate community membership here (https://github.com/status-im/status-desktop/issues/13081) - // TODO: validate collectible ownership here (https://github.com/status-im/status-desktop/issues/13073) - - newShowcase := &ProfileShowcase{ - ContactID: contactID, - Communities: communities, - Accounts: accounts, - Collectibles: collectibles, - VerifiedTokens: verifiedTokens, - UnverifiedTokens: unverifiedTokens, - } + newShowcase := m.buildProfileShowcaseFromEntries( + contactID, communities, accounts, collectibles, verifiedTokens, unverifiedTokens) oldShowcase, err := m.persistence.GetProfileShowcaseForContact(contactID) if err != nil { diff --git a/protocol/messenger_profile_showcase_test.go b/protocol/messenger_profile_showcase_test.go index 874af96b3..8cec2b23f 100644 --- a/protocol/messenger_profile_showcase_test.go +++ b/protocol/messenger_profile_showcase_test.go @@ -10,6 +10,7 @@ import ( "github.com/status-im/status-go/eth-node/types" "github.com/status-im/status-go/multiaccounts/accounts" "github.com/status-im/status-go/protocol/common" + "github.com/status-im/status-go/protocol/identity" "github.com/status-im/status-go/protocol/protobuf" "github.com/status-im/status-go/protocol/requests" ) @@ -111,82 +112,66 @@ func (s *TestMessengerProfileShowcase) verifiedContact(theirMessenger *Messenger s.Require().Equal(common.ContactVerificationStateTrusted, resp.Messages()[0].ContactVerificationState) } -func (s *TestMessengerProfileShowcase) prepareShowcasePreferences() *ProfileShowcasePreferences { - return &ProfileShowcasePreferences{ - Communities: []*ProfileShowcaseCommunityPreference{ - &ProfileShowcaseCommunityPreference{ - CommunityID: "0x32433445133424", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, - Order: 0, - }, - &ProfileShowcaseCommunityPreference{ - CommunityID: "0x33443246664345", - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, - Order: 1, - }, - &ProfileShowcaseCommunityPreference{ - CommunityID: "0x33446343643446", - ShowcaseVisibility: ProfileShowcaseVisibilityIDVerifiedContacts, - Order: 2, - }, - }, - Accounts: []*ProfileShowcaseAccountPreference{ - &ProfileShowcaseAccountPreference{ +func (s *TestMessengerProfileShowcase) prepareShowcasePreferences() *identity.ProfileShowcasePreferences { + return &identity.ProfileShowcasePreferences{ + Communities: []*identity.ProfileShowcaseCommunityPreference{}, // empty to avoid fetching + Accounts: []*identity.ProfileShowcaseAccountPreference{ + &identity.ProfileShowcaseAccountPreference{ Address: "0x32433445133424", Name: "Status Account", ColorID: "blue", Emoji: "-_-", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, - &ProfileShowcaseAccountPreference{ + &identity.ProfileShowcaseAccountPreference{ Address: "0x3845354643324", Name: "Money Box", ColorID: "red", Emoji: ":o)", - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, Order: 1, }, }, - Collectibles: []*ProfileShowcaseCollectiblePreference{ - &ProfileShowcaseCollectiblePreference{ + Collectibles: []*identity.ProfileShowcaseCollectiblePreference{ + &identity.ProfileShowcaseCollectiblePreference{ ContractAddress: "0x12378534257568678487683576", ChainID: 1, TokenID: "0x12321389592999f903", CommunityID: "0x01312357798976535", AccountAddress: "0x32433445133424", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, }, - VerifiedTokens: []*ProfileShowcaseVerifiedTokenPreference{ - &ProfileShowcaseVerifiedTokenPreference{ + VerifiedTokens: []*identity.ProfileShowcaseVerifiedTokenPreference{ + &identity.ProfileShowcaseVerifiedTokenPreference{ Symbol: "ETH", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 1, }, - &ProfileShowcaseVerifiedTokenPreference{ + &identity.ProfileShowcaseVerifiedTokenPreference{ Symbol: "DAI", - ShowcaseVisibility: ProfileShowcaseVisibilityIDVerifiedContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityIDVerifiedContacts, Order: 2, }, - &ProfileShowcaseVerifiedTokenPreference{ + &identity.ProfileShowcaseVerifiedTokenPreference{ Symbol: "SNT", - ShowcaseVisibility: ProfileShowcaseVisibilityNoOne, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityNoOne, Order: 3, }, }, - UnverifiedTokens: []*ProfileShowcaseUnverifiedTokenPreference{ - &ProfileShowcaseUnverifiedTokenPreference{ + UnverifiedTokens: []*identity.ProfileShowcaseUnverifiedTokenPreference{ + &identity.ProfileShowcaseUnverifiedTokenPreference{ ContractAddress: "0x454525452023452", ChainID: 3, - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, - &ProfileShowcaseUnverifiedTokenPreference{ + &identity.ProfileShowcaseUnverifiedTokenPreference{ ContractAddress: "0x12312323323233", ChainID: 6, - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, Order: 1, }, }, @@ -229,32 +214,32 @@ func (s *TestMessengerProfileShowcase) TestSaveAndGetProfileShowcasePreferences( } func (s *TestMessengerProfileShowcase) TestFailToSaveProfileShowcasePreferencesWithWrongVisibility() { - accountEntry := &ProfileShowcaseAccountPreference{ + accountEntry := &identity.ProfileShowcaseAccountPreference{ Address: "0x32433445133424", Name: "Status Account", ColorID: "blue", Emoji: ">:-]", - ShowcaseVisibility: ProfileShowcaseVisibilityIDVerifiedContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityIDVerifiedContacts, Order: 17, } - collectibleEntry := &ProfileShowcaseCollectiblePreference{ + collectibleEntry := &identity.ProfileShowcaseCollectiblePreference{ ContractAddress: "0x12378534257568678487683576", ChainID: 8, TokenID: "0x12321389592999f903", CommunityID: "0x01312357798976535", AccountAddress: "0x32433445133424", - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, Order: 17, } - request := &ProfileShowcasePreferences{ - Accounts: []*ProfileShowcaseAccountPreference{accountEntry}, - Collectibles: []*ProfileShowcaseCollectiblePreference{collectibleEntry}, + request := &identity.ProfileShowcasePreferences{ + Accounts: []*identity.ProfileShowcaseAccountPreference{accountEntry}, + Collectibles: []*identity.ProfileShowcaseCollectiblePreference{collectibleEntry}, } err := s.m.SetProfileShowcasePreferences(request) - s.Require().Equal(errorAccountVisibilityLowerThanCollectible, err) + s.Require().Equal(identity.ErrorAccountVisibilityLowerThanCollectible, err) } func (s *TestMessengerProfileShowcase) TestEncryptAndDecryptProfileShowcaseEntries() { @@ -407,7 +392,7 @@ func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() { resp, err := WaitOnMessengerResponse( mutualContact, func(r *MessengerResponse) bool { - return len(r.updatedProfileShowcases) > 0 && r.updatedProfileShowcases[contactID] != nil && len(r.updatedProfileShowcases[contactID].Communities) == 2 + return len(r.updatedProfileShowcases) > 0 && r.updatedProfileShowcases[contactID] != nil }, "no messages", ) @@ -416,12 +401,6 @@ func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() { profileShowcase := resp.updatedProfileShowcases[contactID] - s.Require().Len(profileShowcase.Communities, 2) - s.Require().Equal(profileShowcase.Communities[0].CommunityID, request.Communities[0].CommunityID) - s.Require().Equal(profileShowcase.Communities[0].Order, request.Communities[0].Order) - s.Require().Equal(profileShowcase.Communities[1].CommunityID, request.Communities[1].CommunityID) - s.Require().Equal(profileShowcase.Communities[1].Order, request.Communities[1].Order) - s.Require().Len(profileShowcase.Accounts, 2) s.Require().Equal(profileShowcase.Accounts[0].Address, request.Accounts[0].Address) s.Require().Equal(profileShowcase.Accounts[0].Name, request.Accounts[0].Name) @@ -469,15 +448,6 @@ func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() { profileShowcase, err = verifiedContact.GetProfileShowcaseForContact(contactID) s.Require().NoError(err) - s.Require().Len(profileShowcase.Communities, 3) - - s.Require().Equal(profileShowcase.Communities[0].CommunityID, request.Communities[0].CommunityID) - s.Require().Equal(profileShowcase.Communities[0].Order, request.Communities[0].Order) - s.Require().Equal(profileShowcase.Communities[1].CommunityID, request.Communities[1].CommunityID) - s.Require().Equal(profileShowcase.Communities[1].Order, request.Communities[1].Order) - s.Require().Equal(profileShowcase.Communities[2].CommunityID, request.Communities[2].CommunityID) - s.Require().Equal(profileShowcase.Communities[2].Order, request.Communities[2].Order) - s.Require().Len(profileShowcase.Accounts, 2) s.Require().Equal(profileShowcase.Accounts[0].Address, request.Accounts[0].Address) s.Require().Equal(profileShowcase.Accounts[0].Name, request.Accounts[0].Name) @@ -511,3 +481,140 @@ func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() { s.Require().Equal(profileShowcase.UnverifiedTokens[1].ChainID, request.UnverifiedTokens[1].ChainID) s.Require().Equal(profileShowcase.UnverifiedTokens[1].Order, request.UnverifiedTokens[1].Order) } + +func (s *TestMessengerProfileShowcase) TestProfileShowcaseProofOfMembershipUnencryptedCommunities() { + alice := s.m + + // Set Display name to pass shouldPublishChatIdentity check + profileKp := accounts.GetProfileKeypairForTest(true, false, false) + profileKp.KeyUID = alice.account.KeyUID + profileKp.Accounts[0].KeyUID = alice.account.KeyUID + + err := alice.settings.SaveOrUpdateKeypair(profileKp) + s.Require().NoError(err) + + err = alice.SetDisplayName("Alice") + s.Require().NoError(err) + + // Add bob as a mutual contact + bob := s.newMessenger() + _, err = bob.Start() + s.Require().NoError(err) + defer TearDownMessenger(&s.Suite, bob) + + s.mutualContact(bob) + + // Alice creates a community + aliceCommunity, _ := createCommunityConfigurable(&s.Suite, alice, protobuf.CommunityPermissions_MANUAL_ACCEPT) + advertiseCommunityTo(&s.Suite, aliceCommunity, alice, bob) + + // Bobs creates an another community + bobCommunity, _ := createCommunityConfigurable(&s.Suite, bob, protobuf.CommunityPermissions_AUTO_ACCEPT) + + // Add community to the Alice's profile showcase & get it on the Bob's side + err = alice.SetProfileShowcasePreferences(&identity.ProfileShowcasePreferences{ + Communities: []*identity.ProfileShowcaseCommunityPreference{ + &identity.ProfileShowcaseCommunityPreference{ + CommunityID: aliceCommunity.IDString(), + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, + Order: 0, + }, + &identity.ProfileShowcaseCommunityPreference{ + CommunityID: bobCommunity.IDString(), + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, + Order: 2, + }, + }, + }) + s.Require().NoError(err) + + contactID := types.EncodeHex(crypto.FromECDSAPub(&alice.identity.PublicKey)) + resp, err := WaitOnMessengerResponse( + bob, + func(r *MessengerResponse) bool { + return len(r.updatedProfileShowcases) > 0 && r.updatedProfileShowcases[contactID] != nil + }, + "no messages", + ) + s.Require().NoError(err) + s.Require().Len(resp.updatedProfileShowcases, 1) + + profileShowcase := resp.updatedProfileShowcases[contactID] + + // Verify community's data + s.Require().Len(profileShowcase.Communities, 2) + s.Require().Equal(profileShowcase.Communities[0].CommunityID, aliceCommunity.IDString()) + s.Require().Equal(profileShowcase.Communities[0].MembershipStatus, identity.ProfileShowcaseMembershipStatusProvenMember) + s.Require().Equal(profileShowcase.Communities[1].CommunityID, bobCommunity.IDString()) + s.Require().Equal(profileShowcase.Communities[1].MembershipStatus, identity.ProfileShowcaseMembershipStatusNotAMember) +} + +func (s *TestMessengerProfileShowcase) TestProfileShowcaseProofOfMembershipEncryptedCommunity() { + alice := s.m + + // Set Display name to pass shouldPublishChatIdentity check + profileKp := accounts.GetProfileKeypairForTest(true, false, false) + profileKp.KeyUID = alice.account.KeyUID + profileKp.Accounts[0].KeyUID = alice.account.KeyUID + + err := alice.settings.SaveOrUpdateKeypair(profileKp) + s.Require().NoError(err) + + err = alice.SetDisplayName("Alice") + s.Require().NoError(err) + + // Add bob as a mutual contact + bob := s.newMessenger() + _, err = bob.Start() + s.Require().NoError(err) + defer TearDownMessenger(&s.Suite, bob) + + s.mutualContact(bob) + + // Alice creates an ecrypted community + aliceCommunity, _ := createEncryptedCommunity(&s.Suite, alice) + s.Require().True(aliceCommunity.Encrypted()) + advertiseCommunityTo(&s.Suite, aliceCommunity, alice, bob) + + // Bob creates an another encryped community + bobCommunity, _ := createEncryptedCommunity(&s.Suite, bob) + s.Require().True(bobCommunity.Encrypted()) + advertiseCommunityTo(&s.Suite, bobCommunity, bob, alice) + + // Add community to the Alice's profile showcase & get it on the Bob's side + err = alice.SetProfileShowcasePreferences(&identity.ProfileShowcasePreferences{ + Communities: []*identity.ProfileShowcaseCommunityPreference{ + &identity.ProfileShowcaseCommunityPreference{ + CommunityID: aliceCommunity.IDString(), + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, + Order: 0, + }, + &identity.ProfileShowcaseCommunityPreference{ + CommunityID: bobCommunity.IDString(), + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, + Order: 1, + }, + }, + }) + s.Require().NoError(err) + + contactID := types.EncodeHex(crypto.FromECDSAPub(&alice.identity.PublicKey)) + resp, err := WaitOnMessengerResponse( + bob, + func(r *MessengerResponse) bool { + return len(r.updatedProfileShowcases) > 0 && r.updatedProfileShowcases[contactID] != nil + }, + "no messages", + ) + s.Require().NoError(err) + s.Require().Len(resp.updatedProfileShowcases, 1) + + profileShowcase := resp.updatedProfileShowcases[contactID] + + // Verify community's data + s.Require().Len(profileShowcase.Communities, 2) + s.Require().Equal(profileShowcase.Communities[0].CommunityID, aliceCommunity.IDString()) + s.Require().Equal(profileShowcase.Communities[0].MembershipStatus, identity.ProfileShowcaseMembershipStatusProvenMember) + s.Require().Equal(profileShowcase.Communities[1].CommunityID, bobCommunity.IDString()) + s.Require().Equal(profileShowcase.Communities[1].MembershipStatus, identity.ProfileShowcaseMembershipStatusNotAMember) +} diff --git a/protocol/messenger_response.go b/protocol/messenger_response.go index c5b946e87..7676f2f3d 100644 --- a/protocol/messenger_response.go +++ b/protocol/messenger_response.go @@ -88,7 +88,7 @@ type MessengerResponse struct { savedAddresses map[string]*wallet.SavedAddress SocialLinksInfo *identity.SocialLinksInfo ensUsernameDetails []*ensservice.UsernameDetail - updatedProfileShowcases map[string]*ProfileShowcase + updatedProfileShowcases map[string]*identity.ProfileShowcase seenAndUnseenMessages map[string]*SeenUnseenMessages } @@ -135,7 +135,7 @@ func (r *MessengerResponse) MarshalJSON() ([]byte, error) { SavedAddresses []*wallet.SavedAddress `json:"savedAddresses,omitempty"` SocialLinksInfo *identity.SocialLinksInfo `json:"socialLinksInfo,omitempty"` EnsUsernameDetails []*ensservice.UsernameDetail `json:"ensUsernameDetails,omitempty"` - UpdatedProfileShowcases []*ProfileShowcase `json:"updatedProfileShowcases,omitempty"` + UpdatedProfileShowcases []*identity.ProfileShowcase `json:"updatedProfileShowcases,omitempty"` SeenAndUnseenMessages []*SeenUnseenMessages `json:"seenAndUnseenMessages,omitempty"` }{ Contacts: r.Contacts, @@ -823,22 +823,22 @@ func (r *MessengerResponse) HasDiscordChannel(id string) bool { return false } -func (r *MessengerResponse) AddProfileShowcases(showcases []*ProfileShowcase) { +func (r *MessengerResponse) AddProfileShowcases(showcases []*identity.ProfileShowcase) { for _, showcase := range showcases { r.AddProfileShowcase(showcase) } } -func (r *MessengerResponse) AddProfileShowcase(showcase *ProfileShowcase) { +func (r *MessengerResponse) AddProfileShowcase(showcase *identity.ProfileShowcase) { if r.updatedProfileShowcases == nil { - r.updatedProfileShowcases = make(map[string]*ProfileShowcase) + r.updatedProfileShowcases = make(map[string]*identity.ProfileShowcase) } r.updatedProfileShowcases[showcase.ContactID] = showcase } -func (r *MessengerResponse) GetUpdatedProfileShowcases() []*ProfileShowcase { - var showcases []*ProfileShowcase +func (r *MessengerResponse) GetUpdatedProfileShowcases() []*identity.ProfileShowcase { + var showcases []*identity.ProfileShowcase for _, showcase := range r.updatedProfileShowcases { showcases = append(showcases, showcase) } diff --git a/protocol/migrations/migrations.go b/protocol/migrations/migrations.go index f7ad547ad..d75f61303 100644 --- a/protocol/migrations/migrations.go +++ b/protocol/migrations/migrations.go @@ -121,6 +121,7 @@ // 1704832512_add_peersyncing.up.sql (276B) // 1706028033_profile_showcase_address_and_community.up.sql (2.42kB) // 1706520870_add_bridge_messages_table.up.sql (389B) +// 1707749393_add_community_grants.up.sql (147B) // README.md (554B) // doc.go (850B) @@ -132,6 +133,7 @@ import ( "crypto/sha256" "fmt" "io" + "io/ioutil" "os" "path/filepath" "strings" @@ -141,7 +143,7 @@ import ( func bindataRead(data []byte, name string) ([]byte, error) { gz, err := gzip.NewReader(bytes.NewBuffer(data)) if err != nil { - return nil, fmt.Errorf("read %q: %w", name, err) + return nil, fmt.Errorf("read %q: %v", name, err) } var buf bytes.Buffer @@ -149,7 +151,7 @@ func bindataRead(data []byte, name string) ([]byte, error) { clErr := gz.Close() if err != nil { - return nil, fmt.Errorf("read %q: %w", name, err) + return nil, fmt.Errorf("read %q: %v", name, err) } if clErr != nil { return nil, err @@ -205,7 +207,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(1704739012, 0)} + info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -225,7 +227,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(1704739012, 0)} + info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -245,7 +247,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(1704739012, 0)} + info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -265,7 +267,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(1704739012, 0)} + info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -285,7 +287,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(1704739012, 0)} + info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -305,7 +307,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(1704739012, 0)} + info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -325,7 +327,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(1704739012, 0)} + info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -345,7 +347,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(1704739012, 0)} + info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -365,7 +367,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(1704739012, 0)} + info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -385,7 +387,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(1704739012, 0)} + info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -405,7 +407,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(1704739012, 0)} + info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -425,7 +427,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(1704739012, 0)} + info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -445,7 +447,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(1704739012, 0)} + info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -465,7 +467,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(1704739012, 0)} + info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -485,7 +487,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(1704739012, 0)} + info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -505,7 +507,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(1704739012, 0)} + info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -525,7 +527,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(1704739012, 0)} + info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -545,7 +547,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(1704739012, 0)} + info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -565,7 +567,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(1704739012, 0)} + info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -585,7 +587,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(1704739012, 0)} + info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -605,7 +607,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(1704739012, 0)} + info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -625,7 +627,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(1704739012, 0)} + info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -645,7 +647,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(1704739012, 0)} + info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -665,7 +667,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(1704739012, 0)} + info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -685,7 +687,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(1704739012, 0)} + info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -705,7 +707,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(1704739012, 0)} + info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -725,7 +727,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(1704739012, 0)} + info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -745,7 +747,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(1704739012, 0)} + info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -765,7 +767,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(1704739012, 0)} + info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -785,7 +787,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(1704739012, 0)} + info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -805,7 +807,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(1704739012, 0)} + info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -825,7 +827,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(1704739012, 0)} + info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -845,7 +847,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(1704739012, 0)} + info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -865,7 +867,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(1704739012, 0)} + info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -885,7 +887,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(1704739012, 0)} + info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -905,7 +907,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(1704739012, 0)} + info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -925,7 +927,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(1704739012, 0)} + info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -945,7 +947,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(1704739012, 0)} + info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -965,7 +967,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(1704739012, 0)} + info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -985,7 +987,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(1704739012, 0)} + info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1005,7 +1007,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(1704739012, 0)} + info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1025,7 +1027,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(1704739012, 0)} + info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1045,7 +1047,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(1704739012, 0)} + info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1065,7 +1067,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(1704739012, 0)} + info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1085,7 +1087,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(1704739012, 0)} + info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1105,7 +1107,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(1704739012, 0)} + info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1125,7 +1127,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(1704739012, 0)} + info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1145,7 +1147,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(1704739012, 0)} + info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1165,7 +1167,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(1704739012, 0)} + info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1185,7 +1187,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(1704739012, 0)} + info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1205,7 +1207,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(1704739012, 0)} + info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1225,7 +1227,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(1704739012, 0)} + info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1245,7 +1247,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(1704739012, 0)} + info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1265,7 +1267,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(1704739012, 0)} + info := bindataFileInfo{name: "1658236268_add_discord_message_authors_table.up.sql", size: 191, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1285,7 +1287,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(1704739012, 0)} + info := bindataFileInfo{name: "1659619997_add_discord_messages_table.up.sql", size: 371, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1305,7 +1307,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(1704739012, 0)} + info := bindataFileInfo{name: "1660226788_create_chat_identity_social_links.up.sql", size: 318, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1325,7 +1327,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(1704739012, 0)} + info := bindataFileInfo{name: "1660226789_add_walletconnectsessions_table.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1345,7 +1347,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(1704739012, 0)} + info := bindataFileInfo{name: "1661242854_add_communities_requests_to_leave.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1365,7 +1367,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(1704739012, 0)} + info := bindataFileInfo{name: "1662044232_add_chat_image.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1385,7 +1387,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(1704739012, 0)} + info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1405,7 +1407,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(1704739012, 0)} + info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1425,7 +1427,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(1704739012, 0)} + info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1445,7 +1447,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(1704739012, 0)} + info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1465,7 +1467,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(1704739012, 0)} + info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1485,7 +1487,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(1704739012, 0)} + info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1505,7 +1507,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(1704739012, 0)} + info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1525,7 +1527,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(1704739012, 0)} + info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 509, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1545,7 +1547,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(1704739012, 0)} + info := bindataFileInfo{name: "1670921937_add_album_id.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1565,7 +1567,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(1704739012, 0)} + info := bindataFileInfo{name: "1673373000_add_replied.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1585,7 +1587,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(1704739012, 0)} + info := bindataFileInfo{name: "1673428910_add_image_width_height.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1605,7 +1607,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(1704739012, 0)} + info := bindataFileInfo{name: "1674210659_add_contact_request_local_clock.up.sql", size: 691, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1625,7 +1627,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(1704739012, 0)} + info := bindataFileInfo{name: "1675212323_add_deleted_by.up.sql", size: 57, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1645,7 +1647,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(1704739012, 0)} + info := bindataFileInfo{name: "1675247084_add_activity_center_states.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1665,7 +1667,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(1704739012, 0)} + info := bindataFileInfo{name: "1675272329_fix_protocol_migration.up.sql", size: 183, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1685,7 +1687,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(1704739012, 0)} + info := bindataFileInfo{name: "1676998418_fix_activity_center_migration.up.sql", size: 178, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1705,7 +1707,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(1704739012, 0)} + info := bindataFileInfo{name: "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql", size: 381, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1725,7 +1727,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(1704739012, 0)} + info := bindataFileInfo{name: "1677486338_add_community_tokens_table.up.sql", size: 527, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1745,7 +1747,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(1704739012, 0)} + info := bindataFileInfo{name: "1678292329_add_collapsed_categories.up.sql", size: 170, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1765,7 +1767,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(1704739012, 0)} + info := bindataFileInfo{name: "1678800760_add_index_to_raw_messages.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1785,7 +1787,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(1704739012, 0)} + info := bindataFileInfo{name: "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql", size: 168, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1805,7 +1807,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(1704739012, 0)} + info := bindataFileInfo{name: "1679326850_add_community_token_owners.up.sql", size: 206, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1825,7 +1827,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(1704739012, 0)} + info := bindataFileInfo{name: "1680011500_add_album_images_count.up.sql", size: 71, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1845,7 +1847,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(1704739012, 0)} + info := bindataFileInfo{name: "1680114896_add_index_on_album_id.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1865,7 +1867,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(1704739012, 0)} + info := bindataFileInfo{name: "1681655289_add_mute_till.up.sql", size: 51, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1885,7 +1887,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(1704739012, 0)} + info := bindataFileInfo{name: "1681934966_add_index_response_to.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1905,7 +1907,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(1704739012, 0)} + info := bindataFileInfo{name: "1682528339_add_index_user_messages_unseen.up.sql", size: 104, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1925,7 +1927,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(1704739012, 0)} + info := bindataFileInfo{name: "1683707289_recreate_deleted_for_mes.up.sql", size: 408, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1945,7 +1947,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(1704739012, 0)} + info := bindataFileInfo{name: "1683725607_mark_discord_messages_as_seen.up.sql", size: 108, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1965,7 +1967,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(1704739012, 0)} + info := bindataFileInfo{name: "1684174617_add_url_previews_to_user_messages.up.sql", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -1985,7 +1987,7 @@ 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(1704739012, 0)} + info := bindataFileInfo{name: "1684175608_add_token_balances.up.sql", size: 467, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -2005,7 +2007,7 @@ func _1684979808_sync_activity_center_notificationsUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1684979808_sync_activity_center_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1684979808_sync_activity_center_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -2025,7 +2027,7 @@ func _1685383829_add_communities_mute_tillUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1685383829_add_communities_mute_till.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1685383829_add_communities_mute_till.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xbf, 0x58, 0x96, 0xe5, 0x66, 0xcb, 0xde, 0xed, 0x76, 0xb8, 0x5a, 0x86, 0x81, 0x9a, 0x60, 0x51, 0x12, 0x37, 0x54, 0x9a, 0x36, 0x3e, 0xd1, 0x4a, 0xbe, 0x9a, 0xab, 0x20, 0x7f, 0x1d, 0xf4, 0x73}} return a, nil } @@ -2045,7 +2047,7 @@ func _1685964183_add_chainids_to_revealed_addressesUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1685964183_add_chainids_to_revealed_addresses.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1685964183_add_chainids_to_revealed_addresses.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc, 0xb5, 0xa8, 0xd7, 0xad, 0x9c, 0x54, 0xa5, 0xe9, 0xdb, 0x42, 0x2d, 0xd0, 0xd7, 0x22, 0x1, 0x93, 0xf3, 0x4f, 0x53, 0xf7, 0x1e, 0xbe, 0x4b, 0xac, 0xc7, 0x63, 0x15, 0xdf, 0xe0, 0x6, 0xf8}} return a, nil } @@ -2065,7 +2067,7 @@ func _1687370421_add_communities_muted_till_newUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1687370421_add_communities_muted_till_new.up.sql", size: 635, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1687370421_add_communities_muted_till_new.up.sql", size: 635, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x65, 0x73, 0x96, 0x1d, 0xc8, 0x3e, 0xca, 0xf5, 0xdc, 0xe3, 0xac, 0x3f, 0x9c, 0xc3, 0x67, 0x12, 0x9c, 0x19, 0x1, 0x4, 0x2b, 0xea, 0x6b, 0xe1, 0x59, 0x59, 0x89, 0x3d, 0xef, 0x4a, 0x6e, 0xbe}} return a, nil } @@ -2085,7 +2087,7 @@ func _1687416607_add_communities_check_channel_permission_responses_tableUpSql() return nil, err } - info := bindataFileInfo{name: "1687416607_add_communities_check_channel_permission_responses_table.up.sql", size: 739, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1687416607_add_communities_check_channel_permission_responses_table.up.sql", size: 739, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc2, 0x6, 0x3, 0x1a, 0xde, 0x9d, 0xbc, 0x50, 0x9d, 0xf1, 0x6d, 0x5a, 0x1c, 0x28, 0x92, 0x19, 0x89, 0x76, 0x4e, 0x8b, 0x60, 0xa9, 0xf, 0xe9, 0x76, 0xf1, 0xee, 0x75, 0x92, 0xbd, 0xda, 0x72}} return a, nil } @@ -2105,7 +2107,7 @@ func _1687856939_add_community_tokens_decimalsUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1687856939_add_community_tokens_decimals.up.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1687856939_add_community_tokens_decimals.up.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x59, 0x76, 0x42, 0x70, 0xc9, 0x7b, 0x16, 0xf6, 0xfe, 0x7, 0x1c, 0x99, 0xe5, 0x38, 0xfd, 0xa0, 0x3b, 0x93, 0x40, 0xbc, 0x66, 0xc2, 0xd1, 0xdd, 0xe9, 0xc7, 0xbf, 0xae, 0x36, 0xcc, 0x46, 0x57}} return a, nil } @@ -2125,7 +2127,7 @@ func _1687959987_modify_community_tokens_supply_as_stringUpSql() (*asset, error) return nil, err } - info := bindataFileInfo{name: "1687959987_modify_community_tokens_supply_as_string.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1687959987_modify_community_tokens_supply_as_string.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x57, 0x89, 0xbf, 0x9b, 0xed, 0x9b, 0x18, 0x3f, 0x84, 0xb5, 0x3c, 0x78, 0x40, 0x60, 0xea, 0x33, 0x26, 0x50, 0x3, 0xda, 0x28, 0x92, 0xd3, 0xb6, 0xff, 0x40, 0xa7, 0x19, 0x2, 0xa7, 0x17, 0xf9}} return a, nil } @@ -2145,7 +2147,7 @@ func _1689258900_add_airdrop_address_to_revealed_addressesUpSql() (*asset, error return nil, err } - info := bindataFileInfo{name: "1689258900_add_airdrop_address_to_revealed_addresses.up.sql", size: 99, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1689258900_add_airdrop_address_to_revealed_addresses.up.sql", size: 99, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xea, 0x7e, 0xaf, 0x5c, 0xd, 0xe5, 0x1e, 0x67, 0x1a, 0x6d, 0xd, 0x28, 0x20, 0x7a, 0x1a, 0x45, 0x6e, 0xba, 0x80, 0x91, 0xb0, 0xd6, 0xfd, 0xc2, 0xb9, 0x42, 0x5c, 0x8d, 0x6e, 0x3e, 0x6e, 0xb2}} return a, nil } @@ -2165,7 +2167,7 @@ func _1689266326_create_communities_events_tableUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1689266326_create_communities_events_table.up.sql", size: 164, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1689266326_create_communities_events_table.up.sql", size: 164, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0x4e, 0xe, 0xba, 0x29, 0x16, 0x46, 0x38, 0x19, 0xa4, 0x5, 0x40, 0x46, 0xaf, 0x9a, 0x6, 0x89, 0xe0, 0x9c, 0xcc, 0xec, 0x8a, 0xb, 0x40, 0x85, 0x6f, 0xcc, 0x5, 0x24, 0x2a, 0x33, 0xfa}} return a, nil } @@ -2185,7 +2187,7 @@ func _1689931300_add_community_tokens_deployer_and_priv_levelUpSql() (*asset, er return nil, err } - info := bindataFileInfo{name: "1689931300_add_community_tokens_deployer_and_priv_level.up.sql", size: 156, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1689931300_add_community_tokens_deployer_and_priv_level.up.sql", size: 156, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3f, 0x24, 0xd9, 0x4d, 0xe, 0x4b, 0xe3, 0x4c, 0xd1, 0xc, 0x72, 0xd4, 0x99, 0xe4, 0xb9, 0xb8, 0xe9, 0x38, 0x9e, 0x11, 0x48, 0xea, 0xe3, 0x5d, 0xd9, 0xd0, 0xef, 0x96, 0x38, 0x5a, 0xd4, 0xa5}} return a, nil } @@ -2205,7 +2207,7 @@ func _1693311881_add_unfurled_links_to_message_editsUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1693311881_add_unfurled_links_to_message_edits.up.sql", size: 64, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1693311881_add_unfurled_links_to_message_edits.up.sql", size: 64, mode: os.FileMode(0644), modTime: time.Unix(1695034573, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6b, 0xc7, 0x7c, 0xe4, 0x80, 0x6f, 0xf8, 0x96, 0xb, 0x37, 0xff, 0xa2, 0xab, 0x1c, 0xbd, 0x25, 0x8d, 0x1e, 0x9a, 0x65, 0xe9, 0x45, 0xaf, 0x7f, 0x77, 0x84, 0x1b, 0x10, 0x1b, 0x1a, 0x5, 0xcc}} return a, nil } @@ -2225,7 +2227,7 @@ func _1693311981_community_shardUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1693311981_community_shard.up.sql", size: 156, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1693311981_community_shard.up.sql", size: 156, mode: os.FileMode(0644), modTime: time.Unix(1698180938, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc9, 0x12, 0xf9, 0xde, 0x49, 0x9f, 0x95, 0xaa, 0x22, 0x5e, 0x54, 0x5a, 0x1, 0xd, 0xc6, 0x1f, 0x42, 0x93, 0xe8, 0x69, 0x30, 0x11, 0x69, 0x41, 0x7f, 0x87, 0x57, 0x56, 0x2a, 0x32, 0xb9, 0x3e}} return a, nil } @@ -2245,7 +2247,7 @@ func _1695331492_add_status_link_previewsUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1695331492_add_status_link_previews.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1695331492_add_status_link_previews.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1698180938, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb6, 0x7d, 0x6e, 0x86, 0xf0, 0xf8, 0x23, 0x4b, 0x16, 0x3d, 0xca, 0x8f, 0xfc, 0x8, 0x22, 0xd5, 0x70, 0x14, 0xbb, 0xdd, 0xa9, 0xb8, 0x3e, 0xc6, 0x20, 0xfb, 0x0, 0x26, 0x73, 0xcb, 0x92, 0xb2}} return a, nil } @@ -2265,7 +2267,7 @@ func _1695918296_add_validated_atUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1695918296_add_validated_at.up.sql", size: 377, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1695918296_add_validated_at.up.sql", size: 377, mode: os.FileMode(0644), modTime: time.Unix(1698180938, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1d, 0x48, 0xa7, 0xd5, 0xb, 0xbb, 0x23, 0xfd, 0x40, 0x49, 0x33, 0x1b, 0x5c, 0xb3, 0x5b, 0x7a, 0xd8, 0xed, 0x5, 0xd, 0xb4, 0x91, 0xa3, 0x37, 0xaf, 0xaf, 0xc6, 0xa1, 0x13, 0xeb, 0x56, 0x1d}} return a, nil } @@ -2285,7 +2287,7 @@ func _1697699419_community_control_node_syncUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1697699419_community_control_node_sync.up.sql", size: 435, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1697699419_community_control_node_sync.up.sql", size: 435, mode: os.FileMode(0644), modTime: time.Unix(1698180938, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x11, 0xd6, 0x63, 0x10, 0x1b, 0x16, 0x35, 0x57, 0xf1, 0x4a, 0x4, 0x51, 0xe0, 0x1, 0xe1, 0xfc, 0x12, 0x3a, 0x10, 0x4f, 0xb1, 0x96, 0x53, 0x2, 0xf5, 0x66, 0x7b, 0xe0, 0x8a, 0xdf, 0x78, 0x53}} return a, nil } @@ -2305,7 +2307,7 @@ func _1698137561_add_profile_showcase_tablesUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1698137561_add_profile_showcase_tables.up.sql", size: 440, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1698137561_add_profile_showcase_tables.up.sql", size: 440, mode: os.FileMode(0644), modTime: time.Unix(1698180938, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7c, 0xef, 0x89, 0x68, 0x42, 0xbf, 0xff, 0xb9, 0x8f, 0x8f, 0x19, 0x91, 0xd2, 0x6a, 0x85, 0xda, 0x2c, 0x63, 0x5f, 0x3c, 0x84, 0x4, 0x93, 0x16, 0x10, 0xf0, 0xe0, 0xd9, 0x9b, 0xbe, 0x8d, 0x62}} return a, nil } @@ -2325,7 +2327,7 @@ func _1698137562_fix_encryption_key_idUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1698137562_fix_encryption_key_id.up.sql", size: 758, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1698137562_fix_encryption_key_id.up.sql", size: 758, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe5, 0x61, 0x1b, 0x6a, 0xb1, 0x44, 0x8d, 0x47, 0xde, 0x55, 0x45, 0x77, 0x8e, 0x4f, 0xb, 0x6a, 0x7f, 0x83, 0x56, 0x9c, 0x80, 0xc0, 0xae, 0xda, 0xd8, 0xaf, 0x7e, 0x2b, 0xb4, 0x5e, 0xc3, 0x63}} return a, nil } @@ -2345,7 +2347,7 @@ func _1698414646_add_paddingUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1698414646_add_padding.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1698414646_add_padding.up.sql", size: 69, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xbf, 0x48, 0x8e, 0x18, 0x1b, 0x81, 0x78, 0xab, 0x42, 0xcb, 0x11, 0xf5, 0xe, 0x44, 0xd4, 0x35, 0x33, 0x4e, 0x8, 0x6f, 0x14, 0x90, 0xe6, 0x2b, 0x59, 0xee, 0x87, 0xb, 0x96, 0x62, 0x3, 0x45}} return a, nil } @@ -2365,7 +2367,7 @@ func _1698746210_add_signature_to_revealed_addressesUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1698746210_add_signature_to_revealed_addresses.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1698746210_add_signature_to_revealed_addresses.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0x64, 0xef, 0xe7, 0x5d, 0x82, 0x3e, 0x7d, 0x5a, 0x34, 0xd2, 0xa, 0x5c, 0x48, 0xef, 0x40, 0xb4, 0x7d, 0x78, 0xc8, 0x11, 0xbc, 0xf3, 0xc5, 0x1d, 0xd5, 0xe9, 0x39, 0xd9, 0xfa, 0xc8, 0x27}} return a, nil } @@ -2385,7 +2387,7 @@ func _1699041816_profile_showcase_contactsUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1699041816_profile_showcase_contacts.up.sql", size: 2206, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1699041816_profile_showcase_contacts.up.sql", size: 2206, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x7b, 0x55, 0xda, 0x93, 0x4a, 0x92, 0xf8, 0x45, 0xb2, 0x9f, 0x32, 0xf4, 0x37, 0xc, 0x5f, 0x62, 0xba, 0x33, 0xe2, 0x5c, 0x91, 0x1c, 0xc, 0x7, 0x9, 0xc2, 0x27, 0x5, 0x90, 0x94, 0xf3}} return a, nil } @@ -2405,7 +2407,7 @@ func _1699554099_message_segmentsUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1699554099_message_segments.up.sql", size: 426, mode: os.FileMode(0644), modTime: time.Unix(1704988411, 0)} + info := bindataFileInfo{name: "1699554099_message_segments.up.sql", size: 426, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x73, 0xca, 0xd, 0xfa, 0xfa, 0x17, 0xef, 0x7e, 0x24, 0xf9, 0x28, 0xbd, 0x39, 0x75, 0xff, 0x34, 0x31, 0x27, 0x58, 0x3c, 0x17, 0x77, 0xfd, 0xc2, 0x66, 0x47, 0x63, 0x58, 0x3e, 0xb3, 0x88, 0x1a}} return a, nil } @@ -2425,7 +2427,7 @@ func _1700044186_message_segments_timestampUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1700044186_message_segments_timestamp.up.sql", size: 322, mode: os.FileMode(0644), modTime: time.Unix(1704988411, 0)} + info := bindataFileInfo{name: "1700044186_message_segments_timestamp.up.sql", size: 322, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3e, 0x4e, 0x7, 0x86, 0x71, 0xc8, 0x1f, 0x2f, 0xf4, 0xbc, 0xc5, 0xc4, 0x37, 0x56, 0xa1, 0x47, 0xd9, 0xc9, 0xfd, 0xdf, 0x9a, 0x48, 0x1d, 0xfd, 0xb4, 0xeb, 0xb6, 0xb1, 0xc2, 0x73, 0x11, 0x19}} return a, nil } @@ -2445,7 +2447,7 @@ func _1700044187_curated_communitiesUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1700044187_curated_communities.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1704988411, 0)} + info := bindataFileInfo{name: "1700044187_curated_communities.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xed, 0xf1, 0xf1, 0x57, 0xb5, 0x83, 0xad, 0x9d, 0x9b, 0xf, 0x49, 0xe, 0x3d, 0xa5, 0xf6, 0xf5, 0x9c, 0x7f, 0xb3, 0xf7, 0x22, 0x43, 0x8a, 0xa0, 0x49, 0xfa, 0xcc, 0x9b, 0xea, 0xac, 0xc0, 0xb9}} return a, nil } @@ -2465,7 +2467,7 @@ func _1700820989_add_resend_automatically_indexUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1700820989_add_resend_automatically_index.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "1700820989_add_resend_automatically_index.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1701770712, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5a, 0x6a, 0xd4, 0xd2, 0x34, 0xa7, 0x68, 0xaa, 0xe5, 0x69, 0x9, 0xce, 0xcf, 0xcb, 0x13, 0x94, 0x9d, 0x3, 0x4c, 0x59, 0xac, 0x5f, 0x71, 0xb2, 0xe4, 0xda, 0x67, 0x42, 0xbe, 0xf2, 0x1d, 0xe8}} return a, nil } @@ -2485,7 +2487,7 @@ func _1702996953_add_communities_shards_tableUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1702996953_add_communities_shards_table.up.sql", size: 208, mode: os.FileMode(0644), modTime: time.Unix(1704988411, 0)} + info := bindataFileInfo{name: "1702996953_add_communities_shards_table.up.sql", size: 208, mode: os.FileMode(0644), modTime: time.Unix(1706120568, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6, 0x40, 0x38, 0xcb, 0x1e, 0x85, 0x1, 0x6b, 0xe6, 0xe9, 0xf0, 0xf9, 0xe6, 0x6d, 0x23, 0x4d, 0xe6, 0x12, 0x61, 0xc8, 0x12, 0x25, 0x31, 0x39, 0x7d, 0x40, 0xad, 0x64, 0xfa, 0xf1, 0x87, 0x86}} return a, nil } @@ -2505,7 +2507,7 @@ func _1704489636_add_album_imagesUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1704489636_add_album_images.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1704988411, 0)} + info := bindataFileInfo{name: "1704489636_add_album_images.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1706120568, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x28, 0x82, 0xf2, 0x12, 0x94, 0xb, 0x1b, 0x9f, 0x3f, 0xbf, 0x41, 0x96, 0x29, 0x63, 0x5e, 0x28, 0x4c, 0x9d, 0xd2, 0x26, 0xc9, 0x52, 0x4a, 0x19, 0x80, 0x10, 0xac, 0x1a, 0x51, 0x96, 0xe6, 0xa2}} return a, nil } @@ -2525,7 +2527,7 @@ func _1704821941_add_joined_at_for_communityUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1704821941_add_joined_at_for_community.up.sql", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1704988411, 0)} + info := bindataFileInfo{name: "1704821941_add_joined_at_for_community.up.sql", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1706120568, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x87, 0xa1, 0xca, 0xbe, 0x8e, 0xd1, 0xd5, 0xf, 0xe3, 0x4, 0x7, 0xdd, 0x62, 0x47, 0xc3, 0x90, 0xfb, 0x3, 0xb8, 0x48, 0x35, 0xc9, 0xc9, 0xe0, 0xe3, 0xb7, 0x36, 0x9f, 0xb8, 0x61, 0x1e, 0x18}} return a, nil } @@ -2545,7 +2547,7 @@ func _1704832511_add_last_opened_at_for_communitiesUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1704832511_add_last_opened_at_for_communities.up.sql", size: 89, mode: os.FileMode(0644), modTime: time.Unix(1705923883, 0)} + info := bindataFileInfo{name: "1704832511_add_last_opened_at_for_communities.up.sql", size: 89, mode: os.FileMode(0644), modTime: time.Unix(1706120568, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa7, 0x73, 0x6, 0x6f, 0xa5, 0xc5, 0x5b, 0x5a, 0xf7, 0xf3, 0xb3, 0x28, 0x27, 0x61, 0x28, 0x2c, 0x6a, 0x1, 0x93, 0x14, 0x5b, 0xc0, 0xe8, 0xb5, 0xf6, 0xbf, 0x9f, 0xfb, 0x20, 0x7c, 0xd9, 0x54}} return a, nil } @@ -2565,7 +2567,7 @@ func _1704832512_add_peersyncingUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1704832512_add_peersyncing.up.sql", size: 276, mode: os.FileMode(0644), modTime: time.Unix(1706021756, 0)} + info := bindataFileInfo{name: "1704832512_add_peersyncing.up.sql", size: 276, mode: os.FileMode(0644), modTime: time.Unix(1706120568, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x32, 0xfc, 0x4c, 0x13, 0x67, 0xfb, 0x26, 0x58, 0xd3, 0x7f, 0x72, 0xd0, 0xe7, 0xd7, 0x28, 0x41, 0xa8, 0xa3, 0xf3, 0x9f, 0x1, 0x4c, 0xdd, 0xb6, 0x7b, 0xa4, 0x2a, 0x27, 0xb2, 0x31, 0xb1, 0x30}} return a, nil } @@ -2585,7 +2587,7 @@ func _1706028033_profile_showcase_address_and_communityUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1706028033_profile_showcase_address_and_community.up.sql", size: 2420, mode: os.FileMode(0644), modTime: time.Unix(1706279715, 0)} + info := bindataFileInfo{name: "1706028033_profile_showcase_address_and_community.up.sql", size: 2420, mode: os.FileMode(0644), modTime: time.Unix(1707119792, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa0, 0x8e, 0xc2, 0xbf, 0x32, 0x2d, 0x27, 0x4a, 0x83, 0xfc, 0x4c, 0xb5, 0x9b, 0x45, 0x12, 0xf0, 0xfc, 0x65, 0x36, 0xe0, 0x3c, 0x78, 0xd1, 0xdd, 0xd3, 0xfb, 0x44, 0x14, 0x20, 0x3, 0x3e, 0xcf}} return a, nil } @@ -2605,11 +2607,31 @@ func _1706520870_add_bridge_messages_tableUpSql() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "1706520870_add_bridge_messages_table.up.sql", size: 389, mode: os.FileMode(0644), modTime: time.Unix(1706640492, 0)} + info := bindataFileInfo{name: "1706520870_add_bridge_messages_table.up.sql", size: 389, mode: os.FileMode(0644), modTime: time.Unix(1707119792, 0)} a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe4, 0xd8, 0xaa, 0x58, 0x51, 0xae, 0x28, 0x95, 0x4, 0x3e, 0xd, 0x9c, 0x73, 0xec, 0xe8, 0x84, 0xd, 0x77, 0xdf, 0x8f, 0xb0, 0x1a, 0xfe, 0xef, 0xfc, 0x5b, 0xe1, 0xe9, 0xc2, 0xc1, 0xe7, 0x73}} return a, nil } +var __1707749393_add_community_grantsUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x72\x0e\x72\x75\x0c\x71\x55\x08\x71\x74\xf2\x71\x55\xf0\x74\x53\xf0\xf3\x0f\x51\x70\x8d\xf0\x0c\x0e\x09\x56\x48\xce\xcf\xcd\x2d\xcd\xcb\x2c\xa9\x8c\x4f\x2f\x4a\xcc\x2b\x29\x56\xd0\xe0\x52\x40\x12\xcc\x4c\x51\x08\x71\x8d\x08\x51\x08\x08\xf2\xf4\x75\x0c\x8a\x54\xf0\x76\x8d\x04\xeb\xf6\x0b\xf5\xf1\xd1\xe1\x52\x50\x00\x6b\x82\x28\x71\x71\x75\x73\x0c\xf5\x09\x51\x50\x52\x02\x49\x24\xe7\xe4\x27\x67\x2b\x78\xfa\x85\xc0\x95\xc3\x15\x18\x70\x69\x5a\x73\x01\x02\x00\x00\xff\xff\x3e\x6f\x1c\xa5\x93\x00\x00\x00") + +func _1707749393_add_community_grantsUpSqlBytes() ([]byte, error) { + return bindataRead( + __1707749393_add_community_grantsUpSql, + "1707749393_add_community_grants.up.sql", + ) +} + +func _1707749393_add_community_grantsUpSql() (*asset, error) { + bytes, err := _1707749393_add_community_grantsUpSqlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "1707749393_add_community_grants.up.sql", size: 147, mode: os.FileMode(0644), modTime: time.Unix(1707749551, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x59, 0xd9, 0xbb, 0x31, 0xf4, 0xb7, 0xbd, 0x1f, 0x57, 0x5b, 0x40, 0x28, 0xed, 0xf7, 0x2c, 0xb3, 0xf, 0xcc, 0x50, 0x7f, 0x2c, 0x74, 0xe1, 0x19, 0x7c, 0xa0, 0xec, 0xfc, 0xb7, 0xbe, 0x1e, 0xbc}} + 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) { @@ -2625,7 +2647,7 @@ func readmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -2645,7 +2667,7 @@ func docGo() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1704739012, 0)} + info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1694182557, 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 } @@ -2741,145 +2763,264 @@ func AssetNames() []string { // _bindata is a table, holding each asset generator, mapped to its name. var _bindata = map[string]func() (*asset, error){ - "000001_init.down.db.sql": _000001_initDownDbSql, - "000001_init.up.db.sql": _000001_initUpDbSql, - "000002_add_last_ens_clock_value.up.sql": _000002_add_last_ens_clock_valueUpSql, - "1586358095_add_replace.up.sql": _1586358095_add_replaceUpSql, - "1588665364_add_image_data.up.sql": _1588665364_add_image_dataUpSql, - "1589365189_add_pow_target.up.sql": _1589365189_add_pow_targetUpSql, - "1591277220_add_index_messages.up.sql": _1591277220_add_index_messagesUpSql, - "1593087212_add_mute_chat_and_raw_message_fields.up.sql": _1593087212_add_mute_chat_and_raw_message_fieldsUpSql, - "1595862781_add_audio_data.up.sql": _1595862781_add_audio_dataUpSql, - "1595865249_create_emoji_reactions_table.up.sql": _1595865249_create_emoji_reactions_tableUpSql, - "1596805115_create_group_chat_invitations_table.up.sql": _1596805115_create_group_chat_invitations_tableUpSql, - "1597322655_add_invitation_admin_chat_field.up.sql": _1597322655_add_invitation_admin_chat_fieldUpSql, - "1597757544_add_nickname.up.sql": _1597757544_add_nicknameUpSql, - "1598955122_add_mentions.up.sql": _1598955122_add_mentionsUpSql, - "1599641390_add_emoji_reactions_index.up.sql": _1599641390_add_emoji_reactions_indexUpSql, - "1599720851_add_seen_index_remove_long_messages.up.sql": _1599720851_add_seen_index_remove_long_messagesUpSql, - "1603198582_add_profile_chat_field.up.sql": _1603198582_add_profile_chat_fieldUpSql, - "1603816533_add_links.up.sql": _1603816533_add_linksUpSql, - "1603888149_create_chat_identity_last_published_table.up.sql": _1603888149_create_chat_identity_last_published_tableUpSql, - "1605075346_add_communities.up.sql": _1605075346_add_communitiesUpSql, - "1610117927_add_message_cache.up.sql": _1610117927_add_message_cacheUpSql, - "1610959908_add_dont_wrap_to_raw_messages.up.sql": _1610959908_add_dont_wrap_to_raw_messagesUpSql, - "1610960912_add_send_on_personal_topic.up.sql": _1610960912_add_send_on_personal_topicUpSql, - "1612870480_add_datasync_id.up.sql": _1612870480_add_datasync_idUpSql, - "1614152139_add_communities_request_to_join.up.sql": _1614152139_add_communities_request_to_joinUpSql, - "1615374373_add_confirmations.up.sql": _1615374373_add_confirmationsUpSql, - "1617694931_add_notification_center.up.sql": _1617694931_add_notification_centerUpSql, - "1618923660_create_pin_messages.up.sql": _1618923660_create_pin_messagesUpSql, - "1619094007_add_joined_chat_field.up.sql": _1619094007_add_joined_chat_fieldUpSql, - "1619099821_add_last_synced_field.up.sql": _1619099821_add_last_synced_fieldUpSql, - "1621933219_add_mentioned.up.sql": _1621933219_add_mentionedUpSql, - "1622010048_add_unviewed_mentions_count.up.sql": _1622010048_add_unviewed_mentions_countUpSql, - "1622061278_add_message_activity_center_notification_field.up.sql": _1622061278_add_message_activity_center_notification_fieldUpSql, - "1622464518_set_synced_to_from.up.sql": _1622464518_set_synced_to_fromUpSql, - "1622464519_add_chat_description.up.sql": _1622464519_add_chat_descriptionUpSql, - "1622622253_add_pinned_by_to_pin_messages.up.sql": _1622622253_add_pinned_by_to_pin_messagesUpSql, - "1623938329_add_author_activity_center_notification_field.up.sql": _1623938329_add_author_activity_center_notification_fieldUpSql, - "1623938330_add_edit_messages.up.sql": _1623938330_add_edit_messagesUpSql, - "1624978434_add_muted_community.up.sql": _1624978434_add_muted_communityUpSql, - "1625018910_add_repply_message_activity_center_notification_field.up.sql": _1625018910_add_repply_message_activity_center_notification_fieldUpSql, - "1625762506_add_deleted_messages.up.sql": _1625762506_add_deleted_messagesUpSql, - "1627388946_add_communities_synced_at.up.sql": _1627388946_add_communities_synced_atUpSql, - "1628280060_create-usermessages-index.sql": _1628280060_createUsermessagesIndexSql, - "1632303896_modify_contacts_table.up.sql": _1632303896_modify_contacts_tableUpSql, - "1633349838_add_emoji_column_in_chats.up.sql": _1633349838_add_emoji_column_in_chatsUpSql, - "1634831235_add_highlight_column_in_chats.up.sql": _1634831235_add_highlight_column_in_chatsUpSql, - "1634896007_add_last_updated_locally_and_removed.up.sql": _1634896007_add_last_updated_locally_and_removedUpSql, - "1635840039_add_clock_read_at_column_in_chats.up.sql": _1635840039_add_clock_read_at_column_in_chatsUpSql, - "1637852321_add_received_invitation_admin_column_in_chats.up.sql": _1637852321_add_received_invitation_admin_column_in_chatsUpSql, - "1645034601_display_name.up.sql": _1645034601_display_nameUpSql, - "1645034602_add_mutual_contact_request.up.sql": _1645034602_add_mutual_contact_requestUpSql, - "1650373957_add_contact_request_state.up.sql": _1650373957_add_contact_request_stateUpSql, - "1656958989_contact_verification.up.sql": _1656958989_contact_verificationUpSql, - "1658236268_add_discord_message_authors_table.up.sql": _1658236268_add_discord_message_authors_tableUpSql, - "1659619997_add_discord_messages_table.up.sql": _1659619997_add_discord_messages_tableUpSql, - "1660226788_create_chat_identity_social_links.up.sql": _1660226788_create_chat_identity_social_linksUpSql, - "1660226789_add_walletconnectsessions_table.up.sql": _1660226789_add_walletconnectsessions_tableUpSql, - "1661242854_add_communities_requests_to_leave.up.sql": _1661242854_add_communities_requests_to_leaveUpSql, - "1662044232_add_chat_image.up.sql": _1662044232_add_chat_imageUpSql, - "1662106895_add_chat_first_message_timestamp.up.sql": _1662106895_add_chat_first_message_timestampUpSql, - "1662723928_add_discord_author_image_fields.up.sql": _1662723928_add_discord_author_image_fieldsUpSql, - "1664195977_add_deleted_for_mes.up.sql": _1664195977_add_deleted_for_mesUpSql, - "1664367420_add_discord_attachments_table.up.sql": _1664367420_add_discord_attachments_tableUpSql, - "1665079662_add_spectated_column_in_communities.up.sql": _1665079662_add_spectated_column_in_communitiesUpSql, - "1665479047_add_community_id_in_notifications.up.sql": _1665479047_add_community_id_in_notificationsUpSql, - "1665484435_add_encrypted_messages.up.sql": _1665484435_add_encrypted_messagesUpSql, - "1665560200_add_contact_verification_individual.up.sql": _1665560200_add_contact_verification_individualUpSql, - "1670921937_add_album_id.up.sql": _1670921937_add_album_idUpSql, - "1673373000_add_replied.up.sql": _1673373000_add_repliedUpSql, - "1673428910_add_image_width_height.up.sql": _1673428910_add_image_width_heightUpSql, - "1674210659_add_contact_request_local_clock.up.sql": _1674210659_add_contact_request_local_clockUpSql, - "1675212323_add_deleted_by.up.sql": _1675212323_add_deleted_byUpSql, - "1675247084_add_activity_center_states.up.sql": _1675247084_add_activity_center_statesUpSql, - "1675272329_fix_protocol_migration.up.sql": _1675272329_fix_protocol_migrationUpSql, - "1676998418_fix_activity_center_migration.up.sql": _1676998418_fix_activity_center_migrationUpSql, - "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql": _1677278861_add_deleted_column_to_activity_center_notifications_tableUpSql, - "1677486338_add_community_tokens_table.up.sql": _1677486338_add_community_tokens_tableUpSql, - "1678292329_add_collapsed_categories.up.sql": _1678292329_add_collapsed_categoriesUpSql, - "1678800760_add_index_to_raw_messages.up.sql": _1678800760_add_index_to_raw_messagesUpSql, - "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql": _1678877478_add_communities_requests_to_join_revealed_addresses_tableUpSql, - "1679326850_add_community_token_owners.up.sql": _1679326850_add_community_token_ownersUpSql, - "1680011500_add_album_images_count.up.sql": _1680011500_add_album_images_countUpSql, - "1680114896_add_index_on_album_id.up.sql": _1680114896_add_index_on_album_idUpSql, - "1681655289_add_mute_till.up.sql": _1681655289_add_mute_tillUpSql, - "1681934966_add_index_response_to.up.sql": _1681934966_add_index_response_toUpSql, - "1682528339_add_index_user_messages_unseen.up.sql": _1682528339_add_index_user_messages_unseenUpSql, - "1683707289_recreate_deleted_for_mes.up.sql": _1683707289_recreate_deleted_for_mesUpSql, - "1683725607_mark_discord_messages_as_seen.up.sql": _1683725607_mark_discord_messages_as_seenUpSql, - "1684174617_add_url_previews_to_user_messages.up.sql": _1684174617_add_url_previews_to_user_messagesUpSql, - "1684175608_add_token_balances.up.sql": _1684175608_add_token_balancesUpSql, - "1684979808_sync_activity_center_notifications.up.sql": _1684979808_sync_activity_center_notificationsUpSql, - "1685383829_add_communities_mute_till.up.sql": _1685383829_add_communities_mute_tillUpSql, - "1685964183_add_chainids_to_revealed_addresses.up.sql": _1685964183_add_chainids_to_revealed_addressesUpSql, - "1687370421_add_communities_muted_till_new.up.sql": _1687370421_add_communities_muted_till_newUpSql, - "1687416607_add_communities_check_channel_permission_responses_table.up.sql": _1687416607_add_communities_check_channel_permission_responses_tableUpSql, - "1687856939_add_community_tokens_decimals.up.sql": _1687856939_add_community_tokens_decimalsUpSql, - "1687959987_modify_community_tokens_supply_as_string.up.sql": _1687959987_modify_community_tokens_supply_as_stringUpSql, - "1689258900_add_airdrop_address_to_revealed_addresses.up.sql": _1689258900_add_airdrop_address_to_revealed_addressesUpSql, - "1689266326_create_communities_events_table.up.sql": _1689266326_create_communities_events_tableUpSql, - "1689931300_add_community_tokens_deployer_and_priv_level.up.sql": _1689931300_add_community_tokens_deployer_and_priv_levelUpSql, - "1693311881_add_unfurled_links_to_message_edits.up.sql": _1693311881_add_unfurled_links_to_message_editsUpSql, - "1693311981_community_shard.up.sql": _1693311981_community_shardUpSql, - "1695331492_add_status_link_previews.up.sql": _1695331492_add_status_link_previewsUpSql, - "1695918296_add_validated_at.up.sql": _1695918296_add_validated_atUpSql, - "1697699419_community_control_node_sync.up.sql": _1697699419_community_control_node_syncUpSql, - "1698137561_add_profile_showcase_tables.up.sql": _1698137561_add_profile_showcase_tablesUpSql, - "1698137562_fix_encryption_key_id.up.sql": _1698137562_fix_encryption_key_idUpSql, - "1698414646_add_padding.up.sql": _1698414646_add_paddingUpSql, - "1698746210_add_signature_to_revealed_addresses.up.sql": _1698746210_add_signature_to_revealed_addressesUpSql, - "1699041816_profile_showcase_contacts.up.sql": _1699041816_profile_showcase_contactsUpSql, - "1699554099_message_segments.up.sql": _1699554099_message_segmentsUpSql, - "1700044186_message_segments_timestamp.up.sql": _1700044186_message_segments_timestampUpSql, - "1700044187_curated_communities.up.sql": _1700044187_curated_communitiesUpSql, - "1700820989_add_resend_automatically_index.up.sql": _1700820989_add_resend_automatically_indexUpSql, - "1702996953_add_communities_shards_table.up.sql": _1702996953_add_communities_shards_tableUpSql, - "1704489636_add_album_images.up.sql": _1704489636_add_album_imagesUpSql, - "1704821941_add_joined_at_for_community.up.sql": _1704821941_add_joined_at_for_communityUpSql, - "1704832511_add_last_opened_at_for_communities.up.sql": _1704832511_add_last_opened_at_for_communitiesUpSql, - "1704832512_add_peersyncing.up.sql": _1704832512_add_peersyncingUpSql, - "1706028033_profile_showcase_address_and_community.up.sql": _1706028033_profile_showcase_address_and_communityUpSql, - "1706520870_add_bridge_messages_table.up.sql": _1706520870_add_bridge_messages_tableUpSql, - "README.md": readmeMd, - "doc.go": docGo, -} + "000001_init.down.db.sql": _000001_initDownDbSql, -// AssetDebug is true if the assets were built with the debug flag enabled. -const AssetDebug = false + "000001_init.up.db.sql": _000001_initUpDbSql, + + "000002_add_last_ens_clock_value.up.sql": _000002_add_last_ens_clock_valueUpSql, + + "1586358095_add_replace.up.sql": _1586358095_add_replaceUpSql, + + "1588665364_add_image_data.up.sql": _1588665364_add_image_dataUpSql, + + "1589365189_add_pow_target.up.sql": _1589365189_add_pow_targetUpSql, + + "1591277220_add_index_messages.up.sql": _1591277220_add_index_messagesUpSql, + + "1593087212_add_mute_chat_and_raw_message_fields.up.sql": _1593087212_add_mute_chat_and_raw_message_fieldsUpSql, + + "1595862781_add_audio_data.up.sql": _1595862781_add_audio_dataUpSql, + + "1595865249_create_emoji_reactions_table.up.sql": _1595865249_create_emoji_reactions_tableUpSql, + + "1596805115_create_group_chat_invitations_table.up.sql": _1596805115_create_group_chat_invitations_tableUpSql, + + "1597322655_add_invitation_admin_chat_field.up.sql": _1597322655_add_invitation_admin_chat_fieldUpSql, + + "1597757544_add_nickname.up.sql": _1597757544_add_nicknameUpSql, + + "1598955122_add_mentions.up.sql": _1598955122_add_mentionsUpSql, + + "1599641390_add_emoji_reactions_index.up.sql": _1599641390_add_emoji_reactions_indexUpSql, + + "1599720851_add_seen_index_remove_long_messages.up.sql": _1599720851_add_seen_index_remove_long_messagesUpSql, + + "1603198582_add_profile_chat_field.up.sql": _1603198582_add_profile_chat_fieldUpSql, + + "1603816533_add_links.up.sql": _1603816533_add_linksUpSql, + + "1603888149_create_chat_identity_last_published_table.up.sql": _1603888149_create_chat_identity_last_published_tableUpSql, + + "1605075346_add_communities.up.sql": _1605075346_add_communitiesUpSql, + + "1610117927_add_message_cache.up.sql": _1610117927_add_message_cacheUpSql, + + "1610959908_add_dont_wrap_to_raw_messages.up.sql": _1610959908_add_dont_wrap_to_raw_messagesUpSql, + + "1610960912_add_send_on_personal_topic.up.sql": _1610960912_add_send_on_personal_topicUpSql, + + "1612870480_add_datasync_id.up.sql": _1612870480_add_datasync_idUpSql, + + "1614152139_add_communities_request_to_join.up.sql": _1614152139_add_communities_request_to_joinUpSql, + + "1615374373_add_confirmations.up.sql": _1615374373_add_confirmationsUpSql, + + "1617694931_add_notification_center.up.sql": _1617694931_add_notification_centerUpSql, + + "1618923660_create_pin_messages.up.sql": _1618923660_create_pin_messagesUpSql, + + "1619094007_add_joined_chat_field.up.sql": _1619094007_add_joined_chat_fieldUpSql, + + "1619099821_add_last_synced_field.up.sql": _1619099821_add_last_synced_fieldUpSql, + + "1621933219_add_mentioned.up.sql": _1621933219_add_mentionedUpSql, + + "1622010048_add_unviewed_mentions_count.up.sql": _1622010048_add_unviewed_mentions_countUpSql, + + "1622061278_add_message_activity_center_notification_field.up.sql": _1622061278_add_message_activity_center_notification_fieldUpSql, + + "1622464518_set_synced_to_from.up.sql": _1622464518_set_synced_to_fromUpSql, + + "1622464519_add_chat_description.up.sql": _1622464519_add_chat_descriptionUpSql, + + "1622622253_add_pinned_by_to_pin_messages.up.sql": _1622622253_add_pinned_by_to_pin_messagesUpSql, + + "1623938329_add_author_activity_center_notification_field.up.sql": _1623938329_add_author_activity_center_notification_fieldUpSql, + + "1623938330_add_edit_messages.up.sql": _1623938330_add_edit_messagesUpSql, + + "1624978434_add_muted_community.up.sql": _1624978434_add_muted_communityUpSql, + + "1625018910_add_repply_message_activity_center_notification_field.up.sql": _1625018910_add_repply_message_activity_center_notification_fieldUpSql, + + "1625762506_add_deleted_messages.up.sql": _1625762506_add_deleted_messagesUpSql, + + "1627388946_add_communities_synced_at.up.sql": _1627388946_add_communities_synced_atUpSql, + + "1628280060_create-usermessages-index.sql": _1628280060_createUsermessagesIndexSql, + + "1632303896_modify_contacts_table.up.sql": _1632303896_modify_contacts_tableUpSql, + + "1633349838_add_emoji_column_in_chats.up.sql": _1633349838_add_emoji_column_in_chatsUpSql, + + "1634831235_add_highlight_column_in_chats.up.sql": _1634831235_add_highlight_column_in_chatsUpSql, + + "1634896007_add_last_updated_locally_and_removed.up.sql": _1634896007_add_last_updated_locally_and_removedUpSql, + + "1635840039_add_clock_read_at_column_in_chats.up.sql": _1635840039_add_clock_read_at_column_in_chatsUpSql, + + "1637852321_add_received_invitation_admin_column_in_chats.up.sql": _1637852321_add_received_invitation_admin_column_in_chatsUpSql, + + "1645034601_display_name.up.sql": _1645034601_display_nameUpSql, + + "1645034602_add_mutual_contact_request.up.sql": _1645034602_add_mutual_contact_requestUpSql, + + "1650373957_add_contact_request_state.up.sql": _1650373957_add_contact_request_stateUpSql, + + "1656958989_contact_verification.up.sql": _1656958989_contact_verificationUpSql, + + "1658236268_add_discord_message_authors_table.up.sql": _1658236268_add_discord_message_authors_tableUpSql, + + "1659619997_add_discord_messages_table.up.sql": _1659619997_add_discord_messages_tableUpSql, + + "1660226788_create_chat_identity_social_links.up.sql": _1660226788_create_chat_identity_social_linksUpSql, + + "1660226789_add_walletconnectsessions_table.up.sql": _1660226789_add_walletconnectsessions_tableUpSql, + + "1661242854_add_communities_requests_to_leave.up.sql": _1661242854_add_communities_requests_to_leaveUpSql, + + "1662044232_add_chat_image.up.sql": _1662044232_add_chat_imageUpSql, + + "1662106895_add_chat_first_message_timestamp.up.sql": _1662106895_add_chat_first_message_timestampUpSql, + + "1662723928_add_discord_author_image_fields.up.sql": _1662723928_add_discord_author_image_fieldsUpSql, + + "1664195977_add_deleted_for_mes.up.sql": _1664195977_add_deleted_for_mesUpSql, + + "1664367420_add_discord_attachments_table.up.sql": _1664367420_add_discord_attachments_tableUpSql, + + "1665079662_add_spectated_column_in_communities.up.sql": _1665079662_add_spectated_column_in_communitiesUpSql, + + "1665479047_add_community_id_in_notifications.up.sql": _1665479047_add_community_id_in_notificationsUpSql, + + "1665484435_add_encrypted_messages.up.sql": _1665484435_add_encrypted_messagesUpSql, + + "1665560200_add_contact_verification_individual.up.sql": _1665560200_add_contact_verification_individualUpSql, + + "1670921937_add_album_id.up.sql": _1670921937_add_album_idUpSql, + + "1673373000_add_replied.up.sql": _1673373000_add_repliedUpSql, + + "1673428910_add_image_width_height.up.sql": _1673428910_add_image_width_heightUpSql, + + "1674210659_add_contact_request_local_clock.up.sql": _1674210659_add_contact_request_local_clockUpSql, + + "1675212323_add_deleted_by.up.sql": _1675212323_add_deleted_byUpSql, + + "1675247084_add_activity_center_states.up.sql": _1675247084_add_activity_center_statesUpSql, + + "1675272329_fix_protocol_migration.up.sql": _1675272329_fix_protocol_migrationUpSql, + + "1676998418_fix_activity_center_migration.up.sql": _1676998418_fix_activity_center_migrationUpSql, + + "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql": _1677278861_add_deleted_column_to_activity_center_notifications_tableUpSql, + + "1677486338_add_community_tokens_table.up.sql": _1677486338_add_community_tokens_tableUpSql, + + "1678292329_add_collapsed_categories.up.sql": _1678292329_add_collapsed_categoriesUpSql, + + "1678800760_add_index_to_raw_messages.up.sql": _1678800760_add_index_to_raw_messagesUpSql, + + "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql": _1678877478_add_communities_requests_to_join_revealed_addresses_tableUpSql, + + "1679326850_add_community_token_owners.up.sql": _1679326850_add_community_token_ownersUpSql, + + "1680011500_add_album_images_count.up.sql": _1680011500_add_album_images_countUpSql, + + "1680114896_add_index_on_album_id.up.sql": _1680114896_add_index_on_album_idUpSql, + + "1681655289_add_mute_till.up.sql": _1681655289_add_mute_tillUpSql, + + "1681934966_add_index_response_to.up.sql": _1681934966_add_index_response_toUpSql, + + "1682528339_add_index_user_messages_unseen.up.sql": _1682528339_add_index_user_messages_unseenUpSql, + + "1683707289_recreate_deleted_for_mes.up.sql": _1683707289_recreate_deleted_for_mesUpSql, + + "1683725607_mark_discord_messages_as_seen.up.sql": _1683725607_mark_discord_messages_as_seenUpSql, + + "1684174617_add_url_previews_to_user_messages.up.sql": _1684174617_add_url_previews_to_user_messagesUpSql, + + "1684175608_add_token_balances.up.sql": _1684175608_add_token_balancesUpSql, + + "1684979808_sync_activity_center_notifications.up.sql": _1684979808_sync_activity_center_notificationsUpSql, + + "1685383829_add_communities_mute_till.up.sql": _1685383829_add_communities_mute_tillUpSql, + + "1685964183_add_chainids_to_revealed_addresses.up.sql": _1685964183_add_chainids_to_revealed_addressesUpSql, + + "1687370421_add_communities_muted_till_new.up.sql": _1687370421_add_communities_muted_till_newUpSql, + + "1687416607_add_communities_check_channel_permission_responses_table.up.sql": _1687416607_add_communities_check_channel_permission_responses_tableUpSql, + + "1687856939_add_community_tokens_decimals.up.sql": _1687856939_add_community_tokens_decimalsUpSql, + + "1687959987_modify_community_tokens_supply_as_string.up.sql": _1687959987_modify_community_tokens_supply_as_stringUpSql, + + "1689258900_add_airdrop_address_to_revealed_addresses.up.sql": _1689258900_add_airdrop_address_to_revealed_addressesUpSql, + + "1689266326_create_communities_events_table.up.sql": _1689266326_create_communities_events_tableUpSql, + + "1689931300_add_community_tokens_deployer_and_priv_level.up.sql": _1689931300_add_community_tokens_deployer_and_priv_levelUpSql, + + "1693311881_add_unfurled_links_to_message_edits.up.sql": _1693311881_add_unfurled_links_to_message_editsUpSql, + + "1693311981_community_shard.up.sql": _1693311981_community_shardUpSql, + + "1695331492_add_status_link_previews.up.sql": _1695331492_add_status_link_previewsUpSql, + + "1695918296_add_validated_at.up.sql": _1695918296_add_validated_atUpSql, + + "1697699419_community_control_node_sync.up.sql": _1697699419_community_control_node_syncUpSql, + + "1698137561_add_profile_showcase_tables.up.sql": _1698137561_add_profile_showcase_tablesUpSql, + + "1698137562_fix_encryption_key_id.up.sql": _1698137562_fix_encryption_key_idUpSql, + + "1698414646_add_padding.up.sql": _1698414646_add_paddingUpSql, + + "1698746210_add_signature_to_revealed_addresses.up.sql": _1698746210_add_signature_to_revealed_addressesUpSql, + + "1699041816_profile_showcase_contacts.up.sql": _1699041816_profile_showcase_contactsUpSql, + + "1699554099_message_segments.up.sql": _1699554099_message_segmentsUpSql, + + "1700044186_message_segments_timestamp.up.sql": _1700044186_message_segments_timestampUpSql, + + "1700044187_curated_communities.up.sql": _1700044187_curated_communitiesUpSql, + + "1700820989_add_resend_automatically_index.up.sql": _1700820989_add_resend_automatically_indexUpSql, + + "1702996953_add_communities_shards_table.up.sql": _1702996953_add_communities_shards_tableUpSql, + + "1704489636_add_album_images.up.sql": _1704489636_add_album_imagesUpSql, + + "1704821941_add_joined_at_for_community.up.sql": _1704821941_add_joined_at_for_communityUpSql, + + "1704832511_add_last_opened_at_for_communities.up.sql": _1704832511_add_last_opened_at_for_communitiesUpSql, + + "1704832512_add_peersyncing.up.sql": _1704832512_add_peersyncingUpSql, + + "1706028033_profile_showcase_address_and_community.up.sql": _1706028033_profile_showcase_address_and_communityUpSql, + + "1706520870_add_bridge_messages_table.up.sql": _1706520870_add_bridge_messages_tableUpSql, + + "1707749393_add_community_grants.up.sql": _1707749393_add_community_grantsUpSql, + + "README.md": readmeMd, + + "doc.go": docGo, +} // AssetDir returns the file names below a certain // directory embedded in the file by go-bindata. // For example if you run go-bindata on data/... and data contains the // following hierarchy: -// -// data/ -// foo.txt -// img/ -// a.png -// b.png -// +// data/ +// foo.txt +// img/ +// a.png +// b.png // then AssetDir("data") would return []string{"foo.txt", "img"}, // AssetDir("data/img") would return []string{"a.png", "b.png"}, // AssetDir("foo.txt") and AssetDir("notexist") would return an error, and @@ -2912,129 +3053,130 @@ type bintree struct { } var _bintree = &bintree{nil, map[string]*bintree{ - "000001_init.down.db.sql": {_000001_initDownDbSql, map[string]*bintree{}}, - "000001_init.up.db.sql": {_000001_initUpDbSql, map[string]*bintree{}}, - "000002_add_last_ens_clock_value.up.sql": {_000002_add_last_ens_clock_valueUpSql, map[string]*bintree{}}, - "1586358095_add_replace.up.sql": {_1586358095_add_replaceUpSql, map[string]*bintree{}}, - "1588665364_add_image_data.up.sql": {_1588665364_add_image_dataUpSql, map[string]*bintree{}}, - "1589365189_add_pow_target.up.sql": {_1589365189_add_pow_targetUpSql, map[string]*bintree{}}, - "1591277220_add_index_messages.up.sql": {_1591277220_add_index_messagesUpSql, map[string]*bintree{}}, - "1593087212_add_mute_chat_and_raw_message_fields.up.sql": {_1593087212_add_mute_chat_and_raw_message_fieldsUpSql, map[string]*bintree{}}, - "1595862781_add_audio_data.up.sql": {_1595862781_add_audio_dataUpSql, map[string]*bintree{}}, - "1595865249_create_emoji_reactions_table.up.sql": {_1595865249_create_emoji_reactions_tableUpSql, map[string]*bintree{}}, - "1596805115_create_group_chat_invitations_table.up.sql": {_1596805115_create_group_chat_invitations_tableUpSql, map[string]*bintree{}}, - "1597322655_add_invitation_admin_chat_field.up.sql": {_1597322655_add_invitation_admin_chat_fieldUpSql, map[string]*bintree{}}, - "1597757544_add_nickname.up.sql": {_1597757544_add_nicknameUpSql, map[string]*bintree{}}, - "1598955122_add_mentions.up.sql": {_1598955122_add_mentionsUpSql, map[string]*bintree{}}, - "1599641390_add_emoji_reactions_index.up.sql": {_1599641390_add_emoji_reactions_indexUpSql, map[string]*bintree{}}, - "1599720851_add_seen_index_remove_long_messages.up.sql": {_1599720851_add_seen_index_remove_long_messagesUpSql, map[string]*bintree{}}, - "1603198582_add_profile_chat_field.up.sql": {_1603198582_add_profile_chat_fieldUpSql, map[string]*bintree{}}, - "1603816533_add_links.up.sql": {_1603816533_add_linksUpSql, map[string]*bintree{}}, - "1603888149_create_chat_identity_last_published_table.up.sql": {_1603888149_create_chat_identity_last_published_tableUpSql, map[string]*bintree{}}, - "1605075346_add_communities.up.sql": {_1605075346_add_communitiesUpSql, map[string]*bintree{}}, - "1610117927_add_message_cache.up.sql": {_1610117927_add_message_cacheUpSql, map[string]*bintree{}}, - "1610959908_add_dont_wrap_to_raw_messages.up.sql": {_1610959908_add_dont_wrap_to_raw_messagesUpSql, map[string]*bintree{}}, - "1610960912_add_send_on_personal_topic.up.sql": {_1610960912_add_send_on_personal_topicUpSql, map[string]*bintree{}}, - "1612870480_add_datasync_id.up.sql": {_1612870480_add_datasync_idUpSql, map[string]*bintree{}}, - "1614152139_add_communities_request_to_join.up.sql": {_1614152139_add_communities_request_to_joinUpSql, map[string]*bintree{}}, - "1615374373_add_confirmations.up.sql": {_1615374373_add_confirmationsUpSql, map[string]*bintree{}}, - "1617694931_add_notification_center.up.sql": {_1617694931_add_notification_centerUpSql, map[string]*bintree{}}, - "1618923660_create_pin_messages.up.sql": {_1618923660_create_pin_messagesUpSql, map[string]*bintree{}}, - "1619094007_add_joined_chat_field.up.sql": {_1619094007_add_joined_chat_fieldUpSql, map[string]*bintree{}}, - "1619099821_add_last_synced_field.up.sql": {_1619099821_add_last_synced_fieldUpSql, map[string]*bintree{}}, - "1621933219_add_mentioned.up.sql": {_1621933219_add_mentionedUpSql, map[string]*bintree{}}, - "1622010048_add_unviewed_mentions_count.up.sql": {_1622010048_add_unviewed_mentions_countUpSql, map[string]*bintree{}}, - "1622061278_add_message_activity_center_notification_field.up.sql": {_1622061278_add_message_activity_center_notification_fieldUpSql, map[string]*bintree{}}, - "1622464518_set_synced_to_from.up.sql": {_1622464518_set_synced_to_fromUpSql, map[string]*bintree{}}, - "1622464519_add_chat_description.up.sql": {_1622464519_add_chat_descriptionUpSql, map[string]*bintree{}}, - "1622622253_add_pinned_by_to_pin_messages.up.sql": {_1622622253_add_pinned_by_to_pin_messagesUpSql, map[string]*bintree{}}, - "1623938329_add_author_activity_center_notification_field.up.sql": {_1623938329_add_author_activity_center_notification_fieldUpSql, map[string]*bintree{}}, - "1623938330_add_edit_messages.up.sql": {_1623938330_add_edit_messagesUpSql, map[string]*bintree{}}, - "1624978434_add_muted_community.up.sql": {_1624978434_add_muted_communityUpSql, map[string]*bintree{}}, - "1625018910_add_repply_message_activity_center_notification_field.up.sql": {_1625018910_add_repply_message_activity_center_notification_fieldUpSql, map[string]*bintree{}}, - "1625762506_add_deleted_messages.up.sql": {_1625762506_add_deleted_messagesUpSql, map[string]*bintree{}}, - "1627388946_add_communities_synced_at.up.sql": {_1627388946_add_communities_synced_atUpSql, map[string]*bintree{}}, - "1628280060_create-usermessages-index.sql": {_1628280060_createUsermessagesIndexSql, map[string]*bintree{}}, - "1632303896_modify_contacts_table.up.sql": {_1632303896_modify_contacts_tableUpSql, map[string]*bintree{}}, - "1633349838_add_emoji_column_in_chats.up.sql": {_1633349838_add_emoji_column_in_chatsUpSql, map[string]*bintree{}}, - "1634831235_add_highlight_column_in_chats.up.sql": {_1634831235_add_highlight_column_in_chatsUpSql, map[string]*bintree{}}, - "1634896007_add_last_updated_locally_and_removed.up.sql": {_1634896007_add_last_updated_locally_and_removedUpSql, map[string]*bintree{}}, - "1635840039_add_clock_read_at_column_in_chats.up.sql": {_1635840039_add_clock_read_at_column_in_chatsUpSql, map[string]*bintree{}}, - "1637852321_add_received_invitation_admin_column_in_chats.up.sql": {_1637852321_add_received_invitation_admin_column_in_chatsUpSql, map[string]*bintree{}}, - "1645034601_display_name.up.sql": {_1645034601_display_nameUpSql, map[string]*bintree{}}, - "1645034602_add_mutual_contact_request.up.sql": {_1645034602_add_mutual_contact_requestUpSql, map[string]*bintree{}}, - "1650373957_add_contact_request_state.up.sql": {_1650373957_add_contact_request_stateUpSql, map[string]*bintree{}}, - "1656958989_contact_verification.up.sql": {_1656958989_contact_verificationUpSql, map[string]*bintree{}}, - "1658236268_add_discord_message_authors_table.up.sql": {_1658236268_add_discord_message_authors_tableUpSql, map[string]*bintree{}}, - "1659619997_add_discord_messages_table.up.sql": {_1659619997_add_discord_messages_tableUpSql, map[string]*bintree{}}, - "1660226788_create_chat_identity_social_links.up.sql": {_1660226788_create_chat_identity_social_linksUpSql, map[string]*bintree{}}, - "1660226789_add_walletconnectsessions_table.up.sql": {_1660226789_add_walletconnectsessions_tableUpSql, map[string]*bintree{}}, - "1661242854_add_communities_requests_to_leave.up.sql": {_1661242854_add_communities_requests_to_leaveUpSql, map[string]*bintree{}}, - "1662044232_add_chat_image.up.sql": {_1662044232_add_chat_imageUpSql, map[string]*bintree{}}, - "1662106895_add_chat_first_message_timestamp.up.sql": {_1662106895_add_chat_first_message_timestampUpSql, map[string]*bintree{}}, - "1662723928_add_discord_author_image_fields.up.sql": {_1662723928_add_discord_author_image_fieldsUpSql, map[string]*bintree{}}, - "1664195977_add_deleted_for_mes.up.sql": {_1664195977_add_deleted_for_mesUpSql, map[string]*bintree{}}, - "1664367420_add_discord_attachments_table.up.sql": {_1664367420_add_discord_attachments_tableUpSql, map[string]*bintree{}}, - "1665079662_add_spectated_column_in_communities.up.sql": {_1665079662_add_spectated_column_in_communitiesUpSql, map[string]*bintree{}}, - "1665479047_add_community_id_in_notifications.up.sql": {_1665479047_add_community_id_in_notificationsUpSql, map[string]*bintree{}}, - "1665484435_add_encrypted_messages.up.sql": {_1665484435_add_encrypted_messagesUpSql, map[string]*bintree{}}, - "1665560200_add_contact_verification_individual.up.sql": {_1665560200_add_contact_verification_individualUpSql, map[string]*bintree{}}, - "1670921937_add_album_id.up.sql": {_1670921937_add_album_idUpSql, map[string]*bintree{}}, - "1673373000_add_replied.up.sql": {_1673373000_add_repliedUpSql, map[string]*bintree{}}, - "1673428910_add_image_width_height.up.sql": {_1673428910_add_image_width_heightUpSql, map[string]*bintree{}}, - "1674210659_add_contact_request_local_clock.up.sql": {_1674210659_add_contact_request_local_clockUpSql, map[string]*bintree{}}, - "1675212323_add_deleted_by.up.sql": {_1675212323_add_deleted_byUpSql, map[string]*bintree{}}, - "1675247084_add_activity_center_states.up.sql": {_1675247084_add_activity_center_statesUpSql, map[string]*bintree{}}, - "1675272329_fix_protocol_migration.up.sql": {_1675272329_fix_protocol_migrationUpSql, map[string]*bintree{}}, - "1676998418_fix_activity_center_migration.up.sql": {_1676998418_fix_activity_center_migrationUpSql, map[string]*bintree{}}, - "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql": {_1677278861_add_deleted_column_to_activity_center_notifications_tableUpSql, map[string]*bintree{}}, - "1677486338_add_community_tokens_table.up.sql": {_1677486338_add_community_tokens_tableUpSql, map[string]*bintree{}}, - "1678292329_add_collapsed_categories.up.sql": {_1678292329_add_collapsed_categoriesUpSql, map[string]*bintree{}}, - "1678800760_add_index_to_raw_messages.up.sql": {_1678800760_add_index_to_raw_messagesUpSql, map[string]*bintree{}}, - "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql": {_1678877478_add_communities_requests_to_join_revealed_addresses_tableUpSql, map[string]*bintree{}}, - "1679326850_add_community_token_owners.up.sql": {_1679326850_add_community_token_ownersUpSql, map[string]*bintree{}}, - "1680011500_add_album_images_count.up.sql": {_1680011500_add_album_images_countUpSql, map[string]*bintree{}}, - "1680114896_add_index_on_album_id.up.sql": {_1680114896_add_index_on_album_idUpSql, map[string]*bintree{}}, - "1681655289_add_mute_till.up.sql": {_1681655289_add_mute_tillUpSql, map[string]*bintree{}}, - "1681934966_add_index_response_to.up.sql": {_1681934966_add_index_response_toUpSql, map[string]*bintree{}}, - "1682528339_add_index_user_messages_unseen.up.sql": {_1682528339_add_index_user_messages_unseenUpSql, map[string]*bintree{}}, - "1683707289_recreate_deleted_for_mes.up.sql": {_1683707289_recreate_deleted_for_mesUpSql, map[string]*bintree{}}, - "1683725607_mark_discord_messages_as_seen.up.sql": {_1683725607_mark_discord_messages_as_seenUpSql, map[string]*bintree{}}, - "1684174617_add_url_previews_to_user_messages.up.sql": {_1684174617_add_url_previews_to_user_messagesUpSql, map[string]*bintree{}}, - "1684175608_add_token_balances.up.sql": {_1684175608_add_token_balancesUpSql, map[string]*bintree{}}, - "1684979808_sync_activity_center_notifications.up.sql": {_1684979808_sync_activity_center_notificationsUpSql, map[string]*bintree{}}, - "1685383829_add_communities_mute_till.up.sql": {_1685383829_add_communities_mute_tillUpSql, map[string]*bintree{}}, - "1685964183_add_chainids_to_revealed_addresses.up.sql": {_1685964183_add_chainids_to_revealed_addressesUpSql, map[string]*bintree{}}, - "1687370421_add_communities_muted_till_new.up.sql": {_1687370421_add_communities_muted_till_newUpSql, map[string]*bintree{}}, - "1687416607_add_communities_check_channel_permission_responses_table.up.sql": {_1687416607_add_communities_check_channel_permission_responses_tableUpSql, map[string]*bintree{}}, - "1687856939_add_community_tokens_decimals.up.sql": {_1687856939_add_community_tokens_decimalsUpSql, map[string]*bintree{}}, - "1687959987_modify_community_tokens_supply_as_string.up.sql": {_1687959987_modify_community_tokens_supply_as_stringUpSql, map[string]*bintree{}}, - "1689258900_add_airdrop_address_to_revealed_addresses.up.sql": {_1689258900_add_airdrop_address_to_revealed_addressesUpSql, map[string]*bintree{}}, - "1689266326_create_communities_events_table.up.sql": {_1689266326_create_communities_events_tableUpSql, map[string]*bintree{}}, - "1689931300_add_community_tokens_deployer_and_priv_level.up.sql": {_1689931300_add_community_tokens_deployer_and_priv_levelUpSql, map[string]*bintree{}}, - "1693311881_add_unfurled_links_to_message_edits.up.sql": {_1693311881_add_unfurled_links_to_message_editsUpSql, map[string]*bintree{}}, - "1693311981_community_shard.up.sql": {_1693311981_community_shardUpSql, map[string]*bintree{}}, - "1695331492_add_status_link_previews.up.sql": {_1695331492_add_status_link_previewsUpSql, map[string]*bintree{}}, - "1695918296_add_validated_at.up.sql": {_1695918296_add_validated_atUpSql, map[string]*bintree{}}, - "1697699419_community_control_node_sync.up.sql": {_1697699419_community_control_node_syncUpSql, map[string]*bintree{}}, - "1698137561_add_profile_showcase_tables.up.sql": {_1698137561_add_profile_showcase_tablesUpSql, map[string]*bintree{}}, - "1698137562_fix_encryption_key_id.up.sql": {_1698137562_fix_encryption_key_idUpSql, map[string]*bintree{}}, - "1698414646_add_padding.up.sql": {_1698414646_add_paddingUpSql, map[string]*bintree{}}, - "1698746210_add_signature_to_revealed_addresses.up.sql": {_1698746210_add_signature_to_revealed_addressesUpSql, map[string]*bintree{}}, - "1699041816_profile_showcase_contacts.up.sql": {_1699041816_profile_showcase_contactsUpSql, map[string]*bintree{}}, - "1699554099_message_segments.up.sql": {_1699554099_message_segmentsUpSql, map[string]*bintree{}}, - "1700044186_message_segments_timestamp.up.sql": {_1700044186_message_segments_timestampUpSql, map[string]*bintree{}}, - "1700044187_curated_communities.up.sql": {_1700044187_curated_communitiesUpSql, map[string]*bintree{}}, - "1700820989_add_resend_automatically_index.up.sql": {_1700820989_add_resend_automatically_indexUpSql, map[string]*bintree{}}, - "1702996953_add_communities_shards_table.up.sql": {_1702996953_add_communities_shards_tableUpSql, map[string]*bintree{}}, - "1704489636_add_album_images.up.sql": {_1704489636_add_album_imagesUpSql, map[string]*bintree{}}, - "1704821941_add_joined_at_for_community.up.sql": {_1704821941_add_joined_at_for_communityUpSql, map[string]*bintree{}}, - "1704832511_add_last_opened_at_for_communities.up.sql": {_1704832511_add_last_opened_at_for_communitiesUpSql, map[string]*bintree{}}, - "1704832512_add_peersyncing.up.sql": {_1704832512_add_peersyncingUpSql, map[string]*bintree{}}, - "1706028033_profile_showcase_address_and_community.up.sql": {_1706028033_profile_showcase_address_and_communityUpSql, map[string]*bintree{}}, - "1706520870_add_bridge_messages_table.up.sql": {_1706520870_add_bridge_messages_tableUpSql, map[string]*bintree{}}, - "README.md": {readmeMd, map[string]*bintree{}}, - "doc.go": {docGo, map[string]*bintree{}}, + "000001_init.down.db.sql": &bintree{_000001_initDownDbSql, map[string]*bintree{}}, + "000001_init.up.db.sql": &bintree{_000001_initUpDbSql, map[string]*bintree{}}, + "000002_add_last_ens_clock_value.up.sql": &bintree{_000002_add_last_ens_clock_valueUpSql, map[string]*bintree{}}, + "1586358095_add_replace.up.sql": &bintree{_1586358095_add_replaceUpSql, map[string]*bintree{}}, + "1588665364_add_image_data.up.sql": &bintree{_1588665364_add_image_dataUpSql, map[string]*bintree{}}, + "1589365189_add_pow_target.up.sql": &bintree{_1589365189_add_pow_targetUpSql, map[string]*bintree{}}, + "1591277220_add_index_messages.up.sql": &bintree{_1591277220_add_index_messagesUpSql, map[string]*bintree{}}, + "1593087212_add_mute_chat_and_raw_message_fields.up.sql": &bintree{_1593087212_add_mute_chat_and_raw_message_fieldsUpSql, map[string]*bintree{}}, + "1595862781_add_audio_data.up.sql": &bintree{_1595862781_add_audio_dataUpSql, map[string]*bintree{}}, + "1595865249_create_emoji_reactions_table.up.sql": &bintree{_1595865249_create_emoji_reactions_tableUpSql, map[string]*bintree{}}, + "1596805115_create_group_chat_invitations_table.up.sql": &bintree{_1596805115_create_group_chat_invitations_tableUpSql, map[string]*bintree{}}, + "1597322655_add_invitation_admin_chat_field.up.sql": &bintree{_1597322655_add_invitation_admin_chat_fieldUpSql, map[string]*bintree{}}, + "1597757544_add_nickname.up.sql": &bintree{_1597757544_add_nicknameUpSql, map[string]*bintree{}}, + "1598955122_add_mentions.up.sql": &bintree{_1598955122_add_mentionsUpSql, map[string]*bintree{}}, + "1599641390_add_emoji_reactions_index.up.sql": &bintree{_1599641390_add_emoji_reactions_indexUpSql, map[string]*bintree{}}, + "1599720851_add_seen_index_remove_long_messages.up.sql": &bintree{_1599720851_add_seen_index_remove_long_messagesUpSql, map[string]*bintree{}}, + "1603198582_add_profile_chat_field.up.sql": &bintree{_1603198582_add_profile_chat_fieldUpSql, map[string]*bintree{}}, + "1603816533_add_links.up.sql": &bintree{_1603816533_add_linksUpSql, map[string]*bintree{}}, + "1603888149_create_chat_identity_last_published_table.up.sql": &bintree{_1603888149_create_chat_identity_last_published_tableUpSql, map[string]*bintree{}}, + "1605075346_add_communities.up.sql": &bintree{_1605075346_add_communitiesUpSql, map[string]*bintree{}}, + "1610117927_add_message_cache.up.sql": &bintree{_1610117927_add_message_cacheUpSql, map[string]*bintree{}}, + "1610959908_add_dont_wrap_to_raw_messages.up.sql": &bintree{_1610959908_add_dont_wrap_to_raw_messagesUpSql, map[string]*bintree{}}, + "1610960912_add_send_on_personal_topic.up.sql": &bintree{_1610960912_add_send_on_personal_topicUpSql, map[string]*bintree{}}, + "1612870480_add_datasync_id.up.sql": &bintree{_1612870480_add_datasync_idUpSql, map[string]*bintree{}}, + "1614152139_add_communities_request_to_join.up.sql": &bintree{_1614152139_add_communities_request_to_joinUpSql, map[string]*bintree{}}, + "1615374373_add_confirmations.up.sql": &bintree{_1615374373_add_confirmationsUpSql, map[string]*bintree{}}, + "1617694931_add_notification_center.up.sql": &bintree{_1617694931_add_notification_centerUpSql, map[string]*bintree{}}, + "1618923660_create_pin_messages.up.sql": &bintree{_1618923660_create_pin_messagesUpSql, map[string]*bintree{}}, + "1619094007_add_joined_chat_field.up.sql": &bintree{_1619094007_add_joined_chat_fieldUpSql, map[string]*bintree{}}, + "1619099821_add_last_synced_field.up.sql": &bintree{_1619099821_add_last_synced_fieldUpSql, map[string]*bintree{}}, + "1621933219_add_mentioned.up.sql": &bintree{_1621933219_add_mentionedUpSql, map[string]*bintree{}}, + "1622010048_add_unviewed_mentions_count.up.sql": &bintree{_1622010048_add_unviewed_mentions_countUpSql, map[string]*bintree{}}, + "1622061278_add_message_activity_center_notification_field.up.sql": &bintree{_1622061278_add_message_activity_center_notification_fieldUpSql, map[string]*bintree{}}, + "1622464518_set_synced_to_from.up.sql": &bintree{_1622464518_set_synced_to_fromUpSql, map[string]*bintree{}}, + "1622464519_add_chat_description.up.sql": &bintree{_1622464519_add_chat_descriptionUpSql, map[string]*bintree{}}, + "1622622253_add_pinned_by_to_pin_messages.up.sql": &bintree{_1622622253_add_pinned_by_to_pin_messagesUpSql, map[string]*bintree{}}, + "1623938329_add_author_activity_center_notification_field.up.sql": &bintree{_1623938329_add_author_activity_center_notification_fieldUpSql, map[string]*bintree{}}, + "1623938330_add_edit_messages.up.sql": &bintree{_1623938330_add_edit_messagesUpSql, map[string]*bintree{}}, + "1624978434_add_muted_community.up.sql": &bintree{_1624978434_add_muted_communityUpSql, map[string]*bintree{}}, + "1625018910_add_repply_message_activity_center_notification_field.up.sql": &bintree{_1625018910_add_repply_message_activity_center_notification_fieldUpSql, map[string]*bintree{}}, + "1625762506_add_deleted_messages.up.sql": &bintree{_1625762506_add_deleted_messagesUpSql, map[string]*bintree{}}, + "1627388946_add_communities_synced_at.up.sql": &bintree{_1627388946_add_communities_synced_atUpSql, map[string]*bintree{}}, + "1628280060_create-usermessages-index.sql": &bintree{_1628280060_createUsermessagesIndexSql, map[string]*bintree{}}, + "1632303896_modify_contacts_table.up.sql": &bintree{_1632303896_modify_contacts_tableUpSql, map[string]*bintree{}}, + "1633349838_add_emoji_column_in_chats.up.sql": &bintree{_1633349838_add_emoji_column_in_chatsUpSql, map[string]*bintree{}}, + "1634831235_add_highlight_column_in_chats.up.sql": &bintree{_1634831235_add_highlight_column_in_chatsUpSql, map[string]*bintree{}}, + "1634896007_add_last_updated_locally_and_removed.up.sql": &bintree{_1634896007_add_last_updated_locally_and_removedUpSql, map[string]*bintree{}}, + "1635840039_add_clock_read_at_column_in_chats.up.sql": &bintree{_1635840039_add_clock_read_at_column_in_chatsUpSql, map[string]*bintree{}}, + "1637852321_add_received_invitation_admin_column_in_chats.up.sql": &bintree{_1637852321_add_received_invitation_admin_column_in_chatsUpSql, map[string]*bintree{}}, + "1645034601_display_name.up.sql": &bintree{_1645034601_display_nameUpSql, map[string]*bintree{}}, + "1645034602_add_mutual_contact_request.up.sql": &bintree{_1645034602_add_mutual_contact_requestUpSql, map[string]*bintree{}}, + "1650373957_add_contact_request_state.up.sql": &bintree{_1650373957_add_contact_request_stateUpSql, map[string]*bintree{}}, + "1656958989_contact_verification.up.sql": &bintree{_1656958989_contact_verificationUpSql, map[string]*bintree{}}, + "1658236268_add_discord_message_authors_table.up.sql": &bintree{_1658236268_add_discord_message_authors_tableUpSql, map[string]*bintree{}}, + "1659619997_add_discord_messages_table.up.sql": &bintree{_1659619997_add_discord_messages_tableUpSql, map[string]*bintree{}}, + "1660226788_create_chat_identity_social_links.up.sql": &bintree{_1660226788_create_chat_identity_social_linksUpSql, map[string]*bintree{}}, + "1660226789_add_walletconnectsessions_table.up.sql": &bintree{_1660226789_add_walletconnectsessions_tableUpSql, map[string]*bintree{}}, + "1661242854_add_communities_requests_to_leave.up.sql": &bintree{_1661242854_add_communities_requests_to_leaveUpSql, map[string]*bintree{}}, + "1662044232_add_chat_image.up.sql": &bintree{_1662044232_add_chat_imageUpSql, map[string]*bintree{}}, + "1662106895_add_chat_first_message_timestamp.up.sql": &bintree{_1662106895_add_chat_first_message_timestampUpSql, map[string]*bintree{}}, + "1662723928_add_discord_author_image_fields.up.sql": &bintree{_1662723928_add_discord_author_image_fieldsUpSql, map[string]*bintree{}}, + "1664195977_add_deleted_for_mes.up.sql": &bintree{_1664195977_add_deleted_for_mesUpSql, map[string]*bintree{}}, + "1664367420_add_discord_attachments_table.up.sql": &bintree{_1664367420_add_discord_attachments_tableUpSql, map[string]*bintree{}}, + "1665079662_add_spectated_column_in_communities.up.sql": &bintree{_1665079662_add_spectated_column_in_communitiesUpSql, map[string]*bintree{}}, + "1665479047_add_community_id_in_notifications.up.sql": &bintree{_1665479047_add_community_id_in_notificationsUpSql, map[string]*bintree{}}, + "1665484435_add_encrypted_messages.up.sql": &bintree{_1665484435_add_encrypted_messagesUpSql, map[string]*bintree{}}, + "1665560200_add_contact_verification_individual.up.sql": &bintree{_1665560200_add_contact_verification_individualUpSql, map[string]*bintree{}}, + "1670921937_add_album_id.up.sql": &bintree{_1670921937_add_album_idUpSql, map[string]*bintree{}}, + "1673373000_add_replied.up.sql": &bintree{_1673373000_add_repliedUpSql, map[string]*bintree{}}, + "1673428910_add_image_width_height.up.sql": &bintree{_1673428910_add_image_width_heightUpSql, map[string]*bintree{}}, + "1674210659_add_contact_request_local_clock.up.sql": &bintree{_1674210659_add_contact_request_local_clockUpSql, map[string]*bintree{}}, + "1675212323_add_deleted_by.up.sql": &bintree{_1675212323_add_deleted_byUpSql, map[string]*bintree{}}, + "1675247084_add_activity_center_states.up.sql": &bintree{_1675247084_add_activity_center_statesUpSql, map[string]*bintree{}}, + "1675272329_fix_protocol_migration.up.sql": &bintree{_1675272329_fix_protocol_migrationUpSql, map[string]*bintree{}}, + "1676998418_fix_activity_center_migration.up.sql": &bintree{_1676998418_fix_activity_center_migrationUpSql, map[string]*bintree{}}, + "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql": &bintree{_1677278861_add_deleted_column_to_activity_center_notifications_tableUpSql, map[string]*bintree{}}, + "1677486338_add_community_tokens_table.up.sql": &bintree{_1677486338_add_community_tokens_tableUpSql, map[string]*bintree{}}, + "1678292329_add_collapsed_categories.up.sql": &bintree{_1678292329_add_collapsed_categoriesUpSql, map[string]*bintree{}}, + "1678800760_add_index_to_raw_messages.up.sql": &bintree{_1678800760_add_index_to_raw_messagesUpSql, map[string]*bintree{}}, + "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql": &bintree{_1678877478_add_communities_requests_to_join_revealed_addresses_tableUpSql, map[string]*bintree{}}, + "1679326850_add_community_token_owners.up.sql": &bintree{_1679326850_add_community_token_ownersUpSql, map[string]*bintree{}}, + "1680011500_add_album_images_count.up.sql": &bintree{_1680011500_add_album_images_countUpSql, map[string]*bintree{}}, + "1680114896_add_index_on_album_id.up.sql": &bintree{_1680114896_add_index_on_album_idUpSql, map[string]*bintree{}}, + "1681655289_add_mute_till.up.sql": &bintree{_1681655289_add_mute_tillUpSql, map[string]*bintree{}}, + "1681934966_add_index_response_to.up.sql": &bintree{_1681934966_add_index_response_toUpSql, map[string]*bintree{}}, + "1682528339_add_index_user_messages_unseen.up.sql": &bintree{_1682528339_add_index_user_messages_unseenUpSql, map[string]*bintree{}}, + "1683707289_recreate_deleted_for_mes.up.sql": &bintree{_1683707289_recreate_deleted_for_mesUpSql, 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{}}, + "1684979808_sync_activity_center_notifications.up.sql": &bintree{_1684979808_sync_activity_center_notificationsUpSql, map[string]*bintree{}}, + "1685383829_add_communities_mute_till.up.sql": &bintree{_1685383829_add_communities_mute_tillUpSql, map[string]*bintree{}}, + "1685964183_add_chainids_to_revealed_addresses.up.sql": &bintree{_1685964183_add_chainids_to_revealed_addressesUpSql, map[string]*bintree{}}, + "1687370421_add_communities_muted_till_new.up.sql": &bintree{_1687370421_add_communities_muted_till_newUpSql, map[string]*bintree{}}, + "1687416607_add_communities_check_channel_permission_responses_table.up.sql": &bintree{_1687416607_add_communities_check_channel_permission_responses_tableUpSql, map[string]*bintree{}}, + "1687856939_add_community_tokens_decimals.up.sql": &bintree{_1687856939_add_community_tokens_decimalsUpSql, map[string]*bintree{}}, + "1687959987_modify_community_tokens_supply_as_string.up.sql": &bintree{_1687959987_modify_community_tokens_supply_as_stringUpSql, map[string]*bintree{}}, + "1689258900_add_airdrop_address_to_revealed_addresses.up.sql": &bintree{_1689258900_add_airdrop_address_to_revealed_addressesUpSql, map[string]*bintree{}}, + "1689266326_create_communities_events_table.up.sql": &bintree{_1689266326_create_communities_events_tableUpSql, map[string]*bintree{}}, + "1689931300_add_community_tokens_deployer_and_priv_level.up.sql": &bintree{_1689931300_add_community_tokens_deployer_and_priv_levelUpSql, map[string]*bintree{}}, + "1693311881_add_unfurled_links_to_message_edits.up.sql": &bintree{_1693311881_add_unfurled_links_to_message_editsUpSql, map[string]*bintree{}}, + "1693311981_community_shard.up.sql": &bintree{_1693311981_community_shardUpSql, map[string]*bintree{}}, + "1695331492_add_status_link_previews.up.sql": &bintree{_1695331492_add_status_link_previewsUpSql, map[string]*bintree{}}, + "1695918296_add_validated_at.up.sql": &bintree{_1695918296_add_validated_atUpSql, map[string]*bintree{}}, + "1697699419_community_control_node_sync.up.sql": &bintree{_1697699419_community_control_node_syncUpSql, map[string]*bintree{}}, + "1698137561_add_profile_showcase_tables.up.sql": &bintree{_1698137561_add_profile_showcase_tablesUpSql, map[string]*bintree{}}, + "1698137562_fix_encryption_key_id.up.sql": &bintree{_1698137562_fix_encryption_key_idUpSql, map[string]*bintree{}}, + "1698414646_add_padding.up.sql": &bintree{_1698414646_add_paddingUpSql, map[string]*bintree{}}, + "1698746210_add_signature_to_revealed_addresses.up.sql": &bintree{_1698746210_add_signature_to_revealed_addressesUpSql, map[string]*bintree{}}, + "1699041816_profile_showcase_contacts.up.sql": &bintree{_1699041816_profile_showcase_contactsUpSql, map[string]*bintree{}}, + "1699554099_message_segments.up.sql": &bintree{_1699554099_message_segmentsUpSql, map[string]*bintree{}}, + "1700044186_message_segments_timestamp.up.sql": &bintree{_1700044186_message_segments_timestampUpSql, map[string]*bintree{}}, + "1700044187_curated_communities.up.sql": &bintree{_1700044187_curated_communitiesUpSql, map[string]*bintree{}}, + "1700820989_add_resend_automatically_index.up.sql": &bintree{_1700820989_add_resend_automatically_indexUpSql, map[string]*bintree{}}, + "1702996953_add_communities_shards_table.up.sql": &bintree{_1702996953_add_communities_shards_tableUpSql, map[string]*bintree{}}, + "1704489636_add_album_images.up.sql": &bintree{_1704489636_add_album_imagesUpSql, map[string]*bintree{}}, + "1704821941_add_joined_at_for_community.up.sql": &bintree{_1704821941_add_joined_at_for_communityUpSql, map[string]*bintree{}}, + "1704832511_add_last_opened_at_for_communities.up.sql": &bintree{_1704832511_add_last_opened_at_for_communitiesUpSql, map[string]*bintree{}}, + "1704832512_add_peersyncing.up.sql": &bintree{_1704832512_add_peersyncingUpSql, map[string]*bintree{}}, + "1706028033_profile_showcase_address_and_community.up.sql": &bintree{_1706028033_profile_showcase_address_and_communityUpSql, map[string]*bintree{}}, + "1706520870_add_bridge_messages_table.up.sql": &bintree{_1706520870_add_bridge_messages_tableUpSql, map[string]*bintree{}}, + "1707749393_add_community_grants.up.sql": &bintree{_1707749393_add_community_grantsUpSql, 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. @@ -3051,7 +3193,7 @@ func RestoreAsset(dir, name string) error { if err != nil { return err } - err = os.WriteFile(_filePath(dir, name), data, info.Mode()) + err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) if err != nil { return err } diff --git a/protocol/migrations/sqlite/1707749393_add_community_grants.up.sql b/protocol/migrations/sqlite/1707749393_add_community_grants.up.sql new file mode 100644 index 000000000..9c77b875c --- /dev/null +++ b/protocol/migrations/sqlite/1707749393_add_community_grants.up.sql @@ -0,0 +1,5 @@ +CREATE TABLE IF NOT EXISTS community_grants ( + community_id TEXT PRIMARY KEY NOT NULL, + grant TEXT DEFAULT "", + clock INT NOT NULL DEFAULT 0 +); diff --git a/protocol/persistence_profile_showcase.go b/protocol/persistence_profile_showcase.go index 25ef518c3..6bdda9ad1 100644 --- a/protocol/persistence_profile_showcase.go +++ b/protocol/persistence_profile_showcase.go @@ -4,15 +4,8 @@ import ( "context" "database/sql" "errors" -) -type ProfileShowcaseVisibility int - -const ( - ProfileShowcaseVisibilityNoOne ProfileShowcaseVisibility = iota - ProfileShowcaseVisibilityIDVerifiedContacts - ProfileShowcaseVisibilityContacts - ProfileShowcaseVisibilityEveryone + "github.com/status-im/status-go/protocol/identity" ) const upsertProfileShowcaseCommunityPreferenceQuery = "INSERT OR REPLACE INTO profile_showcase_communities_preferences(community_id, visibility, sort_order) VALUES (?, ?, ?)" // #nosec G101 @@ -65,99 +58,8 @@ WHERE psa.address = ? ` -type ProfileShowcaseCommunityPreference struct { - CommunityID string `json:"communityId"` - ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` - Order int `json:"order"` -} - -type ProfileShowcaseAccountPreference struct { - Address string `json:"address"` - Name string `json:"name"` - ColorID string `json:"colorId"` - Emoji string `json:"emoji"` - ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` - Order int `json:"order"` -} - -type ProfileShowcaseCollectiblePreference struct { - ContractAddress string `json:"contractAddress"` - ChainID uint64 `json:"chainId"` - TokenID string `json:"tokenId"` - CommunityID string `json:"communityId"` - AccountAddress string `json:"accountAddress"` - ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` - Order int `json:"order"` -} - -type ProfileShowcaseVerifiedTokenPreference struct { - Symbol string `json:"symbol"` - ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` - Order int `json:"order"` -} - -type ProfileShowcaseUnverifiedTokenPreference struct { - ContractAddress string `json:"contractAddress"` - ChainID uint64 `json:"chainId"` - CommunityID string `json:"communityId"` - ShowcaseVisibility ProfileShowcaseVisibility `json:"showcaseVisibility"` - Order int `json:"order"` -} - -type ProfileShowcasePreferences struct { - Communities []*ProfileShowcaseCommunityPreference `json:"communities"` - Accounts []*ProfileShowcaseAccountPreference `json:"accounts"` - Collectibles []*ProfileShowcaseCollectiblePreference `json:"collectibles"` - VerifiedTokens []*ProfileShowcaseVerifiedTokenPreference `json:"verifiedTokens"` - UnverifiedTokens []*ProfileShowcaseUnverifiedTokenPreference `json:"unverifiedTokens"` -} - -type ProfileShowcaseCommunity struct { - CommunityID string `json:"communityId"` - Order int `json:"order"` -} - -type ProfileShowcaseAccount struct { - ContactID string `json:"contactId"` - Address string `json:"address"` - Name string `json:"name"` - ColorID string `json:"colorId"` - Emoji string `json:"emoji"` - Order int `json:"order"` -} - -type ProfileShowcaseCollectible struct { - ContractAddress string `json:"contractAddress"` - ChainID uint64 `json:"chainId"` - TokenID string `json:"tokenId"` - CommunityID string `json:"communityId"` - AccountAddress string `json:"accountAddress"` - Order int `json:"order"` -} - -type ProfileShowcaseVerifiedToken struct { - Symbol string `json:"symbol"` - Order int `json:"order"` -} - -type ProfileShowcaseUnverifiedToken struct { - ContractAddress string `json:"contractAddress"` - ChainID uint64 `json:"chainId"` - CommunityID string `json:"communityId"` - Order int `json:"order"` -} - -type ProfileShowcase struct { - ContactID string `json:"contactId"` - Communities []*ProfileShowcaseCommunity `json:"communities"` - Accounts []*ProfileShowcaseAccount `json:"accounts"` - Collectibles []*ProfileShowcaseCollectible `json:"collectibles"` - VerifiedTokens []*ProfileShowcaseVerifiedToken `json:"verifiedTokens"` - UnverifiedTokens []*ProfileShowcaseUnverifiedToken `json:"unverifiedTokens"` -} - // Queries for showcase preferences -func (db sqlitePersistence) saveProfileShowcaseCommunityPreference(tx *sql.Tx, community *ProfileShowcaseCommunityPreference) error { +func (db sqlitePersistence) saveProfileShowcaseCommunityPreference(tx *sql.Tx, community *identity.ProfileShowcaseCommunityPreference) error { _, err := tx.Exec(upsertProfileShowcaseCommunityPreferenceQuery, community.CommunityID, community.ShowcaseVisibility, @@ -167,16 +69,16 @@ func (db sqlitePersistence) saveProfileShowcaseCommunityPreference(tx *sql.Tx, c return err } -func (db sqlitePersistence) getProfileShowcaseCommunitiesPreferences(tx *sql.Tx) ([]*ProfileShowcaseCommunityPreference, error) { +func (db sqlitePersistence) getProfileShowcaseCommunitiesPreferences(tx *sql.Tx) ([]*identity.ProfileShowcaseCommunityPreference, error) { rows, err := tx.Query(selectProfileShowcaseCommunityPreferenceQuery) if err != nil { return nil, err } - communities := []*ProfileShowcaseCommunityPreference{} + communities := []*identity.ProfileShowcaseCommunityPreference{} for rows.Next() { - community := &ProfileShowcaseCommunityPreference{} + community := &identity.ProfileShowcaseCommunityPreference{} err := rows.Scan( &community.CommunityID, @@ -193,7 +95,7 @@ func (db sqlitePersistence) getProfileShowcaseCommunitiesPreferences(tx *sql.Tx) return communities, nil } -func (db sqlitePersistence) saveProfileShowcaseAccountPreference(tx *sql.Tx, account *ProfileShowcaseAccountPreference) error { +func (db sqlitePersistence) saveProfileShowcaseAccountPreference(tx *sql.Tx, account *identity.ProfileShowcaseAccountPreference) error { _, err := tx.Exec(upsertProfileShowcaseAccountPreferenceQuery, account.Address, account.Name, @@ -206,13 +108,13 @@ func (db sqlitePersistence) saveProfileShowcaseAccountPreference(tx *sql.Tx, acc return err } -func (db sqlitePersistence) processProfileShowcaseAccountPreferences(rows *sql.Rows) (result []*ProfileShowcaseAccountPreference, err error) { +func (db sqlitePersistence) processProfileShowcaseAccountPreferences(rows *sql.Rows) (result []*identity.ProfileShowcaseAccountPreference, err error) { if rows == nil { return nil, errors.New("rows is nil") } for rows.Next() { - account := &ProfileShowcaseAccountPreference{} + account := &identity.ProfileShowcaseAccountPreference{} err := rows.Scan( &account.Address, @@ -234,7 +136,7 @@ func (db sqlitePersistence) processProfileShowcaseAccountPreferences(rows *sql.R return } -func (db sqlitePersistence) getProfileShowcaseAccountsPreferences(tx *sql.Tx) ([]*ProfileShowcaseAccountPreference, error) { +func (db sqlitePersistence) getProfileShowcaseAccountsPreferences(tx *sql.Tx) ([]*identity.ProfileShowcaseAccountPreference, error) { rows, err := tx.Query(selectProfileShowcaseAccountPreferenceQuery) if err != nil { return nil, err @@ -243,7 +145,7 @@ func (db sqlitePersistence) getProfileShowcaseAccountsPreferences(tx *sql.Tx) ([ return db.processProfileShowcaseAccountPreferences(rows) } -func (db sqlitePersistence) GetProfileShowcaseAccountPreference(accountAddress string) (*ProfileShowcaseAccountPreference, error) { +func (db sqlitePersistence) GetProfileShowcaseAccountPreference(accountAddress string) (*identity.ProfileShowcaseAccountPreference, error) { rows, err := db.db.Query(selectSpecifiedShowcaseAccountPreferenceQuery, accountAddress) if err != nil { return nil, err @@ -276,7 +178,7 @@ func (db sqlitePersistence) DeleteProfileShowcaseCommunityPreference(communityID return rows > 0, err } -func (db sqlitePersistence) saveProfileShowcaseCollectiblePreference(tx *sql.Tx, collectible *ProfileShowcaseCollectiblePreference) error { +func (db sqlitePersistence) saveProfileShowcaseCollectiblePreference(tx *sql.Tx, collectible *identity.ProfileShowcaseCollectiblePreference) error { _, err := tx.Exec(upsertProfileShowcaseCollectiblePreferenceQuery, collectible.ContractAddress, collectible.ChainID, @@ -290,16 +192,16 @@ func (db sqlitePersistence) saveProfileShowcaseCollectiblePreference(tx *sql.Tx, return err } -func (db sqlitePersistence) getProfileShowcaseCollectiblesPreferences(tx *sql.Tx) ([]*ProfileShowcaseCollectiblePreference, error) { +func (db sqlitePersistence) getProfileShowcaseCollectiblesPreferences(tx *sql.Tx) ([]*identity.ProfileShowcaseCollectiblePreference, error) { rows, err := tx.Query(selectProfileShowcaseCollectiblePreferenceQuery) if err != nil { return nil, err } - collectibles := []*ProfileShowcaseCollectiblePreference{} + collectibles := []*identity.ProfileShowcaseCollectiblePreference{} for rows.Next() { - collectible := &ProfileShowcaseCollectiblePreference{} + collectible := &identity.ProfileShowcaseCollectiblePreference{} err := rows.Scan( &collectible.ContractAddress, @@ -320,7 +222,7 @@ func (db sqlitePersistence) getProfileShowcaseCollectiblesPreferences(tx *sql.Tx return collectibles, nil } -func (db sqlitePersistence) saveProfileShowcaseVerifiedTokenPreference(tx *sql.Tx, token *ProfileShowcaseVerifiedTokenPreference) error { +func (db sqlitePersistence) saveProfileShowcaseVerifiedTokenPreference(tx *sql.Tx, token *identity.ProfileShowcaseVerifiedTokenPreference) error { _, err := tx.Exec(upsertProfileShowcaseVerifiedTokenPreferenceQuery, token.Symbol, token.ShowcaseVisibility, @@ -330,7 +232,7 @@ func (db sqlitePersistence) saveProfileShowcaseVerifiedTokenPreference(tx *sql.T return err } -func (db sqlitePersistence) saveProfileShowcaseUnverifiedTokenPreference(tx *sql.Tx, token *ProfileShowcaseUnverifiedTokenPreference) error { +func (db sqlitePersistence) saveProfileShowcaseUnverifiedTokenPreference(tx *sql.Tx, token *identity.ProfileShowcaseUnverifiedTokenPreference) error { _, err := tx.Exec(upsertProfileShowcaseUnverifiedTokenPreferenceQuery, token.ContractAddress, token.ChainID, @@ -342,16 +244,16 @@ func (db sqlitePersistence) saveProfileShowcaseUnverifiedTokenPreference(tx *sql return err } -func (db sqlitePersistence) getProfileShowcaseVerifiedTokensPreferences(tx *sql.Tx) ([]*ProfileShowcaseVerifiedTokenPreference, error) { +func (db sqlitePersistence) getProfileShowcaseVerifiedTokensPreferences(tx *sql.Tx) ([]*identity.ProfileShowcaseVerifiedTokenPreference, error) { rows, err := tx.Query(selectProfileShowcaseVerifiedTokenPreferenceQuery) if err != nil { return nil, err } - tokens := []*ProfileShowcaseVerifiedTokenPreference{} + tokens := []*identity.ProfileShowcaseVerifiedTokenPreference{} for rows.Next() { - token := &ProfileShowcaseVerifiedTokenPreference{} + token := &identity.ProfileShowcaseVerifiedTokenPreference{} err := rows.Scan( &token.Symbol, @@ -368,16 +270,16 @@ func (db sqlitePersistence) getProfileShowcaseVerifiedTokensPreferences(tx *sql. return tokens, nil } -func (db sqlitePersistence) getProfileShowcaseUnverifiedTokensPreferences(tx *sql.Tx) ([]*ProfileShowcaseUnverifiedTokenPreference, error) { +func (db sqlitePersistence) getProfileShowcaseUnverifiedTokensPreferences(tx *sql.Tx) ([]*identity.ProfileShowcaseUnverifiedTokenPreference, error) { rows, err := tx.Query(selectProfileShowcaseUnverifiedTokenPreferenceQuery) if err != nil { return nil, err } - tokens := []*ProfileShowcaseUnverifiedTokenPreference{} + tokens := []*identity.ProfileShowcaseUnverifiedTokenPreference{} for rows.Next() { - token := &ProfileShowcaseUnverifiedTokenPreference{} + token := &identity.ProfileShowcaseUnverifiedTokenPreference{} err := rows.Scan( &token.ContractAddress, @@ -397,7 +299,7 @@ func (db sqlitePersistence) getProfileShowcaseUnverifiedTokensPreferences(tx *sq } // Queries for contacts showcase -func (db sqlitePersistence) saveProfileShowcaseCommunityContact(tx *sql.Tx, contactID string, community *ProfileShowcaseCommunity) error { +func (db sqlitePersistence) saveProfileShowcaseCommunityContact(tx *sql.Tx, contactID string, community *identity.ProfileShowcaseCommunity) error { _, err := tx.Exec(upsertContactProfileShowcaseCommunityQuery, contactID, community.CommunityID, @@ -407,16 +309,18 @@ func (db sqlitePersistence) saveProfileShowcaseCommunityContact(tx *sql.Tx, cont return err } -func (db sqlitePersistence) getProfileShowcaseCommunitiesContact(tx *sql.Tx, contactID string) ([]*ProfileShowcaseCommunity, error) { +func (db sqlitePersistence) getProfileShowcaseCommunitiesContact(tx *sql.Tx, contactID string) ([]*identity.ProfileShowcaseCommunity, error) { rows, err := tx.Query(selectContactProfileShowcaseCommunityQuery, contactID) if err != nil { return nil, err } - communities := []*ProfileShowcaseCommunity{} + communities := []*identity.ProfileShowcaseCommunity{} for rows.Next() { - community := &ProfileShowcaseCommunity{} + community := &identity.ProfileShowcaseCommunity{ + MembershipStatus: identity.ProfileShowcaseMembershipStatusUnproven, + } err := rows.Scan(&community.CommunityID, &community.Order) if err != nil { @@ -437,7 +341,7 @@ func (db sqlitePersistence) clearProfileShowcaseCommunityContact(tx *sql.Tx, con return nil } -func (db sqlitePersistence) saveProfileShowcaseAccountContact(tx *sql.Tx, contactID string, account *ProfileShowcaseAccount) error { +func (db sqlitePersistence) saveProfileShowcaseAccountContact(tx *sql.Tx, contactID string, account *identity.ProfileShowcaseAccount) error { _, err := tx.Exec(upsertContactProfileShowcaseAccountQuery, contactID, account.Address, @@ -450,13 +354,13 @@ func (db sqlitePersistence) saveProfileShowcaseAccountContact(tx *sql.Tx, contac return err } -func (db sqlitePersistence) processProfileShowcaseAccounts(rows *sql.Rows) (result []*ProfileShowcaseAccount, err error) { +func (db sqlitePersistence) processProfileShowcaseAccounts(rows *sql.Rows) (result []*identity.ProfileShowcaseAccount, err error) { if rows == nil { return nil, errors.New("rows is nil") } for rows.Next() { - account := &ProfileShowcaseAccount{} + account := &identity.ProfileShowcaseAccount{} err = rows.Scan(&account.Address, &account.Name, &account.ColorID, &account.Emoji, &account.Order, &account.ContactID) if err != nil { @@ -470,7 +374,7 @@ func (db sqlitePersistence) processProfileShowcaseAccounts(rows *sql.Rows) (resu return } -func (db sqlitePersistence) getProfileShowcaseAccountsContact(tx *sql.Tx, contactID string) ([]*ProfileShowcaseAccount, error) { +func (db sqlitePersistence) getProfileShowcaseAccountsContact(tx *sql.Tx, contactID string) ([]*identity.ProfileShowcaseAccount, error) { rows, err := tx.Query(selectContactProfileShowcaseAccountQuery, contactID) if err != nil { return nil, err @@ -479,7 +383,7 @@ func (db sqlitePersistence) getProfileShowcaseAccountsContact(tx *sql.Tx, contac return db.processProfileShowcaseAccounts(rows) } -func (db sqlitePersistence) GetProfileShowcaseAccountsByAddress(address string) ([]*ProfileShowcaseAccount, error) { +func (db sqlitePersistence) GetProfileShowcaseAccountsByAddress(address string) ([]*identity.ProfileShowcaseAccount, error) { rows, err := db.db.Query(selectProfileShowcaseAccountsWhichMatchTheAddress, address) if err != nil { return nil, err @@ -493,7 +397,7 @@ func (db sqlitePersistence) clearProfileShowcaseAccountsContact(tx *sql.Tx, cont return err } -func (db sqlitePersistence) saveProfileShowcaseCollectibleContact(tx *sql.Tx, contactID string, collectible *ProfileShowcaseCollectible) error { +func (db sqlitePersistence) saveProfileShowcaseCollectibleContact(tx *sql.Tx, contactID string, collectible *identity.ProfileShowcaseCollectible) error { _, err := tx.Exec(upsertContactProfileShowcaseCollectibleQuery, contactID, collectible.ContractAddress, @@ -507,16 +411,16 @@ func (db sqlitePersistence) saveProfileShowcaseCollectibleContact(tx *sql.Tx, co return err } -func (db sqlitePersistence) getProfileShowcaseCollectiblesContact(tx *sql.Tx, contactID string) ([]*ProfileShowcaseCollectible, error) { +func (db sqlitePersistence) getProfileShowcaseCollectiblesContact(tx *sql.Tx, contactID string) ([]*identity.ProfileShowcaseCollectible, error) { rows, err := tx.Query(selectContactProfileShowcaseCollectibleQuery, contactID) if err != nil { return nil, err } - collectibles := []*ProfileShowcaseCollectible{} + collectibles := []*identity.ProfileShowcaseCollectible{} for rows.Next() { - collectible := &ProfileShowcaseCollectible{} + collectible := &identity.ProfileShowcaseCollectible{} err := rows.Scan( &collectible.ContractAddress, @@ -539,7 +443,7 @@ func (db sqlitePersistence) clearProfileShowcaseCollectiblesContact(tx *sql.Tx, return err } -func (db sqlitePersistence) saveProfileShowcaseVerifiedTokenContact(tx *sql.Tx, contactID string, token *ProfileShowcaseVerifiedToken) error { +func (db sqlitePersistence) saveProfileShowcaseVerifiedTokenContact(tx *sql.Tx, contactID string, token *identity.ProfileShowcaseVerifiedToken) error { _, err := tx.Exec(upsertContactProfileShowcaseVerifiedTokenQuery, contactID, token.Symbol, @@ -549,7 +453,7 @@ func (db sqlitePersistence) saveProfileShowcaseVerifiedTokenContact(tx *sql.Tx, return err } -func (db sqlitePersistence) saveProfileShowcaseUnverifiedTokenContact(tx *sql.Tx, contactID string, token *ProfileShowcaseUnverifiedToken) error { +func (db sqlitePersistence) saveProfileShowcaseUnverifiedTokenContact(tx *sql.Tx, contactID string, token *identity.ProfileShowcaseUnverifiedToken) error { _, err := tx.Exec(upsertContactProfileShowcaseUnverifiedTokenQuery, contactID, token.ContractAddress, @@ -561,16 +465,16 @@ func (db sqlitePersistence) saveProfileShowcaseUnverifiedTokenContact(tx *sql.Tx return err } -func (db sqlitePersistence) getProfileShowcaseVerifiedTokensContact(tx *sql.Tx, contactID string) ([]*ProfileShowcaseVerifiedToken, error) { +func (db sqlitePersistence) getProfileShowcaseVerifiedTokensContact(tx *sql.Tx, contactID string) ([]*identity.ProfileShowcaseVerifiedToken, error) { rows, err := tx.Query(selectContactProfileShowcaseVerifiedTokenQuery, contactID) if err != nil { return nil, err } - tokens := []*ProfileShowcaseVerifiedToken{} + tokens := []*identity.ProfileShowcaseVerifiedToken{} for rows.Next() { - token := &ProfileShowcaseVerifiedToken{} + token := &identity.ProfileShowcaseVerifiedToken{} err := rows.Scan( &token.Symbol, @@ -584,16 +488,16 @@ func (db sqlitePersistence) getProfileShowcaseVerifiedTokensContact(tx *sql.Tx, return tokens, nil } -func (db sqlitePersistence) getProfileShowcaseUnverifiedTokensContact(tx *sql.Tx, contactID string) ([]*ProfileShowcaseUnverifiedToken, error) { +func (db sqlitePersistence) getProfileShowcaseUnverifiedTokensContact(tx *sql.Tx, contactID string) ([]*identity.ProfileShowcaseUnverifiedToken, error) { rows, err := tx.Query(selectContactProfileShowcaseUnverifiedTokenQuery, contactID) if err != nil { return nil, err } - tokens := []*ProfileShowcaseUnverifiedToken{} + tokens := []*identity.ProfileShowcaseUnverifiedToken{} for rows.Next() { - token := &ProfileShowcaseUnverifiedToken{} + token := &identity.ProfileShowcaseUnverifiedToken{} err := rows.Scan( &token.ContractAddress, @@ -620,7 +524,7 @@ func (db sqlitePersistence) clearProfileShowcaseUnverifiedTokensContact(tx *sql. } // public functions -func (db sqlitePersistence) SaveProfileShowcasePreferences(preferences *ProfileShowcasePreferences) error { +func (db sqlitePersistence) SaveProfileShowcasePreferences(preferences *identity.ProfileShowcasePreferences) error { tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { return err @@ -672,7 +576,7 @@ func (db sqlitePersistence) SaveProfileShowcasePreferences(preferences *ProfileS return nil } -func (db sqlitePersistence) SaveProfileShowcaseAccountPreference(account *ProfileShowcaseAccountPreference) error { +func (db sqlitePersistence) SaveProfileShowcaseAccountPreference(account *identity.ProfileShowcaseAccountPreference) error { tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { return err @@ -688,7 +592,7 @@ func (db sqlitePersistence) SaveProfileShowcaseAccountPreference(account *Profil return db.saveProfileShowcaseAccountPreference(tx, account) } -func (db sqlitePersistence) GetProfileShowcasePreferences() (*ProfileShowcasePreferences, error) { +func (db sqlitePersistence) GetProfileShowcasePreferences() (*identity.ProfileShowcasePreferences, error) { tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { return nil, err @@ -727,7 +631,7 @@ func (db sqlitePersistence) GetProfileShowcasePreferences() (*ProfileShowcasePre return nil, err } - return &ProfileShowcasePreferences{ + return &identity.ProfileShowcasePreferences{ Communities: communities, Accounts: accounts, Collectibles: collectibles, @@ -736,7 +640,7 @@ func (db sqlitePersistence) GetProfileShowcasePreferences() (*ProfileShowcasePre }, nil } -func (db sqlitePersistence) SaveProfileShowcaseForContact(showcase *ProfileShowcase) error { +func (db sqlitePersistence) SaveProfileShowcaseForContact(showcase *identity.ProfileShowcase) error { tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { return err @@ -788,7 +692,7 @@ func (db sqlitePersistence) SaveProfileShowcaseForContact(showcase *ProfileShowc return nil } -func (db sqlitePersistence) GetProfileShowcaseForContact(contactID string) (*ProfileShowcase, error) { +func (db sqlitePersistence) GetProfileShowcaseForContact(contactID string) (*identity.ProfileShowcase, error) { tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { return nil, err @@ -827,7 +731,7 @@ func (db sqlitePersistence) GetProfileShowcaseForContact(contactID string) (*Pro return nil, err } - return &ProfileShowcase{ + return &identity.ProfileShowcase{ ContactID: contactID, Communities: communities, Accounts: accounts, diff --git a/protocol/persistence_profile_showcase_test.go b/protocol/persistence_profile_showcase_test.go index fd003b3fb..9705feeaa 100644 --- a/protocol/persistence_profile_showcase_test.go +++ b/protocol/persistence_profile_showcase_test.go @@ -4,6 +4,8 @@ import ( "testing" "github.com/stretchr/testify/suite" + + "github.com/status-im/status-go/protocol/identity" ) func TestProfileShowcasePersistenceSuite(t *testing.T) { @@ -19,73 +21,73 @@ func (s *TestProfileShowcasePersistence) TestProfileShowcasePreferences() { s.Require().NoError(err) persistence := newSQLitePersistence(db) - preferences := &ProfileShowcasePreferences{ - Communities: []*ProfileShowcaseCommunityPreference{ - &ProfileShowcaseCommunityPreference{ + preferences := &identity.ProfileShowcasePreferences{ + Communities: []*identity.ProfileShowcaseCommunityPreference{ + &identity.ProfileShowcaseCommunityPreference{ CommunityID: "0x32433445133424", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, }, - Accounts: []*ProfileShowcaseAccountPreference{ - &ProfileShowcaseAccountPreference{ + Accounts: []*identity.ProfileShowcaseAccountPreference{ + &identity.ProfileShowcaseAccountPreference{ Address: "0x32433445133424", Name: "Status Account", ColorID: "blue", Emoji: "-_-", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, - &ProfileShowcaseAccountPreference{ + &identity.ProfileShowcaseAccountPreference{ Address: "0x3845354643324", Name: "Money Box", ColorID: "red", Emoji: ":o)", - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, Order: 1, }, }, - Collectibles: []*ProfileShowcaseCollectiblePreference{ - &ProfileShowcaseCollectiblePreference{ + Collectibles: []*identity.ProfileShowcaseCollectiblePreference{ + &identity.ProfileShowcaseCollectiblePreference{ ContractAddress: "0x12378534257568678487683576", ChainID: 3, TokenID: "0x12321389592999f903", CommunityID: "0x01312357798976535", AccountAddress: "0x32433445133424", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, }, - VerifiedTokens: []*ProfileShowcaseVerifiedTokenPreference{ - &ProfileShowcaseVerifiedTokenPreference{ + VerifiedTokens: []*identity.ProfileShowcaseVerifiedTokenPreference{ + &identity.ProfileShowcaseVerifiedTokenPreference{ Symbol: "ETH", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 1, }, - &ProfileShowcaseVerifiedTokenPreference{ + &identity.ProfileShowcaseVerifiedTokenPreference{ Symbol: "DAI", - ShowcaseVisibility: ProfileShowcaseVisibilityIDVerifiedContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityIDVerifiedContacts, Order: 2, }, - &ProfileShowcaseVerifiedTokenPreference{ + &identity.ProfileShowcaseVerifiedTokenPreference{ Symbol: "SNT", - ShowcaseVisibility: ProfileShowcaseVisibilityNoOne, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityNoOne, Order: 3, }, }, - UnverifiedTokens: []*ProfileShowcaseUnverifiedTokenPreference{ - &ProfileShowcaseUnverifiedTokenPreference{ + UnverifiedTokens: []*identity.ProfileShowcaseUnverifiedTokenPreference{ + &identity.ProfileShowcaseUnverifiedTokenPreference{ ContractAddress: "0x454525452023452", ChainID: 1, CommunityID: "0x32433445133424", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, - &ProfileShowcaseUnverifiedTokenPreference{ + &identity.ProfileShowcaseUnverifiedTokenPreference{ ContractAddress: "0x12312323323233", ChainID: 2, CommunityID: "", - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, Order: 1, }, }, @@ -128,20 +130,20 @@ func (s *TestProfileShowcasePersistence) TestProfileShowcaseContacts() { s.Require().NoError(err) persistence := newSQLitePersistence(db) - showcase1 := &ProfileShowcase{ + showcase1 := &identity.ProfileShowcase{ ContactID: "contact_1", - Communities: []*ProfileShowcaseCommunity{ - &ProfileShowcaseCommunity{ + Communities: []*identity.ProfileShowcaseCommunity{ + &identity.ProfileShowcaseCommunity{ CommunityID: "0x012312234234234", Order: 6, }, - &ProfileShowcaseCommunity{ + &identity.ProfileShowcaseCommunity{ CommunityID: "0x04523233466753", Order: 7, }, }, - Accounts: []*ProfileShowcaseAccount{ - &ProfileShowcaseAccount{ + Accounts: []*identity.ProfileShowcaseAccount{ + &identity.ProfileShowcaseAccount{ ContactID: "contact_1", Address: "0x32433445133424", Name: "Status Account", @@ -149,7 +151,7 @@ func (s *TestProfileShowcasePersistence) TestProfileShowcaseContacts() { Emoji: "-_-", Order: 0, }, - &ProfileShowcaseAccount{ + &identity.ProfileShowcaseAccount{ ContactID: "contact_1", Address: "0x3845354643324", Name: "Money Box", @@ -158,8 +160,8 @@ func (s *TestProfileShowcasePersistence) TestProfileShowcaseContacts() { Order: 1, }, }, - Collectibles: []*ProfileShowcaseCollectible{ - &ProfileShowcaseCollectible{ + Collectibles: []*identity.ProfileShowcaseCollectible{ + &identity.ProfileShowcaseCollectible{ ContractAddress: "0x12378534257568678487683576", ChainID: 2, TokenID: "0x12321389592999f903", @@ -167,28 +169,28 @@ func (s *TestProfileShowcasePersistence) TestProfileShowcaseContacts() { Order: 0, }, }, - VerifiedTokens: []*ProfileShowcaseVerifiedToken{ - &ProfileShowcaseVerifiedToken{ + VerifiedTokens: []*identity.ProfileShowcaseVerifiedToken{ + &identity.ProfileShowcaseVerifiedToken{ Symbol: "ETH", Order: 1, }, - &ProfileShowcaseVerifiedToken{ + &identity.ProfileShowcaseVerifiedToken{ Symbol: "DAI", Order: 2, }, - &ProfileShowcaseVerifiedToken{ + &identity.ProfileShowcaseVerifiedToken{ Symbol: "SNT", Order: 3, }, }, - UnverifiedTokens: []*ProfileShowcaseUnverifiedToken{ - &ProfileShowcaseUnverifiedToken{ + UnverifiedTokens: []*identity.ProfileShowcaseUnverifiedToken{ + &identity.ProfileShowcaseUnverifiedToken{ ContractAddress: "0x454525452023452", ChainID: 1, CommunityID: "", Order: 0, }, - &ProfileShowcaseUnverifiedToken{ + &identity.ProfileShowcaseUnverifiedToken{ ContractAddress: "0x12312323323233", ChainID: 2, CommunityID: "0x32433445133424", @@ -199,20 +201,20 @@ func (s *TestProfileShowcasePersistence) TestProfileShowcaseContacts() { err = persistence.SaveProfileShowcaseForContact(showcase1) s.Require().NoError(err) - showcase2 := &ProfileShowcase{ + showcase2 := &identity.ProfileShowcase{ ContactID: "contact_2", - Communities: []*ProfileShowcaseCommunity{ - &ProfileShowcaseCommunity{ + Communities: []*identity.ProfileShowcaseCommunity{ + &identity.ProfileShowcaseCommunity{ CommunityID: "0x012312234234234", // same id to check query Order: 3, }, - &ProfileShowcaseCommunity{ + &identity.ProfileShowcaseCommunity{ CommunityID: "0x096783478384593", Order: 7, }, }, - Collectibles: []*ProfileShowcaseCollectible{ - &ProfileShowcaseCollectible{ + Collectibles: []*identity.ProfileShowcaseCollectible{ + &identity.ProfileShowcaseCollectible{ ContractAddress: "0x12378534257568678487683576", ChainID: 2, TokenID: "0x12321389592999f903", @@ -281,10 +283,10 @@ func (s *TestProfileShowcasePersistence) TestFetchingProfileShowcaseAccountsByAd err = persistence.SaveContacts(conatacts) s.Require().NoError(err) - showcase1 := &ProfileShowcase{ + showcase1 := &identity.ProfileShowcase{ ContactID: "contact_1", - Accounts: []*ProfileShowcaseAccount{ - &ProfileShowcaseAccount{ + Accounts: []*identity.ProfileShowcaseAccount{ + &identity.ProfileShowcaseAccount{ ContactID: "contact_1", Address: "0x0000000000000000000000000000000000000001", Name: "Contact1-Account1", @@ -292,7 +294,7 @@ func (s *TestProfileShowcasePersistence) TestFetchingProfileShowcaseAccountsByAd Emoji: "-_-", Order: 0, }, - &ProfileShowcaseAccount{ + &identity.ProfileShowcaseAccount{ ContactID: "contact_1", Address: "0x0000000000000000000000000000000000000002", Name: "Contact1-Account2", @@ -302,10 +304,10 @@ func (s *TestProfileShowcasePersistence) TestFetchingProfileShowcaseAccountsByAd }, }, } - showcase2 := &ProfileShowcase{ + showcase2 := &identity.ProfileShowcase{ ContactID: "contact_2", - Accounts: []*ProfileShowcaseAccount{ - &ProfileShowcaseAccount{ + Accounts: []*identity.ProfileShowcaseAccount{ + &identity.ProfileShowcaseAccount{ ContactID: "contact_2", Address: "0x0000000000000000000000000000000000000001", Name: "Contact2-Account1", @@ -313,7 +315,7 @@ func (s *TestProfileShowcasePersistence) TestFetchingProfileShowcaseAccountsByAd Emoji: "-_-", Order: 0, }, - &ProfileShowcaseAccount{ + &identity.ProfileShowcaseAccount{ ContactID: "contact_2", Address: "0x0000000000000000000000000000000000000002", Name: "Contact2-Account2", @@ -323,10 +325,10 @@ func (s *TestProfileShowcasePersistence) TestFetchingProfileShowcaseAccountsByAd }, }, } - showcase3 := &ProfileShowcase{ + showcase3 := &identity.ProfileShowcase{ ContactID: "contact_3", - Accounts: []*ProfileShowcaseAccount{ - &ProfileShowcaseAccount{ + Accounts: []*identity.ProfileShowcaseAccount{ + &identity.ProfileShowcaseAccount{ ContactID: "contact_3", Address: "0x0000000000000000000000000000000000000001", Name: "Contact3-Account1", @@ -383,22 +385,22 @@ func (s *TestProfileShowcasePersistence) TestUpdateProfileShowcaseAccountOnWalle deleteAccountAddress := "0x3243344513424" updateAccountAddress := "0x3845354643324" - preferences := &ProfileShowcasePreferences{ - Accounts: []*ProfileShowcaseAccountPreference{ - &ProfileShowcaseAccountPreference{ + preferences := &identity.ProfileShowcasePreferences{ + Accounts: []*identity.ProfileShowcaseAccountPreference{ + &identity.ProfileShowcaseAccountPreference{ Address: deleteAccountAddress, Name: "Status Account", ColorID: "blue", Emoji: "-_-", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, - &ProfileShowcaseAccountPreference{ + &identity.ProfileShowcaseAccountPreference{ Address: updateAccountAddress, Name: "Money Box", ColorID: "red", Emoji: ":o)", - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, Order: 1, }, }, @@ -415,7 +417,7 @@ func (s *TestProfileShowcasePersistence) TestUpdateProfileShowcaseAccountOnWalle account.Name = "Music Box" account.ColorID = "green" account.Emoji = ">:-]" - account.ShowcaseVisibility = ProfileShowcaseVisibilityIDVerifiedContacts + account.ShowcaseVisibility = identity.ProfileShowcaseVisibilityIDVerifiedContacts account.Order = 7 err = persistence.SaveProfileShowcaseAccountPreference(account) @@ -444,16 +446,16 @@ func (s *TestProfileShowcasePersistence) TestUpdateProfileShowcaseCommunityOnCha deleteCommunityID := "0x3243344513424" - preferences := &ProfileShowcasePreferences{ - Communities: []*ProfileShowcaseCommunityPreference{ - &ProfileShowcaseCommunityPreference{ + preferences := &identity.ProfileShowcasePreferences{ + Communities: []*identity.ProfileShowcaseCommunityPreference{ + &identity.ProfileShowcaseCommunityPreference{ CommunityID: "0x32433445133424", - ShowcaseVisibility: ProfileShowcaseVisibilityEveryone, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityEveryone, Order: 0, }, - &ProfileShowcaseCommunityPreference{ + &identity.ProfileShowcaseCommunityPreference{ CommunityID: deleteCommunityID, - ShowcaseVisibility: ProfileShowcaseVisibilityContacts, + ShowcaseVisibility: identity.ProfileShowcaseVisibilityContacts, Order: 1, }, }, diff --git a/protocol/protobuf/profile_showcase.pb.go b/protocol/protobuf/profile_showcase.pb.go index c5147ffcc..9bc70b863 100644 --- a/protocol/protobuf/profile_showcase.pb.go +++ b/protocol/protobuf/profile_showcase.pb.go @@ -23,6 +23,7 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type ProfileShowcaseCommunity struct { CommunityId string `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` Order uint32 `protobuf:"varint,2,opt,name=order,proto3" json:"order,omitempty"` + Grant []byte `protobuf:"bytes,3,opt,name=grant,proto3" json:"grant,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -67,6 +68,13 @@ func (m *ProfileShowcaseCommunity) GetOrder() uint32 { return 0 } +func (m *ProfileShowcaseCommunity) GetGrant() []byte { + if m != nil { + return m.Grant + } + return nil +} + type ProfileShowcaseAccount struct { Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` @@ -525,43 +533,43 @@ func init() { } var fileDescriptor_5bcd51b424a05798 = []byte{ - // 596 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xc7, 0xe5, 0x38, 0x6d, 0xd3, 0x49, 0x9a, 0x84, 0x55, 0x89, 0x0c, 0x42, 0x10, 0x2c, 0x44, - 0x53, 0x21, 0x05, 0x09, 0x8e, 0x70, 0x69, 0x43, 0x24, 0x2a, 0x2a, 0x84, 0xb6, 0x85, 0x03, 0x17, - 0xcb, 0xb1, 0xd7, 0xea, 0x52, 0x67, 0x37, 0x5a, 0x3b, 0xad, 0xfc, 0x06, 0x1c, 0xe0, 0x19, 0x78, - 0x4a, 0xee, 0x68, 0xbf, 0x9c, 0xc4, 0x49, 0x5a, 0x71, 0xb2, 0x67, 0x77, 0xe6, 0x37, 0x33, 0xff, - 0x19, 0x1b, 0x7a, 0x33, 0xc1, 0x13, 0x9a, 0x92, 0x20, 0xbb, 0xe2, 0xb7, 0x51, 0x98, 0x91, 0xe1, - 0x4c, 0xf0, 0x9c, 0xa3, 0x86, 0x7a, 0x4c, 0xe6, 0x89, 0x7f, 0x01, 0xde, 0x17, 0xed, 0x73, 0x61, - 0x5c, 0x46, 0x7c, 0x3a, 0x9d, 0x33, 0x9a, 0x17, 0xe8, 0x39, 0xb4, 0x22, 0x6b, 0x04, 0x34, 0xf6, - 0x9c, 0xbe, 0x33, 0xd8, 0xc7, 0xcd, 0xf2, 0xec, 0x2c, 0x46, 0x87, 0xb0, 0xc3, 0x45, 0x4c, 0x84, - 0x57, 0xeb, 0x3b, 0x83, 0x03, 0xac, 0x0d, 0xff, 0xb7, 0x03, 0xbd, 0x0a, 0xf5, 0x24, 0x8a, 0xf8, - 0x9c, 0xe5, 0xc8, 0x83, 0xbd, 0x30, 0x8e, 0x05, 0xc9, 0x32, 0x83, 0xb3, 0x26, 0x42, 0x50, 0x67, - 0xe1, 0x94, 0x28, 0xd2, 0x3e, 0x56, 0xef, 0xe8, 0x11, 0x34, 0x22, 0x9e, 0x72, 0x21, 0xb3, 0xbb, - 0xda, 0x5d, 0xd9, 0x3a, 0x33, 0x99, 0xf2, 0x1f, 0xd4, 0xab, 0xab, 0x73, 0x6d, 0x2c, 0xea, 0xd9, - 0x59, 0xae, 0xe7, 0xaf, 0x03, 0x8f, 0xd7, 0xba, 0x4c, 0x53, 0x12, 0xe5, 0x74, 0x92, 0x12, 0x74, - 0x08, 0xee, 0xdc, 0xb6, 0x77, 0x5a, 0xf3, 0x1c, 0x2c, 0xcd, 0xcd, 0xad, 0xa1, 0x63, 0xe8, 0x46, - 0x9c, 0xe5, 0x22, 0x8c, 0xf2, 0xc0, 0x36, 0xa2, 0x2b, 0xeb, 0xd8, 0xf3, 0x13, 0xd3, 0x50, 0x55, - 0xbe, 0xfa, 0xba, 0x7c, 0xb2, 0xbf, 0xab, 0x90, 0x32, 0x79, 0x2d, 0x2b, 0xae, 0xe3, 0x3d, 0x65, - 0xeb, 0xab, 0x9c, 0x5f, 0x13, 0x75, 0xb5, 0xab, 0x5b, 0x57, 0xf6, 0x59, 0x8c, 0x8e, 0xa0, 0x13, - 0x6a, 0x39, 0xcb, 0x12, 0xf6, 0x94, 0x47, 0xdb, 0x1c, 0x9b, 0x0a, 0xfc, 0x73, 0x78, 0x52, 0x69, - 0xfb, 0x1b, 0x11, 0x34, 0xa1, 0x24, 0xbe, 0x94, 0x28, 0xd4, 0x83, 0xdd, 0xac, 0x98, 0x4e, 0x78, - 0x6a, 0x66, 0x61, 0xac, 0x2d, 0x53, 0xfd, 0xe3, 0xc0, 0xd3, 0x0a, 0xee, 0x2b, 0xbb, 0x59, 0x01, - 0x6e, 0x52, 0xc7, 0xd9, 0xac, 0xce, 0x66, 0x79, 0x97, 0x05, 0x71, 0x57, 0x05, 0xb9, 0x5f, 0x4e, - 0xff, 0x97, 0xbb, 0xb6, 0x77, 0x63, 0x96, 0x0b, 0x4a, 0x32, 0xf4, 0x01, 0x4a, 0x4f, 0x4a, 0x64, - 0x51, 0xee, 0xa0, 0xf9, 0xc6, 0x1f, 0xda, 0xef, 0x60, 0xb8, 0xed, 0x23, 0xc0, 0xcb, 0x61, 0xe8, - 0x3d, 0x34, 0x8c, 0xc4, 0x99, 0x57, 0x53, 0x88, 0xfe, 0x56, 0x84, 0xd9, 0x78, 0x5c, 0x46, 0xa0, - 0x8f, 0xb2, 0x83, 0x72, 0xed, 0xe4, 0xde, 0x48, 0xc2, 0x8b, 0x3b, 0x8a, 0x28, 0x9d, 0xf1, 0x4a, - 0x24, 0xfa, 0x0c, 0xed, 0x15, 0xe1, 0x33, 0xaf, 0xae, 0x58, 0x2f, 0xb7, 0xb2, 0x56, 0x06, 0x8f, - 0x2b, 0xd1, 0xe8, 0x12, 0xba, 0x73, 0x56, 0x21, 0xee, 0x28, 0xe2, 0x60, 0x2b, 0xb1, 0x32, 0x7b, - 0xbc, 0x46, 0xf0, 0x6f, 0xe1, 0xd9, 0xe6, 0x69, 0x8c, 0x59, 0x24, 0x8a, 0x59, 0x4e, 0x62, 0xf4, - 0x0a, 0x1e, 0x10, 0x6b, 0x04, 0x44, 0xdf, 0xaa, 0x8d, 0x69, 0xe1, 0x6e, 0x79, 0x61, 0x67, 0x78, - 0x04, 0x1d, 0x73, 0x46, 0x39, 0x0b, 0xae, 0x49, 0xa1, 0x87, 0xd0, 0xc2, 0xed, 0xc5, 0xf1, 0x27, - 0x52, 0x64, 0xfe, 0xcf, 0x1a, 0x74, 0x2a, 0x99, 0xd1, 0x08, 0x5a, 0x09, 0x17, 0x01, 0xb9, 0x21, - 0xa2, 0xe0, 0x8c, 0xa8, 0x24, 0x77, 0x8d, 0xcf, 0x24, 0xc5, 0xcd, 0x84, 0x8b, 0xb1, 0x09, 0x42, - 0xe7, 0x1a, 0x22, 0x77, 0x39, 0x8c, 0xd4, 0x0e, 0x48, 0xc8, 0xf1, 0x7d, 0x90, 0xb2, 0x5f, 0x45, - 0x1b, 0x99, 0x68, 0x34, 0x01, 0x2f, 0x51, 0xff, 0xb6, 0xc0, 0x0a, 0xb7, 0x20, 0xbb, 0xff, 0x4b, - 0x7e, 0x98, 0xc8, 0xdf, 0xa2, 0x1d, 0xb3, 0xcd, 0x71, 0x7a, 0xf0, 0xbd, 0x39, 0x7c, 0xfd, 0xce, - 0x52, 0x26, 0xbb, 0xea, 0xed, 0xed, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa2, 0x77, 0xf8, 0xf3, - 0x19, 0x06, 0x00, 0x00, + // 608 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x95, 0xe3, 0xb4, 0x4d, 0x27, 0x69, 0x12, 0x56, 0x25, 0x32, 0x08, 0x41, 0xb0, 0x10, 0x4d, + 0x85, 0x14, 0x24, 0x38, 0xc2, 0xa5, 0x0d, 0x91, 0xa8, 0xa8, 0x10, 0x5a, 0x0a, 0x07, 0x2e, 0x96, + 0x63, 0xaf, 0xe9, 0x52, 0x67, 0x37, 0x5a, 0x3b, 0xad, 0xfc, 0x0f, 0x38, 0xc0, 0x6f, 0xe0, 0x57, + 0x72, 0x47, 0xfb, 0xe5, 0x24, 0x4e, 0xd2, 0x8a, 0x93, 0xfd, 0x66, 0x77, 0xde, 0xcc, 0x7b, 0x33, + 0x36, 0xf4, 0x66, 0x82, 0x27, 0x34, 0x25, 0x41, 0x76, 0xc9, 0x6f, 0xa2, 0x30, 0x23, 0xc3, 0x99, + 0xe0, 0x39, 0x47, 0x0d, 0xf5, 0x98, 0xcc, 0x13, 0x9f, 0x82, 0xf7, 0x49, 0xdf, 0xf9, 0x6c, 0xae, + 0x8c, 0xf8, 0x74, 0x3a, 0x67, 0x34, 0x2f, 0xd0, 0x53, 0x68, 0x45, 0x16, 0x04, 0x34, 0xf6, 0x9c, + 0xbe, 0x33, 0xd8, 0xc7, 0xcd, 0x32, 0x76, 0x16, 0xa3, 0x43, 0xd8, 0xe1, 0x22, 0x26, 0xc2, 0xab, + 0xf5, 0x9d, 0xc1, 0x01, 0xd6, 0x40, 0x46, 0xbf, 0x8b, 0x90, 0xe5, 0x9e, 0xdb, 0x77, 0x06, 0x2d, + 0xac, 0x81, 0xff, 0xdb, 0x81, 0x5e, 0xa5, 0xd6, 0x49, 0x14, 0xf1, 0x39, 0xcb, 0x91, 0x07, 0x7b, + 0x61, 0x1c, 0x0b, 0x92, 0x65, 0xa6, 0x88, 0x85, 0x08, 0x41, 0x9d, 0x85, 0x53, 0xa2, 0xf8, 0xf7, + 0xb1, 0x7a, 0x47, 0x0f, 0xa0, 0x11, 0xf1, 0x94, 0x0b, 0xd9, 0x93, 0xab, 0xaf, 0x2b, 0xac, 0xfb, + 0x21, 0x53, 0xfe, 0x83, 0x7a, 0x75, 0x15, 0xd7, 0x60, 0xd1, 0xe5, 0xce, 0x52, 0x97, 0xfe, 0x5f, + 0x07, 0x1e, 0xae, 0x69, 0x4f, 0x53, 0x12, 0xe5, 0x74, 0x92, 0x12, 0x74, 0x08, 0xee, 0xdc, 0x8a, + 0x3e, 0xad, 0x79, 0x0e, 0x96, 0x70, 0x8b, 0xe0, 0x63, 0xe8, 0x46, 0x9c, 0xe5, 0x22, 0x8c, 0xf2, + 0xc0, 0x0a, 0xd1, 0x9d, 0x75, 0x6c, 0xfc, 0xc4, 0x08, 0xaa, 0x9a, 0x5a, 0x5f, 0x37, 0x55, 0xea, + 0xbb, 0x0c, 0x29, 0x93, 0xc7, 0xb2, 0xe3, 0x3a, 0xde, 0x53, 0x58, 0x1f, 0xe5, 0xfc, 0x8a, 0xa8, + 0xa3, 0x5d, 0x2d, 0x5d, 0xe1, 0xb3, 0x18, 0x1d, 0x41, 0x27, 0xd4, 0x76, 0x96, 0x2d, 0xec, 0xa9, + 0x1b, 0x6d, 0x13, 0x36, 0x1d, 0xf8, 0xe7, 0xf0, 0xa8, 0x22, 0xfb, 0x2b, 0x11, 0x34, 0xa1, 0x24, + 0xbe, 0x90, 0x54, 0xa8, 0x07, 0xbb, 0x59, 0x31, 0x9d, 0xf0, 0xd4, 0xcc, 0xc2, 0xa0, 0xcd, 0xd2, + 0xfd, 0x3f, 0x0e, 0x3c, 0xae, 0xd0, 0x7d, 0x61, 0xd7, 0x2b, 0x84, 0x9b, 0xdc, 0x71, 0x36, 0xbb, + 0xb3, 0xd9, 0xde, 0x65, 0x43, 0xdc, 0x55, 0x43, 0xee, 0xb6, 0xd3, 0xff, 0xe5, 0xae, 0xed, 0xdd, + 0x98, 0xe5, 0x82, 0x92, 0x0c, 0xbd, 0x83, 0xf2, 0x26, 0x25, 0xb2, 0x29, 0x77, 0xd0, 0x7c, 0xe5, + 0x0f, 0xed, 0xd7, 0x31, 0xdc, 0xf6, 0x69, 0xe0, 0xe5, 0x34, 0xf4, 0x16, 0x1a, 0xc6, 0xe2, 0xcc, + 0xab, 0x29, 0x8a, 0xfe, 0x56, 0x0a, 0xb3, 0xf1, 0xb8, 0xcc, 0x40, 0xef, 0xa5, 0x82, 0x72, 0xed, + 0xe4, 0xde, 0x48, 0x86, 0x67, 0xb7, 0x34, 0x51, 0x5e, 0xc6, 0x2b, 0x99, 0xe8, 0x23, 0xb4, 0x57, + 0x8c, 0xcf, 0xbc, 0xba, 0xe2, 0x7a, 0xbe, 0x95, 0x6b, 0x65, 0xf0, 0xb8, 0x92, 0x8d, 0x2e, 0xa0, + 0x3b, 0x67, 0x15, 0xc6, 0x1d, 0xc5, 0x38, 0xd8, 0xca, 0x58, 0x99, 0x3d, 0x5e, 0x63, 0xf0, 0x6f, + 0xe0, 0xc9, 0xe6, 0x69, 0x8c, 0x59, 0x24, 0x8a, 0x59, 0x4e, 0x62, 0xf4, 0x02, 0xee, 0x11, 0x0b, + 0x02, 0xa2, 0x4f, 0xd5, 0xc6, 0xb4, 0x70, 0xb7, 0x3c, 0xb0, 0x33, 0x3c, 0x82, 0x8e, 0x89, 0x51, + 0xce, 0x82, 0x2b, 0x52, 0xe8, 0x21, 0xb4, 0x70, 0x7b, 0x11, 0xfe, 0x40, 0x8a, 0xcc, 0xff, 0x59, + 0x83, 0x4e, 0xa5, 0x32, 0x1a, 0x41, 0x2b, 0xe1, 0x22, 0x20, 0xd7, 0x44, 0x14, 0x9c, 0x11, 0x55, + 0xe4, 0xb6, 0xf1, 0x99, 0xa2, 0xb8, 0x99, 0x70, 0x31, 0x36, 0x49, 0xe8, 0x5c, 0x93, 0xc8, 0x5d, + 0x0e, 0x23, 0xb5, 0x03, 0x92, 0xe4, 0xf8, 0x2e, 0x92, 0x52, 0xaf, 0x62, 0x1b, 0x99, 0x6c, 0x34, + 0x01, 0x2f, 0x51, 0xff, 0xb6, 0xc0, 0x1a, 0xb7, 0x60, 0x76, 0xff, 0x97, 0xf9, 0x7e, 0x22, 0x7f, + 0x8b, 0x76, 0xcc, 0xb6, 0xc6, 0xe9, 0xc1, 0xb7, 0xe6, 0xf0, 0xe5, 0x1b, 0xcb, 0x32, 0xd9, 0x55, + 0x6f, 0xaf, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x88, 0x27, 0x81, 0x43, 0x2f, 0x06, 0x00, 0x00, } diff --git a/protocol/protobuf/profile_showcase.proto b/protocol/protobuf/profile_showcase.proto index 9b1997293..98d1968ff 100644 --- a/protocol/protobuf/profile_showcase.proto +++ b/protocol/protobuf/profile_showcase.proto @@ -6,6 +6,7 @@ package protobuf; message ProfileShowcaseCommunity { string community_id = 1; uint32 order = 2; + bytes grant = 3; } message ProfileShowcaseAccount { diff --git a/services/ext/api.go b/services/ext/api.go index 5981f7623..2c4c66fa2 100644 --- a/services/ext/api.go +++ b/services/ext/api.go @@ -31,6 +31,7 @@ import ( "github.com/status-im/status-go/protocol/communities/token" "github.com/status-im/status-go/protocol/discord" "github.com/status-im/status-go/protocol/encryption/multidevice" + "github.com/status-im/status-go/protocol/identity" "github.com/status-im/status-go/protocol/protobuf" "github.com/status-im/status-go/protocol/pushnotificationclient" "github.com/status-im/status-go/protocol/requests" @@ -1659,22 +1660,22 @@ func (api *PublicAPI) CreateTokenGatedCommunity() (*protocol.MessengerResponse, } // Set profile showcase preference for current user -func (api *PublicAPI) SetProfileShowcasePreferences(preferences *protocol.ProfileShowcasePreferences) error { +func (api *PublicAPI) SetProfileShowcasePreferences(preferences *identity.ProfileShowcasePreferences) error { return api.service.messenger.SetProfileShowcasePreferences(preferences) } // Get all profile showcase preferences for current user -func (api *PublicAPI) GetProfileShowcasePreferences() (*protocol.ProfileShowcasePreferences, error) { +func (api *PublicAPI) GetProfileShowcasePreferences() (*identity.ProfileShowcasePreferences, error) { return api.service.messenger.GetProfileShowcasePreferences() } // Get profile showcase for a contact -func (api *PublicAPI) GetProfileShowcaseForContact(contactID string) (*protocol.ProfileShowcase, error) { +func (api *PublicAPI) GetProfileShowcaseForContact(contactID string) (*identity.ProfileShowcase, error) { return api.service.messenger.GetProfileShowcaseForContact(contactID) } // Get profile showcase accounts by address -func (api *PublicAPI) GetProfileShowcaseAccountsByAddress(address string) ([]*protocol.ProfileShowcaseAccount, error) { +func (api *PublicAPI) GetProfileShowcaseAccountsByAddress(address string) ([]*identity.ProfileShowcaseAccount, error) { return api.service.messenger.GetProfileShowcaseAccountsByAddress(address) }