status-im/status-go

View on GitHub
protocol/messenger_handlers.go

Summary

Maintainability
D
2 days
Test Coverage
D
69%
//nolint
// Code generated by generate_handlers.go. DO NOT EDIT.
// source: generate_handlers.go

package protocol

import (
    "errors"

    "github.com/golang/protobuf/proto"
    "go.uber.org/zap"

    "github.com/status-im/status-go/protocol/common"
    "github.com/status-im/status-go/protocol/protobuf"
    "github.com/status-im/status-go/protocol/transport"
    v1protocol "github.com/status-im/status-go/protocol/v1"
)

func (m *Messenger) dispatchToHandler(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter, fromArchive bool) error {
    switch msg.ApplicationLayer.Type {
    
           case protobuf.ApplicationMetadataMessage_CHAT_MESSAGE:
        return m.handleChatMessageProtobuf(messageState, protoBytes, msg, filter, fromArchive)
        
           case protobuf.ApplicationMetadataMessage_CONTACT_UPDATE:
        return m.handleContactUpdateProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_MEMBERSHIP_UPDATE_MESSAGE:
        return m.handleMembershipUpdateMessageProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_PAIR_INSTALLATION:
        return m.handleSyncPairInstallationProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_REQUEST_ADDRESS_FOR_TRANSACTION:
        return m.handleRequestAddressForTransactionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_ACCEPT_REQUEST_ADDRESS_FOR_TRANSACTION:
        return m.handleAcceptRequestAddressForTransactionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_DECLINE_REQUEST_ADDRESS_FOR_TRANSACTION:
        return m.handleDeclineRequestAddressForTransactionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_REQUEST_TRANSACTION:
        return m.handleRequestTransactionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SEND_TRANSACTION:
        return m.handleSendTransactionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_DECLINE_REQUEST_TRANSACTION:
        return m.handleDeclineRequestTransactionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_INSTALLATION_CONTACT_V2:
        return m.handleSyncInstallationContactV2Protobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_INSTALLATION_ACCOUNT:
        return m.handleSyncInstallationAccountProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_CONTACT_CODE_ADVERTISEMENT:
        return m.handleContactCodeAdvertisementProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_PUSH_NOTIFICATION_REGISTRATION:
        return m.handlePushNotificationRegistrationProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_PUSH_NOTIFICATION_REGISTRATION_RESPONSE:
        return m.handlePushNotificationRegistrationResponseProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_PUSH_NOTIFICATION_QUERY:
        return m.handlePushNotificationQueryProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_PUSH_NOTIFICATION_QUERY_RESPONSE:
        return m.handlePushNotificationQueryResponseProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_PUSH_NOTIFICATION_REQUEST:
        return m.handlePushNotificationRequestProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_PUSH_NOTIFICATION_RESPONSE:
        return m.handlePushNotificationResponseProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_EMOJI_REACTION:
        return m.handleEmojiReactionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_GROUP_CHAT_INVITATION:
        return m.handleGroupChatInvitationProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_CHAT_IDENTITY:
        return m.handleChatIdentityProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_DESCRIPTION:
        return m.handleCommunityDescriptionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOIN:
        return m.handleCommunityRequestToJoinProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_PIN_MESSAGE:
        return m.handlePinMessageProtobuf(messageState, protoBytes, msg, filter, fromArchive)
        
           case protobuf.ApplicationMetadataMessage_EDIT_MESSAGE:
        return m.handleEditMessageProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_STATUS_UPDATE:
        return m.handleStatusUpdateProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_DELETE_MESSAGE:
        return m.handleDeleteMessageProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_INSTALLATION_COMMUNITY:
        return m.handleSyncInstallationCommunityProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_ANONYMOUS_METRIC_BATCH:
        return m.handleAnonymousMetricBatchProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_CHAT_REMOVED:
        return m.handleSyncChatRemovedProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_CHAT_MESSAGES_READ:
        return m.handleSyncChatMessagesReadProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_BACKUP:
        return m.handleBackupProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_READ:
        return m.handleSyncActivityCenterReadProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_ACCEPTED:
        return m.handleSyncActivityCenterAcceptedProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_DISMISSED:
        return m.handleSyncActivityCenterDismissedProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_BOOKMARK:
        return m.handleSyncBookmarkProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_CLEAR_HISTORY:
        return m.handleSyncClearHistoryProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_SETTING:
        return m.handleSyncSettingProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_MESSAGE_ARCHIVE_MAGNETLINK:
        return m.handleCommunityMessageArchiveMagnetlinkProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_PROFILE_PICTURES:
        return m.handleSyncProfilePicturesProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACCOUNT:
        return m.handleSyncAccountProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_ACCEPT_CONTACT_REQUEST:
        return m.handleAcceptContactRequestProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_RETRACT_CONTACT_REQUEST:
        return m.handleRetractContactRequestProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOIN_RESPONSE:
        return m.handleCommunityRequestToJoinResponseProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_COMMUNITY_SETTINGS:
        return m.handleSyncCommunitySettingsProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_REQUEST_CONTACT_VERIFICATION:
        return m.handleRequestContactVerificationProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_ACCEPT_CONTACT_VERIFICATION:
        return m.handleAcceptContactVerificationProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_DECLINE_CONTACT_VERIFICATION:
        return m.handleDeclineContactVerificationProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_TRUSTED_USER:
        return m.handleSyncTrustedUserProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_VERIFICATION_REQUEST:
        return m.handleSyncVerificationRequestProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_CONTACT_REQUEST_DECISION:
        return m.handleSyncContactRequestDecisionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_LEAVE:
        return m.handleCommunityRequestToLeaveProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_DELETE_FOR_ME_MESSAGE:
        return m.handleSyncDeleteForMeMessageProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_SAVED_ADDRESS:
        return m.handleSyncSavedAddressProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_CANCEL_REQUEST_TO_JOIN:
        return m.handleCommunityCancelRequestToJoinProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_CANCEL_CONTACT_VERIFICATION:
        return m.handleCancelContactVerificationProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_KEYPAIR:
        return m.handleSyncKeypairProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ENS_USERNAME_DETAIL:
        return m.handleSyncEnsUsernameDetailProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_EVENTS_MESSAGE:
        return m.handleCommunityEventsMessageProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_EDIT_SHARED_ADDRESSES:
        return m.handleCommunityEditSharedAddressesProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACCOUNT_CUSTOMIZATION_COLOR:
        return m.handleSyncAccountCustomizationColorProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACCOUNTS_POSITIONS:
        return m.handleSyncAccountsPositionsProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_PRIVILEGED_USER_SYNC_MESSAGE:
        return m.handleCommunityPrivilegedUserSyncMessageProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_SHARD_KEY:
        return m.handleCommunityShardKeyProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_CHAT:
        return m.handleSyncChatProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_DELETED:
        return m.handleSyncActivityCenterDeletedProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_UNREAD:
        return m.handleSyncActivityCenterUnreadProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_COMMUNITY_REQUEST_DECISION:
        return m.handleSyncActivityCenterCommunityRequestDecisionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_TOKEN_PREFERENCES:
        return m.handleSyncTokenPreferencesProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_PUBLIC_SHARD_INFO:
        return m.handleCommunityPublicShardInfoProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_COLLECTIBLE_PREFERENCES:
        return m.handleSyncCollectiblePreferencesProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_USER_KICKED:
        return m.handleCommunityUserKickedProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_SYNC_PROFILE_SHOWCASE_PREFERENCES:
        return m.handleSyncProfileShowcasePreferencesProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_PUBLIC_STORENODES_INFO:
        return m.handleCommunityPublicStorenodesInfoProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_REEVALUATE_PERMISSIONS_REQUEST:
        return m.handleCommunityReevaluatePermissionsRequestProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_DELETE_COMMUNITY_MEMBER_MESSAGES:
        return m.handleDeleteCommunityMemberMessagesProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_UPDATE_GRANT:
        return m.handleCommunityUpdateGrantProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_ENCRYPTION_KEYS_REQUEST:
        return m.handleCommunityEncryptionKeysRequestProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_TOKEN_ACTION:
        return m.handleCommunityTokenActionProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_SHARED_ADDRESSES_REQUEST:
        return m.handleCommunitySharedAddressesRequestProtobuf(messageState, protoBytes, msg, filter)
        
           case protobuf.ApplicationMetadataMessage_COMMUNITY_SHARED_ADDRESSES_RESPONSE:
        return m.handleCommunitySharedAddressesResponseProtobuf(messageState, protoBytes, msg, filter)
        
    default:
        m.logger.Info("protobuf type not found", zap.String("type", string(msg.ApplicationLayer.Type)))
                return errors.New("protobuf type not found")
    }
    return nil
}


