@metamask-previews/perps-controller 3.0.0-preview-e61cfa5 → 3.1.0-preview-548bdd1d9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/dist/PerpsController-method-action-types.cjs.map +1 -1
  3. package/dist/PerpsController-method-action-types.d.cts +8 -0
  4. package/dist/PerpsController-method-action-types.d.cts.map +1 -1
  5. package/dist/PerpsController-method-action-types.d.mts +8 -0
  6. package/dist/PerpsController-method-action-types.d.mts.map +1 -1
  7. package/dist/PerpsController-method-action-types.mjs.map +1 -1
  8. package/dist/PerpsController.cjs +117 -29
  9. package/dist/PerpsController.cjs.map +1 -1
  10. package/dist/PerpsController.d.cts +14 -2
  11. package/dist/PerpsController.d.cts.map +1 -1
  12. package/dist/PerpsController.d.mts +14 -2
  13. package/dist/PerpsController.d.mts.map +1 -1
  14. package/dist/PerpsController.mjs +118 -30
  15. package/dist/PerpsController.mjs.map +1 -1
  16. package/dist/constants/eventNames.cjs +1 -0
  17. package/dist/constants/eventNames.cjs.map +1 -1
  18. package/dist/constants/eventNames.d.cts +1 -0
  19. package/dist/constants/eventNames.d.cts.map +1 -1
  20. package/dist/constants/eventNames.d.mts +1 -0
  21. package/dist/constants/eventNames.d.mts.map +1 -1
  22. package/dist/constants/eventNames.mjs +1 -0
  23. package/dist/constants/eventNames.mjs.map +1 -1
  24. package/dist/constants/perpsConfig.cjs +46 -1
  25. package/dist/constants/perpsConfig.cjs.map +1 -1
  26. package/dist/constants/perpsConfig.d.cts +35 -0
  27. package/dist/constants/perpsConfig.d.cts.map +1 -1
  28. package/dist/constants/perpsConfig.d.mts +35 -0
  29. package/dist/constants/perpsConfig.d.mts.map +1 -1
  30. package/dist/constants/perpsConfig.mjs +43 -0
  31. package/dist/constants/perpsConfig.mjs.map +1 -1
  32. package/dist/constants/transactionsHistoryConfig.cjs +23 -4
  33. package/dist/constants/transactionsHistoryConfig.cjs.map +1 -1
  34. package/dist/constants/transactionsHistoryConfig.d.cts +23 -4
  35. package/dist/constants/transactionsHistoryConfig.d.cts.map +1 -1
  36. package/dist/constants/transactionsHistoryConfig.d.mts +23 -4
  37. package/dist/constants/transactionsHistoryConfig.d.mts.map +1 -1
  38. package/dist/constants/transactionsHistoryConfig.mjs +23 -4
  39. package/dist/constants/transactionsHistoryConfig.mjs.map +1 -1
  40. package/dist/index.cjs +14 -3
  41. package/dist/index.cjs.map +1 -1
  42. package/dist/index.d.cts +3 -1
  43. package/dist/index.d.cts.map +1 -1
  44. package/dist/index.d.mts +3 -1
  45. package/dist/index.d.mts.map +1 -1
  46. package/dist/index.mjs +2 -1
  47. package/dist/index.mjs.map +1 -1
  48. package/dist/providers/HyperLiquidProvider.cjs +83 -27
  49. package/dist/providers/HyperLiquidProvider.cjs.map +1 -1
  50. package/dist/providers/HyperLiquidProvider.d.cts.map +1 -1
  51. package/dist/providers/HyperLiquidProvider.d.mts.map +1 -1
  52. package/dist/providers/HyperLiquidProvider.mjs +83 -27
  53. package/dist/providers/HyperLiquidProvider.mjs.map +1 -1
  54. package/dist/services/HyperLiquidSubscriptionService.cjs +6 -0
  55. package/dist/services/HyperLiquidSubscriptionService.cjs.map +1 -1
  56. package/dist/services/HyperLiquidSubscriptionService.d.cts.map +1 -1
  57. package/dist/services/HyperLiquidSubscriptionService.d.mts.map +1 -1
  58. package/dist/services/HyperLiquidSubscriptionService.mjs +6 -0
  59. package/dist/services/HyperLiquidSubscriptionService.mjs.map +1 -1
  60. package/dist/types/index.cjs.map +1 -1
  61. package/dist/types/index.d.cts +6 -0
  62. package/dist/types/index.d.cts.map +1 -1
  63. package/dist/types/index.d.mts +6 -0
  64. package/dist/types/index.d.mts.map +1 -1
  65. package/dist/types/index.mjs.map +1 -1
  66. package/dist/utils/index.cjs +2 -0
  67. package/dist/utils/index.cjs.map +1 -1
  68. package/dist/utils/index.d.cts +2 -0
  69. package/dist/utils/index.d.cts.map +1 -1
  70. package/dist/utils/index.d.mts +2 -0
  71. package/dist/utils/index.d.mts.map +1 -1
  72. package/dist/utils/index.mjs +2 -0
  73. package/dist/utils/index.mjs.map +1 -1
  74. package/dist/utils/perpsDiskPersistence.cjs +252 -0
  75. package/dist/utils/perpsDiskPersistence.cjs.map +1 -0
  76. package/dist/utils/perpsDiskPersistence.d.cts +108 -0
  77. package/dist/utils/perpsDiskPersistence.d.cts.map +1 -0
  78. package/dist/utils/perpsDiskPersistence.d.mts +108 -0
  79. package/dist/utils/perpsDiskPersistence.d.mts.map +1 -0
  80. package/dist/utils/perpsDiskPersistence.mjs +244 -0
  81. package/dist/utils/perpsDiskPersistence.mjs.map +1 -0
  82. package/dist/utils/perpsFormatters.cjs +498 -0
  83. package/dist/utils/perpsFormatters.cjs.map +1 -0
  84. package/dist/utils/perpsFormatters.d.cts +202 -0
  85. package/dist/utils/perpsFormatters.d.cts.map +1 -0
  86. package/dist/utils/perpsFormatters.d.mts +202 -0
  87. package/dist/utils/perpsFormatters.d.mts.map +1 -0
  88. package/dist/utils/perpsFormatters.mjs +489 -0
  89. package/dist/utils/perpsFormatters.mjs.map +1 -0
  90. package/package.json +3 -3
