@metamask/snaps-jest 5.0.0 → 6.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 +10 -1
- package/dist/chunk-2KLZ7GOW.js +15 -0
- package/dist/chunk-2KLZ7GOW.js.map +1 -0
- package/dist/chunk-2M7WQ26F.js +28 -0
- package/dist/chunk-2M7WQ26F.js.map +1 -0
- package/dist/chunk-34GS3AHA.js +33 -0
- package/dist/chunk-34GS3AHA.js.map +1 -0
- package/dist/chunk-3CC2NI7R.js +80 -0
- package/dist/chunk-3CC2NI7R.js.map +1 -0
- package/dist/chunk-3IUQA6YL.mjs +1 -0
- package/dist/chunk-3IUQA6YL.mjs.map +1 -0
- package/dist/chunk-3KCEPGJA.js +39 -0
- package/dist/chunk-3KCEPGJA.js.map +1 -0
- package/dist/chunk-3KQYPQZY.js +20 -0
- package/dist/chunk-3KQYPQZY.js.map +1 -0
- package/dist/chunk-3O5OISLU.js +16 -0
- package/dist/chunk-3O5OISLU.js.map +1 -0
- package/dist/chunk-3ZW2EE3B.js +1 -0
- package/dist/chunk-3ZW2EE3B.js.map +1 -0
- package/dist/chunk-4FCRZDOX.js +134 -0
- package/dist/chunk-4FCRZDOX.js.map +1 -0
- package/dist/chunk-4HY4SM3A.js +1 -0
- package/dist/chunk-4HY4SM3A.js.map +1 -0
- package/dist/chunk-4JUUFDTC.js +104 -0
- package/dist/chunk-4JUUFDTC.js.map +1 -0
- package/dist/chunk-4VCE3DRR.mjs +34 -0
- package/dist/chunk-4VCE3DRR.mjs.map +1 -0
- package/dist/chunk-4WCFXE73.js +48 -0
- package/dist/chunk-4WCFXE73.js.map +1 -0
- package/dist/chunk-5IUHGC5S.js +153 -0
- package/dist/chunk-5IUHGC5S.js.map +1 -0
- package/dist/chunk-5O6VBW42.js +42 -0
- package/dist/chunk-5O6VBW42.js.map +1 -0
- package/dist/chunk-6IMEYERE.js +137 -0
- package/dist/chunk-6IMEYERE.js.map +1 -0
- package/dist/chunk-6KNT4UMX.mjs +35 -0
- package/dist/chunk-6KNT4UMX.mjs.map +1 -0
- package/dist/chunk-6RDNSELT.mjs +39 -0
- package/dist/chunk-6RDNSELT.mjs.map +1 -0
- package/dist/chunk-72YN2D26.mjs +60 -0
- package/dist/chunk-72YN2D26.mjs.map +1 -0
- package/dist/chunk-7JLVQJK7.js +14 -0
- package/dist/chunk-7JLVQJK7.js.map +1 -0
- package/dist/chunk-AH7YNG6N.js +22 -0
- package/dist/chunk-AH7YNG6N.js.map +1 -0
- package/dist/chunk-AIZADBRK.mjs +36 -0
- package/dist/chunk-AIZADBRK.mjs.map +1 -0
- package/dist/chunk-AKFRQ5EJ.mjs +42 -0
- package/dist/chunk-AKFRQ5EJ.mjs.map +1 -0
- package/dist/chunk-AUB7XPDH.mjs +28 -0
- package/dist/chunk-AUB7XPDH.mjs.map +1 -0
- package/dist/chunk-BJMTD7H2.mjs +20 -0
- package/dist/chunk-BJMTD7H2.mjs.map +1 -0
- package/dist/chunk-BN5VBVT3.mjs +233 -0
- package/dist/chunk-BN5VBVT3.mjs.map +1 -0
- package/dist/chunk-CKOGTHM4.mjs +22 -0
- package/dist/chunk-CKOGTHM4.mjs.map +1 -0
- package/dist/chunk-CZQKOZLR.js +11 -0
- package/dist/chunk-CZQKOZLR.js.map +1 -0
- package/dist/chunk-D36QBJ35.js +24 -0
- package/dist/{cjs/internals/simulation/methods/hooks/show-dialog.js.map → chunk-D36QBJ35.js.map} +1 -1
- package/dist/chunk-DEFFA5IJ.mjs +24 -0
- package/dist/chunk-DEFFA5IJ.mjs.map +1 -0
- package/dist/chunk-EFB6AQPB.js +36 -0
- package/dist/chunk-EFB6AQPB.js.map +1 -0
- package/dist/chunk-EOCDSPT7.mjs +97 -0
- package/dist/chunk-EOCDSPT7.mjs.map +1 -0
- package/dist/chunk-FPFX5AKR.mjs +36 -0
- package/dist/chunk-FPFX5AKR.mjs.map +1 -0
- package/dist/chunk-HBT34TJ2.mjs +1 -0
- package/dist/chunk-HBT34TJ2.mjs.map +1 -0
- package/dist/chunk-HBVDXIVN.mjs +80 -0
- package/dist/chunk-HBVDXIVN.mjs.map +1 -0
- package/dist/chunk-HMF2CKYT.mjs +39 -0
- package/dist/chunk-HMF2CKYT.mjs.map +1 -0
- package/dist/chunk-HP56MLQ3.js +1 -0
- package/dist/chunk-HP56MLQ3.js.map +1 -0
- package/dist/chunk-I5LVU57H.mjs +69 -0
- package/dist/chunk-I5LVU57H.mjs.map +1 -0
- package/dist/chunk-I7FLOZU7.mjs +1 -0
- package/dist/chunk-I7FLOZU7.mjs.map +1 -0
- package/dist/chunk-J2ID3DS7.mjs +33 -0
- package/dist/chunk-J2ID3DS7.mjs.map +1 -0
- package/dist/chunk-JA7RJLI7.js +34 -0
- package/dist/chunk-JA7RJLI7.js.map +1 -0
- package/dist/chunk-JB2H2XEL.mjs +1 -0
- package/dist/chunk-JB2H2XEL.mjs.map +1 -0
- package/dist/chunk-JDN3VGMO.js +21 -0
- package/dist/chunk-JDN3VGMO.js.map +1 -0
- package/dist/chunk-JGQJFYU4.js +57 -0
- package/dist/chunk-JGQJFYU4.js.map +1 -0
- package/dist/chunk-JJCX335U.mjs +91 -0
- package/dist/chunk-JJCX335U.mjs.map +1 -0
- package/dist/chunk-JMDSN227.mjs +25 -0
- package/dist/chunk-JMDSN227.mjs.map +1 -0
- package/dist/chunk-JXOKRTEH.mjs +11 -0
- package/dist/chunk-JXOKRTEH.mjs.map +1 -0
- package/dist/chunk-JZJWUVD7.mjs +1 -0
- package/dist/chunk-JZJWUVD7.mjs.map +1 -0
- package/dist/chunk-K2KTKFLP.js +76 -0
- package/dist/chunk-K2KTKFLP.js.map +1 -0
- package/dist/chunk-KGIWSGTT.js +91 -0
- package/dist/chunk-KGIWSGTT.js.map +1 -0
- package/dist/chunk-KPXLJ6RH.js +60 -0
- package/dist/chunk-KPXLJ6RH.js.map +1 -0
- package/dist/chunk-LD5PSHHT.mjs +57 -0
- package/dist/chunk-LD5PSHHT.mjs.map +1 -0
- package/dist/chunk-LNNKGOHQ.mjs +16 -0
- package/dist/chunk-LNNKGOHQ.mjs.map +1 -0
- package/dist/chunk-MNDF32ZV.js +8 -0
- package/dist/chunk-MNDF32ZV.js.map +1 -0
- package/dist/chunk-MSQ7Q2VJ.mjs +13 -0
- package/dist/chunk-MSQ7Q2VJ.mjs.map +1 -0
- package/dist/chunk-O3VJYBFN.mjs +15 -0
- package/dist/chunk-O3VJYBFN.mjs.map +1 -0
- package/dist/chunk-O4MJRHZD.js +69 -0
- package/dist/chunk-O4MJRHZD.js.map +1 -0
- package/dist/chunk-OC64PNDU.mjs +21 -0
- package/dist/chunk-OC64PNDU.mjs.map +1 -0
- package/dist/chunk-ON6M4WG5.js +36 -0
- package/dist/chunk-ON6M4WG5.js.map +1 -0
- package/dist/chunk-P7JA42ZC.mjs +153 -0
- package/dist/chunk-P7JA42ZC.mjs.map +1 -0
- package/dist/chunk-PHUTP7NB.js +25 -0
- package/dist/chunk-PHUTP7NB.js.map +1 -0
- package/dist/chunk-QFPRGU5L.mjs +104 -0
- package/dist/chunk-QFPRGU5L.mjs.map +1 -0
- package/dist/chunk-QMHWGASM.js +1 -0
- package/dist/chunk-QMHWGASM.js.map +1 -0
- package/dist/chunk-QNDLJ2W7.js +1 -0
- package/dist/chunk-QNDLJ2W7.js.map +1 -0
- package/dist/chunk-QUUILTDY.mjs +137 -0
- package/dist/chunk-QUUILTDY.mjs.map +1 -0
- package/dist/chunk-R7ORBTUD.js +1 -0
- package/dist/chunk-R7ORBTUD.js.map +1 -0
- package/dist/chunk-RQBZLDXL.js +233 -0
- package/dist/chunk-RQBZLDXL.js.map +1 -0
- package/dist/chunk-S3DHQTXB.js +1 -0
- package/dist/chunk-S3DHQTXB.js.map +1 -0
- package/dist/chunk-SWSSV3LK.js +35 -0
- package/dist/chunk-SWSSV3LK.js.map +1 -0
- package/dist/chunk-T4TRX3ZR.js +22 -0
- package/dist/chunk-T4TRX3ZR.js.map +1 -0
- package/dist/chunk-UXHKMILA.mjs +1 -0
- package/dist/chunk-UXHKMILA.mjs.map +1 -0
- package/dist/chunk-VCXM6FKU.mjs +1 -0
- package/dist/chunk-VCXM6FKU.mjs.map +1 -0
- package/dist/chunk-VHTVUQWR.mjs +14 -0
- package/dist/chunk-VHTVUQWR.mjs.map +1 -0
- package/dist/chunk-VNQIROKZ.js +97 -0
- package/dist/chunk-VNQIROKZ.js.map +1 -0
- package/dist/chunk-VXQOXWRO.mjs +48 -0
- package/dist/chunk-VXQOXWRO.mjs.map +1 -0
- package/dist/chunk-VYKYQSUI.mjs +22 -0
- package/dist/chunk-VYKYQSUI.mjs.map +1 -0
- package/dist/chunk-WEI35OIM.mjs +8 -0
- package/dist/chunk-WEI35OIM.mjs.map +1 -0
- package/dist/chunk-WL2GRM5E.mjs +76 -0
- package/dist/chunk-WL2GRM5E.mjs.map +1 -0
- package/dist/chunk-XDZPH5WD.js +39 -0
- package/dist/chunk-XDZPH5WD.js.map +1 -0
- package/dist/chunk-Y5NWZU43.js +13 -0
- package/dist/chunk-Y5NWZU43.js.map +1 -0
- package/dist/chunk-YZFWCFMG.js +1 -0
- package/dist/chunk-YZFWCFMG.js.map +1 -0
- package/dist/chunk-ZCE26WZM.mjs +1 -0
- package/dist/chunk-ZCE26WZM.mjs.map +1 -0
- package/dist/chunk-ZZPKZRJQ.mjs +134 -0
- package/dist/chunk-ZZPKZRJQ.mjs.map +1 -0
- package/dist/environment.js +47 -0
- package/dist/environment.js.map +1 -0
- package/dist/environment.mjs +47 -0
- package/dist/environment.mjs.map +1 -0
- package/dist/helpers.js +44 -0
- package/dist/helpers.js.map +1 -0
- package/dist/helpers.mjs +44 -0
- package/dist/helpers.mjs.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +54 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internals/environment.js +8 -0
- package/dist/internals/environment.js.map +1 -0
- package/dist/internals/environment.mjs +8 -0
- package/dist/internals/environment.mjs.map +1 -0
- package/dist/internals/index.js +123 -0
- package/dist/internals/index.js.map +1 -0
- package/dist/internals/index.mjs +123 -0
- package/dist/internals/index.mjs.map +1 -0
- package/dist/internals/logger.js +8 -0
- package/dist/internals/logger.js.map +1 -0
- package/dist/internals/logger.mjs +8 -0
- package/dist/internals/logger.mjs.map +1 -0
- package/dist/internals/request.js +40 -0
- package/dist/internals/request.js.map +1 -0
- package/dist/internals/request.mjs +40 -0
- package/dist/internals/request.mjs.map +1 -0
- package/dist/internals/server.js +9 -0
- package/dist/internals/server.js.map +1 -0
- package/dist/internals/server.mjs +9 -0
- package/dist/internals/server.mjs.map +1 -0
- package/dist/internals/simulation/constants.js +12 -0
- package/dist/internals/simulation/constants.js.map +1 -0
- package/dist/internals/simulation/constants.mjs +12 -0
- package/dist/internals/simulation/constants.mjs.map +1 -0
- package/dist/internals/simulation/controllers.js +26 -0
- package/dist/internals/simulation/controllers.js.map +1 -0
- package/dist/internals/simulation/controllers.mjs +26 -0
- package/dist/internals/simulation/controllers.mjs.map +1 -0
- package/dist/internals/simulation/files.js +8 -0
- package/dist/internals/simulation/files.js.map +1 -0
- package/dist/internals/simulation/files.mjs +8 -0
- package/dist/internals/simulation/files.mjs.map +1 -0
- package/dist/internals/simulation/index.js +90 -0
- package/dist/internals/simulation/index.js.map +1 -0
- package/dist/internals/simulation/index.mjs +90 -0
- package/dist/internals/simulation/index.mjs.map +1 -0
- package/dist/internals/simulation/interface.js +16 -0
- package/dist/internals/simulation/interface.js.map +1 -0
- package/dist/internals/simulation/interface.mjs +16 -0
- package/dist/internals/simulation/interface.mjs.map +1 -0
- package/dist/internals/simulation/methods/constants.js +12 -0
- package/dist/internals/simulation/methods/constants.js.map +1 -0
- package/dist/internals/simulation/methods/constants.mjs +12 -0
- package/dist/internals/simulation/methods/constants.mjs.map +1 -0
- package/dist/internals/simulation/methods/hooks/encryption.js +10 -0
- package/dist/internals/simulation/methods/hooks/encryption.js.map +1 -0
- package/dist/internals/simulation/methods/hooks/encryption.mjs +10 -0
- package/dist/internals/simulation/methods/hooks/encryption.mjs.map +1 -0
- package/dist/internals/simulation/methods/hooks/get-locale.js +8 -0
- package/dist/internals/simulation/methods/hooks/get-locale.js.map +1 -0
- package/dist/internals/simulation/methods/hooks/get-locale.mjs +8 -0
- package/dist/internals/simulation/methods/hooks/get-locale.mjs.map +1 -0
- package/dist/internals/simulation/methods/hooks/index.js +45 -0
- package/dist/internals/simulation/methods/hooks/index.js.map +1 -0
- package/dist/internals/simulation/methods/hooks/index.mjs +45 -0
- package/dist/internals/simulation/methods/hooks/index.mjs.map +1 -0
- package/dist/internals/simulation/methods/hooks/interface.js +10 -0
- package/dist/internals/simulation/methods/hooks/interface.js.map +1 -0
- package/dist/internals/simulation/methods/hooks/interface.mjs +10 -0
- package/dist/internals/simulation/methods/hooks/interface.mjs.map +1 -0
- package/dist/internals/simulation/methods/hooks/notifications.js +16 -0
- package/dist/internals/simulation/methods/hooks/notifications.js.map +1 -0
- package/dist/internals/simulation/methods/hooks/notifications.mjs +16 -0
- package/dist/internals/simulation/methods/hooks/notifications.mjs.map +1 -0
- package/dist/internals/simulation/methods/hooks/show-dialog.js +14 -0
- package/dist/internals/simulation/methods/hooks/show-dialog.js.map +1 -0
- package/dist/internals/simulation/methods/hooks/show-dialog.mjs +14 -0
- package/dist/internals/simulation/methods/hooks/show-dialog.mjs.map +1 -0
- package/dist/internals/simulation/methods/hooks/state.js +18 -0
- package/dist/internals/simulation/methods/hooks/state.js.map +1 -0
- package/dist/internals/simulation/methods/hooks/state.mjs +18 -0
- package/dist/internals/simulation/methods/hooks/state.mjs.map +1 -0
- package/dist/internals/simulation/methods/index.js +29 -0
- package/dist/internals/simulation/methods/index.js.map +1 -0
- package/dist/internals/simulation/methods/index.mjs +29 -0
- package/dist/internals/simulation/methods/index.mjs.map +1 -0
- package/dist/internals/simulation/methods/specifications.js +28 -0
- package/dist/internals/simulation/methods/specifications.js.map +1 -0
- package/dist/internals/simulation/methods/specifications.mjs +28 -0
- package/dist/internals/simulation/methods/specifications.mjs.map +1 -0
- package/dist/internals/simulation/middleware/engine.js +15 -0
- package/dist/internals/simulation/middleware/engine.js.map +1 -0
- package/dist/internals/simulation/middleware/engine.mjs +15 -0
- package/dist/internals/simulation/middleware/engine.mjs.map +1 -0
- package/dist/internals/simulation/middleware/index.js +16 -0
- package/dist/internals/simulation/middleware/index.js.map +1 -0
- package/dist/internals/simulation/middleware/index.mjs +16 -0
- package/dist/internals/simulation/middleware/index.mjs.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/accounts.js +8 -0
- package/dist/internals/simulation/middleware/internal-methods/accounts.js.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/accounts.mjs +8 -0
- package/dist/internals/simulation/middleware/internal-methods/accounts.mjs.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/index.js +11 -0
- package/dist/internals/simulation/middleware/internal-methods/index.js.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/index.mjs +11 -0
- package/dist/internals/simulation/middleware/internal-methods/index.mjs.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/middleware.js +10 -0
- package/dist/internals/simulation/middleware/internal-methods/middleware.js.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/middleware.mjs +10 -0
- package/dist/internals/simulation/middleware/internal-methods/middleware.mjs.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/provider-state.js +8 -0
- package/dist/internals/simulation/middleware/internal-methods/provider-state.js.map +1 -0
- package/dist/internals/simulation/middleware/internal-methods/provider-state.mjs +8 -0
- package/dist/internals/simulation/middleware/internal-methods/provider-state.mjs.map +1 -0
- package/dist/internals/simulation/middleware/mock.js +9 -0
- package/dist/internals/simulation/middleware/mock.js.map +1 -0
- package/dist/internals/simulation/middleware/mock.mjs +9 -0
- package/dist/internals/simulation/middleware/mock.mjs.map +1 -0
- package/dist/internals/simulation/options.js +9 -0
- package/dist/internals/simulation/options.js.map +1 -0
- package/dist/internals/simulation/options.mjs +9 -0
- package/dist/internals/simulation/options.mjs.map +1 -0
- package/dist/internals/simulation/simulation.js +39 -0
- package/dist/internals/simulation/simulation.js.map +1 -0
- package/dist/internals/simulation/simulation.mjs +39 -0
- package/dist/internals/simulation/simulation.mjs.map +1 -0
- package/dist/internals/simulation/store/index.js +44 -0
- package/dist/internals/simulation/store/index.js.map +1 -0
- package/dist/internals/simulation/store/index.mjs +44 -0
- package/dist/internals/simulation/store/index.mjs.map +1 -0
- package/dist/internals/simulation/store/mocks.js +16 -0
- package/dist/internals/simulation/store/mocks.js.map +1 -0
- package/dist/internals/simulation/store/mocks.mjs +16 -0
- package/dist/internals/simulation/store/mocks.mjs.map +1 -0
- package/dist/internals/simulation/store/notifications.js +16 -0
- package/dist/internals/simulation/store/notifications.js.map +1 -0
- package/dist/internals/simulation/store/notifications.mjs +16 -0
- package/dist/internals/simulation/store/notifications.mjs.map +1 -0
- package/dist/internals/simulation/store/state.js +14 -0
- package/dist/internals/simulation/store/state.js.map +1 -0
- package/dist/internals/simulation/store/state.mjs +14 -0
- package/dist/internals/simulation/store/state.mjs.map +1 -0
- package/dist/internals/simulation/store/store.js +12 -0
- package/dist/internals/simulation/store/store.js.map +1 -0
- package/dist/internals/simulation/store/store.mjs +12 -0
- package/dist/internals/simulation/store/store.mjs.map +1 -0
- package/dist/internals/simulation/store/ui.js +16 -0
- package/dist/internals/simulation/store/ui.js.map +1 -0
- package/dist/internals/simulation/store/ui.mjs +16 -0
- package/dist/internals/simulation/store/ui.mjs.map +1 -0
- package/dist/internals/structs.js +18 -0
- package/dist/internals/structs.js.map +1 -0
- package/dist/internals/structs.mjs +18 -0
- package/dist/internals/structs.mjs.map +1 -0
- package/dist/matchers.js +50 -0
- package/dist/matchers.js.map +1 -0
- package/dist/matchers.mjs +50 -0
- package/dist/matchers.mjs.map +1 -0
- package/dist/options.js +8 -0
- package/dist/options.js.map +1 -0
- package/dist/options.mjs +8 -0
- package/dist/options.mjs.map +1 -0
- package/dist/setup.js +39 -0
- package/dist/setup.js.map +1 -0
- package/dist/setup.mjs +39 -0
- package/dist/setup.mjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/vendor/readable-stream.d.js +1 -0
- package/dist/types/vendor/readable-stream.d.js.map +1 -0
- package/dist/types/vendor/readable-stream.d.mjs +1 -0
- package/dist/types/vendor/readable-stream.d.mjs.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +2 -0
- package/dist/types.mjs.map +1 -0
- package/jest-preset.js +1 -1
- package/package.json +24 -20
- package/dist/cjs/environment.js +0 -144
- package/dist/cjs/environment.js.map +0 -1
- package/dist/cjs/helpers.js +0 -142
- package/dist/cjs/helpers.js.map +0 -1
- package/dist/cjs/index.js +0 -42
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internals/environment.js +0 -19
- package/dist/cjs/internals/environment.js.map +0 -1
- package/dist/cjs/internals/index.js +0 -25
- package/dist/cjs/internals/index.js.map +0 -1
- package/dist/cjs/internals/logger.js +0 -14
- package/dist/cjs/internals/logger.js.map +0 -1
- package/dist/cjs/internals/request.js +0 -69
- package/dist/cjs/internals/request.js.map +0 -1
- package/dist/cjs/internals/server.js +0 -71
- package/dist/cjs/internals/server.js.map +0 -1
- package/dist/cjs/internals/simulation/constants.js +0 -29
- package/dist/cjs/internals/simulation/constants.js.map +0 -1
- package/dist/cjs/internals/simulation/controllers.js +0 -95
- package/dist/cjs/internals/simulation/controllers.js.map +0 -1
- package/dist/cjs/internals/simulation/files.js +0 -22
- package/dist/cjs/internals/simulation/files.js.map +0 -1
- package/dist/cjs/internals/simulation/index.js +0 -24
- package/dist/cjs/internals/simulation/index.js.map +0 -1
- package/dist/cjs/internals/simulation/interface.js +0 -98
- package/dist/cjs/internals/simulation/interface.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/constants.js +0 -84
- package/dist/cjs/internals/simulation/methods/constants.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/hooks/encryption.js +0 -33
- package/dist/cjs/internals/simulation/methods/hooks/encryption.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/hooks/get-locale.js +0 -17
- package/dist/cjs/internals/simulation/methods/hooks/get-locale.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/hooks/index.js +0 -25
- package/dist/cjs/internals/simulation/methods/hooks/index.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/hooks/interface.js +0 -26
- package/dist/cjs/internals/simulation/methods/hooks/interface.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/hooks/notifications.js +0 -66
- package/dist/cjs/internals/simulation/methods/hooks/notifications.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/hooks/show-dialog.js +0 -43
- package/dist/cjs/internals/simulation/methods/hooks/state.js +0 -80
- package/dist/cjs/internals/simulation/methods/hooks/state.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/index.js +0 -20
- package/dist/cjs/internals/simulation/methods/index.js.map +0 -1
- package/dist/cjs/internals/simulation/methods/specifications.js +0 -81
- package/dist/cjs/internals/simulation/methods/specifications.js.map +0 -1
- package/dist/cjs/internals/simulation/middleware/engine.js +0 -31
- package/dist/cjs/internals/simulation/middleware/engine.js.map +0 -1
- package/dist/cjs/internals/simulation/middleware/index.js +0 -20
- package/dist/cjs/internals/simulation/middleware/index.js.map +0 -1
- package/dist/cjs/internals/simulation/middleware/internal-methods/accounts.js +0 -30
- package/dist/cjs/internals/simulation/middleware/internal-methods/accounts.js.map +0 -1
- package/dist/cjs/internals/simulation/middleware/internal-methods/index.js +0 -20
- package/dist/cjs/internals/simulation/middleware/internal-methods/index.js.map +0 -1
- package/dist/cjs/internals/simulation/middleware/internal-methods/middleware.js +0 -37
- package/dist/cjs/internals/simulation/middleware/internal-methods/middleware.js.map +0 -1
- package/dist/cjs/internals/simulation/middleware/internal-methods/provider-state.js +0 -23
- package/dist/cjs/internals/simulation/middleware/internal-methods/provider-state.js.map +0 -1
- package/dist/cjs/internals/simulation/middleware/mock.js +0 -23
- package/dist/cjs/internals/simulation/middleware/mock.js.map +0 -1
- package/dist/cjs/internals/simulation/options.js +0 -24
- package/dist/cjs/internals/simulation/options.js.map +0 -1
- package/dist/cjs/internals/simulation/simulation.js +0 -124
- package/dist/cjs/internals/simulation/simulation.js.map +0 -1
- package/dist/cjs/internals/simulation/store/index.js +0 -23
- package/dist/cjs/internals/simulation/store/index.js.map +0 -1
- package/dist/cjs/internals/simulation/store/mocks.js +0 -52
- package/dist/cjs/internals/simulation/store/mocks.js.map +0 -1
- package/dist/cjs/internals/simulation/store/notifications.js +0 -52
- package/dist/cjs/internals/simulation/store/notifications.js.map +0 -1
- package/dist/cjs/internals/simulation/store/state.js +0 -64
- package/dist/cjs/internals/simulation/store/state.js.map +0 -1
- package/dist/cjs/internals/simulation/store/store.js +0 -57
- package/dist/cjs/internals/simulation/store/store.js.map +0 -1
- package/dist/cjs/internals/simulation/store/ui.js +0 -48
- package/dist/cjs/internals/simulation/store/ui.js.map +0 -1
- package/dist/cjs/internals/structs.js +0 -165
- package/dist/cjs/internals/structs.js.map +0 -1
- package/dist/cjs/matchers.js +0 -120
- package/dist/cjs/matchers.js.map +0 -1
- package/dist/cjs/options.js +0 -23
- package/dist/cjs/options.js.map +0 -1
- package/dist/cjs/setup.js +0 -10
- package/dist/cjs/setup.js.map +0 -1
- package/dist/cjs/types.js +0 -6
- package/dist/cjs/types.js.map +0 -1
- package/dist/esm/environment.js +0 -121
- package/dist/esm/environment.js.map +0 -1
- package/dist/esm/helpers.js +0 -163
- package/dist/esm/helpers.js.map +0 -1
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internals/environment.js +0 -14
- package/dist/esm/internals/environment.js.map +0 -1
- package/dist/esm/internals/index.js +0 -8
- package/dist/esm/internals/index.js.map +0 -1
- package/dist/esm/internals/logger.js +0 -4
- package/dist/esm/internals/logger.js.map +0 -1
- package/dist/esm/internals/request.js +0 -77
- package/dist/esm/internals/request.js.map +0 -1
- package/dist/esm/internals/server.js +0 -64
- package/dist/esm/internals/server.js.map +0 -1
- package/dist/esm/internals/simulation/constants.js +0 -12
- package/dist/esm/internals/simulation/constants.js.map +0 -1
- package/dist/esm/internals/simulation/controllers.js +0 -90
- package/dist/esm/internals/simulation/controllers.js.map +0 -1
- package/dist/esm/internals/simulation/files.js +0 -19
- package/dist/esm/internals/simulation/files.js.map +0 -1
- package/dist/esm/internals/simulation/index.js +0 -7
- package/dist/esm/internals/simulation/index.js.map +0 -1
- package/dist/esm/internals/simulation/interface.js +0 -95
- package/dist/esm/internals/simulation/interface.js.map +0 -1
- package/dist/esm/internals/simulation/methods/constants.js +0 -69
- package/dist/esm/internals/simulation/methods/constants.js.map +0 -1
- package/dist/esm/internals/simulation/methods/hooks/encryption.js +0 -39
- package/dist/esm/internals/simulation/methods/hooks/encryption.js.map +0 -1
- package/dist/esm/internals/simulation/methods/hooks/get-locale.js +0 -13
- package/dist/esm/internals/simulation/methods/hooks/get-locale.js.map +0 -1
- package/dist/esm/internals/simulation/methods/hooks/index.js +0 -8
- package/dist/esm/internals/simulation/methods/hooks/index.js.map +0 -1
- package/dist/esm/internals/simulation/methods/hooks/interface.js +0 -18
- package/dist/esm/internals/simulation/methods/hooks/interface.js.map +0 -1
- package/dist/esm/internals/simulation/methods/hooks/notifications.js +0 -58
- package/dist/esm/internals/simulation/methods/hooks/notifications.js.map +0 -1
- package/dist/esm/internals/simulation/methods/hooks/show-dialog.js +0 -38
- package/dist/esm/internals/simulation/methods/hooks/show-dialog.js.map +0 -1
- package/dist/esm/internals/simulation/methods/hooks/state.js +0 -74
- package/dist/esm/internals/simulation/methods/hooks/state.js.map +0 -1
- package/dist/esm/internals/simulation/methods/index.js +0 -3
- package/dist/esm/internals/simulation/methods/index.js.map +0 -1
- package/dist/esm/internals/simulation/methods/specifications.js +0 -84
- package/dist/esm/internals/simulation/methods/specifications.js.map +0 -1
- package/dist/esm/internals/simulation/middleware/engine.js +0 -33
- package/dist/esm/internals/simulation/middleware/engine.js.map +0 -1
- package/dist/esm/internals/simulation/middleware/index.js +0 -3
- package/dist/esm/internals/simulation/middleware/index.js.map +0 -1
- package/dist/esm/internals/simulation/middleware/internal-methods/accounts.js +0 -31
- package/dist/esm/internals/simulation/middleware/internal-methods/accounts.js.map +0 -1
- package/dist/esm/internals/simulation/middleware/internal-methods/index.js +0 -3
- package/dist/esm/internals/simulation/middleware/internal-methods/index.js.map +0 -1
- package/dist/esm/internals/simulation/middleware/internal-methods/middleware.js +0 -37
- package/dist/esm/internals/simulation/middleware/internal-methods/middleware.js.map +0 -1
- package/dist/esm/internals/simulation/middleware/internal-methods/provider-state.js +0 -23
- package/dist/esm/internals/simulation/middleware/internal-methods/provider-state.js.map +0 -1
- package/dist/esm/internals/simulation/middleware/mock.js +0 -18
- package/dist/esm/internals/simulation/middleware/mock.js.map +0 -1
- package/dist/esm/internals/simulation/options.js +0 -20
- package/dist/esm/internals/simulation/options.js.map +0 -1
- package/dist/esm/internals/simulation/simulation.js +0 -128
- package/dist/esm/internals/simulation/simulation.js.map +0 -1
- package/dist/esm/internals/simulation/store/index.js +0 -6
- package/dist/esm/internals/simulation/store/index.js.map +0 -1
- package/dist/esm/internals/simulation/store/mocks.js +0 -32
- package/dist/esm/internals/simulation/store/mocks.js.map +0 -1
- package/dist/esm/internals/simulation/store/notifications.js +0 -30
- package/dist/esm/internals/simulation/store/notifications.js.map +0 -1
- package/dist/esm/internals/simulation/store/state.js +0 -47
- package/dist/esm/internals/simulation/store/state.js.map +0 -1
- package/dist/esm/internals/simulation/store/store.js +0 -50
- package/dist/esm/internals/simulation/store/store.js.map +0 -1
- package/dist/esm/internals/simulation/store/ui.js +0 -21
- package/dist/esm/internals/simulation/store/ui.js.map +0 -1
- package/dist/esm/internals/structs.js +0 -135
- package/dist/esm/internals/structs.js.map +0 -1
- package/dist/esm/matchers.js +0 -111
- package/dist/esm/matchers.js.map +0 -1
- package/dist/esm/options.js +0 -20
- package/dist/esm/options.js.map +0 -1
- package/dist/esm/setup.js +0 -6
- package/dist/esm/setup.js.map +0 -1
- package/dist/esm/types.js +0 -3
- package/dist/esm/types.js.map +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// src/internals/simulation/store/ui.ts
|
|
2
|
+
import { createAction, createSelector, createSlice } from "@reduxjs/toolkit";
|
|
3
|
+
var INITIAL_STATE = {
|
|
4
|
+
current: null
|
|
5
|
+
};
|
|
6
|
+
var uiSlice = createSlice({
|
|
7
|
+
name: "ui",
|
|
8
|
+
initialState: INITIAL_STATE,
|
|
9
|
+
reducers: {
|
|
10
|
+
setInterface(state, action) {
|
|
11
|
+
state.current = action.payload;
|
|
12
|
+
},
|
|
13
|
+
closeInterface(state) {
|
|
14
|
+
state.current = null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var resolveInterface = createAction(
|
|
19
|
+
`${uiSlice.name}/resolveInterface`
|
|
20
|
+
);
|
|
21
|
+
var { setInterface, closeInterface } = uiSlice.actions;
|
|
22
|
+
var getCurrentInterface = createSelector(
|
|
23
|
+
(state) => state.ui,
|
|
24
|
+
(ui) => ui.current
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
uiSlice,
|
|
29
|
+
resolveInterface,
|
|
30
|
+
setInterface,
|
|
31
|
+
closeInterface,
|
|
32
|
+
getCurrentInterface
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=chunk-4VCE3DRR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/store/ui.ts"],"sourcesContent":["import type { DialogType } from '@metamask/snaps-sdk';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createAction, createSelector, createSlice } from '@reduxjs/toolkit';\n\nimport type { ApplicationState } from './store';\n\nexport type Interface = {\n type: DialogType;\n id: string;\n};\n\nexport type UiState = {\n current?: Interface | null;\n};\n\nconst INITIAL_STATE: UiState = {\n current: null,\n};\n\nexport const uiSlice = createSlice({\n name: 'ui',\n initialState: INITIAL_STATE,\n reducers: {\n setInterface(state, action: PayloadAction<Interface>) {\n state.current = action.payload;\n },\n closeInterface(state) {\n state.current = null;\n },\n },\n});\n\nexport const resolveInterface = createAction<unknown>(\n `${uiSlice.name}/resolveInterface`,\n);\n\nexport const { setInterface, closeInterface } = uiSlice.actions;\n\nexport const getCurrentInterface = createSelector(\n (state: ApplicationState) => state.ui,\n (ui) => ui.current,\n);\n"],"mappings":";AAEA,SAAS,cAAc,gBAAgB,mBAAmB;AAa1D,IAAM,gBAAyB;AAAA,EAC7B,SAAS;AACX;AAEO,IAAM,UAAU,YAAY;AAAA,EACjC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,UAAU;AAAA,IACR,aAAa,OAAO,QAAkC;AACpD,YAAM,UAAU,OAAO;AAAA,IACzB;AAAA,IACA,eAAe,OAAO;AACpB,YAAM,UAAU;AAAA,IAClB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,mBAAmB;AAAA,EAC9B,GAAG,QAAQ,IAAI;AACjB;AAEO,IAAM,EAAE,cAAc,eAAe,IAAI,QAAQ;AAEjD,IAAM,sBAAsB;AAAA,EACjC,CAAC,UAA4B,MAAM;AAAA,EACnC,CAAC,OAAO,GAAG;AACb;","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/internals/simulation/store/state.ts
|
|
2
|
+
var _toolkit = require('@reduxjs/toolkit');
|
|
3
|
+
var INITIAL_STATE = {
|
|
4
|
+
encrypted: null,
|
|
5
|
+
unencrypted: null
|
|
6
|
+
};
|
|
7
|
+
var stateSlice = _toolkit.createSlice.call(void 0, {
|
|
8
|
+
name: "state",
|
|
9
|
+
initialState: INITIAL_STATE,
|
|
10
|
+
reducers: {
|
|
11
|
+
setState: (state, action) => {
|
|
12
|
+
if (action.payload.encrypted) {
|
|
13
|
+
state.encrypted = action.payload.state;
|
|
14
|
+
return state;
|
|
15
|
+
}
|
|
16
|
+
state.unencrypted = action.payload.state;
|
|
17
|
+
return state;
|
|
18
|
+
},
|
|
19
|
+
clearState: (state, action) => {
|
|
20
|
+
if (action.payload.encrypted) {
|
|
21
|
+
state.encrypted = null;
|
|
22
|
+
return state;
|
|
23
|
+
}
|
|
24
|
+
state.unencrypted = null;
|
|
25
|
+
return state;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
var { setState, clearState } = stateSlice.actions;
|
|
30
|
+
function getState(encrypted) {
|
|
31
|
+
return _toolkit.createSelector.call(void 0,
|
|
32
|
+
(state) => state,
|
|
33
|
+
({ state }) => {
|
|
34
|
+
if (encrypted) {
|
|
35
|
+
return state.encrypted;
|
|
36
|
+
}
|
|
37
|
+
return state.unencrypted;
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
exports.stateSlice = stateSlice; exports.setState = setState; exports.clearState = clearState; exports.getState = getState;
|
|
48
|
+
//# sourceMappingURL=chunk-4WCFXE73.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/store/state.ts"],"names":[],"mappings":";AACA,SAAS,gBAAgB,mBAAmB;AAoB5C,IAAM,gBAAuB;AAAA,EAC3B,WAAW;AAAA,EACX,aAAa;AACf;AAKO,IAAM,aAAa,YAAY;AAAA,EACpC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,UAAU;AAAA,IACR,UAAU,CACR,OACA,WACG;AACH,UAAI,OAAO,QAAQ,WAAW;AAC5B,cAAM,YAAY,OAAO,QAAQ;AACjC,eAAO;AAAA,MACT;AAEA,YAAM,cAAc,OAAO,QAAQ;AACnC,aAAO;AAAA,IACT;AAAA,IACA,YAAY,CAAC,OAAO,WAAkD;AACpE,UAAI,OAAO,QAAQ,WAAW;AAC5B,cAAM,YAAY;AAClB,eAAO;AAAA,MACT;AAEA,YAAM,cAAc;AACpB,aAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAEM,IAAM,EAAE,UAAU,WAAW,IAAI,WAAW;AAQ5C,SAAS,SAAS,WAAoB;AAC3C,SAAO;AAAA,IACL,CAAC,UAA4B;AAAA,IAC7B,CAAC,EAAE,MAAM,MAAM;AACb,UAAI,WAAW;AACb,eAAO,MAAM;AAAA,MACf;AAEA,aAAO,MAAM;AAAA,IACf;AAAA,EACF;AACF","sourcesContent":["import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSelector, createSlice } from '@reduxjs/toolkit';\n\nimport type { ApplicationState } from './store';\n\n/**\n * The Snap state object.\n *\n * @property encrypted - The encrypted state. Can be null if the Snap does not\n * have an encrypted state.\n * @property unencrypted - The unencrypted state. Can be null if the Snap does\n * not have an unencrypted state.\n */\nexport type State = {\n encrypted: string | null;\n unencrypted: string | null;\n};\n\n/**\n * The initial state.\n */\nconst INITIAL_STATE: State = {\n encrypted: null,\n unencrypted: null,\n};\n\n/**\n * The state slice, which stores the state of the Snap.\n */\nexport const stateSlice = createSlice({\n name: 'state',\n initialState: INITIAL_STATE,\n reducers: {\n setState: (\n state,\n action: PayloadAction<{ state: string | null; encrypted: boolean }>,\n ) => {\n if (action.payload.encrypted) {\n state.encrypted = action.payload.state;\n return state;\n }\n\n state.unencrypted = action.payload.state;\n return state;\n },\n clearState: (state, action: PayloadAction<{ encrypted: boolean }>) => {\n if (action.payload.encrypted) {\n state.encrypted = null;\n return state;\n }\n\n state.unencrypted = null;\n return state;\n },\n },\n});\n\nexport const { setState, clearState } = stateSlice.actions;\n\n/**\n * Get the state from the store.\n *\n * @param encrypted - Whether to get the encrypted or unencrypted state.\n * @returns A selector that returns the state.\n */\nexport function getState(encrypted: boolean) {\n return createSelector(\n (state: ApplicationState) => state,\n ({ state }) => {\n if (encrypted) {\n return state.encrypted;\n }\n\n return state.unencrypted;\n },\n );\n}\n"]}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunk3CC2NI7Rjs = require('./chunk-3CC2NI7R.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkMNDF32ZVjs = require('./chunk-MNDF32ZV.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
var _chunkRQBZLDXLjs = require('./chunk-RQBZLDXL.js');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _chunk34GS3AHAjs = require('./chunk-34GS3AHA.js');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _chunk7JLVQJK7js = require('./chunk-7JLVQJK7.js');
|
|
19
|
+
|
|
20
|
+
// src/helpers.ts
|
|
21
|
+
var _snapsutils = require('@metamask/snaps-utils');
|
|
22
|
+
var _utils = require('@metamask/utils');
|
|
23
|
+
var _superstruct = require('superstruct');
|
|
24
|
+
var log = _utils.createModuleLogger.call(void 0, _chunkMNDF32ZVjs.rootLogger, "helpers");
|
|
25
|
+
function getOptions(snapId, options) {
|
|
26
|
+
if (typeof snapId === "object") {
|
|
27
|
+
return [void 0, snapId];
|
|
28
|
+
}
|
|
29
|
+
return [snapId, options];
|
|
30
|
+
}
|
|
31
|
+
async function installSnap(snapId, options = {}) {
|
|
32
|
+
const resolvedOptions = getOptions(snapId, options);
|
|
33
|
+
const {
|
|
34
|
+
snapId: installedSnapId,
|
|
35
|
+
store,
|
|
36
|
+
executionService,
|
|
37
|
+
runSaga,
|
|
38
|
+
controllerMessenger
|
|
39
|
+
} = await _chunk7JLVQJK7js.getEnvironment.call(void 0, ).installSnap(...resolvedOptions);
|
|
40
|
+
const onTransaction = async (request) => {
|
|
41
|
+
log("Sending transaction %o.", request);
|
|
42
|
+
const {
|
|
43
|
+
origin: transactionOrigin,
|
|
44
|
+
chainId,
|
|
45
|
+
...transaction
|
|
46
|
+
} = _superstruct.create.call(void 0, request, _chunkRQBZLDXLjs.TransactionOptionsStruct);
|
|
47
|
+
return _chunk3CC2NI7Rjs.handleRequest.call(void 0, {
|
|
48
|
+
snapId: installedSnapId,
|
|
49
|
+
store,
|
|
50
|
+
executionService,
|
|
51
|
+
runSaga,
|
|
52
|
+
controllerMessenger,
|
|
53
|
+
handler: _snapsutils.HandlerType.OnTransaction,
|
|
54
|
+
request: {
|
|
55
|
+
method: "",
|
|
56
|
+
params: {
|
|
57
|
+
chainId,
|
|
58
|
+
transaction,
|
|
59
|
+
transactionOrigin
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const onCronjob = (request) => {
|
|
65
|
+
log("Running cronjob %o.", options);
|
|
66
|
+
return _chunk3CC2NI7Rjs.handleRequest.call(void 0, {
|
|
67
|
+
snapId: installedSnapId,
|
|
68
|
+
store,
|
|
69
|
+
executionService,
|
|
70
|
+
controllerMessenger,
|
|
71
|
+
runSaga,
|
|
72
|
+
handler: _snapsutils.HandlerType.OnCronjob,
|
|
73
|
+
request
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
request: (request) => {
|
|
78
|
+
log("Sending request %o.", request);
|
|
79
|
+
return _chunk3CC2NI7Rjs.handleRequest.call(void 0, {
|
|
80
|
+
snapId: installedSnapId,
|
|
81
|
+
store,
|
|
82
|
+
executionService,
|
|
83
|
+
controllerMessenger,
|
|
84
|
+
runSaga,
|
|
85
|
+
handler: _snapsutils.HandlerType.OnRpcRequest,
|
|
86
|
+
request
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
onTransaction,
|
|
90
|
+
sendTransaction: onTransaction,
|
|
91
|
+
onSignature: async (request) => {
|
|
92
|
+
log("Requesting signature %o.", request);
|
|
93
|
+
const { origin: signatureOrigin, ...signature } = _superstruct.create.call(void 0,
|
|
94
|
+
request,
|
|
95
|
+
_chunkRQBZLDXLjs.SignatureOptionsStruct
|
|
96
|
+
);
|
|
97
|
+
return _chunk3CC2NI7Rjs.handleRequest.call(void 0, {
|
|
98
|
+
snapId: installedSnapId,
|
|
99
|
+
store,
|
|
100
|
+
executionService,
|
|
101
|
+
controllerMessenger,
|
|
102
|
+
runSaga,
|
|
103
|
+
handler: _snapsutils.HandlerType.OnSignature,
|
|
104
|
+
request: {
|
|
105
|
+
method: "",
|
|
106
|
+
params: {
|
|
107
|
+
signature,
|
|
108
|
+
signatureOrigin
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
onCronjob,
|
|
114
|
+
runCronjob: onCronjob,
|
|
115
|
+
onHomePage: async () => {
|
|
116
|
+
log("Rendering home page.");
|
|
117
|
+
return _chunk3CC2NI7Rjs.handleRequest.call(void 0, {
|
|
118
|
+
snapId: installedSnapId,
|
|
119
|
+
store,
|
|
120
|
+
executionService,
|
|
121
|
+
controllerMessenger,
|
|
122
|
+
runSaga,
|
|
123
|
+
handler: _snapsutils.HandlerType.OnHomePage,
|
|
124
|
+
request: {
|
|
125
|
+
method: ""
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
mockJsonRpc(mock) {
|
|
130
|
+
log("Mocking JSON-RPC request %o.", mock);
|
|
131
|
+
const { method, result } = _superstruct.create.call(void 0, mock, _chunkRQBZLDXLjs.JsonRpcMockOptionsStruct);
|
|
132
|
+
store.dispatch(_chunk34GS3AHAjs.addJsonRpcMock.call(void 0, { method, result }));
|
|
133
|
+
return {
|
|
134
|
+
unmock() {
|
|
135
|
+
log("Unmocking JSON-RPC request %o.", mock);
|
|
136
|
+
store.dispatch(_chunk34GS3AHAjs.removeJsonRpcMock.call(void 0, method));
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
close: async () => {
|
|
141
|
+
log("Closing execution service.");
|
|
142
|
+
_snapsutils.logInfo.call(void 0,
|
|
143
|
+
"Calling `snap.close()` is deprecated, and will be removed in a future release. Snaps are now automatically closed when the test ends."
|
|
144
|
+
);
|
|
145
|
+
await executionService.terminateAllSnaps();
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
exports.installSnap = installSnap;
|
|
153
|
+
//# sourceMappingURL=chunk-5IUHGC5S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AbstractExecutionService } from '@metamask/snaps-controllers';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { HandlerType, logInfo } from '@metamask/snaps-utils';\nimport { createModuleLogger } from '@metamask/utils';\nimport { create } from 'superstruct';\n\nimport {\n rootLogger,\n handleRequest,\n TransactionOptionsStruct,\n getEnvironment,\n JsonRpcMockOptionsStruct,\n SignatureOptionsStruct,\n} from './internals';\nimport type { InstallSnapOptions } from './internals';\nimport {\n addJsonRpcMock,\n removeJsonRpcMock,\n} from './internals/simulation/store/mocks';\nimport type {\n CronjobOptions,\n JsonRpcMockOptions,\n Snap,\n SnapResponse,\n TransactionOptions,\n} from './types';\n\nconst log = createModuleLogger(rootLogger, 'helpers');\n\n/**\n * Get the options for {@link installSnap}.\n *\n * @param snapId - The ID of the Snap, or the options.\n * @param options - The options, if any.\n * @returns The options.\n */\nfunction getOptions<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId: SnapId | Partial<InstallSnapOptions<Service>> | undefined,\n options: Partial<InstallSnapOptions<Service>>,\n): [SnapId | undefined, Partial<InstallSnapOptions<Service>>] {\n if (typeof snapId === 'object') {\n return [undefined, snapId];\n }\n\n return [snapId, options];\n}\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap(): Promise<Snap>;\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @param options - The options to use.\n * @param options.executionService - The execution service to use. Defaults to\n * {@link NodeThreadExecutionService}. You do not need to provide this unless\n * you are testing a custom execution service.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(options: Partial<InstallSnapOptions<Service>>): Promise<Snap>;\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @param snapId - The ID of the snap, including the prefix (`local:`). Defaults\n * to the URL of the built-in server, if it is running. This supports both\n * local snap IDs and NPM snap IDs.\n * @param options - The options to use.\n * @param options.executionService - The execution service to use. Defaults to\n * {@link NodeThreadExecutionService}. You do not need to provide this unless\n * you are testing a custom execution service.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId: SnapId,\n options?: Partial<InstallSnapOptions<Service>>,\n): Promise<Snap>;\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @param snapId - The ID of the snap, including the prefix (`local:`). Defaults\n * to the URL of the built-in server, if it is running. This supports both\n * local snap IDs and NPM snap IDs.\n * @param options - The options to use.\n * @param options.executionService - The execution service to use. Defaults to\n * {@link NodeThreadExecutionService}. You do not need to provide this unless\n * you are testing a custom execution service.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId?: SnapId | Partial<InstallSnapOptions<Service>>,\n options: Partial<InstallSnapOptions<Service>> = {},\n): Promise<Snap> {\n const resolvedOptions = getOptions(snapId, options);\n const {\n snapId: installedSnapId,\n store,\n executionService,\n runSaga,\n controllerMessenger,\n } = await getEnvironment().installSnap(...resolvedOptions);\n\n const onTransaction = async (\n request: TransactionOptions,\n ): Promise<SnapResponse> => {\n log('Sending transaction %o.', request);\n\n const {\n origin: transactionOrigin,\n chainId,\n ...transaction\n } = create(request, TransactionOptionsStruct);\n\n return handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n runSaga,\n controllerMessenger,\n handler: HandlerType.OnTransaction,\n request: {\n method: '',\n params: {\n chainId,\n transaction,\n transactionOrigin,\n },\n },\n });\n };\n\n const onCronjob = (request: CronjobOptions) => {\n log('Running cronjob %o.', options);\n\n return handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnCronjob,\n request,\n });\n };\n\n return {\n request: (request) => {\n log('Sending request %o.', request);\n\n return handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnRpcRequest,\n request,\n });\n },\n\n onTransaction,\n sendTransaction: onTransaction,\n\n onSignature: async (request: unknown): Promise<SnapResponse> => {\n log('Requesting signature %o.', request);\n\n const { origin: signatureOrigin, ...signature } = create(\n request,\n SignatureOptionsStruct,\n );\n\n return handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnSignature,\n request: {\n method: '',\n params: {\n signature,\n signatureOrigin,\n },\n },\n });\n },\n\n onCronjob,\n runCronjob: onCronjob,\n\n onHomePage: async (): Promise<SnapResponse> => {\n log('Rendering home page.');\n\n return handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnHomePage,\n request: {\n method: '',\n },\n });\n },\n\n mockJsonRpc(mock: JsonRpcMockOptions) {\n log('Mocking JSON-RPC request %o.', mock);\n\n const { method, result } = create(mock, JsonRpcMockOptionsStruct);\n store.dispatch(addJsonRpcMock({ method, result }));\n\n return {\n unmock() {\n log('Unmocking JSON-RPC request %o.', mock);\n\n store.dispatch(removeJsonRpcMock(method));\n },\n };\n },\n\n close: async () => {\n log('Closing execution service.');\n logInfo(\n 'Calling `snap.close()` is deprecated, and will be removed in a future release. Snaps are now automatically closed when the test ends.',\n );\n\n await executionService.terminateAllSnaps();\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkON6M4WG5js = require('./chunk-ON6M4WG5.js');
|
|
4
|
+
|
|
5
|
+
// src/internals/simulation/methods/hooks/notifications.ts
|
|
6
|
+
var _snapssdk = require('@metamask/snaps-sdk');
|
|
7
|
+
var _toolkit = require('@reduxjs/toolkit');
|
|
8
|
+
var _effects = require('redux-saga/effects');
|
|
9
|
+
function* showNativeNotificationImplementation(_snapId, { message }) {
|
|
10
|
+
yield _effects.put.call(void 0,
|
|
11
|
+
_chunkON6M4WG5js.addNotification.call(void 0, { id: _toolkit.nanoid.call(void 0, ), type: _snapssdk.NotificationType.Native, message })
|
|
12
|
+
);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
function getShowNativeNotificationImplementation(runSaga) {
|
|
16
|
+
return async (...args) => {
|
|
17
|
+
return await runSaga(
|
|
18
|
+
showNativeNotificationImplementation,
|
|
19
|
+
...args
|
|
20
|
+
).toPromise();
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function* showInAppNotificationImplementation(_snapId, { message }) {
|
|
24
|
+
yield _effects.put.call(void 0,
|
|
25
|
+
_chunkON6M4WG5js.addNotification.call(void 0, { id: _toolkit.nanoid.call(void 0, ), type: _snapssdk.NotificationType.InApp, message })
|
|
26
|
+
);
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
function getShowInAppNotificationImplementation(runSaga) {
|
|
30
|
+
return async (...args) => {
|
|
31
|
+
return await runSaga(
|
|
32
|
+
showInAppNotificationImplementation,
|
|
33
|
+
...args
|
|
34
|
+
).toPromise();
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
exports.getShowNativeNotificationImplementation = getShowNativeNotificationImplementation; exports.getShowInAppNotificationImplementation = getShowInAppNotificationImplementation;
|
|
42
|
+
//# sourceMappingURL=chunk-5O6VBW42.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/methods/hooks/notifications.ts"],"names":[],"mappings":";;;;;AACA,SAAS,wBAAwB;AACjC,SAAS,cAAc;AAEvB,SAAS,WAAW;AAcpB,UAAU,qCACR,SACA,EAAE,QAAQ,GACI;AACd,QAAM;AAAA,IACJ,gBAAgB,EAAE,IAAI,OAAO,GAAG,MAAM,iBAAiB,QAAQ,QAAQ,CAAC;AAAA,EAC1E;AAEA,SAAO;AACT;AAQO,SAAS,wCACd,SACA;AACA,SAAO,UACF,SACA;AACH,WAAO,MAAM;AAAA,MACX;AAAA,MACA,GAAG;AAAA,IACL,EAAE,UAAU;AAAA,EACd;AACF;AAWA,UAAU,oCACR,SACA,EAAE,QAAQ,GACU;AACpB,QAAM;AAAA,IACJ,gBAAgB,EAAE,IAAI,OAAO,GAAG,MAAM,iBAAiB,OAAO,QAAQ,CAAC;AAAA,EACzE;AAEA,SAAO;AACT;AAQO,SAAS,uCACd,SACA;AACA,SAAO,UACF,SACA;AACH,WAAO,MAAM;AAAA,MACX;AAAA,MACA,GAAG;AAAA,IACL,EAAE,UAAU;AAAA,EACd;AACF","sourcesContent":["import type { NotifyParams } from '@metamask/snaps-sdk';\nimport { NotificationType } from '@metamask/snaps-sdk';\nimport { nanoid } from '@reduxjs/toolkit';\nimport type { SagaIterator } from 'redux-saga';\nimport { put } from 'redux-saga/effects';\n\nimport type { RunSagaFunction } from '../../store';\nimport { addNotification } from '../../store';\n\n/**\n * Show a native notification to the user.\n *\n * @param _snapId - The ID of the Snap that created the notification.\n * @param options - The notification options.\n * @param options.message - The message to show in the notification.\n * @yields Adds the notification to the store.\n * @returns `null`.\n */\nfunction* showNativeNotificationImplementation(\n _snapId: string,\n { message }: NotifyParams,\n): SagaIterator {\n yield put(\n addNotification({ id: nanoid(), type: NotificationType.Native, message }),\n );\n\n return null;\n}\n\n/**\n * Get a method that can be used to show a native notification.\n *\n * @param runSaga - A function to run a saga outside the usual Redux flow.\n * @returns A method that can be used to show a native notification.\n */\nexport function getShowNativeNotificationImplementation(\n runSaga: RunSagaFunction,\n) {\n return async (\n ...args: Parameters<typeof showNativeNotificationImplementation>\n ) => {\n return await runSaga(\n showNativeNotificationImplementation,\n ...args,\n ).toPromise();\n };\n}\n\n/**\n * Show an in-app notification to the user.\n *\n * @param _snapId - The ID of the Snap that created the notification.\n * @param options - The notification options.\n * @param options.message - The message to show in the notification.\n * @yields Adds the notification to the store.\n * @returns `null`.\n */\nfunction* showInAppNotificationImplementation(\n _snapId: string,\n { message }: NotifyParams,\n): SagaIterator<null> {\n yield put(\n addNotification({ id: nanoid(), type: NotificationType.InApp, message }),\n );\n\n return null;\n}\n\n/**\n * Get a method that can be used to show an in-app notification.\n *\n * @param runSaga - A function to run a saga outside the usual Redux flow.\n * @returns A method that can be used to show an in-app notification.\n */\nexport function getShowInAppNotificationImplementation(\n runSaga: RunSagaFunction,\n) {\n return async (\n ...args: Parameters<typeof showInAppNotificationImplementation>\n ) => {\n return await runSaga(\n showInAppNotificationImplementation,\n ...args,\n ).toPromise();\n };\n}\n"]}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
var _chunkXDZPH5WDjs = require('./chunk-XDZPH5WD.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkEFB6AQPBjs = require('./chunk-EFB6AQPB.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkKGIWSGTTjs = require('./chunk-KGIWSGTT.js');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkVNQIROKZjs = require('./chunk-VNQIROKZ.js');
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var _chunkJGQJFYU4js = require('./chunk-JGQJFYU4.js');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
var _chunk3O5OISLUjs = require('./chunk-3O5OISLU.js');
|
|
20
|
+
|
|
21
|
+
// src/internals/simulation/simulation.ts
|
|
22
|
+
var _basecontroller = require('@metamask/base-controller');
|
|
23
|
+
var _jsonrpcmiddlewarestream = require('@metamask/json-rpc-middleware-stream');
|
|
24
|
+
var _keytree = require('@metamask/key-tree');
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
var _node = require('@metamask/snaps-controllers/node');
|
|
31
|
+
var _snapsrpcmethods = require('@metamask/snaps-rpc-methods');
|
|
32
|
+
var _snapsutils = require('@metamask/snaps-utils');
|
|
33
|
+
var _readablestream = require('readable-stream');
|
|
34
|
+
async function handleInstallSnap(snapId, {
|
|
35
|
+
executionService,
|
|
36
|
+
executionServiceOptions,
|
|
37
|
+
options: rawOptions = {}
|
|
38
|
+
} = {}) {
|
|
39
|
+
const options = _chunkEFB6AQPBjs.getOptions.call(void 0, rawOptions);
|
|
40
|
+
const location = _node.detectSnapLocation.call(void 0, snapId, {
|
|
41
|
+
allowLocal: true
|
|
42
|
+
});
|
|
43
|
+
const snapFiles = await _node.fetchSnap.call(void 0, snapId, location);
|
|
44
|
+
const password = await _snapsrpcmethods.getEncryptionKey.call(void 0, {
|
|
45
|
+
mnemonicPhrase: _keytree.mnemonicPhraseToBytes.call(void 0, options.secretRecoveryPhrase),
|
|
46
|
+
snapId
|
|
47
|
+
});
|
|
48
|
+
const { store, runSaga } = _chunkJGQJFYU4js.createStore.call(void 0, password, options);
|
|
49
|
+
const controllerMessenger = new (0, _basecontroller.ControllerMessenger)();
|
|
50
|
+
registerActions(controllerMessenger);
|
|
51
|
+
const hooks = getHooks(options, snapFiles, snapId, controllerMessenger);
|
|
52
|
+
const { subjectMetadataController, permissionController } = _chunkKGIWSGTTjs.getControllers.call(void 0, {
|
|
53
|
+
controllerMessenger,
|
|
54
|
+
hooks,
|
|
55
|
+
runSaga,
|
|
56
|
+
options
|
|
57
|
+
});
|
|
58
|
+
const engine = _chunkXDZPH5WDjs.createJsonRpcEngine.call(void 0, {
|
|
59
|
+
store,
|
|
60
|
+
hooks,
|
|
61
|
+
permissionMiddleware: permissionController.createPermissionMiddleware({
|
|
62
|
+
origin: snapId
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
const ExecutionService = _nullishCoalesce(executionService, () => ( _node.NodeThreadExecutionService));
|
|
66
|
+
const service = new ExecutionService({
|
|
67
|
+
...executionServiceOptions,
|
|
68
|
+
messenger: controllerMessenger.getRestricted({
|
|
69
|
+
name: "ExecutionService"
|
|
70
|
+
}),
|
|
71
|
+
setupSnapProvider: (_snapId, rpcStream) => {
|
|
72
|
+
const mux = _node.setupMultiplex.call(void 0, rpcStream, "snapStream");
|
|
73
|
+
const stream = mux.createStream("metamask-provider");
|
|
74
|
+
const providerStream = _jsonrpcmiddlewarestream.createEngineStream.call(void 0, { engine });
|
|
75
|
+
_readablestream.pipeline.call(void 0, stream, providerStream, stream, (error) => {
|
|
76
|
+
if (error) {
|
|
77
|
+
_snapsutils.logError.call(void 0, `Provider stream failure.`, error);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
await _chunkKGIWSGTTjs.registerSnap.call(void 0, snapId, snapFiles.manifest.result, {
|
|
83
|
+
permissionController,
|
|
84
|
+
subjectMetadataController
|
|
85
|
+
});
|
|
86
|
+
await service.executeSnap({
|
|
87
|
+
snapId,
|
|
88
|
+
sourceCode: snapFiles.sourceCode.toString("utf8"),
|
|
89
|
+
endowments: await _chunkVNQIROKZjs.getEndowments.call(void 0, permissionController, snapId)
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
snapId,
|
|
93
|
+
store,
|
|
94
|
+
executionService: service,
|
|
95
|
+
controllerMessenger,
|
|
96
|
+
runSaga
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function getHooks(options, snapFiles, snapId, controllerMessenger) {
|
|
100
|
+
return {
|
|
101
|
+
getMnemonic: async () => Promise.resolve(_keytree.mnemonicPhraseToBytes.call(void 0, options.secretRecoveryPhrase)),
|
|
102
|
+
getSnapFile: async (path, encoding) => await _chunk3O5OISLUjs.getSnapFile.call(void 0, snapFiles.auxiliaryFiles, path, encoding),
|
|
103
|
+
getIsLocked: () => false,
|
|
104
|
+
createInterface: async (...args) => controllerMessenger.call(
|
|
105
|
+
"SnapInterfaceController:createInterface",
|
|
106
|
+
snapId,
|
|
107
|
+
...args
|
|
108
|
+
),
|
|
109
|
+
updateInterface: async (...args) => controllerMessenger.call(
|
|
110
|
+
"SnapInterfaceController:updateInterface",
|
|
111
|
+
snapId,
|
|
112
|
+
...args
|
|
113
|
+
),
|
|
114
|
+
getInterfaceState: (...args) => controllerMessenger.call(
|
|
115
|
+
"SnapInterfaceController:getInterface",
|
|
116
|
+
snapId,
|
|
117
|
+
...args
|
|
118
|
+
).state
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function registerActions(controllerMessenger) {
|
|
122
|
+
controllerMessenger.registerActionHandler(
|
|
123
|
+
"PhishingController:maybeUpdateState",
|
|
124
|
+
async () => Promise.resolve()
|
|
125
|
+
);
|
|
126
|
+
controllerMessenger.registerActionHandler(
|
|
127
|
+
"PhishingController:testOrigin",
|
|
128
|
+
() => ({ result: false, type: "all" })
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
exports.handleInstallSnap = handleInstallSnap; exports.getHooks = getHooks; exports.registerActions = registerActions;
|
|
137
|
+
//# sourceMappingURL=chunk-6IMEYERE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/simulation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AAEtC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AAQjC,SAAS,gBAAgB;AAEzB,SAAS,gBAAgB;AAyGzB,eAAsB,kBAKpB,QACA;AAAA,EACE;AAAA,EACA;AAAA,EACA,SAAS,aAAa,CAAC;AACzB,IAA0C,CAAC,GACnB;AACxB,QAAM,UAAU,WAAW,UAAU;AAGrC,QAAM,WAAW,mBAAmB,QAAQ;AAAA,IAC1C,YAAY;AAAA,EACd,CAAC;AAED,QAAM,YAAY,MAAM,UAAU,QAAQ,QAAQ;AAGlD,QAAM,WAAW,MAAM,iBAAiB;AAAA,IACtC,gBAAgB,sBAAsB,QAAQ,oBAAoB;AAAA,IAClE;AAAA,EACF,CAAC;AAED,QAAM,EAAE,OAAO,QAAQ,IAAI,YAAY,UAAU,OAAO;AAExD,QAAM,sBAAsB,IAAI,oBAA8B;AAE9D,kBAAgB,mBAAmB;AAGnC,QAAM,QAAQ,SAAS,SAAS,WAAW,QAAQ,mBAAmB;AAEtE,QAAM,EAAE,2BAA2B,qBAAqB,IAAI,eAAe;AAAA,IACzE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,SAAS,oBAAoB;AAAA,IACjC;AAAA,IACA;AAAA,IACA,sBAAsB,qBAAqB,2BAA2B;AAAA,MACpE,QAAQ;AAAA,IACV,CAAC;AAAA,EACH,CAAC;AAGD,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,UAAU,IAAI,iBAAiB;AAAA,IACnC,GAAG;AAAA,IACH,WAAW,oBAAoB,cAAc;AAAA,MAC3C,MAAM;AAAA,IACR,CAAC;AAAA,IACD,mBAAmB,CAAC,SAAiB,cAAsB;AACzD,YAAM,MAAM,eAAe,WAAW,YAAY;AAClD,YAAM,SAAS,IAAI,aAAa,mBAAmB;AACnD,YAAM,iBAAiB,mBAAmB,EAAE,OAAO,CAAC;AAIpD,eAAS,QAAQ,gBAAgB,QAAQ,CAAC,UAAmB;AAC3D,YAAI,OAAO;AACT,mBAAS,4BAA4B,KAAK;AAAA,QAC5C;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAID,QAAM,aAAa,QAAQ,UAAU,SAAS,QAAQ;AAAA,IACpD;AAAA,IACA;AAAA,EACF,CAAC;AAGD,QAAM,QAAQ,YAAY;AAAA,IACxB;AAAA,IACA,YAAY,UAAU,WAAW,SAAS,MAAM;AAAA,IAChD,YAAY,MAAM,cAAc,sBAAsB,MAAM;AAAA,EAC9D,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,EACF;AACF;AAWO,SAAS,SACd,SACA,WACA,QACA,qBACiB;AACjB,SAAO;AAAA,IACL,aAAa,YACX,QAAQ,QAAQ,sBAAsB,QAAQ,oBAAoB,CAAC;AAAA,IACrE,aAAa,OAAO,MAAc,aAChC,MAAM,YAAY,UAAU,gBAAgB,MAAM,QAAQ;AAAA,IAC5D,aAAa,MAAM;AAAA,IACnB,iBAAiB,UAAU,SACzB,oBAAoB;AAAA,MAClB;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACF,iBAAiB,UAAU,SACzB,oBAAoB;AAAA,MAClB;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACF,mBAAmB,IAAI,SACrB,oBAAoB;AAAA,MAClB;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,EAAE;AAAA,EACN;AACF;AAOO,SAAS,gBAAgB,qBAA8C;AAC5E,sBAAoB;AAAA,IAClB;AAAA,IACA,YAAY,QAAQ,QAAQ;AAAA,EAC9B;AAEA,sBAAoB;AAAA,IAClB;AAAA,IACA,OAAO,EAAE,QAAQ,OAAO,MAAM,MAAM;AAAA,EACtC;AACF","sourcesContent":["import type {\n ActionConstraint,\n EventConstraint,\n} from '@metamask/base-controller';\nimport { ControllerMessenger } from '@metamask/base-controller';\nimport { createEngineStream } from '@metamask/json-rpc-middleware-stream';\nimport { mnemonicPhraseToBytes } from '@metamask/key-tree';\nimport type { AbstractExecutionService } from '@metamask/snaps-controllers';\nimport {\n fetchSnap,\n detectSnapLocation,\n NodeThreadExecutionService,\n setupMultiplex,\n} from '@metamask/snaps-controllers/node';\nimport { getEncryptionKey } from '@metamask/snaps-rpc-methods';\nimport type {\n SnapId,\n AuxiliaryFileEncoding,\n Component,\n InterfaceState,\n} from '@metamask/snaps-sdk';\nimport type { FetchedSnapFiles } from '@metamask/snaps-utils';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Duplex } from 'readable-stream';\nimport { pipeline } from 'readable-stream';\n\nimport type { RootControllerMessenger } from './controllers';\nimport { getControllers, registerSnap } from './controllers';\nimport { getSnapFile } from './files';\nimport { getEndowments } from './methods';\nimport { createJsonRpcEngine } from './middleware';\nimport type { SimulationOptions, SimulationUserOptions } from './options';\nimport { getOptions } from './options';\nimport type { RunSagaFunction, Store } from './store';\nimport { createStore } from './store';\n\n/**\n * Options for the execution service, without the options that are shared\n * between all execution services.\n *\n * @template Service - The type of the execution service, i.e., the class that\n * creates the execution service.\n */\nexport type ExecutionServiceOptions<\n Service extends new (...args: any[]) => any,\n> = Omit<\n ConstructorParameters<Service>[0],\n keyof ConstructorParameters<typeof AbstractExecutionService<unknown>>[0]\n>;\n\n/**\n * The options for running a Snap in a simulated environment.\n *\n * @property executionService - The execution service to use.\n * @property executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @property options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport type InstallSnapOptions<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService<unknown>\n >,\n> = ExecutionServiceOptions<Service> extends Record<string, never>\n ? {\n executionService: Service;\n executionServiceOptions?: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n }\n : {\n executionService: Service;\n executionServiceOptions: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n };\n\nexport type InstalledSnap = {\n snapId: SnapId;\n store: Store;\n executionService: InstanceType<typeof AbstractExecutionService>;\n controllerMessenger: ControllerMessenger<ActionConstraint, EventConstraint>;\n runSaga: RunSagaFunction;\n};\n\nexport type MiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns the Snap's auxiliary file for the given path.\n *\n * @param path - The path of the auxiliary file to get.\n * @param encoding - The encoding to use when returning the file.\n * @returns The Snap's auxiliary file for the given path.\n */\n getSnapFile: (\n path: string,\n encoding: AuxiliaryFileEncoding,\n ) => Promise<string | null>;\n\n /**\n * A hook that returns whether the client is locked or not.\n *\n * @returns A boolean flag signaling whether the client is locked.\n */\n getIsLocked: () => boolean;\n createInterface: (content: Component) => Promise<string>;\n updateInterface: (id: string, content: Component) => Promise<void>;\n getInterfaceState: (id: string) => InterfaceState;\n};\n\n/**\n * Install a Snap in a simulated environment. This will fetch the Snap files,\n * create a Redux store, set up the controllers and JSON-RPC stack, register the\n * Snap, and run the Snap code in the execution service.\n *\n * @param snapId - The ID of the Snap to install.\n * @param options - The options to use when installing the Snap.\n * @param options.executionService - The execution service to use.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport async function handleInstallSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId: SnapId,\n {\n executionService,\n executionServiceOptions,\n options: rawOptions = {},\n }: Partial<InstallSnapOptions<Service>> = {},\n): Promise<InstalledSnap> {\n const options = getOptions(rawOptions);\n\n // Fetch Snap files.\n const location = detectSnapLocation(snapId, {\n allowLocal: true,\n });\n\n const snapFiles = await fetchSnap(snapId, location);\n\n // Create Redux store.\n const password = await getEncryptionKey({\n mnemonicPhrase: mnemonicPhraseToBytes(options.secretRecoveryPhrase),\n snapId,\n });\n\n const { store, runSaga } = createStore(password, options);\n\n const controllerMessenger = new ControllerMessenger<any, any>();\n\n registerActions(controllerMessenger);\n\n // Set up controllers and JSON-RPC stack.\n const hooks = getHooks(options, snapFiles, snapId, controllerMessenger);\n\n const { subjectMetadataController, permissionController } = getControllers({\n controllerMessenger,\n hooks,\n runSaga,\n options,\n });\n\n const engine = createJsonRpcEngine({\n store,\n hooks,\n permissionMiddleware: permissionController.createPermissionMiddleware({\n origin: snapId,\n }),\n });\n\n // Create execution service.\n const ExecutionService = executionService ?? NodeThreadExecutionService;\n const service = new ExecutionService({\n ...executionServiceOptions,\n messenger: controllerMessenger.getRestricted({\n name: 'ExecutionService',\n }),\n setupSnapProvider: (_snapId: string, rpcStream: Duplex) => {\n const mux = setupMultiplex(rpcStream, 'snapStream');\n const stream = mux.createStream('metamask-provider');\n const providerStream = createEngineStream({ engine });\n\n // Error function is difficult to test, so we ignore it.\n /* istanbul ignore next 2 */\n pipeline(stream, providerStream, stream, (error: unknown) => {\n if (error) {\n logError(`Provider stream failure.`, error);\n }\n });\n },\n });\n\n // Register the Snap. This sets up the Snap's permissions and subject\n // metadata.\n await registerSnap(snapId, snapFiles.manifest.result, {\n permissionController,\n subjectMetadataController,\n });\n\n // Run the Snap code in the execution service.\n await service.executeSnap({\n snapId,\n sourceCode: snapFiles.sourceCode.toString('utf8'),\n endowments: await getEndowments(permissionController, snapId),\n });\n\n return {\n snapId,\n store,\n executionService: service,\n controllerMessenger,\n runSaga,\n };\n}\n\n/**\n * Get the hooks for the simulation.\n *\n * @param options - The simulation options.\n * @param snapFiles - The Snap files.\n * @param snapId - The Snap ID.\n * @param controllerMessenger - The controller messenger.\n * @returns The hooks for the simulation.\n */\nexport function getHooks(\n options: SimulationOptions,\n snapFiles: FetchedSnapFiles,\n snapId: SnapId,\n controllerMessenger: RootControllerMessenger,\n): MiddlewareHooks {\n return {\n getMnemonic: async () =>\n Promise.resolve(mnemonicPhraseToBytes(options.secretRecoveryPhrase)),\n getSnapFile: async (path: string, encoding: AuxiliaryFileEncoding) =>\n await getSnapFile(snapFiles.auxiliaryFiles, path, encoding),\n getIsLocked: () => false,\n createInterface: async (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:createInterface',\n snapId,\n ...args,\n ),\n updateInterface: async (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:updateInterface',\n snapId,\n ...args,\n ),\n getInterfaceState: (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:getInterface',\n snapId,\n ...args,\n ).state,\n };\n}\n\n/**\n * Register mocked action handlers.\n *\n * @param controllerMessenger - The controller messenger.\n */\nexport function registerActions(controllerMessenger: RootControllerMessenger) {\n controllerMessenger.registerActionHandler(\n 'PhishingController:maybeUpdateState',\n async () => Promise.resolve(),\n );\n\n controllerMessenger.registerActionHandler(\n 'PhishingController:testOrigin',\n () => ({ result: false, type: 'all' }),\n );\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getAccountsHandler
|
|
3
|
+
} from "./chunk-CKOGTHM4.mjs";
|
|
4
|
+
import {
|
|
5
|
+
getProviderStateHandler
|
|
6
|
+
} from "./chunk-O3VJYBFN.mjs";
|
|
7
|
+
|
|
8
|
+
// src/internals/simulation/middleware/internal-methods/middleware.ts
|
|
9
|
+
import { logError } from "@metamask/snaps-utils";
|
|
10
|
+
var methodHandlers = {
|
|
11
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
12
|
+
metamask_getProviderState: getProviderStateHandler,
|
|
13
|
+
eth_requestAccounts: getAccountsHandler,
|
|
14
|
+
eth_accounts: getAccountsHandler
|
|
15
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
16
|
+
};
|
|
17
|
+
function createInternalMethodsMiddleware(hooks) {
|
|
18
|
+
return async function methodMiddleware(request, response, next, end) {
|
|
19
|
+
const handler = methodHandlers[request.method];
|
|
20
|
+
if (handler) {
|
|
21
|
+
try {
|
|
22
|
+
return await handler(request, response, next, end, hooks);
|
|
23
|
+
} catch (error) {
|
|
24
|
+
logError(error);
|
|
25
|
+
return end(error);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return next();
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
createInternalMethodsMiddleware
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=chunk-6KNT4UMX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/middleware/internal-methods/middleware.ts"],"sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getAccountsHandler } from './accounts';\nimport { getProviderStateHandler } from './provider-state';\n\nexport type InternalMethodsMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n};\n\nconst methodHandlers = {\n /* eslint-disable @typescript-eslint/naming-convention */\n metamask_getProviderState: getProviderStateHandler,\n eth_requestAccounts: getAccountsHandler,\n eth_accounts: getAccountsHandler,\n /* eslint-enable @typescript-eslint/naming-convention */\n};\n\n/**\n * Create a middleware for handling JSON-RPC methods normally handled internally\n * by the MetaMask client.\n *\n * NOTE: This middleware provides all `hooks` to all handlers and should\n * therefore NOT be used outside of the simulation environment. It is intended\n * for testing purposes only.\n *\n * @param hooks - Any hooks used by the middleware handlers.\n * @returns A middleware function.\n */\nexport function createInternalMethodsMiddleware(\n hooks: InternalMethodsMiddlewareHooks,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n // This should probably use createAsyncMiddleware.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n const handler =\n methodHandlers[request.method as keyof typeof methodHandlers];\n if (handler) {\n try {\n // Implementations may or may not be async, so we must await them.\n return await handler(request, response, next, end, hooks);\n } catch (error: any) {\n logError(error);\n return end(error);\n }\n }\n\n return next();\n };\n}\n"],"mappings":";;;;;;;;AACA,SAAS,gBAAgB;AAezB,IAAM,iBAAiB;AAAA;AAAA,EAErB,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,cAAc;AAAA;AAEhB;AAaO,SAAS,gCACd,OACwC;AAGxC,SAAO,eAAe,iBAAiB,SAAS,UAAU,MAAM,KAAK;AACnE,UAAM,UACJ,eAAe,QAAQ,MAAqC;AAC9D,QAAI,SAAS;AACX,UAAI;AAEF,eAAO,MAAM,QAAQ,SAAS,UAAU,MAAM,KAAK,KAAK;AAAA,MAC1D,SAAS,OAAY;AACnB,iBAAS,KAAK;AACd,eAAO,IAAI,KAAK;AAAA,MAClB;AAAA,IACF;AAEA,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clearState,
|
|
3
|
+
getState,
|
|
4
|
+
setState
|
|
5
|
+
} from "./chunk-VXQOXWRO.mjs";
|
|
6
|
+
|
|
7
|
+
// src/internals/simulation/methods/hooks/state.ts
|
|
8
|
+
import { put, select } from "redux-saga/effects";
|
|
9
|
+
function* getSnapStateImplementation(_snapId, encrypted = true) {
|
|
10
|
+
return yield select(getState(encrypted));
|
|
11
|
+
}
|
|
12
|
+
function getGetSnapStateMethodImplementation(runSaga) {
|
|
13
|
+
return (...args) => {
|
|
14
|
+
return runSaga(getSnapStateImplementation, ...args).result();
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function* updateSnapStateImplementation(_snapId, newState, encrypted = true) {
|
|
18
|
+
yield put(setState({ state: newState, encrypted }));
|
|
19
|
+
}
|
|
20
|
+
function getUpdateSnapStateMethodImplementation(runSaga) {
|
|
21
|
+
return (...args) => {
|
|
22
|
+
runSaga(updateSnapStateImplementation, ...args).result();
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function* clearSnapStateImplementation(_snapId, encrypted = true) {
|
|
26
|
+
yield put(clearState({ encrypted }));
|
|
27
|
+
}
|
|
28
|
+
function getClearSnapStateMethodImplementation(runSaga) {
|
|
29
|
+
return async (...args) => {
|
|
30
|
+
runSaga(clearSnapStateImplementation, ...args).result();
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
getGetSnapStateMethodImplementation,
|
|
36
|
+
getUpdateSnapStateMethodImplementation,
|
|
37
|
+
getClearSnapStateMethodImplementation
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=chunk-6RDNSELT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/methods/hooks/state.ts"],"sourcesContent":["import type { SagaIterator } from 'redux-saga';\nimport { put, select } from 'redux-saga/effects';\n\nimport type { RunSagaFunction } from '../../store';\nimport { clearState, getState, setState } from '../../store';\n\n/**\n * Get the Snap state from the store.\n *\n * @param _snapId - The ID of the Snap to get the state for. This is ignored\n * because the simulator only supports one Snap.\n * @param encrypted - Whether to get the encrypted or unencrypted state.\n * Defaults to encrypted state.\n * @returns The state of the Snap.\n * @yields Selects the state from the store.\n */\nfunction* getSnapStateImplementation(\n _snapId: string,\n encrypted = true,\n): SagaIterator<string> {\n return yield select(getState(encrypted));\n}\n\n/**\n * Get the implementation of the `getSnapState` hook.\n *\n * @param runSaga - The function to run a saga outside the usual Redux flow.\n * @returns The implementation of the `getSnapState` hook.\n */\nexport function getGetSnapStateMethodImplementation(runSaga: RunSagaFunction) {\n return (...args: Parameters<typeof getSnapStateImplementation>) => {\n return runSaga(getSnapStateImplementation, ...args).result();\n };\n}\n\n/**\n * Update the Snap state in the store.\n *\n * @param _snapId - The ID of the Snap to update the state for. This is ignored\n * because the simulator only supports one Snap.\n * @param newState - The new state.\n * @param encrypted - Whether to update the encrypted or unencrypted state.\n * Defaults to encrypted state.\n * @yields Puts the new state in the store.\n */\nfunction* updateSnapStateImplementation(\n _snapId: string,\n newState: string,\n encrypted = true,\n): SagaIterator<void> {\n yield put(setState({ state: newState, encrypted }));\n}\n\n/**\n * Get the implementation of the `updateSnapState` hook.\n *\n * @param runSaga - The function to run a saga outside the usual Redux flow.\n * @returns The implementation of the `updateSnapState` hook.\n */\nexport function getUpdateSnapStateMethodImplementation(\n runSaga: RunSagaFunction,\n) {\n return (...args: Parameters<typeof updateSnapStateImplementation>) => {\n runSaga(updateSnapStateImplementation, ...args).result();\n };\n}\n\n/**\n * Clear the Snap state in the store.\n *\n * @param _snapId - The ID of the Snap to clear the state for. This is ignored\n * because the simulator only supports one Snap.\n * @param encrypted - Whether to clear the encrypted or unencrypted state.\n * Defaults to encrypted state.\n * @yields Puts the new state in the store.\n */\nfunction* clearSnapStateImplementation(\n _snapId: string,\n encrypted = true,\n): SagaIterator<void> {\n yield put(clearState({ encrypted }));\n}\n\n/**\n * Get the implementation of the `clearSnapState` hook.\n *\n * @param runSaga - The function to run a saga outside the usual Redux flow.\n * @returns The implementation of the `clearSnapState` hook.\n */\nexport function getClearSnapStateMethodImplementation(\n runSaga: RunSagaFunction,\n) {\n return async (...args: Parameters<typeof clearSnapStateImplementation>) => {\n runSaga(clearSnapStateImplementation, ...args).result();\n };\n}\n"],"mappings":";;;;;;;AACA,SAAS,KAAK,cAAc;AAe5B,UAAU,2BACR,SACA,YAAY,MACU;AACtB,SAAO,MAAM,OAAO,SAAS,SAAS,CAAC;AACzC;AAQO,SAAS,oCAAoC,SAA0B;AAC5E,SAAO,IAAI,SAAwD;AACjE,WAAO,QAAQ,4BAA4B,GAAG,IAAI,EAAE,OAAO;AAAA,EAC7D;AACF;AAYA,UAAU,8BACR,SACA,UACA,YAAY,MACQ;AACpB,QAAM,IAAI,SAAS,EAAE,OAAO,UAAU,UAAU,CAAC,CAAC;AACpD;AAQO,SAAS,uCACd,SACA;AACA,SAAO,IAAI,SAA2D;AACpE,YAAQ,+BAA+B,GAAG,IAAI,EAAE,OAAO;AAAA,EACzD;AACF;AAWA,UAAU,6BACR,SACA,YAAY,MACQ;AACpB,QAAM,IAAI,WAAW,EAAE,UAAU,CAAC,CAAC;AACrC;AAQO,SAAS,sCACd,SACA;AACA,SAAO,UAAU,SAA0D;AACzE,YAAQ,8BAA8B,GAAG,IAAI,EAAE,OAAO;AAAA,EACxD;AACF;","names":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
rootLogger
|
|
3
|
+
} from "./chunk-WEI35OIM.mjs";
|
|
4
|
+
|
|
5
|
+
// src/internals/server.ts
|
|
6
|
+
import {
|
|
7
|
+
assertIsSnapManifest,
|
|
8
|
+
isDirectory,
|
|
9
|
+
isFile
|
|
10
|
+
} from "@metamask/snaps-utils/node";
|
|
11
|
+
import { createModuleLogger } from "@metamask/utils";
|
|
12
|
+
import express from "express";
|
|
13
|
+
import { promises as fs } from "fs";
|
|
14
|
+
import { createServer } from "http";
|
|
15
|
+
import { resolve as pathResolve } from "path";
|
|
16
|
+
async function assertRoot(root) {
|
|
17
|
+
if (!root) {
|
|
18
|
+
throw new Error("You must specify a root directory.");
|
|
19
|
+
}
|
|
20
|
+
if (!await isDirectory(root, false)) {
|
|
21
|
+
throw new Error(`Root directory "${root}" is not a directory.`);
|
|
22
|
+
}
|
|
23
|
+
const manifestPath = pathResolve(root, "snap.manifest.json");
|
|
24
|
+
const manifest = await fs.readFile(manifestPath, "utf8").then(JSON.parse);
|
|
25
|
+
assertIsSnapManifest(manifest);
|
|
26
|
+
const filePath = pathResolve(root, manifest.source.location.npm.filePath);
|
|
27
|
+
if (!await isFile(filePath)) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
`File "${filePath}" does not exist, or is not a file. Did you forget to build your snap?`
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function startServer(options) {
|
|
34
|
+
await assertRoot(options.root);
|
|
35
|
+
const log = createModuleLogger(rootLogger, "server");
|
|
36
|
+
const app = express();
|
|
37
|
+
app.use((_request, response, next) => {
|
|
38
|
+
response.header("Access-Control-Allow-Origin", "*");
|
|
39
|
+
response.header("Access-Control-Allow-Credentials", "true");
|
|
40
|
+
response.header("Access-Control-Allow-Methods", "GET, OPTIONS");
|
|
41
|
+
response.header("Access-Control-Allow-Headers", "Content-Type");
|
|
42
|
+
next();
|
|
43
|
+
});
|
|
44
|
+
app.use(express.static(pathResolve(process.cwd(), options.root)));
|
|
45
|
+
const server = createServer(app);
|
|
46
|
+
return await new Promise((resolve, reject) => {
|
|
47
|
+
server.listen(options.port, () => {
|
|
48
|
+
resolve(server);
|
|
49
|
+
});
|
|
50
|
+
server.on("error", (error) => {
|
|
51
|
+
log(error);
|
|
52
|
+
reject(error);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
startServer
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=chunk-72YN2D26.mjs.map
|