diff --git a/package.json b/package.json index 88a7443d65..34d8422400 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@metamask/eslint-config-nodejs": "^12.0.0", "@metamask/eslint-config-typescript": "^12.0.0", "@metamask/eth-json-rpc-provider": "^1.0.0", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "@types/node": "^16.18.24", "@typescript-eslint/eslint-plugin": "^5.30.7", "@typescript-eslint/parser": "^5.30.7", diff --git a/packages/accounts-controller/package.json b/packages/accounts-controller/package.json index e64d0820b2..76b071581f 100644 --- a/packages/accounts-controller/package.json +++ b/packages/accounts-controller/package.json @@ -33,7 +33,7 @@ "@metamask/eth-snap-keyring": "^0.2.2", "@metamask/keyring-api": "^0.2.5", "@metamask/snaps-utils": "^1.0.1", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "deepmerge": "^4.2.2", "eth-rpc-errors": "^4.0.2", "ethereumjs-util": "^7.0.10", diff --git a/packages/address-book-controller/package.json b/packages/address-book-controller/package.json index 73c2b9fb89..47814a46b4 100644 --- a/packages/address-book-controller/package.json +++ b/packages/address-book-controller/package.json @@ -31,7 +31,7 @@ "dependencies": { "@metamask/base-controller": "^3.2.2", "@metamask/controller-utils": "^5.0.1", - "@metamask/utils": "^6.2.0" + "@metamask/utils": "^8.1.0" }, "devDependencies": { "@metamask/auto-changelog": "^3.1.0", diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 4e929afb9e..3ea21804b3 100644 --- a/packages/approval-controller/package.json +++ b/packages/approval-controller/package.json @@ -30,8 +30,8 @@ }, "dependencies": { "@metamask/base-controller": "^3.2.2", - "@metamask/utils": "^6.2.0", - "eth-rpc-errors": "^4.0.2", + "@metamask/rpc-errors": "^6.0.0", + "@metamask/utils": "^8.1.0", "immer": "^9.0.6", "nanoid": "^3.1.31" }, diff --git a/packages/approval-controller/src/ApprovalController.test.ts b/packages/approval-controller/src/ApprovalController.test.ts index de40e8b077..1967f46a3b 100644 --- a/packages/approval-controller/src/ApprovalController.test.ts +++ b/packages/approval-controller/src/ApprovalController.test.ts @@ -1,7 +1,7 @@ /* eslint-disable jest/expect-expect */ import { ControllerMessenger } from '@metamask/base-controller'; -import { errorCodes, EthereumRpcError } from 'eth-rpc-errors'; +import { errorCodes, JsonRpcError } from '@metamask/rpc-errors'; import type { ApprovalControllerActions, @@ -652,7 +652,7 @@ describe('approval controller', () => { approvalController.reject('2', new Error('foo')); expect(approvalController.getTotalApprovalCount()).toBe(2); - approvalController.clear(new EthereumRpcError(1, 'clear')); + approvalController.clear(new JsonRpcError(1, 'clear')); expect(approvalController.getTotalApprovalCount()).toBe(0); }); @@ -677,7 +677,7 @@ describe('approval controller', () => { approvalController.reject('2', new Error('foo')); expect(approvalController.getTotalApprovalCount()).toBe(1); - approvalController.clear(new EthereumRpcError(1, 'clear')); + approvalController.clear(new JsonRpcError(1, 'clear')); expect(approvalController.getTotalApprovalCount()).toBe(0); }); }); @@ -1042,7 +1042,7 @@ describe('approval controller', () => { describe('clear', () => { it('does nothing if state is already empty', () => { expect(() => - approvalController.clear(new EthereumRpcError(1, 'clear')), + approvalController.clear(new JsonRpcError(1, 'clear')), ).not.toThrow(); }); @@ -1057,7 +1057,7 @@ describe('approval controller', () => { .add({ id: 'foo3', origin: 'fizz.buzz', type: 'myType' }) .catch((_error) => undefined); - approvalController.clear(new EthereumRpcError(1, 'clear')); + approvalController.clear(new JsonRpcError(1, 'clear')); expect( approvalController.state[PENDING_APPROVALS_STORE_KEY], @@ -1072,16 +1072,16 @@ describe('approval controller', () => { type: 'myType', }); - approvalController.clear(new EthereumRpcError(1000, 'foo')); + approvalController.clear(new JsonRpcError(1000, 'foo')); await expect(rejectPromise).rejects.toThrow( - new EthereumRpcError(1000, 'foo'), + new JsonRpcError(1000, 'foo'), ); }); it('does not clear approval flows', async () => { approvalController.startFlow(); - approvalController.clear(new EthereumRpcError(1, 'clear')); + approvalController.clear(new JsonRpcError(1, 'clear')); expect(approvalController.state[APPROVAL_FLOWS_STORE_KEY]).toHaveLength( 1, diff --git a/packages/approval-controller/src/ApprovalController.ts b/packages/approval-controller/src/ApprovalController.ts index 1c2096164f..4e3259e892 100644 --- a/packages/approval-controller/src/ApprovalController.ts +++ b/packages/approval-controller/src/ApprovalController.ts @@ -1,8 +1,8 @@ import type { RestrictedControllerMessenger } from '@metamask/base-controller'; import { BaseControllerV2 } from '@metamask/base-controller'; +import type { JsonRpcError, DataWithOptionalCause } from '@metamask/rpc-errors'; +import { rpcErrors } from '@metamask/rpc-errors'; import type { Json, OptionalField } from '@metamask/utils'; -import type { EthereumRpcError } from 'eth-rpc-errors'; -import { ethErrors } from 'eth-rpc-errors'; import type { Patch } from 'immer'; import { nanoid } from 'nanoid'; @@ -256,7 +256,7 @@ export type GetApprovalsState = { export type ClearApprovalRequests = { type: `${typeof controllerName}:clearRequests`; - handler: (error: EthereumRpcError) => void; + handler: (error: JsonRpcError) => void; }; export type AddApprovalRequest = { @@ -719,10 +719,10 @@ export class ApprovalController extends BaseControllerV2< /** * Rejects and deletes all approval requests. * - * @param rejectionError - The EthereumRpcError to reject the approval + * @param rejectionError - The JsonRpcError to reject the approval * requests with. */ - clear(rejectionError: EthereumRpcError): void { + clear(rejectionError: JsonRpcError): void { for (const id of this.#approvals.keys()) { this.reject(id, rejectionError); } @@ -878,7 +878,7 @@ export class ApprovalController extends BaseControllerV2< !this.#typesExcludedFromRateLimiting.includes(type) && this.has({ origin, type }) ) { - throw ethErrors.rpc.resourceUnavailable( + throw rpcErrors.resourceUnavailable( getAlreadyPendingMessage(origin, type), ); } @@ -937,7 +937,7 @@ export class ApprovalController extends BaseControllerV2< } if (errorMessage) { - throw ethErrors.rpc.internal(errorMessage); + throw rpcErrors.internal(errorMessage); } } diff --git a/packages/assets-controllers/package.json b/packages/assets-controllers/package.json index 8973db4492..dcccee0594 100644 --- a/packages/assets-controllers/package.json +++ b/packages/assets-controllers/package.json @@ -43,7 +43,7 @@ "@metamask/network-controller": "^13.0.1", "@metamask/preferences-controller": "^4.4.2", "@metamask/rpc-errors": "^6.0.0", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "@types/uuid": "^8.3.0", "async-mutex": "^0.2.6", "ethereumjs-util": "^7.0.10", diff --git a/packages/base-controller/package.json b/packages/base-controller/package.json index ba9fa49313..f0ee61a7ad 100644 --- a/packages/base-controller/package.json +++ b/packages/base-controller/package.json @@ -29,7 +29,7 @@ "test:watch": "jest --watch" }, "dependencies": { - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "immer": "^9.0.6" }, "devDependencies": { diff --git a/packages/controller-utils/package.json b/packages/controller-utils/package.json index 0f23ef24e6..89404ea22a 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -30,10 +30,9 @@ }, "dependencies": { "@metamask/eth-query": "^3.0.1", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "@spruceid/siwe-parser": "1.1.3", "eth-ens-namehash": "^2.0.8", - "eth-rpc-errors": "^4.0.2", "ethereumjs-util": "^7.0.10", "ethjs-unit": "^0.1.6", "fast-deep-equal": "^3.1.3" diff --git a/packages/ens-controller/package.json b/packages/ens-controller/package.json index aeb6460ef1..7203f121e0 100644 --- a/packages/ens-controller/package.json +++ b/packages/ens-controller/package.json @@ -33,7 +33,7 @@ "@metamask/base-controller": "^3.2.2", "@metamask/controller-utils": "^5.0.1", "@metamask/network-controller": "^13.0.1", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "ethereum-ens-network-map": "^1.0.2", "punycode": "^2.1.1" }, diff --git a/packages/gas-fee-controller/package.json b/packages/gas-fee-controller/package.json index 87c5ba17c6..3d2e073868 100644 --- a/packages/gas-fee-controller/package.json +++ b/packages/gas-fee-controller/package.json @@ -33,7 +33,7 @@ "@metamask/controller-utils": "^5.0.1", "@metamask/eth-query": "^3.0.1", "@metamask/network-controller": "^13.0.1", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "@types/uuid": "^8.3.0", "ethereumjs-util": "^7.0.10", "ethjs-unit": "^0.1.6", diff --git a/packages/keyring-controller/package.json b/packages/keyring-controller/package.json index c8a9e380ff..7b9900a160 100644 --- a/packages/keyring-controller/package.json +++ b/packages/keyring-controller/package.json @@ -34,7 +34,7 @@ "@metamask/eth-keyring-controller": "^13.0.1", "@metamask/message-manager": "^7.3.4", "@metamask/preferences-controller": "^4.4.2", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "async-mutex": "^0.2.6", "ethereumjs-util": "^7.0.10", "ethereumjs-wallet": "^1.0.1", diff --git a/packages/message-manager/package.json b/packages/message-manager/package.json index 1ff041d78c..490671b9ab 100644 --- a/packages/message-manager/package.json +++ b/packages/message-manager/package.json @@ -32,7 +32,7 @@ "@metamask/base-controller": "^3.2.2", "@metamask/controller-utils": "^5.0.1", "@metamask/eth-sig-util": "^7.0.0", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "@types/uuid": "^8.3.0", "ethereumjs-util": "^7.0.10", "jsonschema": "^1.2.4", diff --git a/packages/name-controller/package.json b/packages/name-controller/package.json index b32eaa9019..5378f5dad6 100644 --- a/packages/name-controller/package.json +++ b/packages/name-controller/package.json @@ -31,7 +31,7 @@ }, "dependencies": { "@metamask/base-controller": "^3.2.2", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "async-mutex": "^0.2.6", "immer": "^9.0.6" }, diff --git a/packages/network-controller/package.json b/packages/network-controller/package.json index ab9f830432..8b992f1dce 100644 --- a/packages/network-controller/package.json +++ b/packages/network-controller/package.json @@ -36,7 +36,7 @@ "@metamask/eth-json-rpc-provider": "^1.0.0", "@metamask/eth-query": "^3.0.1", "@metamask/swappable-obj-proxy": "^2.1.0", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "async-mutex": "^0.2.6", "eth-block-tracker": "^7.0.1", "eth-rpc-errors": "^4.0.2", diff --git a/packages/notification-controller/package.json b/packages/notification-controller/package.json index adebe5ec86..37455251a5 100644 --- a/packages/notification-controller/package.json +++ b/packages/notification-controller/package.json @@ -30,7 +30,7 @@ }, "dependencies": { "@metamask/base-controller": "^3.2.2", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "immer": "^9.0.6", "nanoid": "^3.1.31" }, diff --git a/packages/permission-controller/package.json b/packages/permission-controller/package.json index 5554835369..0719b38192 100644 --- a/packages/permission-controller/package.json +++ b/packages/permission-controller/package.json @@ -32,7 +32,7 @@ "@metamask/approval-controller": "^3.5.2", "@metamask/base-controller": "^3.2.2", "@metamask/controller-utils": "^5.0.1", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "@types/deep-freeze-strict": "^1.1.0", "deep-freeze-strict": "^1.1.1", "eth-rpc-errors": "^4.0.2", diff --git a/packages/permission-controller/src/rpc-methods/getPermissions.ts b/packages/permission-controller/src/rpc-methods/getPermissions.ts index 7a11734e15..37c05395aa 100644 --- a/packages/permission-controller/src/rpc-methods/getPermissions.ts +++ b/packages/permission-controller/src/rpc-methods/getPermissions.ts @@ -8,7 +8,7 @@ import { MethodNames } from '../utils'; export const getPermissionsHandler: PermittedHandlerExport< GetPermissionsHooks, - undefined, + [], PermissionConstraint[] > = { methodNames: [MethodNames.getPermissions], diff --git a/packages/polling-controller/package.json b/packages/polling-controller/package.json index 68631a454e..fc771c7d5c 100644 --- a/packages/polling-controller/package.json +++ b/packages/polling-controller/package.json @@ -32,7 +32,7 @@ "@metamask/base-controller": "^3.2.2", "@metamask/controller-utils": "^5.0.1", "@metamask/network-controller": "^13.0.1", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "@types/uuid": "^8.3.0", "uuid": "^8.3.2" }, diff --git a/packages/signature-controller/package.json b/packages/signature-controller/package.json index 798a8db1c8..e54c03e270 100644 --- a/packages/signature-controller/package.json +++ b/packages/signature-controller/package.json @@ -34,7 +34,7 @@ "@metamask/controller-utils": "^5.0.1", "@metamask/logging-controller": "^1.0.3", "@metamask/message-manager": "^7.3.4", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "eth-rpc-errors": "^4.0.2", "ethereumjs-util": "^7.0.10", "immer": "^9.0.6", diff --git a/packages/transaction-controller/package.json b/packages/transaction-controller/package.json index 27fdcef49a..7b81583f34 100644 --- a/packages/transaction-controller/package.json +++ b/packages/transaction-controller/package.json @@ -39,7 +39,7 @@ "@metamask/metamask-eth-abis": "^3.0.0", "@metamask/network-controller": "^13.0.1", "@metamask/rpc-errors": "^6.0.0", - "@metamask/utils": "^6.2.0", + "@metamask/utils": "^8.1.0", "async-mutex": "^0.2.6", "eth-method-registry": "1.1.0", "ethereumjs-util": "^7.0.10", diff --git a/yarn.lock b/yarn.lock index b3ed1d1f7f..9cc2acf884 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1298,7 +1298,7 @@ __metadata: "@metamask/keyring-controller": ^8.0.1 "@metamask/snaps-controllers": ^1.0.1 "@metamask/snaps-utils": ^1.0.1 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/readable-stream": ^2.3.0 deepmerge: ^4.2.2 @@ -1335,7 +1335,7 @@ __metadata: "@metamask/auto-changelog": ^3.1.0 "@metamask/base-controller": ^3.2.2 "@metamask/controller-utils": ^5.0.1 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 deepmerge: ^4.2.2 jest: ^27.5.1 @@ -1369,10 +1369,10 @@ __metadata: dependencies: "@metamask/auto-changelog": ^3.1.0 "@metamask/base-controller": ^3.2.2 - "@metamask/utils": ^6.2.0 + "@metamask/rpc-errors": ^6.0.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 deepmerge: ^4.2.2 - eth-rpc-errors: ^4.0.2 immer: ^9.0.6 jest: ^27.5.1 nanoid: ^3.1.31 @@ -1403,7 +1403,7 @@ __metadata: "@metamask/network-controller": ^13.0.1 "@metamask/preferences-controller": ^4.4.2 "@metamask/rpc-errors": ^6.0.0 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/node": ^16.18.24 "@types/uuid": ^8.3.0 @@ -1449,7 +1449,7 @@ __metadata: resolution: "@metamask/base-controller@workspace:packages/base-controller" dependencies: "@metamask/auto-changelog": ^3.1.0 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/sinon": ^9.0.10 deepmerge: ^4.2.2 @@ -1501,12 +1501,11 @@ __metadata: dependencies: "@metamask/auto-changelog": ^3.1.0 "@metamask/eth-query": ^3.0.1 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@spruceid/siwe-parser": 1.1.3 "@types/jest": ^27.4.1 deepmerge: ^4.2.2 eth-ens-namehash: ^2.0.8 - eth-rpc-errors: ^4.0.2 ethereumjs-util: ^7.0.10 ethjs-unit: ^0.1.6 fast-deep-equal: ^3.1.3 @@ -1530,7 +1529,7 @@ __metadata: "@metamask/eslint-config-nodejs": ^12.0.0 "@metamask/eslint-config-typescript": ^12.0.0 "@metamask/eth-json-rpc-provider": ^1.0.0 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/node": ^16.18.24 "@typescript-eslint/eslint-plugin": ^5.30.7 "@typescript-eslint/parser": ^5.30.7 @@ -1586,7 +1585,7 @@ __metadata: "@metamask/base-controller": ^3.2.2 "@metamask/controller-utils": ^5.0.1 "@metamask/network-controller": ^13.0.1 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 deepmerge: ^4.2.2 ethereum-ens-network-map: ^1.0.2 @@ -1808,7 +1807,7 @@ __metadata: "@metamask/controller-utils": ^5.0.1 "@metamask/eth-query": ^3.0.1 "@metamask/network-controller": ^13.0.1 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/jest-when": ^2.7.3 "@types/uuid": ^8.3.0 @@ -1900,7 +1899,7 @@ __metadata: "@metamask/message-manager": ^7.3.4 "@metamask/preferences-controller": ^4.4.2 "@metamask/scure-bip39": ^2.1.0 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 async-mutex: ^0.2.6 deepmerge: ^4.2.2 @@ -1945,7 +1944,7 @@ __metadata: "@metamask/base-controller": ^3.2.2 "@metamask/controller-utils": ^5.0.1 "@metamask/eth-sig-util": ^7.0.0 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/uuid": ^8.3.0 deepmerge: ^4.2.2 @@ -1973,7 +1972,7 @@ __metadata: dependencies: "@metamask/auto-changelog": ^3.1.0 "@metamask/base-controller": ^3.2.2 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 async-mutex: ^0.2.6 deepmerge: ^4.2.2 @@ -1999,7 +1998,7 @@ __metadata: "@metamask/eth-json-rpc-provider": ^1.0.0 "@metamask/eth-query": ^3.0.1 "@metamask/swappable-obj-proxy": ^2.1.0 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/jest-when": ^2.7.3 "@types/lodash": ^4.14.191 @@ -2028,7 +2027,7 @@ __metadata: dependencies: "@metamask/auto-changelog": ^3.1.0 "@metamask/base-controller": ^3.2.2 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 deepmerge: ^4.2.2 immer: ^9.0.6 @@ -2080,7 +2079,7 @@ __metadata: "@metamask/auto-changelog": ^3.1.0 "@metamask/base-controller": ^3.2.2 "@metamask/controller-utils": ^5.0.1 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/deep-freeze-strict": ^1.1.0 "@types/jest": ^27.4.1 deep-freeze-strict: ^1.1.1 @@ -2129,7 +2128,7 @@ __metadata: "@metamask/base-controller": ^3.2.2 "@metamask/controller-utils": ^5.0.1 "@metamask/network-controller": ^13.0.1 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/uuid": ^8.3.0 deepmerge: ^4.2.2 @@ -2352,7 +2351,7 @@ __metadata: "@metamask/keyring-controller": ^8.0.1 "@metamask/logging-controller": ^1.0.3 "@metamask/message-manager": ^7.3.4 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 deepmerge: ^4.2.2 eth-rpc-errors: ^4.0.2 @@ -2578,7 +2577,7 @@ __metadata: "@metamask/metamask-eth-abis": ^3.0.0 "@metamask/network-controller": ^13.0.1 "@metamask/rpc-errors": ^6.0.0 - "@metamask/utils": ^6.2.0 + "@metamask/utils": ^8.1.0 "@types/jest": ^27.4.1 "@types/node": ^16.18.24 async-mutex: ^0.2.6 @@ -2636,7 +2635,7 @@ __metadata: languageName: node linkType: hard -"@metamask/utils@npm:^6.0.1, @metamask/utils@npm:^6.2.0": +"@metamask/utils@npm:^6.0.1": version: 6.2.0 resolution: "@metamask/utils@npm:6.2.0" dependencies: