@metamask/snaps-execution-environments 4.0.0 → 5.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 +15 -1
- package/dist/browserify/iframe/bundle.js +4 -4
- package/dist/browserify/iframe/index.html +201 -110
- package/dist/browserify/node-process/bundle.js +204 -113
- package/dist/browserify/node-thread/bundle.js +204 -113
- package/dist/browserify/webview/bundle.js +4 -4
- package/dist/browserify/webview/index.html +201 -110
- package/dist/browserify/worker-executor/bundle.js +205 -114
- package/dist/browserify/worker-pool/bundle.js +4 -4
- package/dist/browserify/worker-pool/index.html +201 -110
- package/dist/chunk-26EFJQDW.mjs +49 -0
- package/dist/chunk-26EFJQDW.mjs.map +1 -0
- package/dist/chunk-4NOF6TN6.js +51 -0
- package/dist/chunk-4NOF6TN6.js.map +1 -0
- package/dist/chunk-5DIRYAYO.js +30 -0
- package/dist/chunk-5DIRYAYO.js.map +1 -0
- package/dist/chunk-5RKYO2Y5.js +33 -0
- package/dist/chunk-5RKYO2Y5.js.map +1 -0
- package/dist/chunk-6GHFAQ54.mjs +44 -0
- package/dist/chunk-6GHFAQ54.mjs.map +1 -0
- package/dist/chunk-A7NJQLUA.mjs +32 -0
- package/dist/chunk-A7NJQLUA.mjs.map +1 -0
- package/dist/chunk-AJFPA6MI.js +81 -0
- package/dist/chunk-AJFPA6MI.js.map +1 -0
- package/dist/chunk-AQNACKO6.js +1 -0
- package/dist/chunk-AQNACKO6.js.map +1 -0
- package/dist/chunk-AZCRNZ5W.js +49 -0
- package/dist/chunk-AZCRNZ5W.js.map +1 -0
- package/dist/chunk-B3ASGNVQ.mjs +45 -0
- package/dist/chunk-B3ASGNVQ.mjs.map +1 -0
- package/dist/chunk-BE4YFFMX.js +49 -0
- package/dist/chunk-BE4YFFMX.js.map +1 -0
- package/dist/chunk-BOCIYCLE.mjs +30 -0
- package/dist/chunk-BOCIYCLE.mjs.map +1 -0
- package/dist/chunk-CCBKFCGG.js +147 -0
- package/dist/chunk-CCBKFCGG.js.map +1 -0
- package/dist/chunk-CINBMYIQ.mjs +183 -0
- package/dist/chunk-CINBMYIQ.mjs.map +1 -0
- package/dist/chunk-EBECHU6M.js +92 -0
- package/dist/chunk-EBECHU6M.js.map +1 -0
- package/dist/chunk-ETXAWW65.mjs +86 -0
- package/dist/chunk-ETXAWW65.mjs.map +1 -0
- package/dist/chunk-EXN2TFDJ.js +38 -0
- package/dist/chunk-EXN2TFDJ.js.map +1 -0
- package/dist/chunk-FNRATYYY.mjs +24 -0
- package/dist/chunk-FNRATYYY.mjs.map +1 -0
- package/dist/chunk-FQBU72MW.mjs +16 -0
- package/dist/chunk-FQBU72MW.mjs.map +1 -0
- package/dist/chunk-G3NCGVCC.mjs +33 -0
- package/dist/chunk-G3NCGVCC.mjs.map +1 -0
- package/dist/chunk-GH6FPDY5.mjs +147 -0
- package/dist/chunk-GH6FPDY5.mjs.map +1 -0
- package/dist/chunk-HSZIPZHO.js +183 -0
- package/dist/chunk-HSZIPZHO.js.map +1 -0
- package/dist/chunk-IU54VPNO.js +67 -0
- package/dist/chunk-IU54VPNO.js.map +1 -0
- package/dist/chunk-IXYNAYMQ.js +33 -0
- package/dist/chunk-IXYNAYMQ.js.map +1 -0
- package/dist/chunk-IY3CYGH7.js +44 -0
- package/dist/chunk-IY3CYGH7.js.map +1 -0
- package/dist/chunk-KQNKD7G5.mjs +40 -0
- package/dist/chunk-KQNKD7G5.mjs.map +1 -0
- package/dist/chunk-KWFB2KH2.mjs +73 -0
- package/dist/chunk-KWFB2KH2.mjs.map +1 -0
- package/dist/chunk-L4G6IIWG.js +484 -0
- package/dist/chunk-L4G6IIWG.js.map +1 -0
- package/dist/chunk-L5U2LMZR.js +26 -0
- package/dist/chunk-L5U2LMZR.js.map +1 -0
- package/dist/chunk-LGC7HQR4.js +32 -0
- package/dist/chunk-LGC7HQR4.js.map +1 -0
- package/dist/chunk-LX5LQXYU.js +16 -0
- package/dist/chunk-LX5LQXYU.js.map +1 -0
- package/dist/chunk-M2OYI2NS.js +108 -0
- package/dist/chunk-M2OYI2NS.js.map +1 -0
- package/dist/chunk-MOWPAP2K.mjs +92 -0
- package/dist/chunk-MOWPAP2K.mjs.map +1 -0
- package/dist/chunk-N7URTBJV.js +73 -0
- package/dist/chunk-N7URTBJV.js.map +1 -0
- package/dist/chunk-OW4IXJ5J.mjs +484 -0
- package/dist/chunk-OW4IXJ5J.mjs.map +1 -0
- package/dist/chunk-OWG545LQ.js +45 -0
- package/dist/chunk-OWG545LQ.js.map +1 -0
- package/dist/chunk-QYFJ2LLW.js +86 -0
- package/dist/chunk-QYFJ2LLW.js.map +1 -0
- package/dist/chunk-RCPCISJD.mjs +16 -0
- package/dist/chunk-RCPCISJD.mjs.map +1 -0
- package/dist/chunk-RDFGQYG6.mjs +147 -0
- package/dist/chunk-RDFGQYG6.mjs.map +1 -0
- package/dist/chunk-RO347OMD.js +16 -0
- package/dist/chunk-RO347OMD.js.map +1 -0
- package/dist/chunk-RWBJNNGH.js +24 -0
- package/dist/chunk-RWBJNNGH.js.map +1 -0
- package/dist/chunk-S7LRB72P.js +38 -0
- package/dist/chunk-S7LRB72P.js.map +1 -0
- package/dist/chunk-SWINKAMI.js +147 -0
- package/dist/chunk-SWINKAMI.js.map +1 -0
- package/dist/chunk-TVV27HGP.mjs +81 -0
- package/dist/chunk-TVV27HGP.mjs.map +1 -0
- package/dist/chunk-TWF4RAXL.mjs +49 -0
- package/dist/chunk-TWF4RAXL.mjs.map +1 -0
- package/dist/chunk-VL3VNUT4.mjs +12 -0
- package/dist/chunk-VL3VNUT4.mjs.map +1 -0
- package/dist/chunk-VZS2LXDP.mjs +108 -0
- package/dist/chunk-VZS2LXDP.mjs.map +1 -0
- package/dist/chunk-WA7K3P4D.js +40 -0
- package/dist/chunk-WA7K3P4D.js.map +1 -0
- package/dist/chunk-XBKAIK2K.mjs +67 -0
- package/dist/chunk-XBKAIK2K.mjs.map +1 -0
- package/dist/chunk-XGCWN6ZD.mjs +262 -0
- package/dist/chunk-XGCWN6ZD.mjs.map +1 -0
- package/dist/chunk-XKY46YTJ.js +12 -0
- package/dist/chunk-XKY46YTJ.js.map +1 -0
- package/dist/chunk-XL5BQOEI.mjs +33 -0
- package/dist/chunk-XL5BQOEI.mjs.map +1 -0
- package/dist/chunk-XMCETCVM.js +48 -0
- package/dist/chunk-XMCETCVM.js.map +1 -0
- package/dist/chunk-XYRWHY3K.mjs +51 -0
- package/dist/chunk-XYRWHY3K.mjs.map +1 -0
- package/dist/chunk-Y7IEFWZU.mjs +26 -0
- package/dist/chunk-Y7IEFWZU.mjs.map +1 -0
- package/dist/chunk-YC3HWHJV.mjs +48 -0
- package/dist/chunk-YC3HWHJV.mjs.map +1 -0
- package/dist/chunk-YMAK7TUO.mjs +1 -0
- package/dist/chunk-YMAK7TUO.mjs.map +1 -0
- package/dist/chunk-YRZVIDCF.mjs +38 -0
- package/dist/chunk-YRZVIDCF.mjs.map +1 -0
- package/dist/chunk-Z7FBBBME.mjs +38 -0
- package/dist/chunk-Z7FBBBME.mjs.map +1 -0
- package/dist/chunk-ZMDJRC2Z.js +262 -0
- package/dist/chunk-ZMDJRC2Z.js.map +1 -0
- package/dist/common/BaseSnapExecutor.js +26 -0
- package/dist/common/BaseSnapExecutor.js.map +1 -0
- package/dist/common/BaseSnapExecutor.mjs +26 -0
- package/dist/common/BaseSnapExecutor.mjs.map +1 -0
- package/dist/common/commands.js +11 -0
- package/dist/common/commands.js.map +1 -0
- package/dist/common/commands.mjs +11 -0
- package/dist/common/commands.mjs.map +1 -0
- package/dist/common/endowments/commonEndowmentFactory.js +20 -0
- package/dist/common/endowments/commonEndowmentFactory.js.map +1 -0
- package/dist/common/endowments/commonEndowmentFactory.mjs +20 -0
- package/dist/common/endowments/commonEndowmentFactory.mjs.map +1 -0
- package/dist/common/endowments/console.js +13 -0
- package/dist/common/endowments/console.js.map +1 -0
- package/dist/common/endowments/console.mjs +13 -0
- package/dist/common/endowments/console.mjs.map +1 -0
- package/dist/common/endowments/crypto.js +11 -0
- package/dist/common/endowments/crypto.js.map +1 -0
- package/dist/common/endowments/crypto.mjs +11 -0
- package/dist/common/endowments/crypto.mjs.map +1 -0
- package/dist/common/endowments/date.js +9 -0
- package/dist/common/endowments/date.js.map +1 -0
- package/dist/common/endowments/date.mjs +9 -0
- package/dist/common/endowments/date.mjs.map +1 -0
- package/dist/common/endowments/index.js +21 -0
- package/dist/common/endowments/index.js.map +1 -0
- package/dist/common/endowments/index.mjs +21 -0
- package/dist/common/endowments/index.mjs.map +1 -0
- package/dist/common/endowments/interval.js +8 -0
- package/dist/common/endowments/interval.js.map +1 -0
- package/dist/common/endowments/interval.mjs +8 -0
- package/dist/common/endowments/interval.mjs.map +1 -0
- package/dist/common/endowments/math.js +10 -0
- package/dist/common/endowments/math.js.map +1 -0
- package/dist/common/endowments/math.mjs +10 -0
- package/dist/common/endowments/math.mjs.map +1 -0
- package/dist/common/endowments/network.js +10 -0
- package/dist/common/endowments/network.js.map +1 -0
- package/dist/common/endowments/network.mjs +10 -0
- package/dist/common/endowments/network.mjs.map +1 -0
- package/dist/common/endowments/textDecoder.js +8 -0
- package/dist/common/endowments/textDecoder.js.map +1 -0
- package/dist/common/endowments/textDecoder.mjs +8 -0
- package/dist/common/endowments/textDecoder.mjs.map +1 -0
- package/dist/common/endowments/textEncoder.js +8 -0
- package/dist/common/endowments/textEncoder.js.map +1 -0
- package/dist/common/endowments/textEncoder.mjs +8 -0
- package/dist/common/endowments/textEncoder.mjs.map +1 -0
- package/dist/common/endowments/timeout.js +8 -0
- package/dist/common/endowments/timeout.js.map +1 -0
- package/dist/common/endowments/timeout.mjs +8 -0
- package/dist/common/endowments/timeout.mjs.map +1 -0
- package/dist/common/globalEvents.js +11 -0
- package/dist/common/globalEvents.js.map +1 -0
- package/dist/common/globalEvents.mjs +11 -0
- package/dist/common/globalEvents.mjs.map +1 -0
- package/dist/common/globalObject.js +10 -0
- package/dist/common/globalObject.js.map +1 -0
- package/dist/common/globalObject.mjs +10 -0
- package/dist/common/globalObject.mjs.map +1 -0
- package/dist/common/lockdown/lockdown-events.js +8 -0
- package/dist/common/lockdown/lockdown-events.js.map +1 -0
- package/dist/common/lockdown/lockdown-events.mjs +8 -0
- package/dist/common/lockdown/lockdown-events.mjs.map +1 -0
- package/dist/common/lockdown/lockdown-more.js +8 -0
- package/dist/common/lockdown/lockdown-more.js.map +1 -0
- package/dist/common/lockdown/lockdown-more.mjs +8 -0
- package/dist/common/lockdown/lockdown-more.mjs.map +1 -0
- package/dist/common/lockdown/lockdown.js +22 -0
- package/dist/common/lockdown/lockdown.js.map +1 -0
- package/dist/common/lockdown/lockdown.mjs +22 -0
- package/dist/common/lockdown/lockdown.mjs.map +1 -0
- package/dist/common/sortParams.js +8 -0
- package/dist/common/sortParams.js.map +1 -0
- package/dist/common/sortParams.mjs +8 -0
- package/dist/common/sortParams.mjs.map +1 -0
- package/dist/common/utils.js +21 -0
- package/dist/common/utils.js.map +1 -0
- package/dist/common/utils.mjs +21 -0
- package/dist/common/utils.mjs.map +1 -0
- package/dist/common/validation.js +38 -0
- package/dist/common/validation.js.map +1 -0
- package/dist/common/validation.mjs +38 -0
- package/dist/common/validation.mjs.map +1 -0
- package/dist/globals.d.js +1 -0
- package/dist/globals.d.js.map +1 -0
- package/dist/globals.d.mjs +1 -0
- package/dist/globals.d.mjs.map +1 -0
- package/dist/iframe/IFrameSnapExecutor.js +27 -0
- package/dist/iframe/IFrameSnapExecutor.js.map +1 -0
- package/dist/iframe/IFrameSnapExecutor.mjs +27 -0
- package/dist/iframe/IFrameSnapExecutor.mjs.map +1 -0
- package/dist/iframe/index.js +35 -0
- package/dist/iframe/index.js.map +1 -0
- package/dist/iframe/index.mjs +35 -0
- package/dist/iframe/index.mjs.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +9 -0
- package/dist/index.mjs.map +1 -0
- package/dist/logging.js +8 -0
- package/dist/logging.js.map +1 -0
- package/dist/logging.mjs +8 -0
- package/dist/logging.mjs.map +1 -0
- package/dist/node-process/ChildProcessSnapExecutor.js +27 -0
- package/dist/node-process/ChildProcessSnapExecutor.js.map +1 -0
- package/dist/node-process/ChildProcessSnapExecutor.mjs +27 -0
- package/dist/node-process/ChildProcessSnapExecutor.mjs.map +1 -0
- package/dist/node-process/index.js +31 -0
- package/dist/node-process/index.js.map +1 -0
- package/dist/node-process/index.mjs +31 -0
- package/dist/node-process/index.mjs.map +1 -0
- package/dist/node-thread/ThreadSnapExecutor.js +27 -0
- package/dist/node-thread/ThreadSnapExecutor.js.map +1 -0
- package/dist/node-thread/ThreadSnapExecutor.mjs +27 -0
- package/dist/node-thread/ThreadSnapExecutor.mjs.map +1 -0
- package/dist/node-thread/index.js +31 -0
- package/dist/node-thread/index.js.map +1 -0
- package/dist/node-thread/index.mjs +31 -0
- package/dist/node-thread/index.mjs.map +1 -0
- package/dist/proxy/ProxySnapExecutor.js +8 -0
- package/dist/proxy/ProxySnapExecutor.js.map +1 -0
- package/dist/proxy/ProxySnapExecutor.mjs +8 -0
- package/dist/proxy/ProxySnapExecutor.mjs.map +1 -0
- package/dist/proxy/index.js +9 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/index.mjs +9 -0
- package/dist/proxy/index.mjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/common/utils.d.ts +7 -0
- package/dist/types/vendor/global.d.js +1 -0
- package/dist/types/vendor/global.d.js.map +1 -0
- package/dist/types/vendor/global.d.mjs +1 -0
- package/dist/types/vendor/global.d.mjs.map +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/webview/WebViewExecutorStream.js +8 -0
- package/dist/webview/WebViewExecutorStream.js.map +1 -0
- package/dist/webview/WebViewExecutorStream.mjs +8 -0
- package/dist/webview/WebViewExecutorStream.mjs.map +1 -0
- package/dist/webview/index.js +26 -0
- package/dist/webview/index.js.map +1 -0
- package/dist/webview/index.mjs +26 -0
- package/dist/webview/index.mjs.map +1 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.js +27 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.js.map +1 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.mjs +27 -0
- package/dist/webworker/executor/WebWorkerSnapExecutor.mjs.map +1 -0
- package/dist/webworker/executor/index.js +35 -0
- package/dist/webworker/executor/index.js.map +1 -0
- package/dist/webworker/executor/index.mjs +35 -0
- package/dist/webworker/executor/index.mjs.map +1 -0
- package/dist/webworker/pool/WebWorkerPool.js +8 -0
- package/dist/webworker/pool/WebWorkerPool.js.map +1 -0
- package/dist/webworker/pool/WebWorkerPool.mjs +8 -0
- package/dist/webworker/pool/WebWorkerPool.mjs.map +1 -0
- package/dist/webworker/pool/index.js +16 -0
- package/dist/webworker/pool/index.js.map +1 -0
- package/dist/webworker/pool/index.mjs +16 -0
- package/dist/webworker/pool/index.mjs.map +1 -0
- package/package.json +29 -22
- package/dist/cjs/common/BaseSnapExecutor.js +0 -496
- package/dist/cjs/common/BaseSnapExecutor.js.map +0 -1
- package/dist/cjs/common/commands.js +0 -102
- package/dist/cjs/common/commands.js.map +0 -1
- package/dist/cjs/common/endowments/commonEndowmentFactory.js +0 -147
- package/dist/cjs/common/endowments/commonEndowmentFactory.js.map +0 -1
- package/dist/cjs/common/endowments/console.js +0 -134
- package/dist/cjs/common/endowments/console.js.map +0 -1
- package/dist/cjs/common/endowments/crypto.js +0 -44
- package/dist/cjs/common/endowments/crypto.js.map +0 -1
- package/dist/cjs/common/endowments/date.js +0 -53
- package/dist/cjs/common/endowments/date.js.map +0 -1
- package/dist/cjs/common/endowments/index.js +0 -93
- package/dist/cjs/common/endowments/index.js.map +0 -1
- package/dist/cjs/common/endowments/interval.js +0 -62
- package/dist/cjs/common/endowments/interval.js.map +0 -1
- package/dist/cjs/common/endowments/math.js +0 -67
- package/dist/cjs/common/endowments/math.js.map +0 -1
- package/dist/cjs/common/endowments/network.js +0 -303
- package/dist/cjs/common/endowments/network.js.map +0 -1
- package/dist/cjs/common/endowments/textDecoder.js +0 -28
- package/dist/cjs/common/endowments/textDecoder.js.map +0 -1
- package/dist/cjs/common/endowments/textEncoder.js +0 -28
- package/dist/cjs/common/endowments/textEncoder.js.map +0 -1
- package/dist/cjs/common/endowments/timeout.js +0 -64
- package/dist/cjs/common/endowments/timeout.js.map +0 -1
- package/dist/cjs/common/globalEvents.js +0 -40
- package/dist/cjs/common/globalEvents.js.map +0 -1
- package/dist/cjs/common/globalObject.js +0 -53
- package/dist/cjs/common/globalObject.js.map +0 -1
- package/dist/cjs/common/lockdown/lockdown-events.js +0 -74
- package/dist/cjs/common/lockdown/lockdown-events.js.map +0 -1
- package/dist/cjs/common/lockdown/lockdown-more.js +0 -73
- package/dist/cjs/common/lockdown/lockdown-more.js.map +0 -1
- package/dist/cjs/common/lockdown/lockdown.js +0 -30
- package/dist/cjs/common/lockdown/lockdown.js.map +0 -1
- package/dist/cjs/common/sortParams.js +0 -26
- package/dist/cjs/common/sortParams.js.map +0 -1
- package/dist/cjs/common/utils.js +0 -128
- package/dist/cjs/common/utils.js.map +0 -1
- package/dist/cjs/common/validation.js +0 -149
- package/dist/cjs/common/validation.js.map +0 -1
- package/dist/cjs/iframe/IFrameSnapExecutor.js +0 -50
- package/dist/cjs/iframe/IFrameSnapExecutor.js.map +0 -1
- package/dist/cjs/iframe/index.js +0 -13
- package/dist/cjs/iframe/index.js.map +0 -1
- package/dist/cjs/index.js +0 -20
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/logging.js +0 -15
- package/dist/cjs/logging.js.map +0 -1
- package/dist/cjs/node-process/ChildProcessSnapExecutor.js +0 -39
- package/dist/cjs/node-process/ChildProcessSnapExecutor.js.map +0 -1
- package/dist/cjs/node-process/index.js +0 -11
- package/dist/cjs/node-process/index.js.map +0 -1
- package/dist/cjs/node-thread/ThreadSnapExecutor.js +0 -39
- package/dist/cjs/node-thread/ThreadSnapExecutor.js.map +0 -1
- package/dist/cjs/node-thread/index.js +0 -11
- package/dist/cjs/node-thread/index.js.map +0 -1
- package/dist/cjs/proxy/ProxySnapExecutor.js +0 -183
- package/dist/cjs/proxy/ProxySnapExecutor.js.map +0 -1
- package/dist/cjs/proxy/index.js +0 -20
- package/dist/cjs/proxy/index.js.map +0 -1
- package/dist/cjs/webview/WebViewExecutorStream.js +0 -121
- package/dist/cjs/webview/WebViewExecutorStream.js.map +0 -1
- package/dist/cjs/webview/index.js +0 -19
- package/dist/cjs/webview/index.js.map +0 -1
- package/dist/cjs/webworker/executor/WebWorkerSnapExecutor.js +0 -45
- package/dist/cjs/webworker/executor/WebWorkerSnapExecutor.js.map +0 -1
- package/dist/cjs/webworker/executor/index.js +0 -13
- package/dist/cjs/webworker/executor/index.js.map +0 -1
- package/dist/cjs/webworker/pool/WebWorkerPool.js +0 -248
- package/dist/cjs/webworker/pool/WebWorkerPool.js.map +0 -1
- package/dist/cjs/webworker/pool/index.js +0 -13
- package/dist/cjs/webworker/pool/index.js.map +0 -1
- package/dist/esm/common/BaseSnapExecutor.js +0 -486
- package/dist/esm/common/BaseSnapExecutor.js.map +0 -1
- package/dist/esm/common/commands.js +0 -101
- package/dist/esm/common/commands.js.map +0 -1
- package/dist/esm/common/endowments/commonEndowmentFactory.js +0 -132
- package/dist/esm/common/endowments/commonEndowmentFactory.js.map +0 -1
- package/dist/esm/common/endowments/console.js +0 -116
- package/dist/esm/common/endowments/console.js.map +0 -1
- package/dist/esm/common/endowments/crypto.js +0 -26
- package/dist/esm/common/endowments/crypto.js.map +0 -1
- package/dist/esm/common/endowments/date.js +0 -43
- package/dist/esm/common/endowments/date.js.map +0 -1
- package/dist/esm/common/endowments/index.js +0 -92
- package/dist/esm/common/endowments/index.js.map +0 -1
- package/dist/esm/common/endowments/interval.js +0 -52
- package/dist/esm/common/endowments/interval.js.map +0 -1
- package/dist/esm/common/endowments/math.js +0 -57
- package/dist/esm/common/endowments/math.js.map +0 -1
- package/dist/esm/common/endowments/network.js +0 -293
- package/dist/esm/common/endowments/network.js.map +0 -1
- package/dist/esm/common/endowments/textDecoder.js +0 -18
- package/dist/esm/common/endowments/textDecoder.js.map +0 -1
- package/dist/esm/common/endowments/textEncoder.js +0 -18
- package/dist/esm/common/endowments/textEncoder.js.map +0 -1
- package/dist/esm/common/endowments/timeout.js +0 -54
- package/dist/esm/common/endowments/timeout.js.map +0 -1
- package/dist/esm/common/globalEvents.js +0 -36
- package/dist/esm/common/globalEvents.js.map +0 -1
- package/dist/esm/common/globalObject.js +0 -36
- package/dist/esm/common/globalObject.js.map +0 -1
- package/dist/esm/common/lockdown/lockdown-events.js +0 -66
- package/dist/esm/common/lockdown/lockdown-events.js.map +0 -1
- package/dist/esm/common/lockdown/lockdown-more.js +0 -82
- package/dist/esm/common/lockdown/lockdown-more.js.map +0 -1
- package/dist/esm/common/lockdown/lockdown.js +0 -24
- package/dist/esm/common/lockdown/lockdown.js.map +0 -1
- package/dist/esm/common/sortParams.js +0 -29
- package/dist/esm/common/sortParams.js.map +0 -1
- package/dist/esm/common/utils.js +0 -128
- package/dist/esm/common/utils.js.map +0 -1
- package/dist/esm/common/validation.js +0 -127
- package/dist/esm/common/validation.js.map +0 -1
- package/dist/esm/iframe/IFrameSnapExecutor.js +0 -35
- package/dist/esm/iframe/IFrameSnapExecutor.js.map +0 -1
- package/dist/esm/iframe/index.js +0 -9
- package/dist/esm/iframe/index.js.map +0 -1
- package/dist/esm/index.js +0 -3
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/logging.js +0 -10
- package/dist/esm/logging.js.map +0 -1
- package/dist/esm/node-process/ChildProcessSnapExecutor.js +0 -24
- package/dist/esm/node-process/ChildProcessSnapExecutor.js.map +0 -1
- package/dist/esm/node-process/index.js +0 -7
- package/dist/esm/node-process/index.js.map +0 -1
- package/dist/esm/node-thread/ThreadSnapExecutor.js +0 -24
- package/dist/esm/node-thread/ThreadSnapExecutor.js.map +0 -1
- package/dist/esm/node-thread/index.js +0 -7
- package/dist/esm/node-thread/index.js.map +0 -1
- package/dist/esm/proxy/ProxySnapExecutor.js +0 -181
- package/dist/esm/proxy/ProxySnapExecutor.js.map +0 -1
- package/dist/esm/proxy/index.js +0 -3
- package/dist/esm/proxy/index.js.map +0 -1
- package/dist/esm/webview/WebViewExecutorStream.js +0 -111
- package/dist/esm/webview/WebViewExecutorStream.js.map +0 -1
- package/dist/esm/webview/index.js +0 -15
- package/dist/esm/webview/index.js.map +0 -1
- package/dist/esm/webworker/executor/WebWorkerSnapExecutor.js +0 -30
- package/dist/esm/webworker/executor/WebWorkerSnapExecutor.js.map +0 -1
- package/dist/esm/webworker/executor/index.js +0 -9
- package/dist/esm/webworker/executor/index.js.map +0 -1
- package/dist/esm/webworker/pool/WebWorkerPool.js +0 -245
- package/dist/esm/webworker/pool/WebWorkerPool.js.map +0 -1
- package/dist/esm/webworker/pool/index.js +0 -9
- package/dist/esm/webworker/pool/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/endowments/commonEndowmentFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,IAAM,mBAAmD;AAAA,EACvD,EAAE,WAAW,iBAAiB,MAAM,kBAAkB;AAAA,EACtD,EAAE,WAAW,aAAa,MAAM,cAAc;AAAA,EAC9C,EAAE,WAAW,aAAa,MAAM,cAAc;AAAA,EAC9C,EAAE,WAAW,MAAM,MAAM,QAAQ,MAAM,KAAK;AAAA,EAC5C,EAAE,WAAW,QAAQ,MAAM,SAAS;AAAA,EACpC,EAAE,WAAW,eAAe,MAAM,gBAAgB;AAAA,EAClD,EAAE,WAAW,gBAAgB,MAAM,iBAAiB;AAAA,EACpD,EAAE,WAAW,MAAM,MAAM,QAAQ,MAAM,KAAK;AAAA,EAC5C,EAAE,WAAW,UAAU,MAAM,WAAW;AAAA,EACxC,EAAE,WAAW,cAAc,MAAM,eAAe;AAAA,EAChD,EAAE,WAAW,cAAc,MAAM,eAAe;AAAA,EAChD,EAAE,WAAW,WAAW,MAAM,YAAY;AAAA,EAC1C,EAAE,WAAW,YAAY,MAAM,aAAa;AAAA,EAC5C,EAAE,WAAW,YAAY,MAAM,aAAa;AAAA,EAC5C,EAAE,WAAW,YAAY,MAAM,aAAa;AAAA,EAC5C,EAAE,WAAW,mBAAmB,MAAM,oBAAoB;AAAA,EAC1D,EAAE,WAAW,aAAa,MAAM,cAAc;AAAA,EAC9C,EAAE,WAAW,aAAa,MAAM,cAAc;AAAA,EAC9C,EAAE,WAAW,KAAK,MAAM,MAAM;AAAA,EAC9B,EAAE,WAAW,aAAa,MAAM,cAAc;AAChD;AASA,IAAM,wBAAwB,MAA0B;AACtD,QAAM,qBAAyC;AAAA,IAC7C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,mBAAiB,QAAQ,CAAC,2BAA2B;AACnD,UAAM,YAAY;AAAA,MAChB,OAAO,CAAC,uBAAuB,IAAI;AAAA,MACnC,SAAS,MAAM;AACb,cAAM,iBACJ,OAAO,uBAAuB,cAAc,cAC5C,uBAAuB,OACnB,uBAAuB,UAAU,KAAK,eAAe,IACrD,uBAAuB;AAC7B,eAAO;AAAA,UACL,CAAC,uBAAuB,IAAI,GAAG,OAAO,cAAc;AAAA,QACtD;AAAA,MACF;AAAA,IACF;AACA,uBAAmB,KAAK,SAAS;AAAA,EACnC,CAAC;AAED,SAAO;AACT;AAEA,IAAO,iCAAQ","sourcesContent":["import type { NotifyFunction } from '../BaseSnapExecutor';\nimport { rootRealmGlobal } from '../globalObject';\nimport consoleEndowment from './console';\nimport crypto from './crypto';\nimport date from './date';\nimport interval from './interval';\nimport math from './math';\nimport network from './network';\nimport textDecoder from './textDecoder';\nimport textEncoder from './textEncoder';\nimport timeout from './timeout';\n\nexport type EndowmentFactoryOptions = {\n snapId?: string;\n notify?: NotifyFunction;\n};\n\nexport type EndowmentFactory = {\n names: readonly string[];\n factory: (options?: EndowmentFactoryOptions) => { [key: string]: unknown };\n};\n\nexport type CommonEndowmentSpecification = {\n endowment: unknown;\n name: string;\n bind?: boolean;\n};\n\n// Array of common endowments\nconst commonEndowments: CommonEndowmentSpecification[] = [\n { endowment: AbortController, name: 'AbortController' },\n { endowment: AbortSignal, name: 'AbortSignal' },\n { endowment: ArrayBuffer, name: 'ArrayBuffer' },\n { endowment: atob, name: 'atob', bind: true },\n { endowment: BigInt, name: 'BigInt' },\n { endowment: BigInt64Array, name: 'BigInt64Array' },\n { endowment: BigUint64Array, name: 'BigUint64Array' },\n { endowment: btoa, name: 'btoa', bind: true },\n { endowment: DataView, name: 'DataView' },\n { endowment: Float32Array, name: 'Float32Array' },\n { endowment: Float64Array, name: 'Float64Array' },\n { endowment: Int8Array, name: 'Int8Array' },\n { endowment: Int16Array, name: 'Int16Array' },\n { endowment: Int32Array, name: 'Int32Array' },\n { endowment: Uint8Array, name: 'Uint8Array' },\n { endowment: Uint8ClampedArray, name: 'Uint8ClampedArray' },\n { endowment: Uint16Array, name: 'Uint16Array' },\n { endowment: Uint32Array, name: 'Uint32Array' },\n { endowment: URL, name: 'URL' },\n { endowment: WebAssembly, name: 'WebAssembly' },\n];\n\n/**\n * Creates a consolidated collection of common endowments.\n * This function will return factories for all common endowments including\n * the additionally attenuated. All hardened with SES.\n *\n * @returns An object with common endowments.\n */\nconst buildCommonEndowments = (): EndowmentFactory[] => {\n const endowmentFactories: EndowmentFactory[] = [\n crypto,\n interval,\n math,\n network,\n timeout,\n textDecoder,\n textEncoder,\n date,\n consoleEndowment,\n ];\n\n commonEndowments.forEach((endowmentSpecification) => {\n const endowment = {\n names: [endowmentSpecification.name] as const,\n factory: () => {\n const boundEndowment =\n typeof endowmentSpecification.endowment === 'function' &&\n endowmentSpecification.bind\n ? endowmentSpecification.endowment.bind(rootRealmGlobal)\n : endowmentSpecification.endowment;\n return {\n [endowmentSpecification.name]: harden(boundEndowment),\n } as const;\n },\n };\n endowmentFactories.push(endowment);\n });\n\n return endowmentFactories;\n};\n\nexport default buildCommonEndowments;\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// src/common/endowments/textEncoder.ts
|
|
2
|
+
var createTextEncoder = () => {
|
|
3
|
+
return {
|
|
4
|
+
TextEncoder: harden(TextEncoder)
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
var endowmentModule = {
|
|
8
|
+
names: ["TextEncoder"],
|
|
9
|
+
factory: createTextEncoder
|
|
10
|
+
};
|
|
11
|
+
var textEncoder_default = endowmentModule;
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
textEncoder_default
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=chunk-RCPCISJD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/endowments/textEncoder.ts"],"sourcesContent":["/**\n * Creates TextEncoder function hardened by SES.\n *\n * @returns An object with the attenuated `TextEncoder` function.\n */\nconst createTextEncoder = () => {\n return {\n TextEncoder: harden(TextEncoder),\n } as const;\n};\n\nconst endowmentModule = {\n names: ['TextEncoder'] as const,\n factory: createTextEncoder,\n};\nexport default endowmentModule;\n"],"mappings":";AAKA,IAAM,oBAAoB,MAAM;AAC9B,SAAO;AAAA,IACL,aAAa,OAAO,WAAW;AAAA,EACjC;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,aAAa;AAAA,EACrB,SAAS;AACX;AACA,IAAO,sBAAQ;","names":[]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// src/common/validation.ts
|
|
2
|
+
import { rpcErrors } from "@metamask/rpc-errors";
|
|
3
|
+
import { UserInputEventStruct } from "@metamask/snaps-sdk";
|
|
4
|
+
import { ChainIdStruct, HandlerType } from "@metamask/snaps-utils";
|
|
5
|
+
import {
|
|
6
|
+
assertStruct,
|
|
7
|
+
JsonRpcIdStruct,
|
|
8
|
+
JsonRpcParamsStruct,
|
|
9
|
+
JsonRpcSuccessStruct,
|
|
10
|
+
JsonRpcVersionStruct,
|
|
11
|
+
JsonStruct
|
|
12
|
+
} from "@metamask/utils";
|
|
13
|
+
import {
|
|
14
|
+
array,
|
|
15
|
+
assign,
|
|
16
|
+
enums,
|
|
17
|
+
is,
|
|
18
|
+
literal,
|
|
19
|
+
nullable,
|
|
20
|
+
object,
|
|
21
|
+
optional,
|
|
22
|
+
record,
|
|
23
|
+
string,
|
|
24
|
+
tuple,
|
|
25
|
+
union
|
|
26
|
+
} from "superstruct";
|
|
27
|
+
var JsonRpcRequestWithoutIdStruct = object({
|
|
28
|
+
jsonrpc: optional(JsonRpcVersionStruct),
|
|
29
|
+
id: optional(JsonRpcIdStruct),
|
|
30
|
+
method: string(),
|
|
31
|
+
params: optional(JsonRpcParamsStruct)
|
|
32
|
+
});
|
|
33
|
+
var EndowmentStruct = string();
|
|
34
|
+
function isEndowment(value) {
|
|
35
|
+
return is(value, EndowmentStruct);
|
|
36
|
+
}
|
|
37
|
+
function isEndowmentsArray(value) {
|
|
38
|
+
return Array.isArray(value) && value.every(isEndowment);
|
|
39
|
+
}
|
|
40
|
+
var OkStruct = literal("OK");
|
|
41
|
+
var PingRequestArgumentsStruct = optional(
|
|
42
|
+
union([literal(void 0), array()])
|
|
43
|
+
);
|
|
44
|
+
var TerminateRequestArgumentsStruct = union([
|
|
45
|
+
literal(void 0),
|
|
46
|
+
array()
|
|
47
|
+
]);
|
|
48
|
+
var ExecuteSnapRequestArgumentsStruct = tuple([
|
|
49
|
+
string(),
|
|
50
|
+
string(),
|
|
51
|
+
array(EndowmentStruct)
|
|
52
|
+
]);
|
|
53
|
+
var SnapRpcRequestArgumentsStruct = tuple([
|
|
54
|
+
string(),
|
|
55
|
+
enums(Object.values(HandlerType)),
|
|
56
|
+
string(),
|
|
57
|
+
assign(
|
|
58
|
+
JsonRpcRequestWithoutIdStruct,
|
|
59
|
+
object({
|
|
60
|
+
params: optional(record(string(), JsonStruct))
|
|
61
|
+
})
|
|
62
|
+
)
|
|
63
|
+
]);
|
|
64
|
+
var OnTransactionRequestArgumentsStruct = object({
|
|
65
|
+
// TODO: Improve `transaction` type.
|
|
66
|
+
transaction: record(string(), JsonStruct),
|
|
67
|
+
chainId: ChainIdStruct,
|
|
68
|
+
transactionOrigin: nullable(string())
|
|
69
|
+
});
|
|
70
|
+
function assertIsOnTransactionRequestArguments(value) {
|
|
71
|
+
assertStruct(
|
|
72
|
+
value,
|
|
73
|
+
OnTransactionRequestArgumentsStruct,
|
|
74
|
+
"Invalid request params",
|
|
75
|
+
rpcErrors.invalidParams
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
var OnSignatureRequestArgumentsStruct = object({
|
|
79
|
+
signature: record(string(), JsonStruct),
|
|
80
|
+
signatureOrigin: nullable(string())
|
|
81
|
+
});
|
|
82
|
+
function assertIsOnSignatureRequestArguments(value) {
|
|
83
|
+
assertStruct(
|
|
84
|
+
value,
|
|
85
|
+
OnSignatureRequestArgumentsStruct,
|
|
86
|
+
"Invalid request params",
|
|
87
|
+
rpcErrors.invalidParams
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
var baseNameLookupArgs = { chainId: ChainIdStruct };
|
|
91
|
+
var domainRequestStruct = object({
|
|
92
|
+
...baseNameLookupArgs,
|
|
93
|
+
address: string()
|
|
94
|
+
});
|
|
95
|
+
var addressRequestStruct = object({
|
|
96
|
+
...baseNameLookupArgs,
|
|
97
|
+
domain: string()
|
|
98
|
+
});
|
|
99
|
+
var OnNameLookupRequestArgumentsStruct = union([
|
|
100
|
+
domainRequestStruct,
|
|
101
|
+
addressRequestStruct
|
|
102
|
+
]);
|
|
103
|
+
function assertIsOnNameLookupRequestArguments(value) {
|
|
104
|
+
assertStruct(
|
|
105
|
+
value,
|
|
106
|
+
OnNameLookupRequestArgumentsStruct,
|
|
107
|
+
"Invalid request params",
|
|
108
|
+
rpcErrors.invalidParams
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
var OnUserInputArgumentsStruct = object({
|
|
112
|
+
id: string(),
|
|
113
|
+
event: UserInputEventStruct
|
|
114
|
+
});
|
|
115
|
+
function assertIsOnUserInputRequestArguments(value) {
|
|
116
|
+
assertStruct(
|
|
117
|
+
value,
|
|
118
|
+
OnUserInputArgumentsStruct,
|
|
119
|
+
"Invalid request params",
|
|
120
|
+
rpcErrors.invalidParams
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
var OkResponseStruct = object({
|
|
124
|
+
id: JsonRpcIdStruct,
|
|
125
|
+
jsonrpc: JsonRpcVersionStruct,
|
|
126
|
+
result: OkStruct
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
export {
|
|
130
|
+
JsonRpcRequestWithoutIdStruct,
|
|
131
|
+
EndowmentStruct,
|
|
132
|
+
isEndowment,
|
|
133
|
+
isEndowmentsArray,
|
|
134
|
+
PingRequestArgumentsStruct,
|
|
135
|
+
TerminateRequestArgumentsStruct,
|
|
136
|
+
ExecuteSnapRequestArgumentsStruct,
|
|
137
|
+
SnapRpcRequestArgumentsStruct,
|
|
138
|
+
OnTransactionRequestArgumentsStruct,
|
|
139
|
+
assertIsOnTransactionRequestArguments,
|
|
140
|
+
OnSignatureRequestArgumentsStruct,
|
|
141
|
+
assertIsOnSignatureRequestArguments,
|
|
142
|
+
OnNameLookupRequestArgumentsStruct,
|
|
143
|
+
assertIsOnNameLookupRequestArguments,
|
|
144
|
+
OnUserInputArgumentsStruct,
|
|
145
|
+
assertIsOnUserInputRequestArguments
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=chunk-RDFGQYG6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/validation.ts"],"sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport { UserInputEventStruct } from '@metamask/snaps-sdk';\nimport { ChainIdStruct, HandlerType } from '@metamask/snaps-utils';\nimport type { Json, JsonRpcSuccess } from '@metamask/utils';\nimport {\n assertStruct,\n JsonRpcIdStruct,\n JsonRpcParamsStruct,\n JsonRpcSuccessStruct,\n JsonRpcVersionStruct,\n JsonStruct,\n} from '@metamask/utils';\nimport type { Infer } from 'superstruct';\nimport {\n array,\n assign,\n enums,\n is,\n literal,\n nullable,\n object,\n optional,\n record,\n string,\n tuple,\n union,\n} from 'superstruct';\n\nexport const JsonRpcRequestWithoutIdStruct = object({\n jsonrpc: optional(JsonRpcVersionStruct),\n id: optional(JsonRpcIdStruct),\n method: string(),\n params: optional(JsonRpcParamsStruct),\n});\n\nexport type JsonRpcRequestWithoutId = Infer<\n typeof JsonRpcRequestWithoutIdStruct\n>;\n\nexport const EndowmentStruct = string();\nexport type Endowment = Infer<typeof EndowmentStruct>;\n\n/**\n * Check if the given value is an endowment.\n *\n * @param value - The value to check.\n * @returns Whether the value is an endowment.\n */\nexport function isEndowment(value: unknown): value is Endowment {\n return is(value, EndowmentStruct);\n}\n\n/**\n * Check if the given value is an array of endowments.\n *\n * @param value - The value to check.\n * @returns Whether the value is an array of endowments.\n */\nexport function isEndowmentsArray(value: unknown): value is Endowment[] {\n return Array.isArray(value) && value.every(isEndowment);\n}\n\nconst OkStruct = literal('OK');\n\nexport const PingRequestArgumentsStruct = optional(\n union([literal(undefined), array()]),\n);\n\nexport const TerminateRequestArgumentsStruct = union([\n literal(undefined),\n array(),\n]);\n\nexport const ExecuteSnapRequestArgumentsStruct = tuple([\n string(),\n string(),\n array(EndowmentStruct),\n]);\n\nexport const SnapRpcRequestArgumentsStruct = tuple([\n string(),\n enums(Object.values(HandlerType)),\n string(),\n assign(\n JsonRpcRequestWithoutIdStruct,\n object({\n params: optional(record(string(), JsonStruct)),\n }),\n ),\n]);\n\nexport type PingRequestArguments = Infer<typeof PingRequestArgumentsStruct>;\nexport type TerminateRequestArguments = Infer<\n typeof TerminateRequestArgumentsStruct\n>;\n\nexport type ExecuteSnapRequestArguments = Infer<\n typeof ExecuteSnapRequestArgumentsStruct\n>;\n\nexport type SnapRpcRequestArguments = Infer<\n typeof SnapRpcRequestArgumentsStruct\n>;\n\nexport type RequestArguments =\n | PingRequestArguments\n | TerminateRequestArguments\n | ExecuteSnapRequestArguments\n | SnapRpcRequestArguments;\n\nexport const OnTransactionRequestArgumentsStruct = object({\n // TODO: Improve `transaction` type.\n transaction: record(string(), JsonStruct),\n chainId: ChainIdStruct,\n transactionOrigin: nullable(string()),\n});\n\nexport type OnTransactionRequestArguments = Infer<\n typeof OnTransactionRequestArgumentsStruct\n>;\n\n/**\n * Asserts that the given value is a valid {@link OnTransactionRequestArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnTransactionRequestArguments}\n * object.\n */\nexport function assertIsOnTransactionRequestArguments(\n value: unknown,\n): asserts value is OnTransactionRequestArguments {\n assertStruct(\n value,\n OnTransactionRequestArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nexport const OnSignatureRequestArgumentsStruct = object({\n signature: record(string(), JsonStruct),\n signatureOrigin: nullable(string()),\n});\n\nexport type OnSignatureRequestArguments = Infer<\n typeof OnSignatureRequestArgumentsStruct\n>;\n\n/**\n * Asserts that the given value is a valid {@link OnSignatureRequestArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnSignatureRequestArguments}\n * object.\n */\nexport function assertIsOnSignatureRequestArguments(\n value: unknown,\n): asserts value is OnSignatureRequestArguments {\n assertStruct(\n value,\n OnSignatureRequestArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nconst baseNameLookupArgs = { chainId: ChainIdStruct };\nconst domainRequestStruct = object({\n ...baseNameLookupArgs,\n address: string(),\n});\nconst addressRequestStruct = object({\n ...baseNameLookupArgs,\n domain: string(),\n});\n\nexport const OnNameLookupRequestArgumentsStruct = union([\n domainRequestStruct,\n addressRequestStruct,\n]);\n\nexport type OnNameLookupRequestArguments = Infer<\n typeof OnNameLookupRequestArgumentsStruct\n>;\n\nexport type PossibleLookupRequestArgs = typeof baseNameLookupArgs & {\n address?: string;\n domain?: string;\n};\n\n/**\n * Asserts that the given value is a valid {@link OnNameLookupRequestArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnNameLookupRequestArguments}\n * object.\n */\nexport function assertIsOnNameLookupRequestArguments(\n value: unknown,\n): asserts value is OnNameLookupRequestArguments {\n assertStruct(\n value,\n OnNameLookupRequestArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nexport const OnUserInputArgumentsStruct = object({\n id: string(),\n event: UserInputEventStruct,\n});\n\nexport type OnUserInputArguments = Infer<typeof OnUserInputArgumentsStruct>;\n\n/**\n * Asserts that the given value is a valid {@link OnUserInputArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnUserInputArguments}\n * object.\n */\nexport function assertIsOnUserInputRequestArguments(\n value: unknown,\n): asserts value is OnUserInputArguments {\n assertStruct(\n value,\n OnUserInputArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nconst OkResponseStruct = object({\n id: JsonRpcIdStruct,\n jsonrpc: JsonRpcVersionStruct,\n result: OkStruct,\n});\n\nconst SnapRpcResponse = JsonRpcSuccessStruct;\n\nexport type OkResponse = Infer<typeof OkResponseStruct>;\nexport type SnapRpcResponse = Infer<typeof SnapRpcResponse>;\n\nexport type Response = OkResponse | SnapRpcResponse;\n\ntype RequestParams<Params extends unknown[] | undefined> =\n Params extends undefined ? [] : Params;\n\ntype RequestFunction<\n Args extends RequestArguments,\n ResponseType extends JsonRpcSuccess<Json>,\n> = (...args: RequestParams<Args>) => Promise<ResponseType['result']>;\n\nexport type Ping = RequestFunction<PingRequestArguments, OkResponse>;\nexport type Terminate = RequestFunction<TerminateRequestArguments, OkResponse>;\nexport type ExecuteSnap = RequestFunction<\n ExecuteSnapRequestArguments,\n OkResponse\n>;\nexport type SnapRpc = RequestFunction<SnapRpcRequestArguments, SnapRpcResponse>;\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,4BAA4B;AACrC,SAAS,eAAe,mBAAmB;AAE3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,IAAM,gCAAgC,OAAO;AAAA,EAClD,SAAS,SAAS,oBAAoB;AAAA,EACtC,IAAI,SAAS,eAAe;AAAA,EAC5B,QAAQ,OAAO;AAAA,EACf,QAAQ,SAAS,mBAAmB;AACtC,CAAC;AAMM,IAAM,kBAAkB,OAAO;AAS/B,SAAS,YAAY,OAAoC;AAC9D,SAAO,GAAG,OAAO,eAAe;AAClC;AAQO,SAAS,kBAAkB,OAAsC;AACtE,SAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,WAAW;AACxD;AAEA,IAAM,WAAW,QAAQ,IAAI;AAEtB,IAAM,6BAA6B;AAAA,EACxC,MAAM,CAAC,QAAQ,MAAS,GAAG,MAAM,CAAC,CAAC;AACrC;AAEO,IAAM,kCAAkC,MAAM;AAAA,EACnD,QAAQ,MAAS;AAAA,EACjB,MAAM;AACR,CAAC;AAEM,IAAM,oCAAoC,MAAM;AAAA,EACrD,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,eAAe;AACvB,CAAC;AAEM,IAAM,gCAAgC,MAAM;AAAA,EACjD,OAAO;AAAA,EACP,MAAM,OAAO,OAAO,WAAW,CAAC;AAAA,EAChC,OAAO;AAAA,EACP;AAAA,IACE;AAAA,IACA,OAAO;AAAA,MACL,QAAQ,SAAS,OAAO,OAAO,GAAG,UAAU,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AACF,CAAC;AAqBM,IAAM,sCAAsC,OAAO;AAAA;AAAA,EAExD,aAAa,OAAO,OAAO,GAAG,UAAU;AAAA,EACxC,SAAS;AAAA,EACT,mBAAmB,SAAS,OAAO,CAAC;AACtC,CAAC;AAcM,SAAS,sCACd,OACgD;AAChD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,oCAAoC,OAAO;AAAA,EACtD,WAAW,OAAO,OAAO,GAAG,UAAU;AAAA,EACtC,iBAAiB,SAAS,OAAO,CAAC;AACpC,CAAC;AAcM,SAAS,oCACd,OAC8C;AAC9C;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEA,IAAM,qBAAqB,EAAE,SAAS,cAAc;AACpD,IAAM,sBAAsB,OAAO;AAAA,EACjC,GAAG;AAAA,EACH,SAAS,OAAO;AAClB,CAAC;AACD,IAAM,uBAAuB,OAAO;AAAA,EAClC,GAAG;AAAA,EACH,QAAQ,OAAO;AACjB,CAAC;AAEM,IAAM,qCAAqC,MAAM;AAAA,EACtD;AAAA,EACA;AACF,CAAC;AAmBM,SAAS,qCACd,OAC+C;AAC/C;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,6BAA6B,OAAO;AAAA,EAC/C,IAAI,OAAO;AAAA,EACX,OAAO;AACT,CAAC;AAYM,SAAS,oCACd,OACuC;AACvC;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEA,IAAM,mBAAmB,OAAO;AAAA,EAC9B,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,QAAQ;AACV,CAAC;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/common/endowments/textEncoder.ts
|
|
2
|
+
var createTextEncoder = () => {
|
|
3
|
+
return {
|
|
4
|
+
TextEncoder: harden(TextEncoder)
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
var endowmentModule = {
|
|
8
|
+
names: ["TextEncoder"],
|
|
9
|
+
factory: createTextEncoder
|
|
10
|
+
};
|
|
11
|
+
var textEncoder_default = endowmentModule;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
exports.textEncoder_default = textEncoder_default;
|
|
16
|
+
//# sourceMappingURL=chunk-RO347OMD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/endowments/textEncoder.ts"],"names":[],"mappings":";AAKA,IAAM,oBAAoB,MAAM;AAC9B,SAAO;AAAA,IACL,aAAa,OAAO,WAAW;AAAA,EACjC;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,aAAa;AAAA,EACrB,SAAS;AACX;AACA,IAAO,sBAAQ","sourcesContent":["/**\n * Creates TextEncoder function hardened by SES.\n *\n * @returns An object with the attenuated `TextEncoder` function.\n */\nconst createTextEncoder = () => {\n return {\n TextEncoder: harden(TextEncoder),\n } as const;\n};\n\nconst endowmentModule = {\n names: ['TextEncoder'] as const,\n factory: createTextEncoder,\n};\nexport default endowmentModule;\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/common/sortParams.ts
|
|
2
|
+
var sortParamKeys = (methodParams, params) => {
|
|
3
|
+
if (!params) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
if (params instanceof Array) {
|
|
7
|
+
return params;
|
|
8
|
+
}
|
|
9
|
+
const methodParamsOrder = methodParams.reduce(
|
|
10
|
+
(paramsOrderObj, paramsName, i) => ({
|
|
11
|
+
...paramsOrderObj,
|
|
12
|
+
[paramsName]: i
|
|
13
|
+
}),
|
|
14
|
+
{}
|
|
15
|
+
);
|
|
16
|
+
return Object.entries(params).sort(
|
|
17
|
+
([name1, _1], [name2, _2]) => methodParamsOrder[name1] - methodParamsOrder[name2]
|
|
18
|
+
).map(([_, val]) => val);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
exports.sortParamKeys = sortParamKeys;
|
|
24
|
+
//# sourceMappingURL=chunk-RWBJNNGH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/sortParams.ts"],"names":[],"mappings":";AAkBO,IAAM,gBAAgB,CAC3B,cACA,WACG;AACH,MAAI,CAAC,QAAQ;AACX,WAAO,CAAC;AAAA,EACV;AAEA,MAAI,kBAAkB,OAAO;AAC3B,WAAO;AAAA,EACT;AAEA,QAAM,oBAA6C,aAAa;AAAA,IAC9D,CAAC,gBAAgB,YAAY,OAAO;AAAA,MAClC,GAAG;AAAA,MACH,CAAC,UAAU,GAAG;AAAA,IAChB;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SAAO,OAAO,QAAQ,MAAM,EACzB;AAAA,IACC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MACtB,kBAAkB,KAAK,IAAI,kBAAkB,KAAK;AAAA,EACtD,EACC,IAAI,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG;AAC1B","sourcesContent":["// original source sortParamKeys from: https://github.com/etclabscore/sig.tools/blob/master/src/postMessageServer/postMessageServer.ts#L75-L77\n\nimport type { JsonRpcParams } from '@metamask/utils';\n\n/**\n * Deterministically sort JSON-RPC parameter keys. This makes it possible to\n * support both arrays and objects as parameters. Objects are sorted and turned\n * into arrays, for easier consumption by the snap.\n *\n * The order is defined by the `method` parameter.\n *\n * @param methodParams - The parameters of the JSON-RPC method, which\n * determines the ordering for the parameters.\n * @param params - JSON-RPC parameters as object or array.\n * @returns The values for the sorted keys. If `params` is not provided, this\n * returns an empty array. If `params` is an array, this returns the same\n * `params`.\n */\nexport const sortParamKeys = (\n methodParams: string[],\n params?: JsonRpcParams,\n) => {\n if (!params) {\n return [];\n }\n\n if (params instanceof Array) {\n return params;\n }\n\n const methodParamsOrder: { [k: string]: number } = methodParams.reduce(\n (paramsOrderObj, paramsName, i) => ({\n ...paramsOrderObj,\n [paramsName]: i,\n }),\n {},\n );\n\n return Object.entries(params)\n .sort(\n ([name1, _1], [name2, _2]) =>\n methodParamsOrder[name1] - methodParamsOrder[name2],\n )\n .map(([_, val]) => val);\n};\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkLGC7HQR4js = require('./chunk-LGC7HQR4.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkL5U2LMZRjs = require('./chunk-L5U2LMZR.js');
|
|
7
|
+
|
|
8
|
+
// src/common/endowments/math.ts
|
|
9
|
+
function createMath() {
|
|
10
|
+
const keys = Object.getOwnPropertyNames(
|
|
11
|
+
_chunkL5U2LMZRjs.rootRealmGlobal.Math
|
|
12
|
+
);
|
|
13
|
+
const math = keys.reduce((target, key) => {
|
|
14
|
+
if (key === "random") {
|
|
15
|
+
return target;
|
|
16
|
+
}
|
|
17
|
+
return { ...target, [key]: _chunkL5U2LMZRjs.rootRealmGlobal.Math[key] };
|
|
18
|
+
}, {});
|
|
19
|
+
const { crypto: hardenedCrypto } = _chunkLGC7HQR4js.createCrypto.call(void 0, );
|
|
20
|
+
return harden({
|
|
21
|
+
Math: {
|
|
22
|
+
...math,
|
|
23
|
+
random: () => {
|
|
24
|
+
return hardenedCrypto.getRandomValues(new Uint32Array(1))[0] / 2 ** 32;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
var endowmentModule = {
|
|
30
|
+
names: ["Math"],
|
|
31
|
+
factory: createMath
|
|
32
|
+
};
|
|
33
|
+
var math_default = endowmentModule;
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.math_default = math_default;
|
|
38
|
+
//# sourceMappingURL=chunk-S7LRB72P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/endowments/math.ts"],"names":[],"mappings":";;;;;;;;AAUA,SAAS,aAAa;AAGpB,QAAM,OAAO,OAAO;AAAA,IAClB,gBAAgB;AAAA,EAClB;AAEA,QAAM,OAAO,KAAK,OAAsB,CAAC,QAAQ,QAAQ;AACvD,QAAI,QAAQ,UAAU;AACpB,aAAO;AAAA,IACT;AAEA,WAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,GAAG,gBAAgB,KAAK,GAAG,EAAE;AAAA,EACvD,GAAG,CAAC,CAAC;AAGL,QAAM,EAAE,QAAQ,eAAe,IAAI,aAAa;AAEhD,SAAO,OAAO;AAAA,IACZ,MAAM;AAAA,MACJ,GAAG;AAAA,MACH,QAAQ,MAAM;AAiBZ,eAAO,eAAe,gBAAgB,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK;AAAA,MACtE;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,IAAM,kBAAkB;AAAA,EACtB,OAAO,CAAC,MAAM;AAAA,EACd,SAAS;AACX;AAEA,IAAO,eAAQ","sourcesContent":["import { rootRealmGlobal } from '../globalObject';\nimport { createCrypto } from './crypto';\n\n/**\n * Create a {@link Math} object, with the same properties as the global\n * {@link Math} object, but with the {@link Math.random} method replaced.\n *\n * @returns The {@link Math} object with the {@link Math.random} method\n * replaced.\n */\nfunction createMath() {\n // `Math` does not work with `Object.keys`, `Object.entries`, etc., so we\n // need to create a new object with the same properties.\n const keys = Object.getOwnPropertyNames(\n rootRealmGlobal.Math,\n ) as (keyof typeof Math)[];\n\n const math = keys.reduce<Partial<Math>>((target, key) => {\n if (key === 'random') {\n return target;\n }\n\n return { ...target, [key]: rootRealmGlobal.Math[key] };\n }, {});\n\n // Since the math endowment requires crypto, we can leverage the crypto endowment factory to get a hardened and platform agnostic instance of webcrypto\n const { crypto: hardenedCrypto } = createCrypto();\n\n return harden({\n Math: {\n ...math,\n random: () => {\n // NOTE: This is not intended to be a secure replacement for the weak\n // random number generator used by `Math.random`. It is only intended to\n // prevent side channel attacks of `Math.random` by replacing it with an\n // alternative implementation that is not vulnerable to the same\n // attacks.\n //\n // This does not mean that this implementation is secure. It is not\n // intended to be used in a security context, and this implementation\n // may change at any time.\n //\n // To securely generate random numbers, use a cryptographically secure\n // random number generator, such as the one provided by the Web Crypto\n // API:\n //\n // - https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey\n // - https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\n return hardenedCrypto.getRandomValues(new Uint32Array(1))[0] / 2 ** 32;\n },\n },\n });\n}\n\nconst endowmentModule = {\n names: ['Math'] as const,\n factory: createMath,\n};\n\nexport default endowmentModule;\n"]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/common/validation.ts
|
|
2
|
+
var _rpcerrors = require('@metamask/rpc-errors');
|
|
3
|
+
var _snapssdk = require('@metamask/snaps-sdk');
|
|
4
|
+
var _snapsutils = require('@metamask/snaps-utils');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _utils = require('@metamask/utils');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
var _superstruct = require('superstruct');
|
|
27
|
+
var JsonRpcRequestWithoutIdStruct = _superstruct.object.call(void 0, {
|
|
28
|
+
jsonrpc: _superstruct.optional.call(void 0, _utils.JsonRpcVersionStruct),
|
|
29
|
+
id: _superstruct.optional.call(void 0, _utils.JsonRpcIdStruct),
|
|
30
|
+
method: _superstruct.string.call(void 0, ),
|
|
31
|
+
params: _superstruct.optional.call(void 0, _utils.JsonRpcParamsStruct)
|
|
32
|
+
});
|
|
33
|
+
var EndowmentStruct = _superstruct.string.call(void 0, );
|
|
34
|
+
function isEndowment(value) {
|
|
35
|
+
return _superstruct.is.call(void 0, value, EndowmentStruct);
|
|
36
|
+
}
|
|
37
|
+
function isEndowmentsArray(value) {
|
|
38
|
+
return Array.isArray(value) && value.every(isEndowment);
|
|
39
|
+
}
|
|
40
|
+
var OkStruct = _superstruct.literal.call(void 0, "OK");
|
|
41
|
+
var PingRequestArgumentsStruct = _superstruct.optional.call(void 0,
|
|
42
|
+
_superstruct.union.call(void 0, [_superstruct.literal.call(void 0, void 0), _superstruct.array.call(void 0, )])
|
|
43
|
+
);
|
|
44
|
+
var TerminateRequestArgumentsStruct = _superstruct.union.call(void 0, [
|
|
45
|
+
_superstruct.literal.call(void 0, void 0),
|
|
46
|
+
_superstruct.array.call(void 0, )
|
|
47
|
+
]);
|
|
48
|
+
var ExecuteSnapRequestArgumentsStruct = _superstruct.tuple.call(void 0, [
|
|
49
|
+
_superstruct.string.call(void 0, ),
|
|
50
|
+
_superstruct.string.call(void 0, ),
|
|
51
|
+
_superstruct.array.call(void 0, EndowmentStruct)
|
|
52
|
+
]);
|
|
53
|
+
var SnapRpcRequestArgumentsStruct = _superstruct.tuple.call(void 0, [
|
|
54
|
+
_superstruct.string.call(void 0, ),
|
|
55
|
+
_superstruct.enums.call(void 0, Object.values(_snapsutils.HandlerType)),
|
|
56
|
+
_superstruct.string.call(void 0, ),
|
|
57
|
+
_superstruct.assign.call(void 0,
|
|
58
|
+
JsonRpcRequestWithoutIdStruct,
|
|
59
|
+
_superstruct.object.call(void 0, {
|
|
60
|
+
params: _superstruct.optional.call(void 0, _superstruct.record.call(void 0, _superstruct.string.call(void 0, ), _utils.JsonStruct))
|
|
61
|
+
})
|
|
62
|
+
)
|
|
63
|
+
]);
|
|
64
|
+
var OnTransactionRequestArgumentsStruct = _superstruct.object.call(void 0, {
|
|
65
|
+
// TODO: Improve `transaction` type.
|
|
66
|
+
transaction: _superstruct.record.call(void 0, _superstruct.string.call(void 0, ), _utils.JsonStruct),
|
|
67
|
+
chainId: _snapsutils.ChainIdStruct,
|
|
68
|
+
transactionOrigin: _superstruct.nullable.call(void 0, _superstruct.string.call(void 0, ))
|
|
69
|
+
});
|
|
70
|
+
function assertIsOnTransactionRequestArguments(value) {
|
|
71
|
+
_utils.assertStruct.call(void 0,
|
|
72
|
+
value,
|
|
73
|
+
OnTransactionRequestArgumentsStruct,
|
|
74
|
+
"Invalid request params",
|
|
75
|
+
_rpcerrors.rpcErrors.invalidParams
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
var OnSignatureRequestArgumentsStruct = _superstruct.object.call(void 0, {
|
|
79
|
+
signature: _superstruct.record.call(void 0, _superstruct.string.call(void 0, ), _utils.JsonStruct),
|
|
80
|
+
signatureOrigin: _superstruct.nullable.call(void 0, _superstruct.string.call(void 0, ))
|
|
81
|
+
});
|
|
82
|
+
function assertIsOnSignatureRequestArguments(value) {
|
|
83
|
+
_utils.assertStruct.call(void 0,
|
|
84
|
+
value,
|
|
85
|
+
OnSignatureRequestArgumentsStruct,
|
|
86
|
+
"Invalid request params",
|
|
87
|
+
_rpcerrors.rpcErrors.invalidParams
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
var baseNameLookupArgs = { chainId: _snapsutils.ChainIdStruct };
|
|
91
|
+
var domainRequestStruct = _superstruct.object.call(void 0, {
|
|
92
|
+
...baseNameLookupArgs,
|
|
93
|
+
address: _superstruct.string.call(void 0, )
|
|
94
|
+
});
|
|
95
|
+
var addressRequestStruct = _superstruct.object.call(void 0, {
|
|
96
|
+
...baseNameLookupArgs,
|
|
97
|
+
domain: _superstruct.string.call(void 0, )
|
|
98
|
+
});
|
|
99
|
+
var OnNameLookupRequestArgumentsStruct = _superstruct.union.call(void 0, [
|
|
100
|
+
domainRequestStruct,
|
|
101
|
+
addressRequestStruct
|
|
102
|
+
]);
|
|
103
|
+
function assertIsOnNameLookupRequestArguments(value) {
|
|
104
|
+
_utils.assertStruct.call(void 0,
|
|
105
|
+
value,
|
|
106
|
+
OnNameLookupRequestArgumentsStruct,
|
|
107
|
+
"Invalid request params",
|
|
108
|
+
_rpcerrors.rpcErrors.invalidParams
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
var OnUserInputArgumentsStruct = _superstruct.object.call(void 0, {
|
|
112
|
+
id: _superstruct.string.call(void 0, ),
|
|
113
|
+
event: _snapssdk.UserInputEventStruct
|
|
114
|
+
});
|
|
115
|
+
function assertIsOnUserInputRequestArguments(value) {
|
|
116
|
+
_utils.assertStruct.call(void 0,
|
|
117
|
+
value,
|
|
118
|
+
OnUserInputArgumentsStruct,
|
|
119
|
+
"Invalid request params",
|
|
120
|
+
_rpcerrors.rpcErrors.invalidParams
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
var OkResponseStruct = _superstruct.object.call(void 0, {
|
|
124
|
+
id: _utils.JsonRpcIdStruct,
|
|
125
|
+
jsonrpc: _utils.JsonRpcVersionStruct,
|
|
126
|
+
result: OkStruct
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
exports.JsonRpcRequestWithoutIdStruct = JsonRpcRequestWithoutIdStruct; exports.EndowmentStruct = EndowmentStruct; exports.isEndowment = isEndowment; exports.isEndowmentsArray = isEndowmentsArray; exports.PingRequestArgumentsStruct = PingRequestArgumentsStruct; exports.TerminateRequestArgumentsStruct = TerminateRequestArgumentsStruct; exports.ExecuteSnapRequestArgumentsStruct = ExecuteSnapRequestArgumentsStruct; exports.SnapRpcRequestArgumentsStruct = SnapRpcRequestArgumentsStruct; exports.OnTransactionRequestArgumentsStruct = OnTransactionRequestArgumentsStruct; exports.assertIsOnTransactionRequestArguments = assertIsOnTransactionRequestArguments; exports.OnSignatureRequestArgumentsStruct = OnSignatureRequestArgumentsStruct; exports.assertIsOnSignatureRequestArguments = assertIsOnSignatureRequestArguments; exports.OnNameLookupRequestArgumentsStruct = OnNameLookupRequestArgumentsStruct; exports.assertIsOnNameLookupRequestArguments = assertIsOnNameLookupRequestArguments; exports.OnUserInputArgumentsStruct = OnUserInputArgumentsStruct; exports.assertIsOnUserInputRequestArguments = assertIsOnUserInputRequestArguments;
|
|
147
|
+
//# sourceMappingURL=chunk-SWINKAMI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/validation.ts"],"names":[],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,4BAA4B;AACrC,SAAS,eAAe,mBAAmB;AAE3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,IAAM,gCAAgC,OAAO;AAAA,EAClD,SAAS,SAAS,oBAAoB;AAAA,EACtC,IAAI,SAAS,eAAe;AAAA,EAC5B,QAAQ,OAAO;AAAA,EACf,QAAQ,SAAS,mBAAmB;AACtC,CAAC;AAMM,IAAM,kBAAkB,OAAO;AAS/B,SAAS,YAAY,OAAoC;AAC9D,SAAO,GAAG,OAAO,eAAe;AAClC;AAQO,SAAS,kBAAkB,OAAsC;AACtE,SAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,MAAM,WAAW;AACxD;AAEA,IAAM,WAAW,QAAQ,IAAI;AAEtB,IAAM,6BAA6B;AAAA,EACxC,MAAM,CAAC,QAAQ,MAAS,GAAG,MAAM,CAAC,CAAC;AACrC;AAEO,IAAM,kCAAkC,MAAM;AAAA,EACnD,QAAQ,MAAS;AAAA,EACjB,MAAM;AACR,CAAC;AAEM,IAAM,oCAAoC,MAAM;AAAA,EACrD,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,eAAe;AACvB,CAAC;AAEM,IAAM,gCAAgC,MAAM;AAAA,EACjD,OAAO;AAAA,EACP,MAAM,OAAO,OAAO,WAAW,CAAC;AAAA,EAChC,OAAO;AAAA,EACP;AAAA,IACE;AAAA,IACA,OAAO;AAAA,MACL,QAAQ,SAAS,OAAO,OAAO,GAAG,UAAU,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AACF,CAAC;AAqBM,IAAM,sCAAsC,OAAO;AAAA;AAAA,EAExD,aAAa,OAAO,OAAO,GAAG,UAAU;AAAA,EACxC,SAAS;AAAA,EACT,mBAAmB,SAAS,OAAO,CAAC;AACtC,CAAC;AAcM,SAAS,sCACd,OACgD;AAChD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,oCAAoC,OAAO;AAAA,EACtD,WAAW,OAAO,OAAO,GAAG,UAAU;AAAA,EACtC,iBAAiB,SAAS,OAAO,CAAC;AACpC,CAAC;AAcM,SAAS,oCACd,OAC8C;AAC9C;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEA,IAAM,qBAAqB,EAAE,SAAS,cAAc;AACpD,IAAM,sBAAsB,OAAO;AAAA,EACjC,GAAG;AAAA,EACH,SAAS,OAAO;AAClB,CAAC;AACD,IAAM,uBAAuB,OAAO;AAAA,EAClC,GAAG;AAAA,EACH,QAAQ,OAAO;AACjB,CAAC;AAEM,IAAM,qCAAqC,MAAM;AAAA,EACtD;AAAA,EACA;AACF,CAAC;AAmBM,SAAS,qCACd,OAC+C;AAC/C;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEO,IAAM,6BAA6B,OAAO;AAAA,EAC/C,IAAI,OAAO;AAAA,EACX,OAAO;AACT,CAAC;AAYM,SAAS,oCACd,OACuC;AACvC;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AACF;AAEA,IAAM,mBAAmB,OAAO;AAAA,EAC9B,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,QAAQ;AACV,CAAC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport { UserInputEventStruct } from '@metamask/snaps-sdk';\nimport { ChainIdStruct, HandlerType } from '@metamask/snaps-utils';\nimport type { Json, JsonRpcSuccess } from '@metamask/utils';\nimport {\n assertStruct,\n JsonRpcIdStruct,\n JsonRpcParamsStruct,\n JsonRpcSuccessStruct,\n JsonRpcVersionStruct,\n JsonStruct,\n} from '@metamask/utils';\nimport type { Infer } from 'superstruct';\nimport {\n array,\n assign,\n enums,\n is,\n literal,\n nullable,\n object,\n optional,\n record,\n string,\n tuple,\n union,\n} from 'superstruct';\n\nexport const JsonRpcRequestWithoutIdStruct = object({\n jsonrpc: optional(JsonRpcVersionStruct),\n id: optional(JsonRpcIdStruct),\n method: string(),\n params: optional(JsonRpcParamsStruct),\n});\n\nexport type JsonRpcRequestWithoutId = Infer<\n typeof JsonRpcRequestWithoutIdStruct\n>;\n\nexport const EndowmentStruct = string();\nexport type Endowment = Infer<typeof EndowmentStruct>;\n\n/**\n * Check if the given value is an endowment.\n *\n * @param value - The value to check.\n * @returns Whether the value is an endowment.\n */\nexport function isEndowment(value: unknown): value is Endowment {\n return is(value, EndowmentStruct);\n}\n\n/**\n * Check if the given value is an array of endowments.\n *\n * @param value - The value to check.\n * @returns Whether the value is an array of endowments.\n */\nexport function isEndowmentsArray(value: unknown): value is Endowment[] {\n return Array.isArray(value) && value.every(isEndowment);\n}\n\nconst OkStruct = literal('OK');\n\nexport const PingRequestArgumentsStruct = optional(\n union([literal(undefined), array()]),\n);\n\nexport const TerminateRequestArgumentsStruct = union([\n literal(undefined),\n array(),\n]);\n\nexport const ExecuteSnapRequestArgumentsStruct = tuple([\n string(),\n string(),\n array(EndowmentStruct),\n]);\n\nexport const SnapRpcRequestArgumentsStruct = tuple([\n string(),\n enums(Object.values(HandlerType)),\n string(),\n assign(\n JsonRpcRequestWithoutIdStruct,\n object({\n params: optional(record(string(), JsonStruct)),\n }),\n ),\n]);\n\nexport type PingRequestArguments = Infer<typeof PingRequestArgumentsStruct>;\nexport type TerminateRequestArguments = Infer<\n typeof TerminateRequestArgumentsStruct\n>;\n\nexport type ExecuteSnapRequestArguments = Infer<\n typeof ExecuteSnapRequestArgumentsStruct\n>;\n\nexport type SnapRpcRequestArguments = Infer<\n typeof SnapRpcRequestArgumentsStruct\n>;\n\nexport type RequestArguments =\n | PingRequestArguments\n | TerminateRequestArguments\n | ExecuteSnapRequestArguments\n | SnapRpcRequestArguments;\n\nexport const OnTransactionRequestArgumentsStruct = object({\n // TODO: Improve `transaction` type.\n transaction: record(string(), JsonStruct),\n chainId: ChainIdStruct,\n transactionOrigin: nullable(string()),\n});\n\nexport type OnTransactionRequestArguments = Infer<\n typeof OnTransactionRequestArgumentsStruct\n>;\n\n/**\n * Asserts that the given value is a valid {@link OnTransactionRequestArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnTransactionRequestArguments}\n * object.\n */\nexport function assertIsOnTransactionRequestArguments(\n value: unknown,\n): asserts value is OnTransactionRequestArguments {\n assertStruct(\n value,\n OnTransactionRequestArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nexport const OnSignatureRequestArgumentsStruct = object({\n signature: record(string(), JsonStruct),\n signatureOrigin: nullable(string()),\n});\n\nexport type OnSignatureRequestArguments = Infer<\n typeof OnSignatureRequestArgumentsStruct\n>;\n\n/**\n * Asserts that the given value is a valid {@link OnSignatureRequestArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnSignatureRequestArguments}\n * object.\n */\nexport function assertIsOnSignatureRequestArguments(\n value: unknown,\n): asserts value is OnSignatureRequestArguments {\n assertStruct(\n value,\n OnSignatureRequestArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nconst baseNameLookupArgs = { chainId: ChainIdStruct };\nconst domainRequestStruct = object({\n ...baseNameLookupArgs,\n address: string(),\n});\nconst addressRequestStruct = object({\n ...baseNameLookupArgs,\n domain: string(),\n});\n\nexport const OnNameLookupRequestArgumentsStruct = union([\n domainRequestStruct,\n addressRequestStruct,\n]);\n\nexport type OnNameLookupRequestArguments = Infer<\n typeof OnNameLookupRequestArgumentsStruct\n>;\n\nexport type PossibleLookupRequestArgs = typeof baseNameLookupArgs & {\n address?: string;\n domain?: string;\n};\n\n/**\n * Asserts that the given value is a valid {@link OnNameLookupRequestArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnNameLookupRequestArguments}\n * object.\n */\nexport function assertIsOnNameLookupRequestArguments(\n value: unknown,\n): asserts value is OnNameLookupRequestArguments {\n assertStruct(\n value,\n OnNameLookupRequestArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nexport const OnUserInputArgumentsStruct = object({\n id: string(),\n event: UserInputEventStruct,\n});\n\nexport type OnUserInputArguments = Infer<typeof OnUserInputArgumentsStruct>;\n\n/**\n * Asserts that the given value is a valid {@link OnUserInputArguments}\n * object.\n *\n * @param value - The value to validate.\n * @throws If the value is not a valid {@link OnUserInputArguments}\n * object.\n */\nexport function assertIsOnUserInputRequestArguments(\n value: unknown,\n): asserts value is OnUserInputArguments {\n assertStruct(\n value,\n OnUserInputArgumentsStruct,\n 'Invalid request params',\n rpcErrors.invalidParams,\n );\n}\n\nconst OkResponseStruct = object({\n id: JsonRpcIdStruct,\n jsonrpc: JsonRpcVersionStruct,\n result: OkStruct,\n});\n\nconst SnapRpcResponse = JsonRpcSuccessStruct;\n\nexport type OkResponse = Infer<typeof OkResponseStruct>;\nexport type SnapRpcResponse = Infer<typeof SnapRpcResponse>;\n\nexport type Response = OkResponse | SnapRpcResponse;\n\ntype RequestParams<Params extends unknown[] | undefined> =\n Params extends undefined ? [] : Params;\n\ntype RequestFunction<\n Args extends RequestArguments,\n ResponseType extends JsonRpcSuccess<Json>,\n> = (...args: RequestParams<Args>) => Promise<ResponseType['result']>;\n\nexport type Ping = RequestFunction<PingRequestArguments, OkResponse>;\nexport type Terminate = RequestFunction<TerminateRequestArguments, OkResponse>;\nexport type ExecuteSnap = RequestFunction<\n ExecuteSnapRequestArguments,\n OkResponse\n>;\nexport type SnapRpc = RequestFunction<SnapRpcRequestArguments, SnapRpcResponse>;\n"]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import {
|
|
2
|
+
assertIsOnNameLookupRequestArguments,
|
|
3
|
+
assertIsOnSignatureRequestArguments,
|
|
4
|
+
assertIsOnTransactionRequestArguments,
|
|
5
|
+
assertIsOnUserInputRequestArguments
|
|
6
|
+
} from "./chunk-RDFGQYG6.mjs";
|
|
7
|
+
|
|
8
|
+
// src/common/commands.ts
|
|
9
|
+
import { HandlerType } from "@metamask/snaps-utils";
|
|
10
|
+
import { assertExhaustive } from "@metamask/utils";
|
|
11
|
+
function getHandlerArguments(origin, handler, request) {
|
|
12
|
+
switch (handler) {
|
|
13
|
+
case HandlerType.OnTransaction: {
|
|
14
|
+
assertIsOnTransactionRequestArguments(request.params);
|
|
15
|
+
const { transaction, chainId, transactionOrigin } = request.params;
|
|
16
|
+
return {
|
|
17
|
+
transaction,
|
|
18
|
+
chainId,
|
|
19
|
+
transactionOrigin
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
case HandlerType.OnSignature: {
|
|
23
|
+
assertIsOnSignatureRequestArguments(request.params);
|
|
24
|
+
const { signature, signatureOrigin } = request.params;
|
|
25
|
+
return { signature, signatureOrigin };
|
|
26
|
+
}
|
|
27
|
+
case HandlerType.OnNameLookup: {
|
|
28
|
+
assertIsOnNameLookupRequestArguments(request.params);
|
|
29
|
+
const { chainId, domain, address } = request.params;
|
|
30
|
+
return domain ? {
|
|
31
|
+
chainId,
|
|
32
|
+
domain
|
|
33
|
+
} : {
|
|
34
|
+
chainId,
|
|
35
|
+
address
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
case HandlerType.OnRpcRequest:
|
|
39
|
+
case HandlerType.OnKeyringRequest:
|
|
40
|
+
return { origin, request };
|
|
41
|
+
case HandlerType.OnCronjob:
|
|
42
|
+
case HandlerType.OnInstall:
|
|
43
|
+
case HandlerType.OnUpdate:
|
|
44
|
+
return { request };
|
|
45
|
+
case HandlerType.OnHomePage:
|
|
46
|
+
return {};
|
|
47
|
+
case HandlerType.OnUserInput: {
|
|
48
|
+
assertIsOnUserInputRequestArguments(request.params);
|
|
49
|
+
const { id, event } = request.params;
|
|
50
|
+
return { id, event };
|
|
51
|
+
}
|
|
52
|
+
default:
|
|
53
|
+
return assertExhaustive(handler);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function getCommandMethodImplementations(startSnap, invokeSnap, onTerminate) {
|
|
57
|
+
return {
|
|
58
|
+
ping: async () => Promise.resolve("OK"),
|
|
59
|
+
terminate: async () => {
|
|
60
|
+
onTerminate();
|
|
61
|
+
return Promise.resolve("OK");
|
|
62
|
+
},
|
|
63
|
+
executeSnap: async (snapId, sourceCode, endowments) => {
|
|
64
|
+
await startSnap(snapId, sourceCode, endowments);
|
|
65
|
+
return "OK";
|
|
66
|
+
},
|
|
67
|
+
snapRpc: async (target, handler, origin, request) => {
|
|
68
|
+
return await invokeSnap(
|
|
69
|
+
target,
|
|
70
|
+
handler,
|
|
71
|
+
getHandlerArguments(origin, handler, request)
|
|
72
|
+
) ?? null;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export {
|
|
78
|
+
getHandlerArguments,
|
|
79
|
+
getCommandMethodImplementations
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=chunk-TVV27HGP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/commands.ts"],"sourcesContent":["import { HandlerType } from '@metamask/snaps-utils';\nimport { assertExhaustive } from '@metamask/utils';\n\nimport type { InvokeSnap, InvokeSnapArgs } from './BaseSnapExecutor';\nimport type {\n ExecuteSnap,\n JsonRpcRequestWithoutId,\n Ping,\n PossibleLookupRequestArgs,\n SnapRpc,\n Terminate,\n} from './validation';\nimport {\n assertIsOnTransactionRequestArguments,\n assertIsOnSignatureRequestArguments,\n assertIsOnNameLookupRequestArguments,\n assertIsOnUserInputRequestArguments,\n} from './validation';\n\nexport type CommandMethodsMapping = {\n ping: Ping;\n terminate: Terminate;\n executeSnap: ExecuteSnap;\n snapRpc: SnapRpc;\n};\n\n/**\n * Formats the arguments for the given handler.\n *\n * @param origin - The origin of the request.\n * @param handler - The handler to pass the request to.\n * @param request - The request object.\n * @returns The formatted arguments.\n */\nexport function getHandlerArguments(\n origin: string,\n handler: HandlerType,\n request: JsonRpcRequestWithoutId,\n): InvokeSnapArgs {\n // `request` is already validated by the time this function is called.\n\n switch (handler) {\n case HandlerType.OnTransaction: {\n assertIsOnTransactionRequestArguments(request.params);\n\n const { transaction, chainId, transactionOrigin } = request.params;\n return {\n transaction,\n chainId,\n transactionOrigin,\n };\n }\n case HandlerType.OnSignature: {\n assertIsOnSignatureRequestArguments(request.params);\n\n const { signature, signatureOrigin } = request.params;\n return { signature, signatureOrigin };\n }\n case HandlerType.OnNameLookup: {\n assertIsOnNameLookupRequestArguments(request.params);\n\n // TS complains that domain/address are not part of the type\n // casting here as we've already validated the request args in the above step.\n const { chainId, domain, address } =\n request.params as unknown as PossibleLookupRequestArgs;\n\n return domain\n ? {\n chainId,\n domain,\n }\n : {\n chainId,\n address,\n };\n }\n case HandlerType.OnRpcRequest:\n case HandlerType.OnKeyringRequest:\n return { origin, request };\n\n case HandlerType.OnCronjob:\n case HandlerType.OnInstall:\n case HandlerType.OnUpdate:\n return { request };\n\n case HandlerType.OnHomePage:\n return {};\n case HandlerType.OnUserInput: {\n assertIsOnUserInputRequestArguments(request.params);\n\n const { id, event } = request.params;\n return { id, event };\n }\n\n default:\n return assertExhaustive(handler);\n }\n}\n\n/**\n * Gets an object mapping internal, \"command\" JSON-RPC method names to their\n * implementations.\n *\n * @param startSnap - A function that starts a snap.\n * @param invokeSnap - A function that invokes the RPC method handler of a\n * snap.\n * @param onTerminate - A function that will be called when this executor is\n * terminated in order to handle cleanup tasks.\n * @returns An object containing the \"command\" method implementations.\n */\nexport function getCommandMethodImplementations(\n startSnap: (...args: Parameters<ExecuteSnap>) => Promise<void>,\n invokeSnap: InvokeSnap,\n onTerminate: () => void,\n): CommandMethodsMapping {\n return {\n ping: async () => Promise.resolve('OK'),\n terminate: async () => {\n onTerminate();\n return Promise.resolve('OK');\n },\n\n executeSnap: async (snapId, sourceCode, endowments) => {\n await startSnap(snapId, sourceCode, endowments);\n return 'OK';\n },\n\n snapRpc: async (target, handler, origin, request) => {\n return (\n (await invokeSnap(\n target,\n handler,\n getHandlerArguments(origin, handler, request),\n )) ?? null\n );\n },\n };\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AAiC1B,SAAS,oBACd,QACA,SACA,SACgB;AAGhB,UAAQ,SAAS;AAAA,IACf,KAAK,YAAY,eAAe;AAC9B,4CAAsC,QAAQ,MAAM;AAEpD,YAAM,EAAE,aAAa,SAAS,kBAAkB,IAAI,QAAQ;AAC5D,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,YAAY,aAAa;AAC5B,0CAAoC,QAAQ,MAAM;AAElD,YAAM,EAAE,WAAW,gBAAgB,IAAI,QAAQ;AAC/C,aAAO,EAAE,WAAW,gBAAgB;AAAA,IACtC;AAAA,IACA,KAAK,YAAY,cAAc;AAC7B,2CAAqC,QAAQ,MAAM;AAInD,YAAM,EAAE,SAAS,QAAQ,QAAQ,IAC/B,QAAQ;AAEV,aAAO,SACH;AAAA,QACE;AAAA,QACA;AAAA,MACF,IACA;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACN;AAAA,IACA,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AACf,aAAO,EAAE,QAAQ,QAAQ;AAAA,IAE3B,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AAAA,IACjB,KAAK,YAAY;AACf,aAAO,EAAE,QAAQ;AAAA,IAEnB,KAAK,YAAY;AACf,aAAO,CAAC;AAAA,IACV,KAAK,YAAY,aAAa;AAC5B,0CAAoC,QAAQ,MAAM;AAElD,YAAM,EAAE,IAAI,MAAM,IAAI,QAAQ;AAC9B,aAAO,EAAE,IAAI,MAAM;AAAA,IACrB;AAAA,IAEA;AACE,aAAO,iBAAiB,OAAO;AAAA,EACnC;AACF;AAaO,SAAS,gCACd,WACA,YACA,aACuB;AACvB,SAAO;AAAA,IACL,MAAM,YAAY,QAAQ,QAAQ,IAAI;AAAA,IACtC,WAAW,YAAY;AACrB,kBAAY;AACZ,aAAO,QAAQ,QAAQ,IAAI;AAAA,IAC7B;AAAA,IAEA,aAAa,OAAO,QAAQ,YAAY,eAAe;AACrD,YAAM,UAAU,QAAQ,YAAY,UAAU;AAC9C,aAAO;AAAA,IACT;AAAA,IAEA,SAAS,OAAO,QAAQ,SAAS,QAAQ,YAAY;AACnD,aACG,MAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA,oBAAoB,QAAQ,SAAS,OAAO;AAAA,MAC9C,KAAM;AAAA,IAEV;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// src/common/lockdown/lockdown-events.ts
|
|
2
|
+
import { hasProperty } from "@metamask/utils";
|
|
3
|
+
var targetEvents = /* @__PURE__ */ new Map();
|
|
4
|
+
if (hasProperty(globalThis, "UIEvent")) {
|
|
5
|
+
targetEvents.set(UIEvent.prototype, ["view"]);
|
|
6
|
+
}
|
|
7
|
+
if (hasProperty(globalThis, "MutationEvent")) {
|
|
8
|
+
targetEvents.set(MutationEvent.prototype, ["relatedNode"]);
|
|
9
|
+
}
|
|
10
|
+
if (hasProperty(globalThis, "MessageEvent")) {
|
|
11
|
+
targetEvents.set(MessageEvent.prototype, ["source"]);
|
|
12
|
+
}
|
|
13
|
+
if (hasProperty(globalThis, "FocusEvent")) {
|
|
14
|
+
targetEvents.set(FocusEvent.prototype, ["relatedTarget"]);
|
|
15
|
+
}
|
|
16
|
+
if (hasProperty(globalThis, "MouseEvent")) {
|
|
17
|
+
targetEvents.set(MouseEvent.prototype, [
|
|
18
|
+
"relatedTarget",
|
|
19
|
+
"fromElement",
|
|
20
|
+
"toElement"
|
|
21
|
+
]);
|
|
22
|
+
}
|
|
23
|
+
if (hasProperty(globalThis, "TouchEvent")) {
|
|
24
|
+
targetEvents.set(TouchEvent.prototype, ["targetTouches", "touches"]);
|
|
25
|
+
}
|
|
26
|
+
if (hasProperty(globalThis, "Event")) {
|
|
27
|
+
targetEvents.set(Event.prototype, [
|
|
28
|
+
"target",
|
|
29
|
+
"currentTarget",
|
|
30
|
+
"srcElement",
|
|
31
|
+
"composedPath"
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
function executeLockdownEvents() {
|
|
35
|
+
targetEvents.forEach((properties, prototype) => {
|
|
36
|
+
for (const property of properties) {
|
|
37
|
+
Object.defineProperty(prototype, property, {
|
|
38
|
+
value: void 0,
|
|
39
|
+
configurable: false,
|
|
40
|
+
writable: false
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export {
|
|
47
|
+
executeLockdownEvents
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=chunk-TWF4RAXL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/lockdown/lockdown-events.ts"],"sourcesContent":["// When creating a sandbox, limitation of the events from leaking\n// sensitive objects is required. This is done by overriding own properties\n// of prototypes of all existing events.\nimport { hasProperty } from '@metamask/utils';\n\n/**\n * Targeted Event objects and properties.\n * Note: This is a map of the prototypes that inherit from Events with\n * properties that are identified to leak sensitive objects.\n * Not all browsers support all event types, so checking its existence is required.\n */\nconst targetEvents = new Map();\nif (hasProperty(globalThis, 'UIEvent')) {\n targetEvents.set(UIEvent.prototype, ['view']);\n}\nif (hasProperty(globalThis, 'MutationEvent')) {\n targetEvents.set(MutationEvent.prototype, ['relatedNode']);\n}\nif (hasProperty(globalThis, 'MessageEvent')) {\n targetEvents.set(MessageEvent.prototype, ['source']);\n}\nif (hasProperty(globalThis, 'FocusEvent')) {\n targetEvents.set(FocusEvent.prototype, ['relatedTarget']);\n}\nif (hasProperty(globalThis, 'MouseEvent')) {\n targetEvents.set(MouseEvent.prototype, [\n 'relatedTarget',\n 'fromElement',\n 'toElement',\n ]);\n}\nif (hasProperty(globalThis, 'TouchEvent')) {\n targetEvents.set(TouchEvent.prototype, ['targetTouches', 'touches']);\n}\nif (hasProperty(globalThis, 'Event')) {\n targetEvents.set(Event.prototype, [\n 'target',\n 'currentTarget',\n 'srcElement',\n 'composedPath',\n ]);\n}\n\n/**\n * Attenuate Event objects by replacing its own properties.\n */\nexport function executeLockdownEvents() {\n targetEvents.forEach((properties, prototype) => {\n for (const property of properties) {\n Object.defineProperty(prototype, property, {\n value: undefined,\n configurable: false,\n writable: false,\n });\n }\n });\n}\n"],"mappings":";AAGA,SAAS,mBAAmB;AAQ5B,IAAM,eAAe,oBAAI,IAAI;AAC7B,IAAI,YAAY,YAAY,SAAS,GAAG;AACtC,eAAa,IAAI,QAAQ,WAAW,CAAC,MAAM,CAAC;AAC9C;AACA,IAAI,YAAY,YAAY,eAAe,GAAG;AAC5C,eAAa,IAAI,cAAc,WAAW,CAAC,aAAa,CAAC;AAC3D;AACA,IAAI,YAAY,YAAY,cAAc,GAAG;AAC3C,eAAa,IAAI,aAAa,WAAW,CAAC,QAAQ,CAAC;AACrD;AACA,IAAI,YAAY,YAAY,YAAY,GAAG;AACzC,eAAa,IAAI,WAAW,WAAW,CAAC,eAAe,CAAC;AAC1D;AACA,IAAI,YAAY,YAAY,YAAY,GAAG;AACzC,eAAa,IAAI,WAAW,WAAW;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AACA,IAAI,YAAY,YAAY,YAAY,GAAG;AACzC,eAAa,IAAI,WAAW,WAAW,CAAC,iBAAiB,SAAS,CAAC;AACrE;AACA,IAAI,YAAY,YAAY,OAAO,GAAG;AACpC,eAAa,IAAI,MAAM,WAAW;AAAA,IAChC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAKO,SAAS,wBAAwB;AACtC,eAAa,QAAQ,CAAC,YAAY,cAAc;AAC9C,eAAW,YAAY,YAAY;AACjC,aAAO,eAAe,WAAW,UAAU;AAAA,QACzC,OAAO;AAAA,QACP,cAAc;AAAA,QACd,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// src/logging.ts
|
|
2
|
+
import { snapsLogger } from "@metamask/snaps-utils";
|
|
3
|
+
import { createModuleLogger } from "@metamask/utils";
|
|
4
|
+
var log = createModuleLogger(
|
|
5
|
+
snapsLogger,
|
|
6
|
+
"snaps-execution-environments"
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
log
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=chunk-VL3VNUT4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/logging.ts"],"sourcesContent":["import { snapsLogger } from '@metamask/snaps-utils';\nimport { createModuleLogger } from '@metamask/utils';\n\n/**\n * A logging function specific to this package. The log messages don't show up\n * by default, but they can be enabled by setting the environment variable:\n * - `DEBUG=metamask:snaps:snaps-execution-environments`, or\n * - `DEBUG=metamask:snaps:*` to enable all logs from `@metamask/snaps-*`.\n */\nexport const log = createModuleLogger(\n snapsLogger,\n 'snaps-execution-environments',\n);\n"],"mappings":";AAAA,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAQ5B,IAAM,MAAM;AAAA,EACjB;AAAA,EACA;AACF;","names":[]}
|