From 827eb415d21b2d157625cf14b4bfc793a0cc7208 Mon Sep 17 00:00:00 2001 From: Mike Starr <90465420+personnamedmike@users.noreply.github.com> Date: Fri, 6 Oct 2023 11:05:29 -0400 Subject: [PATCH] changed decimals of stakingAmount in comparisons in StakingModal (#110) * changed decimals of stakingAmount in comparisons in StakingModal * remove console log * Use bignumber amount for approval check * removed conversion 10**4 * fixed PieBar length on firefox * undo piebar fix * remove comments, fix conversions * change variable names in useStakeAst and useUnstakeAst * fix var names in useApproveAst --------- Co-authored-by: greypixel --- src/features/staking/StakingModal.tsx | 28 +++++++++++--------- src/features/staking/hooks/useApproveAst.ts | 6 ++--- src/features/staking/hooks/useStakeAst.ts | 6 ++--- src/features/staking/hooks/useUnstakeSast.ts | 6 ++--- 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/features/staking/StakingModal.tsx b/src/features/staking/StakingModal.tsx index baf621d..bf952e2 100644 --- a/src/features/staking/StakingModal.tsx +++ b/src/features/staking/StakingModal.tsx @@ -22,7 +22,7 @@ export const StakingModal = () => { const formReturn = useForm(); const { getValues } = formReturn; - const stakingAmount = getValues().stakingAmount * 10 ** 4; + const stakingAmountFormatted = getValues().stakingAmount; const isSupportedChain = useIsSupportedChain(); const { switchNetwork } = useSwitchNetwork(); @@ -30,7 +30,7 @@ export const StakingModal = () => { // This state tracks whether the last transaction was an approval. const [isApproval, setIsApproval] = useState(false); - const { astAllowanceFormatted: astAllowance } = useAstAllowance(); + const { astAllowance } = useAstAllowance(); const { unstakableSastBalanceRaw: unstakableSastBalance, @@ -38,25 +38,27 @@ export const StakingModal = () => { } = useTokenBalances(); // stakingAmount default is NaN. Wagmi hooks need to validate that stakingAmount exists - const validNumberInput = !!stakingAmount && Number(stakingAmount) > 0; + const validNumberInput = + !!stakingAmountFormatted && Number(stakingAmountFormatted) * 10 ** 4 > 0; const needsApproval = txType === TxType.STAKE && - Number(astAllowance) < Number(stakingAmount) && + Number(astAllowance) < Number(stakingAmountFormatted) * 10 ** 4 && validNumberInput; const canStake = txType === TxType.STAKE && !needsApproval && validNumberInput; const canUnstake = - Number(stakingAmount) <= Number(unstakableSastBalance) && + Number(stakingAmountFormatted) * 10 ** 4 <= Number(unstakableSastBalance) && txType === TxType.UNSTAKE && validNumberInput; const isInsufficientBalance = - txType === TxType.STAKE && stakingAmount - ? Number(stakingAmount) > Number(astBalance) - : Number(stakingAmount) > Number(unstakableSastBalance); + txType === TxType.STAKE && stakingAmountFormatted + ? Number(stakingAmountFormatted) * 10 ** 4 > Number(astBalance) + : Number(stakingAmountFormatted) * 10 ** 4 > + Number(unstakableSastBalance); const { writeAsync: approveAst, @@ -64,7 +66,7 @@ export const StakingModal = () => { reset: resetApproveAst, isLoading: approvalAwaitingSignature, } = useApproveAst({ - stakingAmount: Number(stakingAmount) || 0, + stakingAmountFormatted: Number(stakingAmountFormatted) || 0, enabled: needsApproval, }); @@ -74,7 +76,7 @@ export const StakingModal = () => { data: dataStakeAst, isLoading: stakeAwaitingSignature, } = useStakeAst({ - stakingAmount: Number(stakingAmount) || 0, + stakingAmountFormatted: Number(stakingAmountFormatted) || 0, enabled: canStake, }); @@ -84,7 +86,7 @@ export const StakingModal = () => { data: dataUnstakeSast, isLoading: unstakeAwaitingSignature, } = useUnstakeSast({ - unstakingAmount: Number(stakingAmount) || 0, + unstakingAmountFormatted: Number(stakingAmountFormatted) || 0, canUnstake: canUnstake, }); @@ -123,7 +125,7 @@ export const StakingModal = () => { insufficientBalance: isInsufficientBalance, }); - const isAmountInvalid = Number(stakingAmount) <= 0; + const isAmountInvalid = Number(stakingAmountFormatted) * 10 ** 4 <= 0; const isStakeButtonDisabled = isAmountInvalid || isInsufficientBalance; @@ -185,7 +187,7 @@ export const StakingModal = () => { successContent={ You successfully {verb}{" "} - {stakingAmount} AST + {stakingAmountFormatted} AST } failureContent={"Your transaction has failed"} diff --git a/src/features/staking/hooks/useApproveAst.ts b/src/features/staking/hooks/useApproveAst.ts index b6d6eca..660ddbc 100644 --- a/src/features/staking/hooks/useApproveAst.ts +++ b/src/features/staking/hooks/useApproveAst.ts @@ -5,10 +5,10 @@ import { useContractAddresses } from "../../../config/hooks/useContractAddress"; import { astAbi } from "../../../contracts/astAbi"; export const useApproveAst = ({ - stakingAmount, + stakingAmountFormatted, enabled = true, }: { - stakingAmount: number; + stakingAmountFormatted: number; enabled?: boolean; }) => { const [airSwapToken] = useContractAddresses([ContractTypes.AirSwapToken], { @@ -24,7 +24,7 @@ export const useApproveAst = ({ }, ); - const stakingAmountConversion = new BigNumber(stakingAmount) + const stakingAmountConversion = new BigNumber(stakingAmountFormatted) .multipliedBy(10 ** 4) .integerValue() .toString(); diff --git a/src/features/staking/hooks/useStakeAst.ts b/src/features/staking/hooks/useStakeAst.ts index 866aa42..3f82abb 100644 --- a/src/features/staking/hooks/useStakeAst.ts +++ b/src/features/staking/hooks/useStakeAst.ts @@ -5,10 +5,10 @@ import { useContractAddresses } from "../../../config/hooks/useContractAddress"; import { stakingAbi } from "../../../contracts/stakingAbi"; export const useStakeAst = ({ - stakingAmount, + stakingAmountFormatted, enabled = true, }: { - stakingAmount: number; + stakingAmountFormatted: number; enabled?: boolean; }) => { const [airSwapStaking] = useContractAddresses( @@ -19,7 +19,7 @@ export const useStakeAst = ({ }, ); - const stakingAmountConversion = new BigNumber(stakingAmount) + const stakingAmountConversion = new BigNumber(stakingAmountFormatted) .multipliedBy(10 ** 4) .integerValue() .toString(); diff --git a/src/features/staking/hooks/useUnstakeSast.ts b/src/features/staking/hooks/useUnstakeSast.ts index 2f96669..d95057f 100644 --- a/src/features/staking/hooks/useUnstakeSast.ts +++ b/src/features/staking/hooks/useUnstakeSast.ts @@ -10,10 +10,10 @@ import { stakingAbi } from "../../../contracts/stakingAbi"; * @param canUnstake - boolean value, true if unstakingAmount (stakingAmount) > 0 and if unstakigAmount (stakingAmount) <= sAST balance */ export const useUnstakeSast = ({ - unstakingAmount, + unstakingAmountFormatted, canUnstake, }: { - unstakingAmount: number; + unstakingAmountFormatted: number; canUnstake: boolean; }) => { const [airSwapStaking] = useContractAddresses( @@ -24,7 +24,7 @@ export const useUnstakeSast = ({ }, ); - const unstakingAmountConversion = new BigNumber(unstakingAmount) + const unstakingAmountConversion = new BigNumber(unstakingAmountFormatted) .multipliedBy(10 ** 4) .integerValue() .toString();