github.com/status-im/status-go@v1.1.0/multiaccounts/settings/columns.go (about)

     1  package settings
     2  
     3  import (
     4  	"github.com/status-im/status-go/multiaccounts/errors"
     5  	"github.com/status-im/status-go/protocol/protobuf"
     6  )
     7  
     8  const (
     9  	DBColumnMnemonic = "mnemonic"
    10  )
    11  
    12  var (
    13  	AnonMetricsShouldSend = SettingField{
    14  		reactFieldName: "anon-metrics/should-send?",
    15  		dBColumnName:   "anon_metrics_should_send",
    16  		valueHandler:   BoolHandler,
    17  	}
    18  	Appearance = SettingField{
    19  		reactFieldName: "appearance",
    20  		dBColumnName:   "appearance",
    21  	}
    22  	AutoMessageEnabled = SettingField{
    23  		reactFieldName: "auto-message-enabled?",
    24  		dBColumnName:   "auto_message_enabled",
    25  		valueHandler:   BoolHandler,
    26  	}
    27  	BackupEnabled = SettingField{
    28  		reactFieldName: "backup-enabled?",
    29  		dBColumnName:   "backup_enabled",
    30  		valueHandler:   BoolHandler,
    31  	}
    32  	BackupFetched = SettingField{
    33  		reactFieldName: "backup-fetched?",
    34  		dBColumnName:   "backup_fetched",
    35  		valueHandler:   BoolHandler,
    36  	}
    37  	ChaosMode = SettingField{
    38  		reactFieldName: "chaos-mode?",
    39  		dBColumnName:   "chaos_mode",
    40  		valueHandler:   BoolHandler,
    41  	}
    42  	Currency = SettingField{
    43  		reactFieldName: "currency",
    44  		dBColumnName:   "currency",
    45  		syncProtobufFactory: &SyncProtobufFactory{
    46  			fromInterface:     currencyProtobufFactory,
    47  			fromStruct:        currencyProtobufFactoryStruct,
    48  			valueFromProtobuf: StringFromSyncProtobuf,
    49  			protobufType:      protobuf.SyncSetting_CURRENCY,
    50  		},
    51  	}
    52  	CurrentUserStatus = SettingField{
    53  		reactFieldName: "current-user-status",
    54  		dBColumnName:   "current_user_status",
    55  		valueHandler:   JSONBlobHandler,
    56  	}
    57  	CustomBootNodes = SettingField{
    58  		reactFieldName: "custom-bootnodes",
    59  		dBColumnName:   "custom_bootnodes",
    60  		valueHandler:   JSONBlobHandler,
    61  	}
    62  	CustomBootNodesEnabled = SettingField{
    63  		reactFieldName: "custom-bootnodes-enabled?",
    64  		dBColumnName:   "custom_bootnodes_enabled",
    65  		valueHandler:   JSONBlobHandler,
    66  	}
    67  	DappsAddress = SettingField{
    68  		reactFieldName: "dapps-address",
    69  		dBColumnName:   "dapps_address",
    70  		valueHandler:   AddressHandler,
    71  	}
    72  	DefaultSyncPeriod = SettingField{
    73  		reactFieldName: "default-sync-period",
    74  		dBColumnName:   "default_sync_period",
    75  	}
    76  	DeviceName = SettingField{
    77  		reactFieldName: "device-name",
    78  		dBColumnName:   "device_name",
    79  	}
    80  	DisplayName = SettingField{
    81  		reactFieldName: "display-name",
    82  		dBColumnName:   "display_name",
    83  		syncProtobufFactory: &SyncProtobufFactory{
    84  			fromInterface:     displayNameProtobufFactory,
    85  			fromStruct:        displayNameProtobufFactoryStruct,
    86  			valueFromProtobuf: StringFromSyncProtobuf,
    87  			protobufType:      protobuf.SyncSetting_DISPLAY_NAME,
    88  		},
    89  	}
    90  	Bio = SettingField{
    91  		reactFieldName: "bio",
    92  		dBColumnName:   "bio",
    93  		syncProtobufFactory: &SyncProtobufFactory{
    94  			fromInterface:     bioProtobufFactory,
    95  			fromStruct:        bioProtobufFactoryStruct,
    96  			valueFromProtobuf: StringFromSyncProtobuf,
    97  			protobufType:      protobuf.SyncSetting_BIO,
    98  		},
    99  	}
   100  	EIP1581Address = SettingField{
   101  		reactFieldName: "eip1581-address",
   102  		dBColumnName:   "eip1581_address",
   103  		valueHandler:   AddressHandler,
   104  	}
   105  	Fleet = SettingField{
   106  		reactFieldName: "fleet",
   107  		dBColumnName:   "fleet",
   108  	}
   109  	GifAPIKey = SettingField{
   110  		reactFieldName: "gifs/api-key",
   111  		dBColumnName:   "gif_api_key",
   112  	}
   113  	GifFavourites = SettingField{
   114  		reactFieldName: "gifs/favorite-gifs",
   115  		dBColumnName:   "gif_favorites",
   116  		valueHandler:   JSONBlobHandler,
   117  		// TODO resolve issue 8 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1065179963
   118  		//  The reported issue is not directly related, but I suspect that gifs suffer the same issue
   119  		syncProtobufFactory: &SyncProtobufFactory{
   120  			inactive:          true, // Remove after issue is resolved
   121  			fromInterface:     gifFavouritesProtobufFactory,
   122  			fromStruct:        gifFavouritesProtobufFactoryStruct,
   123  			valueFromProtobuf: BytesFromSyncProtobuf,
   124  			protobufType:      protobuf.SyncSetting_GIF_FAVOURITES,
   125  		},
   126  	}
   127  	GifRecents = SettingField{
   128  		reactFieldName: "gifs/recent-gifs",
   129  		dBColumnName:   "gif_recents",
   130  		valueHandler:   JSONBlobHandler,
   131  		// TODO resolve issue 8 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1065179963
   132  		//  The reported issue is not directly related, but I suspect that gifs suffer the same issue
   133  		syncProtobufFactory: &SyncProtobufFactory{
   134  			inactive:          true, // Remove after issue is resolved
   135  			fromInterface:     gifRecentsProtobufFactory,
   136  			fromStruct:        gifRecentsProtobufFactoryStruct,
   137  			valueFromProtobuf: BytesFromSyncProtobuf,
   138  			protobufType:      protobuf.SyncSetting_GIF_RECENTS,
   139  		},
   140  	}
   141  	HideHomeTooltip = SettingField{
   142  		reactFieldName: "hide-home-tooltip?",
   143  		dBColumnName:   "hide_home_tooltip",
   144  		valueHandler:   BoolHandler,
   145  	}
   146  	KeycardInstanceUID = SettingField{
   147  		reactFieldName: "keycard-instance_uid",
   148  		dBColumnName:   "keycard_instance_uid",
   149  	}
   150  	KeycardPairedOn = SettingField{
   151  		reactFieldName: "keycard-paired_on",
   152  		dBColumnName:   "keycard_paired_on",
   153  	}
   154  	KeycardPairing = SettingField{
   155  		reactFieldName: "keycard-pairing",
   156  		dBColumnName:   "keycard_pairing",
   157  	}
   158  	LastBackup = SettingField{
   159  		reactFieldName: "last-backup",
   160  		dBColumnName:   "last_backup",
   161  	}
   162  	LastUpdated = SettingField{
   163  		reactFieldName: "last-updated",
   164  		dBColumnName:   "last_updated",
   165  	}
   166  	LatestDerivedPath = SettingField{
   167  		reactFieldName: "latest-derived-path",
   168  		dBColumnName:   "latest_derived_path",
   169  	}
   170  	LinkPreviewRequestEnabled = SettingField{
   171  		reactFieldName: "link-preview-request-enabled",
   172  		dBColumnName:   "link_preview_request_enabled",
   173  		valueHandler:   BoolHandler,
   174  	}
   175  	LinkPreviewsEnabledSites = SettingField{
   176  		reactFieldName: "link-previews-enabled-sites",
   177  		dBColumnName:   "link_previews_enabled_sites",
   178  		valueHandler:   JSONBlobHandler,
   179  	}
   180  	LogLevel = SettingField{
   181  		reactFieldName: "log-level",
   182  		dBColumnName:   "log_level",
   183  	}
   184  	MessagesFromContactsOnly = SettingField{
   185  		reactFieldName: "messages-from-contacts-only",
   186  		dBColumnName:   "messages_from_contacts_only",
   187  		valueHandler:   BoolHandler,
   188  		syncProtobufFactory: &SyncProtobufFactory{
   189  			fromInterface:     messagesFromContactsOnlyProtobufFactory,
   190  			fromStruct:        messagesFromContactsOnlyProtobufFactoryStruct,
   191  			valueFromProtobuf: BoolFromSyncProtobuf,
   192  			protobufType:      protobuf.SyncSetting_MESSAGES_FROM_CONTACTS_ONLY,
   193  		},
   194  	}
   195  	Mnemonic = SettingField{
   196  		reactFieldName: DBColumnMnemonic,
   197  		dBColumnName:   DBColumnMnemonic,
   198  	}
   199  
   200  	MnemonicRemoved = SettingField{
   201  		reactFieldName: "mnemonic-removed?",
   202  		dBColumnName:   "mnemonic_removed",
   203  		valueHandler:   BoolHandler,
   204  		syncProtobufFactory: &SyncProtobufFactory{
   205  			fromInterface:     mnemonicRemovedProtobufFactory,
   206  			fromStruct:        mnemonicRemovedProtobufFactoryStruct,
   207  			valueFromProtobuf: BoolFromSyncProtobuf,
   208  			protobufType:      protobuf.SyncSetting_MNEMONIC_REMOVED,
   209  		},
   210  	}
   211  
   212  	MutualContactEnabled = SettingField{
   213  		reactFieldName: "mutual-contact-enabled?",
   214  		dBColumnName:   "mutual_contact_enabled",
   215  		valueHandler:   BoolHandler,
   216  	}
   217  	Name = SettingField{
   218  		reactFieldName: "name",
   219  		dBColumnName:   "name",
   220  	}
   221  	NetworksCurrentNetwork = SettingField{
   222  		reactFieldName: "networks/current-network",
   223  		dBColumnName:   "current_network",
   224  	}
   225  	NetworksNetworks = SettingField{
   226  		reactFieldName: "networks/networks",
   227  		dBColumnName:   "networks",
   228  		valueHandler:   JSONBlobHandler,
   229  	}
   230  	NodeConfig = SettingField{
   231  		reactFieldName: "node-config",
   232  		dBColumnName:   "node_config",
   233  		valueHandler:   NodeConfigHandler,
   234  	}
   235  	// NotificationsEnabled - we should remove this and realated things once mobile team starts usign `settings_notifications` package
   236  	NotificationsEnabled = SettingField{
   237  		reactFieldName: "notifications-enabled?",
   238  		dBColumnName:   "notifications_enabled",
   239  		valueHandler:   BoolHandler,
   240  	}
   241  	OpenseaEnabled = SettingField{
   242  		reactFieldName: "opensea-enabled?",
   243  		dBColumnName:   "opensea_enabled",
   244  		valueHandler:   BoolHandler,
   245  	}
   246  	PhotoPath = SettingField{
   247  		reactFieldName: "photo-path",
   248  		dBColumnName:   "photo_path",
   249  	}
   250  	PinnedMailservers = SettingField{
   251  		reactFieldName: "pinned-mailservers",
   252  		dBColumnName:   "pinned_mailservers",
   253  		valueHandler:   JSONBlobHandler,
   254  	}
   255  	PreferredName = SettingField{
   256  		reactFieldName: "preferred-name",
   257  		dBColumnName:   "preferred_name",
   258  		syncProtobufFactory: &SyncProtobufFactory{
   259  			fromInterface:     preferredNameProtobufFactory,
   260  			fromStruct:        preferredNameProtobufFactoryStruct,
   261  			valueFromProtobuf: StringFromSyncProtobuf,
   262  			protobufType:      protobuf.SyncSetting_PREFERRED_NAME,
   263  		},
   264  	}
   265  	PreviewPrivacy = SettingField{
   266  		reactFieldName: "preview-privacy?",
   267  		dBColumnName:   "preview_privacy",
   268  		valueHandler:   BoolHandler,
   269  		// TODO resolved issue 7 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1065179963
   270  		syncProtobufFactory: &SyncProtobufFactory{
   271  			inactive:          true, // Remove after issue is resolved
   272  			fromInterface:     previewPrivacyProtobufFactory,
   273  			fromStruct:        previewPrivacyProtobufFactoryStruct,
   274  			valueFromProtobuf: BoolFromSyncProtobuf,
   275  			protobufType:      protobuf.SyncSetting_PREVIEW_PRIVACY,
   276  		},
   277  	}
   278  	ProfilePicturesShowTo = SettingField{
   279  		reactFieldName: "profile-pictures-show-to",
   280  		dBColumnName:   "profile_pictures_show_to",
   281  		syncProtobufFactory: &SyncProtobufFactory{
   282  			fromInterface:     profilePicturesShowToProtobufFactory,
   283  			fromStruct:        profilePicturesShowToProtobufFactoryStruct,
   284  			valueFromProtobuf: Int64FromSyncProtobuf,
   285  			protobufType:      protobuf.SyncSetting_PROFILE_PICTURES_SHOW_TO,
   286  		},
   287  	}
   288  	ProfilePicturesVisibility = SettingField{
   289  		reactFieldName: "profile-pictures-visibility",
   290  		dBColumnName:   "profile_pictures_visibility",
   291  		syncProtobufFactory: &SyncProtobufFactory{
   292  			fromInterface:     profilePicturesVisibilityProtobufFactory,
   293  			fromStruct:        profilePicturesVisibilityProtobufFactoryStruct,
   294  			valueFromProtobuf: Int64FromSyncProtobuf,
   295  			protobufType:      protobuf.SyncSetting_PROFILE_PICTURES_VISIBILITY,
   296  		},
   297  	}
   298  	PublicKey = SettingField{
   299  		reactFieldName: "public-key",
   300  		dBColumnName:   "public_key",
   301  	}
   302  	PushNotificationsBlockMentions = SettingField{
   303  		reactFieldName: "push-notifications-block-mentions?",
   304  		dBColumnName:   "push_notifications_block_mentions",
   305  		valueHandler:   BoolHandler,
   306  	}
   307  	PushNotificationsFromContactsOnly = SettingField{
   308  		reactFieldName: "push-notifications-from-contacts-only?",
   309  		dBColumnName:   "push_notifications_from_contacts_only",
   310  		valueHandler:   BoolHandler,
   311  	}
   312  	PushNotificationsServerEnabled = SettingField{
   313  		reactFieldName: "push-notifications-server-enabled?",
   314  		dBColumnName:   "push_notifications_server_enabled",
   315  		valueHandler:   BoolHandler,
   316  	}
   317  	RememberSyncingChoice = SettingField{
   318  		reactFieldName: "remember-syncing-choice?",
   319  		dBColumnName:   "remember_syncing_choice",
   320  		valueHandler:   BoolHandler,
   321  	}
   322  	RemotePushNotificationsEnabled = SettingField{
   323  		reactFieldName: "remote-push-notifications-enabled?",
   324  		dBColumnName:   "remote_push_notifications_enabled",
   325  		valueHandler:   BoolHandler,
   326  	}
   327  	SendPushNotifications = SettingField{
   328  		reactFieldName: "send-push-notifications?",
   329  		dBColumnName:   "send_push_notifications",
   330  		valueHandler:   BoolHandler,
   331  	}
   332  	SendStatusUpdates = SettingField{
   333  		reactFieldName: "send-status-updates?",
   334  		dBColumnName:   "send_status_updates",
   335  		valueHandler:   BoolHandler,
   336  		// TODO resolve issue 10 https://github.com/status-im/status-mobile/pull/13053#issuecomment-1075352256
   337  		syncProtobufFactory: &SyncProtobufFactory{
   338  			inactive:          true, // Remove after issue is resolved
   339  			fromInterface:     sendStatusUpdatesProtobufFactory,
   340  			fromStruct:        sendStatusUpdatesProtobufFactoryStruct,
   341  			valueFromProtobuf: BoolFromSyncProtobuf,
   342  			protobufType:      protobuf.SyncSetting_SEND_STATUS_UPDATES,
   343  		},
   344  	}
   345  	StickersPacksInstalled = SettingField{
   346  		reactFieldName: "stickers/packs-installed",
   347  		dBColumnName:   "stickers_packs_installed",
   348  		valueHandler:   JSONBlobHandler,
   349  		syncProtobufFactory: &SyncProtobufFactory{
   350  			inactive:          true, // TODO current version of stickers introduces a regression on deleting sticker packs
   351  			fromInterface:     stickersPacksInstalledProtobufFactory,
   352  			fromStruct:        stickersPacksInstalledProtobufFactoryStruct,
   353  			valueFromProtobuf: BytesFromSyncProtobuf,
   354  			protobufType:      protobuf.SyncSetting_STICKERS_PACKS_INSTALLED,
   355  		},
   356  	}
   357  	StickersPacksPending = SettingField{
   358  		reactFieldName: "stickers/packs-pending",
   359  		dBColumnName:   "stickers_packs_pending",
   360  		valueHandler:   JSONBlobHandler,
   361  		syncProtobufFactory: &SyncProtobufFactory{
   362  			inactive:          true, // TODO current version of stickers introduces a regression on deleting sticker packs
   363  			fromInterface:     stickersPacksPendingProtobufFactory,
   364  			fromStruct:        stickersPacksPendingProtobufFactoryStruct,
   365  			valueFromProtobuf: BytesFromSyncProtobuf,
   366  			protobufType:      protobuf.SyncSetting_STICKERS_PACKS_PENDING,
   367  		},
   368  	}
   369  	StickersRecentStickers = SettingField{
   370  		reactFieldName: "stickers/recent-stickers",
   371  		dBColumnName:   "stickers_recent_stickers",
   372  		valueHandler:   JSONBlobHandler,
   373  		syncProtobufFactory: &SyncProtobufFactory{
   374  			inactive:          true, // TODO current version of stickers introduces a regression on deleting sticker packs
   375  			fromInterface:     stickersRecentStickersProtobufFactory,
   376  			fromStruct:        stickersRecentStickersProtobufFactoryStruct,
   377  			valueFromProtobuf: BytesFromSyncProtobuf,
   378  			protobufType:      protobuf.SyncSetting_STICKERS_RECENT_STICKERS,
   379  		},
   380  	}
   381  	SyncingOnMobileNetwork = SettingField{
   382  		reactFieldName: "syncing-on-mobile-network?",
   383  		dBColumnName:   "syncing_on_mobile_network",
   384  		valueHandler:   BoolHandler,
   385  	}
   386  	TelemetryServerURL = SettingField{
   387  		reactFieldName: "telemetry-server-url",
   388  		dBColumnName:   "telemetry_server_url",
   389  	}
   390  	TestNetworksEnabled = SettingField{
   391  		reactFieldName: "test-networks-enabled?",
   392  		dBColumnName:   "test_networks_enabled",
   393  		valueHandler:   BoolHandler,
   394  	}
   395  	IsGoerliEnabled = SettingField{
   396  		reactFieldName: "is-goerli-enabled?",
   397  		dBColumnName:   "is_goerli_enabled",
   398  		valueHandler:   BoolHandler,
   399  	}
   400  	TokenGroupByCommunity = SettingField{
   401  		reactFieldName: "token-group-by-community?",
   402  		dBColumnName:   "wallet_token_preferences_group_by_community",
   403  		valueHandler:   BoolHandler,
   404  	}
   405  	ShowCommunityAssetWhenSendingTokens = SettingField{
   406  		reactFieldName: "show-community-asset-when-sending-tokens?",
   407  		dBColumnName:   "wallet_show_community_asset_when_sending_tokens",
   408  		valueHandler:   BoolHandler,
   409  		syncProtobufFactory: &SyncProtobufFactory{
   410  			fromInterface:     showCommunityAssetWhenSendingTokensProtobufFactory,
   411  			fromStruct:        showCommunityAssetWhenSendingTokensProtobufFactoryStruct,
   412  			valueFromProtobuf: BoolFromSyncProtobuf,
   413  			protobufType:      protobuf.SyncSetting_SHOW_COMMUNITY_ASSET_WHEN_SENDING_TOKENS,
   414  		},
   415  	}
   416  	DisplayAssetsBelowBalance = SettingField{
   417  		reactFieldName: "display-assets-below-balance?",
   418  		dBColumnName:   "wallet_display_assets_below_balance",
   419  		valueHandler:   BoolHandler,
   420  		syncProtobufFactory: &SyncProtobufFactory{
   421  			fromInterface:     displayAssetsBelowBalanceProtobufFactory,
   422  			fromStruct:        displayAssetsBelowBalanceProtobufFactoryStruct,
   423  			valueFromProtobuf: BoolFromSyncProtobuf,
   424  			protobufType:      protobuf.SyncSetting_DISPLAY_ASSETS_BELOW_BALANCE,
   425  		},
   426  	}
   427  	DisplayAssetsBelowBalanceThreshold = SettingField{
   428  		reactFieldName:   "display-assets-below-balance-threshold",
   429  		dBColumnName:     "wallet_display_assets_below_balance_threshold",
   430  		valueHandler:     Int64Handler,
   431  		valueCastHandler: Float64ToInt64Handler,
   432  		syncProtobufFactory: &SyncProtobufFactory{
   433  			fromInterface:     displayAssetsBelowBalanceThresholdProtobufFactory,
   434  			fromStruct:        displayAssetsBelowBalanceThresholdProtobufFactoryStruct,
   435  			valueFromProtobuf: Int64FromSyncProtobuf,
   436  			protobufType:      protobuf.SyncSetting_DISPLAY_ASSETS_BELOW_BALANCE_THRESHOLD,
   437  		},
   438  	}
   439  	CollectibleGroupByCollection = SettingField{
   440  		reactFieldName: "collectible-group-by-collection?",
   441  		dBColumnName:   "wallet_collectible_preferences_group_by_collection",
   442  		valueHandler:   BoolHandler,
   443  	}
   444  	CollectibleGroupByCommunity = SettingField{
   445  		reactFieldName: "collectible-group-by-community?",
   446  		dBColumnName:   "wallet_collectible_preferences_group_by_community",
   447  		valueHandler:   BoolHandler,
   448  	}
   449  	UseMailservers = SettingField{
   450  		reactFieldName: "use-mailservers?",
   451  		dBColumnName:   "use_mailservers",
   452  		valueHandler:   BoolHandler,
   453  	}
   454  	WakuBloomFilterMode = SettingField{
   455  		reactFieldName: "waku-bloom-filter-mode",
   456  		dBColumnName:   "waku_bloom_filter_mode",
   457  		valueHandler:   BoolHandler,
   458  	}
   459  	WalletSetUpPassed = SettingField{
   460  		reactFieldName: "wallet-set-up-passed?",
   461  		dBColumnName:   "wallet_set_up_passed",
   462  		valueHandler:   BoolHandler,
   463  	}
   464  	WalletVisibleTokens = SettingField{
   465  		reactFieldName: "wallet/visible-tokens",
   466  		dBColumnName:   "wallet_visible_tokens",
   467  		valueHandler:   JSONBlobHandler,
   468  	}
   469  	WebviewAllowPermissionRequests = SettingField{
   470  		reactFieldName: "webview-allow-permission-requests?",
   471  		dBColumnName:   "webview_allow_permission_requests",
   472  		valueHandler:   BoolHandler,
   473  	}
   474  	WalletRootAddress = SettingField{
   475  		reactFieldName: "wallet-root-address",
   476  		dBColumnName:   "wallet_root_address",
   477  		valueHandler:   AddressHandler,
   478  	}
   479  	MasterAddress = SettingField{
   480  		reactFieldName: "address",
   481  		dBColumnName:   "address",
   482  		valueHandler:   AddressHandler,
   483  	}
   484  	ProfileMigrationNeeded = SettingField{
   485  		reactFieldName: "profile-migration-needed",
   486  		dBColumnName:   "profile_migration_needed",
   487  		valueHandler:   BoolHandler,
   488  	}
   489  	URLUnfurlingMode = SettingField{
   490  		reactFieldName: "url-unfurling-mode",
   491  		dBColumnName:   "url_unfurling_mode",
   492  		syncProtobufFactory: &SyncProtobufFactory{
   493  			fromInterface:     urlUnfurlingModeProtobufFactory,
   494  			fromStruct:        urlUnfurlingModeProtobufFactoryStruct,
   495  			valueFromProtobuf: Int64FromSyncProtobuf,
   496  			protobufType:      protobuf.SyncSetting_URL_UNFURLING_MODE,
   497  		},
   498  	}
   499  	MnemonicWasNotShown = SettingField{
   500  		reactFieldName: "mnemonic-was-not-shown?",
   501  		dBColumnName:   "mnemonic_was_not_shown",
   502  		valueHandler:   BoolHandler,
   503  	}
   504  	PeerSyncingEnabled = SettingField{
   505  		reactFieldName: "peer-syncing-enabled?",
   506  		dBColumnName:   "peer_syncing_enabled",
   507  		valueHandler:   BoolHandler,
   508  	}
   509  	SettingFieldRegister = []SettingField{
   510  		AnonMetricsShouldSend,
   511  		Appearance,
   512  		AutoMessageEnabled,
   513  		BackupEnabled,
   514  		BackupFetched,
   515  		Bio,
   516  		ChaosMode,
   517  		CollectibleGroupByCollection,
   518  		CollectibleGroupByCommunity,
   519  		Currency,
   520  		CurrentUserStatus,
   521  		CustomBootNodes,
   522  		CustomBootNodesEnabled,
   523  		DappsAddress,
   524  		DefaultSyncPeriod,
   525  		DeviceName,
   526  		DisplayAssetsBelowBalance,
   527  		DisplayAssetsBelowBalanceThreshold,
   528  		DisplayName,
   529  		EIP1581Address,
   530  		Fleet,
   531  		GifAPIKey,
   532  		GifFavourites,
   533  		GifRecents,
   534  		HideHomeTooltip,
   535  		IsGoerliEnabled,
   536  		KeycardInstanceUID,
   537  		KeycardPairedOn,
   538  		KeycardPairing,
   539  		LastBackup,
   540  		LastUpdated,
   541  		LatestDerivedPath,
   542  		LinkPreviewRequestEnabled,
   543  		LinkPreviewsEnabledSites,
   544  		LogLevel,
   545  		MessagesFromContactsOnly,
   546  		Mnemonic,
   547  		MnemonicRemoved,
   548  		MutualContactEnabled,
   549  		Name,
   550  		NetworksCurrentNetwork,
   551  		NetworksNetworks,
   552  		NodeConfig,
   553  		NotificationsEnabled,
   554  		OpenseaEnabled,
   555  		PeerSyncingEnabled,
   556  		PhotoPath,
   557  		PinnedMailservers,
   558  		PreferredName,
   559  		PreviewPrivacy,
   560  		ProfileMigrationNeeded,
   561  		ProfilePicturesShowTo,
   562  		ProfilePicturesVisibility,
   563  		PublicKey,
   564  		PushNotificationsBlockMentions,
   565  		PushNotificationsFromContactsOnly,
   566  		PushNotificationsServerEnabled,
   567  		RememberSyncingChoice,
   568  		RemotePushNotificationsEnabled,
   569  		SendPushNotifications,
   570  		SendStatusUpdates,
   571  		ShowCommunityAssetWhenSendingTokens,
   572  		StickersPacksInstalled,
   573  		StickersPacksPending,
   574  		StickersRecentStickers,
   575  		SyncingOnMobileNetwork,
   576  		TelemetryServerURL,
   577  		TestNetworksEnabled,
   578  		TokenGroupByCommunity,
   579  		URLUnfurlingMode,
   580  		UseMailservers,
   581  		WakuBloomFilterMode,
   582  		WalletRootAddress,
   583  		WalletSetUpPassed,
   584  		WalletVisibleTokens,
   585  		WebviewAllowPermissionRequests,
   586  	}
   587  )
   588  
   589  func GetFieldFromProtobufType(pbt protobuf.SyncSetting_Type) (SettingField, error) {
   590  	if pbt == protobuf.SyncSetting_UNKNOWN {
   591  		return SettingField{}, errors.ErrUnrecognisedSyncSettingProtobufType
   592  	}
   593  
   594  	for _, s := range SettingFieldRegister {
   595  		if s.SyncProtobufFactory() == nil {
   596  			continue
   597  		}
   598  		if s.SyncProtobufFactory().SyncSettingProtobufType() == pbt {
   599  			return s, nil
   600  		}
   601  	}
   602  
   603  	return SettingField{}, errors.ErrUnrecognisedSyncSettingProtobufType
   604  }