@luxexchange/lx 1.0.0
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.
- package/.depcheckrc +26 -0
- package/.eslintignore +4 -0
- package/.eslintrc.js +79 -0
- package/LLM.md +145 -0
- package/babel.config.js +39 -0
- package/env.d.ts +15 -0
- package/eslint_rules/i18n.js +44 -0
- package/eslint_rules/no-redux-modals.js +54 -0
- package/jest-package-mocks.js +38 -0
- package/openapitools.json +7 -0
- package/package.json +170 -0
- package/project.json +76 -0
- package/src/abis/argent-wallet-contract.json +61 -0
- package/src/abis/eip_2612.json +20 -0
- package/src/abis/eip_2612.ts +20 -0
- package/src/abis/ens-public-resolver.json +816 -0
- package/src/abis/ens-registrar.json +422 -0
- package/src/abis/erc1155.json +335 -0
- package/src/abis/erc20.json +108 -0
- package/src/abis/erc20_bytes32.json +30 -0
- package/src/abis/erc721.json +352 -0
- package/src/abis/fee-on-transfer-detector.json +133 -0
- package/src/abis/governor-bravo.json +1046 -0
- package/src/abis/lux-nft-airdrop-claim.json +218 -0
- package/src/abis/permit2.json +87 -0
- package/src/abis/permit2.ts +73 -0
- package/src/abis/weth.json +279 -0
- package/src/components/AmountInput/AmountInput.test.tsx +141 -0
- package/src/components/AmountInput/AmountInput.tsx +157 -0
- package/src/components/AmountInput/useTextWidth.tsx +90 -0
- package/src/components/AmountInput/utils/numericInputEnforcer.ts +6 -0
- package/src/components/AmountInput/utils/parseValue.ts +57 -0
- package/src/components/AmountInput/utils/replaceSeparators.ts +22 -0
- package/src/components/AnimatedNumber/AnimatedNumber.native.tsx +475 -0
- package/src/components/AnimatedNumber/AnimatedNumber.tsx +53 -0
- package/src/components/AnimatedNumber/AnimatedNumber.web.tsx +141 -0
- package/src/components/AnimatedNumber/TopAndBottomGradient.native.tsx +32 -0
- package/src/components/AnimatedNumber/TopAndBottomGradient.tsx +5 -0
- package/src/components/AnimatedNumber/TopAndBottomGradient.web.tsx +23 -0
- package/src/components/BaseCard/BaseCard.test.tsx +271 -0
- package/src/components/BaseCard/BaseCard.tsx +239 -0
- package/src/components/BaseCard/__snapshots__/BaseCard.test.tsx.snap +196 -0
- package/src/components/BatchedTransactions/CarouselControls.tsx +85 -0
- package/src/components/BridgedAsset/BridgedAssetModal.tsx +239 -0
- package/src/components/BridgedAsset/BridgedAssetTDPSection.tsx +49 -0
- package/src/components/BridgedAsset/WormholeModal.tsx +173 -0
- package/src/components/ConfirmSwapModal/ProgressIndicator.tsx +232 -0
- package/src/components/ConfirmSwapModal/steps/Approve.tsx +73 -0
- package/src/components/ConfirmSwapModal/steps/LP.tsx +60 -0
- package/src/components/ConfirmSwapModal/steps/Permit.tsx +85 -0
- package/src/components/ConfirmSwapModal/steps/SpinningBorderIcon.native.tsx +54 -0
- package/src/components/ConfirmSwapModal/steps/SpinningBorderIcon.tsx +15 -0
- package/src/components/ConfirmSwapModal/steps/SpinningBorderIcon.web.tsx +59 -0
- package/src/components/ConfirmSwapModal/steps/StepRowSkeleton.tsx +224 -0
- package/src/components/ConfirmSwapModal/steps/Swap.tsx +78 -0
- package/src/components/ConfirmSwapModal/steps/SwapTXPlanStepRow.tsx +175 -0
- package/src/components/ConfirmSwapModal/steps/Wrap.tsx +41 -0
- package/src/components/ConfirmSwapModal/types.ts +8 -0
- package/src/components/ConfirmSwapModal/useSecondsUntilDeadline.tsx +48 -0
- package/src/components/CurrencyInputPanel/AmountInputPresets/AmountInputPresets.tsx +51 -0
- package/src/components/CurrencyInputPanel/AmountInputPresets/PresetAmountButton.tsx +216 -0
- package/src/components/CurrencyInputPanel/AmountInputPresets/types.ts +8 -0
- package/src/components/CurrencyInputPanel/AmountInputPresets/utils.ts +8 -0
- package/src/components/CurrencyInputPanel/CurrencyInputPanel.tsx +234 -0
- package/src/components/CurrencyInputPanel/CurrencyInputPanelBalance.tsx +43 -0
- package/src/components/CurrencyInputPanel/CurrencyInputPanelHeader.tsx +87 -0
- package/src/components/CurrencyInputPanel/CurrencyInputPanelInput.tsx +242 -0
- package/src/components/CurrencyInputPanel/CurrencyInputPanelValue.tsx +100 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/DefaultTokenOptions.tsx +34 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/TokenIcon.tsx +94 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/TokenOptions/TokenOptionItem/TokenOptionItem.native.tsx +17 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/TokenOptions/TokenOptionItem/TokenOptionItem.tsx +6 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/TokenOptions/TokenOptionItem/TokenOptionItem.web.tsx +35 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/TokenOptions/TokenOptionItem/types.ts +9 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/TokenOptions/TokenOptions.tsx +58 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/TokenOptions/useSendSelectCurrencyEvent.tsx +37 -0
- package/src/components/CurrencyInputPanel/DefaultTokenOptions/constants.ts +19 -0
- package/src/components/CurrencyInputPanel/SelectTokenButton.tsx +86 -0
- package/src/components/CurrencyInputPanel/TokenRate.tsx +49 -0
- package/src/components/CurrencyInputPanel/hooks/useCurrencyInputFontSize.ts +53 -0
- package/src/components/CurrencyInputPanel/hooks/useIndicativeQuoteTextDisplay.ts +56 -0
- package/src/components/CurrencyInputPanel/hooks/useInputFocusSync/types.ts +11 -0
- package/src/components/CurrencyInputPanel/hooks/useInputFocusSync/useInputFocusSync.native.ts +36 -0
- package/src/components/CurrencyInputPanel/hooks/useInputFocusSync/useInputFocusSync.ts +6 -0
- package/src/components/CurrencyInputPanel/hooks/useInputFocusSync/useInputFocusSync.web.ts +6 -0
- package/src/components/CurrencyInputPanel/hooks/useRefetchAnimationStyle.native.ts +42 -0
- package/src/components/CurrencyInputPanel/hooks/useRefetchAnimationStyle.ts +14 -0
- package/src/components/CurrencyInputPanel/hooks/useRefetchAnimationStyle.web.ts +68 -0
- package/src/components/CurrencyInputPanel/types.tsx +61 -0
- package/src/components/CurrencyLogo/CurrencyLogo.test.tsx +50 -0
- package/src/components/CurrencyLogo/CurrencyLogo.tsx +38 -0
- package/src/components/CurrencyLogo/LogoWithTxStatus.test.tsx +291 -0
- package/src/components/CurrencyLogo/LogoWithTxStatus.tsx +282 -0
- package/src/components/CurrencyLogo/NetworkLogo.test.tsx +54 -0
- package/src/components/CurrencyLogo/NetworkLogo.tsx +89 -0
- package/src/components/CurrencyLogo/NetworkLogoWarning.tsx +44 -0
- package/src/components/CurrencyLogo/SplitLogo.test.tsx +120 -0
- package/src/components/CurrencyLogo/SplitLogo.tsx +127 -0
- package/src/components/CurrencyLogo/TokenLogo.test.tsx +146 -0
- package/src/components/CurrencyLogo/TokenLogo.tsx +164 -0
- package/src/components/CurrencyLogo/__snapshots__/CurrencyLogo.test.tsx.snap +90 -0
- package/src/components/CurrencyLogo/__snapshots__/LogoWithTxStatus.test.tsx.snap +130 -0
- package/src/components/CurrencyLogo/__snapshots__/NetworkLogo.test.tsx.snap +69 -0
- package/src/components/CurrencyLogo/__snapshots__/SplitLogo.test.tsx.snap +91 -0
- package/src/components/CurrencyLogo/__snapshots__/TokenLogo.test.tsx.snap +58 -0
- package/src/components/ExpandoRow/ExpandoRow.test.tsx +75 -0
- package/src/components/ExpandoRow/ExpandoRow.tsx +40 -0
- package/src/components/ExpandoRow/__snapshots__/ExpandoRow.test.tsx.snap +127 -0
- package/src/components/IconCloud/CloudItem.tsx +252 -0
- package/src/components/IconCloud/IconCloud.tsx +118 -0
- package/src/components/IconCloud/utils.ts +21 -0
- package/src/components/InlineWarningCard/InlineWarningCard.tsx +133 -0
- package/src/components/MicroConfirmation.tsx +25 -0
- package/src/components/MultichainTokenDetails/MultichainAddressList.test.tsx +90 -0
- package/src/components/MultichainTokenDetails/MultichainAddressList.tsx +82 -0
- package/src/components/MultichainTokenDetails/MultichainExplorerList.test.tsx +46 -0
- package/src/components/MultichainTokenDetails/MultichainExplorerList.tsx +63 -0
- package/src/components/MultichainTokenDetails/MultichainOptionRow.test.tsx +41 -0
- package/src/components/MultichainTokenDetails/MultichainOptionRow.tsx +87 -0
- package/src/components/MultichainTokenDetails/MultichainScrollableList.tsx +98 -0
- package/src/components/MultichainTokenDetails/__snapshots__/MultichainExplorerList.test.tsx.snap +150 -0
- package/src/components/MultichainTokenDetails/__snapshots__/MultichainOptionRow.test.tsx.snap +49 -0
- package/src/components/MultichainTokenDetails/useOrderedMultichainEntries.test.ts +53 -0
- package/src/components/MultichainTokenDetails/useOrderedMultichainEntries.ts +22 -0
- package/src/components/ReceiveQRCode/ReceiveQRCode.tsx +189 -0
- package/src/components/ReceiveQRCode/constants.ts +5 -0
- package/src/components/RelativeChange/RelativeChange.test.tsx +44 -0
- package/src/components/RelativeChange/RelativeChange.tsx +72 -0
- package/src/components/RelativeChange/__snapshots__/RelativeChange.test.tsx.snap +110 -0
- package/src/components/RoutingDiagram/RoutingDiagram.tsx +264 -0
- package/src/components/RoutingDiagram/RoutingLabel.tsx +42 -0
- package/src/components/TokenSelector/CrosschainSwapsPromoBanner.tsx +51 -0
- package/src/components/TokenSelector/TokenSelector.tsx +423 -0
- package/src/components/TokenSelector/TokenSelectorList.tsx +267 -0
- package/src/components/TokenSelector/UnsupportedChainedActionsBanner.tsx +68 -0
- package/src/components/TokenSelector/constants.ts +3 -0
- package/src/components/TokenSelector/filter.test.ts +98 -0
- package/src/components/TokenSelector/filter.ts +131 -0
- package/src/components/TokenSelector/hooks/useAddToSearchHistory.ts +81 -0
- package/src/components/TokenSelector/hooks/useAllCommonBaseCurrencies.ts +126 -0
- package/src/components/TokenSelector/hooks/useCommonTokensOptions.ts +75 -0
- package/src/components/TokenSelector/hooks/useCommonTokensOptionsWithFallback.ts +66 -0
- package/src/components/TokenSelector/hooks/useCurrencies.ts +39 -0
- package/src/components/TokenSelector/hooks/useCurrencyInfosToTokenOptions.ts +94 -0
- package/src/components/TokenSelector/hooks/useFavoriteCurrencies.ts +32 -0
- package/src/components/TokenSelector/hooks/useFavoriteTokensOptions.ts +57 -0
- package/src/components/TokenSelector/hooks/useLuxTokensOptions.ts +97 -0
- package/src/components/TokenSelector/hooks/usePortfolioBalancesForAddressById.ts +29 -0
- package/src/components/TokenSelector/hooks/usePortfolioTokenOptions.ts +74 -0
- package/src/components/TokenSelector/hooks/useRecentlySearchedTokens.ts +44 -0
- package/src/components/TokenSelector/hooks/useTokenSectionsForEmptySearch.tsx +42 -0
- package/src/components/TokenSelector/hooks/useTokenSectionsForSearchResults.ts +155 -0
- package/src/components/TokenSelector/hooks/useTrendingTokensCurrencyInfos.ts +30 -0
- package/src/components/TokenSelector/hooks/useTrendingTokensOptions.ts +47 -0
- package/src/components/TokenSelector/hooks.test.ts +1170 -0
- package/src/components/TokenSelector/items/tokens/SuggestedToken.tsx +61 -0
- package/src/components/TokenSelector/items/tokens/TokenCard.tsx +79 -0
- package/src/components/TokenSelector/lists/HorizontalTokenList/HorizontalTokenList.native.tsx +63 -0
- package/src/components/TokenSelector/lists/HorizontalTokenList/HorizontalTokenList.tsx +18 -0
- package/src/components/TokenSelector/lists/HorizontalTokenList/HorizontalTokenList.web.tsx +74 -0
- package/src/components/TokenSelector/lists/TokenSelectorEmptySearchList.tsx +47 -0
- package/src/components/TokenSelector/lists/TokenSelectorSearchResultsList.tsx +79 -0
- package/src/components/TokenSelector/lists/TokenSelectorSendList.tsx +149 -0
- package/src/components/TokenSelector/lists/TokenSelectorSwapList.tsx +224 -0
- package/src/components/TokenSelector/types.ts +30 -0
- package/src/components/TokenSelector/utils.test.tsx +46 -0
- package/src/components/TokenSelector/utils.tsx +147 -0
- package/src/components/TransactionDetailsTooltip.tsx +151 -0
- package/src/components/ViewGestureHandler/ViewGestureHandler.native.tsx +6 -0
- package/src/components/ViewGestureHandler/ViewGestureHandler.tsx +6 -0
- package/src/components/ViewGestureHandler/ViewGestureHandler.web.tsx +5 -0
- package/src/components/WarningMessage/WarningMessage.tsx +33 -0
- package/src/components/accounts/AddressDisplay.tsx +251 -0
- package/src/components/accounts/DisplayNameText.test.tsx +34 -0
- package/src/components/accounts/DisplayNameText.tsx +44 -0
- package/src/components/accounts/__snapshots__/DisplayNameText.test.tsx.snap +103 -0
- package/src/components/activity/ActivityListEmptyState.tsx +43 -0
- package/src/components/activity/details/InfoRow.tsx +18 -0
- package/src/components/activity/details/TransactionDetailsContent.tsx +83 -0
- package/src/components/activity/details/TransactionDetailsHeader.tsx +72 -0
- package/src/components/activity/details/TransactionDetailsHeaderLogo.tsx +313 -0
- package/src/components/activity/details/TransactionDetailsInfoRows.tsx +422 -0
- package/src/components/activity/details/TransactionDetailsModal.test.tsx +168 -0
- package/src/components/activity/details/TransactionDetailsModal.tsx +65 -0
- package/src/components/activity/details/TransactionDetailsOverview.tsx +151 -0
- package/src/components/activity/details/TransactionParticipantDisplay.tsx +18 -0
- package/src/components/activity/details/TransactionParticipantRow.tsx +72 -0
- package/src/components/activity/details/__snapshots__/TransactionDetailsModal.test.tsx.snap +385 -0
- package/src/components/activity/details/plan/PlanDetailsView.tsx +204 -0
- package/src/components/activity/details/plan/PlanStepItem.tsx +236 -0
- package/src/components/activity/details/plan/ResumePlanButton.tsx +59 -0
- package/src/components/activity/details/transactions/ApproveTransactionDetails.tsx +77 -0
- package/src/components/activity/details/transactions/AuctionTransactionDetails.tsx +48 -0
- package/src/components/activity/details/transactions/BridgeTransactionDetails.tsx +53 -0
- package/src/components/activity/details/transactions/LiquidityTransactionDetails.tsx +100 -0
- package/src/components/activity/details/transactions/NftTransactionDetails.test.tsx +58 -0
- package/src/components/activity/details/transactions/NftTransactionDetails.tsx +103 -0
- package/src/components/activity/details/transactions/OffRampPendingSupportCard.tsx +31 -0
- package/src/components/activity/details/transactions/OffRampTransactionDetails.tsx +42 -0
- package/src/components/activity/details/transactions/OnRampTransactionDetails.tsx +61 -0
- package/src/components/activity/details/transactions/PlanTransactionDetails.tsx +118 -0
- package/src/components/activity/details/transactions/SwapTransactionDetails.test.tsx +89 -0
- package/src/components/activity/details/transactions/SwapTransactionDetails.tsx +89 -0
- package/src/components/activity/details/transactions/TransferTransactionDetails.test.tsx +113 -0
- package/src/components/activity/details/transactions/TransferTransactionDetails.tsx +118 -0
- package/src/components/activity/details/transactions/WrapTransactionDetails.tsx +31 -0
- package/src/components/activity/details/transactions/__snapshots__/NftTransactionDetails.test.tsx.snap +53 -0
- package/src/components/activity/details/transactions/__snapshots__/SwapTransactionDetails.test.tsx.snap +85 -0
- package/src/components/activity/details/transactions/__snapshots__/TransferTransactionDetails.test.tsx.snap +28 -0
- package/src/components/activity/details/transactions/utilityComponents.tsx +115 -0
- package/src/components/activity/details/types.ts +54 -0
- package/src/components/activity/general/TransactionSummaryTitle.tsx +41 -0
- package/src/components/activity/generateActivityItemRenderer.ts +115 -0
- package/src/components/activity/hooks/useFormattedCurrencyAmountAndUSDValue.ts +50 -0
- package/src/components/activity/hooks/useFormattedTime.ts +34 -0
- package/src/components/activity/hooks/useOnRetrySwap.ts +27 -0
- package/src/components/activity/hooks/useTokenDetailsNavigation.ts +25 -0
- package/src/components/activity/summaries/ApproveSummaryItem.tsx +62 -0
- package/src/components/activity/summaries/BridgeSummaryItem.tsx +84 -0
- package/src/components/activity/summaries/LiquiditySummaryItem.tsx +119 -0
- package/src/components/activity/summaries/NFTApproveSummaryItem.tsx +24 -0
- package/src/components/activity/summaries/NFTMintSummaryItem.tsx +24 -0
- package/src/components/activity/summaries/NFTSummaryItem.tsx +49 -0
- package/src/components/activity/summaries/NFTTradeSummaryItem.tsx +20 -0
- package/src/components/activity/summaries/OffRampTransferSummaryItem.tsx +49 -0
- package/src/components/activity/summaries/OnRampTransferSummaryItem.tsx +99 -0
- package/src/components/activity/summaries/PlanSummaryItem.tsx +97 -0
- package/src/components/activity/summaries/ReceiveSummaryItem.tsx +25 -0
- package/src/components/activity/summaries/SendSummaryItem.tsx +25 -0
- package/src/components/activity/summaries/SwapSummaryItem.tsx +84 -0
- package/src/components/activity/summaries/TransactionSummaryLayout.tsx +194 -0
- package/src/components/activity/summaries/TransferTokenSummaryItem.tsx +152 -0
- package/src/components/activity/summaries/UnknownSummaryItem.tsx +58 -0
- package/src/components/activity/summaries/WCSummaryItem.tsx +36 -0
- package/src/components/activity/summaries/WithdrawSummaryItem.tsx +71 -0
- package/src/components/activity/summaries/WrapSummaryItem.tsx +68 -0
- package/src/components/activity/types.ts +37 -0
- package/src/components/activity/utils.ts +86 -0
- package/src/components/appearance/ThemeToggle.tsx +51 -0
- package/src/components/badge/Badge.tsx +47 -0
- package/src/components/banners/ExcludedNetworkBanner.tsx +41 -0
- package/src/components/banners/InformationBanner.tsx +29 -0
- package/src/components/banners/LuxWrapped2025Banner/LuxWrapped2025Banner.native.tsx +85 -0
- package/src/components/banners/LuxWrapped2025Banner/LuxWrapped2025Banner.tsx +6 -0
- package/src/components/banners/LuxWrapped2025Banner/LuxWrapped2025Banner.web.tsx +182 -0
- package/src/components/banners/LuxWrapped2025Banner/types.ts +5 -0
- package/src/components/banners/LuxWrapped2025Card/LuxWrapped2025Card.native.tsx +69 -0
- package/src/components/banners/LuxWrapped2025Card/LuxWrapped2025Card.tsx +6 -0
- package/src/components/banners/LuxWrapped2025Card/LuxWrapped2025Card.web.tsx +104 -0
- package/src/components/banners/LuxWrapped2025Card/types.ts +3 -0
- package/src/components/banners/TestnetModeBanner.tsx +52 -0
- package/src/components/banners/shared/SharedSnowflakeComponents.native.tsx +198 -0
- package/src/components/banners/shared/SharedSnowflakeComponents.tsx +52 -0
- package/src/components/banners/shared/SharedSnowflakeComponents.web.tsx +124 -0
- package/src/components/banners/shared/utils.ts +5 -0
- package/src/components/buttons/PasteButton.test.tsx +18 -0
- package/src/components/buttons/PasteButton.tsx +62 -0
- package/src/components/buttons/__snapshots__/PasteButton.test.tsx.snap +83 -0
- package/src/components/cards/image.tsx +32 -0
- package/src/components/chains/BlockExplorerIcon.tsx +26 -0
- package/src/components/charts/utils.ts +42 -0
- package/src/components/dapps/DappIconPlaceholder.tsx +27 -0
- package/src/components/dialog/Dialog.native.tsx +122 -0
- package/src/components/dialog/Dialog.test.tsx +246 -0
- package/src/components/dialog/Dialog.tsx +11 -0
- package/src/components/dialog/Dialog.web.tsx +138 -0
- package/src/components/dialog/DialogButtons.tsx +60 -0
- package/src/components/dialog/DialogContent.tsx +81 -0
- package/src/components/dialog/DialogProps.tsx +46 -0
- package/src/components/dialog/GetHelpButtonUI.tsx +33 -0
- package/src/components/dialog/GetHelpHeader.native.tsx +22 -0
- package/src/components/dialog/GetHelpHeader.tsx +16 -0
- package/src/components/dialog/GetHelpHeader.web.tsx +26 -0
- package/src/components/dialog/GetHelpHeaderContent.tsx +54 -0
- package/src/components/dialog/hooks/useDialogVisibility.test.ts +296 -0
- package/src/components/dialog/hooks/useDialogVisibility.ts +131 -0
- package/src/components/dropdowns/ActionSheetDropdown.test.tsx +124 -0
- package/src/components/dropdowns/ActionSheetDropdown.tsx +468 -0
- package/src/components/dropdowns/__snapshots__/ActionSheetDropdown.test.tsx.snap +25 -0
- package/src/components/gas/NetworkCostTooltip.tsx +79 -0
- package/src/components/gas/NetworkFee.test.tsx +36 -0
- package/src/components/gas/NetworkFee.tsx +122 -0
- package/src/components/gas/NetworkFeeWarning.tsx +145 -0
- package/src/components/gas/__snapshots__/NetworkFee.test.tsx.snap +251 -0
- package/src/components/gating/CacheConfig.tsx +28 -0
- package/src/components/gating/DynamicConfigDropdown.tsx +98 -0
- package/src/components/gating/GatingButton.tsx +11 -0
- package/src/components/gating/GatingOverrides.tsx +262 -0
- package/src/components/gating/Rows.tsx +103 -0
- package/src/components/gating/dynamicConfigOverrides.tsx +75 -0
- package/src/components/input/TextInput.tsx +43 -0
- package/src/components/lists/NoResultsFound.tsx +19 -0
- package/src/components/lists/OnchainItemList/OnchainItemList.native.tsx +102 -0
- package/src/components/lists/OnchainItemList/OnchainItemList.tsx +39 -0
- package/src/components/lists/OnchainItemList/OnchainItemList.web.tsx +348 -0
- package/src/components/lists/OnchainItemList/processSectionsToRows.test.tsx +181 -0
- package/src/components/lists/OnchainItemList/processSectionsToRows.ts +57 -0
- package/src/components/lists/OnchainItemList/types.ts +31 -0
- package/src/components/lists/SectionHeader.tsx +137 -0
- package/src/components/lists/SelectorBaseList.tsx +131 -0
- package/src/components/lists/items/OptionItem.tsx +161 -0
- package/src/components/lists/items/nfts/NFTCollectionOptionItem.tsx +38 -0
- package/src/components/lists/items/nfts/useNftSearchResultsToNftCollectionOptions.tsx +43 -0
- package/src/components/lists/items/pools/PoolOptionItem.tsx +100 -0
- package/src/components/lists/items/pools/PoolOptionItemContextMenu.tsx +116 -0
- package/src/components/lists/items/pools/usePoolSearchResultsToPoolOptions.tsx +60 -0
- package/src/components/lists/items/pools/usePoolStatsToPoolOptions.tsx +107 -0
- package/src/components/lists/items/tokens/TokenOptionItem.tsx +338 -0
- package/src/components/lists/items/tokens/TokenOptionItemContextMenu.tsx +274 -0
- package/src/components/lists/items/types.ts +74 -0
- package/src/components/lists/items/wallets/ENSAddressOptionItem.tsx +62 -0
- package/src/components/lists/items/wallets/UnitagOptionItem.tsx +39 -0
- package/src/components/lists/items/wallets/WalletBaseOptionItem.tsx +28 -0
- package/src/components/lists/items/wallets/WalletByAddressOptionItem.tsx +55 -0
- package/src/components/lists/items/wallets/WalletOptionItemContextMenu.tsx +56 -0
- package/src/components/lists/items/wallets/useFavoriteWalletOptions.tsx +21 -0
- package/src/components/lists/items/wallets/utils.test.ts +19 -0
- package/src/components/lists/items/wallets/utils.ts +16 -0
- package/src/components/lists/utils.tsx +43 -0
- package/src/components/logos/PoweredByBlockaid.tsx +33 -0
- package/src/components/menus/ContextMenu.native.tsx +338 -0
- package/src/components/menus/ContextMenu.tsx +66 -0
- package/src/components/menus/ContextMenu.web.test.tsx +133 -0
- package/src/components/menus/ContextMenu.web.tsx +174 -0
- package/src/components/menus/ContextMenuContent.tsx +100 -0
- package/src/components/menus/ContextMenuV2.native.tsx +338 -0
- package/src/components/menus/ContextMenuV2.tsx +66 -0
- package/src/components/menus/ContextMenuV2.web.test.tsx +133 -0
- package/src/components/menus/ContextMenuV2.web.tsx +184 -0
- package/src/components/menus/__snapshots__/ContextMenu.web.test.tsx.snap +34 -0
- package/src/components/menus/hooks/useContextMenuTracking.ts +51 -0
- package/src/components/menus/types.ts +5 -0
- package/src/components/misc/ActionCard.tsx +84 -0
- package/src/components/misc/GenericHeader.tsx +63 -0
- package/src/components/misc/IndicativeLoadingWrapper.tsx +14 -0
- package/src/components/misc/Scrollbar.native.tsx +59 -0
- package/src/components/misc/Scrollbar.tsx +12 -0
- package/src/components/misc/Scrollbar.web.tsx +99 -0
- package/src/components/modals/ActionSheetModal.tsx +94 -0
- package/src/components/modals/BottomSheetContext.tsx +52 -0
- package/src/components/modals/HandleBar.native.tsx +41 -0
- package/src/components/modals/HandleBar.tsx +15 -0
- package/src/components/modals/HandleBar.web.tsx +6 -0
- package/src/components/modals/InfoLinkModal.tsx +97 -0
- package/src/components/modals/Modal.native.tsx +449 -0
- package/src/components/modals/Modal.tsx +26 -0
- package/src/components/modals/Modal.web.tsx +119 -0
- package/src/components/modals/ModalProps.tsx +60 -0
- package/src/components/modals/PaginatedModals.tsx +66 -0
- package/src/components/modals/ScrollLock.native.tsx +13 -0
- package/src/components/modals/ScrollLock.tsx +13 -0
- package/src/components/modals/ScrollLock.web.tsx +53 -0
- package/src/components/modals/WarningModal/WarningInfo.tsx +102 -0
- package/src/components/modals/WarningModal/WarningModal.tsx +295 -0
- package/src/components/modals/WarningModal/getAlertColor.ts +42 -0
- package/src/components/modals/WarningModal/types.ts +83 -0
- package/src/components/modals/modalConstants.tsx +31 -0
- package/src/components/modals/useBottomSheetSafeKeyboard.native.tsx +43 -0
- package/src/components/modals/useBottomSheetSafeKeyboard.tsx +9 -0
- package/src/components/modals/useBottomSheetSafeKeyboard.web.tsx +6 -0
- package/src/components/network/NetworkFilter.test.tsx +31 -0
- package/src/components/network/NetworkFilter.tsx +75 -0
- package/src/components/network/NetworkOption.tsx +71 -0
- package/src/components/network/NetworkPile/NetworkPile.test.tsx +98 -0
- package/src/components/network/NetworkPile/NetworkPile.tsx +130 -0
- package/src/components/network/NetworkPile/NetworkPileLayouts.tsx +159 -0
- package/src/components/network/NetworkPile/__snapshots__/NetworkPile.test.tsx.snap +984 -0
- package/src/components/network/NetworkPill.test.tsx +20 -0
- package/src/components/network/NetworkPill.tsx +42 -0
- package/src/components/network/SupportedNetworkLogosModal.tsx +100 -0
- package/src/components/network/__snapshots__/NetworkFilter.test.tsx.snap +67 -0
- package/src/components/network/__snapshots__/NetworkPill.test.tsx.snap +76 -0
- package/src/components/network/hooks.tsx +35 -0
- package/src/components/nfts/NFTTransfer.tsx +20 -0
- package/src/components/nfts/NFTViewer.tsx +106 -0
- package/src/components/nfts/NftView.tsx +63 -0
- package/src/components/nfts/NftViewWithContextMenu.tsx +64 -0
- package/src/components/nfts/NftsList.native.tsx +199 -0
- package/src/components/nfts/NftsList.tsx +62 -0
- package/src/components/nfts/NftsList.web.tsx +330 -0
- package/src/components/nfts/NftsListEmptyState.tsx +43 -0
- package/src/components/nfts/NftsListHeader.tsx +111 -0
- package/src/components/nfts/ShowNFTModal.tsx +56 -0
- package/src/components/nfts/constants.ts +4 -0
- package/src/components/nfts/hooks/useNftListRenderData.ts +100 -0
- package/src/components/nfts/types.ts +16 -0
- package/src/components/notifications/ModalNotification.tsx +115 -0
- package/src/components/notifications/ModalTemplate.tsx +309 -0
- package/src/components/notifications/NotificationToast.native.tsx +109 -0
- package/src/components/notifications/NotificationToast.tsx +12 -0
- package/src/components/notifications/NotificationToast.web.tsx +78 -0
- package/src/components/notifications/NotificationToastContent.tsx +197 -0
- package/src/components/notifications/iconUtils.ts +10 -0
- package/src/components/notifications/notifications/ChangeAssetVisibilityNotification.tsx +26 -0
- package/src/components/notifications/notifications/CopiedNotification.tsx +47 -0
- package/src/components/notifications/notifications/SuccessNotification.tsx +11 -0
- package/src/components/pill/NewTag.tsx +39 -0
- package/src/components/pill/Pill.test.tsx +13 -0
- package/src/components/pill/Pill.tsx +54 -0
- package/src/components/pill/PillMultiToggle.tsx +121 -0
- package/src/components/pill/__snapshots__/Pill.test.tsx.snap +55 -0
- package/src/components/portfolio/EmptyTokensList.tsx +49 -0
- package/src/components/portfolio/HiddenTokensRow.tsx +33 -0
- package/src/components/portfolio/PortfolioEmptyState.tsx +201 -0
- package/src/components/portfolio/TokenBalanceItem.tsx +176 -0
- package/src/components/portfolio/TokenBalanceItemContextMenu.native.tsx +147 -0
- package/src/components/portfolio/TokenBalanceItemContextMenu.tsx +21 -0
- package/src/components/portfolio/TokenBalanceItemContextMenu.web.tsx +74 -0
- package/src/components/portfolio/TokenBalanceListWeb.tsx +276 -0
- package/src/components/reporting/ReportModal.tsx +128 -0
- package/src/components/reporting/ReportPoolDataModal.tsx +105 -0
- package/src/components/reporting/ReportTokenDataModal.tsx +101 -0
- package/src/components/reporting/ReportTokenIssueModal.tsx +132 -0
- package/src/components/reporting/input.tsx +28 -0
- package/src/components/text/LearnMoreLink.test.tsx +22 -0
- package/src/components/text/LearnMoreLink.tsx +51 -0
- package/src/components/text/__snapshots__/LearnMoreLink.test.tsx.snap +29 -0
- package/src/components/tokens/TokensListEmptyState.tsx +43 -0
- package/src/components/tooltip/InfoTooltip.native.tsx +7 -0
- package/src/components/tooltip/InfoTooltip.tsx +7 -0
- package/src/components/tooltip/InfoTooltip.web.tsx +78 -0
- package/src/components/tooltip/InfoTooltipProps.ts +16 -0
- package/src/components/transactions/requests/ContentRow.tsx +30 -0
- package/src/components/warnings/WarningIcon.tsx +41 -0
- package/src/components/warnings/utils.ts +82 -0
- package/src/config.ts +3 -0
- package/src/constants/addresses.ts +43 -0
- package/src/constants/misc.ts +14 -0
- package/src/constants/pools.ts +3 -0
- package/src/constants/routing.ts +372 -0
- package/src/constants/tokens.ts +693 -0
- package/src/constants/transactions.ts +13 -0
- package/src/constants/urls.ts +248 -0
- package/src/constants/web3.ts +28 -0
- package/src/contexts/LuxContext.tsx +210 -0
- package/src/contexts/UrlContext.native.tsx +36 -0
- package/src/contexts/UrlContext.tsx +21 -0
- package/src/contexts/UrlContext.web.tsx +55 -0
- package/src/data/apiClients/SharedPersistQueryClientProvider.tsx +24 -0
- package/src/data/apiClients/blockaidApi/BlockaidApiClient.ts +14 -0
- package/src/data/apiClients/constants.ts +1 -0
- package/src/data/apiClients/createLuxFetchClient.ts +33 -0
- package/src/data/apiClients/createPersister.native.ts +30 -0
- package/src/data/apiClients/createPersister.test.ts +154 -0
- package/src/data/apiClients/createPersister.ts +6 -0
- package/src/data/apiClients/createPersister.web.ts +35 -0
- package/src/data/apiClients/dataApi/DataApiClient.ts +11 -0
- package/src/data/apiClients/dataApiService/dataApiQueries.ts +30 -0
- package/src/data/apiClients/dataApiService/listTopPools.ts +39 -0
- package/src/data/apiClients/dataApiService/listTopTokens.ts +39 -0
- package/src/data/apiClients/forApi/ForApiClient.ts +47 -0
- package/src/data/apiClients/jupiterApi/JupiterFetchClient.ts +14 -0
- package/src/data/apiClients/liquidityService/AuctionMutationClient.ts +10 -0
- package/src/data/apiClients/liquidityService/LiquidityServiceClient.ts +10 -0
- package/src/data/apiClients/liquidityService/base.ts +19 -0
- package/src/data/apiClients/liquidityService/liquidityQueries.ts +224 -0
- package/src/data/apiClients/luxApi/LuxApiClient.ts +32 -0
- package/src/data/apiClients/luxApi/useGasFeeQuery.ts +66 -0
- package/src/data/apiClients/luxApi/useTrmScreenQuery.ts +18 -0
- package/src/data/apiClients/sharedDehydrateOptions.ts +28 -0
- package/src/data/apiClients/tradingApi/LuxGatewayClient.ts +293 -0
- package/src/data/apiClients/tradingApi/TradingApiClient.test.ts +586 -0
- package/src/data/apiClients/tradingApi/TradingApiClient.ts +227 -0
- package/src/data/apiClients/tradingApi/TradingApiSessionClient.ts +73 -0
- package/src/data/apiClients/tradingApi/dex/client.ts +195 -0
- package/src/data/apiClients/tradingApi/dex/hooks.ts +403 -0
- package/src/data/apiClients/tradingApi/dex/index.ts +9 -0
- package/src/data/apiClients/tradingApi/dex/types.ts +334 -0
- package/src/data/apiClients/tradingApi/useCheckApprovalQuery.ts +28 -0
- package/src/data/apiClients/tradingApi/useTradingApiIndicativeQuoteQuery.ts +70 -0
- package/src/data/apiClients/tradingApi/useTradingApiQuoteQuery.ts +40 -0
- package/src/data/apiClients/tradingApi/useTradingApiSwapQuery.ts +69 -0
- package/src/data/apiClients/tradingApi/useTradingApiSwappableTokensQuery.ts +91 -0
- package/src/data/apiClients/tradingApi/useWalletCheckDelegationQuery.ts +36 -0
- package/src/data/apiClients/tradingApi/useWalletEncode7702Query.ts +32 -0
- package/src/data/apiClients/tradingApi/utils/getTradeSettingsDeadline.ts +7 -0
- package/src/data/apiClients/tradingApi/utils/tradingApiSwappableTokenToCurrencyInfo.ts +44 -0
- package/src/data/apiClients/unitagsApi/UnitagsApiClient.ts +21 -0
- package/src/data/apiClients/unitagsApi/useResetUnitagsQueries.ts +19 -0
- package/src/data/apiClients/unitagsApi/useUnitagsAddressQuery.ts +51 -0
- package/src/data/apiClients/unitagsApi/useUnitagsClaimEligibilityQuery.ts +28 -0
- package/src/data/apiClients/unitagsApi/useUnitagsUsernameQuery.ts +22 -0
- package/src/data/balances/hooks/useBalances.ts +31 -0
- package/src/data/balances/hooks/useCrossChainBalances.ts +59 -0
- package/src/data/balances/utils.test.ts +66 -0
- package/src/data/balances/utils.tsx +79 -0
- package/src/data/cache.ts +167 -0
- package/src/data/gchain/client.ts +764 -0
- package/src/data/gchain/hooks.ts +368 -0
- package/src/data/gchain/index.ts +124 -0
- package/src/data/gchain/useLuxBalance.ts +101 -0
- package/src/data/getVersionHeader.native.ts +5 -0
- package/src/data/getVersionHeader.ts +5 -0
- package/src/data/getVersionHeader.web.ts +10 -0
- package/src/data/graphql/lux-data-api/fragments.ts +67 -0
- package/src/data/links.ts +147 -0
- package/src/data/rest/auctions/AuctionServiceClient.ts +8 -0
- package/src/data/rest/auctions/auctionQueries.ts +183 -0
- package/src/data/rest/auctions/base.ts +5 -0
- package/src/data/rest/auctions/queryTypes.ts +16 -0
- package/src/data/rest/auctions/useExitBidAndClaimTokensMutation.ts +61 -0
- package/src/data/rest/auctions/useExitBidPositionMutation.ts +53 -0
- package/src/data/rest/auctions/useSubmitBidMutation.ts +41 -0
- package/src/data/rest/auctions/useVerifyWallet.ts +120 -0
- package/src/data/rest/base.ts +45 -0
- package/src/data/rest/buildAccountAddressesByPlatform.test.ts +202 -0
- package/src/data/rest/buildAccountAddressesByPlatform.ts +49 -0
- package/src/data/rest/conversionTracking/constants.ts +136 -0
- package/src/data/rest/conversionTracking/tracking.test.ts +34 -0
- package/src/data/rest/conversionTracking/tracking.ts +99 -0
- package/src/data/rest/conversionTracking/types.ts +29 -0
- package/src/data/rest/conversionTracking/useConversionProxy.ts +23 -0
- package/src/data/rest/conversionTracking/useConversionTracking.ts +171 -0
- package/src/data/rest/conversionTracking/utils.ts +81 -0
- package/src/data/rest/embeddedWallet/requests.ts +70 -0
- package/src/data/rest/exploreStats.ts +26 -0
- package/src/data/rest/getPools.ts +14 -0
- package/src/data/rest/getPoolsRewards.ts +14 -0
- package/src/data/rest/getPortfolio.test.ts +192 -0
- package/src/data/rest/getPortfolio.ts +336 -0
- package/src/data/rest/getPortfolioChart.ts +64 -0
- package/src/data/rest/getPosition.ts +13 -0
- package/src/data/rest/getPositions.ts +113 -0
- package/src/data/rest/listTransactions.ts +145 -0
- package/src/data/rest/luxGateway.ts +295 -0
- package/src/data/rest/portfolioBalanceOverrides.ts +243 -0
- package/src/data/rest/protocolStats.ts +19 -0
- package/src/data/rest/searchTokensAndPools.ts +146 -0
- package/src/data/rest/tokenRankings.ts +62 -0
- package/src/data/rest/transformPortfolioToMultichain.test.ts +362 -0
- package/src/data/rest/transformPortfolioToMultichain.ts +82 -0
- package/src/data/solanaConnection/getSolanaParsedTokenAccountsByOwnerQueryOptions.ts +97 -0
- package/src/declarations.d.ts +6 -0
- package/src/dialog-preferences/DialogPreferencesService.ts +47 -0
- package/src/dialog-preferences/implementations/createDialogPreferencesService.test.ts +178 -0
- package/src/dialog-preferences/implementations/createDialogPreferencesService.ts +64 -0
- package/src/dialog-preferences/index.ts +8 -0
- package/src/dialog-preferences/types.ts +5 -0
- package/src/domains/repositories.ts +13 -0
- package/src/domains/services.ts +21 -0
- package/src/entities/assets.ts +25 -0
- package/src/extension/messagePassing/messageChannels.ts +40 -0
- package/src/extension/messagePassing/messageTypes.ts +8 -0
- package/src/extension/messagePassing/platform.ts +16 -0
- package/src/extension/messagePassing/types/requests.ts +40 -0
- package/src/extension/useIsChromeWindowFocused.ts +58 -0
- package/src/features/accounts/AccountIcon.tsx +92 -0
- package/src/features/accounts/reportBalancesForAnalytics.ts +60 -0
- package/src/features/accounts/store/hooks.ts +32 -0
- package/src/features/accounts/store/types/Account.ts +15 -0
- package/src/features/accounts/store/types/AccountsState.ts +65 -0
- package/src/features/accounts/store/types/Connector.ts +94 -0
- package/src/features/accounts/store/types/README.md +81 -0
- package/src/features/accounts/store/types/Session.ts +60 -0
- package/src/features/accounts/store/types/Wallet.ts +36 -0
- package/src/features/accounts/store/utils/accounts.ts +15 -0
- package/src/features/accounts/store/utils/addresses.ts +27 -0
- package/src/features/accounts/store/utils/connection.ts +40 -0
- package/src/features/accounts/store/utils/createAccountsStoreContextProvider.tsx +84 -0
- package/src/features/accounts/store/utils/createUseAccountsStore.ts +25 -0
- package/src/features/accounts/store/utils/flexibleInput.ts +13 -0
- package/src/features/accounts/store/utils/wallets.test.ts +305 -0
- package/src/features/accounts/store/utils/wallets.ts +85 -0
- package/src/features/accounts/types.ts +35 -0
- package/src/features/accounts/useOnchainDisplayName.tsx +76 -0
- package/src/features/activity/extract/conversion.test.ts +680 -0
- package/src/features/activity/extract/conversionRest.test.ts +1287 -0
- package/src/features/activity/extract/extractDEXOrderDetails.ts +95 -0
- package/src/features/activity/extract/extractFiatOnRampTransactionDetails.ts +175 -0
- package/src/features/activity/extract/extractOnChainTransactionDetails.ts +144 -0
- package/src/features/activity/extract/extractPlanDetails.ts +191 -0
- package/src/features/activity/extract/extractPlanResponseDetails.ts +188 -0
- package/src/features/activity/extract/extractPlanUtils.ts +174 -0
- package/src/features/activity/extract/extractRestDEXOrderDetails.ts +102 -0
- package/src/features/activity/extract/extractRestFiatOnRampDetails.ts +86 -0
- package/src/features/activity/extract/extractTransactionDetails.ts +127 -0
- package/src/features/activity/extract/statusMappers.ts +129 -0
- package/src/features/activity/formatTransactionsByDate.ts +105 -0
- package/src/features/activity/hooks/useActivityData.test.tsx +559 -0
- package/src/features/activity/hooks/useActivityData.tsx +165 -0
- package/src/features/activity/hooks/useFormattedTransactionDataForActivity.test.ts +331 -0
- package/src/features/activity/hooks/useFormattedTransactionDataForActivity.ts +300 -0
- package/src/features/activity/hooks/useMergeLocalAndRemoteTransactions.test.ts +563 -0
- package/src/features/activity/hooks/useMergeLocalAndRemoteTransactions.ts +292 -0
- package/src/features/activity/hooks/useNetworkFee.ts +35 -0
- package/src/features/activity/hooks/useOpenLimitOrders.ts +47 -0
- package/src/features/activity/hooks/useSyncRemotePlans.ts +59 -0
- package/src/features/activity/hooks/useTransactionActions.tsx +389 -0
- package/src/features/activity/parse/parseApproveTransaction.ts +71 -0
- package/src/features/activity/parse/parseAuctionTransaction.ts +72 -0
- package/src/features/activity/parse/parseBridgingTransaction.ts +117 -0
- package/src/features/activity/parse/parseExecuteTransaction.ts +112 -0
- package/src/features/activity/parse/parseLiquidityTransaction.ts +144 -0
- package/src/features/activity/parse/parseMintTransaction.ts +118 -0
- package/src/features/activity/parse/parseOnRampTransaction.ts +118 -0
- package/src/features/activity/parse/parseReceiveTransaction.ts +163 -0
- package/src/features/activity/parse/parseSendTransaction.ts +145 -0
- package/src/features/activity/parse/parseTradeTransaction.ts +406 -0
- package/src/features/activity/parse/parseUnknownTransaction.ts +32 -0
- package/src/features/activity/parseRestResponse.ts +184 -0
- package/src/features/activity/utils/extractDappInfo.ts +38 -0
- package/src/features/activity/utils/getTransactionSummaryTitle.ts +318 -0
- package/src/features/activity/utils/remote.ts +136 -0
- package/src/features/activity/utils/swapInfo.ts +49 -0
- package/src/features/address/avatar.ts +35 -0
- package/src/features/address/color.ts +35 -0
- package/src/features/address/types.ts +8 -0
- package/src/features/address/useIsSmartContractAddress.tsx +74 -0
- package/src/features/address/utils.ts +12 -0
- package/src/features/appearance/hooks.tsx +85 -0
- package/src/features/appearance/slice.ts +30 -0
- package/src/features/appearance/types.ts +1 -0
- package/src/features/appearance/useColorScheme.native.ts +1 -0
- package/src/features/appearance/useColorScheme.ts +6 -0
- package/src/features/appearance/useColorScheme.web.ts +87 -0
- package/src/features/auth/types.ts +1 -0
- package/src/features/behaviorHistory/selectors.ts +30 -0
- package/src/features/behaviorHistory/slice.ts +161 -0
- package/src/features/bridging/constants.ts +84 -0
- package/src/features/bridging/hooks/chains.ts +59 -0
- package/src/features/bridging/hooks/tokens.ts +224 -0
- package/src/features/capabilities/caip25/constants.ts +13 -0
- package/src/features/capabilities/caip25/types.ts +70 -0
- package/src/features/capabilities/caip25/utils.ts +17 -0
- package/src/features/chains/chainInfo.test.ts +117 -0
- package/src/features/chains/chainInfo.ts +141 -0
- package/src/features/chains/evm/defaults.ts +9 -0
- package/src/features/chains/evm/info/arbitrum.ts +93 -0
- package/src/features/chains/evm/info/avalanche.ts +91 -0
- package/src/features/chains/evm/info/base.ts +91 -0
- package/src/features/chains/evm/info/blast.ts +82 -0
- package/src/features/chains/evm/info/bnb.ts +81 -0
- package/src/features/chains/evm/info/celo.ts +86 -0
- package/src/features/chains/evm/info/hanzo.ts +93 -0
- package/src/features/chains/evm/info/lux.ts +254 -0
- package/src/features/chains/evm/info/mainnet.ts +203 -0
- package/src/features/chains/evm/info/monad.ts +90 -0
- package/src/features/chains/evm/info/optimism.ts +88 -0
- package/src/features/chains/evm/info/pars.ts +93 -0
- package/src/features/chains/evm/info/polygon.ts +91 -0
- package/src/features/chains/evm/info/soneium.ts +91 -0
- package/src/features/chains/evm/info/spc.ts +93 -0
- package/src/features/chains/evm/info/unichain.ts +146 -0
- package/src/features/chains/evm/info/worldchain.ts +87 -0
- package/src/features/chains/evm/info/xlayer.ts +81 -0
- package/src/features/chains/evm/info/zksync.ts +76 -0
- package/src/features/chains/evm/info/zoo.ts +170 -0
- package/src/features/chains/evm/info/zora.ts +76 -0
- package/src/features/chains/evm/rpc.ts +84 -0
- package/src/features/chains/evm/tokens.test.ts +220 -0
- package/src/features/chains/evm/tokens.ts +23 -0
- package/src/features/chains/gasDefaults.ts +37 -0
- package/src/features/chains/hooks/useEnabledChains.ts +55 -0
- package/src/features/chains/hooks/useFeatureFlaggedChainIds.ts +47 -0
- package/src/features/chains/hooks/useNewChainIds.ts +18 -0
- package/src/features/chains/hooks/useOrderedChainIds.ts +19 -0
- package/src/features/chains/hooks/useSupportedChainId.ts +35 -0
- package/src/features/chains/logos.tsx +65 -0
- package/src/features/chains/svm/defaults.ts +3 -0
- package/src/features/chains/svm/info/solana.ts +79 -0
- package/src/features/chains/types.ts +171 -0
- package/src/features/chains/utils.test.ts +224 -0
- package/src/features/chains/utils.ts +365 -0
- package/src/features/dappRequests/types.ts +87 -0
- package/src/features/dappRequests/utils.test.ts +81 -0
- package/src/features/dappRequests/utils.ts +36 -0
- package/src/features/dataApi/balances/balances.ts +369 -0
- package/src/features/dataApi/balances/balancesRest.test.ts +183 -0
- package/src/features/dataApi/balances/balancesRest.ts +366 -0
- package/src/features/dataApi/balances/toPortfolioMultichainBalance.test.ts +263 -0
- package/src/features/dataApi/balances/toPortfolioMultichainBalance.ts +142 -0
- package/src/features/dataApi/balances/utils.test.ts +64 -0
- package/src/features/dataApi/balances/utils.ts +44 -0
- package/src/features/dataApi/listTransactions/listTransactions.test.ts +182 -0
- package/src/features/dataApi/listTransactions/listTransactions.ts +174 -0
- package/src/features/dataApi/searchPools.ts +58 -0
- package/src/features/dataApi/searchTokens.ts +73 -0
- package/src/features/dataApi/tokenDetails/useTokenDetailsData.ts +94 -0
- package/src/features/dataApi/tokenDetails/useTokenSpotPriceCentralized.ts +9 -0
- package/src/features/dataApi/tokenDetails/useTokenSpotPriceWrapper.ts +13 -0
- package/src/features/dataApi/tokenProjects/tokenProjects.test.tsx +44 -0
- package/src/features/dataApi/tokenProjects/tokenProjects.ts +34 -0
- package/src/features/dataApi/tokenProjects/utils/tokenProjectToCurrencyInfos.test.ts +59 -0
- package/src/features/dataApi/tokenProjects/utils/tokenProjectToCurrencyInfos.ts +52 -0
- package/src/features/dataApi/types.ts +103 -0
- package/src/features/dataApi/utils/buildCurrency.test.ts +66 -0
- package/src/features/dataApi/utils/buildCurrency.ts +117 -0
- package/src/features/dataApi/utils/currencyIdToContractInput.test.ts +39 -0
- package/src/features/dataApi/utils/currencyIdToContractInput.ts +23 -0
- package/src/features/dataApi/utils/getCurrencySafetyInfo.ts +145 -0
- package/src/features/dataApi/utils/gqlTokenToCurrencyInfo.test.ts +39 -0
- package/src/features/dataApi/utils/gqlTokenToCurrencyInfo.ts +44 -0
- package/src/features/dataApi/utils/usePersistedError.test.ts +80 -0
- package/src/features/dataApi/utils/usePersistedError.ts +19 -0
- package/src/features/ens/api.ts +127 -0
- package/src/features/ens/constants.ts +1 -0
- package/src/features/ens/useENS.ts +61 -0
- package/src/features/favorites/selectors.ts +20 -0
- package/src/features/favorites/slice.test.ts +52 -0
- package/src/features/favorites/slice.ts +87 -0
- package/src/features/favorites/useSelectHasTokenFavorited.ts +12 -0
- package/src/features/favorites/useToggleFavoriteCallback.tsx +34 -0
- package/src/features/favorites/useToggleWatchedWalletCallback.ts +26 -0
- package/src/features/fiatCurrency/constants.ts +53 -0
- package/src/features/fiatCurrency/conversion.ts +172 -0
- package/src/features/fiatCurrency/hooks/useFormatChartFiatDelta.ts +31 -0
- package/src/features/fiatCurrency/hooks.ts +167 -0
- package/src/features/fiatCurrency/priceChart/formatters/shared/types.ts +37 -0
- package/src/features/fiatCurrency/priceChart/formatters/shared/utils.ts +93 -0
- package/src/features/fiatCurrency/priceChart/formatters/stablecoinFormatter.ts +84 -0
- package/src/features/fiatCurrency/priceChart/formatters/standardFormatter.ts +88 -0
- package/src/features/fiatCurrency/priceChart/priceChartConversion.test.ts +1203 -0
- package/src/features/fiatCurrency/priceChart/priceChartConversion.ts +42 -0
- package/src/features/fiatOnRamp/EdgeFade/EdgeFade.native.tsx +21 -0
- package/src/features/fiatOnRamp/EdgeFade/EdgeFade.test.tsx +62 -0
- package/src/features/fiatOnRamp/EdgeFade/EdgeFade.tsx +6 -0
- package/src/features/fiatOnRamp/EdgeFade/EdgeFade.web.tsx +21 -0
- package/src/features/fiatOnRamp/EdgeFade/__snapshots__/EdgeFade.test.tsx.snap +116 -0
- package/src/features/fiatOnRamp/FORQuoteItem.tsx +111 -0
- package/src/features/fiatOnRamp/FiatOnRampConnectingView.native.tsx +84 -0
- package/src/features/fiatOnRamp/FiatOnRampConnectingView.tsx +11 -0
- package/src/features/fiatOnRamp/FiatOnRampConnectingView.web.tsx +56 -0
- package/src/features/fiatOnRamp/FiatOnRampCountryPicker.tsx +58 -0
- package/src/features/fiatOnRamp/PaymentMethodFilter/PaymentMethodFilter.native.tsx +41 -0
- package/src/features/fiatOnRamp/PaymentMethodFilter/PaymentMethodFilter.test.tsx +165 -0
- package/src/features/fiatOnRamp/PaymentMethodFilter/PaymentMethodFilter.tsx +6 -0
- package/src/features/fiatOnRamp/PaymentMethodFilter/PaymentMethodFilter.web.tsx +51 -0
- package/src/features/fiatOnRamp/PaymentMethodFilter/__snapshots__/PaymentMethodFilter.test.tsx.snap +243 -0
- package/src/features/fiatOnRamp/PaymentMethodFilter/utils.tsx +160 -0
- package/src/features/fiatOnRamp/SelectTokenButton.tsx +77 -0
- package/src/features/fiatOnRamp/TokenSelectorBalanceDisplay.tsx +72 -0
- package/src/features/fiatOnRamp/UnsupportedTokenModal.tsx +45 -0
- package/src/features/fiatOnRamp/api.ts +7 -0
- package/src/features/fiatOnRamp/constants.ts +56 -0
- package/src/features/fiatOnRamp/hooks/useFiatOnRampQueries.ts +324 -0
- package/src/features/fiatOnRamp/hooks.ts +408 -0
- package/src/features/fiatOnRamp/types.ts +139 -0
- package/src/features/fiatOnRamp/useCexTransferProviders.ts +17 -0
- package/src/features/fiatOnRamp/utils.test.ts +483 -0
- package/src/features/fiatOnRamp/utils.ts +227 -0
- package/src/features/forceUpgrade/hooks/useForceUpgradeStatus.ts +9 -0
- package/src/features/forceUpgrade/hooks/useForceUpgradeTranslations.ts +14 -0
- package/src/features/gas/adjustGasFee.ts +144 -0
- package/src/features/gas/hooks/useCancellationGasFeeInfo.test.ts +170 -0
- package/src/features/gas/hooks/useCancellationGasFeeInfo.ts +154 -0
- package/src/features/gas/hooks/useMaxAmountSpend.test.ts +220 -0
- package/src/features/gas/hooks/useMaxAmountSpend.ts +113 -0
- package/src/features/gas/hooks/usePlanCancellationGasFeeInfo.ts +142 -0
- package/src/features/gas/hooks.ts +323 -0
- package/src/features/gas/utils/cancel.test.ts +239 -0
- package/src/features/gas/utils/cancel.ts +198 -0
- package/src/features/gas/utils.test.ts +74 -0
- package/src/features/gas/utils.ts +289 -0
- package/src/features/gating/StatsigProviderWrapper.tsx +71 -0
- package/src/features/gating/statsigBaseConfig.ts +10 -0
- package/src/features/gating/typeGuards.ts +23 -0
- package/src/features/gating/useSyncStatsigUserIdentifiers.ts +70 -0
- package/src/features/language/LocalizationContext.tsx +58 -0
- package/src/features/language/constants.ts +359 -0
- package/src/features/language/formatter.ts +76 -0
- package/src/features/language/hooks.tsx +304 -0
- package/src/features/language/localizedDayjs.ts +106 -0
- package/src/features/language/navigatorLocale.ts +49 -0
- package/src/features/language/utils.ts +8 -0
- package/src/features/nfts/constants.ts +5 -0
- package/src/features/nfts/hooks/useGroupNftsByVisibility.ts +58 -0
- package/src/features/nfts/hooks/useNFT.ts +31 -0
- package/src/features/nfts/hooks/useNavigateToNftExplorerLink.ts +7 -0
- package/src/features/nfts/hooks/useNftContextMenuItems.tsx +266 -0
- package/src/features/nfts/types.ts +22 -0
- package/src/features/nfts/utils.test.ts +257 -0
- package/src/features/nfts/utils.ts +128 -0
- package/src/features/notifications/constants.ts +20 -0
- package/src/features/notifications/hooks/useNotificationLifecycle.ts +81 -0
- package/src/features/notifications/slice/hooks.ts +18 -0
- package/src/features/notifications/slice/selectors.ts +46 -0
- package/src/features/notifications/slice/slice.ts +82 -0
- package/src/features/notifications/slice/types.ts +267 -0
- package/src/features/passkey/PasskeyManagementModal.tsx +84 -0
- package/src/features/passkey/PasskeysHelpModal.tsx +130 -0
- package/src/features/passkey/constants.ts +1 -0
- package/src/features/passkey/embeddedWallet.ts +431 -0
- package/src/features/passkey/hooks/useEmbeddedWalletBaseUrl.ts +12 -0
- package/src/features/passkey/hooks/useGetPasskeyAuthStatus.ts +25 -0
- package/src/features/passkey/passkey.native.ts +9 -0
- package/src/features/passkey/passkey.ts +9 -0
- package/src/features/passkey/passkey.web.ts +20 -0
- package/src/features/passkey/utils.native.ts +3 -0
- package/src/features/passkey/utils.ts +5 -0
- package/src/features/passkey/utils.web.ts +28 -0
- package/src/features/platforms/types/Platform.ts +4 -0
- package/src/features/platforms/types/PlatformSpecificAddress.ts +11 -0
- package/src/features/platforms/utils/addresses.ts +35 -0
- package/src/features/platforms/utils/chains.ts +21 -0
- package/src/features/portfolio/PortfolioBalance/PortfolioBalance.tsx +96 -0
- package/src/features/portfolio/TokenBalanceListContext.tsx +169 -0
- package/src/features/portfolio/api.ts +256 -0
- package/src/features/portfolio/balances/hooks/useTokenContextMenuOptions.ts +299 -0
- package/src/features/portfolio/portfolioUpdates/constants.ts +3 -0
- package/src/features/portfolio/portfolioUpdates/fetchOnChainBalances.test.ts +197 -0
- package/src/features/portfolio/portfolioUpdates/fetchOnChainBalances.ts +249 -0
- package/src/features/portfolio/portfolioUpdates/getCurrenciesWithExpectedUpdates.ts +82 -0
- package/src/features/portfolio/portfolioUpdates/getInstantTokenBalanceUpdateApolloLink.ts +343 -0
- package/src/features/portfolio/portfolioUpdates/refetchGQLQueriesViaOnchainOverrideVariantSaga.ts +278 -0
- package/src/features/portfolio/portfolioUpdates/refetchQueriesSaga.ts +15 -0
- package/src/features/portfolio/portfolioUpdates/rest/fetchOnChainBalancesRest.test.ts +326 -0
- package/src/features/portfolio/portfolioUpdates/rest/fetchOnChainBalancesRest.ts +338 -0
- package/src/features/portfolio/portfolioUpdates/rest/refetchRestQueriesViaOnchainOverrideVariantSaga.test.ts +322 -0
- package/src/features/portfolio/portfolioUpdates/rest/refetchRestQueriesViaOnchainOverrideVariantSaga.ts +308 -0
- package/src/features/portfolio/slice/selectors.ts +18 -0
- package/src/features/portfolio/slice/slice.test.ts +183 -0
- package/src/features/portfolio/slice/slice.ts +115 -0
- package/src/features/portfolio/types.ts +9 -0
- package/src/features/prices/TokenPriceContext.tsx +62 -0
- package/src/features/providers/FlashbotsCommon.ts +117 -0
- package/src/features/providers/FlashbotsRpcClient.test.ts +336 -0
- package/src/features/providers/FlashbotsRpcClient.ts +173 -0
- package/src/features/providers/FlashbotsRpcProvider.test.ts +90 -0
- package/src/features/providers/FlashbotsRpcProvider.ts +149 -0
- package/src/features/providers/createEthersProvider.ts +46 -0
- package/src/features/providers/createViemClient.ts +81 -0
- package/src/features/providers/getSolanaConnection.ts +8 -0
- package/src/features/providers/observability/InstrumentedJsonRpcProvider.ts +52 -0
- package/src/features/providers/observability/createObservableTransport.ts +44 -0
- package/src/features/providers/observability/extractProviderName.ts +43 -0
- package/src/features/providers/observability/rpcObserver.ts +73 -0
- package/src/features/providers/rpcUrlSelector.ts +81 -0
- package/src/features/providers/webForNudgeProvider.tsx +52 -0
- package/src/features/reporting/reports.ts +196 -0
- package/src/features/repositories.ts +28 -0
- package/src/features/search/ClearRecentSearchesButton.tsx +24 -0
- package/src/features/search/SearchHistoryResult.ts +95 -0
- package/src/features/search/SearchModal/SearchModalList.tsx +341 -0
- package/src/features/search/SearchModal/SearchModalNoQueryList.tsx +70 -0
- package/src/features/search/SearchModal/SearchModalResultsList.tsx +255 -0
- package/src/features/search/SearchModal/analytics/SearchContext.tsx +18 -0
- package/src/features/search/SearchModal/analytics/analytics.test.ts +228 -0
- package/src/features/search/SearchModal/analytics/analytics.ts +122 -0
- package/src/features/search/SearchModal/constants.ts +4 -0
- package/src/features/search/SearchModal/hooks/useFilterCallbacks.ts +70 -0
- package/src/features/search/SearchModal/hooks/useRecentlySearchedOptions.tsx +166 -0
- package/src/features/search/SearchModal/hooks/useSectionsForNoQuerySearch.tsx +159 -0
- package/src/features/search/SearchModal/hooks/useWalletSearchResults.tsx +169 -0
- package/src/features/search/SearchModal/types.ts +10 -0
- package/src/features/search/SearchTextInput.tsx +257 -0
- package/src/features/search/searchHistorySlice.test.ts +168 -0
- package/src/features/search/searchHistorySlice.ts +70 -0
- package/src/features/search/selectSearchHistory.ts +6 -0
- package/src/features/search/utils.ts +15 -0
- package/src/features/services.ts +81 -0
- package/src/features/settings/balances/PortfolioBalanceSettingsContent.tsx +110 -0
- package/src/features/settings/constants.ts +41 -0
- package/src/features/settings/hooks.test.ts +80 -0
- package/src/features/settings/hooks.ts +41 -0
- package/src/features/settings/saga.ts +18 -0
- package/src/features/settings/selectors.ts +19 -0
- package/src/features/settings/slice.test.ts +28 -0
- package/src/features/settings/slice.ts +81 -0
- package/src/features/settings/storage/StorageSettingsContent.test.tsx +89 -0
- package/src/features/settings/storage/StorageSettingsContent.tsx +253 -0
- package/src/features/settings/storage/__snapshots__/StorageSettingsContent.test.tsx.snap +193 -0
- package/src/features/settings/useHapticFeedback/types.ts +22 -0
- package/src/features/settings/useHapticFeedback/useHapticFeedback.native.ts +45 -0
- package/src/features/settings/useHapticFeedback/useHapticFeedback.ts +6 -0
- package/src/features/settings/useHapticFeedback/useHapticFeedback.web.ts +11 -0
- package/src/features/smartWallet/banner/NetworkCostBanner.tsx +38 -0
- package/src/features/smartWallet/delegation/createTradingApiDelegationRepository.ts +65 -0
- package/src/features/smartWallet/delegation/delegation.test.ts +174 -0
- package/src/features/smartWallet/delegation/delegation.ts +118 -0
- package/src/features/smartWallet/delegation/delegationRepository.ts +21 -0
- package/src/features/smartWallet/delegation/effects.test.ts +206 -0
- package/src/features/smartWallet/delegation/effects.ts +81 -0
- package/src/features/smartWallet/delegation/hooks/useSetActiveChainId.ts +11 -0
- package/src/features/smartWallet/delegation/hooks/useUpdateDelegateState.ts +10 -0
- package/src/features/smartWallet/delegation/isDelegatedEOA.test.ts +63 -0
- package/src/features/smartWallet/delegation/isDelegatedEOA.ts +37 -0
- package/src/features/smartWallet/delegation/slice.ts +85 -0
- package/src/features/smartWallet/delegation/types.ts +12 -0
- package/src/features/smartWallet/mismatch/MismatchAccountEffects.tsx +38 -0
- package/src/features/smartWallet/mismatch/MismatchContext.tsx +76 -0
- package/src/features/smartWallet/mismatch/hooks.ts +229 -0
- package/src/features/smartWallet/mismatch/mismatch.test.ts +66 -0
- package/src/features/smartWallet/mismatch/mismatch.ts +109 -0
- package/src/features/smartWallet/mismatch/queryOptions.ts +42 -0
- package/src/features/smartWallet/mismatch/useMakeAccountMismatchQueryOptions.ts +23 -0
- package/src/features/smartWallet/mismatch/useOnDisconnectEffect.native.tsx +1 -0
- package/src/features/smartWallet/mismatch/useOnDisconnectEffect.tsx +5 -0
- package/src/features/smartWallet/mismatch/useOnDisconnectEffect.web.tsx +26 -0
- package/src/features/telemetry/Trace.tsx +60 -0
- package/src/features/telemetry/constants/extension.ts +28 -0
- package/src/features/telemetry/constants/features.ts +78 -0
- package/src/features/telemetry/constants/index.ts +8 -0
- package/src/features/telemetry/constants/interface.ts +71 -0
- package/src/features/telemetry/constants/lux.ts +25 -0
- package/src/features/telemetry/constants/mobile.ts +36 -0
- package/src/features/telemetry/constants/sessions.ts +12 -0
- package/src/features/telemetry/constants/trace/element.ts +330 -0
- package/src/features/telemetry/constants/trace/index.ts +4 -0
- package/src/features/telemetry/constants/trace/modal.ts +234 -0
- package/src/features/telemetry/constants/trace/page.ts +37 -0
- package/src/features/telemetry/constants/trace/section.ts +42 -0
- package/src/features/telemetry/constants/wallet.ts +70 -0
- package/src/features/telemetry/send.native.ts +28 -0
- package/src/features/telemetry/send.ts +18 -0
- package/src/features/telemetry/send.web.ts +31 -0
- package/src/features/telemetry/types.ts +1320 -0
- package/src/features/telemetry/user.ts +100 -0
- package/src/features/telemetry/utils/logExperimentQualifyingEvent.ts +9 -0
- package/src/features/testnets/TestnetModeModal.tsx +47 -0
- package/src/features/timing/selectors.ts +3 -0
- package/src/features/timing/slice.ts +31 -0
- package/src/features/tokens/SolanaToken.test.ts +76 -0
- package/src/features/tokens/SolanaToken.ts +48 -0
- package/src/features/tokens/getCurrencyAmount.test.ts +120 -0
- package/src/features/tokens/getCurrencyAmount.ts +85 -0
- package/src/features/tokens/stablecoin.ts +29 -0
- package/src/features/tokens/useCurrencyInfo.ts +110 -0
- package/src/features/tokens/warnings/TokenWarningCard.tsx +129 -0
- package/src/features/tokens/warnings/TokenWarningFlagsTable.tsx +142 -0
- package/src/features/tokens/warnings/TokenWarningModal.tsx +403 -0
- package/src/features/tokens/warnings/WarningInfoModalContainer.tsx +11 -0
- package/src/features/tokens/warnings/hooks/useBlockaidFeeComparisonAnalytics.ts +62 -0
- package/src/features/tokens/warnings/hooks/useWarningModalCurrenciesDismissed.ts +60 -0
- package/src/features/tokens/warnings/safetyUtils.test.ts +605 -0
- package/src/features/tokens/warnings/safetyUtils.ts +458 -0
- package/src/features/tokens/warnings/slice/hooks.ts +104 -0
- package/src/features/tokens/warnings/slice/selectors.ts +17 -0
- package/src/features/tokens/warnings/slice/slice.ts +91 -0
- package/src/features/tokens/warnings/slice/types.ts +34 -0
- package/src/features/tokens/warnings/types.ts +14 -0
- package/src/features/transactions/TransactionDetails/EstimatedTime.tsx +29 -0
- package/src/features/transactions/TransactionDetails/ExpectedFailureBanner.tsx +45 -0
- package/src/features/transactions/TransactionDetails/ExpectedSpeed.tsx +19 -0
- package/src/features/transactions/TransactionDetails/FeeOnTransferFee.tsx +50 -0
- package/src/features/transactions/TransactionDetails/ListSeparatorToggle.tsx +41 -0
- package/src/features/transactions/TransactionDetails/SlippageEdit.tsx +50 -0
- package/src/features/transactions/TransactionDetails/SwapFee.tsx +115 -0
- package/src/features/transactions/TransactionDetails/SwapReviewTokenWarningCard.tsx +77 -0
- package/src/features/transactions/TransactionDetails/TransactionDetails.tsx +200 -0
- package/src/features/transactions/TransactionDetails/TransactionWarning.tsx +19 -0
- package/src/features/transactions/TransactionDetails/UnichainPoweredMessage.tsx +27 -0
- package/src/features/transactions/TransactionDetails/UserReceiveAmount.tsx +33 -0
- package/src/features/transactions/TransactionDetails/modals/FeeOnTransferWarning.tsx +104 -0
- package/src/features/transactions/TransactionDetails/modals/SwapFeeWarning.tsx +72 -0
- package/src/features/transactions/TransactionDetails/types.ts +25 -0
- package/src/features/transactions/TransactionDetails/utils/getFeeSeverity.ts +41 -0
- package/src/features/transactions/TransactionDetails/utils/getRelevantTokenWarningSeverity.ts +22 -0
- package/src/features/transactions/TransactionDetails/utils/getShouldDisplayTokenWarningCard.ts +63 -0
- package/src/features/transactions/cancel/cancelMultipleOrders.test.ts +386 -0
- package/src/features/transactions/cancel/cancelMultipleOrders.ts +226 -0
- package/src/features/transactions/cancel/cancelOrderFactory.test.ts +327 -0
- package/src/features/transactions/cancel/cancelOrderFactory.ts +161 -0
- package/src/features/transactions/cancel/getCancelOrderTxRequest.ts +39 -0
- package/src/features/transactions/cancel/validation.test.ts +99 -0
- package/src/features/transactions/cancel/validation.ts +57 -0
- package/src/features/transactions/components/DecimalPadInput/DecimalPad.native.tsx +306 -0
- package/src/features/transactions/components/DecimalPadInput/DecimalPad.tsx +7 -0
- package/src/features/transactions/components/DecimalPadInput/DecimalPad.web.tsx +7 -0
- package/src/features/transactions/components/DecimalPadInput/DecimalPadInput.tsx +386 -0
- package/src/features/transactions/components/DecimalPadInput/types.ts +18 -0
- package/src/features/transactions/components/InsufficientNativeTokenWarning/BridgeTokenButton.tsx +65 -0
- package/src/features/transactions/components/InsufficientNativeTokenWarning/BuyNativeTokenButton.tsx +72 -0
- package/src/features/transactions/components/InsufficientNativeTokenWarning/InsufficientNativeTokenBaseComponent.tsx +91 -0
- package/src/features/transactions/components/InsufficientNativeTokenWarning/InsufficientNativeTokenWarning.tsx +165 -0
- package/src/features/transactions/components/InsufficientNativeTokenWarning/constants.ts +3 -0
- package/src/features/transactions/components/InsufficientNativeTokenWarning/useInsufficientNativeTokenWarning.tsx +176 -0
- package/src/features/transactions/components/TransactionModal/TransactionModal.native.tsx +207 -0
- package/src/features/transactions/components/TransactionModal/TransactionModal.tsx +17 -0
- package/src/features/transactions/components/TransactionModal/TransactionModal.web.tsx +59 -0
- package/src/features/transactions/components/TransactionModal/TransactionModalContext.tsx +108 -0
- package/src/features/transactions/components/TransactionModal/TransactionModalProps.tsx +23 -0
- package/src/features/transactions/components/TransactionModal/TransactionModalUpdateLogger.tsx +17 -0
- package/src/features/transactions/components/cancel/CancelConfirmationView.tsx +178 -0
- package/src/features/transactions/components/settings/TransactionSettings.tsx +138 -0
- package/src/features/transactions/components/settings/TransactionSettingsButton.tsx +96 -0
- package/src/features/transactions/components/settings/TransactionSettingsButtonWithSlippage.tsx +84 -0
- package/src/features/transactions/components/settings/TransactionSettingsModal/TransactionSettingsModal.tsx +11 -0
- package/src/features/transactions/components/settings/TransactionSettingsModal/TransactionSettingsModalContent/TransactionSettingsModalContent.tsx +144 -0
- package/src/features/transactions/components/settings/TransactionSettingsModal/TransactionSettingsModalContent/TransactionSettingsRow.tsx +91 -0
- package/src/features/transactions/components/settings/TransactionSettingsModal/TransactionSettingsModalInterface.tsx +47 -0
- package/src/features/transactions/components/settings/TransactionSettingsModal/TransactionSettingsModalWallet.tsx +45 -0
- package/src/features/transactions/components/settings/TransactionSettingsModal/types.ts +9 -0
- package/src/features/transactions/components/settings/ViewOnlyButton.tsx +29 -0
- package/src/features/transactions/components/settings/hooks/useTransactionSettingsWithSlippage.ts +64 -0
- package/src/features/transactions/components/settings/settingsConfigurations/deadline/Deadline/Deadline.native.tsx +16 -0
- package/src/features/transactions/components/settings/settingsConfigurations/deadline/Deadline/Deadline.tsx +18 -0
- package/src/features/transactions/components/settings/settingsConfigurations/deadline/Deadline/Deadline.web.tsx +26 -0
- package/src/features/transactions/components/settings/settingsConfigurations/deadline/DeadlineControl.tsx +83 -0
- package/src/features/transactions/components/settings/settingsConfigurations/deadline/DeadlineWarning.tsx +19 -0
- package/src/features/transactions/components/settings/settingsConfigurations/deadline/useDeadlineSettings.ts +95 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/Slippage/Slippage.native.tsx +15 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/Slippage/Slippage.tsx +18 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/Slippage/Slippage.web.tsx +27 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/SlippageControl.native.tsx +30 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/SlippageControl.tsx +10 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/SlippageControl.web.tsx +165 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/types.ts +3 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageWarning.tsx +31 -0
- package/src/features/transactions/components/settings/settingsConfigurations/slippage/useSlippageSettings.ts +220 -0
- package/src/features/transactions/components/settings/stores/TransactionSettingsModalStore/TransactionSettingsModalStoreContext.tsx +10 -0
- package/src/features/transactions/components/settings/stores/TransactionSettingsModalStore/TransactionSettingsModalStoreContextProvider.tsx +28 -0
- package/src/features/transactions/components/settings/stores/TransactionSettingsModalStore/createTransactionSettingsModalStore.ts +106 -0
- package/src/features/transactions/components/settings/stores/TransactionSettingsModalStore/useTransactionSettingsModalStore.ts +50 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/LPTransactionSettingsStoreContextProvider.tsx +15 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/SwapTransactionSettingsStoreContextProvider.tsx +6 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/TransactionSettingsStoreContext.ts +22 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/TransactionSettingsStoreContextProvider.tsx +49 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/createTransactionSettingsAutoSlippageToleranceStore.tsx +37 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/createTransactionSettingsStore.test.ts +28 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/createTransactionSettingsStore.ts +80 -0
- package/src/features/transactions/components/settings/stores/transactionSettingsStore/useTransactionSettingsStore.ts +79 -0
- package/src/features/transactions/components/settings/types.ts +42 -0
- package/src/features/transactions/components/settings/utils.ts +31 -0
- package/src/features/transactions/errors.ts +308 -0
- package/src/features/transactions/hooks/useErroredQueuedOrder.ts +52 -0
- package/src/features/transactions/hooks/useGetCanSignPermits.ts +14 -0
- package/src/features/transactions/hooks/useGetSwapDelegationAddress.ts +16 -0
- package/src/features/transactions/hooks/useIsCancelable.ts +130 -0
- package/src/features/transactions/hooks/useIsQueuedTransaction.ts +44 -0
- package/src/features/transactions/hooks/useParsedTransactionWarnings.tsx +98 -0
- package/src/features/transactions/hooks/usePendingTransactions.ts +45 -0
- package/src/features/transactions/hooks/usePollingIntervalByChain.ts +27 -0
- package/src/features/transactions/hooks/useSelectTransaction.tsx +22 -0
- package/src/features/transactions/hooks/useSuccessfulSwapCompleted.ts +59 -0
- package/src/features/transactions/hooks/useTokenAndFiatDisplayAmounts.tsx +82 -0
- package/src/features/transactions/hooks/useUSDCPrice.ts +125 -0
- package/src/features/transactions/hooks/useUSDCPriceCentralized.ts +77 -0
- package/src/features/transactions/hooks/useUSDCPriceWrapper.ts +34 -0
- package/src/features/transactions/hooks/useUSDTokenUpdater.ts +77 -0
- package/src/features/transactions/liquidity/steps/collectFees.ts +13 -0
- package/src/features/transactions/liquidity/steps/collectFeesSteps.ts +11 -0
- package/src/features/transactions/liquidity/steps/collectIncentiveRewards.ts +5 -0
- package/src/features/transactions/liquidity/steps/collectIncentiveRewardsSteps.ts +3 -0
- package/src/features/transactions/liquidity/steps/decreaseLiquiditySteps.ts +21 -0
- package/src/features/transactions/liquidity/steps/decreasePosition.ts +19 -0
- package/src/features/transactions/liquidity/steps/generateLPTransactionSteps.test.ts +362 -0
- package/src/features/transactions/liquidity/steps/generateLPTransactionSteps.ts +178 -0
- package/src/features/transactions/liquidity/steps/increaseLiquiditySteps.ts +81 -0
- package/src/features/transactions/liquidity/steps/increasePosition.ts +206 -0
- package/src/features/transactions/liquidity/steps/migrate.ts +72 -0
- package/src/features/transactions/liquidity/steps/migrationSteps.ts +48 -0
- package/src/features/transactions/liquidity/types.ts +187 -0
- package/src/features/transactions/liquidity/utils.ts +87 -0
- package/src/features/transactions/modals/BlockedAddressModal.tsx +20 -0
- package/src/features/transactions/modals/BlockedAddressWarning.tsx +33 -0
- package/src/features/transactions/modals/CompatibleAddressModal.tsx +91 -0
- package/src/features/transactions/modals/HiddenTokenInfoModal.tsx +39 -0
- package/src/features/transactions/modals/LowNativeBalanceModal.tsx +62 -0
- package/src/features/transactions/modals/MaxBalanceInfoModal.tsx +72 -0
- package/src/features/transactions/modals/ViewOnlyModal.tsx +28 -0
- package/src/features/transactions/selectors.ts +315 -0
- package/src/features/transactions/send/types.ts +18 -0
- package/src/features/transactions/signing.ts +29 -0
- package/src/features/transactions/slice.test.ts +959 -0
- package/src/features/transactions/slice.ts +370 -0
- package/src/features/transactions/steps/approve.ts +31 -0
- package/src/features/transactions/steps/permit2Signature.ts +17 -0
- package/src/features/transactions/steps/permit2Transaction.ts +34 -0
- package/src/features/transactions/steps/revoke.ts +30 -0
- package/src/features/transactions/steps/types.ts +154 -0
- package/src/features/transactions/steps/wrap.ts +17 -0
- package/src/features/transactions/swap/SwapFlow/CurrentScreen.native.tsx +70 -0
- package/src/features/transactions/swap/SwapFlow/CurrentScreen.tsx +10 -0
- package/src/features/transactions/swap/SwapFlow/CurrentScreen.web.tsx +60 -0
- package/src/features/transactions/swap/SwapFlow/SwapFlow.tsx +84 -0
- package/src/features/transactions/swap/analytics.test.ts +183 -0
- package/src/features/transactions/swap/analytics.ts +585 -0
- package/src/features/transactions/swap/components/AcrossRoutingInfo.tsx +91 -0
- package/src/features/transactions/swap/components/BridgingCurrencyRow.tsx +53 -0
- package/src/features/transactions/swap/components/CrossChainCurrencyRow.tsx +53 -0
- package/src/features/transactions/swap/components/EstimatedBridgeTime.tsx +66 -0
- package/src/features/transactions/swap/components/MaxSlippageRow/MaxSlippageRow.tsx +81 -0
- package/src/features/transactions/swap/components/MaxSlippageRow/SlippageInfo/SlippageInfo.tsx +81 -0
- package/src/features/transactions/swap/components/MaxSlippageRow/SlippageInfo/SlippageInfoCaption.tsx +116 -0
- package/src/features/transactions/swap/components/MaxSlippageRow/SlippageInfo/types.ts +8 -0
- package/src/features/transactions/swap/components/MaxSlippageRow/SlippageInfo/useFormatSlippageAmount.ts +26 -0
- package/src/features/transactions/swap/components/PriceImpactRow/MarketPriceImpactWarning.tsx +84 -0
- package/src/features/transactions/swap/components/PriceImpactRow/PriceImpactRow.tsx +45 -0
- package/src/features/transactions/swap/components/PriceImpactRow/usePriceImpact.test.ts +93 -0
- package/src/features/transactions/swap/components/PriceImpactRow/usePriceImpact.ts +26 -0
- package/src/features/transactions/swap/components/README.md +24 -0
- package/src/features/transactions/swap/components/RoutingInfo/AcrossRoutingInfo.tsx +91 -0
- package/src/features/transactions/swap/components/RoutingInfo/ChainedRoutingInfo.tsx +142 -0
- package/src/features/transactions/swap/components/RoutingInfo/RoutingHopInfo.tsx +120 -0
- package/src/features/transactions/swap/components/RoutingInfo/RoutingInfo.tsx +30 -0
- package/src/features/transactions/swap/components/RoutingInfo.tsx +120 -0
- package/src/features/transactions/swap/components/SwapArrowButton.tsx +43 -0
- package/src/features/transactions/swap/components/SwapFormButton/SwapFormButton.tsx +70 -0
- package/src/features/transactions/swap/components/SwapFormButton/SwapFormButtonTrace.tsx +38 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useBridgingModalActions.ts +28 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useCurrenciesWithBridgingWarnings.ts +36 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useCurrenciesWithProtectionWarnings.ts +38 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsAmountSelectionInvalid.ts +11 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsBlockingWithCustomMessage.ts +19 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsMissingPlatformWallet.ts +12 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsPortfolioZero.ts +10 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsSwapButtonDisabled.ts +66 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsTokenSelectionInvalid.ts +10 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsTradeIndicative.ts +12 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useIsWrongWalletPlatform.ts +15 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useOnReviewPress.ts +99 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useSwapFormButtonColors.ts +76 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useSwapFormButtonHooks.test.ts +620 -0
- package/src/features/transactions/swap/components/SwapFormButton/hooks/useSwapFormButtonText.ts +90 -0
- package/src/features/transactions/swap/components/SwapFormSettings/SlippageWarningModal.tsx +50 -0
- package/src/features/transactions/swap/components/SwapFormSettings/SwapFormSettings.tsx +92 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/RoutingMethodPreference/RoutingMethodPreference.tsx +15 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/RoutingMethodPreference/RoutingMethodPreferenceControl.tsx +28 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/RoutingMethodPreference/RoutingMethodPreferenceScreen.tsx +89 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/DEXInfo.tsx +55 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/TradeRoutingPreference.tsx +15 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/TradeRoutingPreferenceControl.tsx +39 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/TradeRoutingPreferenceScreen.tsx +473 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/V4HooksInfo.tsx +43 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/isDefaultTradeRouteOptions.ts +17 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/Slippage/Slippage.native.tsx +19 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/Slippage/Slippage.tsx +21 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/Slippage/Slippage.web.tsx +10 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/SlippageControl/SlippageControl.native.tsx +11 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/SlippageControl/SlippageControl.tsx +9 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/SlippageControl/SlippageControl.web.tsx +11 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/SlippageScreenNative.tsx +203 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippageUpdate/SlippageUpdate.native.tsx +7 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippageUpdate/SlippageUpdate.tsx +11 -0
- package/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippageUpdate/SlippageUpdate.web.tsx +11 -0
- package/src/features/transactions/swap/components/SwapRateRatio.tsx +77 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/AnimatedTokenFlip.native.tsx +121 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/AnimatedTokenFlip.tsx +16 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/AnimatedTokenFlip.web.tsx +136 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/FlashblocksConfirmButton.tsx +104 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/GradientContainer.native.tsx +120 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/GradientContainer.tsx +11 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/GradientContainer.web.tsx +128 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/StyledTokenLogo.tsx +32 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/UnichainInstantBalanceModal.tsx +150 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/constants.ts +28 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/getOutputAmountFromSwapLogAndFormData.ts/constants.ts +40 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/getOutputAmountFromSwapLogAndFormData.ts/getOutputAmountFromSwapLogAndFormData.ts +137 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/getOutputAmountFromSwapLogAndFormData.ts/utils.ts +181 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/receiptFetching/useFetchReceipt.ts +95 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/receiptFetching/useReceiptFailureHandler.ts +57 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/receiptFetching/useReceiptSuccessHandler.ts +207 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/receiptFetching/utils.ts +125 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/useActualCompletionTime.tsx +48 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/useActualSwapOutput.tsx +70 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/useBackgroundColor.tsx +9 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/useClearFlashblocksSwapNotifications.ts +51 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/useCurrentFlashblocksTransaction.tsx +29 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/hooks/useInstantReceiptOutput.tsx +83 -0
- package/src/features/transactions/swap/components/UnichainInstantBalanceModal/utils.ts +91 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormCurrencyInputPanel.tsx +103 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormCurrencyOutputPanel.tsx +106 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormDecimalPad/SwapFormDecimalPad.native.tsx +264 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormDecimalPad/SwapFormDecimalPad.tsx +5 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormDecimalPad/SwapFormDecimalPad.web.tsx +3 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormHeader/SwapFormHeader.native.tsx +23 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormHeader/SwapFormHeader.tsx +5 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormHeader/SwapFormHeader.web.tsx +38 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreen.tsx +118 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/ExpandableRows.tsx +101 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenDetails.native.tsx +12 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenDetails.tsx +5 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenDetails.web.tsx +39 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/ExactOutputUnavailableWarningRow.tsx +57 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/GasAndWarningRows.native.tsx +183 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/GasAndWarningRows.tsx +5 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/GasAndWarningRows.web.tsx +60 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/SwapWarningModal.tsx +46 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/TradeInfoRow/CanonicalBridgeLinkBanner.tsx +29 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/TradeInfoRow/GasInfoRow.test.tsx +152 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/TradeInfoRow/GasInfoRow.tsx +68 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/TradeInfoRow/TradeInfoRow.tsx +92 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/TradeInfoRow/TradeWarning.tsx +40 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/TradeInfoRow/useDebouncedTrade.ts +21 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/types.ts +11 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/GasAndWarningRows/useDebouncedGasInfo.ts +70 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormScreenDetails/SwapFormScreenFooter/SwapFormScreenFooter.tsx +65 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormTooltips/AcrossRoutingTooltip.tsx +12 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormTooltips/BestRouteTooltip.tsx +82 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormTooltips/FeeDetailsTooltip.tsx +67 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormTooltips/LargePriceDifferenceTooltip.tsx +17 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormTooltips/MaxSlippageTooltip.tsx +144 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormTooltips/YouReceiveDetailsTooltip.tsx +96 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormWarningModals/BridgingModal.tsx +86 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapFormWarningModals/SwapFormWarningModals.tsx +113 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapTokenSelector/SwapTokenSelector.tsx +60 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapTokenSelector/hooks/useChainId.ts +36 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwapTokenSelector/hooks/useHideTokenSelector.ts +21 -0
- package/src/features/transactions/swap/form/SwapFormScreen/SwitchCurrenciesButton.tsx +63 -0
- package/src/features/transactions/swap/form/SwapFormScreen/WalletRestoreButton.tsx +41 -0
- package/src/features/transactions/swap/form/SwapFormScreen/YouReceiveDetails/SwapDetailsRow.tsx +169 -0
- package/src/features/transactions/swap/form/SwapFormScreen/YouReceiveDetails/YouReceiveDetails.native.tsx +5 -0
- package/src/features/transactions/swap/form/SwapFormScreen/YouReceiveDetails/YouReceiveDetails.tsx +12 -0
- package/src/features/transactions/swap/form/SwapFormScreen/YouReceiveDetails/YouReceiveDetails.web.tsx +413 -0
- package/src/features/transactions/swap/form/SwapFormScreen/hooks/useCurrencyInputFocusedStyle.ts +19 -0
- package/src/features/transactions/swap/form/hooks/useDecimalPadControlledField.ts +15 -0
- package/src/features/transactions/swap/form/hooks/useOnSelectCurrency.ts +245 -0
- package/src/features/transactions/swap/form/hooks/useSwapNetworkChangeEffect.test.ts +91 -0
- package/src/features/transactions/swap/form/hooks/useSwapPrefilledState.ts +118 -0
- package/src/features/transactions/swap/form/hooks/useSyncFiatAndTokenAmountUpdater.test.tsx +226 -0
- package/src/features/transactions/swap/form/hooks/useSyncFiatAndTokenAmountUpdater.tsx +84 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/SwapFormScreenStoreContext.ts +4 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/SwapFormScreenStoreContextProvider.tsx +268 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/createSwapFormScreenStore.ts +83 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/devUtils.ts +65 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/hooks/useChainIdsChangeEffect.test.ts +227 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/hooks/useChainIdsChangeEffect.ts +82 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/hooks/useSwapNetworkChangeEffect.ts +53 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/hooks/useTemporaryExactOutputUnavailableWarning.ts +44 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/hooks/useUpdateSwapFormOnMountIfExactOutputWillFail.ts +17 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/useSwapFormScreenCallbacks.test.ts +178 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/useSwapFormScreenCallbacks.ts +267 -0
- package/src/features/transactions/swap/form/stores/swapFormScreenStore/useSwapFormScreenStore.ts +23 -0
- package/src/features/transactions/swap/form/stores/swapFormWarningStore/SwapFormWarningStoreContext.ts +4 -0
- package/src/features/transactions/swap/form/stores/swapFormWarningStore/SwapFormWarningStoreContextProvider.tsx +9 -0
- package/src/features/transactions/swap/form/stores/swapFormWarningStore/createSwapFormWarningStore.ts +57 -0
- package/src/features/transactions/swap/form/stores/swapFormWarningStore/useSwapFormWarningStore.ts +30 -0
- package/src/features/transactions/swap/form/utils.test.ts +73 -0
- package/src/features/transactions/swap/form/utils.ts +17 -0
- package/src/features/transactions/swap/hooks/useEthAsErc20DEXQualifyingEvent.ts +244 -0
- package/src/features/transactions/swap/hooks/useFeeOnTransferAmount.ts +76 -0
- package/src/features/transactions/swap/hooks/useIsUnichainFlashblocksEnabled.ts +135 -0
- package/src/features/transactions/swap/hooks/useMostRecentSwapTx.ts +15 -0
- package/src/features/transactions/swap/hooks/useNeedsBridgedAssetWarning.ts +71 -0
- package/src/features/transactions/swap/hooks/usePriceDifference.test.ts +127 -0
- package/src/features/transactions/swap/hooks/usePriceDifference.ts +55 -0
- package/src/features/transactions/swap/hooks/usePriceUXEnabled.ts +11 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getBalanceWarning.test.ts +96 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getBalanceWarning.ts +39 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getFormIncompleteWarning.test.ts +127 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getFormIncompleteWarning.ts +26 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getPriceImpactWarning.test.ts +94 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getPriceImpactWarning.ts +51 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getSwapWarningFromError.ts +73 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getTokenBlockedWarning.test.ts +126 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/getTokenBlockedWarning.ts +30 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/useNeedsBridgingWarning.ts +10 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/useNeedsLowNativeBalanceWarning.ts +18 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/useParsedActivePlanWarnings.test.ts +255 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/useParsedActivePlanWarnings.ts +234 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/usePrefilledNeedsTokenProtectionWarning.ts +87 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/useSwapWarnings.test.ts +168 -0
- package/src/features/transactions/swap/hooks/useSwapWarnings/useSwapWarnings.tsx +132 -0
- package/src/features/transactions/swap/hooks/useTrade/createGetQuoteRequestArgs.ts +72 -0
- package/src/features/transactions/swap/hooks/useTrade/logging.ts +142 -0
- package/src/features/transactions/swap/hooks/useTrade/parseQuoteCurrencies.ts +39 -0
- package/src/features/transactions/swap/hooks/useTrade/useIndicativeTradeQuery.ts +20 -0
- package/src/features/transactions/swap/hooks/useTrade/useIndicativeTradeServiceQueryOptions.ts +36 -0
- package/src/features/transactions/swap/hooks/useTrade/useTradeQuery.ts +46 -0
- package/src/features/transactions/swap/hooks/useTrade/useTradeServiceQueryOptions.ts +39 -0
- package/src/features/transactions/swap/hooks/useTrade.ts +81 -0
- package/src/features/transactions/swap/hooks/useTradeFromExistingPlan.ts +104 -0
- package/src/features/transactions/swap/hooks/useV4SwapEnabled.ts +25 -0
- package/src/features/transactions/swap/orders.ts +6 -0
- package/src/features/transactions/swap/plan/intermediaryState/useCanResumePlan.ts +53 -0
- package/src/features/transactions/swap/plan/intermediaryState/useIntermediaryPlanState.ts +90 -0
- package/src/features/transactions/swap/plan/intermediaryState/useIntermediaryPlanStateDescriptor.ts +73 -0
- package/src/features/transactions/swap/plan/intermediaryState/useResumePlanMutation.ts +112 -0
- package/src/features/transactions/swap/plan/planPollingUtils.ts +197 -0
- package/src/features/transactions/swap/plan/planSaga.test.ts +526 -0
- package/src/features/transactions/swap/plan/planSaga.ts +600 -0
- package/src/features/transactions/swap/plan/planSagaUtils.ts +399 -0
- package/src/features/transactions/swap/plan/planStepAnalytics.ts +127 -0
- package/src/features/transactions/swap/plan/planStepTransformer.ts +95 -0
- package/src/features/transactions/swap/plan/planWatcherSaga.ts +150 -0
- package/src/features/transactions/swap/plan/prefetchedPlanStore.ts +86 -0
- package/src/features/transactions/swap/plan/priceChangeDetection.test.ts +146 -0
- package/src/features/transactions/swap/plan/slippage.test.ts +124 -0
- package/src/features/transactions/swap/plan/slippage.ts +36 -0
- package/src/features/transactions/swap/plan/types.ts +158 -0
- package/src/features/transactions/swap/plan/utils.test.ts +97 -0
- package/src/features/transactions/swap/plan/utils.ts +271 -0
- package/src/features/transactions/swap/plan/watchPlanStepSaga.ts +146 -0
- package/src/features/transactions/swap/review/SwapDetails/AcceptNewQuoteRow.tsx +101 -0
- package/src/features/transactions/swap/review/SwapDetails/MarketPriceImpactWarningModal.tsx +84 -0
- package/src/features/transactions/swap/review/SwapDetails/SwapDetails.tsx +164 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapErrorScreen.tsx +104 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewFooter/DelayedSubmissionText.tsx +33 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewFooter/PendingSwapButton.native.tsx +163 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewFooter/PendingSwapButton.tsx +16 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewFooter/PendingSwapButton.web.tsx +160 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewFooter/SubmitSwapButton.tsx +268 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewFooter/SwapReviewFooter.tsx +143 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewLoadingView.tsx +17 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewScreen.tsx +189 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewSwapDetails.tsx +80 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewWarningModal.tsx +40 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/SwapReviewWrapTransactionDetails.tsx +39 -0
- package/src/features/transactions/swap/review/SwapReviewScreen/TransactionAmountsReview.tsx +219 -0
- package/src/features/transactions/swap/review/hooks/useAcceptedTrade.ts +66 -0
- package/src/features/transactions/swap/review/hooks/useActivePlanStatus.ts +31 -0
- package/src/features/transactions/swap/review/hooks/useCreateSwapReviewCallbacks.tsx +271 -0
- package/src/features/transactions/swap/review/hooks/usePrepareSwapTransactionEffect.ts +41 -0
- package/src/features/transactions/swap/review/hooks/useSwapOnPrevious.tsx +45 -0
- package/src/features/transactions/swap/review/hooks/useTokenApprovalInfo.test.ts +176 -0
- package/src/features/transactions/swap/review/hooks/useTokenApprovalInfo.ts +190 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/bridge/bridgeSwapTxAndGasInfoService.ts +25 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/chained/chainedActionTxSwapAndGasInfoService.ts +114 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/classic/classicSwapTxAndGasInfoService.ts +30 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/constants.ts +18 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/dex/dexSwapTxAndGasInfoService.ts +19 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/dex/utils.test.tsx +28 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/dex/utils.ts +69 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/evm/evmSwapInstructionsService.ts +147 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/evm/evmSwapRepository.ts +78 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/evm/hooks.ts +40 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/evm/logging.ts +46 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/evm/utils.ts +70 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/hooks.ts +335 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/svm/solanaSwapTxAndGasInfoService.ts +36 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/swapTxAndGasInfoService.ts +37 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/utils.test.ts +385 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/utils.ts +511 -0
- package/src/features/transactions/swap/review/services/swapTxAndGasInfoService/wrap/wrapTxAndGasInfoService.ts +25 -0
- package/src/features/transactions/swap/review/stores/activePlan/ActivePlanUpdater.ts +117 -0
- package/src/features/transactions/swap/review/stores/activePlan/activePlanStore.test.ts +123 -0
- package/src/features/transactions/swap/review/stores/activePlan/activePlanStore.ts +153 -0
- package/src/features/transactions/swap/review/stores/activePlan/usePopulateSwapFlowWithPlan.ts +45 -0
- package/src/features/transactions/swap/review/stores/swapReviewCallbacksStore/SwapReviewCallbacksStoreContext.ts +6 -0
- package/src/features/transactions/swap/review/stores/swapReviewCallbacksStore/SwapReviewCallbacksStoreContextProvider.tsx +90 -0
- package/src/features/transactions/swap/review/stores/swapReviewCallbacksStore/createSwapReviewCallbacksStore.ts +26 -0
- package/src/features/transactions/swap/review/stores/swapReviewCallbacksStore/useSwapReviewCallbacksStore.ts +24 -0
- package/src/features/transactions/swap/review/stores/swapReviewStore/SwapReviewContext.ts +4 -0
- package/src/features/transactions/swap/review/stores/swapReviewStore/SwapReviewStoreContextProvider.tsx +24 -0
- package/src/features/transactions/swap/review/stores/swapReviewStore/SyncActivePlanEffects.tsx +63 -0
- package/src/features/transactions/swap/review/stores/swapReviewStore/createSwapReviewStore.ts +52 -0
- package/src/features/transactions/swap/review/stores/swapReviewStore/useSwapReviewStore.ts +52 -0
- package/src/features/transactions/swap/review/stores/swapReviewTransactionStore/SwapReviewTransactionStoreContext.ts +6 -0
- package/src/features/transactions/swap/review/stores/swapReviewTransactionStore/SwapReviewTransactionStoreContextProvider.tsx +121 -0
- package/src/features/transactions/swap/review/stores/swapReviewTransactionStore/createSwapReviewTransactionStore.ts +53 -0
- package/src/features/transactions/swap/review/stores/swapReviewTransactionStore/useSwapReviewTransactionStore.ts +72 -0
- package/src/features/transactions/swap/review/stores/swapReviewWarningStore/SwapReviewWarningStoreContext.ts +4 -0
- package/src/features/transactions/swap/review/stores/swapReviewWarningStore/SwapReviewWarningStoreContextProvider.tsx +10 -0
- package/src/features/transactions/swap/review/stores/swapReviewWarningStore/createSwapReviewWarningStore.ts +43 -0
- package/src/features/transactions/swap/review/stores/swapReviewWarningStore/useSwapReviewWarningStore.ts +32 -0
- package/src/features/transactions/swap/services/executeSwapService.ts +83 -0
- package/src/features/transactions/swap/services/hooks/useExecuteSwap.ts +66 -0
- package/src/features/transactions/swap/services/hooks/usePrepareSwap.ts +95 -0
- package/src/features/transactions/swap/services/hooks/useWarningService.ts +48 -0
- package/src/features/transactions/swap/services/prepareSwapService.ts +212 -0
- package/src/features/transactions/swap/services/tradeService/evmTradeService.ts +218 -0
- package/src/features/transactions/swap/services/tradeService/svmTradeService.ts +93 -0
- package/src/features/transactions/swap/services/tradeService/tradeRepository.test.ts +224 -0
- package/src/features/transactions/swap/services/tradeService/tradeRepository.ts +99 -0
- package/src/features/transactions/swap/services/tradeService/tradeService.ts +50 -0
- package/src/features/transactions/swap/services/tradeService/transformations/buildQuoteRequest.ts +180 -0
- package/src/features/transactions/swap/services/tradeService/transformations/estimateGas.ts +9 -0
- package/src/features/transactions/swap/services/tradeService/transformations/transformQuoteToTrade.ts +64 -0
- package/src/features/transactions/swap/services/warningService.ts +11 -0
- package/src/features/transactions/swap/state/selectors.ts +5 -0
- package/src/features/transactions/swap/state/slice.ts +31 -0
- package/src/features/transactions/swap/steps/classicSteps.ts +58 -0
- package/src/features/transactions/swap/steps/dexSteps.ts +27 -0
- package/src/features/transactions/swap/steps/signOrder.ts +35 -0
- package/src/features/transactions/swap/steps/swap.ts +74 -0
- package/src/features/transactions/swap/stores/swapDependenciesStore/SwapDependenciesStoreContext.ts +4 -0
- package/src/features/transactions/swap/stores/swapDependenciesStore/SwapDependenciesStoreContextProvider.tsx +45 -0
- package/src/features/transactions/swap/stores/swapDependenciesStore/createSwapDependenciesStore.ts +48 -0
- package/src/features/transactions/swap/stores/swapDependenciesStore/useSwapDependenciesStore.ts +33 -0
- package/src/features/transactions/swap/stores/swapFormStore/SwapFormStoreContext.ts +4 -0
- package/src/features/transactions/swap/stores/swapFormStore/SwapFormStoreContextProvider.tsx +350 -0
- package/src/features/transactions/swap/stores/swapFormStore/createSwapFormStore.ts +163 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useDebouncedSwapFormAmounts.ts +45 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useDefaultSwapFormState.ts +39 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useDerivedSwapInfo.ts +196 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useFreezeWhileSubmitting.test.ts +310 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useFreezeWhileSubmitting.ts +21 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useOnToggleIsFiatMode.ts +68 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useOpenOutputSelectorOnPrefilledStateChange.ts +24 -0
- package/src/features/transactions/swap/stores/swapFormStore/hooks/useUpdateSwapFormFromPrefilledCurrencies.ts +30 -0
- package/src/features/transactions/swap/stores/swapFormStore/types.ts +73 -0
- package/src/features/transactions/swap/stores/swapFormStore/useSwapFormStore.ts +42 -0
- package/src/features/transactions/swap/stores/swapTxStore/SwapTxStoreContext.ts +4 -0
- package/src/features/transactions/swap/stores/swapTxStore/SwapTxStoreContextProvider.tsx +23 -0
- package/src/features/transactions/swap/stores/swapTxStore/createSwapTxStore.ts +33 -0
- package/src/features/transactions/swap/stores/swapTxStore/hooks/usePermit2Signature.ts +44 -0
- package/src/features/transactions/swap/stores/swapTxStore/hooks/useTransactionRequestInfo.test.ts +170 -0
- package/src/features/transactions/swap/stores/swapTxStore/hooks/useTransactionRequestInfo.ts +191 -0
- package/src/features/transactions/swap/stores/swapTxStore/useSwapTxStore.ts +24 -0
- package/src/features/transactions/swap/types/BlockingTradeError.ts +14 -0
- package/src/features/transactions/swap/types/derivedSwapInfo.ts +33 -0
- package/src/features/transactions/swap/types/getTradingApiSwapFee.test.ts +171 -0
- package/src/features/transactions/swap/types/getTradingApiSwapFee.ts +59 -0
- package/src/features/transactions/swap/types/solana.test.ts +235 -0
- package/src/features/transactions/swap/types/solana.ts +177 -0
- package/src/features/transactions/swap/types/swapCallback.ts +32 -0
- package/src/features/transactions/swap/types/swapHandlers.ts +50 -0
- package/src/features/transactions/swap/types/swapTxAndGasInfo.ts +248 -0
- package/src/features/transactions/swap/types/trade.test.ts +102 -0
- package/src/features/transactions/swap/types/trade.ts +921 -0
- package/src/features/transactions/swap/types/wrapCallback.ts +18 -0
- package/src/features/transactions/swap/utils/SwapEventTimestampTracker.test.ts +40 -0
- package/src/features/transactions/swap/utils/SwapEventTimestampTracker.ts +65 -0
- package/src/features/transactions/swap/utils/asset.ts +15 -0
- package/src/features/transactions/swap/utils/chainedActions.ts +34 -0
- package/src/features/transactions/swap/utils/format.ts +7 -0
- package/src/features/transactions/swap/utils/formatPriceImpact.test.ts +86 -0
- package/src/features/transactions/swap/utils/formatPriceImpact.ts +10 -0
- package/src/features/transactions/swap/utils/gas.test.ts +148 -0
- package/src/features/transactions/swap/utils/gas.ts +37 -0
- package/src/features/transactions/swap/utils/generateSwapTransactionSteps.test.ts +267 -0
- package/src/features/transactions/swap/utils/generateSwapTransactionSteps.ts +91 -0
- package/src/features/transactions/swap/utils/getAmountsFromTrade.ts +37 -0
- package/src/features/transactions/swap/utils/getExactOutputWillFail.test.ts +147 -0
- package/src/features/transactions/swap/utils/getExactOutputWillFail.ts +61 -0
- package/src/features/transactions/swap/utils/getIdForQuote.ts +10 -0
- package/src/features/transactions/swap/utils/getPriceImpact.test.ts +187 -0
- package/src/features/transactions/swap/utils/getPriceImpact.ts +60 -0
- package/src/features/transactions/swap/utils/getSwapFeeUsd.ts +46 -0
- package/src/features/transactions/swap/utils/getTradeAmounts.ts +50 -0
- package/src/features/transactions/swap/utils/maybeLogFirstSwapAction.ts +18 -0
- package/src/features/transactions/swap/utils/protocols.test.ts +367 -0
- package/src/features/transactions/swap/utils/protocols.ts +150 -0
- package/src/features/transactions/swap/utils/routing.ts +140 -0
- package/src/features/transactions/swap/utils/styleHelpers.ts +22 -0
- package/src/features/transactions/swap/utils/trade.test.ts +168 -0
- package/src/features/transactions/swap/utils/trade.ts +264 -0
- package/src/features/transactions/swap/utils/tradingApi.test.ts +189 -0
- package/src/features/transactions/swap/utils/tradingApi.ts +593 -0
- package/src/features/transactions/swap/utils/wrap.test.ts +35 -0
- package/src/features/transactions/swap/utils/wrap.ts +28 -0
- package/src/features/transactions/toucan/steps/submitBid.ts +5 -0
- package/src/features/transactions/toucan/steps/withdrawBidAndClaimTokens.ts +5 -0
- package/src/features/transactions/types/baseDerivedInfo.ts +18 -0
- package/src/features/transactions/types/transactionDetails.ts +831 -0
- package/src/features/transactions/types/transactionRequests.ts +14 -0
- package/src/features/transactions/types/transactionState.ts +70 -0
- package/src/features/transactions/types/utils.ts +131 -0
- package/src/features/transactions/types/wrap.ts +5 -0
- package/src/features/transactions/utils/dex.utils.test.ts +95 -0
- package/src/features/transactions/utils/dex.utils.ts +135 -0
- package/src/features/transactions/utils/permit2.ts +43 -0
- package/src/features/transactions/utils/receipt.test.ts +64 -0
- package/src/features/transactions/utils/receipt.ts +73 -0
- package/src/features/trm/hooks.ts +22 -0
- package/src/features/unitags/ClaimUnitagContent.tsx +450 -0
- package/src/features/unitags/UnitagInfoModal.tsx +75 -0
- package/src/features/unitags/UnitagName.test.tsx +12 -0
- package/src/features/unitags/UnitagName.tsx +74 -0
- package/src/features/unitags/__snapshots__/UnitagName.test.tsx.snap +70 -0
- package/src/features/unitags/avatars.ts +82 -0
- package/src/features/unitags/constants.ts +5 -0
- package/src/features/unitags/fileUtils.native.ts +72 -0
- package/src/features/unitags/fileUtils.ts +13 -0
- package/src/features/unitags/fileUtils.web.ts +104 -0
- package/src/features/unitags/hooks/useCanClaimUnitagName.test.ts +78 -0
- package/src/features/unitags/hooks/useCanClaimUnitagName.ts +81 -0
- package/src/features/unitags/hooks/useClaimUnitag.ts +92 -0
- package/src/features/unitags/utils.ts +31 -0
- package/src/features/visibility/hooks/useIsActivityHidden.ts +7 -0
- package/src/features/visibility/hooks/usePositionVisibilityCheck.ts +31 -0
- package/src/features/visibility/hooks/useTokenVisibility.ts +20 -0
- package/src/features/visibility/selectors.ts +16 -0
- package/src/features/visibility/slice.ts +69 -0
- package/src/features/visibility/utils.ts +21 -0
- package/src/features/visibility/visibility.test.ts +295 -0
- package/src/features/wallet/contexts/WalletProvider.tsx +34 -0
- package/src/features/wallet/hooks/useWallet.ts +8 -0
- package/src/features/wallet/services/IWalletService.ts +6 -0
- package/src/features/wallet/services/createEVMWalletService.ts +40 -0
- package/src/features/wallet/services/createWalletService.ts +19 -0
- package/src/features/wallet/types/AccountDetails.ts +25 -0
- package/src/features/wallet/types/Wallet.ts +6 -0
- package/src/features/wallet/types/WalletMeta.ts +5 -0
- package/src/hooks/useAppInsets.test.tsx +59 -0
- package/src/hooks/useAppInsets.tsx +24 -0
- package/src/hooks/useIsKeyboardOpen.test.ts +97 -0
- package/src/hooks/useSnowflakeAnimation.ts +482 -0
- package/src/i18n/changeLanguage.tsx +25 -0
- package/src/i18n/i18n-setup-interface.tsx +85 -0
- package/src/i18n/i18n-setup.tsx +95 -0
- package/src/i18n/index.ts +10 -0
- package/src/i18n/index.web-app.ts +11 -0
- package/src/i18n/locales/@types/i18next.ts +13 -0
- package/src/i18n/locales/source/en-US.json +2922 -0
- package/src/i18n/locales/source/en-US_old.json +21 -0
- package/src/i18n/locales/translations/es-ES.json +2919 -0
- package/src/i18n/locales/translations/fil-PH.json +2919 -0
- package/src/i18n/locales/translations/fr-FR.json +2919 -0
- package/src/i18n/locales/translations/id-ID.json +2919 -0
- package/src/i18n/locales/translations/ja-JP.json +2919 -0
- package/src/i18n/locales/translations/ko-KR.json +2919 -0
- package/src/i18n/locales/translations/nl-NL.json +2919 -0
- package/src/i18n/locales/translations/pt-BR.json +2310 -0
- package/src/i18n/locales/translations/pt-PT.json +2919 -0
- package/src/i18n/locales/translations/ru-RU.json +2919 -0
- package/src/i18n/locales/translations/tr-TR.json +2919 -0
- package/src/i18n/locales/translations/vi-VN.json +2919 -0
- package/src/i18n/locales/translations/zh-CN.json +2919 -0
- package/src/i18n/locales/translations/zh-TW.json +2919 -0
- package/src/i18n/shared.ts +1 -0
- package/src/i18n/utils.test.ts +112 -0
- package/src/i18n/utils.ts +70 -0
- package/src/index.ts +7 -0
- package/src/react-native-dotenv.d.ts +42 -0
- package/src/state/README.md +3 -0
- package/src/state/createAppStateResetter.test.ts +118 -0
- package/src/state/createAppStateResetter.ts +95 -0
- package/src/state/createSafeMigration.test.ts +119 -0
- package/src/state/createSafeMigration.ts +84 -0
- package/src/state/index.ts +5 -0
- package/src/state/luxMigrationTests.ts +71 -0
- package/src/state/luxMigrations.test.ts +423 -0
- package/src/state/luxMigrations.ts +266 -0
- package/src/state/luxReducer.ts +48 -0
- package/src/state/oldTypes.ts +94 -0
- package/src/tamagui.d.ts +40 -0
- package/src/test/fixtures/account.ts +19 -0
- package/src/test/fixtures/events.ts +5 -0
- package/src/test/fixtures/gql/activities/index.ts +91 -0
- package/src/test/fixtures/gql/activities/nfts.ts +31 -0
- package/src/test/fixtures/gql/activities/swap.ts +21 -0
- package/src/test/fixtures/gql/activities/tokens.ts +50 -0
- package/src/test/fixtures/gql/amounts.ts +31 -0
- package/src/test/fixtures/gql/assets/constants.ts +30 -0
- package/src/test/fixtures/gql/assets/index.ts +3 -0
- package/src/test/fixtures/gql/assets/nfts.ts +60 -0
- package/src/test/fixtures/gql/assets/tokens.ts +194 -0
- package/src/test/fixtures/gql/history.ts +70 -0
- package/src/test/fixtures/gql/index.ts +7 -0
- package/src/test/fixtures/gql/misc.ts +19 -0
- package/src/test/fixtures/gql/portfolio.ts +38 -0
- package/src/test/fixtures/gql/transactions.ts +34 -0
- package/src/test/fixtures/index.ts +4 -0
- package/src/test/fixtures/lib/ethers.ts +47 -0
- package/src/test/fixtures/lib/index.ts +3 -0
- package/src/test/fixtures/lib/netinfo.ts +29 -0
- package/src/test/fixtures/lib/sdk.ts +14 -0
- package/src/test/fixtures/permit.ts +19 -0
- package/src/test/fixtures/testIDs.ts +303 -0
- package/src/test/fixtures/tradingApi.ts +16 -0
- package/src/test/fixtures/transactions/swap.ts +269 -0
- package/src/test/fixtures/wallet/addresses.ts +1 -0
- package/src/test/fixtures/wallet/balances.ts +89 -0
- package/src/test/fixtures/wallet/currencies.ts +93 -0
- package/src/test/fixtures/wallet/index.ts +3 -0
- package/src/test/fixtures/wallet/transactions/fixtures.ts +205 -0
- package/src/test/fixtures/wallet/transactions/helpers.ts +116 -0
- package/src/test/fixtures/wallet/transactions/index.ts +2 -0
- package/src/test/fixtures/wallet/walletConnect.ts +18 -0
- package/src/test/mockFn.ts +39 -0
- package/src/test/mocks/gql/index.ts +1 -0
- package/src/test/mocks/gql/mocks.ts +90 -0
- package/src/test/mocks/gql/provider.tsx +49 -0
- package/src/test/mocks/gql/resolvers.ts +19 -0
- package/src/test/mocks/index.ts +2 -0
- package/src/test/mocks/locale.ts +114 -0
- package/src/test/mocks/mockSharedPersistQueryClientProvider.tsx +12 -0
- package/src/test/mocks/uniqueId.ts +5 -0
- package/src/test/render.tsx +189 -0
- package/src/test/shared.ts +9 -0
- package/src/test/test-utils.ts +6 -0
- package/src/test/utils/array.ts +31 -0
- package/src/test/utils/factory.ts +142 -0
- package/src/test/utils/index.ts +4 -0
- package/src/test/utils/random.ts +37 -0
- package/src/test/utils/resolvers.ts +142 -0
- package/src/test-shorthands.ts +14 -0
- package/src/types/RenderPassReport.ts +57 -0
- package/src/types/currency.ts +6 -0
- package/src/types/limits.ts +6 -0
- package/src/types/onboarding.ts +18 -0
- package/src/types/screens/extension.ts +50 -0
- package/src/types/screens/interface.ts +7 -0
- package/src/types/screens/mobile.ts +124 -0
- package/src/types/sharing.ts +6 -0
- package/src/types/walletConnect.ts +143 -0
- package/src/types/widgets.ts +9 -0
- package/src/utils/addresses.test.ts +65 -0
- package/src/utils/addresses.ts +213 -0
- package/src/utils/approvals.test.ts +40 -0
- package/src/utils/approvals.ts +13 -0
- package/src/utils/balances.ts +14 -0
- package/src/utils/clipboard.native.ts +71 -0
- package/src/utils/clipboard.ts +34 -0
- package/src/utils/cloud-backup/getCloudProviderName.native.ts +12 -0
- package/src/utils/cloud-backup/getCloudProviderName.ts +8 -0
- package/src/utils/colors.test.ts +31 -0
- package/src/utils/colors.tsx +127 -0
- package/src/utils/createTransactionId.ts +5 -0
- package/src/utils/currency.test.ts +40 -0
- package/src/utils/currency.ts +97 -0
- package/src/utils/currencyId.test.ts +130 -0
- package/src/utils/currencyId.ts +221 -0
- package/src/utils/datadog.native.ts +5 -0
- package/src/utils/datadog.ts +5 -0
- package/src/utils/datadog.web.ts +159 -0
- package/src/utils/isWSOL.test.ts +38 -0
- package/src/utils/isWSOL.ts +17 -0
- package/src/utils/link.native.ts +9 -0
- package/src/utils/link.ts +9 -0
- package/src/utils/link.web.ts +7 -0
- package/src/utils/linking.test.ts +61 -0
- package/src/utils/linking.ts +300 -0
- package/src/utils/number.test.ts +44 -0
- package/src/utils/number.ts +17 -0
- package/src/utils/polling.test.ts +118 -0
- package/src/utils/polling.ts +86 -0
- package/src/utils/routingDiagram/routingProviders/jupiterRoutingProvider.test.ts +241 -0
- package/src/utils/routingDiagram/routingProviders/jupiterRoutingProvider.ts +128 -0
- package/src/utils/routingDiagram/routingProviders/luxRoutingProvider.test.ts +450 -0
- package/src/utils/routingDiagram/routingProviders/luxRoutingProvider.ts +127 -0
- package/src/utils/routingDiagram/routingRegistry.ts +58 -0
- package/src/utils/routingDiagram/types.ts +35 -0
- package/src/utils/saga.ts +275 -0
- package/src/utils/search/doesTokenMatchSearchTerm.test.ts +419 -0
- package/src/utils/search/doesTokenMatchSearchTerm.ts +37 -0
- package/src/utils/search/getPossibleChainMatchFromSearchWord.test.ts +437 -0
- package/src/utils/search/getPossibleChainMatchFromSearchWord.ts +47 -0
- package/src/utils/search/parseChainFromTokenSearchQuery.test.ts +138 -0
- package/src/utils/search/parseChainFromTokenSearchQuery.ts +70 -0
- package/src/utils/useKeyboardLayout.android.test.ts +70 -0
- package/src/utils/useKeyboardLayout.ios.test.ts +87 -0
- package/src/utils/useKeyboardLayout.native.ts +42 -0
- package/src/utils/useKeyboardLayout.ts +7 -0
- package/src/utils/useKeyboardLayout.web.ts +6 -0
- package/src/utils/usePlatformBasedFetchPolicy.ts +19 -0
- package/src/utils/usePlatformBasedValue.native.ts +5 -0
- package/src/utils/usePlatformBasedValue.ts +33 -0
- package/tsconfig.eslint.json +6 -0
- package/tsconfig.json +43 -0
- package/vitest-package-mocks.ts +76 -0
- package/vitest-setup.ts +246 -0
- package/vitest.config.ts +86 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { ForceUpgradeTranslations } from '@luxexchange/gating'
|
|
2
|
+
import { useMemo } from 'react'
|
|
3
|
+
import { useTranslation } from 'react-i18next'
|
|
4
|
+
import { useSelector } from 'react-redux'
|
|
5
|
+
import { AppTFunction } from '@luxfi/ui/src/i18n/types'
|
|
6
|
+
import { useUrlContext } from '@luxexchange/lx/src/contexts/UrlContext'
|
|
7
|
+
import { Language, Locale } from '@luxexchange/lx/src/features/language/constants'
|
|
8
|
+
import { getLocale, parseLocale } from '@luxexchange/lx/src/features/language/navigatorLocale'
|
|
9
|
+
import { selectCurrentLanguage } from '@luxexchange/lx/src/features/settings/selectors'
|
|
10
|
+
import { isWebApp } from '@luxfi/utilities/src/platform'
|
|
11
|
+
|
|
12
|
+
export type LanguageInfo = {
|
|
13
|
+
displayName: string
|
|
14
|
+
originName: string // name of language in that language
|
|
15
|
+
loggingName: string // internal only name to be used in logging
|
|
16
|
+
locale: Locale
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Returns all relevant info for the target language, including the translated name of
|
|
21
|
+
* that language in that language (not a typo).
|
|
22
|
+
* @param language target language
|
|
23
|
+
* @returns all relevant language info
|
|
24
|
+
*/
|
|
25
|
+
export function getLanguageInfo(t: AppTFunction, language: Language): LanguageInfo {
|
|
26
|
+
const languageToLanguageInfo: Record<Language, LanguageInfo> = {
|
|
27
|
+
[Language.ChineseSimplified]: {
|
|
28
|
+
displayName: t('language.chineseSimplified'),
|
|
29
|
+
originName: t('language.chineseSimplified', { lng: getLocale(Language.ChineseSimplified) }),
|
|
30
|
+
loggingName: 'Chinese, Simplified',
|
|
31
|
+
locale: getLocale(Language.ChineseSimplified),
|
|
32
|
+
},
|
|
33
|
+
[Language.ChineseTraditional]: {
|
|
34
|
+
displayName: t('language.chineseTraditional'),
|
|
35
|
+
originName: t('language.chineseTraditional', {
|
|
36
|
+
lng: getLocale(Language.ChineseTraditional),
|
|
37
|
+
}),
|
|
38
|
+
loggingName: 'Chinese, Traditional',
|
|
39
|
+
locale: getLocale(Language.ChineseTraditional),
|
|
40
|
+
},
|
|
41
|
+
[Language.Dutch]: {
|
|
42
|
+
displayName: t('language.dutch'),
|
|
43
|
+
originName: t('language.dutch', { lng: getLocale(Language.Dutch) }),
|
|
44
|
+
loggingName: 'Dutch',
|
|
45
|
+
locale: getLocale(Language.Dutch),
|
|
46
|
+
},
|
|
47
|
+
[Language.English]: {
|
|
48
|
+
displayName: t('language.english'),
|
|
49
|
+
originName: t('language.english', { lng: getLocale(Language.English) }),
|
|
50
|
+
loggingName: 'English',
|
|
51
|
+
locale: getLocale(Language.English),
|
|
52
|
+
},
|
|
53
|
+
[Language.French]: {
|
|
54
|
+
displayName: t('language.french'),
|
|
55
|
+
originName: t('language.french', { lng: getLocale(Language.French) }),
|
|
56
|
+
loggingName: 'French',
|
|
57
|
+
locale: getLocale(Language.French),
|
|
58
|
+
},
|
|
59
|
+
[Language.Indonesian]: {
|
|
60
|
+
displayName: t('language.indonesian'),
|
|
61
|
+
originName: t('language.indonesian', { lng: getLocale(Language.Indonesian) }),
|
|
62
|
+
loggingName: 'Indonesian',
|
|
63
|
+
locale: getLocale(Language.Indonesian),
|
|
64
|
+
},
|
|
65
|
+
[Language.Japanese]: {
|
|
66
|
+
displayName: t('language.japanese'),
|
|
67
|
+
originName: t('language.japanese', { lng: getLocale(Language.Japanese) }),
|
|
68
|
+
loggingName: 'Japanese',
|
|
69
|
+
locale: getLocale(Language.Japanese),
|
|
70
|
+
},
|
|
71
|
+
[Language.Korean]: {
|
|
72
|
+
displayName: t('language.korean'),
|
|
73
|
+
originName: t('language.korean', { lng: getLocale(Language.Korean) }),
|
|
74
|
+
loggingName: 'Korean',
|
|
75
|
+
locale: getLocale(Language.Korean),
|
|
76
|
+
},
|
|
77
|
+
[Language.Portuguese]: {
|
|
78
|
+
displayName: t('language.portuguese'),
|
|
79
|
+
originName: t('language.portuguese', { lng: getLocale(Language.Portuguese) }),
|
|
80
|
+
loggingName: 'Portuguese',
|
|
81
|
+
locale: getLocale(Language.Portuguese),
|
|
82
|
+
},
|
|
83
|
+
[Language.Russian]: {
|
|
84
|
+
displayName: t('language.russian'),
|
|
85
|
+
originName: t('language.russian', { lng: getLocale(Language.Russian) }),
|
|
86
|
+
loggingName: 'Russian',
|
|
87
|
+
locale: getLocale(Language.Russian),
|
|
88
|
+
},
|
|
89
|
+
[Language.SpanishSpain]: {
|
|
90
|
+
displayName: t('language.spanishSpain'),
|
|
91
|
+
originName: t('language.spanishSpain', { lng: getLocale(Language.SpanishSpain) }),
|
|
92
|
+
loggingName: 'Spanish (Spain)',
|
|
93
|
+
locale: getLocale(Language.SpanishSpain),
|
|
94
|
+
},
|
|
95
|
+
[Language.SpanishLatam]: {
|
|
96
|
+
displayName: t('language.spanishLatam'),
|
|
97
|
+
originName: t('language.spanishLatam', { lng: getLocale(Language.SpanishLatam) }),
|
|
98
|
+
loggingName: 'Spanish (Latin America)',
|
|
99
|
+
locale: getLocale(Language.SpanishLatam),
|
|
100
|
+
},
|
|
101
|
+
[Language.SpanishBelize]: {
|
|
102
|
+
displayName: t('language.spanishBelize'),
|
|
103
|
+
originName: t('language.spanishBelize', { lng: getLocale(Language.SpanishBelize) }),
|
|
104
|
+
loggingName: 'Spanish (Belize)',
|
|
105
|
+
locale: getLocale(Language.SpanishBelize),
|
|
106
|
+
},
|
|
107
|
+
[Language.SpanishCuba]: {
|
|
108
|
+
displayName: t('language.spanishCuba'),
|
|
109
|
+
originName: t('language.spanishCuba', { lng: getLocale(Language.SpanishCuba) }),
|
|
110
|
+
loggingName: 'Spanish (Cuba)',
|
|
111
|
+
locale: getLocale(Language.SpanishCuba),
|
|
112
|
+
},
|
|
113
|
+
[Language.SpanishDominicanRepublic]: {
|
|
114
|
+
displayName: t('language.spanishDominicanRepublic'),
|
|
115
|
+
originName: t('language.spanishDominicanRepublic', { lng: getLocale(Language.SpanishDominicanRepublic) }),
|
|
116
|
+
loggingName: 'Spanish (Dominican Republic)',
|
|
117
|
+
locale: getLocale(Language.SpanishDominicanRepublic),
|
|
118
|
+
},
|
|
119
|
+
[Language.SpanishGuatemala]: {
|
|
120
|
+
displayName: t('language.spanishGuatemala'),
|
|
121
|
+
originName: t('language.spanishGuatemala', { lng: getLocale(Language.SpanishGuatemala) }),
|
|
122
|
+
loggingName: 'Spanish (Guatemala)',
|
|
123
|
+
locale: getLocale(Language.SpanishGuatemala),
|
|
124
|
+
},
|
|
125
|
+
[Language.SpanishHonduras]: {
|
|
126
|
+
displayName: t('language.spanishHonduras'),
|
|
127
|
+
originName: t('language.spanishHonduras', { lng: getLocale(Language.SpanishHonduras) }),
|
|
128
|
+
loggingName: 'Spanish (Honduras)',
|
|
129
|
+
locale: getLocale(Language.SpanishHonduras),
|
|
130
|
+
},
|
|
131
|
+
[Language.SpanishMexico]: {
|
|
132
|
+
displayName: t('language.spanishMexico'),
|
|
133
|
+
originName: t('language.spanishMexico', { lng: getLocale(Language.SpanishMexico) }),
|
|
134
|
+
loggingName: 'Spanish (Mexico)',
|
|
135
|
+
locale: getLocale(Language.SpanishMexico),
|
|
136
|
+
},
|
|
137
|
+
[Language.SpanishNicaragua]: {
|
|
138
|
+
displayName: t('language.spanishNicaragua'),
|
|
139
|
+
originName: t('language.spanishNicaragua', { lng: getLocale(Language.SpanishNicaragua) }),
|
|
140
|
+
loggingName: 'Spanish (Nicaragua)',
|
|
141
|
+
locale: getLocale(Language.SpanishNicaragua),
|
|
142
|
+
},
|
|
143
|
+
[Language.SpanishPanama]: {
|
|
144
|
+
displayName: t('language.spanishPanama'),
|
|
145
|
+
originName: t('language.spanishPanama', { lng: getLocale(Language.SpanishPanama) }),
|
|
146
|
+
loggingName: 'Spanish (Panama)',
|
|
147
|
+
locale: getLocale(Language.SpanishPanama),
|
|
148
|
+
},
|
|
149
|
+
[Language.SpanishPeru]: {
|
|
150
|
+
displayName: t('language.spanishPeru'),
|
|
151
|
+
originName: t('language.spanishPeru', { lng: getLocale(Language.SpanishPeru) }),
|
|
152
|
+
loggingName: 'Spanish (Peru)',
|
|
153
|
+
locale: getLocale(Language.SpanishPeru),
|
|
154
|
+
},
|
|
155
|
+
[Language.SpanishPuertoRico]: {
|
|
156
|
+
displayName: t('language.spanishPuertoRico'),
|
|
157
|
+
originName: t('language.spanishPuertoRico', { lng: getLocale(Language.SpanishPuertoRico) }),
|
|
158
|
+
loggingName: 'Spanish (Puerto Rico)',
|
|
159
|
+
locale: getLocale(Language.SpanishPuertoRico),
|
|
160
|
+
},
|
|
161
|
+
[Language.SpanishElSalvador]: {
|
|
162
|
+
displayName: t('language.spanishElSalvador'),
|
|
163
|
+
originName: t('language.spanishElSalvador', { lng: getLocale(Language.SpanishElSalvador) }),
|
|
164
|
+
loggingName: 'Spanish (El Salvador)',
|
|
165
|
+
locale: getLocale(Language.SpanishElSalvador),
|
|
166
|
+
},
|
|
167
|
+
[Language.SpanishUnitedStates]: {
|
|
168
|
+
displayName: t('language.spanishUs'),
|
|
169
|
+
originName: t('language.spanishUs', { lng: getLocale(Language.SpanishUnitedStates) }),
|
|
170
|
+
loggingName: 'Spanish (US)',
|
|
171
|
+
locale: getLocale(Language.SpanishUnitedStates),
|
|
172
|
+
},
|
|
173
|
+
[Language.SpanishArgentina]: {
|
|
174
|
+
displayName: t('language.spanishArgentina'),
|
|
175
|
+
originName: t('language.spanishArgentina', { lng: getLocale(Language.SpanishArgentina) }),
|
|
176
|
+
loggingName: 'Spanish (Argentina)',
|
|
177
|
+
locale: getLocale(Language.SpanishArgentina),
|
|
178
|
+
},
|
|
179
|
+
[Language.SpanishBolivia]: {
|
|
180
|
+
displayName: t('language.spanishBolivia'),
|
|
181
|
+
originName: t('language.spanishBolivia', { lng: getLocale(Language.SpanishBolivia) }),
|
|
182
|
+
loggingName: 'Spanish (Bolivia)',
|
|
183
|
+
locale: getLocale(Language.SpanishBolivia),
|
|
184
|
+
},
|
|
185
|
+
[Language.SpanishChile]: {
|
|
186
|
+
displayName: t('language.spanishChile'),
|
|
187
|
+
originName: t('language.spanishChile', { lng: getLocale(Language.SpanishChile) }),
|
|
188
|
+
loggingName: 'Spanish (Chile)',
|
|
189
|
+
locale: getLocale(Language.SpanishChile),
|
|
190
|
+
},
|
|
191
|
+
[Language.SpanishColombia]: {
|
|
192
|
+
displayName: t('language.spanishColombia'),
|
|
193
|
+
originName: t('language.spanishColombia', { lng: getLocale(Language.SpanishColombia) }),
|
|
194
|
+
loggingName: 'Spanish (Colombia)',
|
|
195
|
+
locale: getLocale(Language.SpanishColombia),
|
|
196
|
+
},
|
|
197
|
+
[Language.SpanishCostaRica]: {
|
|
198
|
+
displayName: t('language.spanishCostaRica'),
|
|
199
|
+
originName: t('language.spanishCostaRica', { lng: getLocale(Language.SpanishCostaRica) }),
|
|
200
|
+
loggingName: 'Spanish (Costa Rica)',
|
|
201
|
+
locale: getLocale(Language.SpanishCostaRica),
|
|
202
|
+
},
|
|
203
|
+
[Language.SpanishEcuador]: {
|
|
204
|
+
displayName: t('language.spanishEcuador'),
|
|
205
|
+
originName: t('language.spanishEcuador', { lng: getLocale(Language.SpanishEcuador) }),
|
|
206
|
+
loggingName: 'Spanish (Ecuador)',
|
|
207
|
+
locale: getLocale(Language.SpanishEcuador),
|
|
208
|
+
},
|
|
209
|
+
[Language.SpanishParaguay]: {
|
|
210
|
+
displayName: t('language.spanishParaguay'),
|
|
211
|
+
originName: t('language.spanishParaguay', { lng: getLocale(Language.SpanishParaguay) }),
|
|
212
|
+
loggingName: 'Spanish (Paraguay)',
|
|
213
|
+
locale: getLocale(Language.SpanishParaguay),
|
|
214
|
+
},
|
|
215
|
+
[Language.SpanishUruguay]: {
|
|
216
|
+
displayName: t('language.spanishUruguay'),
|
|
217
|
+
originName: t('language.spanishUruguay', { lng: getLocale(Language.SpanishUruguay) }),
|
|
218
|
+
loggingName: 'Spanish (Uruguay)',
|
|
219
|
+
locale: getLocale(Language.SpanishUruguay),
|
|
220
|
+
},
|
|
221
|
+
[Language.SpanishVenezuela]: {
|
|
222
|
+
displayName: t('language.spanishVenezuela'),
|
|
223
|
+
originName: t('language.spanishVenezuela', { lng: getLocale(Language.SpanishVenezuela) }),
|
|
224
|
+
loggingName: 'Spanish (Venezuela)',
|
|
225
|
+
locale: getLocale(Language.SpanishVenezuela),
|
|
226
|
+
},
|
|
227
|
+
[Language.Turkish]: {
|
|
228
|
+
displayName: t('language.turkish'),
|
|
229
|
+
originName: t('language.turkish', { lng: getLocale(Language.Turkish) }),
|
|
230
|
+
loggingName: 'Turkish',
|
|
231
|
+
locale: getLocale(Language.Turkish),
|
|
232
|
+
},
|
|
233
|
+
[Language.Vietnamese]: {
|
|
234
|
+
displayName: t('language.vietnamese'),
|
|
235
|
+
originName: t('language.vietnamese', { lng: getLocale(Language.Vietnamese) }),
|
|
236
|
+
loggingName: 'Vietnamese',
|
|
237
|
+
locale: getLocale(Language.Vietnamese),
|
|
238
|
+
},
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
return languageToLanguageInfo[language]
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Language
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Hook used to get the currently selected language for the app
|
|
248
|
+
* @returns currently selected language enum
|
|
249
|
+
*/
|
|
250
|
+
export function useCurrentLanguage(): Language {
|
|
251
|
+
return useSelector(selectCurrentLanguage)
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export function useLanguageInfo(language: Language): LanguageInfo {
|
|
255
|
+
const { t } = useTranslation()
|
|
256
|
+
return getLanguageInfo(t, language)
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Hook used to get all relevant info for the currently selected language in the app
|
|
261
|
+
* @returns all relevant language info
|
|
262
|
+
*/
|
|
263
|
+
export function useCurrentLanguageInfo(): LanguageInfo {
|
|
264
|
+
const currentLanguage = useCurrentLanguage()
|
|
265
|
+
return useLanguageInfo(currentLanguage)
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
type SupportedLocale = keyof ForceUpgradeTranslations
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Retrieves the Statsig key for a given locale from the i18n resources.
|
|
272
|
+
* @returns The Statsig key if available, otherwise null.
|
|
273
|
+
*/
|
|
274
|
+
export function useLocalizedStatsigLanguage(): SupportedLocale | null {
|
|
275
|
+
const { i18n } = useTranslation()
|
|
276
|
+
const parsedLocale = parseLocale(i18n.resolvedLanguage)
|
|
277
|
+
const resources = i18n.services.backendConnector.options.resources as Record<string, { statsigKey?: SupportedLocale }>
|
|
278
|
+
|
|
279
|
+
if (typeof parsedLocale !== 'string' || !(parsedLocale in resources)) {
|
|
280
|
+
return null
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
return resources[parsedLocale]?.statsigKey ?? null
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Hook used to get the locale for the currently selected language in the app
|
|
288
|
+
* @returns locale for the currently selected language
|
|
289
|
+
*/
|
|
290
|
+
export function useCurrentLocale(): Locale {
|
|
291
|
+
const { useParsedQueryString } = useUrlContext()
|
|
292
|
+
const parsedQueryString = useParsedQueryString()
|
|
293
|
+
const urlLocale = parseLocale(parsedQueryString['lng'])
|
|
294
|
+
const currentLanguage = useCurrentLanguage()
|
|
295
|
+
const currentLocale = getLocale(currentLanguage)
|
|
296
|
+
|
|
297
|
+
return useMemo(() => {
|
|
298
|
+
if (isWebApp) {
|
|
299
|
+
return urlLocale ?? currentLocale
|
|
300
|
+
} else {
|
|
301
|
+
return currentLocale
|
|
302
|
+
}
|
|
303
|
+
}, [urlLocale, currentLocale])
|
|
304
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import dayjs, { Dayjs } from 'dayjs'
|
|
2
|
+
import localizedFormat from 'dayjs/plugin/localizedFormat'
|
|
3
|
+
|
|
4
|
+
import 'dayjs/locale/en'
|
|
5
|
+
import 'dayjs/locale/es'
|
|
6
|
+
import 'dayjs/locale/fr'
|
|
7
|
+
import 'dayjs/locale/id'
|
|
8
|
+
import 'dayjs/locale/ja'
|
|
9
|
+
import 'dayjs/locale/nl'
|
|
10
|
+
import 'dayjs/locale/pt'
|
|
11
|
+
import 'dayjs/locale/ru'
|
|
12
|
+
import 'dayjs/locale/tr'
|
|
13
|
+
import 'dayjs/locale/vi'
|
|
14
|
+
import 'dayjs/locale/zh-cn'
|
|
15
|
+
import 'dayjs/locale/zh-tw'
|
|
16
|
+
import { Locale } from '@luxexchange/lx/src/features/language/constants'
|
|
17
|
+
import { useCurrentLanguageInfo } from '@luxexchange/lx/src/features/language/hooks'
|
|
18
|
+
|
|
19
|
+
dayjs.extend(localizedFormat)
|
|
20
|
+
|
|
21
|
+
export type DateFormat = 'l' | 'll' | 'LL'
|
|
22
|
+
export const FORMAT_DATE_SHORT: DateFormat = 'l' // M/D/YYYY e.g. 8/16/2018
|
|
23
|
+
export const FORMAT_DATE_MEDIUM: DateFormat = 'll' // MMM D, YYYY e.g. Aug 16, 2018
|
|
24
|
+
export const FORMAT_DATE_LONG: DateFormat = 'LL' // MMMM D, YYYY e.g. August 16, 2018
|
|
25
|
+
export const FORMAT_DATE_MONTH = 'MMMM' // January-December
|
|
26
|
+
export const FORMAT_DATE_MONTH_YEAR = 'MMMM YYYY'
|
|
27
|
+
export const FORMAT_DATE_MONTH_DAY = 'MMM D' // Jan-Dec 1-31
|
|
28
|
+
|
|
29
|
+
export type TimeFormat = 'LT' | 'LTS'
|
|
30
|
+
export const FORMAT_TIME_SHORT: TimeFormat = 'LT' // h:mm A e.g. 8:02 PM
|
|
31
|
+
export const FORMAT_TIME_MEDIUM: TimeFormat = 'LTS' // h:mm:ss A e.g. 8:02:18 PM
|
|
32
|
+
|
|
33
|
+
export type DateTimeFormat = 'lll' | 'LLL' | 'llll' | 'LLLL'
|
|
34
|
+
export const FORMAT_DATE_TIME_SHORT = 'lll' // MMM D, YYYY h:mm A e.g. Aug 16, 2018 8:02 PM
|
|
35
|
+
export const FORMAT_DATE_TIME_MEDIUM = 'LLL' // MMMM D, YYYY h:mm A e.g. August 16, 2018 8:02 PM
|
|
36
|
+
export const FORMAT_DATE_TIME_LONG = 'llll' // ddd, MMM D, YYYY h:mm A e.g. Thu, Aug 16, 2018 8:02 PM
|
|
37
|
+
export const FORMAT_DATE_TIME_FULL = 'LLLL' // dddd, MMMM D, YYYY h:mm A e.g. Thursday, August 16, 2018 8:02 PM
|
|
38
|
+
|
|
39
|
+
export type LocalizedDayjs = typeof dayjs
|
|
40
|
+
|
|
41
|
+
// Supported ones found here https://github.com/iamkun/dayjs/tree/dev/src/locale
|
|
42
|
+
const mapLocaleToSupportedDayjsLocale: Record<Locale, string> = {
|
|
43
|
+
[Locale.ChineseSimplified]: 'zh-cn',
|
|
44
|
+
[Locale.ChineseTraditional]: 'zh-tw',
|
|
45
|
+
[Locale.DutchNetherlands]: 'nl',
|
|
46
|
+
[Locale.EnglishUnitedStates]: 'en-us',
|
|
47
|
+
[Locale.FrenchFrance]: 'fr',
|
|
48
|
+
[Locale.IndonesianIndonesia]: 'id',
|
|
49
|
+
[Locale.JapaneseJapan]: 'ja',
|
|
50
|
+
[Locale.KoreanKorea]: 'ko',
|
|
51
|
+
[Locale.PortugueseBrazil]: 'pt-br',
|
|
52
|
+
[Locale.PortuguesePortugal]: 'pt',
|
|
53
|
+
[Locale.RussianRussia]: 'ru',
|
|
54
|
+
[Locale.SpanishSpain]: 'es-es',
|
|
55
|
+
[Locale.SpanishLatam]: 'es-mx',
|
|
56
|
+
[Locale.SpanishArgentina]: 'es-mx',
|
|
57
|
+
[Locale.SpanishBelize]: 'es-mx',
|
|
58
|
+
[Locale.SpanishBolivia]: 'es-mx',
|
|
59
|
+
[Locale.SpanishChile]: 'es-mx',
|
|
60
|
+
[Locale.SpanishColombia]: 'es-mx',
|
|
61
|
+
[Locale.SpanishCostaRica]: 'es-mx',
|
|
62
|
+
[Locale.SpanishCuba]: 'es-mx',
|
|
63
|
+
[Locale.SpanishDominicanRepublic]: 'es-mx',
|
|
64
|
+
[Locale.SpanishEcuador]: 'es-mx',
|
|
65
|
+
[Locale.SpanishElSalvador]: 'es-mx',
|
|
66
|
+
[Locale.SpanishGuatemala]: 'es-mx',
|
|
67
|
+
[Locale.SpanishHonduras]: 'es-mx',
|
|
68
|
+
[Locale.SpanishMexico]: 'es-mx',
|
|
69
|
+
[Locale.SpanishNicaragua]: 'es-mx',
|
|
70
|
+
[Locale.SpanishPanama]: 'es-mx',
|
|
71
|
+
[Locale.SpanishParaguay]: 'es-mx',
|
|
72
|
+
[Locale.SpanishPeru]: 'es-mx',
|
|
73
|
+
[Locale.SpanishPuertoRico]: 'es-mx',
|
|
74
|
+
[Locale.SpanishUruguay]: 'es-mx',
|
|
75
|
+
[Locale.SpanishVenezuela]: 'es-mx',
|
|
76
|
+
[Locale.SpanishUnitedStates]: 'es-us',
|
|
77
|
+
[Locale.TurkishTurkey]: 'tr',
|
|
78
|
+
[Locale.VietnameseVietnam]: 'vi',
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Utility hook to ensure that the date formatted by dayjs is up to date with the current locale.
|
|
83
|
+
* Does not currently lead to rerender when language is changed, but this isn't needed when language is controlled
|
|
84
|
+
* in system settings.s
|
|
85
|
+
* @returns dayjs instance for ease of use, same as instance imported from library
|
|
86
|
+
*/
|
|
87
|
+
export function useLocalizedDayjs(): LocalizedDayjs {
|
|
88
|
+
const { locale } = useCurrentLanguageInfo()
|
|
89
|
+
dayjs.locale(mapLocaleToSupportedDayjsLocale[locale])
|
|
90
|
+
return dayjs
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function useFormattedDate(date: Dayjs, format: DateFormat): string {
|
|
94
|
+
const { locale } = useCurrentLanguageInfo()
|
|
95
|
+
return date.locale(mapLocaleToSupportedDayjsLocale[locale]).format(format).toString()
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function useFormattedTime(date: Dayjs, format: TimeFormat): string {
|
|
99
|
+
const { locale } = useCurrentLanguageInfo()
|
|
100
|
+
return date.locale(mapLocaleToSupportedDayjsLocale[locale]).format(format).toString()
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function useFormattedDateTime(date: Dayjs, format: DateTimeFormat): string {
|
|
104
|
+
const { locale } = useCurrentLanguageInfo()
|
|
105
|
+
return date.locale(locale).format(format).toString()
|
|
106
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Language,
|
|
3
|
+
Locale,
|
|
4
|
+
mapLanguageToLocale,
|
|
5
|
+
PLATFORM_SUPPORTED_LANGUAGES,
|
|
6
|
+
} from '@luxexchange/lx/src/features/language/constants'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Helper function used get the locale from the language. They're strongly associated,
|
|
10
|
+
* but they have different ISO values and are used differently. Locale is what's mainly
|
|
11
|
+
* used for integrations with other libraries, while language is more internal
|
|
12
|
+
* @param language target language
|
|
13
|
+
* @returns associated locale
|
|
14
|
+
*/
|
|
15
|
+
export function getLocale(language: Language): Locale {
|
|
16
|
+
return mapLanguageToLocale[language]
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Given a locale string (e.g. from user agent), return the best match for corresponding Locale enum object
|
|
21
|
+
* @param maybeSupportedLocale the fuzzy locale identifier
|
|
22
|
+
*/
|
|
23
|
+
export function parseLocale(maybeSupportedLocale: unknown): Locale | undefined {
|
|
24
|
+
if (typeof maybeSupportedLocale !== 'string') {
|
|
25
|
+
return undefined
|
|
26
|
+
}
|
|
27
|
+
const lowerMaybeSupportedLocale = maybeSupportedLocale.toLowerCase()
|
|
28
|
+
return PLATFORM_SUPPORTED_LANGUAGES.map((lang) => getLocale(lang)).find(
|
|
29
|
+
(locale) =>
|
|
30
|
+
locale.toLowerCase() === lowerMaybeSupportedLocale || locale.split('-')[0] === lowerMaybeSupportedLocale,
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Returns the supported locale read from the user agent (navigator)
|
|
36
|
+
*/
|
|
37
|
+
export function navigatorLocale(): Locale | undefined {
|
|
38
|
+
if (!navigator.language) {
|
|
39
|
+
return undefined
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const [language, region] = navigator.language.split('-')
|
|
43
|
+
|
|
44
|
+
if (region) {
|
|
45
|
+
return parseLocale(`${language}-${region.toUpperCase()}`) ?? parseLocale(language)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return parseLocale(language)
|
|
49
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Language, mapLocaleToLanguage } from '@luxexchange/lx/src/features/language/constants'
|
|
2
|
+
import { navigatorLocale } from '@luxexchange/lx/src/features/language/navigatorLocale'
|
|
3
|
+
|
|
4
|
+
// Determines the current language based on the user's locale settings, falling back to English if no mapping exists.
|
|
5
|
+
export function getCurrentLanguageFromNavigator(): Language {
|
|
6
|
+
const locale = navigatorLocale()
|
|
7
|
+
return locale ? mapLocaleToLanguage[locale] : Language.English
|
|
8
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useMemo } from 'react'
|
|
2
|
+
import { useSelector } from 'react-redux'
|
|
3
|
+
import { NFTItem } from '@luxexchange/lx/src/features/nfts/types'
|
|
4
|
+
import { buildNftsArray, getIsNftHidden } from '@luxexchange/lx/src/features/nfts/utils'
|
|
5
|
+
import { selectNftsVisibility } from '@luxexchange/lx/src/features/visibility/selectors'
|
|
6
|
+
|
|
7
|
+
// Apply to NFTs fetched from API hidden filter, which is stored in Redux
|
|
8
|
+
export function useGroupNftsByVisibility({
|
|
9
|
+
nftDataItems,
|
|
10
|
+
showHidden,
|
|
11
|
+
allPagesFetched,
|
|
12
|
+
}: {
|
|
13
|
+
nftDataItems: Array<NFTItem> | undefined
|
|
14
|
+
showHidden: boolean
|
|
15
|
+
allPagesFetched: boolean
|
|
16
|
+
}): {
|
|
17
|
+
nfts: Array<NFTItem | string>
|
|
18
|
+
numHidden: number
|
|
19
|
+
numShown: number
|
|
20
|
+
hiddenNfts: NFTItem[]
|
|
21
|
+
shownNfts: NFTItem[]
|
|
22
|
+
} {
|
|
23
|
+
const nftVisibility = useSelector(selectNftsVisibility)
|
|
24
|
+
return useMemo(() => {
|
|
25
|
+
const { shown, hidden } = (nftDataItems ?? []).reduce<{
|
|
26
|
+
shown: NFTItem[]
|
|
27
|
+
hidden: NFTItem[]
|
|
28
|
+
}>(
|
|
29
|
+
(acc, item) => {
|
|
30
|
+
const isNftHidden = getIsNftHidden({
|
|
31
|
+
contractAddress: item.contractAddress,
|
|
32
|
+
tokenId: item.tokenId,
|
|
33
|
+
isSpam: item.isSpam,
|
|
34
|
+
nftVisibility,
|
|
35
|
+
})
|
|
36
|
+
if (isNftHidden) {
|
|
37
|
+
acc.hidden.push(item)
|
|
38
|
+
} else {
|
|
39
|
+
acc.shown.push(item)
|
|
40
|
+
}
|
|
41
|
+
return acc
|
|
42
|
+
},
|
|
43
|
+
{ shown: [], hidden: [] },
|
|
44
|
+
)
|
|
45
|
+
return {
|
|
46
|
+
nfts: buildNftsArray({
|
|
47
|
+
shownNfts: shown,
|
|
48
|
+
hiddenNfts: hidden,
|
|
49
|
+
showHidden,
|
|
50
|
+
allPagesFetched,
|
|
51
|
+
}),
|
|
52
|
+
numHidden: hidden.length,
|
|
53
|
+
numShown: shown.length,
|
|
54
|
+
hiddenNfts: hidden,
|
|
55
|
+
shownNfts: shown,
|
|
56
|
+
}
|
|
57
|
+
}, [nftDataItems, nftVisibility, showHidden, allPagesFetched])
|
|
58
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GqlResult, GraphQLApi } from '@luxfi/api'
|
|
2
|
+
import { useMemo } from 'react'
|
|
3
|
+
import { PollingInterval } from '@luxexchange/lx/src/constants/misc'
|
|
4
|
+
import { GQLNftAsset } from '@luxexchange/lx/src/features/nfts/types'
|
|
5
|
+
|
|
6
|
+
export function useNFT({
|
|
7
|
+
owner = '',
|
|
8
|
+
address,
|
|
9
|
+
tokenId,
|
|
10
|
+
}: {
|
|
11
|
+
owner?: Address
|
|
12
|
+
address?: Address
|
|
13
|
+
tokenId?: string
|
|
14
|
+
}): GqlResult<GQLNftAsset> {
|
|
15
|
+
// TODO: [MOB-227] do a direct cache lookup in Apollo using id instead of re-querying
|
|
16
|
+
const { data, loading, refetch } = GraphQLApi.useNftsQuery({
|
|
17
|
+
variables: { ownerAddress: owner },
|
|
18
|
+
pollInterval: PollingInterval.Slow,
|
|
19
|
+
skip: !owner,
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
const nft = useMemo(
|
|
23
|
+
() =>
|
|
24
|
+
data?.portfolios?.[0]?.nftBalances?.find(
|
|
25
|
+
(balance) => balance?.ownedAsset?.nftContract?.address === address && balance?.ownedAsset?.tokenId === tokenId,
|
|
26
|
+
)?.ownedAsset ?? undefined,
|
|
27
|
+
[data, address, tokenId],
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
return { data: nft, loading, refetch }
|
|
31
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NavigateToNftItemArgs } from '@luxexchange/lx/src/contexts/LuxContext'
|
|
2
|
+
import { getNftExplorerLink, openUri } from '@luxexchange/lx/src/utils/linking'
|
|
3
|
+
import { useEvent } from '@luxfi/utilities/src/react/hooks'
|
|
4
|
+
|
|
5
|
+
export function useNavigateToNftExplorerLink(): (args: NavigateToNftItemArgs) => void {
|
|
6
|
+
return useEvent((args: NavigateToNftItemArgs): Promise<void> => openUri({ uri: getNftExplorerLink(args) }))
|
|
7
|
+
}
|