@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,21 @@
|
|
|
1
|
+
// src/internals/simulation/methods/hooks/interface.ts
|
|
2
|
+
function getCreateInterfaceImplementation(controllerMessenger) {
|
|
3
|
+
return async (snapId, content) => controllerMessenger.call(
|
|
4
|
+
"SnapInterfaceController:createInterface",
|
|
5
|
+
snapId,
|
|
6
|
+
content
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
function getGetInterfaceImplementation(controllerMessenger) {
|
|
10
|
+
return (snapId, id) => controllerMessenger.call(
|
|
11
|
+
"SnapInterfaceController:getInterface",
|
|
12
|
+
snapId,
|
|
13
|
+
id
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
getCreateInterfaceImplementation,
|
|
19
|
+
getGetInterfaceImplementation
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=chunk-OC64PNDU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/methods/hooks/interface.ts"],"sourcesContent":["import type { Component, SnapId } from '@metamask/snaps-sdk';\n\nimport type { RootControllerMessenger } from '../../controllers';\n\n/**\n * Get the implementation of the `createInterface` hook.\n *\n * @param controllerMessenger - The controller messenger used to call actions.\n * @returns The implementation of the `createInterface` hook.\n */\nexport function getCreateInterfaceImplementation(\n controllerMessenger: RootControllerMessenger,\n) {\n return async (snapId: SnapId, content: Component) =>\n controllerMessenger.call(\n 'SnapInterfaceController:createInterface',\n snapId,\n content,\n );\n}\n\n/**\n * Get the implementation of the `getInterface` hook.\n *\n * @param controllerMessenger - The controller messenger used to call actions.\n * @returns The implementation of the `getInterface` hook.\n */\nexport function getGetInterfaceImplementation(\n controllerMessenger: RootControllerMessenger,\n) {\n return (snapId: SnapId, id: string) =>\n controllerMessenger.call(\n 'SnapInterfaceController:getInterface',\n snapId,\n id,\n );\n}\n"],"mappings":";AAUO,SAAS,iCACd,qBACA;AACA,SAAO,OAAO,QAAgB,YAC5B,oBAAoB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACJ;AAQO,SAAS,8BACd,qBACA;AACA,SAAO,CAAC,QAAgB,OACtB,oBAAoB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACJ;","names":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/internals/simulation/store/notifications.ts
|
|
2
|
+
var _toolkit = require('@reduxjs/toolkit');
|
|
3
|
+
var INITIAL_STATE = {
|
|
4
|
+
notifications: []
|
|
5
|
+
};
|
|
6
|
+
var notificationsSlice = _toolkit.createSlice.call(void 0, {
|
|
7
|
+
name: "notifications",
|
|
8
|
+
initialState: INITIAL_STATE,
|
|
9
|
+
reducers: {
|
|
10
|
+
addNotification: (state, action) => {
|
|
11
|
+
state.notifications.push(action.payload);
|
|
12
|
+
},
|
|
13
|
+
removeNotification: (state, action) => {
|
|
14
|
+
state.notifications = state.notifications.filter(
|
|
15
|
+
(notification) => notification.id !== action.payload
|
|
16
|
+
);
|
|
17
|
+
},
|
|
18
|
+
clearNotifications: (state) => {
|
|
19
|
+
state.notifications = [];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
var { addNotification, removeNotification, clearNotifications } = notificationsSlice.actions;
|
|
24
|
+
var getNotifications = _toolkit.createSelector.call(void 0,
|
|
25
|
+
(state) => state.notifications,
|
|
26
|
+
({ notifications }) => notifications
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
exports.notificationsSlice = notificationsSlice; exports.addNotification = addNotification; exports.removeNotification = removeNotification; exports.clearNotifications = clearNotifications; exports.getNotifications = getNotifications;
|
|
36
|
+
//# sourceMappingURL=chunk-ON6M4WG5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/store/notifications.ts"],"names":[],"mappings":";AAEA,SAAS,gBAAgB,mBAAmB;AA6B5C,IAAM,gBAAoC;AAAA,EACxC,eAAe,CAAC;AAClB;AAEO,IAAM,qBAAqB,YAAY;AAAA,EAC5C,MAAM;AAAA,EACN,cAAc;AAAA,EACd,UAAU;AAAA,IACR,iBAAiB,CAAC,OAAO,WAAwC;AAC/D,YAAM,cAAc,KAAK,OAAO,OAAO;AAAA,IACzC;AAAA,IACA,oBAAoB,CAAC,OAAO,WAAkC;AAC5D,YAAM,gBAAgB,MAAM,cAAc;AAAA,QACxC,CAAC,iBAAiB,aAAa,OAAO,OAAO;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,UAAU;AAC7B,YAAM,gBAAgB,CAAC;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAEM,IAAM,EAAE,iBAAiB,oBAAoB,mBAAmB,IACrE,mBAAmB;AAQd,IAAM,mBAAmB;AAAA,EAC9B,CAAC,UAA4B,MAAM;AAAA,EACnC,CAAC,EAAE,cAAc,MAAM;AACzB","sourcesContent":["import type { NotificationType } from '@metamask/snaps-sdk';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSelector, createSlice } from '@reduxjs/toolkit';\n\nimport type { ApplicationState } from './store';\n\n/**\n * A notification object.\n *\n * @property id - A unique ID for the notification.\n * @property message - The notification message.\n * @property type - The notification type.\n */\nexport type Notification = {\n id: string;\n message: string;\n type: NotificationType;\n};\n\n/**\n * The notifications state.\n *\n * @property notifications - An array of notifications.\n */\nexport type NotificationsState = {\n notifications: Notification[];\n};\n\n/**\n * The initial notifications state.\n */\nconst INITIAL_STATE: NotificationsState = {\n notifications: [],\n};\n\nexport const notificationsSlice = createSlice({\n name: 'notifications',\n initialState: INITIAL_STATE,\n reducers: {\n addNotification: (state, action: PayloadAction<Notification>) => {\n state.notifications.push(action.payload);\n },\n removeNotification: (state, action: PayloadAction<string>) => {\n state.notifications = state.notifications.filter(\n (notification) => notification.id !== action.payload,\n );\n },\n clearNotifications: (state) => {\n state.notifications = [];\n },\n },\n});\n\nexport const { addNotification, removeNotification, clearNotifications } =\n notificationsSlice.actions;\n\n/**\n * Get the notifications from the state.\n *\n * @param state - The application state.\n * @returns An array of notifications.\n */\nexport const getNotifications = createSelector(\n (state: ApplicationState) => state.notifications,\n ({ notifications }) => notifications,\n);\n"]}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handleRequest
|
|
3
|
+
} from "./chunk-HBVDXIVN.mjs";
|
|
4
|
+
import {
|
|
5
|
+
rootLogger
|
|
6
|
+
} from "./chunk-WEI35OIM.mjs";
|
|
7
|
+
import {
|
|
8
|
+
JsonRpcMockOptionsStruct,
|
|
9
|
+
SignatureOptionsStruct,
|
|
10
|
+
TransactionOptionsStruct
|
|
11
|
+
} from "./chunk-BN5VBVT3.mjs";
|
|
12
|
+
import {
|
|
13
|
+
addJsonRpcMock,
|
|
14
|
+
removeJsonRpcMock
|
|
15
|
+
} from "./chunk-J2ID3DS7.mjs";
|
|
16
|
+
import {
|
|
17
|
+
getEnvironment
|
|
18
|
+
} from "./chunk-VHTVUQWR.mjs";
|
|
19
|
+
|
|
20
|
+
// src/helpers.ts
|
|
21
|
+
import { HandlerType, logInfo } from "@metamask/snaps-utils";
|
|
22
|
+
import { createModuleLogger } from "@metamask/utils";
|
|
23
|
+
import { create } from "superstruct";
|
|
24
|
+
var log = createModuleLogger(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 getEnvironment().installSnap(...resolvedOptions);
|
|
40
|
+
const onTransaction = async (request) => {
|
|
41
|
+
log("Sending transaction %o.", request);
|
|
42
|
+
const {
|
|
43
|
+
origin: transactionOrigin,
|
|
44
|
+
chainId,
|
|
45
|
+
...transaction
|
|
46
|
+
} = create(request, TransactionOptionsStruct);
|
|
47
|
+
return handleRequest({
|
|
48
|
+
snapId: installedSnapId,
|
|
49
|
+
store,
|
|
50
|
+
executionService,
|
|
51
|
+
runSaga,
|
|
52
|
+
controllerMessenger,
|
|
53
|
+
handler: 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 handleRequest({
|
|
67
|
+
snapId: installedSnapId,
|
|
68
|
+
store,
|
|
69
|
+
executionService,
|
|
70
|
+
controllerMessenger,
|
|
71
|
+
runSaga,
|
|
72
|
+
handler: HandlerType.OnCronjob,
|
|
73
|
+
request
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
request: (request) => {
|
|
78
|
+
log("Sending request %o.", request);
|
|
79
|
+
return handleRequest({
|
|
80
|
+
snapId: installedSnapId,
|
|
81
|
+
store,
|
|
82
|
+
executionService,
|
|
83
|
+
controllerMessenger,
|
|
84
|
+
runSaga,
|
|
85
|
+
handler: 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 } = create(
|
|
94
|
+
request,
|
|
95
|
+
SignatureOptionsStruct
|
|
96
|
+
);
|
|
97
|
+
return handleRequest({
|
|
98
|
+
snapId: installedSnapId,
|
|
99
|
+
store,
|
|
100
|
+
executionService,
|
|
101
|
+
controllerMessenger,
|
|
102
|
+
runSaga,
|
|
103
|
+
handler: 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 handleRequest({
|
|
118
|
+
snapId: installedSnapId,
|
|
119
|
+
store,
|
|
120
|
+
executionService,
|
|
121
|
+
controllerMessenger,
|
|
122
|
+
runSaga,
|
|
123
|
+
handler: HandlerType.OnHomePage,
|
|
124
|
+
request: {
|
|
125
|
+
method: ""
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
mockJsonRpc(mock) {
|
|
130
|
+
log("Mocking JSON-RPC request %o.", mock);
|
|
131
|
+
const { method, result } = create(mock, JsonRpcMockOptionsStruct);
|
|
132
|
+
store.dispatch(addJsonRpcMock({ method, result }));
|
|
133
|
+
return {
|
|
134
|
+
unmock() {
|
|
135
|
+
log("Unmocking JSON-RPC request %o.", mock);
|
|
136
|
+
store.dispatch(removeJsonRpcMock(method));
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
close: async () => {
|
|
141
|
+
log("Closing execution service.");
|
|
142
|
+
logInfo(
|
|
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
|
+
export {
|
|
151
|
+
installSnap
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=chunk-P7JA42ZC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers.ts"],"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"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __accessCheck = (obj, member, msg) => {
|
|
2
|
+
if (!member.has(obj))
|
|
3
|
+
throw TypeError("Cannot " + msg);
|
|
4
|
+
};
|
|
5
|
+
var __privateGet = (obj, member, getter) => {
|
|
6
|
+
__accessCheck(obj, member, "read from private field");
|
|
7
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
8
|
+
};
|
|
9
|
+
var __privateAdd = (obj, member, value) => {
|
|
10
|
+
if (member.has(obj))
|
|
11
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
12
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
13
|
+
};
|
|
14
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
15
|
+
__accessCheck(obj, member, "write to private field");
|
|
16
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
17
|
+
return value;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet;
|
|
25
|
+
//# sourceMappingURL=chunk-PHUTP7NB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getOptions
|
|
3
|
+
} from "./chunk-AUB7XPDH.mjs";
|
|
4
|
+
import {
|
|
5
|
+
handleInstallSnap
|
|
6
|
+
} from "./chunk-QUUILTDY.mjs";
|
|
7
|
+
import {
|
|
8
|
+
startServer
|
|
9
|
+
} from "./chunk-72YN2D26.mjs";
|
|
10
|
+
import {
|
|
11
|
+
rootLogger
|
|
12
|
+
} from "./chunk-WEI35OIM.mjs";
|
|
13
|
+
import {
|
|
14
|
+
__privateAdd,
|
|
15
|
+
__privateGet,
|
|
16
|
+
__privateSet
|
|
17
|
+
} from "./chunk-JMDSN227.mjs";
|
|
18
|
+
|
|
19
|
+
// src/environment.ts
|
|
20
|
+
import { assert, createModuleLogger } from "@metamask/utils";
|
|
21
|
+
import NodeEnvironment from "jest-environment-node";
|
|
22
|
+
var log = createModuleLogger(rootLogger, "environment");
|
|
23
|
+
var _options, _server, _instance;
|
|
24
|
+
var SnapsEnvironment = class extends NodeEnvironment {
|
|
25
|
+
/**
|
|
26
|
+
* Constructor.
|
|
27
|
+
*
|
|
28
|
+
* @param options - The environment options.
|
|
29
|
+
* @param context - The environment context.
|
|
30
|
+
*/
|
|
31
|
+
constructor(options, context) {
|
|
32
|
+
super(options, context);
|
|
33
|
+
__privateAdd(this, _options, void 0);
|
|
34
|
+
__privateAdd(this, _server, void 0);
|
|
35
|
+
__privateAdd(this, _instance, void 0);
|
|
36
|
+
__privateSet(this, _options, getOptions(options.projectConfig.testEnvironmentOptions));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Set up the environment. This starts the built-in HTTP server, and creates a
|
|
40
|
+
* new browser instance.
|
|
41
|
+
*/
|
|
42
|
+
async setup() {
|
|
43
|
+
await super.setup();
|
|
44
|
+
if (__privateGet(this, _options).server.enabled) {
|
|
45
|
+
log("Starting server.");
|
|
46
|
+
__privateSet(this, _server, await startServer(__privateGet(this, _options).server));
|
|
47
|
+
}
|
|
48
|
+
this.global.snapsEnvironment = this;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Tear down the environment. This closes the browser, and stops the built-in
|
|
52
|
+
* HTTP server.
|
|
53
|
+
*/
|
|
54
|
+
async teardown() {
|
|
55
|
+
await __privateGet(this, _instance)?.executionService.terminateAllSnaps();
|
|
56
|
+
__privateGet(this, _server)?.close();
|
|
57
|
+
await super.teardown();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Install a Snap in the environment. This will terminate any previously
|
|
61
|
+
* installed Snaps, and run the Snap code in a new execution service.
|
|
62
|
+
*
|
|
63
|
+
* @param snapId - The ID of the Snap to install.
|
|
64
|
+
* @param options - The options to use when installing the Snap.
|
|
65
|
+
* @param options.executionService - The execution service to use.
|
|
66
|
+
* @param options.executionServiceOptions - The options to use when creating the
|
|
67
|
+
* execution service, if any. This should only include options specific to the
|
|
68
|
+
* provided execution service.
|
|
69
|
+
* @param options.options - The simulation options.
|
|
70
|
+
* @template Service - The type of the execution service.
|
|
71
|
+
* @returns The installed Snap.
|
|
72
|
+
*/
|
|
73
|
+
async installSnap(snapId = this.snapId, options = {}) {
|
|
74
|
+
await __privateGet(this, _instance)?.executionService.terminateAllSnaps();
|
|
75
|
+
__privateSet(this, _instance, await handleInstallSnap(snapId, options));
|
|
76
|
+
return __privateGet(this, _instance);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get the snap ID for the current environment, which is used if no snap ID is
|
|
80
|
+
* passed to {@link installSnap}. This assumes that the built-in server is
|
|
81
|
+
* running.
|
|
82
|
+
*
|
|
83
|
+
* @returns The snap ID.
|
|
84
|
+
* @throws If the server is not running.
|
|
85
|
+
*/
|
|
86
|
+
get snapId() {
|
|
87
|
+
assert(
|
|
88
|
+
__privateGet(this, _server),
|
|
89
|
+
"You must specify a snap ID, because the built-in server is not running."
|
|
90
|
+
);
|
|
91
|
+
const { port } = __privateGet(this, _server).address();
|
|
92
|
+
return `local:http://localhost:${port}`;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
_options = new WeakMap();
|
|
96
|
+
_server = new WeakMap();
|
|
97
|
+
_instance = new WeakMap();
|
|
98
|
+
var environment_default = SnapsEnvironment;
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
SnapsEnvironment,
|
|
102
|
+
environment_default
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=chunk-QFPRGU5L.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/environment.ts"],"sourcesContent":["import type {\n EnvironmentContext,\n JestEnvironmentConfig,\n} from '@jest/environment';\nimport type { AbstractExecutionService } from '@metamask/snaps-controllers';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { assert, createModuleLogger } from '@metamask/utils';\nimport type { Server } from 'http';\nimport NodeEnvironment from 'jest-environment-node';\nimport type { AddressInfo } from 'net';\n\nimport type { InstalledSnap, InstallSnapOptions } from './internals';\nimport { handleInstallSnap, rootLogger, startServer } from './internals';\nimport type { SnapsEnvironmentOptions } from './options';\nimport { getOptions } from './options';\n\n/* eslint-disable */\ndeclare global {\n const snapsEnvironment: SnapsEnvironment;\n}\n/* eslint-enable */\n\nconst log = createModuleLogger(rootLogger, 'environment');\n\nexport class SnapsEnvironment extends NodeEnvironment {\n #options: SnapsEnvironmentOptions;\n\n #server: Server | undefined;\n\n #instance: InstalledSnap | undefined;\n\n /**\n * Constructor.\n *\n * @param options - The environment options.\n * @param context - The environment context.\n */\n constructor(options: JestEnvironmentConfig, context: EnvironmentContext) {\n super(options, context);\n this.#options = getOptions(options.projectConfig.testEnvironmentOptions);\n }\n\n /**\n * Set up the environment. This starts the built-in HTTP server, and creates a\n * new browser instance.\n */\n async setup() {\n await super.setup();\n\n if (this.#options.server.enabled) {\n log('Starting server.');\n this.#server = await startServer(this.#options.server);\n }\n\n this.global.snapsEnvironment = this;\n }\n\n /**\n * Tear down the environment. This closes the browser, and stops the built-in\n * HTTP server.\n */\n async teardown() {\n await this.#instance?.executionService.terminateAllSnaps();\n this.#server?.close();\n await super.teardown();\n }\n\n /**\n * Install a Snap in the environment. This will terminate any previously\n * installed Snaps, and run the Snap code in a new 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 * @returns The installed Snap.\n */\n async installSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n >(\n snapId: string = this.snapId,\n options: Partial<InstallSnapOptions<Service>> = {},\n ) {\n await this.#instance?.executionService.terminateAllSnaps();\n this.#instance = await handleInstallSnap(snapId as SnapId, options);\n return this.#instance;\n }\n\n /**\n * Get the snap ID for the current environment, which is used if no snap ID is\n * passed to {@link installSnap}. This assumes that the built-in server is\n * running.\n *\n * @returns The snap ID.\n * @throws If the server is not running.\n */\n get snapId() {\n assert(\n this.#server,\n 'You must specify a snap ID, because the built-in server is not running.',\n );\n\n const { port } = this.#server.address() as AddressInfo;\n return `local:http://localhost:${port}`;\n }\n}\n\nexport default SnapsEnvironment;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,SAAS,QAAQ,0BAA0B;AAE3C,OAAO,qBAAqB;AAc5B,IAAM,MAAM,mBAAmB,YAAY,aAAa;AAtBxD;AAwBO,IAAM,mBAAN,cAA+B,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAapD,YAAY,SAAgC,SAA6B;AACvE,UAAM,SAAS,OAAO;AAbxB;AAEA;AAEA;AAUE,uBAAK,UAAW,WAAW,QAAQ,cAAc,sBAAsB;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAQ;AACZ,UAAM,MAAM,MAAM;AAElB,QAAI,mBAAK,UAAS,OAAO,SAAS;AAChC,UAAI,kBAAkB;AACtB,yBAAK,SAAU,MAAM,YAAY,mBAAK,UAAS,MAAM;AAAA,IACvD;AAEA,SAAK,OAAO,mBAAmB;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WAAW;AACf,UAAM,mBAAK,YAAW,iBAAiB,kBAAkB;AACzD,uBAAK,UAAS,MAAM;AACpB,UAAM,MAAM,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,MAAM,YAKJ,SAAiB,KAAK,QACtB,UAAgD,CAAC,GACjD;AACA,UAAM,mBAAK,YAAW,iBAAiB,kBAAkB;AACzD,uBAAK,WAAY,MAAM,kBAAkB,QAAkB,OAAO;AAClE,WAAO,mBAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,SAAS;AACX;AAAA,MACE,mBAAK;AAAA,MACL;AAAA,IACF;AAEA,UAAM,EAAE,KAAK,IAAI,mBAAK,SAAQ,QAAQ;AACtC,WAAO,0BAA0B,IAAI;AAAA,EACvC;AACF;AAtFE;AAEA;AAEA;AAoFF,IAAO,sBAAQ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";//# sourceMappingURL=chunk-QMHWGASM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";//# sourceMappingURL=chunk-QNDLJ2W7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createJsonRpcEngine
|
|
3
|
+
} from "./chunk-HMF2CKYT.mjs";
|
|
4
|
+
import {
|
|
5
|
+
getOptions
|
|
6
|
+
} from "./chunk-FPFX5AKR.mjs";
|
|
7
|
+
import {
|
|
8
|
+
getControllers,
|
|
9
|
+
registerSnap
|
|
10
|
+
} from "./chunk-JJCX335U.mjs";
|
|
11
|
+
import {
|
|
12
|
+
getEndowments
|
|
13
|
+
} from "./chunk-EOCDSPT7.mjs";
|
|
14
|
+
import {
|
|
15
|
+
createStore
|
|
16
|
+
} from "./chunk-LD5PSHHT.mjs";
|
|
17
|
+
import {
|
|
18
|
+
getSnapFile
|
|
19
|
+
} from "./chunk-LNNKGOHQ.mjs";
|
|
20
|
+
|
|
21
|
+
// src/internals/simulation/simulation.ts
|
|
22
|
+
import { ControllerMessenger } from "@metamask/base-controller";
|
|
23
|
+
import { createEngineStream } from "@metamask/json-rpc-middleware-stream";
|
|
24
|
+
import { mnemonicPhraseToBytes } from "@metamask/key-tree";
|
|
25
|
+
import {
|
|
26
|
+
fetchSnap,
|
|
27
|
+
detectSnapLocation,
|
|
28
|
+
NodeThreadExecutionService,
|
|
29
|
+
setupMultiplex
|
|
30
|
+
} from "@metamask/snaps-controllers/node";
|
|
31
|
+
import { getEncryptionKey } from "@metamask/snaps-rpc-methods";
|
|
32
|
+
import { logError } from "@metamask/snaps-utils";
|
|
33
|
+
import { pipeline } from "readable-stream";
|
|
34
|
+
async function handleInstallSnap(snapId, {
|
|
35
|
+
executionService,
|
|
36
|
+
executionServiceOptions,
|
|
37
|
+
options: rawOptions = {}
|
|
38
|
+
} = {}) {
|
|
39
|
+
const options = getOptions(rawOptions);
|
|
40
|
+
const location = detectSnapLocation(snapId, {
|
|
41
|
+
allowLocal: true
|
|
42
|
+
});
|
|
43
|
+
const snapFiles = await fetchSnap(snapId, location);
|
|
44
|
+
const password = await getEncryptionKey({
|
|
45
|
+
mnemonicPhrase: mnemonicPhraseToBytes(options.secretRecoveryPhrase),
|
|
46
|
+
snapId
|
|
47
|
+
});
|
|
48
|
+
const { store, runSaga } = createStore(password, options);
|
|
49
|
+
const controllerMessenger = new ControllerMessenger();
|
|
50
|
+
registerActions(controllerMessenger);
|
|
51
|
+
const hooks = getHooks(options, snapFiles, snapId, controllerMessenger);
|
|
52
|
+
const { subjectMetadataController, permissionController } = getControllers({
|
|
53
|
+
controllerMessenger,
|
|
54
|
+
hooks,
|
|
55
|
+
runSaga,
|
|
56
|
+
options
|
|
57
|
+
});
|
|
58
|
+
const engine = createJsonRpcEngine({
|
|
59
|
+
store,
|
|
60
|
+
hooks,
|
|
61
|
+
permissionMiddleware: permissionController.createPermissionMiddleware({
|
|
62
|
+
origin: snapId
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
const ExecutionService = executionService ?? NodeThreadExecutionService;
|
|
66
|
+
const service = new ExecutionService({
|
|
67
|
+
...executionServiceOptions,
|
|
68
|
+
messenger: controllerMessenger.getRestricted({
|
|
69
|
+
name: "ExecutionService"
|
|
70
|
+
}),
|
|
71
|
+
setupSnapProvider: (_snapId, rpcStream) => {
|
|
72
|
+
const mux = setupMultiplex(rpcStream, "snapStream");
|
|
73
|
+
const stream = mux.createStream("metamask-provider");
|
|
74
|
+
const providerStream = createEngineStream({ engine });
|
|
75
|
+
pipeline(stream, providerStream, stream, (error) => {
|
|
76
|
+
if (error) {
|
|
77
|
+
logError(`Provider stream failure.`, error);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
await registerSnap(snapId, snapFiles.manifest.result, {
|
|
83
|
+
permissionController,
|
|
84
|
+
subjectMetadataController
|
|
85
|
+
});
|
|
86
|
+
await service.executeSnap({
|
|
87
|
+
snapId,
|
|
88
|
+
sourceCode: snapFiles.sourceCode.toString("utf8"),
|
|
89
|
+
endowments: await getEndowments(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(mnemonicPhraseToBytes(options.secretRecoveryPhrase)),
|
|
102
|
+
getSnapFile: async (path, encoding) => await getSnapFile(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
|
+
export {
|
|
133
|
+
handleInstallSnap,
|
|
134
|
+
getHooks,
|
|
135
|
+
registerActions
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=chunk-QUUILTDY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internals/simulation/simulation.ts"],"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"],"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;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";//# sourceMappingURL=chunk-R7ORBTUD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|