UNPKG

create-eth

Version:
36 lines (29 loc) 1.1 kB
import { BaseError as BaseViemError, ContractFunctionRevertedError } from "viem"; /** * Parses an viem/wagmi error to get a displayable string * @param e - error object * @returns parsed error string */ export const getParsedError = (error: any): string => { const parsedError = error?.walk ? error.walk() : error; if (parsedError instanceof BaseViemError) { if (parsedError.details) { return parsedError.details; } if (parsedError.shortMessage) { if ( parsedError instanceof ContractFunctionRevertedError && parsedError.data && parsedError.data.errorName !== "Error" ) { const customErrorArgs = parsedError.data.args?.toString() ?? ""; return `${parsedError.shortMessage.replace(/reverted\.$/, "reverted with the following reason:")}\n${ parsedError.data.errorName }(${customErrorArgs})`; } return parsedError.shortMessage; } return parsedError.message ?? parsedError.name ?? "An unknown error occurred"; } return parsedError?.message ?? "An unknown error occurred"; };