diff --git a/packages/snaps-controllers/coverage.json b/packages/snaps-controllers/coverage.json index 9f6176ebba..7c78633b13 100644 --- a/packages/snaps-controllers/coverage.json +++ b/packages/snaps-controllers/coverage.json @@ -1,6 +1,6 @@ { - "branches": 93.26, + "branches": 93.28, "functions": 96.79, - "lines": 98.14, - "statements": 97.87 + "lines": 98.15, + "statements": 97.88 } diff --git a/packages/snaps-controllers/src/multichain/MultichainRouter.test.ts b/packages/snaps-controllers/src/multichain/MultichainRouter.test.ts index 6c7d247ced..8c858a4816 100644 --- a/packages/snaps-controllers/src/multichain/MultichainRouter.test.ts +++ b/packages/snaps-controllers/src/multichain/MultichainRouter.test.ts @@ -266,7 +266,7 @@ describe('MultichainRouter', () => { }, }, }), - ).rejects.toThrow('Invalid method parameter(s)'); + ).rejects.toThrow('No available account found for request.'); }); }); diff --git a/packages/snaps-controllers/src/multichain/MultichainRouter.ts b/packages/snaps-controllers/src/multichain/MultichainRouter.ts index 31b646099c..3cdafbdc41 100644 --- a/packages/snaps-controllers/src/multichain/MultichainRouter.ts +++ b/packages/snaps-controllers/src/multichain/MultichainRouter.ts @@ -13,7 +13,7 @@ import type { CaipChainId, JsonRpcParams, } from '@metamask/utils'; -import { hasProperty, parseCaipAccountId } from '@metamask/utils'; +import { assert, hasProperty, parseCaipAccountId } from '@metamask/utils'; import { getRunnableSnaps } from '../snaps'; import type { GetAllSnaps, HandleSnapRequest } from '../snaps'; @@ -225,7 +225,9 @@ export class MultichainRouter { ); if (!selectedAccount) { - throw rpcErrors.invalidParams(); + throw rpcErrors.invalidParams({ + message: 'No available account found for request.', + }); } return selectedAccount.id; @@ -288,6 +290,9 @@ export class MultichainRouter { scope: CaipChainId; request: JsonRpcRequest; }): Promise { + // Explicitly block EVM scopes, just in case. + assert(!scope.startsWith('eip155') && !scope.startsWith('wallet:eip155')); + const { method, params } = request; // If the RPC request can be serviced by an account Snap, route it there.