@metamask/snaps-simulation 4.3.0 → 4.3.2

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 (162) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/dist/controllers.cjs +3 -4
  3. package/dist/controllers.cjs.map +1 -1
  4. package/dist/controllers.mjs +1 -1
  5. package/dist/controllers.mjs.map +1 -1
  6. package/dist/files.cjs +4 -5
  7. package/dist/files.cjs.map +1 -1
  8. package/dist/helpers.cjs +1 -2
  9. package/dist/helpers.cjs.map +1 -1
  10. package/dist/interface.cjs +18 -19
  11. package/dist/interface.cjs.map +1 -1
  12. package/dist/interface.d.cts +2 -2
  13. package/dist/interface.d.cts.map +1 -1
  14. package/dist/interface.d.mts +2 -2
  15. package/dist/interface.d.mts.map +1 -1
  16. package/dist/interface.mjs +2 -2
  17. package/dist/interface.mjs.map +1 -1
  18. package/dist/logger.d.cts +0 -1
  19. package/dist/logger.d.cts.map +1 -1
  20. package/dist/logger.d.mts +0 -1
  21. package/dist/logger.d.mts.map +1 -1
  22. package/dist/methods/hooks/chain.cjs +1 -2
  23. package/dist/methods/hooks/chain.cjs.map +1 -1
  24. package/dist/methods/hooks/chain.d.cts +12 -1
  25. package/dist/methods/hooks/chain.d.cts.map +1 -1
  26. package/dist/methods/hooks/chain.d.mts +12 -1
  27. package/dist/methods/hooks/chain.d.mts.map +1 -1
  28. package/dist/methods/hooks/end-trace.cjs +1 -2
  29. package/dist/methods/hooks/end-trace.cjs.map +1 -1
  30. package/dist/methods/hooks/end-trace.d.cts +12 -1
  31. package/dist/methods/hooks/end-trace.d.cts.map +1 -1
  32. package/dist/methods/hooks/end-trace.d.mts +12 -1
  33. package/dist/methods/hooks/end-trace.d.mts.map +1 -1
  34. package/dist/methods/hooks/get-mnemonic.cjs +1 -2
  35. package/dist/methods/hooks/get-mnemonic.cjs.map +1 -1
  36. package/dist/methods/hooks/get-mnemonic.d.cts.map +1 -1
  37. package/dist/methods/hooks/get-mnemonic.d.mts.map +1 -1
  38. package/dist/methods/hooks/get-preferences.cjs +1 -2
  39. package/dist/methods/hooks/get-preferences.cjs.map +1 -1
  40. package/dist/methods/hooks/get-snap.cjs +1 -2
  41. package/dist/methods/hooks/get-snap.cjs.map +1 -1
  42. package/dist/methods/hooks/get-snap.d.cts.map +1 -1
  43. package/dist/methods/hooks/get-snap.d.mts.map +1 -1
  44. package/dist/methods/hooks/notifications.cjs +2 -3
  45. package/dist/methods/hooks/notifications.cjs.map +1 -1
  46. package/dist/methods/hooks/notifications.d.cts +26 -2
  47. package/dist/methods/hooks/notifications.d.cts.map +1 -1
  48. package/dist/methods/hooks/notifications.d.mts +26 -2
  49. package/dist/methods/hooks/notifications.d.mts.map +1 -1
  50. package/dist/methods/hooks/permitted/state.cjs +3 -4
  51. package/dist/methods/hooks/permitted/state.cjs.map +1 -1
  52. package/dist/methods/hooks/permitted/state.d.cts +31 -3
  53. package/dist/methods/hooks/permitted/state.d.cts.map +1 -1
  54. package/dist/methods/hooks/permitted/state.d.mts +31 -3
  55. package/dist/methods/hooks/permitted/state.d.mts.map +1 -1
  56. package/dist/methods/hooks/request-user-approval.cjs +1 -2
  57. package/dist/methods/hooks/request-user-approval.cjs.map +1 -1
  58. package/dist/methods/hooks/request-user-approval.d.cts +15 -1
  59. package/dist/methods/hooks/request-user-approval.d.cts.map +1 -1
  60. package/dist/methods/hooks/request-user-approval.d.mts +15 -1
  61. package/dist/methods/hooks/request-user-approval.d.mts.map +1 -1
  62. package/dist/methods/hooks/start-trace.cjs +1 -2
  63. package/dist/methods/hooks/start-trace.cjs.map +1 -1
  64. package/dist/methods/hooks/start-trace.d.cts +12 -1
  65. package/dist/methods/hooks/start-trace.d.cts.map +1 -1
  66. package/dist/methods/hooks/start-trace.d.mts +12 -1
  67. package/dist/methods/hooks/start-trace.d.mts.map +1 -1
  68. package/dist/methods/hooks/state.cjs +3 -4
  69. package/dist/methods/hooks/state.cjs.map +1 -1
  70. package/dist/methods/hooks/state.d.cts +37 -3
  71. package/dist/methods/hooks/state.d.cts.map +1 -1
  72. package/dist/methods/hooks/state.d.mts +37 -3
  73. package/dist/methods/hooks/state.d.mts.map +1 -1
  74. package/dist/methods/hooks/track-error.cjs +1 -2
  75. package/dist/methods/hooks/track-error.cjs.map +1 -1
  76. package/dist/methods/hooks/track-error.d.cts +11 -1
  77. package/dist/methods/hooks/track-error.d.cts.map +1 -1
  78. package/dist/methods/hooks/track-error.d.mts +11 -1
  79. package/dist/methods/hooks/track-error.d.mts.map +1 -1
  80. package/dist/methods/hooks/track-event.cjs +1 -2
  81. package/dist/methods/hooks/track-event.cjs.map +1 -1
  82. package/dist/methods/hooks/track-event.d.cts +12 -5
  83. package/dist/methods/hooks/track-event.d.cts.map +1 -1
  84. package/dist/methods/hooks/track-event.d.mts +12 -5
  85. package/dist/methods/hooks/track-event.d.mts.map +1 -1
  86. package/dist/methods/specifications.cjs +4 -5
  87. package/dist/methods/specifications.cjs.map +1 -1
  88. package/dist/middleware/engine.cjs +1 -2
  89. package/dist/middleware/engine.cjs.map +1 -1
  90. package/dist/middleware/internal-methods/accounts.cjs +1 -2
  91. package/dist/middleware/internal-methods/accounts.cjs.map +1 -1
  92. package/dist/middleware/internal-methods/chain-id.cjs +1 -2
  93. package/dist/middleware/internal-methods/chain-id.cjs.map +1 -1
  94. package/dist/middleware/internal-methods/middleware.cjs +1 -2
  95. package/dist/middleware/internal-methods/middleware.cjs.map +1 -1
  96. package/dist/middleware/internal-methods/net-version.cjs +1 -2
  97. package/dist/middleware/internal-methods/net-version.cjs.map +1 -1
  98. package/dist/middleware/internal-methods/switch-ethereum-chain.cjs +1 -2
  99. package/dist/middleware/internal-methods/switch-ethereum-chain.cjs.map +1 -1
  100. package/dist/middleware/mock.cjs +1 -2
  101. package/dist/middleware/mock.cjs.map +1 -1
  102. package/dist/middleware/multichain/create-session.cjs +1 -2
  103. package/dist/middleware/multichain/create-session.cjs.map +1 -1
  104. package/dist/middleware/multichain/create-session.d.cts +1 -1
  105. package/dist/middleware/multichain/create-session.d.mts +1 -1
  106. package/dist/middleware/multichain/get-session.cjs +1 -2
  107. package/dist/middleware/multichain/get-session.cjs.map +1 -1
  108. package/dist/middleware/multichain/invoke-method.cjs +1 -2
  109. package/dist/middleware/multichain/invoke-method.cjs.map +1 -1
  110. package/dist/middleware/multichain/middleware.cjs +1 -2
  111. package/dist/middleware/multichain/middleware.cjs.map +1 -1
  112. package/dist/middleware/multichain/revoke-session.cjs +1 -2
  113. package/dist/middleware/multichain/revoke-session.cjs.map +1 -1
  114. package/dist/middleware/multichain/utils.cjs +1 -2
  115. package/dist/middleware/multichain/utils.cjs.map +1 -1
  116. package/dist/middleware/provider.cjs +1 -2
  117. package/dist/middleware/provider.cjs.map +1 -1
  118. package/dist/options.cjs +1 -2
  119. package/dist/options.cjs.map +1 -1
  120. package/dist/options.d.cts +4 -4
  121. package/dist/options.d.mts +4 -4
  122. package/dist/request.cjs +3 -4
  123. package/dist/request.cjs.map +1 -1
  124. package/dist/simulation.cjs +9 -10
  125. package/dist/simulation.cjs.map +1 -1
  126. package/dist/simulation.d.cts.map +1 -1
  127. package/dist/simulation.d.mts.map +1 -1
  128. package/dist/simulation.mjs +4 -4
  129. package/dist/simulation.mjs.map +1 -1
  130. package/dist/store/chain.d.cts.map +1 -1
  131. package/dist/store/chain.d.mts.map +1 -1
  132. package/dist/store/mocks.d.cts.map +1 -1
  133. package/dist/store/mocks.d.mts.map +1 -1
  134. package/dist/store/notifications.d.cts.map +1 -1
  135. package/dist/store/notifications.d.mts.map +1 -1
  136. package/dist/store/state.cjs +2 -2
  137. package/dist/store/state.cjs.map +1 -1
  138. package/dist/store/state.d.cts +4 -7
  139. package/dist/store/state.d.cts.map +1 -1
  140. package/dist/store/state.d.mts +4 -7
  141. package/dist/store/state.d.mts.map +1 -1
  142. package/dist/store/store.cjs +1 -2
  143. package/dist/store/store.cjs.map +1 -1
  144. package/dist/store/store.d.cts +1 -1
  145. package/dist/store/store.d.mts +1 -1
  146. package/dist/store/trackables.d.cts +6 -6
  147. package/dist/store/trackables.d.cts.map +1 -1
  148. package/dist/store/trackables.d.mts +6 -6
  149. package/dist/store/trackables.d.mts.map +1 -1
  150. package/dist/store/ui.d.cts.map +1 -1
  151. package/dist/store/ui.d.mts.map +1 -1
  152. package/dist/structs.cjs +3 -3
  153. package/dist/structs.cjs.map +1 -1
  154. package/dist/structs.mjs +1 -1
  155. package/dist/structs.mjs.map +1 -1
  156. package/dist/utils/account.d.cts.map +1 -1
  157. package/dist/utils/account.d.mts.map +1 -1
  158. package/dist/utils/errors.cjs +1 -2
  159. package/dist/utils/errors.cjs.map +1 -1
  160. package/dist/validation.cjs +7 -8
  161. package/dist/validation.cjs.map +1 -1
  162. package/package.json +11 -11
