Skip to content

Commit a93ff05

Browse files
authored
fix: flashloan disabled guard for debt-swap and repay + do not allow permit for SC wallets (#2797)
1 parent 838ddc2 commit a93ff05

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/components/transactions/Swap/actions/approval/useSwapTokenApproval.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { defaultAbiCoder, splitSignature } from 'ethers/lib/utils';
55
import { Dispatch, useEffect, useMemo, useRef, useState } from 'react';
66
import { MOCK_SIGNED_HASH } from 'src/helpers/useTransactionHandler';
77
import { calculateSignedAmount } from 'src/hooks/paraswap/common';
8+
import { useGetConnectedWalletType } from 'src/hooks/useGetConnectedWalletType';
89
import { useModalContext } from 'src/hooks/useModal';
910
import { useWeb3Context } from 'src/libs/hooks/useWeb3Context';
1011
import { useRootStore } from 'src/store/root';
@@ -104,6 +105,8 @@ export const useSwapTokenApproval = ({
104105
const { sendTx, signTxData } = useWeb3Context();
105106
const [loadingPermitData, setLoadingPermitData] = useState(true);
106107

108+
const { isSmartContractWallet } = useGetConnectedWalletType();
109+
107110
const [
108111
user,
109112
generateApproval,
@@ -256,7 +259,7 @@ export const useSwapTokenApproval = ({
256259
};
257260
}, [chainId, token]);
258261

259-
const tryPermit = allowPermit && permitSupported === true;
262+
const tryPermit = allowPermit && permitSupported === true && !isSmartContractWallet;
260263
const usePermit = tryPermit && walletApprovalMethodPreference === ApprovalMethod.PERMIT;
261264

262265
const approval = async () => {

src/components/transactions/Swap/errors/shared/FlashLoanDisabledBlockingGuard.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ export const hasFlashLoanDisabled = (state: SwapState): boolean => {
1010
return false;
1111
}
1212

13-
if (
14-
state.useFlashloan === true &&
15-
state.sourceReserve?.reserve &&
16-
!state.sourceReserve.reserve.flashLoanEnabled
17-
) {
13+
const reserve = !state.isInvertedSwap
14+
? state.sourceReserve?.reserve
15+
: state.destinationReserve?.reserve;
16+
17+
if (state.useFlashloan === true && reserve && !reserve.flashLoanEnabled) {
1818
return true;
1919
}
2020

@@ -70,6 +70,7 @@ export const FlashLoanDisabledBlockingGuard = ({
7070
state.provider,
7171
state.useFlashloan,
7272
state.sourceReserve?.reserve?.flashLoanEnabled,
73+
state.destinationReserve?.reserve?.flashLoanEnabled,
7374
state.error,
7475
]);
7576

0 commit comments

Comments
 (0)