Skip to content

Commit

Permalink
fix: filter and remove snaps
Browse files Browse the repository at this point in the history
  • Loading branch information
montelaidev committed Jun 5, 2024
1 parent 321ac2d commit 5e9906d
Showing 1 changed file with 20 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { isEvmAccountType } from '@metamask/keyring-api';
import { JsonRpcMiddleware } from 'json-rpc-engine';
import log from 'loglevel';
import { RestrictedMethods } from '../../../shared/constants/permissions';
import { RestrictedEthMethods } from '../../../shared/constants/permissions';
import { UnrestrictedEthSigningMethods } from '../controllers/permissions';

/**
Expand Down Expand Up @@ -30,7 +30,7 @@ export default function createEvmMethodsToNonEvmAccountReqFilterMiddleware({
}

const ethMethodsRequiringEthAccount = [
...Object.values(RestrictedMethods),
...Object.values(RestrictedEthMethods),
...UnrestrictedEthSigningMethods,
].includes(req.method);

Expand All @@ -43,24 +43,26 @@ export default function createEvmMethodsToNonEvmAccountReqFilterMiddleware({
const isWalletRequestPermission =
req.method === 'wallet_requestPermissions';

const permissionMethodRequest = (
(req?.params as Array<{ [key: string]: {} }>) || []
).map((request) => Object.keys(request)[0]);
if (Array.isArray(req?.params)) {
const permissionMethodRequest = (
(req?.params as Array<{ [key: string]: {} }>) ?? []
).map((request) => Object.keys(request)[0]);

const isEvmPermissionRequest = [...Object.values(RestrictedMethods)].some(
(method) => permissionMethodRequest.includes(method),
);
const isEvmPermissionRequest = [
...Object.values(RestrictedEthMethods),
].some((method) => permissionMethodRequest.includes(method));

if (isWalletRequestPermission && isEvmPermissionRequest) {
log.debug(
"Non evm account can't request this method",
permissionMethodRequest,
);
return end(
new Error(
`Non evm account can't request this method: ${permissionMethodRequest.toString()}`,
),
);
if (isWalletRequestPermission && isEvmPermissionRequest) {
log.debug(
"Non evm account can't request this method",
permissionMethodRequest,
);
return end(
new Error(
`Non evm account can't request this method: ${permissionMethodRequest.toString()}`,
),
);
}
}

return next();
Expand Down

0 comments on commit 5e9906d

Please sign in to comment.