diff --git a/apps/cowswap-frontend/src/modules/appData/updater/AppDataHooksUpdater.ts b/apps/cowswap-frontend/src/modules/appData/updater/AppDataHooksUpdater.ts index e379da1965..907e6e29ea 100644 --- a/apps/cowswap-frontend/src/modules/appData/updater/AppDataHooksUpdater.ts +++ b/apps/cowswap-frontend/src/modules/appData/updater/AppDataHooksUpdater.ts @@ -1,5 +1,6 @@ import { useEffect, useRef, useState } from 'react' +import { getCurrencyAddress } from '@cowprotocol/common-utils' import { cowAppDataLatestScheme } from '@cowprotocol/cow-sdk' import { PermitHookData } from '@cowprotocol/permit-utils' import { useIsSmartContractWallet } from '@cowprotocol/wallet' @@ -50,6 +51,18 @@ export function AppDataHooksUpdater(): null { const [permitHook, setPermitHook] = useState(undefined) + const inputCurrencyAddress = tradeState?.inputCurrency ? getCurrencyAddress(tradeState.inputCurrency) : undefined + + /** + * Reset appDataHooks every time sellToken changes + */ + useEffect(() => { + if (!inputCurrencyAddress) return + + updateAppDataHooks(undefined) + setPermitHook(undefined) + }, [inputCurrencyAddress, updateAppDataHooks]) + useEffect(() => { const preInteractionHooks = (preHooks || []).map((hookDetails) => cowHookToTypedCowHook(hookDetails.hook, 'hookStore'),