From c80c9562f8e7d35ac978e43d35100ce0c429c120 Mon Sep 17 00:00:00 2001 From: bigboydiamonds <57741810+bigboydiamonds@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:11:21 -0700 Subject: [PATCH] Request confirm if bridge module changes --- .../hooks/useConfirmNewBridgePrice.ts | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/synapse-interface/components/StateManagedBridge/hooks/useConfirmNewBridgePrice.ts b/packages/synapse-interface/components/StateManagedBridge/hooks/useConfirmNewBridgePrice.ts index ddec669c15..439678f274 100644 --- a/packages/synapse-interface/components/StateManagedBridge/hooks/useConfirmNewBridgePrice.ts +++ b/packages/synapse-interface/components/StateManagedBridge/hooks/useConfirmNewBridgePrice.ts @@ -6,7 +6,7 @@ import { constructStringifiedBridgeSelections } from './useBridgeValidations' import { BridgeQuote } from '@/utils/types' export const useConfirmNewBridgePrice = () => { - const quoteRef = useRef(null) + const triggerQuoteRef = useRef(null) const bpsThreshold = 0.0001 // 1bps const [hasQuoteOutputChanged, setHasQuoteOutputChanged] = @@ -51,17 +51,28 @@ export const useConfirmNewBridgePrice = () => { const validQuotes = bridgeQuote?.outputAmount && previousBridgeQuote?.outputAmount + const hasBridgeModuleChanged = + bridgeQuote?.bridgeModuleName !== + (triggerQuoteRef.current?.bridgeModuleName ?? + previousBridgeQuote?.bridgeModuleName) + const outputAmountDiffMoreThanThreshold = validQuotes ? calculateOutputRelativeDifference( bridgeQuote, - quoteRef.current ?? previousBridgeQuote + triggerQuoteRef.current ?? previousBridgeQuote ) > bpsThreshold : false if ( validQuotes && - outputAmountDiffMoreThanThreshold && - hasSameSelectionsAsPreviousQuote + hasSameSelectionsAsPreviousQuote && + hasBridgeModuleChanged + ) { + requestUserConfirmChange(previousBridgeQuote) + } else if ( + validQuotes && + hasSameSelectionsAsPreviousQuote && + outputAmountDiffMoreThanThreshold ) { requestUserConfirmChange(previousBridgeQuote) } else { @@ -71,7 +82,7 @@ export const useConfirmNewBridgePrice = () => { const requestUserConfirmChange = (previousQuote: BridgeQuote) => { if (!hasQuoteOutputChanged && !hasUserConfirmedChange) { - quoteRef.current = previousQuote + triggerQuoteRef.current = previousQuote setHasQuoteOutputChanged(true) } setHasUserConfirmedChange(false) @@ -79,14 +90,14 @@ export const useConfirmNewBridgePrice = () => { const resetConfirm = () => { if (hasUserConfirmedChange) { - quoteRef.current = null + triggerQuoteRef.current = null setHasQuoteOutputChanged(false) setHasUserConfirmedChange(false) } } const onUserAcceptChange = () => { - quoteRef.current = null + triggerQuoteRef.current = null setHasUserConfirmedChange(true) }