func (m *Messenger) handleChatMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter, fromArchive bool) error {
    m.logger.Info("handling ChatMessage")
    

    
    p := &protobuf.ChatMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleChatMessage(messageState, p, msg, fromArchive )
    
}


func (m *Messenger) handleContactUpdateProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling ContactUpdate")
    

    
    p := &protobuf.ContactUpdate{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleContactUpdate(messageState, p, msg)
    
}


func (m *Messenger) handleMembershipUpdateMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling MembershipUpdateMessage")
    

    
    p := &protobuf.MembershipUpdateMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleMembershipUpdateMessage(messageState, p, msg)
    
}


func (m *Messenger) handleSyncPairInstallationProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncPairInstallation")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncPairInstallation{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncPairInstallation(messageState, p, msg)
    
}


func (m *Messenger) handleRequestAddressForTransactionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling RequestAddressForTransaction")
    

    
    p := &protobuf.RequestAddressForTransaction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleRequestAddressForTransaction(messageState, p, msg)
    
}


func (m *Messenger) handleAcceptRequestAddressForTransactionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling AcceptRequestAddressForTransaction")
    

    
    p := &protobuf.AcceptRequestAddressForTransaction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleAcceptRequestAddressForTransaction(messageState, p, msg)
    
}


