@metamask/snaps-rpc-methods 11.9.1 → 11.11.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/endowments/assets.cjs +53 -0
  3. package/dist/endowments/assets.cjs.map +1 -0
  4. package/dist/endowments/assets.d.cts +25 -0
  5. package/dist/endowments/assets.d.cts.map +1 -0
  6. package/dist/endowments/assets.d.mts +25 -0
  7. package/dist/endowments/assets.d.mts.map +1 -0
  8. package/dist/endowments/assets.mjs +49 -0
  9. package/dist/endowments/assets.mjs.map +1 -0
  10. package/dist/endowments/enum.cjs +2 -0
  11. package/dist/endowments/enum.cjs.map +1 -1
  12. package/dist/endowments/enum.d.cts +3 -1
  13. package/dist/endowments/enum.d.cts.map +1 -1
  14. package/dist/endowments/enum.d.mts +3 -1
  15. package/dist/endowments/enum.d.mts.map +1 -1
  16. package/dist/endowments/enum.mjs +2 -0
  17. package/dist/endowments/enum.mjs.map +1 -1
  18. package/dist/endowments/index.cjs +13 -1
  19. package/dist/endowments/index.cjs.map +1 -1
  20. package/dist/endowments/index.d.cts +22 -0
  21. package/dist/endowments/index.d.cts.map +1 -1
  22. package/dist/endowments/index.d.mts +22 -0
  23. package/dist/endowments/index.d.mts.map +1 -1
  24. package/dist/endowments/index.mjs +11 -0
  25. package/dist/endowments/index.mjs.map +1 -1
  26. package/dist/endowments/protocol.cjs +93 -0
  27. package/dist/endowments/protocol.cjs.map +1 -0
  28. package/dist/endowments/protocol.d.cts +39 -0
  29. package/dist/endowments/protocol.d.cts.map +1 -0
  30. package/dist/endowments/protocol.d.mts +39 -0
  31. package/dist/endowments/protocol.d.mts.map +1 -0
  32. package/dist/endowments/protocol.mjs +88 -0
  33. package/dist/endowments/protocol.mjs.map +1 -0
  34. package/dist/permitted/createInterface.d.cts +8 -4
  35. package/dist/permitted/createInterface.d.cts.map +1 -1
  36. package/dist/permitted/createInterface.d.mts +8 -4
  37. package/dist/permitted/createInterface.d.mts.map +1 -1
  38. package/dist/permitted/updateInterface.d.cts +8 -4
  39. package/dist/permitted/updateInterface.d.cts.map +1 -1
  40. package/dist/permitted/updateInterface.d.mts +8 -4
  41. package/dist/permitted/updateInterface.d.mts.map +1 -1
  42. package/dist/restricted/dialog.d.cts +16 -8
  43. package/dist/restricted/dialog.d.cts.map +1 -1
  44. package/dist/restricted/dialog.d.mts +16 -8
  45. package/dist/restricted/dialog.d.mts.map +1 -1
  46. package/dist/restricted/notify.d.cts +12 -6
  47. package/dist/restricted/notify.d.cts.map +1 -1
  48. package/dist/restricted/notify.d.mts +12 -6
  49. package/dist/restricted/notify.d.mts.map +1 -1
  50. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [11.11.0]
