diff --git a/packages/bitcoin-wallet-snap/package.json b/packages/bitcoin-wallet-snap/package.json index 6948870ec..4ac44cb21 100644 --- a/packages/bitcoin-wallet-snap/package.json +++ b/packages/bitcoin-wallet-snap/package.json @@ -55,6 +55,7 @@ "@metamask/keyring-api": "^23.7.0", "@metamask/keyring-snap-sdk": "^9.2.1", "@metamask/slip44": "^4.2.0", + "@metamask/snap-networks-utils": "^1.0.0", "@metamask/snaps-cli": "^8.4.1", "@metamask/snaps-jest": "^10.2.0", "@metamask/snaps-sdk": "^11.2.0", diff --git a/packages/bitcoin-wallet-snap/snap.manifest.json b/packages/bitcoin-wallet-snap/snap.manifest.json index cdb4e771d..f594f203d 100644 --- a/packages/bitcoin-wallet-snap/snap.manifest.json +++ b/packages/bitcoin-wallet-snap/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/internal-snaps.git" }, "source": { - "shasum": "GpFg6ial/0d1EUNu6v05Ejkggqi2y5ay7lgwbZ2Xf7I=", + "shasum": "jV649WZbbfbj3FpOMD5U/xDPuRD0t4F+pxCoy08a/O0=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/bitcoin-wallet-snap/src/config.ts b/packages/bitcoin-wallet-snap/src/config.ts index 1cfcbf14c..07d13052d 100644 --- a/packages/bitcoin-wallet-snap/src/config.ts +++ b/packages/bitcoin-wallet-snap/src/config.ts @@ -1,8 +1,8 @@ /* eslint-disable no-restricted-globals */ import type { AddressType } from '@metamask/bitcoindevkit'; +import { LogLevel } from '@metamask/snap-networks-utils/logger'; -import { LogLevel } from './entities'; import type { SnapConfig } from './entities'; const ENV = { diff --git a/packages/bitcoin-wallet-snap/src/entities/config.ts b/packages/bitcoin-wallet-snap/src/entities/config.ts index ea7e5d59d..3700c4301 100644 --- a/packages/bitcoin-wallet-snap/src/entities/config.ts +++ b/packages/bitcoin-wallet-snap/src/entities/config.ts @@ -1,6 +1,5 @@ import type { AddressType, Network } from '@metamask/bitcoindevkit'; - -import type { LogLevel } from './logger'; +import type { LogLevel } from '@metamask/snap-networks-utils/logger'; export type SnapConfig = { logLevel: LogLevel; diff --git a/packages/bitcoin-wallet-snap/src/entities/index.ts b/packages/bitcoin-wallet-snap/src/entities/index.ts index 3584fa426..80e0fbff6 100644 --- a/packages/bitcoin-wallet-snap/src/entities/index.ts +++ b/packages/bitcoin-wallet-snap/src/entities/index.ts @@ -9,6 +9,6 @@ export * from './snap'; export type * from './meta-protocols'; export type * from './translator'; export type * from './rates'; -export * from './logger'; +export type { Logger } from '@metamask/snap-networks-utils/logger'; export * from './error'; export * from './confirmation'; diff --git a/packages/bitcoin-wallet-snap/src/entities/logger.ts b/packages/bitcoin-wallet-snap/src/entities/logger.ts deleted file mode 100644 index 4fcc85f2b..000000000 --- a/packages/bitcoin-wallet-snap/src/entities/logger.ts +++ /dev/null @@ -1,58 +0,0 @@ -export enum LogLevel { - ERROR = 'error', - WARN = 'warn', - INFO = 'info', - DEBUG = 'debug', - TRACE = 'trace', - SILENT = 'silent', -} - -/** - * A Logger. - */ -export type Logger = { - /** - * Logs at the `ERROR` level. - * - * @param data - The data to log. - */ - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - error(...data: any[]): void; - - /** - * Logs at the `WARN` level. - * - * @param data - The data to log. - */ - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - warn(...data: any[]): void; - - /** - * Logs at the `INFO` level. - * - * @param data - The data to log. - */ - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - info(...data: any[]): void; - - /** - * Logs at the `DEBUG` level. - * - * @param data - The data to log. - */ - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - debug(...data: any[]): void; - - /** - * Logs at the `TRACE` level. - * - * @param data - The data to log. - */ - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - trace(...data: any[]): void; -}; diff --git a/packages/bitcoin-wallet-snap/src/index.ts b/packages/bitcoin-wallet-snap/src/index.ts index 3f2d15420..c81608743 100644 --- a/packages/bitcoin-wallet-snap/src/index.ts +++ b/packages/bitcoin-wallet-snap/src/index.ts @@ -1,4 +1,5 @@ import { handleKeyringRequest } from '@metamask/keyring-snap-sdk/v2'; +import { Logger } from '@metamask/snap-networks-utils/logger'; import type { OnAssetsConversionHandler, OnAssetsLookupHandler, @@ -25,7 +26,6 @@ import { SnapClientAdapter, EsploraClientAdapter, PriceApiClientAdapter, - ConsoleLoggerAdapter, LocalTranslatorAdapter, } from './infra'; import { BdkAccountRepository, JSXSendFlowRepository } from './store'; @@ -39,7 +39,7 @@ import { } from './use-cases'; // Infra layer -const logger = new ConsoleLoggerAdapter(Config.logLevel); +const logger = new Logger({ level: Config.logLevel }); const snapClient = new SnapClientAdapter(logger, Config.encrypt); const chainClient = new EsploraClientAdapter(Config.chain); const assetRatesClient = new PriceApiClientAdapter(Config.priceApi); diff --git a/packages/bitcoin-wallet-snap/src/infra/ConsoleLoggerAdapter.ts b/packages/bitcoin-wallet-snap/src/infra/ConsoleLoggerAdapter.ts deleted file mode 100644 index de2634064..000000000 --- a/packages/bitcoin-wallet-snap/src/infra/ConsoleLoggerAdapter.ts +++ /dev/null @@ -1,63 +0,0 @@ -import type { Logger } from '../entities'; -import { LogLevel } from '../entities'; - -const logLevelPriority = { - [LogLevel.SILENT]: 0, - [LogLevel.ERROR]: 1, - [LogLevel.WARN]: 2, - [LogLevel.INFO]: 3, - [LogLevel.DEBUG]: 4, - [LogLevel.TRACE]: 5, -}; - -export class ConsoleLoggerAdapter implements Logger { - readonly #logLevel: LogLevel; - - constructor(logLevel: LogLevel) { - this.#logLevel = logLevel; - } - - #shouldLog(level: LogLevel): boolean { - return logLevelPriority[level] <= logLevelPriority[this.#logLevel]; - } - - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - error(...data: any[]): void { - if (this.#shouldLog(LogLevel.ERROR)) { - console.error(...data); - } - } - - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - warn(...data: any[]): void { - if (this.#shouldLog(LogLevel.WARN)) { - console.warn(...data); - } - } - - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - info(...data: any[]): void { - if (this.#shouldLog(LogLevel.INFO)) { - console.info(...data); - } - } - - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - debug(...data: any[]): void { - if (this.#shouldLog(LogLevel.DEBUG)) { - console.debug(...data); - } - } - - // TODO: Replace `any` with type - // eslint-disable-next-line @typescript-eslint/no-explicit-any - trace(...data: any[]): void { - if (this.#shouldLog(LogLevel.TRACE)) { - console.trace(...data); - } - } -} diff --git a/packages/bitcoin-wallet-snap/src/infra/index.ts b/packages/bitcoin-wallet-snap/src/infra/index.ts index fa4ce4fd2..53f0a8cfd 100644 --- a/packages/bitcoin-wallet-snap/src/infra/index.ts +++ b/packages/bitcoin-wallet-snap/src/infra/index.ts @@ -3,5 +3,4 @@ export * from './StoredAccountAdapter'; export * from './SnapClientAdapter'; export * from './EsploraClientAdapter'; export * from './PriceApiClientAdapter'; -export * from './ConsoleLoggerAdapter'; export * from './LocalTranslatorAdapter'; diff --git a/yarn.lock b/yarn.lock index 977f170b3..f04a727ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2156,6 +2156,7 @@ __metadata: "@metamask/keyring-api": "npm:^23.7.0" "@metamask/keyring-snap-sdk": "npm:^9.2.1" "@metamask/slip44": "npm:^4.2.0" + "@metamask/snap-networks-utils": "npm:^1.0.0" "@metamask/snaps-cli": "npm:^8.4.1" "@metamask/snaps-jest": "npm:^10.2.0" "@metamask/snaps-sdk": "npm:^11.2.0"