@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,473 @@
|
|
|
1
|
+
import { TradingApi } from '@luxfi/api'
|
|
2
|
+
import { FeatureFlags, useFeatureFlag } from '@luxfi/gating'
|
|
3
|
+
import type { TFunction } from 'i18next'
|
|
4
|
+
import type { ReactNode } from 'react'
|
|
5
|
+
import { useCallback, useState } from 'react'
|
|
6
|
+
import { Trans, useTranslation } from 'react-i18next'
|
|
7
|
+
import { Flex, type FlexProps, HeightAnimator, Switch, Text, TouchableArea, DEXText, useSporeColors } from '@luxfi/ui/src'
|
|
8
|
+
import { InfoCircleFilled } from '@luxfi/ui/src/components/icons/InfoCircleFilled'
|
|
9
|
+
import { Lightning } from '@luxfi/ui/src/components/icons/Lightning'
|
|
10
|
+
import { DEX } from '@luxfi/ui/src/components/icons/DEX'
|
|
11
|
+
import { spacing, zIndexes } from '@luxfi/ui/src/theme'
|
|
12
|
+
import { WarningSeverity } from '@luxexchange/lx/src/components/modals/WarningModal/types'
|
|
13
|
+
import { WarningInfo } from '@luxexchange/lx/src/components/modals/WarningModal/WarningInfo'
|
|
14
|
+
import { WarningModal } from '@luxexchange/lx/src/components/modals/WarningModal/WarningModal'
|
|
15
|
+
import { LearnMoreLink } from '@luxexchange/lx/src/components/text/LearnMoreLink'
|
|
16
|
+
import { InfoTooltip } from '@luxexchange/lx/src/components/tooltip/InfoTooltip'
|
|
17
|
+
import WarningIcon from '@luxexchange/lx/src/components/warnings/WarningIcon'
|
|
18
|
+
import { luxUrls } from '@luxexchange/lx/src/constants/urls'
|
|
19
|
+
import { useLuxContextSelector } from '@luxexchange/lx/src/contexts/LuxContext'
|
|
20
|
+
import { getChainInfo } from '@luxexchange/lx/src/features/chains/chainInfo'
|
|
21
|
+
import { ElementName, ModalName } from '@luxexchange/lx/src/features/telemetry/constants'
|
|
22
|
+
import Trace from '@luxexchange/lx/src/features/telemetry/Trace'
|
|
23
|
+
import { TransactionSettingsModalId } from '@luxexchange/lx/src/features/transactions/components/settings/stores/TransactionSettingsModalStore/createTransactionSettingsModalStore'
|
|
24
|
+
import { useModalHide } from '@luxexchange/lx/src/features/transactions/components/settings/stores/TransactionSettingsModalStore/useTransactionSettingsModalStore'
|
|
25
|
+
import {
|
|
26
|
+
useTransactionSettingsActions,
|
|
27
|
+
useTransactionSettingsStore,
|
|
28
|
+
} from '@luxexchange/lx/src/features/transactions/components/settings/stores/transactionSettingsStore/useTransactionSettingsStore'
|
|
29
|
+
import { isDefaultTradeRouteOptions } from '@luxexchange/lx/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/isDefaultTradeRouteOptions'
|
|
30
|
+
import { DEXInfo } from '@luxexchange/lx/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/DEXInfo'
|
|
31
|
+
import { V4HooksInfo } from '@luxexchange/lx/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/TradeRoutingPreference/V4HooksInfo'
|
|
32
|
+
import { useV4SwapEnabled } from '@luxexchange/lx/src/features/transactions/swap/hooks/useV4SwapEnabled'
|
|
33
|
+
import { useSwapFormStoreDerivedSwapInfo } from '@luxexchange/lx/src/features/transactions/swap/stores/swapFormStore/useSwapFormStore'
|
|
34
|
+
import type { FrontendSupportedProtocol } from '@luxexchange/lx/src/features/transactions/swap/utils/protocols'
|
|
35
|
+
import { DEFAULT_PROTOCOL_OPTIONS } from '@luxexchange/lx/src/features/transactions/swap/utils/protocols'
|
|
36
|
+
import { openUri } from '@luxexchange/lx/src/utils/linking'
|
|
37
|
+
import { isExtensionApp, isMobileApp, isMobileWeb, isWebApp, isWebPlatform } from '@luxfi/utilities/src/platform'
|
|
38
|
+
import { useEvent } from '@luxfi/utilities/src/react/hooks'
|
|
39
|
+
|
|
40
|
+
export function TradeRoutingPreferenceScreen(): JSX.Element {
|
|
41
|
+
const { t } = useTranslation()
|
|
42
|
+
const getIsDEXSupported = useLuxContextSelector((state) => state.getIsDEXSupported)
|
|
43
|
+
const { selectedProtocols, isV4HookPoolsEnabled } = useTransactionSettingsStore((s) => ({
|
|
44
|
+
selectedProtocols: s.selectedProtocols,
|
|
45
|
+
isV4HookPoolsEnabled: s.isV4HookPoolsEnabled,
|
|
46
|
+
}))
|
|
47
|
+
const { setSelectedProtocols, setIsV4HookPoolsEnabled, toggleProtocol } = useTransactionSettingsActions()
|
|
48
|
+
|
|
49
|
+
const [isDefault, setIsDefault] = useState(
|
|
50
|
+
isDefaultTradeRouteOptions({
|
|
51
|
+
selectedProtocols,
|
|
52
|
+
isV4HookPoolsEnabled,
|
|
53
|
+
}),
|
|
54
|
+
)
|
|
55
|
+
const dexEnabled = useFeatureFlag(FeatureFlags.DEX)
|
|
56
|
+
const allowDEXOnly = useFeatureFlag(FeatureFlags.AllowDEXOnlyRoutesInSwapSettings)
|
|
57
|
+
|
|
58
|
+
const chainId = useSwapFormStoreDerivedSwapInfo((s) => s.chainId)
|
|
59
|
+
const isDEXSupported = getIsDEXSupported?.(chainId)
|
|
60
|
+
const v4SwapEnabled = useV4SwapEnabled(chainId)
|
|
61
|
+
const chainName = getChainInfo(chainId).name
|
|
62
|
+
const restrictionDescription = t('swap.settings.protection.subtitle.unavailable', { chainName })
|
|
63
|
+
|
|
64
|
+
// We prevent the user from deselecting all options
|
|
65
|
+
const onlyOneProtocolSelected = selectedProtocols.length === 1 && !isV4HookPoolsEnabled
|
|
66
|
+
|
|
67
|
+
const classicProtocolsCount = selectedProtocols.filter((p) => {
|
|
68
|
+
if (!v4SwapEnabled && p === TradingApi.ProtocolItems.V4) {
|
|
69
|
+
return false
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return p !== TradingApi.ProtocolItems.LUXX_V2
|
|
73
|
+
}).length
|
|
74
|
+
|
|
75
|
+
// Prevent the user from deselecting all on-chain protocols (AKA only selecting DEX)
|
|
76
|
+
// unless the `AllowDEXOnlyRoutesInSwapSettings` flag is enabled (this is for local testing only! the flag is always false in production).
|
|
77
|
+
const shouldPreventClassicProtocolDeselection =
|
|
78
|
+
!allowDEXOnly &&
|
|
79
|
+
((classicProtocolsCount === 1 && !isV4HookPoolsEnabled) || (classicProtocolsCount === 0 && isV4HookPoolsEnabled))
|
|
80
|
+
|
|
81
|
+
const toggleV4Hooks = useCallback(() => {
|
|
82
|
+
setIsV4HookPoolsEnabled(!isV4HookPoolsEnabled)
|
|
83
|
+
}, [setIsV4HookPoolsEnabled, isV4HookPoolsEnabled])
|
|
84
|
+
|
|
85
|
+
const toggleDefault = useCallback(() => {
|
|
86
|
+
setIsDefault(!isDefault)
|
|
87
|
+
if (!isDefault) {
|
|
88
|
+
setSelectedProtocols(DEFAULT_PROTOCOL_OPTIONS)
|
|
89
|
+
setIsV4HookPoolsEnabled(true)
|
|
90
|
+
}
|
|
91
|
+
}, [setSelectedProtocols, setIsV4HookPoolsEnabled, isDefault])
|
|
92
|
+
|
|
93
|
+
const getProtocolTitle = createGetProtocolTitle({
|
|
94
|
+
isDEXSupported,
|
|
95
|
+
t,
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
return (
|
|
99
|
+
<Flex gap="$spacing16" my="$spacing16">
|
|
100
|
+
<OptionRow
|
|
101
|
+
alignItems="flex-start"
|
|
102
|
+
active={isDefault}
|
|
103
|
+
description={<DefaultOptionDescription v4SwapEnabled={v4SwapEnabled} />}
|
|
104
|
+
elementName={ElementName.SwapRoutingPreferenceDefault}
|
|
105
|
+
title={<DefaultOptionTitle v4SwapEnabled={v4SwapEnabled} />}
|
|
106
|
+
cantDisable={false}
|
|
107
|
+
footerContent={
|
|
108
|
+
<DefaultOptionFooterContent
|
|
109
|
+
isDEXSupported={isDEXSupported}
|
|
110
|
+
isDEXEnabled={dexEnabled}
|
|
111
|
+
isDefault={isDefault}
|
|
112
|
+
/>
|
|
113
|
+
}
|
|
114
|
+
onSelect={toggleDefault}
|
|
115
|
+
/>
|
|
116
|
+
<HeightAnimator open={!isDefault} animationDisabled={isMobileApp || isMobileWeb}>
|
|
117
|
+
{dexEnabled && (
|
|
118
|
+
<OptionRow
|
|
119
|
+
active={
|
|
120
|
+
isDEXSupported === false ? false : selectedProtocols.includes(TradingApi.ProtocolItems.LUXX_V2)
|
|
121
|
+
}
|
|
122
|
+
elementName={ElementName.SwapRoutingPreferenceDEX}
|
|
123
|
+
title={getProtocolTitle(TradingApi.ProtocolItems.LUXX_V2)}
|
|
124
|
+
cantDisable={onlyOneProtocolSelected}
|
|
125
|
+
disabled={isDEXSupported === false}
|
|
126
|
+
onSelect={() => toggleProtocol(TradingApi.ProtocolItems.LUXX_V2)}
|
|
127
|
+
/>
|
|
128
|
+
)}
|
|
129
|
+
<OptionRow
|
|
130
|
+
active={v4SwapEnabled && selectedProtocols.includes(TradingApi.ProtocolItems.V4)}
|
|
131
|
+
elementName={ElementName.SwapRoutingPreferenceV4}
|
|
132
|
+
title={getProtocolTitle(TradingApi.ProtocolItems.V4)}
|
|
133
|
+
cantDisable={shouldPreventClassicProtocolDeselection}
|
|
134
|
+
disabled={!v4SwapEnabled}
|
|
135
|
+
description={!v4SwapEnabled ? restrictionDescription : undefined}
|
|
136
|
+
onSelect={() => toggleProtocol(TradingApi.ProtocolItems.V4)}
|
|
137
|
+
/>
|
|
138
|
+
<OptionRow
|
|
139
|
+
active={isV4HookPoolsEnabled}
|
|
140
|
+
elementName={ElementName.SwapRoutingPreferenceV4Hooks}
|
|
141
|
+
title={<V4HooksInfo />}
|
|
142
|
+
cantDisable={shouldPreventClassicProtocolDeselection}
|
|
143
|
+
disabled={!v4SwapEnabled}
|
|
144
|
+
onSelect={toggleV4Hooks}
|
|
145
|
+
/>
|
|
146
|
+
<OptionRow
|
|
147
|
+
active={selectedProtocols.includes(TradingApi.ProtocolItems.V3)}
|
|
148
|
+
elementName={ElementName.SwapRoutingPreferenceV3}
|
|
149
|
+
title={getProtocolTitle(TradingApi.ProtocolItems.V3)}
|
|
150
|
+
cantDisable={shouldPreventClassicProtocolDeselection}
|
|
151
|
+
onSelect={() => toggleProtocol(TradingApi.ProtocolItems.V3)}
|
|
152
|
+
/>
|
|
153
|
+
<OptionRow
|
|
154
|
+
active={selectedProtocols.includes(TradingApi.ProtocolItems.V2)}
|
|
155
|
+
elementName={ElementName.SwapRoutingPreferenceV2}
|
|
156
|
+
title={getProtocolTitle(TradingApi.ProtocolItems.V2)}
|
|
157
|
+
cantDisable={shouldPreventClassicProtocolDeselection}
|
|
158
|
+
onSelect={() => toggleProtocol(TradingApi.ProtocolItems.V2)}
|
|
159
|
+
/>
|
|
160
|
+
</HeightAnimator>
|
|
161
|
+
</Flex>
|
|
162
|
+
)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function createGetProtocolTitle(ctx: {
|
|
166
|
+
isDEXSupported?: boolean
|
|
167
|
+
t: TFunction
|
|
168
|
+
}): (preference: FrontendSupportedProtocol) => JSX.Element | string {
|
|
169
|
+
const { isDEXSupported, t } = ctx
|
|
170
|
+
return (preference: FrontendSupportedProtocol) => {
|
|
171
|
+
switch (preference) {
|
|
172
|
+
case TradingApi.ProtocolItems.LUXX_V2: {
|
|
173
|
+
if (isDEXSupported === false) {
|
|
174
|
+
return <DEXTitleInfoTooltip />
|
|
175
|
+
}
|
|
176
|
+
return <DEXInfo tooltipTrigger={<DEXInfoTooltipTrigger />} />
|
|
177
|
+
}
|
|
178
|
+
case TradingApi.ProtocolItems.V2:
|
|
179
|
+
return t('swap.settings.routingPreference.option.v2.title')
|
|
180
|
+
case TradingApi.ProtocolItems.V3:
|
|
181
|
+
return t('swap.settings.routingPreference.option.v3.title')
|
|
182
|
+
case TradingApi.ProtocolItems.V4:
|
|
183
|
+
return t('swap.settings.routingPreference.option.v4.title')
|
|
184
|
+
default:
|
|
185
|
+
return <></>
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function DEXTitleInfoTooltip(): JSX.Element {
|
|
191
|
+
const [forceCloseTooltip, setForceCloseTooltip] = useState(undefined as undefined | true)
|
|
192
|
+
const [showModal, setShowModal] = useState(false)
|
|
193
|
+
if (isWebPlatform) {
|
|
194
|
+
return (
|
|
195
|
+
<InfoTooltip
|
|
196
|
+
text={<DEXInfoTooltipText onPress={() => setForceCloseTooltip(true)} />}
|
|
197
|
+
trigger={<DEXInfoTooltipTrigger />}
|
|
198
|
+
placement="top"
|
|
199
|
+
open={forceCloseTooltip === undefined ? undefined : !forceCloseTooltip}
|
|
200
|
+
/>
|
|
201
|
+
)
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
return (
|
|
205
|
+
<>
|
|
206
|
+
<TouchableArea onPress={() => setShowModal(true)}>
|
|
207
|
+
<DEXInfoTooltipTrigger />
|
|
208
|
+
</TouchableArea>
|
|
209
|
+
<DEXInfoModal isOpen={showModal} onClose={() => setShowModal(false)} />
|
|
210
|
+
</>
|
|
211
|
+
)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function DEXInfoTooltipTrigger(): JSX.Element {
|
|
215
|
+
return (
|
|
216
|
+
<Text
|
|
217
|
+
alignItems="center"
|
|
218
|
+
color="$neutral2"
|
|
219
|
+
variant="subheading2"
|
|
220
|
+
flexDirection="row"
|
|
221
|
+
flexShrink={0}
|
|
222
|
+
display="inline-flex"
|
|
223
|
+
gap="$gap4"
|
|
224
|
+
// This is to offset the left padding built-into the DEX icon
|
|
225
|
+
left={-spacing.spacing2}
|
|
226
|
+
>
|
|
227
|
+
<Trans
|
|
228
|
+
components={{
|
|
229
|
+
icon: <DEX size="$icon.16" />,
|
|
230
|
+
gradient: <DEXText height={18} variant="subheading2" />,
|
|
231
|
+
info: <InfoCircleFilled color="$neutral3" size="$icon.16" />,
|
|
232
|
+
}}
|
|
233
|
+
i18nKey="dex.item"
|
|
234
|
+
/>
|
|
235
|
+
</Text>
|
|
236
|
+
)
|
|
237
|
+
}
|
|
238
|
+
type OptionRowProps = {
|
|
239
|
+
title: JSX.Element | string
|
|
240
|
+
active: boolean
|
|
241
|
+
elementName: ElementName
|
|
242
|
+
cantDisable: boolean
|
|
243
|
+
onSelect: () => void
|
|
244
|
+
description?: string | ReactNode
|
|
245
|
+
disabled?: boolean
|
|
246
|
+
alignItems?: Extract<FlexProps['alignItems'], 'flex-start' | 'center'>
|
|
247
|
+
footerContent?: JSX.Element
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
function OptionRow({
|
|
251
|
+
title,
|
|
252
|
+
description,
|
|
253
|
+
active,
|
|
254
|
+
elementName,
|
|
255
|
+
cantDisable,
|
|
256
|
+
onSelect,
|
|
257
|
+
disabled,
|
|
258
|
+
alignItems = 'center',
|
|
259
|
+
footerContent,
|
|
260
|
+
}: OptionRowProps): JSX.Element {
|
|
261
|
+
return (
|
|
262
|
+
<Flex flexDirection="column" gap="$spacing12">
|
|
263
|
+
<Flex row py="$spacing2" alignItems={alignItems} gap="$spacing16" justifyContent="space-between">
|
|
264
|
+
<Flex shrink gap="$spacing4">
|
|
265
|
+
{typeof title === 'string' ? (
|
|
266
|
+
<Text color="$neutral1" variant="subheading2">
|
|
267
|
+
{title}
|
|
268
|
+
</Text>
|
|
269
|
+
) : (
|
|
270
|
+
title
|
|
271
|
+
)}
|
|
272
|
+
|
|
273
|
+
{typeof description === 'string' ? (
|
|
274
|
+
<Text color="$neutral2" variant="body3">
|
|
275
|
+
{description}
|
|
276
|
+
</Text>
|
|
277
|
+
) : (
|
|
278
|
+
description
|
|
279
|
+
)}
|
|
280
|
+
</Flex>
|
|
281
|
+
{/* Only log this event if toggle value is off, and then turned on */}
|
|
282
|
+
<Trace element={elementName} logPress={!active}>
|
|
283
|
+
<Switch
|
|
284
|
+
disabled={(active && cantDisable) || disabled}
|
|
285
|
+
checked={active}
|
|
286
|
+
variant="branded"
|
|
287
|
+
onCheckedChange={onSelect}
|
|
288
|
+
/>
|
|
289
|
+
</Trace>
|
|
290
|
+
</Flex>
|
|
291
|
+
{footerContent}
|
|
292
|
+
</Flex>
|
|
293
|
+
)
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
function DefaultOptionDescription({ v4SwapEnabled }: { v4SwapEnabled: boolean }): JSX.Element {
|
|
297
|
+
const { t } = useTranslation()
|
|
298
|
+
const cheapestRouteText = t('swap.settings.routingPreference.option.default.description.preV4')
|
|
299
|
+
const cheapestRouteTextV4 = t('swap.settings.routingPreference.option.default.description')
|
|
300
|
+
|
|
301
|
+
return (
|
|
302
|
+
<Text color="$neutral2" variant="body3" textWrap="pretty">
|
|
303
|
+
{v4SwapEnabled ? cheapestRouteTextV4 : cheapestRouteText}
|
|
304
|
+
</Text>
|
|
305
|
+
)
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
function DefaultOptionFooterContent(props: {
|
|
309
|
+
isDEXSupported?: boolean
|
|
310
|
+
isDEXEnabled: boolean
|
|
311
|
+
isDefault: boolean
|
|
312
|
+
}): JSX.Element | null {
|
|
313
|
+
const { isDEXSupported, isDEXEnabled, isDefault } = props
|
|
314
|
+
const showIncludesDEX = isDEXEnabled && isDEXSupported && isDefault
|
|
315
|
+
const showDEXNotSupported = isDEXSupported === false && isDEXEnabled && isDefault
|
|
316
|
+
|
|
317
|
+
if (showIncludesDEX) {
|
|
318
|
+
return (
|
|
319
|
+
<DEXInfo
|
|
320
|
+
tooltipTrigger={
|
|
321
|
+
<Text
|
|
322
|
+
alignItems="center"
|
|
323
|
+
color="$neutral2"
|
|
324
|
+
variant="body3"
|
|
325
|
+
flexDirection="row"
|
|
326
|
+
gap="$gap4"
|
|
327
|
+
display="inline-flex"
|
|
328
|
+
>
|
|
329
|
+
<Trans
|
|
330
|
+
components={{
|
|
331
|
+
icon: <DEX size="$icon.16" />,
|
|
332
|
+
gradient: <DEXText height={18} variant="body3" />,
|
|
333
|
+
}}
|
|
334
|
+
i18nKey="dex.included"
|
|
335
|
+
/>
|
|
336
|
+
</Text>
|
|
337
|
+
}
|
|
338
|
+
/>
|
|
339
|
+
)
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if (showDEXNotSupported) {
|
|
343
|
+
return <DEXNotSupportedDescription />
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
return null
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
const DEXNotSupportedDescription = (): JSX.Element => {
|
|
350
|
+
const { t } = useTranslation()
|
|
351
|
+
const [forceCloseTooltip, setForceCloseTooltip] = useState(undefined as undefined | true)
|
|
352
|
+
const [showModal, setShowModal] = useState(false)
|
|
353
|
+
|
|
354
|
+
const trigger = (
|
|
355
|
+
<Flex cursor="default" gap="$spacing4" alignItems="flex-start" flexDirection="row">
|
|
356
|
+
<WarningIcon color="$neutral2" size="$icon.16" />
|
|
357
|
+
<Text color="$neutral2" variant="body3">
|
|
358
|
+
{t('swap.settings.routingPreference.option.default.description.dexUnavailable')}
|
|
359
|
+
</Text>
|
|
360
|
+
</Flex>
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
if (isWebPlatform) {
|
|
364
|
+
return (
|
|
365
|
+
<InfoTooltip
|
|
366
|
+
open={forceCloseTooltip === undefined ? undefined : !forceCloseTooltip}
|
|
367
|
+
text={
|
|
368
|
+
<DEXInfoTooltipText
|
|
369
|
+
onPress={() => {
|
|
370
|
+
setForceCloseTooltip(true)
|
|
371
|
+
}}
|
|
372
|
+
/>
|
|
373
|
+
}
|
|
374
|
+
placement="top"
|
|
375
|
+
trigger={trigger}
|
|
376
|
+
/>
|
|
377
|
+
)
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
return (
|
|
381
|
+
<>
|
|
382
|
+
<TouchableArea onPress={() => setShowModal(true)}>{trigger}</TouchableArea>
|
|
383
|
+
<DEXInfoModal isOpen={showModal} onClose={() => setShowModal(false)} />
|
|
384
|
+
</>
|
|
385
|
+
)
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
function DEXInfoTooltipText(props?: { onPress?: () => void }): JSX.Element {
|
|
389
|
+
const { t } = useTranslation()
|
|
390
|
+
const handleOnPressDEXUnsupported = useLuxContextSelector((state) => state.handleOnPressDEXUnsupported)
|
|
391
|
+
const handleHideTransactionSettingsModal = useModalHide(TransactionSettingsModalId.TransactionSettings)
|
|
392
|
+
|
|
393
|
+
const onPress = useEvent(() => {
|
|
394
|
+
if (isExtensionApp) {
|
|
395
|
+
openUri({ uri: luxUrls.helpArticleUrls.multichainDelegation }).catch(() => {})
|
|
396
|
+
} else {
|
|
397
|
+
handleOnPressDEXUnsupported?.()
|
|
398
|
+
handleHideTransactionSettingsModal()
|
|
399
|
+
}
|
|
400
|
+
props?.onPress?.()
|
|
401
|
+
})
|
|
402
|
+
|
|
403
|
+
const body = isExtensionApp ? t('dex.description.unsupported') : t('wallet.mismatch.popup.description')
|
|
404
|
+
|
|
405
|
+
return (
|
|
406
|
+
<TouchableArea onPress={onPress}>
|
|
407
|
+
<Flex gap="$spacing4">
|
|
408
|
+
<Text color="$neutral2" variant="body3">
|
|
409
|
+
{body}
|
|
410
|
+
</Text>
|
|
411
|
+
<Text color="$accent1" variant="body3">
|
|
412
|
+
{isWebApp ? t('common.button.viewDetails') : t('common.button.learn')}
|
|
413
|
+
</Text>
|
|
414
|
+
</Flex>
|
|
415
|
+
</TouchableArea>
|
|
416
|
+
)
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
function DefaultOptionTitle({ v4SwapEnabled }: { v4SwapEnabled: boolean }): JSX.Element {
|
|
420
|
+
const { t } = useTranslation()
|
|
421
|
+
|
|
422
|
+
if (!v4SwapEnabled) {
|
|
423
|
+
return (
|
|
424
|
+
<Text color="$neutral1" variant="subheading2">
|
|
425
|
+
{t('common.default')}
|
|
426
|
+
</Text>
|
|
427
|
+
)
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
return (
|
|
431
|
+
<Flex row gap="$spacing4" alignItems="center">
|
|
432
|
+
<Text color="$neutral1" variant="subheading2">
|
|
433
|
+
{t('common.default')}
|
|
434
|
+
</Text>
|
|
435
|
+
<WarningInfo
|
|
436
|
+
modalProps={{
|
|
437
|
+
caption: t('swap.settings.routingPreference.option.default.tooltip'),
|
|
438
|
+
rejectText: t('common.button.close'),
|
|
439
|
+
modalName: ModalName.SwapSettingsDefaultRoutingInfo,
|
|
440
|
+
}}
|
|
441
|
+
tooltipProps={{
|
|
442
|
+
text: t('swap.settings.routingPreference.option.default.tooltip'),
|
|
443
|
+
placement: 'bottom',
|
|
444
|
+
}}
|
|
445
|
+
/>
|
|
446
|
+
</Flex>
|
|
447
|
+
)
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
function DEXInfoModal({ isOpen, onClose }: { isOpen: boolean; onClose: () => void }): JSX.Element {
|
|
451
|
+
const { t } = useTranslation()
|
|
452
|
+
const colors = useSporeColors()
|
|
453
|
+
return (
|
|
454
|
+
<WarningModal
|
|
455
|
+
isOpen={isOpen}
|
|
456
|
+
onClose={onClose}
|
|
457
|
+
{...{
|
|
458
|
+
caption: t('dex.description.unsupported'),
|
|
459
|
+
rejectText: t('common.button.close'),
|
|
460
|
+
icon: <Lightning size="$icon.24" fill={colors.neutral1.val} />,
|
|
461
|
+
modalName: ModalName.DEXInfo,
|
|
462
|
+
severity: WarningSeverity.None,
|
|
463
|
+
title: t('dex.unavailable.title'),
|
|
464
|
+
zIndex: zIndexes.popover,
|
|
465
|
+
}}
|
|
466
|
+
>
|
|
467
|
+
<LearnMoreLink
|
|
468
|
+
textVariant={isWebPlatform ? 'body4' : 'buttonLabel3'}
|
|
469
|
+
url={luxUrls.helpArticleUrls.multichainDelegation}
|
|
470
|
+
/>
|
|
471
|
+
</WarningModal>
|
|
472
|
+
)
|
|
473
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { useTranslation } from 'react-i18next'
|
|
2
|
+
import { Flex, Text } from '@luxfi/ui/src'
|
|
3
|
+
import { InfoCircleFilled } from '@luxfi/ui/src/components/icons/InfoCircleFilled'
|
|
4
|
+
import { LuxLogo } from '@luxfi/ui/src/components/icons/LuxLogo'
|
|
5
|
+
import { WarningSeverity } from '@luxexchange/lx/src/components/modals/WarningModal/types'
|
|
6
|
+
import { WarningInfo } from '@luxexchange/lx/src/components/modals/WarningModal/WarningInfo'
|
|
7
|
+
import { LearnMoreLink } from '@luxexchange/lx/src/components/text/LearnMoreLink'
|
|
8
|
+
import { luxUrls } from '@luxexchange/lx/src/constants/urls'
|
|
9
|
+
import { ModalName } from '@luxexchange/lx/src/features/telemetry/constants'
|
|
10
|
+
import { isWebPlatform } from '@luxfi/utilities/src/platform'
|
|
11
|
+
|
|
12
|
+
export function V4HooksInfo(): JSX.Element {
|
|
13
|
+
const { t } = useTranslation()
|
|
14
|
+
return (
|
|
15
|
+
<WarningInfo
|
|
16
|
+
infoButton={
|
|
17
|
+
<LearnMoreLink
|
|
18
|
+
textVariant={isWebPlatform ? 'body4' : undefined}
|
|
19
|
+
url={luxUrls.helpArticleUrls.v4HooksInfo}
|
|
20
|
+
/>
|
|
21
|
+
}
|
|
22
|
+
modalProps={{
|
|
23
|
+
caption: t('swap.settings.routingPreference.option.v4.hooks.tooltip'),
|
|
24
|
+
rejectText: t('common.button.close'),
|
|
25
|
+
severity: WarningSeverity.None,
|
|
26
|
+
modalName: ModalName.V4HooksInfo,
|
|
27
|
+
icon: <LuxLogo size="$icon.24" />,
|
|
28
|
+
}}
|
|
29
|
+
trigger={
|
|
30
|
+
<Flex row centered>
|
|
31
|
+
<Text color="$neutral1" variant="subheading2" mr="$spacing4">
|
|
32
|
+
{t('swap.settings.routingPreference.option.v4.hooks.title')}
|
|
33
|
+
</Text>
|
|
34
|
+
<InfoCircleFilled color="$neutral3" size="$icon.16" />
|
|
35
|
+
</Flex>
|
|
36
|
+
}
|
|
37
|
+
tooltipProps={{
|
|
38
|
+
text: t('swap.settings.routingPreference.option.v4.hooks.tooltip'),
|
|
39
|
+
placement: 'bottom',
|
|
40
|
+
}}
|
|
41
|
+
/>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_PROTOCOL_OPTIONS,
|
|
3
|
+
type FrontendSupportedProtocol,
|
|
4
|
+
} from '@luxexchange/lx/src/features/transactions/swap/utils/protocols'
|
|
5
|
+
|
|
6
|
+
export function isDefaultTradeRouteOptions({
|
|
7
|
+
selectedProtocols,
|
|
8
|
+
isV4HookPoolsEnabled,
|
|
9
|
+
}: {
|
|
10
|
+
selectedProtocols: FrontendSupportedProtocol[]
|
|
11
|
+
isV4HookPoolsEnabled: boolean
|
|
12
|
+
}): boolean {
|
|
13
|
+
return (
|
|
14
|
+
new Set(selectedProtocols).size === new Set([...selectedProtocols, ...DEFAULT_PROTOCOL_OPTIONS]).size &&
|
|
15
|
+
isV4HookPoolsEnabled
|
|
16
|
+
)
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Platform } from '@luxexchange/lx/src/features/platforms/types/Platform'
|
|
2
|
+
import { SlippageWarning } from '@luxexchange/lx/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageWarning'
|
|
3
|
+
import type { TransactionSettingConfig } from '@luxexchange/lx/src/features/transactions/components/settings/types'
|
|
4
|
+
import { SlippageControl } from '@luxexchange/lx/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/SlippageControl/SlippageControl'
|
|
5
|
+
import { SlippageScreenNative } from '@luxexchange/lx/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/SlippageScreenNative'
|
|
6
|
+
|
|
7
|
+
export const Slippage: TransactionSettingConfig = {
|
|
8
|
+
renderTitle: (t) => t('swap.slippage.settings.title'),
|
|
9
|
+
applicablePlatforms: [Platform.EVM, Platform.SVM],
|
|
10
|
+
Control() {
|
|
11
|
+
return <SlippageControl saveOnBlur={false} />
|
|
12
|
+
},
|
|
13
|
+
Screen() {
|
|
14
|
+
return <SlippageScreenNative />
|
|
15
|
+
},
|
|
16
|
+
Warning() {
|
|
17
|
+
return <SlippageWarning />
|
|
18
|
+
},
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TradingApi } from '@luxexchange/api'
|
|
2
|
+
import { Platform } from '@luxexchange/lx/src/features/platforms/types/Platform'
|
|
3
|
+
import type { TransactionSettingConfig } from '@luxexchange/lx/src/features/transactions/components/settings/types'
|
|
4
|
+
import { PlatformSplitStubError } from '@luxfi/utilities/src/errors'
|
|
5
|
+
|
|
6
|
+
export const Slippage: TransactionSettingConfig = {
|
|
7
|
+
renderTitle: (t) => t('swap.slippage.settings.title'),
|
|
8
|
+
applicablePlatforms: [Platform.EVM, Platform.SVM],
|
|
9
|
+
inapplicableTradeRouting: [
|
|
10
|
+
TradingApi.Routing.WRAP,
|
|
11
|
+
TradingApi.Routing.UNWRAP,
|
|
12
|
+
TradingApi.Routing.BRIDGE,
|
|
13
|
+
TradingApi.Routing.LIMIT_ORDER,
|
|
14
|
+
],
|
|
15
|
+
Control() {
|
|
16
|
+
throw new PlatformSplitStubError('Slippage')
|
|
17
|
+
},
|
|
18
|
+
Warning() {
|
|
19
|
+
throw new PlatformSplitStubError('Slippage')
|
|
20
|
+
},
|
|
21
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Slippage as SlippageBase } from '@luxexchange/lx/src/features/transactions/components/settings/settingsConfigurations/slippage/Slippage/Slippage.web'
|
|
2
|
+
import { type TransactionSettingConfig } from '@luxexchange/lx/src/features/transactions/components/settings/types'
|
|
3
|
+
import { SlippageControl } from '@luxexchange/lx/src/features/transactions/swap/components/SwapFormSettings/settingsConfigurations/slippage/SlippageControl/SlippageControl'
|
|
4
|
+
|
|
5
|
+
export const Slippage: TransactionSettingConfig = {
|
|
6
|
+
...SlippageBase,
|
|
7
|
+
Control() {
|
|
8
|
+
return <SlippageControl saveOnBlur={false} />
|
|
9
|
+
},
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SlippageControl as SlippageControlBase } from '@luxexchange/lx/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/SlippageControl.native'
|
|
2
|
+
import type { SlippageControlProps } from '@luxexchange/lx/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/types'
|
|
3
|
+
import { useSwapFormStoreDerivedSwapInfo } from '@luxexchange/lx/src/features/transactions/swap/stores/swapFormStore/useSwapFormStore'
|
|
4
|
+
import { BridgeTrade } from '@luxexchange/lx/src/features/transactions/swap/types/trade'
|
|
5
|
+
|
|
6
|
+
export function SlippageControl(_props: SlippageControlProps): JSX.Element {
|
|
7
|
+
const trade = useSwapFormStoreDerivedSwapInfo((s) => s.trade).trade
|
|
8
|
+
const isBridgeTrade = trade instanceof BridgeTrade
|
|
9
|
+
|
|
10
|
+
return <SlippageControlBase isZeroSlippage={isBridgeTrade} saveOnBlur={_props.saveOnBlur} />
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SlippageControlProps } from '@luxexchange/lx/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/types'
|
|
2
|
+
import { PlatformSplitStubError } from '@luxfi/utilities/src/errors'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Swap-specific implementation of the slippage control.
|
|
6
|
+
*/
|
|
7
|
+
export function SlippageControl(_props: SlippageControlProps): JSX.Element {
|
|
8
|
+
throw new PlatformSplitStubError('SlippageControl')
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SlippageControl as SlippageControlBase } from '@luxexchange/lx/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/SlippageControl.web'
|
|
2
|
+
import type { SlippageControlProps } from '@luxexchange/lx/src/features/transactions/components/settings/settingsConfigurations/slippage/SlippageControl/types'
|
|
3
|
+
import { useSwapFormStoreDerivedSwapInfo } from '@luxexchange/lx/src/features/transactions/swap/stores/swapFormStore/useSwapFormStore'
|
|
4
|
+
import { BridgeTrade } from '@luxexchange/lx/src/features/transactions/swap/types/trade'
|
|
5
|
+
|
|
6
|
+
export function SlippageControl(props: SlippageControlProps): JSX.Element {
|
|
7
|
+
const trade = useSwapFormStoreDerivedSwapInfo((s) => s.trade)
|
|
8
|
+
const isBridgeTrade = trade.trade instanceof BridgeTrade
|
|
9
|
+
|
|
10
|
+
return <SlippageControlBase saveOnBlur={props.saveOnBlur} isZeroSlippage={isBridgeTrade} />
|
|
11
|
+
}
|