diff --git a/src/hooks/useApprovalTx.tsx b/src/hooks/useApprovalTx.tsx index 3379d46a8d..4576cc3c58 100644 --- a/src/hooks/useApprovalTx.tsx +++ b/src/hooks/useApprovalTx.tsx @@ -1,5 +1,4 @@ import { ApproveType, MAX_UINT_AMOUNT, ProtocolAction } from '@aave/contract-helpers'; -import { valueToBigNumber } from '@aave/math-utils'; import { SignatureLike } from '@ethersproject/bytes'; import { constants, ethers } from 'ethers'; import { parseUnits } from 'ethers/lib/utils'; @@ -82,13 +81,10 @@ export const useApprovalTx = ({ return; } - const amountToApprove = parseUnits(signatureAmount, decimals).toString(); - const currentApproved = approvedAmount?.amount - ? valueToBigNumber(approvedAmount.amount).toFixed(0) - : '0'; + const currentApproved = approvedAmount?.amount ?? '0'; if ( - needsUSDTApprovalReset(symbol, chainId, currentApproved, amountToApprove, underlyingChainId) + needsUSDTApprovalReset(symbol, chainId, currentApproved, signatureAmount, underlyingChainId) ) { setShowUSDTResetWarning(true); setRequiresApprovalReset(true); @@ -103,7 +99,6 @@ export const useApprovalTx = ({ approvedAmount?.amount, signatureAmount, setShowUSDTResetWarning, - decimals, ]); const approval = async () => { diff --git a/src/modules/umbrella/UmbrellaActions.tsx b/src/modules/umbrella/UmbrellaActions.tsx index 4ed1240b99..fe4fbc0504 100644 --- a/src/modules/umbrella/UmbrellaActions.tsx +++ b/src/modules/umbrella/UmbrellaActions.tsx @@ -40,6 +40,7 @@ export interface StakeActionProps extends BoxProps { event: string; isMaxSelected: boolean; reserve: ComputedReserveData; + setShowUSDTResetWarning?: (showUSDTResetWarning: boolean) => void; } export const UmbrellaActions = ({ @@ -53,6 +54,7 @@ export const UmbrellaActions = ({ stakeData, isMaxSelected, reserve, + setShowUSDTResetWarning, ...props }: StakeActionProps) => { const queryClient = useQueryClient(); @@ -139,7 +141,7 @@ export const UmbrellaActions = ({ amount: approvedAmount?.toString() || '0', }; - const { approval } = useApprovalTx({ + const { approval, requiresApprovalReset } = useApprovalTx({ usePermit, approvedAmount: tokenApproval, requiresApproval, @@ -150,6 +152,8 @@ export const UmbrellaActions = ({ onApprovalTxConfirmed: fetchApprovedAmount, signatureAmount: amount, onSignTxCompleted: (signedParams) => setSignatureParams(signedParams), + chainId: currentChainId, + setShowUSDTResetWarning, }); const { currentAccount, sendTx } = useWeb3Context(); @@ -287,6 +291,7 @@ export const UmbrellaActions = ({ blocked={blocked} // event={STAKE.STAKE_BUTTON_MODAL} {...props} + requiresApprovalReset={requiresApprovalReset} /> ); }; diff --git a/src/modules/umbrella/UmbrellaModalContent.tsx b/src/modules/umbrella/UmbrellaModalContent.tsx index 1a1d04e610..7ff2fd4bc3 100644 --- a/src/modules/umbrella/UmbrellaModalContent.tsx +++ b/src/modules/umbrella/UmbrellaModalContent.tsx @@ -17,6 +17,7 @@ import { DetailsNumberLine, TxModalDetails, } from 'src/components/transactions/FlowCommons/TxModalDetails'; +import { USDTResetWarning } from 'src/components/transactions/Warnings/USDTResetWarning'; import { CooldownWarning } from 'src/components/Warnings/CooldownWarning'; import { ExtendedFormattedUser } from 'src/hooks/pool/useExtendedUserSummaryAndIncentives'; import { FormattedReservesAndIncentives } from 'src/hooks/pool/usePoolFormattedReserves'; @@ -88,6 +89,7 @@ export const UmbrellaModalContent = ({ stakeData, user, userReserve, poolReserve const [riskCheckboxAccepted, setRiskCheckboxAccepted] = useState(false); const [_amount, setAmount] = useState(''); + const [showUSDTResetWarning, setShowUSDTResetWarning] = useState(false); const [currentChainId] = useRootStore( useShallow((store) => [store.currentChainId, store.currentNetworkConfig]) @@ -271,6 +273,8 @@ export const UmbrellaModalContent = ({ stakeData, user, userReserve, poolReserve )} + {showUSDTResetWarning && } + );