diff --git a/packages/snaps-controllers/coverage.json b/packages/snaps-controllers/coverage.json index 486cbc8f4d..3a5693221a 100644 --- a/packages/snaps-controllers/coverage.json +++ b/packages/snaps-controllers/coverage.json @@ -1,5 +1,5 @@ { - "branches": 93.28, + "branches": 93.31, "functions": 96.8, "lines": 98.15, "statements": 97.88 diff --git a/packages/snaps-controllers/src/multichain/MultichainRouter.ts b/packages/snaps-controllers/src/multichain/MultichainRouter.ts index e1c25ac076..1af19fb850 100644 --- a/packages/snaps-controllers/src/multichain/MultichainRouter.ts +++ b/packages/snaps-controllers/src/multichain/MultichainRouter.ts @@ -18,6 +18,7 @@ import { KnownCaipNamespace, parseCaipAccountId, } from '@metamask/utils'; +import { nanoid } from 'nanoid'; import { getRunnableSnaps } from '../snaps'; import type { GetAllSnaps, HandleSnapRequest } from '../snaps'; @@ -291,7 +292,7 @@ export class MultichainRouter { connectedAddresses, origin, scope, - request, + request: rawRequest, }: { connectedAddresses: CaipAccountId[]; origin: string; @@ -304,6 +305,14 @@ export class MultichainRouter { !scope.startsWith('wallet:eip155'), ); + // Re-create the request to simplify and remove additional properties that may be present in MM middleware. + const request = { + jsonrpc: '2.0' as const, + id: rawRequest.id ?? nanoid(), + method: rawRequest.method, + params: rawRequest.params, + }; + const { method, params } = request; // If the RPC request can be serviced by an account Snap, route it there.