"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TraceUnsupportedError = exports.ProviderError = exports.RpcError = exports.TransportError = void 0;
class TransportError extends Error {
    cause;
    constructor(message, cause) {
        super(message);
        this.cause = cause;
        this.name = 'TransportError';
    }
}
exports.TransportError = TransportError;
class RpcError extends TransportError {
    constructor(message, cause) {
        super(message, cause);
        this.name = 'RpcError';
    }
}
exports.RpcError = RpcError;
class ProviderError extends TransportError {
    constructor(message, cause) {
        super(message, cause);
        this.name = 'ProviderError';
    }
}
exports.ProviderError = ProviderError;
class TraceUnsupportedError extends ProviderError {
    constructor(message = 'EVM provider does not support trace APIs') {
        super(message);
        this.name = 'TraceUnsupportedError';
    }
}
exports.TraceUnsupportedError = TraceUnsupportedError;
