From 042c04ce6bda65a0fc21897819b8deb49602e6b0 Mon Sep 17 00:00:00 2001 From: Alberto Gualis Date: Thu, 26 Sep 2024 07:58:29 +0200 Subject: [PATCH] chore: handle BAL#402 (paused) error --- lib/shared/components/errors/GenericError.tsx | 13 ++++++++++++- lib/shared/utils/error-filters.ts | 19 ++++++++++++------- lib/shared/utils/query-errors.ts | 4 +++- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/lib/shared/components/errors/GenericError.tsx b/lib/shared/components/errors/GenericError.tsx index 037d9b307..eca1b7c57 100644 --- a/lib/shared/components/errors/GenericError.tsx +++ b/lib/shared/components/errors/GenericError.tsx @@ -2,7 +2,7 @@ import { AlertProps, Text } from '@chakra-ui/react' import { ErrorAlert } from './ErrorAlert' -import { isUserRejectedError, isViemHttpFetchError } from '../../utils/error-filters' +import { isPausedError, isUserRejectedError, isViemHttpFetchError } from '../../utils/error-filters' import { ensureError } from '../../utils/errors' import { BalAlertLink } from '../alerts/BalAlertLink' @@ -28,6 +28,17 @@ export function GenericError({ error: _error, customErrorName, ...rest }: Props) ) } + if (isPausedError(_error)) { + return ( + + + The pool or one of the pool tokens is paused. Check{' '} + our discord for more + information. + + + ) + } const errorMessage = error?.shortMessage || error.message if (errorMessage === 'RPC Request failed.' || errorMessage === 'An unknown RPC error occurred.') { diff --git a/lib/shared/utils/error-filters.ts b/lib/shared/utils/error-filters.ts index e959e2921..94971f718 100644 --- a/lib/shared/utils/error-filters.ts +++ b/lib/shared/utils/error-filters.ts @@ -8,11 +8,16 @@ export function isUserRejectedError(error: Error): boolean { */ export function isViemHttpFetchError(error?: Error | null): boolean { if (!error) return false - if ( - error.message.startsWith('HTTP request failed.') && - error.message.includes('Failed to fetch') - ) { - return true - } - return false + return ( + error.message.startsWith('HTTP request failed.') && error.message.includes('Failed to fetch') + ) +} + +export function isPausedError(error?: Error | null): boolean { + if (!error) return false + return isPausedErrorMessage(error.message) +} + +export function isPausedErrorMessage(errorMessage: string): boolean { + return errorMessage.includes('reverted with the following reason:\nBAL#402\n') } diff --git a/lib/shared/utils/query-errors.ts b/lib/shared/utils/query-errors.ts index 3f0b9a6b6..73cf5c3ff 100644 --- a/lib/shared/utils/query-errors.ts +++ b/lib/shared/utils/query-errors.ts @@ -6,7 +6,7 @@ import { Exception as SentryException, } from '@sentry/types' import { SentryError, ensureError } from './errors' -import { isUserRejectedError } from './error-filters' +import { isPausedErrorMessage, isUserRejectedError } from './error-filters' import { AddLiquidityParams, stringifyHumanAmountsIn, @@ -332,6 +332,8 @@ export function shouldIgnore(message: string, stackTrace = ''): boolean { return true } + if (isPausedErrorMessage(message)) return true + return false }