/** * @file ERC Standards Errors * @version 1.0.0 * @lastModified 2024-06-07 * * Custom error classes for ERC token standards */ import { EthersServerError } from '../../utils/errors.js'; /** * Base class for token-related errors */ export declare class TokenError extends EthersServerError { constructor(message: string, code?: string, details?: Record); } /** * ERC20-specific errors */ export declare class ERC20Error extends TokenError { constructor(message: string, details?: Record); } /** * ERC721-specific errors */ export declare class ERC721Error extends TokenError { constructor(message: string, details?: Record); } /** * ERC1155-specific errors */ export declare class ERC1155Error extends TokenError { constructor(message: string, details?: Record); } /** * Error for insufficient token balance */ export declare class InsufficientBalanceError extends TokenError { constructor(tokenAddress: string, required: string, available: string, details?: Record); } /** * Error for insufficient allowance */ export declare class InsufficientAllowanceError extends ERC20Error { constructor(tokenAddress: string, spender: string, required: string, available: string, details?: Record); } /** * Error when token doesn't exist */ export declare class TokenNotFoundError extends TokenError { constructor(tokenAddress: string, tokenId?: string | number, details?: Record); } /** * Error when caller is not authorized */ export declare class UnauthorizedTokenActionError extends TokenError { constructor(message: string, details?: Record); } /** * Error when a token metadata URI is invalid or unreachable */ export declare class TokenMetadataError extends TokenError { constructor(tokenAddress: string, tokenId: string | number, uri?: string, details?: Record); } /** * Helper function to handle common token errors */ export declare function handleTokenError(error: unknown, context: string): never;