func (m *Messenger) handleDeclineRequestAddressForTransactionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling DeclineRequestAddressForTransaction")
    

    
    p := &protobuf.DeclineRequestAddressForTransaction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleDeclineRequestAddressForTransaction(messageState, p, msg)
    
}


func (m *Messenger) handleRequestTransactionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling RequestTransaction")
    

    
    p := &protobuf.RequestTransaction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleRequestTransaction(messageState, p, msg)
    
}


func (m *Messenger) handleSendTransactionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SendTransaction")
    

    
    p := &protobuf.SendTransaction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSendTransaction(messageState, p, msg)
    
}


func (m *Messenger) handleDeclineRequestTransactionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling DeclineRequestTransaction")
    

    
    p := &protobuf.DeclineRequestTransaction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleDeclineRequestTransaction(messageState, p, msg)
    
}


func (m *Messenger) handleSyncInstallationContactV2Protobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncInstallationContactV2")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncInstallationContactV2{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncInstallationContactV2(messageState, p, msg)
    
}


func (m *Messenger) handleSyncInstallationAccountProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncInstallationAccount")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncInstallationAccount{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncInstallationAccount(messageState, p, msg)
    
}


func (m *Messenger) handleContactCodeAdvertisementProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling ContactCodeAdvertisement")
    

    
    p := &protobuf.ContactCodeAdvertisement{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleContactCodeAdvertisement(messageState, p, msg)
    
}


func (m *Messenger) handlePushNotificationRegistrationProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling PushNotificationRegistration")
    

    
    return m.HandlePushNotificationRegistration(messageState, protoBytes, msg)
    
}


func (m *Messenger) handlePushNotificationRegistrationResponseProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling PushNotificationRegistrationResponse")
    

    
    p := &protobuf.PushNotificationRegistrationResponse{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandlePushNotificationRegistrationResponse(messageState, p, msg)
    
}


func (m *Messenger) handlePushNotificationQueryProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling PushNotificationQuery")
    

    
    p := &protobuf.PushNotificationQuery{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandlePushNotificationQuery(messageState, p, msg)
    
}


func (m *Messenger) handlePushNotificationQueryResponseProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling PushNotificationQueryResponse")
    

    
    p := &protobuf.PushNotificationQueryResponse{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandlePushNotificationQueryResponse(messageState, p, msg)
    
}


func (m *Messenger) handlePushNotificationRequestProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling PushNotificationRequest")
    

    
    p := &protobuf.PushNotificationRequest{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandlePushNotificationRequest(messageState, p, msg)
    
}


func (m *Messenger) handlePushNotificationResponseProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling PushNotificationResponse")
    

    
    p := &protobuf.PushNotificationResponse{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandlePushNotificationResponse(messageState, p, msg)
    
}


func (m *Messenger) handleEmojiReactionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling EmojiReaction")
    

    
    p := &protobuf.EmojiReaction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleEmojiReaction(messageState, p, msg)
    
}


func (m *Messenger) handleGroupChatInvitationProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling GroupChatInvitation")
    

    
    p := &protobuf.GroupChatInvitation{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleGroupChatInvitation(messageState, p, msg)
    
}


func (m *Messenger) handleChatIdentityProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling ChatIdentity")
    

    
    p := &protobuf.ChatIdentity{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleChatIdentity(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityDescriptionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityDescription")
    

    
    p := &protobuf.CommunityDescription{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityDescription(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityRequestToJoinProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityRequestToJoin")
    

    
    p := &protobuf.CommunityRequestToJoin{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityRequestToJoin(messageState, p, msg)
    
}


func (m *Messenger) handlePinMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter, fromArchive bool) error {
    m.logger.Info("handling PinMessage")
    

    
    p := &protobuf.PinMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandlePinMessage(messageState, p, msg, fromArchive )
    
}


func (m *Messenger) handleEditMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling EditMessage")
    

    
    p := &protobuf.EditMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleEditMessage(messageState, p, msg)
    
}


func (m *Messenger) handleStatusUpdateProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling StatusUpdate")
    

    
    p := &protobuf.StatusUpdate{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleStatusUpdate(messageState, p, msg)
    
}


func (m *Messenger) handleDeleteMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling DeleteMessage")
    

    
    p := &protobuf.DeleteMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleDeleteMessage(messageState, p, msg)
    
}


func (m *Messenger) handleSyncInstallationCommunityProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncInstallationCommunity")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncInstallationCommunity{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncInstallationCommunity(messageState, p, msg)
    
}


func (m *Messenger) handleAnonymousMetricBatchProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling AnonymousMetricBatch")
    

    
    p := &protobuf.AnonymousMetricBatch{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleAnonymousMetricBatch(messageState, p, msg)
    
}


func (m *Messenger) handleSyncChatRemovedProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncChatRemoved")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncChatRemoved{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncChatRemoved(messageState, p, msg)
    
}


func (m *Messenger) handleSyncChatMessagesReadProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncChatMessagesRead")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncChatMessagesRead{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncChatMessagesRead(messageState, p, msg)
    
}


func (m *Messenger) handleBackupProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling Backup")
    

    
    p := &protobuf.Backup{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleBackup(messageState, p, msg)
    
}


func (m *Messenger) handleSyncActivityCenterReadProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncActivityCenterRead")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncActivityCenterRead{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncActivityCenterRead(messageState, p, msg)
    
}


func (m *Messenger) handleSyncActivityCenterAcceptedProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncActivityCenterAccepted")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncActivityCenterAccepted{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncActivityCenterAccepted(messageState, p, msg)
    
}


func (m *Messenger) handleSyncActivityCenterDismissedProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncActivityCenterDismissed")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncActivityCenterDismissed{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncActivityCenterDismissed(messageState, p, msg)
    
}


func (m *Messenger) handleSyncBookmarkProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncBookmark")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncBookmark{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncBookmark(messageState, p, msg)
    
}


func (m *Messenger) handleSyncClearHistoryProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncClearHistory")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncClearHistory{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncClearHistory(messageState, p, msg)
    
}


func (m *Messenger) handleSyncSettingProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncSetting")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncSetting{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncSetting(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityMessageArchiveMagnetlinkProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityMessageArchiveMagnetlink")
    

    
    p := &protobuf.CommunityMessageArchiveMagnetlink{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityMessageArchiveMagnetlink(messageState, p, msg)
    
}


func (m *Messenger) handleSyncProfilePicturesProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncProfilePictures")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncProfilePictures{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncProfilePictures(messageState, p, msg)
    
}