@@ -1,24 +1,58 @@
1
1
  import type { Json } from "@metamask/utils";
2
+ import type { SagaIterator } from "redux-saga";
2
3
  import type { RunSagaFunction } from "../../store/index.mjs";
4
+ /**
5
+ * Get the Snap state from the store.
6
+ *
7
+ * @param _snapId - The ID of the Snap to get the state for. This is ignored
8
+ * because the simulator only supports one Snap.
9
+ * @param encrypted - Whether to get the encrypted or unencrypted state.
10
+ * Defaults to encrypted state.
11
+ * @returns The state of the Snap.
12
+ * @yields Selects the state from the store.
13
+ */
14
+ declare function getSnapStateImplementation(_snapId: string, encrypted?: boolean): SagaIterator<string>;
3
15
  /**
4
16
  * Get the implementation of the `getSnapState` hook.
5
17
  *
6
18
  * @param runSaga - The function to run a saga outside the usual Redux flow.
7
19
  * @returns The implementation of the `getSnapState` hook.
8
20
  */
9
- export declare function getGetSnapStateMethodImplementation(runSaga: RunSagaFunction): (_snapId: string, encrypted?: boolean | undefined) => any;
21
+ export declare function getGetSnapStateMethodImplementation(runSaga: RunSagaFunction): (...args: Parameters<typeof getSnapStateImplementation>) => any;
22
+ /**
23
+ * Update the Snap state in the store.
24
+ *
25
+ * @param _snapId - The ID of the Snap to update the state for. This is ignored
26
+ * because the simulator only supports one Snap.
27
+ * @param newState - The new state.
28
+ * @param encrypted - Whether to update the encrypted or unencrypted state.
29
+ * Defaults to encrypted state.
30
+ * @yields Puts the new state in the store.
31
+ */
32
+ declare function updateSnapStateImplementation(_snapId: string, newState: Record<string, Json>, encrypted?: boolean): SagaIterator<void>;
10
33
  /**
11
34
  * Get the implementation of the `updateSnapState` hook.
12
35
  *
13
36
  * @param runSaga - The function to run a saga outside the usual Redux flow.
14
37
  * @returns The implementation of the `updateSnapState` hook.
15
38
  */
16
- export declare function getUpdateSnapStateMethodImplementation(runSaga: RunSagaFunction): (_snapId: string, newState: Record<string, Json>, encrypted?: boolean | undefined) => Promise<void>;
39
+ export declare function getUpdateSnapStateMethodImplementation(runSaga: RunSagaFunction): (...args: Parameters<typeof updateSnapStateImplementation>) => Promise<void>;
40
+ /**
41
+ * Clear the Snap state in the store.
42
+ *
43
+ * @param _snapId - The ID of the Snap to clear the state for. This is ignored
44
+ * because the simulator only supports one Snap.
45
+ * @param encrypted - Whether to clear the encrypted or unencrypted state.
46
+ * Defaults to encrypted state.
47
+ * @yields Puts the new state in the store.
48
+ */
49
+ declare function clearSnapStateImplementation(_snapId: string, encrypted?: boolean): SagaIterator<void>;
17
50
  /**
18
51
  * Get the implementation of the `clearSnapState` hook.
19
52
  *
20
53
  * @param runSaga - The function to run a saga outside the usual Redux flow.
21
54
  * @returns The implementation of the `clearSnapState` hook.
22
55
  */
23
- export declare function getClearSnapStateMethodImplementation(runSaga: RunSagaFunction): (_snapId: string, encrypted?: boolean | undefined) => Promise<void>;
56
+ export declare function getClearSnapStateMethodImplementation(runSaga: RunSagaFunction): (...args: Parameters<typeof clearSnapStateImplementation>) => Promise<void>;
57
+ export {};
24
58
  //# sourceMappingURL=state.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.mts","sourceRoot":"","sources":["../../../src/methods/hooks/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAsBnD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,eAAe,6DAI3E;AAqBD;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,eAAe,uGAKzB;AAkBD;;;;;GAKG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,eAAe,uEAKzB"}
1
+ {"version":3,"file":"state.d.mts","sourceRoot":"","sources":["../../../src/methods/hooks/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB;AAG/C,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAGnD;;;;;;;;;GASG;AACH,iBAAU,0BAA0B,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,UAAO,GACf,YAAY,CAAC,MAAM,CAAC,CAItB;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,eAAe,IAClE,GAAG,MAAM,UAAU,CAAC,OAAO,0BAA0B,CAAC,SAG/D;AAED;;;;;;;;;GASG;AACH,iBAAU,6BAA6B,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC9B,SAAS,UAAO,GACf,YAAY,CAAC,IAAI,CAAC,CAGpB;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,eAAe,IAEV,GAAG,MAAM,UAAU,CAAC,OAAO,6BAA6B,CAAC,mBAGxE;AAED;;;;;;;;GAQG;AACH,iBAAU,4BAA4B,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,UAAO,GACf,YAAY,CAAC,IAAI,CAAC,CAEpB;AAED;;;;;GAKG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,eAAe,IAEV,GAAG,MAAM,UAAU,CAAC,OAAO,4BAA4B,CAAC,mBAGvE"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTrackErrorImplementation = void 0;
3
+ exports.getTrackErrorImplementation = getTrackErrorImplementation;
4
4
  const snaps_sdk_1 = require("@metamask/snaps-sdk");
5
5
  const effects_1 = require("redux-saga/effects");
6
6
  const store_1 = require("../../store/index.cjs");
@@ -27,5 +27,4 @@ function getTrackErrorImplementation(runSaga) {
27
27
  return runSaga(trackErrorImplementation, ...args).result();
28
28
  };
29
29
  }
30
- exports.getTrackErrorImplementation = getTrackErrorImplementation;
31
30
  //# sourceMappingURL=track-error.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-error.cjs","sourceRoot":"","sources":["../../../src/methods/hooks/track-error.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AAEnD,gDAAyC;AAGzC,iDAAyC;AAEzC;;;;;;GAMG;AACH,QAAQ,CAAC,CAAC,wBAAwB,CAAC,KAAY;IAC7C,MAAM,eAAe,GAAG,IAAA,wBAAY,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAA,aAAG,EAAC,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,OAAO,CAAC,GAAG,IAAiD,EAAE,EAAE;QAC9D,OAAO,OAAO,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAJD,kEAIC","sourcesContent":["import { getJsonError } from '@metamask/snaps-sdk';\nimport type { SagaIterator } from 'redux-saga';\nimport { put } from 'redux-saga/effects';\n\nimport type { RunSagaFunction } from '../../store';\nimport { trackError } from '../../store';\n\n/**\n * Track an error.\n *\n * @param error - The error to track.\n * @returns `null`.\n * @yields Adds the error to the store.\n */\nfunction* trackErrorImplementation(error: Error): SagaIterator {\n const serialisedError = getJsonError(error);\n yield put(trackError(serialisedError));\n return null;\n}\n\n/**\n * Get a method that can be used to track an error.\n *\n * @param runSaga - A function to run a saga outside the usual Redux flow.\n * @returns A method that can be used to track an error.\n */\nexport function getTrackErrorImplementation(runSaga: RunSagaFunction) {\n return (...args: Parameters<typeof trackErrorImplementation>) => {\n return runSaga(trackErrorImplementation, ...args).result();\n };\n}\n"]}
1
+ {"version":3,"file":"track-error.cjs","sourceRoot":"","sources":["../../../src/methods/hooks/track-error.ts"],"names":[],"mappings":";;AA0BA,kEAIC;AA9BD,mDAAmD;AAEnD,gDAAyC;AAGzC,iDAAyC;AAEzC;;;;;;GAMG;AACH,QAAQ,CAAC,CAAC,wBAAwB,CAAC,KAAY;IAC7C,MAAM,eAAe,GAAG,IAAA,wBAAY,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAA,aAAG,EAAC,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,OAAO,CAAC,GAAG,IAAiD,EAAE,EAAE;QAC9D,OAAO,OAAO,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { getJsonError } from '@metamask/snaps-sdk';\nimport type { SagaIterator } from 'redux-saga';\nimport { put } from 'redux-saga/effects';\n\nimport type { RunSagaFunction } from '../../store';\nimport { trackError } from '../../store';\n\n/**\n * Track an error.\n *\n * @param error - The error to track.\n * @returns `null`.\n * @yields Adds the error to the store.\n */\nfunction* trackErrorImplementation(error: Error): SagaIterator {\n const serialisedError = getJsonError(error);\n yield put(trackError(serialisedError));\n return null;\n}\n\n/**\n * Get a method that can be used to track an error.\n *\n * @param runSaga - A function to run a saga outside the usual Redux flow.\n * @returns A method that can be used to track an error.\n */\nexport function getTrackErrorImplementation(runSaga: RunSagaFunction) {\n return (...args: Parameters<typeof trackErrorImplementation>) => {\n return runSaga(trackErrorImplementation, ...args).result();\n };\n}\n"]}
@@ -1,9 +1,19 @@
1
+ import type { SagaIterator } from "redux-saga";
1
2
  import type { RunSagaFunction } from "../../store/index.cjs";
3
+ /**
4
+ * Track an error.
5
+ *
6
+ * @param error - The error to track.
7
+ * @returns `null`.
8
+ * @yields Adds the error to the store.
9
+ */
10
+ declare function trackErrorImplementation(error: Error): SagaIterator;
2
11
  /**
3
12
  * Get a method that can be used to track an error.
4
13
  *
5
14
  * @param runSaga - A function to run a saga outside the usual Redux flow.
6
15
  * @returns A method that can be used to track an error.
7
16
  */
8
- export declare function getTrackErrorImplementation(runSaga: RunSagaFunction): (error: Error) => any;
17
+ export declare function getTrackErrorImplementation(runSaga: RunSagaFunction): (...args: Parameters<typeof trackErrorImplementation>) => any;
18
+ export {};
9
19
  //# sourceMappingURL=track-error.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-error.d.cts","sourceRoot":"","sources":["../../../src/methods/hooks/track-error.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAgBnD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,yBAInE"}
