@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,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.mjs";
|
|
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.mts","sourceRoot":"","sources":["../../src/permitted/getState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getState.d.mts","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"}
|
|
@@ -3,16 +3,38 @@ import { boolean, create, object, optional, StructError } from "@metamask/supers
|
|
|
3
3
|
import { hasProperty, isObject } from "@metamask/utils";
|
|
4
4
|
import { manageStateBuilder } from "../restricted/manageState.mjs";
|
|
5
5
|
import { FORBIDDEN_KEYS, StateKeyStruct } from "../utils.mjs";
|
|
6
|
+
const methodName = 'snap_getState';
|
|
6
7
|
const hookNames = {
|
|
7
8
|
hasPermission: true,
|
|
8
9
|
getSnapState: true,
|
|
9
10
|
getUnlockPromise: true,
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
+
* Get the state of the Snap, or a specific value within the state. By default,
|
|
14
|
+
* the data is automatically encrypted using a Snap-specific key and
|
|
15
|
+
* automatically decrypted when retrieved. You can set `encrypted` to `false` to
|
|
16
|
+
* use unencrypted storage (available when the client is locked).
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```json name="Manifest"
|
|
20
|
+
* {
|
|
21
|
+
* "initialPermissions": {
|
|
22
|
+
* "snap_manageState": {}
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
* ```ts name="Usage"
|
|
27
|
+
* const state = await snap.request({
|
|
28
|
+
* method: 'snap_getState',
|
|
29
|
+
* params: {
|
|
30
|
+
* key: 'some.nested.value', // Optional, defaults to entire state
|
|
31
|
+
* encrypted: true, // Optional, defaults to `true`
|
|
32
|
+
* },
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
13
35
|
*/
|
|
14
36
|
export const getStateHandler = {
|
|
15
|
-
methodNames: [
|
|
37
|
+
methodNames: [methodName],
|
|
16
38
|
implementation: getStateImplementation,
|
|
17
39
|
hookNames,
|
|
18
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getState.mjs","sourceRoot":"","sources":["../../src/permitted/getState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAGjE,OAAO,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,WAAW,EACZ,8BAA8B;AAM/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB;AAExD,OAAO,EAAE,kBAAkB,EAAE,sCAAkC;AAE/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAiB;AAE1D,MAAM,SAAS,GAAqC;IAClD,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"getState.mjs","sourceRoot":"","sources":["../../src/permitted/getState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAGjE,OAAO,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,WAAW,EACZ,8BAA8B;AAM/B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB;AAExD,OAAO,EAAE,kBAAkB,EAAE,sCAAkC;AAE/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAiB;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;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,sBAAsB;IACtC,SAAS;CAKV,CAAC;AA0BF,MAAM,wBAAwB,GAAG,MAAM,CAAC;IACtC,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC;IAC7B,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,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,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,CAAC,cAAc,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,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAClD,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;QAED,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,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,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,CAAC,aAAa,CAC3B,oDAAoD,CACrD,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,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","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"]}
|
|
@@ -3,15 +3,42 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getWebSocketsHandler = void 0;
|
|
4
4
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
5
|
const endowments_1 = require("../endowments/index.cjs");
|
|
6
|
+
const methodName = 'snap_getWebSockets';
|
|
6
7
|
const hookNames = {
|
|
7
8
|
hasPermission: true,
|
|
8
9
|
getWebSockets: true,
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
+
* Get the connected WebSockets for the Snap.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```json name="Manifest"
|
|
16
|
+
* {
|
|
17
|
+
* "initialPermissions": {
|
|
18
|
+
* "endowment:network-access": {}
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
* ```ts name="Usage"
|
|
23
|
+
* const webSockets = await snap.request({ method: 'snap_getWebSockets' });
|
|
24
|
+
* console.log(webSockets);
|
|
25
|
+
* // Example output:
|
|
26
|
+
* // [
|
|
27
|
+
* // {
|
|
28
|
+
* // id: 'websocket-1',
|
|
29
|
+
* // url: 'wss://example.com/socket',
|
|
30
|
+
* // protocols: ['protocol1', 'protocol2'],
|
|
31
|
+
* // },
|
|
32
|
+
* // {
|
|
33
|
+
* // id: 'websocket-2',
|
|
34
|
+
* // url: 'ws://example.org/endpoint',
|
|
35
|
+
* // protocols: [],
|
|
36
|
+
* // },
|
|
37
|
+
* // ]
|
|
38
|
+
* ```
|
|
12
39
|
*/
|
|
13
40
|
exports.getWebSocketsHandler = {
|
|
14
|
-
methodNames: [
|
|
41
|
+
methodNames: [methodName],
|
|
15
42
|
implementation: getWebSocketsImplementation,
|
|
16
43
|
hookNames,
|
|
17
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWebSockets.cjs","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":";;;AAEA,qDAAsD;AAQtD,wDAA+C;AAG/C,MAAM,SAAS,GAAgD;IAC7D,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF
|
|
1
|
+
{"version":3,"file":"getWebSockets.cjs","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":";;;AAEA,qDAAsD;AAQtD,wDAA+C;AAG/C,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,SAAS,GAAgD;IAC7D,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACU,QAAA,oBAAoB,GAAG;IAClC,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,2BAA2B;IAC3C,SAAS;CAKV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAS,2BAA2B,CAClC,IAAyC,EACzC,GAAgD,EAChD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,aAAa,EAA4B;IAE1D,IAAI,CAAC,aAAa,CAAC,2BAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors } from '@metamask/rpc-errors';\nimport type {\n GetWebSocketsParams,\n GetWebSocketsResult,\n JsonRpcRequest,\n} from '@metamask/snaps-sdk';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_getWebSockets';\n\nconst hookNames: MethodHooksObject<GetWebSocketsMethodHooks> = {\n hasPermission: true,\n getWebSockets: true,\n};\n\nexport type GetWebSocketsMethodHooks = {\n hasPermission: (permissionName: string) => boolean;\n getWebSockets: () => GetWebSocketsResult;\n};\n\n/**\n * Get the connected WebSockets for the Snap.\n *\n * @example\n * ```json name=\"Manifest\"\n * {\n * \"initialPermissions\": {\n * \"endowment:network-access\": {}\n * }\n * }\n * ```\n * ```ts name=\"Usage\"\n * const webSockets = await snap.request({ method: 'snap_getWebSockets' });\n * console.log(webSockets);\n * // Example output:\n * // [\n * // {\n * // id: 'websocket-1',\n * // url: 'wss://example.com/socket',\n * // protocols: ['protocol1', 'protocol2'],\n * // },\n * // {\n * // id: 'websocket-2',\n * // url: 'ws://example.org/endpoint',\n * // protocols: [],\n * // },\n * // ]\n * ```\n */\nexport const getWebSocketsHandler = {\n methodNames: [methodName] as const,\n implementation: getWebSocketsImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetWebSocketsMethodHooks,\n GetWebSocketsParams,\n GetWebSocketsResult\n>;\n\n/**\n * The `snap_getWebSockets` method implementation.\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 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 a snap has the `endowment:network-access` permission.\n * @param hooks.getWebSockets - The function to get the connected WebSockets for the origin.\n * @returns Nothing.\n */\nfunction getWebSocketsImplementation(\n _req: JsonRpcRequest<GetWebSocketsParams>,\n res: PendingJsonRpcResponse<GetWebSocketsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, getWebSockets }: GetWebSocketsMethodHooks,\n): void {\n if (!hasPermission(SnapEndowments.NetworkAccess)) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n res.result = getWebSockets();\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n"]}
|
|
@@ -1,11 +1,57 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { GetWebSocketsParams, GetWebSocketsResult } from "@metamask/snaps-sdk";
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { GetWebSocketsParams, GetWebSocketsResult, JsonRpcRequest } from "@metamask/snaps-sdk";
|
|
3
|
+
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
4
|
+
import type { MethodHooksObject } from "../utils.cjs";
|
|
3
5
|
export type GetWebSocketsMethodHooks = {
|
|
4
6
|
hasPermission: (permissionName: string) => boolean;
|
|
5
7
|
getWebSockets: () => GetWebSocketsResult;
|
|
6
8
|
};
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
10
|
+
* Get the connected WebSockets for the Snap.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```json name="Manifest"
|
|
14
|
+
* {
|
|
15
|
+
* "initialPermissions": {
|
|
16
|
+
* "endowment:network-access": {}
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
* ```ts name="Usage"
|
|
21
|
+
* const webSockets = await snap.request({ method: 'snap_getWebSockets' });
|
|
22
|
+
* console.log(webSockets);
|
|
23
|
+
* // Example output:
|
|
24
|
+
* // [
|
|
25
|
+
* // {
|
|
26
|
+
* // id: 'websocket-1',
|
|
27
|
+
* // url: 'wss://example.com/socket',
|
|
28
|
+
* // protocols: ['protocol1', 'protocol2'],
|
|
29
|
+
* // },
|
|
30
|
+
* // {
|
|
31
|
+
* // id: 'websocket-2',
|
|
32
|
+
* // url: 'ws://example.org/endpoint',
|
|
33
|
+
* // protocols: [],
|
|
34
|
+
* // },
|
|
35
|
+
* // ]
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
|
-
export declare const getWebSocketsHandler:
|
|
38
|
+
export declare const getWebSocketsHandler: {
|
|
39
|
+
methodNames: ["snap_getWebSockets"];
|
|
40
|
+
implementation: typeof getWebSocketsImplementation;
|
|
41
|
+
hookNames: MethodHooksObject<GetWebSocketsMethodHooks>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The `snap_getWebSockets` method implementation.
|
|
45
|
+
*
|
|
46
|
+
* @param _req - The JSON-RPC request object. Not used by this function.
|
|
47
|
+
* @param res - The JSON-RPC response object.
|
|
48
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this function.
|
|
49
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
50
|
+
* @param hooks - The RPC method hooks.
|
|
51
|
+
* @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.
|
|
52
|
+
* @param hooks.getWebSockets - The function to get the connected WebSockets for the origin.
|
|
53
|
+
* @returns Nothing.
|
|
54
|
+
*/
|
|
55
|
+
declare function getWebSocketsImplementation(_req: JsonRpcRequest<GetWebSocketsParams>, res: PendingJsonRpcResponse<GetWebSocketsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { hasPermission, getWebSockets }: GetWebSocketsMethodHooks): void;
|
|
56
|
+
export {};
|
|
11
57
|
//# sourceMappingURL=getWebSockets.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWebSockets.d.cts","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getWebSockets.d.cts","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,4BAA4B;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AASlD,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,aAAa,EAAE,MAAM,mBAAmB,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,oBAAoB;;;;CAQhC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,iBAAS,2BAA2B,CAClC,IAAI,EAAE,cAAc,CAAC,mBAAmB,CAAC,EACzC,GAAG,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,EAChD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,wBAAwB,GACzD,IAAI,CAYN"}
|
|
@@ -1,11 +1,57 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { GetWebSocketsParams, GetWebSocketsResult } from "@metamask/snaps-sdk";
|
|
1
|
+
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { GetWebSocketsParams, GetWebSocketsResult, JsonRpcRequest } from "@metamask/snaps-sdk";
|
|
3
|
+
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
4
|
+
import type { MethodHooksObject } from "../utils.mjs";
|
|
3
5
|
export type GetWebSocketsMethodHooks = {
|
|
4
6
|
hasPermission: (permissionName: string) => boolean;
|
|
5
7
|
getWebSockets: () => GetWebSocketsResult;
|
|
6
8
|
};
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
10
|
+
* Get the connected WebSockets for the Snap.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```json name="Manifest"
|
|
14
|
+
* {
|
|
15
|
+
* "initialPermissions": {
|
|
16
|
+
* "endowment:network-access": {}
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
* ```ts name="Usage"
|
|
21
|
+
* const webSockets = await snap.request({ method: 'snap_getWebSockets' });
|
|
22
|
+
* console.log(webSockets);
|
|
23
|
+
* // Example output:
|
|
24
|
+
* // [
|
|
25
|
+
* // {
|
|
26
|
+
* // id: 'websocket-1',
|
|
27
|
+
* // url: 'wss://example.com/socket',
|
|
28
|
+
* // protocols: ['protocol1', 'protocol2'],
|
|
29
|
+
* // },
|
|
30
|
+
* // {
|
|
31
|
+
* // id: 'websocket-2',
|
|
32
|
+
* // url: 'ws://example.org/endpoint',
|
|
33
|
+
* // protocols: [],
|
|
34
|
+
* // },
|
|
35
|
+
* // ]
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
|
-
export declare const getWebSocketsHandler:
|
|
38
|
+
export declare const getWebSocketsHandler: {
|
|
39
|
+
methodNames: ["snap_getWebSockets"];
|
|
40
|
+
implementation: typeof getWebSocketsImplementation;
|
|
41
|
+
hookNames: MethodHooksObject<GetWebSocketsMethodHooks>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The `snap_getWebSockets` method implementation.
|
|
45
|
+
*
|
|
46
|
+
* @param _req - The JSON-RPC request object. Not used by this function.
|
|
47
|
+
* @param res - The JSON-RPC response object.
|
|
48
|
+
* @param _next - The `json-rpc-engine` "next" callback. Not used by this function.
|
|
49
|
+
* @param end - The `json-rpc-engine` "end" callback.
|
|
50
|
+
* @param hooks - The RPC method hooks.
|
|
51
|
+
* @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.
|
|
52
|
+
* @param hooks.getWebSockets - The function to get the connected WebSockets for the origin.
|
|
53
|
+
* @returns Nothing.
|
|
54
|
+
*/
|
|
55
|
+
declare function getWebSocketsImplementation(_req: JsonRpcRequest<GetWebSocketsParams>, res: PendingJsonRpcResponse<GetWebSocketsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { hasPermission, getWebSockets }: GetWebSocketsMethodHooks): void;
|
|
56
|
+
export {};
|
|
11
57
|
//# sourceMappingURL=getWebSockets.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWebSockets.d.mts","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getWebSockets.d.mts","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,4BAA4B;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AASlD,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,aAAa,EAAE,MAAM,mBAAmB,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,oBAAoB;;;;CAQhC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,iBAAS,2BAA2B,CAClC,IAAI,EAAE,cAAc,CAAC,mBAAmB,CAAC,EACzC,GAAG,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,EAChD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,wBAAwB,GACzD,IAAI,CAYN"}
|
|
@@ -1,14 +1,41 @@
|
|
|
1
1
|
import { providerErrors } from "@metamask/rpc-errors";
|
|
2
2
|
import { SnapEndowments } from "../endowments/index.mjs";
|
|
3
|
+
const methodName = 'snap_getWebSockets';
|
|
3
4
|
const hookNames = {
|
|
4
5
|
hasPermission: true,
|
|
5
6
|
getWebSockets: true,
|
|
6
7
|
};
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* Get the connected WebSockets for the Snap.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```json name="Manifest"
|
|
13
|
+
* {
|
|
14
|
+
* "initialPermissions": {
|
|
15
|
+
* "endowment:network-access": {}
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
* ```ts name="Usage"
|
|
20
|
+
* const webSockets = await snap.request({ method: 'snap_getWebSockets' });
|
|
21
|
+
* console.log(webSockets);
|
|
22
|
+
* // Example output:
|
|
23
|
+
* // [
|
|
24
|
+
* // {
|
|
25
|
+
* // id: 'websocket-1',
|
|
26
|
+
* // url: 'wss://example.com/socket',
|
|
27
|
+
* // protocols: ['protocol1', 'protocol2'],
|
|
28
|
+
* // },
|
|
29
|
+
* // {
|
|
30
|
+
* // id: 'websocket-2',
|
|
31
|
+
* // url: 'ws://example.org/endpoint',
|
|
32
|
+
* // protocols: [],
|
|
33
|
+
* // },
|
|
34
|
+
* // ]
|
|
35
|
+
* ```
|
|
9
36
|
*/
|
|
10
37
|
export const getWebSocketsHandler = {
|
|
11
|
-
methodNames: [
|
|
38
|
+
methodNames: [methodName],
|
|
12
39
|
implementation: getWebSocketsImplementation,
|
|
13
40
|
hookNames,
|
|
14
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWebSockets.mjs","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,6BAA6B;AAQtD,OAAO,EAAE,cAAc,EAAE,gCAAsB;AAG/C,MAAM,SAAS,GAAgD;IAC7D,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF
|
|
1
|
+
{"version":3,"file":"getWebSockets.mjs","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,6BAA6B;AAQtD,OAAO,EAAE,cAAc,EAAE,gCAAsB;AAG/C,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,SAAS,GAAgD;IAC7D,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,2BAA2B;IAC3C,SAAS;CAKV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAS,2BAA2B,CAClC,IAAyC,EACzC,GAAgD,EAChD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,aAAa,EAA4B;IAE1D,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors } from '@metamask/rpc-errors';\nimport type {\n GetWebSocketsParams,\n GetWebSocketsResult,\n JsonRpcRequest,\n} from '@metamask/snaps-sdk';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_getWebSockets';\n\nconst hookNames: MethodHooksObject<GetWebSocketsMethodHooks> = {\n hasPermission: true,\n getWebSockets: true,\n};\n\nexport type GetWebSocketsMethodHooks = {\n hasPermission: (permissionName: string) => boolean;\n getWebSockets: () => GetWebSocketsResult;\n};\n\n/**\n * Get the connected WebSockets for the Snap.\n *\n * @example\n * ```json name=\"Manifest\"\n * {\n * \"initialPermissions\": {\n * \"endowment:network-access\": {}\n * }\n * }\n * ```\n * ```ts name=\"Usage\"\n * const webSockets = await snap.request({ method: 'snap_getWebSockets' });\n * console.log(webSockets);\n * // Example output:\n * // [\n * // {\n * // id: 'websocket-1',\n * // url: 'wss://example.com/socket',\n * // protocols: ['protocol1', 'protocol2'],\n * // },\n * // {\n * // id: 'websocket-2',\n * // url: 'ws://example.org/endpoint',\n * // protocols: [],\n * // },\n * // ]\n * ```\n */\nexport const getWebSocketsHandler = {\n methodNames: [methodName] as const,\n implementation: getWebSocketsImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetWebSocketsMethodHooks,\n GetWebSocketsParams,\n GetWebSocketsResult\n>;\n\n/**\n * The `snap_getWebSockets` method implementation.\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 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 a snap has the `endowment:network-access` permission.\n * @param hooks.getWebSockets - The function to get the connected WebSockets for the origin.\n * @returns Nothing.\n */\nfunction getWebSocketsImplementation(\n _req: JsonRpcRequest<GetWebSocketsParams>,\n res: PendingJsonRpcResponse<GetWebSocketsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, getWebSockets }: GetWebSocketsMethodHooks,\n): void {\n if (!hasPermission(SnapEndowments.NetworkAccess)) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n res.result = getWebSockets();\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n"]}
|
|
@@ -6,11 +6,9 @@ const clearState_1 = require("./clearState.cjs");
|
|
|
6
6
|
const closeWebSocket_1 = require("./closeWebSocket.cjs");
|
|
7
7
|
const createInterface_1 = require("./createInterface.cjs");
|
|
8
8
|
const endTrace_1 = require("./endTrace.cjs");
|
|
9
|
-
const experimentalProviderRequest_1 = require("./experimentalProviderRequest.cjs");
|
|
10
9
|
const getAllSnaps_1 = require("./getAllSnaps.cjs");
|
|
11
10
|
const getBackgroundEvents_1 = require("./getBackgroundEvents.cjs");
|
|
12
11
|
const getClientStatus_1 = require("./getClientStatus.cjs");
|
|
13
|
-
const getCurrencyRate_1 = require("./getCurrencyRate.cjs");
|
|
14
12
|
const getFile_1 = require("./getFile.cjs");
|
|
15
13
|
const getInterfaceContext_1 = require("./getInterfaceContext.cjs");
|
|
16
14
|
const getInterfaceState_1 = require("./getInterfaceState.cjs");
|
|
@@ -47,8 +45,6 @@ exports.methodHandlers = {
|
|
|
47
45
|
snap_getInterfaceContext: getInterfaceContext_1.getInterfaceContextHandler,
|
|
48
46
|
snap_listEntropySources: listEntropySources_1.listEntropySourcesHandler,
|
|
49
47
|
snap_resolveInterface: resolveInterface_1.resolveInterfaceHandler,
|
|
50
|
-
snap_getCurrencyRate: getCurrencyRate_1.getCurrencyRateHandler,
|
|
51
|
-
snap_experimentalProviderRequest: experimentalProviderRequest_1.providerRequestHandler,
|
|
52
48
|
snap_scheduleBackgroundEvent: scheduleBackgroundEvent_1.scheduleBackgroundEventHandler,
|
|
53
49
|
snap_cancelBackgroundEvent: cancelBackgroundEvent_1.cancelBackgroundEventHandler,
|
|
54
50
|
snap_getBackgroundEvents: getBackgroundEvents_1.getBackgroundEventsHandler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.cjs","sourceRoot":"","sources":["../../src/permitted/handlers.ts"],"names":[],"mappings":";;;AAAA,uEAAuE;AACvE,iDAAiD;AACjD,yDAAyD;AACzD,2DAA2D;AAC3D,6CAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"handlers.cjs","sourceRoot":"","sources":["../../src/permitted/handlers.ts"],"names":[],"mappings":";;;AAAA,uEAAuE;AACvE,iDAAiD;AACjD,yDAAyD;AACzD,2DAA2D;AAC3D,6CAA6C;AAC7C,mDAAmD;AACnD,mEAAmE;AACnE,2DAA2D;AAC3D,2CAA2C;AAC3C,mEAAmE;AACnE,+DAA+D;AAC/D,6CAA6C;AAC7C,6CAA6C;AAC7C,uDAAuD;AACvD,uDAAuD;AACvD,2DAA2D;AAC3D,iEAAiE;AACjE,uDAAuD;AACvD,qDAAqD;AACrD,6DAA6D;AAC7D,2EAA2E;AAC3E,qEAAqE;AACrE,6CAA6C;AAC7C,iDAAiD;AACjD,iDAAiD;AACjD,iDAAiD;AACjD,2DAA2D;AAE3D,yDAAyD;AAC5C,QAAA,cAAc,GAAG;IAC5B,kBAAkB,EAAE,gCAAkB;IACtC,eAAe,EAAE,0BAAe;IAChC,mBAAmB,EAAE,kCAAmB;IACxC,iBAAiB,EAAE,wCAAsB;IACzC,oBAAoB,EAAE,oCAAoB;IAC1C,eAAe,EAAE,8BAAiB;IAClC,oBAAoB,EAAE,wCAAsB;IAC5C,YAAY,EAAE,wBAAc;IAC5B,aAAa,EAAE,0BAAe;IAC9B,oBAAoB,EAAE,wCAAsB;IAC5C,oBAAoB,EAAE,wCAAsB;IAC5C,sBAAsB,EAAE,4CAAwB;IAChD,wBAAwB,EAAE,gDAA0B;IACpD,uBAAuB,EAAE,8CAAyB;IAClD,qBAAqB,EAAE,0CAAuB;IAC9C,4BAA4B,EAAE,wDAA8B;IAC5D,0BAA0B,EAAE,oDAA4B;IACxD,wBAAwB,EAAE,gDAA0B;IACpD,aAAa,EAAE,0BAAe;IAC9B,eAAe,EAAE,8BAAiB;IAClC,eAAe,EAAE,8BAAiB;IAClC,kBAAkB,EAAE,oCAAoB;IACxC,mBAAmB,EAAE,sCAAqB;IAC1C,yBAAyB,EAAE,kDAA2B;IACtD,kBAAkB,EAAE,oCAAoB;IACxC,eAAe,EAAE,8BAAiB;IAClC,aAAa,EAAE,0BAAe;CAC/B,CAAC;AACF,wDAAwD;AAE3C,QAAA,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC","sourcesContent":["import { cancelBackgroundEventHandler } from './cancelBackgroundEvent';\nimport { clearStateHandler } from './clearState';\nimport { closeWebSocketHandler } from './closeWebSocket';\nimport { createInterfaceHandler } from './createInterface';\nimport { endTraceHandler } from './endTrace';\nimport { getAllSnapsHandler } from './getAllSnaps';\nimport { getBackgroundEventsHandler } from './getBackgroundEvents';\nimport { getClientStatusHandler } from './getClientStatus';\nimport { getFileHandler } from './getFile';\nimport { getInterfaceContextHandler } from './getInterfaceContext';\nimport { getInterfaceStateHandler } from './getInterfaceState';\nimport { getSnapsHandler } from './getSnaps';\nimport { getStateHandler } from './getState';\nimport { getWebSocketsHandler } from './getWebSockets';\nimport { invokeKeyringHandler } from './invokeKeyring';\nimport { invokeSnapSugarHandler } from './invokeSnapSugar';\nimport { listEntropySourcesHandler } from './listEntropySources';\nimport { openWebSocketHandler } from './openWebSocket';\nimport { requestSnapsHandler } from './requestSnaps';\nimport { resolveInterfaceHandler } from './resolveInterface';\nimport { scheduleBackgroundEventHandler } from './scheduleBackgroundEvent';\nimport { sendWebSocketMessageHandler } from './sendWebSocketMessage';\nimport { setStateHandler } from './setState';\nimport { startTraceHandler } from './startTrace';\nimport { trackErrorHandler } from './trackError';\nimport { trackEventHandler } from './trackEvent';\nimport { updateInterfaceHandler } from './updateInterface';\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport const methodHandlers = {\n wallet_getAllSnaps: getAllSnapsHandler,\n wallet_getSnaps: getSnapsHandler,\n wallet_requestSnaps: requestSnapsHandler,\n wallet_invokeSnap: invokeSnapSugarHandler,\n wallet_invokeKeyring: invokeKeyringHandler,\n snap_clearState: clearStateHandler,\n snap_getClientStatus: getClientStatusHandler,\n snap_getFile: getFileHandler,\n snap_getState: getStateHandler,\n snap_createInterface: createInterfaceHandler,\n snap_updateInterface: updateInterfaceHandler,\n snap_getInterfaceState: getInterfaceStateHandler,\n snap_getInterfaceContext: getInterfaceContextHandler,\n snap_listEntropySources: listEntropySourcesHandler,\n snap_resolveInterface: resolveInterfaceHandler,\n snap_scheduleBackgroundEvent: scheduleBackgroundEventHandler,\n snap_cancelBackgroundEvent: cancelBackgroundEventHandler,\n snap_getBackgroundEvents: getBackgroundEventsHandler,\n snap_setState: setStateHandler,\n snap_trackError: trackErrorHandler,\n snap_trackEvent: trackEventHandler,\n snap_openWebSocket: openWebSocketHandler,\n snap_closeWebSocket: closeWebSocketHandler,\n snap_sendWebSocketMessage: sendWebSocketMessageHandler,\n snap_getWebSockets: getWebSocketsHandler,\n snap_startTrace: startTraceHandler,\n snap_endTrace: endTraceHandler,\n};\n/* eslint-enable @typescript-eslint/naming-convention */\n\nexport const handlers = Object.values(methodHandlers);\n"]}
|