func (m *Messenger) handleSyncAccountProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncAccount")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncAccount{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncAccount(messageState, p, msg)
    
}


func (m *Messenger) handleAcceptContactRequestProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling AcceptContactRequest")
    

    
    p := &protobuf.AcceptContactRequest{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleAcceptContactRequest(messageState, p, msg)
    
}


func (m *Messenger) handleRetractContactRequestProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling RetractContactRequest")
    

    
    p := &protobuf.RetractContactRequest{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleRetractContactRequest(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityRequestToJoinResponseProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityRequestToJoinResponse")
    

    
    p := &protobuf.CommunityRequestToJoinResponse{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityRequestToJoinResponse(messageState, p, msg)
    
}


func (m *Messenger) handleSyncCommunitySettingsProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncCommunitySettings")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncCommunitySettings{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncCommunitySettings(messageState, p, msg)
    
}


func (m *Messenger) handleRequestContactVerificationProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling RequestContactVerification")
    

    
    p := &protobuf.RequestContactVerification{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleRequestContactVerification(messageState, p, msg)
    
}


func (m *Messenger) handleAcceptContactVerificationProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling AcceptContactVerification")
    

    
    p := &protobuf.AcceptContactVerification{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleAcceptContactVerification(messageState, p, msg)
    
}


func (m *Messenger) handleDeclineContactVerificationProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling DeclineContactVerification")
    

    
    p := &protobuf.DeclineContactVerification{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleDeclineContactVerification(messageState, p, msg)
    
}


func (m *Messenger) handleSyncTrustedUserProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncTrustedUser")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncTrustedUser{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncTrustedUser(messageState, p, msg)
    
}


func (m *Messenger) handleSyncVerificationRequestProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncVerificationRequest")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncVerificationRequest{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncVerificationRequest(messageState, p, msg)
    
}


func (m *Messenger) handleSyncContactRequestDecisionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncContactRequestDecision")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncContactRequestDecision{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncContactRequestDecision(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityRequestToLeaveProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityRequestToLeave")
    

    
    p := &protobuf.CommunityRequestToLeave{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityRequestToLeave(messageState, p, msg)
    
}


func (m *Messenger) handleSyncDeleteForMeMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncDeleteForMeMessage")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncDeleteForMeMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncDeleteForMeMessage(messageState, p, msg)
    
}


func (m *Messenger) handleSyncSavedAddressProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncSavedAddress")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncSavedAddress{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncSavedAddress(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityCancelRequestToJoinProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityCancelRequestToJoin")
    

    
    p := &protobuf.CommunityCancelRequestToJoin{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityCancelRequestToJoin(messageState, p, msg)
    
}


func (m *Messenger) handleCancelContactVerificationProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CancelContactVerification")
    

    
    p := &protobuf.CancelContactVerification{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCancelContactVerification(messageState, p, msg)
    
}


func (m *Messenger) handleSyncKeypairProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncKeypair")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncKeypair{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncKeypair(messageState, p, msg)
    
}


func (m *Messenger) handleSyncEnsUsernameDetailProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncEnsUsernameDetail")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncEnsUsernameDetail{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncEnsUsernameDetail(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityEventsMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityEventsMessage")
    

    
    p := &protobuf.CommunityEventsMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityEventsMessage(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityEditSharedAddressesProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityEditSharedAddresses")
    

    
    p := &protobuf.CommunityEditSharedAddresses{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityEditSharedAddresses(messageState, p, msg)
    
}


func (m *Messenger) handleSyncAccountCustomizationColorProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncAccountCustomizationColor")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncAccountCustomizationColor{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncAccountCustomizationColor(messageState, p, msg)
    
}


func (m *Messenger) handleSyncAccountsPositionsProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncAccountsPositions")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncAccountsPositions{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncAccountsPositions(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityPrivilegedUserSyncMessageProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityPrivilegedUserSyncMessage")
    

    
    p := &protobuf.CommunityPrivilegedUserSyncMessage{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityPrivilegedUserSyncMessage(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityShardKeyProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityShardKey")
    

    
    p := &protobuf.CommunityShardKey{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityShardKey(messageState, p, msg)
    
}


func (m *Messenger) handleSyncChatProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncChat")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncChat{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncChat(messageState, p, msg)
    
}


func (m *Messenger) handleSyncActivityCenterDeletedProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncActivityCenterDeleted")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncActivityCenterDeleted{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncActivityCenterDeleted(messageState, p, msg)
    
}


