wallet-stack 1.0.0-alpha.121

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 (1288) hide show
  1. package/README.md +86 -0
  2. package/app.plugin.js +1 -0
  3. package/locales/base/translation.json +2998 -0
  4. package/locales/de/translation.json +2998 -0
  5. package/locales/en-US/translation.json +2998 -0
  6. package/locales/es-419/translation.json +2998 -0
  7. package/locales/fr-FR/translation.json +2998 -0
  8. package/locales/index.ts +163 -0
  9. package/locales/it-IT/translation.json +2998 -0
  10. package/locales/pl-PL/translation.json +3004 -0
  11. package/locales/pt-BR/translation.json +2998 -0
  12. package/locales/ru-RU/translation.json +3004 -0
  13. package/locales/th-TH/translation.json +2995 -0
  14. package/locales/tr-TR/translation.json +2998 -0
  15. package/locales/uk-UA/translation.json +3004 -0
  16. package/locales/vi-VN/translation.json +2995 -0
  17. package/locales/zh-CN/translation.json +2995 -0
  18. package/metro-config.js +40 -0
  19. package/package.json +227 -0
  20. package/plugin/build/consts.d.ts +2 -0
  21. package/plugin/build/consts.js +6 -0
  22. package/plugin/build/index.d.ts +8 -0
  23. package/plugin/build/index.js +21 -0
  24. package/plugin/build/withAndroidUserAgent.d.ts +8 -0
  25. package/plugin/build/withAndroidUserAgent.js +86 -0
  26. package/plugin/build/withAndroidWindowSoftInputModeAdjustNothing.d.ts +6 -0
  27. package/plugin/build/withAndroidWindowSoftInputModeAdjustNothing.js +16 -0
  28. package/plugin/build/withIosAppDelegateResetKeychain.d.ts +2 -0
  29. package/plugin/build/withIosAppDelegateResetKeychain.js +77 -0
  30. package/plugin/build/withIosUserAgent.d.ts +8 -0
  31. package/plugin/build/withIosUserAgent.js +56 -0
  32. package/plugin/tsconfig.json +13 -0
  33. package/src/RevokePhoneNumber.tsx +117 -0
  34. package/src/abis/IWalletJumpstart.ts +472 -0
  35. package/src/account/AccountErrorScreen.test.tsx +47 -0
  36. package/src/account/AccountErrorScreen.tsx +72 -0
  37. package/src/account/AccountKeyEducation.test.tsx +20 -0
  38. package/src/account/AccountKeyEducation.tsx +83 -0
  39. package/src/account/AccountSetupFailureScreen.test.tsx +59 -0
  40. package/src/account/AccountSetupFailureScreen.tsx +42 -0
  41. package/src/account/Education.test.tsx +48 -0
  42. package/src/account/Education.tsx +235 -0
  43. package/src/account/GoldEducation.test.tsx +35 -0
  44. package/src/account/GoldEducation.tsx +82 -0
  45. package/src/account/LegalSubmenu.test.tsx +84 -0
  46. package/src/account/LegalSubmenu.tsx +74 -0
  47. package/src/account/LicenseDisclaimer.txt +15310 -0
  48. package/src/account/Licenses.test.tsx +17 -0
  49. package/src/account/Licenses.tsx +43 -0
  50. package/src/account/PreferencesSubmenu.test.tsx +66 -0
  51. package/src/account/PreferencesSubmenu.tsx +87 -0
  52. package/src/account/PrivateKey.test.tsx +241 -0
  53. package/src/account/PrivateKey.tsx +169 -0
  54. package/src/account/Profile.test.tsx +77 -0
  55. package/src/account/Profile.tsx +153 -0
  56. package/src/account/ProfileSubmenu.test.tsx +105 -0
  57. package/src/account/ProfileSubmenu.tsx +89 -0
  58. package/src/account/SecuritySubmenu.test.tsx +305 -0
  59. package/src/account/SecuritySubmenu.tsx +435 -0
  60. package/src/account/ShakeForSupport.test.tsx +23 -0
  61. package/src/account/ShakeForSupport.tsx +112 -0
  62. package/src/account/StoreWipeRecoveryScreen.test.tsx +39 -0
  63. package/src/account/StoreWipeRecoveryScreen.tsx +50 -0
  64. package/src/account/Support.test.tsx +67 -0
  65. package/src/account/Support.tsx +69 -0
  66. package/src/account/SupportContact.test.tsx +95 -0
  67. package/src/account/SupportContact.tsx +265 -0
  68. package/src/account/__snapshots__/AccountKeyEducation.test.tsx.snap +579 -0
  69. package/src/account/__snapshots__/Education.test.tsx.snap +286 -0
  70. package/src/account/__snapshots__/GoldEducation.test.tsx.snap +579 -0
  71. package/src/account/__snapshots__/Licenses.test.tsx.snap +33 -0
  72. package/src/account/__snapshots__/ShakeForSupport.test.tsx.snap +3 -0
  73. package/src/account/actions.ts +270 -0
  74. package/src/account/reducer.test.ts +28 -0
  75. package/src/account/reducer.ts +296 -0
  76. package/src/account/saga.test.ts +209 -0
  77. package/src/account/saga.ts +249 -0
  78. package/src/account/selectors.test.ts +18 -0
  79. package/src/account/selectors.ts +60 -0
  80. package/src/account/updateAccountRegistration.ts +35 -0
  81. package/src/account/utils.ts +36 -0
  82. package/src/account/zendesk.test.ts +166 -0
  83. package/src/account/zendesk.ts +199 -0
  84. package/src/alert/AlertBanner.test.tsx +123 -0
  85. package/src/alert/AlertBanner.tsx +84 -0
  86. package/src/alert/actions.ts +127 -0
  87. package/src/alert/reducer.ts +52 -0
  88. package/src/analytics/AppAnalytics.test.ts +334 -0
  89. package/src/analytics/AppAnalytics.ts +369 -0
  90. package/src/analytics/AsyncStoragePersistor.ts +34 -0
  91. package/src/analytics/Events.test.tsx +49 -0
  92. package/src/analytics/Events.tsx +648 -0
  93. package/src/analytics/InjectTraits.ts +34 -0
  94. package/src/analytics/Properties.tsx +1645 -0
  95. package/src/analytics/README.md +24 -0
  96. package/src/analytics/docs.ts +675 -0
  97. package/src/analytics/saga.test.ts +57 -0
  98. package/src/analytics/saga.ts +21 -0
  99. package/src/analytics/selectors.test.ts +391 -0
  100. package/src/analytics/selectors.ts +200 -0
  101. package/src/analytics/types.ts +46 -0
  102. package/src/app/App.test.tsx +25 -0
  103. package/src/app/App.tsx +124 -0
  104. package/src/app/AppInitGate.test.tsx +100 -0
  105. package/src/app/AppInitGate.tsx +77 -0
  106. package/src/app/AppLoading.test.tsx +11 -0
  107. package/src/app/AppLoading.tsx +79 -0
  108. package/src/app/DebugImages.tsx +110 -0
  109. package/src/app/ErrorBoundary.test.tsx +19 -0
  110. package/src/app/ErrorBoundary.tsx +41 -0
  111. package/src/app/ErrorMessages.ts +40 -0
  112. package/src/app/ErrorScreen.test.tsx +26 -0
  113. package/src/app/ErrorScreen.tsx +57 -0
  114. package/src/app/SanctionedCountryErrorScreen.tsx +37 -0
  115. package/src/app/UpgradeScreen.tsx +28 -0
  116. package/src/app/__snapshots__/AppLoading.test.tsx.snap +35 -0
  117. package/src/app/__snapshots__/ErrorScreen.test.tsx.snap +365 -0
  118. package/src/app/actions.ts +301 -0
  119. package/src/app/crowd_mobile.png +0 -0
  120. package/src/app/reducers.ts +204 -0
  121. package/src/app/saga.test.ts +651 -0
  122. package/src/app/saga.ts +367 -0
  123. package/src/app/selectors.ts +53 -0
  124. package/src/app/useDeepLinks.test.tsx +43 -0
  125. package/src/app/useDeepLinks.ts +72 -0
  126. package/src/app/utils.ts +14 -0
  127. package/src/appConfig.test.ts +37 -0
  128. package/src/appConfig.ts +20 -0
  129. package/src/backup/BackupComplete.test.tsx +61 -0
  130. package/src/backup/BackupComplete.tsx +69 -0
  131. package/src/backup/BackupIntroduction.test.tsx +37 -0
  132. package/src/backup/BackupIntroduction.tsx +157 -0
  133. package/src/backup/BackupPhrase.test.tsx +71 -0
  134. package/src/backup/BackupPhrase.tsx +208 -0
  135. package/src/backup/BackupPhraseContainer.test.tsx +43 -0
  136. package/src/backup/BackupPhraseContainer.tsx +207 -0
  137. package/src/backup/BackupQuiz.test.tsx +130 -0
  138. package/src/backup/BackupQuiz.tsx +429 -0
  139. package/src/backup/CancelConfirm.tsx +60 -0
  140. package/src/backup/QuizzBottom.tsx +57 -0
  141. package/src/backup/__snapshots__/BackupComplete.test.tsx.snap +58 -0
  142. package/src/backup/__snapshots__/BackupPhrase.test.tsx.snap +906 -0
  143. package/src/backup/__snapshots__/BackupPhraseContainer.test.tsx.snap +719 -0
  144. package/src/backup/__snapshots__/BackupQuiz.test.tsx.snap +1313 -0
  145. package/src/backup/utils.test.ts +91 -0
  146. package/src/backup/utils.ts +103 -0
  147. package/src/celoNews/CeloNewsFeed.test.tsx +157 -0
  148. package/src/celoNews/CeloNewsFeed.tsx +161 -0
  149. package/src/celoNews/CeloNewsFeedItem.test.tsx +46 -0
  150. package/src/celoNews/CeloNewsFeedItem.tsx +104 -0
  151. package/src/celoNews/types.ts +14 -0
  152. package/src/components/AccountNumber.test.tsx +25 -0
  153. package/src/components/AccountNumber.tsx +78 -0
  154. package/src/components/AccountNumberCard.tsx +23 -0
  155. package/src/components/Avatar.test.tsx +67 -0
  156. package/src/components/Avatar.tsx +72 -0
  157. package/src/components/BackButton.tsx +44 -0
  158. package/src/components/BeatingHeartLoader.tsx +39 -0
  159. package/src/components/BorderlessButton.tsx +25 -0
  160. package/src/components/BottomSheet.tsx +84 -0
  161. package/src/components/BottomSheetBase.tsx +87 -0
  162. package/src/components/BottomSheetScrollView.tsx +54 -0
  163. package/src/components/Button.test.tsx +94 -0
  164. package/src/components/Button.tsx +259 -0
  165. package/src/components/CallToActionsBar.tsx +68 -0
  166. package/src/components/CancelButton.test.tsx +11 -0
  167. package/src/components/CancelButton.tsx +58 -0
  168. package/src/components/Card.tsx +34 -0
  169. package/src/components/CircleButton.test.tsx +35 -0
  170. package/src/components/CircleButton.tsx +64 -0
  171. package/src/components/ClipboardAwarePasteButton.tsx +65 -0
  172. package/src/components/CloseButton.tsx +41 -0
  173. package/src/components/CodeInput.test.tsx +26 -0
  174. package/src/components/CodeInput.tsx +124 -0
  175. package/src/components/CodeRow.test.tsx +27 -0
  176. package/src/components/CodeRow.tsx +163 -0
  177. package/src/components/ContactCircle.test.tsx +67 -0
  178. package/src/components/ContactCircle.tsx +133 -0
  179. package/src/components/ContactCircleSelf.tsx +28 -0
  180. package/src/components/CurrencyDisplay.tsx +242 -0
  181. package/src/components/DataFieldWithCopy.tsx +75 -0
  182. package/src/components/DevSkipButton.tsx +105 -0
  183. package/src/components/Dialog.test.tsx +14 -0
  184. package/src/components/Dialog.tsx +124 -0
  185. package/src/components/Dropdown.tsx +98 -0
  186. package/src/components/EmptyView.tsx +34 -0
  187. package/src/components/ErrorMessageInline.tsx +78 -0
  188. package/src/components/ExchangesBottomSheet.test.tsx +84 -0
  189. package/src/components/ExchangesBottomSheet.tsx +74 -0
  190. package/src/components/Expandable.tsx +57 -0
  191. package/src/components/FeeDrawer.test.tsx +150 -0
  192. package/src/components/FeeDrawer.tsx +127 -0
  193. package/src/components/FeeIcon.test.tsx +14 -0
  194. package/src/components/FeeIcon.tsx +95 -0
  195. package/src/components/FeeInfoBottomSheet.test.tsx +320 -0
  196. package/src/components/FeeInfoBottomSheet.tsx +219 -0
  197. package/src/components/FilterChipsCarousel.tsx +143 -0
  198. package/src/components/FormField.tsx +23 -0
  199. package/src/components/FormLabel.tsx +21 -0
  200. package/src/components/FormTextInput.tsx +16 -0
  201. package/src/components/FullscreenCTA.test.tsx +58 -0
  202. package/src/components/FullscreenCTA.tsx +60 -0
  203. package/src/components/GasFeeWarning.test.tsx +126 -0
  204. package/src/components/GasFeeWarning.tsx +124 -0
  205. package/src/components/GradientBlock.tsx +20 -0
  206. package/src/components/HorizontalLine.tsx +18 -0
  207. package/src/components/IconWithNetworkBadge.test.tsx +49 -0
  208. package/src/components/IconWithNetworkBadge.tsx +69 -0
  209. package/src/components/InLineNotification.test.tsx +74 -0
  210. package/src/components/InLineNotification.tsx +160 -0
  211. package/src/components/InfoBottomSheet.test.tsx +55 -0
  212. package/src/components/InfoBottomSheet.tsx +79 -0
  213. package/src/components/ItemSeparator.test.tsx +8 -0
  214. package/src/components/ItemSeparator.tsx +16 -0
  215. package/src/components/KeyboardAwareScrollView.tsx +104 -0
  216. package/src/components/KeyboardSpacer.tsx +168 -0
  217. package/src/components/LabelWithInfo.tsx +57 -0
  218. package/src/components/LegacyTokenDisplay.test.tsx +282 -0
  219. package/src/components/LegacyTokenDisplay.tsx +63 -0
  220. package/src/components/LegacyTokenTotalLineItem.test.tsx +90 -0
  221. package/src/components/LegacyTokenTotalLineItem.tsx +38 -0
  222. package/src/components/LineItemRow.tsx +74 -0
  223. package/src/components/ListItem.test.tsx +19 -0
  224. package/src/components/ListItem.tsx +44 -0
  225. package/src/components/MessagingCard.tsx +21 -0
  226. package/src/components/Modal.tsx +57 -0
  227. package/src/components/NumberKeypad.test.tsx +21 -0
  228. package/src/components/NumberKeypad.tsx +102 -0
  229. package/src/components/NumberTicker.tsx +115 -0
  230. package/src/components/OnboardingCard.tsx +61 -0
  231. package/src/components/Pagination.tsx +39 -0
  232. package/src/components/PercentageIndicator.test.tsx +118 -0
  233. package/src/components/PercentageIndicator.tsx +75 -0
  234. package/src/components/PhoneNumberInput.test.tsx +99 -0
  235. package/src/components/PhoneNumberInput.tsx +132 -0
  236. package/src/components/PhoneNumberWithFlag.tsx +54 -0
  237. package/src/components/QrScanButton.test.tsx +21 -0
  238. package/src/components/QrScanButton.tsx +30 -0
  239. package/src/components/RecoveryPhraseInput.test.tsx +26 -0
  240. package/src/components/RecoveryPhraseInput.tsx +188 -0
  241. package/src/components/ReviewHeader.test.tsx +21 -0
  242. package/src/components/ReviewHeader.tsx +36 -0
  243. package/src/components/ReviewTransaction.test.tsx +474 -0
  244. package/src/components/ReviewTransaction.tsx +526 -0
  245. package/src/components/RowDivider.tsx +36 -0
  246. package/src/components/SearchInput.tsx +40 -0
  247. package/src/components/SectionHead.test.tsx +9 -0
  248. package/src/components/SectionHead.tsx +33 -0
  249. package/src/components/SegmentedControl.test.tsx +28 -0
  250. package/src/components/SegmentedControl.tsx +156 -0
  251. package/src/components/SelectRecipientButton.tsx +89 -0
  252. package/src/components/SelectionOption.test.tsx +18 -0
  253. package/src/components/SelectionOption.tsx +62 -0
  254. package/src/components/SettingsGearButton.tsx +30 -0
  255. package/src/components/SettingsItem.test.tsx +80 -0
  256. package/src/components/SettingsItem.tsx +195 -0
  257. package/src/components/SimpleMessagingCard.test.tsx +54 -0
  258. package/src/components/SimpleMessagingCard.tsx +90 -0
  259. package/src/components/SingleDigitInput.tsx +53 -0
  260. package/src/components/SkeletonPlaceholder.tsx +33 -0
  261. package/src/components/SmallButton.test.tsx +41 -0
  262. package/src/components/SmallButton.tsx +74 -0
  263. package/src/components/SmartTopAlert.test.tsx +22 -0
  264. package/src/components/SmartTopAlert.tsx +183 -0
  265. package/src/components/Switch.tsx +19 -0
  266. package/src/components/TextButton.tsx +22 -0
  267. package/src/components/TextInput.tsx +133 -0
  268. package/src/components/TextInputWithButtons.test.tsx +24 -0
  269. package/src/components/TextInputWithButtons.tsx +54 -0
  270. package/src/components/Toast.test.tsx +62 -0
  271. package/src/components/Toast.tsx +180 -0
  272. package/src/components/TokenBalance.test.tsx +389 -0
  273. package/src/components/TokenBalance.tsx +321 -0
  274. package/src/components/TokenBottomSheet.test.tsx +356 -0
  275. package/src/components/TokenBottomSheet.tsx +413 -0
  276. package/src/components/TokenDisplay.test.tsx +274 -0
  277. package/src/components/TokenDisplay.tsx +104 -0
  278. package/src/components/TokenEnterAmount.test.tsx +461 -0
  279. package/src/components/TokenEnterAmount.tsx +591 -0
  280. package/src/components/TokenIcon.test.tsx +93 -0
  281. package/src/components/TokenIcon.tsx +142 -0
  282. package/src/components/TokenTotalLineItem.test.tsx +199 -0
  283. package/src/components/TokenTotalLineItem.tsx +103 -0
  284. package/src/components/Touchable.tsx +48 -0
  285. package/src/components/ValidatedTextInput.tsx +96 -0
  286. package/src/components/WebView.tsx +43 -0
  287. package/src/components/WithPasteAware.tsx +113 -0
  288. package/src/components/WithTextInputPasteAware.tsx +51 -0
  289. package/src/components/__snapshots__/AccountNumber.test.tsx.snap +87 -0
  290. package/src/components/__snapshots__/Avatar.test.tsx.snap +435 -0
  291. package/src/components/__snapshots__/Button.test.tsx.snap +292 -0
  292. package/src/components/__snapshots__/CircleButton.test.tsx.snap +211 -0
  293. package/src/components/__snapshots__/CodeRow.test.tsx.snap +211 -0
  294. package/src/components/__snapshots__/ContactCircle.test.tsx.snap +46 -0
  295. package/src/components/__snapshots__/Dialog.test.tsx.snap +248 -0
  296. package/src/components/__snapshots__/FeeIcon.test.tsx.snap +147 -0
  297. package/src/components/__snapshots__/FullscreenCTA.test.tsx.snap +183 -0
  298. package/src/components/__snapshots__/ItemSeparator.test.tsx.snap +13 -0
  299. package/src/components/__snapshots__/NumberKeypad.test.tsx.snap +1434 -0
  300. package/src/components/__snapshots__/PhoneNumberInput.test.tsx.snap +202 -0
  301. package/src/components/__snapshots__/SectionHead.test.tsx.snap +32 -0
  302. package/src/components/__snapshots__/SelectionOption.test.tsx.snap +197 -0
  303. package/src/components/__snapshots__/SettingsItem.test.tsx.snap +226 -0
  304. package/src/components/__snapshots__/SmartTopAlert.test.tsx.snap +103 -0
  305. package/src/components/__snapshots__/TextInputWithButtons.test.tsx.snap +78 -0
  306. package/src/components/header/CustomHeader.tsx +56 -0
  307. package/src/components/multiSelect/MultiSelectBottomSheet.test.tsx +175 -0
  308. package/src/components/multiSelect/MultiSelectBottomSheet.tsx +249 -0
  309. package/src/components/multiSelect/NetworkMultiSelectBottomSheet.test.tsx +77 -0
  310. package/src/components/multiSelect/NetworkMultiSelectBottomSheet.tsx +56 -0
  311. package/src/components/useShowOrHideAnimation.tsx +33 -0
  312. package/src/config.enc +0 -0
  313. package/src/config.ts +186 -0
  314. package/src/dapps/DappShortcutTransactionRequest.test.tsx +187 -0
  315. package/src/dapps/DappShortcutTransactionRequest.tsx +270 -0
  316. package/src/dapps/DappShortcutsRewards.test.tsx +292 -0
  317. package/src/dapps/DappShortcutsRewards.tsx +284 -0
  318. package/src/dapps/DappsScreen.test.tsx +716 -0
  319. package/src/dapps/DappsScreen.tsx +365 -0
  320. package/src/dapps/saga.test.ts +194 -0
  321. package/src/dapps/saga.ts +136 -0
  322. package/src/dapps/selectors.test.ts +127 -0
  323. package/src/dapps/selectors.ts +123 -0
  324. package/src/dapps/slice.ts +110 -0
  325. package/src/dapps/types.ts +30 -0
  326. package/src/dappsExplorer/DappCard.tsx +141 -0
  327. package/src/dappsExplorer/DappFeaturedActions.test.tsx +72 -0
  328. package/src/dappsExplorer/DappFeaturedActions.tsx +121 -0
  329. package/src/dappsExplorer/DiscoverDappsCard.tsx +186 -0
  330. package/src/dappsExplorer/NoResults.tsx +126 -0
  331. package/src/dappsExplorer/TabDiscover.test.tsx +397 -0
  332. package/src/dappsExplorer/TabDiscover.tsx +76 -0
  333. package/src/dappsExplorer/searchDappList.test.tsx +69 -0
  334. package/src/dappsExplorer/searchDappList.tsx +113 -0
  335. package/src/dappsExplorer/useDappFavoritedToast.tsx +56 -0
  336. package/src/dappsExplorer/useOpenDapp.tsx +31 -0
  337. package/src/divviProtocol/saga.test.ts +51 -0
  338. package/src/divviProtocol/saga.ts +44 -0
  339. package/src/earn/ActionCard.tsx +46 -0
  340. package/src/earn/EarnDepositConfirmationScreen.test.tsx +603 -0
  341. package/src/earn/EarnDepositConfirmationScreen.tsx +596 -0
  342. package/src/earn/EarnEnterAmount.test.tsx +1296 -0
  343. package/src/earn/EarnEnterAmount.tsx +815 -0
  344. package/src/earn/EarnEntrypoint.test.tsx +100 -0
  345. package/src/earn/EarnEntrypoint.tsx +127 -0
  346. package/src/earn/EarnHome.test.tsx +237 -0
  347. package/src/earn/EarnHome.tsx +411 -0
  348. package/src/earn/EarnInfoScreen.test.tsx +96 -0
  349. package/src/earn/EarnInfoScreen.tsx +174 -0
  350. package/src/earn/EarnTabBar.test.tsx +43 -0
  351. package/src/earn/EarnTabBar.tsx +73 -0
  352. package/src/earn/EarnWithdrawConfirmationScreen.test.tsx +1022 -0
  353. package/src/earn/EarnWithdrawConfirmationScreen.tsx +476 -0
  354. package/src/earn/PoolCard.test.tsx +68 -0
  355. package/src/earn/PoolCard.tsx +218 -0
  356. package/src/earn/PoolList.tsx +87 -0
  357. package/src/earn/TabEarn.test.tsx +159 -0
  358. package/src/earn/TabEarn.tsx +354 -0
  359. package/src/earn/hooks.test.tsx +328 -0
  360. package/src/earn/hooks.ts +178 -0
  361. package/src/earn/poolInfoScreen/BeforeDepositBottomSheet.test.tsx +411 -0
  362. package/src/earn/poolInfoScreen/BeforeDepositBottomSheet.tsx +448 -0
  363. package/src/earn/poolInfoScreen/Cards.tsx +383 -0
  364. package/src/earn/poolInfoScreen/EarnPoolInfoScreen.test.tsx +498 -0
  365. package/src/earn/poolInfoScreen/EarnPoolInfoScreen.tsx +595 -0
  366. package/src/earn/poolInfoScreen/SafetyCard.test.tsx +108 -0
  367. package/src/earn/poolInfoScreen/SafetyCard.tsx +165 -0
  368. package/src/earn/poolInfoScreen/TokenIcons.tsx +37 -0
  369. package/src/earn/poolInfoScreen/WithdrawBottomSheet.test.tsx +235 -0
  370. package/src/earn/poolInfoScreen/WithdrawBottomSheet.tsx +168 -0
  371. package/src/earn/prepareTransactions.test.ts +616 -0
  372. package/src/earn/prepareTransactions.ts +281 -0
  373. package/src/earn/saga.test.ts +1149 -0
  374. package/src/earn/saga.ts +456 -0
  375. package/src/earn/selectors.ts +5 -0
  376. package/src/earn/simulateTransactions.test.ts +121 -0
  377. package/src/earn/simulateTransactions.ts +58 -0
  378. package/src/earn/slice.test.ts +87 -0
  379. package/src/earn/slice.ts +73 -0
  380. package/src/earn/types.ts +70 -0
  381. package/src/earn/utils.test.ts +48 -0
  382. package/src/earn/utils.ts +54 -0
  383. package/src/fiatExchanges/BidaliScreen.test.tsx +163 -0
  384. package/src/fiatExchanges/BidaliScreen.tsx +189 -0
  385. package/src/fiatExchanges/CashInSuccess.test.tsx +54 -0
  386. package/src/fiatExchanges/CashInSuccess.tsx +104 -0
  387. package/src/fiatExchanges/ExchangeQR.test.tsx +100 -0
  388. package/src/fiatExchanges/ExchangeQR.tsx +94 -0
  389. package/src/fiatExchanges/ExternalExchanges.test.tsx +67 -0
  390. package/src/fiatExchanges/ExternalExchanges.tsx +104 -0
  391. package/src/fiatExchanges/FiatExchangeAmount.test.tsx +418 -0
  392. package/src/fiatExchanges/FiatExchangeAmount.tsx +305 -0
  393. package/src/fiatExchanges/FiatExchangeCurrencyBottomSheet.test.tsx +309 -0
  394. package/src/fiatExchanges/FiatExchangeCurrencyBottomSheet.tsx +139 -0
  395. package/src/fiatExchanges/PaymentMethodSection.test.tsx +259 -0
  396. package/src/fiatExchanges/PaymentMethodSection.tsx +378 -0
  397. package/src/fiatExchanges/ReviewFees.test.tsx +74 -0
  398. package/src/fiatExchanges/ReviewFees.tsx +202 -0
  399. package/src/fiatExchanges/SelectProvider.test.tsx +415 -0
  400. package/src/fiatExchanges/SelectProvider.tsx +649 -0
  401. package/src/fiatExchanges/SimplexScreen.test.tsx +109 -0
  402. package/src/fiatExchanges/SimplexScreen.tsx +185 -0
  403. package/src/fiatExchanges/Spend.tsx +104 -0
  404. package/src/fiatExchanges/WithdrawSpend.test.tsx +37 -0
  405. package/src/fiatExchanges/WithdrawSpend.tsx +139 -0
  406. package/src/fiatExchanges/__snapshots__/CashInSuccess.test.tsx.snap +351 -0
  407. package/src/fiatExchanges/__snapshots__/FiatExchangeAmount.test.tsx.snap +397 -0
  408. package/src/fiatExchanges/__snapshots__/ReviewFees.test.tsx.snap +844 -0
  409. package/src/fiatExchanges/__snapshots__/SimplexScreen.test.tsx.snap +1083 -0
  410. package/src/fiatExchanges/actions.ts +67 -0
  411. package/src/fiatExchanges/amount.test.tsx +48 -0
  412. package/src/fiatExchanges/amount.tsx +45 -0
  413. package/src/fiatExchanges/quotes/ExternalQuote.test.ts +172 -0
  414. package/src/fiatExchanges/quotes/ExternalQuote.ts +121 -0
  415. package/src/fiatExchanges/quotes/FiatConnectQuote.test.ts +718 -0
  416. package/src/fiatExchanges/quotes/FiatConnectQuote.ts +343 -0
  417. package/src/fiatExchanges/quotes/NormalizedQuote.ts +47 -0
  418. package/src/fiatExchanges/quotes/constants.ts +63 -0
  419. package/src/fiatExchanges/quotes/normalizeQuotes.test.ts +102 -0
  420. package/src/fiatExchanges/quotes/normalizeQuotes.ts +76 -0
  421. package/src/fiatExchanges/quotes/utils.ts +31 -0
  422. package/src/fiatExchanges/reducer.ts +65 -0
  423. package/src/fiatExchanges/saga.test.ts +281 -0
  424. package/src/fiatExchanges/saga.ts +195 -0
  425. package/src/fiatExchanges/types.ts +104 -0
  426. package/src/fiatExchanges/utils.test.ts +159 -0
  427. package/src/fiatExchanges/utils.tsx +287 -0
  428. package/src/fiatconnect/FiatDetailsScreen.test.tsx +371 -0
  429. package/src/fiatconnect/FiatDetailsScreen.tsx +441 -0
  430. package/src/fiatconnect/LinkAccountScreen.test.tsx +107 -0
  431. package/src/fiatconnect/LinkAccountScreen.tsx +180 -0
  432. package/src/fiatconnect/RefetchQuoteScreen.test.tsx +119 -0
  433. package/src/fiatconnect/RefetchQuoteScreen.tsx +68 -0
  434. package/src/fiatconnect/ReviewScreen.test.tsx +505 -0
  435. package/src/fiatconnect/ReviewScreen.tsx +708 -0
  436. package/src/fiatconnect/TransferStatusScreen.test.tsx +399 -0
  437. package/src/fiatconnect/TransferStatusScreen.tsx +351 -0
  438. package/src/fiatconnect/clients.test.tsx +83 -0
  439. package/src/fiatconnect/clients.ts +69 -0
  440. package/src/fiatconnect/consts.ts +41 -0
  441. package/src/fiatconnect/fiatAccountSchemas/accountNumber.test.ts +60 -0
  442. package/src/fiatconnect/fiatAccountSchemas/accountNumber.ts +55 -0
  443. package/src/fiatconnect/fiatAccountSchemas/ibanNumber.test.ts +53 -0
  444. package/src/fiatconnect/fiatAccountSchemas/ibanNumber.ts +56 -0
  445. package/src/fiatconnect/fiatAccountSchemas/ifscAccount.test.ts +45 -0
  446. package/src/fiatconnect/fiatAccountSchemas/ifscAccount.ts +58 -0
  447. package/src/fiatconnect/fiatAccountSchemas/index.test.ts +119 -0
  448. package/src/fiatconnect/fiatAccountSchemas/index.ts +89 -0
  449. package/src/fiatconnect/fiatAccountSchemas/mobileMoney.test.ts +29 -0
  450. package/src/fiatconnect/fiatAccountSchemas/mobileMoney.ts +61 -0
  451. package/src/fiatconnect/fiatAccountSchemas/pixAccount.test.ts +45 -0
  452. package/src/fiatconnect/fiatAccountSchemas/pixAccount.ts +62 -0
  453. package/src/fiatconnect/fiatAccountSchemas/types.ts +40 -0
  454. package/src/fiatconnect/index.test.ts +244 -0
  455. package/src/fiatconnect/index.ts +179 -0
  456. package/src/fiatconnect/kyc/KycDenied.test.tsx +139 -0
  457. package/src/fiatconnect/kyc/KycDenied.tsx +144 -0
  458. package/src/fiatconnect/kyc/KycExpired.test.tsx +128 -0
  459. package/src/fiatconnect/kyc/KycExpired.tsx +127 -0
  460. package/src/fiatconnect/kyc/KycInactive.test.tsx +139 -0
  461. package/src/fiatconnect/kyc/KycInactive.tsx +100 -0
  462. package/src/fiatconnect/kyc/KycPending.test.tsx +82 -0
  463. package/src/fiatconnect/kyc/KycPending.tsx +106 -0
  464. package/src/fiatconnect/kyc/getNavigationOptions.tsx +72 -0
  465. package/src/fiatconnect/saga.test.ts +2594 -0
  466. package/src/fiatconnect/saga.ts +1133 -0
  467. package/src/fiatconnect/selectors.ts +24 -0
  468. package/src/fiatconnect/slice.test.ts +79 -0
  469. package/src/fiatconnect/slice.ts +380 -0
  470. package/src/fiatconnect/types.ts +24 -0
  471. package/src/firebase/actions.ts +11 -0
  472. package/src/firebase/db-rules.json +129 -0
  473. package/src/firebase/firebase.test.ts +190 -0
  474. package/src/firebase/firebase.ts +315 -0
  475. package/src/firebase/notifications.test.ts +180 -0
  476. package/src/firebase/notifications.ts +106 -0
  477. package/src/firebase/saga.test.ts +23 -0
  478. package/src/firebase/saga.ts +81 -0
  479. package/src/flags.ts +76 -0
  480. package/src/home/ActionsCarousel.test.tsx +162 -0
  481. package/src/home/ActionsCarousel.tsx +161 -0
  482. package/src/home/DivviBottomSheet.test.tsx +59 -0
  483. package/src/home/DivviBottomSheet.tsx +197 -0
  484. package/src/home/GetStarted.test.tsx +47 -0
  485. package/src/home/GetStarted.tsx +115 -0
  486. package/src/home/NotificationBell.test.tsx +81 -0
  487. package/src/home/NotificationBell.tsx +42 -0
  488. package/src/home/NotificationBox.test.tsx +373 -0
  489. package/src/home/NotificationBox.tsx +362 -0
  490. package/src/home/NotificationCenter.test.tsx +466 -0
  491. package/src/home/NotificationCenter.tsx +185 -0
  492. package/src/home/SendBar.tsx +60 -0
  493. package/src/home/TabHome.test.tsx +336 -0
  494. package/src/home/TabHome.tsx +181 -0
  495. package/src/home/__snapshots__/NotificationBox.test.tsx.snap +933 -0
  496. package/src/home/actions.ts +154 -0
  497. package/src/home/celebration/ConfettiCelebration.tsx +170 -0
  498. package/src/home/celebration/NftCelebration.test.tsx +137 -0
  499. package/src/home/celebration/NftCelebration.tsx +207 -0
  500. package/src/home/celebration/NftReward.test.tsx +94 -0
  501. package/src/home/celebration/NftReward.tsx +172 -0
  502. package/src/home/celebration/confettiAnimation.json +5126 -0
  503. package/src/home/celebration/utils.test.ts +32 -0
  504. package/src/home/celebration/utils.ts +21 -0
  505. package/src/home/reducers.test.ts +245 -0
  506. package/src/home/reducers.ts +191 -0
  507. package/src/home/saga.test.ts +34 -0
  508. package/src/home/saga.ts +87 -0
  509. package/src/home/selectors.test.ts +302 -0
  510. package/src/home/selectors.ts +82 -0
  511. package/src/home/types.ts +31 -0
  512. package/src/i18n/i18n.test.ts +106 -0
  513. package/src/i18n/index.ts +88 -0
  514. package/src/i18n/otaTranslations.test.ts +34 -0
  515. package/src/i18n/otaTranslations.ts +15 -0
  516. package/src/i18n/saga.test.ts +106 -0
  517. package/src/i18n/saga.ts +92 -0
  518. package/src/i18n/selectors.ts +12 -0
  519. package/src/i18n/slice.ts +46 -0
  520. package/src/i18n/useChangeLanguage.test.tsx +53 -0
  521. package/src/i18n/useChangeLanguage.ts +19 -0
  522. package/src/icons/Activity.tsx +21 -0
  523. package/src/icons/Apple.tsx +14 -0
  524. package/src/icons/ArrowDown.tsx +19 -0
  525. package/src/icons/ArrowRightThick.tsx +16 -0
  526. package/src/icons/Attention.tsx +22 -0
  527. package/src/icons/BackChevron.tsx +24 -0
  528. package/src/icons/Backspace.tsx +31 -0
  529. package/src/icons/BankIcon.tsx +23 -0
  530. package/src/icons/Celebration.tsx +18 -0
  531. package/src/icons/CheckCircle.tsx +19 -0
  532. package/src/icons/Checkmark.tsx +26 -0
  533. package/src/icons/CircleArrowIcon.tsx +39 -0
  534. package/src/icons/CircledIcon.tsx +47 -0
  535. package/src/icons/Clipboard.tsx +17 -0
  536. package/src/icons/ClockIcon.tsx +23 -0
  537. package/src/icons/CloudCheck.tsx +19 -0
  538. package/src/icons/ComingSoon.tsx +18 -0
  539. package/src/icons/CopyIcon.tsx +14 -0
  540. package/src/icons/CrossChainIndicator.tsx +36 -0
  541. package/src/icons/DataDown.tsx +16 -0
  542. package/src/icons/DataUp.tsx +16 -0
  543. package/src/icons/DownArrowIcon.tsx +37 -0
  544. package/src/icons/EarnCoins.tsx +22 -0
  545. package/src/icons/Error.tsx +30 -0
  546. package/src/icons/Exit.tsx +18 -0
  547. package/src/icons/ExploreTokens.tsx +17 -0
  548. package/src/icons/EyeIcon.tsx +22 -0
  549. package/src/icons/ForwardChevron.tsx +30 -0
  550. package/src/icons/GearIcon.tsx +19 -0
  551. package/src/icons/Google.tsx +14 -0
  552. package/src/icons/GradientIcon.tsx +70 -0
  553. package/src/icons/GreenLoadingSpinner.tsx +16 -0
  554. package/src/icons/GreenLoadingSpinnerToCheck.tsx +16 -0
  555. package/src/icons/HamburgerCard.tsx +55 -0
  556. package/src/icons/Help.tsx +21 -0
  557. package/src/icons/HiddenEyeIcon.tsx +26 -0
  558. package/src/icons/ImageErrorIcon.tsx +26 -0
  559. package/src/icons/InfoIcon.tsx +33 -0
  560. package/src/icons/KeylessBackup.tsx +32 -0
  561. package/src/icons/LinkArrow.tsx +27 -0
  562. package/src/icons/LoadingSpinner.tsx +25 -0
  563. package/src/icons/Lock.tsx +19 -0
  564. package/src/icons/MagicWand.tsx +20 -0
  565. package/src/icons/Manage.tsx +22 -0
  566. package/src/icons/NotificationBellIcon.tsx +25 -0
  567. package/src/icons/OpenLinkIcon.tsx +18 -0
  568. package/src/icons/Paste.tsx +33 -0
  569. package/src/icons/Phone.tsx +20 -0
  570. package/src/icons/Preferences.tsx +21 -0
  571. package/src/icons/QRCode.tsx +14 -0
  572. package/src/icons/RadioButton.tsx +39 -0
  573. package/src/icons/RedLoadingSpinnerToInfo.tsx +16 -0
  574. package/src/icons/Refresh.tsx +30 -0
  575. package/src/icons/Reward.tsx +29 -0
  576. package/src/icons/ScanIcon.tsx +26 -0
  577. package/src/icons/Search.tsx +25 -0
  578. package/src/icons/Share.tsx +21 -0
  579. package/src/icons/Social.tsx +15 -0
  580. package/src/icons/Stack.tsx +21 -0
  581. package/src/icons/StarOutline.tsx +14 -0
  582. package/src/icons/SwapAndDeposit.tsx +20 -0
  583. package/src/icons/SwapArrows.tsx +20 -0
  584. package/src/icons/ThumbsUpIllustration.tsx +64 -0
  585. package/src/icons/Times.tsx +38 -0
  586. package/src/icons/TripleDotVertical.tsx +18 -0
  587. package/src/icons/Trophy.tsx +18 -0
  588. package/src/icons/User.tsx +19 -0
  589. package/src/icons/Warning.tsx +22 -0
  590. package/src/icons/biometry/Face.tsx +28 -0
  591. package/src/icons/biometry/FaceID.tsx +18 -0
  592. package/src/icons/biometry/Fingerprint.tsx +16 -0
  593. package/src/icons/biometry/Iris.tsx +22 -0
  594. package/src/icons/biometry/TouchID.tsx +44 -0
  595. package/src/icons/loadingSpinnerGreen.json +401 -0
  596. package/src/icons/lottie-json/greenLoadingSpinner.json +370 -0
  597. package/src/icons/lottie-json/greenLoadingSpinnerToCheck.json +666 -0
  598. package/src/icons/lottie-json/redLoadingSpinnerToInfo.json +950 -0
  599. package/src/icons/navigator/Discover.tsx +17 -0
  600. package/src/icons/navigator/Home.tsx +18 -0
  601. package/src/icons/navigator/Wallet.tsx +18 -0
  602. package/src/icons/quick-actions/Add.tsx +18 -0
  603. package/src/icons/quick-actions/More.tsx +19 -0
  604. package/src/icons/quick-actions/Receive.tsx +18 -0
  605. package/src/icons/quick-actions/Send.tsx +18 -0
  606. package/src/icons/quick-actions/Withdraw.tsx +18 -0
  607. package/src/identity/actions.ts +244 -0
  608. package/src/identity/contactMapping.test.ts +391 -0
  609. package/src/identity/contactMapping.ts +422 -0
  610. package/src/identity/reducer.ts +243 -0
  611. package/src/identity/saga.test.ts +103 -0
  612. package/src/identity/saga.ts +122 -0
  613. package/src/identity/secureSend.ts +171 -0
  614. package/src/identity/selectors.ts +16 -0
  615. package/src/identity/types.ts +14 -0
  616. package/src/images/Blob.tsx +20 -0
  617. package/src/images/Celebration.tsx +35 -0
  618. package/src/images/DivviLogo.tsx +22 -0
  619. package/src/images/GuideKeyIcon.tsx +51 -0
  620. package/src/images/Images.ts +22 -0
  621. package/src/images/Logo.tsx +66 -0
  622. package/src/images/LogoHeart.tsx +206 -0
  623. package/src/images/NftReceivedIcon.tsx +18 -0
  624. package/src/images/NftSentIcon.tsx +18 -0
  625. package/src/images/Palm.tsx +21 -0
  626. package/src/images/Star.tsx +20 -0
  627. package/src/images/WelcomeLogo.tsx +19 -0
  628. package/src/images/assets/account-key-1.png +0 -0
  629. package/src/images/assets/account-key-1@1.5x.png +0 -0
  630. package/src/images/assets/account-key-1@2x.png +0 -0
  631. package/src/images/assets/account-key-1@3x.png +0 -0
  632. package/src/images/assets/account-key-1@4x.png +0 -0
  633. package/src/images/assets/account-key-2.png +0 -0
  634. package/src/images/assets/account-key-2@1.5x.png +0 -0
  635. package/src/images/assets/account-key-2@2x.png +0 -0
  636. package/src/images/assets/account-key-2@3x.png +0 -0
  637. package/src/images/assets/account-key-2@4x.png +0 -0
  638. package/src/images/assets/account-key-3.png +0 -0
  639. package/src/images/assets/account-key-3@1.5x.png +0 -0
  640. package/src/images/assets/account-key-3@2x.png +0 -0
  641. package/src/images/assets/account-key-3@3x.png +0 -0
  642. package/src/images/assets/account-key-3@4x.png +0 -0
  643. package/src/images/assets/account-key-4.png +0 -0
  644. package/src/images/assets/account-key-4@1.5x.png +0 -0
  645. package/src/images/assets/account-key-4@2x.png +0 -0
  646. package/src/images/assets/account-key-4@3x.png +0 -0
  647. package/src/images/assets/account-key-4@4x.png +0 -0
  648. package/src/images/assets/biometry-face-id.png +0 -0
  649. package/src/images/assets/biometry-face-id@1.5x.png +0 -0
  650. package/src/images/assets/biometry-face-id@2x.png +0 -0
  651. package/src/images/assets/biometry-face-id@3x.png +0 -0
  652. package/src/images/assets/biometry-face-id@4x.png +0 -0
  653. package/src/images/assets/biometry-face.png +0 -0
  654. package/src/images/assets/biometry-face@1.5x.png +0 -0
  655. package/src/images/assets/biometry-face@2x.png +0 -0
  656. package/src/images/assets/biometry-face@3x.png +0 -0
  657. package/src/images/assets/biometry-face@4x.png +0 -0
  658. package/src/images/assets/biometry-fingerprint.png +0 -0
  659. package/src/images/assets/biometry-fingerprint@1.5x.png +0 -0
  660. package/src/images/assets/biometry-fingerprint@2x.png +0 -0
  661. package/src/images/assets/biometry-fingerprint@3x.png +0 -0
  662. package/src/images/assets/biometry-fingerprint@4x.png +0 -0
  663. package/src/images/assets/biometry-iris.png +0 -0
  664. package/src/images/assets/biometry-iris@1.5x.png +0 -0
  665. package/src/images/assets/biometry-iris@2x.png +0 -0
  666. package/src/images/assets/biometry-iris@3x.png +0 -0
  667. package/src/images/assets/biometry-iris@4x.png +0 -0
  668. package/src/images/assets/biometry-touch-id.png +0 -0
  669. package/src/images/assets/biometry-touch-id@1.5x.png +0 -0
  670. package/src/images/assets/biometry-touch-id@2x.png +0 -0
  671. package/src/images/assets/biometry-touch-id@3x.png +0 -0
  672. package/src/images/assets/biometry-touch-id@4x.png +0 -0
  673. package/src/images/assets/celo-education-1.png +0 -0
  674. package/src/images/assets/celo-education-1@1.5x.png +0 -0
  675. package/src/images/assets/celo-education-1@2x.png +0 -0
  676. package/src/images/assets/celo-education-1@3x.png +0 -0
  677. package/src/images/assets/celo-education-1@4x.png +0 -0
  678. package/src/images/assets/celo-education-2.png +0 -0
  679. package/src/images/assets/celo-education-2@1.5x.png +0 -0
  680. package/src/images/assets/celo-education-2@2x.png +0 -0
  681. package/src/images/assets/celo-education-2@3x.png +0 -0
  682. package/src/images/assets/celo-education-2@4x.png +0 -0
  683. package/src/images/assets/celo-education-3.png +0 -0
  684. package/src/images/assets/celo-education-3@1.5x.png +0 -0
  685. package/src/images/assets/celo-education-3@2x.png +0 -0
  686. package/src/images/assets/celo-education-3@3x.png +0 -0
  687. package/src/images/assets/celo-education-3@4x.png +0 -0
  688. package/src/images/assets/celo-education-4.png +0 -0
  689. package/src/images/assets/celo-education-4@1.5x.png +0 -0
  690. package/src/images/assets/celo-education-4@2x.png +0 -0
  691. package/src/images/assets/celo-education-4@3x.png +0 -0
  692. package/src/images/assets/celo-education-4@4x.png +0 -0
  693. package/src/images/assets/earn-card-background.png +0 -0
  694. package/src/images/assets/earn-card-background@1.5x.png +0 -0
  695. package/src/images/assets/earn-card-background@2x.png +0 -0
  696. package/src/images/assets/earn-card-background@3x.png +0 -0
  697. package/src/images/assets/earn-card-background@4x.png +0 -0
  698. package/src/images/assets/email.png +0 -0
  699. package/src/images/assets/email@1.5x.png +0 -0
  700. package/src/images/assets/email@2x.png +0 -0
  701. package/src/images/assets/email@3x.png +0 -0
  702. package/src/images/assets/email@4x.png +0 -0
  703. package/src/images/assets/fiat-exchange.png +0 -0
  704. package/src/images/assets/fiat-exchange@1.5x.png +0 -0
  705. package/src/images/assets/fiat-exchange@2x.png +0 -0
  706. package/src/images/assets/fiat-exchange@3x.png +0 -0
  707. package/src/images/assets/fiat-exchange@4x.png +0 -0
  708. package/src/images/assets/get-verified.png +0 -0
  709. package/src/images/assets/get-verified@1.5x.png +0 -0
  710. package/src/images/assets/get-verified@2x.png +0 -0
  711. package/src/images/assets/get-verified@3x.png +0 -0
  712. package/src/images/assets/get-verified@4x.png +0 -0
  713. package/src/images/assets/learn-celo.png +0 -0
  714. package/src/images/assets/learn-celo@1.5x.png +0 -0
  715. package/src/images/assets/learn-celo@2x.png +0 -0
  716. package/src/images/assets/learn-celo@3x.png +0 -0
  717. package/src/images/assets/learn-celo@4x.png +0 -0
  718. package/src/images/assets/pie.png +0 -0
  719. package/src/images/assets/pie@1.5x.png +0 -0
  720. package/src/images/assets/pie@2x.png +0 -0
  721. package/src/images/assets/pie@3x.png +0 -0
  722. package/src/images/assets/pie@4x.png +0 -0
  723. package/src/images/assets/points-card-background.png +0 -0
  724. package/src/images/assets/points-card-background@1.5x.png +0 -0
  725. package/src/images/assets/points-card-background@2x.png +0 -0
  726. package/src/images/assets/points-card-background@3x.png +0 -0
  727. package/src/images/assets/points-card-background@4x.png +0 -0
  728. package/src/images/assets/points-illustration.png +0 -0
  729. package/src/images/assets/points-illustration@1.5x.png +0 -0
  730. package/src/images/assets/points-illustration@2x.png +0 -0
  731. package/src/images/assets/points-illustration@3x.png +0 -0
  732. package/src/images/assets/points-illustration@4x.png +0 -0
  733. package/src/images/assets/wallet-safe.png +0 -0
  734. package/src/images/assets/wallet-safe@1.5x.png +0 -0
  735. package/src/images/assets/wallet-safe@2x.png +0 -0
  736. package/src/images/assets/wallet-safe@3x.png +0 -0
  737. package/src/images/assets/wallet-safe@4x.png +0 -0
  738. package/src/import/ImportWallet.test.tsx +102 -0
  739. package/src/import/ImportWallet.tsx +277 -0
  740. package/src/import/actions.ts +41 -0
  741. package/src/import/reducer.ts +28 -0
  742. package/src/import/saga.test.ts +165 -0
  743. package/src/import/saga.ts +250 -0
  744. package/src/in-house-liquidity/client.test.ts +34 -0
  745. package/src/in-house-liquidity/client.ts +38 -0
  746. package/src/in-house-liquidity/index.test.ts +258 -0
  747. package/src/in-house-liquidity/index.ts +187 -0
  748. package/src/index.d.ts +25 -0
  749. package/src/jumpstart/JumpstartTransactionDetailsScreen.test.tsx +329 -0
  750. package/src/jumpstart/JumpstartTransactionDetailsScreen.tsx +407 -0
  751. package/src/jumpstart/fetchClaimStatus.ts +46 -0
  752. package/src/jumpstart/saga.test.ts +117 -0
  753. package/src/jumpstart/saga.ts +82 -0
  754. package/src/jumpstart/selectors.ts +5 -0
  755. package/src/jumpstart/slice.test.ts +51 -0
  756. package/src/jumpstart/slice.ts +64 -0
  757. package/src/keylessBackup/EnvelopeIcon.tsx +19 -0
  758. package/src/keylessBackup/KeylessBackupCancelButton.test.tsx +55 -0
  759. package/src/keylessBackup/KeylessBackupCancelButton.tsx +26 -0
  760. package/src/keylessBackup/KeylessBackupIntro.test.tsx +76 -0
  761. package/src/keylessBackup/KeylessBackupIntro.tsx +175 -0
  762. package/src/keylessBackup/KeylessBackupPhoneCodeInput.test.tsx +256 -0
  763. package/src/keylessBackup/KeylessBackupPhoneCodeInput.tsx +257 -0
  764. package/src/keylessBackup/KeylessBackupPhoneInput.test.tsx +67 -0
  765. package/src/keylessBackup/KeylessBackupPhoneInput.tsx +203 -0
  766. package/src/keylessBackup/KeylessBackupProgress.test.tsx +371 -0
  767. package/src/keylessBackup/KeylessBackupProgress.tsx +495 -0
  768. package/src/keylessBackup/LinkPhoneNumber.test.tsx +57 -0
  769. package/src/keylessBackup/LinkPhoneNumber.tsx +107 -0
  770. package/src/keylessBackup/SignInWithEmail.test.tsx +271 -0
  771. package/src/keylessBackup/SignInWithEmail.tsx +348 -0
  772. package/src/keylessBackup/SmartphoneIcon.tsx +19 -0
  773. package/src/keylessBackup/WalletSecurityPrimer.test.tsx +31 -0
  774. package/src/keylessBackup/WalletSecurityPrimer.tsx +81 -0
  775. package/src/keylessBackup/encryption.test.ts +139 -0
  776. package/src/keylessBackup/encryption.ts +121 -0
  777. package/src/keylessBackup/hooks.ts +179 -0
  778. package/src/keylessBackup/index.test.ts +204 -0
  779. package/src/keylessBackup/index.ts +98 -0
  780. package/src/keylessBackup/keychain.test.ts +55 -0
  781. package/src/keylessBackup/keychain.ts +30 -0
  782. package/src/keylessBackup/saga.test.ts +427 -0
  783. package/src/keylessBackup/saga.ts +264 -0
  784. package/src/keylessBackup/selectors.ts +8 -0
  785. package/src/keylessBackup/slice.ts +108 -0
  786. package/src/keylessBackup/types.ts +25 -0
  787. package/src/keylessBackup/web3auth.test.ts +74 -0
  788. package/src/keylessBackup/web3auth.ts +54 -0
  789. package/src/language/Language.test.tsx +41 -0
  790. package/src/language/Language.tsx +99 -0
  791. package/src/localCurrency/SelectLocalCurrency.test.tsx +19 -0
  792. package/src/localCurrency/SelectLocalCurrency.tsx +83 -0
  793. package/src/localCurrency/actions.ts +49 -0
  794. package/src/localCurrency/consts.test.ts +9 -0
  795. package/src/localCurrency/consts.ts +97 -0
  796. package/src/localCurrency/convert.test.ts +30 -0
  797. package/src/localCurrency/convert.ts +66 -0
  798. package/src/localCurrency/hooks.test.tsx +146 -0
  799. package/src/localCurrency/hooks.ts +47 -0
  800. package/src/localCurrency/reducer.ts +59 -0
  801. package/src/localCurrency/saga.test.ts +34 -0
  802. package/src/localCurrency/saga.ts +61 -0
  803. package/src/localCurrency/selectors.test.ts +47 -0
  804. package/src/localCurrency/selectors.ts +66 -0
  805. package/src/localCurrency/types.ts +6 -0
  806. package/src/missingGlobals.ts +21 -0
  807. package/src/nameGenerator/index.test.ts +46 -0
  808. package/src/nameGenerator/index.ts +17 -0
  809. package/src/nameGenerator/names.ts +938 -0
  810. package/src/navigator/DemoModeAuthBlock.test.tsx +60 -0
  811. package/src/navigator/DemoModeAuthBlock.tsx +61 -0
  812. package/src/navigator/DemoModeChipIndicator.test.tsx +109 -0
  813. package/src/navigator/DemoModeChipIndicator.tsx +76 -0
  814. package/src/navigator/Headers.tsx +263 -0
  815. package/src/navigator/NavigationService.test.tsx +74 -0
  816. package/src/navigator/NavigationService.ts +244 -0
  817. package/src/navigator/Navigator.tsx +760 -0
  818. package/src/navigator/NavigatorWrapper.test.tsx +65 -0
  819. package/src/navigator/NavigatorWrapper.tsx +248 -0
  820. package/src/navigator/QRNavigator.test.tsx +61 -0
  821. package/src/navigator/QRNavigator.tsx +144 -0
  822. package/src/navigator/Screens.tsx +107 -0
  823. package/src/navigator/ScrollAwareHeader.tsx +57 -0
  824. package/src/navigator/SettingsMenu.test.tsx +253 -0
  825. package/src/navigator/SettingsMenu.tsx +353 -0
  826. package/src/navigator/TabNavigator.test.tsx +181 -0
  827. package/src/navigator/TabNavigator.tsx +142 -0
  828. package/src/navigator/TopBarButton.test.tsx +44 -0
  829. package/src/navigator/TopBarButton.tsx +88 -0
  830. package/src/navigator/TopBarIconButtonV2.test.tsx +17 -0
  831. package/src/navigator/TopBarIconButtonV2.tsx +85 -0
  832. package/src/navigator/initialRoute.test.tsx +32 -0
  833. package/src/navigator/initialRoute.tsx +29 -0
  834. package/src/navigator/types.tsx +346 -0
  835. package/src/networkInfo/actions.ts +28 -0
  836. package/src/networkInfo/reducer.ts +44 -0
  837. package/src/networkInfo/saga.test.ts +43 -0
  838. package/src/networkInfo/saga.ts +100 -0
  839. package/src/networkInfo/selectors.ts +4 -0
  840. package/src/nfts/NftMedia.test.tsx +114 -0
  841. package/src/nfts/NftMedia.tsx +205 -0
  842. package/src/nfts/NftsInfoCarousel.test.tsx +218 -0
  843. package/src/nfts/NftsInfoCarousel.tsx +344 -0
  844. package/src/nfts/NftsLoadError.test.tsx +37 -0
  845. package/src/nfts/NftsLoadError.tsx +111 -0
  846. package/src/nfts/saga.test.tsx +502 -0
  847. package/src/nfts/saga.ts +198 -0
  848. package/src/nfts/selectors.ts +13 -0
  849. package/src/nfts/slice.ts +45 -0
  850. package/src/nfts/types.ts +51 -0
  851. package/src/notifications/NotificationList.test.tsx +25 -0
  852. package/src/notifications/NotificationList.tsx +45 -0
  853. package/src/notifications/__snapshots__/NotificationList.test.tsx.snap +35 -0
  854. package/src/notifications/types.ts +31 -0
  855. package/src/onboarding/LanguageButton.tsx +26 -0
  856. package/src/onboarding/TopBarTextButtonOnboarding.test.tsx +22 -0
  857. package/src/onboarding/TopBarTextButtonOnboarding.tsx +17 -0
  858. package/src/onboarding/actions.ts +46 -0
  859. package/src/onboarding/registration/EnableBiometry.test.tsx +168 -0
  860. package/src/onboarding/registration/EnableBiometry.tsx +207 -0
  861. package/src/onboarding/registration/ImportSelect.test.tsx +54 -0
  862. package/src/onboarding/registration/ImportSelect.tsx +167 -0
  863. package/src/onboarding/registration/OnboardingRecoveryPhrase.test.tsx +83 -0
  864. package/src/onboarding/registration/OnboardingRecoveryPhrase.tsx +197 -0
  865. package/src/onboarding/registration/ProtectWallet.test.tsx +96 -0
  866. package/src/onboarding/registration/ProtectWallet.tsx +153 -0
  867. package/src/onboarding/registration/RegulatoryTerms.test.tsx +75 -0
  868. package/src/onboarding/registration/RegulatoryTerms.tsx +174 -0
  869. package/src/onboarding/registration/SelectCountry.test.tsx +51 -0
  870. package/src/onboarding/registration/SelectCountry.tsx +88 -0
  871. package/src/onboarding/registration/SelectCountryItem.tsx +59 -0
  872. package/src/onboarding/steps.test.ts +464 -0
  873. package/src/onboarding/steps.ts +303 -0
  874. package/src/onboarding/success/OnboardingSuccessScreen.tsx +64 -0
  875. package/src/onboarding/types.ts +14 -0
  876. package/src/onboarding/welcome/Welcome.test.tsx +234 -0
  877. package/src/onboarding/welcome/Welcome.tsx +182 -0
  878. package/src/pincode/PasswordCache.ts +71 -0
  879. package/src/pincode/Pincode.tsx +109 -0
  880. package/src/pincode/PincodeDisplay.tsx +92 -0
  881. package/src/pincode/PincodeEnter.test.tsx +85 -0
  882. package/src/pincode/PincodeEnter.tsx +103 -0
  883. package/src/pincode/PincodeLock.test.tsx +144 -0
  884. package/src/pincode/PincodeLock.tsx +121 -0
  885. package/src/pincode/PincodeSet.test.tsx +213 -0
  886. package/src/pincode/PincodeSet.tsx +263 -0
  887. package/src/pincode/authentication.test.ts +654 -0
  888. package/src/pincode/authentication.ts +425 -0
  889. package/src/points/ActivityCard.test.tsx +63 -0
  890. package/src/points/ActivityCard.tsx +101 -0
  891. package/src/points/ActivityCardSection.tsx +126 -0
  892. package/src/points/PointsDiscoverCard.test.tsx +106 -0
  893. package/src/points/PointsDiscoverCard.tsx +122 -0
  894. package/src/points/PointsHistoryBottomSheet.test.tsx +179 -0
  895. package/src/points/PointsHistoryBottomSheet.tsx +264 -0
  896. package/src/points/PointsHome.test.tsx +230 -0
  897. package/src/points/PointsHome.tsx +357 -0
  898. package/src/points/PointsIntro.test.tsx +67 -0
  899. package/src/points/PointsIntro.tsx +85 -0
  900. package/src/points/cardDefinitions.tsx +94 -0
  901. package/src/points/cardSort.test.ts +58 -0
  902. package/src/points/cardSort.ts +18 -0
  903. package/src/points/saga.test.ts +769 -0
  904. package/src/points/saga.ts +379 -0
  905. package/src/points/selectors.test.ts +73 -0
  906. package/src/points/selectors.ts +68 -0
  907. package/src/points/slice.test.ts +76 -0
  908. package/src/points/slice.ts +164 -0
  909. package/src/points/types.ts +94 -0
  910. package/src/positions/HooksPreviewModeBanner.test.tsx +56 -0
  911. package/src/positions/HooksPreviewModeBanner.tsx +69 -0
  912. package/src/positions/actions.ts +11 -0
  913. package/src/positions/getPositionBalanceUsd.ts +14 -0
  914. package/src/positions/saga.test.ts +468 -0
  915. package/src/positions/saga.ts +378 -0
  916. package/src/positions/selectors.test.ts +281 -0
  917. package/src/positions/selectors.ts +189 -0
  918. package/src/positions/slice.ts +219 -0
  919. package/src/positions/transactions.ts +21 -0
  920. package/src/positions/types.ts +137 -0
  921. package/src/priceHistory/PriceHistoryChart.test.tsx +200 -0
  922. package/src/priceHistory/PriceHistoryChart.tsx +345 -0
  923. package/src/priceHistory/__snapshots__/PriceHistoryChart.test.tsx.snap +419 -0
  924. package/src/priceHistory/saga.test.ts +120 -0
  925. package/src/priceHistory/saga.ts +62 -0
  926. package/src/priceHistory/selectors.test.ts +52 -0
  927. package/src/priceHistory/selectors.ts +17 -0
  928. package/src/priceHistory/slice.test.ts +94 -0
  929. package/src/priceHistory/slice.ts +68 -0
  930. package/src/public/components/Button.tsx +66 -0
  931. package/src/public/createApp.ts +67 -0
  932. package/src/public/getFees.test.ts +24 -0
  933. package/src/public/getFees.ts +8 -0
  934. package/src/public/getPublicClient.test.ts +19 -0
  935. package/src/public/getPublicClient.ts +25 -0
  936. package/src/public/getWalletClient.test.ts +30 -0
  937. package/src/public/getWalletClient.ts +32 -0
  938. package/src/public/hooks/toAsyncStatus.ts +19 -0
  939. package/src/public/hooks/usePrepareTransactions.test.ts +63 -0
  940. package/src/public/hooks/usePrepareTransactions.ts +15 -0
  941. package/src/public/hooks/usePublicClient.test.ts +24 -0
  942. package/src/public/hooks/usePublicClient.ts +7 -0
  943. package/src/public/hooks/useSendTransactions.test.ts +49 -0
  944. package/src/public/hooks/useSendTransactions.ts +15 -0
  945. package/src/public/hooks/useWallet.ts +52 -0
  946. package/src/public/hooks/useWalletClient.test.ts +35 -0
  947. package/src/public/hooks/useWalletClient.ts +24 -0
  948. package/src/public/index.ts +29 -0
  949. package/src/public/navigate.test.ts +168 -0
  950. package/src/public/navigate.ts +168 -0
  951. package/src/public/prepareTransactions.test.ts +76 -0
  952. package/src/public/prepareTransactions.ts +78 -0
  953. package/src/public/sendTransactions.test.ts +37 -0
  954. package/src/public/sendTransactions.ts +25 -0
  955. package/src/public/types.tsx +278 -0
  956. package/src/public/unlockAccount.test.ts +79 -0
  957. package/src/public/unlockAccount.ts +43 -0
  958. package/src/qrcode/NotAuthorizedView.test.tsx +11 -0
  959. package/src/qrcode/NotAuthorizedView.tsx +47 -0
  960. package/src/qrcode/QRCode.test.tsx +117 -0
  961. package/src/qrcode/QRCode.tsx +190 -0
  962. package/src/qrcode/QRScanner.tsx +249 -0
  963. package/src/qrcode/QRTabBar.tsx +137 -0
  964. package/src/qrcode/StyledQRCode.tsx +31 -0
  965. package/src/qrcode/StyledQRGen.tsx +26 -0
  966. package/src/qrcode/__snapshots__/NotAuthorizedView.test.tsx.snap +90 -0
  967. package/src/qrcode/schema.test.ts +121 -0
  968. package/src/qrcode/schema.ts +45 -0
  969. package/src/qrcode/utils.test.tsx +293 -0
  970. package/src/qrcode/utils.ts +230 -0
  971. package/src/recaptcha/RecaptchaService.ts +105 -0
  972. package/src/recaptcha/saga.ts +24 -0
  973. package/src/recipients/RecipientItemV2.test.tsx +153 -0
  974. package/src/recipients/RecipientItemV2.tsx +142 -0
  975. package/src/recipients/RecipientPickerV2.test.tsx +110 -0
  976. package/src/recipients/RecipientPickerV2.tsx +61 -0
  977. package/src/recipients/recipient.test.ts +113 -0
  978. package/src/recipients/recipient.ts +313 -0
  979. package/src/recipients/reducer.ts +107 -0
  980. package/src/recipients/resolve-id.ts +21 -0
  981. package/src/recipients/saga.ts +87 -0
  982. package/src/redux/apiReducersList.ts +11 -0
  983. package/src/redux/createMigrate.test.ts +113 -0
  984. package/src/redux/createMigrate.ts +46 -0
  985. package/src/redux/hooks.ts +7 -0
  986. package/src/redux/migrations.test.ts +1925 -0
  987. package/src/redux/migrations.ts +2069 -0
  988. package/src/redux/persist-helper.ts +14 -0
  989. package/src/redux/reducers.ts +29 -0
  990. package/src/redux/reducersForSchemaGeneration.ts +20 -0
  991. package/src/redux/reducersList.ts +57 -0
  992. package/src/redux/sagas-helpers.ts +29 -0
  993. package/src/redux/sagas.test.ts +19 -0
  994. package/src/redux/sagas.ts +155 -0
  995. package/src/redux/selectors.ts +3 -0
  996. package/src/redux/store.test.ts +391 -0
  997. package/src/redux/store.ts +151 -0
  998. package/src/send/EnterAmount.test.tsx +1030 -0
  999. package/src/send/EnterAmount.tsx +360 -0
  1000. package/src/send/EnterAmountOptions.tsx +170 -0
  1001. package/src/send/PasteAddressButton.tsx +81 -0
  1002. package/src/send/SelectRecipientButtons.test.tsx +256 -0
  1003. package/src/send/SelectRecipientButtons.tsx +202 -0
  1004. package/src/send/SendConfirmation.test.tsx +233 -0
  1005. package/src/send/SendConfirmation.tsx +317 -0
  1006. package/src/send/SendEnterAmount.test.tsx +235 -0
  1007. package/src/send/SendEnterAmount.tsx +123 -0
  1008. package/src/send/SendSelectRecipient.test.tsx +765 -0
  1009. package/src/send/SendSelectRecipient.tsx +504 -0
  1010. package/src/send/SendSelectRecipientSearchInput.tsx +72 -0
  1011. package/src/send/ValidateRecipientAccount.test.tsx +181 -0
  1012. package/src/send/ValidateRecipientAccount.tsx +387 -0
  1013. package/src/send/ValidateRecipientIntro.test.tsx +61 -0
  1014. package/src/send/ValidateRecipientIntro.tsx +136 -0
  1015. package/src/send/__snapshots__/ValidateRecipientAccount.test.tsx.snap +777 -0
  1016. package/src/send/actions.ts +142 -0
  1017. package/src/send/hooks.test.tsx +371 -0
  1018. package/src/send/hooks.ts +445 -0
  1019. package/src/send/reducers.ts +90 -0
  1020. package/src/send/saga.test.ts +247 -0
  1021. package/src/send/saga.ts +176 -0
  1022. package/src/send/selectors.ts +22 -0
  1023. package/src/send/types.ts +18 -0
  1024. package/src/send/useFetchRecipientVerificationStatus.ts +67 -0
  1025. package/src/send/usePrepareSendTransactions.test.ts +135 -0
  1026. package/src/send/usePrepareSendTransactions.ts +69 -0
  1027. package/src/send/utils.test.ts +361 -0
  1028. package/src/send/utils.ts +116 -0
  1029. package/src/sendCalls/constants.ts +11 -0
  1030. package/src/sendCalls/saga.test.ts +31 -0
  1031. package/src/sendCalls/saga.ts +15 -0
  1032. package/src/sendCalls/selectors.test.ts +40 -0
  1033. package/src/sendCalls/selectors.ts +8 -0
  1034. package/src/sendCalls/slice.test.ts +85 -0
  1035. package/src/sendCalls/slice.ts +72 -0
  1036. package/src/sentry/Sentry.ts +75 -0
  1037. package/src/sentry/SentrySpanHub.ts +27 -0
  1038. package/src/sentry/SentrySpans.tsx +57 -0
  1039. package/src/sentry/actions.ts +11 -0
  1040. package/src/sentry/saga.ts +8 -0
  1041. package/src/shared/DisconnectBanner.test.tsx +25 -0
  1042. package/src/shared/DisconnectBanner.tsx +81 -0
  1043. package/src/shared/__snapshots__/DisconnectBanner.test.tsx.snap +29 -0
  1044. package/src/shared/conts.ts +16 -0
  1045. package/src/statsig/client.test.ts +62 -0
  1046. package/src/statsig/client.ts +97 -0
  1047. package/src/statsig/constants.ts +177 -0
  1048. package/src/statsig/index.test.ts +351 -0
  1049. package/src/statsig/index.ts +186 -0
  1050. package/src/statsig/selector.ts +17 -0
  1051. package/src/statsig/types.ts +52 -0
  1052. package/src/storage/keychain.tsx +92 -0
  1053. package/src/styles/accessibility.ts +7 -0
  1054. package/src/styles/appTheme.ts +13 -0
  1055. package/src/styles/colors.tsx +78 -0
  1056. package/src/styles/fonts.tsx +143 -0
  1057. package/src/styles/hapticFeedback.ts +27 -0
  1058. package/src/styles/progressDots.ts +23 -0
  1059. package/src/styles/styles.ts +67 -0
  1060. package/src/styles/variables.tsx +16 -0
  1061. package/src/swap/SwapAmountInput.tsx +228 -0
  1062. package/src/swap/SwapScreen.test.tsx +1927 -0
  1063. package/src/swap/SwapScreen.tsx +1156 -0
  1064. package/src/swap/SwapScreenV2.test.tsx +2180 -0
  1065. package/src/swap/SwapScreenV2.tsx +1201 -0
  1066. package/src/swap/SwapTransactionDetails.test.tsx +217 -0
  1067. package/src/swap/SwapTransactionDetails.tsx +274 -0
  1068. package/src/swap/UnfavorableRateBottomSheet.test.tsx +150 -0
  1069. package/src/swap/UnfavorableRateBottomSheet.tsx +288 -0
  1070. package/src/swap/getCrossChainFee.ts +64 -0
  1071. package/src/swap/getSwapTxsAnalyticsProperties.tsx +49 -0
  1072. package/src/swap/saga.test.ts +863 -0
  1073. package/src/swap/saga.ts +324 -0
  1074. package/src/swap/selectors.ts +5 -0
  1075. package/src/swap/slice.test.ts +133 -0
  1076. package/src/swap/slice.ts +93 -0
  1077. package/src/swap/types.ts +98 -0
  1078. package/src/swap/useFilterChips.ts +69 -0
  1079. package/src/swap/useSwapQuote.ts +292 -0
  1080. package/src/tokens/AssetList.test.tsx +270 -0
  1081. package/src/tokens/AssetList.tsx +388 -0
  1082. package/src/tokens/AssetTabBar.test.tsx +130 -0
  1083. package/src/tokens/AssetTabBar.tsx +106 -0
  1084. package/src/tokens/PasteButton.test.tsx +30 -0
  1085. package/src/tokens/PasteButton.tsx +34 -0
  1086. package/src/tokens/PositionIcon.tsx +22 -0
  1087. package/src/tokens/PositionItem.test.tsx +132 -0
  1088. package/src/tokens/PositionItem.tsx +131 -0
  1089. package/src/tokens/TabWallet.test.tsx +386 -0
  1090. package/src/tokens/TabWallet.tsx +237 -0
  1091. package/src/tokens/TokenBalanceItem.test.tsx +119 -0
  1092. package/src/tokens/TokenBalanceItem.tsx +143 -0
  1093. package/src/tokens/TokenDetails.test.tsx +476 -0
  1094. package/src/tokens/TokenDetails.tsx +391 -0
  1095. package/src/tokens/TokenDetailsMoreActions.test.tsx +120 -0
  1096. package/src/tokens/TokenDetailsMoreActions.tsx +87 -0
  1097. package/src/tokens/TokenImport.test.tsx +376 -0
  1098. package/src/tokens/TokenImport.tsx +381 -0
  1099. package/src/tokens/hooks.test.tsx +419 -0
  1100. package/src/tokens/hooks.ts +164 -0
  1101. package/src/tokens/saga.test.ts +527 -0
  1102. package/src/tokens/saga.ts +248 -0
  1103. package/src/tokens/selectors.test.ts +888 -0
  1104. package/src/tokens/selectors.ts +516 -0
  1105. package/src/tokens/slice.ts +173 -0
  1106. package/src/tokens/types.ts +29 -0
  1107. package/src/tokens/utils.test.tsx +330 -0
  1108. package/src/tokens/utils.ts +218 -0
  1109. package/src/transactions/NoActivity.test.tsx +30 -0
  1110. package/src/transactions/NoActivity.tsx +73 -0
  1111. package/src/transactions/TransferAvatars.tsx +39 -0
  1112. package/src/transactions/UserSection.tsx +133 -0
  1113. package/src/transactions/api.ts +67 -0
  1114. package/src/transactions/apiTestHelpers.ts +55 -0
  1115. package/src/transactions/feed/ClaimRewardFeedItem.test.tsx +164 -0
  1116. package/src/transactions/feed/ClaimRewardFeedItem.tsx +142 -0
  1117. package/src/transactions/feed/DepositOrWithdrawFeedItem.test.tsx +138 -0
  1118. package/src/transactions/feed/DepositOrWithdrawFeedItem.tsx +178 -0
  1119. package/src/transactions/feed/EarnFeedItem.test.tsx +189 -0
  1120. package/src/transactions/feed/EarnFeedItem.tsx +190 -0
  1121. package/src/transactions/feed/NftFeedItem.test.tsx +102 -0
  1122. package/src/transactions/feed/NftFeedItem.tsx +99 -0
  1123. package/src/transactions/feed/SwapFeedItem.test.tsx +137 -0
  1124. package/src/transactions/feed/SwapFeedItem.tsx +128 -0
  1125. package/src/transactions/feed/TokenApprovalFeedItem.test.tsx +37 -0
  1126. package/src/transactions/feed/TokenApprovalFeedItem.tsx +59 -0
  1127. package/src/transactions/feed/TransactionDetails.tsx +160 -0
  1128. package/src/transactions/feed/TransactionDetailsScreen.test.tsx +1228 -0
  1129. package/src/transactions/feed/TransactionDetailsScreen.tsx +157 -0
  1130. package/src/transactions/feed/TransactionFeed.test.tsx +474 -0
  1131. package/src/transactions/feed/TransactionFeed.tsx +172 -0
  1132. package/src/transactions/feed/TransactionFeedItemImage.test.tsx +66 -0
  1133. package/src/transactions/feed/TransactionFeedItemImage.tsx +116 -0
  1134. package/src/transactions/feed/TransactionFeedV2.test.tsx +576 -0
  1135. package/src/transactions/feed/TransactionFeedV2.tsx +504 -0
  1136. package/src/transactions/feed/TransactionPrimaryAction.test.tsx +62 -0
  1137. package/src/transactions/feed/TransactionPrimaryAction.tsx +83 -0
  1138. package/src/transactions/feed/TransactionStatusIndicator.test.tsx +15 -0
  1139. package/src/transactions/feed/TransactionStatusIndicator.tsx +63 -0
  1140. package/src/transactions/feed/TransferFeedItem.test.tsx +579 -0
  1141. package/src/transactions/feed/TransferFeedItem.tsx +148 -0
  1142. package/src/transactions/feed/detailContent/ClaimRewardContent.tsx +84 -0
  1143. package/src/transactions/feed/detailContent/DepositOrWithdrawContent.tsx +169 -0
  1144. package/src/transactions/feed/detailContent/EarnContent.tsx +259 -0
  1145. package/src/transactions/feed/detailContent/FeeRowItem.tsx +90 -0
  1146. package/src/transactions/feed/detailContent/RewardReceivedContent.tsx +46 -0
  1147. package/src/transactions/feed/detailContent/SwapContent.tsx +127 -0
  1148. package/src/transactions/feed/detailContent/TokenApprovalDetails.tsx +59 -0
  1149. package/src/transactions/feed/detailContent/TransferReceivedContent.tsx +73 -0
  1150. package/src/transactions/feed/detailContent/TransferSentContent.tsx +117 -0
  1151. package/src/transactions/feed/queryHelper.test.ts +229 -0
  1152. package/src/transactions/feed/queryHelper.ts +941 -0
  1153. package/src/transactions/saga.test.ts +482 -0
  1154. package/src/transactions/saga.ts +322 -0
  1155. package/src/transactions/selectors.ts +120 -0
  1156. package/src/transactions/send.test.ts +29 -0
  1157. package/src/transactions/send.ts +51 -0
  1158. package/src/transactions/slice.test.ts +372 -0
  1159. package/src/transactions/slice.ts +262 -0
  1160. package/src/transactions/transferFeedUtils.ts +225 -0
  1161. package/src/transactions/types.ts +355 -0
  1162. package/src/transactions/utils.test.ts +98 -0
  1163. package/src/transactions/utils.ts +122 -0
  1164. package/src/utils/AppRestart.ts +12 -0
  1165. package/src/utils/Countries.test.ts +180 -0
  1166. package/src/utils/Countries.ts +121 -0
  1167. package/src/utils/IosVersionUtils.ts +6 -0
  1168. package/src/utils/Logger.test.ts +113 -0
  1169. package/src/utils/Logger.ts +304 -0
  1170. package/src/utils/LoggerLevels.ts +6 -0
  1171. package/src/utils/account.test.ts +390 -0
  1172. package/src/utils/account.ts +497 -0
  1173. package/src/utils/accountChecker.test.ts +75 -0
  1174. package/src/utils/accountChecker.ts +77 -0
  1175. package/src/utils/address.test.ts +62 -0
  1176. package/src/utils/address.ts +34 -0
  1177. package/src/utils/aes.test.ts +36 -0
  1178. package/src/utils/aes.ts +46 -0
  1179. package/src/utils/contacts.ts +78 -0
  1180. package/src/utils/contentTranslations.ts +18 -0
  1181. package/src/utils/country.json +257 -0
  1182. package/src/utils/countryFeatures.ts +21 -0
  1183. package/src/utils/currencies.ts +72 -0
  1184. package/src/utils/displayFormatting.ts +11 -0
  1185. package/src/utils/ensureError.test.ts +32 -0
  1186. package/src/utils/ensureError.ts +13 -0
  1187. package/src/utils/fetchWithTimeout.test.ts +55 -0
  1188. package/src/utils/fetchWithTimeout.ts +15 -0
  1189. package/src/utils/formatting.test.ts +93 -0
  1190. package/src/utils/formatting.ts +107 -0
  1191. package/src/utils/getCountryEmoji.ts +28 -0
  1192. package/src/utils/getPhoneHash.ts +29 -0
  1193. package/src/utils/gql.ts +8 -0
  1194. package/src/utils/identifier.ts +81 -0
  1195. package/src/utils/inputValidation.test.ts +53 -0
  1196. package/src/utils/inputValidation.ts +76 -0
  1197. package/src/utils/io.ts +39 -0
  1198. package/src/utils/linking.ts +42 -0
  1199. package/src/utils/moneyAmount.ts +16 -0
  1200. package/src/utils/parsing.test.ts +30 -0
  1201. package/src/utils/parsing.ts +20 -0
  1202. package/src/utils/phoneNumber.test.ts +236 -0
  1203. package/src/utils/phoneNumbers.ts +240 -0
  1204. package/src/utils/random.test.ts +53 -0
  1205. package/src/utils/random.ts +48 -0
  1206. package/src/utils/safely.test.ts +101 -0
  1207. package/src/utils/safely.ts +30 -0
  1208. package/src/utils/sleep.ts +3 -0
  1209. package/src/utils/string.ts +8 -0
  1210. package/src/utils/stylize.ts +30 -0
  1211. package/src/utils/time.test.ts +76 -0
  1212. package/src/utils/time.ts +99 -0
  1213. package/src/utils/typescript.ts +38 -0
  1214. package/src/utils/useBackHandler.ts +10 -0
  1215. package/src/utils/useClipboard.ts +56 -0
  1216. package/src/utils/versionCheck.test.ts +47 -0
  1217. package/src/utils/versionCheck.ts +35 -0
  1218. package/src/verify/ResendButtonWithDelay.tsx +56 -0
  1219. package/src/verify/VerificationCodeInput.test.tsx +87 -0
  1220. package/src/verify/VerificationCodeInput.tsx +103 -0
  1221. package/src/verify/VerificationCodeInputScreen.test.tsx +364 -0
  1222. package/src/verify/VerificationCodeInputScreen.tsx +138 -0
  1223. package/src/verify/VerificationStartScreen.test.tsx +218 -0
  1224. package/src/verify/VerificationStartScreen.tsx +311 -0
  1225. package/src/verify/hooks.test.tsx +85 -0
  1226. package/src/verify/hooks.ts +261 -0
  1227. package/src/viem/estimateFeesPerGas.test.ts +129 -0
  1228. package/src/viem/estimateFeesPerGas.ts +70 -0
  1229. package/src/viem/getLockableWallet.test.ts +263 -0
  1230. package/src/viem/getLockableWallet.ts +120 -0
  1231. package/src/viem/index.ts +86 -0
  1232. package/src/viem/keychainAccountToAccount.test.ts +55 -0
  1233. package/src/viem/keychainAccountToAccount.ts +58 -0
  1234. package/src/viem/prepareTransactions.test.ts +1668 -0
  1235. package/src/viem/prepareTransactions.ts +741 -0
  1236. package/src/viem/preparedTransactionSerialization.test.ts +192 -0
  1237. package/src/viem/preparedTransactionSerialization.ts +100 -0
  1238. package/src/viem/saga.test.ts +227 -0
  1239. package/src/viem/saga.ts +118 -0
  1240. package/src/walletConnect/actions.test.ts +94 -0
  1241. package/src/walletConnect/actions.ts +232 -0
  1242. package/src/walletConnect/analytics.ts +58 -0
  1243. package/src/walletConnect/capabilities.ts +175 -0
  1244. package/src/walletConnect/constants.ts +157 -0
  1245. package/src/walletConnect/reducer.ts +105 -0
  1246. package/src/walletConnect/request.test.ts +698 -0
  1247. package/src/walletConnect/request.ts +225 -0
  1248. package/src/walletConnect/saga.test.ts +1875 -0
  1249. package/src/walletConnect/saga.ts +1159 -0
  1250. package/src/walletConnect/screens/ActionRequest.test.tsx +727 -0
  1251. package/src/walletConnect/screens/ActionRequest.tsx +227 -0
  1252. package/src/walletConnect/screens/ActionRequestPayload.tsx +84 -0
  1253. package/src/walletConnect/screens/ConnectionTimedOut.tsx +34 -0
  1254. package/src/walletConnect/screens/DappsDisclaimer.tsx +31 -0
  1255. package/src/walletConnect/screens/EstimatedNetworkFee.test.tsx +88 -0
  1256. package/src/walletConnect/screens/EstimatedNetworkFee.tsx +134 -0
  1257. package/src/walletConnect/screens/Logos.tsx +89 -0
  1258. package/src/walletConnect/screens/RequestContent.tsx +224 -0
  1259. package/src/walletConnect/screens/SessionRequest.test.tsx +274 -0
  1260. package/src/walletConnect/screens/SessionRequest.tsx +221 -0
  1261. package/src/walletConnect/screens/Sessions.tsx +142 -0
  1262. package/src/walletConnect/screens/WalletConnectRequest.tsx +63 -0
  1263. package/src/walletConnect/screens/useIsDappListed.test.tsx +51 -0
  1264. package/src/walletConnect/screens/useIsDappListed.ts +20 -0
  1265. package/src/walletConnect/selectors.ts +25 -0
  1266. package/src/walletConnect/types.ts +99 -0
  1267. package/src/walletConnect/walletConnect.ts +87 -0
  1268. package/src/web3/KeychainAccounts.test.ts +326 -0
  1269. package/src/web3/KeychainAccounts.ts +309 -0
  1270. package/src/web3/actions.ts +30 -0
  1271. package/src/web3/consts.ts +8 -0
  1272. package/src/web3/contracts.test.ts +115 -0
  1273. package/src/web3/contracts.ts +74 -0
  1274. package/src/web3/networkConfig.test.ts +18 -0
  1275. package/src/web3/networkConfig.ts +621 -0
  1276. package/src/web3/reducer.ts +39 -0
  1277. package/src/web3/saga.test.ts +200 -0
  1278. package/src/web3/saga.ts +229 -0
  1279. package/src/web3/selectors.ts +47 -0
  1280. package/src/web3/utils.test.ts +12 -0
  1281. package/src/web3/utils.ts +11 -0
  1282. package/src/webview/WebViewAndroidBottomSheet.test.tsx +58 -0
  1283. package/src/webview/WebViewAndroidBottomSheet.tsx +83 -0
  1284. package/src/webview/WebViewScreen.test.tsx +84 -0
  1285. package/src/webview/WebViewScreen.tsx +296 -0
  1286. package/src/webview/__snapshots__/WebViewAndroidBottomSheet.test.tsx.snap +249 -0
  1287. package/tsconfig.base.json +5 -0
  1288. package/tsconfig.json +30 -0
