synapsecns/sanguine

View on GitHub
packages/synapse-interface/utils/isTransactionUserRejectedError.ts

Summary

Maintainability
A
2 hrs
Test Coverage
import { UserRejectedRequestError } from 'viem'

export const isTransactionUserRejectedError = (error: unknown): boolean => {
  if (error instanceof UserRejectedRequestError) {
    return true
  }

  // If the error type check is not possible or not specific enough, use properties or regex
  if (typeof error === 'object' && error !== null) {
    const message = (error as { message?: string }).message

    if (typeof message === 'string') {
      const regex = /User rejected the request/
      return regex.test(message)
    }
  }

  return false
}