mirror of
https://github.com/luxfi/safe-ios.git
synced 2026-10-30 15:19:20 +00:00
526 lines
30 KiB
Swift
526 lines
30 KiB
Swift
//
|
|
// TrackingEvent.swift
|
|
// Multisig
|
|
//
|
|
// Created by Andrey Scherbovich on 12.06.20.
|
|
// Copyright © 2020 Gnosis Ltd. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
enum TrackingUserProperty: String, UserProperty {
|
|
case numSafes = "num_safes" // string, number of user safes, "0" on fresh install
|
|
case pushInfo = "push_info" // string: ["unknown", "disabled", "enabled"]
|
|
case numKeysImported = "num_keys_imported" // string, number of keys imported, "0" on fresh install
|
|
case numKeysGenerated = "num_keys_generated" // string, number of keys generated, "0" on fresh install
|
|
case numKeysWalletConnect = "num_keys_walletconnect" // string, number of WalletConnect keys, "0" on fresh install
|
|
case numKeysLedgerNanoX = "num_keys_ledger_nano_x" // string, number of Ledger Nano X keys, "0" on fresh install
|
|
case numKeysKeystone = "num_keys_keystone" // string, number of Keystone keys, "0" on fresh install
|
|
case numKeysWeb3AuthApple = "num_keys_web3auth_apple" // string, number of Web3Auth keys of Apple login, "0" on fresh install
|
|
case numKeysWeb3AuthGoogle = "num_keys_web3auth_google" // string, number of Web3Auth keys of Goolge login, "0" on fresh install
|
|
case passcodeIsSet = "passcode_is_set" // string, "true" or "false" depending on if app passcode is set
|
|
case walletConnectForDappsEnabled = "wc_for_dapps_enabled" // string, "true" or "false"
|
|
case walletConnectForKeysEnabled = "wc_for_keys_enabled" // string, "true" or "false"
|
|
case desktopPairingEnabled = "desktop_pairing_enabled" // string, "true" or "false"
|
|
}
|
|
|
|
enum TrackingPushState: String {
|
|
case unknown, disabled, enabled
|
|
}
|
|
|
|
enum TrackingEvent: String, Trackable {
|
|
case launch = "screen_launch"
|
|
case launchTerms = "screen_launch_terms"
|
|
|
|
case assetsNoSafe = "screen_assets_no_safe"
|
|
case assetsCoins = "screen_assets_coins"
|
|
case assetsCollectibles = "screen_assets_collectibles"
|
|
case assetsCollectiblesDetails = "screen_assets_collectibles_details"
|
|
case collectiblesNotSupported = "screen_collectibles_not_supported"
|
|
case collectiblesOpenInWeb = "user_collectibles_open_in_web"
|
|
|
|
case assetTransferReceiveClicked = "user_select_receive_asset"
|
|
case assetTransferSendClicked = "user_select_send_asset"
|
|
case assetTransferAddOwnerClicked = "user_select_add_owner_to_send_assets"
|
|
case assetsTransferSelect = "screen_select_asset"
|
|
case assetsTransferAddOwner = "screen_add_owner_to_send_funds"
|
|
case assetsTransferInit = "screen_asset_transfer"
|
|
case assetsTransferReview = "screen_review_asset_transfer"
|
|
case assetsTransferAdvancedParams = "screen_asset_transfer_advanced_params"
|
|
case assetsTransferSuccess = "screen_asset_transfer_success"
|
|
case assetsTransferSelectedAsset = "screen_assets_transfer_selected_asset"
|
|
|
|
case reviewExecution = "screen_exec_tx_review"
|
|
case reviewExecutionEditFee = "screen_edit_exec_tx_fee"
|
|
case reviewExecutionAdvanced = "screen_exec_tx_review_advanced"
|
|
case reviewExecutionSelectKey = "screen_select_exec_key"
|
|
case reviewExecutionLedger = "screen_exec_tx_ledger_confirm"
|
|
case executeFailure = "user_exec_tx_failed"
|
|
case reviewExecutionFieldEdited = "user_edit_exec_tx_fee_fields"
|
|
case reviewExecutionSelectedKeyChanged = "user_select_exec_key_change"
|
|
|
|
case safeReceive = "screen_safe_receive"
|
|
case safeSwitch = "screen_safe_switch"
|
|
case safeAddAddress = "screen_safe_add_address"
|
|
case safeAddName = "screen_safe_add_name"
|
|
case safeAddEns = "screen_safe_add_ens"
|
|
case safeAddUd = "screen_safe_add_ud"
|
|
case networkSelect = "screen_chain_list"
|
|
case tryDemo = "user_try_demo"
|
|
|
|
case transactionsQueued = "screen_transactions_queue"
|
|
case transactionsHistory = "screen_transactions_history"
|
|
case transactionsNoSafe = "screen_transactions_no_safe"
|
|
case transactionsDetails = "screen_transactions_details"
|
|
case transactionDetailsRejectionConfirmation = "screen_transactions_reject_confirmation"
|
|
|
|
case transactionsDetailsAdvanced = "screen_tx_details_advanced"
|
|
case transactionsDetailsAction = "screen_tx_details_action"
|
|
case transactionDetailsActionList = "screen_tx_details_action_list"
|
|
|
|
case dapps = "screen_dapps"
|
|
case dappsNoSafe = "screen_dapps_no_safe"
|
|
|
|
case settingsApp = "screen_settings_app"
|
|
case settingsAppAdvanced = "screen_settings_app_advanced"
|
|
case settingsAppEditFiat = "screen_settings_app_edit_fiat"
|
|
case settingsAppSupport = "screen_settings_app_support"
|
|
case settingsAppAppearance = "screen_settings_app_appearance"
|
|
case settingsAppChainPrefix = "screen_settings_app_chain_prefix"
|
|
case settingsTerms = "user_settings_open_terms"
|
|
case settingsPrivacyPolicy = "user_settings_open_privacy_policy"
|
|
case settingsLicenses = "user_settings_open_licenses"
|
|
case settingsRateApp = "user_settings_rate_app"
|
|
|
|
case addressBookList = "screen_address_book_list"
|
|
case addressBookAddEntry = "screen_address_book_add"
|
|
case addressBookEditEntry = "screen_address_book_edit"
|
|
case addressBookImported = "address_book_imported"
|
|
case addressBookExported = "address_book_exported"
|
|
|
|
case settingsSafe = "screen_settings_safe"
|
|
case settingsSafeNoSafe = "screen_settings_safe_no_safe"
|
|
case settingsSafeEditName = "screen_settings_safe_edit_name"
|
|
case settingsSafeAdvanced = "screen_settings_safe_advanced"
|
|
case settingsTxAdvancedParams = "screen_settings_tx_advanced_params"
|
|
|
|
case appUpdateDeprecated = "screen_update_deprecated"
|
|
case appUpdateDeprecatedSoon = "screen_update_deprecated_soon"
|
|
case appUpdateOptional = "screen_update_new_version"
|
|
|
|
case userOnboardingOwnerSkip = "user_onboarding_owner_skip"
|
|
case userOnboardingOwnerAdd = "user_onboarding_owner_add"
|
|
case ownerKeysList = "screen_owner_list"
|
|
case ownerKeysOptions = "screen_owner_options"
|
|
case ownerKeyDetails = "screen_owner_details"
|
|
case editOwnerKey = "screen_owner_edit_name"
|
|
case chooseHardwareWallet = "screen_choose_hardware_wallet"
|
|
case creatingSocialKey = "screen_creating_social_key"
|
|
case chooseSocialAccountType = "screen_choose_combined"
|
|
|
|
case importOwnerOnboarding = "screen_owner_info"
|
|
case generateOwnerOnboarding = "screen_owner_generate_info"
|
|
case connectOwnerOnboarding = "screen_owner_walletconnect_info"
|
|
case ledgerOwnerOnboarding = "screen_owner_ledger_nano_x_info"
|
|
case keystoneOwnerOnboarding = "screen_owner_keystone_info"
|
|
|
|
case ownerEnterSeed = "screen_owner_enter_seed"
|
|
case ownerConfirmPrivateKey = "screen_owner_confirm_private_key"
|
|
case ownerSelectAccount = "screen_owner_select_account"
|
|
case enterKeyName = "screen_owner_enter_name"
|
|
|
|
case ownerKeyImported = "user_key_imported"
|
|
case ownerKeyGenerated = "user_key_generated"
|
|
case web3AuthKeyApple = "user_web3auth_key_Apple"
|
|
case web3AuthKeyGoogle = "user_web3auth_key_Google"
|
|
case ownerKeyRemoved = "user_key_deleted"
|
|
|
|
case chooseOwner = "screen_owner_choose"
|
|
case bannerImportOwnerKeySkipped = "user_banner_owner_skip"
|
|
case bannerImportOwnerKeyAdd = "user_banner_owner_add"
|
|
case camera = "screen_camera"
|
|
|
|
case exportSeed = "screen_owner_export_seed"
|
|
case exportKey = "screen_owner_export_key"
|
|
|
|
case passcodeSuggestion = "screen_passcode_suggestion"
|
|
case createPasscode = "screen_passcode_create"
|
|
case repeatPasscode = "screen_passcode_create_repeat"
|
|
case enterPasscode = "screen_passcode_enter"
|
|
case changePasscode = "screen_passcode_change"
|
|
case changePasscodeEnterNew = "screen_passcode_change_create"
|
|
case changePasscodeRepeat = "screen_passcode_change_repeat"
|
|
case settingsAppPasscode = "screen_settings_app_passcode"
|
|
case userPasscodeEnabled = "user_passcode_enabled"
|
|
case userPasscodeDisabled = "user_passcode_disabled"
|
|
case userPasscodeReset = "user_passcode_reset"
|
|
case userPasscodeSkipped = "user_passcode_skipped"
|
|
case userPasscodeSuggestionAccepted = "user_passcode_suggestion_accepted"
|
|
case userPasscodeSuggestionRejected = "user_passcode_suggestion_rejected"
|
|
case skipPasscodeBanner = "user_banner_passcode_skip"
|
|
case setupPasscodeFromBanner = "user_banner_passcode_create"
|
|
case userOpenIntercom = "user_settings_open_intercom"
|
|
|
|
case userSafeAdded = "user_safe_added"
|
|
case userSafeRemoved = "user_safe_removed"
|
|
|
|
case experimental = "screen_experimental"
|
|
|
|
case walletConnectKeyOptions = "screen_owner_walletconnect_options"
|
|
case walletConnectKeyQR = "screen_owner_walletconnect_qr_code"
|
|
case connectInstalledWallet = "user_owner_connected_installed_wallet"
|
|
case disconnectInstalledWallet = "user_owner_disconnected_installed_wallet"
|
|
case connectExternalWallet = "user_owner_connected_external_wallet"
|
|
case dappConnectedWithUniversalLink = "user_dapp_connected_universal_link"
|
|
case dappConnectedWithScanButton = "user_dapp_connected_scan_button"
|
|
case selectDapp = "user_dapp_select_dapp"
|
|
|
|
case walletConnectIncomingTransaction = "screen_wc_incoming_transaction"
|
|
case walletConnectEditParameters = "screen_wc_edit_parameters"
|
|
case advancedTxParamsOpenedHelp = "advanced_tx_params_opened_help"
|
|
|
|
case ledgerKeyImported = "user_ledger_nano_x_key_imported"
|
|
case ledgerSelectDevice = "screen_select_ledger_nano_x_device"
|
|
case ledgerSelectKey = "screen_select_ledger_nano_x_key"
|
|
|
|
case keystoneQRScanner = "screen_keystone_scan"
|
|
case keystoneKeyImported = "user_keystone_key_imported"
|
|
|
|
// MARK: Confirm transactions
|
|
|
|
// chain_id (String): Chain id
|
|
// source (String): one of [“tx_details”, “incoming”, “ctw”]
|
|
// key_type (String): one of [“imported”, “generated”, “ledger_nano_x”, “connected”]
|
|
// wallet (String?): name of the wallet (first 100 chars) for “connected” keys
|
|
case userTransactionConfirmed = "user_transaction_confirmed"
|
|
|
|
// MARK: Reject transactions
|
|
|
|
// chain_id (String): Chain id
|
|
// source (String) = “tx_details”
|
|
// key_type (String): one of [“imported”, “generated”, “ledger_nano_x”, “connected”]
|
|
// wallet (String?): name of the wallet (first 100 chars) for “connected” keys
|
|
case userTransactionRejected = "user_transaction_rejected"
|
|
|
|
// MARK: Execute transaction
|
|
|
|
// chain_id (String): Chain id
|
|
// source (String): one of [“tx_details”, “ctw”]
|
|
// keyType: one of [imported, generated, wallet_connect, ledger_nano_x]
|
|
// wallet (String?): name of the wallet (first 100 chars)
|
|
case userTransactionExecuteSubmitted = "user_transaction_exec_submitted"
|
|
case successTxSigner = "screen_tx_signer_success"
|
|
case successTxRelay = "screen_tx_relay_success"
|
|
|
|
// MARK: Create Safe
|
|
case createSafe = "screen_cs"
|
|
case createSafeIntro = "screen_cs_intro"
|
|
case createSafeOnePage = "screen_cs_one_page"
|
|
case createSafeSelectNetwork = "screen_cs_select_network"
|
|
case createSafeSelectKey = "screen_cs_select_key"
|
|
case createSafeEditTxFee = "screen_cs_edit_tx_fee"
|
|
case createSafeAddDeploymentKey = "screen_cs_add_deployment_key"
|
|
|
|
case createSafeTxFeeEdited = "user_cs_edit_exec_tx_fee"
|
|
case createSafeKeyChanged = "user_cs_deployment_key_changed"
|
|
case createSafeDeploymentKeyAdded = "user_cs_deployment_key_added"
|
|
|
|
case createSafeTxSubmitted = "user_cs_tx_submitted"
|
|
case createSafeTxSuccedded = "user_cs_tx_succeded"
|
|
case createSafeTxFailed = "user_cs_tx_failed"
|
|
case createSafeRetry = "user_cs_retry"
|
|
case createSafeViewTxOnEtherscan = "user_cs_view_tx_on_etherscan"
|
|
|
|
case createSafeDesktopApp = "user_cs_desktop_app"
|
|
case createSafeHelpArticle = "user_cs_help_article"
|
|
|
|
case createSafeFromOnboarding = "user_cs_from_onboarding"
|
|
case addSafeFromOnboarding = "user_add_safe_from_onboarding"
|
|
|
|
case createSafeFromSwitchSafes = "user_cs_from_switch_safes"
|
|
case addSafeFromSwitchSafes = "user_add_safe_from_switch_safes"
|
|
|
|
case addSafeFromURL = "user_add_safe_from_url"
|
|
case createSafeFromURL = "user_create_safe_from_url"
|
|
|
|
// MARK: Web Connections
|
|
case webConnectionList = "screen_connect_to_web"
|
|
case webConnectionListOpenedInfo = "user_ctw_learn_more"
|
|
|
|
// MARK: Web Connection Details
|
|
case webConnectionDetails = "screen_ctw_connection_details"
|
|
case webConnectionDisconnected = "user_ctw_disconnect"
|
|
|
|
// MARK: Web Connection Scan QR Code
|
|
case webConnectionQRScanner = "screen_ctw_scan"
|
|
|
|
// MARK: Connection Request
|
|
case webConnectionConnectionRequest = "screen_ctw_select_key"
|
|
case webConnectionConnectionRequestConfirmed = "user_ctw_connection_confirmed"
|
|
case webConnectionConnectionRequestRejected = "user_ctw_connection_rejected"
|
|
|
|
// MARK: Signature Request
|
|
case webConnectionSignRequest = "screen_ctw_eth_sign"
|
|
case webConnectionSignRequestRejected = "user_ctw_eth_sign_rejected"
|
|
|
|
// MARK: Send Transaction Request
|
|
case webConnectionSendRequest = "screen_ctw_eth_send_tx"
|
|
case webConnectionSendRequestRejected = "user_ctw_eth_send_tx_rejected"
|
|
|
|
// MARK: add delegate key
|
|
case screen_add_delegate = "screen_add_delegate"
|
|
|
|
case addDelegateKeyStarted = "user_start_add_delegate"
|
|
case addDelegateKeySkipped = "user_skip_add_delegate"
|
|
case addDelegateKeySuccess = "user_success_add_delegate"
|
|
case addDelegateKeyFailed = "user_failed_add_delegate"
|
|
|
|
// MARK: delete delegate key
|
|
case deleteDelegateKeySuccess = "user_success_delete_delegate"
|
|
case deleteDelegateKeyFailed = "user_failed_delete_delegate"
|
|
|
|
// MARK: backup created keys
|
|
case backupIntro = "screen_backup_intro"
|
|
case backupSkipped = "user_backup_skipped"
|
|
case backupVerifySeedPhrase = "screen_verify_seed_phrase"
|
|
case backupUserCopiedSeedPhrase = "user_seed_phrase_copy"
|
|
case backupUserSeedPhraseScreenshot = "user_seed_phrase_screenshot"
|
|
case backupConfirmSeedPhrase = "screen_confirm_seed_phrase"
|
|
case backupCreatedSuccessfully = "screen_backup_success"
|
|
case backupFromKeyDetails = "user_backup_from_key_details"
|
|
case backupFromKeysList = "user_backup_from_keys_list"
|
|
|
|
// MARK: Add Key As Owner (Add Owner)
|
|
case addAsOwnerIntro = "screen_add_key_as_owner_info"
|
|
case addAsOwnerIntroSkipped = "user_skip_add_key_as_owner"
|
|
|
|
case addAsOwnerChangeConfirmations = "screen_add_owner_change_policy"
|
|
case addAsOwnerReview = "screen_add_owner_review"
|
|
case addAsOwnerSuccess = "screen_add_owner_success"
|
|
|
|
case replaceOwnerSelect = "screen_replace_owner_select"
|
|
case replaceOwnerReview = "screen_replace_owner_review"
|
|
case replaceOwnerSuccess = "screen_replace_owner_success"
|
|
|
|
case addGenKeyAsOwner = "screen_add_gen_key_as_owner"
|
|
case skipAddGenKyAsOwner = "user_skip_add_gen_key_as_owner"
|
|
case addOwnerFromSettings = "user_add_owner_from_settings"
|
|
case addOwnerSelectAddress = "screen_add_owner_select_address"
|
|
case addOwnerSpecifyName = "screen_add_owner_specify_name"
|
|
case replaceOwnerFromSettings = "user_replace_owner_from_settings"
|
|
case replaceOwnerSelectNew = "screen_replace_owner_select_new"
|
|
case replaceOwnerNewOwnerName = "screen_replace_owner_new_owner_name"
|
|
|
|
case userRemoveOwnerFromSettings = "user_remove_owner_from_settings"
|
|
case removeOwnerChangePolicy = "screen_remove_owner_change_policy"
|
|
case removeOwnerSuccess = "screen_remove_owner_success"
|
|
case removeOwnerReview = "screen_remove_owner_review"
|
|
|
|
case changeConfirmations = "screen_change_confirmations"
|
|
case reviewChangeConfirmations = "screen_review_change_confirmations"
|
|
case changeConfirmationsSuccess = "screen_change_confirmations_success"
|
|
|
|
case screenOnboarding1 = "screen_onboarding_1"
|
|
case screenOnboarding2 = "screen_onboarding_2"
|
|
case screenOnboarding3 = "screen_onboarding_3"
|
|
case onboardingSkipped = "user_skip_onboarding"
|
|
|
|
// Share link
|
|
case screenAddKeyAsOwnerShareInfo = "screen_add_key_as_owner_share_info"
|
|
case userSkipShareLink = "user_skip_share_link"
|
|
case screenAddOwnerShareLink = "screen_add_owner_share_link"
|
|
case userAddOwnerShareLink = "user_add_owner_share_link"
|
|
|
|
// Handle link
|
|
case screenOwnerFromLink = "screen_owner_from_link"
|
|
case userRejectOwnerFromLink = "user_reject_owner_from_link"
|
|
case screenOwnerFromLinkChooseName = "screen_owner_from_link_choose_name"
|
|
case screenOwnerFromLinkNoKey = "screen_owner_from_link_no_key"
|
|
case userOwnerFromLinkNoKeySkip = "user_owner_from_link_no_key_skip"
|
|
case userOwnerFromLinkNoKeyAddIt = "user_owner_from_link_no_key_add_it"
|
|
case screenOwnerFromLinkNoSafe = "screen_owner_from_link_no_safe"
|
|
case userOwnerFromLinkNoSafeSkip = "user_owner_from_link_no_safe_skip"
|
|
case userOwnerFromLinkSafeNameAdded = "user_owner_from_link_safe_name_added"
|
|
|
|
// MARK: Gelato Relay
|
|
case bannerRelaySkip = "user_banner_relay_skip"
|
|
case bannerRelayOpen = "user_banner_relay_open"
|
|
case relayOnboarding1 = "screen_onboarding_relay_1"
|
|
case relayOnboarding2 = "screen_onboarding_relay_2"
|
|
case relayOnboarding3 = "screen_onboarding_relay_3"
|
|
case relayOnboarding4 = "screen_onboarding_relay_4"
|
|
case relayChoosePayment = "screen_exec_tx_payment"
|
|
case relayUserExecTxPaymentRelay = "user_exec_tx_payment_relay"
|
|
case relayUserExecTxPaymentSigner = "user_exec_tx_payment_signer"
|
|
// successful submission to the relay service
|
|
case relayUserSuccess = "user_relay_success"
|
|
// failed submission to the relay service
|
|
case relayUserFailure = "user_relay_failure"
|
|
|
|
|
|
// MARK: Safe Token Claim
|
|
// See: https://docs.google.com/spreadsheets/d/1mj9iQIhpM-Pak7lQMb1dmxhQn1QdJoJyhbc730dZNzA/edit#gid=1949479240&range=A244:E244
|
|
// Banner Tracking
|
|
case bannerSafeTokenClaim = "user_banner_safe_token_claim"
|
|
case bannerSafeTokenSkip = "user_banner_safe_token_skip"
|
|
case userClaimOpen = "user_claim_open"
|
|
|
|
// Welcome screen Tracking
|
|
case screenClaimWelcome = "screen_claim_welcome"
|
|
case userClaimStart = "user_claim_start"
|
|
|
|
// What is Safe? screen Tracking
|
|
case screenClaimWhatis = "screen_claim_whatis"
|
|
case userClaimWhatisNext = "user_claim_whatis_next"
|
|
|
|
// Distribution screen Tracking
|
|
case screenClaimDistr = "screen_claim_distr"
|
|
case userClaimDistrDetails = "user_claim_distr_details"
|
|
case userClaimDistrNext = "user_claim_distr_next"
|
|
|
|
// Distribution Details Tracking
|
|
case screenClaimDistrDetail = "screen_claim_distr_detail"
|
|
|
|
// What is safe token? screen Tracking
|
|
case screenClaimGov = "screen_claim_gov"
|
|
case userClaimGovProto = "user_claim_gov_proto"
|
|
case userClaimGovInterface = "user_claim_gov_interface"
|
|
case userClaimGovAssets = "user_claim_gov_assets"
|
|
case userClaimGovToken = "user_claim_gov_token"
|
|
case userClaimGovNext = "user_claim_gov_next"
|
|
|
|
// Navigating SafeDAO screen Tracking
|
|
case screenClaimDao = "screen_claim_dao"
|
|
case userClaimDaoStart = "user_claim_dao_start"
|
|
|
|
// Legal disclaimer screen Tracking
|
|
case screenClaimLegal = "screen_claim_legal"
|
|
case userClaimLegalAgree = "user_claim_legal_agree"
|
|
|
|
// Choose a delegate screen Tracking
|
|
case screenClaimChdel = "screen_claim_chdel"
|
|
case userClaimChdelGuard = "user_claim_chdel_guard"
|
|
case userClaimChdelAddr = "user_claim_chdel_addr"
|
|
case userClaimChdelSearch = "user_claim_chdel_search"
|
|
case screenClaimChdelNf = "screen_claim_chdel_nf"
|
|
|
|
// Custom address screen Tracking
|
|
case screenClaimAddr = "screen_claim_addr"
|
|
case userClaimAddrSelect = "user_claim_addr_select"
|
|
|
|
// Delegate details screen Tracking
|
|
case screenClaimDeldet = "screen_claim_deldet"
|
|
case userClaimDeldetSelect = "user_claim_deldet_select"
|
|
|
|
// Claiming form screen Tracking
|
|
case screenClaimForm = "screen_claim_form"
|
|
case userClaimFormFutTp = "user_claim_form_fut_tp"
|
|
case userClaimFormMax = "user_claim_form_max"
|
|
case userClaimFormPart = "user_claim_form_part"
|
|
case userClaimFormDel = "user_claim_form_del"
|
|
case userClaimFormClaim = "user_claim_form_claim"
|
|
case userClaimFormReload = "user_claim_form_reload"
|
|
|
|
// Review claiming transaction screen Tracking
|
|
case screenClaimReview = "screen_claim_review"
|
|
case userClaimReviewConfirm = "user_claim_review_confirm"
|
|
case userClaimReviewAct = "user_claim_review_act"
|
|
case userClaimReviewPar = "user_claim_review_par"
|
|
|
|
// Claiming transaction success screen Tracking
|
|
case screenClaimSuccess = "screen_claim_success"
|
|
case userClaimSuccessTweet = "user_claim_success_tweet"
|
|
case userClaimSuccessClose = "user_claim_success_close"
|
|
case userClaimSuccessDone = "user_claim_success_done"
|
|
case userClaimSuccessShare = "user_claim_success_share"
|
|
|
|
// Claiming not eligible screen Tracking
|
|
case screenClaimNot = "screen_claim_not"
|
|
case userClaimNotDao = "user_claim_not_dao"
|
|
case userClaimNotForum = "user_claim_not_forum"
|
|
case userClaimNotOk = "user_claim_not_ok"
|
|
|
|
// MARK: Web2 style onboarding
|
|
case screenStartingInfo = "screen_starting_screen_info"
|
|
case screenSocialLoginInfo = "screen_info_modal_sheet"
|
|
case screenCreatingInProgress = "screen_creating_in_progress"
|
|
case screenCreatingComplete = "screen_creating_complete"
|
|
|
|
case userHowItWorks = "user_how_does_it_work"
|
|
case userContinueGoogle = "user_continue_google"
|
|
case userContinueApple = "user_continue_apple"
|
|
case userContinueAddress = "user_use_wallet_address"
|
|
case userReadMore = "user_read_more"
|
|
case userCreatingCompleteContinue = "user_creating_complete_continue"
|
|
case userLearnMore = "user_learn_more"
|
|
case userAddOwner = "user_add_owner"
|
|
|
|
// Onramping
|
|
|
|
case userBuy = "user_buying"
|
|
case userBuyCrypto = "user_buying_crypto"
|
|
case userTopUpEOA = "user_top_EOA"
|
|
case userTopUpSafeAccount = "user_top_safe_account"
|
|
case screenSelectTopUpAddress = "screen_select_top_up_address"
|
|
|
|
// MFA
|
|
|
|
case screenSecurityOverview = "screen_security_overview"
|
|
case screenEmailAddress = "screen_email_address"
|
|
case securityOverviewInfo = "user_click_info_security_overview"
|
|
case screenStartCreatePassword = "screen_set_pw_start"
|
|
case screenCreatePassword = "screen_set_pw_create"
|
|
case screenCreatePasswordSuccess = "screen_set_pw_sucess"
|
|
|
|
// Export and Import Data
|
|
case screenExportInstructions = "screen_export_instructions"
|
|
case screenExportSuccess = "screen_exportdata_success"
|
|
|
|
case screenImportInstructions = "screen_import_instructions"
|
|
case screenImportSuccess = "screen_importdata_success"
|
|
|
|
}
|
|
|
|
extension TrackingEvent {
|
|
static func keyTypeParameters(_ keyInfo: KeyInfo, parameters: [String: Any]? = nil) -> [String: Any] {
|
|
var parameters = parameters ?? [String: Any]()
|
|
parameters["key_type"] = keyInfo.keyType.trackingValue
|
|
if keyInfo.keyType == .walletConnect {
|
|
parameters = parametersWithWalletName(keyInfo, parameters: parameters)
|
|
}
|
|
return parameters
|
|
}
|
|
|
|
static private func parametersWithWalletName(_ keyInfo: KeyInfo, parameters: [String: Any]) -> [String: Any] {
|
|
let connection = WebConnectionController.shared.walletConnection(keyInfo: keyInfo).first
|
|
var walletName = connection?.remotePeer?.name ?? "Unknown"
|
|
if walletName.count > 100 {
|
|
walletName = String(walletName.prefix(100))
|
|
}
|
|
var updatedParameters = parameters
|
|
updatedParameters["wallet"] = walletName
|
|
return updatedParameters
|
|
}
|
|
}
|
|
|
|
extension KeyType {
|
|
var trackingValue: String {
|
|
switch self {
|
|
case .deviceGenerated:
|
|
return "generated"
|
|
case .deviceImported:
|
|
return "imported"
|
|
case .ledgerNanoX:
|
|
return "ledger_nano_x"
|
|
case .walletConnect:
|
|
return "connected"
|
|
case .keystone:
|
|
return "keystone"
|
|
case .web3AuthApple:
|
|
return "web3AuthApple"
|
|
case .web3AuthGoogle:
|
|
return "web3AuthGoogle"
|
|
}
|
|
}
|
|
}
|