@@ -0,0 +1,1645 @@
1
+ import {
2
+ FiatAccountSchema,
3
+ FiatConnectError,
4
+ KycStatus as FiatConnectKycStatus,
5
+ } from '@fiatconnect/fiatconnect-types'
6
+ import { PermissionStatus } from 'react-native-permissions'
7
+ import {
8
+ AppEvents,
9
+ AssetsEvents,
10
+ AuthenticationEvents,
11
+ BuilderHooksEvents,
12
+ CeloExchangeEvents,
13
+ CeloNewsEvents,
14
+ CoinbasePayEvents,
15
+ ContractKitEvents,
16
+ DappExplorerEvents,
17
+ DappShortcutsEvents,
18
+ EarnEvents,
19
+ FeeEvents,
20
+ FiatExchangeEvents,
21
+ HomeEvents,
22
+ IdentityEvents,
23
+ JumpstartEvents,
24
+ KeylessBackupEvents,
25
+ NavigationEvents,
26
+ NftEvents,
27
+ OnboardingEvents,
28
+ PerformanceEvents,
29
+ PhoneVerificationEvents,
30
+ PointsEvents,
31
+ PrivateKeyEvents,
32
+ QrScreenEvents,
33
+ SendEvents,
34
+ SettingsEvents,
35
+ SwapEvents,
36
+ TokenBottomSheetEvents,
37
+ TransactionDetailsEvents,
38
+ TransactionEvents,
39
+ WalletConnectEvents,
40
+ WebViewEvents,
41
+ } from 'src/analytics/Events'
42
+ import {
43
+ BackQuizProgress,
44
+ DappRequestOrigin,
45
+ HooksEnablePreviewOrigin,
46
+ ScrollDirection,
47
+ SendOrigin,
48
+ TransactionOrigin,
49
+ WalletConnectPairingOrigin,
50
+ } from 'src/analytics/types'
51
+ import { ErrorMessages } from 'src/app/ErrorMessages'
52
+ import { GasFeeWarningFlow } from 'src/components/GasFeeWarning'
53
+ import { TokenPickerOrigin } from 'src/components/TokenBottomSheet'
54
+ import { DappSection } from 'src/dapps/types'
55
+ import { BeforeDepositActionName, EarnActiveMode, SerializableRewardsInfo } from 'src/earn/types'
56
+ import {
57
+ CICOFlow,
58
+ FiatExchangeFlow,
59
+ PaymentMethod,
60
+ ProviderSelectionAnalyticsData,
61
+ } from 'src/fiatExchanges/types'
62
+ import { HomeActionName, NotificationBannerCTATypes, NotificationType } from 'src/home/types'
63
+ import {
64
+ KeylessBackupFlow,
65
+ KeylessBackupOrigin,
66
+ KeylessBackupStatus,
67
+ } from 'src/keylessBackup/types'
68
+ import { LocalCurrencyCode } from 'src/localCurrency/consts'
69
+ import { Screens } from 'src/navigator/Screens'
70
+ import { NftOrigin } from 'src/nfts/types'
71
+ import { NotificationReceiveState } from 'src/notifications/types'
72
+ import { PointsActivityId } from 'src/points/types'
73
+ import { RecipientType } from 'src/recipients/recipient'
74
+ import { AmountEnteredIn, QrCode } from 'src/send/types'
75
+ import { Field, SwapType } from 'src/swap/types'
76
+ import { TokenActionName } from 'src/tokens/types'
77
+ import { NetworkId, TokenTransactionTypeV2, TransactionStatus } from 'src/transactions/types'
78
+
79
+ type Web3LibraryProps = { web3Library: 'contract-kit' | 'viem' }
80
+
81
+ interface AppEventsProperties {
82
+ [AppEvents.app_launched]: {
83
+ // TODO: Figure out how to measure loadingDuration iOS and make param required
84
+ reactLoadDuration?: number
85
+ appLoadDuration?: number
86
+ deviceInfo?: object
87
+ deviceHeight: number
88
+ deviceWidth: number
89
+ language: string | null
90
+ }
91
+ [AppEvents.app_state_error]: {
92
+ error: string
93
+ }
94
+ [AppEvents.error_displayed]: {
95
+ error: string
96
+ }
97
+ [AppEvents.error_fallback]: {
98
+ error: ErrorMessages
99
+ }
100
+ [AppEvents.user_restart]: undefined
101
+ [AppEvents.fetch_balance]: {
102
+ dollarBalance?: string
103
+ goldBalance?: string
104
+ }
105
+ [AppEvents.fetch_balance_error]: {
106
+ dollarBalance?: string
107
+ goldBalance?: string
108
+ error?: string
109
+ }
110
+ [AppEvents.redux_keychain_mismatch]: {
111
+ account: string
112
+ }
113
+ [AppEvents.redux_store_recovery_success]: {
114
+ account: string
115
+ }
116
+ [AppEvents.redux_no_matching_keychain_account]: {
117
+ walletAddress: string
118
+ keychainError?: string
119
+ }
120
+ [AppEvents.push_notification_opened]: {
121
+ id?: string
122
+ state: NotificationReceiveState
123
+ type?: string
124
+ }
125
+ [AppEvents.push_notifications_permission_changed]: {
126
+ enabled: boolean
127
+ }
128
+ [AppEvents.android_mobile_services_checked]: {
129
+ googleIsAvailable: boolean | undefined
130
+ huaweiIsAvailable: boolean | undefined
131
+ }
132
+ [AppEvents.request_tracking_permission_started]: {
133
+ currentPermission: PermissionStatus
134
+ }
135
+ [AppEvents.request_tracking_permission_declined]: {
136
+ newPermission: PermissionStatus
137
+ }
138
+ [AppEvents.request_tracking_permission_accepted]: {
139
+ newPermission: 'granted'
140
+ }
141
+ [AppEvents.account_funded]: undefined
142
+ [AppEvents.account_liquidated]: undefined
143
+ [AppEvents.in_app_review_impression]: undefined
144
+ [AppEvents.in_app_review_error]: {
145
+ error: string
146
+ }
147
+ [AppEvents.handle_deeplink]: {
148
+ pathStartsWith: string
149
+ fullPath: string | null
150
+ query: string | null
151
+ }
152
+ }
153
+
154
+ interface HomeEventsProperties {
155
+ [HomeEvents.account_circle_tapped]: undefined
156
+ [HomeEvents.profile_address_copy]: undefined
157
+ [HomeEvents.notification_scroll]: {
158
+ // TODO: Pass in notificationType and make param required
159
+ notificationType?: NotificationType
160
+ direction: ScrollDirection
161
+ }
162
+ [HomeEvents.notification_select]: {
163
+ notificationType: NotificationType
164
+ selectedAction: NotificationBannerCTATypes
165
+ notificationId: string
166
+ notificationPositionInList?: number
167
+ }
168
+ [HomeEvents.notification_impression]: {
169
+ notificationType: string
170
+ notificationId: string
171
+ notificationPositionInList?: number
172
+ }
173
+ [HomeEvents.notification_center_spotlight_dismiss]: undefined
174
+ [HomeEvents.transaction_feed_item_select]: { itemType: TokenTransactionTypeV2 }
175
+ [HomeEvents.transaction_feed_address_copy]: undefined
176
+ [HomeEvents.view_token_balances]: { totalBalance?: string }
177
+ [HomeEvents.home_action_pressed]: { action: HomeActionName }
178
+ [HomeEvents.notification_bell_pressed]: { hasNotifications: boolean }
179
+ [HomeEvents.notification_center_opened]: { notificationsCount: number }
180
+ [HomeEvents.hide_balances]: undefined
181
+ [HomeEvents.show_balances]: undefined
182
+ [HomeEvents.nft_celebration_displayed]: {
183
+ networkId: NetworkId
184
+ contractAddress: string
185
+ }
186
+ [HomeEvents.nft_celebration_animation_displayed]: {
187
+ userInterrupted: boolean
188
+ durationInSeconds: number
189
+ }
190
+ [HomeEvents.nft_reward_accept]: {
191
+ networkId: NetworkId
192
+ contractAddress: string
193
+ remainingDays: number
194
+ }
195
+ [HomeEvents.nft_reward_dismiss]: {
196
+ networkId: NetworkId
197
+ contractAddress: string
198
+ remainingDays: number
199
+ }
200
+ [HomeEvents.divvi_bottom_sheet_displayed]: undefined
201
+ [HomeEvents.divvi_bottom_sheet_cta_pressed]: undefined
202
+ }
203
+
204
+ interface SettingsEventsProperties {
205
+ [SettingsEvents.settings_profile_edit]: undefined
206
+ [SettingsEvents.profile_generate_name]: undefined
207
+ [SettingsEvents.profile_save]: undefined
208
+ [SettingsEvents.profile_cancel]: undefined
209
+ [SettingsEvents.profile_photo_chosen]: undefined
210
+ [SettingsEvents.profile_photo_removed]: undefined
211
+ [SettingsEvents.language_select]: {
212
+ language: string
213
+ }
214
+ [SettingsEvents.settings_verify_number]: undefined
215
+ [SettingsEvents.pin_require_on_load]: {
216
+ enabled: boolean
217
+ }
218
+ [SettingsEvents.licenses_view]: undefined
219
+ [SettingsEvents.tos_view]: undefined
220
+ [SettingsEvents.start_account_removal]: undefined
221
+ [SettingsEvents.completed_account_removal]: undefined
222
+ [SettingsEvents.change_pin_start]: undefined
223
+ [SettingsEvents.change_pin_current_pin_entered]: undefined
224
+ [SettingsEvents.change_pin_current_pin_error]: undefined
225
+ [SettingsEvents.change_pin_new_pin_entered]: undefined
226
+ [SettingsEvents.change_pin_new_pin_confirmed]: undefined
227
+ [SettingsEvents.change_pin_new_pin_error]: undefined
228
+ [SettingsEvents.settings_biometry_opt_in_enable]: undefined
229
+ [SettingsEvents.settings_biometry_opt_in_complete]: undefined
230
+ [SettingsEvents.settings_biometry_opt_in_error]: undefined
231
+ [SettingsEvents.settings_biometry_opt_in_disable]: undefined
232
+ [SettingsEvents.settings_recovery_phrase]: undefined
233
+ [SettingsEvents.settings_private_key]: undefined
234
+ [SettingsEvents.settings_haptic_feedback]: { enabled: boolean }
235
+ [SettingsEvents.settings_analytics]: { enabled: boolean }
236
+ [SettingsEvents.settings_revoke_phone_number]: undefined
237
+ [SettingsEvents.settings_revoke_phone_number_confirm]: undefined
238
+ [SettingsEvents.settings_delete_account]: undefined
239
+ [SettingsEvents.settings_delete_account_confirm]: undefined
240
+ [SettingsEvents.settings_set_up_keyless_backup]: undefined
241
+ [SettingsEvents.settings_delete_keyless_backup]: undefined
242
+ }
243
+
244
+ interface PrivateKeyEventsProperties {
245
+ [PrivateKeyEvents.copy_private_key]: undefined
246
+ }
247
+
248
+ interface CommonKeylessBackupProps {
249
+ keylessBackupFlow: KeylessBackupFlow
250
+ origin: KeylessBackupOrigin
251
+ }
252
+
253
+ interface KeylessBackupEventsProperties {
254
+ [KeylessBackupEvents.wallet_security_primer_get_started]: undefined
255
+ [KeylessBackupEvents.cab_setup_recovery_phrase]: undefined
256
+ [KeylessBackupEvents.cab_sign_in_another_way]: CommonKeylessBackupProps
257
+ [KeylessBackupEvents.cab_sign_in_start]: CommonKeylessBackupProps & {
258
+ provider: string
259
+ }
260
+ [KeylessBackupEvents.cab_sign_in_success]: CommonKeylessBackupProps & {
261
+ provider: string
262
+ }
263
+ [KeylessBackupEvents.cab_sign_in_with_email_screen_back]: CommonKeylessBackupProps
264
+ [KeylessBackupEvents.cab_sign_in_with_email_screen_cancel]: CommonKeylessBackupProps
265
+ [KeylessBackupEvents.cab_sign_in_with_email_screen_skip]: CommonKeylessBackupProps
266
+ [KeylessBackupEvents.cab_enter_phone_number_back]: CommonKeylessBackupProps
267
+ [KeylessBackupEvents.cab_enter_phone_number_cancel]: CommonKeylessBackupProps
268
+ [KeylessBackupEvents.cab_enter_phone_number_continue]: CommonKeylessBackupProps
269
+ [KeylessBackupEvents.cab_intro_continue]: CommonKeylessBackupProps
270
+ [KeylessBackupEvents.cab_issue_sms_code_start]: CommonKeylessBackupProps
271
+ [KeylessBackupEvents.cab_issue_sms_code_success]: CommonKeylessBackupProps
272
+ [KeylessBackupEvents.cab_issue_sms_code_error]: CommonKeylessBackupProps
273
+ [KeylessBackupEvents.cab_enter_phone_code_back]: CommonKeylessBackupProps
274
+ [KeylessBackupEvents.cab_enter_phone_code_cancel]: CommonKeylessBackupProps
275
+ [KeylessBackupEvents.cab_issue_app_keyshare_start]: CommonKeylessBackupProps
276
+ [KeylessBackupEvents.cab_issue_app_keyshare_success]: CommonKeylessBackupProps
277
+ [KeylessBackupEvents.cab_issue_app_keyshare_error]: CommonKeylessBackupProps
278
+ [KeylessBackupEvents.cab_progress_completed_continue]: { origin: KeylessBackupOrigin }
279
+ [KeylessBackupEvents.cab_progress_failed_later]: undefined
280
+ [KeylessBackupEvents.cab_progress_failed_manual]: { origin: KeylessBackupOrigin }
281
+ [KeylessBackupEvents.cab_progress_failed_skip_onboarding]: undefined
282
+ [KeylessBackupEvents.cab_post_encrypted_mnemonic_failed]: {
283
+ backupAlreadyExists: boolean
284
+ }
285
+ [KeylessBackupEvents.cab_torus_keyshare_timeout]: undefined
286
+ [KeylessBackupEvents.cab_handle_keyless_backup_failed]: CommonKeylessBackupProps
287
+ [KeylessBackupEvents.cab_handle_keyless_backup_success]: CommonKeylessBackupProps
288
+ [KeylessBackupEvents.cab_get_torus_keyshare_failed]: undefined
289
+ [KeylessBackupEvents.cab_restore_zero_balance_accept]: undefined
290
+ [KeylessBackupEvents.cab_restore_zero_balance_bail]: undefined
291
+ [KeylessBackupEvents.cab_restore_completed_continue]: undefined
292
+ [KeylessBackupEvents.cab_restore_failed_try_again]: { keylessBackupStatus: KeylessBackupStatus }
293
+ [KeylessBackupEvents.cab_restore_failed_create_new_wallet]: {
294
+ keylessBackupStatus: KeylessBackupStatus
295
+ }
296
+ [KeylessBackupEvents.cab_restore_failed_help]: undefined
297
+ [KeylessBackupEvents.cab_restore_mnemonic_not_found]: undefined
298
+ [KeylessBackupEvents.cab_phone_verification_help]: CommonKeylessBackupProps
299
+ [KeylessBackupEvents.cab_phone_verification_help_skip]: CommonKeylessBackupProps
300
+ [KeylessBackupEvents.cab_phone_verification_help_go_back]: CommonKeylessBackupProps
301
+ [KeylessBackupEvents.cab_phone_verification_help_use_phrase]: CommonKeylessBackupProps
302
+ [KeylessBackupEvents.cab_setup_hashed_keyshares]: {
303
+ hashedKeysharePhone: string
304
+ hashedKeyshareEmail: string
305
+ }
306
+ }
307
+
308
+ interface OnboardingEventsProperties {
309
+ [OnboardingEvents.create_account_start]: undefined
310
+
311
+ [OnboardingEvents.restore_account_start]: undefined
312
+ [OnboardingEvents.restore_account_cancel]: undefined
313
+
314
+ [OnboardingEvents.backup_education_start]: undefined
315
+ [OnboardingEvents.backup_education_scroll]: {
316
+ currentStep: number
317
+ direction: ScrollDirection
318
+ }
319
+ [OnboardingEvents.backup_education_complete]: undefined
320
+ [OnboardingEvents.backup_education_cancel]: undefined
321
+
322
+ [OnboardingEvents.backup_start]: undefined
323
+ [OnboardingEvents.backup_continue]: undefined
324
+ [OnboardingEvents.backup_complete]: undefined
325
+ [OnboardingEvents.backup_more_info]: undefined
326
+ [OnboardingEvents.backup_delay_confirm]: undefined
327
+ [OnboardingEvents.backup_delay_cancel]: undefined
328
+ [OnboardingEvents.backup_cancel]: undefined
329
+ [OnboardingEvents.backup_error]: {
330
+ error: string
331
+ context?: string
332
+ }
333
+
334
+ [OnboardingEvents.backup_quiz_start]: undefined
335
+ [OnboardingEvents.backup_quiz_progress]: {
336
+ action: BackQuizProgress
337
+ }
338
+ [OnboardingEvents.backup_quiz_complete]: undefined
339
+ [OnboardingEvents.backup_quiz_incorrect]: undefined
340
+
341
+ [OnboardingEvents.terms_and_conditions_accepted]: undefined
342
+
343
+ [OnboardingEvents.celo_education_start]: undefined
344
+ [OnboardingEvents.celo_education_scroll]: {
345
+ currentStep: number
346
+ direction: ScrollDirection
347
+ }
348
+ [OnboardingEvents.celo_education_complete]: undefined
349
+ [OnboardingEvents.celo_education_cancel]: undefined
350
+
351
+ [OnboardingEvents.name_and_picture_set]: {
352
+ includesPhoto: boolean
353
+ profilePictureSkipped: boolean
354
+ }
355
+ [OnboardingEvents.name_and_picture_skip]: undefined
356
+
357
+ [OnboardingEvents.pin_set]: undefined
358
+ [OnboardingEvents.pin_invalid]: {
359
+ error: string
360
+ }
361
+ [OnboardingEvents.pin_never_set]: undefined
362
+
363
+ [OnboardingEvents.biometry_opt_in_start]: undefined
364
+ [OnboardingEvents.biometry_opt_in_cancel]: undefined
365
+ [OnboardingEvents.biometry_opt_in_approve]: undefined
366
+ [OnboardingEvents.biometry_opt_in_complete]: undefined
367
+ [OnboardingEvents.biometry_opt_in_error]: undefined
368
+
369
+ [OnboardingEvents.wallet_import_start]: undefined
370
+ [OnboardingEvents.wallet_import_phrase_updated]: {
371
+ wordCount: number
372
+ wordCountChange: number
373
+ }
374
+ [OnboardingEvents.wallet_import_submit]: {
375
+ useEmptyWallet: boolean
376
+ recoveryPhraseWordCount: number
377
+ }
378
+ [OnboardingEvents.wallet_import_cancel]: undefined
379
+ [OnboardingEvents.wallet_import_zero_balance]: {
380
+ account: string
381
+ }
382
+ [OnboardingEvents.wallet_import_phrase_invalid]: {
383
+ wordCount: number
384
+ invalidWordCount: number | undefined
385
+ }
386
+ [OnboardingEvents.wallet_import_phrase_correction_attempt]: undefined
387
+ [OnboardingEvents.wallet_import_phrase_correction_success]: {
388
+ attemptNumber: number
389
+ }
390
+ [OnboardingEvents.wallet_import_phrase_correction_failed]: {
391
+ timeout: boolean
392
+ error?: string
393
+ }
394
+ [OnboardingEvents.wallet_import_error]: {
395
+ error: string
396
+ }
397
+ [OnboardingEvents.wallet_import_success]: undefined
398
+
399
+ [OnboardingEvents.initialize_account_start]: undefined
400
+ [OnboardingEvents.initialize_account_complete]: undefined
401
+ [OnboardingEvents.initialize_account_error]: {
402
+ error: string
403
+ }
404
+ [OnboardingEvents.protect_wallet_use_recovery]:
405
+ | {
406
+ position?: number
407
+ }
408
+ | undefined
409
+ [OnboardingEvents.protect_wallet_help]: undefined
410
+ [OnboardingEvents.protect_wallet_help_dismiss]: undefined
411
+ [OnboardingEvents.protect_wallet_copy_phrase]: undefined
412
+ [OnboardingEvents.protect_wallet_complete]: undefined
413
+ [OnboardingEvents.link_phone_number]: undefined
414
+ [OnboardingEvents.link_phone_number_later]: undefined
415
+ }
416
+
417
+ interface PhoneVerificationEventsProperties {
418
+ [PhoneVerificationEvents.phone_verification_skip_confirm]: undefined
419
+ [PhoneVerificationEvents.phone_verification_learn_more]: undefined
420
+ [PhoneVerificationEvents.phone_verification_start]: {
421
+ country: string
422
+ countryCallingCode: string
423
+ }
424
+ [PhoneVerificationEvents.phone_verification_code_request_success]: undefined
425
+ [PhoneVerificationEvents.phone_verification_code_verify_start]: undefined
426
+ [PhoneVerificationEvents.phone_verification_code_verify_success]: {
427
+ phoneNumberHash: string
428
+ }
429
+ [PhoneVerificationEvents.phone_verification_restore_success]: undefined
430
+ [PhoneVerificationEvents.phone_verification_code_verify_error]: undefined
431
+ [PhoneVerificationEvents.phone_verification_input_help]: undefined
432
+ [PhoneVerificationEvents.phone_verification_input_help_continue]: undefined
433
+ [PhoneVerificationEvents.phone_verification_resend_message]: undefined
434
+ [PhoneVerificationEvents.phone_verification_revoke_start]: undefined
435
+ [PhoneVerificationEvents.phone_verification_revoke_success]: undefined
436
+ [PhoneVerificationEvents.phone_verification_revoke_error]: undefined
437
+ }
438
+
439
+ interface IdentityEventsProperties {
440
+ [IdentityEvents.contacts_import_permission_denied]: undefined
441
+ [IdentityEvents.contacts_import_start]: undefined
442
+ [IdentityEvents.contacts_import_complete]: {
443
+ contactImportCount: number
444
+ }
445
+ [IdentityEvents.contacts_processing_complete]: undefined
446
+ [IdentityEvents.contacts_import_error]: {
447
+ error: string
448
+ }
449
+
450
+ [IdentityEvents.phone_number_lookup_start]: undefined
451
+ [IdentityEvents.phone_number_lookup_complete]: undefined
452
+ [IdentityEvents.phone_number_lookup_error]: {
453
+ error: string
454
+ }
455
+ [IdentityEvents.address_lookup_start]: undefined
456
+ [IdentityEvents.address_lookup_complete]: undefined
457
+ [IdentityEvents.address_lookup_error]: {
458
+ error: string
459
+ }
460
+ }
461
+
462
+ interface AuthenticationEventsProperties {
463
+ [AuthenticationEvents.get_pincode_start]: undefined
464
+ [AuthenticationEvents.get_pincode_complete]: undefined
465
+ [AuthenticationEvents.get_pincode_error]: undefined
466
+
467
+ [AuthenticationEvents.get_pincode_with_biometry_start]: undefined
468
+ [AuthenticationEvents.get_pincode_with_biometry_complete]: undefined
469
+ [AuthenticationEvents.get_pincode_with_biometry_error]: undefined
470
+
471
+ [AuthenticationEvents.get_pincode_with_input_start]: undefined
472
+ [AuthenticationEvents.get_pincode_with_input_complete]: undefined
473
+ [AuthenticationEvents.get_pincode_with_input_error]: undefined
474
+ }
475
+
476
+ interface SendEventsProperties {
477
+ [SendEvents.send_scan]: undefined
478
+ [SendEvents.send_select_recipient]: {
479
+ usedSearchBar: boolean
480
+ recipientType: RecipientType
481
+ }
482
+ [SendEvents.send_cancel]: undefined
483
+ [SendEvents.send_amount_back]: undefined
484
+ [SendEvents.send_amount_continue]: {
485
+ origin: SendOrigin
486
+ recipientType: RecipientType
487
+ isScan: boolean
488
+ localCurrencyExchangeRate?: string | null
489
+ localCurrency: LocalCurrencyCode
490
+ localCurrencyAmount: string | null
491
+ underlyingTokenAddress: string | null
492
+ underlyingTokenSymbol: string
493
+ underlyingAmount: string | null
494
+ amountInUsd: string | null
495
+ amountEnteredIn: AmountEnteredIn
496
+ tokenId: string | null
497
+ networkId: string | null
498
+ }
499
+ [SendEvents.send_confirm_back]: undefined
500
+ [SendEvents.send_confirm_send]:
501
+ | {
502
+ origin: SendOrigin
503
+ isScan: boolean
504
+ isRequest: boolean
505
+ localCurrencyExchangeRate?: string | null
506
+ localCurrency: LocalCurrencyCode
507
+ dollarAmount: string | null
508
+ localCurrencyAmount: string | null
509
+ }
510
+ | {
511
+ origin: SendOrigin
512
+ recipientType: RecipientType
513
+ isScan: boolean
514
+ localCurrency: LocalCurrencyCode
515
+ usdAmount: string | null
516
+ localCurrencyAmount: string | null
517
+ tokenAmount: string
518
+ tokenSymbol: string
519
+ tokenAddress: string | null
520
+ networkId: NetworkId | null
521
+ tokenId: string
522
+ isTokenManuallyImported: boolean
523
+ }
524
+
525
+ [SendEvents.send_secure_start]: {
526
+ confirmByScan: boolean
527
+ }
528
+ [SendEvents.send_secure_back]: undefined
529
+ [SendEvents.send_secure_cancel]: undefined
530
+ [SendEvents.send_secure_submit]: {
531
+ partialAddressValidation: boolean
532
+ address: string
533
+ }
534
+ [SendEvents.send_secure_complete]: {
535
+ confirmByScan: boolean
536
+ partialAddressValidation?: boolean
537
+ }
538
+ [SendEvents.send_secure_incorrect]: {
539
+ confirmByScan: boolean
540
+ partialAddressValidation?: boolean
541
+ error: string
542
+ }
543
+ [SendEvents.send_secure_info]: {
544
+ partialAddressValidation: boolean
545
+ }
546
+ [SendEvents.send_secure_info_dismissed]: {
547
+ partialAddressValidation: boolean
548
+ }
549
+
550
+ [SendEvents.send_tx_start]: undefined
551
+ [SendEvents.send_tx_complete]: {
552
+ txId: string
553
+ recipientAddress: string
554
+ amount: string
555
+ usdAmount: string | undefined
556
+ tokenAddress: string | undefined
557
+ tokenId: string
558
+ networkId: string
559
+ isTokenManuallyImported: boolean
560
+ }
561
+ [SendEvents.send_tx_error]: {
562
+ error: string
563
+ }
564
+ [SendEvents.token_dropdown_opened]: {
565
+ currentTokenId: string
566
+ currentTokenAddress: string | null
567
+ currentNetworkId: NetworkId | null
568
+ }
569
+ [SendEvents.send_percentage_selected]: {
570
+ tokenId: string
571
+ tokenAddress: string | null
572
+ networkId: NetworkId | null
573
+ percentage: number // 0 to 100
574
+ flow: 'send' | 'earn' | 'swap'
575
+ mode?: EarnActiveMode
576
+ }
577
+ [SendEvents.swap_input_pressed]: {
578
+ swapToLocalAmount: boolean
579
+ tokenId: string
580
+ tokenAddress: string | null
581
+ networkId: NetworkId | null
582
+ }
583
+ [SendEvents.check_account_alert_shown]: undefined
584
+ [SendEvents.check_account_do_not_ask_selected]: undefined
585
+ [SendEvents.check_account_alert_back]: undefined
586
+ [SendEvents.check_account_alerts_continue]: undefined
587
+ [SendEvents.send_select_recipient_scan_qr]: undefined
588
+ [SendEvents.send_select_recipient_contacts]: {
589
+ contactsPermissionStatus: PermissionStatus
590
+ phoneNumberVerified: boolean
591
+ }
592
+ [SendEvents.send_phone_number_modal_connect]: undefined
593
+ [SendEvents.send_phone_number_modal_dismiss]: undefined
594
+ [SendEvents.send_contacts_modal_settings]: undefined
595
+ [SendEvents.send_contacts_modal_dismiss]: undefined
596
+ [SendEvents.request_contacts_permission_started]: undefined
597
+ [SendEvents.request_contacts_permission_completed]: {
598
+ permissionStatus: PermissionStatus
599
+ }
600
+ [SendEvents.send_select_recipient_send_press]: {
601
+ recipientType: RecipientType
602
+ }
603
+ [SendEvents.send_select_recipient_invite_press]: {
604
+ recipientType: RecipientType
605
+ }
606
+ [SendEvents.send_select_recipient_recent_press]: {
607
+ recipientType: RecipientType
608
+ }
609
+ }
610
+
611
+ interface FeeEventsProperties {
612
+ [FeeEvents.gas_fee_warning_impression]: {
613
+ flow: GasFeeWarningFlow
614
+ errorType: 'need-decrease-spend-amount-for-gas' | 'not-enough-balance-for-gas'
615
+ tokenId: string
616
+ networkId: NetworkId
617
+ }
618
+ [FeeEvents.gas_fee_warning_cta_press]: {
619
+ flow: GasFeeWarningFlow
620
+ errorType: 'need-decrease-spend-amount-for-gas' | 'not-enough-balance-for-gas'
621
+ tokenId: string
622
+ networkId: NetworkId
623
+ }
624
+ }
625
+
626
+ interface TransactionEventsProperties {
627
+ [TransactionEvents.transaction_start]: {
628
+ txId: string
629
+ description?: string
630
+ fornoMode?: boolean
631
+ } & Web3LibraryProps
632
+ [TransactionEvents.transaction_gas_estimated]: {
633
+ txId: string
634
+ estimatedGas: number
635
+ prefilled: boolean
636
+ feeCurrencyAddress?: string
637
+ } & Web3LibraryProps
638
+ [TransactionEvents.transaction_hash_received]: {
639
+ txId: string
640
+ txHash: string
641
+ } & Web3LibraryProps
642
+ [TransactionEvents.transaction_confirmed]: {
643
+ txId: string
644
+ } & Web3LibraryProps
645
+ [TransactionEvents.transaction_receipt_received]: {
646
+ txId: string
647
+ } & Web3LibraryProps
648
+ [TransactionEvents.transaction_error]: {
649
+ txId: string
650
+ error: string
651
+ } & Web3LibraryProps
652
+ [TransactionEvents.transaction_exception]: {
653
+ txId: string
654
+ error: string
655
+ feeCurrencyAddress?: string
656
+ } & Web3LibraryProps
657
+ [TransactionEvents.transaction_prepare_insufficient_gas]: {
658
+ networkId: NetworkId
659
+ origin: TransactionOrigin
660
+ }
661
+ }
662
+
663
+ interface CeloExchangeEventsProperties {
664
+ [CeloExchangeEvents.celo_withdraw_completed]: {
665
+ amount: string
666
+ }
667
+ }
668
+
669
+ interface FiatExchangeEventsProperties {
670
+ [FiatExchangeEvents.external_exchange_link]: {
671
+ name: string
672
+ link: string
673
+ isCashIn: boolean
674
+ }
675
+ [FiatExchangeEvents.spend_merchant_link]: {
676
+ name: string
677
+ link: string
678
+ }
679
+ [FiatExchangeEvents.cash_in_success]: {
680
+ provider: string | undefined
681
+ }
682
+ [FiatExchangeEvents.cico_add_bottom_sheet_selected]: {
683
+ rampAvailable: boolean
684
+ }
685
+ [FiatExchangeEvents.cico_add_bottom_sheet_impression]: undefined
686
+ [FiatExchangeEvents.cico_add_bottom_sheet_ramp_selected]: undefined
687
+ [FiatExchangeEvents.cico_add_bottom_sheet_ramp_available]: undefined
688
+ [FiatExchangeEvents.cico_add_get_started_impression]: undefined
689
+ [FiatExchangeEvents.cico_add_get_started_selected]: undefined
690
+ [FiatExchangeEvents.cico_external_exchanges_back]: undefined
691
+ [FiatExchangeEvents.cico_cash_out_copy_address]: undefined
692
+ [FiatExchangeEvents.cico_spend_select_provider_back]: undefined
693
+ [FiatExchangeEvents.cico_non_celo_exchange_send_bar_continue]: undefined
694
+ [FiatExchangeEvents.cico_landing_token_balance]: { totalBalance?: string }
695
+ [FiatExchangeEvents.cico_landing_select_flow]: { flow: FiatExchangeFlow }
696
+ [FiatExchangeEvents.cico_landing_how_to_fund]: undefined
697
+ [FiatExchangeEvents.cico_amount_chosen]: {
698
+ amount: number
699
+ currency: string
700
+ flow: CICOFlow
701
+ }
702
+ [FiatExchangeEvents.cico_amount_chosen_invalid]: {
703
+ amount: number
704
+ currency: string
705
+ flow: CICOFlow
706
+ }
707
+ [FiatExchangeEvents.cico_amount_back]: {
708
+ currency: string
709
+ flow: CICOFlow
710
+ }
711
+ [FiatExchangeEvents.cico_providers_section_impression]: {
712
+ paymentMethod: PaymentMethod
713
+ quoteCount: number
714
+ flow: CICOFlow
715
+ providers: string[]
716
+ }
717
+ [FiatExchangeEvents.cico_providers_section_expand]: {
718
+ paymentMethod: PaymentMethod
719
+ flow: CICOFlow
720
+ }
721
+ [FiatExchangeEvents.cico_providers_section_collapse]: {
722
+ paymentMethod: PaymentMethod
723
+ flow: CICOFlow
724
+ }
725
+ [FiatExchangeEvents.cico_providers_quote_selected]: {
726
+ paymentMethod: PaymentMethod
727
+ provider: string
728
+ flow: CICOFlow
729
+ feeCryptoAmount: number | undefined
730
+ kycRequired: boolean
731
+ isLowestFee: boolean | undefined
732
+ } & ProviderSelectionAnalyticsData
733
+ [FiatExchangeEvents.cico_providers_back]: { flow: CICOFlow }
734
+ [FiatExchangeEvents.cico_providers_fetch_quotes_result]: {
735
+ fiatType: LocalCurrencyCode
736
+ defaultFiatType: LocalCurrencyCode
737
+ } & Omit<ProviderSelectionAnalyticsData, 'transferCryptoAmount'> &
738
+ (
739
+ | {
740
+ flow: CICOFlow.CashOut
741
+ cryptoAmount: number // given by user
742
+ fiatAmount: undefined // exchange rate varies by provider
743
+ }
744
+ | {
745
+ flow: CICOFlow.CashIn
746
+ cryptoAmount: undefined // exchange rate varies by provider
747
+ fiatAmount: number // given by user
748
+ }
749
+ )
750
+ [FiatExchangeEvents.cico_providers_exchanges_selected]: {
751
+ flow: CICOFlow
752
+ } & ProviderSelectionAnalyticsData
753
+ [FiatExchangeEvents.cico_providers_unavailable_impression]: { flow: CICOFlow }
754
+ [FiatExchangeEvents.cico_providers_unavailable_selected]: { flow: CICOFlow }
755
+ [FiatExchangeEvents.cico_providers_new_info_opened]: {
756
+ flow: CICOFlow
757
+ provider: string
758
+ paymentMethod: PaymentMethod
759
+ }
760
+ [FiatExchangeEvents.cico_fc_review_submit]: { flow: CICOFlow; provider: string }
761
+ [FiatExchangeEvents.cico_fc_review_cancel]: {
762
+ provider: string
763
+ flow: CICOFlow
764
+ }
765
+ [FiatExchangeEvents.cico_fc_review_back]: {
766
+ provider: string
767
+ flow: CICOFlow
768
+ }
769
+ [FiatExchangeEvents.cico_fc_review_error_retry]: {
770
+ provider: string
771
+ flow: CICOFlow
772
+ }
773
+ [FiatExchangeEvents.cico_fc_review_error_contact_support]: {
774
+ provider: string
775
+ flow: CICOFlow
776
+ }
777
+ [FiatExchangeEvents.cico_fc_link_account_continue]: {
778
+ fiatAccountSchema: FiatAccountSchema
779
+ provider: string
780
+ flow: CICOFlow
781
+ }
782
+ [FiatExchangeEvents.cico_fc_link_account_back]: {
783
+ fiatAccountSchema: FiatAccountSchema
784
+ provider: string
785
+ flow: CICOFlow
786
+ }
787
+ [FiatExchangeEvents.cico_fc_link_kyc_account_back]: {
788
+ fiatAccountSchema: FiatAccountSchema
789
+ provider: string
790
+ flow: CICOFlow
791
+ }
792
+ [FiatExchangeEvents.cico_fc_link_account_provider_website]: {
793
+ fiatAccountSchema: FiatAccountSchema
794
+ provider: string
795
+ flow: CICOFlow
796
+ page: 'home' | 'termsAndConditions' | 'privacyPolicy'
797
+ }
798
+ [FiatExchangeEvents.cico_fiat_details_success]: {
799
+ fiatAccountSchema: FiatAccountSchema
800
+ provider: string
801
+ flow: CICOFlow
802
+ }
803
+ [FiatExchangeEvents.cico_fiat_details_back]: {
804
+ fiatAccountSchema: FiatAccountSchema
805
+ provider: string
806
+ flow: CICOFlow
807
+ }
808
+ [FiatExchangeEvents.cico_fiat_details_cancel]: {
809
+ fiatAccountSchema: FiatAccountSchema
810
+ provider: string
811
+ flow: CICOFlow
812
+ }
813
+ [FiatExchangeEvents.cico_fiat_details_error]: {
814
+ fiatConnectError?: FiatConnectError
815
+ error?: string
816
+ fiatAccountSchema: FiatAccountSchema
817
+ provider: string
818
+ flow: CICOFlow
819
+ }
820
+ [FiatExchangeEvents.cico_simplex_open_webview]: {
821
+ amount: number
822
+ cryptoCurrency: string
823
+ feeInFiat: number
824
+ fiatCurrency: string
825
+ }
826
+ [FiatExchangeEvents.cico_fc_transfer_api_error]: {
827
+ fiatConnectError?: FiatConnectError
828
+ error?: string
829
+ provider: string
830
+ flow: CICOFlow
831
+ }
832
+ [FiatExchangeEvents.cico_fc_transfer_tx_error]: {
833
+ error: string
834
+ transferAddress: string
835
+ provider: string
836
+ flow: CICOFlow
837
+ }
838
+ [FiatExchangeEvents.cico_fc_transfer_error]: {
839
+ error: string
840
+ provider: string
841
+ flow: CICOFlow
842
+ }
843
+ [FiatExchangeEvents.cico_fc_transfer_success]: {
844
+ txHash: string | null
845
+ transferAddress?: string
846
+ provider: string
847
+ flow: CICOFlow
848
+ }
849
+ [FiatExchangeEvents.cico_fc_transfer_error_retry]: {
850
+ provider: string
851
+ flow: CICOFlow
852
+ }
853
+ [FiatExchangeEvents.cico_fc_transfer_error_cancel]: {
854
+ provider: string
855
+ flow: CICOFlow
856
+ }
857
+ [FiatExchangeEvents.cico_fc_transfer_error_contact_support]: {
858
+ provider: string
859
+ flow: CICOFlow
860
+ }
861
+ [FiatExchangeEvents.cico_fc_transfer_success_complete]: {
862
+ provider: string
863
+ flow: CICOFlow
864
+ txHash: string | null
865
+ }
866
+ [FiatExchangeEvents.cico_fc_transfer_success_view_tx]: {
867
+ provider: string
868
+ flow: CICOFlow
869
+ txHash: string | null
870
+ }
871
+ [FiatExchangeEvents.cico_fc_transfer_processing_continue]: {
872
+ provider: string
873
+ flow: CICOFlow
874
+ txHash: string | null
875
+ }
876
+ [FiatExchangeEvents.cico_fc_transfer_processing_view_tx]: {
877
+ provider: string
878
+ flow: CICOFlow
879
+ txHash: string | null
880
+ }
881
+ [FiatExchangeEvents.cico_fc_kyc_status_contact_support]: FiatConnectKycProperties
882
+ [FiatExchangeEvents.cico_fc_kyc_status_back]: FiatConnectKycProperties
883
+ [FiatExchangeEvents.cico_fc_kyc_status_close]: FiatConnectKycProperties
884
+ [FiatExchangeEvents.cico_fc_kyc_status_try_again]: FiatConnectKycProperties
885
+ [FiatExchangeEvents.cico_fc_kyc_status_switch_method]: FiatConnectKycProperties
886
+ [FiatExchangeEvents.cico_exchange_qr_bottom_sheet_open]: {
887
+ flow: CICOFlow
888
+ }
889
+ [FiatExchangeEvents.cico_exchange_qr_bottom_sheet_close]: {
890
+ flow: CICOFlow
891
+ }
892
+ [FiatExchangeEvents.cico_exchange_qr_bottom_sheet_link_press]: {
893
+ flow: CICOFlow
894
+ exchange: string
895
+ }
896
+ [FiatExchangeEvents.cico_exchange_qr_back]: {
897
+ flow: CICOFlow
898
+ }
899
+ [FiatExchangeEvents.cico_exchange_qr_copy_address]: {
900
+ flow: CICOFlow
901
+ }
902
+ [FiatExchangeEvents.cico_exchange_qr_share]: {
903
+ flow: CICOFlow
904
+ }
905
+ }
906
+
907
+ interface QrScreenProperties {
908
+ [QrScreenEvents.qr_screen_copy_address]: undefined
909
+ [QrScreenEvents.qr_scanner_open]: undefined
910
+ [QrScreenEvents.qr_scanned]: QrCode
911
+ }
912
+
913
+ interface FiatConnectKycProperties {
914
+ provider: string
915
+ flow: CICOFlow
916
+ fiatConnectKycStatus: FiatConnectKycStatus
917
+ }
918
+
919
+ interface ContractKitEventsProperties {
920
+ [ContractKitEvents.init_contractkit_start]: undefined
921
+ [ContractKitEvents.init_contractkit_get_wallet_start]: undefined
922
+ [ContractKitEvents.init_contractkit_get_wallet_finish]: undefined
923
+ [ContractKitEvents.init_contractkit_init_wallet_finish]: undefined
924
+ [ContractKitEvents.init_contractkit_finish]: undefined
925
+ }
926
+
927
+ interface PerformanceProperties {
928
+ [PerformanceEvents.redux_store_size]: {
929
+ size: number
930
+ }
931
+ }
932
+
933
+ interface NavigationProperties {
934
+ [NavigationEvents.navigator_not_ready]: undefined
935
+ }
936
+
937
+ export interface WalletConnect1Properties {
938
+ version: 1
939
+ dappRequestOrigin: DappRequestOrigin
940
+ dappName: string
941
+ dappUrl: string
942
+ dappDescription: string
943
+ dappIcon: string
944
+ peerId: string
945
+ chainId: string
946
+ }
947
+
948
+ export interface WalletConnect2Properties {
949
+ version: 2
950
+ dappRequestOrigin: DappRequestOrigin
951
+ dappName: string
952
+ dappUrl: string
953
+ dappDescription: string
954
+ dappIcon: string
955
+ relayProtocol: string
956
+ // eip155Events, eip155Chains, eip155Methods are added dynamically based on the requiredNamespaces property in the WalletConnect response
957
+ }
958
+
959
+ type WalletConnectDefaultProperties = WalletConnect1Properties | WalletConnect2Properties
960
+
961
+ type WalletConnectRequestDefaultProperties = WalletConnectDefaultProperties & {
962
+ requestChainId: string | undefined
963
+ requestId: number
964
+ requestJsonrpc: string
965
+ requestMethod: string
966
+ // TODO: add back when we confirm there's no privacy issue with tracking this
967
+ // requestParams: any
968
+ }
969
+
970
+ type WalletConnectRequestRejectSessionProperties = WalletConnectDefaultProperties & {
971
+ rejectReason: string
972
+ }
973
+
974
+ type WalletConnectRequestDenyProperties = WalletConnectRequestDefaultProperties & {
975
+ denyReason: string
976
+ }
977
+
978
+ interface WalletConnectProperties {
979
+ [WalletConnectEvents.wc_pairing_start]: {
980
+ dappRequestOrigin: DappRequestOrigin
981
+ origin: WalletConnectPairingOrigin
982
+ }
983
+ [WalletConnectEvents.wc_pairing_success]: { dappRequestOrigin: DappRequestOrigin }
984
+ [WalletConnectEvents.wc_pairing_error]: {
985
+ dappRequestOrigin: DappRequestOrigin
986
+ error: string
987
+ }
988
+
989
+ [WalletConnectEvents.wc_session_propose]: WalletConnectDefaultProperties
990
+ [WalletConnectEvents.wc_session_approve_start]: WalletConnectDefaultProperties
991
+ [WalletConnectEvents.wc_session_approve_success]: WalletConnectDefaultProperties
992
+ [WalletConnectEvents.wc_session_approve_error]: WalletConnectDefaultProperties & {
993
+ error: string
994
+ }
995
+ [WalletConnectEvents.wc_session_reject_start]: WalletConnectRequestRejectSessionProperties
996
+ [WalletConnectEvents.wc_session_reject_success]: WalletConnectRequestRejectSessionProperties
997
+ [WalletConnectEvents.wc_session_reject_error]: WalletConnectRequestRejectSessionProperties & {
998
+ error: string
999
+ }
1000
+ [WalletConnectEvents.wc_session_remove_start]: WalletConnectDefaultProperties
1001
+ [WalletConnectEvents.wc_session_remove_success]: WalletConnectDefaultProperties
1002
+ [WalletConnectEvents.wc_session_remove_error]: WalletConnectDefaultProperties & {
1003
+ error: string
1004
+ }
1005
+
1006
+ [WalletConnectEvents.wc_request_propose]: WalletConnectRequestDefaultProperties
1007
+ [WalletConnectEvents.wc_request_accept_start]: WalletConnectRequestDefaultProperties
1008
+ [WalletConnectEvents.wc_request_accept_success]: WalletConnectRequestDefaultProperties
1009
+ [WalletConnectEvents.wc_request_accept_error]: WalletConnectRequestDefaultProperties & {
1010
+ error: string
1011
+ }
1012
+ [WalletConnectEvents.wc_request_deny_start]: WalletConnectRequestDenyProperties
1013
+ [WalletConnectEvents.wc_request_deny_success]: WalletConnectRequestDenyProperties
1014
+ [WalletConnectEvents.wc_request_deny_error]: WalletConnectRequestDenyProperties & {
1015
+ error: string
1016
+ }
1017
+
1018
+ [WalletConnectEvents.wc_copy_request_payload]: WalletConnectRequestDefaultProperties
1019
+ }
1020
+
1021
+ interface DappProperties {
1022
+ categories: string[]
1023
+ dappId: string
1024
+ dappName: string
1025
+ }
1026
+
1027
+ interface DappEventProperties extends DappProperties {
1028
+ section: DappSection
1029
+ horizontalPosition?: number
1030
+ }
1031
+
1032
+ interface DappExplorerEventsProperties {
1033
+ [DappExplorerEvents.dapp_impression]: DappEventProperties
1034
+ [DappExplorerEvents.dapp_open]: DappEventProperties & {
1035
+ activeFilter?: string
1036
+ activeSearchTerm?: string
1037
+ position?: number
1038
+ fromScreen?: Screens
1039
+ }
1040
+ [DappExplorerEvents.dapp_close]: DappEventProperties
1041
+ [DappExplorerEvents.dapp_screen_open]: undefined
1042
+ [DappExplorerEvents.dapp_view_all]: { section: DappSection }
1043
+ [DappExplorerEvents.dapp_favorite]: DappEventProperties
1044
+ [DappExplorerEvents.dapp_unfavorite]: DappEventProperties
1045
+ [DappExplorerEvents.dapp_filter]: {
1046
+ filterId: string
1047
+ remove: boolean
1048
+ }
1049
+ [DappExplorerEvents.dapp_explore_all]: undefined
1050
+ }
1051
+
1052
+ interface WebViewEventsProperties {
1053
+ [WebViewEvents.webview_more_options]: {
1054
+ currentUrl: string
1055
+ }
1056
+ [WebViewEvents.webview_open_in_browser]: {
1057
+ currentUrl: string
1058
+ }
1059
+ }
1060
+
1061
+ interface CoinbasePayEventsProperties {
1062
+ [CoinbasePayEvents.coinbase_pay_flow_start]: ProviderSelectionAnalyticsData
1063
+ [CoinbasePayEvents.coinbase_pay_flow_exit]: undefined
1064
+ }
1065
+
1066
+ interface SwapEvent {
1067
+ /**
1068
+ * Address of the to token
1069
+ *
1070
+ * @deprecated use toTokenId instead
1071
+ */
1072
+ toToken: string | null | undefined
1073
+ toTokenId: string
1074
+ toTokenNetworkId: string
1075
+ toTokenIsImported: boolean
1076
+ /**
1077
+ * Address of the from token
1078
+ *
1079
+ * @deprecated use fromTokenId instead
1080
+ */
1081
+ fromToken: string | null | undefined
1082
+ fromTokenId: string
1083
+ fromTokenNetworkId: string
1084
+ fromTokenIsImported: boolean
1085
+ /**
1086
+ * Starting with v1.74, this amount is always in decimal format
1087
+ * Before that it was in token smallest unit or decimal format depending on the event.
1088
+ */
1089
+ amount: string | null
1090
+ amountType: 'buyAmount' | 'sellAmount'
1091
+ }
1092
+
1093
+ type SwapQuoteEvent = SwapEvent & {
1094
+ allowanceTarget: string
1095
+ /**
1096
+ * In percentage, between 0 and 100
1097
+ */
1098
+ estimatedPriceImpact: string | null
1099
+ price: string
1100
+ appFeePercentageIncludedInPrice: string | null | undefined
1101
+ provider: string
1102
+ swapType: SwapType
1103
+ swapId: string
1104
+ }
1105
+
1106
+ export interface SwapTimeMetrics {
1107
+ quoteToTransactionElapsedTimeInMs?: number // The elapsed time since the quote was received until the swap transaction is sent to the blockchain
1108
+ quoteToUserConfirmsSwapElapsedTimeInMs: number // The elapsed time since the quote was received until the user confirmed to execute the swap
1109
+ }
1110
+
1111
+ export interface SwapTxsProperties {
1112
+ gas: number // Gas limit of the swap (approve + swap)
1113
+ maxGasFee: number | undefined // Max gas fee for the swap (approve + swap) in feeCurrency (decimal value)
1114
+ maxGasFeeUsd: number | undefined // Max gas fee for the swap (approve + swap) in USD
1115
+ estimatedGasFee: number | undefined // Estimated gas fee for the swap (approve + swap) in feeCurrency (decimal value)
1116
+ estimatedGasFeeUsd: number | undefined // Estimated gas fee for the swap (approve + swap) in USD
1117
+ txCount: number // Number of transactions for the swap (1 or 2 depending on whether the approve tx is needed)
1118
+ feeCurrency: string | undefined // Fee currency used
1119
+ feeCurrencySymbol: string | undefined // Fee currency symbol used
1120
+ }
1121
+
1122
+ export interface TxReceiptProperties {
1123
+ txCumulativeGasUsed: number // Gas used by the transaction and all preceding transactions in the block
1124
+ txEffectiveGasPrice: number // Pre-London, it is equal to the transaction's gasPrice. Post-London, it is equal to the actual gas price paid for inclusion.
1125
+ txGas: number // Gas limit of the transaction
1126
+ txMaxGasFee: number | undefined // Max gas fee of the transaction in feeCurrency (decimal value)
1127
+ txMaxGasFeeUsd: number | undefined // Max gas fee of the in USD
1128
+ txEstimatedGasFee: number | undefined // Estimated gas fee of the transaction in feeCurrency (decimal value)
1129
+ txEstimatedGasFeeUsd: number | undefined // Estimated gas fee of the transaction in USD
1130
+ txGasUsed: number // Gas used by the transaction
1131
+ txGasFee: number // Actual gas fee of the transaction in feeCurrency (decimal value)
1132
+ txGasFeeUsd: number // Actual gas fee of the transaction in USD
1133
+ txHash: string // Hash of the transaction
1134
+ txFeeCurrency: string | undefined // Fee currency used
1135
+ txFeeCurrencySymbol: string | undefined // Fee currency symbol used
1136
+ }
1137
+
1138
+ export type PrefixedTxReceiptProperties<Prefix extends string> = {
1139
+ [Property in keyof TxReceiptProperties as `${Prefix}${Capitalize<
1140
+ string & Property
1141
+ >}`]: TxReceiptProperties[Property]
1142
+ }
1143
+
1144
+ // Adds `swap` prefix to all properties of TxReceiptProperties
1145
+ type SwapTxReceiptProperties = PrefixedTxReceiptProperties<'swap'>
1146
+
1147
+ // Adds `approve` prefix to all properties of TxReceiptProperties
1148
+ type ApproveTxReceiptProperties = PrefixedTxReceiptProperties<'approve'>
1149
+
1150
+ export type SwapTxsReceiptProperties = Partial<ApproveTxReceiptProperties> &
1151
+ Partial<SwapTxReceiptProperties> &
1152
+ Partial<{
1153
+ gas: number // Gas limit of the swap (approve + swap)
1154
+ maxGasFee: number | undefined // Max gas fee for the swap (approve + swap) in feeCurrency (decimal value)
1155
+ maxGasFeeUsd: number | undefined // Max gas fee for the swap (approve + swap) in USD
1156
+ estimatedGasFee: number | undefined // Estimated gas fee for the swap (approve + swap) in feeCurrency (decimal value)
1157
+ estimatedGasFeeUsd: number | undefined // Estimated gas fee for the swap (approve + swap) in USD
1158
+ gasUsed: number // Gas used by the swap (approve + swap)
1159
+ gasFee: number | undefined // Actual gas fee of the swap (approve + swap) in feeCurrency (decimal value)
1160
+ gasFeeUsd: number | undefined // Actual gas fee of the swap (approve + swap) in USD
1161
+ feeCurrency: string | undefined // Fee currency used
1162
+ feeCurrencySymbol: string | undefined // Fee currency symbol used
1163
+ }>
1164
+
1165
+ export enum SwapShowInfoType {
1166
+ FEES,
1167
+ SLIPPAGE,
1168
+ EXCHANGE_RATE,
1169
+ ESTIMATED_DURATION,
1170
+ }
1171
+ interface SwapEventsProperties {
1172
+ [SwapEvents.swap_screen_open]: undefined
1173
+ [SwapEvents.swap_screen_select_token]: {
1174
+ fieldType: Field
1175
+ }
1176
+ [SwapEvents.swap_screen_confirm_token]: {
1177
+ fieldType: Field
1178
+ tokenSymbol: string
1179
+ tokenId: string
1180
+ tokenNetworkId: string
1181
+ fromTokenSymbol: string | undefined
1182
+ fromTokenId: string | undefined
1183
+ fromTokenNetworkId: string | undefined
1184
+ toTokenSymbol: string | undefined
1185
+ toTokenId: string | undefined
1186
+ toTokenNetworkId: string | undefined
1187
+ switchedNetworkId: boolean
1188
+ areSwapTokensShuffled: boolean
1189
+ tokenPositionInList: number
1190
+ }
1191
+ [SwapEvents.swap_screen_percentage_selected]: {
1192
+ tokenSymbol?: string
1193
+ tokenId: string
1194
+ tokenNetworkId: string
1195
+ percentage: number // 0 to 100
1196
+ }
1197
+ [SwapEvents.swap_gas_fees_learn_more]: undefined
1198
+ [SwapEvents.swap_review_submit]: SwapQuoteEvent &
1199
+ Web3LibraryProps &
1200
+ Partial<SwapTxsProperties> & {
1201
+ isUnfavorableRate: boolean
1202
+ }
1203
+ [SwapEvents.swap_execute_success]:
1204
+ | ({ swapType: 'same-chain' } & SwapQuoteEvent &
1205
+ SwapTimeMetrics &
1206
+ Web3LibraryProps &
1207
+ Partial<SwapTxsProperties> &
1208
+ SwapTxsReceiptProperties & {
1209
+ fromTokenBalance: string
1210
+ swapExecuteTxId: string
1211
+ swapApproveTxId: string
1212
+ estimatedSellTokenUsdValue?: number
1213
+ estimatedBuyTokenUsdValue?: number
1214
+ estimatedAppFeeUsdValue: number | undefined
1215
+ areSwapTokensShuffled: boolean
1216
+ })
1217
+ | ({ swapType: 'cross-chain' } & {
1218
+ swapExecuteTxId: string
1219
+ toTokenId: string
1220
+ toTokenAmount: string
1221
+ toTokenAmountUsd?: number
1222
+ toTokenBalance?: string
1223
+ fromTokenId: string
1224
+ fromTokenAmount: string
1225
+ fromTokenAmountUsd?: number
1226
+ fromTokenBalance?: string
1227
+ networkFeeTokenId?: string
1228
+ networkFeeAmount?: string
1229
+ networkFeeAmountUsd?: number
1230
+ appFeeTokenId?: string
1231
+ appFeeAmount?: string
1232
+ appFeeAmountUsd?: number
1233
+ crossChainFeeTokenId?: string
1234
+ crossChainFeeAmount?: string
1235
+ crossChainFeeAmountUsd?: number
1236
+ })
1237
+ [SwapEvents.swap_execute_error]: SwapQuoteEvent &
1238
+ SwapTimeMetrics &
1239
+ Web3LibraryProps &
1240
+ Partial<SwapTxsProperties> &
1241
+ SwapTxsReceiptProperties & {
1242
+ error: string
1243
+ fromTokenBalance: string
1244
+ swapExecuteTxId: string
1245
+ swapApproveTxId: string
1246
+ estimatedSellTokenUsdValue?: number
1247
+ estimatedBuyTokenUsdValue?: number
1248
+ estimatedAppFeeUsdValue: number | undefined
1249
+ areSwapTokensShuffled: boolean
1250
+ }
1251
+ [SwapEvents.swap_cancel]: SwapQuoteEvent &
1252
+ SwapTimeMetrics &
1253
+ Web3LibraryProps &
1254
+ Partial<SwapTxsProperties> &
1255
+ SwapTxsReceiptProperties & {
1256
+ fromTokenBalance: string
1257
+ swapExecuteTxId: string
1258
+ swapApproveTxId: string
1259
+ estimatedSellTokenUsdValue?: number
1260
+ estimatedBuyTokenUsdValue?: number
1261
+ estimatedAppFeeUsdValue: number | undefined
1262
+ areSwapTokensShuffled: boolean
1263
+ }
1264
+ [SwapEvents.swap_learn_more]: undefined
1265
+ [SwapEvents.swap_price_impact_warning_displayed]: SwapEvent & {
1266
+ provider: string
1267
+ priceImpact: string | null
1268
+ }
1269
+ [SwapEvents.swap_show_info]: {
1270
+ type: SwapShowInfoType
1271
+ }
1272
+ [SwapEvents.swap_show_fund_your_wallet]: undefined
1273
+ [SwapEvents.swap_add_funds]: undefined
1274
+ [SwapEvents.swap_switch_tokens]: {
1275
+ fromTokenId: string | undefined
1276
+ toTokenId: string | undefined
1277
+ }
1278
+ [SwapEvents.swap_unfavorable_rate_warning_displayed]: Omit<
1279
+ SwapQuoteEvent,
1280
+ 'swapId' | 'allowanceTarget'
1281
+ >
1282
+ [SwapEvents.swap_unfavorable_rate_warning_cancelled]: Omit<
1283
+ SwapQuoteEvent,
1284
+ 'swapId' | 'allowanceTarget'
1285
+ >
1286
+ }
1287
+
1288
+ interface CeloNewsEventsProperties {
1289
+ [CeloNewsEvents.celo_news_screen_open]: undefined
1290
+ [CeloNewsEvents.celo_news_article_tap]: {
1291
+ url: string
1292
+ }
1293
+ [CeloNewsEvents.celo_news_bottom_read_more_tap]: {
1294
+ url: string
1295
+ }
1296
+ [CeloNewsEvents.celo_news_retry_tap]: undefined
1297
+ }
1298
+
1299
+ interface TokenBottomSheetEventsProperties {
1300
+ [TokenBottomSheetEvents.search_token]: {
1301
+ origin: TokenPickerOrigin
1302
+ searchInput: string
1303
+ }
1304
+ [TokenBottomSheetEvents.toggle_tokens_filter]: {
1305
+ filterId: string
1306
+ isRemoving: boolean
1307
+ isPreSelected: boolean
1308
+ }
1309
+ [TokenBottomSheetEvents.network_filter_updated]: {
1310
+ selectedNetworkIds: NetworkId[]
1311
+ origin: TokenPickerOrigin
1312
+ }
1313
+ [TokenBottomSheetEvents.token_selected]: {
1314
+ origin: TokenPickerOrigin
1315
+ tokenId: string
1316
+ tokenAddress: string | null
1317
+ networkId: NetworkId | null
1318
+ usedSearchTerm: boolean
1319
+ selectedFilters: string[]
1320
+ areSwapTokensShuffled?: boolean
1321
+ tokenPositionInList: number
1322
+ }
1323
+ }
1324
+
1325
+ export interface TokenProperties {
1326
+ symbol: string
1327
+ address: string | null
1328
+ balanceUsd: number
1329
+ networkId: NetworkId
1330
+ tokenId: string
1331
+ }
1332
+
1333
+ interface AssetsEventsProperties {
1334
+ [AssetsEvents.show_asset_balance_info]: undefined
1335
+ [AssetsEvents.view_wallet_assets]: undefined
1336
+ [AssetsEvents.view_collectibles]: undefined
1337
+ [AssetsEvents.view_dapp_positions]: undefined
1338
+ [AssetsEvents.tap_asset]:
1339
+ | {
1340
+ assetType: 'token'
1341
+ address: string | null
1342
+ title: string // Example: 'cUSD'
1343
+ description: string
1344
+ balanceUsd: number
1345
+ }
1346
+ | {
1347
+ assetType: 'position'
1348
+ network: NetworkId // Example: 'celo-mainnet'
1349
+ appId: string // Example: 'ubeswap'
1350
+ address: string
1351
+ title: string // Example: MOO / CELO
1352
+ description: string
1353
+ balanceUsd: number
1354
+ }
1355
+ | ({
1356
+ assetType: 'token'
1357
+ title: string // Example: 'cUSD'
1358
+ description: string
1359
+ } & TokenProperties)
1360
+ [AssetsEvents.tap_claim_rewards]: undefined
1361
+ [AssetsEvents.tap_token_details_action]: {
1362
+ action: TokenActionName
1363
+ } & TokenProperties
1364
+ [AssetsEvents.tap_token_details_learn_more]: TokenProperties
1365
+ [AssetsEvents.tap_token_details_bottom_sheet_action]: {
1366
+ action: TokenActionName
1367
+ } & TokenProperties
1368
+ [AssetsEvents.import_token_screen_open]: undefined
1369
+ [AssetsEvents.import_token_submit]: {
1370
+ networkId: string
1371
+ tokenId: string
1372
+ tokenAddress: string
1373
+ tokenSymbol: string
1374
+ }
1375
+ [AssetsEvents.import_token_paste]: undefined
1376
+ [AssetsEvents.import_token_error]: {
1377
+ networkId: string
1378
+ tokenId: string
1379
+ tokenAddress: string
1380
+ error: string
1381
+ }
1382
+ }
1383
+
1384
+ interface NftsEventsProperties {
1385
+ [NftEvents.nft_error_screen_open]: undefined
1386
+ [NftEvents.nft_media_load]: {
1387
+ tokenId: string
1388
+ contractAddress: string
1389
+ url?: string
1390
+ origin: NftOrigin
1391
+ error?: string
1392
+ mediaType: 'image' | 'video'
1393
+ }
1394
+ }
1395
+
1396
+ interface BuilderHooksProperties {
1397
+ [BuilderHooksEvents.hooks_enable_preview_propose]: {
1398
+ origin: HooksEnablePreviewOrigin
1399
+ }
1400
+ [BuilderHooksEvents.hooks_enable_preview_confirm]: undefined
1401
+ [BuilderHooksEvents.hooks_enable_preview_cancel]: undefined
1402
+ [BuilderHooksEvents.hooks_enable_preview_error]: {
1403
+ error: string
1404
+ }
1405
+ [BuilderHooksEvents.hooks_disable_preview]: undefined
1406
+ }
1407
+
1408
+ interface DappShortcutClaimRewardEvent {
1409
+ rewardId: string
1410
+ appName: string
1411
+ appId: string
1412
+ network: NetworkId
1413
+ shortcutId: string
1414
+ }
1415
+
1416
+ interface DappShortcutsProperties {
1417
+ [DappShortcutsEvents.dapp_shortcuts_rewards_screen_open]: {
1418
+ numRewards: number
1419
+ }
1420
+ [DappShortcutsEvents.dapp_shortcuts_reward_claim_start]: DappShortcutClaimRewardEvent & {
1421
+ rewardTokens: string // comma separated
1422
+ rewardAmounts: string // comma separated
1423
+ claimableValueUsd: string
1424
+ }
1425
+ [DappShortcutsEvents.dapp_shortcuts_reward_claim_success]: DappShortcutClaimRewardEvent
1426
+ [DappShortcutsEvents.dapp_shortcuts_reward_claim_error]: DappShortcutClaimRewardEvent
1427
+ [DappShortcutsEvents.dapp_shortcuts_reward_tx_propose]: DappShortcutClaimRewardEvent
1428
+ [DappShortcutsEvents.dapp_shortcuts_reward_tx_copy]: DappShortcutClaimRewardEvent
1429
+ [DappShortcutsEvents.dapp_shortcuts_reward_tx_accepted]: DappShortcutClaimRewardEvent
1430
+ [DappShortcutsEvents.dapp_shortcuts_reward_tx_rejected]: DappShortcutClaimRewardEvent
1431
+ }
1432
+
1433
+ interface TransactionDetailsProperties {
1434
+ [TransactionDetailsEvents.transaction_details_tap_details]: {
1435
+ transactionType: TokenTransactionTypeV2
1436
+ transactionStatus: TransactionStatus
1437
+ }
1438
+ [TransactionDetailsEvents.transaction_details_tap_check_status]: {
1439
+ transactionType: TokenTransactionTypeV2
1440
+ transactionStatus: TransactionStatus
1441
+ }
1442
+ [TransactionDetailsEvents.transaction_details_tap_retry]: {
1443
+ transactionType: TokenTransactionTypeV2
1444
+ transactionStatus: TransactionStatus
1445
+ }
1446
+ [TransactionDetailsEvents.transaction_details_tap_block_explorer]: {
1447
+ transactionType: TokenTransactionTypeV2
1448
+ transactionStatus: TransactionStatus
1449
+ }
1450
+ }
1451
+
1452
+ interface JumpstartReclaimProperties {
1453
+ networkId: NetworkId
1454
+ depositTxHash: string
1455
+ }
1456
+ interface JumpstartEventsProperties {
1457
+ [JumpstartEvents.jumpstart_reclaim_press]: JumpstartReclaimProperties
1458
+ [JumpstartEvents.jumpstart_reclaim_start]: JumpstartReclaimProperties
1459
+ [JumpstartEvents.jumpstart_reclaim_failed]: JumpstartReclaimProperties
1460
+ [JumpstartEvents.jumpstart_reclaim_succeeded]: JumpstartReclaimProperties & {
1461
+ reclaimTxHash: string
1462
+ }
1463
+ [JumpstartEvents.jumpstart_reclaim_dismiss_error]: JumpstartReclaimProperties
1464
+ [JumpstartEvents.jumpstart_reclaim_contact_support]: undefined
1465
+ [JumpstartEvents.jumpstart_claim_status_fetch_success]: JumpstartReclaimProperties & {
1466
+ claimed: boolean
1467
+ }
1468
+ [JumpstartEvents.jumpstart_claim_status_fetch_error]: JumpstartReclaimProperties
1469
+ }
1470
+
1471
+ interface PointsEventsProperties {
1472
+ [PointsEvents.points_discover_press]: undefined
1473
+ [PointsEvents.points_intro_dismiss]: undefined
1474
+ [PointsEvents.points_intro_back]: undefined
1475
+ [PointsEvents.points_screen_back]: undefined
1476
+ [PointsEvents.points_screen_card_press]: {
1477
+ activityId: PointsActivityId
1478
+ }
1479
+ [PointsEvents.points_screen_card_cta_press]: {
1480
+ activityId: PointsActivityId
1481
+ }
1482
+ [PointsEvents.points_screen_activity_press]: undefined
1483
+ [PointsEvents.points_screen_activity_try_again_press]: {
1484
+ getNextPage: boolean
1485
+ }
1486
+ [PointsEvents.points_screen_activity_fetch_more]: undefined
1487
+ [PointsEvents.points_screen_activity_learn_more_press]: undefined
1488
+ [PointsEvents.points_screen_disclaimer_press]: undefined
1489
+ }
1490
+
1491
+ export interface EarnCommonProperties {
1492
+ providerId: string
1493
+ poolId: string
1494
+ networkId: NetworkId // this is always the pool's networkId
1495
+ depositTokenId: string
1496
+ }
1497
+
1498
+ interface EarnDepositProperties extends EarnCommonProperties {
1499
+ depositTokenAmount: string
1500
+ mode: EarnActiveMode
1501
+ // the below are mainly for swap-deposit. For deposit, this would just be
1502
+ // same as the depositTokenAmount and depositTokenId
1503
+ fromTokenAmount: string
1504
+ fromTokenId: string
1505
+ fromNetworkId: NetworkId
1506
+ swapType?: SwapType
1507
+ }
1508
+
1509
+ interface EarnWithdrawProperties extends EarnCommonProperties {
1510
+ tokenAmount?: string
1511
+ rewards: SerializableRewardsInfo[]
1512
+ mode: Extract<EarnActiveMode, 'withdraw' | 'claim-rewards' | 'exit'>
1513
+ }
1514
+
1515
+ // Adds `deposit` prefix to all properties of TxReceiptProperties
1516
+ type DepositTxReceiptProperties = PrefixedTxReceiptProperties<'deposit'>
1517
+
1518
+ export type EarnDepositTxsReceiptProperties = Partial<ApproveTxReceiptProperties> &
1519
+ Partial<DepositTxReceiptProperties> &
1520
+ Partial<{
1521
+ gasUsed: number // Gas used by the deposit (approve + deposit)
1522
+ gasFee: number | undefined // Actual gas fee of the deposit (approve + deposit) in feeCurrency (decimal value)
1523
+ gasFeeUsd: number | undefined // Actual gas fee of the deposit (approve + deposit) in USD
1524
+ }>
1525
+
1526
+ interface EarnEventsProperties {
1527
+ [EarnEvents.earn_entrypoint_press]: { hasSuppliedPools: boolean }
1528
+ [EarnEvents.earn_before_deposit_action_press]: {
1529
+ action: BeforeDepositActionName
1530
+ } & TokenProperties &
1531
+ EarnCommonProperties
1532
+ [EarnEvents.earn_deposit_provider_info_press]: EarnDepositProperties
1533
+ [EarnEvents.earn_deposit_terms_and_conditions_press]: {
1534
+ type: 'providerTermsAndConditions' | 'providerDocuments' | 'appTermsAndConditions'
1535
+ } & EarnDepositProperties
1536
+ [EarnEvents.earn_deposit_complete]: EarnDepositProperties
1537
+ [EarnEvents.earn_deposit_cancel]: EarnDepositProperties
1538
+ [EarnEvents.earn_deposit_submit_start]: EarnDepositProperties
1539
+ [EarnEvents.earn_deposit_submit_success]: EarnDepositProperties & EarnDepositTxsReceiptProperties
1540
+ [EarnEvents.earn_deposit_execute_success]: Partial<EarnDepositProperties> & {
1541
+ // only relevant for cross chain swap and deposit
1542
+ networkFeeTokenId?: string
1543
+ networkFeeAmount?: string
1544
+ networkFeeAmountUsd?: number
1545
+ appFeeTokenId?: string
1546
+ appFeeAmount?: string
1547
+ appFeeAmountUsd?: number
1548
+ crossChainFeeTokenId?: string
1549
+ crossChainFeeAmount?: string
1550
+ crossChainFeeAmountUsd?: number
1551
+ }
1552
+ [EarnEvents.earn_deposit_submit_error]: EarnDepositProperties &
1553
+ EarnDepositTxsReceiptProperties & {
1554
+ error: string
1555
+ }
1556
+ [EarnEvents.earn_deposit_submit_cancel]: EarnDepositProperties
1557
+ [EarnEvents.earn_enter_amount_continue_press]: {
1558
+ amountInUsd: string
1559
+ amountEnteredIn: AmountEnteredIn
1560
+ mode: EarnActiveMode
1561
+ // For deposits these will be the same as the depositTokenId and depositTokenAmount
1562
+ // For swaps these will be the swapFromTokenId and swapFromTokenAmount
1563
+ // For withdrawals this will be in units of the depositToken
1564
+ fromTokenAmount: string
1565
+ fromTokenId: string
1566
+ fromNetworkId: NetworkId
1567
+ depositTokenAmount?: string
1568
+ swapType?: SwapType // only for swap-deposit
1569
+ } & EarnCommonProperties
1570
+ [EarnEvents.earn_feed_item_select]: {
1571
+ origin:
1572
+ | TokenTransactionTypeV2.EarnDeposit
1573
+ | TokenTransactionTypeV2.EarnWithdraw
1574
+ | TokenTransactionTypeV2.EarnClaimReward
1575
+ | TokenTransactionTypeV2.EarnSwapDeposit
1576
+ }
1577
+ [EarnEvents.earn_collect_earnings_press]: EarnWithdrawProperties
1578
+ [EarnEvents.earn_withdraw_submit_start]: EarnWithdrawProperties
1579
+ [EarnEvents.earn_withdraw_submit_success]: EarnWithdrawProperties
1580
+ [EarnEvents.earn_withdraw_submit_error]: EarnWithdrawProperties & {
1581
+ error: string
1582
+ }
1583
+ [EarnEvents.earn_withdraw_submit_cancel]: EarnWithdrawProperties
1584
+ [EarnEvents.earn_withdraw_add_gas_press]: EarnCommonProperties & { gasTokenId: string }
1585
+ [EarnEvents.earn_withdraw_provider_info_press]: EarnWithdrawProperties
1586
+ [EarnEvents.earn_info_learn_press]: undefined
1587
+ [EarnEvents.earn_info_earn_press]: undefined
1588
+ [EarnEvents.earn_home_learn_more_press]: undefined
1589
+ [EarnEvents.earn_pool_card_press]: {
1590
+ poolAmount: string
1591
+ } & EarnCommonProperties
1592
+ [EarnEvents.earn_home_error_try_again]: undefined
1593
+ [EarnEvents.earn_pool_info_view_pool]: EarnCommonProperties
1594
+ [EarnEvents.earn_pool_info_tap_info_icon]: {
1595
+ type: 'tvl' | 'age' | 'yieldRate' | 'deposit' | 'dailyYieldRate' | 'safetyScore'
1596
+ } & EarnCommonProperties
1597
+ [EarnEvents.earn_pool_info_tap_withdraw]: {
1598
+ poolAmount: string
1599
+ } & EarnCommonProperties
1600
+ [EarnEvents.earn_pool_info_tap_deposit]: EarnCommonProperties & {
1601
+ hasDepositToken: boolean
1602
+ hasTokensOnSameNetwork: boolean
1603
+ hasTokensOnOtherNetworks: boolean
1604
+ }
1605
+ [EarnEvents.earn_pool_info_tap_safety_details]: EarnCommonProperties & {
1606
+ action: 'expand' | 'collapse'
1607
+ }
1608
+ [EarnEvents.earn_select_withdraw_type]: EarnCommonProperties & { type: EarnActiveMode }
1609
+ }
1610
+
1611
+ export type AnalyticsPropertiesList = AppEventsProperties &
1612
+ HomeEventsProperties &
1613
+ SettingsEventsProperties &
1614
+ PrivateKeyEventsProperties &
1615
+ KeylessBackupEventsProperties &
1616
+ OnboardingEventsProperties &
1617
+ PhoneVerificationEventsProperties &
1618
+ IdentityEventsProperties &
1619
+ AuthenticationEventsProperties &
1620
+ SendEventsProperties &
1621
+ JumpstartEventsProperties &
1622
+ FeeEventsProperties &
1623
+ TransactionEventsProperties &
1624
+ CeloExchangeEventsProperties &
1625
+ FiatExchangeEventsProperties &
1626
+ ContractKitEventsProperties &
1627
+ PerformanceProperties &
1628
+ NavigationProperties &
1629
+ WalletConnectProperties &
1630
+ DappExplorerEventsProperties &
1631
+ WebViewEventsProperties &
1632
+ CoinbasePayEventsProperties &
1633
+ SwapEventsProperties &
1634
+ CeloNewsEventsProperties &
1635
+ QrScreenProperties &
1636
+ TokenBottomSheetEventsProperties &
1637
+ AssetsEventsProperties &
1638
+ NftsEventsProperties &
1639
+ BuilderHooksProperties &
1640
+ DappShortcutsProperties &
1641
+ TransactionDetailsProperties &
1642
+ PointsEventsProperties &
1643
+ EarnEventsProperties
1644
+
1645
+ export type AnalyticsEventType = keyof AnalyticsPropertiesList