@velora-dex/widget 0.0.23 → 0.1.0-rc.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/dist/_virtual/index.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.d.ts +2 -2
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +1 -2
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js +23 -14
- package/dist/components/web3/ConnectWallets/WalletConnectButtons.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/button.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/connectRunner.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/connectRunner.js +0 -2
- package/dist/components/web3/ConnectWallets/privy/connectRunner.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/iframe.js.map +1 -1
- package/dist/components/web3/ConnectWallets/privy/provider.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +30 -0
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +84 -2
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +69 -65
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -1
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +49 -55
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Details/DetailWithTooltip.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueList.js.map +1 -1
- package/dist/components/widget/Details/DetailWithValueListExpandable.js.map +1 -1
- package/dist/components/widget/Details/SwapDetailsExpandable.js.map +1 -1
- package/dist/components/widget/Dialog/ConnectWalletDialog/ConnectWalletDialog.js.map +1 -1
- package/dist/components/widget/Dialog/DialogRoot.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +2 -2
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressInput.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +125 -78
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts +5 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js +10 -8
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/AcrossTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts +5 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js +10 -8
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/RegularTokenList.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.d.ts +11 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.d.ts.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js +101 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.d.ts +5 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.d.ts.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +186 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -0
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts +6 -2
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +33 -20
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
- package/dist/components/widget/Dialog/state/dialogAtom.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts +3 -1
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +64 -37
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +24 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +91 -2
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Dropdown/DropdownWithItems.d.ts.map +1 -1
- package/dist/components/widget/Dropdown/DropdownWithItems.js +5 -3
- package/dist/components/widget/Dropdown/DropdownWithItems.js.map +1 -1
- package/dist/components/widget/Dropdown/types.d.ts +2 -1
- package/dist/components/widget/Dropdown/types.d.ts.map +1 -1
- package/dist/components/widget/Icon/CheckIcon.js.map +1 -1
- package/dist/components/widget/Icon/ChevronIcon.js.map +1 -1
- package/dist/components/widget/Icon/DeltaIcon.js.map +1 -1
- package/dist/components/widget/Icon/EllipseIcon.js.map +1 -1
- package/dist/components/widget/Icon/InfoIcon.js.map +1 -1
- package/dist/components/widget/Icon/MarketIcon.js.map +1 -1
- package/dist/components/widget/Icon/SliderIcon.js.map +1 -1
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.d.ts.map +1 -1
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js +14 -10
- package/dist/components/widget/NetworkSwitcher/CompactNetworkSwitcher.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.d.ts.map +1 -1
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +10 -8
- package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
- package/dist/components/widget/NetworkSwitcher/types.d.ts +2 -2
- package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkIconWithChevron.js.map +1 -1
- package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
- package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.d.ts.map +1 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js +5 -1
- package/dist/components/widget/RowVirtualizer/RowVirtualizerFixed.js.map +1 -1
- package/dist/components/widget/RowVirtualizer/types.d.ts +1 -0
- package/dist/components/widget/RowVirtualizer/types.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/SwapModeSwitcherExpandable.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.d.ts.map +1 -1
- package/dist/components/widget/SwapRate/SwapRate.js +3 -0
- package/dist/components/widget/SwapRate/SwapRate.js.map +1 -1
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.d.ts.map +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js +1 -1
- package/dist/components/widget/TokenBadge/TokenBadge.js.map +1 -1
- package/dist/components/widget/TokenInput/EmptyInput.js.map +1 -1
- package/dist/components/widget/TokenInput/index.js +1 -1
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +39 -21
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompleteHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/TradeCompletedDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +40 -72
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts +23 -3
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +67 -19
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +40 -56
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewFooter.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/VerticalDash.js.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/DeltaParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/CustomSlippageInput.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/EditSlippage.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js +2 -2
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js +42 -19
- package/dist/components/widget/TradeParameters/SlippageParameter/hooks/useCustomSlippageProps.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js +3 -3
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/slippageParamActionsAtom.js.map +1 -1
- package/dist/components/widget/Warning/InsufficientBalanceMessage.js.map +1 -1
- package/dist/components/widget/Warning/Warning.js.map +1 -1
- package/dist/components/widget/Warning/WarningMessage.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +18 -24
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/core/ConnectWalletDrawerButton.js.map +1 -1
- package/dist/core/Toaster.js.map +1 -1
- package/dist/core/TradeFlowButton.js +154 -126
- package/dist/core/TradeFlowButton.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +55 -28
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenSwitcherProps.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +15 -15
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/core/inputs/state/inputAmountAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/inputs/state/subscriptions.js.map +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/state/chainToAtom.d.ts +2 -2
- package/dist/core/state/chainToAtom.js.map +1 -1
- package/dist/core/state/configActionsAtom.d.ts +1 -1
- package/dist/core/state/configActionsAtom.js.map +1 -1
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/core/swapDetails/fees.js.map +1 -1
- package/dist/core/swapDetails/orderRouting.js.map +1 -1
- package/dist/core/swapDetails/priceImpact.js.map +1 -1
- package/dist/core/swapDetails/useSwapDetailsListProps.js.map +1 -1
- package/dist/core/swapDetails/youGet.js.map +1 -1
- package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.0 → react-compiler-runtime@19.1.0-rc.2_react@19.1.1}/external/react-compiler-runtime/dist/index.js.map +1 -1
- package/dist/external/.pnpm/{vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33 → vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__7f2d7d5ed11750fbec42b3f5689c802d}/external/vaul/dist/index.js.map +1 -1
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/getCode/useIsContractAtAddress.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -1
- package/dist/hooks/permit/utils/construct.js.map +1 -1
- package/dist/hooks/permit/utils/detect.js.map +1 -1
- package/dist/hooks/permit/utils/domainSeparator.js.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
- package/dist/hooks/permit/utils/utils.js.map +1 -1
- package/dist/hooks/sdk/useGetContracts.js.map +1 -1
- package/dist/hooks/sdk/useSpender.js.map +1 -1
- package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts +2 -0
- package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js +4 -1
- package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useBridgeInfo.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +14 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +60 -2
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts +8 -0
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js +12 -3
- package/dist/hooks/swap/prices/delta/queries/useWatchDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useSendMarketSwapTx.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +14 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +60 -2
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useSpenderAndContracts.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/errors.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +207 -458
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +210 -411
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/queries.js.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +18 -7
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts +3 -2
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js +60 -77
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.d.ts +5 -0
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.d.ts.map +1 -0
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js +38 -0
- package/dist/hooks/tokens/balances/useSelectedTokenBalances.js.map +1 -0
- package/dist/hooks/tokens/balances/useTokenBalance.d.ts +15 -0
- package/dist/hooks/tokens/balances/useTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useTokenBalance.js +2 -0
- package/dist/hooks/tokens/balances/useTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/prices/queries.js.map +1 -1
- package/dist/hooks/tokens/prices/useMultichainTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/prices/useTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/useNativeToken.js.map +1 -1
- package/dist/hooks/tokens/useTokenLists.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -1
- package/dist/hooks/tokens/useTokensByAddress.js.map +1 -1
- package/dist/hooks/tokens/useTokensFromAcross.js.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/hooks/txs/queries/utils.d.ts +3 -0
- package/dist/hooks/txs/queries/utils.d.ts.map +1 -0
- package/dist/hooks/txs/queries/utils.js +6 -0
- package/dist/hooks/txs/queries/utils.js.map +1 -0
- package/dist/hooks/useAvailableCrosses.js.map +1 -1
- package/dist/hooks/useBridgeInfo.js.map +1 -1
- package/dist/hooks/useDebouncedInputState.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.js.map +1 -1
- package/dist/hooks/useGlobalDeltaEnabled.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -1
- package/dist/hooks/useMinViemClient.js.map +1 -1
- package/dist/hooks/useSDK.js +1 -1
- package/dist/hooks/useSDK.js.map +1 -1
- package/dist/hooks/useSlippage.js.map +1 -1
- package/dist/lib/ipfs.js.map +1 -1
- package/dist/lib/queryClient.d.ts.map +1 -1
- package/dist/lib/queryClient.js +32 -2
- package/dist/lib/queryClient.js.map +1 -1
- package/dist/lib/utils/copyToClipboard.js.map +1 -1
- package/dist/lib/utils/delta.js.map +1 -1
- package/dist/lib/utils/formatTokenBalance.js.map +1 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/price.js.map +1 -1
- package/dist/lib/utils/priceImpact.d.ts.map +1 -1
- package/dist/lib/utils/priceImpact.js +1 -1
- package/dist/lib/utils/priceImpact.js.map +1 -1
- package/dist/lib/utils/providerErrors.js.map +1 -1
- package/dist/lib/utils/removeZeroDecimals.js.map +1 -1
- package/dist/lib/utils/toasts.js +0 -24
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +12 -2
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +6 -3
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +12 -2
- package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts +25 -0
- package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts.map +1 -0
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js +113 -0
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -0
- package/dist/styles.css +81 -9
- package/dist/tokens/lists/constants.js.map +1 -1
- package/dist/tokens/lists/download.js.map +1 -1
- package/dist/tokens/lists/hooks.js.map +1 -1
- package/dist/tokens/lists/state/observer.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsActionsAtom.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +2 -2
- package/dist/tokens/overrides.js.map +1 -1
- package/dist/tokens/queries.js.map +1 -1
- package/dist/tokens/stabeCoins/hooks.js.map +1 -1
- package/dist/tokens/state/constructTokens.js.map +1 -1
- package/dist/tokens/state/tokensAtom.js.map +1 -1
- package/dist/tokens/utils/filtering.js.map +1 -1
- package/dist/tokens/utils/sets.js.map +1 -1
- package/dist/tokens/utils/sorting.js.map +1 -1
- package/dist/tokens/utils/transferAmountsFromReceipt.d.ts +51 -0
- package/dist/tokens/utils/transferAmountsFromReceipt.d.ts.map +1 -0
- package/dist/tokens/utils/transferAmountsFromReceipt.js +281 -0
- package/dist/tokens/utils/transferAmountsFromReceipt.js.map +1 -0
- package/package.json +32 -31
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts +0 -25
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts.map +0 -1
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js +0 -103
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js.map +0 -1
- /package/dist/external/.pnpm/{react-compiler-runtime@19.1.0-rc.2_react@19.1.0 → react-compiler-runtime@19.1.0-rc.2_react@19.1.1}/external/react-compiler-runtime/dist/index.js +0 -0
- /package/dist/external/.pnpm/{vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33 → vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__7f2d7d5ed11750fbec42b3f5689c802d}/external/vaul/dist/index.js +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
+
import { createLogger } from '../../utils/logger.js';
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { withTimeout } from 'viem';
|
|
5
|
+
|
|
6
|
+
const isInIframe = typeof window !== "undefined" && window?.parent !== window;
|
|
7
|
+
const logger = createLogger("SafeWallet");
|
|
8
|
+
function useSafeInfo() {
|
|
9
|
+
const $ = distExports.c(8);
|
|
10
|
+
let t0;
|
|
11
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
12
|
+
t0 = ["safeInfo"];
|
|
13
|
+
$[0] = t0;
|
|
14
|
+
} else {
|
|
15
|
+
t0 = $[0];
|
|
16
|
+
}
|
|
17
|
+
let t1;
|
|
18
|
+
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
19
|
+
t1 = {
|
|
20
|
+
queryKey: t0,
|
|
21
|
+
queryFn: _temp,
|
|
22
|
+
staleTime: Infinity,
|
|
23
|
+
gcTime: Infinity,
|
|
24
|
+
initialData: isInIframe ? void 0 : null
|
|
25
|
+
};
|
|
26
|
+
$[1] = t1;
|
|
27
|
+
} else {
|
|
28
|
+
t1 = $[1];
|
|
29
|
+
}
|
|
30
|
+
const {
|
|
31
|
+
data,
|
|
32
|
+
isLoading,
|
|
33
|
+
isSuccess,
|
|
34
|
+
isError,
|
|
35
|
+
error: error_0
|
|
36
|
+
} = useQuery(t1);
|
|
37
|
+
let t2;
|
|
38
|
+
if ($[2] !== data || $[3] !== error_0 || $[4] !== isError || $[5] !== isLoading || $[6] !== isSuccess) {
|
|
39
|
+
t2 = {
|
|
40
|
+
data,
|
|
41
|
+
isLoading,
|
|
42
|
+
isSuccess,
|
|
43
|
+
isError,
|
|
44
|
+
error: error_0
|
|
45
|
+
};
|
|
46
|
+
$[2] = data;
|
|
47
|
+
$[3] = error_0;
|
|
48
|
+
$[4] = isError;
|
|
49
|
+
$[5] = isLoading;
|
|
50
|
+
$[6] = isSuccess;
|
|
51
|
+
$[7] = t2;
|
|
52
|
+
} else {
|
|
53
|
+
t2 = $[7];
|
|
54
|
+
}
|
|
55
|
+
return t2;
|
|
56
|
+
}
|
|
57
|
+
async function _temp() {
|
|
58
|
+
if (isInIframe) {
|
|
59
|
+
const errorInstance = new Error("Safe info request timed out");
|
|
60
|
+
try {
|
|
61
|
+
const safeInfo = await withTimeout(requestSafeInfo, {
|
|
62
|
+
timeout: 200,
|
|
63
|
+
signal: true,
|
|
64
|
+
errorInstance
|
|
65
|
+
});
|
|
66
|
+
logger.info("Safe info request successful", safeInfo);
|
|
67
|
+
return safeInfo;
|
|
68
|
+
} catch (t0) {
|
|
69
|
+
const error = t0;
|
|
70
|
+
if (error === errorInstance) {
|
|
71
|
+
logger.info("Safe Wallet not detected");
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
logger.error("Safe info request failed", error);
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
function requestSafeInfo({
|
|
81
|
+
signal
|
|
82
|
+
}) {
|
|
83
|
+
const request = {
|
|
84
|
+
id: (/* @__PURE__ */ new Date()).getTime().toString(36),
|
|
85
|
+
method: "getSafeInfo",
|
|
86
|
+
params: void 0,
|
|
87
|
+
env: {
|
|
88
|
+
sdkVersion: "9.1.0"
|
|
89
|
+
// latest version of Safe SDK
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
return new Promise((resolve, reject) => {
|
|
93
|
+
const listener = (event) => {
|
|
94
|
+
if (event.data?.id === request.id) {
|
|
95
|
+
window.removeEventListener("message", listener);
|
|
96
|
+
if (event.data.success) {
|
|
97
|
+
resolve(event.data.data);
|
|
98
|
+
} else {
|
|
99
|
+
reject(new Error(event.data.error));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
signal?.addEventListener("abort", () => {
|
|
104
|
+
window.removeEventListener("message", listener);
|
|
105
|
+
reject(signal.reason);
|
|
106
|
+
});
|
|
107
|
+
window.addEventListener("message", listener);
|
|
108
|
+
window.parent.postMessage(request, "*");
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export { isInIframe, useSafeInfo };
|
|
113
|
+
//# sourceMappingURL=isInsideSafeIframe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isInsideSafeIframe.js","sources":["../../../../src/lib/web3/wagmi/isInsideSafeIframe.ts"],"sourcesContent":["import { createLogger } from \"@/lib/utils/logger\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { withTimeout } from \"viem\";\n\nexport const isInIframe =\n typeof window !== \"undefined\" && window?.parent !== window;\n\ntype SafeInfo = {\n safeAddress: string;\n chainId: number;\n threshold: number;\n owners: string[];\n isReadOnly: boolean;\n};\n\ntype SafeInfoExtended = SafeInfo & {\n nonce: number;\n implementation: string;\n modules: string[] | null;\n fallbackHandler: string | null;\n guard: string | null;\n version: string | null;\n};\n\ntype SafeMessageEvent<T = unknown> = {\n id: string;\n data: T;\n version?: string;\n success: boolean;\n error?: string;\n};\n\ntype SafeRequest = {\n id: string;\n method: string;\n params: undefined;\n env: {\n sdkVersion: string;\n };\n};\n\nconst logger = createLogger(\"SafeWallet\");\n\nexport function useSafeInfo(): {\n data?: SafeInfoExtended | null;\n isLoading: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n} {\n const { data, isLoading, isSuccess, isError, error } = useQuery({\n queryKey: [\"safeInfo\"],\n queryFn: async () => {\n if (isInIframe) {\n const errorInstance = new Error(\"Safe info request timed out\");\n try {\n const safeInfo = await withTimeout(requestSafeInfo, {\n timeout: 200,\n signal: true,\n // non-safe iframe will never answer the request, so we need to timeout\n errorInstance,\n });\n\n logger.info(\"Safe info request successful\", safeInfo);\n\n return safeInfo;\n } catch (error) {\n if (error === errorInstance) {\n logger.info(\"Safe Wallet not detected\");\n return null;\n }\n\n logger.error(\"Safe info request failed\", error);\n throw error;\n }\n }\n\n return null;\n },\n staleTime: Infinity,\n gcTime: Infinity,\n // shortcut when we are not in iframe\n initialData: isInIframe ? undefined : null,\n });\n\n return { data, isLoading, isSuccess, isError, error };\n}\n\nfunction requestSafeInfo({\n signal,\n}: {\n signal: AbortSignal | null;\n}): Promise<SafeInfoExtended> {\n const request: SafeRequest = {\n id: new Date().getTime().toString(36),\n method: \"getSafeInfo\",\n params: undefined,\n env: {\n sdkVersion: \"9.1.0\", // latest version of Safe SDK\n },\n };\n\n return new Promise((resolve, reject) => {\n const listener = (\n event: MessageEvent<SafeMessageEvent<SafeInfoExtended>>\n ) => {\n if (event.data?.id === request.id) {\n window.removeEventListener(\"message\", listener);\n if (event.data.success) {\n resolve(event.data.data);\n } else {\n reject(new Error(event.data.error));\n }\n }\n };\n\n signal?.addEventListener(\"abort\", () => {\n window.removeEventListener(\"message\", listener);\n reject(signal.reason);\n });\n\n window.addEventListener(\"message\", listener);\n\n // If inside Safe iframe, Safe web app will respond to the request\n window.parent.postMessage(request, \"*\");\n });\n}\n"],"names":["isInIframe","window","parent","logger","createLogger","useSafeInfo","$","_c","t0","Symbol","for","t1","queryKey","queryFn","_temp","staleTime","Infinity","gcTime","initialData","undefined","data","isLoading","isSuccess","isError","error","error_0","useQuery","t2","errorInstance","Error","safeInfo","withTimeout","requestSafeInfo","timeout","signal","info","request","id","Date","getTime","toString","method","params","env","sdkVersion","Promise","resolve","reject","listener","event","removeEventListener","success","addEventListener","reason","postMessage"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@import "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@100..900&family=Geist:wght@100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";
|
|
2
2
|
|
|
3
|
-
/*! tailwindcss v4.1.
|
|
3
|
+
/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
|
|
4
4
|
@layer properties {
|
|
5
5
|
@supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
|
|
6
6
|
*, :before, :after, ::backdrop {
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
--tw-drop-shadow-alpha: 100%;
|
|
47
47
|
--tw-drop-shadow-size: initial;
|
|
48
48
|
--tw-duration: initial;
|
|
49
|
+
--tw-ease: initial;
|
|
49
50
|
--tw-text-shadow-color: initial;
|
|
50
51
|
--tw-text-shadow-alpha: 100%;
|
|
51
52
|
--tw-animation-delay: 0s;
|
|
@@ -66,7 +67,7 @@
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
|
-
|
|
70
|
+
.velora-widget {
|
|
70
71
|
--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
71
72
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
72
73
|
--color-red-800: oklch(44.4% .177 26.899);
|
|
@@ -101,12 +102,14 @@
|
|
|
101
102
|
--font-weight-semibold: 600;
|
|
102
103
|
--tracking-widest: .1em;
|
|
103
104
|
--radius-2xl: 1rem;
|
|
105
|
+
--ease-in-out: cubic-bezier(.4, 0, .2, 1);
|
|
104
106
|
--animate-spin: spin 1s linear infinite;
|
|
105
107
|
--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
|
|
106
108
|
--default-transition-duration: .15s;
|
|
107
109
|
--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
|
|
108
110
|
--default-font-family: var(--font-sans);
|
|
109
111
|
--default-mono-font-family: var(--font-mono);
|
|
112
|
+
--radius-xxl: calc(var(--radius) + 10px);
|
|
110
113
|
--font-geist: var(--font-geist);
|
|
111
114
|
--font-geist-mono: var(--font-geist-mono);
|
|
112
115
|
--font-inter: var(--font-inter);
|
|
@@ -320,6 +323,9 @@
|
|
|
320
323
|
.velora-widget.velora-widget .pointer-events-none {
|
|
321
324
|
pointer-events: none;
|
|
322
325
|
}
|
|
326
|
+
.velora-widget.velora-widget .visible {
|
|
327
|
+
visibility: visible;
|
|
328
|
+
}
|
|
323
329
|
.velora-widget.velora-widget .absolute {
|
|
324
330
|
position: absolute;
|
|
325
331
|
}
|
|
@@ -522,6 +528,9 @@
|
|
|
522
528
|
.velora-widget.velora-widget .hidden {
|
|
523
529
|
display: none;
|
|
524
530
|
}
|
|
531
|
+
.velora-widget.velora-widget .inline {
|
|
532
|
+
display: inline;
|
|
533
|
+
}
|
|
525
534
|
.velora-widget.velora-widget .inline-flex {
|
|
526
535
|
display: inline-flex;
|
|
527
536
|
}
|
|
@@ -568,6 +577,10 @@
|
|
|
568
577
|
width: 16px;
|
|
569
578
|
height: 16px;
|
|
570
579
|
}
|
|
580
|
+
.velora-widget.velora-widget .size-\[20px\] {
|
|
581
|
+
width: 20px;
|
|
582
|
+
height: 20px;
|
|
583
|
+
}
|
|
571
584
|
.velora-widget.velora-widget .size-\[24px\] {
|
|
572
585
|
width: 24px;
|
|
573
586
|
height: 24px;
|
|
@@ -628,6 +641,9 @@
|
|
|
628
641
|
.velora-widget.velora-widget .h-\[34px\] {
|
|
629
642
|
height: 34px;
|
|
630
643
|
}
|
|
644
|
+
.velora-widget.velora-widget .h-\[35px\] {
|
|
645
|
+
height: 35px;
|
|
646
|
+
}
|
|
631
647
|
.velora-widget.velora-widget .h-\[36px\] {
|
|
632
648
|
height: 36px;
|
|
633
649
|
}
|
|
@@ -646,8 +662,8 @@
|
|
|
646
662
|
.velora-widget.velora-widget .h-\[168px\] {
|
|
647
663
|
height: 168px;
|
|
648
664
|
}
|
|
649
|
-
.velora-widget.velora-widget .h-\[
|
|
650
|
-
height:
|
|
665
|
+
.velora-widget.velora-widget .h-\[528px\] {
|
|
666
|
+
height: 528px;
|
|
651
667
|
}
|
|
652
668
|
.velora-widget.velora-widget .h-\[590px\] {
|
|
653
669
|
height: 590px;
|
|
@@ -733,9 +749,6 @@
|
|
|
733
749
|
.velora-widget.velora-widget .w-min {
|
|
734
750
|
width: min-content;
|
|
735
751
|
}
|
|
736
|
-
.velora-widget.velora-widget .w-screen {
|
|
737
|
-
width: 100vw;
|
|
738
|
-
}
|
|
739
752
|
.velora-widget.velora-widget .max-w-3xl {
|
|
740
753
|
max-width: var(--container-3xl);
|
|
741
754
|
}
|
|
@@ -871,6 +884,9 @@
|
|
|
871
884
|
.velora-widget.velora-widget .flex-col-reverse {
|
|
872
885
|
flex-direction: column-reverse;
|
|
873
886
|
}
|
|
887
|
+
.velora-widget.velora-widget .flex-wrap {
|
|
888
|
+
flex-wrap: wrap;
|
|
889
|
+
}
|
|
874
890
|
.velora-widget.velora-widget .items-center {
|
|
875
891
|
align-items: center;
|
|
876
892
|
}
|
|
@@ -951,6 +967,15 @@
|
|
|
951
967
|
margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
|
|
952
968
|
margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
|
|
953
969
|
}
|
|
970
|
+
.velora-widget.velora-widget .gap-x-2 {
|
|
971
|
+
column-gap: calc(var(--spacing) * 2);
|
|
972
|
+
}
|
|
973
|
+
.velora-widget.velora-widget .gap-y-2 {
|
|
974
|
+
row-gap: calc(var(--spacing) * 2);
|
|
975
|
+
}
|
|
976
|
+
.velora-widget.velora-widget .gap-y-3 {
|
|
977
|
+
row-gap: calc(var(--spacing) * 3);
|
|
978
|
+
}
|
|
954
979
|
.velora-widget.velora-widget .self-start {
|
|
955
980
|
align-self: flex-start;
|
|
956
981
|
}
|
|
@@ -1247,6 +1272,9 @@
|
|
|
1247
1272
|
.velora-widget.velora-widget .px-\[6px\] {
|
|
1248
1273
|
padding-inline: 6px;
|
|
1249
1274
|
}
|
|
1275
|
+
.velora-widget.velora-widget .px-\[11px\] {
|
|
1276
|
+
padding-inline: 11px;
|
|
1277
|
+
}
|
|
1250
1278
|
.velora-widget.velora-widget .px-\[12px\] {
|
|
1251
1279
|
padding-inline: 12px;
|
|
1252
1280
|
}
|
|
@@ -1545,12 +1573,18 @@
|
|
|
1545
1573
|
.velora-widget.velora-widget .underline-offset-4 {
|
|
1546
1574
|
text-underline-offset: 4px;
|
|
1547
1575
|
}
|
|
1576
|
+
.velora-widget.velora-widget .opacity-0 {
|
|
1577
|
+
opacity: 0;
|
|
1578
|
+
}
|
|
1548
1579
|
.velora-widget.velora-widget .opacity-50 {
|
|
1549
1580
|
opacity: .5;
|
|
1550
1581
|
}
|
|
1551
1582
|
.velora-widget.velora-widget .opacity-70 {
|
|
1552
1583
|
opacity: .7;
|
|
1553
1584
|
}
|
|
1585
|
+
.velora-widget.velora-widget .opacity-75 {
|
|
1586
|
+
opacity: .75;
|
|
1587
|
+
}
|
|
1554
1588
|
.velora-widget.velora-widget .shadow-2xl {
|
|
1555
1589
|
--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, #00000040);
|
|
1556
1590
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -1652,6 +1686,11 @@
|
|
|
1652
1686
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1653
1687
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1654
1688
|
}
|
|
1689
|
+
.velora-widget.velora-widget .transition-colors {
|
|
1690
|
+
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
|
|
1691
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1692
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1693
|
+
}
|
|
1655
1694
|
.velora-widget.velora-widget .transition-opacity {
|
|
1656
1695
|
transition-property: opacity;
|
|
1657
1696
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -1673,6 +1712,10 @@
|
|
|
1673
1712
|
--tw-duration: .3s;
|
|
1674
1713
|
transition-duration: .3s;
|
|
1675
1714
|
}
|
|
1715
|
+
.velora-widget.velora-widget .ease-in-out {
|
|
1716
|
+
--tw-ease: var(--ease-in-out);
|
|
1717
|
+
transition-timing-function: var(--ease-in-out);
|
|
1718
|
+
}
|
|
1676
1719
|
.velora-widget.velora-widget .\!select-text {
|
|
1677
1720
|
-webkit-user-select: text !important;
|
|
1678
1721
|
user-select: text !important;
|
|
@@ -1695,6 +1738,9 @@
|
|
|
1695
1738
|
.velora-widget.velora-widget .zoom-in-95 {
|
|
1696
1739
|
--tw-enter-scale: .95;
|
|
1697
1740
|
}
|
|
1741
|
+
.velora-widget.velora-widget .\[scrollbar-gutter\:stable_both-edges\] {
|
|
1742
|
+
scrollbar-gutter: stable both-edges;
|
|
1743
|
+
}
|
|
1698
1744
|
.velora-widget.velora-widget .running {
|
|
1699
1745
|
animation-play-state: running;
|
|
1700
1746
|
}
|
|
@@ -1845,6 +1891,11 @@
|
|
|
1845
1891
|
opacity: 1;
|
|
1846
1892
|
}
|
|
1847
1893
|
|
|
1894
|
+
.velora-widget.velora-widget .hover\:shadow-\[0_1px_6px_0_rgba\(0\,0\,0\,0\.15\)\]:hover {
|
|
1895
|
+
--tw-shadow: 0 1px 6px 0 var(--tw-shadow-color, #00000026);
|
|
1896
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1897
|
+
}
|
|
1898
|
+
|
|
1848
1899
|
.velora-widget.velora-widget .hover\:outline-1:hover {
|
|
1849
1900
|
outline-style: var(--tw-outline-style);
|
|
1850
1901
|
outline-width: 1px;
|
|
@@ -1886,6 +1937,9 @@
|
|
|
1886
1937
|
outline: 2px solid #0000;
|
|
1887
1938
|
}
|
|
1888
1939
|
}
|
|
1940
|
+
.velora-widget.velora-widget .focus-visible\:rounded-xs:focus-visible {
|
|
1941
|
+
border-radius: calc(var(--radius) - 4px);
|
|
1942
|
+
}
|
|
1889
1943
|
.velora-widget.velora-widget .focus-visible\:border-brand-2:focus-visible {
|
|
1890
1944
|
border-color: var(--brand-2);
|
|
1891
1945
|
}
|
|
@@ -1912,6 +1966,10 @@
|
|
|
1912
1966
|
--tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
|
|
1913
1967
|
}
|
|
1914
1968
|
}
|
|
1969
|
+
.velora-widget.velora-widget .focus-visible\:outline-none:focus-visible {
|
|
1970
|
+
--tw-outline-style: none;
|
|
1971
|
+
outline-style: none;
|
|
1972
|
+
}
|
|
1915
1973
|
.velora-widget.velora-widget .disabled\:pointer-events-none:disabled {
|
|
1916
1974
|
pointer-events: none;
|
|
1917
1975
|
}
|
|
@@ -2038,7 +2096,7 @@
|
|
|
2038
2096
|
background-color: var(--secondary-shamrock_green-2);
|
|
2039
2097
|
}
|
|
2040
2098
|
.velora-widget.velora-widget .data-\[state\=closed\]\:animate-accordion-up[data-state="closed"] {
|
|
2041
|
-
animation: accordion-up var(--tw-animation-duration, var(--tw-duration, .2s)) ease-out;
|
|
2099
|
+
animation: accordion-up var(--tw-animation-duration, var(--tw-duration, .2s)) var(--tw-ease, ease-out) var(--tw-animation-delay, 0s) var(--tw-animation-iteration-count, 1) var(--tw-animation-direction, normal) var(--tw-animation-fill-mode, none);
|
|
2042
2100
|
}
|
|
2043
2101
|
.velora-widget.velora-widget .data-\[state\=closed\]\:animate-out[data-state="closed"] {
|
|
2044
2102
|
animation: exit var(--tw-animation-duration, var(--tw-duration, .15s)) var(--tw-ease, ease) var(--tw-animation-delay, 0s) var(--tw-animation-iteration-count, 1) var(--tw-animation-direction, normal) var(--tw-animation-fill-mode, none);
|
|
@@ -2050,7 +2108,7 @@
|
|
|
2050
2108
|
--tw-exit-scale: .95;
|
|
2051
2109
|
}
|
|
2052
2110
|
.velora-widget.velora-widget .data-\[state\=open\]\:animate-accordion-down[data-state="open"] {
|
|
2053
|
-
animation: accordion-down var(--tw-animation-duration, var(--tw-duration, .2s)) ease-out;
|
|
2111
|
+
animation: accordion-down var(--tw-animation-duration, var(--tw-duration, .2s)) var(--tw-ease, ease-out) var(--tw-animation-delay, 0s) var(--tw-animation-iteration-count, 1) var(--tw-animation-direction, normal) var(--tw-animation-fill-mode, none);
|
|
2054
2112
|
}
|
|
2055
2113
|
.velora-widget.velora-widget .data-\[state\=open\]\:animate-in[data-state="open"] {
|
|
2056
2114
|
animation: enter var(--tw-animation-duration, var(--tw-duration, .15s)) var(--tw-ease, ease) var(--tw-animation-delay, 0s) var(--tw-animation-iteration-count, 1) var(--tw-animation-direction, normal) var(--tw-animation-fill-mode, none);
|
|
@@ -2335,6 +2393,15 @@
|
|
|
2335
2393
|
}
|
|
2336
2394
|
}
|
|
2337
2395
|
|
|
2396
|
+
.velora-widget.velora-widget .dark\:hover\:outline-1:is(.velora-widget.dark *):hover {
|
|
2397
|
+
outline-style: var(--tw-outline-style);
|
|
2398
|
+
outline-width: 1px;
|
|
2399
|
+
}
|
|
2400
|
+
|
|
2401
|
+
.velora-widget.velora-widget .dark\:hover\:outline-black:is(.velora-widget.dark *):hover {
|
|
2402
|
+
outline-color: var(--color-black);
|
|
2403
|
+
}
|
|
2404
|
+
|
|
2338
2405
|
.velora-widget.velora-widget .dark\:hover\:outline-contrast-5:is(.velora-widget.dark *):hover {
|
|
2339
2406
|
outline-color: var(--contrast-5);
|
|
2340
2407
|
}
|
|
@@ -2660,6 +2727,7 @@
|
|
|
2660
2727
|
}
|
|
2661
2728
|
.velora-widget {
|
|
2662
2729
|
font-family: var(--font-inter);
|
|
2730
|
+
border-radius: var(--radius-xxl);
|
|
2663
2731
|
max-width: 460px;
|
|
2664
2732
|
position: relative;
|
|
2665
2733
|
}
|
|
@@ -2847,6 +2915,10 @@
|
|
|
2847
2915
|
syntax: "*";
|
|
2848
2916
|
inherits: false
|
|
2849
2917
|
}
|
|
2918
|
+
@property --tw-ease {
|
|
2919
|
+
syntax: "*";
|
|
2920
|
+
inherits: false
|
|
2921
|
+
}
|
|
2850
2922
|
@property --tw-text-shadow-color {
|
|
2851
2923
|
syntax: "*";
|
|
2852
2924
|
inherits: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../src/tokens/lists/constants.ts"],"sourcesContent":["import { filterUnique, gatherObjectsByProp } from \"@/lib/utils\";\nimport type { TokenListDownloadData } from \"./types\";\n\nimport TokenLists from \"./lists.json\";\n\n// filter out lists with duplicate `url` or `filename` so we don't load or fallback to potentially wrong list\n// which shouldn't happen as long as we keep `lists.json` lists unique.\n\n// In UI it makes sense to skip such malformed duplicate lists, rather than hard break\nconst UniqueTokenLists: TokenListDownloadData[] = filterUnique(\n // have to cast chainId: string to \"multi\"\n TokenLists as TokenListDownloadData[],\n // account for one list being used on multiple chains\n (list) => [list.url + list.chainId, list.filename + list.chainId]\n);\n\nexport const url2TokenList = gatherObjectsByProp<TokenListDownloadData>(\n UniqueTokenLists,\n (list) => list.url\n);\n\nexport const urlChain2TokenList = gatherObjectsByProp<TokenListDownloadData>(\n UniqueTokenLists,\n (list) => `${list.url}@${list.chainId}`\n);\n\nexport const chainId2TokenListURLs = gatherObjectsByProp<\n TokenListDownloadData,\n { all: string[]; enabled: string[] }\n>(\n UniqueTokenLists,\n (list) => String(list.chainId),\n (list, accumElem) => {\n const acc = accumElem || { all: [], enabled: [] };\n // so far only auxiliary stablecoins list is multichain\n if (list.chainId === \"multi\") return acc;\n\n acc.all.push(list.url);\n\n if (list.onByDefault) {\n acc.enabled.push(list.url);\n }\n\n return acc;\n }\n);\n\nexport const FALLBACK_CDN_URL = \"https://cdn.paraswap.io/web/token-lists\";\n"],"names":["UniqueTokenLists","filterUnique","TokenLists","list","url","chainId","filename","url2TokenList","gatherObjectsByProp","urlChain2TokenList","chainId2TokenListURLs","String","accumElem","acc","all","enabled","push","onByDefault","FALLBACK_CDN_URL"],"mappings":";;;AASA,MAAMA,gBAAAA,GAA4CC,YAAAA;AAAAA;AAAAA,EAEhDC,WAAAA;AAAAA;AAAAA,EAECC,CAAAA,IAAAA,KAAS,CAACA,IAAAA,CAAKC,GAAAA,GAAMD,KAAKE,OAAAA,EAASF,IAAAA,CAAKG,QAAAA,GAAWH,IAAAA,CAAKE,OAAO;AAClE,CAAA;AAEO,MAAME,aAAAA,GAAgBC,mBAAAA,CAC3BR,gBAAAA,EACCG,CAAAA,IAAAA,KAASA,KAAKC,GACjB;AAEO,MAAMK,kBAAAA,GAAqBD,mBAAAA,CAChCR,gBAAAA,EACCG,CAAAA,IAAAA,KAAS,CAAA,EAAGA,KAAKC,GAAG,CAAA,CAAA,EAAID,IAAAA,CAAKE,OAAO,CAAA,CACvC;AAEO,MAAMK,qBAAAA,GAAwBF,mBAAAA,CAInCR,gBAAAA,EACCG,CAAAA,IAAAA,KAASQ,MAAAA,CAAOR,KAAKE,OAAO,CAAA,EAC7B,CAACF,IAAAA,EAAMS,SAAAA,KAAc;AACnB,EAAA,MAAMC,MAAMD,SAAAA,IAAa;AAAA,IAAEE,KAAK,EAAA;AAAA,IAAIC,SAAS;AAAA,GAAG;AAEhD,EAAA,IAAIZ,IAAAA,CAAKE,OAAAA,KAAY,OAAA,EAAS,OAAOQ,GAAAA;AAErCA,EAAAA,GAAAA,CAAIC,GAAAA,CAAIE,IAAAA,CAAKb,IAAAA,CAAKC,GAAG,CAAA;AAErB,EAAA,IAAID,KAAKc,WAAAA,EAAa;AACpBJ,IAAAA,GAAAA,CAAIE,OAAAA,CAAQC,IAAAA,CAAKb,IAAAA,CAAKC,GAAG,CAAA;AAAA;
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../src/tokens/lists/constants.ts"],"sourcesContent":["import { filterUnique, gatherObjectsByProp } from \"@/lib/utils\";\nimport type { TokenListDownloadData } from \"./types\";\n\nimport TokenLists from \"./lists.json\";\n\n// filter out lists with duplicate `url` or `filename` so we don't load or fallback to potentially wrong list\n// which shouldn't happen as long as we keep `lists.json` lists unique.\n\n// In UI it makes sense to skip such malformed duplicate lists, rather than hard break\nconst UniqueTokenLists: TokenListDownloadData[] = filterUnique(\n // have to cast chainId: string to \"multi\"\n TokenLists as TokenListDownloadData[],\n // account for one list being used on multiple chains\n (list) => [list.url + list.chainId, list.filename + list.chainId]\n);\n\nexport const url2TokenList = gatherObjectsByProp<TokenListDownloadData>(\n UniqueTokenLists,\n (list) => list.url\n);\n\nexport const urlChain2TokenList = gatherObjectsByProp<TokenListDownloadData>(\n UniqueTokenLists,\n (list) => `${list.url}@${list.chainId}`\n);\n\nexport const chainId2TokenListURLs = gatherObjectsByProp<\n TokenListDownloadData,\n { all: string[]; enabled: string[] }\n>(\n UniqueTokenLists,\n (list) => String(list.chainId),\n (list, accumElem) => {\n const acc = accumElem || { all: [], enabled: [] };\n // so far only auxiliary stablecoins list is multichain\n if (list.chainId === \"multi\") return acc;\n\n acc.all.push(list.url);\n\n if (list.onByDefault) {\n acc.enabled.push(list.url);\n }\n\n return acc;\n }\n);\n\nexport const FALLBACK_CDN_URL = \"https://cdn.paraswap.io/web/token-lists\";\n"],"names":["UniqueTokenLists","filterUnique","TokenLists","list","url","chainId","filename","url2TokenList","gatherObjectsByProp","urlChain2TokenList","chainId2TokenListURLs","String","accumElem","acc","all","enabled","push","onByDefault","FALLBACK_CDN_URL"],"mappings":";;;AASA,MAAMA,gBAAAA,GAA4CC,YAAAA;AAAAA;AAAAA,EAEhDC,WAAAA;AAAAA;AAAAA,EAECC,CAAAA,IAAAA,KAAS,CAACA,IAAAA,CAAKC,GAAAA,GAAMD,KAAKE,OAAAA,EAASF,IAAAA,CAAKG,QAAAA,GAAWH,IAAAA,CAAKE,OAAO;AAClE,CAAA;AAEO,MAAME,aAAAA,GAAgBC,mBAAAA,CAC3BR,gBAAAA,EACCG,CAAAA,IAAAA,KAASA,KAAKC,GACjB;AAEO,MAAMK,kBAAAA,GAAqBD,mBAAAA,CAChCR,gBAAAA,EACCG,CAAAA,IAAAA,KAAS,CAAA,EAAGA,KAAKC,GAAG,CAAA,CAAA,EAAID,IAAAA,CAAKE,OAAO,CAAA,CACvC;AAEO,MAAMK,qBAAAA,GAAwBF,mBAAAA,CAInCR,gBAAAA,EACCG,CAAAA,IAAAA,KAASQ,MAAAA,CAAOR,KAAKE,OAAO,CAAA,EAC7B,CAACF,IAAAA,EAAMS,SAAAA,KAAc;AACnB,EAAA,MAAMC,MAAMD,SAAAA,IAAa;AAAA,IAAEE,KAAK,EAAA;AAAA,IAAIC,SAAS;AAAA,GAAG;AAEhD,EAAA,IAAIZ,IAAAA,CAAKE,OAAAA,KAAY,OAAA,EAAS,OAAOQ,GAAAA;AAErCA,EAAAA,GAAAA,CAAIC,GAAAA,CAAIE,IAAAA,CAAKb,IAAAA,CAAKC,GAAG,CAAA;AAErB,EAAA,IAAID,KAAKc,WAAAA,EAAa;AACpBJ,IAAAA,GAAAA,CAAIE,OAAAA,CAAQC,IAAAA,CAAKb,IAAAA,CAAKC,GAAG,CAAA;AAAA,EAC3B;AAEA,EAAA,OAAOS,GAAAA;AACT,CACF;AAEO,MAAMK,gBAAAA,GAAmB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sources":["../../../src/tokens/lists/download.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { TokenList } from \"@uniswap/token-lists\";\n\nimport { url2TokenList, FALLBACK_CDN_URL } from \"./constants\";\n\nexport const downloadTokenListDataWithFallback = async (\n listURL: string,\n signal?: AbortSignal\n): Promise<TokenList> => {\n try {\n // from the direct url\n const { data } = await axios.get<TokenList>(listURL, {\n signal,\n });\n // @ts-expect-error malformed tokenList.version\n if (data.version.major === null) data.version.major = 0; // https://tokens.coingecko.com/xdai/all.json has `null`\n // @ts-expect-error malformed tokenList.version\n if (data.version.minor === null) data.version.minor = 0;\n // @ts-expect-error malformed tokenList.version\n if (data.version.patch === null) data.version.patch = 0;\n return data;\n } catch (error) {\n const { filename } = url2TokenList[listURL] || {};\n\n if (!filename) throw error;\n\n const url = `${FALLBACK_CDN_URL}/${filename}.json`;\n\n // from fallback on CDN\n const { data } = await axios.get<TokenList>(url, {\n signal,\n });\n\n return data;\n }\n};\n"],"names":["downloadTokenListDataWithFallback","listURL","signal","data","axios","get","version","major","minor","patch","error","filename","url2TokenList","url","FALLBACK_CDN_URL"],"mappings":";;;AAKO,MAAMA,iCAAAA,GAAoC,OAC/CC,OAAAA,EACAC,MAAAA,KACuB;AACvB,EAAA,IAAI;AAEF,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAK,GAAI,MAAMC,KAAAA,CAAMC,GAAAA,CAAeJ,OAAAA,EAAS;AAAA,MACnDC;AAAAA,KACD,CAAA;AAED,IAAA,IAAIC,KAAKG,OAAAA,CAAQC,KAAAA,KAAU,IAAA,EAAMJ,IAAAA,CAAKG,QAAQC,KAAAA,GAAQ,CAAA;AAEtD,IAAA,IAAIJ,KAAKG,OAAAA,CAAQE,KAAAA,KAAU,IAAA,EAAML,IAAAA,CAAKG,QAAQE,KAAAA,GAAQ,CAAA;AAEtD,IAAA,IAAIL,KAAKG,OAAAA,CAAQG,KAAAA,KAAU,IAAA,EAAMN,IAAAA,CAAKG,QAAQG,KAAAA,GAAQ,CAAA;AACtD,IAAA,OAAON,IAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"download.js","sources":["../../../src/tokens/lists/download.ts"],"sourcesContent":["import axios from \"axios\";\nimport type { TokenList } from \"@uniswap/token-lists\";\n\nimport { url2TokenList, FALLBACK_CDN_URL } from \"./constants\";\n\nexport const downloadTokenListDataWithFallback = async (\n listURL: string,\n signal?: AbortSignal\n): Promise<TokenList> => {\n try {\n // from the direct url\n const { data } = await axios.get<TokenList>(listURL, {\n signal,\n });\n // @ts-expect-error malformed tokenList.version\n if (data.version.major === null) data.version.major = 0; // https://tokens.coingecko.com/xdai/all.json has `null`\n // @ts-expect-error malformed tokenList.version\n if (data.version.minor === null) data.version.minor = 0;\n // @ts-expect-error malformed tokenList.version\n if (data.version.patch === null) data.version.patch = 0;\n return data;\n } catch (error) {\n const { filename } = url2TokenList[listURL] || {};\n\n if (!filename) throw error;\n\n const url = `${FALLBACK_CDN_URL}/${filename}.json`;\n\n // from fallback on CDN\n const { data } = await axios.get<TokenList>(url, {\n signal,\n });\n\n return data;\n }\n};\n"],"names":["downloadTokenListDataWithFallback","listURL","signal","data","axios","get","version","major","minor","patch","error","filename","url2TokenList","url","FALLBACK_CDN_URL"],"mappings":";;;AAKO,MAAMA,iCAAAA,GAAoC,OAC/CC,OAAAA,EACAC,MAAAA,KACuB;AACvB,EAAA,IAAI;AAEF,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAK,GAAI,MAAMC,KAAAA,CAAMC,GAAAA,CAAeJ,OAAAA,EAAS;AAAA,MACnDC;AAAAA,KACD,CAAA;AAED,IAAA,IAAIC,KAAKG,OAAAA,CAAQC,KAAAA,KAAU,IAAA,EAAMJ,IAAAA,CAAKG,QAAQC,KAAAA,GAAQ,CAAA;AAEtD,IAAA,IAAIJ,KAAKG,OAAAA,CAAQE,KAAAA,KAAU,IAAA,EAAML,IAAAA,CAAKG,QAAQE,KAAAA,GAAQ,CAAA;AAEtD,IAAA,IAAIL,KAAKG,OAAAA,CAAQG,KAAAA,KAAU,IAAA,EAAMN,IAAAA,CAAKG,QAAQG,KAAAA,GAAQ,CAAA;AACtD,IAAA,OAAON,IAAAA;AAAAA,EACT,SAASO,KAAAA,EAAO;AACd,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAS,GAAIC,aAAAA,CAAcX,OAAO,CAAA,IAAK,EAAC;AAEhD,IAAA,IAAI,CAACU,UAAU,MAAMD,KAAAA;AAErB,IAAA,MAAMG,GAAAA,GAAM,CAAA,EAAGC,gBAAgB,CAAA,CAAA,EAAIH,QAAQ,CAAA,KAAA,CAAA;AAG3C,IAAA,MAAM;AAAA,MAAER;AAAAA,KAAK,GAAI,MAAMC,KAAAA,CAAMC,GAAAA,CAAeQ,GAAAA,EAAK;AAAA,MAC/CX;AAAAA,KACD,CAAA;AAED,IAAA,OAAOC,IAAAA;AAAAA,EACT;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../src/tokens/lists/hooks.ts"],"sourcesContent":["import { useAtomValue } from \"jotai\";\nimport { useMemo } from \"react\";\nimport { tokenListsAtom } from \"./state/tokenListsStateAtom\";\n\nexport function useAllTokenLists(): string[] {\n const allTokenListsState = useAtomValue(tokenListsAtom);\n\n return useMemo(\n () => Object.values(allTokenListsState).flatMap((lists) => lists.all),\n [allTokenListsState]\n );\n}\n"],"names":["useAllTokenLists","$","_c","allTokenListsState","useAtomValue","tokenListsAtom","t0","t1","Object","values","flatMap","_temp","lists","all"],"mappings":";;;;;AAIO,SAAAA,gBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,kBAAAA,GAA2BC,aAAAC,cAA2B,CAAA;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAN,CAAAA,QAAAE,kBAAAA,EAAA;AAGhDI,IAAAA,EAAAA,GAAAC,MAAAA,CAAAC,MAAAA,CAAcN,kBAAkB,CAAA,CAACO,QAAAC,KAA6B,CAAA;AAACV,IAAAA,CAAAA,MAAAE,kBAAAA;AAAAF,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../src/tokens/lists/hooks.ts"],"sourcesContent":["import { useAtomValue } from \"jotai\";\nimport { useMemo } from \"react\";\nimport { tokenListsAtom } from \"./state/tokenListsStateAtom\";\n\nexport function useAllTokenLists(): string[] {\n const allTokenListsState = useAtomValue(tokenListsAtom);\n\n return useMemo(\n () => Object.values(allTokenListsState).flatMap((lists) => lists.all),\n [allTokenListsState]\n );\n}\n"],"names":["useAllTokenLists","$","_c","allTokenListsState","useAtomValue","tokenListsAtom","t0","t1","Object","values","flatMap","_temp","lists","all"],"mappings":";;;;;AAIO,SAAAA,gBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,kBAAAA,GAA2BC,aAAAC,cAA2B,CAAA;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAN,CAAAA,QAAAE,kBAAAA,EAAA;AAGhDI,IAAAA,EAAAA,GAAAC,MAAAA,CAAAC,MAAAA,CAAcN,kBAAkB,CAAA,CAACO,QAAAC,KAA6B,CAAA;AAACV,IAAAA,CAAAA,MAAAE,kBAAAA;AAAAF,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AAAAK,EAAAA,EAAAA,GAA/DC,EAAAA;AAA+D,EAAA,OADhED,EAAAA;AAGN;AANI,SAAAK,MAAAC,KAAAA,EAAA;AAAA,EAAA,OAIwDA,KAAAA,CAAKC,GAAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.js","sources":["../../../../src/tokens/lists/state/observer.ts"],"sourcesContent":["import { produceQueryOptions } from \"../../queries\";\nimport type { TokenListCompiled, TokenListFetched } from \"../../types\";\nimport { QueriesObserver, type UseQueryResult } from \"@tanstack/react-query\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { EnabledAndDefaultTokenURLS } from \"./tokenListsStateAtom\";\nimport { getDefaultStore } from \"jotai\";\n\nconst listUrls = Object.values(EnabledAndDefaultTokenURLS).flatMap(\n (lists) => lists.all\n);\n\n// observer to have the latest lists available in the store\nexport function observeTokenLists() {\n return new QueriesObserver(\n queryClient,\n produceQueryOptions(listUrls)\n ).subscribe((queriesResult) => {\n // grab the fetched lists from the queries\n const availableLists = (queriesResult as UseQueryResult<TokenListFetched>[])\n .map((query) => query.data)\n .filter((list): list is TokenListCompiled => !!list?.available);\n\n if (availableLists.length > 0)\n // and put them in the store\n getDefaultStore().set(addTokenListsAtom, availableLists);\n });\n}\n"],"names":["listUrls","Object","values","EnabledAndDefaultTokenURLS","flatMap","lists","all","observeTokenLists","QueriesObserver","queryClient","produceQueryOptions","subscribe","queriesResult","availableLists","map","query","data","filter","list","available","length","getDefaultStore","set","addTokenListsAtom"],"mappings":";;;;;;;AAQA,MAAMA,QAAAA,GAAWC,OAAOC,MAAAA,CAAOC,0BAA0B,EAAEC,OAAAA,CACxDC,CAAAA,KAAAA,KAAUA,MAAMC,GACnB,CAAA;AAGO,SAASC,iBAAAA,GAAoB;AAClC,EAAA,OAAO,IAAIC,gBACTC,WAAAA,EACAC,mBAAAA,CAAoBV,QAAQ,CAC9B,CAAA,CAAEW,UAAWC,CAAAA,aAAAA,KAAkB;AAE7B,IAAA,MAAMC,cAAAA,GAAkBD,aAAAA,CACrBE,GAAAA,CAAKC,CAAAA,KAAAA,KAAUA,KAAAA,CAAMC,IAAI,CAAA,CACzBC,MAAAA,CAAO,CAACC,IAAAA,KAAoC,CAAC,CAACA,MAAMC,SAAS,CAAA;AAEhE,IAAA,IAAIN,eAAeO,MAAAA,GAAS,CAAA;AAE1BC,MAAAA,eAAAA,EAAgB,CAAEC,GAAAA,CAAIC,iBAAAA,EAAmBV,cAAc,CAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"observer.js","sources":["../../../../src/tokens/lists/state/observer.ts"],"sourcesContent":["import { produceQueryOptions } from \"../../queries\";\nimport type { TokenListCompiled, TokenListFetched } from \"../../types\";\nimport { QueriesObserver, type UseQueryResult } from \"@tanstack/react-query\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { EnabledAndDefaultTokenURLS } from \"./tokenListsStateAtom\";\nimport { getDefaultStore } from \"jotai\";\n\nconst listUrls = Object.values(EnabledAndDefaultTokenURLS).flatMap(\n (lists) => lists.all\n);\n\n// observer to have the latest lists available in the store\nexport function observeTokenLists() {\n return new QueriesObserver(\n queryClient,\n produceQueryOptions(listUrls)\n ).subscribe((queriesResult) => {\n // grab the fetched lists from the queries\n const availableLists = (queriesResult as UseQueryResult<TokenListFetched>[])\n .map((query) => query.data)\n .filter((list): list is TokenListCompiled => !!list?.available);\n\n if (availableLists.length > 0)\n // and put them in the store\n getDefaultStore().set(addTokenListsAtom, availableLists);\n });\n}\n"],"names":["listUrls","Object","values","EnabledAndDefaultTokenURLS","flatMap","lists","all","observeTokenLists","QueriesObserver","queryClient","produceQueryOptions","subscribe","queriesResult","availableLists","map","query","data","filter","list","available","length","getDefaultStore","set","addTokenListsAtom"],"mappings":";;;;;;;AAQA,MAAMA,QAAAA,GAAWC,OAAOC,MAAAA,CAAOC,0BAA0B,EAAEC,OAAAA,CACxDC,CAAAA,KAAAA,KAAUA,MAAMC,GACnB,CAAA;AAGO,SAASC,iBAAAA,GAAoB;AAClC,EAAA,OAAO,IAAIC,gBACTC,WAAAA,EACAC,mBAAAA,CAAoBV,QAAQ,CAC9B,CAAA,CAAEW,UAAWC,CAAAA,aAAAA,KAAkB;AAE7B,IAAA,MAAMC,cAAAA,GAAkBD,aAAAA,CACrBE,GAAAA,CAAKC,CAAAA,KAAAA,KAAUA,KAAAA,CAAMC,IAAI,CAAA,CACzBC,MAAAA,CAAO,CAACC,IAAAA,KAAoC,CAAC,CAACA,MAAMC,SAAS,CAAA;AAEhE,IAAA,IAAIN,eAAeO,MAAAA,GAAS,CAAA;AAE1BC,MAAAA,eAAAA,EAAgB,CAAEC,GAAAA,CAAIC,iBAAAA,EAAmBV,cAAc,CAAA;AAAA,EAC3D,CAAC,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenListsActionsAtom.js","sources":["../../../../src/tokens/lists/state/tokenListsActionsAtom.ts"],"sourcesContent":["import { filterInvalidTokenAddress } from \"@/lib/utils\";\nimport { constructTokenFromTokenInfoFactory } from \"@/tokens/constructor\";\nimport type {\n TokenInfoWithSupportedChainId,\n TokenListCompiled,\n} from \"@/tokens/types\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport { atom } from \"jotai\";\nimport { constructedTokensByURLAtom } from \"./tokenListsStateAtom\";\nimport type { ConstructedListsByURL } from \"./types\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\n// set(addTokenListsAtom) = fetchedLists => set(constructedTokensByURLAtom, from fetchedLists)\nexport const addTokenListsAtom = atom(\n null,\n (get, set, fetchedLists: TokenListCompiled[]) => {\n const constructedTokensByURL = get(constructedTokensByURLAtom);\n\n const updatedLists: ConstructedListsByURL = {};\n\n fetchedLists.forEach((fetchedList) => {\n const {\n url,\n data: { version },\n } = fetchedList;\n\n const prevList = constructedTokensByURL[url];\n\n // if current version in state >= incoming version, skip\n if (prevList && versionComparator(prevList.version, version) >= 0) return;\n\n const tokenConstructor = constructTokenFromTokenInfoFactory(fetchedList);\n\n const constructedTokens = fetchedList.data.tokens\n .filter(\n (token): token is TokenInfoWithSupportedChainId =>\n filterInvalidTokenAddress({ address: token.address }) &&\n isSupportedChainId(token.chainId)\n )\n .map(tokenConstructor);\n\n updatedLists[url] = {\n version,\n list: constructedTokens,\n };\n });\n\n set(constructedTokensByURLAtom, (prevState) => ({\n ...prevState,\n ...updatedLists,\n }));\n }\n);\n"],"names":["addTokenListsAtom","atom","get","set","fetchedLists","constructedTokensByURL","constructedTokensByURLAtom","updatedLists","forEach","fetchedList","url","data","version","prevList","versionComparator","tokenConstructor","constructTokenFromTokenInfoFactory","constructedTokens","tokens","filter","token","filterInvalidTokenAddress","address","isSupportedChainId","chainId","map","list","prevState"],"mappings":";;;;;;;AAaO,MAAMA,oBAAoBC,IAAAA,CAC/B,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKC,YAAAA,KAAsC;AAC/C,EAAA,MAAMC,sBAAAA,GAAyBH,IAAII,0BAA0B,CAAA;AAE7D,EAAA,MAAMC,eAAsC,EAAC;AAE7CH,EAAAA,YAAAA,CAAaI,QAASC,CAAAA,WAAAA,KAAgB;AACpC,IAAA,MAAM;AAAA,MACJC,GAAAA;AAAAA,MACAC,IAAAA,EAAM;AAAA,QAAEC;AAAAA;AAAQ,KAClB,GAAIH,WAAAA;AAEJ,IAAA,MAAMI,QAAAA,GAAWR,uBAAuBK,GAAG,CAAA;AAG3C,IAAA,IAAIG,YAAYC,iBAAAA,CAAkBD,QAAAA,CAASD,OAAAA,EAASA,OAAO,KAAK,CAAA,EAAG;AAEnE,IAAA,MAAMG,gBAAAA,GAAmBC,mCAAmCP,WAAW,CAAA;AAEvE,IAAA,MAAMQ,oBAAoBR,WAAAA,CAAYE,IAAAA,CAAKO,OACxCC,MAAAA,CACC,CAACC,UACCC,yBAAAA,CAA0B;AAAA,MAAEC,SAASF,KAAAA,CAAME;AAAAA,KAAS,KACpDC,kBAAAA,CAAmBH,KAAAA,CAAMI,OAAO,CACpC,CAAA,CACCC,IAAIV,gBAAgB,CAAA;AAEvBR,IAAAA,YAAAA,CAAaG,GAAG,CAAA,GAAI;AAAA,MAClBE,OAAAA;AAAAA,MACAc,IAAAA,EAAMT;AAAAA,KACR;AAAA,
|
|
1
|
+
{"version":3,"file":"tokenListsActionsAtom.js","sources":["../../../../src/tokens/lists/state/tokenListsActionsAtom.ts"],"sourcesContent":["import { filterInvalidTokenAddress } from \"@/lib/utils\";\nimport { constructTokenFromTokenInfoFactory } from \"@/tokens/constructor\";\nimport type {\n TokenInfoWithSupportedChainId,\n TokenListCompiled,\n} from \"@/tokens/types\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport { atom } from \"jotai\";\nimport { constructedTokensByURLAtom } from \"./tokenListsStateAtom\";\nimport type { ConstructedListsByURL } from \"./types\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\n// set(addTokenListsAtom) = fetchedLists => set(constructedTokensByURLAtom, from fetchedLists)\nexport const addTokenListsAtom = atom(\n null,\n (get, set, fetchedLists: TokenListCompiled[]) => {\n const constructedTokensByURL = get(constructedTokensByURLAtom);\n\n const updatedLists: ConstructedListsByURL = {};\n\n fetchedLists.forEach((fetchedList) => {\n const {\n url,\n data: { version },\n } = fetchedList;\n\n const prevList = constructedTokensByURL[url];\n\n // if current version in state >= incoming version, skip\n if (prevList && versionComparator(prevList.version, version) >= 0) return;\n\n const tokenConstructor = constructTokenFromTokenInfoFactory(fetchedList);\n\n const constructedTokens = fetchedList.data.tokens\n .filter(\n (token): token is TokenInfoWithSupportedChainId =>\n filterInvalidTokenAddress({ address: token.address }) &&\n isSupportedChainId(token.chainId)\n )\n .map(tokenConstructor);\n\n updatedLists[url] = {\n version,\n list: constructedTokens,\n };\n });\n\n set(constructedTokensByURLAtom, (prevState) => ({\n ...prevState,\n ...updatedLists,\n }));\n }\n);\n"],"names":["addTokenListsAtom","atom","get","set","fetchedLists","constructedTokensByURL","constructedTokensByURLAtom","updatedLists","forEach","fetchedList","url","data","version","prevList","versionComparator","tokenConstructor","constructTokenFromTokenInfoFactory","constructedTokens","tokens","filter","token","filterInvalidTokenAddress","address","isSupportedChainId","chainId","map","list","prevState"],"mappings":";;;;;;;AAaO,MAAMA,oBAAoBC,IAAAA,CAC/B,IAAA,EACA,CAACC,GAAAA,EAAKC,KAAKC,YAAAA,KAAsC;AAC/C,EAAA,MAAMC,sBAAAA,GAAyBH,IAAII,0BAA0B,CAAA;AAE7D,EAAA,MAAMC,eAAsC,EAAC;AAE7CH,EAAAA,YAAAA,CAAaI,QAASC,CAAAA,WAAAA,KAAgB;AACpC,IAAA,MAAM;AAAA,MACJC,GAAAA;AAAAA,MACAC,IAAAA,EAAM;AAAA,QAAEC;AAAAA;AAAQ,KAClB,GAAIH,WAAAA;AAEJ,IAAA,MAAMI,QAAAA,GAAWR,uBAAuBK,GAAG,CAAA;AAG3C,IAAA,IAAIG,YAAYC,iBAAAA,CAAkBD,QAAAA,CAASD,OAAAA,EAASA,OAAO,KAAK,CAAA,EAAG;AAEnE,IAAA,MAAMG,gBAAAA,GAAmBC,mCAAmCP,WAAW,CAAA;AAEvE,IAAA,MAAMQ,oBAAoBR,WAAAA,CAAYE,IAAAA,CAAKO,OACxCC,MAAAA,CACC,CAACC,UACCC,yBAAAA,CAA0B;AAAA,MAAEC,SAASF,KAAAA,CAAME;AAAAA,KAAS,KACpDC,kBAAAA,CAAmBH,KAAAA,CAAMI,OAAO,CACpC,CAAA,CACCC,IAAIV,gBAAgB,CAAA;AAEvBR,IAAAA,YAAAA,CAAaG,GAAG,CAAA,GAAI;AAAA,MAClBE,OAAAA;AAAAA,MACAc,IAAAA,EAAMT;AAAAA,KACR;AAAA,EACF,CAAC,CAAA;AAEDd,EAAAA,GAAAA,CAAIG,4BAA6BqB,CAAAA,SAAAA,MAAe;AAAA,IAC9C,GAAGA,SAAAA;AAAAA,IACH,GAAGpB;AAAAA,GACL,CAAE,CAAA;AACJ,CACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overrides.js","sources":["../../src/tokens/overrides.ts"],"sourcesContent":["import type { TokenInfo, TokenList } from \"@uniswap/token-lists\";\nimport type { TokenListOverride } from \"./types\";\n\n// AAVE and GHO tokens have deprecated logos in some lists\nconst AAVE_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/12645/large/aave-token-round.png?1720472354\",\n};\nconst GHO_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/30663/large/gho-token-logo.png?1720517092\",\n};\n\n// override decimals that we know are wrong in Gemini token list https://paraswap.slack.com/archives/C01AUMPP56J/p1669810101097819?thread_ts=1669804269.667909&cid=C01AUMPP56J\nconst TokenListsOverrides: Record<string, TokenListOverride> = {\n // Ethereum\n \"https://tokens.uniswap.org\": {\n merge: {\n \"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9\": AAVE_OverrideTokenInfo,\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\":\n {\n merge: {\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n // Optimism\n \"https://static.optimism.io/optimism.tokenlist.json\": {\n merge: {\n \"0x76fb31fb4af56892a25e32cfc43de717950c9278\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Avalanche\n \"https://raw.githubusercontent.com/pangolindex/tokenlists/main/pangolin.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n \"https://raw.githubusercontent.com/traderjoe-xyz/joe-tokenlists/main/mc.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Polygon\n \"https://unpkg.com/quickswap-default-token-list@latest/build/quickswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n \"https://unpkg.com/@cometh-game/default-token-list@latest/build/comethswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n\n // Arbitrum\n \"https://bridge.arbitrum.io/token-list-42161.json\": {\n // Gemini tokens list has been removed from our dApp, but we keep the overrides in case of similar issues in the future and a need of quick fix\n // \"https://www.gemini.com/uniswap/manifest.json\": {merge: {\n // \"0x6b0b3a982b4634ac68dd83a4dbf02311ce324181\": { decimals: 18 },\n // \"0xbb0e17ef65f82ab018d8edd776e8dd940327b28b\": { decimals: 18 },\n // \"0x18aaa7115705e8be94bffebde57af9bfc265b998\": { decimals: 18 },\n // }},\n // Arbitrum GMX is under an old address in the list\n remove: new Set([\"0x590020b1005b8b25f1a2c82c5f743c540dcfa24d\"]),\n },\n\n // Gnosis\n \"https://tokens.coingecko.com/xdai/all.json\": {\n merge: {\n \"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d\": { symbol: \"WXDAI\" },\n },\n },\n \"https://tokens.coingecko.com/polygon-pos/all.json\": {\n merge: {\n // MLN token with wrong decimals in the tokenList\n \"0xa9f37d84c856fda3812ad0519dad44fa0a3fe207\": { decimals: 18 },\n },\n },\n};\n\nexport function overrideTokenList(tokenList: TokenList, listURL: string) {\n const overrides = TokenListsOverrides[listURL];\n if (!overrides) return tokenList;\n\n const overriddenTokens = tokenList.tokens.reduce<TokenInfo[]>(\n (accum, tokenInfo) => {\n const remove = overrides.remove?.has(tokenInfo.address.toLowerCase());\n if (remove) return accum;\n\n const override = overrides?.merge?.[tokenInfo.address.toLowerCase()];\n const token = override ? { ...tokenInfo, ...override } : tokenInfo;\n\n accum.push(token);\n\n return accum;\n },\n []\n );\n\n if (overrides.add) {\n overriddenTokens.push(...overrides.add);\n }\n\n return { ...tokenList, tokens: overriddenTokens };\n}\n"],"names":["AAVE_OverrideTokenInfo","logoURI","GHO_OverrideTokenInfo","TokenListsOverrides","merge","symbol","name","remove","Set","decimals","overrideTokenList","tokenList","listURL","overrides","overriddenTokens","tokens","reduce","accum","tokenInfo","has","address","toLowerCase","override","token","push","add"],"mappings":"AAIA,MAAMA,sBAAAA,GAA6C;AAAA,EACjDC,OAAAA,EACE;AACJ,CAAA;AACA,MAAMC,qBAAAA,GAA4C;AAAA,EAChDD,OAAAA,EACE;AACJ,CAAA;AAGA,MAAME,mBAAAA,GAAyD;AAAA;AAAA,EAE7D,4BAAA,EAA8B;AAAA,IAC5BC,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8CJ,sBAAAA;AAAAA,MAC9C,4CAAA,EAA8CE;AAAAA;AAChD,GACF;AAAA,EAEA,4GAAA,EACE;AAAA,IACEE,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8CF;AAAAA;AAChD,GACF;AAAA;AAAA,EAGF,oDAAA,EAAsD;AAAA,IACpDE,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8CJ;AAAAA;AAChD,GACF;AAAA;AAAA,EAGA,uFAAA,EACE;AAAA,IACEI,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8CJ;AAAAA;AAChD,GACF;AAAA,EACF,uFAAA,EACE;AAAA,IACEI,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8CJ;AAAAA;AAChD,GACF;AAAA;AAAA,EAGF,8FAAA,EACE;AAAA,IACEI,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8CJ,sBAAAA;AAAAA,MAC9C,4CAAA,EAA8C;AAAA,QAC5CK,MAAAA,EAAQ,MAAA;AAAA,QACRC,IAAAA,EAAM;AAAA;AACR;AACF,GACF;AAAA,EACF,kGAAA,EACE;AAAA,IACEF,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8CJ,sBAAAA;AAAAA,MAC9C,4CAAA,EAA8C;AAAA,QAC5CK,MAAAA,EAAQ,MAAA;AAAA,QACRC,IAAAA,EAAM;AAAA;AACR;AACF,GACF;AAAA;AAAA,EAGF,kDAAA,EAAoD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQlDC,MAAAA,kBAAQ,IAAIC,GAAAA,CAAI,CAAC,4CAA4C,CAAC;AAAA,GAChE;AAAA;AAAA,EAGA,4CAAA,EAA8C;AAAA,IAC5CJ,KAAAA,EAAO;AAAA,MACL,4CAAA,EAA8C;AAAA,QAAEC,MAAAA,EAAQ;AAAA;AAAQ;AAClE,GACF;AAAA,EACA,mDAAA,EAAqD;AAAA,IACnDD,KAAAA,EAAO;AAAA;AAAA,MAEL,4CAAA,EAA8C;AAAA,QAAEK,QAAAA,EAAU;AAAA;AAAG;AAC/D;AAEJ,CAAA;AAEO,SAASC,iBAAAA,CAAkBC,WAAsBC,OAAAA,EAAiB;AACvE,EAAA,MAAMC,SAAAA,GAAYV,oBAAoBS,OAAO,CAAA;AAC7C,EAAA,IAAI,CAACC,WAAW,OAAOF,SAAAA;AAEvB,EAAA,MAAMG,mBAAmBH,SAAAA,CAAUI,MAAAA,CAAOC,MAAAA,CACxC,CAACC,OAAOC,SAAAA,KAAc;AACpB,IAAA,MAAMX,SAASM,SAAAA,CAAUN,MAAAA,EAAQY,IAAID,SAAAA,CAAUE,OAAAA,CAAQC,aAAa,CAAA;AACpE,IAAA,IAAId,QAAQ,OAAOU,KAAAA;AAEnB,IAAA,MAAMK,WAAWT,SAAAA,EAAWT,KAAAA,GAAQc,SAAAA,CAAUE,OAAAA,CAAQC,aAAa,CAAA;AACnE,IAAA,MAAME,QAAQD,QAAAA,GAAW;AAAA,MAAE,GAAGJ,SAAAA;AAAAA,MAAW,GAAGI;AAAAA,KAAS,GAAIJ,SAAAA;AAEzDD,IAAAA,KAAAA,CAAMO,KAAKD,KAAK,CAAA;AAEhB,IAAA,OAAON,KAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"overrides.js","sources":["../../src/tokens/overrides.ts"],"sourcesContent":["import type { TokenInfo, TokenList } from \"@uniswap/token-lists\";\nimport type { TokenListOverride } from \"./types\";\n\n// AAVE and GHO tokens have deprecated logos in some lists\nconst AAVE_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/12645/large/aave-token-round.png?1720472354\",\n};\nconst GHO_OverrideTokenInfo: Partial<TokenInfo> = {\n logoURI:\n \"https://coin-images.coingecko.com/coins/images/30663/large/gho-token-logo.png?1720517092\",\n};\n\n// override decimals that we know are wrong in Gemini token list https://paraswap.slack.com/archives/C01AUMPP56J/p1669810101097819?thread_ts=1669804269.667909&cid=C01AUMPP56J\nconst TokenListsOverrides: Record<string, TokenListOverride> = {\n // Ethereum\n \"https://tokens.uniswap.org\": {\n merge: {\n \"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9\": AAVE_OverrideTokenInfo,\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n \"https://raw.githubusercontent.com/paraswap/community-token-list/master/src/sources/paraswap.extralist.json\":\n {\n merge: {\n \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\": GHO_OverrideTokenInfo,\n },\n },\n\n // Optimism\n \"https://static.optimism.io/optimism.tokenlist.json\": {\n merge: {\n \"0x76fb31fb4af56892a25e32cfc43de717950c9278\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Avalanche\n \"https://raw.githubusercontent.com/pangolindex/tokenlists/main/pangolin.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n \"https://raw.githubusercontent.com/traderjoe-xyz/joe-tokenlists/main/mc.tokenlist.json\":\n {\n merge: {\n \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\": AAVE_OverrideTokenInfo,\n },\n },\n\n // Polygon\n \"https://unpkg.com/quickswap-default-token-list@latest/build/quickswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n \"https://unpkg.com/@cometh-game/default-token-list@latest/build/comethswap-default.tokenlist.json\":\n {\n merge: {\n \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\": AAVE_OverrideTokenInfo,\n \"0x7ceb23fd6bc0add59e62ac25578270cff1b9f619\": {\n symbol: \"WETH\",\n name: \"Wrapped Ether\",\n },\n },\n },\n\n // Arbitrum\n \"https://bridge.arbitrum.io/token-list-42161.json\": {\n // Gemini tokens list has been removed from our dApp, but we keep the overrides in case of similar issues in the future and a need of quick fix\n // \"https://www.gemini.com/uniswap/manifest.json\": {merge: {\n // \"0x6b0b3a982b4634ac68dd83a4dbf02311ce324181\": { decimals: 18 },\n // \"0xbb0e17ef65f82ab018d8edd776e8dd940327b28b\": { decimals: 18 },\n // \"0x18aaa7115705e8be94bffebde57af9bfc265b998\": { decimals: 18 },\n // }},\n // Arbitrum GMX is under an old address in the list\n remove: new Set([\"0x590020b1005b8b25f1a2c82c5f743c540dcfa24d\"]),\n },\n\n // Gnosis\n \"https://tokens.coingecko.com/xdai/all.json\": {\n merge: {\n \"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d\": { symbol: \"WXDAI\" },\n },\n },\n \"https://tokens.coingecko.com/polygon-pos/all.json\": {\n merge: {\n // MLN token with wrong decimals in the tokenList\n \"0xa9f37d84c856fda3812ad0519dad44fa0a3fe207\": { decimals: 18 },\n },\n },\n};\n\nexport function overrideTokenList(tokenList: TokenList, listURL: string) {\n const overrides = TokenListsOverrides[listURL];\n if (!overrides) return tokenList;\n\n const overriddenTokens = tokenList.tokens.reduce<TokenInfo[]>(\n (accum, tokenInfo) => {\n const remove = overrides.remove?.has(tokenInfo.address.toLowerCase());\n if (remove) return accum;\n\n const override = overrides?.merge?.[tokenInfo.address.toLowerCase()];\n const token = override ? { ...tokenInfo, ...override } : tokenInfo;\n\n accum.push(token);\n\n return accum;\n },\n []\n );\n\n if (overrides.add) {\n overriddenTokens.push(...overrides.add);\n }\n\n return { ...tokenList, tokens: overriddenTokens };\n}\n"],"names":["AAVE_OverrideTokenInfo","logoURI","GHO_OverrideTokenInfo","TokenListsOverrides","merge","symbol","name","remove","Set","decimals","overrideTokenList","tokenList","listURL","overrides","overriddenTokens","tokens","reduce","accum","tokenInfo","has","address","toLowerCase","override","token","push","add"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sources":["../../src/tokens/queries.ts"],"sourcesContent":["import {\n replaceEqualDeep,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport type { AxiosError } from \"axios\";\nimport { /* useRef, useLayoutEffect, */ useMemo } from \"react\";\nimport { downloadTokenListDataWithFallback } from \"./lists/download\";\nimport type { TokenListFetched } from \"./types\";\nimport { QUERY_KEY_FETCH_TOKEN_LISTS } from \"./constants\";\nimport { constructPlaceholderData } from \"./lists/utils\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { overrideTokenList } from \"./overrides\";\nimport { useAllTokenLists } from \"./lists/hooks\";\nimport { stableCoinsTokenLists } from \"./stabeCoins\";\n\ntype UseFetchListsResult<T extends string> = {\n dataOrPlaceholder: TokenListFetched<T>;\n result: UseQueryResult<TokenListFetched<T>, AxiosError>;\n};\n\nfunction isDataEqual<T extends string | never = never>(\n currentData: TokenListFetched<T> | undefined,\n incomingData: TokenListFetched<T>\n): currentData is typeof incomingData {\n // there was no oldData --> data not equal\n if (!currentData) return false;\n // data was a placeholder (available = false) and data.available changed --> data not equal\n if (!currentData.available || !incomingData.available)\n return currentData.available !== incomingData.available;\n // incoming list.version <= current list.version --> consider data equal (don't replace with incoming older version)\n const isOlderOrEqual =\n versionComparator(incomingData.data.version, currentData.data.version) <= 0;\n return isOlderOrEqual;\n}\n\nexport function produceQueryOptions<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n) {\n // there are duplicate listURLs because in lists.json same list can be present for multiple chains\n const uniqueListURLs = Array.from(new Set(listURLs));\n\n return (\n uniqueListURLs\n // to prevent occasional `token_list_download_error:\"\"` event tag\n .filter(isTruthy)\n .map<UseQueryOptions<TokenListFetched<T>, AxiosError>>((listURL) => ({\n queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListDataWithFallback(\n listURL,\n signal\n );\n\n const data = overrideTokenList(_data, listURL);\n\n return {\n url: listURL,\n name: data.name,\n data,\n tag,\n // possibly mitigates https://sentry.io/organizations/paraswap/discover/ui:3fa26b87e3594d1998ff9fb4770a26d9\n available: Array.isArray(data.tokens),\n };\n },\n notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n staleTime: Infinity,\n\n // custom comparison to optimize big token list comparison\n structuralSharing: (oldData, newData) =>\n isDataEqual(\n oldData as TokenListFetched<T> | undefined,\n newData as TokenListFetched<T>\n )\n ? oldData\n : replaceEqualDeep(oldData, newData),\n }))\n );\n}\n\nexport const useFetchListsWithQueryResult = <T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): UseFetchListsResult<T>[] => {\n const queryResults = useQueries<\n UseQueryOptions<TokenListFetched<T>, AxiosError>[]\n >({ queries: produceQueryOptions(listURLs, tag) });\n\n return useMemo<UseFetchListsResult<T>[]>(\n () =>\n queryResults.map((result) => ({\n // provide {url, name} even on error\n dataOrPlaceholder:\n result.data ||\n constructPlaceholderData(result.error?.config?.url || \"\"),\n result,\n })),\n [queryResults]\n );\n};\n\nexport function useFetchLists<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): TokenListFetched<T>[] {\n const queryResults = useFetchListsWithQueryResult(listURLs, tag);\n\n return useMemo(\n () => queryResults.map(({ dataOrPlaceholder }) => dataOrPlaceholder),\n [queryResults]\n );\n}\n\nexport function useFetchTokenListsOnAllChains(): TokenListFetched[] {\n const allTokenListsOnAllChains = useAllTokenLists();\n\n // stablecoins list is auxiliary list, always in use\n const includingStablecoins = stableCoinsTokenLists.concat(\n allTokenListsOnAllChains\n );\n\n return useFetchLists(includingStablecoins);\n}\n"],"names":["isDataEqual","currentData","incomingData","available","isOlderOrEqual","versionComparator","data","version","produceQueryOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","isTruthy","map","listURL","queryKey","QUERY_KEY_FETCH_TOKEN_LISTS","queryFn","signal","_data","downloadTokenListDataWithFallback","overrideTokenList","url","name","isArray","tokens","notifyOnChangeProps","placeholderData","constructPlaceholderData","refetchOnMount","staleTime","Infinity","structuralSharing","oldData","newData","replaceEqualDeep","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","useQueries","t2","t3","_temp","useFetchLists","_temp2","dataOrPlaceholder","useFetchTokenListsOnAllChains","allTokenListsOnAllChains","useAllTokenLists","stableCoinsTokenLists","concat","includingStablecoins","result","error","config"],"mappings":";;;;;;;;;;;;AAuBA,SAASA,WAAAA,CACPC,aACAC,YAAAA,EACoC;AAEpC,EAAA,IAAI,CAACD,aAAa,OAAO,KAAA;AAEzB,EAAA,IAAI,CAACA,YAAYE,SAAAA,IAAa,CAACD,aAAaC,SAAAA,EAC1C,OAAOF,WAAAA,CAAYE,SAAAA,KAAcD,YAAAA,CAAaC,SAAAA;AAEhD,EAAA,MAAMC,cAAAA,GACJC,kBAAkBH,YAAAA,CAAaI,IAAAA,CAAKC,SAASN,WAAAA,CAAYK,IAAAA,CAAKC,OAAO,CAAA,IAAK,CAAA;AAC5E,EAAA,OAAOH,cAAAA;AACT;AAEO,SAASI,mBAAAA,CACdC,UACAC,GAAAA,EACA;AAEA,EAAA,MAAMC,iBAAiBC,KAAAA,CAAMC,IAAAA,CAAK,IAAIC,GAAAA,CAAIL,QAAQ,CAAC,CAAA;AAEnD,EAAA,OACEE,cAAAA,CAEGI,MAAAA,CAAOC,QAAQ,CAAA,CACfC,IAAuDC,CAAAA,OAAAA,MAAa;AAAA,IACnEC,QAAAA,EAAU,CAACC,2BAAAA,EAA6BF,OAAO,CAAA;AAAA,IAC/CG,SAAS,OAAO;AAAA,MAAEC;AAAAA,KAAO,KAAM;AAC7B,MAAA,MAAMC,KAAAA,GAAQ,MAAMC,iCAAAA,CAClBN,OAAAA,EACAI,MACF,CAAA;AAEA,MAAA,MAAMhB,IAAAA,GAAOmB,iBAAAA,CAAkBF,KAAAA,EAAOL,OAAO,CAAA;AAE7C,MAAA,OAAO;AAAA,QACLQ,GAAAA,EAAKR,OAAAA;AAAAA,QACLS,MAAMrB,IAAAA,CAAKqB,IAAAA;AAAAA,QACXrB,IAAAA;AAAAA,QACAI,GAAAA;AAAAA;AAAAA,QAEAP,SAAAA,EAAWS,KAAAA,CAAMgB,OAAAA,CAAQtB,IAAAA,CAAKuB,MAAM;AAAA,OACtC;AAAA,
|
|
1
|
+
{"version":3,"file":"queries.js","sources":["../../src/tokens/queries.ts"],"sourcesContent":["import {\n replaceEqualDeep,\n useQueries,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { versionComparator } from \"@uniswap/token-lists\";\nimport type { AxiosError } from \"axios\";\nimport { /* useRef, useLayoutEffect, */ useMemo } from \"react\";\nimport { downloadTokenListDataWithFallback } from \"./lists/download\";\nimport type { TokenListFetched } from \"./types\";\nimport { QUERY_KEY_FETCH_TOKEN_LISTS } from \"./constants\";\nimport { constructPlaceholderData } from \"./lists/utils\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { overrideTokenList } from \"./overrides\";\nimport { useAllTokenLists } from \"./lists/hooks\";\nimport { stableCoinsTokenLists } from \"./stabeCoins\";\n\ntype UseFetchListsResult<T extends string> = {\n dataOrPlaceholder: TokenListFetched<T>;\n result: UseQueryResult<TokenListFetched<T>, AxiosError>;\n};\n\nfunction isDataEqual<T extends string | never = never>(\n currentData: TokenListFetched<T> | undefined,\n incomingData: TokenListFetched<T>\n): currentData is typeof incomingData {\n // there was no oldData --> data not equal\n if (!currentData) return false;\n // data was a placeholder (available = false) and data.available changed --> data not equal\n if (!currentData.available || !incomingData.available)\n return currentData.available !== incomingData.available;\n // incoming list.version <= current list.version --> consider data equal (don't replace with incoming older version)\n const isOlderOrEqual =\n versionComparator(incomingData.data.version, currentData.data.version) <= 0;\n return isOlderOrEqual;\n}\n\nexport function produceQueryOptions<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n) {\n // there are duplicate listURLs because in lists.json same list can be present for multiple chains\n const uniqueListURLs = Array.from(new Set(listURLs));\n\n return (\n uniqueListURLs\n // to prevent occasional `token_list_download_error:\"\"` event tag\n .filter(isTruthy)\n .map<UseQueryOptions<TokenListFetched<T>, AxiosError>>((listURL) => ({\n queryKey: [QUERY_KEY_FETCH_TOKEN_LISTS, listURL],\n queryFn: async ({ signal }) => {\n const _data = await downloadTokenListDataWithFallback(\n listURL,\n signal\n );\n\n const data = overrideTokenList(_data, listURL);\n\n return {\n url: listURL,\n name: data.name,\n data,\n tag,\n // possibly mitigates https://sentry.io/organizations/paraswap/discover/ui:3fa26b87e3594d1998ff9fb4770a26d9\n available: Array.isArray(data.tokens),\n };\n },\n notifyOnChangeProps: [\"data\"],\n placeholderData: constructPlaceholderData(listURL), // start with unavailable but still with url\n refetchOnMount: false,\n staleTime: Infinity,\n\n // custom comparison to optimize big token list comparison\n structuralSharing: (oldData, newData) =>\n isDataEqual(\n oldData as TokenListFetched<T> | undefined,\n newData as TokenListFetched<T>\n )\n ? oldData\n : replaceEqualDeep(oldData, newData),\n }))\n );\n}\n\nexport const useFetchListsWithQueryResult = <T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): UseFetchListsResult<T>[] => {\n const queryResults = useQueries<\n UseQueryOptions<TokenListFetched<T>, AxiosError>[]\n >({ queries: produceQueryOptions(listURLs, tag) });\n\n return useMemo<UseFetchListsResult<T>[]>(\n () =>\n queryResults.map((result) => ({\n // provide {url, name} even on error\n dataOrPlaceholder:\n result.data ||\n constructPlaceholderData(result.error?.config?.url || \"\"),\n result,\n })),\n [queryResults]\n );\n};\n\nexport function useFetchLists<T extends string | never = never>(\n listURLs: string[],\n tag?: T\n): TokenListFetched<T>[] {\n const queryResults = useFetchListsWithQueryResult(listURLs, tag);\n\n return useMemo(\n () => queryResults.map(({ dataOrPlaceholder }) => dataOrPlaceholder),\n [queryResults]\n );\n}\n\nexport function useFetchTokenListsOnAllChains(): TokenListFetched[] {\n const allTokenListsOnAllChains = useAllTokenLists();\n\n // stablecoins list is auxiliary list, always in use\n const includingStablecoins = stableCoinsTokenLists.concat(\n allTokenListsOnAllChains\n );\n\n return useFetchLists(includingStablecoins);\n}\n"],"names":["isDataEqual","currentData","incomingData","available","isOlderOrEqual","versionComparator","data","version","produceQueryOptions","listURLs","tag","uniqueListURLs","Array","from","Set","filter","isTruthy","map","listURL","queryKey","QUERY_KEY_FETCH_TOKEN_LISTS","queryFn","signal","_data","downloadTokenListDataWithFallback","overrideTokenList","url","name","isArray","tokens","notifyOnChangeProps","placeholderData","constructPlaceholderData","refetchOnMount","staleTime","Infinity","structuralSharing","oldData","newData","replaceEqualDeep","useFetchListsWithQueryResult","$","_c","t0","t1","queries","queryResults","useQueries","t2","t3","_temp","useFetchLists","_temp2","dataOrPlaceholder","useFetchTokenListsOnAllChains","allTokenListsOnAllChains","useAllTokenLists","stableCoinsTokenLists","concat","includingStablecoins","result","error","config"],"mappings":";;;;;;;;;;;;AAuBA,SAASA,WAAAA,CACPC,aACAC,YAAAA,EACoC;AAEpC,EAAA,IAAI,CAACD,aAAa,OAAO,KAAA;AAEzB,EAAA,IAAI,CAACA,YAAYE,SAAAA,IAAa,CAACD,aAAaC,SAAAA,EAC1C,OAAOF,WAAAA,CAAYE,SAAAA,KAAcD,YAAAA,CAAaC,SAAAA;AAEhD,EAAA,MAAMC,cAAAA,GACJC,kBAAkBH,YAAAA,CAAaI,IAAAA,CAAKC,SAASN,WAAAA,CAAYK,IAAAA,CAAKC,OAAO,CAAA,IAAK,CAAA;AAC5E,EAAA,OAAOH,cAAAA;AACT;AAEO,SAASI,mBAAAA,CACdC,UACAC,GAAAA,EACA;AAEA,EAAA,MAAMC,iBAAiBC,KAAAA,CAAMC,IAAAA,CAAK,IAAIC,GAAAA,CAAIL,QAAQ,CAAC,CAAA;AAEnD,EAAA,OACEE,cAAAA,CAEGI,MAAAA,CAAOC,QAAQ,CAAA,CACfC,IAAuDC,CAAAA,OAAAA,MAAa;AAAA,IACnEC,QAAAA,EAAU,CAACC,2BAAAA,EAA6BF,OAAO,CAAA;AAAA,IAC/CG,SAAS,OAAO;AAAA,MAAEC;AAAAA,KAAO,KAAM;AAC7B,MAAA,MAAMC,KAAAA,GAAQ,MAAMC,iCAAAA,CAClBN,OAAAA,EACAI,MACF,CAAA;AAEA,MAAA,MAAMhB,IAAAA,GAAOmB,iBAAAA,CAAkBF,KAAAA,EAAOL,OAAO,CAAA;AAE7C,MAAA,OAAO;AAAA,QACLQ,GAAAA,EAAKR,OAAAA;AAAAA,QACLS,MAAMrB,IAAAA,CAAKqB,IAAAA;AAAAA,QACXrB,IAAAA;AAAAA,QACAI,GAAAA;AAAAA;AAAAA,QAEAP,SAAAA,EAAWS,KAAAA,CAAMgB,OAAAA,CAAQtB,IAAAA,CAAKuB,MAAM;AAAA,OACtC;AAAA,IACF,CAAA;AAAA,IACAC,mBAAAA,EAAqB,CAAC,MAAM,CAAA;AAAA,IAC5BC,eAAAA,EAAiBC,yBAAyBd,OAAO,CAAA;AAAA;AAAA,IACjDe,cAAAA,EAAgB,KAAA;AAAA,IAChBC,SAAAA,EAAWC,QAAAA;AAAAA;AAAAA,IAGXC,iBAAAA,EAAmBA,CAACC,OAAAA,EAASC,OAAAA,KAC3BtC,WAAAA,CACEqC,OAAAA,EACAC,OACF,CAAA,GACID,OAAAA,GACAE,gBAAAA,CAAiBF,OAAAA,EAASC,OAAO;AAAA,GACzC,CAAE,CAAA;AAER;AAEO,MAAME,4BAAAA,GAA+BA,CAAA/B,QAAAA,EAAAC,GAAAA,KAAA;AAAA,EAAA,MAAA+B,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAF,EAAA,CAAA,CAAA,KAAAhC,YAAAgC,CAAAA,QAAA/B,GAAAA,EAAA;AAM7BiC,IAAAA,EAAAA,GAAAnC,mBAAAA,CAAoBC,UAAUC,GAAG,CAAA;AAAC+B,IAAAA,CAAAA,MAAAhC,QAAAA;AAAAgC,IAAAA,CAAAA,MAAA/B,GAAAA;AAAA+B,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,EAAAA,EAAA;AAA7CC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,OAAAA,EAAWF;AAAAA,KAAkC;AAAEF,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAFjD,EAAA,MAAAK,YAAAA,GAAqBC,WAEnBH,EAA+C,CAAA;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,YAAAA,EAAA;AAI/CG,IAAAA,EAAAA,GAAAH,YAAAA,CAAY7B,IAAAiC,KAMV,CAAA;AAACT,IAAAA,CAAAA,MAAAK,YAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAAO,EAAAA,EAAAA,GANHC,EAAAA;AAMG,EAAA,OARAD,EAAAA;AAUN;AAGI,SAAAG,aAAAA,CAAA1C,UAAAC,GAAAA,EAAA;AAAA,EAAA,MAAA+B,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAIL,EAAA,MAAAI,YAAAA,GAAqBN,4BAAAA,CAA6B/B,QAAAA,EAAUC,GAAG,CAAA;AAAE,EAAA,IAAAiC,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAK,YAAAA,EAAA;AAGzDF,IAAAA,EAAAA,GAAAE,YAAAA,CAAY7B,IAAAmC,MAAiD,CAAA;AAACX,IAAAA,CAAAA,MAAAK,YAAAA;AAAAL,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAAE,EAAAA,EAAAA,GAA9DC,EAAAA;AAA8D,EAAA,OAD/DD,EAAAA;AAGN;AATI,SAAAS,OAAAT,EAAAA,EAAA;AAOqB,EAAA,MAAA;AAAA,IAAAU;AAAAA,GAAA,GAAAV,EAAAA;AAAqB,EAAA,OAAKU,iBAAAA;AAAiB;AAKhE,SAAAC,6BAAAA,GAAA;AAAA,EAAA,MAAAb,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAa,2BAAiCC,gBAAAA,EAAiB;AAAE,EAAA,IAAAb,EAAAA;AAAA,EAAA,IAAAF,CAAAA,QAAAc,wBAAAA,EAAA;AAGvBZ,IAAAA,EAAAA,GAAAc,qBAAAA,CAAAC,OAC3BH,wBACF,CAAA;AAACd,IAAAA,CAAAA,MAAAc,wBAAAA;AAAAd,IAAAA,CAAAA,MAAAE,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAF,EAAA,CAAA,CAAA;AAAA,EAAA;AAFD,EAAA,MAAAkB,oBAAAA,GAA6BhB,EAAAA;AAE3B,EAAA,OAEKQ,cAAcQ,oBAAoB,CAAA;AAAC;AAzCA,SAAAT,MAAAU,MAAAA,EAAA;AAAA,EAAA,OAAA;AAAA,IAAAP,iBAAAA,EAalCO,OAAMtD,IAAAA,IACN0B,wBAAAA,CAAyB4B,OAAMC,KAAAA,EAAAC,MAAAA,EAAApC,OAAuB,EAAE,CAAA;AAAA,IAACkC;AAAAA,GAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { stableCoinsTokenLists } from \".\";\nimport { useFetchLists } from \"../queries\";\nimport type { ChainTokensSet, TokenListFetched } from \"../types\";\nimport {\n checkAddressesBelongToChainSet,\n tokenlistsToSetsByChain,\n} from \"../utils/sets\";\n\nexport function useStableCoinTokenLists(): TokenListFetched<\"stablecoin\">[] {\n return useFetchLists(stableCoinsTokenLists, \"stablecoin\");\n}\n\n// compose stablecoin sets\nexport function useStablecoinSetsByChain(): ChainTokensSet {\n const lists = useStableCoinTokenLists();\n\n return useMemo(() => tokenlistsToSetsByChain(lists), [lists]);\n}\n\nexport function useIsAddressStablecoin(\n addresses: (string | undefined)[],\n chainId?: number\n): boolean {\n const chainId2StableCoinSets = useStablecoinSetsByChain();\n return checkAddressesBelongToChainSet(\n chainId2StableCoinSets,\n addresses,\n chainId\n );\n}\n"],"names":["useStableCoinTokenLists","useFetchLists","stableCoinsTokenLists","useStablecoinSetsByChain","$","_c","lists","t0","t1","tokenlistsToSetsByChain","useIsAddressStablecoin","addresses","chainId","chainId2StableCoinSets","checkAddressesBelongToChainSet"],"mappings":";;;;;;AASO,SAAAA,uBAAAA,GAAA;AAAA,EAAA,OACEC,aAAAA,CAAAC,uBAAqC,YAAY,CAAA;AAAC;AAIpD,SAAAC,wBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,QAAcN,uBAAAA,EAAwB;AAAE,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,KAAAA,EAAA;AAEnBE,IAAAA,EAAAA,GAAAC,wBAAwBH,KAAK,CAAA;AAACF,IAAAA,CAAAA,MAAAE,KAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../src/tokens/stabeCoins/hooks.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { stableCoinsTokenLists } from \".\";\nimport { useFetchLists } from \"../queries\";\nimport type { ChainTokensSet, TokenListFetched } from \"../types\";\nimport {\n checkAddressesBelongToChainSet,\n tokenlistsToSetsByChain,\n} from \"../utils/sets\";\n\nexport function useStableCoinTokenLists(): TokenListFetched<\"stablecoin\">[] {\n return useFetchLists(stableCoinsTokenLists, \"stablecoin\");\n}\n\n// compose stablecoin sets\nexport function useStablecoinSetsByChain(): ChainTokensSet {\n const lists = useStableCoinTokenLists();\n\n return useMemo(() => tokenlistsToSetsByChain(lists), [lists]);\n}\n\nexport function useIsAddressStablecoin(\n addresses: (string | undefined)[],\n chainId?: number\n): boolean {\n const chainId2StableCoinSets = useStablecoinSetsByChain();\n return checkAddressesBelongToChainSet(\n chainId2StableCoinSets,\n addresses,\n chainId\n );\n}\n"],"names":["useStableCoinTokenLists","useFetchLists","stableCoinsTokenLists","useStablecoinSetsByChain","$","_c","lists","t0","t1","tokenlistsToSetsByChain","useIsAddressStablecoin","addresses","chainId","chainId2StableCoinSets","checkAddressesBelongToChainSet"],"mappings":";;;;;;AASO,SAAAA,uBAAAA,GAAA;AAAA,EAAA,OACEC,aAAAA,CAAAC,uBAAqC,YAAY,CAAA;AAAC;AAIpD,SAAAC,wBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,QAAcN,uBAAAA,EAAwB;AAAE,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,KAAAA,EAAA;AAEnBE,IAAAA,EAAAA,GAAAC,wBAAwBH,KAAK,CAAA;AAACF,IAAAA,CAAAA,MAAAE,KAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAAAG,EAAAA,EAAAA,GAA9BC,EAAAA;AAA8B,EAAA,OAA5CD,EAAAA;AAAsD;AAGxD,SAAAG,sBAAAA,CAAAC,WAAAC,OAAAA,EAAA;AAAA,EAAA,MAAAR,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAIL,EAAA,MAAAQ,yBAA+BV,wBAAAA,EAAyB;AAAE,EAAA,IAAAI,EAAAA;AAAA,EAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAO,SAAAA,IAAAP,CAAAA,QAAAQ,OAAAA,IAAAR,CAAAA,CAAA,CAAA,CAAA,KAAAS,sBAAAA,EAAA;AACnDN,IAAAA,EAAAA,GAAAO,8BAAAA,CACLD,sBAAAA,EACAF,SAAAA,EACAC,OACF,CAAA;AAACR,IAAAA,CAAAA,MAAAO,SAAAA;AAAAP,IAAAA,CAAAA,MAAAQ,OAAAA;AAAAR,IAAAA,CAAAA,MAAAS,sBAAAA;AAAAT,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAJMG,EAAAA;AAIN;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructTokens.js","sources":["../../../src/tokens/state/constructTokens.ts"],"sourcesContent":["import type { TokenFromList } from \"./types\";\n\nimport { isBlacklistedToken } from \"../blacklist\";\nimport type { ConstructedListsByURL } from \"../lists/state/types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\ninterface UpdatedTokenListsInput {\n enabledListURLs: string[];\n allListURLs: string[];\n tokensFromListByURL: ConstructedListsByURL;\n chainId: SupportedChainId;\n}\n\ninterface UpdatedTokenListsResult {\n list: TokenFromList[];\n disabledList: TokenFromList[];\n chainId: SupportedChainId;\n}\n\nexport function constructTokensFromLists({\n enabledListURLs,\n allListURLs,\n tokensFromListByURL,\n chainId,\n}: UpdatedTokenListsInput): UpdatedTokenListsResult | undefined {\n const addedAddressesSet = new Set<string>();\n\n function gatherUniqueTokens(listURLs: string[]): TokenFromList[] {\n const uniqueTokensFromList = listURLs.reduce<TokenFromList[]>(\n (accum, listURL) => {\n const constructedTokens = tokensFromListByURL[listURL];\n\n if (!constructedTokens) return accum;\n\n constructedTokens.list.forEach((token) => {\n // some lists contain tokens for multiple chains\n // tokens.fromLists must correspond to current chain\n // same as tokens.user & tokens.all\n if (token.network !== chainId) return;\n if (isBlacklistedToken(token)) return;\n\n const addressLowercase = token.address.toLowerCase();\n // already added\n if (addedAddressesSet.has(addressLowercase)) return;\n\n addedAddressesSet.add(addressLowercase);\n accum.push(token);\n });\n\n return accum;\n },\n []\n );\n\n return uniqueTokensFromList;\n }\n // iterating over enabledListURLs every time is less efficient,\n // but allows for a fixed token order\n // and no duplicate tokens from different lists\n const uniqueTokensFromList = gatherUniqueTokens(enabledListURLs);\n\n // don't suddenly empty tokens.fromLists while enabledListURLs are still fetching\n if (enabledListURLs.length > 0 && uniqueTokensFromList.length === 0) return;\n\n const enabledListsSet = new Set(enabledListURLs);\n const disabledListURLs = allListURLs.filter(\n (listURL) => !enabledListsSet.has(listURL)\n );\n\n const uniqueTokensFromDisabledList = gatherUniqueTokens(disabledListURLs);\n\n return {\n list: uniqueTokensFromList,\n disabledList: uniqueTokensFromDisabledList,\n chainId,\n };\n}\n"],"names":["constructTokensFromLists","enabledListURLs","allListURLs","tokensFromListByURL","chainId","addedAddressesSet","Set","gatherUniqueTokens","listURLs","uniqueTokensFromList","reduce","accum","listURL","constructedTokens","list","forEach","token","network","isBlacklistedToken","addressLowercase","address","toLowerCase","has","add","push","length","enabledListsSet","disabledListURLs","filter","uniqueTokensFromDisabledList","disabledList"],"mappings":";;AAmBO,SAASA,wBAAAA,CAAyB;AAAA,EACvCC,eAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,mBAAAA;AAAAA,EACAC;AACsB,CAAA,EAAwC;AAC9D,EAAA,MAAMC,iBAAAA,uBAAwBC,GAAAA,EAAY;AAE1C,EAAA,SAASC,mBAAmBC,QAAAA,EAAqC;AAC/D,IAAA,MAAMC,qBAAAA,GAAuBD,QAAAA,CAASE,MAAAA,CACpC,CAACC,OAAOC,OAAAA,KAAY;AAClB,MAAA,MAAMC,iBAAAA,GAAoBV,oBAAoBS,OAAO,CAAA;AAErD,MAAA,IAAI,CAACC,mBAAmB,OAAOF,KAAAA;AAE/BE,MAAAA,iBAAAA,CAAkBC,IAAAA,CAAKC,QAASC,CAAAA,KAAAA,KAAU;AAIxC,QAAA,IAAIA,KAAAA,CAAMC,YAAYb,OAAAA,EAAS;AAC/B,QAAA,IAAIc,kBAAAA,CAAmBF,KAAK,CAAA,EAAG;AAE/B,QAAA,MAAMG,gBAAAA,GAAmBH,KAAAA,CAAMI,OAAAA,CAAQC,WAAAA,EAAY;AAEnD,QAAA,IAAIhB,iBAAAA,CAAkBiB,GAAAA,CAAIH,gBAAgB,CAAA,EAAG;AAE7Cd,QAAAA,iBAAAA,CAAkBkB,IAAIJ,gBAAgB,CAAA;AACtCR,QAAAA,KAAAA,CAAMa,KAAKR,KAAK,CAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"constructTokens.js","sources":["../../../src/tokens/state/constructTokens.ts"],"sourcesContent":["import type { TokenFromList } from \"./types\";\n\nimport { isBlacklistedToken } from \"../blacklist\";\nimport type { ConstructedListsByURL } from \"../lists/state/types\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\ninterface UpdatedTokenListsInput {\n enabledListURLs: string[];\n allListURLs: string[];\n tokensFromListByURL: ConstructedListsByURL;\n chainId: SupportedChainId;\n}\n\ninterface UpdatedTokenListsResult {\n list: TokenFromList[];\n disabledList: TokenFromList[];\n chainId: SupportedChainId;\n}\n\nexport function constructTokensFromLists({\n enabledListURLs,\n allListURLs,\n tokensFromListByURL,\n chainId,\n}: UpdatedTokenListsInput): UpdatedTokenListsResult | undefined {\n const addedAddressesSet = new Set<string>();\n\n function gatherUniqueTokens(listURLs: string[]): TokenFromList[] {\n const uniqueTokensFromList = listURLs.reduce<TokenFromList[]>(\n (accum, listURL) => {\n const constructedTokens = tokensFromListByURL[listURL];\n\n if (!constructedTokens) return accum;\n\n constructedTokens.list.forEach((token) => {\n // some lists contain tokens for multiple chains\n // tokens.fromLists must correspond to current chain\n // same as tokens.user & tokens.all\n if (token.network !== chainId) return;\n if (isBlacklistedToken(token)) return;\n\n const addressLowercase = token.address.toLowerCase();\n // already added\n if (addedAddressesSet.has(addressLowercase)) return;\n\n addedAddressesSet.add(addressLowercase);\n accum.push(token);\n });\n\n return accum;\n },\n []\n );\n\n return uniqueTokensFromList;\n }\n // iterating over enabledListURLs every time is less efficient,\n // but allows for a fixed token order\n // and no duplicate tokens from different lists\n const uniqueTokensFromList = gatherUniqueTokens(enabledListURLs);\n\n // don't suddenly empty tokens.fromLists while enabledListURLs are still fetching\n if (enabledListURLs.length > 0 && uniqueTokensFromList.length === 0) return;\n\n const enabledListsSet = new Set(enabledListURLs);\n const disabledListURLs = allListURLs.filter(\n (listURL) => !enabledListsSet.has(listURL)\n );\n\n const uniqueTokensFromDisabledList = gatherUniqueTokens(disabledListURLs);\n\n return {\n list: uniqueTokensFromList,\n disabledList: uniqueTokensFromDisabledList,\n chainId,\n };\n}\n"],"names":["constructTokensFromLists","enabledListURLs","allListURLs","tokensFromListByURL","chainId","addedAddressesSet","Set","gatherUniqueTokens","listURLs","uniqueTokensFromList","reduce","accum","listURL","constructedTokens","list","forEach","token","network","isBlacklistedToken","addressLowercase","address","toLowerCase","has","add","push","length","enabledListsSet","disabledListURLs","filter","uniqueTokensFromDisabledList","disabledList"],"mappings":";;AAmBO,SAASA,wBAAAA,CAAyB;AAAA,EACvCC,eAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,mBAAAA;AAAAA,EACAC;AACsB,CAAA,EAAwC;AAC9D,EAAA,MAAMC,iBAAAA,uBAAwBC,GAAAA,EAAY;AAE1C,EAAA,SAASC,mBAAmBC,QAAAA,EAAqC;AAC/D,IAAA,MAAMC,qBAAAA,GAAuBD,QAAAA,CAASE,MAAAA,CACpC,CAACC,OAAOC,OAAAA,KAAY;AAClB,MAAA,MAAMC,iBAAAA,GAAoBV,oBAAoBS,OAAO,CAAA;AAErD,MAAA,IAAI,CAACC,mBAAmB,OAAOF,KAAAA;AAE/BE,MAAAA,iBAAAA,CAAkBC,IAAAA,CAAKC,QAASC,CAAAA,KAAAA,KAAU;AAIxC,QAAA,IAAIA,KAAAA,CAAMC,YAAYb,OAAAA,EAAS;AAC/B,QAAA,IAAIc,kBAAAA,CAAmBF,KAAK,CAAA,EAAG;AAE/B,QAAA,MAAMG,gBAAAA,GAAmBH,KAAAA,CAAMI,OAAAA,CAAQC,WAAAA,EAAY;AAEnD,QAAA,IAAIhB,iBAAAA,CAAkBiB,GAAAA,CAAIH,gBAAgB,CAAA,EAAG;AAE7Cd,QAAAA,iBAAAA,CAAkBkB,IAAIJ,gBAAgB,CAAA;AACtCR,QAAAA,KAAAA,CAAMa,KAAKR,KAAK,CAAA;AAAA,MAClB,CAAC,CAAA;AAED,MAAA,OAAOL,KAAAA;AAAAA,IACT,CAAA,EACA,EACF,CAAA;AAEA,IAAA,OAAOF,qBAAAA;AAAAA,EACT;AAIA,EAAA,MAAMA,oBAAAA,GAAuBF,mBAAmBN,eAAe,CAAA;AAG/D,EAAA,IAAIA,eAAAA,CAAgBwB,MAAAA,GAAS,CAAA,IAAKhB,oBAAAA,CAAqBgB,WAAW,CAAA,EAAG;AAErE,EAAA,MAAMC,eAAAA,GAAkB,IAAIpB,GAAAA,CAAIL,eAAe,CAAA;AAC/C,EAAA,MAAM0B,gBAAAA,GAAmBzB,YAAY0B,MAAAA,CAClChB,CAAAA,OAAAA,KAAY,CAACc,eAAAA,CAAgBJ,GAAAA,CAAIV,OAAO,CAC3C,CAAA;AAEA,EAAA,MAAMiB,4BAAAA,GAA+BtB,mBAAmBoB,gBAAgB,CAAA;AAExE,EAAA,OAAO;AAAA,IACLb,IAAAA,EAAML,oBAAAA;AAAAA,IACNqB,YAAAA,EAAcD,4BAAAA;AAAAA,IACdzB;AAAAA,GACF;AACF;;;;"}
|