diff --git a/packages/wallet/src/W3mFrameConstants.ts b/packages/wallet/src/W3mFrameConstants.ts index 34093463f0..f02ef53efc 100644 --- a/packages/wallet/src/W3mFrameConstants.ts +++ b/packages/wallet/src/W3mFrameConstants.ts @@ -134,7 +134,12 @@ export const W3mFrameRpcConstants = { 'eth_syncing', 'eth_uninstallFilter' ], - NOT_SAFE_RPC_METHODS: ['personal_sign', 'eth_signTypedData_v4', 'eth_sendTransaction'], + NOT_SAFE_RPC_METHODS: [ + 'personal_sign', + 'eth_signTypedData_v4', + 'eth_sendTransaction', + 'wallet_grantPermissions' + ], GET_CHAIN_ID: 'eth_chainId', RPC_METHOD_NOT_ALLOWED_MESSAGE: 'Requested RPC call is not allowed', RPC_METHOD_NOT_ALLOWED_UI_MESSAGE: 'Action not allowed', diff --git a/packages/wallet/src/W3mFrameSchema.ts b/packages/wallet/src/W3mFrameSchema.ts index e99b3aa612..bef1e4b531 100644 --- a/packages/wallet/src/W3mFrameSchema.ts +++ b/packages/wallet/src/W3mFrameSchema.ts @@ -337,6 +337,10 @@ export const WalletGetCallsReceiptRequest = z.object({ export const WalletGetCapabilitiesRequest = z.object({ method: z.literal('wallet_getCapabilities') }) +export const WalletGrantPermissionsRequest = z.object({ + method: z.literal('wallet_grantPermissions'), + params: z.array(z.any()) +}) export const FrameSession = z.object({ token: z.string() @@ -457,6 +461,7 @@ export const W3mFrameSchema = { .or(WalletGetCallsReceiptRequest) .or(WalletSendCallsRequest) .or(WalletGetCapabilitiesRequest) + .or(WalletGrantPermissionsRequest) }) ) diff --git a/packages/wallet/src/W3mFrameTypes.ts b/packages/wallet/src/W3mFrameTypes.ts index 3eb6e55402..fa974ed991 100644 --- a/packages/wallet/src/W3mFrameTypes.ts +++ b/packages/wallet/src/W3mFrameTypes.ts @@ -67,7 +67,8 @@ import { AppConnectSocialRequest, AppSetPreferredAccountRequest, FrameSetPreferredAccountResponse, - WalletGetCapabilitiesRequest + WalletGetCapabilitiesRequest, + WalletGrantPermissionsRequest } from './W3mFrameSchema.js' import type { W3mFrameRpcConstants } from './W3mFrameConstants.js' @@ -168,6 +169,7 @@ export namespace W3mFrameTypes { | z.infer | z.infer | z.infer + | z.infer export type RPCResponse = z.infer