@metamask/snaps-rpc-methods 14.2.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -1
- package/dist/endowments/assets.cjs +1 -1
- package/dist/endowments/assets.cjs.map +1 -1
- package/dist/endowments/assets.mjs +1 -1
- package/dist/endowments/assets.mjs.map +1 -1
- package/dist/endowments/cronjob.cjs +3 -8
- package/dist/endowments/cronjob.cjs.map +1 -1
- package/dist/endowments/cronjob.d.cts.map +1 -1
- package/dist/endowments/cronjob.d.mts.map +1 -1
- package/dist/endowments/cronjob.mjs +4 -9
- package/dist/endowments/cronjob.mjs.map +1 -1
- package/dist/endowments/home-page.cjs +6 -1
- package/dist/endowments/home-page.cjs.map +1 -1
- package/dist/endowments/home-page.d.cts +2 -1
- package/dist/endowments/home-page.d.cts.map +1 -1
- package/dist/endowments/home-page.d.mts +2 -1
- package/dist/endowments/home-page.d.mts.map +1 -1
- package/dist/endowments/home-page.mjs +6 -1
- package/dist/endowments/home-page.mjs.map +1 -1
- package/dist/endowments/index.d.cts +3 -0
- package/dist/endowments/index.d.cts.map +1 -1
- package/dist/endowments/index.d.mts +3 -0
- package/dist/endowments/index.d.mts.map +1 -1
- package/dist/endowments/keyring.cjs +2 -4
- package/dist/endowments/keyring.cjs.map +1 -1
- package/dist/endowments/keyring.d.cts +1 -1
- package/dist/endowments/keyring.d.cts.map +1 -1
- package/dist/endowments/keyring.d.mts +1 -1
- package/dist/endowments/keyring.d.mts.map +1 -1
- package/dist/endowments/keyring.mjs +2 -4
- package/dist/endowments/keyring.mjs.map +1 -1
- package/dist/endowments/lifecycle-hooks.cjs +6 -1
- package/dist/endowments/lifecycle-hooks.cjs.map +1 -1
- package/dist/endowments/lifecycle-hooks.d.cts +2 -1
- package/dist/endowments/lifecycle-hooks.d.cts.map +1 -1
- package/dist/endowments/lifecycle-hooks.d.mts +2 -1
- package/dist/endowments/lifecycle-hooks.d.mts.map +1 -1
- package/dist/endowments/lifecycle-hooks.mjs +6 -1
- package/dist/endowments/lifecycle-hooks.mjs.map +1 -1
- package/dist/endowments/rpc.cjs +2 -4
- package/dist/endowments/rpc.cjs.map +1 -1
- package/dist/endowments/rpc.d.cts +1 -1
- package/dist/endowments/rpc.d.cts.map +1 -1
- package/dist/endowments/rpc.d.mts +1 -1
- package/dist/endowments/rpc.d.mts.map +1 -1
- package/dist/endowments/rpc.mjs +2 -4
- package/dist/endowments/rpc.mjs.map +1 -1
- package/dist/endowments/settings-page.cjs +6 -1
- package/dist/endowments/settings-page.cjs.map +1 -1
- package/dist/endowments/settings-page.d.cts +2 -1
- package/dist/endowments/settings-page.d.cts.map +1 -1
- package/dist/endowments/settings-page.d.mts +2 -1
- package/dist/endowments/settings-page.d.mts.map +1 -1
- package/dist/endowments/settings-page.mjs +6 -1
- package/dist/endowments/settings-page.mjs.map +1 -1
- package/dist/endowments/signature-insight.cjs +6 -8
- package/dist/endowments/signature-insight.cjs.map +1 -1
- package/dist/endowments/signature-insight.d.cts.map +1 -1
- package/dist/endowments/signature-insight.d.mts.map +1 -1
- package/dist/endowments/signature-insight.mjs +6 -8
- package/dist/endowments/signature-insight.mjs.map +1 -1
- package/dist/endowments/transaction-insight.cjs +2 -7
- package/dist/endowments/transaction-insight.cjs.map +1 -1
- package/dist/endowments/transaction-insight.d.cts.map +1 -1
- package/dist/endowments/transaction-insight.d.mts.map +1 -1
- package/dist/endowments/transaction-insight.mjs +2 -7
- package/dist/endowments/transaction-insight.mjs.map +1 -1
- package/dist/middleware/index.cjs +3 -0
- package/dist/middleware/index.cjs.map +1 -1
- package/dist/middleware/index.d.cts +1 -0
- package/dist/middleware/index.d.cts.map +1 -1
- package/dist/middleware/index.d.mts +1 -0
- package/dist/middleware/index.d.mts.map +1 -1
- package/dist/middleware/index.mjs +1 -0
- package/dist/middleware/index.mjs.map +1 -1
- package/dist/middleware/wallet-snap-permission.cjs +32 -0
- package/dist/middleware/wallet-snap-permission.cjs.map +1 -0
- package/dist/middleware/wallet-snap-permission.d.cts +18 -0
- package/dist/middleware/wallet-snap-permission.d.cts.map +1 -0
- package/dist/middleware/wallet-snap-permission.d.mts +18 -0
- package/dist/middleware/wallet-snap-permission.d.mts.map +1 -0
- package/dist/middleware/wallet-snap-permission.mjs +28 -0
- package/dist/middleware/wallet-snap-permission.mjs.map +1 -0
- package/dist/permitted/cancelBackgroundEvent.cjs +20 -0
- package/dist/permitted/cancelBackgroundEvent.cjs.map +1 -1
- package/dist/permitted/cancelBackgroundEvent.d.cts +43 -3
- package/dist/permitted/cancelBackgroundEvent.d.cts.map +1 -1
- package/dist/permitted/cancelBackgroundEvent.d.mts +43 -3
- package/dist/permitted/cancelBackgroundEvent.d.mts.map +1 -1
- package/dist/permitted/cancelBackgroundEvent.mjs +20 -0
- package/dist/permitted/cancelBackgroundEvent.mjs.map +1 -1
- package/dist/permitted/clearState.cjs +13 -2
- package/dist/permitted/clearState.cjs.map +1 -1
- package/dist/permitted/clearState.d.cts +35 -3
- package/dist/permitted/clearState.d.cts.map +1 -1
- package/dist/permitted/clearState.d.mts +35 -3
- package/dist/permitted/clearState.d.mts.map +1 -1
- package/dist/permitted/clearState.mjs +13 -2
- package/dist/permitted/clearState.mjs.map +1 -1
- package/dist/permitted/closeWebSocket.cjs +19 -2
- package/dist/permitted/closeWebSocket.cjs.map +1 -1
- package/dist/permitted/closeWebSocket.d.cts +39 -4
- package/dist/permitted/closeWebSocket.d.cts.map +1 -1
- package/dist/permitted/closeWebSocket.d.mts +39 -4
- package/dist/permitted/closeWebSocket.d.mts.map +1 -1
- package/dist/permitted/closeWebSocket.mjs +19 -2
- package/dist/permitted/closeWebSocket.mjs.map +1 -1
- package/dist/permitted/createInterface.cjs +33 -2
- package/dist/permitted/createInterface.cjs.map +1 -1
- package/dist/permitted/createInterface.d.cts +68 -17
- package/dist/permitted/createInterface.d.cts.map +1 -1
- package/dist/permitted/createInterface.d.mts +68 -17
- package/dist/permitted/createInterface.d.mts.map +1 -1
- package/dist/permitted/createInterface.mjs +34 -3
- package/dist/permitted/createInterface.mjs.map +1 -1
- package/dist/permitted/endTrace.cjs +6 -2
- package/dist/permitted/endTrace.cjs.map +1 -1
- package/dist/permitted/endTrace.d.cts +28 -4
- package/dist/permitted/endTrace.d.cts.map +1 -1
- package/dist/permitted/endTrace.d.mts +28 -4
- package/dist/permitted/endTrace.d.mts.map +1 -1
- package/dist/permitted/endTrace.mjs +6 -2
- package/dist/permitted/endTrace.mjs.map +1 -1
- package/dist/permitted/getAllSnaps.cjs +4 -1
- package/dist/permitted/getAllSnaps.cjs.map +1 -1
- package/dist/permitted/getAllSnaps.d.cts +25 -3
- package/dist/permitted/getAllSnaps.d.cts.map +1 -1
- package/dist/permitted/getAllSnaps.d.mts +25 -3
- package/dist/permitted/getAllSnaps.d.mts.map +1 -1
- package/dist/permitted/getAllSnaps.mjs +4 -1
- package/dist/permitted/getAllSnaps.mjs.map +1 -1
- package/dist/permitted/getBackgroundEvents.cjs +24 -0
- package/dist/permitted/getBackgroundEvents.cjs.map +1 -1
- package/dist/permitted/getBackgroundEvents.d.cts +48 -3
- package/dist/permitted/getBackgroundEvents.d.cts.map +1 -1
- package/dist/permitted/getBackgroundEvents.d.mts +48 -3
- package/dist/permitted/getBackgroundEvents.d.mts.map +1 -1
- package/dist/permitted/getBackgroundEvents.mjs +24 -0
- package/dist/permitted/getBackgroundEvents.mjs.map +1 -1
- package/dist/permitted/getClientStatus.cjs +27 -2
- package/dist/permitted/getClientStatus.cjs.map +1 -1
- package/dist/permitted/getClientStatus.d.cts +50 -4
- package/dist/permitted/getClientStatus.d.cts.map +1 -1
- package/dist/permitted/getClientStatus.d.mts +50 -4
- package/dist/permitted/getClientStatus.d.mts.map +1 -1
- package/dist/permitted/getClientStatus.mjs +27 -2
- package/dist/permitted/getClientStatus.mjs.map +1 -1
- package/dist/permitted/getFile.cjs +28 -1
- package/dist/permitted/getFile.cjs.map +1 -1
- package/dist/permitted/getFile.d.cts +49 -3
- package/dist/permitted/getFile.d.cts.map +1 -1
- package/dist/permitted/getFile.d.mts +49 -3
- package/dist/permitted/getFile.d.mts.map +1 -1
- package/dist/permitted/getFile.mjs +28 -1
- package/dist/permitted/getFile.mjs.map +1 -1
- package/dist/permitted/getInterfaceContext.cjs +49 -3
- package/dist/permitted/getInterfaceContext.cjs.map +1 -1
- package/dist/permitted/getInterfaceContext.d.cts +65 -3
- package/dist/permitted/getInterfaceContext.d.cts.map +1 -1
- package/dist/permitted/getInterfaceContext.d.mts +65 -3
- package/dist/permitted/getInterfaceContext.d.mts.map +1 -1
- package/dist/permitted/getInterfaceContext.mjs +50 -4
- package/dist/permitted/getInterfaceContext.mjs.map +1 -1
- package/dist/permitted/getInterfaceState.cjs +27 -3
- package/dist/permitted/getInterfaceState.cjs.map +1 -1
- package/dist/permitted/getInterfaceState.d.cts +43 -3
- package/dist/permitted/getInterfaceState.d.cts.map +1 -1
- package/dist/permitted/getInterfaceState.d.mts +43 -3
- package/dist/permitted/getInterfaceState.d.mts.map +1 -1
- package/dist/permitted/getInterfaceState.mjs +28 -4
- package/dist/permitted/getInterfaceState.mjs.map +1 -1
- package/dist/permitted/getSnaps.cjs +21 -2
- package/dist/permitted/getSnaps.cjs.map +1 -1
- package/dist/permitted/getSnaps.d.cts +42 -4
- package/dist/permitted/getSnaps.d.cts.map +1 -1
- package/dist/permitted/getSnaps.d.mts +42 -4
- package/dist/permitted/getSnaps.d.mts.map +1 -1
- package/dist/permitted/getSnaps.mjs +21 -2
- package/dist/permitted/getSnaps.mjs.map +1 -1
- package/dist/permitted/getState.cjs +24 -2
- package/dist/permitted/getState.cjs.map +1 -1
- package/dist/permitted/getState.d.cts +46 -4
- package/dist/permitted/getState.d.cts.map +1 -1
- package/dist/permitted/getState.d.mts +46 -4
- package/dist/permitted/getState.d.mts.map +1 -1
- package/dist/permitted/getState.mjs +24 -2
- package/dist/permitted/getState.mjs.map +1 -1
- package/dist/permitted/getWebSockets.cjs +29 -2
- package/dist/permitted/getWebSockets.cjs.map +1 -1
- package/dist/permitted/getWebSockets.d.cts +50 -4
- package/dist/permitted/getWebSockets.d.cts.map +1 -1
- package/dist/permitted/getWebSockets.d.mts +50 -4
- package/dist/permitted/getWebSockets.d.mts.map +1 -1
- package/dist/permitted/getWebSockets.mjs +29 -2
- package/dist/permitted/getWebSockets.mjs.map +1 -1
- package/dist/permitted/handlers.cjs +0 -4
- package/dist/permitted/handlers.cjs.map +1 -1
- package/dist/permitted/handlers.d.cts +274 -56
- package/dist/permitted/handlers.d.cts.map +1 -1
- package/dist/permitted/handlers.d.mts +274 -56
- package/dist/permitted/handlers.d.mts.map +1 -1
- package/dist/permitted/handlers.mjs +0 -4
- package/dist/permitted/handlers.mjs.map +1 -1
- package/dist/permitted/index.cjs.map +1 -1
- package/dist/permitted/index.d.cts +1 -3
- package/dist/permitted/index.d.cts.map +1 -1
- package/dist/permitted/index.d.mts +1 -3
- package/dist/permitted/index.d.mts.map +1 -1
- package/dist/permitted/index.mjs.map +1 -1
- package/dist/permitted/invokeKeyring.cjs +8 -2
- package/dist/permitted/invokeKeyring.cjs.map +1 -1
- package/dist/permitted/invokeKeyring.d.cts +34 -4
- package/dist/permitted/invokeKeyring.d.cts.map +1 -1
- package/dist/permitted/invokeKeyring.d.mts +34 -4
- package/dist/permitted/invokeKeyring.d.mts.map +1 -1
- package/dist/permitted/invokeKeyring.mjs +8 -2
- package/dist/permitted/invokeKeyring.mjs.map +1 -1
- package/dist/permitted/invokeSnapSugar.cjs +25 -2
- package/dist/permitted/invokeSnapSugar.cjs.map +1 -1
- package/dist/permitted/invokeSnapSugar.d.cts +30 -3
- package/dist/permitted/invokeSnapSugar.d.cts.map +1 -1
- package/dist/permitted/invokeSnapSugar.d.mts +30 -3
- package/dist/permitted/invokeSnapSugar.d.mts.map +1 -1
- package/dist/permitted/invokeSnapSugar.mjs +25 -2
- package/dist/permitted/invokeSnapSugar.mjs.map +1 -1
- package/dist/permitted/listEntropySources.cjs +40 -1
- package/dist/permitted/listEntropySources.cjs.map +1 -1
- package/dist/permitted/listEntropySources.d.cts +64 -3
- package/dist/permitted/listEntropySources.d.cts.map +1 -1
- package/dist/permitted/listEntropySources.d.mts +64 -3
- package/dist/permitted/listEntropySources.d.mts.map +1 -1
- package/dist/permitted/listEntropySources.mjs +40 -1
- package/dist/permitted/listEntropySources.mjs.map +1 -1
- package/dist/permitted/openWebSocket.cjs +46 -2
- package/dist/permitted/openWebSocket.cjs.map +1 -1
- package/dist/permitted/openWebSocket.d.cts +66 -4
- package/dist/permitted/openWebSocket.d.cts.map +1 -1
- package/dist/permitted/openWebSocket.d.mts +66 -4
- package/dist/permitted/openWebSocket.d.mts.map +1 -1
- package/dist/permitted/openWebSocket.mjs +46 -2
- package/dist/permitted/openWebSocket.mjs.map +1 -1
- package/dist/permitted/requestSnaps.cjs +25 -2
- package/dist/permitted/requestSnaps.cjs.map +1 -1
- package/dist/permitted/requestSnaps.d.cts +51 -3
- package/dist/permitted/requestSnaps.d.cts.map +1 -1
- package/dist/permitted/requestSnaps.d.mts +51 -3
- package/dist/permitted/requestSnaps.d.mts.map +1 -1
- package/dist/permitted/requestSnaps.mjs +25 -2
- package/dist/permitted/requestSnaps.mjs.map +1 -1
- package/dist/permitted/resolveInterface.cjs +38 -2
- package/dist/permitted/resolveInterface.cjs.map +1 -1
- package/dist/permitted/resolveInterface.d.cts +55 -4
- package/dist/permitted/resolveInterface.d.cts.map +1 -1
- package/dist/permitted/resolveInterface.d.mts +55 -4
- package/dist/permitted/resolveInterface.d.mts.map +1 -1
- package/dist/permitted/resolveInterface.mjs +39 -3
- package/dist/permitted/resolveInterface.mjs.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.cjs +26 -0
- package/dist/permitted/scheduleBackgroundEvent.cjs.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.d.cts +49 -3
- package/dist/permitted/scheduleBackgroundEvent.d.cts.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.d.mts +49 -3
- package/dist/permitted/scheduleBackgroundEvent.d.mts.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.mjs +26 -0
- package/dist/permitted/scheduleBackgroundEvent.mjs.map +1 -1
- package/dist/permitted/sendWebSocketMessage.cjs +24 -2
- package/dist/permitted/sendWebSocketMessage.cjs.map +1 -1
- package/dist/permitted/sendWebSocketMessage.d.cts +44 -4
- package/dist/permitted/sendWebSocketMessage.d.cts.map +1 -1
- package/dist/permitted/sendWebSocketMessage.d.mts +44 -4
- package/dist/permitted/sendWebSocketMessage.d.mts.map +1 -1
- package/dist/permitted/sendWebSocketMessage.mjs +24 -2
- package/dist/permitted/sendWebSocketMessage.mjs.map +1 -1
- package/dist/permitted/setState.cjs +48 -2
- package/dist/permitted/setState.cjs.map +1 -1
- package/dist/permitted/setState.d.cts +72 -4
- package/dist/permitted/setState.d.cts.map +1 -1
- package/dist/permitted/setState.d.mts +72 -4
- package/dist/permitted/setState.d.mts.map +1 -1
- package/dist/permitted/setState.mjs +48 -2
- package/dist/permitted/setState.mjs.map +1 -1
- package/dist/permitted/startTrace.cjs +4 -1
- package/dist/permitted/startTrace.cjs.map +1 -1
- package/dist/permitted/startTrace.d.cts +26 -3
- package/dist/permitted/startTrace.d.cts.map +1 -1
- package/dist/permitted/startTrace.d.mts +26 -3
- package/dist/permitted/startTrace.d.mts.map +1 -1
- package/dist/permitted/startTrace.mjs +4 -1
- package/dist/permitted/startTrace.mjs.map +1 -1
- package/dist/permitted/trackError.cjs +4 -1
- package/dist/permitted/trackError.cjs.map +1 -1
- package/dist/permitted/trackError.d.cts +26 -3
- package/dist/permitted/trackError.d.cts.map +1 -1
- package/dist/permitted/trackError.d.mts +26 -3
- package/dist/permitted/trackError.d.mts.map +1 -1
- package/dist/permitted/trackError.mjs +4 -1
- package/dist/permitted/trackError.mjs.map +1 -1
- package/dist/permitted/trackEvent.cjs +4 -1
- package/dist/permitted/trackEvent.cjs.map +1 -1
- package/dist/permitted/trackEvent.d.cts +25 -4
- package/dist/permitted/trackEvent.d.cts.map +1 -1
- package/dist/permitted/trackEvent.d.mts +25 -4
- package/dist/permitted/trackEvent.d.mts.map +1 -1
- package/dist/permitted/trackEvent.mjs +4 -1
- package/dist/permitted/trackEvent.mjs.map +1 -1
- package/dist/permitted/updateInterface.cjs +47 -2
- package/dist/permitted/updateInterface.cjs.map +1 -1
- package/dist/permitted/updateInterface.d.cts +64 -3
- package/dist/permitted/updateInterface.d.cts.map +1 -1
- package/dist/permitted/updateInterface.d.mts +64 -3
- package/dist/permitted/updateInterface.d.mts.map +1 -1
- package/dist/permitted/updateInterface.mjs +48 -3
- package/dist/permitted/updateInterface.mjs.map +1 -1
- package/dist/restricted/caveats/snapIds.cjs.map +1 -1
- package/dist/restricted/caveats/snapIds.d.cts.map +1 -1
- package/dist/restricted/caveats/snapIds.d.mts.map +1 -1
- package/dist/restricted/caveats/snapIds.mjs.map +1 -1
- package/dist/restricted/dialog.cjs +49 -1
- package/dist/restricted/dialog.cjs.map +1 -1
- package/dist/restricted/dialog.d.cts +52 -2
- package/dist/restricted/dialog.d.cts.map +1 -1
- package/dist/restricted/dialog.d.mts +52 -2
- package/dist/restricted/dialog.d.mts.map +1 -1
- package/dist/restricted/dialog.mjs +49 -1
- package/dist/restricted/dialog.mjs.map +1 -1
- package/dist/restricted/getBip32Entropy.cjs +55 -0
- package/dist/restricted/getBip32Entropy.cjs.map +1 -1
- package/dist/restricted/getBip32Entropy.d.cts +55 -0
- package/dist/restricted/getBip32Entropy.d.cts.map +1 -1
- package/dist/restricted/getBip32Entropy.d.mts +55 -0
- package/dist/restricted/getBip32Entropy.d.mts.map +1 -1
- package/dist/restricted/getBip32Entropy.mjs +55 -0
- package/dist/restricted/getBip32Entropy.mjs.map +1 -1
- package/dist/restricted/getBip32PublicKey.cjs +36 -0
- package/dist/restricted/getBip32PublicKey.cjs.map +1 -1
- package/dist/restricted/getBip32PublicKey.d.cts +36 -0
- package/dist/restricted/getBip32PublicKey.d.cts.map +1 -1
- package/dist/restricted/getBip32PublicKey.d.mts +36 -0
- package/dist/restricted/getBip32PublicKey.d.mts.map +1 -1
- package/dist/restricted/getBip32PublicKey.mjs +36 -0
- package/dist/restricted/getBip32PublicKey.mjs.map +1 -1
- package/dist/restricted/getBip44Entropy.cjs +53 -0
- package/dist/restricted/getBip44Entropy.cjs.map +1 -1
- package/dist/restricted/getBip44Entropy.d.cts +53 -0
- package/dist/restricted/getBip44Entropy.d.cts.map +1 -1
- package/dist/restricted/getBip44Entropy.d.mts +53 -0
- package/dist/restricted/getBip44Entropy.d.mts.map +1 -1
- package/dist/restricted/getBip44Entropy.mjs +53 -0
- package/dist/restricted/getBip44Entropy.mjs.map +1 -1
- package/dist/restricted/getEntropy.cjs +35 -0
- package/dist/restricted/getEntropy.cjs.map +1 -1
- package/dist/restricted/getEntropy.d.cts +35 -0
- package/dist/restricted/getEntropy.d.cts.map +1 -1
- package/dist/restricted/getEntropy.d.mts +35 -0
- package/dist/restricted/getEntropy.d.mts.map +1 -1
- package/dist/restricted/getEntropy.mjs +35 -0
- package/dist/restricted/getEntropy.mjs.map +1 -1
- package/dist/restricted/getLocale.cjs +11 -0
- package/dist/restricted/getLocale.cjs.map +1 -1
- package/dist/restricted/getLocale.d.cts +11 -0
- package/dist/restricted/getLocale.d.cts.map +1 -1
- package/dist/restricted/getLocale.d.mts +11 -0
- package/dist/restricted/getLocale.d.mts.map +1 -1
- package/dist/restricted/getLocale.mjs +11 -0
- package/dist/restricted/getLocale.mjs.map +1 -1
- package/dist/restricted/getPreferences.cjs +24 -0
- package/dist/restricted/getPreferences.cjs.map +1 -1
- package/dist/restricted/getPreferences.d.cts +24 -0
- package/dist/restricted/getPreferences.d.cts.map +1 -1
- package/dist/restricted/getPreferences.d.mts +24 -0
- package/dist/restricted/getPreferences.d.mts.map +1 -1
- package/dist/restricted/getPreferences.mjs +24 -0
- package/dist/restricted/getPreferences.mjs.map +1 -1
- package/dist/restricted/index.d.cts +1 -1
- package/dist/restricted/index.d.mts +1 -1
- package/dist/restricted/invokeSnap.cjs +22 -0
- package/dist/restricted/invokeSnap.cjs.map +1 -1
- package/dist/restricted/invokeSnap.d.cts +24 -6
- package/dist/restricted/invokeSnap.d.cts.map +1 -1
- package/dist/restricted/invokeSnap.d.mts +24 -6
- package/dist/restricted/invokeSnap.d.mts.map +1 -1
- package/dist/restricted/invokeSnap.mjs +22 -0
- package/dist/restricted/invokeSnap.mjs.map +1 -1
- package/dist/restricted/manageAccounts.cjs +10 -0
- package/dist/restricted/manageAccounts.cjs.map +1 -1
- package/dist/restricted/manageAccounts.d.cts +10 -0
- package/dist/restricted/manageAccounts.d.cts.map +1 -1
- package/dist/restricted/manageAccounts.d.mts +10 -0
- package/dist/restricted/manageAccounts.d.mts.map +1 -1
- package/dist/restricted/manageAccounts.mjs +10 -0
- package/dist/restricted/manageAccounts.mjs.map +1 -1
- package/dist/restricted/manageState.cjs +42 -0
- package/dist/restricted/manageState.cjs.map +1 -1
- package/dist/restricted/manageState.d.cts +42 -0
- package/dist/restricted/manageState.d.cts.map +1 -1
- package/dist/restricted/manageState.d.mts +42 -0
- package/dist/restricted/manageState.d.mts.map +1 -1
- package/dist/restricted/manageState.mjs +42 -0
- package/dist/restricted/manageState.mjs.map +1 -1
- package/dist/restricted/notify.cjs +74 -0
- package/dist/restricted/notify.cjs.map +1 -1
- package/dist/restricted/notify.d.cts +74 -0
- package/dist/restricted/notify.d.cts.map +1 -1
- package/dist/restricted/notify.d.mts +74 -0
- package/dist/restricted/notify.d.mts.map +1 -1
- package/dist/restricted/notify.mjs +74 -0
- package/dist/restricted/notify.mjs.map +1 -1
- package/dist/utils.cjs +14 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +6 -0
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +6 -0
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +13 -0
- package/dist/utils.mjs.map +1 -1
- package/package.json +11 -7
- package/dist/permitted/experimentalProviderRequest.cjs +0 -152
- package/dist/permitted/experimentalProviderRequest.cjs.map +0 -1
- package/dist/permitted/experimentalProviderRequest.d.cts +0 -39
- package/dist/permitted/experimentalProviderRequest.d.cts.map +0 -1
- package/dist/permitted/experimentalProviderRequest.d.mts +0 -39
- package/dist/permitted/experimentalProviderRequest.d.mts.map +0 -1
- package/dist/permitted/experimentalProviderRequest.mjs +0 -149
- package/dist/permitted/experimentalProviderRequest.mjs.map +0 -1
- package/dist/permitted/getCurrencyRate.cjs +0 -63
- package/dist/permitted/getCurrencyRate.cjs.map +0 -1
- package/dist/permitted/getCurrencyRate.d.cts +0 -20
- package/dist/permitted/getCurrencyRate.d.cts.map +0 -1
- package/dist/permitted/getCurrencyRate.d.mts +0 -20
- package/dist/permitted/getCurrencyRate.d.mts.map +0 -1
- package/dist/permitted/getCurrencyRate.mjs +0 -60
- package/dist/permitted/getCurrencyRate.mjs.map +0 -1
|
@@ -83,13 +83,8 @@ export function getTransactionInsightCaveatMapper(value) {
|
|
|
83
83
|
* transaction origin caveat.
|
|
84
84
|
*/
|
|
85
85
|
export function getTransactionOriginCaveat(permission) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
assert(permission.caveats.length === 1);
|
|
90
|
-
assert(permission.caveats[0].type === SnapCaveatType.TransactionOrigin);
|
|
91
|
-
const caveat = permission.caveats[0];
|
|
92
|
-
return caveat.value ?? null;
|
|
86
|
+
const caveat = permission?.caveats?.find((permCaveat) => permCaveat.type === SnapCaveatType.TransactionOrigin);
|
|
87
|
+
return caveat?.value ?? null;
|
|
93
88
|
}
|
|
94
89
|
export const transactionInsightCaveatSpecifications = {
|
|
95
90
|
[SnapCaveatType.TransactionOrigin]: Object.freeze({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-insight.mjs","sourceRoot":"","sources":["../../src/endowments/transaction-insight.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC;AAC9E,OAAO,EAAE,SAAS,EAAE,6BAA6B;AACjD,OAAO,EAAE,cAAc,EAAE,8BAA8B;AAEvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAwB;AAE/E,OAAO,EAAE,gCAAgC,EAAE,4BAAkB;AAC7D,OAAO,EAAE,cAAc,EAAE,mBAAe;AAExC,MAAM,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC;AAUzD;;;;;;GAMG;AACH,MAAM,oBAAoB,GAItB,CAAC,eAAyB,EAAE,EAAE;IAChC,OAAO;QACL,cAAc,EAAE,cAAc,CAAC,SAAS;QACxC,UAAU,EAAE,cAAc;QAC1B,cAAc,EAAE;YACd,cAAc,CAAC,iBAAiB;YAChC,cAAc,CAAC,cAAc;SAC9B;QACD,eAAe,EAAE,CAAC,cAAsC,EAAE,EAAE,CAAC,IAAI;QACjE,SAAS,EAAE,gCAAgC,CAAC;YAC1C,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD,CAAC;QACF,YAAY,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9D,UAAU,EAAE,cAAc;IAC1B,oBAAoB;CACZ,CAAC,CAAC;AAEZ;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAA2B;IACjD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAEzB,MAAM,CACJ,OAAO,KAAK,KAAK,SAAS,EAC1B,8CAA8C,CAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAAW;IAEX,IACE,CAAC,KAAK;QACN,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EACpD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc,CAAC,iBAAiB;gBACtC,KAAK,EACH,WAAW,CAAC,KAAK,EAAE,wBAAwB,CAAC;oBAC3C,KAAK,CAAC,sBAAkC;aAC5C;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAiC;IAEjC,
|
|
1
|
+
{"version":3,"file":"transaction-insight.mjs","sourceRoot":"","sources":["../../src/endowments/transaction-insight.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC;AAC9E,OAAO,EAAE,SAAS,EAAE,6BAA6B;AACjD,OAAO,EAAE,cAAc,EAAE,8BAA8B;AAEvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAwB;AAE/E,OAAO,EAAE,gCAAgC,EAAE,4BAAkB;AAC7D,OAAO,EAAE,cAAc,EAAE,mBAAe;AAExC,MAAM,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC;AAUzD;;;;;;GAMG;AACH,MAAM,oBAAoB,GAItB,CAAC,eAAyB,EAAE,EAAE;IAChC,OAAO;QACL,cAAc,EAAE,cAAc,CAAC,SAAS;QACxC,UAAU,EAAE,cAAc;QAC1B,cAAc,EAAE;YACd,cAAc,CAAC,iBAAiB;YAChC,cAAc,CAAC,cAAc;SAC9B;QACD,eAAe,EAAE,CAAC,cAAsC,EAAE,EAAE,CAAC,IAAI;QACjE,SAAS,EAAE,gCAAgC,CAAC;YAC1C,EAAE,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD,CAAC;QACF,YAAY,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9D,UAAU,EAAE,cAAc;IAC1B,oBAAoB;CACZ,CAAC,CAAC;AAEZ;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAA2B;IACjD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAEzB,MAAM,CACJ,OAAO,KAAK,KAAK,SAAS,EAC1B,8CAA8C,CAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAC/C,KAAW;IAEX,IACE,CAAC,KAAK;QACN,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EACpD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc,CAAC,iBAAiB;gBACtC,KAAK,EACH,WAAW,CAAC,KAAK,EAAE,wBAAwB,CAAC;oBAC3C,KAAK,CAAC,sBAAkC;aAC5C;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAiC;IAEjC,MAAM,MAAM,GAAG,UAAU,EAAE,OAAO,EAAE,IAAI,CACtC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAC9B,CAAC;IAEzC,OAAO,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,sCAAsC,GAG/C;IACF,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QAChD,IAAI,EAAE,cAAc,CAAC,iBAAiB;QACtC,SAAS,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;KACnE,CAAC;CACH,CAAC","sourcesContent":["import type {\n PermissionSpecificationBuilder,\n EndowmentGetterParams,\n ValidPermissionSpecification,\n PermissionValidatorConstraint,\n PermissionConstraint,\n CaveatSpecificationConstraint,\n Caveat,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport { SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json, NonEmptyArray } from '@metamask/utils';\nimport { assert, hasProperty, isObject, isPlainObject } from '@metamask/utils';\n\nimport { createGenericPermissionValidator } from './caveats';\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.TransactionInsight;\n\ntype TransactionInsightEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: EndowmentGetterParams) => null;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n validator: PermissionValidatorConstraint;\n}>;\n\n/**\n * `endowment:transaction-insight` returns nothing; it is intended to be used as a flag\n * by the extension to detect whether the snap has the capability to show information on the transaction confirmation screen.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the transaction-insight endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n TransactionInsightEndowmentSpecification\n> = (_builderOptions?: unknown) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: [\n SnapCaveatType.TransactionOrigin,\n SnapCaveatType.MaxRequestTime,\n ],\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => null,\n validator: createGenericPermissionValidator([\n { type: SnapCaveatType.TransactionOrigin, optional: true },\n { type: SnapCaveatType.MaxRequestTime, optional: true },\n ]),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nexport const transactionInsightEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\n\n/**\n * Validates the type of the caveat value.\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat value is invalid.\n */\nfunction validateCaveat(caveat: Caveat<string, any>): void {\n if (!hasProperty(caveat, 'value') || !isPlainObject(caveat)) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object.',\n });\n }\n\n const { value } = caveat;\n\n assert(\n typeof value === 'boolean',\n 'Expected caveat value to have type \"boolean\"',\n );\n}\n\n/**\n * Map a raw value from the `initialPermissions` to a caveat specification.\n * Note that this function does not do any validation, that's handled by the\n * PermissionsController when the permission is requested.\n *\n * @param value - The raw value from the `initialPermissions`.\n * @returns The caveat specification.\n */\nexport function getTransactionInsightCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n if (\n !value ||\n !isObject(value) ||\n (isObject(value) && Object.keys(value).length === 0)\n ) {\n return { caveats: null };\n }\n return {\n caveats: [\n {\n type: SnapCaveatType.TransactionOrigin,\n value:\n hasProperty(value, 'allowTransactionOrigin') &&\n (value.allowTransactionOrigin as boolean),\n },\n ],\n };\n}\n\n/**\n * Getter function to get the transaction origin caveat from a permission.\n *\n * This does basic validation of the caveat, but does not validate the type or\n * value of the namespaces object itself, as this is handled by the\n * `PermissionsController` when the permission is requested.\n *\n * @param permission - The permission to get the transaction origin caveat from.\n * @returns The transaction origin, or `null` if the permission does not have a\n * transaction origin caveat.\n */\nexport function getTransactionOriginCaveat(\n permission?: PermissionConstraint,\n): boolean | null {\n const caveat = permission?.caveats?.find(\n (permCaveat) => permCaveat.type === SnapCaveatType.TransactionOrigin,\n ) as Caveat<string, boolean> | undefined;\n\n return caveat?.value ?? null;\n}\n\nexport const transactionInsightCaveatSpecifications: Record<\n SnapCaveatType.TransactionOrigin,\n CaveatSpecificationConstraint\n> = {\n [SnapCaveatType.TransactionOrigin]: Object.freeze({\n type: SnapCaveatType.TransactionOrigin,\n validator: (caveat: Caveat<string, any>) => validateCaveat(caveat),\n }),\n};\n"]}
|
|
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.createWalletSnapPermissionMiddleware = void 0;
|
|
17
18
|
__exportStar(require("./preinstalled-snaps.cjs"), exports);
|
|
19
|
+
var wallet_snap_permission_1 = require("./wallet-snap-permission.cjs");
|
|
20
|
+
Object.defineProperty(exports, "createWalletSnapPermissionMiddleware", { enumerable: true, get: function () { return wallet_snap_permission_1.createWalletSnapPermissionMiddleware; } });
|
|
18
21
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2DAAqC;AACrC,uEAAgF;AAAvE,8IAAA,oCAAoC,OAAA","sourcesContent":["export * from './preinstalled-snaps';\nexport { createWalletSnapPermissionMiddleware } from './wallet-snap-permission';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,yCAAqC"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,yCAAqC;AACrC,OAAO,EAAE,oCAAoC,EAAE,qCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,yCAAqC"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,yCAAqC;AACrC,OAAO,EAAE,oCAAoC,EAAE,qCAAiC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,yCAAqC","sourcesContent":["export * from './preinstalled-snaps';\n"]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,yCAAqC;AACrC,OAAO,EAAE,oCAAoC,EAAE,qCAAiC","sourcesContent":["export * from './preinstalled-snaps';\nexport { createWalletSnapPermissionMiddleware } from './wallet-snap-permission';\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWalletSnapPermissionMiddleware = void 0;
|
|
4
|
+
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
|
+
const restricted_1 = require("../restricted/index.cjs");
|
|
6
|
+
/**
|
|
7
|
+
* Create a middleware that validates `wallet_requestPermissions` calls that
|
|
8
|
+
* include the `wallet_snap` permission.
|
|
9
|
+
*
|
|
10
|
+
* This prevents requesting the `wallet_snap` permission in the same call as
|
|
11
|
+
* other permissions, which could lead to a confusing user experience where
|
|
12
|
+
* multiple permission screens are shown at once, or the other permissions are
|
|
13
|
+
* not displayed properly because the `wallet_snap` permission screen takes
|
|
14
|
+
* precedence.
|
|
15
|
+
*
|
|
16
|
+
* @returns The middleware.
|
|
17
|
+
*/
|
|
18
|
+
function createWalletSnapPermissionMiddleware() {
|
|
19
|
+
return async ({ request, next }) => {
|
|
20
|
+
if (request.method === 'wallet_requestPermissions') {
|
|
21
|
+
const requestedPermissions = request.params?.[0];
|
|
22
|
+
const requestedPermissionsKeys = Object.keys(requestedPermissions ?? {});
|
|
23
|
+
if (requestedPermissionsKeys.length > 1 &&
|
|
24
|
+
requestedPermissionsKeys.includes(restricted_1.WALLET_SNAP_PERMISSION_KEY)) {
|
|
25
|
+
throw rpc_errors_1.rpcErrors.invalidParams('Permission request for `wallet_snap` cannot include other permissions. Please separate your permission requests into multiple calls to `wallet_requestPermissions`.');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return await next();
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
exports.createWalletSnapPermissionMiddleware = createWalletSnapPermissionMiddleware;
|
|
32
|
+
//# sourceMappingURL=wallet-snap-permission.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-snap-permission.cjs","sourceRoot":"","sources":["../../src/middleware/wallet-snap-permission.ts"],"names":[],"mappings":";;;AAIA,qDAAiD;AAGjD,wDAA2D;AAI3D;;;;;;;;;;;GAWG;AACH,SAAgB,oCAAoC;IAGlD,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,2BAA2B,EAAE,CAAC;YACnD,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAEzE,IACE,wBAAwB,CAAC,MAAM,GAAG,CAAC;gBACnC,wBAAwB,CAAC,QAAQ,CAAC,uCAA0B,CAAC,EAC7D,CAAC;gBACD,MAAM,sBAAS,CAAC,aAAa,CAC3B,qKAAqK,CACtK,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC;AApBD,oFAoBC","sourcesContent":["import type {\n JsonRpcCall,\n JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine/v2';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { Json } from '@metamask/utils';\n\nimport { WALLET_SNAP_PERMISSION_KEY } from '../restricted';\n\ntype RequestParams = [Record<string, Json>];\n\n/**\n * Create a middleware that validates `wallet_requestPermissions` calls that\n * include the `wallet_snap` permission.\n *\n * This prevents requesting the `wallet_snap` permission in the same call as\n * other permissions, which could lead to a confusing user experience where\n * multiple permission screens are shown at once, or the other permissions are\n * not displayed properly because the `wallet_snap` permission screen takes\n * precedence.\n *\n * @returns The middleware.\n */\nexport function createWalletSnapPermissionMiddleware(): JsonRpcMiddleware<\n JsonRpcCall<RequestParams>\n> {\n return async ({ request, next }) => {\n if (request.method === 'wallet_requestPermissions') {\n const requestedPermissions = request.params?.[0];\n const requestedPermissionsKeys = Object.keys(requestedPermissions ?? {});\n\n if (\n requestedPermissionsKeys.length > 1 &&\n requestedPermissionsKeys.includes(WALLET_SNAP_PERMISSION_KEY)\n ) {\n throw rpcErrors.invalidParams(\n 'Permission request for `wallet_snap` cannot include other permissions. Please separate your permission requests into multiple calls to `wallet_requestPermissions`.',\n );\n }\n }\n\n return await next();\n };\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JsonRpcCall, JsonRpcMiddleware } from "@metamask/json-rpc-engine/v2";
|
|
2
|
+
import type { Json } from "@metamask/utils";
|
|
3
|
+
type RequestParams = [Record<string, Json>];
|
|
4
|
+
/**
|
|
5
|
+
* Create a middleware that validates `wallet_requestPermissions` calls that
|
|
6
|
+
* include the `wallet_snap` permission.
|
|
7
|
+
*
|
|
8
|
+
* This prevents requesting the `wallet_snap` permission in the same call as
|
|
9
|
+
* other permissions, which could lead to a confusing user experience where
|
|
10
|
+
* multiple permission screens are shown at once, or the other permissions are
|
|
11
|
+
* not displayed properly because the `wallet_snap` permission screen takes
|
|
12
|
+
* precedence.
|
|
13
|
+
*
|
|
14
|
+
* @returns The middleware.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createWalletSnapPermissionMiddleware(): JsonRpcMiddleware<JsonRpcCall<RequestParams>>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=wallet-snap-permission.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-snap-permission.d.cts","sourceRoot":"","sources":["../../src/middleware/wallet-snap-permission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAClB,qCAAqC;AAEtC,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAI5C,KAAK,aAAa,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,oCAAoC,IAAI,iBAAiB,CACvE,WAAW,CAAC,aAAa,CAAC,CAC3B,CAkBA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JsonRpcCall, JsonRpcMiddleware } from "@metamask/json-rpc-engine/v2";
|
|
2
|
+
import type { Json } from "@metamask/utils";
|
|
3
|
+
type RequestParams = [Record<string, Json>];
|
|
4
|
+
/**
|
|
5
|
+
* Create a middleware that validates `wallet_requestPermissions` calls that
|
|
6
|
+
* include the `wallet_snap` permission.
|
|
7
|
+
*
|
|
8
|
+
* This prevents requesting the `wallet_snap` permission in the same call as
|
|
9
|
+
* other permissions, which could lead to a confusing user experience where
|
|
10
|
+
* multiple permission screens are shown at once, or the other permissions are
|
|
11
|
+
* not displayed properly because the `wallet_snap` permission screen takes
|
|
12
|
+
* precedence.
|
|
13
|
+
*
|
|
14
|
+
* @returns The middleware.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createWalletSnapPermissionMiddleware(): JsonRpcMiddleware<JsonRpcCall<RequestParams>>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=wallet-snap-permission.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-snap-permission.d.mts","sourceRoot":"","sources":["../../src/middleware/wallet-snap-permission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAClB,qCAAqC;AAEtC,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAI5C,KAAK,aAAa,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,wBAAgB,oCAAoC,IAAI,iBAAiB,CACvE,WAAW,CAAC,aAAa,CAAC,CAC3B,CAkBA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { rpcErrors } from "@metamask/rpc-errors";
|
|
2
|
+
import { WALLET_SNAP_PERMISSION_KEY } from "../restricted/index.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* Create a middleware that validates `wallet_requestPermissions` calls that
|
|
5
|
+
* include the `wallet_snap` permission.
|
|
6
|
+
*
|
|
7
|
+
* This prevents requesting the `wallet_snap` permission in the same call as
|
|
8
|
+
* other permissions, which could lead to a confusing user experience where
|
|
9
|
+
* multiple permission screens are shown at once, or the other permissions are
|
|
10
|
+
* not displayed properly because the `wallet_snap` permission screen takes
|
|
11
|
+
* precedence.
|
|
12
|
+
*
|
|
13
|
+
* @returns The middleware.
|
|
14
|
+
*/
|
|
15
|
+
export function createWalletSnapPermissionMiddleware() {
|
|
16
|
+
return async ({ request, next }) => {
|
|
17
|
+
if (request.method === 'wallet_requestPermissions') {
|
|
18
|
+
const requestedPermissions = request.params?.[0];
|
|
19
|
+
const requestedPermissionsKeys = Object.keys(requestedPermissions ?? {});
|
|
20
|
+
if (requestedPermissionsKeys.length > 1 &&
|
|
21
|
+
requestedPermissionsKeys.includes(WALLET_SNAP_PERMISSION_KEY)) {
|
|
22
|
+
throw rpcErrors.invalidParams('Permission request for `wallet_snap` cannot include other permissions. Please separate your permission requests into multiple calls to `wallet_requestPermissions`.');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return await next();
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=wallet-snap-permission.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-snap-permission.mjs","sourceRoot":"","sources":["../../src/middleware/wallet-snap-permission.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAGjD,OAAO,EAAE,0BAA0B,EAAE,gCAAsB;AAI3D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oCAAoC;IAGlD,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,IAAI,OAAO,CAAC,MAAM,KAAK,2BAA2B,EAAE,CAAC;YACnD,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAEzE,IACE,wBAAwB,CAAC,MAAM,GAAG,CAAC;gBACnC,wBAAwB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAC7D,CAAC;gBACD,MAAM,SAAS,CAAC,aAAa,CAC3B,qKAAqK,CACtK,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type {\n JsonRpcCall,\n JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine/v2';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { Json } from '@metamask/utils';\n\nimport { WALLET_SNAP_PERMISSION_KEY } from '../restricted';\n\ntype RequestParams = [Record<string, Json>];\n\n/**\n * Create a middleware that validates `wallet_requestPermissions` calls that\n * include the `wallet_snap` permission.\n *\n * This prevents requesting the `wallet_snap` permission in the same call as\n * other permissions, which could lead to a confusing user experience where\n * multiple permission screens are shown at once, or the other permissions are\n * not displayed properly because the `wallet_snap` permission screen takes\n * precedence.\n *\n * @returns The middleware.\n */\nexport function createWalletSnapPermissionMiddleware(): JsonRpcMiddleware<\n JsonRpcCall<RequestParams>\n> {\n return async ({ request, next }) => {\n if (request.method === 'wallet_requestPermissions') {\n const requestedPermissions = request.params?.[0];\n const requestedPermissionsKeys = Object.keys(requestedPermissions ?? {});\n\n if (\n requestedPermissionsKeys.length > 1 &&\n requestedPermissionsKeys.includes(WALLET_SNAP_PERMISSION_KEY)\n ) {\n throw rpcErrors.invalidParams(\n 'Permission request for `wallet_snap` cannot include other permissions. Please separate your permission requests into multiple calls to `wallet_requestPermissions`.',\n );\n }\n }\n\n return await next();\n };\n}\n"]}
|
|
@@ -9,6 +9,26 @@ const hookNames = {
|
|
|
9
9
|
cancelBackgroundEvent: true,
|
|
10
10
|
hasPermission: true,
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Cancel a background event created by
|
|
14
|
+
* [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const id = await snap.request({
|
|
19
|
+
* method: 'snap_scheduleBackgroundEvent',
|
|
20
|
+
* params: {
|
|
21
|
+
* // ...
|
|
22
|
+
* },
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Later, when you want to cancel the background event:
|
|
26
|
+
* snap.request({
|
|
27
|
+
* method: 'snap_cancelBackgroundEvent',
|
|
28
|
+
* params: { id },
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
12
32
|
exports.cancelBackgroundEventHandler = {
|
|
13
33
|
methodNames: [methodName],
|
|
14
34
|
implementation: getCancelBackgroundEventImplementation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.cjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":";;;AAEA,qDAAiE;AAOjE,uDAA4E;AAG5E,wDAA+C;AAG/C,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAEhD,MAAM,SAAS,GAAwD;IACrE,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,IAAI;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.cjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":";;;AAEA,qDAAiE;AAOjE,uDAA4E;AAG5E,wDAA+C;AAG/C,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAEhD,MAAM,SAAS,GAAwD;IACrE,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,4BAA4B,GAAG;IAC1C,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,sCAAsC;IACtD,SAAS;CAKV,CAAC;AAEF,MAAM,sCAAsC,GAAG,IAAA,oBAAM,EAAC;IACpD,EAAE,EAAE,IAAA,oBAAM,GAAE;CACb,CAAC,CAAC;AAOH;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,sCAAsC,CACnD,GAAoD,EACpD,GAAwD,EACxD,KAAc,EACd,GAA6B,EAC7B,EAAE,qBAAqB,EAAE,aAAa,EAAoC;IAE1E,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC,aAAa,CAAC,2BAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC;QAE/B,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n CancelBackgroundEventParams,\n CancelBackgroundEventResult,\n} from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, string } from '@metamask/superstruct';\nimport { type PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_cancelBackgroundEvent';\n\nconst hookNames: MethodHooksObject<CancelBackgroundEventMethodHooks> = {\n cancelBackgroundEvent: true,\n hasPermission: true,\n};\n\nexport type CancelBackgroundEventMethodHooks = {\n cancelBackgroundEvent: (id: string) => void;\n hasPermission: (permissionName: string) => boolean;\n};\n\n/**\n * Cancel a background event created by\n * [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).\n *\n * @example\n * ```ts\n * const id = await snap.request({\n * method: 'snap_scheduleBackgroundEvent',\n * params: {\n * // ...\n * },\n * });\n *\n * // Later, when you want to cancel the background event:\n * snap.request({\n * method: 'snap_cancelBackgroundEvent',\n * params: { id },\n * });\n * ```\n */\nexport const cancelBackgroundEventHandler = {\n methodNames: [methodName] as const,\n implementation: getCancelBackgroundEventImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n CancelBackgroundEventMethodHooks,\n CancelBackgroundEventParameters,\n CancelBackgroundEventResult\n>;\n\nconst CancelBackgroundEventsParametersStruct = object({\n id: string(),\n});\n\nexport type CancelBackgroundEventParameters = InferMatching<\n typeof CancelBackgroundEventsParametersStruct,\n CancelBackgroundEventParams\n>;\n\n/**\n * The `snap_cancelBackgroundEvent` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.cancelBackgroundEvent - The function to cancel a background event.\n * @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.\n * @returns Nothing.\n */\nasync function getCancelBackgroundEventImplementation(\n req: JsonRpcRequest<CancelBackgroundEventParameters>,\n res: PendingJsonRpcResponse<CancelBackgroundEventResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { cancelBackgroundEvent, hasPermission }: CancelBackgroundEventMethodHooks,\n): Promise<void> {\n const { params } = req;\n\n if (!hasPermission(SnapEndowments.Cronjob)) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id } = validatedParams;\n\n cancelBackgroundEvent(id);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the cancelBackgroundEvent method `params` and returns them cast to the correct type. Throws if validation fails.\n *\n * @param params - The unvalidated params object from the method request.\n * @returns The validated resolveInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): CancelBackgroundEventParameters {\n try {\n return create(params, CancelBackgroundEventsParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
|
|
@@ -1,16 +1,56 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { CancelBackgroundEventParams, CancelBackgroundEventResult } from "@metamask/snaps-sdk";
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { JsonRpcRequest, CancelBackgroundEventParams, CancelBackgroundEventResult } from "@metamask/snaps-sdk";
|
|
3
3
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
|
+
import { type PendingJsonRpcResponse } from "@metamask/utils";
|
|
5
|
+
import type { MethodHooksObject } from "../utils.cjs";
|
|
4
6
|
export type CancelBackgroundEventMethodHooks = {
|
|
5
7
|
cancelBackgroundEvent: (id: string) => void;
|
|
6
8
|
hasPermission: (permissionName: string) => boolean;
|
|
7
9
|
};
|
|
8
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Cancel a background event created by
|
|
12
|
+
* [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const id = await snap.request({
|
|
17
|
+
* method: 'snap_scheduleBackgroundEvent',
|
|
18
|
+
* params: {
|
|
19
|
+
* // ...
|
|
20
|
+
* },
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Later, when you want to cancel the background event:
|
|
24
|
+
* snap.request({
|
|
25
|
+
* method: 'snap_cancelBackgroundEvent',
|
|
26
|
+
* params: { id },
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const cancelBackgroundEventHandler: {
|
|
31
|
+
methodNames: ["snap_cancelBackgroundEvent"];
|
|
32
|
+
implementation: typeof getCancelBackgroundEventImplementation;
|
|
33
|
+
hookNames: MethodHooksObject<CancelBackgroundEventMethodHooks>;
|
|
34
|
+
};
|
|
9
35
|
declare const CancelBackgroundEventsParametersStruct: import("@metamask/superstruct").Struct<{
|
|
10
36
|
id: string;
|
|
11
37
|
}, {
|
|
12
38
|
id: import("@metamask/superstruct").Struct<string, null>;
|
|
13
39
|
}>;
|
|
14
40
|
export type CancelBackgroundEventParameters = InferMatching<typeof CancelBackgroundEventsParametersStruct, CancelBackgroundEventParams>;
|
|
41
|
+
/**
|
|
42
|
+
* The `snap_cancelBackgroundEvent` method implementation.
|
|
43
|
+
*
|
|
44
|
+
* @param req - The JSON-RPC request object.
|
|
45
|
+
* @param res - The JSON-RPC response object.
|
|
46
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
47
|
+
* function.
|
|
48
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
49
|
+
* @param hooks - The RPC method hooks.
|
|
50
|
+
* @param hooks.cancelBackgroundEvent - The function to cancel a background event.
|
|
51
|
+
* @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.
|
|
52
|
+
* @returns Nothing.
|
|
53
|
+
*/
|
|
54
|
+
declare function getCancelBackgroundEventImplementation(req: JsonRpcRequest<CancelBackgroundEventParameters>, res: PendingJsonRpcResponse<CancelBackgroundEventResult>, _next: unknown, end: JsonRpcEngineEndCallback, { cancelBackgroundEvent, hasPermission }: CancelBackgroundEventMethodHooks): Promise<void>;
|
|
15
55
|
export {};
|
|
16
56
|
//# sourceMappingURL=cancelBackgroundEvent.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.d.cts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.d.cts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC5B,4BAA4B;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAE3D,OAAO,EAAE,KAAK,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AASlD,MAAM,MAAM,gCAAgC,GAAG;IAC7C,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,4BAA4B;;;;CAQxC,CAAC;AAEF,QAAA,MAAM,sCAAsC;;;;EAE1C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,OAAO,sCAAsC,EAC7C,2BAA2B,CAC5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,sCAAsC,CACnD,GAAG,EAAE,cAAc,CAAC,+BAA+B,CAAC,EACpD,GAAG,EAAE,sBAAsB,CAAC,2BAA2B,CAAC,EACxD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,qBAAqB,EAAE,aAAa,EAAE,EAAE,gCAAgC,GACzE,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -1,16 +1,56 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { CancelBackgroundEventParams, CancelBackgroundEventResult } from "@metamask/snaps-sdk";
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { JsonRpcRequest, CancelBackgroundEventParams, CancelBackgroundEventResult } from "@metamask/snaps-sdk";
|
|
3
3
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
|
+
import { type PendingJsonRpcResponse } from "@metamask/utils";
|
|
5
|
+
import type { MethodHooksObject } from "../utils.mjs";
|
|
4
6
|
export type CancelBackgroundEventMethodHooks = {
|
|
5
7
|
cancelBackgroundEvent: (id: string) => void;
|
|
6
8
|
hasPermission: (permissionName: string) => boolean;
|
|
7
9
|
};
|
|
8
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Cancel a background event created by
|
|
12
|
+
* [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const id = await snap.request({
|
|
17
|
+
* method: 'snap_scheduleBackgroundEvent',
|
|
18
|
+
* params: {
|
|
19
|
+
* // ...
|
|
20
|
+
* },
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Later, when you want to cancel the background event:
|
|
24
|
+
* snap.request({
|
|
25
|
+
* method: 'snap_cancelBackgroundEvent',
|
|
26
|
+
* params: { id },
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const cancelBackgroundEventHandler: {
|
|
31
|
+
methodNames: ["snap_cancelBackgroundEvent"];
|
|
32
|
+
implementation: typeof getCancelBackgroundEventImplementation;
|
|
33
|
+
hookNames: MethodHooksObject<CancelBackgroundEventMethodHooks>;
|
|
34
|
+
};
|
|
9
35
|
declare const CancelBackgroundEventsParametersStruct: import("@metamask/superstruct").Struct<{
|
|
10
36
|
id: string;
|
|
11
37
|
}, {
|
|
12
38
|
id: import("@metamask/superstruct").Struct<string, null>;
|
|
13
39
|
}>;
|
|
14
40
|
export type CancelBackgroundEventParameters = InferMatching<typeof CancelBackgroundEventsParametersStruct, CancelBackgroundEventParams>;
|
|
41
|
+
/**
|
|
42
|
+
* The `snap_cancelBackgroundEvent` method implementation.
|
|
43
|
+
*
|
|
44
|
+
* @param req - The JSON-RPC request object.
|
|
45
|
+
* @param res - The JSON-RPC response object.
|
|
46
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
47
|
+
* function.
|
|
48
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
49
|
+
* @param hooks - The RPC method hooks.
|
|
50
|
+
* @param hooks.cancelBackgroundEvent - The function to cancel a background event.
|
|
51
|
+
* @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.
|
|
52
|
+
* @returns Nothing.
|
|
53
|
+
*/
|
|
54
|
+
declare function getCancelBackgroundEventImplementation(req: JsonRpcRequest<CancelBackgroundEventParameters>, res: PendingJsonRpcResponse<CancelBackgroundEventResult>, _next: unknown, end: JsonRpcEngineEndCallback, { cancelBackgroundEvent, hasPermission }: CancelBackgroundEventMethodHooks): Promise<void>;
|
|
15
55
|
export {};
|
|
16
56
|
//# sourceMappingURL=cancelBackgroundEvent.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.d.mts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.d.mts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC5B,4BAA4B;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAE3D,OAAO,EAAE,KAAK,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AASlD,MAAM,MAAM,gCAAgC,GAAG;IAC7C,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;CACpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,4BAA4B;;;;CAQxC,CAAC;AAEF,QAAA,MAAM,sCAAsC;;;;EAE1C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,OAAO,sCAAsC,EAC7C,2BAA2B,CAC5B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,sCAAsC,CACnD,GAAG,EAAE,cAAc,CAAC,+BAA+B,CAAC,EACpD,GAAG,EAAE,sBAAsB,CAAC,2BAA2B,CAAC,EACxD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,qBAAqB,EAAE,aAAa,EAAE,EAAE,gCAAgC,GACzE,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -6,6 +6,26 @@ const hookNames = {
|
|
|
6
6
|
cancelBackgroundEvent: true,
|
|
7
7
|
hasPermission: true,
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Cancel a background event created by
|
|
11
|
+
* [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const id = await snap.request({
|
|
16
|
+
* method: 'snap_scheduleBackgroundEvent',
|
|
17
|
+
* params: {
|
|
18
|
+
* // ...
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Later, when you want to cancel the background event:
|
|
23
|
+
* snap.request({
|
|
24
|
+
* method: 'snap_cancelBackgroundEvent',
|
|
25
|
+
* params: { id },
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
9
29
|
export const cancelBackgroundEventHandler = {
|
|
10
30
|
methodNames: [methodName],
|
|
11
31
|
implementation: getCancelBackgroundEventImplementation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.mjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAOjE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B;AAG5E,OAAO,EAAE,cAAc,EAAE,gCAAsB;AAG/C,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAEhD,MAAM,SAAS,GAAwD;IACrE,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF,MAAM,CAAC,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.mjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAOjE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B;AAG5E,OAAO,EAAE,cAAc,EAAE,gCAAsB;AAG/C,MAAM,UAAU,GAAG,4BAA4B,CAAC;AAEhD,MAAM,SAAS,GAAwD;IACrE,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,sCAAsC;IACtD,SAAS;CAKV,CAAC;AAEF,MAAM,sCAAsC,GAAG,MAAM,CAAC;IACpD,EAAE,EAAE,MAAM,EAAE;CACb,CAAC,CAAC;AAOH;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,sCAAsC,CACnD,GAAoD,EACpD,GAAwD,EACxD,KAAc,EACd,GAA6B,EAC7B,EAAE,qBAAqB,EAAE,aAAa,EAAoC;IAE1E,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC;QAE/B,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n CancelBackgroundEventParams,\n CancelBackgroundEventResult,\n} from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, string } from '@metamask/superstruct';\nimport { type PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_cancelBackgroundEvent';\n\nconst hookNames: MethodHooksObject<CancelBackgroundEventMethodHooks> = {\n cancelBackgroundEvent: true,\n hasPermission: true,\n};\n\nexport type CancelBackgroundEventMethodHooks = {\n cancelBackgroundEvent: (id: string) => void;\n hasPermission: (permissionName: string) => boolean;\n};\n\n/**\n * Cancel a background event created by\n * [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).\n *\n * @example\n * ```ts\n * const id = await snap.request({\n * method: 'snap_scheduleBackgroundEvent',\n * params: {\n * // ...\n * },\n * });\n *\n * // Later, when you want to cancel the background event:\n * snap.request({\n * method: 'snap_cancelBackgroundEvent',\n * params: { id },\n * });\n * ```\n */\nexport const cancelBackgroundEventHandler = {\n methodNames: [methodName] as const,\n implementation: getCancelBackgroundEventImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n CancelBackgroundEventMethodHooks,\n CancelBackgroundEventParameters,\n CancelBackgroundEventResult\n>;\n\nconst CancelBackgroundEventsParametersStruct = object({\n id: string(),\n});\n\nexport type CancelBackgroundEventParameters = InferMatching<\n typeof CancelBackgroundEventsParametersStruct,\n CancelBackgroundEventParams\n>;\n\n/**\n * The `snap_cancelBackgroundEvent` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.cancelBackgroundEvent - The function to cancel a background event.\n * @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.\n * @returns Nothing.\n */\nasync function getCancelBackgroundEventImplementation(\n req: JsonRpcRequest<CancelBackgroundEventParameters>,\n res: PendingJsonRpcResponse<CancelBackgroundEventResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { cancelBackgroundEvent, hasPermission }: CancelBackgroundEventMethodHooks,\n): Promise<void> {\n const { params } = req;\n\n if (!hasPermission(SnapEndowments.Cronjob)) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id } = validatedParams;\n\n cancelBackgroundEvent(id);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the cancelBackgroundEvent method `params` and returns them cast to the correct type. Throws if validation fails.\n *\n * @param params - The unvalidated params object from the method request.\n * @returns The validated resolveInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): CancelBackgroundEventParameters {\n try {\n return create(params, CancelBackgroundEventsParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
|
|
@@ -4,15 +4,26 @@ exports.clearStateHandler = void 0;
|
|
|
4
4
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
5
|
const superstruct_1 = require("@metamask/superstruct");
|
|
6
6
|
const manageState_1 = require("../restricted/manageState.cjs");
|
|
7
|
+
const methodName = 'snap_clearState';
|
|
7
8
|
const hookNames = {
|
|
8
9
|
clearSnapState: true,
|
|
9
10
|
hasPermission: true,
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
+
* Clear the entire state of the Snap.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* await snap.request({
|
|
18
|
+
* method: 'snap_clearState',
|
|
19
|
+
* params: {
|
|
20
|
+
* encrypted: true, // Optional, defaults to true
|
|
21
|
+
* },
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
13
24
|
*/
|
|
14
25
|
exports.clearStateHandler = {
|
|
15
|
-
methodNames: [
|
|
26
|
+
methodNames: [methodName],
|
|
16
27
|
implementation: clearStateImplementation,
|
|
17
28
|
hookNames,
|
|
18
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearState.cjs","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":";;;AAEA,qDAAiE;AAGjE,uDAM+B;AAG/B,+DAA+D;AAG/D,MAAM,SAAS,GAAuC;IACpD,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"clearState.cjs","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":";;;AAEA,qDAAiE;AAGjE,uDAM+B;AAG/B,+DAA+D;AAG/D,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC,MAAM,SAAS,GAAuC;IACpD,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACU,QAAA,iBAAiB,GAAG;IAC/B,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,wBAAwB;IACxC,SAAS;CAKV,CAAC;AAiBF,MAAM,0BAA0B,GAAG,IAAA,oBAAM,EAAC;IACxC,SAAS,EAAE,IAAA,sBAAQ,EAAC,IAAA,qBAAO,GAAE,CAAC;CAC/B,CAAC,CAAC;AAOH;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAA6C,EAC7C,QAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,EAAE,cAAc,EAAE,aAAa,EAAmB;IAElD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC,aAAa,CAAC,gCAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC;QAE7C,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAgB;IAC1C,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { ClearStateParams, ClearStateResult } from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport {\n boolean,\n create,\n object,\n optional,\n StructError,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse, JsonRpcRequest } from '@metamask/utils';\n\nimport { manageStateBuilder } from '../restricted/manageState';\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_clearState';\n\nconst hookNames: MethodHooksObject<ClearStateHooks> = {\n clearSnapState: true,\n hasPermission: true,\n};\n\n/**\n * Clear the entire state of the Snap.\n *\n * @example\n * ```ts\n * await snap.request({\n * method: 'snap_clearState',\n * params: {\n * encrypted: true, // Optional, defaults to true\n * },\n * });\n * ```\n */\nexport const clearStateHandler = {\n methodNames: [methodName] as const,\n implementation: clearStateImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n ClearStateHooks,\n ClearStateParameters,\n ClearStateResult\n>;\n\nexport type ClearStateHooks = {\n /**\n * A function that clears the state of the requesting Snap.\n */\n clearSnapState: (encrypted: boolean) => void;\n\n /**\n * Check if the requesting origin has a given permission.\n *\n * @param permissionName - The name of the permission to check.\n * @returns Whether the origin has the permission.\n */\n hasPermission: (permissionName: string) => boolean;\n};\n\nconst ClearStateParametersStruct = object({\n encrypted: optional(boolean()),\n});\n\nexport type ClearStateParameters = InferMatching<\n typeof ClearStateParametersStruct,\n ClearStateParams\n>;\n\n/**\n * The `snap_clearState` method implementation.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.clearSnapState - A function that clears the state of the\n * requesting Snap.\n * @param hooks.hasPermission - Check whether a given origin has a given\n * permission.\n * @returns Nothing.\n */\nasync function clearStateImplementation(\n request: JsonRpcRequest<ClearStateParameters>,\n response: PendingJsonRpcResponse<ClearStateResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { clearSnapState, hasPermission }: ClearStateHooks,\n): Promise<void> {\n const { params } = request;\n\n if (!hasPermission(manageStateBuilder.targetName)) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n const { encrypted = true } = validatedParams;\n\n clearSnapState(encrypted);\n response.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters of the `snap_clearState` method.\n *\n * @param params - The parameters to validate.\n * @returns The validated parameters.\n */\nfunction getValidatedParams(params?: unknown) {\n try {\n return create(params, ClearStateParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
|
|
@@ -1,10 +1,26 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
2
|
import type { ClearStateParams, ClearStateResult } from "@metamask/snaps-sdk";
|
|
3
3
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
|
+
import type { PendingJsonRpcResponse, JsonRpcRequest } from "@metamask/utils";
|
|
5
|
+
import type { MethodHooksObject } from "../utils.cjs";
|
|
4
6
|
/**
|
|
5
|
-
*
|
|
7
|
+
* Clear the entire state of the Snap.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* await snap.request({
|
|
12
|
+
* method: 'snap_clearState',
|
|
13
|
+
* params: {
|
|
14
|
+
* encrypted: true, // Optional, defaults to true
|
|
15
|
+
* },
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
6
18
|
*/
|
|
7
|
-
export declare const clearStateHandler:
|
|
19
|
+
export declare const clearStateHandler: {
|
|
20
|
+
methodNames: ["snap_clearState"];
|
|
21
|
+
implementation: typeof clearStateImplementation;
|
|
22
|
+
hookNames: MethodHooksObject<ClearStateHooks>;
|
|
23
|
+
};
|
|
8
24
|
export type ClearStateHooks = {
|
|
9
25
|
/**
|
|
10
26
|
* A function that clears the state of the requesting Snap.
|
|
@@ -24,5 +40,21 @@ declare const ClearStateParametersStruct: import("@metamask/superstruct").Struct
|
|
|
24
40
|
encrypted: import("@metamask/superstruct").Struct<boolean | undefined, null>;
|
|
25
41
|
}>;
|
|
26
42
|
export type ClearStateParameters = InferMatching<typeof ClearStateParametersStruct, ClearStateParams>;
|
|
43
|
+
/**
|
|
44
|
+
* The `snap_clearState` method implementation.
|
|
45
|
+
*
|
|
46
|
+
* @param request - The JSON-RPC request object.
|
|
47
|
+
* @param response - The JSON-RPC response object.
|
|
48
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
49
|
+
* function.
|
|
50
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
51
|
+
* @param hooks - The RPC method hooks.
|
|
52
|
+
* @param hooks.clearSnapState - A function that clears the state of the
|
|
53
|
+
* requesting Snap.
|
|
54
|
+
* @param hooks.hasPermission - Check whether a given origin has a given
|
|
55
|
+
* permission.
|
|
56
|
+
* @returns Nothing.
|
|
57
|
+
*/
|
|
58
|
+
declare function clearStateImplementation(request: JsonRpcRequest<ClearStateParameters>, response: PendingJsonRpcResponse<ClearStateResult>, _next: unknown, end: JsonRpcEngineEndCallback, { clearSnapState, hasPermission }: ClearStateHooks): Promise<void>;
|
|
27
59
|
export {};
|
|
28
60
|
//# sourceMappingURL=clearState.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearState.d.cts","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clearState.d.cts","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,4BAA4B;AAC9E,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAQ3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,wBAAwB;AAG9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AASlD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB;;;;CAQ7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7C;;;;;OAKG;IACH,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;CACpD,CAAC;AAEF,QAAA,MAAM,0BAA0B;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,OAAO,0BAA0B,EACjC,gBAAgB,CACjB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,iBAAe,wBAAwB,CACrC,OAAO,EAAE,cAAc,CAAC,oBAAoB,CAAC,EAC7C,QAAQ,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,EAClD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,eAAe,GACjD,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|