@metamask/snaps-rpc-methods 15.1.1 → 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 +27 -4
- 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":"listEntropySources.cjs","sourceRoot":"","sources":["../../src/permitted/listEntropySources.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"listEntropySources.cjs","sourceRoot":"","sources":["../../src/permitted/listEntropySources.ts"],"names":[],"mappings":";;;AAMA,qDAAsD;AAQtD,uEAAuE;AACvE,2EAA2E;AAC3E,uEAAuE;AACvE,6DAA6D;AAO7D;;;GAGG;AACH,MAAM,oBAAoB,GAAG;IAC3B,wCAAsB,CAAC,UAAU;IACjC,4CAAwB,CAAC,UAAU;IACnC,wCAAsB,CAAC,UAAU;IACjC,8BAAiB,CAAC,UAAU;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,aAAa,CAAC;AAEtC,MAAM,SAAS,GAAqD;IAClE,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAeF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACU,QAAA,yBAAyB,GAAG;IACvC,cAAc,EAAE,gCAAgC;IAChD,SAAS;IACT,WAAW,EAAE;QACX,oCAAoC;QACpC,4BAA4B;KAC7B;CAOF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,gCAAgC,CAC7C,OAA2D,EAC3D,QAA0D,EAC1D,KAAc,EACd,GAA6B,EAC7B,EAAE,gBAAgB,EAAiC,EACnD,SAA6D;IAE7D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAC3D,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,MAAM,EAAE,UAAU,CAAC,CACzE,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAElE,QAAQ,CAAC,MAAM,GAAG,QAAQ;SACvB,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACrC,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACvB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAC3B,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,KAAK,KAAK,CAAC;aACrB,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,aAAa,EAAkC,EAAE,CACxD,OAAO,CAAC,aAAa,CAAC,CACvB,CAAC;IAEJ,OAAO,GAAG,EAAE,CAAC;AACf,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 } from '@metamask/rpc-errors';\nimport type {\n EntropySource,\n ListEntropySourcesParams,\n ListEntropySourcesResult,\n} from '@metamask/snaps-sdk';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { getBip32EntropyBuilder } from '../restricted/getBip32Entropy';\nimport { getBip32PublicKeyBuilder } from '../restricted/getBip32PublicKey';\nimport { getBip44EntropyBuilder } from '../restricted/getBip44Entropy';\nimport { getEntropyBuilder } from '../restricted/getEntropy';\nimport type {\n JsonRpcRequestWithOrigin,\n KeyringControllerGetStateAction,\n} from '../types';\nimport type { MethodHooksObject } from '../utils';\n\n/**\n * A list of permissions that the requesting origin must have at least one of\n * in order to call this method.\n */\nconst REQUIRED_PERMISSIONS = [\n getBip32EntropyBuilder.targetName,\n getBip32PublicKeyBuilder.targetName,\n getBip44EntropyBuilder.targetName,\n getEntropyBuilder.targetName,\n];\n\n/**\n * The keyring type used by HD (mnemonic-based) keyrings.\n */\nconst HD_KEYRING_TYPE = 'HD Key Tree';\n\nconst hookNames: MethodHooksObject<ListEntropySourcesMethodHooks> = {\n getUnlockPromise: true,\n};\n\nexport type ListEntropySourcesMethodHooks = {\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\nexport type ListEntropySourcesMethodActions =\n | PermissionControllerHasPermissionAction\n | KeyringControllerGetStateAction;\n\n/**\n * Get a list of entropy sources available to the Snap. The requesting origin\n * must have at least one of the following permissions to access entropy source\n * metadata:\n *\n * - `snap_getBip32Entropy`\n * - `snap_getBip32PublicKey`\n * - `snap_getBip44Entropy`\n * - `snap_getEntropy`\n *\n * @example\n * ```json name=\"Manifest\"\n * {\n * \"initialPermissions\": {\n * \"snap_getBip32Entropy\": {}\n * }\n * }\n * ```\n * ```ts name=\"Usage\"\n * const entropySources = await snap.request({ method: 'snap_listEntropySources' });\n * console.log(entropySources);\n * // Example output:\n * // [\n * // {\n * // name: 'Mnemonic 1',\n * // id: 'mnemonic-1',\n * // type: 'mnemonic',\n * // primary: true,\n * // },\n * // {\n * // name: 'Mnemonic 2',\n * // id: 'mnemonic-2',\n * // type: 'mnemonic',\n * // primary: false,\n * // },\n * // ]\n * ```\n */\nexport const listEntropySourcesHandler = {\n implementation: listEntropySourcesImplementation,\n hookNames,\n actionNames: [\n 'PermissionController:hasPermission',\n 'KeyringController:getState',\n ],\n} satisfies MethodHandler<\n ListEntropySourcesMethodHooks,\n ListEntropySourcesMethodActions,\n ListEntropySourcesParams,\n ListEntropySourcesResult,\n { origin: string }\n>;\n\n/**\n * The `snap_listEntropySources` 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.getUnlockPromise - The function to get the unlock promise.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function listEntropySourcesImplementation(\n request: JsonRpcRequestWithOrigin<ListEntropySourcesParams>,\n response: PendingJsonRpcResponse<ListEntropySourcesResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getUnlockPromise }: ListEntropySourcesMethodHooks,\n messenger: Messenger<string, ListEntropySourcesMethodActions>,\n): Promise<void> {\n const { origin } = request;\n\n const isPermitted = REQUIRED_PERMISSIONS.some((permission) =>\n messenger.call('PermissionController:hasPermission', origin, permission),\n );\n\n if (!isPermitted) {\n return end(providerErrors.unauthorized());\n }\n\n await getUnlockPromise(true);\n\n const { keyrings } = messenger.call('KeyringController:getState');\n\n response.result = keyrings\n .map((keyring, index) => {\n if (keyring.type === HD_KEYRING_TYPE) {\n return {\n id: keyring.metadata.id,\n name: keyring.metadata.name,\n type: 'mnemonic',\n primary: index === 0,\n };\n }\n\n return null;\n })\n .filter((entropySource): entropySource is EntropySource =>\n Boolean(entropySource),\n );\n\n return end();\n}\n"]}
|
|
@@ -1,21 +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 { ListEntropySourcesParams, ListEntropySourcesResult } from "@metamask/snaps-sdk";
|
|
3
5
|
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
6
|
+
import type { JsonRpcRequestWithOrigin, KeyringControllerGetStateAction } from "../types.cjs";
|
|
4
7
|
import type { MethodHooksObject } from "../utils.cjs";
|
|
5
|
-
export type
|
|
6
|
-
/**
|
|
7
|
-
* Check if the requesting origin has a given permission.
|
|
8
|
-
*
|
|
9
|
-
* @param permissionName - The name of the permission to check.
|
|
10
|
-
* @returns Whether the origin has the permission.
|
|
11
|
-
*/
|
|
12
|
-
hasPermission: (permissionName: string) => boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Get the entropy sources from the client.
|
|
15
|
-
*
|
|
16
|
-
* @returns The entropy sources.
|
|
17
|
-
*/
|
|
18
|
-
getEntropySources: () => EntropySource[];
|
|
8
|
+
export type ListEntropySourcesMethodHooks = {
|
|
19
9
|
/**
|
|
20
10
|
* Wait for the extension to be unlocked.
|
|
21
11
|
*
|
|
@@ -23,6 +13,7 @@ export type ListEntropySourcesHooks = {
|
|
|
23
13
|
*/
|
|
24
14
|
getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;
|
|
25
15
|
};
|
|
16
|
+
export type ListEntropySourcesMethodActions = PermissionControllerHasPermissionAction | KeyringControllerGetStateAction;
|
|
26
17
|
/**
|
|
27
18
|
* Get a list of entropy sources available to the Snap. The requesting origin
|
|
28
19
|
* must have at least one of the following permissions to access entropy source
|
|
@@ -62,25 +53,23 @@ export type ListEntropySourcesHooks = {
|
|
|
62
53
|
* ```
|
|
63
54
|
*/
|
|
64
55
|
export declare const listEntropySourcesHandler: {
|
|
65
|
-
methodNames: ["snap_listEntropySources"];
|
|
66
56
|
implementation: typeof listEntropySourcesImplementation;
|
|
67
|
-
hookNames: MethodHooksObject<
|
|
57
|
+
hookNames: MethodHooksObject<ListEntropySourcesMethodHooks>;
|
|
58
|
+
actionNames: ("KeyringController:getState" | "PermissionController:hasPermission")[];
|
|
68
59
|
};
|
|
69
60
|
/**
|
|
70
61
|
* The `snap_listEntropySources` method implementation.
|
|
71
62
|
*
|
|
72
|
-
* @param
|
|
63
|
+
* @param request - The JSON-RPC request object.
|
|
73
64
|
* @param response - The JSON-RPC response object.
|
|
74
65
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
75
66
|
* function.
|
|
76
67
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
77
68
|
* @param hooks - The RPC method hooks.
|
|
78
|
-
* @param hooks.hasPermission - The function to check if the origin has a
|
|
79
|
-
* permission.
|
|
80
|
-
* @param hooks.getEntropySources - The function to get the entropy sources.
|
|
81
69
|
* @param hooks.getUnlockPromise - The function to get the unlock promise.
|
|
82
|
-
* @
|
|
70
|
+
* @param messenger - The messenger used to call controller actions.
|
|
71
|
+
* @returns Nothing.
|
|
83
72
|
*/
|
|
84
|
-
declare function listEntropySourcesImplementation(
|
|
73
|
+
declare function listEntropySourcesImplementation(request: JsonRpcRequestWithOrigin<ListEntropySourcesParams>, response: PendingJsonRpcResponse<ListEntropySourcesResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getUnlockPromise }: ListEntropySourcesMethodHooks, messenger: Messenger<string, ListEntropySourcesMethodActions>): Promise<void>;
|
|
85
74
|
export {};
|
|
86
75
|
//# sourceMappingURL=listEntropySources.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listEntropySources.d.cts","sourceRoot":"","sources":["../../src/permitted/listEntropySources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"listEntropySources.d.cts","sourceRoot":"","sources":["../../src/permitted/listEntropySources.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,EAEV,wBAAwB,EACxB,wBAAwB,EACzB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAM9D,OAAO,KAAK,EACV,wBAAwB,EACxB,+BAA+B,EAChC,qBAAiB;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAsBlD,MAAM,MAAM,6BAA6B,GAAG;IAC1C;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,+BAA+B,GACvC,uCAAuC,GACvC,+BAA+B,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,yBAAyB;;;;CAarC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,gCAAgC,CAC7C,OAAO,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,EAC3D,QAAQ,EAAE,sBAAsB,CAAC,wBAAwB,CAAC,EAC1D,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,gBAAgB,EAAE,EAAE,6BAA6B,EACnD,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
|
@@ -1,21 +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 { ListEntropySourcesParams, ListEntropySourcesResult } from "@metamask/snaps-sdk";
|
|
3
5
|
import type { PendingJsonRpcResponse } from "@metamask/utils";
|
|
6
|
+
import type { JsonRpcRequestWithOrigin, KeyringControllerGetStateAction } from "../types.mjs";
|
|
4
7
|
import type { MethodHooksObject } from "../utils.mjs";
|
|
5
|
-
export type
|
|
6
|
-
/**
|
|
7
|
-
* Check if the requesting origin has a given permission.
|
|
8
|
-
*
|
|
9
|
-
* @param permissionName - The name of the permission to check.
|
|
10
|
-
* @returns Whether the origin has the permission.
|
|
11
|
-
*/
|
|
12
|
-
hasPermission: (permissionName: string) => boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Get the entropy sources from the client.
|
|
15
|
-
*
|
|
16
|
-
* @returns The entropy sources.
|
|
17
|
-
*/
|
|
18
|
-
getEntropySources: () => EntropySource[];
|
|
8
|
+
export type ListEntropySourcesMethodHooks = {
|
|
19
9
|
/**
|
|
20
10
|
* Wait for the extension to be unlocked.
|
|
21
11
|
*
|
|
@@ -23,6 +13,7 @@ export type ListEntropySourcesHooks = {
|
|
|
23
13
|
*/
|
|
24
14
|
getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;
|
|
25
15
|
};
|
|
16
|
+
export type ListEntropySourcesMethodActions = PermissionControllerHasPermissionAction | KeyringControllerGetStateAction;
|
|
26
17
|
/**
|
|
27
18
|
* Get a list of entropy sources available to the Snap. The requesting origin
|
|
28
19
|
* must have at least one of the following permissions to access entropy source
|
|
@@ -62,25 +53,23 @@ export type ListEntropySourcesHooks = {
|
|
|
62
53
|
* ```
|
|
63
54
|
*/
|
|
64
55
|
export declare const listEntropySourcesHandler: {
|
|
65
|
-
methodNames: ["snap_listEntropySources"];
|
|
66
56
|
implementation: typeof listEntropySourcesImplementation;
|
|
67
|
-
hookNames: MethodHooksObject<
|
|
57
|
+
hookNames: MethodHooksObject<ListEntropySourcesMethodHooks>;
|
|
58
|
+
actionNames: ("KeyringController:getState" | "PermissionController:hasPermission")[];
|
|
68
59
|
};
|
|
69
60
|
/**
|
|
70
61
|
* The `snap_listEntropySources` method implementation.
|
|
71
62
|
*
|
|
72
|
-
* @param
|
|
63
|
+
* @param request - The JSON-RPC request object.
|
|
73
64
|
* @param response - The JSON-RPC response object.
|
|
74
65
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
75
66
|
* function.
|
|
76
67
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
77
68
|
* @param hooks - The RPC method hooks.
|
|
78
|
-
* @param hooks.hasPermission - The function to check if the origin has a
|
|
79
|
-
* permission.
|
|
80
|
-
* @param hooks.getEntropySources - The function to get the entropy sources.
|
|
81
69
|
* @param hooks.getUnlockPromise - The function to get the unlock promise.
|
|
82
|
-
* @
|
|
70
|
+
* @param messenger - The messenger used to call controller actions.
|
|
71
|
+
* @returns Nothing.
|
|
83
72
|
*/
|
|
84
|
-
declare function listEntropySourcesImplementation(
|
|
73
|
+
declare function listEntropySourcesImplementation(request: JsonRpcRequestWithOrigin<ListEntropySourcesParams>, response: PendingJsonRpcResponse<ListEntropySourcesResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getUnlockPromise }: ListEntropySourcesMethodHooks, messenger: Messenger<string, ListEntropySourcesMethodActions>): Promise<void>;
|
|
85
74
|
export {};
|
|
86
75
|
//# sourceMappingURL=listEntropySources.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listEntropySources.d.mts","sourceRoot":"","sources":["../../src/permitted/listEntropySources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"listEntropySources.d.mts","sourceRoot":"","sources":["../../src/permitted/listEntropySources.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,EAEV,wBAAwB,EACxB,wBAAwB,EACzB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAM9D,OAAO,KAAK,EACV,wBAAwB,EACxB,+BAA+B,EAChC,qBAAiB;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAsBlD,MAAM,MAAM,6BAA6B,GAAG;IAC1C;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,+BAA+B,GACvC,uCAAuC,GACvC,+BAA+B,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,yBAAyB;;;;CAarC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,gCAAgC,CAC7C,OAAO,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,EAC3D,QAAQ,EAAE,sBAAsB,CAAC,wBAAwB,CAAC,EAC1D,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,gBAAgB,EAAE,EAAE,6BAA6B,EACnD,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,+BAA+B,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
|
@@ -13,10 +13,11 @@ const REQUIRED_PERMISSIONS = [
|
|
|
13
13
|
getBip44EntropyBuilder.targetName,
|
|
14
14
|
getEntropyBuilder.targetName,
|
|
15
15
|
];
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The keyring type used by HD (mnemonic-based) keyrings.
|
|
18
|
+
*/
|
|
19
|
+
const HD_KEYRING_TYPE = 'HD Key Tree';
|
|
17
20
|
const hookNames = {
|
|
18
|
-
hasPermission: true,
|
|
19
|
-
getEntropySources: true,
|
|
20
21
|
getUnlockPromise: true,
|
|
21
22
|
};
|
|
22
23
|
/**
|
|
@@ -58,32 +59,47 @@ const hookNames = {
|
|
|
58
59
|
* ```
|
|
59
60
|
*/
|
|
60
61
|
export const listEntropySourcesHandler = {
|
|
61
|
-
methodNames: [methodName],
|
|
62
62
|
implementation: listEntropySourcesImplementation,
|
|
63
63
|
hookNames,
|
|
64
|
+
actionNames: [
|
|
65
|
+
'PermissionController:hasPermission',
|
|
66
|
+
'KeyringController:getState',
|
|
67
|
+
],
|
|
64
68
|
};
|
|
65
69
|
/**
|
|
66
70
|
* The `snap_listEntropySources` method implementation.
|
|
67
71
|
*
|
|
68
|
-
* @param
|
|
72
|
+
* @param request - The JSON-RPC request object.
|
|
69
73
|
* @param response - The JSON-RPC response object.
|
|
70
74
|
* @param _next - The `json-rpc-engine` "next" callback. Not used by this
|
|
71
75
|
* function.
|
|
72
76
|
* @param end - The `json-rpc-engine` "end" callback.
|
|
73
77
|
* @param hooks - The RPC method hooks.
|
|
74
|
-
* @param hooks.hasPermission - The function to check if the origin has a
|
|
75
|
-
* permission.
|
|
76
|
-
* @param hooks.getEntropySources - The function to get the entropy sources.
|
|
77
78
|
* @param hooks.getUnlockPromise - The function to get the unlock promise.
|
|
78
|
-
* @
|
|
79
|
+
* @param messenger - The messenger used to call controller actions.
|
|
80
|
+
* @returns Nothing.
|
|
79
81
|
*/
|
|
80
|
-
async function listEntropySourcesImplementation(
|
|
81
|
-
const
|
|
82
|
+
async function listEntropySourcesImplementation(request, response, _next, end, { getUnlockPromise }, messenger) {
|
|
83
|
+
const { origin } = request;
|
|
84
|
+
const isPermitted = REQUIRED_PERMISSIONS.some((permission) => messenger.call('PermissionController:hasPermission', origin, permission));
|
|
82
85
|
if (!isPermitted) {
|
|
83
86
|
return end(providerErrors.unauthorized());
|
|
84
87
|
}
|
|
85
88
|
await getUnlockPromise(true);
|
|
86
|
-
|
|
89
|
+
const { keyrings } = messenger.call('KeyringController:getState');
|
|
90
|
+
response.result = keyrings
|
|
91
|
+
.map((keyring, index) => {
|
|
92
|
+
if (keyring.type === HD_KEYRING_TYPE) {
|
|
93
|
+
return {
|
|
94
|
+
id: keyring.metadata.id,
|
|
95
|
+
name: keyring.metadata.name,
|
|
96
|
+
type: 'mnemonic',
|
|
97
|
+
primary: index === 0,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
})
|
|
102
|
+
.filter((entropySource) => Boolean(entropySource));
|
|
87
103
|
return end();
|
|
88
104
|
}
|
|
89
105
|
//# sourceMappingURL=listEntropySources.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listEntropySources.mjs","sourceRoot":"","sources":["../../src/permitted/listEntropySources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listEntropySources.mjs","sourceRoot":"","sources":["../../src/permitted/listEntropySources.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,6BAA6B;AAQtD,OAAO,EAAE,sBAAsB,EAAE,0CAAsC;AACvE,OAAO,EAAE,wBAAwB,EAAE,4CAAwC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,0CAAsC;AACvE,OAAO,EAAE,iBAAiB,EAAE,qCAAiC;AAO7D;;;GAGG;AACH,MAAM,oBAAoB,GAAG;IAC3B,sBAAsB,CAAC,UAAU;IACjC,wBAAwB,CAAC,UAAU;IACnC,sBAAsB,CAAC,UAAU;IACjC,iBAAiB,CAAC,UAAU;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAG,aAAa,CAAC;AAEtC,MAAM,SAAS,GAAqD;IAClE,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAeF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,cAAc,EAAE,gCAAgC;IAChD,SAAS;IACT,WAAW,EAAE;QACX,oCAAoC;QACpC,4BAA4B;KAC7B;CAOF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,gCAAgC,CAC7C,OAA2D,EAC3D,QAA0D,EAC1D,KAAc,EACd,GAA6B,EAC7B,EAAE,gBAAgB,EAAiC,EACnD,SAA6D;IAE7D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAC3D,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,MAAM,EAAE,UAAU,CAAC,CACzE,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAElE,QAAQ,CAAC,MAAM,GAAG,QAAQ;SACvB,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACrC,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACvB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAC3B,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,KAAK,KAAK,CAAC;aACrB,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,aAAa,EAAkC,EAAE,CACxD,OAAO,CAAC,aAAa,CAAC,CACvB,CAAC;IAEJ,OAAO,GAAG,EAAE,CAAC;AACf,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 } from '@metamask/rpc-errors';\nimport type {\n EntropySource,\n ListEntropySourcesParams,\n ListEntropySourcesResult,\n} from '@metamask/snaps-sdk';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { getBip32EntropyBuilder } from '../restricted/getBip32Entropy';\nimport { getBip32PublicKeyBuilder } from '../restricted/getBip32PublicKey';\nimport { getBip44EntropyBuilder } from '../restricted/getBip44Entropy';\nimport { getEntropyBuilder } from '../restricted/getEntropy';\nimport type {\n JsonRpcRequestWithOrigin,\n KeyringControllerGetStateAction,\n} from '../types';\nimport type { MethodHooksObject } from '../utils';\n\n/**\n * A list of permissions that the requesting origin must have at least one of\n * in order to call this method.\n */\nconst REQUIRED_PERMISSIONS = [\n getBip32EntropyBuilder.targetName,\n getBip32PublicKeyBuilder.targetName,\n getBip44EntropyBuilder.targetName,\n getEntropyBuilder.targetName,\n];\n\n/**\n * The keyring type used by HD (mnemonic-based) keyrings.\n */\nconst HD_KEYRING_TYPE = 'HD Key Tree';\n\nconst hookNames: MethodHooksObject<ListEntropySourcesMethodHooks> = {\n getUnlockPromise: true,\n};\n\nexport type ListEntropySourcesMethodHooks = {\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\nexport type ListEntropySourcesMethodActions =\n | PermissionControllerHasPermissionAction\n | KeyringControllerGetStateAction;\n\n/**\n * Get a list of entropy sources available to the Snap. The requesting origin\n * must have at least one of the following permissions to access entropy source\n * metadata:\n *\n * - `snap_getBip32Entropy`\n * - `snap_getBip32PublicKey`\n * - `snap_getBip44Entropy`\n * - `snap_getEntropy`\n *\n * @example\n * ```json name=\"Manifest\"\n * {\n * \"initialPermissions\": {\n * \"snap_getBip32Entropy\": {}\n * }\n * }\n * ```\n * ```ts name=\"Usage\"\n * const entropySources = await snap.request({ method: 'snap_listEntropySources' });\n * console.log(entropySources);\n * // Example output:\n * // [\n * // {\n * // name: 'Mnemonic 1',\n * // id: 'mnemonic-1',\n * // type: 'mnemonic',\n * // primary: true,\n * // },\n * // {\n * // name: 'Mnemonic 2',\n * // id: 'mnemonic-2',\n * // type: 'mnemonic',\n * // primary: false,\n * // },\n * // ]\n * ```\n */\nexport const listEntropySourcesHandler = {\n implementation: listEntropySourcesImplementation,\n hookNames,\n actionNames: [\n 'PermissionController:hasPermission',\n 'KeyringController:getState',\n ],\n} satisfies MethodHandler<\n ListEntropySourcesMethodHooks,\n ListEntropySourcesMethodActions,\n ListEntropySourcesParams,\n ListEntropySourcesResult,\n { origin: string }\n>;\n\n/**\n * The `snap_listEntropySources` 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.getUnlockPromise - The function to get the unlock promise.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function listEntropySourcesImplementation(\n request: JsonRpcRequestWithOrigin<ListEntropySourcesParams>,\n response: PendingJsonRpcResponse<ListEntropySourcesResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getUnlockPromise }: ListEntropySourcesMethodHooks,\n messenger: Messenger<string, ListEntropySourcesMethodActions>,\n): Promise<void> {\n const { origin } = request;\n\n const isPermitted = REQUIRED_PERMISSIONS.some((permission) =>\n messenger.call('PermissionController:hasPermission', origin, permission),\n );\n\n if (!isPermitted) {\n return end(providerErrors.unauthorized());\n }\n\n await getUnlockPromise(true);\n\n const { keyrings } = messenger.call('KeyringController:getState');\n\n response.result = keyrings\n .map((keyring, index) => {\n if (keyring.type === HD_KEYRING_TYPE) {\n return {\n id: keyring.metadata.id,\n name: keyring.metadata.name,\n type: 'mnemonic',\n primary: index === 0,\n };\n }\n\n return null;\n })\n .filter((entropySource): entropySource is EntropySource =>\n Boolean(entropySource),\n );\n\n return end();\n}\n"]}
|
|
@@ -1,39 +1,89 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createSnapsMethodMiddleware = void 0;
|
|
4
|
+
const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
|
|
4
5
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
6
|
const snaps_utils_1 = require("@metamask/snaps-utils");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
7
|
+
const cancelBackgroundEvent_1 = require("./cancelBackgroundEvent.cjs");
|
|
8
|
+
const clearState_1 = require("./clearState.cjs");
|
|
9
|
+
const closeWebSocket_1 = require("./closeWebSocket.cjs");
|
|
10
|
+
const createInterface_1 = require("./createInterface.cjs");
|
|
11
|
+
const endTrace_1 = require("./endTrace.cjs");
|
|
12
|
+
const getAllSnaps_1 = require("./getAllSnaps.cjs");
|
|
13
|
+
const getBackgroundEvents_1 = require("./getBackgroundEvents.cjs");
|
|
14
|
+
const getClientStatus_1 = require("./getClientStatus.cjs");
|
|
15
|
+
const getFile_1 = require("./getFile.cjs");
|
|
16
|
+
const getInterfaceContext_1 = require("./getInterfaceContext.cjs");
|
|
17
|
+
const getInterfaceState_1 = require("./getInterfaceState.cjs");
|
|
18
|
+
const getSnaps_1 = require("./getSnaps.cjs");
|
|
19
|
+
const getState_1 = require("./getState.cjs");
|
|
20
|
+
const getWebSockets_1 = require("./getWebSockets.cjs");
|
|
21
|
+
const invokeKeyring_1 = require("./invokeKeyring.cjs");
|
|
22
|
+
const invokeSnapSugar_1 = require("./invokeSnapSugar.cjs");
|
|
23
|
+
const listEntropySources_1 = require("./listEntropySources.cjs");
|
|
24
|
+
const openWebSocket_1 = require("./openWebSocket.cjs");
|
|
25
|
+
const requestSnaps_1 = require("./requestSnaps.cjs");
|
|
26
|
+
const resolveInterface_1 = require("./resolveInterface.cjs");
|
|
27
|
+
const scheduleBackgroundEvent_1 = require("./scheduleBackgroundEvent.cjs");
|
|
28
|
+
const sendWebSocketMessage_1 = require("./sendWebSocketMessage.cjs");
|
|
29
|
+
const setState_1 = require("./setState.cjs");
|
|
30
|
+
const startTrace_1 = require("./startTrace.cjs");
|
|
31
|
+
const trackError_1 = require("./trackError.cjs");
|
|
32
|
+
const trackEvent_1 = require("./trackEvent.cjs");
|
|
33
|
+
const updateInterface_1 = require("./updateInterface.cjs");
|
|
34
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
35
|
+
const methodHandlers = {
|
|
36
|
+
wallet_getAllSnaps: getAllSnaps_1.getAllSnapsHandler,
|
|
37
|
+
wallet_getSnaps: getSnaps_1.getSnapsHandler,
|
|
38
|
+
wallet_requestSnaps: requestSnaps_1.requestSnapsHandler,
|
|
39
|
+
wallet_invokeSnap: invokeSnapSugar_1.invokeSnapSugarHandler,
|
|
40
|
+
wallet_invokeKeyring: invokeKeyring_1.invokeKeyringHandler,
|
|
41
|
+
snap_clearState: clearState_1.clearStateHandler,
|
|
42
|
+
snap_getClientStatus: getClientStatus_1.getClientStatusHandler,
|
|
43
|
+
snap_getFile: getFile_1.getFileHandler,
|
|
44
|
+
snap_getState: getState_1.getStateHandler,
|
|
45
|
+
snap_createInterface: createInterface_1.createInterfaceHandler,
|
|
46
|
+
snap_updateInterface: updateInterface_1.updateInterfaceHandler,
|
|
47
|
+
snap_getInterfaceState: getInterfaceState_1.getInterfaceStateHandler,
|
|
48
|
+
snap_getInterfaceContext: getInterfaceContext_1.getInterfaceContextHandler,
|
|
49
|
+
snap_listEntropySources: listEntropySources_1.listEntropySourcesHandler,
|
|
50
|
+
snap_resolveInterface: resolveInterface_1.resolveInterfaceHandler,
|
|
51
|
+
snap_scheduleBackgroundEvent: scheduleBackgroundEvent_1.scheduleBackgroundEventHandler,
|
|
52
|
+
snap_cancelBackgroundEvent: cancelBackgroundEvent_1.cancelBackgroundEventHandler,
|
|
53
|
+
snap_getBackgroundEvents: getBackgroundEvents_1.getBackgroundEventsHandler,
|
|
54
|
+
snap_setState: setState_1.setStateHandler,
|
|
55
|
+
snap_trackError: trackError_1.trackErrorHandler,
|
|
56
|
+
snap_trackEvent: trackEvent_1.trackEventHandler,
|
|
57
|
+
snap_openWebSocket: openWebSocket_1.openWebSocketHandler,
|
|
58
|
+
snap_closeWebSocket: closeWebSocket_1.closeWebSocketHandler,
|
|
59
|
+
snap_sendWebSocketMessage: sendWebSocketMessage_1.sendWebSocketMessageHandler,
|
|
60
|
+
snap_getWebSockets: getWebSockets_1.getWebSocketsHandler,
|
|
61
|
+
snap_startTrace: startTrace_1.startTraceHandler,
|
|
62
|
+
snap_endTrace: endTrace_1.endTraceHandler,
|
|
63
|
+
};
|
|
64
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
8
65
|
/**
|
|
9
66
|
* Creates a middleware that handles permitted snap RPC methods.
|
|
10
67
|
*
|
|
11
68
|
* @param isSnap - A flag that should indicate whether the requesting origin is a snap or not.
|
|
12
69
|
* @param hooks - An object containing the hooks made available to the permitted RPC methods.
|
|
70
|
+
* @param messenger - The messenger.
|
|
13
71
|
* @returns The middleware.
|
|
14
72
|
*/
|
|
15
|
-
function createSnapsMethodMiddleware(isSnap, hooks) {
|
|
73
|
+
function createSnapsMethodMiddleware(isSnap, hooks, messenger) {
|
|
74
|
+
const nestedMiddleware = (0, json_rpc_engine_1.createMethodMiddleware)({
|
|
75
|
+
handlers: methodHandlers,
|
|
76
|
+
hooks,
|
|
77
|
+
messenger,
|
|
78
|
+
onError: snaps_utils_1.logError,
|
|
79
|
+
});
|
|
16
80
|
// This is not actually a misused promise, the type is just wrong
|
|
17
81
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
18
82
|
return async function methodMiddleware(request, response, next, end) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (String.prototype.startsWith.call(request.method, 'snap_') &&
|
|
22
|
-
!isSnap) {
|
|
23
|
-
return end(rpc_errors_1.rpcErrors.methodNotFound());
|
|
24
|
-
}
|
|
25
|
-
// TODO: Once json-rpc-engine types are up to date, we should type this correctly
|
|
26
|
-
const { implementation, hookNames } = handler;
|
|
27
|
-
try {
|
|
28
|
-
// Implementations may or may not be async, so we must await them.
|
|
29
|
-
return await implementation(request, response, next, end, (0, utils_1.selectHooks)(hooks, hookNames));
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
(0, snaps_utils_1.logError)(error);
|
|
33
|
-
return end(error);
|
|
34
|
-
}
|
|
83
|
+
if (String.prototype.startsWith.call(request.method, 'snap_') && !isSnap) {
|
|
84
|
+
return end(rpc_errors_1.rpcErrors.methodNotFound());
|
|
35
85
|
}
|
|
36
|
-
return next
|
|
86
|
+
return nestedMiddleware(request, response, next, end);
|
|
37
87
|
};
|
|
38
88
|
}
|
|
39
89
|
exports.createSnapsMethodMiddleware = createSnapsMethodMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.cjs","sourceRoot":"","sources":["../../src/permitted/middleware.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"middleware.cjs","sourceRoot":"","sources":["../../src/permitted/middleware.ts"],"names":[],"mappings":";;;AAAA,+DAGmC;AAEnC,qDAAiD;AACjD,uDAAiD;AAIjD,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;AACzD,MAAM,cAAc,GAAG;IACrB,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;AAExD;;;;;;;GAOG;AACH,SAAgB,2BAA2B,CACzC,MAAe,EACf,KAA8B,EAC9B,SAAuD;IAEvD,MAAM,gBAAgB,GAAG,IAAA,wCAAsB,EAAC;QAC9C,QAAQ,EAAE,cAAc;QACxB,KAAK;QACL,SAAS;QACT,OAAO,EAAE,sBAAQ;KAClB,CAAC,CAAC;IAEH,iEAAiE;IACjE,kEAAkE;IAClE,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;QACjE,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACzE,OAAO,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AArBD,kEAqBC","sourcesContent":["import {\n createMethodMiddleware,\n type JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport type { PermittedRpcMethodActions, PermittedRpcMethodHooks } from '.';\nimport { 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 */\nconst 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\n/**\n * Creates a middleware that handles permitted snap RPC methods.\n *\n * @param isSnap - A flag that should indicate whether the requesting origin is a snap or not.\n * @param hooks - An object containing the hooks made available to the permitted RPC methods.\n * @param messenger - The messenger.\n * @returns The middleware.\n */\nexport function createSnapsMethodMiddleware(\n isSnap: boolean,\n hooks: PermittedRpcMethodHooks,\n messenger: Messenger<string, PermittedRpcMethodActions>,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n const nestedMiddleware = createMethodMiddleware({\n handlers: methodHandlers,\n hooks,\n messenger,\n onError: logError,\n });\n\n // This is not actually a misused promise, the type is just wrong\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n if (String.prototype.startsWith.call(request.method, 'snap_') && !isSnap) {\n return end(rpcErrors.methodNotFound());\n }\n\n return nestedMiddleware(request, response, next, end);\n };\n}\n"]}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type JsonRpcMiddleware } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { Messenger } from "@metamask/messenger";
|
|
2
3
|
import type { Json, JsonRpcParams } from "@metamask/utils";
|
|
4
|
+
import type { PermittedRpcMethodActions, PermittedRpcMethodHooks } from "./index.cjs";
|
|
3
5
|
/**
|
|
4
6
|
* Creates a middleware that handles permitted snap RPC methods.
|
|
5
7
|
*
|
|
6
8
|
* @param isSnap - A flag that should indicate whether the requesting origin is a snap or not.
|
|
7
9
|
* @param hooks - An object containing the hooks made available to the permitted RPC methods.
|
|
10
|
+
* @param messenger - The messenger.
|
|
8
11
|
* @returns The middleware.
|
|
9
12
|
*/
|
|
10
|
-
export declare function createSnapsMethodMiddleware(isSnap: boolean, hooks:
|
|
13
|
+
export declare function createSnapsMethodMiddleware(isSnap: boolean, hooks: PermittedRpcMethodHooks, messenger: Messenger<string, PermittedRpcMethodActions>): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
11
14
|
//# sourceMappingURL=middleware.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.cts","sourceRoot":"","sources":["../../src/permitted/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"middleware.d.cts","sourceRoot":"","sources":["../../src/permitted/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AAGrD,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAE3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,oBAAU;AA6D5E;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,uBAAuB,EAC9B,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,yBAAyB,CAAC,GACtD,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAiBxC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type JsonRpcMiddleware } from "@metamask/json-rpc-engine";
|
|
2
|
+
import type { Messenger } from "@metamask/messenger";
|
|
2
3
|
import type { Json, JsonRpcParams } from "@metamask/utils";
|
|
4
|
+
import type { PermittedRpcMethodActions, PermittedRpcMethodHooks } from "./index.mjs";
|
|
3
5
|
/**
|
|
4
6
|
* Creates a middleware that handles permitted snap RPC methods.
|
|
5
7
|
*
|
|
6
8
|
* @param isSnap - A flag that should indicate whether the requesting origin is a snap or not.
|
|
7
9
|
* @param hooks - An object containing the hooks made available to the permitted RPC methods.
|
|
10
|
+
* @param messenger - The messenger.
|
|
8
11
|
* @returns The middleware.
|
|
9
12
|
*/
|
|
10
|
-
export declare function createSnapsMethodMiddleware(isSnap: boolean, hooks:
|
|
13
|
+
export declare function createSnapsMethodMiddleware(isSnap: boolean, hooks: PermittedRpcMethodHooks, messenger: Messenger<string, PermittedRpcMethodActions>): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
11
14
|
//# sourceMappingURL=middleware.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.mts","sourceRoot":"","sources":["../../src/permitted/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"middleware.d.mts","sourceRoot":"","sources":["../../src/permitted/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AAGrD,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAE3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,oBAAU;AA6D5E;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,uBAAuB,EAC9B,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,yBAAyB,CAAC,GACtD,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAiBxC"}
|
|
@@ -1,36 +1,86 @@
|
|
|
1
|
+
import { createMethodMiddleware } from "@metamask/json-rpc-engine";
|
|
1
2
|
import { rpcErrors } from "@metamask/rpc-errors";
|
|
2
3
|
import { logError } from "@metamask/snaps-utils";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { cancelBackgroundEventHandler } from "./cancelBackgroundEvent.mjs";
|
|
5
|
+
import { clearStateHandler } from "./clearState.mjs";
|
|
6
|
+
import { closeWebSocketHandler } from "./closeWebSocket.mjs";
|
|
7
|
+
import { createInterfaceHandler } from "./createInterface.mjs";
|
|
8
|
+
import { endTraceHandler } from "./endTrace.mjs";
|
|
9
|
+
import { getAllSnapsHandler } from "./getAllSnaps.mjs";
|
|
10
|
+
import { getBackgroundEventsHandler } from "./getBackgroundEvents.mjs";
|
|
11
|
+
import { getClientStatusHandler } from "./getClientStatus.mjs";
|
|
12
|
+
import { getFileHandler } from "./getFile.mjs";
|
|
13
|
+
import { getInterfaceContextHandler } from "./getInterfaceContext.mjs";
|
|
14
|
+
import { getInterfaceStateHandler } from "./getInterfaceState.mjs";
|
|
15
|
+
import { getSnapsHandler } from "./getSnaps.mjs";
|
|
16
|
+
import { getStateHandler } from "./getState.mjs";
|
|
17
|
+
import { getWebSocketsHandler } from "./getWebSockets.mjs";
|
|
18
|
+
import { invokeKeyringHandler } from "./invokeKeyring.mjs";
|
|
19
|
+
import { invokeSnapSugarHandler } from "./invokeSnapSugar.mjs";
|
|
20
|
+
import { listEntropySourcesHandler } from "./listEntropySources.mjs";
|
|
21
|
+
import { openWebSocketHandler } from "./openWebSocket.mjs";
|
|
22
|
+
import { requestSnapsHandler } from "./requestSnaps.mjs";
|
|
23
|
+
import { resolveInterfaceHandler } from "./resolveInterface.mjs";
|
|
24
|
+
import { scheduleBackgroundEventHandler } from "./scheduleBackgroundEvent.mjs";
|
|
25
|
+
import { sendWebSocketMessageHandler } from "./sendWebSocketMessage.mjs";
|
|
26
|
+
import { setStateHandler } from "./setState.mjs";
|
|
27
|
+
import { startTraceHandler } from "./startTrace.mjs";
|
|
28
|
+
import { trackErrorHandler } from "./trackError.mjs";
|
|
29
|
+
import { trackEventHandler } from "./trackEvent.mjs";
|
|
30
|
+
import { updateInterfaceHandler } from "./updateInterface.mjs";
|
|
31
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
32
|
+
const methodHandlers = {
|
|
33
|
+
wallet_getAllSnaps: getAllSnapsHandler,
|
|
34
|
+
wallet_getSnaps: getSnapsHandler,
|
|
35
|
+
wallet_requestSnaps: requestSnapsHandler,
|
|
36
|
+
wallet_invokeSnap: invokeSnapSugarHandler,
|
|
37
|
+
wallet_invokeKeyring: invokeKeyringHandler,
|
|
38
|
+
snap_clearState: clearStateHandler,
|
|
39
|
+
snap_getClientStatus: getClientStatusHandler,
|
|
40
|
+
snap_getFile: getFileHandler,
|
|
41
|
+
snap_getState: getStateHandler,
|
|
42
|
+
snap_createInterface: createInterfaceHandler,
|
|
43
|
+
snap_updateInterface: updateInterfaceHandler,
|
|
44
|
+
snap_getInterfaceState: getInterfaceStateHandler,
|
|
45
|
+
snap_getInterfaceContext: getInterfaceContextHandler,
|
|
46
|
+
snap_listEntropySources: listEntropySourcesHandler,
|
|
47
|
+
snap_resolveInterface: resolveInterfaceHandler,
|
|
48
|
+
snap_scheduleBackgroundEvent: scheduleBackgroundEventHandler,
|
|
49
|
+
snap_cancelBackgroundEvent: cancelBackgroundEventHandler,
|
|
50
|
+
snap_getBackgroundEvents: getBackgroundEventsHandler,
|
|
51
|
+
snap_setState: setStateHandler,
|
|
52
|
+
snap_trackError: trackErrorHandler,
|
|
53
|
+
snap_trackEvent: trackEventHandler,
|
|
54
|
+
snap_openWebSocket: openWebSocketHandler,
|
|
55
|
+
snap_closeWebSocket: closeWebSocketHandler,
|
|
56
|
+
snap_sendWebSocketMessage: sendWebSocketMessageHandler,
|
|
57
|
+
snap_getWebSockets: getWebSocketsHandler,
|
|
58
|
+
snap_startTrace: startTraceHandler,
|
|
59
|
+
snap_endTrace: endTraceHandler,
|
|
60
|
+
};
|
|
61
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
5
62
|
/**
|
|
6
63
|
* Creates a middleware that handles permitted snap RPC methods.
|
|
7
64
|
*
|
|
8
65
|
* @param isSnap - A flag that should indicate whether the requesting origin is a snap or not.
|
|
9
66
|
* @param hooks - An object containing the hooks made available to the permitted RPC methods.
|
|
67
|
+
* @param messenger - The messenger.
|
|
10
68
|
* @returns The middleware.
|
|
11
69
|
*/
|
|
12
|
-
export function createSnapsMethodMiddleware(isSnap, hooks) {
|
|
70
|
+
export function createSnapsMethodMiddleware(isSnap, hooks, messenger) {
|
|
71
|
+
const nestedMiddleware = createMethodMiddleware({
|
|
72
|
+
handlers: methodHandlers,
|
|
73
|
+
hooks,
|
|
74
|
+
messenger,
|
|
75
|
+
onError: logError,
|
|
76
|
+
});
|
|
13
77
|
// This is not actually a misused promise, the type is just wrong
|
|
14
78
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
15
79
|
return async function methodMiddleware(request, response, next, end) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (String.prototype.startsWith.call(request.method, 'snap_') &&
|
|
19
|
-
!isSnap) {
|
|
20
|
-
return end(rpcErrors.methodNotFound());
|
|
21
|
-
}
|
|
22
|
-
// TODO: Once json-rpc-engine types are up to date, we should type this correctly
|
|
23
|
-
const { implementation, hookNames } = handler;
|
|
24
|
-
try {
|
|
25
|
-
// Implementations may or may not be async, so we must await them.
|
|
26
|
-
return await implementation(request, response, next, end, selectHooks(hooks, hookNames));
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
logError(error);
|
|
30
|
-
return end(error);
|
|
31
|
-
}
|
|
80
|
+
if (String.prototype.startsWith.call(request.method, 'snap_') && !isSnap) {
|
|
81
|
+
return end(rpcErrors.methodNotFound());
|
|
32
82
|
}
|
|
33
|
-
return next
|
|
83
|
+
return nestedMiddleware(request, response, next, end);
|
|
34
84
|
};
|
|
35
85
|
}
|
|
36
86
|
//# sourceMappingURL=middleware.mjs.map
|