@@ -215,6 +215,7 @@ exports.PERPS_EVENT_VALUE = {
215
215
  ADD_FUNDS_ACTION: 'add_funds_action',
216
216
  CANCEL_ORDER: 'cancel_order',
217
217
  ASSET_DETAIL_SCREEN: 'asset_detail_screen',
218
+ MARKET_INSIGHTS: 'market_insights',
218
219
  // TAT-2449: Geo-block sources for close/modify actions
219
220
  CLOSE_POSITION_ACTION: 'close_position_action',
220
221
  MODIFY_POSITION_ACTION: 'modify_position_action',
@@ -1 +1 @@
1
- {"version":3,"file":"eventNames.cjs","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Perps event property keys and values - matching dashboard requirements exactly\n * Event names are defined in MetaMetrics.events.ts as the single source of truth\n */\n\n/**\n * Event property keys - ensures consistent property naming\n */\nexport const PERPS_EVENT_PROPERTY = {\n // Common properties\n TIMESTAMP: 'timestamp',\n ASSET: 'asset',\n DIRECTION: 'direction',\n SOURCE: 'source',\n TAB_NAME: 'tab_name',\n LOCATION: 'location',\n\n // Trade properties\n LEVERAGE: 'leverage',\n LEVERAGE_USED: 'leverage_used',\n ORDER_SIZE: 'order_size',\n MARGIN_USED: 'margin_used',\n ORDER_TYPE: 'order_type', // lowercase per dashboard\n ORDER_TIMESTAMP: 'order_timestamp',\n LIMIT_PRICE: 'limit_price',\n FEES: 'fees',\n FEE: 'fee',\n METAMASK_FEE: 'metamask_fee',\n METAMASK_FEE_RATE: 'metamask_fee_rate',\n DISCOUNT_PERCENTAGE: 'discount_percentage',\n ESTIMATED_REWARDS: 'estimated_rewards',\n ASSET_PRICE: 'asset_price',\n COMPLETION_DURATION: 'completion_duration',\n\n // Position properties\n OPEN_POSITION: 'open_position',\n OPEN_ORDER: 'open_order',\n OPEN_POSITION_SIZE: 'open_position_size',\n UNREALIZED_PNL_DOLLAR: 'unrealized_dollar_pnl',\n UNREALIZED_PNL_PERCENT: 'unrealized_percent_pnl',\n CLOSE_VALUE: 'close_value',\n CLOSE_PERCENTAGE: 'close_percentage',\n CLOSE_TYPE: 'close_type',\n PERCENTAGE_CLOSED: 'percentage_closed',\n PNL_DOLLAR: 'dollar_pnl',\n PNL_PERCENT: 'percent_pnl',\n RECEIVED_AMOUNT: 'received_amount',\n\n // Order type variations\n CURRENT_ORDER_TYPE: 'current_order_type',\n SELECTED_ORDER_TYPE: 'selected_order_type',\n\n // Funding properties\n SOURCE_CHAIN: 'source_chain',\n SOURCE_ASSET: 'source_asset',\n SOURCE_AMOUNT: 'source_amount',\n DESTINATION_AMOUNT: 'destination_amount',\n NETWORK_FEE: 'network_fee',\n WITHDRAWAL_AMOUNT: 'withdrawal_amount',\n\n // Chart properties\n INTERACTION_TYPE: 'interaction_type',\n TIME_SERIE_SELECTED: 'time_serie_selected',\n CANDLE_PERIOD: 'candle_period',\n\n // Risk management properties\n STOP_LOSS_PRICE: 'stop_loss_price',\n STOP_LOSS_PERCENT: 'stop_loss_percent',\n TAKE_PROFIT_PRICE: 'take_profit_price',\n TAKE_PROFIT_PERCENT: 'take_profit_percent',\n POSITION_SIZE: 'position_size',\n POSITION_AGE: 'position_age',\n LIQUIDATION_DISTANCE_OLD: 'liquidation_distance_old',\n LIQUIDATION_DISTANCE_NEW: 'liquidation_distance_new',\n\n // Notification properties\n NOTIFICATION_TYPE: 'notification_type',\n\n // Other properties\n INPUT_METHOD: 'input_method', // camelCase per requirements\n ACTION_TYPE: 'action_type',\n SETTING_TYPE: 'setting_type',\n FAILURE_REASON: 'failure_reason',\n WARNING_TYPE: 'warning_type',\n WARNING_MESSAGE: 'warning_message',\n ERROR_TYPE: 'error_type',\n ERROR_MESSAGE: 'error_message',\n AB_TESTS: 'ab_tests',\n COMPLETION_DURATION_TUTORIAL: 'completion_duration_tutorial',\n STEPS_VIEWED: 'steps_viewed',\n VIEW_OCCURRENCES: 'view_occurrences',\n AMOUNT_FILLED: 'amount_filled',\n REMAINING_AMOUNT: 'remaining_amount',\n\n // Tutorial carousel navigation properties\n PREVIOUS_SCREEN: 'previous_screen',\n CURRENT_SCREEN: 'current_screen',\n SCREEN_POSITION: 'screen_position',\n TOTAL_SCREENS: 'total_screens',\n NAVIGATION_METHOD: 'navigation_method',\n STATUS: 'status',\n SCREEN_TYPE: 'screen_type',\n SCREEN_NAME: 'screen_name',\n ACTION: 'action',\n RETRY_ATTEMPTS: 'retry_attempts',\n SHOW_BACK_BUTTON: 'show_back_button',\n ATTEMPT_NUMBER: 'attempt_number',\n\n // PnL Hero Card properties\n IMAGE_SELECTED: 'image_selected',\n TAB_NUMBER: 'tab_number',\n\n // A/B testing properties (flat per test for multiple concurrent tests)\n // Only include AB test properties when test is enabled (event not sent when disabled)\n // Button color test (TAT-1937)\n AB_TEST_BUTTON_COLOR: 'ab_test_button_color',\n // Future tests: add as AB_TEST_{TEST_NAME} (no _ENABLED property needed)\n\n // Entry point tracking properties\n BUTTON_CLICKED: 'button_clicked',\n BUTTON_LOCATION: 'button_location',\n\n // Balance properties\n HAS_PERP_BALANCE: 'has_perp_balance',\n\n // Geo-blocking properties (TAT-2337: track geo-blocked withdrawals for monitoring)\n IS_GEO_BLOCKED: 'is_geo_blocked',\n\n // TP/SL differentiation properties\n HAS_TAKE_PROFIT: 'has_take_profit',\n HAS_STOP_LOSS: 'has_stop_loss',\n TAKE_PROFIT_PERCENTAGE: 'take_profit_percentage',\n STOP_LOSS_PERCENTAGE: 'stop_loss_percentage',\n // Watchlist/Favorites properties\n FAVORITES_COUNT: 'favorites_count',\n\n // Scroll tracking properties\n SECTION_VIEWED: 'section_viewed',\n\n // Order value (USD $ value of the order)\n ORDER_VALUE: 'order_value',\n\n // Market category filter (for market list screen)\n MARKET_CATEGORY: 'market_category',\n\n // Pay with any token (PERPS_TRADE_TRANSACTION)\n TRADE_WITH_TOKEN: 'trade_with_token',\n MM_PAY_TOKEN_SELECTED: 'mm_pay_token_selected',\n MM_PAY_NETWORK_SELECTED: 'mm_pay_network_selected',\n\n // Pay-with UI (PERPS_UI_INTERACTION)\n INITIAL_PAYMENT_METHOD: 'initial_payment_method',\n NEW_PAYMENT_METHOD: 'new_payment_method',\n} as const;\n\n/**\n * Property value constants\n */\nexport const PERPS_EVENT_VALUE = {\n DIRECTION: {\n LONG: 'long',\n SHORT: 'short',\n },\n ORDER_TYPE: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n ORDER_TYPE_CAPITALIZED: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n INPUT_METHOD: {\n SLIDER: 'slider',\n KEYBOARD: 'keyboard',\n PRESET: 'preset',\n MANUAL: 'manual',\n PERCENTAGE_BUTTON: 'percentage_button',\n },\n SOURCE: {\n BANNER: 'banner',\n NOTIFICATION: 'notification',\n MAIN_ACTION_BUTTON: 'main_action_button',\n POSITION_TAB: 'position_tab',\n PERP_MARKETS: 'perp_markets',\n DEEPLINK: 'deeplink',\n TUTORIAL: 'tutorial',\n TRADE_SCREEN: 'trade_screen',\n HOMESCREEN_TAB: 'homescreen_tab',\n PERP_ASSET_SCREEN: 'perp_asset_screen',\n PERP_MARKET: 'perp_market',\n PERP_MARKET_SEARCH: 'perp_market_search',\n POSITION_SCREEN: 'position_screen',\n TP_SL_VIEW: 'tp_sl_view',\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN_NO_FUNDS: 'perps_asset_screen_no_funds',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n HOME_SECTION: 'home_section',\n TOOLTIP: 'tooltip',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO_BUTTON: 'crypto_button',\n STOCKS_BUTTON: 'stocks_button',\n CLOSE_TOAST: 'close_toast',\n // Perps home section sources (for navigation tracking)\n PERPS_HOME_POSITION: 'perps_home_position',\n PERPS_HOME_ORDERS: 'perps_home_orders',\n PERPS_HOME_WATCHLIST: 'perps_home_watchlist',\n PERPS_HOME_EXPLORE_CRYPTO: 'perps_home_explore_crypto',\n PERPS_HOME_EXPLORE_STOCKS: 'perps_home_explore_stocks',\n PERPS_HOME_ACTIVITY: 'perps_home_activity',\n // Explore/Trending page source\n EXPLORE: 'explore',\n // Market list tab sources\n PERPS_MARKET_LIST_ALL: 'perps_market_list_all',\n PERPS_MARKET_LIST_CRYPTO: 'perps_market_list_crypto',\n PERPS_MARKET_LIST_STOCKS: 'perps_market_list_stocks',\n // Other navigation sources\n PERPS_TAB: 'perps_tab',\n WALLET_MAIN_ACTION_MENU: 'wallet_main_action_menu',\n PUSH_NOTIFICATION: 'push_notification',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n // Position management sources\n OPEN_POSITION: 'open_position',\n POSITION_CLOSE_TOAST: 'position_close_toast',\n TRADE_DETAILS: 'trade_details',\n // Geo-block trigger sources (for tracking what action was blocked)\n DEPOSIT_BUTTON: 'deposit_button',\n WITHDRAW_BUTTON: 'withdraw_button',\n TRADE_ACTION: 'trade_action',\n ADD_FUNDS_ACTION: 'add_funds_action',\n CANCEL_ORDER: 'cancel_order',\n ASSET_DETAIL_SCREEN: 'asset_detail_screen',\n // TAT-2449: Geo-block sources for close/modify actions\n CLOSE_POSITION_ACTION: 'close_position_action',\n MODIFY_POSITION_ACTION: 'modify_position_action',\n // Geo-block sources for order book actions\n ORDER_BOOK_LONG_BUTTON: 'order_book_long_button',\n ORDER_BOOK_SHORT_BUTTON: 'order_book_short_button',\n ORDER_BOOK_CLOSE_BUTTON: 'order_book_close_button',\n ORDER_BOOK_MODIFY_BUTTON: 'order_book_modify_button',\n // Geo-block sources for position management actions\n AUTO_CLOSE_ACTION: 'auto_close_action',\n ADJUST_MARGIN_ACTION: 'adjust_margin_action',\n STOP_LOSS_PROMPT_ADD_MARGIN: 'stop_loss_prompt_add_margin',\n STOP_LOSS_PROMPT_SET_SL: 'stop_loss_prompt_set_sl',\n // Geo-block sources for bulk actions\n CLOSE_ALL_POSITIONS_BUTTON: 'close_all_positions_button',\n CANCEL_ALL_ORDERS_BUTTON: 'cancel_all_orders_button',\n },\n WARNING_TYPE: {\n MINIMUM_DEPOSIT: 'minimum_deposit',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n },\n ERROR_TYPE: {\n NETWORK: 'network',\n APP_CRASH: 'app_crash',\n BACKEND: 'backend',\n VALIDATION: 'validation',\n WARNING: 'warning',\n },\n // Standardized error message keys for PERP_ERROR events\n // These should be used instead of localized strings for consistent analytics\n ERROR_MESSAGE_KEY: {\n ORDER_CHANGED_FROM_LIMIT_TO_MARKET: 'order_changed_from_limit_to_market',\n OPEN_CROSS_MARGIN_POSITION_DETECTED: 'open_cross_margin_position_detected',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n ORDER_FAILED: 'order_failed',\n GEO_RESTRICTION: 'geo_restriction',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n MAXIMUM_LEVERAGE_EXCEEDED: 'maximum_leverage_exceeded',\n PRICE_DEVIATION_TOO_HIGH: 'price_deviation_too_high',\n MARKET_AT_CAPACITY: 'market_at_capacity',\n NETWORK_ERROR: 'network_error',\n CONNECTION_FAILED: 'connection_failed',\n POSITION_UPDATE_FAILED: 'position_update_failed',\n TP_SL_UPDATE_FAILED: 'tp_sl_update_failed',\n MARGIN_UPDATE_FAILED: 'margin_update_failed',\n UNKNOWN: 'unknown',\n },\n INTERACTION_TYPE: {\n TAP: 'tap',\n ZOOM: 'zoom',\n SLIDE: 'slide',\n SEARCH_CLICKED: 'search_clicked',\n ORDER_TYPE_VIEWED: 'order_type_viewed',\n ORDER_TYPE_SELECTED: 'order_type_selected',\n /** @deprecated Use LEVERAGE_CHANGED instead for clarity */\n SETTING_CHANGED: 'setting_changed',\n LEVERAGE_CHANGED: 'leverage_changed',\n TUTORIAL_STARTED: 'tutorial_started',\n TUTORIAL_COMPLETED: 'tutorial_completed',\n TUTORIAL_NAVIGATION: 'tutorial_navigation',\n CANDLE_PERIOD_VIEWED: 'candle_period_viewed',\n CANDLE_PERIOD_CHANGED: 'candle_period_changed',\n FAVORITE_TOGGLED: 'favorite_toggled',\n BUTTON_CLICKED: 'button_clicked',\n // Position management interactions\n CONTACT_SUPPORT: 'contact_support',\n STOP_LOSS_ONE_CLICK_PROMPT: 'stop_loss_one_click_prompt',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n INCREASE_EXPOSURE: 'increase_exposure',\n REDUCE_EXPOSURE: 'reduce_exposure',\n FLIP_POSITION: 'flip_position',\n // Hero card interactions\n DISPLAY_HERO_CARD: 'display_hero_card',\n SHARE_PNL_HERO_CARD: 'share_pnl_hero_card',\n // Chart interactions\n FULL_SCREEN_CHART: 'full_screen_chart',\n // Pay-with interactions\n PAYMENT_TOKEN_SELECTOR: 'payment_token_selector',\n PAYMENT_METHOD_CHANGED: 'payment_method_changed',\n // Deposit + order (pay-with token) cancel\n CANCEL_TRADE_WITH_TOKEN: 'cancel_trade_with_token',\n },\n ACTION_TYPE: {\n START_TRADING: 'start_trading',\n SKIP: 'skip',\n STOP_LOSS_SET: 'stop_loss_set',\n TAKE_PROFIT_SET: 'take_profit_set',\n ADL_LEARN_MORE: 'adl_learn_more',\n LEARN_MORE: 'learn_more',\n FAVORITE_MARKET: 'favorite_market',\n UNFAVORITE_MARKET: 'unfavorite_market',\n },\n NOTIFICATION_TYPE: {\n POSITION_LIQUIDATED: 'position_liquidated',\n TP_EXECUTED: 'tp_executed',\n SL_EXECUTED: 'sl_executed',\n LIMIT_ORDER_EXECUTED: 'limit_order_executed',\n },\n CLOSE_TYPE: {\n FULL: 'full',\n PARTIAL: 'partial',\n },\n NAVIGATION_METHOD: {\n SWIPE: 'swipe',\n CONTINUE_BUTTON: 'continue_button',\n PROGRESS_DOT: 'progress_dot',\n },\n STATUS: {\n VIEWED: 'viewed',\n STARTED: 'started',\n COMPLETED: 'completed',\n INITIATED: 'initiated',\n SUBMITTED: 'submitted',\n EXECUTED: 'executed',\n PARTIALLY_FILLED: 'partially_filled',\n FAILED: 'failed',\n SUCCESS: 'success',\n },\n SCREEN_TYPE: {\n MARKETS: 'markets',\n MARKET_LIST: 'market_list',\n ASSET_DETAILS: 'asset_details',\n TRADING: 'trading',\n /** @deprecated Use PERPS_HOME or WALLET_HOME_PERPS_TAB instead */\n HOMESCREEN: 'homescreen',\n PERPS_HOME: 'perps_home',\n WALLET_HOME_PERPS_TAB: 'wallet_home_perps_tab',\n POSITION_CLOSE: 'position_close',\n LEVERAGE: 'leverage',\n TUTORIAL: 'tutorial',\n WITHDRAWAL: 'withdrawal',\n TP_SL: 'tp_sl',\n CREATE_TPSL: 'create_tpsl',\n EDIT_TPSL: 'edit_tpsl',\n DEPOSIT_INPUT: 'deposit_input',\n DEPOSIT_REVIEW: 'deposit_review',\n CLOSE_ALL_POSITIONS: 'close_all_positions',\n CANCEL_ALL_ORDERS: 'cancel_all_orders',\n PNL_HERO_CARD: 'pnl_hero_card',\n ORDER_BOOK: 'order_book',\n ERROR: 'error',\n // Market list tab screen types\n MARKET_LIST_ALL: 'market_list_all',\n MARKET_LIST_CRYPTO: 'market_list_crypto',\n MARKET_LIST_STOCKS: 'market_list_stocks',\n // Additional screens\n FULL_SCREEN_CHART: 'full_screen_chart',\n ACTIVITY: 'activity',\n INCREASE_EXPOSURE: 'increase_exposure',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n GEO_BLOCK_NOTIF: 'geo_block_notif',\n COMPLIANCE_BLOCK_NOTIF: 'compliance_block_notif',\n // Deposit + order (pay-with token) cancel toast\n CANCEL_TRADE_WITH_TOKEN_TOAST: 'cancel_trade_with_token_toast',\n },\n SETTING_TYPE: {\n LEVERAGE: 'leverage',\n },\n SCREEN_NAME: {\n CONNECTION_ERROR: 'connection_error',\n PERPS_HERO_CARD: 'perps_hero_card',\n PERPS_ACTIVITY_HISTORY: 'perps_activity_history',\n PERPS_HOME: 'perps_home',\n PERPS_MARKET_DETAILS: 'perps_market_details',\n PERPS_ORDER: 'perps_order',\n },\n ACTION: {\n CONNECTION_RETRY: 'connection_retry',\n CONNECTION_GO_BACK: 'connection_go_back',\n SHARE: 'share',\n // Risk management actions\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n EDIT_TP_SL: 'edit_tp_sl',\n CREATE_TP_SL: 'create_tp_sl',\n // TP/SL specific actions for risk management events\n TP: 'tp',\n SL: 'sl',\n TPSL: 'tpsl',\n // Trade transaction actions - differentiates new position from adding to existing\n CREATE_POSITION: 'create_position',\n INCREASE_EXPOSURE: 'increase_exposure',\n // Flip position actions with direction specificity\n FLIP_LONG_TO_SHORT: 'flip_long_to_short',\n FLIP_SHORT_TO_LONG: 'flip_short_to_long',\n },\n // Risk management sources\n RISK_MANAGEMENT_SOURCE: {\n TRADE_SCREEN: 'trade_screen',\n POSITION_SCREEN: 'position_screen',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n },\n PERPS_HISTORY_TABS: {\n TRADES: 'trades',\n ORDERS: 'orders',\n FUNDING: 'funding',\n DEPOSITS: 'deposits',\n },\n /** Value for mm_pay_token_selected when user pays with Perps balance (not a token) */\n MM_PAY_TOKEN: {\n PERPS_BALANCE: 'Perps Balance',\n },\n // A/B testing values\n AB_TEST: {\n // Test IDs\n BUTTON_COLOR_TEST: 'button_color_test',\n // Button color test variants\n CONTROL: 'control',\n MONOCHROME: 'monochrome',\n },\n BUTTON_CLICKED: {\n DEPOSIT: 'deposit',\n WITHDRAW: 'withdraw',\n PERPS_HOME: 'perps_home',\n TUTORIAL: 'tutorial',\n TOOLTIP: 'tooltip',\n MARKET_LIST: 'market_list',\n OPEN_POSITION: 'open_position',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO: 'crypto',\n STOCKS: 'stocks',\n COMMODITIES: 'commodities',\n FOREX: 'forex',\n NEW: 'new',\n GIVE_FEEDBACK: 'give_feedback',\n },\n BUTTON_LOCATION: {\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN: 'perps_asset_screen',\n PERPS_TAB: 'perps_tab',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n MARKET_LIST: 'market_list',\n SCREEN: 'screen',\n TOOLTIP: 'tooltip',\n PERP_MARKET_DETAILS: 'perp_market_details',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n },\n} as const;\n"]}
1
+ {"version":3,"file":"eventNames.cjs","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Perps event property keys and values - matching dashboard requirements exactly\n * Event names are defined in MetaMetrics.events.ts as the single source of truth\n */\n\n/**\n * Event property keys - ensures consistent property naming\n */\nexport const PERPS_EVENT_PROPERTY = {\n // Common properties\n TIMESTAMP: 'timestamp',\n ASSET: 'asset',\n DIRECTION: 'direction',\n SOURCE: 'source',\n TAB_NAME: 'tab_name',\n LOCATION: 'location',\n\n // Trade properties\n LEVERAGE: 'leverage',\n LEVERAGE_USED: 'leverage_used',\n ORDER_SIZE: 'order_size',\n MARGIN_USED: 'margin_used',\n ORDER_TYPE: 'order_type', // lowercase per dashboard\n ORDER_TIMESTAMP: 'order_timestamp',\n LIMIT_PRICE: 'limit_price',\n FEES: 'fees',\n FEE: 'fee',\n METAMASK_FEE: 'metamask_fee',\n METAMASK_FEE_RATE: 'metamask_fee_rate',\n DISCOUNT_PERCENTAGE: 'discount_percentage',\n ESTIMATED_REWARDS: 'estimated_rewards',\n ASSET_PRICE: 'asset_price',\n COMPLETION_DURATION: 'completion_duration',\n\n // Position properties\n OPEN_POSITION: 'open_position',\n OPEN_ORDER: 'open_order',\n OPEN_POSITION_SIZE: 'open_position_size',\n UNREALIZED_PNL_DOLLAR: 'unrealized_dollar_pnl',\n UNREALIZED_PNL_PERCENT: 'unrealized_percent_pnl',\n CLOSE_VALUE: 'close_value',\n CLOSE_PERCENTAGE: 'close_percentage',\n CLOSE_TYPE: 'close_type',\n PERCENTAGE_CLOSED: 'percentage_closed',\n PNL_DOLLAR: 'dollar_pnl',\n PNL_PERCENT: 'percent_pnl',\n RECEIVED_AMOUNT: 'received_amount',\n\n // Order type variations\n CURRENT_ORDER_TYPE: 'current_order_type',\n SELECTED_ORDER_TYPE: 'selected_order_type',\n\n // Funding properties\n SOURCE_CHAIN: 'source_chain',\n SOURCE_ASSET: 'source_asset',\n SOURCE_AMOUNT: 'source_amount',\n DESTINATION_AMOUNT: 'destination_amount',\n NETWORK_FEE: 'network_fee',\n WITHDRAWAL_AMOUNT: 'withdrawal_amount',\n\n // Chart properties\n INTERACTION_TYPE: 'interaction_type',\n TIME_SERIE_SELECTED: 'time_serie_selected',\n CANDLE_PERIOD: 'candle_period',\n\n // Risk management properties\n STOP_LOSS_PRICE: 'stop_loss_price',\n STOP_LOSS_PERCENT: 'stop_loss_percent',\n TAKE_PROFIT_PRICE: 'take_profit_price',\n TAKE_PROFIT_PERCENT: 'take_profit_percent',\n POSITION_SIZE: 'position_size',\n POSITION_AGE: 'position_age',\n LIQUIDATION_DISTANCE_OLD: 'liquidation_distance_old',\n LIQUIDATION_DISTANCE_NEW: 'liquidation_distance_new',\n\n // Notification properties\n NOTIFICATION_TYPE: 'notification_type',\n\n // Other properties\n INPUT_METHOD: 'input_method', // camelCase per requirements\n ACTION_TYPE: 'action_type',\n SETTING_TYPE: 'setting_type',\n FAILURE_REASON: 'failure_reason',\n WARNING_TYPE: 'warning_type',\n WARNING_MESSAGE: 'warning_message',\n ERROR_TYPE: 'error_type',\n ERROR_MESSAGE: 'error_message',\n AB_TESTS: 'ab_tests',\n COMPLETION_DURATION_TUTORIAL: 'completion_duration_tutorial',\n STEPS_VIEWED: 'steps_viewed',\n VIEW_OCCURRENCES: 'view_occurrences',\n AMOUNT_FILLED: 'amount_filled',\n REMAINING_AMOUNT: 'remaining_amount',\n\n // Tutorial carousel navigation properties\n PREVIOUS_SCREEN: 'previous_screen',\n CURRENT_SCREEN: 'current_screen',\n SCREEN_POSITION: 'screen_position',\n TOTAL_SCREENS: 'total_screens',\n NAVIGATION_METHOD: 'navigation_method',\n STATUS: 'status',\n SCREEN_TYPE: 'screen_type',\n SCREEN_NAME: 'screen_name',\n ACTION: 'action',\n RETRY_ATTEMPTS: 'retry_attempts',\n SHOW_BACK_BUTTON: 'show_back_button',\n ATTEMPT_NUMBER: 'attempt_number',\n\n // PnL Hero Card properties\n IMAGE_SELECTED: 'image_selected',\n TAB_NUMBER: 'tab_number',\n\n // A/B testing properties (flat per test for multiple concurrent tests)\n // Only include AB test properties when test is enabled (event not sent when disabled)\n // Button color test (TAT-1937)\n AB_TEST_BUTTON_COLOR: 'ab_test_button_color',\n // Future tests: add as AB_TEST_{TEST_NAME} (no _ENABLED property needed)\n\n // Entry point tracking properties\n BUTTON_CLICKED: 'button_clicked',\n BUTTON_LOCATION: 'button_location',\n\n // Balance properties\n HAS_PERP_BALANCE: 'has_perp_balance',\n\n // Geo-blocking properties (TAT-2337: track geo-blocked withdrawals for monitoring)\n IS_GEO_BLOCKED: 'is_geo_blocked',\n\n // TP/SL differentiation properties\n HAS_TAKE_PROFIT: 'has_take_profit',\n HAS_STOP_LOSS: 'has_stop_loss',\n TAKE_PROFIT_PERCENTAGE: 'take_profit_percentage',\n STOP_LOSS_PERCENTAGE: 'stop_loss_percentage',\n // Watchlist/Favorites properties\n FAVORITES_COUNT: 'favorites_count',\n\n // Scroll tracking properties\n SECTION_VIEWED: 'section_viewed',\n\n // Order value (USD $ value of the order)\n ORDER_VALUE: 'order_value',\n\n // Market category filter (for market list screen)\n MARKET_CATEGORY: 'market_category',\n\n // Pay with any token (PERPS_TRADE_TRANSACTION)\n TRADE_WITH_TOKEN: 'trade_with_token',\n MM_PAY_TOKEN_SELECTED: 'mm_pay_token_selected',\n MM_PAY_NETWORK_SELECTED: 'mm_pay_network_selected',\n\n // Pay-with UI (PERPS_UI_INTERACTION)\n INITIAL_PAYMENT_METHOD: 'initial_payment_method',\n NEW_PAYMENT_METHOD: 'new_payment_method',\n} as const;\n\n/**\n * Property value constants\n */\nexport const PERPS_EVENT_VALUE = {\n DIRECTION: {\n LONG: 'long',\n SHORT: 'short',\n },\n ORDER_TYPE: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n ORDER_TYPE_CAPITALIZED: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n INPUT_METHOD: {\n SLIDER: 'slider',\n KEYBOARD: 'keyboard',\n PRESET: 'preset',\n MANUAL: 'manual',\n PERCENTAGE_BUTTON: 'percentage_button',\n },\n SOURCE: {\n BANNER: 'banner',\n NOTIFICATION: 'notification',\n MAIN_ACTION_BUTTON: 'main_action_button',\n POSITION_TAB: 'position_tab',\n PERP_MARKETS: 'perp_markets',\n DEEPLINK: 'deeplink',\n TUTORIAL: 'tutorial',\n TRADE_SCREEN: 'trade_screen',\n HOMESCREEN_TAB: 'homescreen_tab',\n PERP_ASSET_SCREEN: 'perp_asset_screen',\n PERP_MARKET: 'perp_market',\n PERP_MARKET_SEARCH: 'perp_market_search',\n POSITION_SCREEN: 'position_screen',\n TP_SL_VIEW: 'tp_sl_view',\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN_NO_FUNDS: 'perps_asset_screen_no_funds',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n HOME_SECTION: 'home_section',\n TOOLTIP: 'tooltip',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO_BUTTON: 'crypto_button',\n STOCKS_BUTTON: 'stocks_button',\n CLOSE_TOAST: 'close_toast',\n // Perps home section sources (for navigation tracking)\n PERPS_HOME_POSITION: 'perps_home_position',\n PERPS_HOME_ORDERS: 'perps_home_orders',\n PERPS_HOME_WATCHLIST: 'perps_home_watchlist',\n PERPS_HOME_EXPLORE_CRYPTO: 'perps_home_explore_crypto',\n PERPS_HOME_EXPLORE_STOCKS: 'perps_home_explore_stocks',\n PERPS_HOME_ACTIVITY: 'perps_home_activity',\n // Explore/Trending page source\n EXPLORE: 'explore',\n // Market list tab sources\n PERPS_MARKET_LIST_ALL: 'perps_market_list_all',\n PERPS_MARKET_LIST_CRYPTO: 'perps_market_list_crypto',\n PERPS_MARKET_LIST_STOCKS: 'perps_market_list_stocks',\n // Other navigation sources\n PERPS_TAB: 'perps_tab',\n WALLET_MAIN_ACTION_MENU: 'wallet_main_action_menu',\n PUSH_NOTIFICATION: 'push_notification',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n // Position management sources\n OPEN_POSITION: 'open_position',\n POSITION_CLOSE_TOAST: 'position_close_toast',\n TRADE_DETAILS: 'trade_details',\n // Geo-block trigger sources (for tracking what action was blocked)\n DEPOSIT_BUTTON: 'deposit_button',\n WITHDRAW_BUTTON: 'withdraw_button',\n TRADE_ACTION: 'trade_action',\n ADD_FUNDS_ACTION: 'add_funds_action',\n CANCEL_ORDER: 'cancel_order',\n ASSET_DETAIL_SCREEN: 'asset_detail_screen',\n MARKET_INSIGHTS: 'market_insights',\n // TAT-2449: Geo-block sources for close/modify actions\n CLOSE_POSITION_ACTION: 'close_position_action',\n MODIFY_POSITION_ACTION: 'modify_position_action',\n // Geo-block sources for order book actions\n ORDER_BOOK_LONG_BUTTON: 'order_book_long_button',\n ORDER_BOOK_SHORT_BUTTON: 'order_book_short_button',\n ORDER_BOOK_CLOSE_BUTTON: 'order_book_close_button',\n ORDER_BOOK_MODIFY_BUTTON: 'order_book_modify_button',\n // Geo-block sources for position management actions\n AUTO_CLOSE_ACTION: 'auto_close_action',\n ADJUST_MARGIN_ACTION: 'adjust_margin_action',\n STOP_LOSS_PROMPT_ADD_MARGIN: 'stop_loss_prompt_add_margin',\n STOP_LOSS_PROMPT_SET_SL: 'stop_loss_prompt_set_sl',\n // Geo-block sources for bulk actions\n CLOSE_ALL_POSITIONS_BUTTON: 'close_all_positions_button',\n CANCEL_ALL_ORDERS_BUTTON: 'cancel_all_orders_button',\n },\n WARNING_TYPE: {\n MINIMUM_DEPOSIT: 'minimum_deposit',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n },\n ERROR_TYPE: {\n NETWORK: 'network',\n APP_CRASH: 'app_crash',\n BACKEND: 'backend',\n VALIDATION: 'validation',\n WARNING: 'warning',\n },\n // Standardized error message keys for PERP_ERROR events\n // These should be used instead of localized strings for consistent analytics\n ERROR_MESSAGE_KEY: {\n ORDER_CHANGED_FROM_LIMIT_TO_MARKET: 'order_changed_from_limit_to_market',\n OPEN_CROSS_MARGIN_POSITION_DETECTED: 'open_cross_margin_position_detected',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n ORDER_FAILED: 'order_failed',\n GEO_RESTRICTION: 'geo_restriction',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n MAXIMUM_LEVERAGE_EXCEEDED: 'maximum_leverage_exceeded',\n PRICE_DEVIATION_TOO_HIGH: 'price_deviation_too_high',\n MARKET_AT_CAPACITY: 'market_at_capacity',\n NETWORK_ERROR: 'network_error',\n CONNECTION_FAILED: 'connection_failed',\n POSITION_UPDATE_FAILED: 'position_update_failed',\n TP_SL_UPDATE_FAILED: 'tp_sl_update_failed',\n MARGIN_UPDATE_FAILED: 'margin_update_failed',\n UNKNOWN: 'unknown',\n },\n INTERACTION_TYPE: {\n TAP: 'tap',\n ZOOM: 'zoom',\n SLIDE: 'slide',\n SEARCH_CLICKED: 'search_clicked',\n ORDER_TYPE_VIEWED: 'order_type_viewed',\n ORDER_TYPE_SELECTED: 'order_type_selected',\n /** @deprecated Use LEVERAGE_CHANGED instead for clarity */\n SETTING_CHANGED: 'setting_changed',\n LEVERAGE_CHANGED: 'leverage_changed',\n TUTORIAL_STARTED: 'tutorial_started',\n TUTORIAL_COMPLETED: 'tutorial_completed',\n TUTORIAL_NAVIGATION: 'tutorial_navigation',\n CANDLE_PERIOD_VIEWED: 'candle_period_viewed',\n CANDLE_PERIOD_CHANGED: 'candle_period_changed',\n FAVORITE_TOGGLED: 'favorite_toggled',\n BUTTON_CLICKED: 'button_clicked',\n // Position management interactions\n CONTACT_SUPPORT: 'contact_support',\n STOP_LOSS_ONE_CLICK_PROMPT: 'stop_loss_one_click_prompt',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n INCREASE_EXPOSURE: 'increase_exposure',\n REDUCE_EXPOSURE: 'reduce_exposure',\n FLIP_POSITION: 'flip_position',\n // Hero card interactions\n DISPLAY_HERO_CARD: 'display_hero_card',\n SHARE_PNL_HERO_CARD: 'share_pnl_hero_card',\n // Chart interactions\n FULL_SCREEN_CHART: 'full_screen_chart',\n // Pay-with interactions\n PAYMENT_TOKEN_SELECTOR: 'payment_token_selector',\n PAYMENT_METHOD_CHANGED: 'payment_method_changed',\n // Deposit + order (pay-with token) cancel\n CANCEL_TRADE_WITH_TOKEN: 'cancel_trade_with_token',\n },\n ACTION_TYPE: {\n START_TRADING: 'start_trading',\n SKIP: 'skip',\n STOP_LOSS_SET: 'stop_loss_set',\n TAKE_PROFIT_SET: 'take_profit_set',\n ADL_LEARN_MORE: 'adl_learn_more',\n LEARN_MORE: 'learn_more',\n FAVORITE_MARKET: 'favorite_market',\n UNFAVORITE_MARKET: 'unfavorite_market',\n },\n NOTIFICATION_TYPE: {\n POSITION_LIQUIDATED: 'position_liquidated',\n TP_EXECUTED: 'tp_executed',\n SL_EXECUTED: 'sl_executed',\n LIMIT_ORDER_EXECUTED: 'limit_order_executed',\n },\n CLOSE_TYPE: {\n FULL: 'full',\n PARTIAL: 'partial',\n },\n NAVIGATION_METHOD: {\n SWIPE: 'swipe',\n CONTINUE_BUTTON: 'continue_button',\n PROGRESS_DOT: 'progress_dot',\n },\n STATUS: {\n VIEWED: 'viewed',\n STARTED: 'started',\n COMPLETED: 'completed',\n INITIATED: 'initiated',\n SUBMITTED: 'submitted',\n EXECUTED: 'executed',\n PARTIALLY_FILLED: 'partially_filled',\n FAILED: 'failed',\n SUCCESS: 'success',\n },\n SCREEN_TYPE: {\n MARKETS: 'markets',\n MARKET_LIST: 'market_list',\n ASSET_DETAILS: 'asset_details',\n TRADING: 'trading',\n /** @deprecated Use PERPS_HOME or WALLET_HOME_PERPS_TAB instead */\n HOMESCREEN: 'homescreen',\n PERPS_HOME: 'perps_home',\n WALLET_HOME_PERPS_TAB: 'wallet_home_perps_tab',\n POSITION_CLOSE: 'position_close',\n LEVERAGE: 'leverage',\n TUTORIAL: 'tutorial',\n WITHDRAWAL: 'withdrawal',\n TP_SL: 'tp_sl',\n CREATE_TPSL: 'create_tpsl',\n EDIT_TPSL: 'edit_tpsl',\n DEPOSIT_INPUT: 'deposit_input',\n DEPOSIT_REVIEW: 'deposit_review',\n CLOSE_ALL_POSITIONS: 'close_all_positions',\n CANCEL_ALL_ORDERS: 'cancel_all_orders',\n PNL_HERO_CARD: 'pnl_hero_card',\n ORDER_BOOK: 'order_book',\n ERROR: 'error',\n // Market list tab screen types\n MARKET_LIST_ALL: 'market_list_all',\n MARKET_LIST_CRYPTO: 'market_list_crypto',\n MARKET_LIST_STOCKS: 'market_list_stocks',\n // Additional screens\n FULL_SCREEN_CHART: 'full_screen_chart',\n ACTIVITY: 'activity',\n INCREASE_EXPOSURE: 'increase_exposure',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n GEO_BLOCK_NOTIF: 'geo_block_notif',\n COMPLIANCE_BLOCK_NOTIF: 'compliance_block_notif',\n // Deposit + order (pay-with token) cancel toast\n CANCEL_TRADE_WITH_TOKEN_TOAST: 'cancel_trade_with_token_toast',\n },\n SETTING_TYPE: {\n LEVERAGE: 'leverage',\n },\n SCREEN_NAME: {\n CONNECTION_ERROR: 'connection_error',\n PERPS_HERO_CARD: 'perps_hero_card',\n PERPS_ACTIVITY_HISTORY: 'perps_activity_history',\n PERPS_HOME: 'perps_home',\n PERPS_MARKET_DETAILS: 'perps_market_details',\n PERPS_ORDER: 'perps_order',\n },\n ACTION: {\n CONNECTION_RETRY: 'connection_retry',\n CONNECTION_GO_BACK: 'connection_go_back',\n SHARE: 'share',\n // Risk management actions\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n EDIT_TP_SL: 'edit_tp_sl',\n CREATE_TP_SL: 'create_tp_sl',\n // TP/SL specific actions for risk management events\n TP: 'tp',\n SL: 'sl',\n TPSL: 'tpsl',\n // Trade transaction actions - differentiates new position from adding to existing\n CREATE_POSITION: 'create_position',\n INCREASE_EXPOSURE: 'increase_exposure',\n // Flip position actions with direction specificity\n FLIP_LONG_TO_SHORT: 'flip_long_to_short',\n FLIP_SHORT_TO_LONG: 'flip_short_to_long',\n },\n // Risk management sources\n RISK_MANAGEMENT_SOURCE: {\n TRADE_SCREEN: 'trade_screen',\n POSITION_SCREEN: 'position_screen',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n },\n PERPS_HISTORY_TABS: {\n TRADES: 'trades',\n ORDERS: 'orders',\n FUNDING: 'funding',\n DEPOSITS: 'deposits',\n },\n /** Value for mm_pay_token_selected when user pays with Perps balance (not a token) */\n MM_PAY_TOKEN: {\n PERPS_BALANCE: 'Perps Balance',\n },\n // A/B testing values\n AB_TEST: {\n // Test IDs\n BUTTON_COLOR_TEST: 'button_color_test',\n // Button color test variants\n CONTROL: 'control',\n MONOCHROME: 'monochrome',\n },\n BUTTON_CLICKED: {\n DEPOSIT: 'deposit',\n WITHDRAW: 'withdraw',\n PERPS_HOME: 'perps_home',\n TUTORIAL: 'tutorial',\n TOOLTIP: 'tooltip',\n MARKET_LIST: 'market_list',\n OPEN_POSITION: 'open_position',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO: 'crypto',\n STOCKS: 'stocks',\n COMMODITIES: 'commodities',\n FOREX: 'forex',\n NEW: 'new',\n GIVE_FEEDBACK: 'give_feedback',\n },\n BUTTON_LOCATION: {\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN: 'perps_asset_screen',\n PERPS_TAB: 'perps_tab',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n MARKET_LIST: 'market_list',\n SCREEN: 'screen',\n TOOLTIP: 'tooltip',\n PERP_MARKET_DETAILS: 'perp_market_details',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n },\n} as const;\n"]}
@@ -181,6 +181,7 @@ export declare const PERPS_EVENT_VALUE: {
181
181
  readonly ADD_FUNDS_ACTION: "add_funds_action";
182
182
  readonly CANCEL_ORDER: "cancel_order";
183
183
  readonly ASSET_DETAIL_SCREEN: "asset_detail_screen";
184
+ readonly MARKET_INSIGHTS: "market_insights";
184
185
  readonly CLOSE_POSITION_ACTION: "close_position_action";
185
186
  readonly MODIFY_POSITION_ACTION: "modify_position_action";
186
187
  readonly ORDER_BOOK_LONG_BUTTON: "order_book_long_button";
@@ -1 +1 @@
1
- {"version":3,"file":"eventNames.d.cts","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqI1B,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsE3D,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4EpE,sFAAsF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9E,CAAC"}
1
+ {"version":3,"file":"eventNames.d.cts","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsI1B,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsE3D,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4EpE,sFAAsF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9E,CAAC"}
@@ -181,6 +181,7 @@ export declare const PERPS_EVENT_VALUE: {
181
181
  readonly ADD_FUNDS_ACTION: "add_funds_action";
182
182
  readonly CANCEL_ORDER: "cancel_order";
183
183
  readonly ASSET_DETAIL_SCREEN: "asset_detail_screen";
184
+ readonly MARKET_INSIGHTS: "market_insights";
184
185
  readonly CLOSE_POSITION_ACTION: "close_position_action";
185
186
  readonly MODIFY_POSITION_ACTION: "modify_position_action";
186
187
  readonly ORDER_BOOK_LONG_BUTTON: "order_book_long_button";
@@ -1 +1 @@
1
- {"version":3,"file":"eventNames.d.mts","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqI1B,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsE3D,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4EpE,sFAAsF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9E,CAAC"}
1
+ {"version":3,"file":"eventNames.d.mts","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsI1B,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsE3D,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4EpE,sFAAsF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9E,CAAC"}
@@ -212,6 +212,7 @@ export const PERPS_EVENT_VALUE = {
212
212
  ADD_FUNDS_ACTION: 'add_funds_action',
213
213
  CANCEL_ORDER: 'cancel_order',
214
214
  ASSET_DETAIL_SCREEN: 'asset_detail_screen',
215
+ MARKET_INSIGHTS: 'market_insights',
215
216
  // TAT-2449: Geo-block sources for close/modify actions
216
217
  CLOSE_POSITION_ACTION: 'close_position_action',
217
218
  MODIFY_POSITION_ACTION: 'modify_position_action',
@@ -1 +1 @@
1
- {"version":3,"file":"eventNames.mjs","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Perps event property keys and values - matching dashboard requirements exactly\n * Event names are defined in MetaMetrics.events.ts as the single source of truth\n */\n\n/**\n * Event property keys - ensures consistent property naming\n */\nexport const PERPS_EVENT_PROPERTY = {\n // Common properties\n TIMESTAMP: 'timestamp',\n ASSET: 'asset',\n DIRECTION: 'direction',\n SOURCE: 'source',\n TAB_NAME: 'tab_name',\n LOCATION: 'location',\n\n // Trade properties\n LEVERAGE: 'leverage',\n LEVERAGE_USED: 'leverage_used',\n ORDER_SIZE: 'order_size',\n MARGIN_USED: 'margin_used',\n ORDER_TYPE: 'order_type', // lowercase per dashboard\n ORDER_TIMESTAMP: 'order_timestamp',\n LIMIT_PRICE: 'limit_price',\n FEES: 'fees',\n FEE: 'fee',\n METAMASK_FEE: 'metamask_fee',\n METAMASK_FEE_RATE: 'metamask_fee_rate',\n DISCOUNT_PERCENTAGE: 'discount_percentage',\n ESTIMATED_REWARDS: 'estimated_rewards',\n ASSET_PRICE: 'asset_price',\n COMPLETION_DURATION: 'completion_duration',\n\n // Position properties\n OPEN_POSITION: 'open_position',\n OPEN_ORDER: 'open_order',\n OPEN_POSITION_SIZE: 'open_position_size',\n UNREALIZED_PNL_DOLLAR: 'unrealized_dollar_pnl',\n UNREALIZED_PNL_PERCENT: 'unrealized_percent_pnl',\n CLOSE_VALUE: 'close_value',\n CLOSE_PERCENTAGE: 'close_percentage',\n CLOSE_TYPE: 'close_type',\n PERCENTAGE_CLOSED: 'percentage_closed',\n PNL_DOLLAR: 'dollar_pnl',\n PNL_PERCENT: 'percent_pnl',\n RECEIVED_AMOUNT: 'received_amount',\n\n // Order type variations\n CURRENT_ORDER_TYPE: 'current_order_type',\n SELECTED_ORDER_TYPE: 'selected_order_type',\n\n // Funding properties\n SOURCE_CHAIN: 'source_chain',\n SOURCE_ASSET: 'source_asset',\n SOURCE_AMOUNT: 'source_amount',\n DESTINATION_AMOUNT: 'destination_amount',\n NETWORK_FEE: 'network_fee',\n WITHDRAWAL_AMOUNT: 'withdrawal_amount',\n\n // Chart properties\n INTERACTION_TYPE: 'interaction_type',\n TIME_SERIE_SELECTED: 'time_serie_selected',\n CANDLE_PERIOD: 'candle_period',\n\n // Risk management properties\n STOP_LOSS_PRICE: 'stop_loss_price',\n STOP_LOSS_PERCENT: 'stop_loss_percent',\n TAKE_PROFIT_PRICE: 'take_profit_price',\n TAKE_PROFIT_PERCENT: 'take_profit_percent',\n POSITION_SIZE: 'position_size',\n POSITION_AGE: 'position_age',\n LIQUIDATION_DISTANCE_OLD: 'liquidation_distance_old',\n LIQUIDATION_DISTANCE_NEW: 'liquidation_distance_new',\n\n // Notification properties\n NOTIFICATION_TYPE: 'notification_type',\n\n // Other properties\n INPUT_METHOD: 'input_method', // camelCase per requirements\n ACTION_TYPE: 'action_type',\n SETTING_TYPE: 'setting_type',\n FAILURE_REASON: 'failure_reason',\n WARNING_TYPE: 'warning_type',\n WARNING_MESSAGE: 'warning_message',\n ERROR_TYPE: 'error_type',\n ERROR_MESSAGE: 'error_message',\n AB_TESTS: 'ab_tests',\n COMPLETION_DURATION_TUTORIAL: 'completion_duration_tutorial',\n STEPS_VIEWED: 'steps_viewed',\n VIEW_OCCURRENCES: 'view_occurrences',\n AMOUNT_FILLED: 'amount_filled',\n REMAINING_AMOUNT: 'remaining_amount',\n\n // Tutorial carousel navigation properties\n PREVIOUS_SCREEN: 'previous_screen',\n CURRENT_SCREEN: 'current_screen',\n SCREEN_POSITION: 'screen_position',\n TOTAL_SCREENS: 'total_screens',\n NAVIGATION_METHOD: 'navigation_method',\n STATUS: 'status',\n SCREEN_TYPE: 'screen_type',\n SCREEN_NAME: 'screen_name',\n ACTION: 'action',\n RETRY_ATTEMPTS: 'retry_attempts',\n SHOW_BACK_BUTTON: 'show_back_button',\n ATTEMPT_NUMBER: 'attempt_number',\n\n // PnL Hero Card properties\n IMAGE_SELECTED: 'image_selected',\n TAB_NUMBER: 'tab_number',\n\n // A/B testing properties (flat per test for multiple concurrent tests)\n // Only include AB test properties when test is enabled (event not sent when disabled)\n // Button color test (TAT-1937)\n AB_TEST_BUTTON_COLOR: 'ab_test_button_color',\n // Future tests: add as AB_TEST_{TEST_NAME} (no _ENABLED property needed)\n\n // Entry point tracking properties\n BUTTON_CLICKED: 'button_clicked',\n BUTTON_LOCATION: 'button_location',\n\n // Balance properties\n HAS_PERP_BALANCE: 'has_perp_balance',\n\n // Geo-blocking properties (TAT-2337: track geo-blocked withdrawals for monitoring)\n IS_GEO_BLOCKED: 'is_geo_blocked',\n\n // TP/SL differentiation properties\n HAS_TAKE_PROFIT: 'has_take_profit',\n HAS_STOP_LOSS: 'has_stop_loss',\n TAKE_PROFIT_PERCENTAGE: 'take_profit_percentage',\n STOP_LOSS_PERCENTAGE: 'stop_loss_percentage',\n // Watchlist/Favorites properties\n FAVORITES_COUNT: 'favorites_count',\n\n // Scroll tracking properties\n SECTION_VIEWED: 'section_viewed',\n\n // Order value (USD $ value of the order)\n ORDER_VALUE: 'order_value',\n\n // Market category filter (for market list screen)\n MARKET_CATEGORY: 'market_category',\n\n // Pay with any token (PERPS_TRADE_TRANSACTION)\n TRADE_WITH_TOKEN: 'trade_with_token',\n MM_PAY_TOKEN_SELECTED: 'mm_pay_token_selected',\n MM_PAY_NETWORK_SELECTED: 'mm_pay_network_selected',\n\n // Pay-with UI (PERPS_UI_INTERACTION)\n INITIAL_PAYMENT_METHOD: 'initial_payment_method',\n NEW_PAYMENT_METHOD: 'new_payment_method',\n} as const;\n\n/**\n * Property value constants\n */\nexport const PERPS_EVENT_VALUE = {\n DIRECTION: {\n LONG: 'long',\n SHORT: 'short',\n },\n ORDER_TYPE: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n ORDER_TYPE_CAPITALIZED: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n INPUT_METHOD: {\n SLIDER: 'slider',\n KEYBOARD: 'keyboard',\n PRESET: 'preset',\n MANUAL: 'manual',\n PERCENTAGE_BUTTON: 'percentage_button',\n },\n SOURCE: {\n BANNER: 'banner',\n NOTIFICATION: 'notification',\n MAIN_ACTION_BUTTON: 'main_action_button',\n POSITION_TAB: 'position_tab',\n PERP_MARKETS: 'perp_markets',\n DEEPLINK: 'deeplink',\n TUTORIAL: 'tutorial',\n TRADE_SCREEN: 'trade_screen',\n HOMESCREEN_TAB: 'homescreen_tab',\n PERP_ASSET_SCREEN: 'perp_asset_screen',\n PERP_MARKET: 'perp_market',\n PERP_MARKET_SEARCH: 'perp_market_search',\n POSITION_SCREEN: 'position_screen',\n TP_SL_VIEW: 'tp_sl_view',\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN_NO_FUNDS: 'perps_asset_screen_no_funds',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n HOME_SECTION: 'home_section',\n TOOLTIP: 'tooltip',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO_BUTTON: 'crypto_button',\n STOCKS_BUTTON: 'stocks_button',\n CLOSE_TOAST: 'close_toast',\n // Perps home section sources (for navigation tracking)\n PERPS_HOME_POSITION: 'perps_home_position',\n PERPS_HOME_ORDERS: 'perps_home_orders',\n PERPS_HOME_WATCHLIST: 'perps_home_watchlist',\n PERPS_HOME_EXPLORE_CRYPTO: 'perps_home_explore_crypto',\n PERPS_HOME_EXPLORE_STOCKS: 'perps_home_explore_stocks',\n PERPS_HOME_ACTIVITY: 'perps_home_activity',\n // Explore/Trending page source\n EXPLORE: 'explore',\n // Market list tab sources\n PERPS_MARKET_LIST_ALL: 'perps_market_list_all',\n PERPS_MARKET_LIST_CRYPTO: 'perps_market_list_crypto',\n PERPS_MARKET_LIST_STOCKS: 'perps_market_list_stocks',\n // Other navigation sources\n PERPS_TAB: 'perps_tab',\n WALLET_MAIN_ACTION_MENU: 'wallet_main_action_menu',\n PUSH_NOTIFICATION: 'push_notification',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n // Position management sources\n OPEN_POSITION: 'open_position',\n POSITION_CLOSE_TOAST: 'position_close_toast',\n TRADE_DETAILS: 'trade_details',\n // Geo-block trigger sources (for tracking what action was blocked)\n DEPOSIT_BUTTON: 'deposit_button',\n WITHDRAW_BUTTON: 'withdraw_button',\n TRADE_ACTION: 'trade_action',\n ADD_FUNDS_ACTION: 'add_funds_action',\n CANCEL_ORDER: 'cancel_order',\n ASSET_DETAIL_SCREEN: 'asset_detail_screen',\n // TAT-2449: Geo-block sources for close/modify actions\n CLOSE_POSITION_ACTION: 'close_position_action',\n MODIFY_POSITION_ACTION: 'modify_position_action',\n // Geo-block sources for order book actions\n ORDER_BOOK_LONG_BUTTON: 'order_book_long_button',\n ORDER_BOOK_SHORT_BUTTON: 'order_book_short_button',\n ORDER_BOOK_CLOSE_BUTTON: 'order_book_close_button',\n ORDER_BOOK_MODIFY_BUTTON: 'order_book_modify_button',\n // Geo-block sources for position management actions\n AUTO_CLOSE_ACTION: 'auto_close_action',\n ADJUST_MARGIN_ACTION: 'adjust_margin_action',\n STOP_LOSS_PROMPT_ADD_MARGIN: 'stop_loss_prompt_add_margin',\n STOP_LOSS_PROMPT_SET_SL: 'stop_loss_prompt_set_sl',\n // Geo-block sources for bulk actions\n CLOSE_ALL_POSITIONS_BUTTON: 'close_all_positions_button',\n CANCEL_ALL_ORDERS_BUTTON: 'cancel_all_orders_button',\n },\n WARNING_TYPE: {\n MINIMUM_DEPOSIT: 'minimum_deposit',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n },\n ERROR_TYPE: {\n NETWORK: 'network',\n APP_CRASH: 'app_crash',\n BACKEND: 'backend',\n VALIDATION: 'validation',\n WARNING: 'warning',\n },\n // Standardized error message keys for PERP_ERROR events\n // These should be used instead of localized strings for consistent analytics\n ERROR_MESSAGE_KEY: {\n ORDER_CHANGED_FROM_LIMIT_TO_MARKET: 'order_changed_from_limit_to_market',\n OPEN_CROSS_MARGIN_POSITION_DETECTED: 'open_cross_margin_position_detected',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n ORDER_FAILED: 'order_failed',\n GEO_RESTRICTION: 'geo_restriction',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n MAXIMUM_LEVERAGE_EXCEEDED: 'maximum_leverage_exceeded',\n PRICE_DEVIATION_TOO_HIGH: 'price_deviation_too_high',\n MARKET_AT_CAPACITY: 'market_at_capacity',\n NETWORK_ERROR: 'network_error',\n CONNECTION_FAILED: 'connection_failed',\n POSITION_UPDATE_FAILED: 'position_update_failed',\n TP_SL_UPDATE_FAILED: 'tp_sl_update_failed',\n MARGIN_UPDATE_FAILED: 'margin_update_failed',\n UNKNOWN: 'unknown',\n },\n INTERACTION_TYPE: {\n TAP: 'tap',\n ZOOM: 'zoom',\n SLIDE: 'slide',\n SEARCH_CLICKED: 'search_clicked',\n ORDER_TYPE_VIEWED: 'order_type_viewed',\n ORDER_TYPE_SELECTED: 'order_type_selected',\n /** @deprecated Use LEVERAGE_CHANGED instead for clarity */\n SETTING_CHANGED: 'setting_changed',\n LEVERAGE_CHANGED: 'leverage_changed',\n TUTORIAL_STARTED: 'tutorial_started',\n TUTORIAL_COMPLETED: 'tutorial_completed',\n TUTORIAL_NAVIGATION: 'tutorial_navigation',\n CANDLE_PERIOD_VIEWED: 'candle_period_viewed',\n CANDLE_PERIOD_CHANGED: 'candle_period_changed',\n FAVORITE_TOGGLED: 'favorite_toggled',\n BUTTON_CLICKED: 'button_clicked',\n // Position management interactions\n CONTACT_SUPPORT: 'contact_support',\n STOP_LOSS_ONE_CLICK_PROMPT: 'stop_loss_one_click_prompt',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n INCREASE_EXPOSURE: 'increase_exposure',\n REDUCE_EXPOSURE: 'reduce_exposure',\n FLIP_POSITION: 'flip_position',\n // Hero card interactions\n DISPLAY_HERO_CARD: 'display_hero_card',\n SHARE_PNL_HERO_CARD: 'share_pnl_hero_card',\n // Chart interactions\n FULL_SCREEN_CHART: 'full_screen_chart',\n // Pay-with interactions\n PAYMENT_TOKEN_SELECTOR: 'payment_token_selector',\n PAYMENT_METHOD_CHANGED: 'payment_method_changed',\n // Deposit + order (pay-with token) cancel\n CANCEL_TRADE_WITH_TOKEN: 'cancel_trade_with_token',\n },\n ACTION_TYPE: {\n START_TRADING: 'start_trading',\n SKIP: 'skip',\n STOP_LOSS_SET: 'stop_loss_set',\n TAKE_PROFIT_SET: 'take_profit_set',\n ADL_LEARN_MORE: 'adl_learn_more',\n LEARN_MORE: 'learn_more',\n FAVORITE_MARKET: 'favorite_market',\n UNFAVORITE_MARKET: 'unfavorite_market',\n },\n NOTIFICATION_TYPE: {\n POSITION_LIQUIDATED: 'position_liquidated',\n TP_EXECUTED: 'tp_executed',\n SL_EXECUTED: 'sl_executed',\n LIMIT_ORDER_EXECUTED: 'limit_order_executed',\n },\n CLOSE_TYPE: {\n FULL: 'full',\n PARTIAL: 'partial',\n },\n NAVIGATION_METHOD: {\n SWIPE: 'swipe',\n CONTINUE_BUTTON: 'continue_button',\n PROGRESS_DOT: 'progress_dot',\n },\n STATUS: {\n VIEWED: 'viewed',\n STARTED: 'started',\n COMPLETED: 'completed',\n INITIATED: 'initiated',\n SUBMITTED: 'submitted',\n EXECUTED: 'executed',\n PARTIALLY_FILLED: 'partially_filled',\n FAILED: 'failed',\n SUCCESS: 'success',\n },\n SCREEN_TYPE: {\n MARKETS: 'markets',\n MARKET_LIST: 'market_list',\n ASSET_DETAILS: 'asset_details',\n TRADING: 'trading',\n /** @deprecated Use PERPS_HOME or WALLET_HOME_PERPS_TAB instead */\n HOMESCREEN: 'homescreen',\n PERPS_HOME: 'perps_home',\n WALLET_HOME_PERPS_TAB: 'wallet_home_perps_tab',\n POSITION_CLOSE: 'position_close',\n LEVERAGE: 'leverage',\n TUTORIAL: 'tutorial',\n WITHDRAWAL: 'withdrawal',\n TP_SL: 'tp_sl',\n CREATE_TPSL: 'create_tpsl',\n EDIT_TPSL: 'edit_tpsl',\n DEPOSIT_INPUT: 'deposit_input',\n DEPOSIT_REVIEW: 'deposit_review',\n CLOSE_ALL_POSITIONS: 'close_all_positions',\n CANCEL_ALL_ORDERS: 'cancel_all_orders',\n PNL_HERO_CARD: 'pnl_hero_card',\n ORDER_BOOK: 'order_book',\n ERROR: 'error',\n // Market list tab screen types\n MARKET_LIST_ALL: 'market_list_all',\n MARKET_LIST_CRYPTO: 'market_list_crypto',\n MARKET_LIST_STOCKS: 'market_list_stocks',\n // Additional screens\n FULL_SCREEN_CHART: 'full_screen_chart',\n ACTIVITY: 'activity',\n INCREASE_EXPOSURE: 'increase_exposure',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n GEO_BLOCK_NOTIF: 'geo_block_notif',\n COMPLIANCE_BLOCK_NOTIF: 'compliance_block_notif',\n // Deposit + order (pay-with token) cancel toast\n CANCEL_TRADE_WITH_TOKEN_TOAST: 'cancel_trade_with_token_toast',\n },\n SETTING_TYPE: {\n LEVERAGE: 'leverage',\n },\n SCREEN_NAME: {\n CONNECTION_ERROR: 'connection_error',\n PERPS_HERO_CARD: 'perps_hero_card',\n PERPS_ACTIVITY_HISTORY: 'perps_activity_history',\n PERPS_HOME: 'perps_home',\n PERPS_MARKET_DETAILS: 'perps_market_details',\n PERPS_ORDER: 'perps_order',\n },\n ACTION: {\n CONNECTION_RETRY: 'connection_retry',\n CONNECTION_GO_BACK: 'connection_go_back',\n SHARE: 'share',\n // Risk management actions\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n EDIT_TP_SL: 'edit_tp_sl',\n CREATE_TP_SL: 'create_tp_sl',\n // TP/SL specific actions for risk management events\n TP: 'tp',\n SL: 'sl',\n TPSL: 'tpsl',\n // Trade transaction actions - differentiates new position from adding to existing\n CREATE_POSITION: 'create_position',\n INCREASE_EXPOSURE: 'increase_exposure',\n // Flip position actions with direction specificity\n FLIP_LONG_TO_SHORT: 'flip_long_to_short',\n FLIP_SHORT_TO_LONG: 'flip_short_to_long',\n },\n // Risk management sources\n RISK_MANAGEMENT_SOURCE: {\n TRADE_SCREEN: 'trade_screen',\n POSITION_SCREEN: 'position_screen',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n },\n PERPS_HISTORY_TABS: {\n TRADES: 'trades',\n ORDERS: 'orders',\n FUNDING: 'funding',\n DEPOSITS: 'deposits',\n },\n /** Value for mm_pay_token_selected when user pays with Perps balance (not a token) */\n MM_PAY_TOKEN: {\n PERPS_BALANCE: 'Perps Balance',\n },\n // A/B testing values\n AB_TEST: {\n // Test IDs\n BUTTON_COLOR_TEST: 'button_color_test',\n // Button color test variants\n CONTROL: 'control',\n MONOCHROME: 'monochrome',\n },\n BUTTON_CLICKED: {\n DEPOSIT: 'deposit',\n WITHDRAW: 'withdraw',\n PERPS_HOME: 'perps_home',\n TUTORIAL: 'tutorial',\n TOOLTIP: 'tooltip',\n MARKET_LIST: 'market_list',\n OPEN_POSITION: 'open_position',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO: 'crypto',\n STOCKS: 'stocks',\n COMMODITIES: 'commodities',\n FOREX: 'forex',\n NEW: 'new',\n GIVE_FEEDBACK: 'give_feedback',\n },\n BUTTON_LOCATION: {\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN: 'perps_asset_screen',\n PERPS_TAB: 'perps_tab',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n MARKET_LIST: 'market_list',\n SCREEN: 'screen',\n TOOLTIP: 'tooltip',\n PERP_MARKET_DETAILS: 'perp_market_details',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n },\n} as const;\n"]}
1
+ {"version":3,"file":"eventNames.mjs","sourceRoot":"","sources":["../../src/constants/eventNames.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Perps event property keys and values - matching dashboard requirements exactly\n * Event names are defined in MetaMetrics.events.ts as the single source of truth\n */\n\n/**\n * Event property keys - ensures consistent property naming\n */\nexport const PERPS_EVENT_PROPERTY = {\n // Common properties\n TIMESTAMP: 'timestamp',\n ASSET: 'asset',\n DIRECTION: 'direction',\n SOURCE: 'source',\n TAB_NAME: 'tab_name',\n LOCATION: 'location',\n\n // Trade properties\n LEVERAGE: 'leverage',\n LEVERAGE_USED: 'leverage_used',\n ORDER_SIZE: 'order_size',\n MARGIN_USED: 'margin_used',\n ORDER_TYPE: 'order_type', // lowercase per dashboard\n ORDER_TIMESTAMP: 'order_timestamp',\n LIMIT_PRICE: 'limit_price',\n FEES: 'fees',\n FEE: 'fee',\n METAMASK_FEE: 'metamask_fee',\n METAMASK_FEE_RATE: 'metamask_fee_rate',\n DISCOUNT_PERCENTAGE: 'discount_percentage',\n ESTIMATED_REWARDS: 'estimated_rewards',\n ASSET_PRICE: 'asset_price',\n COMPLETION_DURATION: 'completion_duration',\n\n // Position properties\n OPEN_POSITION: 'open_position',\n OPEN_ORDER: 'open_order',\n OPEN_POSITION_SIZE: 'open_position_size',\n UNREALIZED_PNL_DOLLAR: 'unrealized_dollar_pnl',\n UNREALIZED_PNL_PERCENT: 'unrealized_percent_pnl',\n CLOSE_VALUE: 'close_value',\n CLOSE_PERCENTAGE: 'close_percentage',\n CLOSE_TYPE: 'close_type',\n PERCENTAGE_CLOSED: 'percentage_closed',\n PNL_DOLLAR: 'dollar_pnl',\n PNL_PERCENT: 'percent_pnl',\n RECEIVED_AMOUNT: 'received_amount',\n\n // Order type variations\n CURRENT_ORDER_TYPE: 'current_order_type',\n SELECTED_ORDER_TYPE: 'selected_order_type',\n\n // Funding properties\n SOURCE_CHAIN: 'source_chain',\n SOURCE_ASSET: 'source_asset',\n SOURCE_AMOUNT: 'source_amount',\n DESTINATION_AMOUNT: 'destination_amount',\n NETWORK_FEE: 'network_fee',\n WITHDRAWAL_AMOUNT: 'withdrawal_amount',\n\n // Chart properties\n INTERACTION_TYPE: 'interaction_type',\n TIME_SERIE_SELECTED: 'time_serie_selected',\n CANDLE_PERIOD: 'candle_period',\n\n // Risk management properties\n STOP_LOSS_PRICE: 'stop_loss_price',\n STOP_LOSS_PERCENT: 'stop_loss_percent',\n TAKE_PROFIT_PRICE: 'take_profit_price',\n TAKE_PROFIT_PERCENT: 'take_profit_percent',\n POSITION_SIZE: 'position_size',\n POSITION_AGE: 'position_age',\n LIQUIDATION_DISTANCE_OLD: 'liquidation_distance_old',\n LIQUIDATION_DISTANCE_NEW: 'liquidation_distance_new',\n\n // Notification properties\n NOTIFICATION_TYPE: 'notification_type',\n\n // Other properties\n INPUT_METHOD: 'input_method', // camelCase per requirements\n ACTION_TYPE: 'action_type',\n SETTING_TYPE: 'setting_type',\n FAILURE_REASON: 'failure_reason',\n WARNING_TYPE: 'warning_type',\n WARNING_MESSAGE: 'warning_message',\n ERROR_TYPE: 'error_type',\n ERROR_MESSAGE: 'error_message',\n AB_TESTS: 'ab_tests',\n COMPLETION_DURATION_TUTORIAL: 'completion_duration_tutorial',\n STEPS_VIEWED: 'steps_viewed',\n VIEW_OCCURRENCES: 'view_occurrences',\n AMOUNT_FILLED: 'amount_filled',\n REMAINING_AMOUNT: 'remaining_amount',\n\n // Tutorial carousel navigation properties\n PREVIOUS_SCREEN: 'previous_screen',\n CURRENT_SCREEN: 'current_screen',\n SCREEN_POSITION: 'screen_position',\n TOTAL_SCREENS: 'total_screens',\n NAVIGATION_METHOD: 'navigation_method',\n STATUS: 'status',\n SCREEN_TYPE: 'screen_type',\n SCREEN_NAME: 'screen_name',\n ACTION: 'action',\n RETRY_ATTEMPTS: 'retry_attempts',\n SHOW_BACK_BUTTON: 'show_back_button',\n ATTEMPT_NUMBER: 'attempt_number',\n\n // PnL Hero Card properties\n IMAGE_SELECTED: 'image_selected',\n TAB_NUMBER: 'tab_number',\n\n // A/B testing properties (flat per test for multiple concurrent tests)\n // Only include AB test properties when test is enabled (event not sent when disabled)\n // Button color test (TAT-1937)\n AB_TEST_BUTTON_COLOR: 'ab_test_button_color',\n // Future tests: add as AB_TEST_{TEST_NAME} (no _ENABLED property needed)\n\n // Entry point tracking properties\n BUTTON_CLICKED: 'button_clicked',\n BUTTON_LOCATION: 'button_location',\n\n // Balance properties\n HAS_PERP_BALANCE: 'has_perp_balance',\n\n // Geo-blocking properties (TAT-2337: track geo-blocked withdrawals for monitoring)\n IS_GEO_BLOCKED: 'is_geo_blocked',\n\n // TP/SL differentiation properties\n HAS_TAKE_PROFIT: 'has_take_profit',\n HAS_STOP_LOSS: 'has_stop_loss',\n TAKE_PROFIT_PERCENTAGE: 'take_profit_percentage',\n STOP_LOSS_PERCENTAGE: 'stop_loss_percentage',\n // Watchlist/Favorites properties\n FAVORITES_COUNT: 'favorites_count',\n\n // Scroll tracking properties\n SECTION_VIEWED: 'section_viewed',\n\n // Order value (USD $ value of the order)\n ORDER_VALUE: 'order_value',\n\n // Market category filter (for market list screen)\n MARKET_CATEGORY: 'market_category',\n\n // Pay with any token (PERPS_TRADE_TRANSACTION)\n TRADE_WITH_TOKEN: 'trade_with_token',\n MM_PAY_TOKEN_SELECTED: 'mm_pay_token_selected',\n MM_PAY_NETWORK_SELECTED: 'mm_pay_network_selected',\n\n // Pay-with UI (PERPS_UI_INTERACTION)\n INITIAL_PAYMENT_METHOD: 'initial_payment_method',\n NEW_PAYMENT_METHOD: 'new_payment_method',\n} as const;\n\n/**\n * Property value constants\n */\nexport const PERPS_EVENT_VALUE = {\n DIRECTION: {\n LONG: 'long',\n SHORT: 'short',\n },\n ORDER_TYPE: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n ORDER_TYPE_CAPITALIZED: {\n MARKET: 'market',\n LIMIT: 'limit',\n },\n INPUT_METHOD: {\n SLIDER: 'slider',\n KEYBOARD: 'keyboard',\n PRESET: 'preset',\n MANUAL: 'manual',\n PERCENTAGE_BUTTON: 'percentage_button',\n },\n SOURCE: {\n BANNER: 'banner',\n NOTIFICATION: 'notification',\n MAIN_ACTION_BUTTON: 'main_action_button',\n POSITION_TAB: 'position_tab',\n PERP_MARKETS: 'perp_markets',\n DEEPLINK: 'deeplink',\n TUTORIAL: 'tutorial',\n TRADE_SCREEN: 'trade_screen',\n HOMESCREEN_TAB: 'homescreen_tab',\n PERP_ASSET_SCREEN: 'perp_asset_screen',\n PERP_MARKET: 'perp_market',\n PERP_MARKET_SEARCH: 'perp_market_search',\n POSITION_SCREEN: 'position_screen',\n TP_SL_VIEW: 'tp_sl_view',\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN_NO_FUNDS: 'perps_asset_screen_no_funds',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n HOME_SECTION: 'home_section',\n TOOLTIP: 'tooltip',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO_BUTTON: 'crypto_button',\n STOCKS_BUTTON: 'stocks_button',\n CLOSE_TOAST: 'close_toast',\n // Perps home section sources (for navigation tracking)\n PERPS_HOME_POSITION: 'perps_home_position',\n PERPS_HOME_ORDERS: 'perps_home_orders',\n PERPS_HOME_WATCHLIST: 'perps_home_watchlist',\n PERPS_HOME_EXPLORE_CRYPTO: 'perps_home_explore_crypto',\n PERPS_HOME_EXPLORE_STOCKS: 'perps_home_explore_stocks',\n PERPS_HOME_ACTIVITY: 'perps_home_activity',\n // Explore/Trending page source\n EXPLORE: 'explore',\n // Market list tab sources\n PERPS_MARKET_LIST_ALL: 'perps_market_list_all',\n PERPS_MARKET_LIST_CRYPTO: 'perps_market_list_crypto',\n PERPS_MARKET_LIST_STOCKS: 'perps_market_list_stocks',\n // Other navigation sources\n PERPS_TAB: 'perps_tab',\n WALLET_MAIN_ACTION_MENU: 'wallet_main_action_menu',\n PUSH_NOTIFICATION: 'push_notification',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n // Position management sources\n OPEN_POSITION: 'open_position',\n POSITION_CLOSE_TOAST: 'position_close_toast',\n TRADE_DETAILS: 'trade_details',\n // Geo-block trigger sources (for tracking what action was blocked)\n DEPOSIT_BUTTON: 'deposit_button',\n WITHDRAW_BUTTON: 'withdraw_button',\n TRADE_ACTION: 'trade_action',\n ADD_FUNDS_ACTION: 'add_funds_action',\n CANCEL_ORDER: 'cancel_order',\n ASSET_DETAIL_SCREEN: 'asset_detail_screen',\n MARKET_INSIGHTS: 'market_insights',\n // TAT-2449: Geo-block sources for close/modify actions\n CLOSE_POSITION_ACTION: 'close_position_action',\n MODIFY_POSITION_ACTION: 'modify_position_action',\n // Geo-block sources for order book actions\n ORDER_BOOK_LONG_BUTTON: 'order_book_long_button',\n ORDER_BOOK_SHORT_BUTTON: 'order_book_short_button',\n ORDER_BOOK_CLOSE_BUTTON: 'order_book_close_button',\n ORDER_BOOK_MODIFY_BUTTON: 'order_book_modify_button',\n // Geo-block sources for position management actions\n AUTO_CLOSE_ACTION: 'auto_close_action',\n ADJUST_MARGIN_ACTION: 'adjust_margin_action',\n STOP_LOSS_PROMPT_ADD_MARGIN: 'stop_loss_prompt_add_margin',\n STOP_LOSS_PROMPT_SET_SL: 'stop_loss_prompt_set_sl',\n // Geo-block sources for bulk actions\n CLOSE_ALL_POSITIONS_BUTTON: 'close_all_positions_button',\n CANCEL_ALL_ORDERS_BUTTON: 'cancel_all_orders_button',\n },\n WARNING_TYPE: {\n MINIMUM_DEPOSIT: 'minimum_deposit',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n },\n ERROR_TYPE: {\n NETWORK: 'network',\n APP_CRASH: 'app_crash',\n BACKEND: 'backend',\n VALIDATION: 'validation',\n WARNING: 'warning',\n },\n // Standardized error message keys for PERP_ERROR events\n // These should be used instead of localized strings for consistent analytics\n ERROR_MESSAGE_KEY: {\n ORDER_CHANGED_FROM_LIMIT_TO_MARKET: 'order_changed_from_limit_to_market',\n OPEN_CROSS_MARGIN_POSITION_DETECTED: 'open_cross_margin_position_detected',\n INSUFFICIENT_BALANCE: 'insufficient_balance',\n ORDER_FAILED: 'order_failed',\n GEO_RESTRICTION: 'geo_restriction',\n MINIMUM_ORDER_SIZE: 'minimum_order_size',\n MAXIMUM_LEVERAGE_EXCEEDED: 'maximum_leverage_exceeded',\n PRICE_DEVIATION_TOO_HIGH: 'price_deviation_too_high',\n MARKET_AT_CAPACITY: 'market_at_capacity',\n NETWORK_ERROR: 'network_error',\n CONNECTION_FAILED: 'connection_failed',\n POSITION_UPDATE_FAILED: 'position_update_failed',\n TP_SL_UPDATE_FAILED: 'tp_sl_update_failed',\n MARGIN_UPDATE_FAILED: 'margin_update_failed',\n UNKNOWN: 'unknown',\n },\n INTERACTION_TYPE: {\n TAP: 'tap',\n ZOOM: 'zoom',\n SLIDE: 'slide',\n SEARCH_CLICKED: 'search_clicked',\n ORDER_TYPE_VIEWED: 'order_type_viewed',\n ORDER_TYPE_SELECTED: 'order_type_selected',\n /** @deprecated Use LEVERAGE_CHANGED instead for clarity */\n SETTING_CHANGED: 'setting_changed',\n LEVERAGE_CHANGED: 'leverage_changed',\n TUTORIAL_STARTED: 'tutorial_started',\n TUTORIAL_COMPLETED: 'tutorial_completed',\n TUTORIAL_NAVIGATION: 'tutorial_navigation',\n CANDLE_PERIOD_VIEWED: 'candle_period_viewed',\n CANDLE_PERIOD_CHANGED: 'candle_period_changed',\n FAVORITE_TOGGLED: 'favorite_toggled',\n BUTTON_CLICKED: 'button_clicked',\n // Position management interactions\n CONTACT_SUPPORT: 'contact_support',\n STOP_LOSS_ONE_CLICK_PROMPT: 'stop_loss_one_click_prompt',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n INCREASE_EXPOSURE: 'increase_exposure',\n REDUCE_EXPOSURE: 'reduce_exposure',\n FLIP_POSITION: 'flip_position',\n // Hero card interactions\n DISPLAY_HERO_CARD: 'display_hero_card',\n SHARE_PNL_HERO_CARD: 'share_pnl_hero_card',\n // Chart interactions\n FULL_SCREEN_CHART: 'full_screen_chart',\n // Pay-with interactions\n PAYMENT_TOKEN_SELECTOR: 'payment_token_selector',\n PAYMENT_METHOD_CHANGED: 'payment_method_changed',\n // Deposit + order (pay-with token) cancel\n CANCEL_TRADE_WITH_TOKEN: 'cancel_trade_with_token',\n },\n ACTION_TYPE: {\n START_TRADING: 'start_trading',\n SKIP: 'skip',\n STOP_LOSS_SET: 'stop_loss_set',\n TAKE_PROFIT_SET: 'take_profit_set',\n ADL_LEARN_MORE: 'adl_learn_more',\n LEARN_MORE: 'learn_more',\n FAVORITE_MARKET: 'favorite_market',\n UNFAVORITE_MARKET: 'unfavorite_market',\n },\n NOTIFICATION_TYPE: {\n POSITION_LIQUIDATED: 'position_liquidated',\n TP_EXECUTED: 'tp_executed',\n SL_EXECUTED: 'sl_executed',\n LIMIT_ORDER_EXECUTED: 'limit_order_executed',\n },\n CLOSE_TYPE: {\n FULL: 'full',\n PARTIAL: 'partial',\n },\n NAVIGATION_METHOD: {\n SWIPE: 'swipe',\n CONTINUE_BUTTON: 'continue_button',\n PROGRESS_DOT: 'progress_dot',\n },\n STATUS: {\n VIEWED: 'viewed',\n STARTED: 'started',\n COMPLETED: 'completed',\n INITIATED: 'initiated',\n SUBMITTED: 'submitted',\n EXECUTED: 'executed',\n PARTIALLY_FILLED: 'partially_filled',\n FAILED: 'failed',\n SUCCESS: 'success',\n },\n SCREEN_TYPE: {\n MARKETS: 'markets',\n MARKET_LIST: 'market_list',\n ASSET_DETAILS: 'asset_details',\n TRADING: 'trading',\n /** @deprecated Use PERPS_HOME or WALLET_HOME_PERPS_TAB instead */\n HOMESCREEN: 'homescreen',\n PERPS_HOME: 'perps_home',\n WALLET_HOME_PERPS_TAB: 'wallet_home_perps_tab',\n POSITION_CLOSE: 'position_close',\n LEVERAGE: 'leverage',\n TUTORIAL: 'tutorial',\n WITHDRAWAL: 'withdrawal',\n TP_SL: 'tp_sl',\n CREATE_TPSL: 'create_tpsl',\n EDIT_TPSL: 'edit_tpsl',\n DEPOSIT_INPUT: 'deposit_input',\n DEPOSIT_REVIEW: 'deposit_review',\n CLOSE_ALL_POSITIONS: 'close_all_positions',\n CANCEL_ALL_ORDERS: 'cancel_all_orders',\n PNL_HERO_CARD: 'pnl_hero_card',\n ORDER_BOOK: 'order_book',\n ERROR: 'error',\n // Market list tab screen types\n MARKET_LIST_ALL: 'market_list_all',\n MARKET_LIST_CRYPTO: 'market_list_crypto',\n MARKET_LIST_STOCKS: 'market_list_stocks',\n // Additional screens\n FULL_SCREEN_CHART: 'full_screen_chart',\n ACTIVITY: 'activity',\n INCREASE_EXPOSURE: 'increase_exposure',\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n GEO_BLOCK_NOTIF: 'geo_block_notif',\n COMPLIANCE_BLOCK_NOTIF: 'compliance_block_notif',\n // Deposit + order (pay-with token) cancel toast\n CANCEL_TRADE_WITH_TOKEN_TOAST: 'cancel_trade_with_token_toast',\n },\n SETTING_TYPE: {\n LEVERAGE: 'leverage',\n },\n SCREEN_NAME: {\n CONNECTION_ERROR: 'connection_error',\n PERPS_HERO_CARD: 'perps_hero_card',\n PERPS_ACTIVITY_HISTORY: 'perps_activity_history',\n PERPS_HOME: 'perps_home',\n PERPS_MARKET_DETAILS: 'perps_market_details',\n PERPS_ORDER: 'perps_order',\n },\n ACTION: {\n CONNECTION_RETRY: 'connection_retry',\n CONNECTION_GO_BACK: 'connection_go_back',\n SHARE: 'share',\n // Risk management actions\n ADD_MARGIN: 'add_margin',\n REMOVE_MARGIN: 'remove_margin',\n EDIT_TP_SL: 'edit_tp_sl',\n CREATE_TP_SL: 'create_tp_sl',\n // TP/SL specific actions for risk management events\n TP: 'tp',\n SL: 'sl',\n TPSL: 'tpsl',\n // Trade transaction actions - differentiates new position from adding to existing\n CREATE_POSITION: 'create_position',\n INCREASE_EXPOSURE: 'increase_exposure',\n // Flip position actions with direction specificity\n FLIP_LONG_TO_SHORT: 'flip_long_to_short',\n FLIP_SHORT_TO_LONG: 'flip_short_to_long',\n },\n // Risk management sources\n RISK_MANAGEMENT_SOURCE: {\n TRADE_SCREEN: 'trade_screen',\n POSITION_SCREEN: 'position_screen',\n STOP_LOSS_PROMPT_BANNER: 'stop_loss_prompt_banner',\n },\n PERPS_HISTORY_TABS: {\n TRADES: 'trades',\n ORDERS: 'orders',\n FUNDING: 'funding',\n DEPOSITS: 'deposits',\n },\n /** Value for mm_pay_token_selected when user pays with Perps balance (not a token) */\n MM_PAY_TOKEN: {\n PERPS_BALANCE: 'Perps Balance',\n },\n // A/B testing values\n AB_TEST: {\n // Test IDs\n BUTTON_COLOR_TEST: 'button_color_test',\n // Button color test variants\n CONTROL: 'control',\n MONOCHROME: 'monochrome',\n },\n BUTTON_CLICKED: {\n DEPOSIT: 'deposit',\n WITHDRAW: 'withdraw',\n PERPS_HOME: 'perps_home',\n TUTORIAL: 'tutorial',\n TOOLTIP: 'tooltip',\n MARKET_LIST: 'market_list',\n OPEN_POSITION: 'open_position',\n MAGNIFYING_GLASS: 'magnifying_glass',\n CRYPTO: 'crypto',\n STOCKS: 'stocks',\n COMMODITIES: 'commodities',\n FOREX: 'forex',\n NEW: 'new',\n GIVE_FEEDBACK: 'give_feedback',\n },\n BUTTON_LOCATION: {\n PERPS_HOME: 'perps_home',\n PERPS_TUTORIAL: 'perps_tutorial',\n PERPS_HOME_EMPTY_STATE: 'perps_home_empty_state',\n PERPS_ASSET_SCREEN: 'perps_asset_screen',\n PERPS_TAB: 'perps_tab',\n TRADE_MENU_ACTION: 'trade_menu_action',\n WALLET_HOME: 'wallet_home',\n MARKET_LIST: 'market_list',\n SCREEN: 'screen',\n TOOLTIP: 'tooltip',\n PERP_MARKET_DETAILS: 'perp_market_details',\n ORDER_BOOK: 'order_book',\n FULL_SCREEN_CHART: 'full_screen_chart',\n },\n} as const;\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROVIDER_CONFIG = exports.MARKET_SORTING_CONFIG = exports.DECIMAL_PRECISION_CONFIG = exports.DATA_LAKE_API_CONFIG = exports.MARGIN_ADJUSTMENT_CONFIG = exports.CLOSE_POSITION_CONFIG = exports.HYPERLIQUID_ORDER_LIMITS = exports.TP_SL_CONFIG = exports.PERFORMANCE_CONFIG = exports.MAX_ORDER_MARGIN_BUFFER = exports.ORDER_SLIPPAGE_CONFIG = exports.VALIDATION_THRESHOLDS = exports.WITHDRAWAL_CONSTANTS = exports.PERPS_CONSTANTS = exports.ZERO_BALANCE = exports.ZERO_ADDRESS = void 0;
3
+ exports.buildProviderCacheKey = exports.getProviderNetworkKey = exports.PERPS_DISK_CACHE_THROTTLE_MS = exports.PERPS_DISK_CACHE_USER_DATA = exports.PERPS_DISK_CACHE_MARKETS = exports.PROVIDER_CONFIG = exports.FUNDING_RATE_CONFIG = exports.MARKET_SORTING_CONFIG = exports.DECIMAL_PRECISION_CONFIG = exports.DATA_LAKE_API_CONFIG = exports.MARGIN_ADJUSTMENT_CONFIG = exports.CLOSE_POSITION_CONFIG = exports.HYPERLIQUID_ORDER_LIMITS = exports.TP_SL_CONFIG = exports.PERFORMANCE_CONFIG = exports.MAX_ORDER_MARGIN_BUFFER = exports.ORDER_SLIPPAGE_CONFIG = exports.VALIDATION_THRESHOLDS = exports.WITHDRAWAL_CONSTANTS = exports.PERPS_CONSTANTS = exports.ZERO_BALANCE = exports.ZERO_ADDRESS = void 0;
4
4
  /**
5
5
  * Perps feature constants - Controller layer (portable)
6
6
  *
@@ -30,6 +30,7 @@ exports.PERPS_CONSTANTS = {
30
30
  ConnectionAttemptTimeoutMs: 30000, // 30 seconds timeout for connection attempts to prevent indefinite hanging
31
31
  WebsocketPingTimeoutMs: 5000, // 5 seconds timeout for WebSocket health check ping
32
32
  ConnectRetryDelayMs: 200, // Delay before retrying connect() when connection isn't ready yet
33
+ ForegroundPingRetryDelayMs: 500, // Delay before retrying ping in resumeFromForeground — JS thread may be sluggish right after foregrounding
33
34
  ReconnectionCleanupDelayMs: 500, // Platform-agnostic delay to ensure WebSocket is ready
34
35
  ReconnectionDelayAndroidMs: 300, // Android-specific reconnection delay for better reliability on slower devices
35
36
  ReconnectionDelayIosMs: 100, // iOS-specific reconnection delay for optimal performance
@@ -297,6 +298,18 @@ exports.MARKET_SORTING_CONFIG = {
297
298
  },
298
299
  ],
299
300
  };
301
+ /**
302
+ * Funding rate display configuration
303
+ * Controls how funding rates are formatted and displayed
304
+ */
305
+ exports.FUNDING_RATE_CONFIG = {
306
+ // Number of decimal places to display for funding rates
307
+ Decimals: 4,
308
+ // Default display value when funding rate is zero or unavailable
309
+ ZeroDisplay: '0.0000%',
310
+ // Multiplier to convert decimal funding rate to percentage
311
+ PercentageMultiplier: 100,
312
+ };
300
313
  /**
301
314
  * Provider configuration for multi-provider support
302
315
  */
@@ -306,4 +319,36 @@ exports.PROVIDER_CONFIG = {
306
319
  /** Force MYX to testnet only (mainnet credentials not yet available) */
307
320
  MYX_TESTNET_ONLY: false,
308
321
  };
322
+ // Disk-backed cold-start cache keys and throttle interval
323
+ exports.PERPS_DISK_CACHE_MARKETS = 'PERPS_DISK_CACHE_MARKETS';
324
+ exports.PERPS_DISK_CACHE_USER_DATA = 'PERPS_DISK_CACHE_USER_DATA';
325
+ exports.PERPS_DISK_CACHE_THROTTLE_MS = 30000;
326
+ /**
327
+ * Build the standard provider:network cache key from controller state.
328
+ *
329
+ * @param state - Controller state containing provider and network info.
330
+ * @param state.activeProvider - Active perps provider name.
331
+ * @param state.isTestnet - Whether testnet mode is active.
332
+ * @returns Cache key in the format "provider:mainnet" or "provider:testnet".
333
+ */
334
+ function getProviderNetworkKey(state) {
335
+ return `${state.activeProvider ?? exports.PROVIDER_CONFIG.DefaultProvider}:${state.isTestnet ? 'testnet' : 'mainnet'}`;
336
+ }
337
+ exports.getProviderNetworkKey = getProviderNetworkKey;
338
+ /**
339
+ * Build a provider:network cache key for a specific provider id.
340
+ * Accounts for MYX_TESTNET_ONLY: MYX is always on testnet regardless of the
341
+ * global network flag.
342
+ *
343
+ * @param providerId - The provider identifier (e.g. "hyperliquid", "myx").
344
+ * @param isTestnet - Global testnet flag from controller state.
345
+ * @returns Cache key in the format "provider:mainnet" or "provider:testnet".
346
+ */
347
+ function buildProviderCacheKey(providerId, isTestnet) {
348
+ const effectiveTestnet = providerId === 'myx'
349
+ ? exports.PROVIDER_CONFIG.MYX_TESTNET_ONLY || isTestnet
350
+ : isTestnet;
351
+ return `${providerId}:${effectiveTestnet ? 'testnet' : 'mainnet'}`;
352
+ }
353
+ exports.buildProviderCacheKey = buildProviderCacheKey;
309
354
  //# sourceMappingURL=perpsConfig.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"perpsConfig.cjs","sourceRoot":"","sources":["../../src/constants/perpsConfig.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Perps feature constants - Controller layer (portable)\n *\n * This file contains only controller-portable configuration:\n * - Constants used by controller logic, providers, and services\n * - Calculation thresholds, API configs, and protocol constants\n *\n * UI-only constants (layout, display, navigation) live in:\n * app/components/UI/Perps/constants/perpsConfig.ts\n */\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';\nexport const ZERO_BALANCE = '0x0';\n\nexport const PERPS_CONSTANTS = {\n FeatureFlagKey: 'perpsEnabled',\n FeatureName: 'perps', // Constant for Sentry error filtering - enables \"feature:perps\" dashboard queries\n /** Token description used to identify the synthetic \"Perps balance\" option in pay-with token lists */\n PerpsBalanceTokenDescription: 'perps-balance',\n /** Symbol displayed for the synthetic \"Perps balance\" token in pay-with token lists */\n PerpsBalanceTokenSymbol: 'USD',\n WebsocketTimeout: 5000, // 5 seconds\n WebsocketCleanupDelay: 1000, // 1 second\n BackgroundDisconnectDelay: 20_000, // 20 seconds delay before disconnecting when app is backgrounded or when user exits perps UX\n ConnectionTimeoutMs: 10_000, // 10 seconds timeout for connection and position loading states\n DefaultMonitoringTimeoutMs: 10_000, // 10 seconds default timeout for data monitoring operations\n\n // Connection timing constants\n ConnectionGracePeriodMs: 20_000, // 20 seconds grace period before actual disconnection (same as BackgroundDisconnectDelay for semantic clarity)\n ConnectionAttemptTimeoutMs: 30_000, // 30 seconds timeout for connection attempts to prevent indefinite hanging\n WebsocketPingTimeoutMs: 5_000, // 5 seconds timeout for WebSocket health check ping\n ConnectRetryDelayMs: 200, // Delay before retrying connect() when connection isn't ready yet\n ReconnectionCleanupDelayMs: 500, // Platform-agnostic delay to ensure WebSocket is ready\n ReconnectionDelayAndroidMs: 300, // Android-specific reconnection delay for better reliability on slower devices\n ReconnectionDelayIosMs: 100, // iOS-specific reconnection delay for optimal performance\n ReconnectionRetryDelayMs: 5_000, // 5 seconds delay between reconnection attempts\n NetworkRestoreMaxRetries: 8, // Max retry attempts when reconnecting after WiFi/network restore\n NetworkRestoreRetryBaseMs: 1_500, // Base delay (ms) between network restore retries (multiplied by attempt number)\n\n // Connection manager timing constants\n BalanceUpdateThrottleMs: 15000, // Update at most every 15 seconds to reduce state updates in PerpsConnectionManager\n InitialDataDelayMs: 100, // Delay to allow initial data to load after connection establishment\n\n // Deposit toast timing\n DepositTakingLongerToastDelayMs: 30_000, // Delay before showing \"Deposit taking longer than usual\" toast\n\n DefaultAssetPreviewLimit: 5,\n DefaultMaxLeverage: 3 as number, // Default fallback max leverage when market data is unavailable - conservative default\n FallbackPriceDisplay: '$---', // Display when price data is unavailable\n FallbackPercentageDisplay: '--%', // Display when change data is unavailable\n FallbackDataDisplay: '--', // Display when non-price data is unavailable\n ZeroAmountDisplay: '$0', // Display for zero dollar amounts (e.g., no volume)\n ZeroAmountDetailedDisplay: '$0.00', // Display for zero dollar amounts with decimals\n\n RecentActivityLimit: 3,\n\n // Historical data fetching constants\n FillsLookbackMs: 90 * 24 * 60 * 60 * 1000, // 3 months in milliseconds - limits REST API fills fetch\n} as const;\n\n/**\n * Withdrawal-specific constants (protocol-agnostic)\n * Note: Protocol-specific values like estimated time should be defined in each protocol's config\n */\nexport const WITHDRAWAL_CONSTANTS = {\n DefaultMinAmount: '1.01', // Default minimum withdrawal amount in USDC\n DefaultFeeAmount: 1, // Default withdrawal fee in USDC\n DefaultFeeToken: 'USDC', // Default fee token\n} as const;\n\n/**\n * Validation thresholds for UI warnings and checks\n * These values control when warnings are shown to users\n */\nexport const VALIDATION_THRESHOLDS = {\n // Leverage threshold for warning users about high leverage\n HighLeverageWarning: 20, // Show warning when leverage > 20x\n\n // Limit price difference threshold (as decimal, 0.1 = 10%)\n LimitPriceDifferenceWarning: 0.1, // Warn if limit price differs by >10% from current price\n\n // Price deviation threshold (as decimal, 0.1 = 10%)\n PriceDeviation: 0.1, // Warn if perps price deviates by >10% from spot price\n} as const;\n\n/**\n * Order slippage configuration\n * Controls default slippage tolerance for different order types\n * Conservative defaults based on HyperLiquid platform interface\n * See: docs/perps/hyperliquid/ORDER-MATCHING-ERRORS.md\n */\nexport const ORDER_SLIPPAGE_CONFIG = {\n // Market order slippage (basis points)\n // 300 basis points = 3% = 0.03 decimal\n // Conservative default for measured rollout, prevents most IOC failures\n DefaultMarketSlippageBps: 300,\n\n // TP/SL order slippage (basis points)\n // 1000 basis points = 10% = 0.10 decimal\n // Aligns with HyperLiquid platform default for triggered orders\n DefaultTpslSlippageBps: 1000,\n\n // Limit order slippage (basis points)\n // 100 basis points = 1% = 0.01 decimal\n // Kept conservative as limit orders rest on book (not IOC/immediate execution)\n DefaultLimitSlippageBps: 100,\n} as const;\n\n/**\n * Max order amount buffer to reduce \"Insufficient margin\" rejections from the exchange.\n * When the user selects 100% (slider or Max), we cap the order at (1 - this) of the\n * theoretical max so that fees, rounding, and exchange-side margin checks are covered.\n * Value as decimal (e.g. 0.005 = 0.5%).\n */\nexport const MAX_ORDER_MARGIN_BUFFER = 0.005; // 0.5%\n\n/**\n * Performance optimization constants\n * These values control debouncing and throttling for better performance\n */\nexport const PERFORMANCE_CONFIG = {\n // Price updates debounce delay (milliseconds)\n // Batches rapid WebSocket price updates to reduce re-renders\n PriceUpdateDebounceMs: 1000,\n\n // Order validation debounce delay (milliseconds)\n // Prevents excessive validation calls during rapid form input changes\n ValidationDebounceMs: 300,\n\n // Liquidation price debounce delay (milliseconds)\n // Prevents excessive liquidation price calls during rapid form input changes\n LiquidationPriceDebounceMs: 500,\n\n // Candle subscription debounce delay (milliseconds)\n // Prevents WS subscription churn during rapid market switching (#28141)\n CandleConnectDebounceMs: 500,\n\n // Navigation params delay (milliseconds)\n // Required for React Navigation to complete state transitions before setting params\n // This ensures navigation context is available when programmatically selecting tabs\n NavigationParamsDelayMs: 200,\n\n // Tab control reset delay (milliseconds)\n // Delay to reset programmatic tab control after tab switching to prevent render loops\n TabControlResetDelayMs: 500,\n\n // Market data cache duration (milliseconds)\n // How long to cache market list data before fetching fresh data\n MarketDataCacheDurationMs: 5 * 60 * 1000, // 5 minutes\n\n // Asset metadata cache duration (milliseconds)\n // How long to cache asset icon validation results\n AssetMetadataCacheDurationMs: 60 * 60 * 1000, // 1 hour\n\n // Max leverage cache duration (milliseconds)\n // How long to cache max leverage values per asset (leverage rarely changes)\n MaxLeverageCacheDurationMs: 60 * 60 * 1000, // 1 hour\n\n // Rewards cache durations (milliseconds)\n // How long to cache fee discount data from rewards API\n FeeDiscountCacheDurationMs: 5 * 60 * 1000, // 5 minutes\n // How long to cache points calculation parameters from rewards API\n PointsCalculationCacheDurationMs: 5 * 60 * 1000, // 5 minutes\n\n /**\n * Performance logging markers for filtering logs during development and debugging\n * These markers help isolate performance-related logs from general application logs\n * Usage: Use in DevLogger calls to easily filter specific performance areas\n * Impact: Development only (uses DevLogger) - zero production performance cost\n *\n * Examples:\n * - Filter Sentry performance logs: `adb logcat | grep PERPSMARK_SENTRY`\n * - Filter MetaMetrics events: `adb logcat | grep PERPSMARK_METRICS`\n * - Filter WebSocket performance: `adb logcat | grep PERPSMARK_WS`\n * - Filter all Perps performance: `adb logcat | grep PERPSMARK_`\n */\n LoggingMarkers: {\n // Sentry performance measurement logs (screen loads, bottom sheets, API timing)\n SentryPerformance: 'PERPSMARK_SENTRY',\n\n // MetaMetrics event tracking logs (user interactions, business analytics)\n MetametricsEvents: 'PERPSMARK_METRICS',\n\n // WebSocket performance logs (connection timing, data flow, reconnections)\n WebsocketPerformance: 'PERPSMARK_SENTRY_WS',\n } as const,\n} as const;\n\nexport const TP_SL_CONFIG = {\n UsePositionBoundTpsl: true,\n} as const;\n\n/**\n * HyperLiquid order limits based on leverage\n * From: https://hyperliquid.gitbook.io/hyperliquid-docs/trading/contract-specifications\n */\nexport const HYPERLIQUID_ORDER_LIMITS = {\n // Market orders\n MarketOrderLimits: {\n // $15,000,000 for max leverage >= 25\n HighLeverage: 15_000_000,\n // $5,000,000 for max leverage in [20, 25)\n MediumHighLeverage: 5_000_000,\n // $2,000,000 for max leverage in [10, 20)\n MediumLeverage: 2_000_000,\n // $500,000 for max leverage < 10\n LowLeverage: 500_000,\n },\n // Limit orders are 10x market order limits\n LimitOrderMultiplier: 10,\n} as const;\n\n/**\n * Close position configuration\n * Controls behavior and constants specific to position closing\n */\nexport const CLOSE_POSITION_CONFIG = {\n // Decimal places for USD amount input display\n UsdDecimalPlaces: 2,\n\n // Default close percentage when opening the close position view\n DefaultClosePercentage: 100,\n\n // Precision for position size calculations to prevent rounding errors\n AmountCalculationPrecision: 6,\n\n // Throttle delay for real-time price updates during position closing\n PriceThrottleMs: 3000,\n\n // Fallback decimal places for tokens without metadata\n FallbackTokenDecimals: 18,\n} as const;\n\n/**\n * Margin adjustment configuration\n * Controls behavior for adding/removing margin from positions\n */\nexport const MARGIN_ADJUSTMENT_CONFIG = {\n // Risk thresholds for margin removal warnings\n // Threshold values represent ratio of (price distance to liquidation) / (liquidation price)\n // Values < 1.0 mean price is dangerously close to liquidation\n LiquidationRiskThreshold: 1.2, // 20% buffer before liquidation - triggers danger state\n LiquidationWarningThreshold: 1.5, // 50% buffer before liquidation - triggers warning state\n\n // Minimum margin adjustment amount (USD)\n // Prevents dust adjustments and ensures meaningful position changes\n MinAdjustmentAmount: 1,\n\n // Precision for margin calculations\n // Ensures accurate decimal handling in margin/leverage calculations\n CalculationPrecision: 6,\n\n // Safety buffer for margin removal to account for HyperLiquid's transfer margin requirement\n // HyperLiquid enforces: transfer_margin_required = max(initial_margin_required, 0.1 * total_position_value)\n // See: https://hyperliquid.gitbook.io/hyperliquid-docs/trading/margin-and-pnl\n MarginRemovalSafetyBuffer: 0.1,\n\n // Fallback max leverage when market data is unavailable\n // Conservative value to prevent over-removal of margin\n // Most HyperLiquid assets support at least 50x leverage\n FallbackMaxLeverage: 50,\n} as const;\n\n/**\n * Data Lake API configuration\n * Endpoints for reporting perps trading activity for notifications\n */\nexport const DATA_LAKE_API_CONFIG = {\n // Order reporting endpoint - only used for mainnet perps trading\n OrdersEndpoint: 'https://perps.api.cx.metamask.io/api/v1/orders',\n} as const;\n\n/**\n * Decimal precision configuration\n * Controls maximum decimal places for price and input validation\n */\nexport const DECIMAL_PRECISION_CONFIG = {\n // Maximum decimal places for price input (matches Hyperliquid limit)\n // Used in TP/SL forms, limit price inputs, and price validation\n MaxPriceDecimals: 6,\n // Maximum significant figures allowed by HyperLiquid API\n // Orders with more than 5 significant figures will be rejected\n MaxSignificantFigures: 5,\n // Defensive fallback for size decimals when market data fails to load\n // Real szDecimals should always come from market data API (varies by asset)\n // Using 6 as safe maximum to prevent crashes (covers most assets)\n // NOTE: This is NOT semantically correct - just a defensive measure\n FallbackSizeDecimals: 6,\n} as const;\n\n/**\n * Market sorting configuration\n * Controls sorting behavior and presets for the trending markets view\n */\nexport const MARKET_SORTING_CONFIG = {\n // Default sort settings\n DefaultSortOptionId: 'volume' as const,\n DefaultDirection: 'desc' as const,\n\n // Available sort fields (only includes fields supported by PerpsMarketData)\n SortFields: {\n Volume: 'volume',\n PriceChange: 'priceChange',\n OpenInterest: 'openInterest',\n FundingRate: 'fundingRate',\n } as const,\n\n // Sort button presets for filter chips (simplified buttons without direction)\n SortButtonPresets: [\n { field: 'volume', labelKey: 'perps.sort.volume' },\n { field: 'priceChange', labelKey: 'perps.sort.price_change' },\n { field: 'fundingRate', labelKey: 'perps.sort.funding_rate' },\n ] as const,\n\n // Sort options for the bottom sheet\n // All options support direction toggle (high-to-low / low-to-high)\n SortOptions: [\n {\n id: 'volume',\n labelKey: 'perps.sort.volume',\n field: 'volume',\n direction: 'desc',\n },\n {\n id: 'priceChange',\n labelKey: 'perps.sort.price_change',\n field: 'priceChange',\n direction: 'desc',\n },\n {\n id: 'openInterest',\n labelKey: 'perps.sort.open_interest',\n field: 'openInterest',\n direction: 'desc',\n },\n {\n id: 'fundingRate',\n labelKey: 'perps.sort.funding_rate',\n field: 'fundingRate',\n direction: 'desc',\n },\n ] as const,\n} as const;\n\n/**\n * Type for valid sort option IDs\n * Derived from SORT_OPTIONS to ensure type safety\n * Valid values: 'volume' | 'priceChange' | 'openInterest' | 'fundingRate'\n */\nexport type SortOptionId =\n (typeof MARKET_SORTING_CONFIG.SortOptions)[number]['id'];\n\n/**\n * Provider configuration for multi-provider support\n */\nexport const PROVIDER_CONFIG = {\n /** Default perpetual DEX provider when no explicit selection exists */\n DefaultProvider: 'hyperliquid' as const,\n /** Force MYX to testnet only (mainnet credentials not yet available) */\n MYX_TESTNET_ONLY: false,\n} as const;\n"]}
1
+ {"version":3,"file":"perpsConfig.cjs","sourceRoot":"","sources":["../../src/constants/perpsConfig.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Perps feature constants - Controller layer (portable)\n *\n * This file contains only controller-portable configuration:\n * - Constants used by controller logic, providers, and services\n * - Calculation thresholds, API configs, and protocol constants\n *\n * UI-only constants (layout, display, navigation) live in:\n * app/components/UI/Perps/constants/perpsConfig.ts\n */\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';\nexport const ZERO_BALANCE = '0x0';\n\nexport const PERPS_CONSTANTS = {\n FeatureFlagKey: 'perpsEnabled',\n FeatureName: 'perps', // Constant for Sentry error filtering - enables \"feature:perps\" dashboard queries\n /** Token description used to identify the synthetic \"Perps balance\" option in pay-with token lists */\n PerpsBalanceTokenDescription: 'perps-balance',\n /** Symbol displayed for the synthetic \"Perps balance\" token in pay-with token lists */\n PerpsBalanceTokenSymbol: 'USD',\n WebsocketTimeout: 5000, // 5 seconds\n WebsocketCleanupDelay: 1000, // 1 second\n BackgroundDisconnectDelay: 20_000, // 20 seconds delay before disconnecting when app is backgrounded or when user exits perps UX\n ConnectionTimeoutMs: 10_000, // 10 seconds timeout for connection and position loading states\n DefaultMonitoringTimeoutMs: 10_000, // 10 seconds default timeout for data monitoring operations\n\n // Connection timing constants\n ConnectionGracePeriodMs: 20_000, // 20 seconds grace period before actual disconnection (same as BackgroundDisconnectDelay for semantic clarity)\n ConnectionAttemptTimeoutMs: 30_000, // 30 seconds timeout for connection attempts to prevent indefinite hanging\n WebsocketPingTimeoutMs: 5_000, // 5 seconds timeout for WebSocket health check ping\n ConnectRetryDelayMs: 200, // Delay before retrying connect() when connection isn't ready yet\n ForegroundPingRetryDelayMs: 500, // Delay before retrying ping in resumeFromForeground — JS thread may be sluggish right after foregrounding\n ReconnectionCleanupDelayMs: 500, // Platform-agnostic delay to ensure WebSocket is ready\n ReconnectionDelayAndroidMs: 300, // Android-specific reconnection delay for better reliability on slower devices\n ReconnectionDelayIosMs: 100, // iOS-specific reconnection delay for optimal performance\n ReconnectionRetryDelayMs: 5_000, // 5 seconds delay between reconnection attempts\n NetworkRestoreMaxRetries: 8, // Max retry attempts when reconnecting after WiFi/network restore\n NetworkRestoreRetryBaseMs: 1_500, // Base delay (ms) between network restore retries (multiplied by attempt number)\n\n // Connection manager timing constants\n BalanceUpdateThrottleMs: 15000, // Update at most every 15 seconds to reduce state updates in PerpsConnectionManager\n InitialDataDelayMs: 100, // Delay to allow initial data to load after connection establishment\n\n // Deposit toast timing\n DepositTakingLongerToastDelayMs: 30_000, // Delay before showing \"Deposit taking longer than usual\" toast\n\n DefaultAssetPreviewLimit: 5,\n DefaultMaxLeverage: 3 as number, // Default fallback max leverage when market data is unavailable - conservative default\n FallbackPriceDisplay: '$---', // Display when price data is unavailable\n FallbackPercentageDisplay: '--%', // Display when change data is unavailable\n FallbackDataDisplay: '--', // Display when non-price data is unavailable\n ZeroAmountDisplay: '$0', // Display for zero dollar amounts (e.g., no volume)\n ZeroAmountDetailedDisplay: '$0.00', // Display for zero dollar amounts with decimals\n\n RecentActivityLimit: 3,\n\n // Historical data fetching constants\n FillsLookbackMs: 90 * 24 * 60 * 60 * 1000, // 3 months in milliseconds - limits REST API fills fetch\n} as const;\n\n/**\n * Withdrawal-specific constants (protocol-agnostic)\n * Note: Protocol-specific values like estimated time should be defined in each protocol's config\n */\nexport const WITHDRAWAL_CONSTANTS = {\n DefaultMinAmount: '1.01', // Default minimum withdrawal amount in USDC\n DefaultFeeAmount: 1, // Default withdrawal fee in USDC\n DefaultFeeToken: 'USDC', // Default fee token\n} as const;\n\n/**\n * Validation thresholds for UI warnings and checks\n * These values control when warnings are shown to users\n */\nexport const VALIDATION_THRESHOLDS = {\n // Leverage threshold for warning users about high leverage\n HighLeverageWarning: 20, // Show warning when leverage > 20x\n\n // Limit price difference threshold (as decimal, 0.1 = 10%)\n LimitPriceDifferenceWarning: 0.1, // Warn if limit price differs by >10% from current price\n\n // Price deviation threshold (as decimal, 0.1 = 10%)\n PriceDeviation: 0.1, // Warn if perps price deviates by >10% from spot price\n} as const;\n\n/**\n * Order slippage configuration\n * Controls default slippage tolerance for different order types\n * Conservative defaults based on HyperLiquid platform interface\n * See: docs/perps/hyperliquid/ORDER-MATCHING-ERRORS.md\n */\nexport const ORDER_SLIPPAGE_CONFIG = {\n // Market order slippage (basis points)\n // 300 basis points = 3% = 0.03 decimal\n // Conservative default for measured rollout, prevents most IOC failures\n DefaultMarketSlippageBps: 300,\n\n // TP/SL order slippage (basis points)\n // 1000 basis points = 10% = 0.10 decimal\n // Aligns with HyperLiquid platform default for triggered orders\n DefaultTpslSlippageBps: 1000,\n\n // Limit order slippage (basis points)\n // 100 basis points = 1% = 0.01 decimal\n // Kept conservative as limit orders rest on book (not IOC/immediate execution)\n DefaultLimitSlippageBps: 100,\n} as const;\n\n/**\n * Max order amount buffer to reduce \"Insufficient margin\" rejections from the exchange.\n * When the user selects 100% (slider or Max), we cap the order at (1 - this) of the\n * theoretical max so that fees, rounding, and exchange-side margin checks are covered.\n * Value as decimal (e.g. 0.005 = 0.5%).\n */\nexport const MAX_ORDER_MARGIN_BUFFER = 0.005; // 0.5%\n\n/**\n * Performance optimization constants\n * These values control debouncing and throttling for better performance\n */\nexport const PERFORMANCE_CONFIG = {\n // Price updates debounce delay (milliseconds)\n // Batches rapid WebSocket price updates to reduce re-renders\n PriceUpdateDebounceMs: 1000,\n\n // Order validation debounce delay (milliseconds)\n // Prevents excessive validation calls during rapid form input changes\n ValidationDebounceMs: 300,\n\n // Liquidation price debounce delay (milliseconds)\n // Prevents excessive liquidation price calls during rapid form input changes\n LiquidationPriceDebounceMs: 500,\n\n // Candle subscription debounce delay (milliseconds)\n // Prevents WS subscription churn during rapid market switching (#28141)\n CandleConnectDebounceMs: 500,\n\n // Navigation params delay (milliseconds)\n // Required for React Navigation to complete state transitions before setting params\n // This ensures navigation context is available when programmatically selecting tabs\n NavigationParamsDelayMs: 200,\n\n // Tab control reset delay (milliseconds)\n // Delay to reset programmatic tab control after tab switching to prevent render loops\n TabControlResetDelayMs: 500,\n\n // Market data cache duration (milliseconds)\n // How long to cache market list data before fetching fresh data\n MarketDataCacheDurationMs: 5 * 60 * 1000, // 5 minutes\n\n // Asset metadata cache duration (milliseconds)\n // How long to cache asset icon validation results\n AssetMetadataCacheDurationMs: 60 * 60 * 1000, // 1 hour\n\n // Max leverage cache duration (milliseconds)\n // How long to cache max leverage values per asset (leverage rarely changes)\n MaxLeverageCacheDurationMs: 60 * 60 * 1000, // 1 hour\n\n // Rewards cache durations (milliseconds)\n // How long to cache fee discount data from rewards API\n FeeDiscountCacheDurationMs: 5 * 60 * 1000, // 5 minutes\n // How long to cache points calculation parameters from rewards API\n PointsCalculationCacheDurationMs: 5 * 60 * 1000, // 5 minutes\n\n /**\n * Performance logging markers for filtering logs during development and debugging\n * These markers help isolate performance-related logs from general application logs\n * Usage: Use in DevLogger calls to easily filter specific performance areas\n * Impact: Development only (uses DevLogger) - zero production performance cost\n *\n * Examples:\n * - Filter Sentry performance logs: `adb logcat | grep PERPSMARK_SENTRY`\n * - Filter MetaMetrics events: `adb logcat | grep PERPSMARK_METRICS`\n * - Filter WebSocket performance: `adb logcat | grep PERPSMARK_WS`\n * - Filter all Perps performance: `adb logcat | grep PERPSMARK_`\n */\n LoggingMarkers: {\n // Sentry performance measurement logs (screen loads, bottom sheets, API timing)\n SentryPerformance: 'PERPSMARK_SENTRY',\n\n // MetaMetrics event tracking logs (user interactions, business analytics)\n MetametricsEvents: 'PERPSMARK_METRICS',\n\n // WebSocket performance logs (connection timing, data flow, reconnections)\n WebsocketPerformance: 'PERPSMARK_SENTRY_WS',\n } as const,\n} as const;\n\nexport const TP_SL_CONFIG = {\n UsePositionBoundTpsl: true,\n} as const;\n\n/**\n * HyperLiquid order limits based on leverage\n * From: https://hyperliquid.gitbook.io/hyperliquid-docs/trading/contract-specifications\n */\nexport const HYPERLIQUID_ORDER_LIMITS = {\n // Market orders\n MarketOrderLimits: {\n // $15,000,000 for max leverage >= 25\n HighLeverage: 15_000_000,\n // $5,000,000 for max leverage in [20, 25)\n MediumHighLeverage: 5_000_000,\n // $2,000,000 for max leverage in [10, 20)\n MediumLeverage: 2_000_000,\n // $500,000 for max leverage < 10\n LowLeverage: 500_000,\n },\n // Limit orders are 10x market order limits\n LimitOrderMultiplier: 10,\n} as const;\n\n/**\n * Close position configuration\n * Controls behavior and constants specific to position closing\n */\nexport const CLOSE_POSITION_CONFIG = {\n // Decimal places for USD amount input display\n UsdDecimalPlaces: 2,\n\n // Default close percentage when opening the close position view\n DefaultClosePercentage: 100,\n\n // Precision for position size calculations to prevent rounding errors\n AmountCalculationPrecision: 6,\n\n // Throttle delay for real-time price updates during position closing\n PriceThrottleMs: 3000,\n\n // Fallback decimal places for tokens without metadata\n FallbackTokenDecimals: 18,\n} as const;\n\n/**\n * Margin adjustment configuration\n * Controls behavior for adding/removing margin from positions\n */\nexport const MARGIN_ADJUSTMENT_CONFIG = {\n // Risk thresholds for margin removal warnings\n // Threshold values represent ratio of (price distance to liquidation) / (liquidation price)\n // Values < 1.0 mean price is dangerously close to liquidation\n LiquidationRiskThreshold: 1.2, // 20% buffer before liquidation - triggers danger state\n LiquidationWarningThreshold: 1.5, // 50% buffer before liquidation - triggers warning state\n\n // Minimum margin adjustment amount (USD)\n // Prevents dust adjustments and ensures meaningful position changes\n MinAdjustmentAmount: 1,\n\n // Precision for margin calculations\n // Ensures accurate decimal handling in margin/leverage calculations\n CalculationPrecision: 6,\n\n // Safety buffer for margin removal to account for HyperLiquid's transfer margin requirement\n // HyperLiquid enforces: transfer_margin_required = max(initial_margin_required, 0.1 * total_position_value)\n // See: https://hyperliquid.gitbook.io/hyperliquid-docs/trading/margin-and-pnl\n MarginRemovalSafetyBuffer: 0.1,\n\n // Fallback max leverage when market data is unavailable\n // Conservative value to prevent over-removal of margin\n // Most HyperLiquid assets support at least 50x leverage\n FallbackMaxLeverage: 50,\n} as const;\n\n/**\n * Data Lake API configuration\n * Endpoints for reporting perps trading activity for notifications\n */\nexport const DATA_LAKE_API_CONFIG = {\n // Order reporting endpoint - only used for mainnet perps trading\n OrdersEndpoint: 'https://perps.api.cx.metamask.io/api/v1/orders',\n} as const;\n\n/**\n * Decimal precision configuration\n * Controls maximum decimal places for price and input validation\n */\nexport const DECIMAL_PRECISION_CONFIG = {\n // Maximum decimal places for price input (matches Hyperliquid limit)\n // Used in TP/SL forms, limit price inputs, and price validation\n MaxPriceDecimals: 6,\n // Maximum significant figures allowed by HyperLiquid API\n // Orders with more than 5 significant figures will be rejected\n MaxSignificantFigures: 5,\n // Defensive fallback for size decimals when market data fails to load\n // Real szDecimals should always come from market data API (varies by asset)\n // Using 6 as safe maximum to prevent crashes (covers most assets)\n // NOTE: This is NOT semantically correct - just a defensive measure\n FallbackSizeDecimals: 6,\n} as const;\n\n/**\n * Market sorting configuration\n * Controls sorting behavior and presets for the trending markets view\n */\nexport const MARKET_SORTING_CONFIG = {\n // Default sort settings\n DefaultSortOptionId: 'volume' as const,\n DefaultDirection: 'desc' as const,\n\n // Available sort fields (only includes fields supported by PerpsMarketData)\n SortFields: {\n Volume: 'volume',\n PriceChange: 'priceChange',\n OpenInterest: 'openInterest',\n FundingRate: 'fundingRate',\n } as const,\n\n // Sort button presets for filter chips (simplified buttons without direction)\n SortButtonPresets: [\n { field: 'volume', labelKey: 'perps.sort.volume' },\n { field: 'priceChange', labelKey: 'perps.sort.price_change' },\n { field: 'fundingRate', labelKey: 'perps.sort.funding_rate' },\n ] as const,\n\n // Sort options for the bottom sheet\n // All options support direction toggle (high-to-low / low-to-high)\n SortOptions: [\n {\n id: 'volume',\n labelKey: 'perps.sort.volume',\n field: 'volume',\n direction: 'desc',\n },\n {\n id: 'priceChange',\n labelKey: 'perps.sort.price_change',\n field: 'priceChange',\n direction: 'desc',\n },\n {\n id: 'openInterest',\n labelKey: 'perps.sort.open_interest',\n field: 'openInterest',\n direction: 'desc',\n },\n {\n id: 'fundingRate',\n labelKey: 'perps.sort.funding_rate',\n field: 'fundingRate',\n direction: 'desc',\n },\n ] as const,\n} as const;\n\n/**\n * Type for valid sort option IDs\n * Derived from SORT_OPTIONS to ensure type safety\n * Valid values: 'volume' | 'priceChange' | 'openInterest' | 'fundingRate'\n */\nexport type SortOptionId =\n (typeof MARKET_SORTING_CONFIG.SortOptions)[number]['id'];\n\n/**\n * Funding rate display configuration\n * Controls how funding rates are formatted and displayed\n */\nexport const FUNDING_RATE_CONFIG = {\n // Number of decimal places to display for funding rates\n Decimals: 4,\n // Default display value when funding rate is zero or unavailable\n ZeroDisplay: '0.0000%',\n // Multiplier to convert decimal funding rate to percentage\n PercentageMultiplier: 100,\n} as const;\n\n/**\n * Provider configuration for multi-provider support\n */\nexport const PROVIDER_CONFIG = {\n /** Default perpetual DEX provider when no explicit selection exists */\n DefaultProvider: 'hyperliquid' as const,\n /** Force MYX to testnet only (mainnet credentials not yet available) */\n MYX_TESTNET_ONLY: false,\n} as const;\n\n// Disk-backed cold-start cache keys and throttle interval\nexport const PERPS_DISK_CACHE_MARKETS = 'PERPS_DISK_CACHE_MARKETS';\nexport const PERPS_DISK_CACHE_USER_DATA = 'PERPS_DISK_CACHE_USER_DATA';\nexport const PERPS_DISK_CACHE_THROTTLE_MS = 30_000;\n\n/**\n * Build the standard provider:network cache key from controller state.\n *\n * @param state - Controller state containing provider and network info.\n * @param state.activeProvider - Active perps provider name.\n * @param state.isTestnet - Whether testnet mode is active.\n * @returns Cache key in the format \"provider:mainnet\" or \"provider:testnet\".\n */\nexport function getProviderNetworkKey(state: {\n activeProvider?: string;\n isTestnet?: boolean;\n}): string {\n return `${state.activeProvider ?? PROVIDER_CONFIG.DefaultProvider}:${state.isTestnet ? 'testnet' : 'mainnet'}`;\n}\n\n/**\n * Build a provider:network cache key for a specific provider id.\n * Accounts for MYX_TESTNET_ONLY: MYX is always on testnet regardless of the\n * global network flag.\n *\n * @param providerId - The provider identifier (e.g. \"hyperliquid\", \"myx\").\n * @param isTestnet - Global testnet flag from controller state.\n * @returns Cache key in the format \"provider:mainnet\" or \"provider:testnet\".\n */\nexport function buildProviderCacheKey(\n providerId: string,\n isTestnet: boolean,\n): string {\n const effectiveTestnet =\n providerId === 'myx'\n ? PROVIDER_CONFIG.MYX_TESTNET_ONLY || isTestnet\n : isTestnet;\n return `${providerId}:${effectiveTestnet ? 'testnet' : 'mainnet'}`;\n}\n"]}
@@ -26,6 +26,7 @@ export declare const PERPS_CONSTANTS: {
26
26
  readonly ConnectionAttemptTimeoutMs: 30000;
27
27
  readonly WebsocketPingTimeoutMs: 5000;
28
28
  readonly ConnectRetryDelayMs: 200;
29
+ readonly ForegroundPingRetryDelayMs: 500;
29
30
  readonly ReconnectionCleanupDelayMs: 500;
30
31
  readonly ReconnectionDelayAndroidMs: 300;
31
32
  readonly ReconnectionDelayIosMs: 100;
@@ -221,6 +222,15 @@ export declare const MARKET_SORTING_CONFIG: {
221
222
  * Valid values: 'volume' | 'priceChange' | 'openInterest' | 'fundingRate'
222
223
  */
223
224
  export type SortOptionId = (typeof MARKET_SORTING_CONFIG.SortOptions)[number]['id'];
225
+ /**
226
+ * Funding rate display configuration
227
+ * Controls how funding rates are formatted and displayed
228
+ */
229
+ export declare const FUNDING_RATE_CONFIG: {
230
+ readonly Decimals: 4;
231
+ readonly ZeroDisplay: "0.0000%";
232
+ readonly PercentageMultiplier: 100;
233
+ };
224
234
  /**
225
235
  * Provider configuration for multi-provider support
226
236
  */
@@ -230,4 +240,29 @@ export declare const PROVIDER_CONFIG: {
230
240
  /** Force MYX to testnet only (mainnet credentials not yet available) */
231
241
  readonly MYX_TESTNET_ONLY: false;
232
242
  };
243
+ export declare const PERPS_DISK_CACHE_MARKETS = "PERPS_DISK_CACHE_MARKETS";
244
+ export declare const PERPS_DISK_CACHE_USER_DATA = "PERPS_DISK_CACHE_USER_DATA";
245
+ export declare const PERPS_DISK_CACHE_THROTTLE_MS = 30000;
246
+ /**
247
+ * Build the standard provider:network cache key from controller state.
248
+ *
249
+ * @param state - Controller state containing provider and network info.
250
+ * @param state.activeProvider - Active perps provider name.
251
+ * @param state.isTestnet - Whether testnet mode is active.
252
+ * @returns Cache key in the format "provider:mainnet" or "provider:testnet".
253
+ */
254
+ export declare function getProviderNetworkKey(state: {
255
+ activeProvider?: string;
256
+ isTestnet?: boolean;
257
+ }): string;
258
+ /**
259
+ * Build a provider:network cache key for a specific provider id.
260
+ * Accounts for MYX_TESTNET_ONLY: MYX is always on testnet regardless of the
261
+ * global network flag.
262
+ *
263
+ * @param providerId - The provider identifier (e.g. "hyperliquid", "myx").
264
+ * @param isTestnet - Global testnet flag from controller state.
265
+ * @returns Cache key in the format "provider:mainnet" or "provider:testnet".
266
+ */
267
+ export declare function buildProviderCacheKey(providerId: string, isTestnet: boolean): string;
233
268
  //# sourceMappingURL=perpsConfig.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"perpsConfig.d.cts","sourceRoot":"","sources":["../../src/constants/perpsConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,+CAA+C,CAAC;AACzE,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,eAAe;;;IAG1B,sGAAsG;;IAEtG,uFAAuF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC/E,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;CASxB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;CAexB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;IA4C7B;;;;;;;;;;;OAWG;;;;;;CAWK,CAAC;AAEX,eAAO,MAAM,YAAY;;CAEf,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;CAc3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;CAexB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;CAwB3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;CAGvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;CAY3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDxB,CAAC;AAEX;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACtB,CAAC,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B,uEAAuE;;IAEvE,wEAAwE;;CAEhE,CAAC"}
1
+ {"version":3,"file":"perpsConfig.d.cts","sourceRoot":"","sources":["../../src/constants/perpsConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,+CAA+C,CAAC;AACzE,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,eAAe;;;IAG1B,sGAAsG;;IAEtG,uFAAuF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC/E,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;CASxB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;CAexB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;IA4C7B;;;;;;;;;;;OAWG;;;;;;CAWK,CAAC;AAEX,eAAO,MAAM,YAAY;;CAEf,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;CAc3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;CAexB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;;CAwB3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;CAGvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;CAY3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDxB,CAAC;AAEX;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACtB,CAAC,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;CAOtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B,uEAAuE;;IAEvE,wEAAwE;;CAEhE,CAAC;AAGX,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,MAAM,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,MAAM,CAMR"}