11
+
12
+ ### Added
13
+
14
+ - Add `endowment:protocol` permission ([#2875](https://github.com/MetaMask/snaps/pull/2875))
15
+
16
+ ## [11.10.0]
17
+
18
+ ### Added
19
+
20
+ - Add `endowment:assets` permission ([#3028](https://github.com/MetaMask/snaps/pull/3028))
21
+
10
22
  ## [11.9.1]
11
23
 
12
24
  ### Fixed
@@ -368,7 +380,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
368
380
  - The version of the package no longer needs to match the version of all other
369
381
  MetaMask Snaps packages.
370
382
 
371
- [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@11.9.1...HEAD
383
+ [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@11.11.0...HEAD
384
+ [11.11.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@11.10.0...@metamask/snaps-rpc-methods@11.11.0
385
+ [11.10.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@11.9.1...@metamask/snaps-rpc-methods@11.10.0
372
386
  [11.9.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@11.9.0...@metamask/snaps-rpc-methods@11.9.1
373
387
  [11.9.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@11.8.0...@metamask/snaps-rpc-methods@11.9.0
374
388
  [11.8.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@11.7.0...@metamask/snaps-rpc-methods@11.8.0
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAssetsCaveatMapper = exports.assetsEndowmentBuilder = void 0;
4
+ const permission_controller_1 = require("@metamask/permission-controller");
5
+ const snaps_utils_1 = require("@metamask/snaps-utils");
6
+ const utils_1 = require("@metamask/utils");
7
+ const caveats_1 = require("./caveats/index.cjs");
8
+ const enum_1 = require("./enum.cjs");
9
+ const permissionName = enum_1.SnapEndowments.Assets;
10
+ /**
11
+ * `endowment:assets` returns nothing; it is intended to be used as a flag to determine whether the Snap can run asset queries.
12
+ *
13
+ * @param _builderOptions - Optional specification builder options.
14
+ * @returns The specification for the assets endowment.
15
+ */
16
+ const specificationBuilder = (_builderOptions) => {
17
+ return {
18
+ permissionType: permission_controller_1.PermissionType.Endowment,
19
+ targetName: permissionName,
20
+ allowedCaveats: [snaps_utils_1.SnapCaveatType.ChainIds],
21
+ endowmentGetter: (_getterOptions) => null,
22
+ subjectTypes: [permission_controller_1.SubjectType.Snap],
23
+ validator: (0, caveats_1.createGenericPermissionValidator)([
24
+ { type: snaps_utils_1.SnapCaveatType.ChainIds },
25
+ { type: snaps_utils_1.SnapCaveatType.MaxRequestTime, optional: true },
26
+ ]),
27
+ };
28
+ };
29
+ exports.assetsEndowmentBuilder = Object.freeze({
30
+ targetName: permissionName,
31
+ specificationBuilder,
32
+ });
33
+ /**
34
+ * Map a raw value from the `initialPermissions` to a caveat specification.
35
+ * Note that this function does not do any validation, that's handled by the
36
+ * PermissionsController when the permission is requested.
37
+ *
38
+ * @param value - The raw value from the `initialPermissions`.
39
+ * @returns The caveat specification.
40
+ */
41
+ function getAssetsCaveatMapper(value) {
42
+ (0, utils_1.assert)((0, utils_1.isObject)(value) && value.scopes);
43
+ return {
44
+ caveats: [
45
+ {
46
+ type: snaps_utils_1.SnapCaveatType.ChainIds,
47
+ value: value.scopes,
48
+ },
49
+ ],
50
+ };
51
+ }
52
+ exports.getAssetsCaveatMapper = getAssetsCaveatMapper;
53
+ //# sourceMappingURL=assets.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.cjs","sourceRoot":"","sources":["../../src/endowments/assets.ts"],"names":[],"mappings":";;;AAMA,2EAA8E;AAC9E,uDAAuD;AAEvD,2CAAmD;AAEnD,iDAA6D;AAC7D,qCAAwC;AAExC,MAAM,cAAc,GAAG,qBAAc,CAAC,MAAM,CAAC;AAS7C;;;;;GAKG;AACH,MAAM,oBAAoB,GAItB,CAAC,eAAqB,EAAE,EAAE;IAC5B,OAAO;QACL,cAAc,EAAE,sCAAc,CAAC,SAAS;QACxC,UAAU,EAAE,cAAc;QAC1B,cAAc,EAAE,CAAC,4BAAc,CAAC,QAAQ,CAAC;QACzC,eAAe,EAAE,CAAC,cAAsC,EAAE,EAAE,CAAC,IAAI;QACjE,YAAY,EAAE,CAAC,mCAAW,CAAC,IAAI,CAAC;QAChC,SAAS,EAAE,IAAA,0CAAgC,EAAC;YAC1C,EAAE,IAAI,EAAE,4BAAc,CAAC,QAAQ,EAAE;YACjC,EAAE,IAAI,EAAE,4BAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,cAAc;IAC1B,oBAAoB;CACZ,CAAC,CAAC;AAEZ;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,KAAW;IAEX,IAAA,cAAM,EAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,QAAQ;gBAC7B,KAAK,EAAE,KAAK,CAAC,MAAM;aACpB;SACF;KACF,CAAC;AACJ,CAAC;AAbD,sDAaC","sourcesContent":["import type {\n PermissionSpecificationBuilder,\n EndowmentGetterParams,\n ValidPermissionSpecification,\n PermissionConstraint,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json, NonEmptyArray } from '@metamask/utils';\nimport { assert, isObject } from '@metamask/utils';\n\nimport { createGenericPermissionValidator } from './caveats';\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.Assets;\n\ntype AssetsEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: any) => null;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n}>;\n\n/**\n * `endowment:assets` returns nothing; it is intended to be used as a flag to determine whether the Snap can run asset queries.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the assets endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n AssetsEndowmentSpecification\n> = (_builderOptions?: any) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: [SnapCaveatType.ChainIds],\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => null,\n subjectTypes: [SubjectType.Snap],\n validator: createGenericPermissionValidator([\n { type: SnapCaveatType.ChainIds },\n { type: SnapCaveatType.MaxRequestTime, optional: true },\n ]),\n };\n};\n\nexport const assetsEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\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 getAssetsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n assert(isObject(value) && value.scopes);\n\n return {\n caveats: [\n {\n type: SnapCaveatType.ChainIds,\n value: value.scopes,\n },\n ],\n };\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import type { PermissionSpecificationBuilder, PermissionConstraint } from "@metamask/permission-controller";
2
+ import { PermissionType } from "@metamask/permission-controller";
3
+ import type { Json, NonEmptyArray } from "@metamask/utils";
4
+ import { SnapEndowments } from "./enum.cjs";
5
+ declare const permissionName = SnapEndowments.Assets;
6
+ export declare const assetsEndowmentBuilder: Readonly<{
7
+ readonly targetName: SnapEndowments.Assets;
8
+ readonly specificationBuilder: PermissionSpecificationBuilder<PermissionType.Endowment, any, {
9
+ permissionType: PermissionType.Endowment;
10
+ targetName: typeof permissionName;
11
+ endowmentGetter: (_options?: any) => null;
12
+ allowedCaveats: Readonly<NonEmptyArray<string>> | null;
13
+ }>;
14
+ }>;
15
+ /**
16
+ * Map a raw value from the `initialPermissions` to a caveat specification.
17
+ * Note that this function does not do any validation, that's handled by the
18
+ * PermissionsController when the permission is requested.
19
+ *
20
+ * @param value - The raw value from the `initialPermissions`.
21
+ * @returns The caveat specification.
22
+ */
23
+ export declare function getAssetsCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
24
+ export {};
25
+ //# sourceMappingURL=assets.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.cts","sourceRoot":"","sources":["../../src/endowments/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAG9B,oBAAoB,EACrB,wCAAwC;AACzC,OAAO,EAAE,cAAc,EAAe,wCAAwC;AAE9E,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAI3D,OAAO,EAAE,cAAc,EAAE,mBAAe;AAExC,QAAA,MAAM,cAAc,wBAAwB,CAAC;AAiC7C,eAAO,MAAM,sBAAsB;;;wBA9BjB,eAAe,SAAS;oBAC5B,qBAAqB;qCACJ,GAAG,KAAK,IAAI;wBACzB,SAAS,cAAc,MAAM,CAAC,CAAC,GAAG,IAAI;;EA8B7C,CAAC;AAEZ;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAWvC"}
@@ -0,0 +1,25 @@
1
+ import type { PermissionSpecificationBuilder, PermissionConstraint } from "@metamask/permission-controller";
2
+ import { PermissionType } from "@metamask/permission-controller";
3
+ import type { Json, NonEmptyArray } from "@metamask/utils";
4
+ import { SnapEndowments } from "./enum.mjs";
5
+ declare const permissionName = SnapEndowments.Assets;
6
+ export declare const assetsEndowmentBuilder: Readonly<{
7
+ readonly targetName: SnapEndowments.Assets;
8
+ readonly specificationBuilder: PermissionSpecificationBuilder<PermissionType.Endowment, any, {
9
+ permissionType: PermissionType.Endowment;
10
+ targetName: typeof permissionName;
11
+ endowmentGetter: (_options?: any) => null;
12
+ allowedCaveats: Readonly<NonEmptyArray<string>> | null;
13
+ }>;
14
+ }>;
15
+ /**
16
+ * Map a raw value from the `initialPermissions` to a caveat specification.
17
+ * Note that this function does not do any validation, that's handled by the
18
+ * PermissionsController when the permission is requested.
19
+ *
20
+ * @param value - The raw value from the `initialPermissions`.
21
+ * @returns The caveat specification.
22
+ */
23
+ export declare function getAssetsCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
24
+ export {};
25
+ //# sourceMappingURL=assets.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.mts","sourceRoot":"","sources":["../../src/endowments/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAG9B,oBAAoB,EACrB,wCAAwC;AACzC,OAAO,EAAE,cAAc,EAAe,wCAAwC;AAE9E,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAI3D,OAAO,EAAE,cAAc,EAAE,mBAAe;AAExC,QAAA,MAAM,cAAc,wBAAwB,CAAC;AAiC7C,eAAO,MAAM,sBAAsB;;;wBA9BjB,eAAe,SAAS;oBAC5B,qBAAqB;qCACJ,GAAG,KAAK,IAAI;wBACzB,SAAS,cAAc,MAAM,CAAC,CAAC,GAAG,IAAI;;EA8B7C,CAAC;AAEZ;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAWvC"}
@@ -0,0 +1,49 @@
1
+ import { PermissionType, SubjectType } from "@metamask/permission-controller";
2
+ import { SnapCaveatType } from "@metamask/snaps-utils";
3
+ import { assert, isObject } from "@metamask/utils";
4
+ import { createGenericPermissionValidator } from "./caveats/index.mjs";
5
+ import { SnapEndowments } from "./enum.mjs";
6
+ const permissionName = SnapEndowments.Assets;
7
+ /**
8
+ * `endowment:assets` returns nothing; it is intended to be used as a flag to determine whether the Snap can run asset queries.
9
+ *
10
+ * @param _builderOptions - Optional specification builder options.
11
+ * @returns The specification for the assets endowment.
12
+ */
13
+ const specificationBuilder = (_builderOptions) => {
14
+ return {
15
+ permissionType: PermissionType.Endowment,
16
+ targetName: permissionName,
17
+ allowedCaveats: [SnapCaveatType.ChainIds],
18
+ endowmentGetter: (_getterOptions) => null,
19
+ subjectTypes: [SubjectType.Snap],
20
+ validator: createGenericPermissionValidator([
21
+ { type: SnapCaveatType.ChainIds },
22
+ { type: SnapCaveatType.MaxRequestTime, optional: true },
23
+ ]),
24
+ };
25
+ };
26
+ export const assetsEndowmentBuilder = Object.freeze({
27
+ targetName: permissionName,
28
+ specificationBuilder,
29
+ });
30
+ /**
31
+ * Map a raw value from the `initialPermissions` to a caveat specification.
32
+ * Note that this function does not do any validation, that's handled by the
33
+ * PermissionsController when the permission is requested.
34
+ *
35
+ * @param value - The raw value from the `initialPermissions`.
36
+ * @returns The caveat specification.
37
+ */
38
+ export function getAssetsCaveatMapper(value) {
39
+ assert(isObject(value) && value.scopes);
40
+ return {
41
+ caveats: [
42
+ {
43
+ type: SnapCaveatType.ChainIds,
44
+ value: value.scopes,
45
+ },
46
+ ],
47
+ };
48
+ }
49
+ //# sourceMappingURL=assets.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.mjs","sourceRoot":"","sources":["../../src/endowments/assets.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC;AAC9E,OAAO,EAAE,cAAc,EAAE,8BAA8B;AAEvD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB;AAEnD,OAAO,EAAE,gCAAgC,EAAE,4BAAkB;AAC7D,OAAO,EAAE,cAAc,EAAE,mBAAe;AAExC,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;AAS7C;;;;;GAKG;AACH,MAAM,oBAAoB,GAItB,CAAC,eAAqB,EAAE,EAAE;IAC5B,OAAO;QACL,cAAc,EAAE,cAAc,CAAC,SAAS;QACxC,UAAU,EAAE,cAAc;QAC1B,cAAc,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC;QACzC,eAAe,EAAE,CAAC,cAAsC,EAAE,EAAE,CAAC,IAAI;QACjE,YAAY,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;QAChC,SAAS,EAAE,gCAAgC,CAAC;YAC1C,EAAE,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;YACjC,EAAE,IAAI,EAAE,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,cAAc;IAC1B,oBAAoB;CACZ,CAAC,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAW;IAEX,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc,CAAC,QAAQ;gBAC7B,KAAK,EAAE,KAAK,CAAC,MAAM;aACpB;SACF;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type {\n PermissionSpecificationBuilder,\n EndowmentGetterParams,\n ValidPermissionSpecification,\n PermissionConstraint,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json, NonEmptyArray } from '@metamask/utils';\nimport { assert, isObject } from '@metamask/utils';\n\nimport { createGenericPermissionValidator } from './caveats';\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.Assets;\n\ntype AssetsEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: any) => null;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n}>;\n\n/**\n * `endowment:assets` returns nothing; it is intended to be used as a flag to determine whether the Snap can run asset queries.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the assets endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n AssetsEndowmentSpecification\n> = (_builderOptions?: any) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: [SnapCaveatType.ChainIds],\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => null,\n subjectTypes: [SubjectType.Snap],\n validator: createGenericPermissionValidator([\n { type: SnapCaveatType.ChainIds },\n { type: SnapCaveatType.MaxRequestTime, optional: true },\n ]),\n };\n};\n\nexport const assetsEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\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 getAssetsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n assert(isObject(value) && value.scopes);\n\n return {\n caveats: [\n {\n type: SnapCaveatType.ChainIds,\n value: value.scopes,\n },\n ],\n };\n}\n"]}
@@ -15,5 +15,7 @@ var SnapEndowments;
15
15
  SnapEndowments["Keyring"] = "endowment:keyring";
16
16
  SnapEndowments["HomePage"] = "endowment:page-home";
17
17
  SnapEndowments["SettingsPage"] = "endowment:page-settings";
18
+ SnapEndowments["Assets"] = "endowment:assets";
19
+ SnapEndowments["Protocol"] = "endowment:protocol";
18
20
  })(SnapEndowments || (exports.SnapEndowments = SnapEndowments = {}));
19
21
  //# sourceMappingURL=enum.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.cjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;AAC1C,CAAC,EAbW,cAAc,8BAAd,cAAc,QAazB","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 SettingsPage = 'endowment:page-settings',\n}\n"]}
1
+ {"version":3,"file":"enum.cjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAeX;AAfD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;IACxC,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;AACjC,CAAC,EAfW,cAAc,8BAAd,cAAc,QAezB","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 SettingsPage = 'endowment:page-settings',\n Assets = 'endowment:assets',\n Protocol = 'endowment:protocol',\n}\n"]}
@@ -10,6 +10,8 @@ export declare enum SnapEndowments {
10
10
  LifecycleHooks = "endowment:lifecycle-hooks",
11
11
  Keyring = "endowment:keyring",
12
12
  HomePage = "endowment:page-home",
13
- SettingsPage = "endowment:page-settings"
13
+ SettingsPage = "endowment:page-settings",
14
+ Assets = "endowment:assets",
15
+ Protocol = "endowment:protocol"
14
16
  }
15
17
  //# sourceMappingURL=enum.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.cts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;CACzC"}
1
+ {"version":3,"file":"enum.d.cts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;IACxC,MAAM,qBAAqB;IAC3B,QAAQ,uBAAuB;CAChC"}
@@ -10,6 +10,8 @@ export declare enum SnapEndowments {
10
10
  LifecycleHooks = "endowment:lifecycle-hooks",
11
11
  Keyring = "endowment:keyring",
12
12
  HomePage = "endowment:page-home",
13
- SettingsPage = "endowment:page-settings"
13
+ SettingsPage = "endowment:page-settings",
14
+ Assets = "endowment:assets",
15
+ Protocol = "endowment:protocol"
14
16
  }
15
17
  //# sourceMappingURL=enum.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;CACzC"}
1
+ {"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;IACxC,MAAM,qBAAqB;IAC3B,QAAQ,uBAAuB;CAChC"}
@@ -12,5 +12,7 @@ export var SnapEndowments;
12
12
  SnapEndowments["Keyring"] = "endowment:keyring";
13
13
  SnapEndowments["HomePage"] = "endowment:page-home";
14
14
  SnapEndowments["SettingsPage"] = "endowment:page-settings";
15
+ SnapEndowments["Assets"] = "endowment:assets";
16
+ SnapEndowments["Protocol"] = "endowment:protocol";
15
17
  })(SnapEndowments || (SnapEndowments = {}));
16
18
  //# sourceMappingURL=enum.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.mjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAaX;AAbD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;AAC1C,CAAC,EAbW,cAAc,KAAd,cAAc,QAazB","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 SettingsPage = 'endowment:page-settings',\n}\n"]}
1
+ {"version":3,"file":"enum.mjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAeX;AAfD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;IACxC,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;AACjC,CAAC,EAfW,cAAc,KAAd,cAAc,QAezB","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 SettingsPage = 'endowment:page-settings',\n Assets = 'endowment:assets',\n Protocol = 'endowment:protocol',\n}\n"]}
@@ -14,8 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getCronjobCaveatJobs = exports.getMaxRequestTimeCaveat = exports.getKeyringCaveatOrigins = exports.getLookupMatchersCaveat = exports.getChainIdsCaveat = exports.getTransactionOriginCaveat = exports.getSignatureOriginCaveat = exports.getRpcCaveatOrigins = exports.handlerEndowments = exports.endowmentCaveatMappers = exports.endowmentCaveatSpecifications = exports.endowmentPermissionBuilders = void 0;
17
+ exports.getProtocolCaveatScopes = exports.getCronjobCaveatJobs = exports.getMaxRequestTimeCaveat = exports.getKeyringCaveatOrigins = exports.getLookupMatchersCaveat = exports.getChainIdsCaveat = exports.getTransactionOriginCaveat = exports.getSignatureOriginCaveat = exports.getRpcCaveatOrigins = exports.handlerEndowments = exports.endowmentCaveatMappers = exports.endowmentCaveatSpecifications = exports.endowmentPermissionBuilders = void 0;
18
18
  const snaps_utils_1 = require("@metamask/snaps-utils");
19
+ const assets_1 = require("./assets.cjs");
19
20
  const caveats_1 = require("./caveats/index.cjs");
20
21
  const cronjob_1 = require("./cronjob.cjs");
21
22
  const ethereum_provider_1 = require("./ethereum-provider.cjs");
@@ -24,6 +25,7 @@ const keyring_1 = require("./keyring.cjs");
24
25
  const lifecycle_hooks_1 = require("./lifecycle-hooks.cjs");
25
26
  const name_lookup_1 = require("./name-lookup.cjs");
26
27
  const network_access_1 = require("./network-access.cjs");
28
+ const protocol_1 = require("./protocol.cjs");
27
29
  const rpc_1 = require("./rpc.cjs");
28
30
  const settings_page_1 = require("./settings-page.cjs");
29
31
  const signature_insight_1 = require("./signature-insight.cjs");
@@ -40,8 +42,10 @@ exports.endowmentPermissionBuilders = {
40
42
  [lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName]: lifecycle_hooks_1.lifecycleHooksEndowmentBuilder,
41
43
  [keyring_1.keyringEndowmentBuilder.targetName]: keyring_1.keyringEndowmentBuilder,
42
44
  [settings_page_1.settingsPageEndowmentBuilder.targetName]: settings_page_1.settingsPageEndowmentBuilder,
45
+ [protocol_1.protocolEndowmentBuilder.targetName]: protocol_1.protocolEndowmentBuilder,
43
46
  [home_page_1.homePageEndowmentBuilder.targetName]: home_page_1.homePageEndowmentBuilder,
44
47
  [signature_insight_1.signatureInsightEndowmentBuilder.targetName]: signature_insight_1.signatureInsightEndowmentBuilder,
48
+ [assets_1.assetsEndowmentBuilder.targetName]: assets_1.assetsEndowmentBuilder,
45
49
  };
46
50
  exports.endowmentCaveatSpecifications = {
47
51
  ...cronjob_1.cronjobCaveatSpecifications,
@@ -51,6 +55,7 @@ exports.endowmentCaveatSpecifications = {
51
55
  ...keyring_1.keyringCaveatSpecifications,
52
56
  ...signature_insight_1.signatureInsightCaveatSpecifications,
53
57
  ...caveats_1.maxRequestTimeCaveatSpecifications,
58
+ ...protocol_1.protocolCaveatSpecifications,
54
59
  };
55
60
  exports.endowmentCaveatMappers = {
56
61
  [cronjob_1.cronjobEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(cronjob_1.getCronjobCaveatMapper),
@@ -58,10 +63,12 @@ exports.endowmentCaveatMappers = {
58
63
  [rpc_1.rpcEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(rpc_1.getRpcCaveatMapper),
59
64
  [name_lookup_1.nameLookupEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(name_lookup_1.getNameLookupCaveatMapper),
60
65
  [keyring_1.keyringEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(keyring_1.getKeyringCaveatMapper),
66
+ [protocol_1.protocolEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(protocol_1.getProtocolCaveatMapper),
61
67
  [signature_insight_1.signatureInsightEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(signature_insight_1.getSignatureInsightCaveatMapper),
62
68
  [lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName]: caveats_1.getMaxRequestTimeCaveatMapper,
63
69
  [home_page_1.homePageEndowmentBuilder.targetName]: caveats_1.getMaxRequestTimeCaveatMapper,
64
70
  [settings_page_1.settingsPageEndowmentBuilder.targetName]: caveats_1.getMaxRequestTimeCaveatMapper,
71
+ [assets_1.assetsEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(assets_1.getAssetsCaveatMapper),
65
72
  };
66
73
  // We allow null because a permitted handler does not have an endowment
67
74
  exports.handlerEndowments = {
@@ -76,6 +83,9 @@ exports.handlerEndowments = {
76
83
  [snaps_utils_1.HandlerType.OnSettingsPage]: settings_page_1.settingsPageEndowmentBuilder.targetName,
77
84
  [snaps_utils_1.HandlerType.OnSignature]: signature_insight_1.signatureInsightEndowmentBuilder.targetName,
78
85
  [snaps_utils_1.HandlerType.OnUserInput]: null,
86
+ [snaps_utils_1.HandlerType.OnAssetsLookup]: assets_1.assetsEndowmentBuilder.targetName,
87
+ [snaps_utils_1.HandlerType.OnAssetsConversion]: assets_1.assetsEndowmentBuilder.targetName,
88
+ [snaps_utils_1.HandlerType.OnProtocolRequest]: protocol_1.protocolEndowmentBuilder.targetName,
79
89
  };
80
90
  __exportStar(require("./enum.cjs"), exports);
81
91
  var rpc_2 = require("./rpc.cjs");
@@ -93,4 +103,6 @@ var caveats_2 = require("./caveats/index.cjs");
93
103
  Object.defineProperty(exports, "getMaxRequestTimeCaveat", { enumerable: true, get: function () { return caveats_2.getMaxRequestTimeCaveat; } });
94
104
  var cronjob_2 = require("./cronjob.cjs");
95
105
  Object.defineProperty(exports, "getCronjobCaveatJobs", { enumerable: true, get: function () { return cronjob_2.getCronjobCaveatJobs; } });
106
+ var protocol_2 = require("./protocol.cjs");
107
+ Object.defineProperty(exports, "getProtocolCaveatScopes", { enumerable: true, get: function () { return protocol_2.getProtocolCaveatScopes; } });
96
108
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","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 { settingsPageEndowmentBuilder } from './settings-page';\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 [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\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 [settingsPageEndowmentBuilder.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.OnSettingsPage]: settingsPageEndowmentBuilder.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"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\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 getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\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 [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\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 [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\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.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\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';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
@@ -98,6 +98,17 @@ export declare const endowmentPermissionBuilders: {
98
98
  allowedCaveats: readonly [string, ...string[]] | null;
99
99
  }>;
100
100
  }>;
101
+ readonly "endowment:protocol": Readonly<{
102
+ readonly targetName: import("./enum.cjs").SnapEndowments.Protocol;
103
+ readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
104
+ permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
105
+ targetName: import("./enum.cjs").SnapEndowments.Protocol;
106
+ endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
107
+ allowedCaveats: readonly [string, ...string[]] | null;
108
+ validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
109
+ subjectTypes: readonly import("@metamask/permission-controller").SubjectType[];
110
+ }>;
111
+ }>;
101
112
  readonly "endowment:page-home": Readonly<{
102
113
  readonly targetName: import("./enum.cjs").SnapEndowments.HomePage;
103
114
  readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
@@ -117,8 +128,18 @@ export declare const endowmentPermissionBuilders: {
117
128
  validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
118
129
  }>;
119
130
  }>;
131
+ readonly "endowment:assets": Readonly<{
132
+ readonly targetName: import("./enum.cjs").SnapEndowments.Assets;
133
+ readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
134
+ permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
135
+ targetName: import("./enum.cjs").SnapEndowments.Assets;
136
+ endowmentGetter: (_options?: any) => null;
137
+ allowedCaveats: readonly [string, ...string[]] | null;
138
+ }>;
139
+ }>;
120
140
  };
121
141
  export declare const endowmentCaveatSpecifications: {
142
+ protocolSnapScopes: import("@metamask/permission-controller").CaveatSpecificationConstraint;
122
143
  maxRequestTime: import("@metamask/permission-controller").CaveatSpecificationConstraint;
123
144
  signatureOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
124
145
  keyringOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
@@ -138,4 +159,5 @@ export { getChainIdsCaveat, getLookupMatchersCaveat } from "./name-lookup.cjs";
138
159
  export { getKeyringCaveatOrigins } from "./keyring.cjs";
139
160
  export { getMaxRequestTimeCaveat } from "./caveats/index.cjs";
140
161
  export { getCronjobCaveatJobs } from "./cronjob.cjs";
162
+ export { getProtocolCaveatScopes } from "./protocol.cjs";
141
163
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AA4C5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;CAQzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAsBvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAYhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAkD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAehE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
@@ -98,6 +98,17 @@ export declare const endowmentPermissionBuilders: {
98
98
  allowedCaveats: readonly [string, ...string[]] | null;
99
99
  }>;
100
100
  }>;
101
+ readonly "endowment:protocol": Readonly<{
102
+ readonly targetName: import("./enum.mjs").SnapEndowments.Protocol;
103
+ readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
104
+ permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
105
+ targetName: import("./enum.mjs").SnapEndowments.Protocol;
106
+ endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
107
+ allowedCaveats: readonly [string, ...string[]] | null;
108
+ validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
109
+ subjectTypes: readonly import("@metamask/permission-controller").SubjectType[];
110
+ }>;
111
+ }>;
101
112
  readonly "endowment:page-home": Readonly<{
102
113
  readonly targetName: import("./enum.mjs").SnapEndowments.HomePage;
103
114
  readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
@@ -117,8 +128,18 @@ export declare const endowmentPermissionBuilders: {
117
128
  validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
118
129
  }>;
119
130
  }>;
131
+ readonly "endowment:assets": Readonly<{
132
+ readonly targetName: import("./enum.mjs").SnapEndowments.Assets;
133
+ readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
134
+ permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
135
+ targetName: import("./enum.mjs").SnapEndowments.Assets;
136
+ endowmentGetter: (_options?: any) => null;
137
+ allowedCaveats: readonly [string, ...string[]] | null;
138
+ }>;
139
+ }>;
120
140
  };
121
141
  export declare const endowmentCaveatSpecifications: {
142
+ protocolSnapScopes: import("@metamask/permission-controller").CaveatSpecificationConstraint;
122
143
  maxRequestTime: import("@metamask/permission-controller").CaveatSpecificationConstraint;
123
144
  signatureOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
124
145
  keyringOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
@@ -138,4 +159,5 @@ export { getChainIdsCaveat, getLookupMatchersCaveat } from "./name-lookup.mjs";
138
159
  export { getKeyringCaveatOrigins } from "./keyring.mjs";
139
160
  export { getMaxRequestTimeCaveat } from "./caveats/index.mjs";
140
161
  export { getCronjobCaveatJobs } from "./cronjob.mjs";
162
+ export { getProtocolCaveatScopes } from "./protocol.mjs";
141
163
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AA4C5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;CAQzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAsBvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAYhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAkD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAehE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
@@ -1,4 +1,5 @@
1
1
  import { HandlerType } from "@metamask/snaps-utils";
2
+ import { assetsEndowmentBuilder, getAssetsCaveatMapper } from "./assets.mjs";
2
3
  import { createMaxRequestTimeMapper, getMaxRequestTimeCaveatMapper, maxRequestTimeCaveatSpecifications } from "./caveats/index.mjs";
3
4
  import { cronjobCaveatSpecifications, cronjobEndowmentBuilder, getCronjobCaveatMapper } from "./cronjob.mjs";
4
5
  import { ethereumProviderEndowmentBuilder } from "./ethereum-provider.mjs";
@@ -7,6 +8,7 @@ import { getKeyringCaveatMapper, keyringCaveatSpecifications, keyringEndowmentBu
7
8
  import { lifecycleHooksEndowmentBuilder } from "./lifecycle-hooks.mjs";
8
9
  import { getNameLookupCaveatMapper, nameLookupCaveatSpecifications, nameLookupEndowmentBuilder } from "./name-lookup.mjs";
9
10
  import { networkAccessEndowmentBuilder } from "./network-access.mjs";
11
+ import { getProtocolCaveatMapper, protocolCaveatSpecifications, protocolEndowmentBuilder } from "./protocol.mjs";
10
12
  import { getRpcCaveatMapper, rpcCaveatSpecifications, rpcEndowmentBuilder } from "./rpc.mjs";
11
13
  import { settingsPageEndowmentBuilder } from "./settings-page.mjs";
12
14
  import { getSignatureInsightCaveatMapper, signatureInsightCaveatSpecifications, signatureInsightEndowmentBuilder } from "./signature-insight.mjs";
@@ -23,8 +25,10 @@ export const endowmentPermissionBuilders = {
23
25
  [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,
24
26
  [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,
25
27
  [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,
28
+ [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,
26
29
  [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,
27
30
  [signatureInsightEndowmentBuilder.targetName]: signatureInsightEndowmentBuilder,
31
+ [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,
28
32
  };
29
33
  export const endowmentCaveatSpecifications = {
30
34
  ...cronjobCaveatSpecifications,
@@ -34,6 +38,7 @@ export const endowmentCaveatSpecifications = {
34
38
  ...keyringCaveatSpecifications,
35
39
  ...signatureInsightCaveatSpecifications,
36
40
  ...maxRequestTimeCaveatSpecifications,
41
+ ...protocolCaveatSpecifications,
37
42
  };
38
43
  export const endowmentCaveatMappers = {
39
44
  [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getCronjobCaveatMapper),
@@ -41,10 +46,12 @@ export const endowmentCaveatMappers = {
41
46
  [rpcEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getRpcCaveatMapper),
42
47
  [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getNameLookupCaveatMapper),
43
48
  [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getKeyringCaveatMapper),
49
+ [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getProtocolCaveatMapper),
44
50
  [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getSignatureInsightCaveatMapper),
45
51
  [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,
46
52
  [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,
47
53
  [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,
54
+ [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getAssetsCaveatMapper),
48
55
  };
49
56
  // We allow null because a permitted handler does not have an endowment
50
57
  export const handlerEndowments = {
@@ -59,6 +66,9 @@ export const handlerEndowments = {
59
66
  [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,
60
67
  [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,
61
68
  [HandlerType.OnUserInput]: null,
69
+ [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,
70
+ [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,
71
+ [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,
62
72
  };
63
73
  export * from "./enum.mjs";
64
74
  export { getRpcCaveatOrigins } from "./rpc.mjs";
@@ -68,4 +78,5 @@ export { getChainIdsCaveat, getLookupMatchersCaveat } from "./name-lookup.mjs";
68
78
  export { getKeyringCaveatOrigins } from "./keyring.mjs";
69
79
  export { getMaxRequestTimeCaveat } from "./caveats/index.mjs";
70
80
  export { getCronjobCaveatJobs } from "./cronjob.mjs";
81
+ export { getProtocolCaveatScopes } from "./protocol.mjs";
71
82
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","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 { settingsPageEndowmentBuilder } from './settings-page';\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 [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\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 [settingsPageEndowmentBuilder.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.OnSettingsPage]: settingsPageEndowmentBuilder.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"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,8BAA8B;AAGpD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAiB;AACzE,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,kCAAkC,EACnC,4BAAkB;AACnB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACvB,sBAAkB;AACnB,OAAO,EAAE,gCAAgC,EAAE,gCAA4B;AACvE,OAAO,EAAE,wBAAwB,EAAE,wBAAoB;AACvD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACxB,sBAAkB;AACnB,OAAO,EAAE,8BAA8B,EAAE,8BAA0B;AACnE,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,0BAAsB;AACvB,OAAO,EAAE,6BAA6B,EAAE,6BAAyB;AACjE,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,uBAAmB;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACpB,kBAAc;AACf,OAAO,EAAE,4BAA4B,EAAE,4BAAwB;AAC/D,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,gCAAgC,EACjC,gCAA4B;AAC7B,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,kCAAkC,EACnC,kCAA8B;AAC/B,OAAO,EAAE,2BAA2B,EAAE,2BAAuB;AAE7D,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,CAAC,6BAA6B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACzE,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAC7C,kCAAkC;IACpC,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7D,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAC3C,gCAAgC;IAClC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,mBAAmB;IACrD,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE,2BAA2B;IACrE,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,0BAA0B;IACnE,CAAC,8BAA8B,CAAC,UAAU,CAAC,EAAE,8BAA8B;IAC3E,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7D,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,4BAA4B;IACvE,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,wBAAwB;IAC/D,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,wBAAwB;IAC/D,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAC3C,gCAAgC;IAClC,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,sBAAsB;CACnD,CAAC;AAEX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,GAAG,2BAA2B;IAC9B,GAAG,sCAAsC;IACzC,GAAG,uBAAuB;IAC1B,GAAG,8BAA8B;IACjC,GAAG,2BAA2B;IAC9B,GAAG,oCAAoC;IACvC,GAAG,kCAAkC;IACrC,GAAG,4BAA4B;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAG/B;IACF,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC9D,sBAAsB,CACvB;IACD,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACzE,iCAAiC,CAClC;IACD,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAC9B,0BAA0B,CAAC,kBAAkB,CAAC;IAChD,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACjE,yBAAyB,CAC1B;IACD,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC9D,sBAAsB,CACvB;IACD,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC/D,uBAAuB,CACxB;IACD,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACvE,+BAA+B,CAChC;IACD,CAAC,8BAA8B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IAC1E,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACpE,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACxE,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC7D,qBAAqB,CACtB;CACF,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,iBAAiB,GAAuC;IACnE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,UAAU;IAC1D,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,kCAAkC,CAAC,UAAU;IAC1E,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC,UAAU;IAC3D,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAAC,UAAU;IACjE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAClE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACjE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC,UAAU;IAClE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,wBAAwB,CAAC,UAAU;IAC7D,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAC,UAAU;IACrE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,gCAAgC,CAAC,UAAU;IACtE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI;IAC/B,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,UAAU;IAC/D,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,UAAU;IACnE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,UAAU;CACrE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\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 getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\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 [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\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 [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\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.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\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';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}