{"version":3,"sources":["../../src/sdk/common/types/bignumber-logger.ts"],"sourcesContent":["\"use strict\";\n\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\n\nconst LogLevels: { [ name: string ]: number } = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\n\nexport const version = \"logger/5.7.0\";\n\nlet _globalLogger: Logger = null;\n\nfunction _checkNormalize(): string {\n    try {\n        const missing: Array<string> = [ ];\n\n        // Make sure all forms of normalization are supported\n        [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n            try {\n                if (\"test\".normalize(form) !== \"test\") {\n                    throw new Error(\"bad normalize\");\n                };\n            } catch(error) {\n                missing.push(form);\n            }\n        });\n\n        if (missing.length) {\n            throw new Error(\"missing \" + missing.join(\", \"));\n        }\n\n        if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n            throw new Error(\"broken implementation\")\n        }\n    } catch (error) {\n        return error.message;\n    }\n\n    return null;\n}\n\nconst _normalizeError = _checkNormalize();\n\nexport enum LogLevel {\n    DEBUG    = \"DEBUG\",\n    INFO     = \"INFO\",\n    WARNING  = \"WARNING\",\n    ERROR    = \"ERROR\",\n    OFF      = \"OFF\"\n}\n\n\nexport enum ErrorCode {\n\n    ///////////////////\n    // Generic Errors\n\n    // Unknown Error\n    UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n\n    // Not Implemented\n    NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\",\n\n    // Unsupported Operation\n    //   - operation\n    UNSUPPORTED_OPERATION = \"UNSUPPORTED_OPERATION\",\n\n    // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n    //   - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n    NETWORK_ERROR = \"NETWORK_ERROR\",\n\n    // Some sort of bad response from the server\n    SERVER_ERROR = \"SERVER_ERROR\",\n\n    // Timeout\n    TIMEOUT = \"TIMEOUT\",\n\n    ///////////////////\n    // Operational  Errors\n\n    // Buffer Overrun\n    BUFFER_OVERRUN = \"BUFFER_OVERRUN\",\n\n    // Numeric Fault\n    //   - operation: the operation being executed\n    //   - fault: the reason this faulted\n    NUMERIC_FAULT = \"NUMERIC_FAULT\",\n\n\n    ///////////////////\n    // Argument Errors\n\n    // Missing new operator to an object\n    //  - name: The name of the class\n    MISSING_NEW = \"MISSING_NEW\",\n\n    // Invalid argument (e.g. value is incompatible with type) to a function:\n    //   - argument: The argument name that was invalid\n    //   - value: The value of the argument\n    INVALID_ARGUMENT = \"INVALID_ARGUMENT\",\n\n    // Missing argument to a function:\n    //   - count: The number of arguments received\n    //   - expectedCount: The number of arguments expected\n    MISSING_ARGUMENT = \"MISSING_ARGUMENT\",\n\n    // Too many arguments\n    //   - count: The number of arguments received\n    //   - expectedCount: The number of arguments expected\n    UNEXPECTED_ARGUMENT = \"UNEXPECTED_ARGUMENT\",\n\n\n    ///////////////////\n    // Blockchain Errors\n\n    // Call exception\n    //  - transaction: the transaction\n    //  - address?: the contract address\n    //  - args?: The arguments passed into the function\n    //  - method?: The Solidity method signature\n    //  - errorSignature?: The EIP848 error signature\n    //  - errorArgs?: The EIP848 error parameters\n    //  - reason: The reason (only for EIP848 \"Error(string)\")\n    CALL_EXCEPTION = \"CALL_EXCEPTION\",\n\n    // Insufficient funds (< value + gasLimit * gasPrice)\n    //   - transaction: the transaction attempted\n    INSUFFICIENT_FUNDS = \"INSUFFICIENT_FUNDS\",\n\n    // Nonce has already been used\n    //   - transaction: the transaction attempted\n    NONCE_EXPIRED = \"NONCE_EXPIRED\",\n\n    // The replacement fee for the transaction is too low\n    //   - transaction: the transaction attempted\n    REPLACEMENT_UNDERPRICED = \"REPLACEMENT_UNDERPRICED\",\n\n    // The gas limit could not be estimated\n    //   - transaction: the transaction passed to estimateGas\n    UNPREDICTABLE_GAS_LIMIT = \"UNPREDICTABLE_GAS_LIMIT\",\n\n    // The transaction was replaced by one with a higher gas price\n    //   - reason: \"cancelled\", \"replaced\" or \"repriced\"\n    //   - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n    //   - hash: original transaction hash\n    //   - replacement: the full TransactionsResponse for the replacement\n    //   - receipt: the receipt of the replacement\n    TRANSACTION_REPLACED = \"TRANSACTION_REPLACED\",\n\n\n    ///////////////////\n    // Interaction Errors\n\n    // The user rejected the action, such as signing a message or sending\n    // a transaction\n    ACTION_REJECTED = \"ACTION_REJECTED\",\n};\n\nconst HEX = \"0123456789abcdef\";\n\nexport class Logger {\n    readonly version: string;\n\n    static errors = ErrorCode;\n\n    static levels = LogLevel;\n\n    constructor(version: string) {\n        Object.defineProperty(this, \"version\", {\n            enumerable: true,\n            value: version,\n            writable: false\n        });\n    }\n\n    _log(logLevel: LogLevel, args: Array<any>): void {\n        const level = logLevel.toLowerCase();\n        if (LogLevels[level] == null) {\n            this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n        }\n        if (_logLevel > LogLevels[level]) { return; }\n        console.log.apply(console, args);\n    }\n\n    debug(...args: Array<any>): void {\n        this._log(Logger.levels.DEBUG, args);\n    }\n\n    info(...args: Array<any>): void {\n        this._log(Logger.levels.INFO, args);\n    }\n\n    warn(...args: Array<any>): void {\n        this._log(Logger.levels.WARNING, args);\n    }\n\n    makeError(message: string, code?: ErrorCode, params?: any): Error {\n        // Errors are being censored\n        if (_censorErrors) {\n            return this.makeError(\"censored error\", code, { });\n        }\n\n        if (!code) { code = Logger.errors.UNKNOWN_ERROR; }\n        if (!params) { params = {}; }\n\n        const messageDetails: Array<string> = [];\n        Object.keys(params).forEach((key) => {\n            const value = params[key];\n            try {\n                if (value instanceof Uint8Array) {\n                    let hex = \"\";\n                    for (let i = 0; i < value.length; i++) {\n                      hex += HEX[value[i] >> 4];\n                      hex += HEX[value[i] & 0x0f];\n                    }\n                    messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n                } else {\n                    messageDetails.push(key + \"=\" + JSON.stringify(value));\n                }\n            } catch (error) {\n                messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n            }\n        });\n        messageDetails.push(`code=${ code }`);\n        messageDetails.push(`version=${ this.version }`);\n\n        const reason = message;\n\n        let url = \"\";\n\n        switch (code) {\n            case ErrorCode.NUMERIC_FAULT: {\n                url = \"NUMERIC_FAULT\";\n                const fault = message;\n\n                switch (fault) {\n                    case \"overflow\": case \"underflow\": case \"division-by-zero\":\n                        url += \"-\" + fault;\n                        break;\n                    case \"negative-power\": case \"negative-width\":\n                        url += \"-unsupported\";\n                        break;\n                    case \"unbound-bitwise-result\":\n                        url += \"-unbound-result\";\n                        break;\n                }\n                break;\n            }\n            case ErrorCode.CALL_EXCEPTION:\n            case ErrorCode.INSUFFICIENT_FUNDS:\n            case ErrorCode.MISSING_NEW:\n            case ErrorCode.NONCE_EXPIRED:\n            case ErrorCode.REPLACEMENT_UNDERPRICED:\n            case ErrorCode.TRANSACTION_REPLACED:\n            case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n                url = code;\n                break;\n        }\n\n        if (url) {\n            message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n        }\n\n        if (messageDetails.length) {\n            message += \" (\" + messageDetails.join(\", \") + \")\";\n        }\n\n        // @TODO: Any??\n        const error: any = new Error(message);\n        error.reason = reason;\n        error.code = code\n\n        Object.keys(params).forEach(function(key) {\n            error[key] = params[key];\n        });\n\n        return error;\n    }\n\n    throwError(message: string, code?: ErrorCode, params?: any): never {\n        throw this.makeError(message, code, params);\n    }\n\n    throwArgumentError(message: string, name: string, value: any): never {\n        return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n            argument: name,\n            value: value\n        });\n    }\n\n    assert(condition: any, message: string, code?: ErrorCode, params?: any): void {\n        if (!!condition) { return; }\n        this.throwError(message, code, params);\n    }\n\n    assertArgument(condition: any, message: string, name: string, value: any): void {\n        if (!!condition) { return; }\n        this.throwArgumentError(message, name, value);\n    }\n\n    checkNormalize(message?: string): void {\n        if (message == null) { message = \"platform missing String.prototype.normalize\"; }\n        if (_normalizeError) {\n            this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n                operation: \"String.prototype.normalize\", form: _normalizeError\n            });\n        }\n    }\n\n    checkSafeUint53(value: number, message?: string): void {\n        if (typeof(value) !== \"number\") { return; }\n\n        if (message == null) { message = \"value not safe\"; }\n\n        if (value < 0 || value >= 0x1fffffffffffff) {\n            this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n                operation: \"checkSafeInteger\",\n                fault: \"out-of-safe-range\",\n                value: value\n            });\n        }\n\n        if (value % 1) {\n            this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n                operation: \"checkSafeInteger\",\n                fault: \"non-integer\",\n                value: value\n            });\n        }\n    }\n\n    checkArgumentCount(count: number, expectedCount: number, message?: string): void {\n        if (message) {\n            message = \": \" + message;\n        } else {\n            message = \"\";\n        }\n\n        if (count < expectedCount) {\n            this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n                count: count,\n                expectedCount: expectedCount\n            });\n        }\n\n        if (count > expectedCount) {\n            this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n                count: count,\n                expectedCount: expectedCount\n            });\n        }\n    }\n\n    checkNew(target: any, kind: any): void {\n        if (target === Object || target == null) {\n            this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n        }\n    }\n\n    checkAbstract(target: any, kind: any): void {\n        if (target === kind) {\n            this.throwError(\n                \"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\",\n                Logger.errors.UNSUPPORTED_OPERATION,\n                { name: target.name, operation: \"new\" }\n            );\n        } else if (target === Object || target == null) {\n            this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n        }\n    }\n\n    static globalLogger(): Logger {\n        if (!_globalLogger) { _globalLogger = new Logger(version); }\n        return _globalLogger;\n    }\n\n    static setCensorship(censorship: boolean, permanent?: boolean): void {\n        if (!censorship && permanent) {\n            this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n                operation: \"setCensorship\"\n            });\n        }\n\n        if (_permanentCensorErrors) {\n            if (!censorship) { return; }\n            this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n                operation: \"setCensorship\"\n            });\n        }\n\n        _censorErrors = !!censorship;\n        _permanentCensorErrors = !!permanent;\n    }\n\n    static setLogLevel(logLevel: LogLevel): void {\n        const level = LogLevels[logLevel.toLowerCase()];\n        if (level == null) {\n            Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n            return;\n        }\n        _logLevel = level;\n    }\n\n    static from(version: string): Logger {\n        return new Logger(version);\n    }\n}\n"],"mappings":"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","names":["LogLevel","ErrorCode","version","error"]}