1
+ {"version":3,"file":"track-error.d.cts","sourceRoot":"","sources":["../../../src/methods/hooks/track-error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB;AAG/C,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAGnD;;;;;;GAMG;AACH,iBAAU,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAI7D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,IAC1D,GAAG,MAAM,UAAU,CAAC,OAAO,wBAAwB,CAAC,SAG7D"}
@@ -1,9 +1,19 @@
1
+ import type { SagaIterator } from "redux-saga";
1
2
  import type { RunSagaFunction } from "../../store/index.mjs";
3
+ /**
4
+ * Track an error.
5
+ *
6
+ * @param error - The error to track.
7
+ * @returns `null`.
8
+ * @yields Adds the error to the store.
9
+ */
10
+ declare function trackErrorImplementation(error: Error): SagaIterator;
2
11
  /**
3
12
  * Get a method that can be used to track an error.
4
13
  *
5
14
  * @param runSaga - A function to run a saga outside the usual Redux flow.
6
15
  * @returns A method that can be used to track an error.
7
16
  */
8
- export declare function getTrackErrorImplementation(runSaga: RunSagaFunction): (error: Error) => any;
17
+ export declare function getTrackErrorImplementation(runSaga: RunSagaFunction): (...args: Parameters<typeof trackErrorImplementation>) => any;
18
+ export {};
9
19
  //# sourceMappingURL=track-error.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-error.d.mts","sourceRoot":"","sources":["../../../src/methods/hooks/track-error.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAgBnD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,yBAInE"}
1
+ {"version":3,"file":"track-error.d.mts","sourceRoot":"","sources":["../../../src/methods/hooks/track-error.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB;AAG/C,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAGnD;;;;;;GAMG;AACH,iBAAU,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAI7D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,IAC1D,GAAG,MAAM,UAAU,CAAC,OAAO,wBAAwB,CAAC,SAG7D"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTrackEventImplementation = void 0;
3
+ exports.getTrackEventImplementation = getTrackEventImplementation;
4
4
  const effects_1 = require("redux-saga/effects");
5
5
  const store_1 = require("../../store/index.cjs");
6
6
  /**
@@ -25,5 +25,4 @@ function getTrackEventImplementation(runSaga) {
25
25
  return runSaga(trackEventImplementation, ...args).result();
26
26
  };
27
27
  }
28
- exports.getTrackEventImplementation = getTrackEventImplementation;
29
28
  //# sourceMappingURL=track-event.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-event.cjs","sourceRoot":"","sources":["../../../src/methods/hooks/track-event.ts"],"names":[],"mappings":";;;AAEA,gDAAyC;AAGzC,iDAAyC;AAEzC;;;;;;GAMG;AACH,QAAQ,CAAC,CAAC,wBAAwB,CAChC,KAAgC;IAEhC,MAAM,IAAA,aAAG,EAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,OAAO,CAAC,GAAG,IAAiD,EAAE,EAAE;QAC9D,OAAO,OAAO,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAJD,kEAIC","sourcesContent":["import type { TrackEventParams } from '@metamask/snaps-sdk';\nimport type { SagaIterator } from 'redux-saga';\nimport { put } from 'redux-saga/effects';\n\nimport type { RunSagaFunction } from '../../store';\nimport { trackEvent } from '../../store';\n\n/**\n * Track an event.\n *\n * @param event - The event to track.\n * @returns `null`.\n * @yields Adds the event to the store.\n */\nfunction* trackEventImplementation(\n event: TrackEventParams['event'],\n): SagaIterator {\n yield put(trackEvent(event));\n return null;\n}\n\n/**\n * Get a method that can be used to track an event.\n *\n * @param runSaga - A function to run a saga outside the usual Redux flow.\n * @returns A method that can be used to track an event.\n */\nexport function getTrackEventImplementation(runSaga: RunSagaFunction) {\n return (...args: Parameters<typeof trackEventImplementation>) => {\n return runSaga(trackEventImplementation, ...args).result();\n };\n}\n"]}
1
+ {"version":3,"file":"track-event.cjs","sourceRoot":"","sources":["../../../src/methods/hooks/track-event.ts"],"names":[],"mappings":";;AA2BA,kEAIC;AA7BD,gDAAyC;AAGzC,iDAAyC;AAEzC;;;;;;GAMG;AACH,QAAQ,CAAC,CAAC,wBAAwB,CAChC,KAAgC;IAEhC,MAAM,IAAA,aAAG,EAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,OAAwB;IAClE,OAAO,CAAC,GAAG,IAAiD,EAAE,EAAE;QAC9D,OAAO,OAAO,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { TrackEventParams } from '@metamask/snaps-sdk';\nimport type { SagaIterator } from 'redux-saga';\nimport { put } from 'redux-saga/effects';\n\nimport type { RunSagaFunction } from '../../store';\nimport { trackEvent } from '../../store';\n\n/**\n * Track an event.\n *\n * @param event - The event to track.\n * @returns `null`.\n * @yields Adds the event to the store.\n */\nfunction* trackEventImplementation(\n event: TrackEventParams['event'],\n): SagaIterator {\n yield put(trackEvent(event));\n return null;\n}\n\n/**\n * Get a method that can be used to track an event.\n *\n * @param runSaga - A function to run a saga outside the usual Redux flow.\n * @returns A method that can be used to track an event.\n */\nexport function getTrackEventImplementation(runSaga: RunSagaFunction) {\n return (...args: Parameters<typeof trackEventImplementation>) => {\n return runSaga(trackEventImplementation, ...args).result();\n };\n}\n"]}
@@ -1,13 +1,20 @@
1
+ import type { TrackEventParams } from "@metamask/snaps-sdk";
2
+ import type { SagaIterator } from "redux-saga";
1
3
  import type { RunSagaFunction } from "../../store/index.cjs";
4
+ /**
5
+ * Track an event.
6
+ *
7
+ * @param event - The event to track.
8
+ * @returns `null`.
9
+ * @yields Adds the event to the store.
10
+ */
11
+ declare function trackEventImplementation(event: TrackEventParams['event']): SagaIterator;
2
12
  /**
3
13
  * Get a method that can be used to track an event.
4
14
  *
5
15
  * @param runSaga - A function to run a saga outside the usual Redux flow.
6
16
  * @returns A method that can be used to track an event.
7
17
  */
8
- export declare function getTrackEventImplementation(runSaga: RunSagaFunction): (event: {
9
- event: string;
10
- properties?: Record<string, import("@metamask/snaps-sdk").Json> | undefined;
11
- sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json> | undefined;
12
- }) => any;
18
+ export declare function getTrackEventImplementation(runSaga: RunSagaFunction): (...args: Parameters<typeof trackEventImplementation>) => any;
19
+ export {};
13
20
  //# sourceMappingURL=track-event.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-event.d.cts","sourceRoot":"","sources":["../../../src/methods/hooks/track-event.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAiBnD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe;;;;UAInE"}
1
+ {"version":3,"file":"track-event.d.cts","sourceRoot":"","sources":["../../../src/methods/hooks/track-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB;AAG/C,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAGnD;;;;;;GAMG;AACH,iBAAU,wBAAwB,CAChC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAC/B,YAAY,CAGd;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,IAC1D,GAAG,MAAM,UAAU,CAAC,OAAO,wBAAwB,CAAC,SAG7D"}
@@ -1,13 +1,20 @@
1
+ import type { TrackEventParams } from "@metamask/snaps-sdk";
2
+ import type { SagaIterator } from "redux-saga";
1
3
  import type { RunSagaFunction } from "../../store/index.mjs";
4
+ /**
5
+ * Track an event.
6
+ *
7
+ * @param event - The event to track.
8
+ * @returns `null`.
9
+ * @yields Adds the event to the store.
10
+ */
11
+ declare function trackEventImplementation(event: TrackEventParams['event']): SagaIterator;
2
12
  /**
3
13
  * Get a method that can be used to track an event.
4
14
  *
5
15
  * @param runSaga - A function to run a saga outside the usual Redux flow.
6
16
  * @returns A method that can be used to track an event.
7
17
  */
8
- export declare function getTrackEventImplementation(runSaga: RunSagaFunction): (event: {
9
- event: string;
10
- properties?: Record<string, import("@metamask/snaps-sdk").Json> | undefined;
11
- sensitiveProperties?: Record<string, import("@metamask/snaps-sdk").Json> | undefined;
12
- }) => any;
18
+ export declare function getTrackEventImplementation(runSaga: RunSagaFunction): (...args: Parameters<typeof trackEventImplementation>) => any;
19
+ export {};
13
20
  //# sourceMappingURL=track-event.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"track-event.d.mts","sourceRoot":"","sources":["../../../src/methods/hooks/track-event.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAiBnD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe;;;;UAInE"}
1
+ {"version":3,"file":"track-event.d.mts","sourceRoot":"","sources":["../../../src/methods/hooks/track-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB;AAG/C,OAAO,KAAK,EAAE,eAAe,EAAE,8BAAoB;AAGnD;;;;;;GAMG;AACH,iBAAU,wBAAwB,CAChC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAC/B,YAAY,CAGd;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,eAAe,IAC1D,GAAG,MAAM,UAAU,CAAC,OAAO,wBAAwB,CAAC,SAG7D"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEndowments = exports.getPermissionSpecifications = exports.asyncResolve = exports.resolve = void 0;
3
+ exports.resolve = resolve;
4
+ exports.asyncResolve = asyncResolve;
5
+ exports.getPermissionSpecifications = getPermissionSpecifications;
6
+ exports.getEndowments = getEndowments;
4
7
  const chain_agnostic_permission_1 = require("@metamask/chain-agnostic-permission");
5
8
  const snaps_rpc_methods_1 = require("@metamask/snaps-rpc-methods");
6
9
  const snaps_utils_1 = require("@metamask/snaps-utils");
@@ -15,7 +18,6 @@ const hooks_1 = require("./hooks/index.cjs");
15
18
  function resolve(result) {
16
19
  return () => result;
17
20
  }
18
- exports.resolve = resolve;
19
21
  /**
20
22
  * Get a function which resolves with the specified result.
21
23
  *
@@ -26,7 +28,6 @@ exports.resolve = resolve;
26
28
  function asyncResolve(result) {
27
29
  return async () => result;
28
30
  }
29
- exports.asyncResolve = asyncResolve;
30
31
  /**
31
32
  * Get the permission specifications for the Snap.
32
33
  *
@@ -54,7 +55,6 @@ function getPermissionSpecifications({ controllerMessenger, hooks, options, }) {
54
55
  }, controllerMessenger),
55
56
  };
56
57
  }
57
- exports.getPermissionSpecifications = getPermissionSpecifications;
58
58
  /**
59
59
  * Get the endowments for the Snap.
60
60
  *
@@ -75,5 +75,4 @@ async function getEndowments(permissionController, snapId) {
75
75
  }, Promise.resolve([]));
76
76
  return [...new Set([...snaps_utils_1.DEFAULT_ENDOWMENTS, ...allEndowments])];
77
77
  }
78
- exports.getEndowments = getEndowments;
79
78
  //# sourceMappingURL=specifications.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"specifications.cjs","sourceRoot":"","sources":["../../src/methods/specifications.ts"],"names":[],"mappings":";;;AAAA,mFAA6E;AAQ7E,mEAIqC;AAErC,uDAA2D;AAE3D,+CAGqB;AACrB,6CAAgE;AAoBhE;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,MAAe;IACrC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;AACtB,CAAC;AAFD,0BAEC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAO,MAAa;IAC9C,OAAO,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;AAC5B,CAAC;AAFD,oCAEC;AAED;;;;;;;;GAQG;AACH,SAAgB,2BAA2B,CAAC,EAC1C,mBAAmB,EACnB,KAAK,EACL,OAAO,GAC4B;IACnC,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IACxC,OAAO;QACL,CAAC,kDAAsB,CAAC,UAAU,CAAC,EACjC,kDAAsB,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACjD,GAAG,IAAA,oDAAgC,EAAC,oCAAwB,CAAC;QAC7D,GAAG,IAAA,2DAAuC,EACxC,qCAAyB,EACzB;YACE,gBAAgB;YAChB,qBAAqB;YAErB,wBAAwB;YACxB,cAAc,EAAE,IAAA,6CAAqC,EAAC,OAAO,CAAC;YAC9D,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC;YACpC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC;YAElC,+DAA+D;YAC/D,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC;YAEhC,uBAAuB,EAAE,YAAY,EAAE;SACxC,EACD,mBAAgD,CACjD;KACF,CAAC;AACJ,CAAC;AA7BD,kEA6BC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CACjC,oBAAiD,EACjD,MAAc;IAEd,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,+CAA2B,CAAC,CAAC,MAAM,CAEzE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,oBAAoB,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,aAAa,CACzD,MAAM,EACN,cAAc,CACf,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,MAAM,CAAC,UAAsB,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,gCAAkB,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAvBD,sCAuBC","sourcesContent":["import { caip25EndowmentBuilder } from '@metamask/chain-agnostic-permission';\nimport type { CryptographicFunctions } from '@metamask/key-tree';\nimport type {\n GenericPermissionController,\n PermissionSpecificationConstraint,\n PermissionSpecificationMap,\n} from '@metamask/permission-controller';\nimport type { RestrictedMethodMessenger } from '@metamask/snaps-rpc-methods';\nimport {\n endowmentPermissionBuilders,\n buildSnapEndowmentSpecifications,\n buildSnapRestrictedMethodSpecifications,\n} from '@metamask/snaps-rpc-methods';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { DEFAULT_ENDOWMENTS } from '@metamask/snaps-utils';\n\nimport {\n EXCLUDED_SNAP_ENDOWMENTS,\n EXCLUDED_SNAP_PERMISSIONS,\n} from './constants';\nimport { getGetPreferencesMethodImplementation } from './hooks';\nimport type { RootControllerMessenger } from '../controllers';\nimport type { SimulationOptions } from '../options';\n\nexport type PermissionSpecificationsHooks = {\n /**\n * Get the cryptographic functions to use for the client. This may return an\n * empty object to fall back to the default cryptographic functions.\n *\n * @returns The cryptographic functions to use for the client.\n */\n getClientCryptography: () => CryptographicFunctions;\n};\n\nexport type GetPermissionSpecificationsOptions = {\n controllerMessenger: RootControllerMessenger;\n hooks: PermissionSpecificationsHooks;\n options: SimulationOptions;\n};\n\n/**\n * Get a function which resolves with the specified result.\n *\n * @param result - The result to return.\n * @returns The function implementation.\n */\nexport function resolve(result: unknown) {\n return () => result;\n}\n\n/**\n * Get a function which resolves with the specified result.\n *\n * @param result - The result to return. If not specified, the function will\n * resolve with `undefined`.\n * @returns The function implementation.\n */\nexport function asyncResolve<Type>(result?: Type) {\n return async () => result;\n}\n\n/**\n * Get the permission specifications for the Snap.\n *\n * @param options - The options.\n * @param options.controllerMessenger - The controller messenger.\n * @param options.hooks - The hooks.\n * @param options.options - The simulation options.\n * @returns The permission specifications for the Snap.\n */\nexport function getPermissionSpecifications({\n controllerMessenger,\n hooks,\n options,\n}: GetPermissionSpecificationsOptions): PermissionSpecificationMap<PermissionSpecificationConstraint> {\n const { getClientCryptography } = hooks;\n return {\n [caip25EndowmentBuilder.targetName]:\n caip25EndowmentBuilder.specificationBuilder({}),\n ...buildSnapEndowmentSpecifications(EXCLUDED_SNAP_ENDOWMENTS),\n ...buildSnapRestrictedMethodSpecifications(\n EXCLUDED_SNAP_PERMISSIONS,\n {\n // Shared hooks.\n getClientCryptography,\n\n // Snaps-specific hooks.\n getPreferences: getGetPreferencesMethodImplementation(options),\n getUnlockPromise: asyncResolve(true),\n getSnapKeyring: asyncResolve(null),\n\n // TODO: Allow the user to specify the result of this function.\n isOnPhishingList: resolve(false),\n\n maybeUpdatePhishingList: asyncResolve(),\n },\n controllerMessenger as RestrictedMethodMessenger,\n ),\n };\n}\n\n/**\n * Get the endowments for the Snap.\n *\n * @param permissionController - The permission controller.\n * @param snapId - The ID of the Snap.\n * @returns The endowments for the Snap.\n */\nexport async function getEndowments(\n permissionController: GenericPermissionController,\n snapId: SnapId,\n) {\n const allEndowments = await Object.keys(endowmentPermissionBuilders).reduce<\n Promise<string[]>\n >(async (promise, permissionName) => {\n const accumulator = await promise;\n if (permissionController.hasPermission(snapId, permissionName)) {\n const endowments = await permissionController.getEndowments(\n snapId,\n permissionName,\n );\n\n if (endowments) {\n return accumulator.concat(endowments as string[]);\n }\n }\n\n return accumulator;\n }, Promise.resolve([]));\n\n return [...new Set([...DEFAULT_ENDOWMENTS, ...allEndowments])];\n}\n"]}
1
+ {"version":3,"file":"specifications.cjs","sourceRoot":"","sources":["../../src/methods/specifications.ts"],"names":[],"mappings":";;AA8CA,0BAEC;AASD,oCAEC;AAWD,kEA6BC;AASD,sCAuBC;AAnID,mFAA6E;AAQ7E,mEAIqC;AAErC,uDAA2D;AAE3D,+CAGqB;AACrB,6CAAgE;AAoBhE;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,MAAe;IACrC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAO,MAAa;IAC9C,OAAO,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;AAC5B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,2BAA2B,CAAC,EAC1C,mBAAmB,EACnB,KAAK,EACL,OAAO,GAC4B;IACnC,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IACxC,OAAO;QACL,CAAC,kDAAsB,CAAC,UAAU,CAAC,EACjC,kDAAsB,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACjD,GAAG,IAAA,oDAAgC,EAAC,oCAAwB,CAAC;QAC7D,GAAG,IAAA,2DAAuC,EACxC,qCAAyB,EACzB;YACE,gBAAgB;YAChB,qBAAqB;YAErB,wBAAwB;YACxB,cAAc,EAAE,IAAA,6CAAqC,EAAC,OAAO,CAAC;YAC9D,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC;YACpC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC;YAElC,+DAA+D;YAC/D,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC;YAEhC,uBAAuB,EAAE,YAAY,EAAE;SACxC,EACD,mBAAgD,CACjD;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CACjC,oBAAiD,EACjD,MAAc;IAEd,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,+CAA2B,CAAC,CAAC,MAAM,CAEzE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,oBAAoB,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,aAAa,CACzD,MAAM,EACN,cAAc,CACf,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,MAAM,CAAC,UAAsB,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,gCAAkB,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC","sourcesContent":["import { caip25EndowmentBuilder } from '@metamask/chain-agnostic-permission';\nimport type { CryptographicFunctions } from '@metamask/key-tree';\nimport type {\n GenericPermissionController,\n PermissionSpecificationConstraint,\n PermissionSpecificationMap,\n} from '@metamask/permission-controller';\nimport type { RestrictedMethodMessenger } from '@metamask/snaps-rpc-methods';\nimport {\n endowmentPermissionBuilders,\n buildSnapEndowmentSpecifications,\n buildSnapRestrictedMethodSpecifications,\n} from '@metamask/snaps-rpc-methods';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { DEFAULT_ENDOWMENTS } from '@metamask/snaps-utils';\n\nimport {\n EXCLUDED_SNAP_ENDOWMENTS,\n EXCLUDED_SNAP_PERMISSIONS,\n} from './constants';\nimport { getGetPreferencesMethodImplementation } from './hooks';\nimport type { RootControllerMessenger } from '../controllers';\nimport type { SimulationOptions } from '../options';\n\nexport type PermissionSpecificationsHooks = {\n /**\n * Get the cryptographic functions to use for the client. This may return an\n * empty object to fall back to the default cryptographic functions.\n *\n * @returns The cryptographic functions to use for the client.\n */\n getClientCryptography: () => CryptographicFunctions;\n};\n\nexport type GetPermissionSpecificationsOptions = {\n controllerMessenger: RootControllerMessenger;\n hooks: PermissionSpecificationsHooks;\n options: SimulationOptions;\n};\n\n/**\n * Get a function which resolves with the specified result.\n *\n * @param result - The result to return.\n * @returns The function implementation.\n */\nexport function resolve(result: unknown) {\n return () => result;\n}\n\n/**\n * Get a function which resolves with the specified result.\n *\n * @param result - The result to return. If not specified, the function will\n * resolve with `undefined`.\n * @returns The function implementation.\n */\nexport function asyncResolve<Type>(result?: Type) {\n return async () => result;\n}\n\n/**\n * Get the permission specifications for the Snap.\n *\n * @param options - The options.\n * @param options.controllerMessenger - The controller messenger.\n * @param options.hooks - The hooks.\n * @param options.options - The simulation options.\n * @returns The permission specifications for the Snap.\n */\nexport function getPermissionSpecifications({\n controllerMessenger,\n hooks,\n options,\n}: GetPermissionSpecificationsOptions): PermissionSpecificationMap<PermissionSpecificationConstraint> {\n const { getClientCryptography } = hooks;\n return {\n [caip25EndowmentBuilder.targetName]:\n caip25EndowmentBuilder.specificationBuilder({}),\n ...buildSnapEndowmentSpecifications(EXCLUDED_SNAP_ENDOWMENTS),\n ...buildSnapRestrictedMethodSpecifications(\n EXCLUDED_SNAP_PERMISSIONS,\n {\n // Shared hooks.\n getClientCryptography,\n\n // Snaps-specific hooks.\n getPreferences: getGetPreferencesMethodImplementation(options),\n getUnlockPromise: asyncResolve(true),\n getSnapKeyring: asyncResolve(null),\n\n // TODO: Allow the user to specify the result of this function.\n isOnPhishingList: resolve(false),\n\n maybeUpdatePhishingList: asyncResolve(),\n },\n controllerMessenger as RestrictedMethodMessenger,\n ),\n };\n}\n\n/**\n * Get the endowments for the Snap.\n *\n * @param permissionController - The permission controller.\n * @param snapId - The ID of the Snap.\n * @returns The endowments for the Snap.\n */\nexport async function getEndowments(\n permissionController: GenericPermissionController,\n snapId: SnapId,\n) {\n const allEndowments = await Object.keys(endowmentPermissionBuilders).reduce<\n Promise<string[]>\n >(async (promise, permissionName) => {\n const accumulator = await promise;\n if (permissionController.hasPermission(snapId, permissionName)) {\n const endowments = await permissionController.getEndowments(\n snapId,\n permissionName,\n );\n\n if (endowments) {\n return accumulator.concat(endowments as string[]);\n }\n }\n\n return accumulator;\n }, Promise.resolve([]));\n\n return [...new Set([...DEFAULT_ENDOWMENTS, ...allEndowments])];\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createJsonRpcEngine = void 0;
3
+ exports.createJsonRpcEngine = createJsonRpcEngine;
4
4
  const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
5
5
  const permission_controller_1 = require("@metamask/permission-controller");
6
6
  const snaps_rpc_methods_1 = require("@metamask/snaps-rpc-methods");
@@ -38,5 +38,4 @@ function createJsonRpcEngine({ snapId, messenger, store, restrictedHooks, permit
38
38
  engine.push((0, provider_1.createProviderMiddleware)(store));
39
39
  return engine;
40
40
  }
41
- exports.createJsonRpcEngine = createJsonRpcEngine;
42
41
  //# sourceMappingURL=engine.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.cjs","sourceRoot":"","sources":["../../src/middleware/engine.ts"],"names":[],"mappings":";;;AAAA,+DAGmC;AACnC,2EAA6E;AAC7E,mEAA0E;AAG1E,mEAAqE;AACrE,qCAA8C;AAC9C,uDAA0D;AAC1D,6CAAsD;AAoBtD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,SAAS,EACT,KAAK,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,GACe;IAC3B,MAAM,MAAM,GAAG,IAAI,+BAAa,EAAE,CAAC;IAEnC,MAAM,CAAC,IAAI,CAAC,IAAA,wCAAsB,EAAC,MAAM,CAAC,CAAC,CAAC;IAE5C,MAAM,CAAC,IAAI,CAAC,IAAA,uCAA0B,EAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvE,MAAM,CAAC,IAAI,CAAC,IAAA,2BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC;IAEzC,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,CAAC,IAAI,CAAC,IAAA,kDAA+B,EAAC,eAAe,CAAC,CAAC,CAAC;IAE9D,wCAAwC;IACxC,MAAM,CAAC,IAAI,CAAC,IAAA,+CAA2B,EAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1E,MAAM,CAAC,IAAI,CAAC,IAAA,kDAA0B,EAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,IAAI,CAAC,IAAA,mCAAwB,EAAC,KAAK,CAAC,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC;AA5BD,kDA4BC","sourcesContent":["import {\n JsonRpcEngine,\n createOriginMiddleware,\n} from '@metamask/json-rpc-engine';\nimport { createPermissionMiddleware } from '@metamask/permission-controller';\nimport { createSnapsMethodMiddleware } from '@metamask/snaps-rpc-methods';\nimport type { SnapId } from '@metamask/snaps-sdk';\n\nimport { createInternalMethodsMiddleware } from './internal-methods';\nimport { createMockMiddleware } from './mock';\nimport { createMultichainMiddleware } from './multichain';\nimport { createProviderMiddleware } from './provider';\nimport type { RootControllerMessenger } from '../controllers';\nimport type {\n MultichainMiddlewareHooks,\n PermittedMiddlewareHooks,\n RestrictedMiddlewareHooks,\n} from '../simulation';\nimport type { Store } from '../store';\n\nexport type CreateJsonRpcEngineOptions = {\n snapId: SnapId;\n messenger: RootControllerMessenger;\n store: Store;\n restrictedHooks: RestrictedMiddlewareHooks;\n permittedHooks: PermittedMiddlewareHooks;\n multichainHooks: MultichainMiddlewareHooks;\n endpoint?: string;\n isMultichain: boolean;\n};\n\n/**\n * Create a JSON-RPC engine for use in a simulated environment. This engine\n * should be used to handle all JSON-RPC requests. It is set up to handle\n * requests that would normally be handled internally by the MetaMask client, as\n * well as Snap-specific requests.\n *\n * @param options - The options to use when creating the engine.\n * @param options.snapId - The Snap ID.\n * @param options.messenger - The messenger.\n * @param options.store - The Redux store to use.\n * @param options.restrictedHooks - Any hooks used by the middleware handlers.\n * @param options.permittedHooks - Any hooks used by the middleware handlers.\n * @param options.multichainHooks - Hooks used by the multichain middleware.\n * @param options.isMultichain - Whether the engine is used for multichain.\n * @returns A JSON-RPC engine.\n */\nexport function createJsonRpcEngine({\n snapId,\n messenger,\n store,\n restrictedHooks,\n permittedHooks,\n multichainHooks,\n isMultichain,\n}: CreateJsonRpcEngineOptions) {\n const engine = new JsonRpcEngine();\n\n engine.push(createOriginMiddleware(snapId));\n\n engine.push(createMultichainMiddleware(isMultichain, multichainHooks));\n\n engine.push(createMockMiddleware(store));\n\n // The hooks here do not match the hooks used by the clients, so this\n // middleware should not be used outside of the simulation environment.\n engine.push(createInternalMethodsMiddleware(restrictedHooks));\n\n // @ts-expect-error Hooks type mismatch.\n engine.push(createSnapsMethodMiddleware(true, permittedHooks, messenger));\n\n engine.push(createPermissionMiddleware({ messenger, origin: snapId }));\n engine.push(createProviderMiddleware(store));\n\n return engine;\n}\n"]}
1
+ {"version":3,"file":"engine.cjs","sourceRoot":"","sources":["../../src/middleware/engine.ts"],"names":[],"mappings":";;AA+CA,kDA4BC;AA3ED,+DAGmC;AACnC,2EAA6E;AAC7E,mEAA0E;AAG1E,mEAAqE;AACrE,qCAA8C;AAC9C,uDAA0D;AAC1D,6CAAsD;AAoBtD;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,SAAS,EACT,KAAK,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,GACe;IAC3B,MAAM,MAAM,GAAG,IAAI,+BAAa,EAAE,CAAC;IAEnC,MAAM,CAAC,IAAI,CAAC,IAAA,wCAAsB,EAAC,MAAM,CAAC,CAAC,CAAC;IAE5C,MAAM,CAAC,IAAI,CAAC,IAAA,uCAA0B,EAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvE,MAAM,CAAC,IAAI,CAAC,IAAA,2BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC;IAEzC,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,CAAC,IAAI,CAAC,IAAA,kDAA+B,EAAC,eAAe,CAAC,CAAC,CAAC;IAE9D,wCAAwC;IACxC,MAAM,CAAC,IAAI,CAAC,IAAA,+CAA2B,EAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1E,MAAM,CAAC,IAAI,CAAC,IAAA,kDAA0B,EAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,IAAI,CAAC,IAAA,mCAAwB,EAAC,KAAK,CAAC,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import {\n JsonRpcEngine,\n createOriginMiddleware,\n} from '@metamask/json-rpc-engine';\nimport { createPermissionMiddleware } from '@metamask/permission-controller';\nimport { createSnapsMethodMiddleware } from '@metamask/snaps-rpc-methods';\nimport type { SnapId } from '@metamask/snaps-sdk';\n\nimport { createInternalMethodsMiddleware } from './internal-methods';\nimport { createMockMiddleware } from './mock';\nimport { createMultichainMiddleware } from './multichain';\nimport { createProviderMiddleware } from './provider';\nimport type { RootControllerMessenger } from '../controllers';\nimport type {\n MultichainMiddlewareHooks,\n PermittedMiddlewareHooks,\n RestrictedMiddlewareHooks,\n} from '../simulation';\nimport type { Store } from '../store';\n\nexport type CreateJsonRpcEngineOptions = {\n snapId: SnapId;\n messenger: RootControllerMessenger;\n store: Store;\n restrictedHooks: RestrictedMiddlewareHooks;\n permittedHooks: PermittedMiddlewareHooks;\n multichainHooks: MultichainMiddlewareHooks;\n endpoint?: string;\n isMultichain: boolean;\n};\n\n/**\n * Create a JSON-RPC engine for use in a simulated environment. This engine\n * should be used to handle all JSON-RPC requests. It is set up to handle\n * requests that would normally be handled internally by the MetaMask client, as\n * well as Snap-specific requests.\n *\n * @param options - The options to use when creating the engine.\n * @param options.snapId - The Snap ID.\n * @param options.messenger - The messenger.\n * @param options.store - The Redux store to use.\n * @param options.restrictedHooks - Any hooks used by the middleware handlers.\n * @param options.permittedHooks - Any hooks used by the middleware handlers.\n * @param options.multichainHooks - Hooks used by the multichain middleware.\n * @param options.isMultichain - Whether the engine is used for multichain.\n * @returns A JSON-RPC engine.\n */\nexport function createJsonRpcEngine({\n snapId,\n messenger,\n store,\n restrictedHooks,\n permittedHooks,\n multichainHooks,\n isMultichain,\n}: CreateJsonRpcEngineOptions) {\n const engine = new JsonRpcEngine();\n\n engine.push(createOriginMiddleware(snapId));\n\n engine.push(createMultichainMiddleware(isMultichain, multichainHooks));\n\n engine.push(createMockMiddleware(store));\n\n // The hooks here do not match the hooks used by the clients, so this\n // middleware should not be used outside of the simulation environment.\n engine.push(createInternalMethodsMiddleware(restrictedHooks));\n\n // @ts-expect-error Hooks type mismatch.\n engine.push(createSnapsMethodMiddleware(true, permittedHooks, messenger));\n\n engine.push(createPermissionMiddleware({ messenger, origin: snapId }));\n engine.push(createProviderMiddleware(store));\n\n return engine;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAccountsHandler = void 0;
3
+ exports.getAccountsHandler = getAccountsHandler;
4
4
  const key_tree_1 = require("@metamask/key-tree");
5
5
  /**
6
6
  * A mock handler for account related methods that always returns the first
@@ -30,5 +30,4 @@ async function getAccountsHandler(_request, response, _next, end, hooks) {
30
30
  response.result = [node.address];
31
31
  return end();
32
32
  }
33
- exports.getAccountsHandler = getAccountsHandler;
34
33
  //# sourceMappingURL=accounts.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/accounts.ts"],"names":[],"mappings":";;;AAIA,iDAA+C;AAO/C;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,kBAAkB,CACtC,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAA8B;IAE9B,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAE9B,MAAM,IAAI,GAAG,MAAM,oBAAS,CAAC,kBAAkB,CAAC;QAC9C,cAAc,EAAE;YACd,MAAM,WAAW,EAAE;YACnB,WAAW;YACX,WAAW;YACX,UAAU;YACV,SAAS;YACT,SAAS;SACV;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAtBD,gDAsBC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { BIP44Node } from '@metamask/key-tree';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\nexport type GetAccountsHandlerHooks = {\n getMnemonic: () => Promise<Uint8Array>;\n};\n\n/**\n * A mock handler for account related methods that always returns the first\n * address for the selected secret recovery phrase.\n *\n * @param _request - Incoming JSON-RPC request. This is ignored for this\n * specific handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - Any hooks required by this handler.\n * @returns The JSON-RPC response.\n */\nexport async function getAccountsHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: GetAccountsHandlerHooks,\n) {\n const { getMnemonic } = hooks;\n\n const node = await BIP44Node.fromDerivationPath({\n derivationPath: [\n await getMnemonic(),\n `bip32:44'`,\n `bip32:60'`,\n `bip32:0'`,\n `bip32:0`,\n `bip32:0`,\n ],\n });\n\n response.result = [node.address];\n return end();\n}\n"]}
1
+ {"version":3,"file":"accounts.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/accounts.ts"],"names":[],"mappings":";;AAwBA,gDAsBC;AA1CD,iDAA+C;AAO/C;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,kBAAkB,CACtC,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAA8B;IAE9B,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAE9B,MAAM,IAAI,GAAG,MAAM,oBAAS,CAAC,kBAAkB,CAAC;QAC9C,cAAc,EAAE;YACd,MAAM,WAAW,EAAE;YACnB,WAAW;YACX,WAAW;YACX,UAAU;YACV,SAAS;YACT,SAAS;SACV;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { BIP44Node } from '@metamask/key-tree';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\nexport type GetAccountsHandlerHooks = {\n getMnemonic: () => Promise<Uint8Array>;\n};\n\n/**\n * A mock handler for account related methods that always returns the first\n * address for the selected secret recovery phrase.\n *\n * @param _request - Incoming JSON-RPC request. This is ignored for this\n * specific handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - Any hooks required by this handler.\n * @returns The JSON-RPC response.\n */\nexport async function getAccountsHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: GetAccountsHandlerHooks,\n) {\n const { getMnemonic } = hooks;\n\n const node = await BIP44Node.fromDerivationPath({\n derivationPath: [\n await getMnemonic(),\n `bip32:44'`,\n `bip32:60'`,\n `bip32:0'`,\n `bip32:0`,\n `bip32:0`,\n ],\n });\n\n response.result = [node.address];\n return end();\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getChainIdHandler = void 0;
3
+ exports.getChainIdHandler = getChainIdHandler;
4
4
  const utils_1 = require("@metamask/utils");
5
5
  /**
6
6
  * A mock handler for eth_chainId that always returns a specific
@@ -21,5 +21,4 @@ async function getChainIdHandler(request, response, _next, end, hooks) {
21
21
  : hooks.getSimulationState().chain.chainId;
22
22
  return end();
23
23
  }
24
- exports.getChainIdHandler = getChainIdHandler;
25
24
  //# sourceMappingURL=chain-id.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain-id.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":";;;AAIA,2CAIyB;AAKzB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,iBAAiB,CACrC,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAE7C,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAbD,8CAaC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n bigIntToHex,\n parseCaipChainId,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\n\n/**\n * A mock handler for eth_chainId that always returns a specific\n * hardcoded result.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function getChainIdHandler(\n request: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? bigIntToHex(BigInt(requestScope.reference))\n : hooks.getSimulationState().chain.chainId;\n\n return end();\n}\n"]}
1
+ {"version":3,"file":"chain-id.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":";;AAyBA,8CAaC;AAlCD,2CAIyB;AAKzB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,iBAAiB,CACrC,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAE7C,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n bigIntToHex,\n parseCaipChainId,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\n\n/**\n * A mock handler for eth_chainId that always returns a specific\n * hardcoded result.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function getChainIdHandler(\n request: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? bigIntToHex(BigInt(requestScope.reference))\n : hooks.getSimulationState().chain.chainId;\n\n return end();\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createInternalMethodsMiddleware = void 0;
3
+ exports.createInternalMethodsMiddleware = createInternalMethodsMiddleware;
4
4
  const snaps_utils_1 = require("@metamask/snaps-utils");
5
5
  const accounts_1 = require("./accounts.cjs");
6
6
  const chain_id_1 = require("./chain-id.cjs");
@@ -44,5 +44,4 @@ function createInternalMethodsMiddleware(hooks) {
44
44
  return next();
45
45
  };
46
46
  }
47
- exports.createInternalMethodsMiddleware = createInternalMethodsMiddleware;
48
47
  //# sourceMappingURL=middleware.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":";;;AACA,uDAAiD;AAGjD,6CAAgD;AAChD,6CAA+C;AAC/C,mDAAyD;AACzD,uEAAwE;AA0BxE,MAAM,cAAc,GAAG;IACrB,yDAAyD;IACzD,mBAAmB,EAAE,6BAAkB;IACvC,YAAY,EAAE,6BAAkB;IAChC,WAAW,EAAE,4BAAiB;IAC9B,WAAW,EAAE,sCAAwB;IACrC,0BAA0B,EAAE,qDAA6B;IACzD,wDAAwD;CACzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAC7C,KAAqC;IAErC,kDAAkD;IAClD,kEAAkE;IAClE,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;QACjE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,kEAAkE;gBAClE,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AApBD,0EAoBC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Hex, Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getAccountsHandler } from './accounts';\nimport { getChainIdHandler } from './chain-id';\nimport { getNetworkVersionHandler } from './net-version';\nimport { getSwitchEthereumChainHandler } from './switch-ethereum-chain';\nimport type { ApplicationState } from '../../store';\n\nexport type InternalMethodsMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns the simulation state.\n *\n * @returns The simulation state.\n */\n getSimulationState: () => ApplicationState;\n\n /**\n * A hook that sets the current chain ID.\n *\n * @param chainId - The chain ID.\n */\n setCurrentChain: (chainId: Hex) => null;\n};\n\nconst methodHandlers = {\n /* eslint-disable @typescript-eslint/naming-convention */\n eth_requestAccounts: getAccountsHandler,\n eth_accounts: getAccountsHandler,\n eth_chainId: getChainIdHandler,\n net_version: getNetworkVersionHandler,\n wallet_switchEthereumChain: getSwitchEthereumChainHandler,\n /* eslint-enable @typescript-eslint/naming-convention */\n};\n\n/**\n * Create a middleware for handling JSON-RPC methods normally handled internally\n * by the MetaMask client.\n *\n * NOTE: This middleware provides all `hooks` to all handlers and should\n * therefore NOT be used outside of the simulation environment. It is intended\n * for testing purposes only.\n *\n * @param hooks - Any hooks used by the middleware handlers.\n * @returns A middleware function.\n */\nexport function createInternalMethodsMiddleware(\n hooks: InternalMethodsMiddlewareHooks,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n // This should probably use createAsyncMiddleware.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n const handler =\n methodHandlers[request.method as keyof typeof methodHandlers];\n if (handler) {\n try {\n // Implementations may or may not be async, so we must await them.\n return await handler(request, response, next, end, hooks);\n } catch (error: any) {\n logError(error);\n return end(error);\n }\n }\n\n return next();\n };\n}\n"]}
1
+ {"version":3,"file":"middleware.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":";;AAsDA,0EAoBC;AAzED,uDAAiD;AAGjD,6CAAgD;AAChD,6CAA+C;AAC/C,mDAAyD;AACzD,uEAAwE;AA0BxE,MAAM,cAAc,GAAG;IACrB,yDAAyD;IACzD,mBAAmB,EAAE,6BAAkB;IACvC,YAAY,EAAE,6BAAkB;IAChC,WAAW,EAAE,4BAAiB;IAC9B,WAAW,EAAE,sCAAwB;IACrC,0BAA0B,EAAE,qDAA6B;IACzD,wDAAwD;CACzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAC7C,KAAqC;IAErC,kDAAkD;IAClD,kEAAkE;IAClE,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;QACjE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,kEAAkE;gBAClE,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Hex, Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getAccountsHandler } from './accounts';\nimport { getChainIdHandler } from './chain-id';\nimport { getNetworkVersionHandler } from './net-version';\nimport { getSwitchEthereumChainHandler } from './switch-ethereum-chain';\nimport type { ApplicationState } from '../../store';\n\nexport type InternalMethodsMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns the simulation state.\n *\n * @returns The simulation state.\n */\n getSimulationState: () => ApplicationState;\n\n /**\n * A hook that sets the current chain ID.\n *\n * @param chainId - The chain ID.\n */\n setCurrentChain: (chainId: Hex) => null;\n};\n\nconst methodHandlers = {\n /* eslint-disable @typescript-eslint/naming-convention */\n eth_requestAccounts: getAccountsHandler,\n eth_accounts: getAccountsHandler,\n eth_chainId: getChainIdHandler,\n net_version: getNetworkVersionHandler,\n wallet_switchEthereumChain: getSwitchEthereumChainHandler,\n /* eslint-enable @typescript-eslint/naming-convention */\n};\n\n/**\n * Create a middleware for handling JSON-RPC methods normally handled internally\n * by the MetaMask client.\n *\n * NOTE: This middleware provides all `hooks` to all handlers and should\n * therefore NOT be used outside of the simulation environment. It is intended\n * for testing purposes only.\n *\n * @param hooks - Any hooks used by the middleware handlers.\n * @returns A middleware function.\n */\nexport function createInternalMethodsMiddleware(\n hooks: InternalMethodsMiddlewareHooks,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n // This should probably use createAsyncMiddleware.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n const handler =\n methodHandlers[request.method as keyof typeof methodHandlers];\n if (handler) {\n try {\n // Implementations may or may not be async, so we must await them.\n return await handler(request, response, next, end, hooks);\n } catch (error: any) {\n logError(error);\n return end(error);\n }\n }\n\n return next();\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNetworkVersionHandler = void 0;
3
+ exports.getNetworkVersionHandler = getNetworkVersionHandler;
4
4
  const utils_1 = require("@metamask/utils");
5
5
  /**
6
6
  * A mock handler for net_version that always returns a specific
@@ -21,5 +21,4 @@ async function getNetworkVersionHandler(request, response, _next, end, hooks) {
21
21
  : (0, utils_1.hexToBigInt)(hooks.getSimulationState().chain.chainId).toString(10);
22
22
  return end();
23
23
  }
24
- exports.getNetworkVersionHandler = getNetworkVersionHandler;
25
24
  //# sourceMappingURL=net-version.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"net-version.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":";;;AAIA,2CAAgE;AAMhE;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,wBAAwB,CAC5C,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,CAAC,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvE,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAbD,4DAaC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { hexToBigInt, parseCaipChainId } from '@metamask/utils';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\n\n/**\n * A mock handler for net_version that always returns a specific\n * hardcoded result.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function getNetworkVersionHandler(\n request: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? BigInt(requestScope.reference).toString(10)\n : hexToBigInt(hooks.getSimulationState().chain.chainId).toString(10);\n\n return end();\n}\n"]}
1
+ {"version":3,"file":"net-version.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":";;AAsBA,4DAaC;AA/BD,2CAAgE;AAMhE;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,wBAAwB,CAC5C,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,CAAC,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvE,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { hexToBigInt, parseCaipChainId } from '@metamask/utils';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\n\n/**\n * A mock handler for net_version that always returns a specific\n * hardcoded result.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function getNetworkVersionHandler(\n request: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? BigInt(requestScope.reference).toString(10)\n : hexToBigInt(hooks.getSimulationState().chain.chainId).toString(10);\n\n return end();\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSwitchEthereumChainHandler = void 0;
3
+ exports.getSwitchEthereumChainHandler = getSwitchEthereumChainHandler;
4
4
  const utils_1 = require("@metamask/utils");
5
5
  /**
6
6
  * A mock handler for the `wallet_switchEthereumChain` method that always
@@ -21,5 +21,4 @@ async function getSwitchEthereumChainHandler(request, response, _next, end, hook
21
21
  response.result = null;
22
22
  return end();
23
23
  }
24
- exports.getSwitchEthereumChainHandler = getSwitchEthereumChainHandler;
25
24
  //# sourceMappingURL=switch-ethereum-chain.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-ethereum-chain.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":";;;AAIA,2CAKyB;AAMzB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,6BAA6B,CACjD,OAAuB,EACvB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAA+B;IAE/B,MAAM,WAAW,GAAG,OAA6C,CAAC;IAElE,IAAA,cAAM,EAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAChE,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAdD,sEAcC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n assert,\n type Hex,\n type JsonRpcRequest,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nexport type SwitchEthereumChainHooks = {\n setCurrentChain: (chain: Hex) => null;\n};\n\n/**\n * A mock handler for the `wallet_switchEthereumChain` method that always\n * returns `null`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The response.\n */\nexport async function getSwitchEthereumChainHandler(\n request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: SwitchEthereumChainHooks,\n) {\n const castRequest = request as JsonRpcRequest<[{ chainId: Hex }]>;\n\n assert(castRequest.params?.[0]?.chainId, 'No chain ID passed.');\n hooks.setCurrentChain(castRequest.params[0].chainId);\n\n response.result = null;\n return end();\n}\n"]}
1
+ {"version":3,"file":"switch-ethereum-chain.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":";;AA2BA,sEAcC;AArCD,2CAKyB;AAMzB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,6BAA6B,CACjD,OAAuB,EACvB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAA+B;IAE/B,MAAM,WAAW,GAAG,OAA6C,CAAC;IAElE,IAAA,cAAM,EAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAChE,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n assert,\n type Hex,\n type JsonRpcRequest,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nexport type SwitchEthereumChainHooks = {\n setCurrentChain: (chain: Hex) => null;\n};\n\n/**\n * A mock handler for the `wallet_switchEthereumChain` method that always\n * returns `null`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The response.\n */\nexport async function getSwitchEthereumChainHandler(\n request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: SwitchEthereumChainHooks,\n) {\n const castRequest = request as JsonRpcRequest<[{ chainId: Hex }]>;\n\n assert(castRequest.params?.[0]?.chainId, 'No chain ID passed.');\n hooks.setCurrentChain(castRequest.params[0].chainId);\n\n response.result = null;\n return end();\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMockMiddleware = void 0;
3
+ exports.createMockMiddleware = createMockMiddleware;
4
4
  const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
5
5
  const mocks_1 = require("../store/mocks.cjs");
6
6
  /**
@@ -27,5 +27,4 @@ function createMockMiddleware(store) {
27
27
  await next();
28
28
  });
29
29
  }
30
- exports.createMockMiddleware = createMockMiddleware;
31
30
  //# sourceMappingURL=mock.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock.cjs","sourceRoot":"","sources":["../../src/middleware/mock.ts"],"names":[],"mappings":";;;AAAA,+DAGmC;AAInC,8CAAoE;AAEpE;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,KAAY;IAEZ,OAAO,IAAA,uCAAqB,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAtBD,oDAsBC","sourcesContent":["import {\n createAsyncMiddleware,\n type JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport type { Store } from '../store';\nimport { getJsonRpcMocks, removeJsonRpcMock } from '../store/mocks';\n\n/**\n * Create a middleware for handling JSON-RPC methods that have been mocked.\n *\n * @param store - The Redux store to use.\n * @returns A middleware function.\n */\nexport function createMockMiddleware(\n store: Store,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n return createAsyncMiddleware(async (request, response, next) => {\n const mocks = getJsonRpcMocks(store.getState());\n const keys = Object.keys(mocks);\n for (const key of keys) {\n const { implementation, once } = mocks[key];\n const result = await implementation(request);\n\n if (result !== undefined) {\n if (once) {\n store.dispatch(removeJsonRpcMock(key));\n }\n\n response.result = result;\n return;\n }\n }\n\n await next();\n });\n}\n"]}
1
+ {"version":3,"file":"mock.cjs","sourceRoot":"","sources":["../../src/middleware/mock.ts"],"names":[],"mappings":";;AAeA,oDAsBC;AArCD,+DAGmC;AAInC,8CAAoE;AAEpE;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,KAAY;IAEZ,OAAO,IAAA,uCAAqB,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n createAsyncMiddleware,\n type JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport type { Store } from '../store';\nimport { getJsonRpcMocks, removeJsonRpcMock } from '../store/mocks';\n\n/**\n * Create a middleware for handling JSON-RPC methods that have been mocked.\n *\n * @param store - The Redux store to use.\n * @returns A middleware function.\n */\nexport function createMockMiddleware(\n store: Store,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n return createAsyncMiddleware(async (request, response, next) => {\n const mocks = getJsonRpcMocks(store.getState());\n const keys = Object.keys(mocks);\n for (const key of keys) {\n const { implementation, once } = mocks[key];\n const result = await implementation(request);\n\n if (result !== undefined) {\n if (once) {\n store.dispatch(removeJsonRpcMock(key));\n }\n\n response.result = result;\n return;\n }\n }\n\n await next();\n });\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSessionHandler = void 0;
3
+ exports.createSessionHandler = createSessionHandler;
4
4
  const chain_agnostic_permission_1 = require("@metamask/chain-agnostic-permission");
5
5
  const rpc_errors_1 = require("@metamask/rpc-errors");
6
6
  const superstruct_1 = require("@metamask/superstruct");
@@ -51,5 +51,4 @@ async function createSessionHandler(request, hooks) {
51
51
  const sessionScopes = (0, utils_2.getSessionScopes)(caveatWithAccounts);
52
52
  return { sessionScopes, sessionProperties: caveat.sessionProperties };
53
53
  }
54
- exports.createSessionHandler = createSessionHandler;
55
54
  //# sourceMappingURL=create-session.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-session.cjs","sourceRoot":"","sources":["../../../src/middleware/multichain/create-session.ts"],"names":[],"mappings":";;;AAAA,mFAI6C;AAE7C,qDAAiD;AACjD,uDAO+B;AAC/B,2CAMyB;AAEzB,uCAA2C;AAQ3C,MAAM,YAAY,GAAG,IAAA,oBAAM,EACzB,yBAAiB,EACjB,IAAA,oBAAM,EAAC;IACL,OAAO,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;IACxB,QAAQ,EAAE,IAAA,mBAAK,EAAC,2BAAmB,CAAC;IACpC,aAAa,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAA,oBAAM,EAAC;IACvC,cAAc,EAAE,IAAA,sBAAQ,EAAC,YAAY,CAAC;IACtC,cAAc,EAAE,IAAA,sBAAQ,EAAC,YAAY,CAAC;IACtC,iBAAiB,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,kBAAU,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,KAAgC;IAEhC,IAAI,CAAC,IAAA,gBAAE,EAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,CAAC;QACnD,MAAM,sBAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG;QACb,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;QACzD,kBAAkB,EAAE,IAAI;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK;SACnB,WAAW,EAAE;SACb,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAC7D,CAAC;IAEJ,MAAM,kBAAkB,GAAG,IAAA,sEAA0C,EACnE,MAAM,EACN,QAA2B,CAC5B,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,CAAC,yDAA6B,CAAC,EAAE;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,4CAAgB;oBACtB,KAAK,EAAE,kBAAkB;iBAC1B;aACF;SACF;KACsB,CAAC;IAE1B,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,kBAAkB,CAAC,CAAC;IAE3D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;AACxE,CAAC;AA1CD,oDA0CC","sourcesContent":["import {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n setNonSCACaipAccountIdsInCaip25CaveatValue,\n} from '@metamask/chain-agnostic-permission';\nimport type { RequestedPermissions } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n array,\n is,\n object,\n string,\n optional,\n record,\n} from '@metamask/superstruct';\nimport {\n type CaipAccountId,\n CaipAccountIdStruct,\n CaipChainIdStruct,\n JsonStruct,\n type JsonRpcRequest,\n} from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\nimport type { SimulationAccount } from '../../options';\n\nexport type CreateSessionHandlerHooks = {\n grantPermissions: (permissions: RequestedPermissions) => void;\n getAccounts: () => SimulationAccount[];\n};\n\nconst ScopesStruct = record(\n CaipChainIdStruct,\n object({\n methods: array(string()),\n accounts: array(CaipAccountIdStruct),\n notifications: array(string()),\n }),\n);\n\nconst CreateSessionParamsStruct = object({\n requiredScopes: optional(ScopesStruct),\n optionalScopes: optional(ScopesStruct),\n sessionProperties: optional(record(string(), JsonStruct)),\n});\n\n/**\n * A handler that implements a simplified version of `wallet_createSession`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function createSessionHandler(\n request: JsonRpcRequest,\n hooks: CreateSessionHandlerHooks,\n) {\n if (!is(request.params, CreateSessionParamsStruct)) {\n throw rpcErrors.invalidParams({ data: { request } });\n }\n\n const caveat = {\n requiredScopes: request.params.requiredScopes ?? {},\n optionalScopes: request.params.optionalScopes ?? {},\n sessionProperties: request.params.sessionProperties ?? {},\n isMultichainOrigin: true,\n };\n\n const accounts = hooks\n .getAccounts()\n .flatMap((account) =>\n account.scopes.map((scope) => `${scope}:${account.address}`),\n );\n\n const caveatWithAccounts = setNonSCACaipAccountIdsInCaip25CaveatValue(\n caveat,\n accounts as CaipAccountId[],\n );\n\n const permissions = {\n [Caip25EndowmentPermissionName]: {\n caveats: [\n {\n type: Caip25CaveatType,\n value: caveatWithAccounts,\n },\n ],\n },\n } as RequestedPermissions;\n\n hooks.grantPermissions(permissions);\n\n const sessionScopes = getSessionScopes(caveatWithAccounts);\n\n return { sessionScopes, sessionProperties: caveat.sessionProperties };\n}\n"]}
1
+ {"version":3,"file":"create-session.cjs","sourceRoot":"","sources":["../../../src/middleware/multichain/create-session.ts"],"names":[],"mappings":";;AAqDA,oDA0CC;AA/FD,mFAI6C;AAE7C,qDAAiD;AACjD,uDAO+B;AAC/B,2CAMyB;AAEzB,uCAA2C;AAQ3C,MAAM,YAAY,GAAG,IAAA,oBAAM,EACzB,yBAAiB,EACjB,IAAA,oBAAM,EAAC;IACL,OAAO,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;IACxB,QAAQ,EAAE,IAAA,mBAAK,EAAC,2BAAmB,CAAC;IACpC,aAAa,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAA,oBAAM,EAAC;IACvC,cAAc,EAAE,IAAA,sBAAQ,EAAC,YAAY,CAAC;IACtC,cAAc,EAAE,IAAA,sBAAQ,EAAC,YAAY,CAAC;IACtC,iBAAiB,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,kBAAU,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,KAAgC;IAEhC,IAAI,CAAC,IAAA,gBAAE,EAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,CAAC;QACnD,MAAM,sBAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG;QACb,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;QACzD,kBAAkB,EAAE,IAAI;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK;SACnB,WAAW,EAAE;SACb,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAC7D,CAAC;IAEJ,MAAM,kBAAkB,GAAG,IAAA,sEAA0C,EACnE,MAAM,EACN,QAA2B,CAC5B,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,CAAC,yDAA6B,CAAC,EAAE;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,4CAAgB;oBACtB,KAAK,EAAE,kBAAkB;iBAC1B;aACF;SACF;KACsB,CAAC;IAE1B,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,kBAAkB,CAAC,CAAC;IAE3D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;AACxE,CAAC","sourcesContent":["import {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n setNonSCACaipAccountIdsInCaip25CaveatValue,\n} from '@metamask/chain-agnostic-permission';\nimport type { RequestedPermissions } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n array,\n is,\n object,\n string,\n optional,\n record,\n} from '@metamask/superstruct';\nimport {\n type CaipAccountId,\n CaipAccountIdStruct,\n CaipChainIdStruct,\n JsonStruct,\n type JsonRpcRequest,\n} from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\nimport type { SimulationAccount } from '../../options';\n\nexport type CreateSessionHandlerHooks = {\n grantPermissions: (permissions: RequestedPermissions) => void;\n getAccounts: () => SimulationAccount[];\n};\n\nconst ScopesStruct = record(\n CaipChainIdStruct,\n object({\n methods: array(string()),\n accounts: array(CaipAccountIdStruct),\n notifications: array(string()),\n }),\n);\n\nconst CreateSessionParamsStruct = object({\n requiredScopes: optional(ScopesStruct),\n optionalScopes: optional(ScopesStruct),\n sessionProperties: optional(record(string(), JsonStruct)),\n});\n\n/**\n * A handler that implements a simplified version of `wallet_createSession`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function createSessionHandler(\n request: JsonRpcRequest,\n hooks: CreateSessionHandlerHooks,\n) {\n if (!is(request.params, CreateSessionParamsStruct)) {\n throw rpcErrors.invalidParams({ data: { request } });\n }\n\n const caveat = {\n requiredScopes: request.params.requiredScopes ?? {},\n optionalScopes: request.params.optionalScopes ?? {},\n sessionProperties: request.params.sessionProperties ?? {},\n isMultichainOrigin: true,\n };\n\n const accounts = hooks\n .getAccounts()\n .flatMap((account) =>\n account.scopes.map((scope) => `${scope}:${account.address}`),\n );\n\n const caveatWithAccounts = setNonSCACaipAccountIdsInCaip25CaveatValue(\n caveat,\n accounts as CaipAccountId[],\n );\n\n const permissions = {\n [Caip25EndowmentPermissionName]: {\n caveats: [\n {\n type: Caip25CaveatType,\n value: caveatWithAccounts,\n },\n ],\n },\n } as RequestedPermissions;\n\n hooks.grantPermissions(permissions);\n\n const sessionScopes = getSessionScopes(caveatWithAccounts);\n\n return { sessionScopes, sessionProperties: caveat.sessionProperties };\n}\n"]}
@@ -14,6 +14,6 @@ export type CreateSessionHandlerHooks = {
14
14
  */
15
15
  export declare function createSessionHandler(request: JsonRpcRequest, hooks: CreateSessionHandlerHooks): Promise<{
16
16
  sessionScopes: import("@metamask/chain-agnostic-permission").NormalizedScopesObject;
17
- sessionProperties: Record<string, import("@metamask/utils").Json>;
17
+ sessionProperties: Record<string, import("@metamask/utils", { with: { "resolution-mode": "import" } }).Json>;
18
18
  }>;
19
19
  //# sourceMappingURL=create-session.d.cts.map
@@ -14,6 +14,6 @@ export type CreateSessionHandlerHooks = {
14
14
  */
15
15
  export declare function createSessionHandler(request: JsonRpcRequest, hooks: CreateSessionHandlerHooks): Promise<{
16
16
  sessionScopes: import("@metamask/chain-agnostic-permission").NormalizedScopesObject;
17
- sessionProperties: Record<string, import("@metamask/utils").Json>;
17
+ sessionProperties: Record<string, import("@metamask/utils", { with: { "resolution-mode": "import" } }).Json>;
18
18
  }>;
19
19
  //# sourceMappingURL=create-session.d.mts.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSessionHandler = void 0;
3
+ exports.getSessionHandler = getSessionHandler;
4
4
  const chain_agnostic_permission_1 = require("@metamask/chain-agnostic-permission");
5
5
  const utils_1 = require("./utils.cjs");
6
6
  /**
@@ -16,5 +16,4 @@ function getSessionHandler(_request, hooks) {
16
16
  const sessionScopes = caveat ? (0, utils_1.getSessionScopes)(caveat.value) : {};
17
17
  return { sessionScopes };
18
18
  }
19
- exports.getSessionHandler = getSessionHandler;
20
19
  //# sourceMappingURL=get-session.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-session.cjs","sourceRoot":"","sources":["../../../src/middleware/multichain/get-session.ts"],"names":[],"mappings":";;;AACA,mFAG6C;AAI7C,uCAA2C;AAS3C;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,QAAwB,EACxB,KAA6B;IAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,yDAA6B,EAC7B,4CAAgB,CACoB,CAAC;IAEvC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC;AAZD,8CAYC","sourcesContent":["import type { Caip25CaveatValue } from '@metamask/chain-agnostic-permission';\nimport {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n} from '@metamask/chain-agnostic-permission';\nimport type { Caveat } from '@metamask/permission-controller';\nimport type { Json, JsonRpcRequest } from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\n\nexport type GetSessionHandlerHooks = {\n getCaveat: (\n permission: string,\n caveatType: string,\n ) => Caveat<string, Json> | undefined;\n};\n\n/**\n * A handler that implements a simplified version of `wallet_getSession`.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport function getSessionHandler(\n _request: JsonRpcRequest,\n hooks: GetSessionHandlerHooks,\n) {\n const caveat = hooks.getCaveat(\n Caip25EndowmentPermissionName,\n Caip25CaveatType,\n ) as Caveat<string, Caip25CaveatValue>;\n\n const sessionScopes = caveat ? getSessionScopes(caveat.value) : {};\n\n return { sessionScopes };\n}\n"]}
1
+ {"version":3,"file":"get-session.cjs","sourceRoot":"","sources":["../../../src/middleware/multichain/get-session.ts"],"names":[],"mappings":";;AAyBA,8CAYC;AApCD,mFAG6C;AAI7C,uCAA2C;AAS3C;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,QAAwB,EACxB,KAA6B;IAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,yDAA6B,EAC7B,4CAAgB,CACoB,CAAC;IAEvC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC","sourcesContent":["import type { Caip25CaveatValue } from '@metamask/chain-agnostic-permission';\nimport {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n} from '@metamask/chain-agnostic-permission';\nimport type { Caveat } from '@metamask/permission-controller';\nimport type { Json, JsonRpcRequest } from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\n\nexport type GetSessionHandlerHooks = {\n getCaveat: (\n permission: string,\n caveatType: string,\n ) => Caveat<string, Json> | undefined;\n};\n\n/**\n * A handler that implements a simplified version of `wallet_getSession`.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport function getSessionHandler(\n _request: JsonRpcRequest,\n hooks: GetSessionHandlerHooks,\n) {\n const caveat = hooks.getCaveat(\n Caip25EndowmentPermissionName,\n Caip25CaveatType,\n ) as Caveat<string, Caip25CaveatValue>;\n\n const sessionScopes = caveat ? getSessionScopes(caveat.value) : {};\n\n return { sessionScopes };\n}\n"]}