func (m *Messenger) handleSyncActivityCenterUnreadProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncActivityCenterUnread")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncActivityCenterUnread{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncActivityCenterUnread(messageState, p, msg)
    
}


func (m *Messenger) handleSyncActivityCenterCommunityRequestDecisionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncActivityCenterCommunityRequestDecision")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncActivityCenterCommunityRequestDecision{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncActivityCenterCommunityRequestDecision(messageState, p, msg)
    
}


func (m *Messenger) handleSyncTokenPreferencesProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncTokenPreferences")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncTokenPreferences{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncTokenPreferences(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityPublicShardInfoProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityPublicShardInfo")
    

    
    p := &protobuf.CommunityPublicShardInfo{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityPublicShardInfo(messageState, p, msg)
    
}


func (m *Messenger) handleSyncCollectiblePreferencesProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncCollectiblePreferences")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncCollectiblePreferences{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncCollectiblePreferences(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityUserKickedProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityUserKicked")
    

    
    p := &protobuf.CommunityUserKicked{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityUserKicked(messageState, p, msg)
    
}


func (m *Messenger) handleSyncProfileShowcasePreferencesProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling SyncProfileShowcasePreferences")
    
    if !common.IsPubKeyEqual(messageState.CurrentMessageState.PublicKey, &m.identity.PublicKey) {
        m.logger.Warn("not coming from us, ignoring")
        return nil
    }
    

    
    p := &protobuf.SyncProfileShowcasePreferences{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleSyncProfileShowcasePreferences(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityPublicStorenodesInfoProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityPublicStorenodesInfo")
    

    
    p := &protobuf.CommunityPublicStorenodesInfo{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityPublicStorenodesInfo(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityReevaluatePermissionsRequestProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityReevaluatePermissionsRequest")
    

    
    p := &protobuf.CommunityReevaluatePermissionsRequest{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityReevaluatePermissionsRequest(messageState, p, msg)
    
}


func (m *Messenger) handleDeleteCommunityMemberMessagesProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling DeleteCommunityMemberMessages")
    

    
    p := &protobuf.DeleteCommunityMemberMessages{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleDeleteCommunityMemberMessages(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityUpdateGrantProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityUpdateGrant")
    

    
    p := &protobuf.CommunityUpdateGrant{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityUpdateGrant(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityEncryptionKeysRequestProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityEncryptionKeysRequest")
    

    
    p := &protobuf.CommunityEncryptionKeysRequest{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityEncryptionKeysRequest(messageState, p, msg)
    
}


func (m *Messenger) handleCommunityTokenActionProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunityTokenAction")
    

    
    p := &protobuf.CommunityTokenAction{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunityTokenAction(messageState, p, msg)
    
}


func (m *Messenger) handleCommunitySharedAddressesRequestProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunitySharedAddressesRequest")
    

    
    p := &protobuf.CommunitySharedAddressesRequest{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunitySharedAddressesRequest(messageState, p, msg)
    
}


func (m *Messenger) handleCommunitySharedAddressesResponseProtobuf(messageState *ReceivedMessageState, protoBytes []byte, msg *v1protocol.StatusMessage, filter transport.Filter) error {
    m.logger.Info("handling CommunitySharedAddressesResponse")
    

    
    p := &protobuf.CommunitySharedAddressesResponse{}
    err := proto.Unmarshal(protoBytes, p)
    if err != nil {
        return err
    }

    m.outputToCSV(msg.TransportLayer.Message.Timestamp, msg.ApplicationLayer.ID, messageState.CurrentMessageState.Contact.ID, filter.ContentTopic, filter.ChatID, msg.ApplicationLayer.Type, p)

    return m.HandleCommunitySharedAddressesResponse(messageState, p, msg)
    
}