diff --git a/.eslintrc.js b/.eslintrc.js index c0082827..d1eef3ff 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -65,6 +65,16 @@ module.exports = { '@typescript-eslint/naming-convention': 'warn', }, }, + // @metamask/keyring-utils + { + files: ['packages/keyring-utils/src/**/*.ts'], + extends: ['@metamask/eslint-config-typescript'], + parserOptions, + rules: { + // TODO: re-lint everything once the migration is done + '@typescript-eslint/no-explicit-any': 'off', + }, + }, // @metamask/keyring-api { files: ['packages/keyring-api/src/**/*.ts'], diff --git a/README.md b/README.md index fd64f5ce..b28637ac 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ This repository contains the following packages [^fn1]: - [`@metamask/eth-snap-keyring`](packages/keyring-snap) - [`@metamask/eth-trezor-keyring`](packages/keyring-eth-trezor) - [`@metamask/keyring-api`](packages/keyring-api) +- [`@metamask/keyring-utils`](packages/keyring-utils) @@ -31,6 +32,8 @@ linkStyle default opacity:0.5 eth_simple_keyring(["@metamask/eth-simple-keyring"]); eth_trezor_keyring(["@metamask/eth-trezor-keyring"]); eth_snap_keyring(["@metamask/eth-snap-keyring"]); + keyring_utils(["@metamask/keyring-utils"]); + keyring_api --> keyring_utils; eth_snap_keyring --> keyring_api; ``` diff --git a/package.json b/package.json index 69bc62e8..d6a38b33 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "test:verbose": "yarn workspaces foreach --all --parallel --verbose run test:verbose" }, "resolutions": { + "@metamask/keyring-utils@^0.0.1": "workspace:.", "@types/node": "^20.12.12", "@types/web": "0.0.69", "@typescript/lib-dom": "npm:@types/web@0.0.69" diff --git a/packages/keyring-api/package.json b/packages/keyring-api/package.json index 6bad34ed..d9b925e0 100644 --- a/packages/keyring-api/package.json +++ b/packages/keyring-api/package.json @@ -39,7 +39,6 @@ "@metamask/snaps-sdk": "^6.1.0", "@metamask/superstruct": "^3.1.0", "@metamask/utils": "^9.1.0", - "@types/uuid": "^9.0.8", "bech32": "^2.0.0", "deepmerge": "^4.2.2", "uuid": "^9.0.1" @@ -48,6 +47,7 @@ "@lavamoat/allow-scripts": "^3.0.4", "@lavamoat/preinstall-always-fail": "^2.0.0", "@metamask/auto-changelog": "^3.4.4", + "@metamask/keyring-utils": "^0.0.1", "@metamask/providers": "^17.1.1", "@types/jest": "^29.5.12", "@types/node": "^20.12.12", diff --git a/packages/keyring-api/src/JsonRpcRequest.ts b/packages/keyring-api/src/JsonRpcRequest.ts index 16f80c81..b9ce8403 100644 --- a/packages/keyring-api/src/JsonRpcRequest.ts +++ b/packages/keyring-api/src/JsonRpcRequest.ts @@ -9,7 +9,7 @@ import { import type { Infer } from '@metamask/superstruct'; import { JsonStruct } from '@metamask/utils'; -import { exactOptional, object } from './superstruct'; +import { exactOptional, object } from '@metamask/keyring-utils'; export const JsonRpcRequestStruct = object({ jsonrpc: literal('2.0'), diff --git a/packages/keyring-api/src/KeyringClient.ts b/packages/keyring-api/src/KeyringClient.ts index 9e51079a..61561078 100644 --- a/packages/keyring-api/src/KeyringClient.ts +++ b/packages/keyring-api/src/KeyringClient.ts @@ -28,7 +28,7 @@ import { } from './internal/api'; import { KeyringRpcMethod } from './internal/rpc'; import type { JsonRpcRequest } from './JsonRpcRequest'; -import { strictMask } from './superstruct'; +import { strictMask } from '@metamask/keyring-utils'; export type Sender = { send(request: JsonRpcRequest): Promise; diff --git a/packages/keyring-api/src/api/account.ts b/packages/keyring-api/src/api/account.ts index 28b7d1e1..c889e590 100644 --- a/packages/keyring-api/src/api/account.ts +++ b/packages/keyring-api/src/api/account.ts @@ -2,8 +2,7 @@ import type { Infer } from '@metamask/superstruct'; import { array, enums, record, string } from '@metamask/superstruct'; import { JsonStruct } from '@metamask/utils'; -import { object } from '../superstruct'; -import { UuidStruct } from '../utils'; +import { object, UuidStruct } from '@metamask/keyring-utils'; /** * Supported Ethereum account types. diff --git a/packages/keyring-api/src/api/balance.ts b/packages/keyring-api/src/api/balance.ts index 609108e8..e8be6de0 100644 --- a/packages/keyring-api/src/api/balance.ts +++ b/packages/keyring-api/src/api/balance.ts @@ -1,8 +1,7 @@ import type { Infer } from '@metamask/superstruct'; import { string } from '@metamask/superstruct'; -import { object } from '../superstruct'; -import { StringNumberStruct } from '../utils'; +import { object, StringNumberStruct } from '@metamask/keyring-utils'; export const BalanceStruct = object({ amount: StringNumberStruct, diff --git a/packages/keyring-api/src/api/caip.ts b/packages/keyring-api/src/api/caip.ts index 2008200d..f70f38e8 100644 --- a/packages/keyring-api/src/api/caip.ts +++ b/packages/keyring-api/src/api/caip.ts @@ -1,6 +1,6 @@ import { is, type Infer } from '@metamask/superstruct'; -import { definePattern } from '../superstruct'; +import { definePattern } from '@metamask/keyring-utils'; const CAIP_ASSET_TYPE_REGEX = /^(?(?[-a-z0-9]{3,8}):(?[-_a-zA-Z0-9]{1,32}))\/(?[-a-z0-9]{3,8}):(?[-.%a-zA-Z0-9]{1,128})$/u; diff --git a/packages/keyring-api/src/api/request.ts b/packages/keyring-api/src/api/request.ts index db2609af..b1e371ea 100644 --- a/packages/keyring-api/src/api/request.ts +++ b/packages/keyring-api/src/api/request.ts @@ -2,8 +2,7 @@ import type { Infer } from '@metamask/superstruct'; import { array, record, string, union } from '@metamask/superstruct'; import { JsonStruct } from '@metamask/utils'; -import { exactOptional, object } from '../superstruct'; -import { UuidStruct } from '../utils'; +import { exactOptional, object, UuidStruct } from '@metamask/keyring-utils'; export const KeyringRequestStruct = object({ /** diff --git a/packages/keyring-api/src/api/response.ts b/packages/keyring-api/src/api/response.ts index dbe2e0b4..7cdcd20c 100644 --- a/packages/keyring-api/src/api/response.ts +++ b/packages/keyring-api/src/api/response.ts @@ -2,7 +2,7 @@ import type { Infer } from '@metamask/superstruct'; import { literal, string, union } from '@metamask/superstruct'; import { JsonStruct } from '@metamask/utils'; -import { exactOptional, object } from '../superstruct'; +import { exactOptional, object } from '@metamask/keyring-utils'; export const KeyringResponseStruct = union([ object({ diff --git a/packages/keyring-api/src/btc/types.ts b/packages/keyring-api/src/btc/types.ts index 01e131e1..376fc17f 100644 --- a/packages/keyring-api/src/btc/types.ts +++ b/packages/keyring-api/src/btc/types.ts @@ -3,7 +3,7 @@ import { string, array, enums, refine, literal } from '@metamask/superstruct'; import { bech32 } from 'bech32'; import { KeyringAccountStruct, BtcAccountType } from '../api'; -import { object } from '../superstruct'; +import { object } from '@metamask/keyring-utils'; export const BtcP2wpkhAddressStruct = refine( string(), diff --git a/packages/keyring-api/src/eth/erc4337/types.ts b/packages/keyring-api/src/eth/erc4337/types.ts index 5a7db8f4..e9c0d3fb 100644 --- a/packages/keyring-api/src/eth/erc4337/types.ts +++ b/packages/keyring-api/src/eth/erc4337/types.ts @@ -1,7 +1,6 @@ import { type Infer } from '@metamask/superstruct'; -import { exactOptional, object } from '../../superstruct'; -import { UrlStruct } from '../../utils'; +import { exactOptional, object, UrlStruct } from '@metamask/keyring-utils'; import { EthAddressStruct, EthBytesStruct, EthUint256Struct } from '../types'; /** diff --git a/packages/keyring-api/src/eth/types.test.ts b/packages/keyring-api/src/eth/types.test.ts index 5afc8012..8624052a 100644 --- a/packages/keyring-api/src/eth/types.test.ts +++ b/packages/keyring-api/src/eth/types.test.ts @@ -1,4 +1,4 @@ -import { UrlStruct } from '../utils'; +import { UrlStruct } from '@metamask/keyring-utils'; describe('types', () => { it('is a valid BundlerUrl', () => { diff --git a/packages/keyring-api/src/eth/types.ts b/packages/keyring-api/src/eth/types.ts index 2d28926b..2b702bb4 100644 --- a/packages/keyring-api/src/eth/types.ts +++ b/packages/keyring-api/src/eth/types.ts @@ -2,7 +2,7 @@ import type { Infer } from '@metamask/superstruct'; import { array, enums, literal } from '@metamask/superstruct'; import { EthAccountType, KeyringAccountStruct } from '../api'; -import { object, definePattern } from '../superstruct'; +import { object, definePattern } from '@metamask/keyring-utils'; export const EthBytesStruct = definePattern('EthBytes', /^0x[0-9a-f]*$/iu); diff --git a/packages/keyring-api/src/index.ts b/packages/keyring-api/src/index.ts index 7acb3b95..60095592 100644 --- a/packages/keyring-api/src/index.ts +++ b/packages/keyring-api/src/index.ts @@ -8,4 +8,3 @@ export * from './KeyringClient'; export * from './KeyringSnapRpcClient'; export * from './rpc-handler'; export * from './snap-utils'; -export * from './superstruct'; diff --git a/packages/keyring-api/src/internal/api.ts b/packages/keyring-api/src/internal/api.ts index 7e6bc9ba..dbacdf64 100644 --- a/packages/keyring-api/src/internal/api.ts +++ b/packages/keyring-api/src/internal/api.ts @@ -17,8 +17,7 @@ import { KeyringRequestStruct, KeyringResponseStruct, } from '../api'; -import { object } from '../superstruct'; -import { UuidStruct } from '../utils'; +import { object, UuidStruct } from '@metamask/keyring-utils'; import { KeyringRpcMethod } from './rpc'; const CommonHeader = { diff --git a/packages/keyring-api/src/internal/events.ts b/packages/keyring-api/src/internal/events.ts index 9047ae26..fc014b5d 100644 --- a/packages/keyring-api/src/internal/events.ts +++ b/packages/keyring-api/src/internal/events.ts @@ -3,8 +3,7 @@ import { JsonStruct } from '@metamask/utils'; import { KeyringAccountStruct } from '../api'; import { KeyringEvent } from '../events'; -import { exactOptional, object } from '../superstruct'; -import { UuidStruct } from '../utils'; +import { exactOptional, object, UuidStruct } from '@metamask/keyring-utils'; export const AccountCreatedEventStruct = object({ method: literal(`${KeyringEvent.AccountCreated}`), diff --git a/packages/keyring-api/src/internal/types.ts b/packages/keyring-api/src/internal/types.ts index cf558f8e..36c8b2ab 100644 --- a/packages/keyring-api/src/internal/types.ts +++ b/packages/keyring-api/src/internal/types.ts @@ -4,7 +4,7 @@ import { boolean, string, number } from '@metamask/superstruct'; import { BtcAccountType, EthAccountType, KeyringAccountStruct } from '../api'; import { BtcP2wpkhAccountStruct } from '../btc/types'; import { EthEoaAccountStruct, EthErc4337AccountStruct } from '../eth/types'; -import { exactOptional, object } from '../superstruct'; +import { exactOptional, object } from '@metamask/keyring-utils'; export type InternalAccountType = EthAccountType | BtcAccountType; diff --git a/packages/keyring-api/tsconfig.build.json b/packages/keyring-api/tsconfig.build.json index 054c9a64..22a03957 100644 --- a/packages/keyring-api/tsconfig.build.json +++ b/packages/keyring-api/tsconfig.build.json @@ -8,6 +8,7 @@ // checking for all *.d.ts files "skipLibCheck": true }, + "references": [{ "path": "../keyring-utils/tsconfig.build.json" }], "include": ["./src/**/*.ts"], "exclude": ["./src/**/*.test.ts", "./src/**/*.test-d.ts"] } diff --git a/packages/keyring-snap/package.json b/packages/keyring-snap/package.json index 0aaa8ee6..f365357a 100644 --- a/packages/keyring-snap/package.json +++ b/packages/keyring-snap/package.json @@ -27,7 +27,7 @@ "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/eth-sig-util": "^7.0.3", - "@metamask/keyring-api": "^8.0.2", + "@metamask/keyring-api": "^8.1.0", "@metamask/snaps-controllers": "^9.3.0", "@metamask/snaps-sdk": "^6.1.0", "@metamask/snaps-utils": "^7.8.0", diff --git a/packages/keyring-utils/CHANGELOG.md b/packages/keyring-utils/CHANGELOG.md new file mode 100644 index 00000000..f4eb4815 --- /dev/null +++ b/packages/keyring-utils/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +[Unreleased]: https://github.com/MetaMask/accounts/ diff --git a/packages/keyring-utils/README.md b/packages/keyring-utils/README.md new file mode 100644 index 00000000..210958b3 --- /dev/null +++ b/packages/keyring-utils/README.md @@ -0,0 +1,15 @@ +# MetaMask Keyring utils + +Various JavaScript/TypeScript utilities required by Keyrings. + +## Installation + +`yarn add @metamask/keyring-utils` + +or + +`npm install @metamask/keyring-utils` + +## Contributing + +This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/accounts#readme). diff --git a/packages/keyring-utils/jest.config.js b/packages/keyring-utils/jest.config.js new file mode 100644 index 00000000..d6e04ca7 --- /dev/null +++ b/packages/keyring-utils/jest.config.js @@ -0,0 +1,28 @@ +/* + * For a detailed explanation regarding each configuration property and type check, visit: + * https://jestjs.io/docs/configuration + */ + +const merge = require('deepmerge'); +const path = require('path'); + +const baseConfig = require('../../jest.config.packages'); + +const displayName = path.basename(__dirname); + +module.exports = merge(baseConfig, { + // The display name when running multiple projects + displayName, + + coveragePathIgnorePatterns: ['./src/tests'], + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, +}); diff --git a/packages/keyring-utils/package.json b/packages/keyring-utils/package.json new file mode 100644 index 00000000..cdd4851b --- /dev/null +++ b/packages/keyring-utils/package.json @@ -0,0 +1,76 @@ +{ + "name": "@metamask/keyring-utils", + "version": "0.0.1", + "description": "MetaMask Keyring utils", + "keywords": [ + "metamask", + "keyring" + ], + "homepage": "https://github.com/MetaMask/accounts/tree/main/packages/keyring-utils#readme", + "bugs": { + "url": "https://github.com/MetaMask/accounts/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/accounts.git" + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "build": "tsc --build tsconfig.build.json", + "build:clean": "rimraf dist && yarn build", + "build:docs": "typedoc", + "build:force": "tsc --build tsconfig.build.json --force", + "changelog:update": "../../scripts/update-changelog.sh @metamask/keyring-utils", + "changelog:validate": "../../scripts/validate-changelog.sh @metamask/keyring-utils", + "publish:preview": "yarn npm publish --tag preview", + "test": "yarn test:source && yarn test:types", + "test:clean": "jest --clearCache", + "test:source": "jest && jest-it-up", + "test:types": "tsd", + "test:verbose": "jest --verbose", + "test:watch": "jest --watch" + }, + "dependencies": { + "@metamask/superstruct": "^3.1.0", + "@metamask/utils": "^9.1.0", + "@types/uuid": "^9.0.8", + "deepmerge": "^4.2.2", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@lavamoat/allow-scripts": "^3.0.4", + "@lavamoat/preinstall-always-fail": "^2.0.0", + "@metamask/auto-changelog": "^3.4.4", + "@metamask/providers": "^17.1.1", + "@types/jest": "^29.5.12", + "@types/node": "^20.12.12", + "depcheck": "^1.4.7", + "jest": "^28.1.3", + "jest-it-up": "^3.1.0", + "rimraf": "^5.0.7", + "ts-jest": "^28.0.8", + "ts-node": "^10.9.2", + "tsd": "^0.31.0", + "typedoc": "^0.25.13", + "typescript": "~4.8.4" + }, + "engines": { + "node": "^18.18 || >=20" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "lavamoat": { + "allowScripts": { + "@lavamoat/preinstall-always-fail": false + } + }, + "tsd": { + "directory": "src" + } +} diff --git a/packages/keyring-api/src/utils/index.ts b/packages/keyring-utils/src/index.ts similarity index 62% rename from packages/keyring-api/src/utils/index.ts rename to packages/keyring-utils/src/index.ts index 8043a4ee..e1bc4c61 100644 --- a/packages/keyring-api/src/utils/index.ts +++ b/packages/keyring-utils/src/index.ts @@ -1,2 +1,3 @@ export * from './types'; export * from './typing'; +export * from './superstruct'; diff --git a/packages/keyring-api/src/superstruct.test-d.ts b/packages/keyring-utils/src/superstruct.test-d.ts similarity index 100% rename from packages/keyring-api/src/superstruct.test-d.ts rename to packages/keyring-utils/src/superstruct.test-d.ts diff --git a/packages/keyring-api/src/superstruct.test.ts b/packages/keyring-utils/src/superstruct.test.ts similarity index 100% rename from packages/keyring-api/src/superstruct.test.ts rename to packages/keyring-utils/src/superstruct.test.ts diff --git a/packages/keyring-api/src/superstruct.ts b/packages/keyring-utils/src/superstruct.ts similarity index 100% rename from packages/keyring-api/src/superstruct.ts rename to packages/keyring-utils/src/superstruct.ts diff --git a/packages/keyring-api/src/utils/types.test.ts b/packages/keyring-utils/src/types.test.ts similarity index 100% rename from packages/keyring-api/src/utils/types.test.ts rename to packages/keyring-utils/src/types.test.ts diff --git a/packages/keyring-api/src/utils/types.ts b/packages/keyring-utils/src/types.ts similarity index 94% rename from packages/keyring-api/src/utils/types.ts rename to packages/keyring-utils/src/types.ts index c8e72b76..0d96f2e3 100644 --- a/packages/keyring-api/src/utils/types.ts +++ b/packages/keyring-utils/src/types.ts @@ -1,6 +1,6 @@ import { define, type Infer } from '@metamask/superstruct'; -import { definePattern } from '../superstruct'; +import { definePattern } from './superstruct'; /** * UUIDv4 struct. diff --git a/packages/keyring-api/src/utils/typing.test-d.ts b/packages/keyring-utils/src/typing.test-d.ts similarity index 100% rename from packages/keyring-api/src/utils/typing.test-d.ts rename to packages/keyring-utils/src/typing.test-d.ts diff --git a/packages/keyring-api/src/utils/typing.test.ts b/packages/keyring-utils/src/typing.test.ts similarity index 100% rename from packages/keyring-api/src/utils/typing.test.ts rename to packages/keyring-utils/src/typing.test.ts diff --git a/packages/keyring-api/src/utils/typing.ts b/packages/keyring-utils/src/typing.ts similarity index 100% rename from packages/keyring-api/src/utils/typing.ts rename to packages/keyring-utils/src/typing.ts diff --git a/packages/keyring-utils/tsconfig.build.json b/packages/keyring-utils/tsconfig.build.json new file mode 100644 index 00000000..054c9a64 --- /dev/null +++ b/packages/keyring-utils/tsconfig.build.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.packages.build.json", + "compilerOptions": { + "baseUrl": "./", + "outDir": "dist", + "rootDir": "src", + // FIXME: We should investigate how to get rid of this flag, as this will turn off type + // checking for all *.d.ts files + "skipLibCheck": true + }, + "include": ["./src/**/*.ts"], + "exclude": ["./src/**/*.test.ts", "./src/**/*.test-d.ts"] +} diff --git a/packages/keyring-utils/tsconfig.json b/packages/keyring-utils/tsconfig.json new file mode 100644 index 00000000..bba26c34 --- /dev/null +++ b/packages/keyring-utils/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.packages.json", + "compilerOptions": { + "baseUrl": "./" + }, + "include": ["./src"], + "exclude": ["./dist/**/*"] +} diff --git a/packages/keyring-utils/typedoc.json b/packages/keyring-utils/typedoc.json new file mode 100644 index 00000000..b527b625 --- /dev/null +++ b/packages/keyring-utils/typedoc.json @@ -0,0 +1,6 @@ +{ + "entryPoints": ["./src/index.ts"], + "excludePrivate": true, + "hideGenerator": true, + "out": "docs" +} diff --git a/tsconfig.json b/tsconfig.json index a50219b8..f64c7e68 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,8 @@ { "path": "./packages/keyring-eth-ledger-bridge" }, { "path": "./packages/keyring-eth-simple" }, { "path": "./packages/keyring-eth-trezor" }, - { "path": "./packages/keyring-snap" } + { "path": "./packages/keyring-snap" }, + { "path": "./packages/keyring-utils" } ], "files": [], "include": [] diff --git a/yarn.lock b/yarn.lock index 4a030da9..a228917b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1673,7 +1673,7 @@ __metadata: languageName: node linkType: hard -"@metamask/accounts-monorepo@workspace:.": +"@metamask/accounts-monorepo@workspace:., @metamask/keyring-utils@workspace:.": version: 0.0.0-use.local resolution: "@metamask/accounts-monorepo@workspace:." dependencies: @@ -1967,7 +1967,7 @@ __metadata: "@lavamoat/allow-scripts": "npm:^3.0.4" "@metamask/auto-changelog": "npm:^3.4.4" "@metamask/eth-sig-util": "npm:^7.0.3" - "@metamask/keyring-api": "npm:^8.0.2" + "@metamask/keyring-api": "npm:^8.1.0" "@metamask/snaps-controllers": "npm:^9.3.0" "@metamask/snaps-sdk": "npm:^6.1.0" "@metamask/snaps-utils": "npm:^7.8.0" @@ -2071,20 +2071,20 @@ __metadata: languageName: node linkType: hard -"@metamask/keyring-api@npm:^8.0.2, @metamask/keyring-api@workspace:packages/keyring-api": +"@metamask/keyring-api@npm:^8.1.0, @metamask/keyring-api@workspace:packages/keyring-api": version: 0.0.0-use.local resolution: "@metamask/keyring-api@workspace:packages/keyring-api" dependencies: "@lavamoat/allow-scripts": "npm:^3.0.4" "@lavamoat/preinstall-always-fail": "npm:^2.0.0" "@metamask/auto-changelog": "npm:^3.4.4" + "@metamask/keyring-utils": "npm:^0.0.1" "@metamask/providers": "npm:^17.1.1" "@metamask/snaps-sdk": "npm:^6.1.0" "@metamask/superstruct": "npm:^3.1.0" "@metamask/utils": "npm:^9.1.0" "@types/jest": "npm:^29.5.12" "@types/node": "npm:^20.12.12" - "@types/uuid": "npm:^9.0.8" bech32: "npm:^2.0.0" deepmerge: "npm:^4.2.2" depcheck: "npm:^1.4.7" @@ -2102,6 +2102,33 @@ __metadata: languageName: unknown linkType: soft +"@metamask/keyring-utils@workspace:packages/keyring-utils": + version: 0.0.0-use.local + resolution: "@metamask/keyring-utils@workspace:packages/keyring-utils" + dependencies: + "@lavamoat/allow-scripts": "npm:^3.0.4" + "@lavamoat/preinstall-always-fail": "npm:^2.0.0" + "@metamask/auto-changelog": "npm:^3.4.4" + "@metamask/providers": "npm:^17.1.1" + "@metamask/superstruct": "npm:^3.1.0" + "@metamask/utils": "npm:^9.1.0" + "@types/jest": "npm:^29.5.12" + "@types/node": "npm:^20.12.12" + "@types/uuid": "npm:^9.0.8" + deepmerge: "npm:^4.2.2" + depcheck: "npm:^1.4.7" + jest: "npm:^28.1.3" + jest-it-up: "npm:^3.1.0" + rimraf: "npm:^5.0.7" + ts-jest: "npm:^28.0.8" + ts-node: "npm:^10.9.2" + tsd: "npm:^0.31.0" + typedoc: "npm:^0.25.13" + typescript: "npm:~4.8.4" + uuid: "npm:^9.0.1" + languageName: unknown + linkType: soft + "@metamask/number-to-bn@npm:^1.7.1": version: 1.7.1 resolution: "@metamask/number-to-bn@npm:1.7.1"