UNPKG

@etherspot/remote-signer

Version:

Etherspot Permissioned Signer SDK - signs the UserOp with SessionKey and sends it to the Bundler

1 lines 19.4 kB
{"version":3,"sources":["../../src/sdk/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"]}