diff --git a/src/hooks/swap/useTokens.ts b/src/hooks/swap/useTokens.ts index 2575af0..4ebe561 100644 --- a/src/hooks/swap/useTokens.ts +++ b/src/hooks/swap/useTokens.ts @@ -15,10 +15,11 @@ type SetTokensInput = { type Input = { initialBuyToken?: InitialToken initialSellToken?: InitialToken + filterList?: boolean } const useTokens = (values?: Input) => { - const { initialBuyToken, initialSellToken } = values || {} + const { initialBuyToken, initialSellToken, filterList = true } = values || {} const { sdk } = useConfig() const { list, isTokensListFetching } = useTokensList() @@ -34,10 +35,12 @@ const useTokens = (values?: Input) => { }) const filteredList = useMemo(() => ( - list.filter(({ address }) => ( - ![ buyToken.data.address, sellToken.data.address ].includes(address) - )) - ), [ buyToken, sellToken, list ]) + filterList + ? list.filter(({ address }) => ( + ![ buyToken.data.address, sellToken.data.address ].includes(address) + )) + : list + ), [ buyToken, sellToken, list, filterList ]) const setTokens = useCallback((values: SetTokensInput) => { if (values.buyToken || values.buyToken === null) { diff --git a/src/views/SwapView/content/Stake/StakeInput/StakeInput.tsx b/src/views/SwapView/content/Stake/StakeInput/StakeInput.tsx index bbdfb67..a637bf5 100644 --- a/src/views/SwapView/content/Stake/StakeInput/StakeInput.tsx +++ b/src/views/SwapView/content/Stake/StakeInput/StakeInput.tsx @@ -1,4 +1,4 @@ -import React, { useCallback } from 'react' +import React, { useCallback, useMemo } from 'react' import { useConfig } from 'config' import { swapCtx } from 'views/SwapView/util' @@ -6,13 +6,17 @@ import { TokenDropdown, TokenAmountInputView } from 'components' const StakeInput: React.FC = () => { - const { address } = useConfig() const { stake } = swapCtx.useData() + const { sdk, address } = useConfig() const onMaxButtonClick = useCallback(() => { stake.field.setValue(stake.maxStakeAmount) }, [ stake ]) + const filteredList = useMemo(() => ( + stake.swapTokens.list.filter(({ address }) => address !== sdk.config.addresses.tokens.mintToken) + ), [ sdk, stake.swapTokens.list ]) + return ( { tokenNode={( { diff --git a/src/views/SwapView/util/vault/actions/useStake/index.ts b/src/views/SwapView/util/vault/actions/useStake/index.ts index a10d379..e1d27b8 100644 --- a/src/views/SwapView/util/vault/actions/useStake/index.ts +++ b/src/views/SwapView/util/vault/actions/useStake/index.ts @@ -22,9 +22,12 @@ const useStake = (values: Input) => { const { sdk, isTestnet, isEthereum } = useConfig() const { isBalancesFetching } = useStore(storeSelector) + + const depositTokenAddress = isEthereum ? null : sdk.config.addresses.tokens.depositToken const swapTokens = swapHooks.useTokens({ - initialBuyToken: sdk.config.addresses.tokens.mintToken, - initialSellToken: isEthereum ? null : sdk.config.addresses.tokens.depositToken, + initialBuyToken: depositTokenAddress, + initialSellToken: depositTokenAddress, + filterList: false, }) const isSwapAvailable = Boolean( diff --git a/src/views/SwapView/util/vault/actions/useStake/useStakeSubmit/index.ts b/src/views/SwapView/util/vault/actions/useStake/useStakeSubmit/index.ts index 32da4a0..68fcdbe 100644 --- a/src/views/SwapView/util/vault/actions/useStake/useStakeSubmit/index.ts +++ b/src/views/SwapView/util/vault/actions/useStake/useStakeSubmit/index.ts @@ -47,7 +47,7 @@ const useStakeSubmit = (values: Input) => { step: StakeStep.SwapApprove, recipient: addresses[chainId].cow.vaultRelayer, tokenAddress: swapTokens.sellToken.address, - skip: !swapTokens.sellToken.address || !vaultAddress, + skip: !swapTokens.sellToken.address || !vaultAddress || !swapTokens.sellToken.address, }) const stakeApprove = useStakeApprove({