@metamask/snaps-rpc-methods 6.0.0 → 7.0.1
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 +13 -2
- package/dist/chunk-23XDKQW2.mjs +73 -0
- package/dist/chunk-23XDKQW2.mjs.map +1 -0
- package/dist/chunk-2KTJCF3C.js +68 -0
- package/dist/chunk-2KTJCF3C.js.map +1 -0
- package/dist/chunk-3DHVA2FY.js +21 -0
- package/dist/chunk-3DHVA2FY.js.map +1 -0
- package/dist/chunk-3LPBU737.js +43 -0
- package/dist/chunk-3LPBU737.js.map +1 -0
- package/dist/chunk-3S7DJI4I.mjs +49 -0
- package/dist/chunk-3S7DJI4I.mjs.map +1 -0
- package/dist/chunk-3UAWEHMF.js +18 -0
- package/dist/chunk-3UAWEHMF.js.map +1 -0
- package/dist/chunk-4D2B2UQ6.mjs +23 -0
- package/dist/chunk-4D2B2UQ6.mjs.map +1 -0
- package/dist/chunk-4LSOS7SM.js +23 -0
- package/dist/chunk-4LSOS7SM.js.map +1 -0
- package/dist/chunk-4SQWLI2S.mjs +151 -0
- package/dist/chunk-4SQWLI2S.mjs.map +1 -0
- package/dist/chunk-4W7U4OH6.js +42 -0
- package/dist/chunk-4W7U4OH6.js.map +1 -0
- package/dist/chunk-62URQ5VS.mjs +18 -0
- package/dist/chunk-62URQ5VS.mjs.map +1 -0
- package/dist/chunk-6TKD32TS.js +78 -0
- package/dist/chunk-6TKD32TS.js.map +1 -0
- package/dist/chunk-6UY23OOZ.js +39 -0
- package/dist/chunk-6UY23OOZ.js.map +1 -0
- package/dist/chunk-6WUIFFMQ.mjs +78 -0
- package/dist/chunk-6WUIFFMQ.mjs.map +1 -0
- package/dist/chunk-7NBRKDKJ.mjs +188 -0
- package/dist/chunk-7NBRKDKJ.mjs.map +1 -0
- package/dist/chunk-7OMVZR5X.mjs +39 -0
- package/dist/chunk-7OMVZR5X.mjs.map +1 -0
- package/dist/chunk-7TVJV425.js +1 -0
- package/dist/chunk-7TVJV425.js.map +1 -0
- package/dist/chunk-ADXH5C3U.mjs +119 -0
- package/dist/chunk-ADXH5C3U.mjs.map +1 -0
- package/dist/chunk-AKRFLGOS.mjs +59 -0
- package/dist/chunk-AKRFLGOS.mjs.map +1 -0
- package/dist/chunk-AOWUGDER.js +78 -0
- package/dist/chunk-AOWUGDER.js.map +1 -0
- package/dist/chunk-AWQ6HTAL.mjs +75 -0
- package/dist/chunk-AWQ6HTAL.mjs.map +1 -0
- package/dist/chunk-AYJK7MSH.js +43 -0
- package/dist/chunk-AYJK7MSH.js.map +1 -0
- package/dist/chunk-B3NIHNXW.js +23 -0
- package/dist/{cjs/endowments/ethereum-provider.js.map → chunk-B3NIHNXW.js.map} +1 -1
- package/dist/chunk-C6E6DI4I.mjs +115 -0
- package/dist/chunk-C6E6DI4I.mjs.map +1 -0
- package/dist/chunk-CD4OUHO5.mjs +20 -0
- package/dist/chunk-CD4OUHO5.mjs.map +1 -0
- package/dist/chunk-CH5O2YCX.mjs +18 -0
- package/dist/chunk-CH5O2YCX.mjs.map +1 -0
- package/dist/chunk-CVK2TYJX.mjs +54 -0
- package/dist/chunk-CVK2TYJX.mjs.map +1 -0
- package/dist/chunk-D6MUXDVI.js +51 -0
- package/dist/chunk-D6MUXDVI.js.map +1 -0
- package/dist/chunk-E6WUMFQT.mjs +54 -0
- package/dist/chunk-E6WUMFQT.mjs.map +1 -0
- package/dist/chunk-EEVEVBK6.mjs +78 -0
- package/dist/chunk-EEVEVBK6.mjs.map +1 -0
- package/dist/chunk-EKXDFYIX.mjs +68 -0
- package/dist/chunk-EKXDFYIX.mjs.map +1 -0
- package/dist/chunk-FBOZCV3C.js +59 -0
- package/dist/chunk-FBOZCV3C.js.map +1 -0
- package/dist/chunk-FCVWU5XH.js +73 -0
- package/dist/chunk-FCVWU5XH.js.map +1 -0
- package/dist/chunk-FFHVA6PP.js +82 -0
- package/dist/chunk-FFHVA6PP.js.map +1 -0
- package/dist/chunk-FMDV3RFT.js +21 -0
- package/dist/chunk-FMDV3RFT.js.map +1 -0
- package/dist/chunk-GP5KW5FU.js +45 -0
- package/dist/chunk-GP5KW5FU.js.map +1 -0
- package/dist/chunk-GYZV5UBD.js +151 -0
- package/dist/chunk-GYZV5UBD.js.map +1 -0
- package/dist/chunk-I6FU5MGE.mjs +47 -0
- package/dist/chunk-I6FU5MGE.mjs.map +1 -0
- package/dist/chunk-IBV23QOX.mjs +67 -0
- package/dist/chunk-IBV23QOX.mjs.map +1 -0
- package/dist/chunk-IDZGMGIB.js +45 -0
- package/dist/chunk-IDZGMGIB.js.map +1 -0
- package/dist/chunk-IEUCBULU.js +119 -0
- package/dist/chunk-IEUCBULU.js.map +1 -0
- package/dist/chunk-IZYMBIBD.mjs +32 -0
- package/dist/chunk-IZYMBIBD.mjs.map +1 -0
- package/dist/chunk-JQ456NCC.mjs +51 -0
- package/dist/chunk-JQ456NCC.mjs.map +1 -0
- package/dist/chunk-JRSPKOFG.js +115 -0
- package/dist/chunk-JRSPKOFG.js.map +1 -0
- package/dist/chunk-JWDQUKKU.mjs +80 -0
- package/dist/chunk-JWDQUKKU.mjs.map +1 -0
- package/dist/chunk-KO4MKRYZ.js +188 -0
- package/dist/chunk-KO4MKRYZ.js.map +1 -0
- package/dist/chunk-KSTF5JYB.mjs +23 -0
- package/dist/chunk-KSTF5JYB.mjs.map +1 -0
- package/dist/chunk-LGUJMQC7.js +78 -0
- package/dist/{cjs/restricted/getBip32PublicKey.js.map → chunk-LGUJMQC7.js.map} +1 -1
- package/dist/chunk-LIWV3FMY.js +69 -0
- package/dist/chunk-LIWV3FMY.js.map +1 -0
- package/dist/chunk-LR7UR4YU.mjs +52 -0
- package/dist/chunk-LR7UR4YU.mjs.map +1 -0
- package/dist/chunk-LVTN25J2.js +49 -0
- package/dist/chunk-LVTN25J2.js.map +1 -0
- package/dist/chunk-MVG4B2HM.mjs +21 -0
- package/dist/chunk-MVG4B2HM.mjs.map +1 -0
- package/dist/chunk-MXCJWR45.mjs +45 -0
- package/dist/chunk-MXCJWR45.mjs.map +1 -0
- package/dist/chunk-MXPVC2XP.mjs +105 -0
- package/dist/chunk-MXPVC2XP.mjs.map +1 -0
- package/dist/chunk-NP3KGMVC.js +47 -0
- package/dist/chunk-NP3KGMVC.js.map +1 -0
- package/dist/chunk-NU4NAAFG.js +1 -0
- package/dist/chunk-NU4NAAFG.js.map +1 -0
- package/dist/chunk-NWT2EXFD.js +18 -0
- package/dist/chunk-NWT2EXFD.js.map +1 -0
- package/dist/chunk-O66NZFSD.mjs +23 -0
- package/dist/chunk-O66NZFSD.mjs.map +1 -0
- package/dist/chunk-OQOTJFFV.js +74 -0
- package/dist/chunk-OQOTJFFV.js.map +1 -0
- package/dist/chunk-P74WXDY4.js +54 -0
- package/dist/chunk-P74WXDY4.js.map +1 -0
- package/dist/chunk-PCB6QOHL.mjs +21 -0
- package/dist/chunk-PCB6QOHL.mjs.map +1 -0
- package/dist/chunk-PS6OEQXL.js +105 -0
- package/dist/chunk-PS6OEQXL.js.map +1 -0
- package/dist/chunk-PWUEAR4H.js +70 -0
- package/dist/chunk-PWUEAR4H.js.map +1 -0
- package/dist/chunk-Q27K2I6Z.js +23 -0
- package/dist/{cjs/endowments/web-assembly.js.map → chunk-Q27K2I6Z.js.map} +1 -1
- package/dist/chunk-Q5W3YGEB.js +67 -0
- package/dist/chunk-Q5W3YGEB.js.map +1 -0
- package/dist/chunk-QDZAWH6F.js +80 -0
- package/dist/chunk-QDZAWH6F.js.map +1 -0
- package/dist/chunk-QMULJEYN.js +35 -0
- package/dist/chunk-QMULJEYN.js.map +1 -0
- package/dist/chunk-S7AR3ROH.js +57 -0
- package/dist/chunk-S7AR3ROH.js.map +1 -0
- package/dist/chunk-SGQXD5K7.mjs +83 -0
- package/dist/chunk-SGQXD5K7.mjs.map +1 -0
- package/dist/chunk-SYUGPLEP.js +32 -0
- package/dist/chunk-SYUGPLEP.js.map +1 -0
- package/dist/chunk-TEXEQGNZ.js +75 -0
- package/dist/chunk-TEXEQGNZ.js.map +1 -0
- package/dist/chunk-TG63GBK3.mjs +1 -0
- package/dist/chunk-TG63GBK3.mjs.map +1 -0
- package/dist/chunk-TJYMYQAB.mjs +42 -0
- package/dist/chunk-TJYMYQAB.mjs.map +1 -0
- package/dist/chunk-TKXU7ZXP.mjs +78 -0
- package/dist/chunk-TKXU7ZXP.mjs.map +1 -0
- package/dist/chunk-TNENASGX.mjs +1 -0
- package/dist/chunk-TNENASGX.mjs.map +1 -0
- package/dist/chunk-TNRH2LRU.mjs +57 -0
- package/dist/chunk-TNRH2LRU.mjs.map +1 -0
- package/dist/chunk-TOYWHUAS.mjs +70 -0
- package/dist/chunk-TOYWHUAS.mjs.map +1 -0
- package/dist/chunk-TT4DP2YW.mjs +35 -0
- package/dist/chunk-TT4DP2YW.mjs.map +1 -0
- package/dist/chunk-UB3733UY.mjs +23 -0
- package/dist/chunk-UB3733UY.mjs.map +1 -0
- package/dist/chunk-UBPHGXCO.mjs +74 -0
- package/dist/chunk-UBPHGXCO.mjs.map +1 -0
- package/dist/chunk-VCGZNL35.mjs +69 -0
- package/dist/chunk-VCGZNL35.mjs.map +1 -0
- package/dist/chunk-VHY3NATP.js +67 -0
- package/dist/chunk-VHY3NATP.js.map +1 -0
- package/dist/chunk-VUA6ICJO.js +52 -0
- package/dist/chunk-VUA6ICJO.js.map +1 -0
- package/dist/chunk-VVBTXSID.mjs +82 -0
- package/dist/chunk-VVBTXSID.mjs.map +1 -0
- package/dist/chunk-WFAY5FPP.mjs +67 -0
- package/dist/chunk-WFAY5FPP.mjs.map +1 -0
- package/dist/chunk-WLDEPJGG.mjs +43 -0
- package/dist/chunk-WLDEPJGG.mjs.map +1 -0
- package/dist/chunk-Y4LNTDZ2.mjs +43 -0
- package/dist/chunk-Y4LNTDZ2.mjs.map +1 -0
- package/dist/chunk-YG7W4CDT.js +83 -0
- package/dist/{cjs/utils.js.map → chunk-YG7W4CDT.js.map} +1 -1
- package/dist/chunk-YGKFOOWI.js +20 -0
- package/dist/chunk-YGKFOOWI.js.map +1 -0
- package/dist/chunk-YOHE52XB.js +23 -0
- package/dist/chunk-YOHE52XB.js.map +1 -0
- package/dist/chunk-YS6TYXCP.mjs +45 -0
- package/dist/chunk-YS6TYXCP.mjs.map +1 -0
- package/dist/chunk-ZPK4THX4.js +54 -0
- package/dist/chunk-ZPK4THX4.js.map +1 -0
- package/dist/endowments/caveats/generic.js +7 -0
- package/dist/endowments/caveats/generic.js.map +1 -0
- package/dist/endowments/caveats/generic.mjs +7 -0
- package/dist/endowments/caveats/generic.mjs.map +1 -0
- package/dist/endowments/caveats/index.js +18 -0
- package/dist/endowments/caveats/index.js.map +1 -0
- package/dist/endowments/caveats/index.mjs +18 -0
- package/dist/endowments/caveats/index.mjs.map +1 -0
- package/dist/endowments/caveats/requestTime.js +13 -0
- package/dist/endowments/caveats/requestTime.js.map +1 -0
- package/dist/endowments/caveats/requestTime.mjs +13 -0
- package/dist/endowments/caveats/requestTime.mjs.map +1 -0
- package/dist/endowments/cronjob.js +16 -0
- package/dist/endowments/cronjob.js.map +1 -0
- package/dist/endowments/cronjob.mjs +16 -0
- package/dist/endowments/cronjob.mjs.map +1 -0
- package/dist/endowments/enum.js +7 -0
- package/dist/endowments/enum.js.map +1 -0
- package/dist/endowments/enum.mjs +7 -0
- package/dist/endowments/enum.mjs.map +1 -0
- package/dist/endowments/ethereum-provider.js +8 -0
- package/dist/endowments/ethereum-provider.js.map +1 -0
- package/dist/endowments/ethereum-provider.mjs +8 -0
- package/dist/endowments/ethereum-provider.mjs.map +1 -0
- package/dist/endowments/home-page.js +8 -0
- package/dist/endowments/home-page.js.map +1 -0
- package/dist/endowments/home-page.mjs +8 -0
- package/dist/endowments/home-page.mjs.map +1 -0
- package/dist/endowments/index.js +54 -0
- package/dist/endowments/index.js.map +1 -0
- package/dist/endowments/index.mjs +54 -0
- package/dist/endowments/index.mjs.map +1 -0
- package/dist/endowments/keyring.js +17 -0
- package/dist/endowments/keyring.js.map +1 -0
- package/dist/endowments/keyring.mjs +17 -0
- package/dist/endowments/keyring.mjs.map +1 -0
- package/dist/endowments/lifecycle-hooks.js +8 -0
- package/dist/endowments/lifecycle-hooks.js.map +1 -0
- package/dist/endowments/lifecycle-hooks.mjs +8 -0
- package/dist/endowments/lifecycle-hooks.mjs.map +1 -0
- package/dist/endowments/name-lookup.js +19 -0
- package/dist/endowments/name-lookup.js.map +1 -0
- package/dist/endowments/name-lookup.mjs +19 -0
- package/dist/endowments/name-lookup.mjs.map +1 -0
- package/dist/endowments/network-access.js +8 -0
- package/dist/endowments/network-access.js.map +1 -0
- package/dist/endowments/network-access.mjs +8 -0
- package/dist/endowments/network-access.mjs.map +1 -0
- package/dist/endowments/rpc.js +17 -0
- package/dist/endowments/rpc.js.map +1 -0
- package/dist/endowments/rpc.mjs +17 -0
- package/dist/endowments/rpc.mjs.map +1 -0
- package/dist/endowments/signature-insight.js +17 -0
- package/dist/endowments/signature-insight.js.map +1 -0
- package/dist/endowments/signature-insight.mjs +17 -0
- package/dist/endowments/signature-insight.mjs.map +1 -0
- package/dist/endowments/transaction-insight.js +17 -0
- package/dist/endowments/transaction-insight.js.map +1 -0
- package/dist/endowments/transaction-insight.mjs +17 -0
- package/dist/endowments/transaction-insight.mjs.map +1 -0
- package/dist/endowments/web-assembly.js +8 -0
- package/dist/endowments/web-assembly.js.map +1 -0
- package/dist/endowments/web-assembly.mjs +8 -0
- package/dist/endowments/web-assembly.mjs.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +118 -0
- package/dist/index.mjs.map +1 -0
- package/dist/permissions.js +43 -0
- package/dist/permissions.js.map +1 -0
- package/dist/permissions.mjs +43 -0
- package/dist/permissions.mjs.map +1 -0
- package/dist/permitted/createInterface.js +7 -0
- package/dist/permitted/createInterface.js.map +1 -0
- package/dist/permitted/createInterface.mjs +7 -0
- package/dist/permitted/createInterface.mjs.map +1 -0
- package/dist/permitted/getAllSnaps.js +7 -0
- package/dist/permitted/getAllSnaps.js.map +1 -0
- package/dist/permitted/getAllSnaps.mjs +7 -0
- package/dist/permitted/getAllSnaps.mjs.map +1 -0
- package/dist/permitted/getClientStatus.js +7 -0
- package/dist/permitted/getClientStatus.js.map +1 -0
- package/dist/permitted/getClientStatus.mjs +7 -0
- package/dist/permitted/getClientStatus.mjs.map +1 -0
- package/dist/permitted/getFile.js +9 -0
- package/dist/permitted/getFile.js.map +1 -0
- package/dist/permitted/getFile.mjs +9 -0
- package/dist/permitted/getFile.mjs.map +1 -0
- package/dist/permitted/getInterfaceState.js +7 -0
- package/dist/permitted/getInterfaceState.js.map +1 -0
- package/dist/permitted/getInterfaceState.mjs +7 -0
- package/dist/permitted/getInterfaceState.mjs.map +1 -0
- package/dist/permitted/getSnaps.js +7 -0
- package/dist/permitted/getSnaps.js.map +1 -0
- package/dist/permitted/getSnaps.mjs +7 -0
- package/dist/permitted/getSnaps.mjs.map +1 -0
- package/dist/permitted/handlers.js +20 -0
- package/dist/permitted/handlers.js.map +1 -0
- package/dist/permitted/handlers.mjs +20 -0
- package/dist/permitted/handlers.mjs.map +1 -0
- package/dist/permitted/index.js +26 -0
- package/dist/permitted/index.js.map +1 -0
- package/dist/permitted/index.mjs +26 -0
- package/dist/permitted/index.mjs.map +1 -0
- package/dist/permitted/invokeKeyring.js +8 -0
- package/dist/permitted/invokeKeyring.js.map +1 -0
- package/dist/permitted/invokeKeyring.mjs +8 -0
- package/dist/permitted/invokeKeyring.mjs.map +1 -0
- package/dist/permitted/invokeSnapSugar.js +11 -0
- package/dist/permitted/invokeSnapSugar.js.map +1 -0
- package/dist/permitted/invokeSnapSugar.mjs +11 -0
- package/dist/permitted/invokeSnapSugar.mjs.map +1 -0
- package/dist/permitted/middleware.js +20 -0
- package/dist/permitted/middleware.js.map +1 -0
- package/dist/permitted/middleware.mjs +20 -0
- package/dist/permitted/middleware.mjs.map +1 -0
- package/dist/permitted/requestSnaps.js +12 -0
- package/dist/permitted/requestSnaps.js.map +1 -0
- package/dist/permitted/requestSnaps.mjs +12 -0
- package/dist/permitted/requestSnaps.mjs.map +1 -0
- package/dist/permitted/updateInterface.js +7 -0
- package/dist/permitted/updateInterface.js.map +1 -0
- package/dist/permitted/updateInterface.mjs +7 -0
- package/dist/permitted/updateInterface.mjs.map +1 -0
- package/dist/restricted/caveats/index.js +17 -0
- package/dist/restricted/caveats/index.js.map +1 -0
- package/dist/restricted/caveats/index.mjs +17 -0
- package/dist/restricted/caveats/index.mjs.map +1 -0
- package/dist/restricted/caveats/permittedCoinTypes.js +13 -0
- package/dist/restricted/caveats/permittedCoinTypes.js.map +1 -0
- package/dist/restricted/caveats/permittedCoinTypes.mjs +13 -0
- package/dist/restricted/caveats/permittedCoinTypes.mjs.map +1 -0
- package/dist/restricted/caveats/permittedDerivationPaths.js +13 -0
- package/dist/restricted/caveats/permittedDerivationPaths.js.map +1 -0
- package/dist/restricted/caveats/permittedDerivationPaths.mjs +13 -0
- package/dist/restricted/caveats/permittedDerivationPaths.mjs.map +1 -0
- package/dist/restricted/caveats/snapIds.js +11 -0
- package/dist/restricted/caveats/snapIds.js.map +1 -0
- package/dist/restricted/caveats/snapIds.mjs +11 -0
- package/dist/restricted/caveats/snapIds.mjs.map +1 -0
- package/dist/restricted/dialog.js +9 -0
- package/dist/restricted/dialog.js.map +1 -0
- package/dist/restricted/dialog.mjs +9 -0
- package/dist/restricted/dialog.mjs.map +1 -0
- package/dist/restricted/getBip32Entropy.js +10 -0
- package/dist/restricted/getBip32Entropy.js.map +1 -0
- package/dist/restricted/getBip32Entropy.mjs +10 -0
- package/dist/restricted/getBip32Entropy.mjs.map +1 -0
- package/dist/restricted/getBip32PublicKey.js +12 -0
- package/dist/restricted/getBip32PublicKey.js.map +1 -0
- package/dist/restricted/getBip32PublicKey.mjs +12 -0
- package/dist/restricted/getBip32PublicKey.mjs.map +1 -0
- package/dist/restricted/getBip44Entropy.js +9 -0
- package/dist/restricted/getBip44Entropy.js.map +1 -0
- package/dist/restricted/getBip44Entropy.mjs +9 -0
- package/dist/restricted/getBip44Entropy.mjs.map +1 -0
- package/dist/restricted/getEntropy.js +10 -0
- package/dist/restricted/getEntropy.js.map +1 -0
- package/dist/restricted/getEntropy.mjs +10 -0
- package/dist/restricted/getEntropy.mjs.map +1 -0
- package/dist/restricted/getLocale.js +11 -0
- package/dist/restricted/getLocale.js.map +1 -0
- package/dist/restricted/getLocale.mjs +11 -0
- package/dist/restricted/getLocale.mjs.map +1 -0
- package/dist/restricted/index.js +33 -0
- package/dist/restricted/index.js.map +1 -0
- package/dist/restricted/index.mjs +33 -0
- package/dist/restricted/index.mjs.map +1 -0
- package/dist/restricted/invokeSnap.js +13 -0
- package/dist/restricted/invokeSnap.js.map +1 -0
- package/dist/restricted/invokeSnap.mjs +13 -0
- package/dist/restricted/invokeSnap.mjs.map +1 -0
- package/dist/restricted/manageAccounts.js +13 -0
- package/dist/restricted/manageAccounts.js.map +1 -0
- package/dist/restricted/manageAccounts.mjs +13 -0
- package/dist/restricted/manageAccounts.mjs.map +1 -0
- package/dist/restricted/manageState.js +20 -0
- package/dist/restricted/manageState.js.map +1 -0
- package/dist/restricted/manageState.mjs +20 -0
- package/dist/restricted/manageState.mjs.map +1 -0
- package/dist/restricted/notify.js +13 -0
- package/dist/restricted/notify.js.map +1 -0
- package/dist/restricted/notify.mjs +13 -0
- package/dist/restricted/notify.mjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +13 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +21 -18
- package/dist/cjs/endowments/caveats/generic.js +0 -40
- package/dist/cjs/endowments/caveats/generic.js.map +0 -1
- package/dist/cjs/endowments/caveats/index.js +0 -21
- package/dist/cjs/endowments/caveats/index.js.map +0 -1
- package/dist/cjs/endowments/caveats/requestTime.js +0 -99
- package/dist/cjs/endowments/caveats/requestTime.js.map +0 -1
- package/dist/cjs/endowments/cronjob.js +0 -100
- package/dist/cjs/endowments/cronjob.js.map +0 -1
- package/dist/cjs/endowments/enum.js +0 -26
- package/dist/cjs/endowments/enum.js.map +0 -1
- package/dist/cjs/endowments/ethereum-provider.js +0 -43
- package/dist/cjs/endowments/home-page.js +0 -37
- package/dist/cjs/endowments/home-page.js.map +0 -1
- package/dist/cjs/endowments/index.js +0 -121
- package/dist/cjs/endowments/index.js.map +0 -1
- package/dist/cjs/endowments/keyring.js +0 -104
- package/dist/cjs/endowments/keyring.js.map +0 -1
- package/dist/cjs/endowments/lifecycle-hooks.js +0 -37
- package/dist/cjs/endowments/lifecycle-hooks.js.map +0 -1
- package/dist/cjs/endowments/name-lookup.js +0 -148
- package/dist/cjs/endowments/name-lookup.js.map +0 -1
- package/dist/cjs/endowments/network-access.js +0 -44
- package/dist/cjs/endowments/network-access.js.map +0 -1
- package/dist/cjs/endowments/rpc.js +0 -103
- package/dist/cjs/endowments/rpc.js.map +0 -1
- package/dist/cjs/endowments/signature-insight.js +0 -110
- package/dist/cjs/endowments/signature-insight.js.map +0 -1
- package/dist/cjs/endowments/transaction-insight.js +0 -111
- package/dist/cjs/endowments/transaction-insight.js.map +0 -1
- package/dist/cjs/endowments/web-assembly.js +0 -42
- package/dist/cjs/index.js +0 -45
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/permissions.js +0 -62
- package/dist/cjs/permissions.js.map +0 -1
- package/dist/cjs/permitted/createInterface.js +0 -68
- package/dist/cjs/permitted/createInterface.js.map +0 -1
- package/dist/cjs/permitted/getAllSnaps.js +0 -44
- package/dist/cjs/permitted/getAllSnaps.js.map +0 -1
- package/dist/cjs/permitted/getClientStatus.js +0 -40
- package/dist/cjs/permitted/getClientStatus.js.map +0 -1
- package/dist/cjs/permitted/getFile.js +0 -63
- package/dist/cjs/permitted/getFile.js.map +0 -1
- package/dist/cjs/permitted/getInterfaceState.js +0 -67
- package/dist/cjs/permitted/getInterfaceState.js.map +0 -1
- package/dist/cjs/permitted/getSnaps.js +0 -39
- package/dist/cjs/permitted/getSnaps.js.map +0 -1
- package/dist/cjs/permitted/handlers.js +0 -43
- package/dist/cjs/permitted/handlers.js.map +0 -1
- package/dist/cjs/permitted/index.js +0 -21
- package/dist/cjs/permitted/index.js.map +0 -1
- package/dist/cjs/permitted/invokeKeyring.js +0 -87
- package/dist/cjs/permitted/invokeKeyring.js.map +0 -1
- package/dist/cjs/permitted/invokeSnapSugar.js +0 -62
- package/dist/cjs/permitted/invokeSnapSugar.js.map +0 -1
- package/dist/cjs/permitted/middleware.js +0 -38
- package/dist/cjs/permitted/middleware.js.map +0 -1
- package/dist/cjs/permitted/requestSnaps.js +0 -123
- package/dist/cjs/permitted/requestSnaps.js.map +0 -1
- package/dist/cjs/permitted/updateInterface.js +0 -70
- package/dist/cjs/permitted/updateInterface.js.map +0 -1
- package/dist/cjs/restricted/caveats/index.js +0 -38
- package/dist/cjs/restricted/caveats/index.js.map +0 -1
- package/dist/cjs/restricted/caveats/permittedCoinTypes.js +0 -83
- package/dist/cjs/restricted/caveats/permittedCoinTypes.js.map +0 -1
- package/dist/cjs/restricted/caveats/permittedDerivationPaths.js +0 -67
- package/dist/cjs/restricted/caveats/permittedDerivationPaths.js.map +0 -1
- package/dist/cjs/restricted/caveats/snapIds.js +0 -59
- package/dist/cjs/restricted/caveats/snapIds.js.map +0 -1
- package/dist/cjs/restricted/dialog.js +0 -172
- package/dist/cjs/restricted/dialog.js.map +0 -1
- package/dist/cjs/restricted/getBip32Entropy.js +0 -76
- package/dist/cjs/restricted/getBip32Entropy.js.map +0 -1
- package/dist/cjs/restricted/getBip32PublicKey.js +0 -91
- package/dist/cjs/restricted/getBip44Entropy.js +0 -76
- package/dist/cjs/restricted/getBip44Entropy.js.map +0 -1
- package/dist/cjs/restricted/getEntropy.js +0 -76
- package/dist/cjs/restricted/getEntropy.js.map +0 -1
- package/dist/cjs/restricted/getLocale.js +0 -49
- package/dist/cjs/restricted/getLocale.js.map +0 -1
- package/dist/cjs/restricted/index.js +0 -59
- package/dist/cjs/restricted/index.js.map +0 -1
- package/dist/cjs/restricted/invokeSnap.js +0 -99
- package/dist/cjs/restricted/invokeSnap.js.map +0 -1
- package/dist/cjs/restricted/manageAccounts.js +0 -68
- package/dist/cjs/restricted/manageAccounts.js.map +0 -1
- package/dist/cjs/restricted/manageState.js +0 -208
- package/dist/cjs/restricted/manageState.js.map +0 -1
- package/dist/cjs/restricted/notify.js +0 -92
- package/dist/cjs/restricted/notify.js.map +0 -1
- package/dist/cjs/utils.js +0 -98
- package/dist/esm/endowments/caveats/generic.js +0 -40
- package/dist/esm/endowments/caveats/generic.js.map +0 -1
- package/dist/esm/endowments/caveats/index.js +0 -4
- package/dist/esm/endowments/caveats/index.js.map +0 -1
- package/dist/esm/endowments/caveats/requestTime.js +0 -93
- package/dist/esm/endowments/caveats/requestTime.js.map +0 -1
- package/dist/esm/endowments/cronjob.js +0 -99
- package/dist/esm/endowments/cronjob.js.map +0 -1
- package/dist/esm/endowments/enum.js +0 -16
- package/dist/esm/endowments/enum.js.map +0 -1
- package/dist/esm/endowments/ethereum-provider.js +0 -33
- package/dist/esm/endowments/ethereum-provider.js.map +0 -1
- package/dist/esm/endowments/home-page.js +0 -27
- package/dist/esm/endowments/home-page.js.map +0 -1
- package/dist/esm/endowments/index.js +0 -68
- package/dist/esm/endowments/index.js.map +0 -1
- package/dist/esm/endowments/keyring.js +0 -95
- package/dist/esm/endowments/keyring.js.map +0 -1
- package/dist/esm/endowments/lifecycle-hooks.js +0 -27
- package/dist/esm/endowments/lifecycle-hooks.js.map +0 -1
- package/dist/esm/endowments/name-lookup.js +0 -146
- package/dist/esm/endowments/name-lookup.js.map +0 -1
- package/dist/esm/endowments/network-access.js +0 -34
- package/dist/esm/endowments/network-access.js.map +0 -1
- package/dist/esm/endowments/rpc.js +0 -92
- package/dist/esm/endowments/rpc.js.map +0 -1
- package/dist/esm/endowments/signature-insight.js +0 -103
- package/dist/esm/endowments/signature-insight.js.map +0 -1
- package/dist/esm/endowments/transaction-insight.js +0 -104
- package/dist/esm/endowments/transaction-insight.js.map +0 -1
- package/dist/esm/endowments/web-assembly.js +0 -32
- package/dist/esm/endowments/web-assembly.js.map +0 -1
- package/dist/esm/index.js +0 -8
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/permissions.js +0 -51
- package/dist/esm/permissions.js.map +0 -1
- package/dist/esm/permitted/createInterface.js +0 -58
- package/dist/esm/permitted/createInterface.js.map +0 -1
- package/dist/esm/permitted/getAllSnaps.js +0 -37
- package/dist/esm/permitted/getAllSnaps.js.map +0 -1
- package/dist/esm/permitted/getClientStatus.js +0 -32
- package/dist/esm/permitted/getClientStatus.js.map +0 -1
- package/dist/esm/permitted/getFile.js +0 -45
- package/dist/esm/permitted/getFile.js.map +0 -1
- package/dist/esm/permitted/getInterfaceState.js +0 -57
- package/dist/esm/permitted/getInterfaceState.js.map +0 -1
- package/dist/esm/permitted/getSnaps.js +0 -31
- package/dist/esm/permitted/getSnaps.js.map +0 -1
- package/dist/esm/permitted/handlers.js +0 -25
- package/dist/esm/permitted/handlers.js.map +0 -1
- package/dist/esm/permitted/index.js +0 -4
- package/dist/esm/permitted/index.js.map +0 -1
- package/dist/esm/permitted/invokeKeyring.js +0 -79
- package/dist/esm/permitted/invokeKeyring.js.map +0 -1
- package/dist/esm/permitted/invokeSnapSugar.js +0 -60
- package/dist/esm/permitted/invokeSnapSugar.js.map +0 -1
- package/dist/esm/permitted/middleware.js +0 -34
- package/dist/esm/permitted/middleware.js.map +0 -1
- package/dist/esm/permitted/requestSnaps.js +0 -118
- package/dist/esm/permitted/requestSnaps.js.map +0 -1
- package/dist/esm/permitted/updateInterface.js +0 -60
- package/dist/esm/permitted/updateInterface.js.map +0 -1
- package/dist/esm/restricted/caveats/index.js +0 -20
- package/dist/esm/restricted/caveats/index.js.map +0 -1
- package/dist/esm/restricted/caveats/permittedCoinTypes.js +0 -77
- package/dist/esm/restricted/caveats/permittedCoinTypes.js.map +0 -1
- package/dist/esm/restricted/caveats/permittedDerivationPaths.js +0 -64
- package/dist/esm/restricted/caveats/permittedDerivationPaths.js.map +0 -1
- package/dist/esm/restricted/caveats/snapIds.js +0 -50
- package/dist/esm/restricted/caveats/snapIds.js.map +0 -1
- package/dist/esm/restricted/dialog.js +0 -164
- package/dist/esm/restricted/dialog.js.map +0 -1
- package/dist/esm/restricted/getBip32Entropy.js +0 -67
- package/dist/esm/restricted/getBip32Entropy.js.map +0 -1
- package/dist/esm/restricted/getBip32PublicKey.js +0 -79
- package/dist/esm/restricted/getBip32PublicKey.js.map +0 -1
- package/dist/esm/restricted/getBip44Entropy.js +0 -69
- package/dist/esm/restricted/getBip44Entropy.js.map +0 -1
- package/dist/esm/restricted/getEntropy.js +0 -58
- package/dist/esm/restricted/getEntropy.js.map +0 -1
- package/dist/esm/restricted/getLocale.js +0 -42
- package/dist/esm/restricted/getLocale.js.map +0 -1
- package/dist/esm/restricted/index.js +0 -27
- package/dist/esm/restricted/index.js.map +0 -1
- package/dist/esm/restricted/invokeSnap.js +0 -89
- package/dist/esm/restricted/invokeSnap.js.map +0 -1
- package/dist/esm/restricted/manageAccounts.js +0 -60
- package/dist/esm/restricted/manageAccounts.js.map +0 -1
- package/dist/esm/restricted/manageState.js +0 -225
- package/dist/esm/restricted/manageState.js.map +0 -1
- package/dist/esm/restricted/notify.js +0 -92
- package/dist/esm/restricted/notify.js.map +0 -1
- package/dist/esm/utils.js +0 -124
- package/dist/esm/utils.js.map +0 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createGenericPermissionValidator
|
|
3
|
+
} from "./chunk-TT4DP2YW.mjs";
|
|
4
|
+
|
|
5
|
+
// src/endowments/name-lookup.ts
|
|
6
|
+
import { PermissionType, SubjectType } from "@metamask/permission-controller";
|
|
7
|
+
import { rpcErrors } from "@metamask/rpc-errors";
|
|
8
|
+
import {
|
|
9
|
+
ChainIdsStruct,
|
|
10
|
+
LookupMatchersStruct,
|
|
11
|
+
SnapCaveatType
|
|
12
|
+
} from "@metamask/snaps-utils";
|
|
13
|
+
import {
|
|
14
|
+
assert,
|
|
15
|
+
assertStruct,
|
|
16
|
+
hasProperty,
|
|
17
|
+
isObject,
|
|
18
|
+
isPlainObject
|
|
19
|
+
} from "@metamask/utils";
|
|
20
|
+
var permissionName = "endowment:name-lookup" /* NameLookup */;
|
|
21
|
+
var specificationBuilder = (_builderOptions) => {
|
|
22
|
+
return {
|
|
23
|
+
permissionType: PermissionType.Endowment,
|
|
24
|
+
targetName: permissionName,
|
|
25
|
+
allowedCaveats: [
|
|
26
|
+
SnapCaveatType.ChainIds,
|
|
27
|
+
SnapCaveatType.LookupMatchers,
|
|
28
|
+
SnapCaveatType.MaxRequestTime
|
|
29
|
+
],
|
|
30
|
+
endowmentGetter: (_getterOptions) => void 0,
|
|
31
|
+
validator: createGenericPermissionValidator([
|
|
32
|
+
{ type: SnapCaveatType.ChainIds, optional: true },
|
|
33
|
+
{ type: SnapCaveatType.LookupMatchers, optional: true },
|
|
34
|
+
{ type: SnapCaveatType.MaxRequestTime, optional: true }
|
|
35
|
+
]),
|
|
36
|
+
subjectTypes: [SubjectType.Snap]
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
var nameLookupEndowmentBuilder = Object.freeze({
|
|
40
|
+
targetName: permissionName,
|
|
41
|
+
specificationBuilder
|
|
42
|
+
});
|
|
43
|
+
function validateCaveat(caveat) {
|
|
44
|
+
if (!hasProperty(caveat, "value") || !isPlainObject(caveat)) {
|
|
45
|
+
throw rpcErrors.invalidParams({
|
|
46
|
+
message: "Expected a plain object."
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const { value } = caveat;
|
|
50
|
+
switch (caveat.type) {
|
|
51
|
+
case SnapCaveatType.ChainIds:
|
|
52
|
+
assertStruct(value, ChainIdsStruct);
|
|
53
|
+
break;
|
|
54
|
+
case SnapCaveatType.LookupMatchers:
|
|
55
|
+
assertStruct(value, LookupMatchersStruct);
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
throw rpcErrors.invalidParams({
|
|
59
|
+
message: 'Invalid caveat type, must be one of the following: "chainIds", "matchers".'
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function getNameLookupCaveatMapper(value) {
|
|
64
|
+
if (!value || !isObject(value) || Object.keys(value).length === 0) {
|
|
65
|
+
return { caveats: null };
|
|
66
|
+
}
|
|
67
|
+
const caveats = [];
|
|
68
|
+
if (value.chains) {
|
|
69
|
+
caveats.push({
|
|
70
|
+
type: SnapCaveatType.ChainIds,
|
|
71
|
+
value: value.chains
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (value.matchers) {
|
|
75
|
+
caveats.push({
|
|
76
|
+
type: SnapCaveatType.LookupMatchers,
|
|
77
|
+
value: value.matchers
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
assert(caveats.length > 0);
|
|
81
|
+
return { caveats };
|
|
82
|
+
}
|
|
83
|
+
function getChainIdsCaveat(permission) {
|
|
84
|
+
if (!permission?.caveats) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
const caveat = permission.caveats.find(
|
|
88
|
+
(permCaveat) => permCaveat.type === SnapCaveatType.ChainIds
|
|
89
|
+
);
|
|
90
|
+
return caveat ? caveat.value : null;
|
|
91
|
+
}
|
|
92
|
+
function getLookupMatchersCaveat(permission) {
|
|
93
|
+
if (!permission?.caveats) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const caveat = permission.caveats.find(
|
|
97
|
+
(permCaveat) => permCaveat.type === SnapCaveatType.LookupMatchers
|
|
98
|
+
);
|
|
99
|
+
return caveat ? caveat.value : null;
|
|
100
|
+
}
|
|
101
|
+
var nameLookupCaveatSpecifications = {
|
|
102
|
+
[SnapCaveatType.ChainIds]: Object.freeze({
|
|
103
|
+
type: SnapCaveatType.ChainIds,
|
|
104
|
+
validator: (caveat) => validateCaveat(caveat)
|
|
105
|
+
}),
|
|
106
|
+
[SnapCaveatType.LookupMatchers]: Object.freeze({
|
|
107
|
+
type: SnapCaveatType.LookupMatchers,
|
|
108
|
+
validator: (caveat) => validateCaveat(caveat)
|
|
109
|
+
})
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export {
|
|
113
|
+
nameLookupEndowmentBuilder,
|
|
114
|
+
getNameLookupCaveatMapper,
|
|
115
|
+
getChainIdsCaveat,
|
|
116
|
+
getLookupMatchersCaveat,
|
|
117
|
+
nameLookupCaveatSpecifications
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=chunk-ADXH5C3U.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/endowments/name-lookup.ts"],"sourcesContent":["import type {\n EndowmentGetterParams,\n PermissionSpecificationBuilder,\n PermissionValidatorConstraint,\n ValidPermissionSpecification,\n Caveat,\n CaveatSpecificationConstraint,\n PermissionConstraint,\n CaveatConstraint,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n ChainIdsStruct,\n LookupMatchersStruct,\n SnapCaveatType,\n} from '@metamask/snaps-utils';\nimport type { Json, NonEmptyArray } from '@metamask/utils';\nimport {\n assert,\n assertStruct,\n hasProperty,\n isObject,\n isPlainObject,\n} from '@metamask/utils';\n\nimport { createGenericPermissionValidator } from './caveats';\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.NameLookup;\n\ntype NameLookupEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: EndowmentGetterParams) => undefined;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n validator: PermissionValidatorConstraint;\n}>;\n\n/**\n * `endowment:name-lookup` returns nothing; it is intended to be used as a flag\n * by the extension to detect whether the snap has the capability to resolve a domain/address.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the name-lookup endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n NameLookupEndowmentSpecification\n> = (_builderOptions?: unknown) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: [\n SnapCaveatType.ChainIds,\n SnapCaveatType.LookupMatchers,\n SnapCaveatType.MaxRequestTime,\n ],\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => undefined,\n validator: createGenericPermissionValidator([\n { type: SnapCaveatType.ChainIds, optional: true },\n { type: SnapCaveatType.LookupMatchers, optional: true },\n { type: SnapCaveatType.MaxRequestTime, optional: true },\n ]),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nexport const nameLookupEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\n\n/**\n * Validates the type of the caveat value.\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat value is invalid.\n */\nfunction validateCaveat(caveat: Caveat<string, any>): void {\n if (!hasProperty(caveat, 'value') || !isPlainObject(caveat)) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object.',\n });\n }\n\n const { value } = caveat;\n\n switch (caveat.type) {\n case SnapCaveatType.ChainIds:\n assertStruct(value, ChainIdsStruct);\n break;\n case SnapCaveatType.LookupMatchers:\n assertStruct(value, LookupMatchersStruct);\n break;\n default:\n throw rpcErrors.invalidParams({\n message:\n 'Invalid caveat type, must be one of the following: \"chainIds\", \"matchers\".',\n });\n }\n}\n\n/**\n * Map a raw value from the `initialPermissions` to a caveat specification.\n * Note that this function does not do any validation, that's handled by the\n * PermissionsController when the permission is requested.\n *\n * @param value - The raw value from the `initialPermissions`.\n * @returns The caveat specification.\n */\nexport function getNameLookupCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n if (!value || !isObject(value) || Object.keys(value).length === 0) {\n return { caveats: null };\n }\n\n const caveats = [];\n\n if (value.chains) {\n caveats.push({\n type: SnapCaveatType.ChainIds,\n value: value.chains,\n });\n }\n\n if (value.matchers) {\n caveats.push({\n type: SnapCaveatType.LookupMatchers,\n value: value.matchers,\n });\n }\n\n assert(caveats.length > 0);\n\n return { caveats: caveats as NonEmptyArray<CaveatConstraint> };\n}\n\n/**\n * Getter function to get the chainIds caveat from a permission.\n *\n * This does basic validation of the caveat, but does not validate the type or\n * value of the namespaces object itself, as this is handled by the\n * `PermissionsController` when the permission is requested.\n *\n * @param permission - The permission to get the `chainIds` caveat from.\n * @returns An array of `chainIds` that the snap supports.\n */\nexport function getChainIdsCaveat(\n permission?: PermissionConstraint,\n): string[] | null {\n if (!permission?.caveats) {\n return null;\n }\n\n const caveat = permission.caveats.find(\n (permCaveat) => permCaveat.type === SnapCaveatType.ChainIds,\n ) as Caveat<string, string[]> | undefined;\n\n return caveat ? caveat.value : null;\n}\n\n/**\n * Getter function to get the matchers caveat from a permission.\n *\n * This does basic validation of the caveat, but does not validate the type or\n * value of the namespaces object itself, as this is handled by the\n * `PermissionsController` when the permission is requested.\n *\n * @param permission - The permission to get the `matchers` caveat from.\n * @returns A `matchers` object that defines the input that the snap supports.\n */\nexport function getLookupMatchersCaveat(\n permission?: PermissionConstraint,\n): Record<string, string[]> | null {\n if (!permission?.caveats) {\n return null;\n }\n\n const caveat = permission.caveats.find(\n (permCaveat) => permCaveat.type === SnapCaveatType.LookupMatchers,\n ) as Caveat<string, Record<string, string[]>> | undefined;\n\n return caveat ? caveat.value : null;\n}\n\nexport const nameLookupCaveatSpecifications: Record<\n SnapCaveatType.ChainIds | SnapCaveatType.LookupMatchers,\n CaveatSpecificationConstraint\n> = {\n [SnapCaveatType.ChainIds]: Object.freeze({\n type: SnapCaveatType.ChainIds,\n validator: (caveat: Caveat<string, any>) => validateCaveat(caveat),\n }),\n [SnapCaveatType.LookupMatchers]: Object.freeze({\n type: SnapCaveatType.LookupMatchers,\n validator: (caveat: Caveat<string, any>) => validateCaveat(caveat),\n }),\n};\n"],"mappings":";;;;;AAUA,SAAS,gBAAgB,mBAAmB;AAC5C,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,IAAM;AAiBN,IAAM,uBAIF,CAAC,oBAA8B;AACjC,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ,gBAAgB;AAAA,MACd,eAAe;AAAA,MACf,eAAe;AAAA,MACf,eAAe;AAAA,IACjB;AAAA,IACA,iBAAiB,CAAC,mBAA2C;AAAA,IAC7D,WAAW,iCAAiC;AAAA,MAC1C,EAAE,MAAM,eAAe,UAAU,UAAU,KAAK;AAAA,MAChD,EAAE,MAAM,eAAe,gBAAgB,UAAU,KAAK;AAAA,MACtD,EAAE,MAAM,eAAe,gBAAgB,UAAU,KAAK;AAAA,IACxD,CAAC;AAAA,IACD,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEO,IAAM,6BAA6B,OAAO,OAAO;AAAA,EACtD,YAAY;AAAA,EACZ;AACF,CAAU;AAQV,SAAS,eAAe,QAAmC;AACzD,MAAI,CAAC,YAAY,QAAQ,OAAO,KAAK,CAAC,cAAc,MAAM,GAAG;AAC3D,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,QAAM,EAAE,MAAM,IAAI;AAElB,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,eAAe;AAClB,mBAAa,OAAO,cAAc;AAClC;AAAA,IACF,KAAK,eAAe;AAClB,mBAAa,OAAO,oBAAoB;AACxC;AAAA,IACF;AACE,YAAM,UAAU,cAAc;AAAA,QAC5B,SACE;AAAA,MACJ,CAAC;AAAA,EACL;AACF;AAUO,SAAS,0BACd,OACuC;AACvC,MAAI,CAAC,SAAS,CAAC,SAAS,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AACjE,WAAO,EAAE,SAAS,KAAK;AAAA,EACzB;AAEA,QAAM,UAAU,CAAC;AAEjB,MAAI,MAAM,QAAQ;AAChB,YAAQ,KAAK;AAAA,MACX,MAAM,eAAe;AAAA,MACrB,OAAO,MAAM;AAAA,IACf,CAAC;AAAA,EACH;AAEA,MAAI,MAAM,UAAU;AAClB,YAAQ,KAAK;AAAA,MACX,MAAM,eAAe;AAAA,MACrB,OAAO,MAAM;AAAA,IACf,CAAC;AAAA,EACH;AAEA,SAAO,QAAQ,SAAS,CAAC;AAEzB,SAAO,EAAE,QAAoD;AAC/D;AAYO,SAAS,kBACd,YACiB;AACjB,MAAI,CAAC,YAAY,SAAS;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,WAAW,QAAQ;AAAA,IAChC,CAAC,eAAe,WAAW,SAAS,eAAe;AAAA,EACrD;AAEA,SAAO,SAAS,OAAO,QAAQ;AACjC;AAYO,SAAS,wBACd,YACiC;AACjC,MAAI,CAAC,YAAY,SAAS;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,WAAW,QAAQ;AAAA,IAChC,CAAC,eAAe,WAAW,SAAS,eAAe;AAAA,EACrD;AAEA,SAAO,SAAS,OAAO,QAAQ;AACjC;AAEO,IAAM,iCAGT;AAAA,EACF,CAAC,eAAe,QAAQ,GAAG,OAAO,OAAO;AAAA,IACvC,MAAM,eAAe;AAAA,IACrB,WAAW,CAAC,WAAgC,eAAe,MAAM;AAAA,EACnE,CAAC;AAAA,EACD,CAAC,eAAe,cAAc,GAAG,OAAO,OAAO;AAAA,IAC7C,MAAM,eAAe;AAAA,IACrB,WAAW,CAAC,WAAgC,eAAe,MAAM;AAAA,EACnE,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {
|
|
2
|
+
restrictedMethodPermissionBuilders
|
|
3
|
+
} from "./chunk-3S7DJI4I.mjs";
|
|
4
|
+
import {
|
|
5
|
+
caveatMappers
|
|
6
|
+
} from "./chunk-Y4LNTDZ2.mjs";
|
|
7
|
+
import {
|
|
8
|
+
selectHooks
|
|
9
|
+
} from "./chunk-SGQXD5K7.mjs";
|
|
10
|
+
import {
|
|
11
|
+
endowmentCaveatMappers,
|
|
12
|
+
endowmentPermissionBuilders
|
|
13
|
+
} from "./chunk-C6E6DI4I.mjs";
|
|
14
|
+
|
|
15
|
+
// src/permissions.ts
|
|
16
|
+
import { hasProperty } from "@metamask/utils";
|
|
17
|
+
function processSnapPermissions(initialPermissions) {
|
|
18
|
+
return Object.fromEntries(
|
|
19
|
+
Object.entries(initialPermissions).map(([initialPermission, value]) => {
|
|
20
|
+
if (hasProperty(caveatMappers, initialPermission)) {
|
|
21
|
+
return [initialPermission, caveatMappers[initialPermission](value)];
|
|
22
|
+
} else if (hasProperty(endowmentCaveatMappers, initialPermission)) {
|
|
23
|
+
return [
|
|
24
|
+
initialPermission,
|
|
25
|
+
endowmentCaveatMappers[initialPermission](value)
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
return [
|
|
29
|
+
initialPermission,
|
|
30
|
+
value
|
|
31
|
+
];
|
|
32
|
+
})
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
var buildSnapEndowmentSpecifications = (excludedEndowments) => Object.values(endowmentPermissionBuilders).reduce((allSpecifications, { targetName, specificationBuilder }) => {
|
|
36
|
+
if (!excludedEndowments.includes(targetName)) {
|
|
37
|
+
allSpecifications[targetName] = specificationBuilder({});
|
|
38
|
+
}
|
|
39
|
+
return allSpecifications;
|
|
40
|
+
}, {});
|
|
41
|
+
var buildSnapRestrictedMethodSpecifications = (excludedPermissions, hooks) => Object.values(restrictedMethodPermissionBuilders).reduce((specifications, { targetName, specificationBuilder, methodHooks }) => {
|
|
42
|
+
if (!excludedPermissions.includes(targetName)) {
|
|
43
|
+
specifications[targetName] = specificationBuilder({
|
|
44
|
+
// @ts-expect-error The selectHooks type is wonky
|
|
45
|
+
methodHooks: selectHooks(
|
|
46
|
+
hooks,
|
|
47
|
+
methodHooks
|
|
48
|
+
)
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return specifications;
|
|
52
|
+
}, {});
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
processSnapPermissions,
|
|
56
|
+
buildSnapEndowmentSpecifications,
|
|
57
|
+
buildSnapRestrictedMethodSpecifications
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-AKRFLGOS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/permissions.ts"],"sourcesContent":["import type {\n PermissionConstraint,\n PermissionSpecificationConstraint,\n} from '@metamask/permission-controller';\nimport type { SnapPermissions } from '@metamask/snaps-utils';\nimport { hasProperty } from '@metamask/utils';\n\nimport {\n endowmentCaveatMappers,\n endowmentPermissionBuilders,\n} from './endowments';\nimport {\n caveatMappers,\n restrictedMethodPermissionBuilders,\n} from './restricted';\nimport { selectHooks } from './utils';\n\n/**\n * Map initial permissions as defined in a Snap manifest to something that can\n * be processed by the PermissionsController. Each caveat mapping function\n * should return a valid permission caveat value.\n *\n * This function does not validate the caveat values, since that is done by\n * the PermissionsController itself, upon requesting the permissions.\n *\n * @param initialPermissions - The initial permissions to process.\n * @returns The processed permissions.\n */\nexport function processSnapPermissions(\n initialPermissions: SnapPermissions,\n): Record<string, Pick<PermissionConstraint, 'caveats'>> {\n return Object.fromEntries(\n Object.entries(initialPermissions).map(([initialPermission, value]) => {\n if (hasProperty(caveatMappers, initialPermission)) {\n return [initialPermission, caveatMappers[initialPermission](value)];\n } else if (hasProperty(endowmentCaveatMappers, initialPermission)) {\n return [\n initialPermission,\n endowmentCaveatMappers[initialPermission](value),\n ];\n }\n\n // If we have no mapping, this may be a non-snap permission, return as-is\n return [\n initialPermission,\n value as Pick<PermissionConstraint, 'caveats'>,\n ];\n }),\n );\n}\n\nexport const buildSnapEndowmentSpecifications = (\n excludedEndowments: string[],\n) =>\n Object.values(endowmentPermissionBuilders).reduce<\n Record<string, PermissionSpecificationConstraint>\n >((allSpecifications, { targetName, specificationBuilder }) => {\n if (!excludedEndowments.includes(targetName)) {\n allSpecifications[targetName] = specificationBuilder({});\n }\n return allSpecifications;\n }, {});\n\nexport const buildSnapRestrictedMethodSpecifications = (\n excludedPermissions: string[],\n hooks: Record<string, unknown>,\n) =>\n Object.values(restrictedMethodPermissionBuilders).reduce<\n Record<string, PermissionSpecificationConstraint>\n >((specifications, { targetName, specificationBuilder, methodHooks }) => {\n if (!excludedPermissions.includes(targetName)) {\n specifications[targetName] = specificationBuilder({\n // @ts-expect-error The selectHooks type is wonky\n methodHooks: selectHooks<typeof hooks, keyof typeof methodHooks>(\n hooks,\n methodHooks,\n ) as Pick<typeof hooks, keyof typeof methodHooks>,\n });\n }\n return specifications;\n }, {});\n"],"mappings":";;;;;;;;;;;;;;;AAKA,SAAS,mBAAmB;AAuBrB,SAAS,uBACd,oBACuD;AACvD,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,kBAAkB,EAAE,IAAI,CAAC,CAAC,mBAAmB,KAAK,MAAM;AACrE,UAAI,YAAY,eAAe,iBAAiB,GAAG;AACjD,eAAO,CAAC,mBAAmB,cAAc,iBAAiB,EAAE,KAAK,CAAC;AAAA,MACpE,WAAW,YAAY,wBAAwB,iBAAiB,GAAG;AACjE,eAAO;AAAA,UACL;AAAA,UACA,uBAAuB,iBAAiB,EAAE,KAAK;AAAA,QACjD;AAAA,MACF;AAGA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,IAAM,mCAAmC,CAC9C,uBAEA,OAAO,OAAO,2BAA2B,EAAE,OAEzC,CAAC,mBAAmB,EAAE,YAAY,qBAAqB,MAAM;AAC7D,MAAI,CAAC,mBAAmB,SAAS,UAAU,GAAG;AAC5C,sBAAkB,UAAU,IAAI,qBAAqB,CAAC,CAAC;AAAA,EACzD;AACA,SAAO;AACT,GAAG,CAAC,CAAC;AAEA,IAAM,0CAA0C,CACrD,qBACA,UAEA,OAAO,OAAO,kCAAkC,EAAE,OAEhD,CAAC,gBAAgB,EAAE,YAAY,sBAAsB,YAAY,MAAM;AACvE,MAAI,CAAC,oBAAoB,SAAS,UAAU,GAAG;AAC7C,mBAAe,UAAU,IAAI,qBAAqB;AAAA;AAAA,MAEhD,aAAa;AAAA,QACX;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT,GAAG,CAAC,CAAC;","names":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkIDZGMGIBjs = require('./chunk-IDZGMGIB.js');
|
|
4
|
+
|
|
5
|
+
// src/permitted/invokeKeyring.ts
|
|
6
|
+
var _rpcerrors = require('@metamask/rpc-errors');
|
|
7
|
+
var _snapsutils = require('@metamask/snaps-utils');
|
|
8
|
+
var _utils = require('@metamask/utils');
|
|
9
|
+
var hookNames = {
|
|
10
|
+
hasPermission: true,
|
|
11
|
+
handleSnapRpcRequest: true,
|
|
12
|
+
getSnap: true,
|
|
13
|
+
getAllowedKeyringMethods: true
|
|
14
|
+
};
|
|
15
|
+
var invokeKeyringHandler = {
|
|
16
|
+
methodNames: ["wallet_invokeKeyring"],
|
|
17
|
+
implementation: invokeKeyringImplementation,
|
|
18
|
+
hookNames
|
|
19
|
+
};
|
|
20
|
+
async function invokeKeyringImplementation(req, res, _next, end, {
|
|
21
|
+
handleSnapRpcRequest,
|
|
22
|
+
hasPermission,
|
|
23
|
+
getSnap,
|
|
24
|
+
getAllowedKeyringMethods
|
|
25
|
+
}) {
|
|
26
|
+
let params;
|
|
27
|
+
try {
|
|
28
|
+
params = _chunkIDZGMGIBjs.getValidatedParams.call(void 0, req.params);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
return end(error);
|
|
31
|
+
}
|
|
32
|
+
const { origin } = req;
|
|
33
|
+
const { snapId, request } = params;
|
|
34
|
+
if (!origin || !hasPermission(_snapsutils.WALLET_SNAP_PERMISSION_KEY)) {
|
|
35
|
+
return end(
|
|
36
|
+
_rpcerrors.rpcErrors.invalidRequest({
|
|
37
|
+
message: `The snap "${snapId}" is not connected to "${origin}". Please connect before invoking the snap.`
|
|
38
|
+
})
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
if (!getSnap(snapId)) {
|
|
42
|
+
return end(
|
|
43
|
+
_rpcerrors.rpcErrors.invalidRequest({
|
|
44
|
+
message: `The snap "${snapId}" is not installed. Please install it first, before invoking the snap.`
|
|
45
|
+
})
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
if (!_utils.hasProperty.call(void 0, request, "method") || typeof request.method !== "string") {
|
|
49
|
+
return end(
|
|
50
|
+
_rpcerrors.rpcErrors.invalidRequest({
|
|
51
|
+
message: "The request must have a method."
|
|
52
|
+
})
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
const allowedMethods = getAllowedKeyringMethods();
|
|
56
|
+
if (!allowedMethods.includes(request.method)) {
|
|
57
|
+
return end(
|
|
58
|
+
_rpcerrors.rpcErrors.invalidRequest({
|
|
59
|
+
message: `The origin "${origin}" is not allowed to invoke the method "${request.method}".`
|
|
60
|
+
})
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
res.result = await handleSnapRpcRequest({
|
|
65
|
+
snapId,
|
|
66
|
+
request,
|
|
67
|
+
handler: _snapsutils.HandlerType.OnKeyringRequest
|
|
68
|
+
});
|
|
69
|
+
} catch (error) {
|
|
70
|
+
return end(error);
|
|
71
|
+
}
|
|
72
|
+
return end();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
exports.invokeKeyringHandler = invokeKeyringHandler;
|
|
78
|
+
//# sourceMappingURL=chunk-AOWUGDER.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/permitted/invokeKeyring.ts"],"names":[],"mappings":";;;;;AAEA,SAAS,iBAAiB;AAO1B,SAAS,aAAa,kCAAkC;AAExD,SAAS,mBAA8B;AAKvC,IAAM,YAAmD;AAAA,EACvD,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,SAAS;AAAA,EACT,0BAA0B;AAC5B;AAKO,IAAM,uBAIT;AAAA,EACF,aAAa,CAAC,sBAAsB;AAAA,EACpC,gBAAgB;AAAA,EAChB;AACF;AAiCA,eAAe,4BACb,KACA,KACA,OACA,KACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACe;AACf,MAAI;AACJ,MAAI;AACF,aAAS,mBAAmB,IAAI,MAAM;AAAA,EACxC,SAAS,OAAO;AACd,WAAO,IAAI,KAAK;AAAA,EAClB;AAGA,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,EAAE,QAAQ,QAAQ,IAAI;AAE5B,MAAI,CAAC,UAAU,CAAC,cAAc,0BAA0B,GAAG;AACzD,WAAO;AAAA,MACL,UAAU,eAAe;AAAA,QACvB,SAAS,aAAa,MAAM,0BAA0B,MAAM;AAAA,MAC9D,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ,MAAM,GAAG;AACpB,WAAO;AAAA,MACL,UAAU,eAAe;AAAA,QACvB,SAAS,aAAa,MAAM;AAAA,MAC9B,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,CAAC,YAAY,SAAS,QAAQ,KAAK,OAAO,QAAQ,WAAW,UAAU;AACzE,WAAO;AAAA,MACL,UAAU,eAAe;AAAA,QACvB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,iBAAiB,yBAAyB;AAChD,MAAI,CAAC,eAAe,SAAS,QAAQ,MAAM,GAAG;AAC5C,WAAO;AAAA,MACL,UAAU,eAAe;AAAA,QACvB,SAAS,eAAe,MAAM,0CAA0C,QAAQ,MAAM;AAAA,MACxF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI;AACF,QAAI,SAAU,MAAM,qBAAqB;AAAA,MACvC;AAAA,MACA;AAAA,MACA,SAAS,YAAY;AAAA,IACvB,CAAC;AAAA,EACH,SAAS,OAAO;AACd,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,SAAO,IAAI;AACb","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n InvokeKeyringParams,\n InvokeKeyringResult,\n InvokeSnapParams,\n} from '@metamask/snaps-sdk';\nimport type { Snap, SnapRpcHookArgs } from '@metamask/snaps-utils';\nimport { HandlerType, WALLET_SNAP_PERMISSION_KEY } from '@metamask/snaps-utils';\nimport type { PendingJsonRpcResponse, JsonRpcRequest } from '@metamask/utils';\nimport { hasProperty, type Json } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\nimport { getValidatedParams } from './invokeSnapSugar';\n\nconst hookNames: MethodHooksObject<InvokeKeyringHooks> = {\n hasPermission: true,\n handleSnapRpcRequest: true,\n getSnap: true,\n getAllowedKeyringMethods: true,\n};\n\n/**\n * `wallet_invokeKeyring` gets the requester's permitted and installed Snaps.\n */\nexport const invokeKeyringHandler: PermittedHandlerExport<\n InvokeKeyringHooks,\n InvokeSnapParams,\n InvokeKeyringResult\n> = {\n methodNames: ['wallet_invokeKeyring'],\n implementation: invokeKeyringImplementation,\n hookNames,\n};\n\nexport type InvokeKeyringHooks = {\n hasPermission: (permissionName: string) => boolean;\n\n handleSnapRpcRequest: ({\n snapId,\n handler,\n request,\n }: Omit<SnapRpcHookArgs, 'origin'> & { snapId: string }) => Promise<unknown>;\n\n getSnap: (snapId: string) => Snap | undefined;\n\n getAllowedKeyringMethods: () => string[];\n};\n\n/**\n * The `wallet_invokeKeyring` method implementation.\n * Invokes onKeyringRequest if the snap requested is installed and connected to the dapp.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.handleSnapRpcRequest - Invokes a snap with a given RPC request.\n * @param hooks.hasPermission - Checks whether a given origin has a given permission.\n * @param hooks.getSnap - Gets information about a given snap.\n * @param hooks.getAllowedKeyringMethods - Get the list of allowed Keyring\n * methods for a given origin.\n * @returns Nothing.\n */\nasync function invokeKeyringImplementation(\n req: JsonRpcRequest<InvokeKeyringParams>,\n res: PendingJsonRpcResponse<InvokeKeyringResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n {\n handleSnapRpcRequest,\n hasPermission,\n getSnap,\n getAllowedKeyringMethods,\n }: InvokeKeyringHooks,\n): Promise<void> {\n let params: InvokeSnapParams;\n try {\n params = getValidatedParams(req.params);\n } catch (error) {\n return end(error);\n }\n\n // We expect the MM middleware stack to always add the origin to requests\n const { origin } = req as JsonRpcRequest & { origin: string };\n const { snapId, request } = params;\n\n if (!origin || !hasPermission(WALLET_SNAP_PERMISSION_KEY)) {\n return end(\n rpcErrors.invalidRequest({\n message: `The snap \"${snapId}\" is not connected to \"${origin}\". Please connect before invoking the snap.`,\n }),\n );\n }\n\n if (!getSnap(snapId)) {\n return end(\n rpcErrors.invalidRequest({\n message: `The snap \"${snapId}\" is not installed. Please install it first, before invoking the snap.`,\n }),\n );\n }\n\n if (!hasProperty(request, 'method') || typeof request.method !== 'string') {\n return end(\n rpcErrors.invalidRequest({\n message: 'The request must have a method.',\n }),\n );\n }\n\n const allowedMethods = getAllowedKeyringMethods();\n if (!allowedMethods.includes(request.method)) {\n return end(\n rpcErrors.invalidRequest({\n message: `The origin \"${origin}\" is not allowed to invoke the method \"${request.method}\".`,\n }),\n );\n }\n\n try {\n res.result = (await handleSnapRpcRequest({\n snapId,\n request,\n handler: HandlerType.OnKeyringRequest,\n })) as Json;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createGenericPermissionValidator
|
|
3
|
+
} from "./chunk-TT4DP2YW.mjs";
|
|
4
|
+
|
|
5
|
+
// src/endowments/signature-insight.ts
|
|
6
|
+
import { PermissionType, SubjectType } from "@metamask/permission-controller";
|
|
7
|
+
import { rpcErrors } from "@metamask/rpc-errors";
|
|
8
|
+
import { SnapCaveatType } from "@metamask/snaps-utils";
|
|
9
|
+
import { assert, hasProperty, isObject, isPlainObject } from "@metamask/utils";
|
|
10
|
+
var permissionName = "endowment:signature-insight" /* SignatureInsight */;
|
|
11
|
+
var specificationBuilder = (_builderOptions) => {
|
|
12
|
+
return {
|
|
13
|
+
permissionType: PermissionType.Endowment,
|
|
14
|
+
targetName: permissionName,
|
|
15
|
+
allowedCaveats: [SnapCaveatType.SignatureOrigin],
|
|
16
|
+
endowmentGetter: (_getterOptions) => void 0,
|
|
17
|
+
validator: createGenericPermissionValidator([
|
|
18
|
+
{ type: SnapCaveatType.SignatureOrigin, optional: true },
|
|
19
|
+
{ type: SnapCaveatType.MaxRequestTime, optional: true }
|
|
20
|
+
]),
|
|
21
|
+
subjectTypes: [SubjectType.Snap]
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
var signatureInsightEndowmentBuilder = Object.freeze({
|
|
25
|
+
targetName: permissionName,
|
|
26
|
+
specificationBuilder
|
|
27
|
+
});
|
|
28
|
+
function validateCaveat(caveat) {
|
|
29
|
+
if (!hasProperty(caveat, "value") || !isPlainObject(caveat)) {
|
|
30
|
+
throw rpcErrors.invalidParams({
|
|
31
|
+
message: "Expected a plain object."
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const { value } = caveat;
|
|
35
|
+
assert(
|
|
36
|
+
typeof value === "boolean",
|
|
37
|
+
'Expected caveat value to have type "boolean"'
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
function getSignatureInsightCaveatMapper(value) {
|
|
41
|
+
if (!value || !isObject(value) || isObject(value) && Object.keys(value).length === 0) {
|
|
42
|
+
return { caveats: null };
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
caveats: [
|
|
46
|
+
{
|
|
47
|
+
type: SnapCaveatType.SignatureOrigin,
|
|
48
|
+
value: hasProperty(value, "allowSignatureOrigin") && value.allowSignatureOrigin
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function getSignatureOriginCaveat(permission) {
|
|
54
|
+
if (!permission?.caveats) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
assert(permission.caveats.length === 1);
|
|
58
|
+
assert(permission.caveats[0].type === SnapCaveatType.SignatureOrigin);
|
|
59
|
+
const caveat = permission.caveats[0];
|
|
60
|
+
return caveat.value ?? null;
|
|
61
|
+
}
|
|
62
|
+
var signatureInsightCaveatSpecifications = {
|
|
63
|
+
[SnapCaveatType.SignatureOrigin]: Object.freeze({
|
|
64
|
+
type: SnapCaveatType.SignatureOrigin,
|
|
65
|
+
validator: (caveat) => validateCaveat(caveat)
|
|
66
|
+
})
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export {
|
|
70
|
+
signatureInsightEndowmentBuilder,
|
|
71
|
+
getSignatureInsightCaveatMapper,
|
|
72
|
+
getSignatureOriginCaveat,
|
|
73
|
+
signatureInsightCaveatSpecifications
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=chunk-AWQ6HTAL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/endowments/signature-insight.ts"],"sourcesContent":["import type {\n PermissionSpecificationBuilder,\n EndowmentGetterParams,\n ValidPermissionSpecification,\n PermissionValidatorConstraint,\n PermissionConstraint,\n CaveatSpecificationConstraint,\n Caveat,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport { SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json, NonEmptyArray } from '@metamask/utils';\nimport { assert, hasProperty, isObject, isPlainObject } from '@metamask/utils';\n\nimport { createGenericPermissionValidator } from './caveats';\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.SignatureInsight;\n\ntype SignatureInsightEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: EndowmentGetterParams) => undefined;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n validator: PermissionValidatorConstraint;\n}>;\n\n/**\n * `endowment:signature-insight` returns nothing; it is intended to be used as a flag\n * by the extension to detect whether the snap has the capability to show information on the signature confirmation screen.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the signature-insight endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n SignatureInsightEndowmentSpecification\n> = (_builderOptions?: unknown) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: [SnapCaveatType.SignatureOrigin],\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => undefined,\n validator: createGenericPermissionValidator([\n { type: SnapCaveatType.SignatureOrigin, optional: true },\n { type: SnapCaveatType.MaxRequestTime, optional: true },\n ]),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nexport const signatureInsightEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\n\n/**\n * Validates the type of the caveat value.\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat value is invalid.\n */\nfunction validateCaveat(caveat: Caveat<string, any>): void {\n if (!hasProperty(caveat, 'value') || !isPlainObject(caveat)) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object.',\n });\n }\n\n const { value } = caveat;\n\n assert(\n typeof value === 'boolean',\n 'Expected caveat value to have type \"boolean\"',\n );\n}\n\n/**\n * Map a raw value from the `initialPermissions` to a caveat specification.\n * Note that this function does not do any validation, that's handled by the\n * PermissionController when the permission is requested.\n *\n * @param value - The raw value from the `initialPermissions`.\n * @returns The caveat specification.\n */\nexport function getSignatureInsightCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n if (\n !value ||\n !isObject(value) ||\n (isObject(value) && Object.keys(value).length === 0)\n ) {\n return { caveats: null };\n }\n return {\n caveats: [\n {\n type: SnapCaveatType.SignatureOrigin,\n value:\n hasProperty(value, 'allowSignatureOrigin') &&\n (value.allowSignatureOrigin as boolean),\n },\n ],\n };\n}\n\n/**\n * Getter function to get the signature origin caveat from a permission.\n *\n * This does basic validation of the caveat, but does not validate the type or\n * value of the namespaces object itself, as this is handled by the\n * `PermissionsController` when the permission is requested.\n *\n * @param permission - The permission to get the signature origin caveat from.\n * @returns The signature origin, or `null` if the permission does not have a\n * signature origin caveat.\n */\nexport function getSignatureOriginCaveat(\n permission?: PermissionConstraint,\n): boolean | null {\n if (!permission?.caveats) {\n return null;\n }\n\n assert(permission.caveats.length === 1);\n assert(permission.caveats[0].type === SnapCaveatType.SignatureOrigin);\n\n const caveat = permission.caveats[0] as Caveat<string, boolean>;\n\n return caveat.value ?? null;\n}\n\nexport const signatureInsightCaveatSpecifications: Record<\n SnapCaveatType.SignatureOrigin,\n CaveatSpecificationConstraint\n> = {\n [SnapCaveatType.SignatureOrigin]: Object.freeze({\n type: SnapCaveatType.SignatureOrigin,\n validator: (caveat: Caveat<string, any>) => validateCaveat(caveat),\n }),\n};\n"],"mappings":";;;;;AASA,SAAS,gBAAgB,mBAAmB;AAC5C,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAE/B,SAAS,QAAQ,aAAa,UAAU,qBAAqB;AAK7D,IAAM;AAiBN,IAAM,uBAIF,CAAC,oBAA8B;AACjC,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ,gBAAgB,CAAC,eAAe,eAAe;AAAA,IAC/C,iBAAiB,CAAC,mBAA2C;AAAA,IAC7D,WAAW,iCAAiC;AAAA,MAC1C,EAAE,MAAM,eAAe,iBAAiB,UAAU,KAAK;AAAA,MACvD,EAAE,MAAM,eAAe,gBAAgB,UAAU,KAAK;AAAA,IACxD,CAAC;AAAA,IACD,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEO,IAAM,mCAAmC,OAAO,OAAO;AAAA,EAC5D,YAAY;AAAA,EACZ;AACF,CAAU;AAQV,SAAS,eAAe,QAAmC;AACzD,MAAI,CAAC,YAAY,QAAQ,OAAO,KAAK,CAAC,cAAc,MAAM,GAAG;AAC3D,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,QAAM,EAAE,MAAM,IAAI;AAElB;AAAA,IACE,OAAO,UAAU;AAAA,IACjB;AAAA,EACF;AACF;AAUO,SAAS,gCACd,OACuC;AACvC,MACE,CAAC,SACD,CAAC,SAAS,KAAK,KACd,SAAS,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,WAAW,GAClD;AACA,WAAO,EAAE,SAAS,KAAK;AAAA,EACzB;AACA,SAAO;AAAA,IACL,SAAS;AAAA,MACP;AAAA,QACE,MAAM,eAAe;AAAA,QACrB,OACE,YAAY,OAAO,sBAAsB,KACxC,MAAM;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF;AAaO,SAAS,yBACd,YACgB;AAChB,MAAI,CAAC,YAAY,SAAS;AACxB,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,QAAQ,WAAW,CAAC;AACtC,SAAO,WAAW,QAAQ,CAAC,EAAE,SAAS,eAAe,eAAe;AAEpE,QAAM,SAAS,WAAW,QAAQ,CAAC;AAEnC,SAAO,OAAO,SAAS;AACzB;AAEO,IAAM,uCAGT;AAAA,EACF,CAAC,eAAe,eAAe,GAAG,OAAO,OAAO;AAAA,IAC9C,MAAM,eAAe;AAAA,IACrB,WAAW,CAAC,WAAgC,eAAe,MAAM;AAAA,EACnE,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk2KTJCF3Cjs = require('./chunk-2KTJCF3C.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunkVHY3NATPjs = require('./chunk-VHY3NATP.js');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
var _chunkZPK4THX4js = require('./chunk-ZPK4THX4.js');
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _chunkVUA6ICJOjs = require('./chunk-VUA6ICJO.js');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _chunkS7AR3ROHjs = require('./chunk-S7AR3ROH.js');
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
var _chunkLGUJMQC7js = require('./chunk-LGUJMQC7.js');
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
var _chunkFFHVA6PPjs = require('./chunk-FFHVA6PP.js');
|
|
25
|
+
|
|
26
|
+
// src/restricted/caveats/index.ts
|
|
27
|
+
var caveatSpecifications = {
|
|
28
|
+
..._chunkVHY3NATPjs.PermittedDerivationPathsCaveatSpecification,
|
|
29
|
+
..._chunk2KTJCF3Cjs.PermittedCoinTypesCaveatSpecification,
|
|
30
|
+
..._chunkZPK4THX4js.SnapIdsCaveatSpecification
|
|
31
|
+
};
|
|
32
|
+
var caveatMappers = {
|
|
33
|
+
[_chunkS7AR3ROHjs.getBip32EntropyBuilder.targetName]: _chunkVHY3NATPjs.permittedDerivationPathsCaveatMapper,
|
|
34
|
+
[_chunkLGUJMQC7js.getBip32PublicKeyBuilder.targetName]: _chunkVHY3NATPjs.permittedDerivationPathsCaveatMapper,
|
|
35
|
+
[_chunkVUA6ICJOjs.getBip44EntropyBuilder.targetName]: _chunk2KTJCF3Cjs.permittedCoinTypesCaveatMapper,
|
|
36
|
+
[_chunkFFHVA6PPjs.invokeSnapBuilder.targetName]: _chunkZPK4THX4js.snapIdsCaveatMapper
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
exports.caveatSpecifications = caveatSpecifications; exports.caveatMappers = caveatMappers;
|
|
43
|
+
//# sourceMappingURL=chunk-AYJK7MSH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/restricted/caveats/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBO,IAAM,uBAAuB;AAAA,EAClC,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,gBAGT;AAAA,EACF,CAAC,uBAAuB,UAAU,GAAG;AAAA,EACrC,CAAC,yBAAyB,UAAU,GAAG;AAAA,EACvC,CAAC,uBAAuB,UAAU,GAAG;AAAA,EACrC,CAAC,kBAAkB,UAAU,GAAG;AAClC","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport type { Json } from '@metamask/utils';\n\nimport { getBip32EntropyBuilder } from '../getBip32Entropy';\nimport { getBip32PublicKeyBuilder } from '../getBip32PublicKey';\nimport { getBip44EntropyBuilder } from '../getBip44Entropy';\nimport { invokeSnapBuilder } from '../invokeSnap';\nimport {\n permittedCoinTypesCaveatMapper,\n PermittedCoinTypesCaveatSpecification,\n} from './permittedCoinTypes';\nimport {\n permittedDerivationPathsCaveatMapper,\n PermittedDerivationPathsCaveatSpecification,\n} from './permittedDerivationPaths';\nimport { snapIdsCaveatMapper, SnapIdsCaveatSpecification } from './snapIds';\n\nexport const caveatSpecifications = {\n ...PermittedDerivationPathsCaveatSpecification,\n ...PermittedCoinTypesCaveatSpecification,\n ...SnapIdsCaveatSpecification,\n} as const;\n\nexport const caveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [getBip32EntropyBuilder.targetName]: permittedDerivationPathsCaveatMapper,\n [getBip32PublicKeyBuilder.targetName]: permittedDerivationPathsCaveatMapper,\n [getBip44EntropyBuilder.targetName]: permittedCoinTypesCaveatMapper,\n [invokeSnapBuilder.targetName]: snapIdsCaveatMapper,\n};\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/endowments/ethereum-provider.ts
|
|
2
|
+
var _permissioncontroller = require('@metamask/permission-controller');
|
|
3
|
+
var permissionName = "endowment:ethereum-provider" /* EthereumProvider */;
|
|
4
|
+
var specificationBuilder = (_builderOptions) => {
|
|
5
|
+
return {
|
|
6
|
+
permissionType: _permissioncontroller.PermissionType.Endowment,
|
|
7
|
+
targetName: permissionName,
|
|
8
|
+
allowedCaveats: null,
|
|
9
|
+
endowmentGetter: (_getterOptions) => {
|
|
10
|
+
return ["ethereum"];
|
|
11
|
+
},
|
|
12
|
+
subjectTypes: [_permissioncontroller.SubjectType.Snap]
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
var ethereumProviderEndowmentBuilder = Object.freeze({
|
|
16
|
+
targetName: permissionName,
|
|
17
|
+
specificationBuilder
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
exports.ethereumProviderEndowmentBuilder = ethereumProviderEndowmentBuilder;
|
|
23
|
+
//# sourceMappingURL=chunk-B3NIHNXW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/endowments/ethereum-provider.ts"],"names":[],"mappings":";AAKA,SAAS,gBAAgB,mBAAmB;AAI5C,IAAM;AAmBN,IAAM,uBAIF,CAAC,oBAA0B;AAC7B,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,iBAAiB,CAAC,mBAA2C;AAC3D,aAAO,CAAC,UAAU;AAAA,IACpB;AAAA,IACA,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEO,IAAM,mCAAmC,OAAO,OAAO;AAAA,EAC5D,YAAY;AAAA,EACZ;AACF,CAAU","sourcesContent":["import type {\n EndowmentGetterParams,\n PermissionSpecificationBuilder,\n ValidPermissionSpecification,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\n\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.EthereumProvider;\n\ntype EthereumProviderEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: any) => ['ethereum'];\n allowedCaveats: null;\n}>;\n\n/**\n * `endowment:ethereum-provider` returns the name of the ethereum global browser API.\n * This is intended to populate the endowments of the\n * SES Compartment in which a Snap executes.\n *\n * This populates the global scope with an EIP-1193 provider, which DOES NOT implement all legacy functionality exposed to dapps.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the network endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n EthereumProviderEndowmentSpecification\n> = (_builderOptions?: any) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: null,\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => {\n return ['ethereum'];\n },\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nexport const ethereumProviderEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\n"]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getKeyringCaveatMapper,
|
|
3
|
+
keyringCaveatSpecifications,
|
|
4
|
+
keyringEndowmentBuilder
|
|
5
|
+
} from "./chunk-TOYWHUAS.mjs";
|
|
6
|
+
import {
|
|
7
|
+
lifecycleHooksEndowmentBuilder
|
|
8
|
+
} from "./chunk-PCB6QOHL.mjs";
|
|
9
|
+
import {
|
|
10
|
+
getNameLookupCaveatMapper,
|
|
11
|
+
nameLookupCaveatSpecifications,
|
|
12
|
+
nameLookupEndowmentBuilder
|
|
13
|
+
} from "./chunk-ADXH5C3U.mjs";
|
|
14
|
+
import {
|
|
15
|
+
networkAccessEndowmentBuilder
|
|
16
|
+
} from "./chunk-4D2B2UQ6.mjs";
|
|
17
|
+
import {
|
|
18
|
+
getRpcCaveatMapper,
|
|
19
|
+
rpcCaveatSpecifications,
|
|
20
|
+
rpcEndowmentBuilder
|
|
21
|
+
} from "./chunk-VCGZNL35.mjs";
|
|
22
|
+
import {
|
|
23
|
+
getSignatureInsightCaveatMapper,
|
|
24
|
+
signatureInsightCaveatSpecifications,
|
|
25
|
+
signatureInsightEndowmentBuilder
|
|
26
|
+
} from "./chunk-AWQ6HTAL.mjs";
|
|
27
|
+
import {
|
|
28
|
+
getTransactionInsightCaveatMapper,
|
|
29
|
+
transactionInsightCaveatSpecifications,
|
|
30
|
+
transactionInsightEndowmentBuilder
|
|
31
|
+
} from "./chunk-EEVEVBK6.mjs";
|
|
32
|
+
import {
|
|
33
|
+
createMaxRequestTimeMapper,
|
|
34
|
+
getMaxRequestTimeCaveatMapper,
|
|
35
|
+
maxRequestTimeCaveatSpecifications
|
|
36
|
+
} from "./chunk-23XDKQW2.mjs";
|
|
37
|
+
import {
|
|
38
|
+
webAssemblyEndowmentBuilder
|
|
39
|
+
} from "./chunk-O66NZFSD.mjs";
|
|
40
|
+
import {
|
|
41
|
+
cronjobCaveatSpecifications,
|
|
42
|
+
cronjobEndowmentBuilder,
|
|
43
|
+
getCronjobCaveatMapper
|
|
44
|
+
} from "./chunk-UBPHGXCO.mjs";
|
|
45
|
+
import {
|
|
46
|
+
ethereumProviderEndowmentBuilder
|
|
47
|
+
} from "./chunk-KSTF5JYB.mjs";
|
|
48
|
+
import {
|
|
49
|
+
homePageEndowmentBuilder
|
|
50
|
+
} from "./chunk-MVG4B2HM.mjs";
|
|
51
|
+
|
|
52
|
+
// src/endowments/index.ts
|
|
53
|
+
import { HandlerType } from "@metamask/snaps-utils";
|
|
54
|
+
var endowmentPermissionBuilders = {
|
|
55
|
+
[networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,
|
|
56
|
+
[transactionInsightEndowmentBuilder.targetName]: transactionInsightEndowmentBuilder,
|
|
57
|
+
[cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,
|
|
58
|
+
[ethereumProviderEndowmentBuilder.targetName]: ethereumProviderEndowmentBuilder,
|
|
59
|
+
[rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,
|
|
60
|
+
[webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,
|
|
61
|
+
[nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,
|
|
62
|
+
[lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,
|
|
63
|
+
[keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,
|
|
64
|
+
[homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,
|
|
65
|
+
[signatureInsightEndowmentBuilder.targetName]: signatureInsightEndowmentBuilder
|
|
66
|
+
};
|
|
67
|
+
var endowmentCaveatSpecifications = {
|
|
68
|
+
...cronjobCaveatSpecifications,
|
|
69
|
+
...transactionInsightCaveatSpecifications,
|
|
70
|
+
...rpcCaveatSpecifications,
|
|
71
|
+
...nameLookupCaveatSpecifications,
|
|
72
|
+
...keyringCaveatSpecifications,
|
|
73
|
+
...signatureInsightCaveatSpecifications,
|
|
74
|
+
...maxRequestTimeCaveatSpecifications
|
|
75
|
+
};
|
|
76
|
+
var endowmentCaveatMappers = {
|
|
77
|
+
[cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(
|
|
78
|
+
getCronjobCaveatMapper
|
|
79
|
+
),
|
|
80
|
+
[transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(
|
|
81
|
+
getTransactionInsightCaveatMapper
|
|
82
|
+
),
|
|
83
|
+
[rpcEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getRpcCaveatMapper),
|
|
84
|
+
[nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(
|
|
85
|
+
getNameLookupCaveatMapper
|
|
86
|
+
),
|
|
87
|
+
[keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(
|
|
88
|
+
getKeyringCaveatMapper
|
|
89
|
+
),
|
|
90
|
+
[signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(
|
|
91
|
+
getSignatureInsightCaveatMapper
|
|
92
|
+
),
|
|
93
|
+
[lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,
|
|
94
|
+
[homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper
|
|
95
|
+
};
|
|
96
|
+
var handlerEndowments = {
|
|
97
|
+
[HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,
|
|
98
|
+
[HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,
|
|
99
|
+
[HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,
|
|
100
|
+
[HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,
|
|
101
|
+
[HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,
|
|
102
|
+
[HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,
|
|
103
|
+
[HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,
|
|
104
|
+
[HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,
|
|
105
|
+
[HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,
|
|
106
|
+
[HandlerType.OnUserInput]: null
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export {
|
|
110
|
+
endowmentPermissionBuilders,
|
|
111
|
+
endowmentCaveatSpecifications,
|
|
112
|
+
endowmentCaveatMappers,
|
|
113
|
+
handlerEndowments
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=chunk-C6E6DI4I.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/endowments/index.ts"],"sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport { getKeyringCaveatOrigins } from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,mBAAmB;AA4CrB,IAAM,8BAA8B;AAAA,EACzC,CAAC,8BAA8B,UAAU,GAAG;AAAA,EAC5C,CAAC,mCAAmC,UAAU,GAC5C;AAAA,EACF,CAAC,wBAAwB,UAAU,GAAG;AAAA,EACtC,CAAC,iCAAiC,UAAU,GAC1C;AAAA,EACF,CAAC,oBAAoB,UAAU,GAAG;AAAA,EAClC,CAAC,4BAA4B,UAAU,GAAG;AAAA,EAC1C,CAAC,2BAA2B,UAAU,GAAG;AAAA,EACzC,CAAC,+BAA+B,UAAU,GAAG;AAAA,EAC7C,CAAC,wBAAwB,UAAU,GAAG;AAAA,EACtC,CAAC,yBAAyB,UAAU,GAAG;AAAA,EACvC,CAAC,iCAAiC,UAAU,GAC1C;AACJ;AAEO,IAAM,gCAAgC;AAAA,EAC3C,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,yBAGT;AAAA,EACF,CAAC,wBAAwB,UAAU,GAAG;AAAA,IACpC;AAAA,EACF;AAAA,EACA,CAAC,mCAAmC,UAAU,GAAG;AAAA,IAC/C;AAAA,EACF;AAAA,EACA,CAAC,oBAAoB,UAAU,GAC7B,2BAA2B,kBAAkB;AAAA,EAC/C,CAAC,2BAA2B,UAAU,GAAG;AAAA,IACvC;AAAA,EACF;AAAA,EACA,CAAC,wBAAwB,UAAU,GAAG;AAAA,IACpC;AAAA,EACF;AAAA,EACA,CAAC,iCAAiC,UAAU,GAAG;AAAA,IAC7C;AAAA,EACF;AAAA,EACA,CAAC,+BAA+B,UAAU,GAAG;AAAA,EAC7C,CAAC,yBAAyB,UAAU,GAAG;AACzC;AAGO,IAAM,oBAAwD;AAAA,EACnE,CAAC,YAAY,YAAY,GAAG,oBAAoB;AAAA,EAChD,CAAC,YAAY,aAAa,GAAG,mCAAmC;AAAA,EAChE,CAAC,YAAY,SAAS,GAAG,wBAAwB;AAAA,EACjD,CAAC,YAAY,YAAY,GAAG,2BAA2B;AAAA,EACvD,CAAC,YAAY,SAAS,GAAG,+BAA+B;AAAA,EACxD,CAAC,YAAY,QAAQ,GAAG,+BAA+B;AAAA,EACvD,CAAC,YAAY,gBAAgB,GAAG,wBAAwB;AAAA,EACxD,CAAC,YAAY,UAAU,GAAG,yBAAyB;AAAA,EACnD,CAAC,YAAY,WAAW,GAAG,iCAAiC;AAAA,EAC5D,CAAC,YAAY,WAAW,GAAG;AAC7B;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/endowments/enum.ts
|
|
2
|
+
var SnapEndowments = /* @__PURE__ */ ((SnapEndowments2) => {
|
|
3
|
+
SnapEndowments2["NetworkAccess"] = "endowment:network-access";
|
|
4
|
+
SnapEndowments2["SignatureInsight"] = "endowment:signature-insight";
|
|
5
|
+
SnapEndowments2["TransactionInsight"] = "endowment:transaction-insight";
|
|
6
|
+
SnapEndowments2["Cronjob"] = "endowment:cronjob";
|
|
7
|
+
SnapEndowments2["EthereumProvider"] = "endowment:ethereum-provider";
|
|
8
|
+
SnapEndowments2["Rpc"] = "endowment:rpc";
|
|
9
|
+
SnapEndowments2["WebAssemblyAccess"] = "endowment:webassembly";
|
|
10
|
+
SnapEndowments2["NameLookup"] = "endowment:name-lookup";
|
|
11
|
+
SnapEndowments2["LifecycleHooks"] = "endowment:lifecycle-hooks";
|
|
12
|
+
SnapEndowments2["Keyring"] = "endowment:keyring";
|
|
13
|
+
SnapEndowments2["HomePage"] = "endowment:page-home";
|
|
14
|
+
return SnapEndowments2;
|
|
15
|
+
})(SnapEndowments || {});
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
SnapEndowments
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-CD4OUHO5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/endowments/enum.ts"],"sourcesContent":["export enum SnapEndowments {\n NetworkAccess = 'endowment:network-access',\n SignatureInsight = 'endowment:signature-insight',\n TransactionInsight = 'endowment:transaction-insight',\n Cronjob = 'endowment:cronjob',\n EthereumProvider = 'endowment:ethereum-provider',\n Rpc = 'endowment:rpc',\n WebAssemblyAccess = 'endowment:webassembly',\n NameLookup = 'endowment:name-lookup',\n LifecycleHooks = 'endowment:lifecycle-hooks',\n Keyring = 'endowment:keyring',\n HomePage = 'endowment:page-home',\n}\n"],"mappings":";AAAO,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,mBAAgB;AAChB,EAAAA,gBAAA,sBAAmB;AACnB,EAAAA,gBAAA,wBAAqB;AACrB,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,sBAAmB;AACnB,EAAAA,gBAAA,SAAM;AACN,EAAAA,gBAAA,uBAAoB;AACpB,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,oBAAiB;AACjB,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,cAAW;AAXD,SAAAA;AAAA,GAAA;","names":["SnapEndowments"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/permitted/getSnaps.ts
|
|
2
|
+
var hookNames = {
|
|
3
|
+
getSnaps: true
|
|
4
|
+
};
|
|
5
|
+
var getSnapsHandler = {
|
|
6
|
+
methodNames: ["wallet_getSnaps"],
|
|
7
|
+
implementation: getSnapsImplementation,
|
|
8
|
+
hookNames
|
|
9
|
+
};
|
|
10
|
+
async function getSnapsImplementation(_req, res, _next, end, { getSnaps }) {
|
|
11
|
+
res.result = await getSnaps();
|
|
12
|
+
return end();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
getSnapsHandler
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=chunk-CH5O2YCX.mjs.map
|