From 1c28505ec0beba1190b998f90a55032b98fb855b Mon Sep 17 00:00:00 2001 From: Bill Date: Wed, 14 Feb 2024 14:59:04 -0800 Subject: [PATCH 1/2] Set minimum for CCTP withdraws (#306) --- src/constants/numbers.ts | 1 + .../forms/AccountManagementForms/WithdrawForm.tsx | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/constants/numbers.ts b/src/constants/numbers.ts index e515d83..dc6914d 100644 --- a/src/constants/numbers.ts +++ b/src/constants/numbers.ts @@ -22,4 +22,5 @@ export enum NumberSign { // Deposit/Withdraw export const MAX_CCTP_TRANSFER_AMOUNT = 1_000_000; +export const MIN_CCTP_TRANSFER_AMOUNT = 10; export const MAX_PRICE_IMPACT = 0.02; // 2% diff --git a/src/views/forms/AccountManagementForms/WithdrawForm.tsx b/src/views/forms/AccountManagementForms/WithdrawForm.tsx index 33f26ef..58ff137 100644 --- a/src/views/forms/AccountManagementForms/WithdrawForm.tsx +++ b/src/views/forms/AccountManagementForms/WithdrawForm.tsx @@ -11,7 +11,12 @@ import { ButtonSize } from '@/constants/buttons'; import { STRING_KEYS } from '@/constants/localization'; import { ENVIRONMENT_CONFIG_MAP, isMainnet } from '@/constants/networks'; import { TransferNotificationTypes } from '@/constants/notifications'; -import { MAX_CCTP_TRANSFER_AMOUNT, MAX_PRICE_IMPACT, NumberSign } from '@/constants/numbers'; +import { + MAX_CCTP_TRANSFER_AMOUNT, + MAX_PRICE_IMPACT, + MIN_CCTP_TRANSFER_AMOUNT, + NumberSign, +} from '@/constants/numbers'; import { useAccounts, @@ -329,6 +334,12 @@ export const WithdrawForm = () => { }, }); } + if ( + !debouncedAmountBN.isZero() && + MustBigNumber(debouncedAmountBN).lte(MIN_CCTP_TRANSFER_AMOUNT) + ) { + return 'Amount must be greater than 10 USDC'; + } } if (isMainnet && MustBigNumber(summary?.aggregatePriceImpact).gte(MAX_PRICE_IMPACT)) { From b09fe9ebb1bb2d0e1d0f60931615685cca0e4011 Mon Sep 17 00:00:00 2001 From: moo-onthelawn <70078372+moo-onthelawn@users.noreply.github.com> Date: Wed, 14 Feb 2024 18:19:37 -0500 Subject: [PATCH 2/2] fix bug (#304) --- src/hooks/tradingView/useChartMarketAndResolution.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/hooks/tradingView/useChartMarketAndResolution.ts b/src/hooks/tradingView/useChartMarketAndResolution.ts index 9343b2d..a6b5451 100644 --- a/src/hooks/tradingView/useChartMarketAndResolution.ts +++ b/src/hooks/tradingView/useChartMarketAndResolution.ts @@ -27,19 +27,26 @@ export const useChartMarketAndResolution = ({ const dispatch = useDispatch(); const currentMarketId: string = useSelector(getCurrentMarketId) || DEFAULT_MARKETID; + const selectedResolution: string = useSelector(getSelectedResolutionForMarket(currentMarketId)) || DEFAULT_RESOLUTION; const chart = isWidgetReady ? tvWidget?.chart() : undefined; const chartResolution = chart?.resolution?.(); + /** + * @description Hook to handle changing markets - intentionally should avoid triggering on change of resolutions. + */ useEffect(() => { if (currentMarketId && isWidgetReady) { const resolution = savedResolution || selectedResolution; tvWidget?.setSymbol(currentMarketId, resolution as ResolutionString, () => {}); } - }, [currentMarketId, isWidgetReady, savedResolution, selectedResolution]); + }, [currentMarketId, isWidgetReady]); + /** + * @description Hook to handle changing chart resolution + */ useEffect(() => { if (chartResolution) { if (chartResolution !== selectedResolution) {