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 }