Documentation ¶
Index ¶
- Variables
- func AddressHandler(value interface{}) (interface{}, error)
- func BoolFromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
- func BoolHandler(value interface{}) (interface{}, error)
- func BytesFromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
- func Int64FromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
- func JSONBlobHandler(value interface{}) (interface{}, error)
- func NodeConfigHandler(value interface{}) (interface{}, error)
- func StringFromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
- type Database
- func (db *Database) AutoMessageEnabled() (result bool, err error)
- func (db *Database) BackupEnabled() (result bool, err error)
- func (db *Database) BackupFetched() (result bool, err error)
- func (db *Database) Bio() (string, error)
- func (db *Database) CanSyncOnMobileNetwork() (result bool, err error)
- func (db *Database) CanUseMailservers() (result bool, err error)
- func (db *Database) CreateSettings(s Settings, n params.NodeConfig) error
- func (db *Database) DisplayName() (string, error)
- func (db *Database) ENSName() (string, error)
- func (db *Database) GetCurrency() (string, error)
- func (db *Database) GetCurrentStatus(status interface{}) error
- func (db *Database) GetDappsAddress() (rst types.Address, err error)
- func (db *Database) GetDefaultSyncPeriod() (result uint32, err error)
- func (db *Database) GetFleet() (string, error)
- func (db *Database) GetInstalledStickerPacks() (rst *json.RawMessage, err error)
- func (db *Database) GetLatestDerivedPath() (result uint, err error)
- func (db *Database) GetMessagesFromContactsOnly() (result bool, err error)
- func (db *Database) GetNotificationsEnabled() (result bool, err error)
- func (db *Database) GetPendingStickerPacks() (rst *json.RawMessage, err error)
- func (db *Database) GetPinnedMailservers() (rst map[string]string, err error)
- func (db *Database) GetPreferredUsername() (string, error)
- func (db *Database) GetProfilePicturesVisibility() (result int, err error)
- func (db *Database) GetPublicKey() (string, error)
- func (db *Database) GetRecentStickers() (rst *json.RawMessage, err error)
- func (db *Database) GetSettingLastSynced(setting SettingField) (result uint64, err error)
- func (db *Database) GetSettings() (Settings, error)
- func (db *Database) GetTestNetworksEnabled() (result bool, err error)
- func (db *Database) GetWalletRootAddress() (rst types.Address, err error)
- func (db *Database) GifAPIKey() (string, error)
- func (db *Database) GifFavorites() (favorites json.RawMessage, err error)
- func (db *Database) GifRecents() (recents json.RawMessage, err error)
- func (db *Database) LastBackup() (result uint64, err error)
- func (db *Database) MutualContactEnabled() (result bool, err error)
- func (db *Database) SaveSetting(setting string, value interface{}) error
- func (db *Database) SaveSettingField(sf SettingField, value interface{}) error
- func (db *Database) SaveSyncSetting(setting SettingField, value interface{}, clock uint64) error
- func (db *Database) SetBackupFetched(fetched bool) error
- func (db *Database) SetLastBackup(time uint64) error
- func (db *Database) SetPinnedMailservers(mailservers map[string]string) error
- func (db *Database) SetSettingLastSynced(setting SettingField, clock uint64) error
- func (db *Database) SetUseMailservers(value bool) error
- func (db *Database) ShouldBroadcastUserStatus() (result bool, err error)
- func (db *Database) TestNetworksEnabled() (rst bool, err error)
- type ProfilePicturesShowToType
- type ProfilePicturesVisibilityType
- type SettingField
- type Settings
- type SyncProtobufFactory
- func (spf *SyncProtobufFactory) ExtractValueFromProtobuf() SyncSettingProtobufToValue
- func (spf *SyncProtobufFactory) FromInterface() SyncSettingProtobufFactoryInterface
- func (spf *SyncProtobufFactory) FromStruct() SyncSettingProtobufFactoryStruct
- func (spf *SyncProtobufFactory) Inactive() bool
- func (spf *SyncProtobufFactory) SyncSettingProtobufType() protobuf.SyncSetting_Type
- type SyncSettingField
- type SyncSettingProtobufFactoryInterface
- type SyncSettingProtobufFactoryStruct
- type SyncSettingProtobufToValue
- type SyncSource
- type ValueHandler
Constants ¶
This section is empty.
Variables ¶
var ( AnonMetricsShouldSend = SettingField{ // contains filtered or unexported fields } Appearance = SettingField{ // contains filtered or unexported fields } AutoMessageEnabled = SettingField{ // contains filtered or unexported fields } BackupEnabled = SettingField{ // contains filtered or unexported fields } BackupFetched = SettingField{ // contains filtered or unexported fields } ChaosMode = SettingField{ // contains filtered or unexported fields } Currency = SettingField{ // contains filtered or unexported fields } CurrentUserStatus = SettingField{ // contains filtered or unexported fields } CustomBootNodes = SettingField{ // contains filtered or unexported fields } CustomBootNodesEnabled = SettingField{ // contains filtered or unexported fields } DappsAddress = SettingField{ // contains filtered or unexported fields } DefaultSyncPeriod = SettingField{ // contains filtered or unexported fields } DisplayName = SettingField{ // contains filtered or unexported fields } Bio = SettingField{ // contains filtered or unexported fields } EIP1581Address = SettingField{ // contains filtered or unexported fields } Fleet = SettingField{ // contains filtered or unexported fields } GifAPIKey = SettingField{ // contains filtered or unexported fields } GifFavourites = SettingField{ // contains filtered or unexported fields } GifRecents = SettingField{ // contains filtered or unexported fields } HideHomeTooltip = SettingField{ // contains filtered or unexported fields } KeycardInstanceUID = SettingField{ // contains filtered or unexported fields } KeycardPairedOn = SettingField{ // contains filtered or unexported fields } KeycardPairing = SettingField{ // contains filtered or unexported fields } LastBackup = SettingField{ // contains filtered or unexported fields } LastUpdated = SettingField{ // contains filtered or unexported fields } LatestDerivedPath = SettingField{ // contains filtered or unexported fields } LinkPreviewRequestEnabled = SettingField{ // contains filtered or unexported fields } LinkPreviewsEnabledSites = SettingField{ // contains filtered or unexported fields } LogLevel = SettingField{ // contains filtered or unexported fields } MessagesFromContactsOnly = SettingField{ // contains filtered or unexported fields } Mnemonic = SettingField{ // contains filtered or unexported fields } MutualContactEnabled = SettingField{ // contains filtered or unexported fields } Name = SettingField{ // contains filtered or unexported fields } NetworksCurrentNetwork = SettingField{ // contains filtered or unexported fields } NetworksNetworks = SettingField{ // contains filtered or unexported fields } NodeConfig = SettingField{ // contains filtered or unexported fields } // NotificationsEnabled - we should remove this and realated things once mobile team starts usign `settings_notifications` package NotificationsEnabled = SettingField{ // contains filtered or unexported fields } OpenseaEnabled = SettingField{ // contains filtered or unexported fields } PhotoPath = SettingField{ // contains filtered or unexported fields } PinnedMailservers = SettingField{ // contains filtered or unexported fields } PreferredName = SettingField{ // contains filtered or unexported fields } PreviewPrivacy = SettingField{ // contains filtered or unexported fields } ProfilePicturesShowTo = SettingField{ // contains filtered or unexported fields } ProfilePicturesVisibility = SettingField{ // contains filtered or unexported fields } PublicKey = SettingField{ // contains filtered or unexported fields } PushNotificationsBlockMentions = SettingField{ // contains filtered or unexported fields } PushNotificationsFromContactsOnly = SettingField{ // contains filtered or unexported fields } PushNotificationsServerEnabled = SettingField{ // contains filtered or unexported fields } RememberSyncingChoice = SettingField{ // contains filtered or unexported fields } RemotePushNotificationsEnabled = SettingField{ // contains filtered or unexported fields } SendPushNotifications = SettingField{ // contains filtered or unexported fields } SendStatusUpdates = SettingField{ // contains filtered or unexported fields } StickersPacksInstalled = SettingField{ // contains filtered or unexported fields } StickersPacksPending = SettingField{ // contains filtered or unexported fields } StickersRecentStickers = SettingField{ // contains filtered or unexported fields } SyncingOnMobileNetwork = SettingField{ // contains filtered or unexported fields } TelemetryServerURL = SettingField{ // contains filtered or unexported fields } TestNetworksEnabled = SettingField{ // contains filtered or unexported fields } UseMailservers = SettingField{ // contains filtered or unexported fields } Usernames = SettingField{ // contains filtered or unexported fields } WakuBloomFilterMode = SettingField{ // contains filtered or unexported fields } WalletSetUpPassed = SettingField{ // contains filtered or unexported fields } WalletVisibleTokens = SettingField{ // contains filtered or unexported fields } WebviewAllowPermissionRequests = SettingField{ // contains filtered or unexported fields } WalletRootAddress = SettingField{ // contains filtered or unexported fields } SettingFieldRegister = []SettingField{ AnonMetricsShouldSend, Appearance, AutoMessageEnabled, BackupEnabled, BackupFetched, ChaosMode, Currency, CurrentUserStatus, CustomBootNodes, CustomBootNodesEnabled, DappsAddress, DefaultSyncPeriod, DisplayName, EIP1581Address, Fleet, GifAPIKey, GifFavourites, GifRecents, HideHomeTooltip, KeycardInstanceUID, KeycardPairedOn, KeycardPairing, LastBackup, LastUpdated, LatestDerivedPath, LinkPreviewRequestEnabled, LinkPreviewsEnabledSites, LogLevel, MessagesFromContactsOnly, Mnemonic, MutualContactEnabled, Name, NetworksCurrentNetwork, NetworksNetworks, NodeConfig, NotificationsEnabled, OpenseaEnabled, PhotoPath, PinnedMailservers, PreferredName, PreviewPrivacy, ProfilePicturesShowTo, ProfilePicturesVisibility, PublicKey, PushNotificationsBlockMentions, PushNotificationsFromContactsOnly, PushNotificationsServerEnabled, RememberSyncingChoice, RemotePushNotificationsEnabled, SendPushNotifications, SendStatusUpdates, StickersPacksInstalled, StickersPacksPending, StickersRecentStickers, SyncingOnMobileNetwork, TelemetryServerURL, TestNetworksEnabled, UseMailservers, Usernames, WakuBloomFilterMode, WalletRootAddress, WalletSetUpPassed, WalletVisibleTokens, WebviewAllowPermissionRequests, } )
var (
ErrTypeAssertionFailed = errors.New("type assertion of interface value failed")
)
Functions ¶
func AddressHandler ¶
func AddressHandler(value interface{}) (interface{}, error)
func BoolFromSyncProtobuf ¶
func BoolFromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
func BoolHandler ¶
func BoolHandler(value interface{}) (interface{}, error)
func BytesFromSyncProtobuf ¶
func BytesFromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
func Int64FromSyncProtobuf ¶
func Int64FromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
func JSONBlobHandler ¶
func JSONBlobHandler(value interface{}) (interface{}, error)
func NodeConfigHandler ¶
func NodeConfigHandler(value interface{}) (interface{}, error)
func StringFromSyncProtobuf ¶
func StringFromSyncProtobuf(ss *protobuf.SyncSetting) interface{}
Types ¶
type Database ¶
type Database struct { SyncQueue chan SyncSettingField // contains filtered or unexported fields }
Database sql wrapper for operations with browser objects.
func MakeNewDB ¶
MakeNewDB ensures that a singleton instance of Database is returned per sqlite db file
func (*Database) AutoMessageEnabled ¶
func (*Database) BackupEnabled ¶
func (*Database) BackupFetched ¶
func (*Database) CanSyncOnMobileNetwork ¶
func (*Database) CanUseMailservers ¶
func (*Database) CreateSettings ¶
func (db *Database) CreateSettings(s Settings, n params.NodeConfig) error
TODO remove photoPath from settings
func (*Database) DisplayName ¶
func (*Database) GetCurrency ¶ added in v0.100.0
func (*Database) GetCurrentStatus ¶
func (*Database) GetDappsAddress ¶
func (*Database) GetDefaultSyncPeriod ¶
func (*Database) GetInstalledStickerPacks ¶
func (db *Database) GetInstalledStickerPacks() (rst *json.RawMessage, err error)
func (*Database) GetLatestDerivedPath ¶
func (*Database) GetMessagesFromContactsOnly ¶
func (*Database) GetNotificationsEnabled ¶
We should remove this and realated things once mobile team starts usign `settings_notifications` package
func (*Database) GetPendingStickerPacks ¶
func (db *Database) GetPendingStickerPacks() (rst *json.RawMessage, err error)
func (*Database) GetPinnedMailservers ¶
func (*Database) GetPreferredUsername ¶
func (*Database) GetProfilePicturesVisibility ¶
func (*Database) GetPublicKey ¶
func (*Database) GetRecentStickers ¶
func (db *Database) GetRecentStickers() (rst *json.RawMessage, err error)
func (*Database) GetSettingLastSynced ¶
func (db *Database) GetSettingLastSynced(setting SettingField) (result uint64, err error)
func (*Database) GetSettings ¶
func (*Database) GetTestNetworksEnabled ¶ added in v0.101.1
func (*Database) GetWalletRootAddress ¶ added in v0.98.6
func (*Database) GifFavorites ¶
func (db *Database) GifFavorites() (favorites json.RawMessage, err error)
func (*Database) GifRecents ¶
func (db *Database) GifRecents() (recents json.RawMessage, err error)
func (*Database) LastBackup ¶
func (*Database) MutualContactEnabled ¶ added in v0.101.1
func (*Database) SaveSetting ¶
SaveSetting stores data from any non-sync source If the field requires syncing the field data is pushed on to the SyncQueue
func (*Database) SaveSettingField ¶
func (db *Database) SaveSettingField(sf SettingField, value interface{}) error
SaveSettingField is identical in functionality to SaveSetting, except the setting parameter is a SettingField and doesn't require any SettingFieldRegister lookup. This func is useful if you already know the SettingField to save
func (*Database) SaveSyncSetting ¶
func (db *Database) SaveSyncSetting(setting SettingField, value interface{}, clock uint64) error
SaveSyncSetting stores setting data from a sync protobuf source, note it does not call SettingField.ValueHandler() nor does this function attempt to write to the Database.SyncQueue
func (*Database) SetBackupFetched ¶
func (*Database) SetLastBackup ¶
func (*Database) SetPinnedMailservers ¶
func (*Database) SetSettingLastSynced ¶
func (db *Database) SetSettingLastSynced(setting SettingField, clock uint64) error
func (*Database) SetUseMailservers ¶
func (*Database) ShouldBroadcastUserStatus ¶
func (*Database) TestNetworksEnabled ¶ added in v0.100.1
type ProfilePicturesShowToType ¶
type ProfilePicturesShowToType int
const ( ProfilePicturesShowToContactsOnly ProfilePicturesShowToType = iota + 1 ProfilePicturesShowToEveryone ProfilePicturesShowToNone )
type ProfilePicturesVisibilityType ¶
type ProfilePicturesVisibilityType int
const ( ProfilePicturesVisibilityContactsOnly ProfilePicturesVisibilityType = iota + 1 ProfilePicturesVisibilityEveryone ProfilePicturesVisibilityNone )
type SettingField ¶
type SettingField struct {
// contains filtered or unexported fields
}
SettingField represents an individual setting in the database, it contains context dependant names and optional pre-store value parsing, along with optional *SyncProtobufFactory
func GetFieldFromProtobufType ¶
func GetFieldFromProtobufType(pbt protobuf.SyncSetting_Type) (SettingField, error)
func (SettingField) CanSync ¶
func (s SettingField) CanSync(source SyncSource) bool
CanSync checks if a SettingField has functions supporting the syncing of
func (SettingField) GetDBName ¶
func (s SettingField) GetDBName() string
func (SettingField) GetReactName ¶
func (s SettingField) GetReactName() string
func (SettingField) SyncProtobufFactory ¶
func (s SettingField) SyncProtobufFactory() *SyncProtobufFactory
func (SettingField) ValueHandler ¶
func (s SettingField) ValueHandler() ValueHandler
type Settings ¶
type Settings struct { // required Address types.Address `json:"address"` AnonMetricsShouldSend bool `json:"anon-metrics/should-send?,omitempty"` ChaosMode bool `json:"chaos-mode?,omitempty"` Currency string `json:"currency,omitempty"` CurrentNetwork string `json:"networks/current-network"` CustomBootnodes *json.RawMessage `json:"custom-bootnodes,omitempty"` CustomBootnodesEnabled *json.RawMessage `json:"custom-bootnodes-enabled?,omitempty"` DappsAddress types.Address `json:"dapps-address"` DisplayName string `json:"display-name"` Bio string `json:"bio,omitempty"` EIP1581Address types.Address `json:"eip1581-address"` Fleet *string `json:"fleet,omitempty"` HideHomeTooltip bool `json:"hide-home-tooltip?,omitempty"` InstallationID string `json:"installation-id"` KeyUID string `json:"key-uid"` KeycardInstanceUID string `json:"keycard-instance-uid,omitempty"` KeycardPAiredOn int64 `json:"keycard-paired-on,omitempty"` KeycardPairing string `json:"keycard-pairing,omitempty"` LastUpdated *int64 `json:"last-updated,omitempty"` LatestDerivedPath uint `json:"latest-derived-path"` LinkPreviewRequestEnabled bool `json:"link-preview-request-enabled,omitempty"` LinkPreviewsEnabledSites *json.RawMessage `json:"link-previews-enabled-sites,omitempty"` LogLevel *string `json:"log-level,omitempty"` MessagesFromContactsOnly bool `json:"messages-from-contacts-only"` Mnemonic *string `json:"mnemonic,omitempty"` MutualContactEnabled bool `json:"mutual-contact-enabled?"` Name string `json:"name,omitempty"` Networks *json.RawMessage `json:"networks/networks"` // NotificationsEnabled indicates whether local notifications should be enabled (android only) NotificationsEnabled bool `json:"notifications-enabled?,omitempty"` PhotoPath string `json:"photo-path"` PinnedMailserver *json.RawMessage `json:"pinned-mailservers,omitempty"` PreferredName *string `json:"preferred-name,omitempty"` PreviewPrivacy bool `json:"preview-privacy?"` PublicKey string `json:"public-key"` // PushNotificationsServerEnabled indicates whether we should be running a push notification server PushNotificationsServerEnabled bool `json:"push-notifications-server-enabled?,omitempty"` // PushNotificationsFromContactsOnly indicates whether we should only receive push notifications from contacts PushNotificationsFromContactsOnly bool `json:"push-notifications-from-contacts-only?,omitempty"` // PushNotificationsBlockMentions indicates whether we should receive notifications for mentions PushNotificationsBlockMentions bool `json:"push-notifications-block-mentions?,omitempty"` RememberSyncingChoice bool `json:"remember-syncing-choice?,omitempty"` // RemotePushNotificationsEnabled indicates whether we should be using remote notifications (ios only for now) RemotePushNotificationsEnabled bool `json:"remote-push-notifications-enabled?,omitempty"` SigningPhrase string `json:"signing-phrase"` StickerPacksInstalled *json.RawMessage `json:"stickers/packs-installed,omitempty"` StickerPacksPending *json.RawMessage `json:"stickers/packs-pending,omitempty"` StickersRecentStickers *json.RawMessage `json:"stickers/recent-stickers,omitempty"` SyncingOnMobileNetwork bool `json:"syncing-on-mobile-network?,omitempty"` // DefaultSyncPeriod is how far back in seconds we should pull messages from a mailserver DefaultSyncPeriod uint `json:"default-sync-period"` // SendPushNotifications indicates whether we should send push notifications for other clients SendPushNotifications bool `json:"send-push-notifications?,omitempty"` Appearance uint `json:"appearance"` // ProfilePicturesShowTo indicates to whom the user shows their profile picture to (contacts, everyone) ProfilePicturesShowTo ProfilePicturesShowToType `json:"profile-pictures-show-to"` // ProfilePicturesVisibility indicates who we want to see profile pictures of (contacts, everyone or none) ProfilePicturesVisibility ProfilePicturesVisibilityType `json:"profile-pictures-visibility"` UseMailservers bool `json:"use-mailservers?"` Usernames *json.RawMessage `json:"usernames,omitempty"` WalletRootAddress types.Address `json:"wallet-root-address,omitempty"` WalletSetUpPassed bool `json:"wallet-set-up-passed?,omitempty"` WalletVisibleTokens *json.RawMessage `json:"wallet/visible-tokens,omitempty"` WakuBloomFilterMode bool `json:"waku-bloom-filter-mode,omitempty"` WebViewAllowPermissionRequests bool `json:"webview-allow-permission-requests?,omitempty"` SendStatusUpdates bool `json:"send-status-updates?,omitempty"` CurrentUserStatus *json.RawMessage `json:"current-user-status"` GifRecents *json.RawMessage `json:"gifs/recent-gifs"` GifFavorites *json.RawMessage `json:"gifs/favorite-gifs"` OpenseaEnabled bool `json:"opensea-enabled?,omitempty"` TelemetryServerURL string `json:"telemetry-server-url,omitempty"` LastBackup uint64 `json:"last-backup,omitempty"` BackupEnabled bool `json:"backup-enabled?,omitempty"` AutoMessageEnabled bool `json:"auto-message-enabled?,omitempty"` GifAPIKey string `json:"gifs/api-key"` TestNetworksEnabled bool `json:"test-networks-enabled?,omitempty"` }
Settings represents the entire setting row stored in the application db
type SyncProtobufFactory ¶
type SyncProtobufFactory struct {
// contains filtered or unexported fields
}
SyncProtobufFactory represents a collection of functionality to generate and parse *protobuf.SyncSetting
func (*SyncProtobufFactory) ExtractValueFromProtobuf ¶
func (spf *SyncProtobufFactory) ExtractValueFromProtobuf() SyncSettingProtobufToValue
func (*SyncProtobufFactory) FromInterface ¶
func (spf *SyncProtobufFactory) FromInterface() SyncSettingProtobufFactoryInterface
func (*SyncProtobufFactory) FromStruct ¶
func (spf *SyncProtobufFactory) FromStruct() SyncSettingProtobufFactoryStruct
func (*SyncProtobufFactory) Inactive ¶
func (spf *SyncProtobufFactory) Inactive() bool
func (*SyncProtobufFactory) SyncSettingProtobufType ¶
func (spf *SyncProtobufFactory) SyncSettingProtobufType() protobuf.SyncSetting_Type
type SyncSettingField ¶
type SyncSettingField struct { SettingField Value interface{} }
SyncSettingField represents a binding between a Value and a SettingField
func (SyncSettingField) MarshalJSON ¶
func (s SyncSettingField) MarshalJSON() ([]byte, error)
type SyncSettingProtobufFactoryInterface ¶
type SyncSettingProtobufFactoryInterface func(interface{}, uint64, string) (*common.RawMessage, error)
type SyncSettingProtobufToValue ¶
type SyncSettingProtobufToValue func(setting *protobuf.SyncSetting) interface{}
type ValueHandler ¶
type ValueHandler func(interface{}) (interface{}, error)