Commit 379437b7 authored by eddie's avatar eddie Committed by GitHub

fix: remove all references to expert mode (#6675)

parent 02c0dee0
......@@ -81,34 +81,6 @@ describe('Permit2', () => {
})
})
it('swaps after completing full permit2 approval process in expert mode', () => {
// Sets up a swap between INPUT_TOKEN and OUTPUT_TOKEN.
cy.visit(`/swap/?inputCurrency=${INPUT_TOKEN.address}&outputCurrency=${OUTPUT_TOKEN.address}&ape=true`, {
ethereum: 'hardhat',
})
cy.get('#swap-currency-input .token-amount-input').type(TEST_BALANCE_INCREMENT.toString())
cy.hardhat().then(({ provider }) => {
cy.spy(provider, 'send').as('permitApprovalSpy')
})
initiateSwap()
cy.contains('Enable spending limits for DAI on Uniswap').should('exist')
cy.contains('Approved').should('exist')
cy.contains('Allow DAI to be used for swapping').should('exist')
cy.contains('Confirm Swap').should('exist')
cy.then(() => {
const approvalTime = Date.now()
cy.contains('Swapped').should('exist')
expectTokenAllowanceForPermit2ToBeMax()
expectPermit2AllowanceForUniversalRouterToBeMax(approvalTime)
cy.get('@permitApprovalSpy').should('have.been.calledWith', 'eth_signTypedData_v4')
})
})
it('swaps after handling user rejection of both approval and signature', () => {
const USER_REJECTION = { code: 4001 }
cy.hardhat().then((hardhat) => {
......
import { useEffect } from 'react'
import { useAppDispatch } from 'state/hooks'
import { updateUserExpertMode } from '../state/user/reducer'
import useParsedQueryString from './useParsedQueryString'
export default function ApeModeQueryParamReader(): null {
useApeModeQueryParamReader()
return null
}
function useApeModeQueryParamReader() {
const dispatch = useAppDispatch()
const { ape } = useParsedQueryString()
useEffect(() => {
if (typeof ape !== 'string') return
if (ape === '' || ape.toLowerCase() === 'true') {
dispatch(updateUserExpertMode({ userExpertMode: true }))
}
})
}
......@@ -57,7 +57,7 @@ import { useV3PositionFromTokenId } from '../../hooks/useV3Positions'
import { Bound, Field } from '../../state/mint/v3/actions'
import { useTransactionAdder } from '../../state/transactions/hooks'
import { TransactionType } from '../../state/transactions/types'
import { useIsExpertMode, useUserSlippageToleranceWithDefault } from '../../state/user/hooks'
import { useUserSlippageToleranceWithDefault } from '../../state/user/hooks'
import { ThemedText } from '../../theme'
import approveAmountCalldata from '../../utils/approveAmountCalldata'
import { calculateGasMargin } from '../../utils/calculateGasMargin'
......@@ -103,7 +103,6 @@ function AddLiquidity() {
const theme = useTheme()
const toggleWalletDrawer = useToggleAccountDrawer() // toggle wallet when disconnected
const expertMode = useIsExpertMode()
const addTransaction = useTransactionAdder()
const positionManager = useV3NFTPositionManagerContract()
......@@ -532,7 +531,7 @@ function AddLiquidity() {
)}
<ButtonError
onClick={() => {
expertMode ? onAdd() : setShowConfirm(true)
setShowConfirm(true)
}}
disabled={
!isValid ||
......
......@@ -36,7 +36,7 @@ import { Field } from '../../state/mint/actions'
import { useDerivedMintInfo, useMintActionHandlers, useMintState } from '../../state/mint/hooks'
import { useTransactionAdder } from '../../state/transactions/hooks'
import { TransactionType } from '../../state/transactions/types'
import { useIsExpertMode, useUserSlippageToleranceWithDefault } from '../../state/user/hooks'
import { useUserSlippageToleranceWithDefault } from '../../state/user/hooks'
import { ThemedText } from '../../theme'
import { calculateGasMargin } from '../../utils/calculateGasMargin'
import { calculateSlippageAmount } from '../../utils/calculateSlippageAmount'
......@@ -69,8 +69,6 @@ export default function AddLiquidity() {
const toggleWalletDrawer = useToggleAccountDrawer() // toggle wallet when disconnected
const expertMode = useIsExpertMode()
// mint state
const { independentField, typedValue, otherTypedValue } = useMintState()
const {
......@@ -487,7 +485,7 @@ export default function AddLiquidity() {
)}
<ButtonError
onClick={() => {
expertMode ? onAdd() : setShowConfirm(true)
setShowConfirm(true)
}}
disabled={!isValid || approvalA !== ApprovalState.APPROVED || approvalB !== ApprovalState.APPROVED}
error={!isValid && !!parsedAmounts[Field.CURRENCY_A] && !!parsedAmounts[Field.CURRENCY_B]}
......
......@@ -4,7 +4,6 @@ import { useWeb3React } from '@web3-react/core'
import Loader from 'components/Icons/LoadingSpinner'
import TopLevelModals from 'components/TopLevelModals'
import { useFeatureFlagsIsLoaded } from 'featureFlags'
import ApeModeQueryParamReader from 'hooks/useApeModeQueryParamReader'
import { useAtom } from 'jotai'
import { useBag } from 'nft/hooks/useBag'
import { lazy, Suspense, useEffect, useMemo, useState } from 'react'
......@@ -28,7 +27,6 @@ import { PageTabs } from '../components/NavBar'
import NavBar from '../components/NavBar'
import Polling from '../components/Polling'
import Popups from '../components/Popups'
import { useIsExpertMode } from '../state/user/hooks'
import DarkModeQueryParamReader from '../theme/components/DarkModeQueryParamReader'
import AddLiquidity from './AddLiquidity'
import { RedirectDuplicateTokenIds } from './AddLiquidity/redirects'
......@@ -115,7 +113,6 @@ export default function App() {
const { pathname } = useLocation()
const currentPage = getCurrentPageFromLocation(pathname)
const isDarkMode = useIsDarkMode()
const isExpertMode = useIsExpertMode()
const [scrolledState, setScrolledState] = useState(false)
useAnalyticsReporter()
......@@ -163,10 +160,6 @@ export default function App() {
user.set(CustomUserProperties.DARK_MODE, isDarkMode)
}, [isDarkMode])
useEffect(() => {
user.set(CustomUserProperties.EXPERT_MODE, isExpertMode)
}, [isExpertMode])
useEffect(() => {
const scrollListener = () => {
setScrolledState(window.scrollY > 0)
......@@ -190,7 +183,6 @@ export default function App() {
return (
<ErrorBoundary>
<DarkModeQueryParamReader />
<ApeModeQueryParamReader />
<Trace page={currentPage}>
<StatsigProvider
user={statsigUser}
......
......@@ -48,7 +48,7 @@ import SwapCurrencyInputPanel from '../../components/CurrencyInputPanel/SwapCurr
import { AutoRow } from '../../components/Row'
import confirmPriceImpactWithoutFee from '../../components/swap/confirmPriceImpactWithoutFee'
import ConfirmSwapModal from '../../components/swap/ConfirmSwapModal'
import { ArrowWrapper, PageWrapper, SwapCallbackError, SwapWrapper } from '../../components/swap/styleds'
import { ArrowWrapper, PageWrapper, SwapWrapper } from '../../components/swap/styleds'
import SwapHeader from '../../components/swap/SwapHeader'
import { SwitchLocaleLink } from '../../components/SwitchLocaleLink'
import { getSwapCurrencyId, TOKEN_SHORTHANDS } from '../../constants/tokens'
......@@ -58,7 +58,6 @@ import useWrapCallback, { WrapErrorText, WrapType } from '../../hooks/useWrapCal
import { Field, replaceSwapState } from '../../state/swap/actions'
import { useDefaultsFromURLSearch, useDerivedSwapInfo, useSwapActionHandlers } from '../../state/swap/hooks'
import swapReducer, { initialState as initialSwapState, SwapState } from '../../state/swap/reducer'
import { useExpertModeManager } from '../../state/user/hooks'
import { LinkStyledButton, ThemedText } from '../../theme'
import { computeFiatValuePriceImpact } from '../../utils/computeFiatValuePriceImpact'
import { maxAmountSpend } from '../../utils/maxAmountSpend'
......@@ -225,8 +224,6 @@ export function Swap({
// toggle wallet when disconnected
const toggleWalletDrawer = useToggleAccountDrawer()
// for expert mode
const [isExpertMode] = useExpertModeManager()
// swap state
const [state, dispatch] = useReducer(swapReducer, { ...initialSwapState, ...prefilledState })
const { typedValue, recipient, independentField } = state
......@@ -503,7 +500,7 @@ export function Swap({
[onCurrencyChange, onCurrencySelection, state]
)
const priceImpactTooHigh = priceImpactSeverity > 3 && !isExpertMode
const priceImpactTooHigh = priceImpactSeverity > 3
const showPriceImpactWarning = largerPriceImpact && priceImpactSeverity > 3
const prevTrade = usePrevious(trade)
......@@ -729,7 +726,6 @@ export function Swap({
</ButtonError>
</TraceEvent>
)}
{Boolean(isExpertMode && swapError) && <SwapCallbackError error={swapError?.message} />}
</div>
</AutoColumn>
</SwapWrapper>
......
......@@ -37,7 +37,6 @@ export const sentryEnhancer = Sentry.createReduxEnhancer({
selectedWallet: user.selectedWallet,
lastUpdateVersionTimestamp: user.lastUpdateVersionTimestamp,
userLocale: user.userLocale,
userExpertMode: user.userExpertMode,
userRouterPreference: user.userRouterPreference,
userHideClosedPositions: user.userHideClosedPositions,
userSlippageTolerance: user.userSlippageTolerance,
......
......@@ -21,7 +21,6 @@ import {
updateHideUniswapWalletBanner,
updateUserBuyFiatFlowCompleted,
updateUserDeadline,
updateUserExpertMode,
updateUserLocale,
updateUserRouterPreference,
updateUserSlippageTolerance,
......@@ -66,10 +65,6 @@ export function useUserLocaleManager(): [SupportedLocale | null, (newLocale: Sup
return [locale, setLocale]
}
export function useIsExpertMode(): boolean {
return useAppSelector((state) => state.user.userExpertMode)
}
export function useBuyFiatFlowCompleted(): [boolean | undefined, (buyFiatFlowCompleted: boolean) => void] {
const dispatch = useAppDispatch()
const buyFiatFlowCompleted = useAppSelector((state) => state.user.buyFiatFlowCompleted)
......@@ -82,17 +77,6 @@ export function useBuyFiatFlowCompleted(): [boolean | undefined, (buyFiatFlowCom
return [buyFiatFlowCompleted, setBuyFiatFlowCompleted]
}
export function useExpertModeManager(): [boolean, () => void] {
const dispatch = useAppDispatch()
const expertMode = useIsExpertMode()
const toggleSetExpertMode = useCallback(() => {
dispatch(updateUserExpertMode({ userExpertMode: !expertMode }))
}, [expertMode, dispatch])
return [expertMode, toggleSetExpertMode]
}
export function useRouterPreference(): [RouterPreference, (routerPreference: RouterPreference) => void] {
const dispatch = useAppDispatch()
......
......@@ -11,7 +11,6 @@ import reducer, {
updateHideUniswapWalletBanner,
updateSelectedWallet,
updateUserDeadline,
updateUserExpertMode,
updateUserLocale,
updateUserRouterPreference,
updateUserSlippageTolerance,
......@@ -76,13 +75,6 @@ describe('swap reducer', () => {
})
})
describe('updateUserExpertMode', () => {
it('updates the userExpertMode', () => {
store.dispatch(updateUserExpertMode({ userExpertMode: true }))
expect(store.getState().userExpertMode).toEqual(true)
})
})
describe('updateUserLocale', () => {
it('updates the userLocale', () => {
store.dispatch(updateUserLocale({ userLocale: 'en' }))
......
......@@ -19,8 +19,6 @@ export interface UserState {
userLocale: SupportedLocale | null
userExpertMode: boolean
// which router should be used to calculate trades
userRouterPreference: RouterPreference
......@@ -63,7 +61,6 @@ function pairKey(token0Address: string, token1Address: string) {
export const initialState: UserState = {
buyFiatFlowCompleted: undefined,
selectedWallet: undefined,
userExpertMode: false,
userLocale: null,
userRouterPreference: RouterPreference.AUTO,
userHideClosedPositions: false,
......@@ -88,10 +85,6 @@ const userSlice = createSlice({
updateSelectedWallet(state, { payload: { wallet } }) {
state.selectedWallet = wallet
},
updateUserExpertMode(state, action) {
state.userExpertMode = action.payload.userExpertMode
state.timestamp = currentTimestamp()
},
updateUserLocale(state, action) {
state.userLocale = action.payload.userLocale
state.timestamp = currentTimestamp()
......@@ -184,7 +177,6 @@ export const {
updateHideClosedPositions,
updateUserRouterPreference,
updateUserDeadline,
updateUserExpertMode,
updateUserLocale,
updateUserSlippageTolerance,
updateHideUniswapWalletBanner,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment