@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
|
@@ -1,19 +1,59 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { GetInterfaceStateParams, GetInterfaceStateResult, InterfaceState } from "@metamask/snaps-sdk";
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { GetInterfaceStateParams, GetInterfaceStateResult, InterfaceState, JsonRpcRequest } 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 GetInterfaceStateMethodHooks = {
|
|
7
|
+
/**
|
|
8
|
+
* @param permissionName - The name of the permission to check.
|
|
9
|
+
* @returns Whether the Snap has the permission.
|
|
10
|
+
*/
|
|
11
|
+
hasPermission: (permissionName: string) => boolean;
|
|
5
12
|
/**
|
|
6
13
|
* @param id - The interface ID.
|
|
7
14
|
* @returns The interface state.
|
|
8
15
|
*/
|
|
9
16
|
getInterfaceState: (id: string) => InterfaceState;
|
|
10
17
|
};
|
|
11
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Get the form state of an [interface](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/)
|
|
20
|
+
* created by [`snap_createInterface`](https://docs.metamask.io/snaps/reference/snaps-api/snap_createinterface).
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* const state = await snap.request({
|
|
25
|
+
* method: 'snap_getInterfaceState',
|
|
26
|
+
* params: {
|
|
27
|
+
* id: interfaceId,
|
|
28
|
+
* },
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare const getInterfaceStateHandler: {
|
|
33
|
+
methodNames: ["snap_getInterfaceState"];
|
|
34
|
+
implementation: typeof getGetInterfaceStateImplementation;
|
|
35
|
+
hookNames: MethodHooksObject<GetInterfaceStateMethodHooks>;
|
|
36
|
+
};
|
|
12
37
|
declare const GetInterfaceStateParametersStruct: import("@metamask/superstruct").Struct<{
|
|
13
38
|
id: string;
|
|
14
39
|
}, {
|
|
15
40
|
id: import("@metamask/superstruct").Struct<string, null>;
|
|
16
41
|
}>;
|
|
17
42
|
export type GetInterfaceStateParameters = InferMatching<typeof GetInterfaceStateParametersStruct, GetInterfaceStateParams>;
|
|
43
|
+
/**
|
|
44
|
+
* The `snap_getInterfaceState` method implementation.
|
|
45
|
+
*
|
|
46
|
+
* @param req - The JSON-RPC request object.
|
|
47
|
+
* @param res - 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.hasPermission - The function to check if the Snap has a given
|
|
53
|
+
* permission.
|
|
54
|
+
* @param hooks.getInterfaceState - The function to get the interface state.
|
|
55
|
+
* @returns Nothing.
|
|
56
|
+
*/
|
|
57
|
+
declare function getGetInterfaceStateImplementation(req: JsonRpcRequest<GetInterfaceStateParameters>, res: PendingJsonRpcResponse<GetInterfaceStateResult>, _next: unknown, end: JsonRpcEngineEndCallback, { hasPermission, getInterfaceState }: GetInterfaceStateMethodHooks): void;
|
|
18
58
|
export {};
|
|
19
59
|
//# sourceMappingURL=getInterfaceState.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInterfaceState.d.cts","sourceRoot":"","sources":["../../src/permitted/getInterfaceState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getInterfaceState.d.cts","sourceRoot":"","sources":["../../src/permitted/getInterfaceState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACf,4BAA4B;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAUlD,MAAM,MAAM,4BAA4B,GAAG;IACzC;;;OAGG;IACH,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IAEnD;;;OAGG;IACH,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB;;;;CAQpC,CAAC;AAEF,QAAA,MAAM,iCAAiC;;;;EAErC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,aAAa,CACrD,OAAO,iCAAiC,EACxC,uBAAuB,CACxB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,kCAAkC,CACzC,GAAG,EAAE,cAAc,CAAC,2BAA2B,CAAC,EAChD,GAAG,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,EACpD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,4BAA4B,GACjE,IAAI,CAsBN"}
|
|
@@ -1,19 +1,59 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { GetInterfaceStateParams, GetInterfaceStateResult, InterfaceState } from "@metamask/snaps-sdk";
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { GetInterfaceStateParams, GetInterfaceStateResult, InterfaceState, JsonRpcRequest } 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 GetInterfaceStateMethodHooks = {
|
|
7
|
+
/**
|
|
8
|
+
* @param permissionName - The name of the permission to check.
|
|
9
|
+
* @returns Whether the Snap has the permission.
|
|
10
|
+
*/
|
|
11
|
+
hasPermission: (permissionName: string) => boolean;
|
|
5
12
|
/**
|
|
6
13
|
* @param id - The interface ID.
|
|
7
14
|
* @returns The interface state.
|
|
8
15
|
*/
|
|
9
16
|
getInterfaceState: (id: string) => InterfaceState;
|
|
10
17
|
};
|
|
11
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Get the form state of an [interface](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/)
|
|
20
|
+
* created by [`snap_createInterface`](https://docs.metamask.io/snaps/reference/snaps-api/snap_createinterface).
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* const state = await snap.request({
|
|
25
|
+
* method: 'snap_getInterfaceState',
|
|
26
|
+
* params: {
|
|
27
|
+
* id: interfaceId,
|
|
28
|
+
* },
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare const getInterfaceStateHandler: {
|
|
33
|
+
methodNames: ["snap_getInterfaceState"];
|
|
34
|
+
implementation: typeof getGetInterfaceStateImplementation;
|
|
35
|
+
hookNames: MethodHooksObject<GetInterfaceStateMethodHooks>;
|
|
36
|
+
};
|
|
12
37
|
declare const GetInterfaceStateParametersStruct: import("@metamask/superstruct").Struct<{
|
|
13
38
|
id: string;
|
|
14
39
|
}, {
|
|
15
40
|
id: import("@metamask/superstruct").Struct<string, null>;
|
|
16
41
|
}>;
|
|
17
42
|
export type GetInterfaceStateParameters = InferMatching<typeof GetInterfaceStateParametersStruct, GetInterfaceStateParams>;
|
|
43
|
+
/**
|
|
44
|
+
* The `snap_getInterfaceState` method implementation.
|
|
45
|
+
*
|
|
46
|
+
* @param req - The JSON-RPC request object.
|
|
47
|
+
* @param res - 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.hasPermission - The function to check if the Snap has a given
|
|
53
|
+
* permission.
|
|
54
|
+
* @param hooks.getInterfaceState - The function to get the interface state.
|
|
55
|
+
* @returns Nothing.
|
|
56
|
+
*/
|
|
57
|
+
declare function getGetInterfaceStateImplementation(req: JsonRpcRequest<GetInterfaceStateParameters>, res: PendingJsonRpcResponse<GetInterfaceStateResult>, _next: unknown, end: JsonRpcEngineEndCallback, { hasPermission, getInterfaceState }: GetInterfaceStateMethodHooks): void;
|
|
18
58
|
export {};
|
|
19
59
|
//# sourceMappingURL=getInterfaceState.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInterfaceState.d.mts","sourceRoot":"","sources":["../../src/permitted/getInterfaceState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getInterfaceState.d.mts","sourceRoot":"","sources":["../../src/permitted/getInterfaceState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACf,4BAA4B;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAUlD,MAAM,MAAM,4BAA4B,GAAG;IACzC;;;OAGG;IACH,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IAEnD;;;OAGG;IACH,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,cAAc,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB;;;;CAQpC,CAAC;AAEF,QAAA,MAAM,iCAAiC;;;;EAErC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,aAAa,CACrD,OAAO,iCAAiC,EACxC,uBAAuB,CACxB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,kCAAkC,CACzC,GAAG,EAAE,cAAc,CAAC,2BAA2B,CAAC,EAChD,GAAG,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,EACpD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,4BAA4B,GACjE,IAAI,CAsBN"}
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
import { rpcErrors } from "@metamask/rpc-errors";
|
|
1
|
+
import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
|
|
2
2
|
import { StructError, create, object, string } from "@metamask/superstruct";
|
|
3
|
+
import { UI_PERMISSIONS } from "../utils.mjs";
|
|
4
|
+
const methodName = 'snap_getInterfaceState';
|
|
3
5
|
const hookNames = {
|
|
6
|
+
hasPermission: true,
|
|
4
7
|
getInterfaceState: true,
|
|
5
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Get the form state of an [interface](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/)
|
|
11
|
+
* created by [`snap_createInterface`](https://docs.metamask.io/snaps/reference/snaps-api/snap_createinterface).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const state = await snap.request({
|
|
16
|
+
* method: 'snap_getInterfaceState',
|
|
17
|
+
* params: {
|
|
18
|
+
* id: interfaceId,
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
6
23
|
export const getInterfaceStateHandler = {
|
|
7
|
-
methodNames: [
|
|
24
|
+
methodNames: [methodName],
|
|
8
25
|
implementation: getGetInterfaceStateImplementation,
|
|
9
26
|
hookNames,
|
|
10
27
|
};
|
|
@@ -20,10 +37,17 @@ const GetInterfaceStateParametersStruct = object({
|
|
|
20
37
|
* function.
|
|
21
38
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
22
39
|
* @param hooks - The RPC method hooks.
|
|
40
|
+
* @param hooks.hasPermission - The function to check if the Snap has a given
|
|
41
|
+
* permission.
|
|
23
42
|
* @param hooks.getInterfaceState - The function to get the interface state.
|
|
24
|
-
* @returns
|
|
43
|
+
* @returns Nothing.
|
|
25
44
|
*/
|
|
26
|
-
function getGetInterfaceStateImplementation(req, res, _next, end, { getInterfaceState }) {
|
|
45
|
+
function getGetInterfaceStateImplementation(req, res, _next, end, { hasPermission, getInterfaceState }) {
|
|
46
|
+
if (!UI_PERMISSIONS.some(hasPermission)) {
|
|
47
|
+
return end(providerErrors.unauthorized({
|
|
48
|
+
message: `This method can only be used if the Snap has one of the following permissions: ${UI_PERMISSIONS.join(', ')}.`,
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
27
51
|
const { params } = req;
|
|
28
52
|
try {
|
|
29
53
|
const validatedParams = getValidatedParams(params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getInterfaceState.mjs","sourceRoot":"","sources":["../../src/permitted/getInterfaceState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;
|
|
1
|
+
{"version":3,"file":"getInterfaceState.mjs","sourceRoot":"","sources":["../../src/permitted/getInterfaceState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAQjE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B;AAI5E,OAAO,EAAE,cAAc,EAAE,qBAAiB;AAE1C,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,SAAS,GAAoD;IACjE,aAAa,EAAE,IAAI;IACnB,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAgBF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,kCAAkC;IAClD,SAAS;CAKV,CAAC;AAEF,MAAM,iCAAiC,GAAG,MAAM,CAAC;IAC/C,EAAE,EAAE,MAAM,EAAE;CACb,CAAC,CAAC;AAOH;;;;;;;;;;;;;GAaG;AACH,SAAS,kCAAkC,CACzC,GAAgD,EAChD,GAAoD,EACpD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,iBAAiB,EAAgC;IAElE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,OAAO,GAAG,CACR,cAAc,CAAC,YAAY,CAAC;YAC1B,OAAO,EAAE,kFAAkF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACxH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC;QAE/B,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;IAC3D,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 GetInterfaceStateParams,\n GetInterfaceStateResult,\n InterfaceState,\n JsonRpcRequest,\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 type { MethodHooksObject } from '../utils';\nimport { UI_PERMISSIONS } from '../utils';\n\nconst methodName = 'snap_getInterfaceState';\n\nconst hookNames: MethodHooksObject<GetInterfaceStateMethodHooks> = {\n hasPermission: true,\n getInterfaceState: true,\n};\n\nexport type GetInterfaceStateMethodHooks = {\n /**\n * @param permissionName - The name of the permission to check.\n * @returns Whether the Snap has the permission.\n */\n hasPermission: (permissionName: string) => boolean;\n\n /**\n * @param id - The interface ID.\n * @returns The interface state.\n */\n getInterfaceState: (id: string) => InterfaceState;\n};\n\n/**\n * Get the form state of an [interface](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/)\n * created by [`snap_createInterface`](https://docs.metamask.io/snaps/reference/snaps-api/snap_createinterface).\n *\n * @example\n * ```ts\n * const state = await snap.request({\n * method: 'snap_getInterfaceState',\n * params: {\n * id: interfaceId,\n * },\n * });\n * ```\n */\nexport const getInterfaceStateHandler = {\n methodNames: [methodName] as const,\n implementation: getGetInterfaceStateImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetInterfaceStateMethodHooks,\n GetInterfaceStateParameters,\n GetInterfaceStateResult\n>;\n\nconst GetInterfaceStateParametersStruct = object({\n id: string(),\n});\n\nexport type GetInterfaceStateParameters = InferMatching<\n typeof GetInterfaceStateParametersStruct,\n GetInterfaceStateParams\n>;\n\n/**\n * The `snap_getInterfaceState` 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.hasPermission - The function to check if the Snap has a given\n * permission.\n * @param hooks.getInterfaceState - The function to get the interface state.\n * @returns Nothing.\n */\nfunction getGetInterfaceStateImplementation(\n req: JsonRpcRequest<GetInterfaceStateParameters>,\n res: PendingJsonRpcResponse<GetInterfaceStateResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, getInterfaceState }: GetInterfaceStateMethodHooks,\n): void {\n if (!UI_PERMISSIONS.some(hasPermission)) {\n return end(\n providerErrors.unauthorized({\n message: `This method can only be used if the Snap has one of the following permissions: ${UI_PERMISSIONS.join(', ')}.`,\n }),\n );\n }\n\n const { params } = req;\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id } = validatedParams;\n\n res.result = getInterfaceState(id);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the getInterfaceState method `params` and returns them cast to the correct\n * type. Throws if validation fails.\n *\n * @param params - The unvalidated params object from the method request.\n * @returns The validated getInterfaceState method parameter object.\n */\nfunction getValidatedParams(params: unknown): GetInterfaceStateParameters {\n try {\n return create(params, GetInterfaceStateParametersStruct);\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,14 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getSnapsHandler = void 0;
|
|
4
|
+
const methodName = 'wallet_getSnaps';
|
|
4
5
|
const hookNames = {
|
|
5
6
|
getSnaps: true,
|
|
6
7
|
};
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* Get permitted and installed Snaps for the requesting origin.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const snaps = await snap.request({
|
|
14
|
+
* method: 'wallet_getSnaps',
|
|
15
|
+
* });
|
|
16
|
+
* console.log(snaps);
|
|
17
|
+
* // {
|
|
18
|
+
* // 'npm:example-snap': {
|
|
19
|
+
* // id: 'npm:example-snap',
|
|
20
|
+
* // version: '1.0.0',
|
|
21
|
+
* // initialPermissions: { ... },
|
|
22
|
+
* // blocked: false,
|
|
23
|
+
* // enabled: true,
|
|
24
|
+
* // },
|
|
25
|
+
* // ...,
|
|
26
|
+
* // }
|
|
27
|
+
* ```
|
|
9
28
|
*/
|
|
10
29
|
exports.getSnapsHandler = {
|
|
11
|
-
methodNames: [
|
|
30
|
+
methodNames: [methodName],
|
|
12
31
|
implementation: getSnapsImplementation,
|
|
13
32
|
hookNames,
|
|
14
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSnaps.cjs","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":";;;AAOA,MAAM,SAAS,GAAqC;IAClD,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"getSnaps.cjs","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":";;;AAOA,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC,MAAM,SAAS,GAAqC;IAClD,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACU,QAAA,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,sBAAsB;IACtC,SAAS;CAKV,CAAC;AASF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,sBAAsB,CACnC,IAAa,EACb,GAA2C,EAC3C,KAAc,EACd,GAA6B,EAC7B,EAAE,QAAQ,EAAiB;IAE3B,0CAA0C;IAC1C,GAAG,CAAC,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC9B,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport type { GetSnapsResult } from '@metamask/snaps-sdk';\nimport type { JsonRpcParams, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'wallet_getSnaps';\n\nconst hookNames: MethodHooksObject<GetSnapsHooks> = {\n getSnaps: true,\n};\n\n/**\n * Get permitted and installed Snaps for the requesting origin.\n *\n * @example\n * ```ts\n * const snaps = await snap.request({\n * method: 'wallet_getSnaps',\n * });\n * console.log(snaps);\n * // {\n * // 'npm:example-snap': {\n * // id: 'npm:example-snap',\n * // version: '1.0.0',\n * // initialPermissions: { ... },\n * // blocked: false,\n * // enabled: true,\n * // },\n * // ...,\n * // }\n * ```\n */\nexport const getSnapsHandler = {\n methodNames: [methodName] as const,\n implementation: getSnapsImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetSnapsHooks,\n JsonRpcParams,\n GetSnapsResult\n>;\n\nexport type GetSnapsHooks = {\n /**\n * @returns The permitted and installed snaps for the requesting origin.\n */\n getSnaps: () => Promise<GetSnapsResult>;\n};\n\n/**\n * The `wallet_getSnaps` method implementation.\n * Fetches available snaps for the requesting origin and adds them to the JSON-RPC response.\n *\n * @param _req - The JSON-RPC request object. Not used by this function.\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.getSnaps - A function that returns the snaps available for the requesting origin.\n * @returns Nothing.\n */\nasync function getSnapsImplementation(\n _req: unknown,\n res: PendingJsonRpcResponse<GetSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getSnaps }: GetSnapsHooks,\n): Promise<void> {\n // getSnaps is already bound to the origin\n res.result = await getSnaps();\n return end();\n}\n"]}
|
|
@@ -1,14 +1,52 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
2
|
import type { GetSnapsResult } from "@metamask/snaps-sdk";
|
|
3
|
-
import type {
|
|
3
|
+
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
4
|
+
import type { MethodHooksObject } from "../utils.cjs";
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
+
* Get permitted and installed Snaps for the requesting origin.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const snaps = await snap.request({
|
|
11
|
+
* method: 'wallet_getSnaps',
|
|
12
|
+
* });
|
|
13
|
+
* console.log(snaps);
|
|
14
|
+
* // {
|
|
15
|
+
* // 'npm:example-snap': {
|
|
16
|
+
* // id: 'npm:example-snap',
|
|
17
|
+
* // version: '1.0.0',
|
|
18
|
+
* // initialPermissions: { ... },
|
|
19
|
+
* // blocked: false,
|
|
20
|
+
* // enabled: true,
|
|
21
|
+
* // },
|
|
22
|
+
* // ...,
|
|
23
|
+
* // }
|
|
24
|
+
* ```
|
|
6
25
|
*/
|
|
7
|
-
export declare const getSnapsHandler:
|
|
26
|
+
export declare const getSnapsHandler: {
|
|
27
|
+
methodNames: ["wallet_getSnaps"];
|
|
28
|
+
implementation: typeof getSnapsImplementation;
|
|
29
|
+
hookNames: MethodHooksObject<GetSnapsHooks>;
|
|
30
|
+
};
|
|
8
31
|
export type GetSnapsHooks = {
|
|
9
32
|
/**
|
|
10
33
|
* @returns The permitted and installed snaps for the requesting origin.
|
|
11
34
|
*/
|
|
12
35
|
getSnaps: () => Promise<GetSnapsResult>;
|
|
13
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* The `wallet_getSnaps` method implementation.
|
|
39
|
+
* Fetches available snaps for the requesting origin and adds them to the JSON-RPC response.
|
|
40
|
+
*
|
|
41
|
+
* @param _req - The JSON-RPC request object. Not used by this function.
|
|
42
|
+
* @param res - The JSON-RPC response object.
|
|
43
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
44
|
+
* function.
|
|
45
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
46
|
+
* @param hooks - The RPC method hooks.
|
|
47
|
+
* @param hooks.getSnaps - A function that returns the snaps available for the requesting origin.
|
|
48
|
+
* @returns Nothing.
|
|
49
|
+
*/
|
|
50
|
+
declare function getSnapsImplementation(_req: unknown, res: PendingJsonRpcResponse<GetSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getSnaps }: GetSnapsHooks): Promise<void>;
|
|
51
|
+
export {};
|
|
14
52
|
//# sourceMappingURL=getSnaps.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSnaps.d.cts","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSnaps.d.cts","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B;AAC1D,OAAO,KAAK,EAAiB,sBAAsB,EAAE,wBAAwB;AAE7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAQlD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe;;;;CAQ3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,sBAAsB,CACnC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAC3C,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,QAAQ,EAAE,EAAE,aAAa,GAC1B,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -1,14 +1,52 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
2
|
import type { GetSnapsResult } from "@metamask/snaps-sdk";
|
|
3
|
-
import type {
|
|
3
|
+
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
4
|
+
import type { MethodHooksObject } from "../utils.mjs";
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
+
* Get permitted and installed Snaps for the requesting origin.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const snaps = await snap.request({
|
|
11
|
+
* method: 'wallet_getSnaps',
|
|
12
|
+
* });
|
|
13
|
+
* console.log(snaps);
|
|
14
|
+
* // {
|
|
15
|
+
* // 'npm:example-snap': {
|
|
16
|
+
* // id: 'npm:example-snap',
|
|
17
|
+
* // version: '1.0.0',
|
|
18
|
+
* // initialPermissions: { ... },
|
|
19
|
+
* // blocked: false,
|
|
20
|
+
* // enabled: true,
|
|
21
|
+
* // },
|
|
22
|
+
* // ...,
|
|
23
|
+
* // }
|
|
24
|
+
* ```
|
|
6
25
|
*/
|
|
7
|
-
export declare const getSnapsHandler:
|
|
26
|
+
export declare const getSnapsHandler: {
|
|
27
|
+
methodNames: ["wallet_getSnaps"];
|
|
28
|
+
implementation: typeof getSnapsImplementation;
|
|
29
|
+
hookNames: MethodHooksObject<GetSnapsHooks>;
|
|
30
|
+
};
|
|
8
31
|
export type GetSnapsHooks = {
|
|
9
32
|
/**
|
|
10
33
|
* @returns The permitted and installed snaps for the requesting origin.
|
|
11
34
|
*/
|
|
12
35
|
getSnaps: () => Promise<GetSnapsResult>;
|
|
13
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* The `wallet_getSnaps` method implementation.
|
|
39
|
+
* Fetches available snaps for the requesting origin and adds them to the JSON-RPC response.
|
|
40
|
+
*
|
|
41
|
+
* @param _req - The JSON-RPC request object. Not used by this function.
|
|
42
|
+
* @param res - The JSON-RPC response object.
|
|
43
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
44
|
+
* function.
|
|
45
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
46
|
+
* @param hooks - The RPC method hooks.
|
|
47
|
+
* @param hooks.getSnaps - A function that returns the snaps available for the requesting origin.
|
|
48
|
+
* @returns Nothing.
|
|
49
|
+
*/
|
|
50
|
+
declare function getSnapsImplementation(_req: unknown, res: PendingJsonRpcResponse<GetSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getSnaps }: GetSnapsHooks): Promise<void>;
|
|
51
|
+
export {};
|
|
14
52
|
//# sourceMappingURL=getSnaps.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSnaps.d.mts","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSnaps.d.mts","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B;AAC1D,OAAO,KAAK,EAAiB,sBAAsB,EAAE,wBAAwB;AAE7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAQlD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe;;;;CAQ3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,sBAAsB,CACnC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAC3C,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,QAAQ,EAAE,EAAE,aAAa,GAC1B,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -1,11 +1,30 @@
|
|
|
1
|
+
const methodName = 'wallet_getSnaps';
|
|
1
2
|
const hookNames = {
|
|
2
3
|
getSnaps: true,
|
|
3
4
|
};
|
|
4
5
|
/**
|
|
5
|
-
*
|
|
6
|
+
* Get permitted and installed Snaps for the requesting origin.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const snaps = await snap.request({
|
|
11
|
+
* method: 'wallet_getSnaps',
|
|
12
|
+
* });
|
|
13
|
+
* console.log(snaps);
|
|
14
|
+
* // {
|
|
15
|
+
* // 'npm:example-snap': {
|
|
16
|
+
* // id: 'npm:example-snap',
|
|
17
|
+
* // version: '1.0.0',
|
|
18
|
+
* // initialPermissions: { ... },
|
|
19
|
+
* // blocked: false,
|
|
20
|
+
* // enabled: true,
|
|
21
|
+
* // },
|
|
22
|
+
* // ...,
|
|
23
|
+
* // }
|
|
24
|
+
* ```
|
|
6
25
|
*/
|
|
7
26
|
export const getSnapsHandler = {
|
|
8
|
-
methodNames: [
|
|
27
|
+
methodNames: [methodName],
|
|
9
28
|
implementation: getSnapsImplementation,
|
|
10
29
|
hookNames,
|
|
11
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSnaps.mjs","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":"AAOA,MAAM,SAAS,GAAqC;IAClD,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"getSnaps.mjs","sourceRoot":"","sources":["../../src/permitted/getSnaps.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAErC,MAAM,SAAS,GAAqC;IAClD,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,sBAAsB;IACtC,SAAS;CAKV,CAAC;AASF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,sBAAsB,CACnC,IAAa,EACb,GAA2C,EAC3C,KAAc,EACd,GAA6B,EAC7B,EAAE,QAAQ,EAAiB;IAE3B,0CAA0C;IAC1C,GAAG,CAAC,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC9B,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport type { GetSnapsResult } from '@metamask/snaps-sdk';\nimport type { JsonRpcParams, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'wallet_getSnaps';\n\nconst hookNames: MethodHooksObject<GetSnapsHooks> = {\n getSnaps: true,\n};\n\n/**\n * Get permitted and installed Snaps for the requesting origin.\n *\n * @example\n * ```ts\n * const snaps = await snap.request({\n * method: 'wallet_getSnaps',\n * });\n * console.log(snaps);\n * // {\n * // 'npm:example-snap': {\n * // id: 'npm:example-snap',\n * // version: '1.0.0',\n * // initialPermissions: { ... },\n * // blocked: false,\n * // enabled: true,\n * // },\n * // ...,\n * // }\n * ```\n */\nexport const getSnapsHandler = {\n methodNames: [methodName] as const,\n implementation: getSnapsImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetSnapsHooks,\n JsonRpcParams,\n GetSnapsResult\n>;\n\nexport type GetSnapsHooks = {\n /**\n * @returns The permitted and installed snaps for the requesting origin.\n */\n getSnaps: () => Promise<GetSnapsResult>;\n};\n\n/**\n * The `wallet_getSnaps` method implementation.\n * Fetches available snaps for the requesting origin and adds them to the JSON-RPC response.\n *\n * @param _req - The JSON-RPC request object. Not used by this function.\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.getSnaps - A function that returns the snaps available for the requesting origin.\n * @returns Nothing.\n */\nasync function getSnapsImplementation(\n _req: unknown,\n res: PendingJsonRpcResponse<GetSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getSnaps }: GetSnapsHooks,\n): Promise<void> {\n // getSnaps is already bound to the origin\n res.result = await getSnaps();\n return end();\n}\n"]}
|
|
@@ -6,16 +6,38 @@ const superstruct_1 = require("@metamask/superstruct");
|
|
|
6
6
|
const utils_1 = require("@metamask/utils");
|
|
7
7
|
const manageState_1 = require("../restricted/manageState.cjs");
|
|
8
8
|
const utils_2 = require("../utils.cjs");
|
|
9
|
+
const methodName = 'snap_getState';
|
|
9
10
|
const hookNames = {
|
|
10
11
|
hasPermission: true,
|
|
11
12
|
getSnapState: true,
|
|
12
13
|
getUnlockPromise: true,
|
|
13
14
|
};
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
+
* Get the state of the Snap, or a specific value within the state. By default,
|
|
17
|
+
* the data is automatically encrypted using a Snap-specific key and
|
|
18
|
+
* automatically decrypted when retrieved. You can set `encrypted` to `false` to
|
|
19
|
+
* use unencrypted storage (available when the client is locked).
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```json name="Manifest"
|
|
23
|
+
* {
|
|
24
|
+
* "initialPermissions": {
|
|
25
|
+
* "snap_manageState": {}
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
* ```ts name="Usage"
|
|
30
|
+
* const state = await snap.request({
|
|
31
|
+
* method: 'snap_getState',
|
|
32
|
+
* params: {
|
|
33
|
+
* key: 'some.nested.value', // Optional, defaults to entire state
|
|
34
|
+
* encrypted: true, // Optional, defaults to `true`
|
|
35
|
+
* },
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
16
38
|
*/
|
|
17
39
|
exports.getStateHandler = {
|
|
18
|
-
methodNames: [
|
|
40
|
+
methodNames: [methodName],
|
|
19
41
|
implementation: getStateImplementation,
|
|
20
42
|
hookNames,
|
|
21
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getState.cjs","sourceRoot":"","sources":["../../src/permitted/getState.ts"],"names":[],"mappings":";;;AAEA,qDAAiE;AAGjE,uDAM+B;AAM/B,2CAAwD;AAExD,+DAA+D;AAE/D,wCAA0D;AAE1D,MAAM,SAAS,GAAqC;IAClD,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"getState.cjs","sourceRoot":"","sources":["../../src/permitted/getState.ts"],"names":[],"mappings":";;;AAEA,qDAAiE;AAGjE,uDAM+B;AAM/B,2CAAwD;AAExD,+DAA+D;AAE/D,wCAA0D;AAE1D,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,MAAM,SAAS,GAAqC;IAClD,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,sBAAsB;IACtC,SAAS;CAKV,CAAC;AA0BF,MAAM,wBAAwB,GAAG,IAAA,oBAAM,EAAC;IACtC,GAAG,EAAE,IAAA,sBAAQ,EAAC,sBAAc,CAAC;IAC7B,SAAS,EAAE,IAAA,sBAAQ,EAAC,IAAA,qBAAO,GAAE,CAAC;CAC/B,CAAC,CAAC;AAOH;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAA2C;AAC3C,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,sBAAsB;AACtB,4EAA4E;AAC5E,QAAgD,EAChD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAiB;IAEhE,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,GAAG,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC;QAElD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,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,wBAAwB,CAAC,CAAC;IAClD,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;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,GAAG,CACjB,KAAkC,EAClC,GAAwB;IAExB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,MAAM,GAAS,KAAK,CAAC;IAEzB,uEAAuE;IACvE,4DAA4D;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,sBAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,sBAAS,CAAC,aAAa,CAC3B,oDAAoD,CACrD,CAAC;QACJ,CAAC;QAED,IAAI,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAlCD,kBAkCC","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 { GetStateParams, GetStateResult } 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 {\n PendingJsonRpcResponse,\n Json,\n JsonRpcRequest,\n} from '@metamask/utils';\nimport { hasProperty, isObject } from '@metamask/utils';\n\nimport { manageStateBuilder } from '../restricted/manageState';\nimport type { MethodHooksObject } from '../utils';\nimport { FORBIDDEN_KEYS, StateKeyStruct } from '../utils';\n\nconst methodName = 'snap_getState';\n\nconst hookNames: MethodHooksObject<GetStateHooks> = {\n hasPermission: true,\n getSnapState: true,\n getUnlockPromise: true,\n};\n\n/**\n * Get the state of the Snap, or a specific value within the state. By default,\n * the data is automatically encrypted using a Snap-specific key and\n * automatically decrypted when retrieved. You can set `encrypted` to `false` to\n * use unencrypted storage (available when the client is locked).\n *\n * @example\n * ```json name=\"Manifest\"\n * {\n * \"initialPermissions\": {\n * \"snap_manageState\": {}\n * }\n * }\n * ```\n * ```ts name=\"Usage\"\n * const state = await snap.request({\n * method: 'snap_getState',\n * params: {\n * key: 'some.nested.value', // Optional, defaults to entire state\n * encrypted: true, // Optional, defaults to `true`\n * },\n * });\n * ```\n */\nexport const getStateHandler = {\n methodNames: [methodName] as const,\n implementation: getStateImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetStateHooks,\n GetStateParameters,\n GetStateResult\n>;\n\nexport type GetStateHooks = {\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 /**\n * Get the state of the requesting Snap.\n *\n * @returns The current state of the Snap.\n */\n getSnapState: (encrypted: boolean) => Promise<Record<string, Json>>;\n\n /**\n * Wait for the extension to be unlocked.\n *\n * @returns A promise that resolves once the extension is unlocked.\n */\n getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;\n};\n\nconst GetStateParametersStruct = object({\n key: optional(StateKeyStruct),\n encrypted: optional(boolean()),\n});\n\nexport type GetStateParameters = InferMatching<\n typeof GetStateParametersStruct,\n GetStateParams\n>;\n\n/**\n * The `snap_getState` 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.hasPermission - Check whether a given origin has a given\n * permission.\n * @param hooks.getSnapState - Get the state of the requesting Snap.\n * @param hooks.getUnlockPromise - Wait for the extension to be unlocked.\n * @returns Nothing.\n */\nasync function getStateImplementation(\n request: JsonRpcRequest<GetStateParameters>,\n // `GetStateResult` is an alias for `Json` (which is the default type argument\n // for `PendingJsonRpcResponse`), but that may not be the case in the future.\n // We use `GetStateResult` here to make it clear that this is the expected\n // type of the result.\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments\n response: PendingJsonRpcResponse<GetStateResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, getSnapState, getUnlockPromise }: GetStateHooks,\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 { key, encrypted = true } = validatedParams;\n\n if (encrypted) {\n await getUnlockPromise(true);\n }\n\n const state = await getSnapState(encrypted);\n response.result = get(state, key);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters of the `snap_getState` 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, GetStateParametersStruct);\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\n/**\n * Get the value of a key in an object. The key may contain Lodash-style path\n * syntax, e.g., `a.b.c` (with the exception of array syntax). If the key does\n * not exist, `null` is returned.\n *\n * This is a simplified version of Lodash's `get` function, but Lodash doesn't\n * seem to be maintained anymore, so we're using our own implementation.\n *\n * @param value - The object to get the key from.\n * @param key - The key to get.\n * @returns The value of the key in the object, or `null` if the key does not\n * exist.\n */\nexport function get(\n value: Record<string, Json> | null,\n key?: string | undefined,\n): Json {\n if (key === undefined) {\n return value;\n }\n\n const keys = key.split('.');\n let result: Json = value;\n\n // Intentionally using a classic for loop here for performance reasons.\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < keys.length; i++) {\n const currentKey = keys[i];\n if (FORBIDDEN_KEYS.includes(currentKey)) {\n throw rpcErrors.invalidParams(\n 'Invalid params: Key contains forbidden characters.',\n );\n }\n\n if (isObject(result)) {\n if (!hasProperty(result, currentKey)) {\n return null;\n }\n\n result = result[currentKey];\n continue;\n }\n\n return null;\n }\n\n return result;\n}\n"]}
|
|
@@ -1,11 +1,37 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
2
|
import type { GetStateParams, GetStateResult } from "@metamask/snaps-sdk";
|
|
3
3
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
|
-
import type { Json } from "@metamask/utils";
|
|
4
|
+
import type { PendingJsonRpcResponse, Json, JsonRpcRequest } from "@metamask/utils";
|
|
5
|
+
import type { MethodHooksObject } from "../utils.cjs";
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* Get the state of the Snap, or a specific value within the state. By default,
|
|
8
|
+
* the data is automatically encrypted using a Snap-specific key and
|
|
9
|
+
* automatically decrypted when retrieved. You can set `encrypted` to `false` to
|
|
10
|
+
* use unencrypted storage (available when the client is locked).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```json name="Manifest"
|
|
14
|
+
* {
|
|
15
|
+
* "initialPermissions": {
|
|
16
|
+
* "snap_manageState": {}
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
* ```ts name="Usage"
|
|
21
|
+
* const state = await snap.request({
|
|
22
|
+
* method: 'snap_getState',
|
|
23
|
+
* params: {
|
|
24
|
+
* key: 'some.nested.value', // Optional, defaults to entire state
|
|
25
|
+
* encrypted: true, // Optional, defaults to `true`
|
|
26
|
+
* },
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
7
29
|
*/
|
|
8
|
-
export declare const getStateHandler:
|
|
30
|
+
export declare const getStateHandler: {
|
|
31
|
+
methodNames: ["snap_getState"];
|
|
32
|
+
implementation: typeof getStateImplementation;
|
|
33
|
+
hookNames: MethodHooksObject<GetStateHooks>;
|
|
34
|
+
};
|
|
9
35
|
export type GetStateHooks = {
|
|
10
36
|
/**
|
|
11
37
|
* Check if the requesting origin has a given permission.
|
|
@@ -35,6 +61,22 @@ declare const GetStateParametersStruct: import("@metamask/superstruct").Struct<{
|
|
|
35
61
|
encrypted: import("@metamask/superstruct").Struct<boolean | undefined, null>;
|
|
36
62
|
}>;
|
|
37
63
|
export type GetStateParameters = InferMatching<typeof GetStateParametersStruct, GetStateParams>;
|
|
64
|
+
/**
|
|
65
|
+
* The `snap_getState` method implementation.
|
|
66
|
+
*
|
|
67
|
+
* @param request - The JSON-RPC request object.
|
|
68
|
+
* @param response - The JSON-RPC response object.
|
|
69
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
70
|
+
* function.
|
|
71
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
72
|
+
* @param hooks - The RPC method hooks.
|
|
73
|
+
* @param hooks.hasPermission - Check whether a given origin has a given
|
|
74
|
+
* permission.
|
|
75
|
+
* @param hooks.getSnapState - Get the state of the requesting Snap.
|
|
76
|
+
* @param hooks.getUnlockPromise - Wait for the extension to be unlocked.
|
|
77
|
+
* @returns Nothing.
|
|
78
|
+
*/
|
|
79
|
+
declare function getStateImplementation(request: JsonRpcRequest<GetStateParameters>, response: PendingJsonRpcResponse<GetStateResult>, _next: unknown, end: JsonRpcEngineEndCallback, { hasPermission, getSnapState, getUnlockPromise }: GetStateHooks): Promise<void>;
|
|
38
80
|
/**
|
|
39
81
|
* Get the value of a key in an object. The key may contain Lodash-style path
|
|
40
82
|
* syntax, e.g., `a.b.c` (with the exception of array syntax). If the key does
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getState.d.cts","sourceRoot":"","sources":["../../src/permitted/getState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getState.d.cts","sourceRoot":"","sources":["../../src/permitted/getState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,4BAA4B;AAC1E,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAQ3D,OAAO,KAAK,EACV,sBAAsB,EACtB,IAAI,EACJ,cAAc,EACf,wBAAwB;AAIzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAWlD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe;;;;CAQ3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;OAKG;IACH,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IAEnD;;;;OAIG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpE;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE,CAAC;AAEF,QAAA,MAAM,wBAAwB;;;;;;EAG5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,OAAO,wBAAwB,EAC/B,cAAc,CACf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,iBAAe,sBAAsB,CACnC,OAAO,EAAE,cAAc,CAAC,kBAAkB,CAAC,EAM3C,QAAQ,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAChD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,aAAa,GAC/D,OAAO,CAAC,IAAI,CAAC,CAsBf;AAuBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,EAClC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GACvB,IAAI,CA+BN"}
|