@metamask/snaps-rpc-methods 15.1.0 → 16.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 +34 -4
- package/dist/endowments/keyring.cjs +2 -5
- package/dist/endowments/keyring.cjs.map +1 -1
- package/dist/endowments/keyring.d.cts +0 -2
- package/dist/endowments/keyring.d.cts.map +1 -1
- package/dist/endowments/keyring.d.mts +0 -2
- package/dist/endowments/keyring.d.mts.map +1 -1
- package/dist/endowments/keyring.mjs +3 -6
- package/dist/endowments/keyring.mjs.map +1 -1
- package/dist/index.cjs +1 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/dist/permissions.cjs +18 -8
- package/dist/permissions.cjs.map +1 -1
- package/dist/permissions.d.cts +3 -2
- package/dist/permissions.d.cts.map +1 -1
- package/dist/permissions.d.mts +3 -2
- package/dist/permissions.d.mts.map +1 -1
- package/dist/permissions.mjs +17 -7
- package/dist/permissions.mjs.map +1 -1
- package/dist/permitted/cancelBackgroundEvent.cjs +10 -14
- package/dist/permitted/cancelBackgroundEvent.cjs.map +1 -1
- package/dist/permitted/cancelBackgroundEvent.d.cts +9 -12
- package/dist/permitted/cancelBackgroundEvent.d.cts.map +1 -1
- package/dist/permitted/cancelBackgroundEvent.d.mts +9 -12
- package/dist/permitted/cancelBackgroundEvent.d.mts.map +1 -1
- package/dist/permitted/cancelBackgroundEvent.mjs +10 -14
- package/dist/permitted/cancelBackgroundEvent.mjs.map +1 -1
- package/dist/permitted/clearState.cjs +10 -16
- package/dist/permitted/clearState.cjs.map +1 -1
- package/dist/permitted/clearState.d.cts +9 -23
- package/dist/permitted/clearState.d.cts.map +1 -1
- package/dist/permitted/clearState.d.mts +9 -23
- package/dist/permitted/clearState.d.mts.map +1 -1
- package/dist/permitted/clearState.mjs +10 -16
- package/dist/permitted/clearState.mjs.map +1 -1
- package/dist/permitted/closeWebSocket.cjs +7 -14
- package/dist/permitted/closeWebSocket.cjs.map +1 -1
- package/dist/permitted/closeWebSocket.d.cts +9 -12
- package/dist/permitted/closeWebSocket.d.cts.map +1 -1
- package/dist/permitted/closeWebSocket.d.mts +9 -12
- package/dist/permitted/closeWebSocket.d.mts.map +1 -1
- package/dist/permitted/closeWebSocket.mjs +7 -14
- package/dist/permitted/closeWebSocket.mjs.map +1 -1
- package/dist/permitted/createInterface.cjs +11 -15
- package/dist/permitted/createInterface.cjs.map +1 -1
- package/dist/permitted/createInterface.d.cts +23 -37
- package/dist/permitted/createInterface.d.cts.map +1 -1
- package/dist/permitted/createInterface.d.mts +23 -37
- package/dist/permitted/createInterface.d.mts.map +1 -1
- package/dist/permitted/createInterface.mjs +11 -15
- package/dist/permitted/createInterface.mjs.map +1 -1
- package/dist/permitted/endTrace.cjs +4 -6
- package/dist/permitted/endTrace.cjs.map +1 -1
- package/dist/permitted/endTrace.d.cts +8 -11
- package/dist/permitted/endTrace.d.cts.map +1 -1
- package/dist/permitted/endTrace.d.mts +8 -11
- package/dist/permitted/endTrace.d.mts.map +1 -1
- package/dist/permitted/endTrace.mjs +4 -6
- package/dist/permitted/endTrace.mjs.map +1 -1
- package/dist/permitted/getAllSnaps.cjs +5 -11
- package/dist/permitted/getAllSnaps.cjs.map +1 -1
- package/dist/permitted/getAllSnaps.d.cts +10 -14
- package/dist/permitted/getAllSnaps.d.cts.map +1 -1
- package/dist/permitted/getAllSnaps.d.mts +10 -14
- package/dist/permitted/getAllSnaps.d.mts.map +1 -1
- package/dist/permitted/getAllSnaps.mjs +5 -11
- package/dist/permitted/getAllSnaps.mjs.map +1 -1
- package/dist/permitted/getBackgroundEvents.cjs +8 -15
- package/dist/permitted/getBackgroundEvents.cjs.map +1 -1
- package/dist/permitted/getBackgroundEvents.d.cts +10 -13
- package/dist/permitted/getBackgroundEvents.d.cts.map +1 -1
- package/dist/permitted/getBackgroundEvents.d.mts +10 -13
- package/dist/permitted/getBackgroundEvents.d.mts.map +1 -1
- package/dist/permitted/getBackgroundEvents.mjs +8 -15
- package/dist/permitted/getBackgroundEvents.mjs.map +1 -1
- package/dist/permitted/getClientStatus.cjs +5 -6
- package/dist/permitted/getClientStatus.cjs.map +1 -1
- package/dist/permitted/getClientStatus.d.cts +17 -18
- package/dist/permitted/getClientStatus.d.cts.map +1 -1
- package/dist/permitted/getClientStatus.d.mts +17 -18
- package/dist/permitted/getClientStatus.d.mts.map +1 -1
- package/dist/permitted/getClientStatus.mjs +5 -6
- package/dist/permitted/getClientStatus.mjs.map +1 -1
- package/dist/permitted/getFile.cjs +7 -11
- package/dist/permitted/getFile.cjs.map +1 -1
- package/dist/permitted/getFile.d.cts +8 -10
- package/dist/permitted/getFile.d.cts.map +1 -1
- package/dist/permitted/getFile.d.mts +8 -10
- package/dist/permitted/getFile.d.mts.map +1 -1
- package/dist/permitted/getFile.mjs +7 -11
- package/dist/permitted/getFile.mjs.map +1 -1
- package/dist/permitted/getInterfaceContext.cjs +12 -15
- package/dist/permitted/getInterfaceContext.cjs.map +1 -1
- package/dist/permitted/getInterfaceContext.d.cts +9 -21
- package/dist/permitted/getInterfaceContext.d.cts.map +1 -1
- package/dist/permitted/getInterfaceContext.d.mts +9 -21
- package/dist/permitted/getInterfaceContext.d.mts.map +1 -1
- package/dist/permitted/getInterfaceContext.mjs +12 -15
- package/dist/permitted/getInterfaceContext.mjs.map +1 -1
- package/dist/permitted/getInterfaceState.cjs +11 -15
- package/dist/permitted/getInterfaceState.cjs.map +1 -1
- package/dist/permitted/getInterfaceState.d.cts +9 -21
- package/dist/permitted/getInterfaceState.d.cts.map +1 -1
- package/dist/permitted/getInterfaceState.d.mts +9 -21
- package/dist/permitted/getInterfaceState.d.mts.map +1 -1
- package/dist/permitted/getInterfaceState.mjs +11 -15
- package/dist/permitted/getInterfaceState.mjs.map +1 -1
- package/dist/permitted/getSnaps.cjs +6 -12
- package/dist/permitted/getSnaps.cjs.map +1 -1
- package/dist/permitted/getSnaps.d.cts +11 -14
- package/dist/permitted/getSnaps.d.cts.map +1 -1
- package/dist/permitted/getSnaps.d.mts +11 -14
- package/dist/permitted/getSnaps.d.mts.map +1 -1
- package/dist/permitted/getSnaps.mjs +6 -12
- package/dist/permitted/getSnaps.mjs.map +1 -1
- package/dist/permitted/getState.cjs +9 -11
- package/dist/permitted/getState.cjs.map +1 -1
- package/dist/permitted/getState.d.cts +17 -28
- package/dist/permitted/getState.d.cts.map +1 -1
- package/dist/permitted/getState.d.mts +17 -28
- package/dist/permitted/getState.d.mts.map +1 -1
- package/dist/permitted/getState.mjs +9 -11
- package/dist/permitted/getState.mjs.map +1 -1
- package/dist/permitted/getWebSockets.cjs +11 -14
- package/dist/permitted/getWebSockets.cjs.map +1 -1
- package/dist/permitted/getWebSockets.d.cts +10 -13
- package/dist/permitted/getWebSockets.d.cts.map +1 -1
- package/dist/permitted/getWebSockets.d.mts +10 -13
- package/dist/permitted/getWebSockets.d.mts.map +1 -1
- package/dist/permitted/getWebSockets.mjs +11 -14
- package/dist/permitted/getWebSockets.mjs.map +1 -1
- package/dist/permitted/index.cjs +0 -1
- package/dist/permitted/index.cjs.map +1 -1
- package/dist/permitted/index.d.cts +29 -25
- package/dist/permitted/index.d.cts.map +1 -1
- package/dist/permitted/index.d.mts +29 -25
- package/dist/permitted/index.d.mts.map +1 -1
- package/dist/permitted/index.mjs +0 -1
- package/dist/permitted/index.mjs.map +1 -1
- package/dist/permitted/invokeKeyring.cjs +12 -13
- package/dist/permitted/invokeKeyring.cjs.map +1 -1
- package/dist/permitted/invokeKeyring.d.cts +17 -16
- package/dist/permitted/invokeKeyring.d.cts.map +1 -1
- package/dist/permitted/invokeKeyring.d.mts +17 -16
- package/dist/permitted/invokeKeyring.d.mts.map +1 -1
- package/dist/permitted/invokeKeyring.mjs +12 -13
- package/dist/permitted/invokeKeyring.mjs.map +1 -1
- package/dist/permitted/invokeSnapSugar.cjs +6 -10
- package/dist/permitted/invokeSnapSugar.cjs.map +1 -1
- package/dist/permitted/invokeSnapSugar.d.cts +9 -12
- package/dist/permitted/invokeSnapSugar.d.cts.map +1 -1
- package/dist/permitted/invokeSnapSugar.d.mts +9 -12
- package/dist/permitted/invokeSnapSugar.d.mts.map +1 -1
- package/dist/permitted/invokeSnapSugar.mjs +6 -10
- package/dist/permitted/invokeSnapSugar.mjs.map +1 -1
- package/dist/permitted/listEntropySources.cjs +28 -12
- package/dist/permitted/listEntropySources.cjs.map +1 -1
- package/dist/permitted/listEntropySources.d.cts +12 -23
- package/dist/permitted/listEntropySources.d.cts.map +1 -1
- package/dist/permitted/listEntropySources.d.mts +12 -23
- package/dist/permitted/listEntropySources.d.mts.map +1 -1
- package/dist/permitted/listEntropySources.mjs +28 -12
- package/dist/permitted/listEntropySources.mjs.map +1 -1
- package/dist/permitted/middleware.cjs +70 -20
- package/dist/permitted/middleware.cjs.map +1 -1
- package/dist/permitted/middleware.d.cts +5 -2
- package/dist/permitted/middleware.d.cts.map +1 -1
- package/dist/permitted/middleware.d.mts +5 -2
- package/dist/permitted/middleware.d.mts.map +1 -1
- package/dist/permitted/middleware.mjs +70 -20
- package/dist/permitted/middleware.mjs.map +1 -1
- package/dist/permitted/openWebSocket.cjs +7 -14
- package/dist/permitted/openWebSocket.cjs.map +1 -1
- package/dist/permitted/openWebSocket.d.cts +9 -12
- package/dist/permitted/openWebSocket.d.cts.map +1 -1
- package/dist/permitted/openWebSocket.d.mts +9 -12
- package/dist/permitted/openWebSocket.d.mts.map +1 -1
- package/dist/permitted/openWebSocket.mjs +7 -14
- package/dist/permitted/openWebSocket.mjs.map +1 -1
- package/dist/permitted/requestSnaps.cjs +14 -19
- package/dist/permitted/requestSnaps.cjs.map +1 -1
- package/dist/permitted/requestSnaps.d.cts +9 -36
- package/dist/permitted/requestSnaps.d.cts.map +1 -1
- package/dist/permitted/requestSnaps.d.mts +9 -36
- package/dist/permitted/requestSnaps.d.mts.map +1 -1
- package/dist/permitted/requestSnaps.mjs +15 -20
- package/dist/permitted/requestSnaps.mjs.map +1 -1
- package/dist/permitted/resolveInterface.cjs +11 -15
- package/dist/permitted/resolveInterface.cjs.map +1 -1
- package/dist/permitted/resolveInterface.d.cts +12 -24
- package/dist/permitted/resolveInterface.d.cts.map +1 -1
- package/dist/permitted/resolveInterface.d.mts +12 -24
- package/dist/permitted/resolveInterface.d.mts.map +1 -1
- package/dist/permitted/resolveInterface.mjs +11 -15
- package/dist/permitted/resolveInterface.mjs.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.cjs +11 -14
- package/dist/permitted/scheduleBackgroundEvent.cjs.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.d.cts +10 -17
- package/dist/permitted/scheduleBackgroundEvent.d.cts.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.d.mts +10 -17
- package/dist/permitted/scheduleBackgroundEvent.d.mts.map +1 -1
- package/dist/permitted/scheduleBackgroundEvent.mjs +11 -14
- package/dist/permitted/scheduleBackgroundEvent.mjs.map +1 -1
- package/dist/permitted/sendWebSocketMessage.cjs +10 -14
- package/dist/permitted/sendWebSocketMessage.cjs.map +1 -1
- package/dist/permitted/sendWebSocketMessage.d.cts +9 -12
- package/dist/permitted/sendWebSocketMessage.d.cts.map +1 -1
- package/dist/permitted/sendWebSocketMessage.d.mts +9 -12
- package/dist/permitted/sendWebSocketMessage.d.mts.map +1 -1
- package/dist/permitted/sendWebSocketMessage.mjs +10 -14
- package/dist/permitted/sendWebSocketMessage.mjs.map +1 -1
- package/dist/permitted/setState.cjs +18 -21
- package/dist/permitted/setState.cjs.map +1 -1
- package/dist/permitted/setState.d.cts +18 -45
- package/dist/permitted/setState.d.cts.map +1 -1
- package/dist/permitted/setState.d.mts +18 -45
- package/dist/permitted/setState.d.mts.map +1 -1
- package/dist/permitted/setState.mjs +18 -21
- package/dist/permitted/setState.mjs.map +1 -1
- package/dist/permitted/startTrace.cjs +4 -6
- package/dist/permitted/startTrace.cjs.map +1 -1
- package/dist/permitted/startTrace.d.cts +8 -11
- package/dist/permitted/startTrace.d.cts.map +1 -1
- package/dist/permitted/startTrace.d.mts +8 -11
- package/dist/permitted/startTrace.d.mts.map +1 -1
- package/dist/permitted/startTrace.mjs +4 -6
- package/dist/permitted/startTrace.mjs.map +1 -1
- package/dist/permitted/trackError.cjs +4 -6
- package/dist/permitted/trackError.cjs.map +1 -1
- package/dist/permitted/trackError.d.cts +8 -11
- package/dist/permitted/trackError.d.cts.map +1 -1
- package/dist/permitted/trackError.d.mts +8 -11
- package/dist/permitted/trackError.d.mts.map +1 -1
- package/dist/permitted/trackError.mjs +4 -6
- package/dist/permitted/trackError.mjs.map +1 -1
- package/dist/permitted/trackEvent.cjs +4 -6
- package/dist/permitted/trackEvent.cjs.map +1 -1
- package/dist/permitted/trackEvent.d.cts +8 -11
- package/dist/permitted/trackEvent.d.cts.map +1 -1
- package/dist/permitted/trackEvent.d.mts +8 -11
- package/dist/permitted/trackEvent.d.mts.map +1 -1
- package/dist/permitted/trackEvent.mjs +4 -6
- package/dist/permitted/trackEvent.mjs.map +1 -1
- package/dist/permitted/updateInterface.cjs +11 -15
- package/dist/permitted/updateInterface.cjs.map +1 -1
- package/dist/permitted/updateInterface.d.cts +9 -22
- package/dist/permitted/updateInterface.d.cts.map +1 -1
- package/dist/permitted/updateInterface.d.mts +9 -22
- package/dist/permitted/updateInterface.d.mts.map +1 -1
- package/dist/permitted/updateInterface.mjs +11 -15
- package/dist/permitted/updateInterface.mjs.map +1 -1
- package/dist/restricted/dialog.cjs +23 -30
- package/dist/restricted/dialog.cjs.map +1 -1
- package/dist/restricted/dialog.d.cts +10 -58
- package/dist/restricted/dialog.d.cts.map +1 -1
- package/dist/restricted/dialog.d.mts +10 -58
- package/dist/restricted/dialog.d.mts.map +1 -1
- package/dist/restricted/dialog.mjs +23 -30
- package/dist/restricted/dialog.mjs.map +1 -1
- package/dist/restricted/getBip32Entropy.cjs +15 -12
- package/dist/restricted/getBip32Entropy.cjs.map +1 -1
- package/dist/restricted/getBip32Entropy.d.cts +11 -24
- package/dist/restricted/getBip32Entropy.d.cts.map +1 -1
- package/dist/restricted/getBip32Entropy.d.mts +11 -24
- package/dist/restricted/getBip32Entropy.d.mts.map +1 -1
- package/dist/restricted/getBip32Entropy.mjs +16 -13
- package/dist/restricted/getBip32Entropy.mjs.map +1 -1
- package/dist/restricted/getBip32PublicKey.cjs +15 -12
- package/dist/restricted/getBip32PublicKey.cjs.map +1 -1
- package/dist/restricted/getBip32PublicKey.d.cts +11 -24
- package/dist/restricted/getBip32PublicKey.d.cts.map +1 -1
- package/dist/restricted/getBip32PublicKey.d.mts +11 -24
- package/dist/restricted/getBip32PublicKey.d.mts.map +1 -1
- package/dist/restricted/getBip32PublicKey.mjs +16 -13
- package/dist/restricted/getBip32PublicKey.mjs.map +1 -1
- package/dist/restricted/getBip44Entropy.cjs +14 -10
- package/dist/restricted/getBip44Entropy.cjs.map +1 -1
- package/dist/restricted/getBip44Entropy.d.cts +11 -15
- package/dist/restricted/getBip44Entropy.d.cts.map +1 -1
- package/dist/restricted/getBip44Entropy.d.mts +11 -15
- package/dist/restricted/getBip44Entropy.d.mts.map +1 -1
- package/dist/restricted/getBip44Entropy.mjs +15 -11
- package/dist/restricted/getBip44Entropy.mjs.map +1 -1
- package/dist/restricted/getEntropy.cjs +10 -10
- package/dist/restricted/getEntropy.cjs.map +1 -1
- package/dist/restricted/getEntropy.d.cts +11 -15
- package/dist/restricted/getEntropy.d.cts.map +1 -1
- package/dist/restricted/getEntropy.d.mts +11 -15
- package/dist/restricted/getEntropy.d.mts.map +1 -1
- package/dist/restricted/getEntropy.mjs +11 -11
- package/dist/restricted/getEntropy.mjs.map +1 -1
- package/dist/restricted/index.cjs.map +1 -1
- package/dist/restricted/index.d.cts +20 -160
- package/dist/restricted/index.d.cts.map +1 -1
- package/dist/restricted/index.d.mts +20 -160
- package/dist/restricted/index.d.mts.map +1 -1
- package/dist/restricted/index.mjs.map +1 -1
- package/dist/restricted/invokeSnap.cjs +11 -12
- package/dist/restricted/invokeSnap.cjs.map +1 -1
- package/dist/restricted/invokeSnap.d.cts +9 -13
- package/dist/restricted/invokeSnap.d.cts.map +1 -1
- package/dist/restricted/invokeSnap.d.mts +9 -13
- package/dist/restricted/invokeSnap.d.mts.map +1 -1
- package/dist/restricted/invokeSnap.mjs +11 -12
- package/dist/restricted/invokeSnap.mjs.map +1 -1
- package/dist/restricted/manageState.cjs +21 -20
- package/dist/restricted/manageState.cjs.map +1 -1
- package/dist/restricted/manageState.d.cts +12 -34
- package/dist/restricted/manageState.d.cts.map +1 -1
- package/dist/restricted/manageState.d.mts +12 -34
- package/dist/restricted/manageState.d.mts.map +1 -1
- package/dist/restricted/manageState.mjs +21 -20
- package/dist/restricted/manageState.mjs.map +1 -1
- package/dist/restricted/notify.cjs +31 -24
- package/dist/restricted/notify.cjs.map +1 -1
- package/dist/restricted/notify.d.cts +16 -25
- package/dist/restricted/notify.d.cts.map +1 -1
- package/dist/restricted/notify.d.mts +16 -25
- package/dist/restricted/notify.d.mts.map +1 -1
- package/dist/restricted/notify.mjs +32 -25
- package/dist/restricted/notify.mjs.map +1 -1
- package/dist/types.cjs +3 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +155 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +155 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +2 -0
- package/dist/types.mjs.map +1 -0
- package/dist/utils.cjs +78 -24
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +21 -13
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.mts +21 -13
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +75 -22
- package/dist/utils.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/permitted/handlers.cjs +0 -63
- package/dist/permitted/handlers.cjs.map +0 -1
- package/dist/permitted/handlers.d.cts +0 -299
- package/dist/permitted/handlers.d.cts.map +0 -1
- package/dist/permitted/handlers.d.mts +0 -299
- package/dist/permitted/handlers.d.mts.map +0 -1
- package/dist/permitted/handlers.mjs +0 -60
- package/dist/permitted/handlers.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.cjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.cjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":";;;AAMA,qDAAiE;AAOjE,uDAA4E;AAG5E,wDAA+C;AAU/C;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,4BAA4B,GAAG;IAC1C,cAAc,EAAE,sCAAsC;IACtD,WAAW,EAAE;QACX,oCAAoC;QACpC,0BAA0B;KAC3B;CAOF,CAAC;AAEF,MAAM,sCAAsC,GAAG,IAAA,oBAAM,EAAC;IACpD,EAAE,EAAE,IAAA,oBAAM,GAAE;CACb,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,sCAAsC,CACnD,GAA8D,EAC9D,GAAwD,EACxD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAAgE;IAEhE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE/B,IACE,CAAC,SAAS,CAAC,IAAI,CACb,oCAAoC,EACpC,MAAM,EACN,2BAAc,CAAC,OAAO,CACvB,EACD,CAAC;QACD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC;QAE/B,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport type { PermissionControllerHasPermissionAction } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n CancelBackgroundEventParams,\n CancelBackgroundEventResult,\n SnapId,\n} from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, string } from '@metamask/superstruct';\nimport { type PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type {\n CronjobControllerCancelAction,\n JsonRpcRequestWithOrigin,\n} from '../types';\n\nexport type CancelBackgroundEventMethodActions =\n | PermissionControllerHasPermissionAction\n | CronjobControllerCancelAction;\n\n/**\n * Cancel a background event created by\n * [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).\n *\n * @example\n * ```ts\n * const id = await snap.request({\n * method: 'snap_scheduleBackgroundEvent',\n * params: {\n * // ...\n * },\n * });\n *\n * // Later, when you want to cancel the background event:\n * snap.request({\n * method: 'snap_cancelBackgroundEvent',\n * params: { id },\n * });\n * ```\n */\nexport const cancelBackgroundEventHandler = {\n implementation: getCancelBackgroundEventImplementation,\n actionNames: [\n 'PermissionController:hasPermission',\n 'CronjobController:cancel',\n ],\n} satisfies MethodHandler<\n never,\n CancelBackgroundEventMethodActions,\n CancelBackgroundEventParameters,\n CancelBackgroundEventResult,\n { origin: SnapId }\n>;\n\nconst CancelBackgroundEventsParametersStruct = object({\n id: string(),\n});\n\nexport type CancelBackgroundEventParameters = InferMatching<\n typeof CancelBackgroundEventsParametersStruct,\n CancelBackgroundEventParams\n>;\n\n/**\n * The `snap_cancelBackgroundEvent` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function getCancelBackgroundEventImplementation(\n req: JsonRpcRequestWithOrigin<CancelBackgroundEventParameters>,\n res: PendingJsonRpcResponse<CancelBackgroundEventResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, CancelBackgroundEventMethodActions>,\n): Promise<void> {\n const { params, origin } = req;\n\n if (\n !messenger.call(\n 'PermissionController:hasPermission',\n origin,\n SnapEndowments.Cronjob,\n )\n ) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id } = validatedParams;\n\n messenger.call('CronjobController:cancel', origin, id);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the cancelBackgroundEvent method `params` and returns them cast to the correct type. Throws if validation fails.\n *\n * @param params - The unvalidated params object from the method request.\n * @returns The validated resolveInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): CancelBackgroundEventParameters {\n try {\n return create(params, CancelBackgroundEventsParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Messenger } from "@metamask/messenger";
|
|
3
|
+
import type { PermissionControllerHasPermissionAction } from "@metamask/permission-controller";
|
|
4
|
+
import type { CancelBackgroundEventParams, CancelBackgroundEventResult } from "@metamask/snaps-sdk";
|
|
3
5
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
6
|
import { type PendingJsonRpcResponse } from "@metamask/utils";
|
|
5
|
-
import type {
|
|
6
|
-
export type
|
|
7
|
-
cancelBackgroundEvent: (id: string) => void;
|
|
8
|
-
hasPermission: (permissionName: string) => boolean;
|
|
9
|
-
};
|
|
7
|
+
import type { CronjobControllerCancelAction, JsonRpcRequestWithOrigin } from "../types.cjs";
|
|
8
|
+
export type CancelBackgroundEventMethodActions = PermissionControllerHasPermissionAction | CronjobControllerCancelAction;
|
|
10
9
|
/**
|
|
11
10
|
* Cancel a background event created by
|
|
12
11
|
* [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).
|
|
@@ -28,9 +27,8 @@ export type CancelBackgroundEventMethodHooks = {
|
|
|
28
27
|
* ```
|
|
29
28
|
*/
|
|
30
29
|
export declare const cancelBackgroundEventHandler: {
|
|
31
|
-
methodNames: ["snap_cancelBackgroundEvent"];
|
|
32
30
|
implementation: typeof getCancelBackgroundEventImplementation;
|
|
33
|
-
|
|
31
|
+
actionNames: ("CronjobController:cancel" | "PermissionController:hasPermission")[];
|
|
34
32
|
};
|
|
35
33
|
declare const CancelBackgroundEventsParametersStruct: import("@metamask/superstruct").Struct<{
|
|
36
34
|
id: string;
|
|
@@ -46,11 +44,10 @@ export type CancelBackgroundEventParameters = InferMatching<typeof CancelBackgro
|
|
|
46
44
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
47
45
|
* function.
|
|
48
46
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
49
|
-
* @param
|
|
50
|
-
* @param
|
|
51
|
-
* @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.
|
|
47
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
48
|
+
* @param messenger - The messenger used to call controller actions.
|
|
52
49
|
* @returns Nothing.
|
|
53
50
|
*/
|
|
54
|
-
declare function getCancelBackgroundEventImplementation(req:
|
|
51
|
+
declare function getCancelBackgroundEventImplementation(req: JsonRpcRequestWithOrigin<CancelBackgroundEventParameters>, res: PendingJsonRpcResponse<CancelBackgroundEventResult>, _next: unknown, end: JsonRpcEngineEndCallback, _hooks: never, messenger: Messenger<string, CancelBackgroundEventMethodActions>): Promise<void>;
|
|
55
52
|
export {};
|
|
56
53
|
//# sourceMappingURL=cancelBackgroundEvent.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.d.cts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.d.cts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,uCAAuC,EAAE,wCAAwC;AAE/F,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAE5B,4BAA4B;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAE3D,OAAO,EAAE,KAAK,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EACV,6BAA6B,EAC7B,wBAAwB,EACzB,qBAAiB;AAElB,MAAM,MAAM,kCAAkC,GAC1C,uCAAuC,GACvC,6BAA6B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,4BAA4B;;;CAYxC,CAAC;AAEF,QAAA,MAAM,sCAAsC;;;;EAE1C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,OAAO,sCAAsC,EAC7C,2BAA2B,CAC5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,iBAAe,sCAAsC,CACnD,GAAG,EAAE,wBAAwB,CAAC,+BAA+B,CAAC,EAC9D,GAAG,EAAE,sBAAsB,CAAC,2BAA2B,CAAC,EACxD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,GAC/D,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Messenger } from "@metamask/messenger";
|
|
3
|
+
import type { PermissionControllerHasPermissionAction } from "@metamask/permission-controller";
|
|
4
|
+
import type { CancelBackgroundEventParams, CancelBackgroundEventResult } from "@metamask/snaps-sdk";
|
|
3
5
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
6
|
import { type PendingJsonRpcResponse } from "@metamask/utils";
|
|
5
|
-
import type {
|
|
6
|
-
export type
|
|
7
|
-
cancelBackgroundEvent: (id: string) => void;
|
|
8
|
-
hasPermission: (permissionName: string) => boolean;
|
|
9
|
-
};
|
|
7
|
+
import type { CronjobControllerCancelAction, JsonRpcRequestWithOrigin } from "../types.mjs";
|
|
8
|
+
export type CancelBackgroundEventMethodActions = PermissionControllerHasPermissionAction | CronjobControllerCancelAction;
|
|
10
9
|
/**
|
|
11
10
|
* Cancel a background event created by
|
|
12
11
|
* [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).
|
|
@@ -28,9 +27,8 @@ export type CancelBackgroundEventMethodHooks = {
|
|
|
28
27
|
* ```
|
|
29
28
|
*/
|
|
30
29
|
export declare const cancelBackgroundEventHandler: {
|
|
31
|
-
methodNames: ["snap_cancelBackgroundEvent"];
|
|
32
30
|
implementation: typeof getCancelBackgroundEventImplementation;
|
|
33
|
-
|
|
31
|
+
actionNames: ("CronjobController:cancel" | "PermissionController:hasPermission")[];
|
|
34
32
|
};
|
|
35
33
|
declare const CancelBackgroundEventsParametersStruct: import("@metamask/superstruct").Struct<{
|
|
36
34
|
id: string;
|
|
@@ -46,11 +44,10 @@ export type CancelBackgroundEventParameters = InferMatching<typeof CancelBackgro
|
|
|
46
44
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
47
45
|
* function.
|
|
48
46
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
49
|
-
* @param
|
|
50
|
-
* @param
|
|
51
|
-
* @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.
|
|
47
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
48
|
+
* @param messenger - The messenger used to call controller actions.
|
|
52
49
|
* @returns Nothing.
|
|
53
50
|
*/
|
|
54
|
-
declare function getCancelBackgroundEventImplementation(req:
|
|
51
|
+
declare function getCancelBackgroundEventImplementation(req: JsonRpcRequestWithOrigin<CancelBackgroundEventParameters>, res: PendingJsonRpcResponse<CancelBackgroundEventResult>, _next: unknown, end: JsonRpcEngineEndCallback, _hooks: never, messenger: Messenger<string, CancelBackgroundEventMethodActions>): Promise<void>;
|
|
55
52
|
export {};
|
|
56
53
|
//# sourceMappingURL=cancelBackgroundEvent.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.d.mts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.d.mts","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,uCAAuC,EAAE,wCAAwC;AAE/F,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAE5B,4BAA4B;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAE3D,OAAO,EAAE,KAAK,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EACV,6BAA6B,EAC7B,wBAAwB,EACzB,qBAAiB;AAElB,MAAM,MAAM,kCAAkC,GAC1C,uCAAuC,GACvC,6BAA6B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,4BAA4B;;;CAYxC,CAAC;AAEF,QAAA,MAAM,sCAAsC;;;;EAE1C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,OAAO,sCAAsC,EAC7C,2BAA2B,CAC5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,iBAAe,sCAAsC,CACnD,GAAG,EAAE,wBAAwB,CAAC,+BAA+B,CAAC,EAC9D,GAAG,EAAE,sBAAsB,CAAC,2BAA2B,CAAC,EACxD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,kCAAkC,CAAC,GAC/D,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
|
|
2
2
|
import { StructError, create, object, string } from "@metamask/superstruct";
|
|
3
3
|
import { SnapEndowments } from "../endowments/index.mjs";
|
|
4
|
-
const methodName = 'snap_cancelBackgroundEvent';
|
|
5
|
-
const hookNames = {
|
|
6
|
-
cancelBackgroundEvent: true,
|
|
7
|
-
hasPermission: true,
|
|
8
|
-
};
|
|
9
4
|
/**
|
|
10
5
|
* Cancel a background event created by
|
|
11
6
|
* [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).
|
|
@@ -27,9 +22,11 @@ const hookNames = {
|
|
|
27
22
|
* ```
|
|
28
23
|
*/
|
|
29
24
|
export const cancelBackgroundEventHandler = {
|
|
30
|
-
methodNames: [methodName],
|
|
31
25
|
implementation: getCancelBackgroundEventImplementation,
|
|
32
|
-
|
|
26
|
+
actionNames: [
|
|
27
|
+
'PermissionController:hasPermission',
|
|
28
|
+
'CronjobController:cancel',
|
|
29
|
+
],
|
|
33
30
|
};
|
|
34
31
|
const CancelBackgroundEventsParametersStruct = object({
|
|
35
32
|
id: string(),
|
|
@@ -42,20 +39,19 @@ const CancelBackgroundEventsParametersStruct = object({
|
|
|
42
39
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
43
40
|
* function.
|
|
44
41
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
45
|
-
* @param
|
|
46
|
-
* @param
|
|
47
|
-
* @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.
|
|
42
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
43
|
+
* @param messenger - The messenger used to call controller actions.
|
|
48
44
|
* @returns Nothing.
|
|
49
45
|
*/
|
|
50
|
-
async function getCancelBackgroundEventImplementation(req, res, _next, end,
|
|
51
|
-
const { params } = req;
|
|
52
|
-
if (!hasPermission
|
|
46
|
+
async function getCancelBackgroundEventImplementation(req, res, _next, end, _hooks, messenger) {
|
|
47
|
+
const { params, origin } = req;
|
|
48
|
+
if (!messenger.call('PermissionController:hasPermission', origin, SnapEndowments.Cronjob)) {
|
|
53
49
|
return end(providerErrors.unauthorized());
|
|
54
50
|
}
|
|
55
51
|
try {
|
|
56
52
|
const validatedParams = getValidatedParams(params);
|
|
57
53
|
const { id } = validatedParams;
|
|
58
|
-
|
|
54
|
+
messenger.call('CronjobController:cancel', origin, id);
|
|
59
55
|
res.result = null;
|
|
60
56
|
}
|
|
61
57
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelBackgroundEvent.mjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cancelBackgroundEvent.mjs","sourceRoot":"","sources":["../../src/permitted/cancelBackgroundEvent.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAOjE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B;AAG5E,OAAO,EAAE,cAAc,EAAE,gCAAsB;AAU/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,cAAc,EAAE,sCAAsC;IACtD,WAAW,EAAE;QACX,oCAAoC;QACpC,0BAA0B;KAC3B;CAOF,CAAC;AAEF,MAAM,sCAAsC,GAAG,MAAM,CAAC;IACpD,EAAE,EAAE,MAAM,EAAE;CACb,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,sCAAsC,CACnD,GAA8D,EAC9D,GAAwD,EACxD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAAgE;IAEhE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE/B,IACE,CAAC,SAAS,CAAC,IAAI,CACb,oCAAoC,EACpC,MAAM,EACN,cAAc,CAAC,OAAO,CACvB,EACD,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC;QAE/B,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport type { PermissionControllerHasPermissionAction } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n CancelBackgroundEventParams,\n CancelBackgroundEventResult,\n SnapId,\n} from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, string } from '@metamask/superstruct';\nimport { type PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type {\n CronjobControllerCancelAction,\n JsonRpcRequestWithOrigin,\n} from '../types';\n\nexport type CancelBackgroundEventMethodActions =\n | PermissionControllerHasPermissionAction\n | CronjobControllerCancelAction;\n\n/**\n * Cancel a background event created by\n * [`snap_scheduleBackgroundEvent`](https://docs.metamask.io/snaps/reference/snaps-api/snap_schedulebackgroundevent).\n *\n * @example\n * ```ts\n * const id = await snap.request({\n * method: 'snap_scheduleBackgroundEvent',\n * params: {\n * // ...\n * },\n * });\n *\n * // Later, when you want to cancel the background event:\n * snap.request({\n * method: 'snap_cancelBackgroundEvent',\n * params: { id },\n * });\n * ```\n */\nexport const cancelBackgroundEventHandler = {\n implementation: getCancelBackgroundEventImplementation,\n actionNames: [\n 'PermissionController:hasPermission',\n 'CronjobController:cancel',\n ],\n} satisfies MethodHandler<\n never,\n CancelBackgroundEventMethodActions,\n CancelBackgroundEventParameters,\n CancelBackgroundEventResult,\n { origin: SnapId }\n>;\n\nconst CancelBackgroundEventsParametersStruct = object({\n id: string(),\n});\n\nexport type CancelBackgroundEventParameters = InferMatching<\n typeof CancelBackgroundEventsParametersStruct,\n CancelBackgroundEventParams\n>;\n\n/**\n * The `snap_cancelBackgroundEvent` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function getCancelBackgroundEventImplementation(\n req: JsonRpcRequestWithOrigin<CancelBackgroundEventParameters>,\n res: PendingJsonRpcResponse<CancelBackgroundEventResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, CancelBackgroundEventMethodActions>,\n): Promise<void> {\n const { params, origin } = req;\n\n if (\n !messenger.call(\n 'PermissionController:hasPermission',\n origin,\n SnapEndowments.Cronjob,\n )\n ) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id } = validatedParams;\n\n messenger.call('CronjobController:cancel', origin, id);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the cancelBackgroundEvent method `params` and returns them cast to the correct type. Throws if validation fails.\n *\n * @param params - The unvalidated params object from the method request.\n * @returns The validated resolveInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): CancelBackgroundEventParameters {\n try {\n return create(params, CancelBackgroundEventsParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
|
|
@@ -4,11 +4,6 @@ exports.clearStateHandler = void 0;
|
|
|
4
4
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
5
|
const superstruct_1 = require("@metamask/superstruct");
|
|
6
6
|
const manageState_1 = require("../restricted/manageState.cjs");
|
|
7
|
-
const methodName = 'snap_clearState';
|
|
8
|
-
const hookNames = {
|
|
9
|
-
clearSnapState: true,
|
|
10
|
-
hasPermission: true,
|
|
11
|
-
};
|
|
12
7
|
/**
|
|
13
8
|
* Clear the entire state of the Snap.
|
|
14
9
|
*
|
|
@@ -23,9 +18,11 @@ const hookNames = {
|
|
|
23
18
|
* ```
|
|
24
19
|
*/
|
|
25
20
|
exports.clearStateHandler = {
|
|
26
|
-
methodNames: [methodName],
|
|
27
21
|
implementation: clearStateImplementation,
|
|
28
|
-
|
|
22
|
+
actionNames: [
|
|
23
|
+
'PermissionController:hasPermission',
|
|
24
|
+
'SnapController:clearSnapState',
|
|
25
|
+
],
|
|
29
26
|
};
|
|
30
27
|
const ClearStateParametersStruct = (0, superstruct_1.object)({
|
|
31
28
|
encrypted: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
|
|
@@ -38,22 +35,19 @@ const ClearStateParametersStruct = (0, superstruct_1.object)({
|
|
|
38
35
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
39
36
|
* function.
|
|
40
37
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
41
|
-
* @param
|
|
42
|
-
* @param
|
|
43
|
-
* requesting Snap.
|
|
44
|
-
* @param hooks.hasPermission - Check whether a given origin has a given
|
|
45
|
-
* permission.
|
|
38
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
39
|
+
* @param messenger - The messenger used to call controller actions.
|
|
46
40
|
* @returns Nothing.
|
|
47
41
|
*/
|
|
48
|
-
async function clearStateImplementation(request, response, _next, end,
|
|
49
|
-
const { params } = request;
|
|
50
|
-
if (!hasPermission
|
|
42
|
+
async function clearStateImplementation(request, response, _next, end, _hooks, messenger) {
|
|
43
|
+
const { params, origin } = request;
|
|
44
|
+
if (!messenger.call('PermissionController:hasPermission', origin, manageState_1.manageStateBuilder.targetName)) {
|
|
51
45
|
return end(rpc_errors_1.providerErrors.unauthorized());
|
|
52
46
|
}
|
|
53
47
|
try {
|
|
54
48
|
const validatedParams = getValidatedParams(params);
|
|
55
49
|
const { encrypted = true } = validatedParams;
|
|
56
|
-
clearSnapState
|
|
50
|
+
messenger.call('SnapController:clearSnapState', origin, encrypted);
|
|
57
51
|
response.result = null;
|
|
58
52
|
}
|
|
59
53
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearState.cjs","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"clearState.cjs","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":";;;AAMA,qDAAiE;AAGjE,uDAM+B;AAG/B,+DAA+D;AAU/D;;;;;;;;;;;;GAYG;AACU,QAAA,iBAAiB,GAAG;IAC/B,cAAc,EAAE,wBAAwB;IACxC,WAAW,EAAE;QACX,oCAAoC;QACpC,+BAA+B;KAChC;CAOF,CAAC;AAEF,MAAM,0BAA0B,GAAG,IAAA,oBAAM,EAAC;IACxC,SAAS,EAAE,IAAA,sBAAQ,EAAC,IAAA,qBAAO,GAAE,CAAC;CAC/B,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAAuD,EACvD,QAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAAqD;IAErD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEnC,IACE,CAAC,SAAS,CAAC,IAAI,CACb,oCAAoC,EACpC,MAAM,EACN,gCAAkB,CAAC,UAAU,CAC9B,EACD,CAAC;QACD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC;QAE7C,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACnE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAgB;IAC1C,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport type { PermissionControllerHasPermissionAction } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { ClearStateParams, ClearStateResult } from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport {\n boolean,\n create,\n object,\n optional,\n StructError,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { manageStateBuilder } from '../restricted/manageState';\nimport type {\n JsonRpcRequestWithOrigin,\n SnapControllerClearSnapStateAction,\n} from '../types';\n\nexport type ClearStateMethodActions =\n | PermissionControllerHasPermissionAction\n | SnapControllerClearSnapStateAction;\n\n/**\n * Clear the entire state of the Snap.\n *\n * @example\n * ```ts\n * await snap.request({\n * method: 'snap_clearState',\n * params: {\n * encrypted: true, // Optional, defaults to true\n * },\n * });\n * ```\n */\nexport const clearStateHandler = {\n implementation: clearStateImplementation,\n actionNames: [\n 'PermissionController:hasPermission',\n 'SnapController:clearSnapState',\n ],\n} satisfies MethodHandler<\n never,\n ClearStateMethodActions,\n ClearStateParameters,\n ClearStateResult,\n { origin: string }\n>;\n\nconst ClearStateParametersStruct = object({\n encrypted: optional(boolean()),\n});\n\nexport type ClearStateParameters = InferMatching<\n typeof ClearStateParametersStruct,\n ClearStateParams\n>;\n\n/**\n * The `snap_clearState` method implementation.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function clearStateImplementation(\n request: JsonRpcRequestWithOrigin<ClearStateParameters>,\n response: PendingJsonRpcResponse<ClearStateResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, ClearStateMethodActions>,\n): Promise<void> {\n const { params, origin } = request;\n\n if (\n !messenger.call(\n 'PermissionController:hasPermission',\n origin,\n manageStateBuilder.targetName,\n )\n ) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n const { encrypted = true } = validatedParams;\n\n messenger.call('SnapController:clearSnapState', origin, encrypted);\n response.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters of the `snap_clearState` method.\n *\n * @param params - The parameters to validate.\n * @returns The validated parameters.\n */\nfunction getValidatedParams(params?: unknown) {\n try {\n return create(params, ClearStateParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { Messenger } from "@metamask/messenger";
|
|
3
|
+
import type { PermissionControllerHasPermissionAction } from "@metamask/permission-controller";
|
|
2
4
|
import type { ClearStateParams, ClearStateResult } from "@metamask/snaps-sdk";
|
|
3
5
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
|
-
import type { PendingJsonRpcResponse
|
|
5
|
-
import type {
|
|
6
|
+
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
7
|
+
import type { JsonRpcRequestWithOrigin, SnapControllerClearSnapStateAction } from "../types.cjs";
|
|
8
|
+
export type ClearStateMethodActions = PermissionControllerHasPermissionAction | SnapControllerClearSnapStateAction;
|
|
6
9
|
/**
|
|
7
10
|
* Clear the entire state of the Snap.
|
|
8
11
|
*
|
|
@@ -17,22 +20,8 @@ import type { MethodHooksObject } from "../utils.cjs";
|
|
|
17
20
|
* ```
|
|
18
21
|
*/
|
|
19
22
|
export declare const clearStateHandler: {
|
|
20
|
-
methodNames: ["snap_clearState"];
|
|
21
23
|
implementation: typeof clearStateImplementation;
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
export type ClearStateHooks = {
|
|
25
|
-
/**
|
|
26
|
-
* A function that clears the state of the requesting Snap.
|
|
27
|
-
*/
|
|
28
|
-
clearSnapState: (encrypted: boolean) => void;
|
|
29
|
-
/**
|
|
30
|
-
* Check if the requesting origin has a given permission.
|
|
31
|
-
*
|
|
32
|
-
* @param permissionName - The name of the permission to check.
|
|
33
|
-
* @returns Whether the origin has the permission.
|
|
34
|
-
*/
|
|
35
|
-
hasPermission: (permissionName: string) => boolean;
|
|
24
|
+
actionNames: ("SnapController:clearSnapState" | "PermissionController:hasPermission")[];
|
|
36
25
|
};
|
|
37
26
|
declare const ClearStateParametersStruct: import("@metamask/superstruct").Struct<{
|
|
38
27
|
encrypted?: boolean | undefined;
|
|
@@ -48,13 +37,10 @@ export type ClearStateParameters = InferMatching<typeof ClearStateParametersStru
|
|
|
48
37
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
49
38
|
* function.
|
|
50
39
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* requesting Snap.
|
|
54
|
-
* @param hooks.hasPermission - Check whether a given origin has a given
|
|
55
|
-
* permission.
|
|
40
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
41
|
+
* @param messenger - The messenger used to call controller actions.
|
|
56
42
|
* @returns Nothing.
|
|
57
43
|
*/
|
|
58
|
-
declare function clearStateImplementation(request:
|
|
44
|
+
declare function clearStateImplementation(request: JsonRpcRequestWithOrigin<ClearStateParameters>, response: PendingJsonRpcResponse<ClearStateResult>, _next: unknown, end: JsonRpcEngineEndCallback, _hooks: never, messenger: Messenger<string, ClearStateMethodActions>): Promise<void>;
|
|
59
45
|
export {};
|
|
60
46
|
//# sourceMappingURL=clearState.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearState.d.cts","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"clearState.d.cts","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,uCAAuC,EAAE,wCAAwC;AAE/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,4BAA4B;AAC9E,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAQ3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EACV,wBAAwB,EACxB,kCAAkC,EACnC,qBAAiB;AAElB,MAAM,MAAM,uBAAuB,GAC/B,uCAAuC,GACvC,kCAAkC,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB;;;CAY7B,CAAC;AAEF,QAAA,MAAM,0BAA0B;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,OAAO,0BAA0B,EACjC,gBAAgB,CACjB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,iBAAe,wBAAwB,CACrC,OAAO,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,EACvD,QAAQ,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,EAClD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,GACpD,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { Messenger } from "@metamask/messenger";
|
|
3
|
+
import type { PermissionControllerHasPermissionAction } from "@metamask/permission-controller";
|
|
2
4
|
import type { ClearStateParams, ClearStateResult } from "@metamask/snaps-sdk";
|
|
3
5
|
import { type InferMatching } from "@metamask/snaps-utils";
|
|
4
|
-
import type { PendingJsonRpcResponse
|
|
5
|
-
import type {
|
|
6
|
+
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
7
|
+
import type { JsonRpcRequestWithOrigin, SnapControllerClearSnapStateAction } from "../types.mjs";
|
|
8
|
+
export type ClearStateMethodActions = PermissionControllerHasPermissionAction | SnapControllerClearSnapStateAction;
|
|
6
9
|
/**
|
|
7
10
|
* Clear the entire state of the Snap.
|
|
8
11
|
*
|
|
@@ -17,22 +20,8 @@ import type { MethodHooksObject } from "../utils.mjs";
|
|
|
17
20
|
* ```
|
|
18
21
|
*/
|
|
19
22
|
export declare const clearStateHandler: {
|
|
20
|
-
methodNames: ["snap_clearState"];
|
|
21
23
|
implementation: typeof clearStateImplementation;
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
export type ClearStateHooks = {
|
|
25
|
-
/**
|
|
26
|
-
* A function that clears the state of the requesting Snap.
|
|
27
|
-
*/
|
|
28
|
-
clearSnapState: (encrypted: boolean) => void;
|
|
29
|
-
/**
|
|
30
|
-
* Check if the requesting origin has a given permission.
|
|
31
|
-
*
|
|
32
|
-
* @param permissionName - The name of the permission to check.
|
|
33
|
-
* @returns Whether the origin has the permission.
|
|
34
|
-
*/
|
|
35
|
-
hasPermission: (permissionName: string) => boolean;
|
|
24
|
+
actionNames: ("SnapController:clearSnapState" | "PermissionController:hasPermission")[];
|
|
36
25
|
};
|
|
37
26
|
declare const ClearStateParametersStruct: import("@metamask/superstruct").Struct<{
|
|
38
27
|
encrypted?: boolean | undefined;
|
|
@@ -48,13 +37,10 @@ export type ClearStateParameters = InferMatching<typeof ClearStateParametersStru
|
|
|
48
37
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
49
38
|
* function.
|
|
50
39
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* requesting Snap.
|
|
54
|
-
* @param hooks.hasPermission - Check whether a given origin has a given
|
|
55
|
-
* permission.
|
|
40
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
41
|
+
* @param messenger - The messenger used to call controller actions.
|
|
56
42
|
* @returns Nothing.
|
|
57
43
|
*/
|
|
58
|
-
declare function clearStateImplementation(request:
|
|
44
|
+
declare function clearStateImplementation(request: JsonRpcRequestWithOrigin<ClearStateParameters>, response: PendingJsonRpcResponse<ClearStateResult>, _next: unknown, end: JsonRpcEngineEndCallback, _hooks: never, messenger: Messenger<string, ClearStateMethodActions>): Promise<void>;
|
|
59
45
|
export {};
|
|
60
46
|
//# sourceMappingURL=clearState.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearState.d.mts","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"clearState.d.mts","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,uCAAuC,EAAE,wCAAwC;AAE/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,4BAA4B;AAC9E,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAQ3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAG9D,OAAO,KAAK,EACV,wBAAwB,EACxB,kCAAkC,EACnC,qBAAiB;AAElB,MAAM,MAAM,uBAAuB,GAC/B,uCAAuC,GACvC,kCAAkC,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB;;;CAY7B,CAAC;AAEF,QAAA,MAAM,0BAA0B;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,OAAO,0BAA0B,EACjC,gBAAgB,CACjB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,iBAAe,wBAAwB,CACrC,OAAO,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,EACvD,QAAQ,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,EAClD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,GACpD,OAAO,CAAC,IAAI,CAAC,CAwBf"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
|
|
2
2
|
import { boolean, create, object, optional, StructError } from "@metamask/superstruct";
|
|
3
3
|
import { manageStateBuilder } from "../restricted/manageState.mjs";
|
|
4
|
-
const methodName = 'snap_clearState';
|
|
5
|
-
const hookNames = {
|
|
6
|
-
clearSnapState: true,
|
|
7
|
-
hasPermission: true,
|
|
8
|
-
};
|
|
9
4
|
/**
|
|
10
5
|
* Clear the entire state of the Snap.
|
|
11
6
|
*
|
|
@@ -20,9 +15,11 @@ const hookNames = {
|
|
|
20
15
|
* ```
|
|
21
16
|
*/
|
|
22
17
|
export const clearStateHandler = {
|
|
23
|
-
methodNames: [methodName],
|
|
24
18
|
implementation: clearStateImplementation,
|
|
25
|
-
|
|
19
|
+
actionNames: [
|
|
20
|
+
'PermissionController:hasPermission',
|
|
21
|
+
'SnapController:clearSnapState',
|
|
22
|
+
],
|
|
26
23
|
};
|
|
27
24
|
const ClearStateParametersStruct = object({
|
|
28
25
|
encrypted: optional(boolean()),
|
|
@@ -35,22 +32,19 @@ const ClearStateParametersStruct = object({
|
|
|
35
32
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
36
33
|
* function.
|
|
37
34
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
38
|
-
* @param
|
|
39
|
-
* @param
|
|
40
|
-
* requesting Snap.
|
|
41
|
-
* @param hooks.hasPermission - Check whether a given origin has a given
|
|
42
|
-
* permission.
|
|
35
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
36
|
+
* @param messenger - The messenger used to call controller actions.
|
|
43
37
|
* @returns Nothing.
|
|
44
38
|
*/
|
|
45
|
-
async function clearStateImplementation(request, response, _next, end,
|
|
46
|
-
const { params } = request;
|
|
47
|
-
if (!hasPermission
|
|
39
|
+
async function clearStateImplementation(request, response, _next, end, _hooks, messenger) {
|
|
40
|
+
const { params, origin } = request;
|
|
41
|
+
if (!messenger.call('PermissionController:hasPermission', origin, manageStateBuilder.targetName)) {
|
|
48
42
|
return end(providerErrors.unauthorized());
|
|
49
43
|
}
|
|
50
44
|
try {
|
|
51
45
|
const validatedParams = getValidatedParams(params);
|
|
52
46
|
const { encrypted = true } = validatedParams;
|
|
53
|
-
clearSnapState
|
|
47
|
+
messenger.call('SnapController:clearSnapState', origin, encrypted);
|
|
54
48
|
response.result = null;
|
|
55
49
|
}
|
|
56
50
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearState.mjs","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clearState.mjs","sourceRoot":"","sources":["../../src/permitted/clearState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAGjE,OAAO,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,WAAW,EACZ,8BAA8B;AAG/B,OAAO,EAAE,kBAAkB,EAAE,sCAAkC;AAU/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE,wBAAwB;IACxC,WAAW,EAAE;QACX,oCAAoC;QACpC,+BAA+B;KAChC;CAOF,CAAC;AAEF,MAAM,0BAA0B,GAAG,MAAM,CAAC;IACxC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/B,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAAuD,EACvD,QAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAAqD;IAErD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEnC,IACE,CAAC,SAAS,CAAC,IAAI,CACb,oCAAoC,EACpC,MAAM,EACN,kBAAkB,CAAC,UAAU,CAC9B,EACD,CAAC;QACD,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,SAAS,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC;QAE7C,SAAS,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACnE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAgB;IAC1C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACpD,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","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport type { PermissionControllerHasPermissionAction } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { ClearStateParams, ClearStateResult } from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport {\n boolean,\n create,\n object,\n optional,\n StructError,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { manageStateBuilder } from '../restricted/manageState';\nimport type {\n JsonRpcRequestWithOrigin,\n SnapControllerClearSnapStateAction,\n} from '../types';\n\nexport type ClearStateMethodActions =\n | PermissionControllerHasPermissionAction\n | SnapControllerClearSnapStateAction;\n\n/**\n * Clear the entire state of the Snap.\n *\n * @example\n * ```ts\n * await snap.request({\n * method: 'snap_clearState',\n * params: {\n * encrypted: true, // Optional, defaults to true\n * },\n * });\n * ```\n */\nexport const clearStateHandler = {\n implementation: clearStateImplementation,\n actionNames: [\n 'PermissionController:hasPermission',\n 'SnapController:clearSnapState',\n ],\n} satisfies MethodHandler<\n never,\n ClearStateMethodActions,\n ClearStateParameters,\n ClearStateResult,\n { origin: string }\n>;\n\nconst ClearStateParametersStruct = object({\n encrypted: optional(boolean()),\n});\n\nexport type ClearStateParameters = InferMatching<\n typeof ClearStateParametersStruct,\n ClearStateParams\n>;\n\n/**\n * The `snap_clearState` method implementation.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function clearStateImplementation(\n request: JsonRpcRequestWithOrigin<ClearStateParameters>,\n response: PendingJsonRpcResponse<ClearStateResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, ClearStateMethodActions>,\n): Promise<void> {\n const { params, origin } = request;\n\n if (\n !messenger.call(\n 'PermissionController:hasPermission',\n origin,\n manageStateBuilder.targetName,\n )\n ) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n const { encrypted = true } = validatedParams;\n\n messenger.call('SnapController:clearSnapState', origin, encrypted);\n response.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters of the `snap_clearState` method.\n *\n * @param params - The parameters to validate.\n * @returns The validated parameters.\n */\nfunction getValidatedParams(params?: unknown) {\n try {\n return create(params, ClearStateParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
|
|
@@ -4,11 +4,6 @@ exports.closeWebSocketHandler = void 0;
|
|
|
4
4
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
5
|
const superstruct_1 = require("@metamask/superstruct");
|
|
6
6
|
const endowments_1 = require("../endowments/index.cjs");
|
|
7
|
-
const methodName = 'snap_closeWebSocket';
|
|
8
|
-
const hookNames = {
|
|
9
|
-
hasPermission: true,
|
|
10
|
-
closeWebSocket: true,
|
|
11
|
-
};
|
|
12
7
|
const CloseWebSocketParametersStruct = (0, superstruct_1.object)({
|
|
13
8
|
id: (0, superstruct_1.string)(),
|
|
14
9
|
});
|
|
@@ -32,9 +27,8 @@ const CloseWebSocketParametersStruct = (0, superstruct_1.object)({
|
|
|
32
27
|
* ```
|
|
33
28
|
*/
|
|
34
29
|
exports.closeWebSocketHandler = {
|
|
35
|
-
methodNames: [methodName],
|
|
36
30
|
implementation: closeWebSocketImplementation,
|
|
37
|
-
|
|
31
|
+
actionNames: ['PermissionController:hasPermission', 'WebSocketService:close'],
|
|
38
32
|
};
|
|
39
33
|
/**
|
|
40
34
|
* The `snap_closeWebSocket` method implementation.
|
|
@@ -43,19 +37,18 @@ exports.closeWebSocketHandler = {
|
|
|
43
37
|
* @param res - The JSON-RPC response object.
|
|
44
38
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this function.
|
|
45
39
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
46
|
-
* @param
|
|
47
|
-
* @param
|
|
48
|
-
* @param hooks.closeWebSocket - The function to close a WebSocket.
|
|
40
|
+
* @param _hooks - The RPC method hooks. Not used by this function.
|
|
41
|
+
* @param messenger - The messenger used to call controller actions.
|
|
49
42
|
* @returns Nothing.
|
|
50
43
|
*/
|
|
51
|
-
function closeWebSocketImplementation(req, res, _next, end,
|
|
52
|
-
|
|
44
|
+
function closeWebSocketImplementation(req, res, _next, end, _hooks, messenger) {
|
|
45
|
+
const { params, origin } = req;
|
|
46
|
+
if (!messenger.call('PermissionController:hasPermission', origin, endowments_1.SnapEndowments.NetworkAccess)) {
|
|
53
47
|
return end(rpc_errors_1.providerErrors.unauthorized());
|
|
54
48
|
}
|
|
55
|
-
const { params } = req;
|
|
56
49
|
try {
|
|
57
50
|
const { id } = getValidatedParams(params);
|
|
58
|
-
|
|
51
|
+
messenger.call('WebSocketService:close', origin, id);
|
|
59
52
|
res.result = null;
|
|
60
53
|
}
|
|
61
54
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeWebSocket.cjs","sourceRoot":"","sources":["../../src/permitted/closeWebSocket.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"closeWebSocket.cjs","sourceRoot":"","sources":["../../src/permitted/closeWebSocket.ts"],"names":[],"mappings":";;;AAMA,qDAAiE;AAMjE,uDAA4E;AAG5E,wDAA+C;AAU/C,MAAM,8BAA8B,GAAG,IAAA,oBAAM,EAAC;IAC5C,EAAE,EAAE,IAAA,oBAAM,GAAE;CACb,CAAC,CAAC;AAOH;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,qBAAqB,GAAG;IACnC,cAAc,EAAE,4BAA4B;IAC5C,WAAW,EAAE,CAAC,oCAAoC,EAAE,wBAAwB,CAAC;CAO9E,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAS,4BAA4B,CACnC,GAAuD,EACvD,GAAiD,EACjD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAAyD;IAEzD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE/B,IACE,CAAC,SAAS,CAAC,IAAI,CACb,oCAAoC,EACpC,MAAM,EACN,2BAAc,CAAC,aAAa,CAC7B,EACD,CAAC;QACD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport type { PermissionControllerHasPermissionAction } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n CloseWebSocketParams,\n CloseWebSocketResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport { create, object, string, StructError } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type {\n JsonRpcRequestWithOrigin,\n WebSocketServiceCloseAction,\n} from '../types';\n\nexport type CloseWebSocketMethodActions =\n | PermissionControllerHasPermissionAction\n | WebSocketServiceCloseAction;\n\nconst CloseWebSocketParametersStruct = object({\n id: string(),\n});\n\nexport type CloseWebSocketParameters = InferMatching<\n typeof CloseWebSocketParametersStruct,\n CloseWebSocketParams\n>;\n\n/**\n * Closes a WebSocket connection that was previously opened with\n * [`snap_openWebSocket`](https://docs.metamask.io/snaps/reference/snaps-api/snap_openwebsocket).\n *\n * @example\n * ```json name=\"Manifest\"\n * {\n * \"initialPermissions\": {\n * \"endowment:network-access\": {}\n * }\n * }\n * ```\n * ```ts name=\"Usage\"\n * await snap.request({\n * method: 'snap_closeWebSocket',\n * params: { id: 'websocket-1' },\n * });\n * ```\n */\nexport const closeWebSocketHandler = {\n implementation: closeWebSocketImplementation,\n actionNames: ['PermissionController:hasPermission', 'WebSocketService:close'],\n} satisfies MethodHandler<\n never,\n CloseWebSocketMethodActions,\n CloseWebSocketParams,\n CloseWebSocketResult,\n { origin: string }\n>;\n\n/**\n * The `snap_closeWebSocket` 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 function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nfunction closeWebSocketImplementation(\n req: JsonRpcRequestWithOrigin<CloseWebSocketParameters>,\n res: PendingJsonRpcResponse<CloseWebSocketResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, CloseWebSocketMethodActions>,\n): void {\n const { params, origin } = req;\n\n if (\n !messenger.call(\n 'PermissionController:hasPermission',\n origin,\n SnapEndowments.NetworkAccess,\n )\n ) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n const { id } = getValidatedParams(params);\n messenger.call('WebSocketService:close', origin, id);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validates the parameters for the snap_closeWebSocket method.\n *\n * @param params - Parameters to validate.\n * @returns Validated parameters.\n * @throws Throws RPC error if validation fails.\n */\nfunction getValidatedParams(params: unknown): CloseWebSocketParameters {\n try {\n return create(params, CloseWebSocketParametersStruct);\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"]}
|