diff --git a/packages/approval-controller/package.json b/packages/approval-controller/package.json index 4e929afb9e..71ea00ee2b 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/rpc-errors": "^6.0.0", "@metamask/utils": "^6.2.0", - "eth-rpc-errors": "^4.0.2", "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/controller-utils/package.json b/packages/controller-utils/package.json index 0f23ef24e6..8ee528a36e 100644 --- a/packages/controller-utils/package.json +++ b/packages/controller-utils/package.json @@ -33,7 +33,6 @@ "@metamask/utils": "^6.2.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/yarn.lock b/yarn.lock index 5c536d5af3..35b5fd24e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1369,10 +1369,10 @@ __metadata: dependencies: "@metamask/auto-changelog": ^3.1.0 "@metamask/base-controller": ^3.2.2 + "@metamask/rpc-errors": ^6.0.0 "@metamask/utils": ^6.2.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 @@ -1506,7 +1506,6 @@ __metadata: "@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