@velora-dex/widget 0.3.8 → 0.3.10
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/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +5 -0
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.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/Warnings.d.ts.map +1 -1
- package/dist/core/Warnings.js +5 -2
- package/dist/core/Warnings.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +11 -7
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +2 -3
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +73 -33
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +2 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts +136 -3
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +53 -33
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +75 -77
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts +136 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js +22 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js.map +1 -0
- package/dist/hooks/swap/prices/usePricesParams.js +5 -0
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +271 -189
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts +3 -2
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js +36 -37
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +4 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +12 -12
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +7 -5
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +2 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +7 -5
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/tokens/allowance/types.d.ts +10 -0
- package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts +1 -14
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/utils.d.ts +11 -0
- package/dist/hooks/tokens/allowance/utils.d.ts.map +1 -0
- package/dist/hooks/tokens/allowance/utils.js +19 -0
- package/dist/hooks/tokens/allowance/utils.js.map +1 -0
- package/dist/hooks/tokens/balances/queries.d.ts +1 -1
- package/dist/hooks/tokens/balances/queries.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/queries.js +4 -3
- package/dist/hooks/tokens/balances/queries.js.map +1 -1
- package/dist/hooks/tokens/balances/types.d.ts +1 -0
- package/dist/hooks/tokens/balances/types.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts +2 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +30 -26
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.d.ts +2 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +34 -26
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +2 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +62 -57
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +7 -2
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/transports.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.js +1 -1
- package/dist/lib/web3/wagmi/transports.js.map +1 -1
- package/dist/styles.css +7 -1
- package/dist/tokens/lists/state/effects.d.ts +1 -0
- package/dist/tokens/lists/state/effects.d.ts.map +1 -1
- package/dist/tokens/lists/state/effects.js +12 -2
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { createSortWithClosestMatch } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport type { BridgeInfoMode } from \"../swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n (isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound) || // if it's a token address, always search on other chains, if allowed\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n return filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sorter);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n mode: BridgeInfoMode;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n mode,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n const filteredTokens = filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: crossTokens,\n });\n return filteredTokens.map(attachTokenBalance).sort(sorter);\n }, [attachTokenBalance, crossTokens, tokenFilter]);\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t2","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t3","emptyArray","t4","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t5","bb0","t6","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t7","t8","attachTokenBalance","useAttachTokenBalanceMultichain","trimmedTokenFilter","sorter","createSortWithClosestMatch","sort","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","mode","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { createSortWithClosestMatch } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport type { BridgeInfoMode } from \"../swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n intent = \"fetch\",\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n intent?: \"fetch\" | \"prefetch\";\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n (isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound) || // if it's a token address, always search on other chains, if allowed\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n intent,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n return filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sorter);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n intent: \"prefetch\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n mode: BridgeInfoMode;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n mode,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n const filteredTokens = filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: crossTokens,\n });\n return filteredTokens.map(attachTokenBalance).sort(sorter);\n }, [attachTokenBalance, crossTokens, tokenFilter]);\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","intent","t2","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t3","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t4","emptyArray","t5","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t6","bb0","t7","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t8","t9","attachTokenBalance","useAttachTokenBalanceMultichain","trimmedTokenFilter","sorter","createSortWithClosestMatch","sort","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","mode","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ const privyConfig = {
|
|
|
28
28
|
},
|
|
29
29
|
// another option is to give an invalid ID,
|
|
30
30
|
// but then it retries indefinitely
|
|
31
|
-
walletConnectCloudProjectId: "
|
|
31
|
+
walletConnectCloudProjectId: "9796e40630a6bea7605ac281b0deb939",
|
|
32
32
|
// Privy doesn't accept const Chain[]
|
|
33
33
|
supportedChains: chains
|
|
34
34
|
// defaultChain: chains[0], @TODO set to App's selected chain
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/lib/web3/wagmi/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAoC5E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/lib/web3/wagmi/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { LOCAL_STORAGE_PREFIX } from '../../constants/storage.js';
|
|
|
7
7
|
|
|
8
8
|
const connectors = [
|
|
9
9
|
walletConnect({
|
|
10
|
-
projectId: "
|
|
10
|
+
projectId: "9796e40630a6bea7605ac281b0deb939"
|
|
11
11
|
}),
|
|
12
12
|
injected(),
|
|
13
13
|
// metaMask() as CreateConnectorFn, // injected() detects metamask already
|
|
@@ -27,7 +27,12 @@ const wagmiConfig = createConfig({
|
|
|
27
27
|
chains,
|
|
28
28
|
connectors,
|
|
29
29
|
transports,
|
|
30
|
-
syncConnectedChain: false
|
|
30
|
+
syncConnectedChain: false,
|
|
31
|
+
batch: {
|
|
32
|
+
multicall: {
|
|
33
|
+
wait: 20
|
|
34
|
+
}
|
|
35
|
+
}
|
|
31
36
|
});
|
|
32
37
|
|
|
33
38
|
export { wagmiConfig };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../../src/lib/web3/wagmi/config.ts"],"sourcesContent":["import { createConfig, createStorage, type CreateConnectorFn } from \"wagmi\";\nimport {\n injected,\n // metaMask,\n safe,\n walletConnect,\n coinbaseWallet,\n} from \"wagmi/connectors\";\nimport { chains } from \"./constants\";\nimport { transports } from \"./transports\";\nimport { isInIframe } from \"./isInsideSafeIframe\";\nimport { LOCAL_STORAGE_PREFIX } from \"@/lib/constants/storage\";\n\n// can add more connectors to cover wallets Privy doesn't support, but need to change UI to allow connection\nconst connectors = [\n walletConnect({\n projectId: import.meta.env.VITE_WALLET_CONNECT_ID,\n }) as CreateConnectorFn,\n injected() as CreateConnectorFn,\n // metaMask() as CreateConnectorFn, // injected() detects metamask already\n coinbaseWallet() as CreateConnectorFn,\n // raw returned types result in\n // The inferred type of 'config' cannot be named without a reference to '.pnpm/@safe-global+safe-apps-provider@0.18.6_typescript@5.8.3/node_modules/@safe-global/safe-apps-provider'. This is likely not portable. A type annotation is necessary.\n\n // getPrivyWalletConnector(), // only CorssApp Privy connector is available, not our use case\n];\n// @TODO see how we can implement Ledger connector, borrow it from rainbowkit?\n\nif (isInIframe) {\n // when widget is in an App inside iframe, chances are we are in Safe web app,\n // allow Safe connector to be used.\n // we can't know if we are inside specifically Safe iframe until we try to connect, though.\n // A check for that is in isInsideSafeIframe.ts\n connectors.unshift(safe());\n}\n\nexport const wagmiConfig = createConfig({\n storage: createStorage({\n storage: typeof window !== \"undefined\" ? window.localStorage : undefined,\n key: `${LOCAL_STORAGE_PREFIX}_wagmi`,\n }),\n chains,\n connectors,\n transports,\n syncConnectedChain: false,\n});\n\ndeclare module \"wagmi\" {\n interface Register {\n config: typeof wagmiConfig;\n }\n}\n"],"names":["connectors","walletConnect","projectId","import","injected","coinbaseWallet","isInIframe","unshift","safe","wagmiConfig","createConfig","storage","createStorage","window","localStorage","undefined","key","LOCAL_STORAGE_PREFIX","chains","transports","syncConnectedChain"],"mappings":";;;;;;;AAcA,MAAMA,UAAAA,GAAa;AAAA,EACjBC,aAAAA,CAAc;AAAA,IACZC,SAAAA,EAAWC;AAAAA,GACZ,CAAA;AAAA,EACDC,QAAAA,EAAS;AAAA;AAAA,EAETC,cAAAA;AAAe;AAAA;AAAA;AAIf,CAAA;AAIF,IAAIC,UAAAA,EAAY;AAKdN,EAAAA,UAAAA,CAAWO,OAAAA,CAAQC,MAAM,CAAA;AAC3B;AAEO,MAAMC,cAAcC,YAAAA,CAAa;AAAA,EACtCC,SAASC,aAAAA,CAAc;AAAA,IACrBD,OAAAA,EAAS,OAAOE,MAAAA,KAAW,WAAA,GAAcA,OAAOC,YAAAA,GAAeC,MAAAA;AAAAA,IAC/DC,GAAAA,EAAK,GAAGC,oBAAoB,CAAA,MAAA;AAAA,GAC7B,CAAA;AAAA,EACDC,MAAAA;AAAAA,EACAlB,UAAAA;AAAAA,EACAmB,UAAAA;AAAAA,EACAC,kBAAAA,EAAoB;
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../../src/lib/web3/wagmi/config.ts"],"sourcesContent":["import { createConfig, createStorage, type CreateConnectorFn } from \"wagmi\";\nimport {\n injected,\n // metaMask,\n safe,\n walletConnect,\n coinbaseWallet,\n} from \"wagmi/connectors\";\nimport { chains } from \"./constants\";\nimport { transports } from \"./transports\";\nimport { isInIframe } from \"./isInsideSafeIframe\";\nimport { LOCAL_STORAGE_PREFIX } from \"@/lib/constants/storage\";\n\n// can add more connectors to cover wallets Privy doesn't support, but need to change UI to allow connection\nconst connectors = [\n walletConnect({\n projectId: import.meta.env.VITE_WALLET_CONNECT_ID,\n }) as CreateConnectorFn,\n injected() as CreateConnectorFn,\n // metaMask() as CreateConnectorFn, // injected() detects metamask already\n coinbaseWallet() as CreateConnectorFn,\n // raw returned types result in\n // The inferred type of 'config' cannot be named without a reference to '.pnpm/@safe-global+safe-apps-provider@0.18.6_typescript@5.8.3/node_modules/@safe-global/safe-apps-provider'. This is likely not portable. A type annotation is necessary.\n\n // getPrivyWalletConnector(), // only CorssApp Privy connector is available, not our use case\n];\n// @TODO see how we can implement Ledger connector, borrow it from rainbowkit?\n\nif (isInIframe) {\n // when widget is in an App inside iframe, chances are we are in Safe web app,\n // allow Safe connector to be used.\n // we can't know if we are inside specifically Safe iframe until we try to connect, though.\n // A check for that is in isInsideSafeIframe.ts\n connectors.unshift(safe());\n}\n\nexport const wagmiConfig = createConfig({\n storage: createStorage({\n storage: typeof window !== \"undefined\" ? window.localStorage : undefined,\n key: `${LOCAL_STORAGE_PREFIX}_wagmi`,\n }),\n chains,\n connectors,\n transports,\n syncConnectedChain: false,\n batch: {\n multicall: {\n wait: 20,\n },\n },\n});\n\ndeclare module \"wagmi\" {\n interface Register {\n config: typeof wagmiConfig;\n }\n}\n"],"names":["connectors","walletConnect","projectId","import","injected","coinbaseWallet","isInIframe","unshift","safe","wagmiConfig","createConfig","storage","createStorage","window","localStorage","undefined","key","LOCAL_STORAGE_PREFIX","chains","transports","syncConnectedChain","batch","multicall","wait"],"mappings":";;;;;;;AAcA,MAAMA,UAAAA,GAAa;AAAA,EACjBC,aAAAA,CAAc;AAAA,IACZC,SAAAA,EAAWC;AAAAA,GACZ,CAAA;AAAA,EACDC,QAAAA,EAAS;AAAA;AAAA,EAETC,cAAAA;AAAe;AAAA;AAAA;AAIf,CAAA;AAIF,IAAIC,UAAAA,EAAY;AAKdN,EAAAA,UAAAA,CAAWO,OAAAA,CAAQC,MAAM,CAAA;AAC3B;AAEO,MAAMC,cAAcC,YAAAA,CAAa;AAAA,EACtCC,SAASC,aAAAA,CAAc;AAAA,IACrBD,OAAAA,EAAS,OAAOE,MAAAA,KAAW,WAAA,GAAcA,OAAOC,YAAAA,GAAeC,MAAAA;AAAAA,IAC/DC,GAAAA,EAAK,GAAGC,oBAAoB,CAAA,MAAA;AAAA,GAC7B,CAAA;AAAA,EACDC,MAAAA;AAAAA,EACAlB,UAAAA;AAAAA,EACAmB,UAAAA;AAAAA,EACAC,kBAAAA,EAAoB,KAAA;AAAA,EACpBC,KAAAA,EAAO;AAAA,IACLC,SAAAA,EAAW;AAAA,MACTC,IAAAA,EAAM;AAAA;AACR;AAEJ,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../../../src/lib/web3/wagmi/transports.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../../../src/lib/web3/wagmi/transports.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAuBzD,eAAO,MAAM,UAAU,EAKlB,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ const rpcMap = {
|
|
|
10
10
|
[arbitrum.id]: "https://arb1.arbitrum.io/rpc",
|
|
11
11
|
[avalanche.id]: "https://api.avax.network/ext/bc/C/rpc",
|
|
12
12
|
[gnosis.id]: "https://rpc.gnosischain.com",
|
|
13
|
-
[bsc.id]: "https://
|
|
13
|
+
[bsc.id]: "https://bsc.blockrazor.xyz",
|
|
14
14
|
[sonic.id]: "https://rpc.soniclabs.com",
|
|
15
15
|
[unichain.id]: "https://unichain.drpc.org"
|
|
16
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transports.js","sources":["../../../../src/lib/web3/wagmi/transports.ts"],"sourcesContent":["import { fallback, http } from \"wagmi\";\n\nimport {\n mainnet,\n optimism,\n polygon,\n base,\n arbitrum,\n avalanche,\n gnosis,\n bsc,\n sonic,\n unichain,\n} from \"./supportedChains\";\nimport { supportedChainIds } from \"./constants\";\nimport type { SupportedChainId } from \"./types\";\nimport type { FallbackTransport, Transport } from \"viem\";\n\nconst rpcMap: Record<SupportedChainId, string> = {\n [mainnet.id]: \"https://ethereum-rpc.publicnode.com\",\n [optimism.id]: \"https://optimism.drpc.org\",\n [polygon.id]: \"https://1rpc.io/matic\",\n [base.id]: \"https://base.publicnode.com\",\n [arbitrum.id]: \"https://arb1.arbitrum.io/rpc\",\n [avalanche.id]: \"https://api.avax.network/ext/bc/C/rpc\",\n [gnosis.id]: \"https://rpc.gnosischain.com\",\n [bsc.id]: \"https://
|
|
1
|
+
{"version":3,"file":"transports.js","sources":["../../../../src/lib/web3/wagmi/transports.ts"],"sourcesContent":["import { fallback, http } from \"wagmi\";\n\nimport {\n mainnet,\n optimism,\n polygon,\n base,\n arbitrum,\n avalanche,\n gnosis,\n bsc,\n sonic,\n unichain,\n} from \"./supportedChains\";\nimport { supportedChainIds } from \"./constants\";\nimport type { SupportedChainId } from \"./types\";\nimport type { FallbackTransport, Transport } from \"viem\";\n\n// when changing this list, retest all chains with token_balances query (the heaviest query)\n// different RPC providers have different limits, and break at some batch sizes\nconst rpcMap: Record<SupportedChainId, string> = {\n [mainnet.id]: \"https://ethereum-rpc.publicnode.com\",\n [optimism.id]: \"https://optimism.drpc.org\",\n [polygon.id]: \"https://1rpc.io/matic\",\n [base.id]: \"https://base.publicnode.com\",\n [arbitrum.id]: \"https://arb1.arbitrum.io/rpc\",\n [avalanche.id]: \"https://api.avax.network/ext/bc/C/rpc\",\n [gnosis.id]: \"https://rpc.gnosischain.com\",\n [bsc.id]: \"https://bsc.blockrazor.xyz\",\n [sonic.id]: \"https://rpc.soniclabs.com\",\n [unichain.id]: \"https://unichain.drpc.org\",\n};\n\nconst veloraRpcUrl = \"https://rpc.paraswap.io\";\n\nconst fallbackRpcMap = Object.fromEntries(\n supportedChainIds.map((chainId) => [chainId, `${veloraRpcUrl}/${chainId}`])\n) as Record<SupportedChainId, string>;\n\nexport const transports = Object.fromEntries(\n supportedChainIds.map((chainId) => [\n chainId,\n fallback([http(rpcMap[chainId]), http(fallbackRpcMap[chainId])]),\n ])\n) as Record<SupportedChainId, FallbackTransport<Transport[]>>;\n"],"names":["rpcMap","mainnet","id","optimism","polygon","base","arbitrum","avalanche","gnosis","bsc","sonic","unichain","veloraRpcUrl","fallbackRpcMap","Object","fromEntries","supportedChainIds","map","chainId","transports","fallback","http"],"mappings":";;;;AAoBA,MAAMA,MAAAA,GAA2C;AAAA,EAC/C,CAACC,OAAAA,CAAQC,EAAE,GAAG,qCAAA;AAAA,EACd,CAACC,QAAAA,CAASD,EAAE,GAAG,2BAAA;AAAA,EACf,CAACE,OAAAA,CAAQF,EAAE,GAAG,uBAAA;AAAA,EACd,CAACG,IAAAA,CAAKH,EAAE,GAAG,6BAAA;AAAA,EACX,CAACI,QAAAA,CAASJ,EAAE,GAAG,8BAAA;AAAA,EACf,CAACK,SAAAA,CAAUL,EAAE,GAAG,uCAAA;AAAA,EAChB,CAACM,MAAAA,CAAON,EAAE,GAAG,6BAAA;AAAA,EACb,CAACO,GAAAA,CAAIP,EAAE,GAAG,4BAAA;AAAA,EACV,CAACQ,KAAAA,CAAMR,EAAE,GAAG,2BAAA;AAAA,EACZ,CAACS,QAAAA,CAAST,EAAE,GAAG;AACjB,CAAA;AAEA,MAAMU,YAAAA,GAAe,yBAAA;AAErB,MAAMC,cAAAA,GAAiBC,MAAAA,CAAOC,WAAAA,CAC5BC,iBAAAA,CAAkBC,IAAKC,CAAAA,OAAAA,KAAY,CAACA,OAAAA,EAAS,CAAA,EAAGN,YAAY,CAAA,CAAA,EAAIM,OAAO,CAAA,CAAE,CAAC,CAC5E,CAAA;AAEO,MAAMC,UAAAA,GAAaL,OAAOC,WAAAA,CAC/BC,iBAAAA,CAAkBC,IAAKC,CAAAA,OAAAA,KAAY,CACjCA,OAAAA,EACAE,QAAAA,CAAS,CAACC,IAAAA,CAAKrB,OAAOkB,OAAO,CAAC,CAAA,EAAGG,IAAAA,CAAKR,cAAAA,CAAeK,OAAO,CAAC,CAAC,CAAC,CAAC,CACjE,CACH;;;;"}
|
package/dist/styles.css
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
:root, :host {
|
|
74
74
|
--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
75
75
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
76
76
|
--color-red-800: oklch(44.4% .177 26.899);
|
|
@@ -1289,6 +1289,9 @@
|
|
|
1289
1289
|
.velora-widget.velora-widget .border-secondary-orange-peel-1 {
|
|
1290
1290
|
border-color: var(--secondary-orange_peel-1);
|
|
1291
1291
|
}
|
|
1292
|
+
.velora-widget.velora-widget .border-secondary-radical-red-1 {
|
|
1293
|
+
border-color: var(--secondary-radical_red-1);
|
|
1294
|
+
}
|
|
1292
1295
|
.velora-widget.velora-widget .border-transparent {
|
|
1293
1296
|
border-color: #0000;
|
|
1294
1297
|
}
|
|
@@ -1325,6 +1328,9 @@
|
|
|
1325
1328
|
.velora-widget.velora-widget .bg-\[rgba\(0\,183\,213\,0\.05\)\] {
|
|
1326
1329
|
background-color: #00b7d50d;
|
|
1327
1330
|
}
|
|
1331
|
+
.velora-widget.velora-widget .bg-\[rgba\(255\,43\,82\,0\.05\)\] {
|
|
1332
|
+
background-color: #ff2b520d;
|
|
1333
|
+
}
|
|
1328
1334
|
.velora-widget.velora-widget .bg-\[rgba\(255\,153\,0\,0\.05\)\] {
|
|
1329
1335
|
background-color: #ff99000d;
|
|
1330
1336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/effects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../src/tokens/lists/state/effects.ts"],"names":[],"mappings":"AAiCA,wBAAgB,kBAAkB,SAEjC;AAWD,eAAO,MAAM,wBAAwB,eAEpC,CAAC"}
|
|
@@ -3,7 +3,8 @@ import { queryClient } from '../../../lib/queryClient.js';
|
|
|
3
3
|
import { produceSingleQueryOptionMin } from '../../queries.js';
|
|
4
4
|
import { atomEffect } from 'jotai-effect';
|
|
5
5
|
import { addTokenListsAtom } from './tokenListsActionsAtom.js';
|
|
6
|
-
import { tokenListUrlsAtom } from './tokenListsStateAtom.js';
|
|
6
|
+
import { tokenListUrlsAtom, constructedTokensByURLAtom } from './tokenListsStateAtom.js';
|
|
7
|
+
import { atom } from 'jotai';
|
|
7
8
|
|
|
8
9
|
const addedUrlsSet = /* @__PURE__ */ new Set();
|
|
9
10
|
async function addTokenList(url) {
|
|
@@ -19,6 +20,15 @@ const addTokenListEffect = atomEffect((get) => {
|
|
|
19
20
|
function useActivateEffects() {
|
|
20
21
|
useAtomValue(addTokenListEffect);
|
|
21
22
|
}
|
|
23
|
+
const allTokensListsFetchedSuccesfully = atom((get) => {
|
|
24
|
+
const tokenListUrls = get(tokenListUrlsAtom);
|
|
25
|
+
if (tokenListUrls.length === 0) return false;
|
|
26
|
+
const constructedTokensByURL = get(constructedTokensByURLAtom);
|
|
27
|
+
return tokenListUrls.every((url) => constructedTokensByURL[url] !== void 0);
|
|
28
|
+
});
|
|
29
|
+
const useAllTokensListsFetched = () => {
|
|
30
|
+
return useAtomValue(allTokensListsFetchedSuccesfully);
|
|
31
|
+
};
|
|
22
32
|
|
|
23
|
-
export { useActivateEffects };
|
|
33
|
+
export { useActivateEffects, useAllTokensListsFetched };
|
|
24
34
|
//# sourceMappingURL=effects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.js","sources":["../../../../src/tokens/lists/state/effects.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { produceSingleQueryOptionMin } from \"@/tokens/queries\";\nimport { atomEffect } from \"jotai-effect\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport {
|
|
1
|
+
{"version":3,"file":"effects.js","sources":["../../../../src/tokens/lists/state/effects.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { produceSingleQueryOptionMin } from \"@/tokens/queries\";\nimport { atomEffect } from \"jotai-effect\";\nimport { addTokenListsAtom } from \"./tokenListsActionsAtom\";\nimport {\n constructedTokensByURLAtom,\n tokenListUrlsAtom,\n} from \"./tokenListsStateAtom\";\nimport { useAtomValue } from \"@/core/store\";\nimport { atom } from \"jotai\";\n\nconst addedUrlsSet = new Set<string>();\n\nasync function addTokenList(url: string) {\n // list already in store\n if (addedUrlsSet.has(url)) return;\n\n // fetch token list or get from cache\n const queryOptions = produceSingleQueryOptionMin(url);\n const tokenList = await queryClient.ensureQueryData(queryOptions);\n\n // add url to set\n addedUrlsSet.add(url);\n\n // add to state once per fetched list\n if (tokenList?.available) jotaiStore.set(addTokenListsAtom, [tokenList]);\n}\n\nconst addTokenListEffect = atomEffect((get) => {\n get(tokenListUrlsAtom).forEach(addTokenList);\n});\n\nexport function useActivateEffects() {\n useAtomValue(addTokenListEffect);\n}\n\nconst allTokensListsFetchedSuccesfully = atom<boolean>((get) => {\n const tokenListUrls = get(tokenListUrlsAtom);\n if (tokenListUrls.length === 0) return false;\n const constructedTokensByURL = get(constructedTokensByURLAtom);\n return tokenListUrls.every(\n (url) => constructedTokensByURL[url] !== undefined\n );\n});\n\nexport const useAllTokensListsFetched = () => {\n return useAtomValue(allTokensListsFetchedSuccesfully);\n};\n"],"names":["addedUrlsSet","Set","addTokenList","url","has","queryOptions","produceSingleQueryOptionMin","tokenList","queryClient","ensureQueryData","add","available","jotaiStore","set","addTokenListsAtom","addTokenListEffect","atomEffect","get","tokenListUrlsAtom","forEach","useActivateEffects","useAtomValue","allTokensListsFetchedSuccesfully","atom","tokenListUrls","length","constructedTokensByURL","constructedTokensByURLAtom","every","undefined","useAllTokensListsFetched"],"mappings":";;;;;;;;AAYA,MAAMA,YAAAA,uBAAmBC,GAAAA,EAAY;AAErC,eAAeC,aAAaC,GAAAA,EAAa;AAEvC,EAAA,IAAIH,YAAAA,CAAaI,GAAAA,CAAID,GAAG,CAAA,EAAG;AAG3B,EAAA,MAAME,YAAAA,GAAeC,4BAA4BH,GAAG,CAAA;AACpD,EAAA,MAAMI,SAAAA,GAAY,MAAMC,WAAAA,CAAYC,eAAAA,CAAgBJ,YAAY,CAAA;AAGhEL,EAAAA,YAAAA,CAAaU,IAAIP,GAAG,CAAA;AAGpB,EAAA,IAAII,WAAWI,SAAAA,EAAWC,UAAAA,CAAWC,IAAIC,iBAAAA,EAAmB,CAACP,SAAS,CAAC,CAAA;AACzE;AAEA,MAAMQ,kBAAAA,GAAqBC,WAAYC,CAAAA,GAAAA,KAAQ;AAC7CA,EAAAA,GAAAA,CAAIC,iBAAiB,CAAA,CAAEC,OAAAA,CAAQjB,YAAY,CAAA;AAC7C,CAAC,CAAA;AAEM,SAAAkB,kBAAAA,GAAA;AACLC,EAAAA,YAAAA,CAAaN,kBAAkB,CAAA;AAAC;AAGlC,MAAMO,gCAAAA,GAAmCC,KAAeN,CAAAA,GAAAA,KAAQ;AAC9D,EAAA,MAAMO,aAAAA,GAAgBP,IAAIC,iBAAiB,CAAA;AAC3C,EAAA,IAAIM,aAAAA,CAAcC,MAAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AACvC,EAAA,MAAMC,sBAAAA,GAAyBT,IAAIU,0BAA0B,CAAA;AAC7D,EAAA,OAAOH,cAAcI,KAAAA,CAClBzB,CAAAA,GAAAA,KAAQuB,sBAAAA,CAAuBvB,GAAG,MAAM0B,MAC3C,CAAA;AACF,CAAC,CAAA;AAEM,MAAMC,2BAA2BA,MAAA;AAAA,EAAA,OAC/BT,aAAaC,gCAAgC,CAAA;AAAC;;;;"}
|