@metamask/snaps-rpc-methods 11.0.0 → 11.1.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 +14 -1
- package/dist/__fixtures__/entropy.cjs +31 -0
- package/dist/__fixtures__/entropy.cjs.map +1 -0
- package/dist/{types/__fixtures__/entropy.d.ts → __fixtures__/entropy.d.cts} +1 -0
- package/dist/__fixtures__/entropy.d.cts.map +1 -0
- package/dist/__fixtures__/entropy.d.mts +15 -0
- package/dist/__fixtures__/entropy.d.mts.map +1 -0
- package/dist/__fixtures__/entropy.mjs +28 -0
- package/dist/__fixtures__/entropy.mjs.map +1 -0
- package/dist/__fixtures__/index.cjs +18 -0
- package/dist/__fixtures__/index.cjs.map +1 -0
- package/dist/__fixtures__/index.d.cts +2 -0
- package/dist/__fixtures__/index.d.cts.map +1 -0
- package/dist/__fixtures__/index.d.mts +2 -0
- package/dist/__fixtures__/index.d.mts.map +1 -0
- package/dist/__fixtures__/index.mjs +2 -0
- package/dist/__fixtures__/index.mjs.map +1 -0
- package/dist/endowments/caveats/generic.cjs +50 -0
- package/dist/endowments/caveats/generic.cjs.map +1 -0
- package/dist/{types/endowments/caveats/generic.d.ts → endowments/caveats/generic.d.cts} +3 -2
- package/dist/endowments/caveats/generic.d.cts.map +1 -0
- package/dist/endowments/caveats/generic.d.mts +20 -0
- package/dist/endowments/caveats/generic.d.mts.map +1 -0
- package/dist/endowments/caveats/generic.mjs +45 -6
- package/dist/endowments/caveats/generic.mjs.map +1 -1
- package/dist/endowments/caveats/index.cjs +19 -0
- package/dist/endowments/caveats/index.cjs.map +1 -0
- package/dist/endowments/caveats/index.d.cts +3 -0
- package/dist/endowments/caveats/index.d.cts.map +1 -0
- package/dist/endowments/caveats/index.d.mts +3 -0
- package/dist/endowments/caveats/index.d.mts.map +1 -0
- package/dist/endowments/caveats/index.mjs +2 -17
- package/dist/endowments/caveats/index.mjs.map +1 -1
- package/dist/endowments/caveats/requestTime.cjs +104 -0
- package/dist/{chunk-FCVWU5XH.js.map → endowments/caveats/requestTime.cjs.map} +1 -1
- package/dist/{types/endowments/caveats/requestTime.d.ts → endowments/caveats/requestTime.d.cts} +5 -4
- package/dist/endowments/caveats/requestTime.d.cts.map +1 -0
- package/dist/endowments/caveats/requestTime.d.mts +30 -0
- package/dist/endowments/caveats/requestTime.d.mts.map +1 -0
- package/dist/endowments/caveats/requestTime.mjs +96 -11
- package/dist/endowments/caveats/requestTime.mjs.map +1 -1
- package/dist/endowments/cronjob.cjs +105 -0
- package/dist/endowments/cronjob.cjs.map +1 -0
- package/dist/{types/endowments/cronjob.d.ts → endowments/cronjob.d.cts} +7 -6
- package/dist/endowments/cronjob.d.cts.map +1 -0
- package/dist/endowments/cronjob.d.mts +52 -0
- package/dist/endowments/cronjob.d.mts.map +1 -0
- package/dist/endowments/cronjob.mjs +97 -14
- package/dist/endowments/cronjob.mjs.map +1 -1
- package/dist/endowments/enum.cjs +18 -0
- package/dist/endowments/enum.cjs.map +1 -0
- package/dist/{types/endowments/enum.d.ts → endowments/enum.d.cts} +1 -0
- package/dist/endowments/enum.d.cts.map +1 -0
- package/dist/endowments/enum.d.mts +14 -0
- package/dist/endowments/enum.d.mts.map +1 -0
- package/dist/endowments/enum.mjs +14 -6
- package/dist/endowments/enum.mjs.map +1 -1
- package/dist/endowments/ethereum-provider.cjs +32 -0
- package/dist/endowments/ethereum-provider.cjs.map +1 -0
- package/dist/{types/endowments/ethereum-provider.d.ts → endowments/ethereum-provider.d.cts} +4 -3
- package/dist/endowments/ethereum-provider.d.cts.map +1 -0
- package/dist/endowments/ethereum-provider.d.mts +15 -0
- package/dist/endowments/ethereum-provider.d.mts.map +1 -0
- package/dist/endowments/ethereum-provider.mjs +27 -6
- package/dist/endowments/ethereum-provider.mjs.map +1 -1
- package/dist/endowments/home-page.cjs +28 -0
- package/dist/{chunk-2SFH57UV.js.map → endowments/home-page.cjs.map} +1 -1
- package/dist/{types/endowments/home-page.d.ts → endowments/home-page.d.cts} +5 -4
- package/dist/endowments/home-page.d.cts.map +1 -0
- package/dist/endowments/home-page.d.mts +16 -0
- package/dist/endowments/home-page.d.mts.map +1 -0
- package/dist/endowments/home-page.mjs +23 -6
- package/dist/endowments/home-page.mjs.map +1 -1
- package/dist/endowments/index.cjs +92 -0
- package/dist/endowments/index.cjs.map +1 -0
- package/dist/{types/endowments/index.d.ts → endowments/index.d.cts} +12 -11
- package/dist/endowments/index.d.cts.map +1 -0
- package/dist/endowments/index.d.mts +132 -0
- package/dist/endowments/index.d.mts.map +1 -0
- package/dist/endowments/index.mjs +65 -52
- package/dist/endowments/index.mjs.map +1 -1
- package/dist/endowments/keyring.cjs +96 -0
- package/dist/endowments/keyring.cjs.map +1 -0
- package/dist/{types/endowments/keyring.d.ts → endowments/keyring.d.cts} +7 -6
- package/dist/endowments/keyring.d.cts.map +1 -0
- package/dist/endowments/keyring.d.mts +40 -0
- package/dist/endowments/keyring.d.mts.map +1 -0
- package/dist/endowments/keyring.mjs +89 -15
- package/dist/endowments/keyring.mjs.map +1 -1
- package/dist/endowments/lifecycle-hooks.cjs +28 -0
- package/dist/endowments/lifecycle-hooks.cjs.map +1 -0
- package/dist/{types/endowments/lifecycle-hooks.d.ts → endowments/lifecycle-hooks.d.cts} +5 -4
- package/dist/endowments/lifecycle-hooks.d.cts.map +1 -0
- package/dist/endowments/lifecycle-hooks.d.mts +16 -0
- package/dist/endowments/lifecycle-hooks.d.mts.map +1 -0
- package/dist/endowments/lifecycle-hooks.mjs +23 -6
- package/dist/endowments/lifecycle-hooks.mjs.map +1 -1
- package/dist/endowments/name-lookup.cjs +141 -0
- package/dist/endowments/name-lookup.cjs.map +1 -0
- package/dist/{types/endowments/name-lookup.d.ts → endowments/name-lookup.d.cts} +6 -5
- package/dist/endowments/name-lookup.d.cts.map +1 -0
- package/dist/endowments/name-lookup.d.mts +50 -0
- package/dist/endowments/name-lookup.d.mts.map +1 -0
- package/dist/endowments/name-lookup.mjs +133 -17
- package/dist/endowments/name-lookup.mjs.map +1 -1
- package/dist/endowments/network-access.cjs +30 -0
- package/dist/endowments/network-access.cjs.map +1 -0
- package/dist/{types/endowments/network-access.d.ts → endowments/network-access.d.cts} +4 -3
- package/dist/endowments/network-access.d.cts.map +1 -0
- package/dist/endowments/network-access.d.mts +15 -0
- package/dist/endowments/network-access.d.mts.map +1 -0
- package/dist/endowments/network-access.mjs +25 -6
- package/dist/endowments/network-access.mjs.map +1 -1
- package/dist/endowments/rpc.cjs +90 -0
- package/dist/endowments/rpc.cjs.map +1 -0
- package/dist/{types/endowments/rpc.d.ts → endowments/rpc.d.cts} +7 -6
- package/dist/endowments/rpc.d.cts.map +1 -0
- package/dist/endowments/rpc.d.mts +39 -0
- package/dist/endowments/rpc.d.mts.map +1 -0
- package/dist/endowments/rpc.mjs +83 -15
- package/dist/endowments/rpc.mjs.map +1 -1
- package/dist/endowments/signature-insight.cjs +102 -0
- package/dist/endowments/signature-insight.cjs.map +1 -0
- package/dist/{types/endowments/signature-insight.d.ts → endowments/signature-insight.d.cts} +6 -5
- package/dist/endowments/signature-insight.d.cts.map +1 -0
- package/dist/endowments/signature-insight.d.mts +40 -0
- package/dist/endowments/signature-insight.d.mts.map +1 -0
- package/dist/endowments/signature-insight.mjs +95 -15
- package/dist/endowments/signature-insight.mjs.map +1 -1
- package/dist/endowments/transaction-insight.cjs +105 -0
- package/dist/endowments/transaction-insight.cjs.map +1 -0
- package/dist/{types/endowments/transaction-insight.d.ts → endowments/transaction-insight.d.cts} +6 -5
- package/dist/endowments/transaction-insight.d.cts.map +1 -0
- package/dist/endowments/transaction-insight.d.mts +40 -0
- package/dist/endowments/transaction-insight.d.mts.map +1 -0
- package/dist/endowments/transaction-insight.mjs +98 -15
- package/dist/endowments/transaction-insight.mjs.map +1 -1
- package/dist/endowments/web-assembly.cjs +31 -0
- package/dist/endowments/web-assembly.cjs.map +1 -0
- package/dist/{types/endowments/web-assembly.d.ts → endowments/web-assembly.d.cts} +4 -3
- package/dist/endowments/web-assembly.d.cts.map +1 -0
- package/dist/endowments/web-assembly.d.mts +15 -0
- package/dist/endowments/web-assembly.d.mts.map +1 -0
- package/dist/endowments/web-assembly.mjs +26 -6
- package/dist/endowments/web-assembly.mjs.map +1 -1
- package/dist/index.cjs +28 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +8 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +6 -122
- package/dist/index.mjs.map +1 -1
- package/dist/permissions.cjs +55 -0
- package/dist/permissions.cjs.map +1 -0
- package/dist/{types/permissions.d.ts → permissions.d.cts} +3 -2
- package/dist/permissions.d.cts.map +1 -0
- package/dist/permissions.d.mts +17 -0
- package/dist/permissions.d.mts.map +1 -0
- package/dist/permissions.mjs +48 -43
- package/dist/permissions.mjs.map +1 -1
- package/dist/permitted/createInterface.cjs +64 -0
- package/dist/permitted/createInterface.cjs.map +1 -0
- package/dist/{types/permitted/createInterface.d.ts → permitted/createInterface.d.cts} +48 -47
- package/dist/permitted/createInterface.d.cts.map +1 -0
- package/dist/permitted/createInterface.d.mts +181 -0
- package/dist/permitted/createInterface.d.mts.map +1 -0
- package/dist/permitted/createInterface.mjs +59 -5
- package/dist/permitted/createInterface.mjs.map +1 -1
- package/dist/permitted/getAllSnaps.cjs +39 -0
- package/dist/permitted/getAllSnaps.cjs.map +1 -0
- package/dist/{types/permitted/getAllSnaps.d.ts → permitted/getAllSnaps.d.cts} +4 -3
- package/dist/permitted/getAllSnaps.d.cts.map +1 -0
- package/dist/permitted/getAllSnaps.d.mts +15 -0
- package/dist/permitted/getAllSnaps.d.mts.map +1 -0
- package/dist/permitted/getAllSnaps.mjs +34 -5
- package/dist/permitted/getAllSnaps.mjs.map +1 -1
- package/dist/permitted/getClientStatus.cjs +32 -0
- package/dist/permitted/getClientStatus.cjs.map +1 -0
- package/dist/{types/permitted/getClientStatus.d.ts → permitted/getClientStatus.d.cts} +4 -3
- package/dist/permitted/getClientStatus.d.cts.map +1 -0
- package/dist/permitted/getClientStatus.d.mts +14 -0
- package/dist/permitted/getClientStatus.d.mts.map +1 -0
- package/dist/permitted/getClientStatus.mjs +27 -5
- package/dist/permitted/getClientStatus.mjs.map +1 -1
- package/dist/permitted/getFile.cjs +47 -0
- package/dist/permitted/getFile.cjs.map +1 -0
- package/dist/{types/permitted/getFile.d.ts → permitted/getFile.d.cts} +4 -3
- package/dist/permitted/getFile.d.cts.map +1 -0
- package/dist/permitted/getFile.d.mts +16 -0
- package/dist/permitted/getFile.d.mts.map +1 -0
- package/dist/permitted/getFile.mjs +42 -7
- package/dist/permitted/getFile.mjs.map +1 -1
- package/dist/permitted/getInterfaceState.cjs +62 -0
- package/dist/permitted/getInterfaceState.cjs.map +1 -0
- package/dist/{types/permitted/getInterfaceState.d.ts → permitted/getInterfaceState.d.cts} +4 -3
- package/dist/permitted/getInterfaceState.d.cts.map +1 -0
- package/dist/permitted/getInterfaceState.d.mts +19 -0
- package/dist/permitted/getInterfaceState.d.mts.map +1 -0
- package/dist/permitted/getInterfaceState.mjs +57 -5
- package/dist/permitted/getInterfaceState.mjs.map +1 -1
- package/dist/permitted/getSnaps.cjs +33 -0
- package/dist/permitted/getSnaps.cjs.map +1 -0
- package/dist/{types/permitted/getSnaps.d.ts → permitted/getSnaps.d.cts} +4 -3
- package/dist/permitted/getSnaps.d.cts.map +1 -0
- package/dist/permitted/getSnaps.d.mts +14 -0
- package/dist/permitted/getSnaps.d.mts.map +1 -0
- package/dist/permitted/getSnaps.mjs +28 -5
- package/dist/permitted/getSnaps.mjs.map +1 -1
- package/dist/permitted/handlers.cjs +31 -0
- package/dist/permitted/handlers.cjs.map +1 -0
- package/dist/{types/permitted/handlers.d.ts → permitted/handlers.d.cts} +1 -0
- package/dist/permitted/handlers.d.cts.map +1 -0
- package/dist/permitted/handlers.d.mts +35 -0
- package/dist/permitted/handlers.d.mts.map +1 -0
- package/dist/permitted/handlers.mjs +26 -19
- package/dist/permitted/handlers.mjs.map +1 -1
- package/dist/permitted/index.cjs +19 -0
- package/dist/permitted/index.cjs.map +1 -0
- package/dist/permitted/index.d.cts +12 -0
- package/dist/permitted/index.d.cts.map +1 -0
- package/dist/permitted/index.d.mts +12 -0
- package/dist/permitted/index.d.mts.map +1 -0
- package/dist/permitted/index.mjs +2 -26
- package/dist/permitted/index.mjs.map +1 -1
- package/dist/permitted/invokeKeyring.cjs +83 -0
- package/dist/permitted/invokeKeyring.cjs.map +1 -0
- package/dist/{types/permitted/invokeKeyring.d.ts → permitted/invokeKeyring.d.cts} +4 -3
- package/dist/permitted/invokeKeyring.d.cts.map +1 -0
- package/dist/permitted/invokeKeyring.d.mts +16 -0
- package/dist/permitted/invokeKeyring.d.mts.map +1 -0
- package/dist/permitted/invokeKeyring.mjs +78 -6
- package/dist/permitted/invokeKeyring.mjs.map +1 -1
- package/dist/permitted/invokeSnapSugar.cjs +68 -0
- package/dist/permitted/invokeSnapSugar.cjs.map +1 -0
- package/dist/{types/permitted/invokeSnapSugar.d.ts → permitted/invokeSnapSugar.d.cts} +5 -4
- package/dist/permitted/invokeSnapSugar.d.cts.map +1 -0
- package/dist/permitted/invokeSnapSugar.d.mts +35 -0
- package/dist/permitted/invokeSnapSugar.d.mts.map +1 -0
- package/dist/permitted/invokeSnapSugar.mjs +61 -9
- package/dist/permitted/invokeSnapSugar.mjs.map +1 -1
- package/dist/permitted/middleware.cjs +40 -0
- package/dist/permitted/middleware.cjs.map +1 -0
- package/dist/{types/permitted/middleware.d.ts → permitted/middleware.d.cts} +3 -2
- package/dist/permitted/middleware.d.cts.map +1 -0
- package/dist/permitted/middleware.d.mts +11 -0
- package/dist/permitted/middleware.d.mts.map +1 -0
- package/dist/permitted/middleware.mjs +35 -20
- package/dist/permitted/middleware.mjs.map +1 -1
- package/dist/permitted/requestSnaps.cjs +121 -0
- package/dist/permitted/requestSnaps.cjs.map +1 -0
- package/dist/{types/permitted/requestSnaps.d.ts → permitted/requestSnaps.d.cts} +4 -3
- package/dist/permitted/requestSnaps.d.cts.map +1 -0
- package/dist/permitted/requestSnaps.d.mts +51 -0
- package/dist/permitted/requestSnaps.d.mts.map +1 -0
- package/dist/permitted/requestSnaps.mjs +114 -10
- package/dist/permitted/requestSnaps.mjs.map +1 -1
- package/dist/permitted/resolveInterface.cjs +65 -0
- package/dist/permitted/resolveInterface.cjs.map +1 -0
- package/dist/{types/permitted/resolveInterface.d.ts → permitted/resolveInterface.d.cts} +6 -5
- package/dist/permitted/resolveInterface.d.cts.map +1 -0
- package/dist/permitted/resolveInterface.d.mts +22 -0
- package/dist/permitted/resolveInterface.d.mts.map +1 -0
- package/dist/permitted/resolveInterface.mjs +60 -5
- package/dist/permitted/resolveInterface.mjs.map +1 -1
- package/dist/permitted/updateInterface.cjs +65 -0
- package/dist/permitted/updateInterface.cjs.map +1 -0
- package/dist/{types/permitted/updateInterface.d.ts → permitted/updateInterface.d.cts} +48 -47
- package/dist/permitted/updateInterface.d.cts.map +1 -0
- package/dist/permitted/updateInterface.d.mts +181 -0
- package/dist/permitted/updateInterface.d.mts.map +1 -0
- package/dist/permitted/updateInterface.mjs +60 -5
- package/dist/permitted/updateInterface.mjs.map +1 -1
- package/dist/restricted/caveats/index.cjs +22 -0
- package/dist/restricted/caveats/index.cjs.map +1 -0
- package/dist/{types/restricted/caveats/index.d.ts → restricted/caveats/index.d.cts} +3 -2
- package/dist/restricted/caveats/index.d.cts.map +1 -0
- package/dist/restricted/caveats/index.d.mts +9 -0
- package/dist/restricted/caveats/index.d.mts.map +1 -0
- package/dist/restricted/caveats/index.mjs +17 -15
- package/dist/restricted/caveats/index.mjs.map +1 -1
- package/dist/restricted/caveats/permittedCoinTypes.cjs +90 -0
- package/dist/restricted/caveats/permittedCoinTypes.cjs.map +1 -0
- package/dist/{types/restricted/caveats/permittedCoinTypes.d.ts → restricted/caveats/permittedCoinTypes.d.cts} +5 -4
- package/dist/restricted/caveats/permittedCoinTypes.d.cts.map +1 -0
- package/dist/restricted/caveats/permittedCoinTypes.d.mts +30 -0
- package/dist/restricted/caveats/permittedCoinTypes.d.mts.map +1 -0
- package/dist/restricted/caveats/permittedCoinTypes.mjs +82 -11
- package/dist/restricted/caveats/permittedCoinTypes.mjs.map +1 -1
- package/dist/restricted/caveats/permittedDerivationPaths.cjs +70 -0
- package/dist/restricted/caveats/permittedDerivationPaths.cjs.map +1 -0
- package/dist/{types/restricted/caveats/permittedDerivationPaths.d.ts → restricted/caveats/permittedDerivationPaths.d.cts} +5 -4
- package/dist/restricted/caveats/permittedDerivationPaths.d.cts.map +1 -0
- package/dist/restricted/caveats/permittedDerivationPaths.d.mts +33 -0
- package/dist/restricted/caveats/permittedDerivationPaths.d.mts.map +1 -0
- package/dist/restricted/caveats/permittedDerivationPaths.mjs +62 -11
- package/dist/restricted/caveats/permittedDerivationPaths.mjs.map +1 -1
- package/dist/restricted/caveats/snapIds.cjs +56 -0
- package/dist/restricted/caveats/snapIds.cjs.map +1 -0
- package/dist/{types/restricted/caveats/snapIds.d.ts → restricted/caveats/snapIds.d.cts} +5 -4
- package/dist/restricted/caveats/snapIds.d.cts.map +1 -0
- package/dist/restricted/caveats/snapIds.d.mts +22 -0
- package/dist/restricted/caveats/snapIds.d.mts.map +1 -0
- package/dist/restricted/caveats/snapIds.mjs +49 -9
- package/dist/restricted/caveats/snapIds.mjs.map +1 -1
- package/dist/restricted/dialog.cjs +222 -0
- package/dist/restricted/dialog.cjs.map +1 -0
- package/dist/restricted/dialog.d.cts +432 -0
- package/dist/restricted/dialog.d.cts.map +1 -0
- package/dist/restricted/dialog.d.mts +432 -0
- package/dist/restricted/dialog.d.mts.map +1 -0
- package/dist/restricted/dialog.mjs +216 -9
- package/dist/restricted/dialog.mjs.map +1 -1
- package/dist/restricted/getBip32Entropy.cjs +69 -0
- package/dist/restricted/getBip32Entropy.cjs.map +1 -0
- package/dist/{types/restricted/getBip32Entropy.d.ts → restricted/getBip32Entropy.d.cts} +6 -5
- package/dist/restricted/getBip32Entropy.d.cts.map +1 -0
- package/dist/restricted/getBip32Entropy.d.mts +45 -0
- package/dist/restricted/getBip32Entropy.d.mts.map +1 -0
- package/dist/restricted/getBip32Entropy.mjs +63 -8
- package/dist/restricted/getBip32Entropy.mjs.map +1 -1
- package/dist/restricted/getBip32PublicKey.cjs +78 -0
- package/dist/restricted/getBip32PublicKey.cjs.map +1 -0
- package/dist/{types/restricted/getBip32PublicKey.d.ts → restricted/getBip32PublicKey.d.cts} +7 -6
- package/dist/restricted/getBip32PublicKey.d.cts.map +1 -0
- package/dist/restricted/getBip32PublicKey.d.mts +54 -0
- package/dist/restricted/getBip32PublicKey.d.mts.map +1 -0
- package/dist/restricted/getBip32PublicKey.mjs +72 -10
- package/dist/restricted/getBip32PublicKey.mjs.map +1 -1
- package/dist/restricted/getBip44Entropy.cjs +71 -0
- package/dist/restricted/getBip44Entropy.cjs.map +1 -0
- package/dist/{types/restricted/getBip44Entropy.d.ts → restricted/getBip44Entropy.d.cts} +6 -5
- package/dist/restricted/getBip44Entropy.d.cts.map +1 -0
- package/dist/restricted/getBip44Entropy.d.mts +47 -0
- package/dist/restricted/getBip44Entropy.d.mts.map +1 -0
- package/dist/restricted/getBip44Entropy.mjs +65 -7
- package/dist/restricted/getBip44Entropy.mjs.map +1 -1
- package/dist/restricted/getEntropy.cjs +59 -0
- package/dist/restricted/getEntropy.cjs.map +1 -0
- package/dist/{types/restricted/getEntropy.d.ts → restricted/getEntropy.d.cts} +7 -6
- package/dist/restricted/getEntropy.d.cts.map +1 -0
- package/dist/restricted/getEntropy.d.mts +62 -0
- package/dist/restricted/getEntropy.d.mts.map +1 -0
- package/dist/restricted/getEntropy.mjs +54 -8
- package/dist/restricted/getEntropy.mjs.map +1 -1
- package/dist/restricted/getLocale.cjs +47 -0
- package/dist/restricted/getLocale.cjs.map +1 -0
- package/dist/{types/restricted/getLocale.d.ts → restricted/getLocale.d.cts} +6 -5
- package/dist/restricted/getLocale.d.cts.map +1 -0
- package/dist/restricted/getLocale.d.mts +50 -0
- package/dist/restricted/getLocale.d.mts.map +1 -0
- package/dist/restricted/getLocale.mjs +40 -9
- package/dist/restricted/getLocale.mjs.map +1 -1
- package/dist/restricted/getPreferences.cjs +46 -0
- package/dist/restricted/getPreferences.cjs.map +1 -0
- package/dist/{types/restricted/getPreferences.d.ts → restricted/getPreferences.d.cts} +6 -5
- package/dist/restricted/getPreferences.d.cts.map +1 -0
- package/dist/restricted/getPreferences.d.mts +49 -0
- package/dist/restricted/getPreferences.d.mts.map +1 -0
- package/dist/restricted/getPreferences.mjs +39 -9
- package/dist/restricted/getPreferences.mjs.map +1 -1
- package/dist/restricted/index.cjs +49 -0
- package/dist/restricted/index.cjs.map +1 -0
- package/dist/{types/restricted/index.d.ts → restricted/index.d.cts} +17 -16
- package/dist/restricted/index.d.cts.map +1 -0
- package/dist/restricted/index.d.mts +169 -0
- package/dist/restricted/index.d.mts.map +1 -0
- package/dist/restricted/index.mjs +27 -35
- package/dist/restricted/index.mjs.map +1 -1
- package/dist/restricted/invokeSnap.cjs +96 -0
- package/dist/restricted/invokeSnap.cjs.map +1 -0
- package/dist/{types/restricted/invokeSnap.d.ts → restricted/invokeSnap.d.cts} +8 -6
- package/dist/restricted/invokeSnap.d.cts.map +1 -0
- package/dist/restricted/invokeSnap.d.mts +65 -0
- package/dist/restricted/invokeSnap.d.mts.map +1 -0
- package/dist/restricted/invokeSnap.mjs +89 -11
- package/dist/restricted/invokeSnap.mjs.map +1 -1
- package/dist/restricted/manageAccounts.cjs +61 -0
- package/dist/restricted/manageAccounts.cjs.map +1 -0
- package/dist/{types/restricted/manageAccounts.d.ts → restricted/manageAccounts.d.cts} +6 -5
- package/dist/restricted/manageAccounts.d.cts.map +1 -0
- package/dist/restricted/manageAccounts.d.mts +65 -0
- package/dist/restricted/manageAccounts.d.mts.map +1 -0
- package/dist/restricted/manageAccounts.mjs +54 -11
- package/dist/restricted/manageAccounts.mjs.map +1 -1
- package/dist/restricted/manageState.cjs +175 -0
- package/dist/restricted/manageState.cjs.map +1 -0
- package/dist/{types/restricted/manageState.d.ts → restricted/manageState.d.cts} +6 -5
- package/dist/restricted/manageState.d.cts.map +1 -0
- package/dist/restricted/manageState.d.mts +111 -0
- package/dist/restricted/manageState.d.mts.map +1 -0
- package/dist/restricted/manageState.mjs +166 -18
- package/dist/restricted/manageState.mjs.map +1 -1
- package/dist/restricted/notify.cjs +108 -0
- package/dist/restricted/notify.cjs.map +1 -0
- package/dist/{types/restricted/notify.d.ts → restricted/notify.d.cts} +7 -6
- package/dist/restricted/notify.d.cts.map +1 -0
- package/dist/restricted/notify.d.mts +83 -0
- package/dist/restricted/notify.d.mts.map +1 -0
- package/dist/restricted/notify.mjs +100 -11
- package/dist/restricted/notify.mjs.map +1 -1
- package/dist/utils.cjs +140 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/{types/utils.d.ts → utils.d.cts} +6 -4
- package/dist/utils.d.cts.map +1 -0
- package/dist/utils.d.mts +98 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.mjs +132 -12
- package/dist/utils.mjs.map +1 -1
- package/package.json +20 -19
- package/dist/chunk-23XDKQW2.mjs +0 -73
- package/dist/chunk-23XDKQW2.mjs.map +0 -1
- package/dist/chunk-2CTOCP34.mjs +0 -45
- package/dist/chunk-2CTOCP34.mjs.map +0 -1
- package/dist/chunk-2L2ATCIK.mjs +0 -78
- package/dist/chunk-2L2ATCIK.mjs.map +0 -1
- package/dist/chunk-2RDYC42U.mjs +0 -67
- package/dist/chunk-2RDYC42U.mjs.map +0 -1
- package/dist/chunk-2SFH57UV.js +0 -21
- package/dist/chunk-33LLA2MH.mjs +0 -75
- package/dist/chunk-33LLA2MH.mjs.map +0 -1
- package/dist/chunk-33MTKZ4H.js +0 -90
- package/dist/chunk-33MTKZ4H.js.map +0 -1
- package/dist/chunk-3UAWEHMF.js +0 -18
- package/dist/chunk-3UAWEHMF.js.map +0 -1
- package/dist/chunk-3WCLDJAS.mjs +0 -74
- package/dist/chunk-3WCLDJAS.mjs.map +0 -1
- package/dist/chunk-3WKIKYUH.js +0 -78
- package/dist/chunk-3WKIKYUH.js.map +0 -1
- package/dist/chunk-4D2B2UQ6.mjs +0 -23
- package/dist/chunk-4D2B2UQ6.mjs.map +0 -1
- package/dist/chunk-4LSOS7SM.js +0 -23
- package/dist/chunk-4LSOS7SM.js.map +0 -1
- package/dist/chunk-4PWFZPJC.js +0 -79
- package/dist/chunk-4PWFZPJC.js.map +0 -1
- package/dist/chunk-57BL7O2P.mjs +0 -69
- package/dist/chunk-57BL7O2P.mjs.map +0 -1
- package/dist/chunk-62URQ5VS.mjs +0 -18
- package/dist/chunk-62URQ5VS.mjs.map +0 -1
- package/dist/chunk-6XKVFSC2.js +0 -32
- package/dist/chunk-6XKVFSC2.js.map +0 -1
- package/dist/chunk-756OQVOC.js +0 -67
- package/dist/chunk-756OQVOC.js.map +0 -1
- package/dist/chunk-7CV677MM.js +0 -42
- package/dist/chunk-7CV677MM.js.map +0 -1
- package/dist/chunk-7HVABE5R.js +0 -74
- package/dist/chunk-7HVABE5R.js.map +0 -1
- package/dist/chunk-7P6TF6CE.mjs +0 -55
- package/dist/chunk-7P6TF6CE.mjs.map +0 -1
- package/dist/chunk-7TVJV425.js +0 -1
- package/dist/chunk-7TVJV425.js.map +0 -1
- package/dist/chunk-A6H6I4VH.js +0 -61
- package/dist/chunk-A6H6I4VH.js.map +0 -1
- package/dist/chunk-AMMJ744B.mjs +0 -32
- package/dist/chunk-AMMJ744B.mjs.map +0 -1
- package/dist/chunk-ATBKAX2S.js +0 -39
- package/dist/chunk-ATBKAX2S.js.map +0 -1
- package/dist/chunk-B3NIHNXW.js +0 -23
- package/dist/chunk-B3NIHNXW.js.map +0 -1
- package/dist/chunk-CD4OUHO5.mjs +0 -20
- package/dist/chunk-CD4OUHO5.mjs.map +0 -1
- package/dist/chunk-CDAVFOUS.js +0 -53
- package/dist/chunk-CDAVFOUS.js.map +0 -1
- package/dist/chunk-CH5O2YCX.mjs +0 -18
- package/dist/chunk-CH5O2YCX.mjs.map +0 -1
- package/dist/chunk-DLVPMPRZ.js +0 -45
- package/dist/chunk-DLVPMPRZ.js.map +0 -1
- package/dist/chunk-DTZF746A.mjs +0 -21
- package/dist/chunk-DTZF746A.mjs.map +0 -1
- package/dist/chunk-E27BGHCR.js +0 -78
- package/dist/chunk-E27BGHCR.js.map +0 -1
- package/dist/chunk-ELCOEVKA.js +0 -196
- package/dist/chunk-ELCOEVKA.js.map +0 -1
- package/dist/chunk-EOXTZF5U.js +0 -47
- package/dist/chunk-EOXTZF5U.js.map +0 -1
- package/dist/chunk-FCVWU5XH.js +0 -73
- package/dist/chunk-FFHVA6PP.js +0 -82
- package/dist/chunk-FFHVA6PP.js.map +0 -1
- package/dist/chunk-FJ7COFRJ.mjs +0 -54
- package/dist/chunk-FJ7COFRJ.mjs.map +0 -1
- package/dist/chunk-FM4LNQR7.mjs +0 -34
- package/dist/chunk-FM4LNQR7.mjs.map +0 -1
- package/dist/chunk-GE5XFDUE.js +0 -21
- package/dist/chunk-GE5XFDUE.js.map +0 -1
- package/dist/chunk-GEJDXRTL.mjs +0 -59
- package/dist/chunk-GEJDXRTL.mjs.map +0 -1
- package/dist/chunk-GPV4ETUH.mjs +0 -47
- package/dist/chunk-GPV4ETUH.mjs.map +0 -1
- package/dist/chunk-H6X3CWWQ.js +0 -54
- package/dist/chunk-H6X3CWWQ.js.map +0 -1
- package/dist/chunk-HOECEYMT.mjs +0 -70
- package/dist/chunk-HOECEYMT.mjs.map +0 -1
- package/dist/chunk-I2P65KBQ.mjs +0 -67
- package/dist/chunk-I2P65KBQ.mjs.map +0 -1
- package/dist/chunk-I3G6S6MJ.js +0 -68
- package/dist/chunk-I3G6S6MJ.js.map +0 -1
- package/dist/chunk-IE6EHYEG.js +0 -57
- package/dist/chunk-IE6EHYEG.js.map +0 -1
- package/dist/chunk-JWDQUKKU.mjs +0 -80
- package/dist/chunk-JWDQUKKU.mjs.map +0 -1
- package/dist/chunk-K3UL5RVN.mjs +0 -43
- package/dist/chunk-K3UL5RVN.mjs.map +0 -1
- package/dist/chunk-KRSIAVUJ.js +0 -115
- package/dist/chunk-KRSIAVUJ.js.map +0 -1
- package/dist/chunk-KSTF5JYB.mjs +0 -23
- package/dist/chunk-KSTF5JYB.mjs.map +0 -1
- package/dist/chunk-LP3RWEDJ.js +0 -43
- package/dist/chunk-LP3RWEDJ.js.map +0 -1
- package/dist/chunk-LR7UR4YU.mjs +0 -52
- package/dist/chunk-LR7UR4YU.mjs.map +0 -1
- package/dist/chunk-LXJBBRQ4.mjs +0 -57
- package/dist/chunk-LXJBBRQ4.mjs.map +0 -1
- package/dist/chunk-M2JQCKR7.js +0 -143
- package/dist/chunk-M2JQCKR7.js.map +0 -1
- package/dist/chunk-MC2Z4NF6.mjs +0 -45
- package/dist/chunk-MC2Z4NF6.mjs.map +0 -1
- package/dist/chunk-MXPVC2XP.mjs +0 -105
- package/dist/chunk-MXPVC2XP.mjs.map +0 -1
- package/dist/chunk-NU4NAAFG.js +0 -1
- package/dist/chunk-NU4NAAFG.js.map +0 -1
- package/dist/chunk-NWT2EXFD.js +0 -18
- package/dist/chunk-NWT2EXFD.js.map +0 -1
- package/dist/chunk-O66NZFSD.mjs +0 -23
- package/dist/chunk-O66NZFSD.mjs.map +0 -1
- package/dist/chunk-ODN35VOK.mjs +0 -119
- package/dist/chunk-ODN35VOK.mjs.map +0 -1
- package/dist/chunk-OI33OL7K.js +0 -47
- package/dist/chunk-OI33OL7K.js.map +0 -1
- package/dist/chunk-PIAWDTWO.mjs +0 -68
- package/dist/chunk-PIAWDTWO.mjs.map +0 -1
- package/dist/chunk-PIRQCNBJ.mjs +0 -78
- package/dist/chunk-PIRQCNBJ.mjs.map +0 -1
- package/dist/chunk-PK2RPAXI.js +0 -59
- package/dist/chunk-PK2RPAXI.js.map +0 -1
- package/dist/chunk-PS6OEQXL.js +0 -105
- package/dist/chunk-PS6OEQXL.js.map +0 -1
- package/dist/chunk-PXU6PORA.js +0 -119
- package/dist/chunk-PXU6PORA.js.map +0 -1
- package/dist/chunk-Q27K2I6Z.js +0 -23
- package/dist/chunk-Q27K2I6Z.js.map +0 -1
- package/dist/chunk-QDZAWH6F.js +0 -80
- package/dist/chunk-QDZAWH6F.js.map +0 -1
- package/dist/chunk-QMULJEYN.js +0 -35
- package/dist/chunk-QMULJEYN.js.map +0 -1
- package/dist/chunk-RHPSYX7X.js +0 -34
- package/dist/chunk-RHPSYX7X.js.map +0 -1
- package/dist/chunk-T56DKVFS.js +0 -70
- package/dist/chunk-T56DKVFS.js.map +0 -1
- package/dist/chunk-TAXLFFV4.mjs +0 -115
- package/dist/chunk-TAXLFFV4.mjs.map +0 -1
- package/dist/chunk-TE4W25CA.mjs +0 -143
- package/dist/chunk-TE4W25CA.mjs.map +0 -1
- package/dist/chunk-TG63GBK3.mjs +0 -1
- package/dist/chunk-TG63GBK3.mjs.map +0 -1
- package/dist/chunk-TNENASGX.mjs +0 -1
- package/dist/chunk-TNENASGX.mjs.map +0 -1
- package/dist/chunk-TQCUJQHY.mjs +0 -196
- package/dist/chunk-TQCUJQHY.mjs.map +0 -1
- package/dist/chunk-TT4DP2YW.mjs +0 -35
- package/dist/chunk-TT4DP2YW.mjs.map +0 -1
- package/dist/chunk-TVC3E5LI.mjs +0 -42
- package/dist/chunk-TVC3E5LI.mjs.map +0 -1
- package/dist/chunk-U6TJQLNV.js +0 -45
- package/dist/chunk-U6TJQLNV.js.map +0 -1
- package/dist/chunk-UB3733UY.mjs +0 -23
- package/dist/chunk-UB3733UY.mjs.map +0 -1
- package/dist/chunk-UCWANXBZ.js +0 -45
- package/dist/chunk-UCWANXBZ.js.map +0 -1
- package/dist/chunk-UF3UJTY3.js +0 -55
- package/dist/chunk-UF3UJTY3.js.map +0 -1
- package/dist/chunk-UY4DUF53.mjs +0 -45
- package/dist/chunk-UY4DUF53.mjs.map +0 -1
- package/dist/chunk-V3KRSCUK.mjs +0 -53
- package/dist/chunk-V3KRSCUK.mjs.map +0 -1
- package/dist/chunk-VUA6ICJO.js +0 -52
- package/dist/chunk-VUA6ICJO.js.map +0 -1
- package/dist/chunk-VVBTXSID.mjs +0 -82
- package/dist/chunk-VVBTXSID.mjs.map +0 -1
- package/dist/chunk-VYII7C3J.mjs +0 -79
- package/dist/chunk-VYII7C3J.mjs.map +0 -1
- package/dist/chunk-W33UWNA2.mjs +0 -90
- package/dist/chunk-W33UWNA2.mjs.map +0 -1
- package/dist/chunk-XGMYBPQR.mjs +0 -47
- package/dist/chunk-XGMYBPQR.mjs.map +0 -1
- package/dist/chunk-YGKFOOWI.js +0 -20
- package/dist/chunk-YGKFOOWI.js.map +0 -1
- package/dist/chunk-YOHE52XB.js +0 -23
- package/dist/chunk-YOHE52XB.js.map +0 -1
- package/dist/chunk-YT2Q3W5C.js +0 -69
- package/dist/chunk-YT2Q3W5C.js.map +0 -1
- package/dist/chunk-YZMFLB67.js +0 -75
- package/dist/chunk-YZMFLB67.js.map +0 -1
- package/dist/chunk-Z6YFGWHN.mjs +0 -61
- package/dist/chunk-Z6YFGWHN.mjs.map +0 -1
- package/dist/chunk-ZH3FC55E.mjs +0 -21
- package/dist/chunk-ZH3FC55E.mjs.map +0 -1
- package/dist/chunk-ZKISN6YP.js +0 -67
- package/dist/chunk-ZKISN6YP.js.map +0 -1
- package/dist/chunk-ZXDCQWMJ.mjs +0 -39
- package/dist/chunk-ZXDCQWMJ.mjs.map +0 -1
- package/dist/endowments/caveats/generic.js +0 -7
- package/dist/endowments/caveats/generic.js.map +0 -1
- package/dist/endowments/caveats/index.js +0 -18
- package/dist/endowments/caveats/index.js.map +0 -1
- package/dist/endowments/caveats/requestTime.js +0 -13
- package/dist/endowments/caveats/requestTime.js.map +0 -1
- package/dist/endowments/cronjob.js +0 -16
- package/dist/endowments/cronjob.js.map +0 -1
- package/dist/endowments/enum.js +0 -7
- package/dist/endowments/enum.js.map +0 -1
- package/dist/endowments/ethereum-provider.js +0 -8
- package/dist/endowments/ethereum-provider.js.map +0 -1
- package/dist/endowments/home-page.js +0 -8
- package/dist/endowments/home-page.js.map +0 -1
- package/dist/endowments/index.js +0 -54
- package/dist/endowments/index.js.map +0 -1
- package/dist/endowments/keyring.js +0 -17
- package/dist/endowments/keyring.js.map +0 -1
- package/dist/endowments/lifecycle-hooks.js +0 -8
- package/dist/endowments/lifecycle-hooks.js.map +0 -1
- package/dist/endowments/name-lookup.js +0 -19
- package/dist/endowments/name-lookup.js.map +0 -1
- package/dist/endowments/network-access.js +0 -8
- package/dist/endowments/network-access.js.map +0 -1
- package/dist/endowments/rpc.js +0 -17
- package/dist/endowments/rpc.js.map +0 -1
- package/dist/endowments/signature-insight.js +0 -17
- package/dist/endowments/signature-insight.js.map +0 -1
- package/dist/endowments/transaction-insight.js +0 -17
- package/dist/endowments/transaction-insight.js.map +0 -1
- package/dist/endowments/web-assembly.js +0 -8
- package/dist/endowments/web-assembly.js.map +0 -1
- package/dist/index.js +0 -123
- package/dist/index.js.map +0 -1
- package/dist/permissions.js +0 -44
- package/dist/permissions.js.map +0 -1
- package/dist/permitted/createInterface.js +0 -7
- package/dist/permitted/createInterface.js.map +0 -1
- package/dist/permitted/getAllSnaps.js +0 -7
- package/dist/permitted/getAllSnaps.js.map +0 -1
- package/dist/permitted/getClientStatus.js +0 -7
- package/dist/permitted/getClientStatus.js.map +0 -1
- package/dist/permitted/getFile.js +0 -9
- package/dist/permitted/getFile.js.map +0 -1
- package/dist/permitted/getInterfaceState.js +0 -7
- package/dist/permitted/getInterfaceState.js.map +0 -1
- package/dist/permitted/getSnaps.js +0 -7
- package/dist/permitted/getSnaps.js.map +0 -1
- package/dist/permitted/handlers.js +0 -21
- package/dist/permitted/handlers.js.map +0 -1
- package/dist/permitted/index.js +0 -27
- package/dist/permitted/index.js.map +0 -1
- package/dist/permitted/invokeKeyring.js +0 -8
- package/dist/permitted/invokeKeyring.js.map +0 -1
- package/dist/permitted/invokeSnapSugar.js +0 -11
- package/dist/permitted/invokeSnapSugar.js.map +0 -1
- package/dist/permitted/middleware.js +0 -21
- package/dist/permitted/middleware.js.map +0 -1
- package/dist/permitted/requestSnaps.js +0 -12
- package/dist/permitted/requestSnaps.js.map +0 -1
- package/dist/permitted/resolveInterface.js +0 -7
- package/dist/permitted/resolveInterface.js.map +0 -1
- package/dist/permitted/updateInterface.js +0 -7
- package/dist/permitted/updateInterface.js.map +0 -1
- package/dist/restricted/caveats/index.js +0 -17
- package/dist/restricted/caveats/index.js.map +0 -1
- package/dist/restricted/caveats/permittedCoinTypes.js +0 -13
- package/dist/restricted/caveats/permittedCoinTypes.js.map +0 -1
- package/dist/restricted/caveats/permittedDerivationPaths.js +0 -13
- package/dist/restricted/caveats/permittedDerivationPaths.js.map +0 -1
- package/dist/restricted/caveats/snapIds.js +0 -11
- package/dist/restricted/caveats/snapIds.js.map +0 -1
- package/dist/restricted/dialog.js +0 -11
- package/dist/restricted/dialog.js.map +0 -1
- package/dist/restricted/getBip32Entropy.js +0 -10
- package/dist/restricted/getBip32Entropy.js.map +0 -1
- package/dist/restricted/getBip32PublicKey.js +0 -12
- package/dist/restricted/getBip32PublicKey.js.map +0 -1
- package/dist/restricted/getBip44Entropy.js +0 -9
- package/dist/restricted/getBip44Entropy.js.map +0 -1
- package/dist/restricted/getEntropy.js +0 -10
- package/dist/restricted/getEntropy.js.map +0 -1
- package/dist/restricted/getLocale.js +0 -11
- package/dist/restricted/getLocale.js.map +0 -1
- package/dist/restricted/getPreferences.js +0 -11
- package/dist/restricted/getPreferences.js.map +0 -1
- package/dist/restricted/index.js +0 -37
- package/dist/restricted/index.js.map +0 -1
- package/dist/restricted/invokeSnap.js +0 -13
- package/dist/restricted/invokeSnap.js.map +0 -1
- package/dist/restricted/manageAccounts.js +0 -13
- package/dist/restricted/manageAccounts.js.map +0 -1
- package/dist/restricted/manageState.js +0 -20
- package/dist/restricted/manageState.js.map +0 -1
- package/dist/restricted/notify.js +0 -13
- package/dist/restricted/notify.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/types/__fixtures__/index.d.ts +0 -1
- package/dist/types/endowments/caveats/index.d.ts +0 -2
- package/dist/types/index.d.ts +0 -7
- package/dist/types/permitted/index.d.ts +0 -11
- package/dist/types/restricted/dialog.d.ts +0 -1463
- package/dist/utils.js +0 -13
- package/dist/utils.js.map +0 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermittedCoinTypesCaveatSpecification = exports.validateBIP44Caveat = exports.validateBIP44Params = exports.permittedCoinTypesCaveatMapper = void 0;
|
|
4
|
+
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
|
+
const snaps_utils_1 = require("@metamask/snaps-utils");
|
|
6
|
+
const utils_1 = require("@metamask/utils");
|
|
7
|
+
/**
|
|
8
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
9
|
+
* Note that this function does not do any validation, that's handled by the
|
|
10
|
+
* PermissionsController when the permission is requested.
|
|
11
|
+
*
|
|
12
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
13
|
+
* @returns The caveat specification.
|
|
14
|
+
*/
|
|
15
|
+
function permittedCoinTypesCaveatMapper(value) {
|
|
16
|
+
return {
|
|
17
|
+
caveats: [
|
|
18
|
+
{
|
|
19
|
+
type: snaps_utils_1.SnapCaveatType.PermittedCoinTypes,
|
|
20
|
+
value,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.permittedCoinTypesCaveatMapper = permittedCoinTypesCaveatMapper;
|
|
26
|
+
/**
|
|
27
|
+
* Validate the params for `snap_getBip44Entropy`.
|
|
28
|
+
*
|
|
29
|
+
* @param value - The params to validate.
|
|
30
|
+
* @throws If the params are invalid.
|
|
31
|
+
*/
|
|
32
|
+
function validateBIP44Params(value) {
|
|
33
|
+
if (!(0, utils_1.isPlainObject)(value) || !(0, utils_1.hasProperty)(value, 'coinType')) {
|
|
34
|
+
throw rpc_errors_1.rpcErrors.invalidParams({
|
|
35
|
+
message: 'Expected a plain object containing a coin type.',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (typeof value.coinType !== 'number' ||
|
|
39
|
+
!Number.isInteger(value.coinType) ||
|
|
40
|
+
value.coinType < 0 ||
|
|
41
|
+
value.coinType > 0x7fffffff) {
|
|
42
|
+
throw rpc_errors_1.rpcErrors.invalidParams({
|
|
43
|
+
message: 'Invalid "coinType" parameter. Coin type must be a non-negative integer.',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (snaps_utils_1.FORBIDDEN_COIN_TYPES.includes(value.coinType)) {
|
|
47
|
+
throw rpc_errors_1.rpcErrors.invalidParams({
|
|
48
|
+
message: `Coin type ${value.coinType} is forbidden.`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.validateBIP44Params = validateBIP44Params;
|
|
53
|
+
/**
|
|
54
|
+
* Validate the coin types values associated with a caveat. This checks if the
|
|
55
|
+
* values are non-negative integers (>= 0).
|
|
56
|
+
*
|
|
57
|
+
* @param caveat - The caveat to validate.
|
|
58
|
+
* @throws If the caveat is invalid.
|
|
59
|
+
*/
|
|
60
|
+
function validateBIP44Caveat(caveat) {
|
|
61
|
+
if (!(0, utils_1.hasProperty)(caveat, 'value') ||
|
|
62
|
+
!Array.isArray(caveat.value) ||
|
|
63
|
+
caveat.value.length === 0) {
|
|
64
|
+
throw rpc_errors_1.rpcErrors.invalidParams({
|
|
65
|
+
message: 'Expected non-empty array of coin types.',
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
caveat.value.forEach(validateBIP44Params);
|
|
69
|
+
}
|
|
70
|
+
exports.validateBIP44Caveat = validateBIP44Caveat;
|
|
71
|
+
exports.PermittedCoinTypesCaveatSpecification = {
|
|
72
|
+
[snaps_utils_1.SnapCaveatType.PermittedCoinTypes]: Object.freeze({
|
|
73
|
+
type: snaps_utils_1.SnapCaveatType.PermittedCoinTypes,
|
|
74
|
+
decorator: (method, caveat) => {
|
|
75
|
+
return async (args) => {
|
|
76
|
+
const { params } = args;
|
|
77
|
+
validateBIP44Params(params);
|
|
78
|
+
const coinType = caveat.value.find((caveatValue) => caveatValue.coinType === params.coinType);
|
|
79
|
+
if (!coinType) {
|
|
80
|
+
throw rpc_errors_1.providerErrors.unauthorized({
|
|
81
|
+
message: 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return await method(args);
|
|
85
|
+
};
|
|
86
|
+
},
|
|
87
|
+
validator: (caveat) => validateBIP44Caveat(caveat),
|
|
88
|
+
}),
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=permittedCoinTypes.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permittedCoinTypes.cjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":";;;AAKA,qDAAiE;AAEjE,uDAA6E;AAE7E,2CAA6D;AAE7D;;;;;;;GAOG;AACH,SAAgB,8BAA8B,CAC5C,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,kBAAkB;gBACvC,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAXD,wEAWC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,KAAc;IAEd,IAAI,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,IACE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,CAAC;QAClB,KAAK,CAAC,QAAQ,GAAG,UAAU,EAC3B,CAAC;QACD,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EACL,yEAAyE;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,kCAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,aAAa,KAAK,CAAC,QAAQ,gBAAgB;SACrD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AA1BD,kDA0BC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,MAA2B;IAC7D,IACE,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACzB,CAAC;QACD,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,yCAAyC;SACnD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5C,CAAC;AAZD,kDAYC;AAEY,QAAA,qCAAqC,GAG9C;IACF,CAAC,4BAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,IAAI,EAAE,4BAAc,CAAC,kBAAkB;QACvC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAE5B,MAAM,QAAQ,GAAI,MAAM,CAAC,KAAiC,CAAC,IAAI,CAC7D,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAC1D,CAAC;gBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,2BAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,sGAAsG;qBACzG,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;KACnD,CAAC;CACH,CAAC","sourcesContent":["import type {\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n Caveat,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { GetBip44EntropyParams } from '@metamask/snaps-sdk';\nimport { FORBIDDEN_COIN_TYPES, SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\nimport { hasProperty, isPlainObject } from '@metamask/utils';\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 permittedCoinTypesCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedCoinTypes,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate the params for `snap_getBip44Entropy`.\n *\n * @param value - The params to validate.\n * @throws If the params are invalid.\n */\nexport function validateBIP44Params(\n value: unknown,\n): asserts value is GetBip44EntropyParams {\n if (!isPlainObject(value) || !hasProperty(value, 'coinType')) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object containing a coin type.',\n });\n }\n\n if (\n typeof value.coinType !== 'number' ||\n !Number.isInteger(value.coinType) ||\n value.coinType < 0 ||\n value.coinType > 0x7fffffff\n ) {\n throw rpcErrors.invalidParams({\n message:\n 'Invalid \"coinType\" parameter. Coin type must be a non-negative integer.',\n });\n }\n\n if (FORBIDDEN_COIN_TYPES.includes(value.coinType)) {\n throw rpcErrors.invalidParams({\n message: `Coin type ${value.coinType} is forbidden.`,\n });\n }\n}\n\n/**\n * Validate the coin types values associated with a caveat. This checks if the\n * values are non-negative integers (>= 0).\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat is invalid.\n */\nexport function validateBIP44Caveat(caveat: Caveat<string, any>) {\n if (\n !hasProperty(caveat, 'value') ||\n !Array.isArray(caveat.value) ||\n caveat.value.length === 0\n ) {\n throw rpcErrors.invalidParams({\n message: 'Expected non-empty array of coin types.',\n });\n }\n\n caveat.value.forEach(validateBIP44Params);\n}\n\nexport const PermittedCoinTypesCaveatSpecification: Record<\n SnapCaveatType.PermittedCoinTypes,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedCoinTypes]: Object.freeze({\n type: SnapCaveatType.PermittedCoinTypes,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP44Params(params);\n\n const coinType = (caveat.value as GetBip44EntropyParams[]).find(\n (caveatValue) => caveatValue.coinType === params.coinType,\n );\n\n if (!coinType) {\n throw providerErrors.unauthorized({\n message:\n 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP44Caveat(caveat),\n }),\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint, Caveat } from
|
|
2
|
-
import type { GetBip44EntropyParams } from
|
|
3
|
-
import { SnapCaveatType } from
|
|
4
|
-
import type { Json } from
|
|
1
|
+
import type { PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint, Caveat } from "@metamask/permission-controller";
|
|
2
|
+
import type { GetBip44EntropyParams } from "@metamask/snaps-sdk";
|
|
3
|
+
import { SnapCaveatType } from "@metamask/snaps-utils";
|
|
4
|
+
import type { Json } from "@metamask/utils";
|
|
5
5
|
/**
|
|
6
6
|
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
7
7
|
* Note that this function does not do any validation, that's handled by the
|
|
@@ -27,3 +27,4 @@ export declare function validateBIP44Params(value: unknown): asserts value is Ge
|
|
|
27
27
|
*/
|
|
28
28
|
export declare function validateBIP44Caveat(caveat: Caveat<string, any>): void;
|
|
29
29
|
export declare const PermittedCoinTypesCaveatSpecification: Record<SnapCaveatType.PermittedCoinTypes, RestrictedMethodCaveatSpecificationConstraint>;
|
|
30
|
+
//# sourceMappingURL=permittedCoinTypes.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permittedCoinTypes.d.cts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,6CAA6C,EAC7C,MAAM,EACP,wCAAwC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,4BAA4B;AACjE,OAAO,EAAwB,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAwBxC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAY9D;AAED,eAAO,MAAM,qCAAqC,EAAE,MAAM,CACxD,cAAc,CAAC,kBAAkB,EACjC,6CAA6C,CAyB9C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint, Caveat } from "@metamask/permission-controller";
|
|
2
|
+
import type { GetBip44EntropyParams } from "@metamask/snaps-sdk";
|
|
3
|
+
import { SnapCaveatType } from "@metamask/snaps-utils";
|
|
4
|
+
import type { Json } from "@metamask/utils";
|
|
5
|
+
/**
|
|
6
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
7
|
+
* Note that this function does not do any validation, that's handled by the
|
|
8
|
+
* PermissionsController when the permission is requested.
|
|
9
|
+
*
|
|
10
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
11
|
+
* @returns The caveat specification.
|
|
12
|
+
*/
|
|
13
|
+
export declare function permittedCoinTypesCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
|
|
14
|
+
/**
|
|
15
|
+
* Validate the params for `snap_getBip44Entropy`.
|
|
16
|
+
*
|
|
17
|
+
* @param value - The params to validate.
|
|
18
|
+
* @throws If the params are invalid.
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateBIP44Params(value: unknown): asserts value is GetBip44EntropyParams;
|
|
21
|
+
/**
|
|
22
|
+
* Validate the coin types values associated with a caveat. This checks if the
|
|
23
|
+
* values are non-negative integers (>= 0).
|
|
24
|
+
*
|
|
25
|
+
* @param caveat - The caveat to validate.
|
|
26
|
+
* @throws If the caveat is invalid.
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateBIP44Caveat(caveat: Caveat<string, any>): void;
|
|
29
|
+
export declare const PermittedCoinTypesCaveatSpecification: Record<SnapCaveatType.PermittedCoinTypes, RestrictedMethodCaveatSpecificationConstraint>;
|
|
30
|
+
//# sourceMappingURL=permittedCoinTypes.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permittedCoinTypes.d.mts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,6CAA6C,EAC7C,MAAM,EACP,wCAAwC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,4BAA4B;AACjE,OAAO,EAAwB,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAwBxC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAY9D;AAED,eAAO,MAAM,qCAAqC,EAAE,MAAM,CACxD,cAAc,CAAC,kBAAkB,EACjC,6CAA6C,CAyB9C,CAAC"}
|
|
@@ -1,13 +1,84 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
|
|
2
|
+
import { FORBIDDEN_COIN_TYPES, SnapCaveatType } from "@metamask/snaps-utils";
|
|
3
|
+
import { hasProperty, isPlainObject } from "@metamask/utils";
|
|
4
|
+
/**
|
|
5
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
6
|
+
* Note that this function does not do any validation, that's handled by the
|
|
7
|
+
* PermissionsController when the permission is requested.
|
|
8
|
+
*
|
|
9
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
10
|
+
* @returns The caveat specification.
|
|
11
|
+
*/
|
|
12
|
+
export function permittedCoinTypesCaveatMapper(value) {
|
|
13
|
+
return {
|
|
14
|
+
caveats: [
|
|
15
|
+
{
|
|
16
|
+
type: SnapCaveatType.PermittedCoinTypes,
|
|
17
|
+
value,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validate the params for `snap_getBip44Entropy`.
|
|
24
|
+
*
|
|
25
|
+
* @param value - The params to validate.
|
|
26
|
+
* @throws If the params are invalid.
|
|
27
|
+
*/
|
|
28
|
+
export function validateBIP44Params(value) {
|
|
29
|
+
if (!isPlainObject(value) || !hasProperty(value, 'coinType')) {
|
|
30
|
+
throw rpcErrors.invalidParams({
|
|
31
|
+
message: 'Expected a plain object containing a coin type.',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (typeof value.coinType !== 'number' ||
|
|
35
|
+
!Number.isInteger(value.coinType) ||
|
|
36
|
+
value.coinType < 0 ||
|
|
37
|
+
value.coinType > 0x7fffffff) {
|
|
38
|
+
throw rpcErrors.invalidParams({
|
|
39
|
+
message: 'Invalid "coinType" parameter. Coin type must be a non-negative integer.',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (FORBIDDEN_COIN_TYPES.includes(value.coinType)) {
|
|
43
|
+
throw rpcErrors.invalidParams({
|
|
44
|
+
message: `Coin type ${value.coinType} is forbidden.`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Validate the coin types values associated with a caveat. This checks if the
|
|
50
|
+
* values are non-negative integers (>= 0).
|
|
51
|
+
*
|
|
52
|
+
* @param caveat - The caveat to validate.
|
|
53
|
+
* @throws If the caveat is invalid.
|
|
54
|
+
*/
|
|
55
|
+
export function validateBIP44Caveat(caveat) {
|
|
56
|
+
if (!hasProperty(caveat, 'value') ||
|
|
57
|
+
!Array.isArray(caveat.value) ||
|
|
58
|
+
caveat.value.length === 0) {
|
|
59
|
+
throw rpcErrors.invalidParams({
|
|
60
|
+
message: 'Expected non-empty array of coin types.',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
caveat.value.forEach(validateBIP44Params);
|
|
64
|
+
}
|
|
65
|
+
export const PermittedCoinTypesCaveatSpecification = {
|
|
66
|
+
[SnapCaveatType.PermittedCoinTypes]: Object.freeze({
|
|
67
|
+
type: SnapCaveatType.PermittedCoinTypes,
|
|
68
|
+
decorator: (method, caveat) => {
|
|
69
|
+
return async (args) => {
|
|
70
|
+
const { params } = args;
|
|
71
|
+
validateBIP44Params(params);
|
|
72
|
+
const coinType = caveat.value.find((caveatValue) => caveatValue.coinType === params.coinType);
|
|
73
|
+
if (!coinType) {
|
|
74
|
+
throw providerErrors.unauthorized({
|
|
75
|
+
message: 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return await method(args);
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
validator: (caveat) => validateBIP44Caveat(caveat),
|
|
82
|
+
}),
|
|
12
83
|
};
|
|
13
84
|
//# sourceMappingURL=permittedCoinTypes.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"
|
|
1
|
+
{"version":3,"file":"permittedCoinTypes.mjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAEjE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,8BAA8B;AAE7E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,wBAAwB;AAE7D;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc,CAAC,kBAAkB;gBACvC,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,IACE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,CAAC;QAClB,KAAK,CAAC,QAAQ,GAAG,UAAU,EAC3B,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EACL,yEAAyE;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,aAAa,KAAK,CAAC,QAAQ,gBAAgB;SACrD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC7D,IACE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACzB,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,yCAAyC;SACnD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,qCAAqC,GAG9C;IACF,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,IAAI,EAAE,cAAc,CAAC,kBAAkB;QACvC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAE5B,MAAM,QAAQ,GAAI,MAAM,CAAC,KAAiC,CAAC,IAAI,CAC7D,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAC1D,CAAC;gBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,cAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,sGAAsG;qBACzG,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;KACnD,CAAC;CACH,CAAC","sourcesContent":["import type {\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n Caveat,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { GetBip44EntropyParams } from '@metamask/snaps-sdk';\nimport { FORBIDDEN_COIN_TYPES, SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\nimport { hasProperty, isPlainObject } from '@metamask/utils';\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 permittedCoinTypesCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedCoinTypes,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate the params for `snap_getBip44Entropy`.\n *\n * @param value - The params to validate.\n * @throws If the params are invalid.\n */\nexport function validateBIP44Params(\n value: unknown,\n): asserts value is GetBip44EntropyParams {\n if (!isPlainObject(value) || !hasProperty(value, 'coinType')) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object containing a coin type.',\n });\n }\n\n if (\n typeof value.coinType !== 'number' ||\n !Number.isInteger(value.coinType) ||\n value.coinType < 0 ||\n value.coinType > 0x7fffffff\n ) {\n throw rpcErrors.invalidParams({\n message:\n 'Invalid \"coinType\" parameter. Coin type must be a non-negative integer.',\n });\n }\n\n if (FORBIDDEN_COIN_TYPES.includes(value.coinType)) {\n throw rpcErrors.invalidParams({\n message: `Coin type ${value.coinType} is forbidden.`,\n });\n }\n}\n\n/**\n * Validate the coin types values associated with a caveat. This checks if the\n * values are non-negative integers (>= 0).\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat is invalid.\n */\nexport function validateBIP44Caveat(caveat: Caveat<string, any>) {\n if (\n !hasProperty(caveat, 'value') ||\n !Array.isArray(caveat.value) ||\n caveat.value.length === 0\n ) {\n throw rpcErrors.invalidParams({\n message: 'Expected non-empty array of coin types.',\n });\n }\n\n caveat.value.forEach(validateBIP44Params);\n}\n\nexport const PermittedCoinTypesCaveatSpecification: Record<\n SnapCaveatType.PermittedCoinTypes,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedCoinTypes]: Object.freeze({\n type: SnapCaveatType.PermittedCoinTypes,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP44Params(params);\n\n const coinType = (caveat.value as GetBip44EntropyParams[]).find(\n (caveatValue) => caveatValue.coinType === params.coinType,\n );\n\n if (!coinType) {\n throw providerErrors.unauthorized({\n message:\n 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP44Caveat(caveat),\n }),\n};\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermittedDerivationPathsCaveatSpecification = exports.validateBIP32CaveatPaths = exports.validateBIP32Path = exports.permittedDerivationPathsCaveatMapper = void 0;
|
|
4
|
+
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
|
+
const snaps_utils_1 = require("@metamask/snaps-utils");
|
|
6
|
+
const superstruct_1 = require("@metamask/superstruct");
|
|
7
|
+
const utils_1 = require("@metamask/utils");
|
|
8
|
+
/**
|
|
9
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
10
|
+
* Note that this function does not do any validation, that's handled by the
|
|
11
|
+
* PermissionsController when the permission is requested.
|
|
12
|
+
*
|
|
13
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
14
|
+
* @returns The caveat specification.
|
|
15
|
+
*/
|
|
16
|
+
function permittedDerivationPathsCaveatMapper(value) {
|
|
17
|
+
return {
|
|
18
|
+
caveats: [
|
|
19
|
+
{
|
|
20
|
+
type: snaps_utils_1.SnapCaveatType.PermittedDerivationPaths,
|
|
21
|
+
value,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.permittedDerivationPathsCaveatMapper = permittedDerivationPathsCaveatMapper;
|
|
27
|
+
/**
|
|
28
|
+
* Validate a caveat path object. The object must consist of a `path` array and
|
|
29
|
+
* a `curve` string. Paths must start with `m`, and must contain at
|
|
30
|
+
* least two indices. If `ed25519` is used, this checks if all the path indices
|
|
31
|
+
* are hardened.
|
|
32
|
+
*
|
|
33
|
+
* @param value - The value to validate.
|
|
34
|
+
* @throws If the value is invalid.
|
|
35
|
+
*/
|
|
36
|
+
function validateBIP32Path(value) {
|
|
37
|
+
(0, utils_1.assertStruct)(value, snaps_utils_1.Bip32EntropyStruct, 'Invalid BIP-32 entropy path definition', rpc_errors_1.rpcErrors.invalidParams);
|
|
38
|
+
}
|
|
39
|
+
exports.validateBIP32Path = validateBIP32Path;
|
|
40
|
+
/**
|
|
41
|
+
* Validate the path values associated with a caveat. This validates that the
|
|
42
|
+
* value is a non-empty array with valid derivation paths and curves.
|
|
43
|
+
*
|
|
44
|
+
* @param caveat - The caveat to validate.
|
|
45
|
+
* @throws If the value is invalid.
|
|
46
|
+
*/
|
|
47
|
+
function validateBIP32CaveatPaths(caveat) {
|
|
48
|
+
(0, utils_1.assertStruct)(caveat, (0, superstruct_1.type)({ value: (0, superstruct_1.size)((0, superstruct_1.array)(snaps_utils_1.Bip32EntropyStruct), 1, Infinity) }), 'Invalid BIP-32 entropy caveat', rpc_errors_1.rpcErrors.internal);
|
|
49
|
+
}
|
|
50
|
+
exports.validateBIP32CaveatPaths = validateBIP32CaveatPaths;
|
|
51
|
+
exports.PermittedDerivationPathsCaveatSpecification = {
|
|
52
|
+
[snaps_utils_1.SnapCaveatType.PermittedDerivationPaths]: Object.freeze({
|
|
53
|
+
type: snaps_utils_1.SnapCaveatType.PermittedDerivationPaths,
|
|
54
|
+
decorator: (method, caveat) => {
|
|
55
|
+
return async (args) => {
|
|
56
|
+
const { params } = args;
|
|
57
|
+
validateBIP32Path(params);
|
|
58
|
+
const path = caveat.value.find((caveatPath) => (0, snaps_utils_1.isEqual)(params.path.slice(0, caveatPath.path.length), caveatPath.path) && caveatPath.curve === params.curve);
|
|
59
|
+
if (!path) {
|
|
60
|
+
throw rpc_errors_1.providerErrors.unauthorized({
|
|
61
|
+
message: 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return await method(args);
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
validator: (caveat) => validateBIP32CaveatPaths(caveat),
|
|
68
|
+
}),
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=permittedDerivationPaths.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permittedDerivationPaths.cjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":";;;AAKA,qDAAiE;AAEjE,uDAI+B;AAC/B,uDAA0D;AAE1D,2CAA+C;AAE/C;;;;;;;GAOG;AACH,SAAgB,oCAAoC,CAClD,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,wBAAwB;gBAC7C,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAXD,oFAWC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,KAAc;IAEd,IAAA,oBAAY,EACV,KAAK,EACL,gCAAkB,EAClB,wCAAwC,EACxC,sBAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AATD,8CASC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACtC,MAA2B;IAE3B,IAAA,oBAAY,EACV,MAAM,EACN,IAAA,kBAAI,EAAC,EAAE,KAAK,EAAE,IAAA,kBAAI,EAAC,IAAA,mBAAK,EAAC,gCAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAC7D,+BAA+B,EAC/B,sBAAS,CAAC,QAAQ,CACnB,CAAC;AACJ,CAAC;AATD,4DASC;AAEY,QAAA,2CAA2C,GAGpD;IACF,CAAC,4BAAc,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,4BAAc,CAAC,wBAAwB;QAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAE1B,MAAM,IAAI,GAAI,MAAM,CAAC,KAAwB,CAAC,IAAI,CAChD,CAAC,UAAU,EAAE,EAAE,CACb,IAAA,qBAAO,EACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5C,UAAU,CAAC,IAAI,CAChB,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CACzC,CAAC;gBAEF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,2BAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,4FAA4F;qBAC/F,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;KACxD,CAAC;CACH,CAAC","sourcesContent":["import type {\n Caveat,\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { Bip32Entropy } from '@metamask/snaps-utils';\nimport {\n SnapCaveatType,\n Bip32EntropyStruct,\n isEqual,\n} from '@metamask/snaps-utils';\nimport { array, size, type } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { assertStruct } from '@metamask/utils';\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 permittedDerivationPathsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedDerivationPaths,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate a caveat path object. The object must consist of a `path` array and\n * a `curve` string. Paths must start with `m`, and must contain at\n * least two indices. If `ed25519` is used, this checks if all the path indices\n * are hardened.\n *\n * @param value - The value to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32Path(\n value: unknown,\n): asserts value is Bip32Entropy {\n assertStruct(\n value,\n Bip32EntropyStruct,\n 'Invalid BIP-32 entropy path definition',\n rpcErrors.invalidParams,\n );\n}\n\n/**\n * Validate the path values associated with a caveat. This validates that the\n * value is a non-empty array with valid derivation paths and curves.\n *\n * @param caveat - The caveat to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32CaveatPaths(\n caveat: Caveat<string, any>,\n): asserts caveat is Caveat<string, Bip32Entropy[]> {\n assertStruct(\n caveat,\n type({ value: size(array(Bip32EntropyStruct), 1, Infinity) }),\n 'Invalid BIP-32 entropy caveat',\n rpcErrors.internal,\n );\n}\n\nexport const PermittedDerivationPathsCaveatSpecification: Record<\n SnapCaveatType.PermittedDerivationPaths,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedDerivationPaths]: Object.freeze({\n type: SnapCaveatType.PermittedDerivationPaths,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP32Path(params);\n\n const path = (caveat.value as Bip32Entropy[]).find(\n (caveatPath) =>\n isEqual(\n params.path.slice(0, caveatPath.path.length),\n caveatPath.path,\n ) && caveatPath.curve === params.curve,\n );\n\n if (!path) {\n throw providerErrors.unauthorized({\n message:\n 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP32CaveatPaths(caveat),\n }),\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Caveat, PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint } from
|
|
2
|
-
import type { Bip32Entropy } from
|
|
3
|
-
import { SnapCaveatType } from
|
|
4
|
-
import type { Json } from
|
|
1
|
+
import type { Caveat, PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint } from "@metamask/permission-controller";
|
|
2
|
+
import type { Bip32Entropy } from "@metamask/snaps-utils";
|
|
3
|
+
import { SnapCaveatType } from "@metamask/snaps-utils";
|
|
4
|
+
import type { Json } from "@metamask/utils";
|
|
5
5
|
/**
|
|
6
6
|
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
7
7
|
* Note that this function does not do any validation, that's handled by the
|
|
@@ -30,3 +30,4 @@ export declare function validateBIP32Path(value: unknown): asserts value is Bip3
|
|
|
30
30
|
*/
|
|
31
31
|
export declare function validateBIP32CaveatPaths(caveat: Caveat<string, any>): asserts caveat is Caveat<string, Bip32Entropy[]>;
|
|
32
32
|
export declare const PermittedDerivationPathsCaveatSpecification: Record<SnapCaveatType.PermittedDerivationPaths, RestrictedMethodCaveatSpecificationConstraint>;
|
|
33
|
+
//# sourceMappingURL=permittedDerivationPaths.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permittedDerivationPaths.d.cts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,oBAAoB,EACpB,6CAA6C,EAC9C,wCAAwC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,EACL,cAAc,EAGf,8BAA8B;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,YAAY,CAO/B;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAOlD;AAED,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,cAAc,CAAC,wBAAwB,EACvC,6CAA6C,CA6B9C,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Caveat, PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint } from "@metamask/permission-controller";
|
|
2
|
+
import type { Bip32Entropy } from "@metamask/snaps-utils";
|
|
3
|
+
import { SnapCaveatType } from "@metamask/snaps-utils";
|
|
4
|
+
import type { Json } from "@metamask/utils";
|
|
5
|
+
/**
|
|
6
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
7
|
+
* Note that this function does not do any validation, that's handled by the
|
|
8
|
+
* PermissionsController when the permission is requested.
|
|
9
|
+
*
|
|
10
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
11
|
+
* @returns The caveat specification.
|
|
12
|
+
*/
|
|
13
|
+
export declare function permittedDerivationPathsCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
|
|
14
|
+
/**
|
|
15
|
+
* Validate a caveat path object. The object must consist of a `path` array and
|
|
16
|
+
* a `curve` string. Paths must start with `m`, and must contain at
|
|
17
|
+
* least two indices. If `ed25519` is used, this checks if all the path indices
|
|
18
|
+
* are hardened.
|
|
19
|
+
*
|
|
20
|
+
* @param value - The value to validate.
|
|
21
|
+
* @throws If the value is invalid.
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateBIP32Path(value: unknown): asserts value is Bip32Entropy;
|
|
24
|
+
/**
|
|
25
|
+
* Validate the path values associated with a caveat. This validates that the
|
|
26
|
+
* value is a non-empty array with valid derivation paths and curves.
|
|
27
|
+
*
|
|
28
|
+
* @param caveat - The caveat to validate.
|
|
29
|
+
* @throws If the value is invalid.
|
|
30
|
+
*/
|
|
31
|
+
export declare function validateBIP32CaveatPaths(caveat: Caveat<string, any>): asserts caveat is Caveat<string, Bip32Entropy[]>;
|
|
32
|
+
export declare const PermittedDerivationPathsCaveatSpecification: Record<SnapCaveatType.PermittedDerivationPaths, RestrictedMethodCaveatSpecificationConstraint>;
|
|
33
|
+
//# sourceMappingURL=permittedDerivationPaths.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permittedDerivationPaths.d.mts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,oBAAoB,EACpB,6CAA6C,EAC9C,wCAAwC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,EACL,cAAc,EAGf,8BAA8B;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,YAAY,CAO/B;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAOlD;AAED,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,cAAc,CAAC,wBAAwB,EACvC,6CAA6C,CA6B9C,CAAC"}
|
|
@@ -1,13 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
|
|
2
|
+
import { SnapCaveatType, Bip32EntropyStruct, isEqual } from "@metamask/snaps-utils";
|
|
3
|
+
import { array, size, type } from "@metamask/superstruct";
|
|
4
|
+
import { assertStruct } from "@metamask/utils";
|
|
5
|
+
/**
|
|
6
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
7
|
+
* Note that this function does not do any validation, that's handled by the
|
|
8
|
+
* PermissionsController when the permission is requested.
|
|
9
|
+
*
|
|
10
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
11
|
+
* @returns The caveat specification.
|
|
12
|
+
*/
|
|
13
|
+
export function permittedDerivationPathsCaveatMapper(value) {
|
|
14
|
+
return {
|
|
15
|
+
caveats: [
|
|
16
|
+
{
|
|
17
|
+
type: SnapCaveatType.PermittedDerivationPaths,
|
|
18
|
+
value,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Validate a caveat path object. The object must consist of a `path` array and
|
|
25
|
+
* a `curve` string. Paths must start with `m`, and must contain at
|
|
26
|
+
* least two indices. If `ed25519` is used, this checks if all the path indices
|
|
27
|
+
* are hardened.
|
|
28
|
+
*
|
|
29
|
+
* @param value - The value to validate.
|
|
30
|
+
* @throws If the value is invalid.
|
|
31
|
+
*/
|
|
32
|
+
export function validateBIP32Path(value) {
|
|
33
|
+
assertStruct(value, Bip32EntropyStruct, 'Invalid BIP-32 entropy path definition', rpcErrors.invalidParams);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Validate the path values associated with a caveat. This validates that the
|
|
37
|
+
* value is a non-empty array with valid derivation paths and curves.
|
|
38
|
+
*
|
|
39
|
+
* @param caveat - The caveat to validate.
|
|
40
|
+
* @throws If the value is invalid.
|
|
41
|
+
*/
|
|
42
|
+
export function validateBIP32CaveatPaths(caveat) {
|
|
43
|
+
assertStruct(caveat, type({ value: size(array(Bip32EntropyStruct), 1, Infinity) }), 'Invalid BIP-32 entropy caveat', rpcErrors.internal);
|
|
44
|
+
}
|
|
45
|
+
export const PermittedDerivationPathsCaveatSpecification = {
|
|
46
|
+
[SnapCaveatType.PermittedDerivationPaths]: Object.freeze({
|
|
47
|
+
type: SnapCaveatType.PermittedDerivationPaths,
|
|
48
|
+
decorator: (method, caveat) => {
|
|
49
|
+
return async (args) => {
|
|
50
|
+
const { params } = args;
|
|
51
|
+
validateBIP32Path(params);
|
|
52
|
+
const path = caveat.value.find((caveatPath) => isEqual(params.path.slice(0, caveatPath.path.length), caveatPath.path) && caveatPath.curve === params.curve);
|
|
53
|
+
if (!path) {
|
|
54
|
+
throw providerErrors.unauthorized({
|
|
55
|
+
message: 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return await method(args);
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
validator: (caveat) => validateBIP32CaveatPaths(caveat),
|
|
62
|
+
}),
|
|
12
63
|
};
|
|
13
64
|
//# sourceMappingURL=permittedDerivationPaths.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"
|
|
1
|
+
{"version":3,"file":"permittedDerivationPaths.mjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAEjE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,OAAO,EACR,8BAA8B;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,8BAA8B;AAE1D,OAAO,EAAE,YAAY,EAAE,wBAAwB;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,oCAAoC,CAClD,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc,CAAC,wBAAwB;gBAC7C,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAc;IAEd,YAAY,CACV,KAAK,EACL,kBAAkB,EAClB,wCAAwC,EACxC,SAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA2B;IAE3B,YAAY,CACV,MAAM,EACN,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAC7D,+BAA+B,EAC/B,SAAS,CAAC,QAAQ,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2CAA2C,GAGpD;IACF,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,cAAc,CAAC,wBAAwB;QAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAE1B,MAAM,IAAI,GAAI,MAAM,CAAC,KAAwB,CAAC,IAAI,CAChD,CAAC,UAAU,EAAE,EAAE,CACb,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5C,UAAU,CAAC,IAAI,CAChB,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CACzC,CAAC;gBAEF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,cAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,4FAA4F;qBAC/F,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;KACxD,CAAC;CACH,CAAC","sourcesContent":["import type {\n Caveat,\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { Bip32Entropy } from '@metamask/snaps-utils';\nimport {\n SnapCaveatType,\n Bip32EntropyStruct,\n isEqual,\n} from '@metamask/snaps-utils';\nimport { array, size, type } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { assertStruct } from '@metamask/utils';\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 permittedDerivationPathsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedDerivationPaths,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate a caveat path object. The object must consist of a `path` array and\n * a `curve` string. Paths must start with `m`, and must contain at\n * least two indices. If `ed25519` is used, this checks if all the path indices\n * are hardened.\n *\n * @param value - The value to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32Path(\n value: unknown,\n): asserts value is Bip32Entropy {\n assertStruct(\n value,\n Bip32EntropyStruct,\n 'Invalid BIP-32 entropy path definition',\n rpcErrors.invalidParams,\n );\n}\n\n/**\n * Validate the path values associated with a caveat. This validates that the\n * value is a non-empty array with valid derivation paths and curves.\n *\n * @param caveat - The caveat to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32CaveatPaths(\n caveat: Caveat<string, any>,\n): asserts caveat is Caveat<string, Bip32Entropy[]> {\n assertStruct(\n caveat,\n type({ value: size(array(Bip32EntropyStruct), 1, Infinity) }),\n 'Invalid BIP-32 entropy caveat',\n rpcErrors.internal,\n );\n}\n\nexport const PermittedDerivationPathsCaveatSpecification: Record<\n SnapCaveatType.PermittedDerivationPaths,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedDerivationPaths]: Object.freeze({\n type: SnapCaveatType.PermittedDerivationPaths,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP32Path(params);\n\n const path = (caveat.value as Bip32Entropy[]).find(\n (caveatPath) =>\n isEqual(\n params.path.slice(0, caveatPath.path.length),\n caveatPath.path,\n ) && caveatPath.curve === params.curve,\n );\n\n if (!path) {\n throw providerErrors.unauthorized({\n message:\n 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP32CaveatPaths(caveat),\n }),\n};\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SnapIdsCaveatSpecification = exports.validateSnapIdsCaveat = exports.snapIdsCaveatMapper = void 0;
|
|
4
|
+
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
|
+
const snaps_utils_1 = require("@metamask/snaps-utils");
|
|
6
|
+
const superstruct_1 = require("@metamask/superstruct");
|
|
7
|
+
const utils_1 = require("@metamask/utils");
|
|
8
|
+
/**
|
|
9
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
10
|
+
* Note that this function does not do any validation, that's handled by the
|
|
11
|
+
* PermissionsController when the permission is requested.
|
|
12
|
+
*
|
|
13
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
14
|
+
* @returns The caveat specification.
|
|
15
|
+
*/
|
|
16
|
+
function snapIdsCaveatMapper(value) {
|
|
17
|
+
return {
|
|
18
|
+
caveats: [
|
|
19
|
+
{
|
|
20
|
+
type: snaps_utils_1.SnapCaveatType.SnapIds,
|
|
21
|
+
value,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.snapIdsCaveatMapper = snapIdsCaveatMapper;
|
|
27
|
+
/**
|
|
28
|
+
* Validates that the caveat value exists and is a non-empty object.
|
|
29
|
+
*
|
|
30
|
+
* @param caveat - The caveat to validate.
|
|
31
|
+
* @throws If the caveat is invalid.
|
|
32
|
+
*/
|
|
33
|
+
function validateSnapIdsCaveat(caveat) {
|
|
34
|
+
(0, utils_1.assertStruct)(caveat, (0, superstruct_1.type)({
|
|
35
|
+
value: snaps_utils_1.SnapIdsStruct,
|
|
36
|
+
}), 'Expected caveat to have a value property of a non-empty object of snap IDs.', rpc_errors_1.rpcErrors.invalidParams);
|
|
37
|
+
}
|
|
38
|
+
exports.validateSnapIdsCaveat = validateSnapIdsCaveat;
|
|
39
|
+
exports.SnapIdsCaveatSpecification = {
|
|
40
|
+
[snaps_utils_1.SnapCaveatType.SnapIds]: Object.freeze({
|
|
41
|
+
type: snaps_utils_1.SnapCaveatType.SnapIds,
|
|
42
|
+
validator: (caveat) => validateSnapIdsCaveat(caveat),
|
|
43
|
+
decorator: (method, caveat) => {
|
|
44
|
+
return async (args) => {
|
|
45
|
+
const { params, context: { origin }, } = args;
|
|
46
|
+
const snapIds = caveat.value;
|
|
47
|
+
const { snapId } = params;
|
|
48
|
+
if (!(0, utils_1.hasProperty)(snapIds, snapId)) {
|
|
49
|
+
throw new Error(`${origin} does not have permission to invoke ${snapId} snap.`);
|
|
50
|
+
}
|
|
51
|
+
return await method(args);
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
}),
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=snapIds.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapIds.cjs","sourceRoot":"","sources":["../../../src/restricted/caveats/snapIds.ts"],"names":[],"mappings":";;;AAOA,qDAAiD;AAEjD,uDAAsE;AACtE,uDAA6C;AAE7C,2CAA4D;AAI5D;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,OAAO;gBAC5B,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAXD,kDAWC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,MAA2B;IAE3B,IAAA,oBAAY,EACV,MAAM,EACN,IAAA,kBAAI,EAAC;QACH,KAAK,EAAE,2BAAa;KACrB,CAAC,EACF,6EAA6E,EAC7E,sBAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AAXD,sDAWC;AAEY,QAAA,0BAA0B,GAGnC;IACF,CAAC,4BAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE,4BAAc,CAAC,OAAO;QAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;QACpD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EACJ,MAAM,EACN,OAAO,EAAE,EAAE,MAAM,EAAE,GACpB,GAAwD,IAAI,CAAC;gBAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAgB,CAAC;gBACxC,MAAM,EAAE,MAAM,EAAE,GAAG,MAA0B,CAAC;gBAC9C,IAAI,CAAC,IAAA,mBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,uCAAuC,MAAM,QAAQ,CAC/D,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;CACH,CAAC","sourcesContent":["import type {\n Caveat,\n RestrictedMethodOptions,\n RestrictedMethodParameters,\n RestrictedMethodCaveatSpecificationConstraint,\n PermissionConstraint,\n} from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { SnapIds } from '@metamask/snaps-utils';\nimport { SnapCaveatType, SnapIdsStruct } from '@metamask/snaps-utils';\nimport { type } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { hasProperty, assertStruct } from '@metamask/utils';\n\nimport type { InvokeSnapParams } from '../invokeSnap';\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 snapIdsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.SnapIds,\n value,\n },\n ],\n };\n}\n\n/**\n * Validates that the caveat value exists and is a non-empty object.\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat is invalid.\n */\nexport function validateSnapIdsCaveat(\n caveat: Caveat<string, any>,\n): asserts caveat is Caveat<string, SnapIds> {\n assertStruct(\n caveat,\n type({\n value: SnapIdsStruct,\n }),\n 'Expected caveat to have a value property of a non-empty object of snap IDs.',\n rpcErrors.invalidParams,\n );\n}\n\nexport const SnapIdsCaveatSpecification: Record<\n SnapCaveatType.SnapIds,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.SnapIds]: Object.freeze({\n type: SnapCaveatType.SnapIds,\n validator: (caveat) => validateSnapIdsCaveat(caveat),\n decorator: (method, caveat) => {\n return async (args) => {\n const {\n params,\n context: { origin },\n }: RestrictedMethodOptions<RestrictedMethodParameters> = args;\n const snapIds = caveat.value as SnapIds;\n const { snapId } = params as InvokeSnapParams;\n if (!hasProperty(snapIds, snapId)) {\n throw new Error(\n `${origin} does not have permission to invoke ${snapId} snap.`,\n );\n }\n return await method(args);\n };\n },\n }),\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Caveat, RestrictedMethodCaveatSpecificationConstraint, PermissionConstraint } from
|
|
2
|
-
import type { SnapIds } from
|
|
3
|
-
import { SnapCaveatType } from
|
|
4
|
-
import type { Json } from
|
|
1
|
+
import type { Caveat, RestrictedMethodCaveatSpecificationConstraint, PermissionConstraint } from "@metamask/permission-controller";
|
|
2
|
+
import type { SnapIds } from "@metamask/snaps-utils";
|
|
3
|
+
import { SnapCaveatType } from "@metamask/snaps-utils";
|
|
4
|
+
import type { Json } from "@metamask/utils";
|
|
5
5
|
/**
|
|
6
6
|
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
7
7
|
* Note that this function does not do any validation, that's handled by the
|
|
@@ -19,3 +19,4 @@ export declare function snapIdsCaveatMapper(value: Json): Pick<PermissionConstra
|
|
|
19
19
|
*/
|
|
20
20
|
export declare function validateSnapIdsCaveat(caveat: Caveat<string, any>): asserts caveat is Caveat<string, SnapIds>;
|
|
21
21
|
export declare const SnapIdsCaveatSpecification: Record<SnapCaveatType.SnapIds, RestrictedMethodCaveatSpecificationConstraint>;
|
|
22
|
+
//# sourceMappingURL=snapIds.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapIds.d.cts","sourceRoot":"","sources":["../../../src/restricted/caveats/snapIds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAGN,6CAA6C,EAC7C,oBAAoB,EACrB,wCAAwC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;AACrD,OAAO,EAAE,cAAc,EAAiB,8BAA8B;AAEtE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAK5C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3C;AAED,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAC7C,cAAc,CAAC,OAAO,EACtB,6CAA6C,CAsB9C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Caveat, RestrictedMethodCaveatSpecificationConstraint, PermissionConstraint } from "@metamask/permission-controller";
|
|
2
|
+
import type { SnapIds } from "@metamask/snaps-utils";
|
|
3
|
+
import { SnapCaveatType } from "@metamask/snaps-utils";
|
|
4
|
+
import type { Json } from "@metamask/utils";
|
|
5
|
+
/**
|
|
6
|
+
* Map a raw value from the `initialPermissions` to a caveat specification.
|
|
7
|
+
* Note that this function does not do any validation, that's handled by the
|
|
8
|
+
* PermissionsController when the permission is requested.
|
|
9
|
+
*
|
|
10
|
+
* @param value - The raw value from the `initialPermissions`.
|
|
11
|
+
* @returns The caveat specification.
|
|
12
|
+
*/
|
|
13
|
+
export declare function snapIdsCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
|
|
14
|
+
/**
|
|
15
|
+
* Validates that the caveat value exists and is a non-empty object.
|
|
16
|
+
*
|
|
17
|
+
* @param caveat - The caveat to validate.
|
|
18
|
+
* @throws If the caveat is invalid.
|
|
19
|
+
*/
|
|
20
|
+
export declare function validateSnapIdsCaveat(caveat: Caveat<string, any>): asserts caveat is Caveat<string, SnapIds>;
|
|
21
|
+
export declare const SnapIdsCaveatSpecification: Record<SnapCaveatType.SnapIds, RestrictedMethodCaveatSpecificationConstraint>;
|
|
22
|
+
//# sourceMappingURL=snapIds.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapIds.d.mts","sourceRoot":"","sources":["../../../src/restricted/caveats/snapIds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAGN,6CAA6C,EAC7C,oBAAoB,EACrB,wCAAwC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;AACrD,OAAO,EAAE,cAAc,EAAiB,8BAA8B;AAEtE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAK5C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3C;AAED,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAC7C,cAAc,CAAC,OAAO,EACtB,6CAA6C,CAsB9C,CAAC"}
|