@metamask/snaps-jest 8.3.0 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (625) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/dist/environment.cjs +96 -0
  3. package/dist/environment.cjs.map +1 -0
  4. package/dist/{types/environment.d.ts → environment.d.cts} +5 -4
  5. package/dist/environment.d.cts.map +1 -0
  6. package/dist/environment.d.mts +53 -0
  7. package/dist/environment.d.mts.map +1 -0
  8. package/dist/environment.mjs +94 -44
  9. package/dist/environment.mjs.map +1 -1
  10. package/dist/global.cjs +4 -0
  11. package/dist/global.cjs.map +1 -0
  12. package/dist/{types/global.d.ts → global.d.cts} +2 -1
  13. package/dist/global.d.cts.map +1 -0
  14. package/dist/global.d.mts +70 -0
  15. package/dist/global.d.mts.map +1 -0
  16. package/dist/global.mjs +2 -1
  17. package/dist/global.mjs.map +1 -1
  18. package/dist/helpers.cjs +240 -0
  19. package/dist/helpers.cjs.map +1 -0
  20. package/dist/{types/helpers.d.ts → helpers.d.cts} +5 -4
  21. package/dist/helpers.d.cts.map +1 -0
  22. package/dist/helpers.d.mts +132 -0
  23. package/dist/helpers.d.mts.map +1 -0
  24. package/dist/helpers.mjs +228 -56
  25. package/dist/helpers.mjs.map +1 -1
  26. package/dist/index.cjs +29 -0
  27. package/dist/index.cjs.map +1 -0
  28. package/dist/index.d.cts +6 -0
  29. package/dist/index.d.cts.map +1 -0
  30. package/dist/index.d.mts +6 -0
  31. package/dist/index.d.mts.map +1 -0
  32. package/dist/index.mjs +6 -67
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/internals/environment.cjs +18 -0
  35. package/dist/internals/environment.cjs.map +1 -0
  36. package/dist/{types/internals/environment.d.ts → internals/environment.d.cts} +1 -0
  37. package/dist/internals/environment.d.cts.map +1 -0
  38. package/dist/internals/environment.d.mts +8 -0
  39. package/dist/internals/environment.d.mts.map +1 -0
  40. package/dist/internals/environment.mjs +13 -7
  41. package/dist/internals/environment.mjs.map +1 -1
  42. package/dist/internals/index.cjs +23 -0
  43. package/dist/internals/index.cjs.map +1 -0
  44. package/dist/internals/index.d.cts +7 -0
  45. package/dist/internals/index.d.cts.map +1 -0
  46. package/dist/internals/index.d.mts +7 -0
  47. package/dist/internals/index.d.mts.map +1 -0
  48. package/dist/internals/index.mjs +6 -149
  49. package/dist/internals/index.mjs.map +1 -1
  50. package/dist/internals/logger.cjs +6 -0
  51. package/dist/internals/logger.cjs.map +1 -0
  52. package/dist/{types/internals/logger.d.ts → internals/logger.d.cts} +1 -0
  53. package/dist/internals/logger.d.cts.map +1 -0
  54. package/dist/internals/logger.d.mts +3 -0
  55. package/dist/internals/logger.d.mts.map +1 -0
  56. package/dist/internals/logger.mjs +2 -7
  57. package/dist/internals/logger.mjs.map +1 -1
  58. package/dist/internals/request.cjs +143 -0
  59. package/dist/internals/request.cjs.map +1 -0
  60. package/dist/{types/internals/request.d.ts → internals/request.d.cts} +7 -6
  61. package/dist/internals/request.d.cts.map +1 -0
  62. package/dist/internals/request.d.mts +56 -0
  63. package/dist/internals/request.d.mts.map +1 -0
  64. package/dist/internals/request.mjs +137 -41
  65. package/dist/internals/request.mjs.map +1 -1
  66. package/dist/internals/server.cjs +74 -0
  67. package/dist/internals/server.cjs.map +1 -0
  68. package/dist/{types/internals/server.d.ts → internals/server.d.cts} +3 -2
  69. package/dist/internals/server.d.cts.map +1 -0
  70. package/dist/internals/server.d.mts +15 -0
  71. package/dist/internals/server.d.mts.map +1 -0
  72. package/dist/internals/server.mjs +73 -8
  73. package/dist/internals/server.mjs.map +1 -1
  74. package/dist/internals/simulation/constants.cjs +21 -0
  75. package/dist/internals/simulation/constants.cjs.map +1 -0
  76. package/dist/{types/internals/simulation/constants.d.ts → internals/simulation/constants.d.cts} +1 -0
  77. package/dist/internals/simulation/constants.d.cts.map +1 -0
  78. package/dist/internals/simulation/constants.d.mts +18 -0
  79. package/dist/internals/simulation/constants.d.mts.map +1 -0
  80. package/dist/internals/simulation/constants.mjs +17 -13
  81. package/dist/internals/simulation/constants.mjs.map +1 -1
  82. package/dist/internals/simulation/controllers.cjs +101 -0
  83. package/dist/internals/simulation/controllers.cjs.map +1 -0
  84. package/dist/{types/internals/simulation/controllers.d.ts → internals/simulation/controllers.d.cts} +11 -10
  85. package/dist/internals/simulation/controllers.d.cts.map +1 -0
  86. package/dist/internals/simulation/controllers.d.mts +41 -0
  87. package/dist/internals/simulation/controllers.d.mts.map +1 -0
  88. package/dist/internals/simulation/controllers.mjs +95 -24
  89. package/dist/internals/simulation/controllers.mjs.map +1 -1
  90. package/dist/internals/simulation/files.cjs +94 -0
  91. package/dist/internals/simulation/files.cjs.map +1 -0
  92. package/dist/{types/internals/simulation/files.d.ts → internals/simulation/files.d.cts} +6 -4
  93. package/dist/internals/simulation/files.d.cts.map +1 -0
  94. package/dist/internals/simulation/files.d.mts +49 -0
  95. package/dist/internals/simulation/files.d.mts.map +1 -0
  96. package/dist/internals/simulation/files.mjs +90 -13
  97. package/dist/internals/simulation/files.mjs.map +1 -1
  98. package/dist/internals/simulation/index.cjs +22 -0
  99. package/dist/internals/simulation/index.cjs.map +1 -0
  100. package/dist/internals/simulation/index.d.cts +6 -0
  101. package/dist/internals/simulation/index.d.cts.map +1 -0
  102. package/dist/internals/simulation/index.d.mts +6 -0
  103. package/dist/internals/simulation/index.d.mts.map +1 -0
  104. package/dist/internals/simulation/index.mjs +5 -110
  105. package/dist/internals/simulation/index.mjs.map +1 -1
  106. package/dist/internals/simulation/interface.cjs +527 -0
  107. package/dist/internals/simulation/interface.cjs.map +1 -0
  108. package/dist/{types/internals/simulation/interface.d.ts → internals/simulation/interface.d.cts} +9 -8
  109. package/dist/internals/simulation/interface.d.cts.map +1 -0
  110. package/dist/internals/simulation/interface.d.mts +152 -0
  111. package/dist/internals/simulation/interface.d.mts.map +1 -0
  112. package/dist/internals/simulation/interface.mjs +512 -36
  113. package/dist/internals/simulation/interface.mjs.map +1 -1
  114. package/dist/internals/simulation/methods/constants.cjs +72 -0
  115. package/dist/internals/simulation/methods/constants.cjs.map +1 -0
  116. package/dist/{types/internals/simulation/methods/constants.d.ts → internals/simulation/methods/constants.d.cts} +1 -0
  117. package/dist/internals/simulation/methods/constants.d.cts.map +1 -0
  118. package/dist/internals/simulation/methods/constants.d.mts +11 -0
  119. package/dist/internals/simulation/methods/constants.d.mts.map +1 -0
  120. package/dist/internals/simulation/methods/constants.mjs +68 -11
  121. package/dist/internals/simulation/methods/constants.mjs.map +1 -1
  122. package/dist/internals/simulation/methods/hooks/get-preferences.cjs +18 -0
  123. package/dist/internals/simulation/methods/hooks/get-preferences.cjs.map +1 -0
  124. package/dist/{types/internals/simulation/methods/hooks/get-preferences.d.ts → internals/simulation/methods/hooks/get-preferences.d.cts} +2 -1
  125. package/dist/internals/simulation/methods/hooks/get-preferences.d.cts.map +1 -0
  126. package/dist/internals/simulation/methods/hooks/get-preferences.d.mts +14 -0
  127. package/dist/internals/simulation/methods/hooks/get-preferences.d.mts.map +1 -0
  128. package/dist/internals/simulation/methods/hooks/get-preferences.mjs +13 -7
  129. package/dist/internals/simulation/methods/hooks/get-preferences.mjs.map +1 -1
  130. package/dist/internals/simulation/methods/hooks/index.cjs +22 -0
  131. package/dist/internals/simulation/methods/hooks/index.cjs.map +1 -0
  132. package/dist/internals/simulation/methods/hooks/index.d.cts +6 -0
  133. package/dist/internals/simulation/methods/hooks/index.d.cts.map +1 -0
  134. package/dist/internals/simulation/methods/hooks/index.d.mts +6 -0
  135. package/dist/internals/simulation/methods/hooks/index.d.mts.map +1 -0
  136. package/dist/internals/simulation/methods/hooks/index.mjs +5 -38
  137. package/dist/internals/simulation/methods/hooks/index.mjs.map +1 -1
  138. package/dist/internals/simulation/methods/hooks/interface.cjs +24 -0
  139. package/dist/internals/simulation/methods/hooks/interface.cjs.map +1 -0
  140. package/dist/{types/internals/simulation/methods/hooks/interface.d.ts → internals/simulation/methods/hooks/interface.d.cts} +3 -2
  141. package/dist/internals/simulation/methods/hooks/interface.d.cts.map +1 -0
  142. package/dist/internals/simulation/methods/hooks/interface.d.mts +17 -0
  143. package/dist/internals/simulation/methods/hooks/interface.d.mts.map +1 -0
  144. package/dist/internals/simulation/methods/hooks/interface.mjs +18 -9
  145. package/dist/internals/simulation/methods/hooks/interface.mjs.map +1 -1
  146. package/dist/internals/simulation/methods/hooks/notifications.cjs +58 -0
  147. package/dist/internals/simulation/methods/hooks/notifications.cjs.map +1 -0
  148. package/dist/{types/internals/simulation/methods/hooks/notifications.d.ts → internals/simulation/methods/hooks/notifications.d.cts} +5 -4
  149. package/dist/internals/simulation/methods/hooks/notifications.d.cts.map +1 -0
  150. package/dist/internals/simulation/methods/hooks/notifications.d.mts +17 -0
  151. package/dist/internals/simulation/methods/hooks/notifications.d.mts.map +1 -0
  152. package/dist/internals/simulation/methods/hooks/notifications.mjs +54 -15
  153. package/dist/internals/simulation/methods/hooks/notifications.mjs.map +1 -1
  154. package/dist/internals/simulation/methods/hooks/request-user-approval.cjs +38 -0
  155. package/dist/internals/simulation/methods/hooks/request-user-approval.cjs.map +1 -0
  156. package/dist/{types/internals/simulation/methods/hooks/request-user-approval.d.ts → internals/simulation/methods/hooks/request-user-approval.d.cts} +2 -1
  157. package/dist/internals/simulation/methods/hooks/request-user-approval.d.cts.map +1 -0
  158. package/dist/internals/simulation/methods/hooks/request-user-approval.d.mts +16 -0
  159. package/dist/internals/simulation/methods/hooks/request-user-approval.d.mts.map +1 -0
  160. package/dist/internals/simulation/methods/hooks/request-user-approval.mjs +34 -13
  161. package/dist/internals/simulation/methods/hooks/request-user-approval.mjs.map +1 -1
  162. package/dist/internals/simulation/methods/hooks/state.cjs +84 -0
  163. package/dist/internals/simulation/methods/hooks/state.cjs.map +1 -0
  164. package/dist/{types/internals/simulation/methods/hooks/state.d.ts → internals/simulation/methods/hooks/state.d.cts} +3 -2
  165. package/dist/internals/simulation/methods/hooks/state.d.cts.map +1 -0
  166. package/dist/internals/simulation/methods/hooks/state.d.mts +24 -0
  167. package/dist/internals/simulation/methods/hooks/state.d.mts.map +1 -0
  168. package/dist/internals/simulation/methods/hooks/state.mjs +78 -17
  169. package/dist/internals/simulation/methods/hooks/state.mjs.map +1 -1
  170. package/dist/internals/simulation/methods/index.cjs +18 -0
  171. package/dist/internals/simulation/methods/index.cjs.map +1 -0
  172. package/dist/internals/simulation/methods/index.d.cts +2 -0
  173. package/dist/internals/simulation/methods/index.d.cts.map +1 -0
  174. package/dist/internals/simulation/methods/index.d.mts +2 -0
  175. package/dist/internals/simulation/methods/index.d.mts.map +1 -0
  176. package/dist/internals/simulation/methods/index.mjs +1 -27
  177. package/dist/internals/simulation/methods/index.mjs.map +1 -1
  178. package/dist/internals/simulation/methods/specifications.cjs +85 -0
  179. package/dist/internals/simulation/methods/specifications.cjs.map +1 -0
  180. package/dist/{types/internals/simulation/methods/specifications.d.ts → internals/simulation/methods/specifications.d.cts} +6 -5
  181. package/dist/internals/simulation/methods/specifications.d.cts.map +1 -0
  182. package/dist/internals/simulation/methods/specifications.d.mts +57 -0
  183. package/dist/internals/simulation/methods/specifications.d.mts.map +1 -0
  184. package/dist/internals/simulation/methods/specifications.mjs +77 -26
  185. package/dist/internals/simulation/methods/specifications.mjs.map +1 -1
  186. package/dist/internals/simulation/middleware/engine.cjs +37 -0
  187. package/dist/internals/simulation/middleware/engine.cjs.map +1 -0
  188. package/dist/{types/internals/simulation/middleware/engine.d.ts → internals/simulation/middleware/engine.d.cts} +7 -6
  189. package/dist/internals/simulation/middleware/engine.d.cts.map +1 -0
  190. package/dist/internals/simulation/middleware/engine.d.mts +27 -0
  191. package/dist/internals/simulation/middleware/engine.d.mts.map +1 -0
  192. package/dist/internals/simulation/middleware/engine.mjs +33 -14
  193. package/dist/internals/simulation/middleware/engine.mjs.map +1 -1
  194. package/dist/internals/simulation/middleware/index.cjs +18 -0
  195. package/dist/internals/simulation/middleware/index.cjs.map +1 -0
  196. package/dist/internals/simulation/middleware/index.d.cts +2 -0
  197. package/dist/internals/simulation/middleware/index.d.cts.map +1 -0
  198. package/dist/internals/simulation/middleware/index.d.mts +2 -0
  199. package/dist/internals/simulation/middleware/index.d.mts.map +1 -0
  200. package/dist/internals/simulation/middleware/index.mjs +1 -15
  201. package/dist/internals/simulation/middleware/index.mjs.map +1 -1
  202. package/dist/internals/simulation/middleware/internal-methods/accounts.cjs +34 -0
  203. package/dist/internals/simulation/middleware/internal-methods/accounts.cjs.map +1 -0
  204. package/dist/{types/internals/simulation/middleware/internal-methods/accounts.d.ts → internals/simulation/middleware/internal-methods/accounts.d.cts} +4 -2
  205. package/dist/internals/simulation/middleware/internal-methods/accounts.d.cts.map +1 -0
  206. package/dist/internals/simulation/middleware/internal-methods/accounts.d.mts +20 -0
  207. package/dist/internals/simulation/middleware/internal-methods/accounts.d.mts.map +1 -0
  208. package/dist/internals/simulation/middleware/internal-methods/accounts.mjs +29 -7
  209. package/dist/internals/simulation/middleware/internal-methods/accounts.mjs.map +1 -1
  210. package/dist/internals/simulation/middleware/internal-methods/index.cjs +18 -0
  211. package/dist/internals/simulation/middleware/internal-methods/index.cjs.map +1 -0
  212. package/dist/internals/simulation/middleware/internal-methods/index.d.cts +2 -0
  213. package/dist/internals/simulation/middleware/internal-methods/index.d.cts.map +1 -0
  214. package/dist/internals/simulation/middleware/internal-methods/index.d.mts +2 -0
  215. package/dist/internals/simulation/middleware/internal-methods/index.d.mts.map +1 -0
  216. package/dist/internals/simulation/middleware/internal-methods/index.mjs +1 -10
  217. package/dist/internals/simulation/middleware/internal-methods/index.mjs.map +1 -1
  218. package/dist/internals/simulation/middleware/internal-methods/middleware.cjs +44 -0
  219. package/dist/internals/simulation/middleware/internal-methods/middleware.cjs.map +1 -0
  220. package/dist/{types/internals/simulation/middleware/internal-methods/middleware.d.ts → internals/simulation/middleware/internal-methods/middleware.d.cts} +3 -2
  221. package/dist/internals/simulation/middleware/internal-methods/middleware.d.cts.map +1 -0
  222. package/dist/internals/simulation/middleware/internal-methods/middleware.d.mts +23 -0
  223. package/dist/internals/simulation/middleware/internal-methods/middleware.d.mts.map +1 -0
  224. package/dist/internals/simulation/middleware/internal-methods/middleware.mjs +38 -8
  225. package/dist/internals/simulation/middleware/internal-methods/middleware.mjs.map +1 -1
  226. package/dist/internals/simulation/middleware/internal-methods/provider-state.cjs +28 -0
  227. package/dist/internals/simulation/middleware/internal-methods/provider-state.cjs.map +1 -0
  228. package/dist/{types/internals/simulation/middleware/internal-methods/provider-state.d.ts → internals/simulation/middleware/internal-methods/provider-state.d.cts} +4 -2
  229. package/dist/internals/simulation/middleware/internal-methods/provider-state.d.cts.map +1 -0
  230. package/dist/internals/simulation/middleware/internal-methods/provider-state.d.mts +16 -0
  231. package/dist/internals/simulation/middleware/internal-methods/provider-state.d.mts.map +1 -0
  232. package/dist/internals/simulation/middleware/internal-methods/provider-state.mjs +23 -7
  233. package/dist/internals/simulation/middleware/internal-methods/provider-state.mjs.map +1 -1
  234. package/dist/internals/simulation/middleware/mock.cjs +22 -0
  235. package/dist/internals/simulation/middleware/mock.cjs.map +1 -0
  236. package/dist/{types/internals/simulation/middleware/mock.d.ts → internals/simulation/middleware/mock.d.cts} +4 -3
  237. package/dist/internals/simulation/middleware/mock.d.cts.map +1 -0
  238. package/dist/internals/simulation/middleware/mock.d.mts +11 -0
  239. package/dist/internals/simulation/middleware/mock.d.mts.map +1 -0
  240. package/dist/internals/simulation/middleware/mock.mjs +17 -8
  241. package/dist/internals/simulation/middleware/mock.mjs.map +1 -1
  242. package/dist/internals/simulation/options.cjs +25 -0
  243. package/dist/internals/simulation/options.cjs.map +1 -0
  244. package/dist/{types/internals/simulation/options.d.ts → internals/simulation/options.d.cts} +3 -2
  245. package/dist/internals/simulation/options.d.cts.map +1 -0
  246. package/dist/internals/simulation/options.d.mts +40 -0
  247. package/dist/internals/simulation/options.d.mts.map +1 -0
  248. package/dist/internals/simulation/options.mjs +20 -8
  249. package/dist/internals/simulation/options.mjs.map +1 -1
  250. package/dist/internals/simulation/simulation.cjs +155 -0
  251. package/dist/internals/simulation/simulation.cjs.map +1 -0
  252. package/dist/{types/internals/simulation/simulation.d.ts → internals/simulation/simulation.d.cts} +11 -9
  253. package/dist/internals/simulation/simulation.d.cts.map +1 -0
  254. package/dist/internals/simulation/simulation.d.mts +103 -0
  255. package/dist/internals/simulation/simulation.d.mts.map +1 -0
  256. package/dist/internals/simulation/simulation.mjs +149 -38
  257. package/dist/internals/simulation/simulation.mjs.map +1 -1
  258. package/dist/internals/simulation/store/index.cjs +21 -0
  259. package/dist/internals/simulation/store/index.cjs.map +1 -0
  260. package/dist/internals/simulation/store/index.d.cts +5 -0
  261. package/dist/internals/simulation/store/index.d.cts.map +1 -0
  262. package/dist/internals/simulation/store/index.d.mts +5 -0
  263. package/dist/internals/simulation/store/index.d.mts.map +1 -0
  264. package/dist/internals/simulation/store/index.mjs +4 -43
  265. package/dist/internals/simulation/store/index.mjs.map +1 -1
  266. package/dist/internals/simulation/store/mocks.cjs +39 -0
  267. package/dist/internals/simulation/store/mocks.cjs.map +1 -0
  268. package/dist/{types/internals/simulation/store/mocks.d.ts → internals/simulation/store/mocks.d.cts} +6 -5
  269. package/dist/internals/simulation/store/mocks.d.cts.map +1 -0
  270. package/dist/internals/simulation/store/mocks.d.mts +36 -0
  271. package/dist/internals/simulation/store/mocks.d.mts.map +1 -0
  272. package/dist/internals/simulation/store/mocks.mjs +33 -14
  273. package/dist/internals/simulation/store/mocks.mjs.map +1 -1
  274. package/dist/internals/simulation/store/notifications.cjs +35 -0
  275. package/dist/internals/simulation/store/notifications.cjs.map +1 -0
  276. package/dist/{types/internals/simulation/store/notifications.d.ts → internals/simulation/store/notifications.d.cts} +6 -5
  277. package/dist/internals/simulation/store/notifications.d.cts.map +1 -0
  278. package/dist/internals/simulation/store/notifications.d.mts +45 -0
  279. package/dist/internals/simulation/store/notifications.d.mts.map +1 -0
  280. package/dist/internals/simulation/store/notifications.mjs +30 -14
  281. package/dist/internals/simulation/store/notifications.mjs.map +1 -1
  282. package/dist/internals/simulation/store/state.cjs +54 -0
  283. package/dist/internals/simulation/store/state.cjs.map +1 -0
  284. package/dist/{types/internals/simulation/store/state.d.ts → internals/simulation/store/state.d.cts} +6 -5
  285. package/dist/internals/simulation/store/state.d.cts.map +1 -0
  286. package/dist/internals/simulation/store/state.d.mts +56 -0
  287. package/dist/internals/simulation/store/state.d.mts.map +1 -0
  288. package/dist/internals/simulation/store/state.mjs +48 -12
  289. package/dist/internals/simulation/store/state.mjs.map +1 -1
  290. package/dist/internals/simulation/store/store.cjs +51 -0
  291. package/dist/internals/simulation/store/store.cjs.map +1 -0
  292. package/dist/{types/internals/simulation/store/store.d.ts → internals/simulation/store/store.d.cts} +2 -1
  293. package/dist/internals/simulation/store/store.d.cts.map +1 -0
  294. package/dist/internals/simulation/store/store.d.mts +22 -0
  295. package/dist/internals/simulation/store/store.d.mts.map +1 -0
  296. package/dist/internals/simulation/store/store.mjs +44 -11
  297. package/dist/internals/simulation/store/store.mjs.map +1 -1
  298. package/dist/internals/simulation/store/ui.cjs +24 -0
  299. package/dist/internals/simulation/store/ui.cjs.map +1 -0
  300. package/dist/{types/internals/simulation/store/ui.d.ts → internals/simulation/store/ui.d.cts} +6 -5
  301. package/dist/internals/simulation/store/ui.d.cts.map +1 -0
  302. package/dist/internals/simulation/store/ui.d.mts +27 -0
  303. package/dist/internals/simulation/store/ui.d.mts.map +1 -0
  304. package/dist/internals/simulation/store/ui.mjs +19 -14
  305. package/dist/internals/simulation/store/ui.mjs.map +1 -1
  306. package/dist/internals/structs.cjs +157 -0
  307. package/dist/internals/structs.cjs.map +1 -0
  308. package/dist/{types/internals/structs.d.ts → internals/structs.d.cts} +28 -27
  309. package/dist/internals/structs.d.cts.map +1 -0
  310. package/dist/internals/structs.d.mts +205 -0
  311. package/dist/internals/structs.d.mts.map +1 -0
  312. package/dist/internals/structs.mjs +153 -21
  313. package/dist/internals/structs.mjs.map +1 -1
  314. package/dist/matchers.cjs +160 -0
  315. package/dist/matchers.cjs.map +1 -0
  316. package/dist/{types/matchers.d.ts → matchers.d.cts} +4 -3
  317. package/dist/matchers.d.cts.map +1 -0
  318. package/dist/matchers.d.mts +28 -0
  319. package/dist/matchers.d.mts.map +1 -0
  320. package/dist/matchers.mjs +152 -47
  321. package/dist/matchers.mjs.map +1 -1
  322. package/dist/options.cjs +24 -0
  323. package/dist/options.cjs.map +1 -0
  324. package/dist/{types/options.d.ts → options.d.cts} +2 -1
  325. package/dist/options.d.cts.map +1 -0
  326. package/dist/options.d.mts +61 -0
  327. package/dist/options.d.mts.map +1 -0
  328. package/dist/options.mjs +19 -7
  329. package/dist/options.mjs.map +1 -1
  330. package/dist/setup.cjs +7 -0
  331. package/dist/setup.cjs.map +1 -0
  332. package/dist/setup.d.cts +2 -0
  333. package/dist/setup.d.cts.map +1 -0
  334. package/dist/setup.d.mts +2 -0
  335. package/dist/setup.d.mts.map +1 -0
  336. package/dist/setup.mjs +4 -37
  337. package/dist/setup.mjs.map +1 -1
  338. package/dist/types/index.cjs +18 -0
  339. package/dist/types/index.cjs.map +1 -0
  340. package/dist/types/index.d.cts +2 -0
  341. package/dist/types/index.d.cts.map +1 -0
  342. package/dist/types/index.d.mts +2 -0
  343. package/dist/types/index.d.mts.map +1 -0
  344. package/dist/types/index.mjs +2 -0
  345. package/dist/types/index.mjs.map +1 -0
  346. package/dist/types/types.cjs +3 -0
  347. package/dist/types/types.cjs.map +1 -0
  348. package/dist/types/{types.d.ts → types.d.cts} +7 -6
  349. package/dist/types/types.d.cts.map +1 -0
  350. package/dist/types/types.d.mts +386 -0
  351. package/dist/types/types.d.mts.map +1 -0
  352. package/dist/types/types.mjs +2 -0
  353. package/dist/types/types.mjs.map +1 -0
  354. package/jest-preset.js +1 -1
  355. package/package.json +25 -23
  356. package/dist/chunk-24CGIQLL.mjs +0 -30
  357. package/dist/chunk-24CGIQLL.mjs.map +0 -1
  358. package/dist/chunk-2JTGBHPR.js +0 -14
  359. package/dist/chunk-2JTGBHPR.js.map +0 -1
  360. package/dist/chunk-2RJYSYUB.js +0 -28
  361. package/dist/chunk-2RJYSYUB.js.map +0 -1
  362. package/dist/chunk-2YE2P5BZ.js +0 -36
  363. package/dist/chunk-2YE2P5BZ.js.map +0 -1
  364. package/dist/chunk-3FNLFVV2.js +0 -15
  365. package/dist/chunk-3FNLFVV2.js.map +0 -1
  366. package/dist/chunk-3J2IBWXV.mjs +0 -39
  367. package/dist/chunk-3J2IBWXV.mjs.map +0 -1
  368. package/dist/chunk-3NP6BDGK.js +0 -167
  369. package/dist/chunk-3NP6BDGK.js.map +0 -1
  370. package/dist/chunk-55J6XMHW.js +0 -1
  371. package/dist/chunk-55J6XMHW.js.map +0 -1
  372. package/dist/chunk-57SGDM5B.mjs +0 -69
  373. package/dist/chunk-57SGDM5B.mjs.map +0 -1
  374. package/dist/chunk-5U5WB3SM.mjs +0 -41
  375. package/dist/chunk-5U5WB3SM.mjs.map +0 -1
  376. package/dist/chunk-5ZFHFICZ.mjs +0 -1
  377. package/dist/chunk-5ZFHFICZ.mjs.map +0 -1
  378. package/dist/chunk-6HHV6YFQ.mjs +0 -1
  379. package/dist/chunk-6HHV6YFQ.mjs.map +0 -1
  380. package/dist/chunk-6JPBXAHM.mjs +0 -509
  381. package/dist/chunk-6JPBXAHM.mjs.map +0 -1
  382. package/dist/chunk-6V6MFT67.js +0 -38
  383. package/dist/chunk-6V6MFT67.js.map +0 -1
  384. package/dist/chunk-7PCHIR6O.mjs +0 -181
  385. package/dist/chunk-7PCHIR6O.mjs.map +0 -1
  386. package/dist/chunk-ALRZENWP.mjs +0 -42
  387. package/dist/chunk-ALRZENWP.mjs.map +0 -1
  388. package/dist/chunk-AMAL4SJH.js +0 -153
  389. package/dist/chunk-AMAL4SJH.js.map +0 -1
  390. package/dist/chunk-C26TYXXD.mjs +0 -240
  391. package/dist/chunk-C26TYXXD.mjs.map +0 -1
  392. package/dist/chunk-CACRY3TX.mjs +0 -104
  393. package/dist/chunk-CACRY3TX.mjs.map +0 -1
  394. package/dist/chunk-CKRORVDW.js +0 -1
  395. package/dist/chunk-CKRORVDW.js.map +0 -1
  396. package/dist/chunk-D653LBAY.js +0 -34
  397. package/dist/chunk-D653LBAY.js.map +0 -1
  398. package/dist/chunk-DR6Y7IVX.js +0 -1
  399. package/dist/chunk-DR6Y7IVX.js.map +0 -1
  400. package/dist/chunk-DUVKGPX5.js +0 -509
  401. package/dist/chunk-DUVKGPX5.js.map +0 -1
  402. package/dist/chunk-EMTW3H54.js +0 -20
  403. package/dist/chunk-EMTW3H54.js.map +0 -1
  404. package/dist/chunk-FP4H3ADT.mjs +0 -20
  405. package/dist/chunk-FP4H3ADT.mjs.map +0 -1
  406. package/dist/chunk-FQWOVTBB.mjs +0 -22
  407. package/dist/chunk-FQWOVTBB.mjs.map +0 -1
  408. package/dist/chunk-G333FBBL.mjs +0 -38
  409. package/dist/chunk-G333FBBL.mjs.map +0 -1
  410. package/dist/chunk-GECE47HW.js +0 -1
  411. package/dist/chunk-GECE47HW.js.map +0 -1
  412. package/dist/chunk-GLPGOEVE.js +0 -240
  413. package/dist/chunk-GLPGOEVE.js.map +0 -1
  414. package/dist/chunk-GMTKFAWO.js +0 -42
  415. package/dist/chunk-GMTKFAWO.js.map +0 -1
  416. package/dist/chunk-H2464AXT.mjs +0 -33
  417. package/dist/chunk-H2464AXT.mjs.map +0 -1
  418. package/dist/chunk-HROOL3VI.js +0 -1
  419. package/dist/chunk-HROOL3VI.js.map +0 -1
  420. package/dist/chunk-IWJ4HKDR.mjs +0 -50
  421. package/dist/chunk-IWJ4HKDR.mjs.map +0 -1
  422. package/dist/chunk-IXKO6X55.mjs +0 -15
  423. package/dist/chunk-IXKO6X55.mjs.map +0 -1
  424. package/dist/chunk-J3I5KZIF.js +0 -22
  425. package/dist/chunk-J3I5KZIF.js.map +0 -1
  426. package/dist/chunk-J4ZPUCLX.mjs +0 -8
  427. package/dist/chunk-J4ZPUCLX.mjs.map +0 -1
  428. package/dist/chunk-JMDSN227.mjs +0 -25
  429. package/dist/chunk-JMDSN227.mjs.map +0 -1
  430. package/dist/chunk-K7MK6LQU.js +0 -54
  431. package/dist/chunk-K7MK6LQU.js.map +0 -1
  432. package/dist/chunk-KIQOUUEZ.mjs +0 -1
  433. package/dist/chunk-KIQOUUEZ.mjs.map +0 -1
  434. package/dist/chunk-KOPPL55J.mjs +0 -28
  435. package/dist/chunk-KOPPL55J.mjs.map +0 -1
  436. package/dist/chunk-KPRLFCKD.js +0 -13
  437. package/dist/chunk-KPRLFCKD.js.map +0 -1
  438. package/dist/chunk-LACTK6EO.js +0 -33
  439. package/dist/chunk-LACTK6EO.js.map +0 -1
  440. package/dist/chunk-LB4R3BUA.mjs +0 -36
  441. package/dist/chunk-LB4R3BUA.mjs.map +0 -1
  442. package/dist/chunk-LBC2OGSN.js +0 -48
  443. package/dist/chunk-LBC2OGSN.js.map +0 -1
  444. package/dist/chunk-LPMHPAZK.js +0 -203
  445. package/dist/chunk-LPMHPAZK.js.map +0 -1
  446. package/dist/chunk-LSKT2AUS.mjs +0 -97
  447. package/dist/chunk-LSKT2AUS.mjs.map +0 -1
  448. package/dist/chunk-LVNNGMJ2.mjs +0 -13
  449. package/dist/chunk-LVNNGMJ2.mjs.map +0 -1
  450. package/dist/chunk-MF43OG3Z.mjs +0 -1
  451. package/dist/chunk-MF43OG3Z.mjs.map +0 -1
  452. package/dist/chunk-MPZOXW6I.mjs +0 -48
  453. package/dist/chunk-MPZOXW6I.mjs.map +0 -1
  454. package/dist/chunk-N6MAO223.js +0 -60
  455. package/dist/chunk-N6MAO223.js.map +0 -1
  456. package/dist/chunk-NTOY6Y4Q.mjs +0 -1
  457. package/dist/chunk-NTOY6Y4Q.mjs.map +0 -1
  458. package/dist/chunk-OHRFO2BL.mjs +0 -89
  459. package/dist/chunk-OHRFO2BL.mjs.map +0 -1
  460. package/dist/chunk-OO6IVUCV.js +0 -104
  461. package/dist/chunk-OO6IVUCV.js.map +0 -1
  462. package/dist/chunk-ORR7AE5X.mjs +0 -54
  463. package/dist/chunk-ORR7AE5X.mjs.map +0 -1
  464. package/dist/chunk-PDOVVC74.mjs +0 -153
  465. package/dist/chunk-PDOVVC74.mjs.map +0 -1
  466. package/dist/chunk-PHUTP7NB.js +0 -25
  467. package/dist/chunk-PHUTP7NB.js.map +0 -1
  468. package/dist/chunk-Q2OQXAUM.mjs +0 -35
  469. package/dist/chunk-Q2OQXAUM.mjs.map +0 -1
  470. package/dist/chunk-Q3I6P2ZF.mjs +0 -167
  471. package/dist/chunk-Q3I6P2ZF.mjs.map +0 -1
  472. package/dist/chunk-QRVFWATH.mjs +0 -14
  473. package/dist/chunk-QRVFWATH.mjs.map +0 -1
  474. package/dist/chunk-QYHQ2WWX.js +0 -89
  475. package/dist/chunk-QYHQ2WWX.js.map +0 -1
  476. package/dist/chunk-RJNNNCZJ.js +0 -39
  477. package/dist/chunk-RJNNNCZJ.js.map +0 -1
  478. package/dist/chunk-ROCGQYSK.mjs +0 -203
  479. package/dist/chunk-ROCGQYSK.mjs.map +0 -1
  480. package/dist/chunk-RQKT6BQ2.mjs +0 -1
  481. package/dist/chunk-RQKT6BQ2.mjs.map +0 -1
  482. package/dist/chunk-S2HLITUN.js +0 -1
  483. package/dist/chunk-S2HLITUN.js.map +0 -1
  484. package/dist/chunk-SB5EPHE3.js +0 -41
  485. package/dist/chunk-SB5EPHE3.js.map +0 -1
  486. package/dist/chunk-SLU4FNKX.mjs +0 -60
  487. package/dist/chunk-SLU4FNKX.mjs.map +0 -1
  488. package/dist/chunk-SNXRXX2O.js +0 -30
  489. package/dist/chunk-SNXRXX2O.js.map +0 -1
  490. package/dist/chunk-SW65QYFV.js +0 -50
  491. package/dist/chunk-SW65QYFV.js.map +0 -1
  492. package/dist/chunk-TGZ7WOTJ.mjs +0 -1
  493. package/dist/chunk-TGZ7WOTJ.mjs.map +0 -1
  494. package/dist/chunk-TZB4LBT7.js +0 -8
  495. package/dist/chunk-TZB4LBT7.js.map +0 -1
  496. package/dist/chunk-UDOXICJK.mjs +0 -1
  497. package/dist/chunk-UDOXICJK.mjs.map +0 -1
  498. package/dist/chunk-VHJZERIC.js +0 -1
  499. package/dist/chunk-VHJZERIC.js.map +0 -1
  500. package/dist/chunk-VOYBI6T4.mjs +0 -22
  501. package/dist/chunk-VOYBI6T4.mjs.map +0 -1
  502. package/dist/chunk-WDYPMEZB.js +0 -22
  503. package/dist/chunk-WDYPMEZB.js.map +0 -1
  504. package/dist/chunk-WHGYMK5B.js +0 -1
  505. package/dist/chunk-WHGYMK5B.js.map +0 -1
  506. package/dist/chunk-WZ57PU2K.js +0 -97
  507. package/dist/chunk-WZ57PU2K.js.map +0 -1
  508. package/dist/chunk-XAOCS6ZD.js +0 -69
  509. package/dist/chunk-XAOCS6ZD.js.map +0 -1
  510. package/dist/chunk-XK5HPZZC.mjs +0 -14
  511. package/dist/chunk-XK5HPZZC.mjs.map +0 -1
  512. package/dist/chunk-XP4YGQJA.js +0 -14
  513. package/dist/chunk-XP4YGQJA.js.map +0 -1
  514. package/dist/chunk-Y2U3ZPCK.js +0 -181
  515. package/dist/chunk-Y2U3ZPCK.js.map +0 -1
  516. package/dist/chunk-Y3JC4WGW.js +0 -35
  517. package/dist/chunk-Y3JC4WGW.js.map +0 -1
  518. package/dist/chunk-ZG33OGC3.mjs +0 -1
  519. package/dist/chunk-ZG33OGC3.mjs.map +0 -1
  520. package/dist/chunk-ZJQSGRNK.mjs +0 -34
  521. package/dist/chunk-ZJQSGRNK.mjs.map +0 -1
  522. package/dist/chunk-ZTX624YO.js +0 -1
  523. package/dist/chunk-ZTX624YO.js.map +0 -1
  524. package/dist/environment.js +0 -46
  525. package/dist/environment.js.map +0 -1
  526. package/dist/global.js +0 -2
  527. package/dist/global.js.map +0 -1
  528. package/dist/helpers.js +0 -57
  529. package/dist/helpers.js.map +0 -1
  530. package/dist/index.js +0 -68
  531. package/dist/index.js.map +0 -1
  532. package/dist/internals/environment.js +0 -8
  533. package/dist/internals/environment.js.map +0 -1
  534. package/dist/internals/index.js +0 -150
  535. package/dist/internals/index.js.map +0 -1
  536. package/dist/internals/logger.js +0 -8
  537. package/dist/internals/logger.js.map +0 -1
  538. package/dist/internals/request.js +0 -42
  539. package/dist/internals/request.js.map +0 -1
  540. package/dist/internals/server.js +0 -9
  541. package/dist/internals/server.js.map +0 -1
  542. package/dist/internals/simulation/constants.js +0 -14
  543. package/dist/internals/simulation/constants.js.map +0 -1
  544. package/dist/internals/simulation/controllers.js +0 -25
  545. package/dist/internals/simulation/controllers.js.map +0 -1
  546. package/dist/internals/simulation/files.js +0 -14
  547. package/dist/internals/simulation/files.js.map +0 -1
  548. package/dist/internals/simulation/index.js +0 -111
  549. package/dist/internals/simulation/index.js.map +0 -1
  550. package/dist/internals/simulation/interface.js +0 -37
  551. package/dist/internals/simulation/interface.js.map +0 -1
  552. package/dist/internals/simulation/methods/constants.js +0 -12
  553. package/dist/internals/simulation/methods/constants.js.map +0 -1
  554. package/dist/internals/simulation/methods/hooks/get-preferences.js +0 -8
  555. package/dist/internals/simulation/methods/hooks/get-preferences.js.map +0 -1
  556. package/dist/internals/simulation/methods/hooks/index.js +0 -39
  557. package/dist/internals/simulation/methods/hooks/index.js.map +0 -1
  558. package/dist/internals/simulation/methods/hooks/interface.js +0 -10
  559. package/dist/internals/simulation/methods/hooks/interface.js.map +0 -1
  560. package/dist/internals/simulation/methods/hooks/notifications.js +0 -16
  561. package/dist/internals/simulation/methods/hooks/notifications.js.map +0 -1
  562. package/dist/internals/simulation/methods/hooks/request-user-approval.js +0 -14
  563. package/dist/internals/simulation/methods/hooks/request-user-approval.js.map +0 -1
  564. package/dist/internals/simulation/methods/hooks/state.js +0 -18
  565. package/dist/internals/simulation/methods/hooks/state.js.map +0 -1
  566. package/dist/internals/simulation/methods/index.js +0 -28
  567. package/dist/internals/simulation/methods/index.js.map +0 -1
  568. package/dist/internals/simulation/methods/specifications.js +0 -27
  569. package/dist/internals/simulation/methods/specifications.js.map +0 -1
  570. package/dist/internals/simulation/middleware/engine.js +0 -15
  571. package/dist/internals/simulation/middleware/engine.js.map +0 -1
  572. package/dist/internals/simulation/middleware/index.js +0 -16
  573. package/dist/internals/simulation/middleware/index.js.map +0 -1
  574. package/dist/internals/simulation/middleware/internal-methods/accounts.js +0 -8
  575. package/dist/internals/simulation/middleware/internal-methods/accounts.js.map +0 -1
  576. package/dist/internals/simulation/middleware/internal-methods/index.js +0 -11
  577. package/dist/internals/simulation/middleware/internal-methods/index.js.map +0 -1
  578. package/dist/internals/simulation/middleware/internal-methods/middleware.js +0 -10
  579. package/dist/internals/simulation/middleware/internal-methods/middleware.js.map +0 -1
  580. package/dist/internals/simulation/middleware/internal-methods/provider-state.js +0 -8
  581. package/dist/internals/simulation/middleware/internal-methods/provider-state.js.map +0 -1
  582. package/dist/internals/simulation/middleware/mock.js +0 -9
  583. package/dist/internals/simulation/middleware/mock.js.map +0 -1
  584. package/dist/internals/simulation/options.js +0 -9
  585. package/dist/internals/simulation/options.js.map +0 -1
  586. package/dist/internals/simulation/simulation.js +0 -39
  587. package/dist/internals/simulation/simulation.js.map +0 -1
  588. package/dist/internals/simulation/store/index.js +0 -44
  589. package/dist/internals/simulation/store/index.js.map +0 -1
  590. package/dist/internals/simulation/store/mocks.js +0 -16
  591. package/dist/internals/simulation/store/mocks.js.map +0 -1
  592. package/dist/internals/simulation/store/notifications.js +0 -16
  593. package/dist/internals/simulation/store/notifications.js.map +0 -1
  594. package/dist/internals/simulation/store/state.js +0 -14
  595. package/dist/internals/simulation/store/state.js.map +0 -1
  596. package/dist/internals/simulation/store/store.js +0 -12
  597. package/dist/internals/simulation/store/store.js.map +0 -1
  598. package/dist/internals/simulation/store/ui.js +0 -16
  599. package/dist/internals/simulation/store/ui.js.map +0 -1
  600. package/dist/internals/structs.js +0 -22
  601. package/dist/internals/structs.js.map +0 -1
  602. package/dist/matchers.js +0 -49
  603. package/dist/matchers.js.map +0 -1
  604. package/dist/options.js +0 -8
  605. package/dist/options.js.map +0 -1
  606. package/dist/setup.js +0 -38
  607. package/dist/setup.js.map +0 -1
  608. package/dist/tsconfig.build.tsbuildinfo +0 -1
  609. package/dist/types/index.d.ts +0 -5
  610. package/dist/types/internals/index.d.ts +0 -6
  611. package/dist/types/internals/simulation/index.d.ts +0 -5
  612. package/dist/types/internals/simulation/methods/hooks/index.d.ts +0 -5
  613. package/dist/types/internals/simulation/methods/index.d.ts +0 -1
  614. package/dist/types/internals/simulation/middleware/index.d.ts +0 -1
  615. package/dist/types/internals/simulation/middleware/internal-methods/index.d.ts +0 -1
  616. package/dist/types/internals/simulation/store/index.d.ts +0 -4
  617. package/dist/types/setup.d.ts +0 -1
  618. package/dist/types/vendor/readable-stream.d.js +0 -1
  619. package/dist/types/vendor/readable-stream.d.js.map +0 -1
  620. package/dist/types/vendor/readable-stream.d.mjs +0 -1
  621. package/dist/types/vendor/readable-stream.d.mjs.map +0 -1
  622. package/dist/types.js +0 -2
  623. package/dist/types.js.map +0 -1
  624. package/dist/types.mjs +0 -2
  625. package/dist/types.mjs.map +0 -1
@@ -1,167 +0,0 @@
1
- import {
2
- createJsonRpcEngine
3
- } from "./chunk-3J2IBWXV.mjs";
4
- import {
5
- resolveWithSaga
6
- } from "./chunk-6JPBXAHM.mjs";
7
- import {
8
- getSnapFile
9
- } from "./chunk-IWJ4HKDR.mjs";
10
- import {
11
- getOptions
12
- } from "./chunk-G333FBBL.mjs";
13
- import {
14
- getControllers,
15
- registerSnap
16
- } from "./chunk-LSKT2AUS.mjs";
17
- import {
18
- getEndowments
19
- } from "./chunk-OHRFO2BL.mjs";
20
- import {
21
- createStore
22
- } from "./chunk-ORR7AE5X.mjs";
23
- import {
24
- getCurrentInterface
25
- } from "./chunk-ZJQSGRNK.mjs";
26
-
27
- // src/internals/simulation/simulation.ts
28
- import { ControllerMessenger } from "@metamask/base-controller";
29
- import { createEngineStream } from "@metamask/json-rpc-middleware-stream";
30
- import { mnemonicPhraseToBytes } from "@metamask/key-tree";
31
- import {
32
- fetchSnap,
33
- detectSnapLocation,
34
- NodeThreadExecutionService,
35
- setupMultiplex
36
- } from "@metamask/snaps-controllers/node";
37
- import { DIALOG_APPROVAL_TYPES } from "@metamask/snaps-rpc-methods";
38
- import { logError } from "@metamask/snaps-utils";
39
- import { pipeline } from "readable-stream";
40
- import { select } from "redux-saga/effects";
41
- async function handleInstallSnap(snapId, {
42
- executionService,
43
- executionServiceOptions,
44
- options: rawOptions = {}
45
- } = {}) {
46
- const options = getOptions(rawOptions);
47
- const location = detectSnapLocation(snapId, {
48
- allowLocal: true
49
- });
50
- const snapFiles = await fetchSnap(snapId, location);
51
- const { store, runSaga } = createStore(options);
52
- const controllerMessenger = new ControllerMessenger();
53
- registerActions(controllerMessenger, runSaga);
54
- const hooks = getHooks(options, snapFiles, snapId, controllerMessenger);
55
- const { subjectMetadataController, permissionController } = getControllers({
56
- controllerMessenger,
57
- hooks,
58
- runSaga,
59
- options
60
- });
61
- const engine = createJsonRpcEngine({
62
- store,
63
- hooks,
64
- permissionMiddleware: permissionController.createPermissionMiddleware({
65
- origin: snapId
66
- })
67
- });
68
- const ExecutionService = executionService ?? NodeThreadExecutionService;
69
- const service = new ExecutionService({
70
- ...executionServiceOptions,
71
- messenger: controllerMessenger.getRestricted({
72
- name: "ExecutionService",
73
- allowedActions: [],
74
- allowedEvents: []
75
- }),
76
- setupSnapProvider: (_snapId, rpcStream) => {
77
- const mux = setupMultiplex(rpcStream, "snapStream");
78
- const stream = mux.createStream("metamask-provider");
79
- const providerStream = createEngineStream({ engine });
80
- pipeline(stream, providerStream, stream, (error) => {
81
- if (error) {
82
- logError(`Provider stream failure.`, error);
83
- }
84
- });
85
- }
86
- });
87
- await registerSnap(snapId, snapFiles.manifest.result, {
88
- permissionController,
89
- subjectMetadataController
90
- });
91
- await service.executeSnap({
92
- snapId,
93
- sourceCode: snapFiles.sourceCode.toString("utf8"),
94
- endowments: await getEndowments(permissionController, snapId)
95
- });
96
- return {
97
- snapId,
98
- store,
99
- executionService: service,
100
- controllerMessenger,
101
- runSaga
102
- };
103
- }
104
- function getHooks(options, snapFiles, snapId, controllerMessenger) {
105
- return {
106
- getMnemonic: async () => Promise.resolve(mnemonicPhraseToBytes(options.secretRecoveryPhrase)),
107
- getSnapFile: async (path, encoding) => await getSnapFile(snapFiles.auxiliaryFiles, path, encoding),
108
- getIsLocked: () => false,
109
- createInterface: async (...args) => controllerMessenger.call(
110
- "SnapInterfaceController:createInterface",
111
- snapId,
112
- ...args
113
- ),
114
- updateInterface: async (...args) => controllerMessenger.call(
115
- "SnapInterfaceController:updateInterface",
116
- snapId,
117
- ...args
118
- ),
119
- getInterfaceState: (...args) => controllerMessenger.call(
120
- "SnapInterfaceController:getInterface",
121
- snapId,
122
- ...args
123
- ).state,
124
- resolveInterface: async (...args) => controllerMessenger.call(
125
- "SnapInterfaceController:resolveInterface",
126
- snapId,
127
- ...args
128
- )
129
- };
130
- }
131
- function registerActions(controllerMessenger, runSaga) {
132
- controllerMessenger.registerActionHandler(
133
- "PhishingController:maybeUpdateState",
134
- async () => Promise.resolve()
135
- );
136
- controllerMessenger.registerActionHandler(
137
- "PhishingController:testOrigin",
138
- () => ({ result: false, type: "all" })
139
- );
140
- controllerMessenger.registerActionHandler(
141
- "ApprovalController:hasRequest",
142
- (opts) => {
143
- function* getCurrentInterfaceSaga() {
144
- const currentInterface2 = yield select(getCurrentInterface);
145
- return currentInterface2;
146
- }
147
- const currentInterface = runSaga(
148
- getCurrentInterfaceSaga
149
- ).result();
150
- return currentInterface?.type === DIALOG_APPROVAL_TYPES.default && currentInterface?.id === opts?.id;
151
- }
152
- );
153
- controllerMessenger.registerActionHandler(
154
- "ApprovalController:acceptRequest",
155
- async (_id, value) => {
156
- await runSaga(resolveWithSaga, value).toPromise();
157
- return { value };
158
- }
159
- );
160
- }
161
-
162
- export {
163
- handleInstallSnap,
164
- getHooks,
165
- registerActions
166
- };
167
- //# sourceMappingURL=chunk-Q3I6P2ZF.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internals/simulation/simulation.ts"],"sourcesContent":["import type {\n ActionConstraint,\n EventConstraint,\n} from '@metamask/base-controller';\nimport { ControllerMessenger } from '@metamask/base-controller';\nimport { createEngineStream } from '@metamask/json-rpc-middleware-stream';\nimport { mnemonicPhraseToBytes } from '@metamask/key-tree';\nimport type { AbstractExecutionService } from '@metamask/snaps-controllers';\nimport {\n fetchSnap,\n detectSnapLocation,\n NodeThreadExecutionService,\n setupMultiplex,\n} from '@metamask/snaps-controllers/node';\nimport { DIALOG_APPROVAL_TYPES } from '@metamask/snaps-rpc-methods';\nimport type {\n SnapId,\n AuxiliaryFileEncoding,\n Component,\n InterfaceState,\n} from '@metamask/snaps-sdk';\nimport type { FetchedSnapFiles } from '@metamask/snaps-utils';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\nimport type { Duplex } from 'readable-stream';\nimport { pipeline } from 'readable-stream';\nimport type { SagaIterator } from 'redux-saga';\nimport { select } from 'redux-saga/effects';\n\nimport type { RootControllerMessenger } from './controllers';\nimport { getControllers, registerSnap } from './controllers';\nimport { getSnapFile } from './files';\nimport { resolveWithSaga } from './interface';\nimport { getEndowments } from './methods';\nimport { createJsonRpcEngine } from './middleware';\nimport type { SimulationOptions, SimulationUserOptions } from './options';\nimport { getOptions } from './options';\nimport type { Interface, RunSagaFunction, Store } from './store';\nimport { createStore, getCurrentInterface } from './store';\n\n/**\n * Options for the execution service, without the options that are shared\n * between all execution services.\n *\n * @template Service - The type of the execution service, i.e., the class that\n * creates the execution service.\n */\nexport type ExecutionServiceOptions<\n Service extends new (...args: any[]) => any,\n> = Omit<\n ConstructorParameters<Service>[0],\n keyof ConstructorParameters<typeof AbstractExecutionService<unknown>>[0]\n>;\n\n/**\n * The options for running a Snap in a simulated environment.\n *\n * @property executionService - The execution service to use.\n * @property executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @property options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport type InstallSnapOptions<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService<unknown>\n >,\n> = ExecutionServiceOptions<Service> extends Record<string, never>\n ? {\n executionService: Service;\n executionServiceOptions?: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n }\n : {\n executionService: Service;\n executionServiceOptions: ExecutionServiceOptions<Service>;\n options?: SimulationUserOptions;\n };\n\nexport type InstalledSnap = {\n snapId: SnapId;\n store: Store;\n executionService: InstanceType<typeof AbstractExecutionService>;\n controllerMessenger: ControllerMessenger<ActionConstraint, EventConstraint>;\n runSaga: RunSagaFunction;\n};\n\nexport type MiddlewareHooks = {\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 Snap's auxiliary file for the given path.\n *\n * @param path - The path of the auxiliary file to get.\n * @param encoding - The encoding to use when returning the file.\n * @returns The Snap's auxiliary file for the given path.\n */\n getSnapFile: (\n path: string,\n encoding: AuxiliaryFileEncoding,\n ) => Promise<string | null>;\n\n /**\n * A hook that returns whether the client is locked or not.\n *\n * @returns A boolean flag signaling whether the client is locked.\n */\n getIsLocked: () => boolean;\n createInterface: (content: Component) => Promise<string>;\n updateInterface: (id: string, content: Component) => Promise<void>;\n getInterfaceState: (id: string) => InterfaceState;\n resolveInterface: (id: string, value: Json) => Promise<void>;\n};\n\n/**\n * Install a Snap in a simulated environment. This will fetch the Snap files,\n * create a Redux store, set up the controllers and JSON-RPC stack, register the\n * Snap, and run the Snap code in the execution service.\n *\n * @param snapId - The ID of the Snap to install.\n * @param options - The options to use when installing the Snap.\n * @param options.executionService - The execution service to use.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @template Service - The type of the execution service.\n */\nexport async function handleInstallSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId: SnapId,\n {\n executionService,\n executionServiceOptions,\n options: rawOptions = {},\n }: Partial<InstallSnapOptions<Service>> = {},\n): Promise<InstalledSnap> {\n const options = getOptions(rawOptions);\n\n // Fetch Snap files.\n const location = detectSnapLocation(snapId, {\n allowLocal: true,\n });\n\n const snapFiles = await fetchSnap(snapId, location);\n\n // Create Redux store.\n const { store, runSaga } = createStore(options);\n\n const controllerMessenger = new ControllerMessenger<any, any>();\n\n registerActions(controllerMessenger, runSaga);\n\n // Set up controllers and JSON-RPC stack.\n const hooks = getHooks(options, snapFiles, snapId, controllerMessenger);\n\n const { subjectMetadataController, permissionController } = getControllers({\n controllerMessenger,\n hooks,\n runSaga,\n options,\n });\n\n const engine = createJsonRpcEngine({\n store,\n hooks,\n permissionMiddleware: permissionController.createPermissionMiddleware({\n origin: snapId,\n }),\n });\n\n // Create execution service.\n const ExecutionService = executionService ?? NodeThreadExecutionService;\n const service = new ExecutionService({\n ...executionServiceOptions,\n messenger: controllerMessenger.getRestricted({\n name: 'ExecutionService',\n allowedActions: [],\n allowedEvents: [],\n }),\n setupSnapProvider: (_snapId: string, rpcStream: Duplex) => {\n const mux = setupMultiplex(rpcStream, 'snapStream');\n const stream = mux.createStream('metamask-provider');\n const providerStream = createEngineStream({ engine });\n\n // Error function is difficult to test, so we ignore it.\n /* istanbul ignore next 2 */\n pipeline(stream, providerStream, stream, (error: unknown) => {\n if (error) {\n logError(`Provider stream failure.`, error);\n }\n });\n },\n });\n\n // Register the Snap. This sets up the Snap's permissions and subject\n // metadata.\n await registerSnap(snapId, snapFiles.manifest.result, {\n permissionController,\n subjectMetadataController,\n });\n\n // Run the Snap code in the execution service.\n await service.executeSnap({\n snapId,\n sourceCode: snapFiles.sourceCode.toString('utf8'),\n endowments: await getEndowments(permissionController, snapId),\n });\n\n return {\n snapId,\n store,\n executionService: service,\n controllerMessenger,\n runSaga,\n };\n}\n\n/**\n * Get the hooks for the simulation.\n *\n * @param options - The simulation options.\n * @param snapFiles - The Snap files.\n * @param snapId - The Snap ID.\n * @param controllerMessenger - The controller messenger.\n * @returns The hooks for the simulation.\n */\nexport function getHooks(\n options: SimulationOptions,\n snapFiles: FetchedSnapFiles,\n snapId: SnapId,\n controllerMessenger: RootControllerMessenger,\n): MiddlewareHooks {\n return {\n getMnemonic: async () =>\n Promise.resolve(mnemonicPhraseToBytes(options.secretRecoveryPhrase)),\n getSnapFile: async (path: string, encoding: AuxiliaryFileEncoding) =>\n await getSnapFile(snapFiles.auxiliaryFiles, path, encoding),\n getIsLocked: () => false,\n createInterface: async (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:createInterface',\n snapId,\n ...args,\n ),\n updateInterface: async (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:updateInterface',\n snapId,\n ...args,\n ),\n getInterfaceState: (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:getInterface',\n snapId,\n ...args,\n ).state,\n resolveInterface: async (...args) =>\n controllerMessenger.call(\n 'SnapInterfaceController:resolveInterface',\n snapId,\n ...args,\n ),\n };\n}\n\n/**\n * Register mocked action handlers.\n *\n * @param controllerMessenger - The controller messenger.\n * @param runSaga - The run saga function.\n */\nexport function registerActions(\n controllerMessenger: RootControllerMessenger,\n runSaga: RunSagaFunction,\n) {\n controllerMessenger.registerActionHandler(\n 'PhishingController:maybeUpdateState',\n async () => Promise.resolve(),\n );\n\n controllerMessenger.registerActionHandler(\n 'PhishingController:testOrigin',\n () => ({ result: false, type: 'all' }),\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:hasRequest',\n (opts) => {\n /**\n * Get the current interface from the store.\n *\n * @yields Selects the current interface from the store.\n * @returns The current interface.\n */\n function* getCurrentInterfaceSaga(): SagaIterator {\n const currentInterface: Interface = yield select(getCurrentInterface);\n return currentInterface;\n }\n\n const currentInterface: Interface | undefined = runSaga(\n getCurrentInterfaceSaga,\n ).result();\n return (\n currentInterface?.type === DIALOG_APPROVAL_TYPES.default &&\n currentInterface?.id === opts?.id\n );\n },\n );\n\n controllerMessenger.registerActionHandler(\n 'ApprovalController:acceptRequest',\n async (_id: string, value: unknown) => {\n await runSaga(resolveWithSaga, value).toPromise();\n\n return { value };\n },\n );\n}\n"],"mappings":"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","names":["currentInterface"]}
@@ -1,14 +0,0 @@
1
- // src/internals/simulation/methods/hooks/get-preferences.ts
2
- function getGetPreferencesMethodImplementation({
3
- currency,
4
- locale
5
- }) {
6
- return () => {
7
- return { currency, locale };
8
- };
9
- }
10
-
11
- export {
12
- getGetPreferencesMethodImplementation
13
- };
14
- //# sourceMappingURL=chunk-QRVFWATH.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internals/simulation/methods/hooks/get-preferences.ts"],"sourcesContent":["import type { SimulationOptions } from '../../options';\n\n/**\n * Get the implementation of the `getPreferences` hook.\n *\n * @param options - The simulation options.\n * @param options.currency - The currency to use.\n * @param options.locale - The locale to use.\n * @returns The implementation of the `getPreferences` hook.\n */\nexport function getGetPreferencesMethodImplementation({\n currency,\n locale,\n}: SimulationOptions) {\n return () => {\n return { currency, locale };\n };\n}\n"],"mappings":";AAUO,SAAS,sCAAsC;AAAA,EACpD;AAAA,EACA;AACF,GAAsB;AACpB,SAAO,MAAM;AACX,WAAO,EAAE,UAAU,OAAO;AAAA,EAC5B;AACF;","names":[]}
@@ -1,89 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkXP4YGQJAjs = require('./chunk-XP4YGQJA.js');
4
-
5
-
6
-
7
- var _chunkJ3I5KZIFjs = require('./chunk-J3I5KZIF.js');
8
-
9
-
10
-
11
- var _chunkGMTKFAWOjs = require('./chunk-GMTKFAWO.js');
12
-
13
-
14
- var _chunkSNXRXX2Ojs = require('./chunk-SNXRXX2O.js');
15
-
16
-
17
-
18
-
19
- var _chunkSB5EPHE3js = require('./chunk-SB5EPHE3.js');
20
-
21
-
22
-
23
- var _chunkXAOCS6ZDjs = require('./chunk-XAOCS6ZD.js');
24
-
25
- // src/internals/simulation/methods/specifications.ts
26
-
27
-
28
-
29
-
30
- var _snapsrpcmethods = require('@metamask/snaps-rpc-methods');
31
- var _snapsutils = require('@metamask/snaps-utils');
32
- function resolve(result) {
33
- return () => result;
34
- }
35
- function asyncResolve(result) {
36
- return async () => result;
37
- }
38
- function getPermissionSpecifications({
39
- controllerMessenger,
40
- hooks,
41
- runSaga,
42
- options
43
- }) {
44
- return {
45
- ..._snapsrpcmethods.buildSnapEndowmentSpecifications.call(void 0, _chunkXAOCS6ZDjs.EXCLUDED_SNAP_ENDOWMENTS),
46
- ..._snapsrpcmethods.buildSnapRestrictedMethodSpecifications.call(void 0, _chunkXAOCS6ZDjs.EXCLUDED_SNAP_PERMISSIONS, {
47
- // Shared hooks.
48
- ...hooks,
49
- // Snaps-specific hooks.
50
- clearSnapState: _chunkSB5EPHE3js.getClearSnapStateMethodImplementation.call(void 0, runSaga),
51
- getPreferences: _chunkXP4YGQJAjs.getGetPreferencesMethodImplementation.call(void 0, options),
52
- getSnapState: _chunkSB5EPHE3js.getGetSnapStateMethodImplementation.call(void 0, runSaga),
53
- getUnlockPromise: asyncResolve(true),
54
- // TODO: Allow the user to specify the result of this function.
55
- isOnPhishingList: resolve(false),
56
- maybeUpdatePhishingList: asyncResolve(),
57
- requestUserApproval: _chunkSNXRXX2Ojs.getRequestUserApprovalImplementation.call(void 0, runSaga),
58
- showInAppNotification: _chunkGMTKFAWOjs.getShowInAppNotificationImplementation.call(void 0, runSaga),
59
- showNativeNotification: _chunkGMTKFAWOjs.getShowNativeNotificationImplementation.call(void 0, runSaga),
60
- updateSnapState: _chunkSB5EPHE3js.getUpdateSnapStateMethodImplementation.call(void 0, runSaga),
61
- createInterface: _chunkJ3I5KZIFjs.getCreateInterfaceImplementation.call(void 0, controllerMessenger),
62
- getInterface: _chunkJ3I5KZIFjs.getGetInterfaceImplementation.call(void 0, controllerMessenger)
63
- })
64
- };
65
- }
66
- async function getEndowments(permissionController, snapId) {
67
- const allEndowments = await Object.keys(_snapsrpcmethods.endowmentPermissionBuilders).reduce(async (promise, permissionName) => {
68
- const accumulator = await promise;
69
- if (permissionController.hasPermission(snapId, permissionName)) {
70
- const endowments = await permissionController.getEndowments(
71
- snapId,
72
- permissionName
73
- );
74
- if (endowments) {
75
- return accumulator.concat(endowments);
76
- }
77
- }
78
- return accumulator;
79
- }, Promise.resolve([]));
80
- return [.../* @__PURE__ */ new Set([..._snapsutils.DEFAULT_ENDOWMENTS, ...allEndowments])];
81
- }
82
-
83
-
84
-
85
-
86
-
87
-
88
- exports.resolve = resolve; exports.asyncResolve = asyncResolve; exports.getPermissionSpecifications = getPermissionSpecifications; exports.getEndowments = getEndowments;
89
- //# sourceMappingURL=chunk-QYHQ2WWX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internals/simulation/methods/specifications.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,0BAA0B;AA2C5B,SAAS,QAAQ,QAAiB;AACvC,SAAO,MAAM;AACf;AASO,SAAS,aAAa,QAAkB;AAC7C,SAAO,YAAY;AACrB;AAaO,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAuC;AACrC,SAAO;AAAA,IACL,GAAG,iCAAiC,wBAAwB;AAAA,IAC5D,GAAG,wCAAwC,2BAA2B;AAAA;AAAA,MAEpE,GAAG;AAAA;AAAA,MAGH,gBAAgB,sCAAsC,OAAO;AAAA,MAC7D,gBAAgB,sCAAsC,OAAO;AAAA,MAC7D,cAAc,oCAAoC,OAAO;AAAA,MACzD,kBAAkB,aAAa,IAAI;AAAA;AAAA,MAGnC,kBAAkB,QAAQ,KAAK;AAAA,MAE/B,yBAAyB,aAAa;AAAA,MACtC,qBAAqB,qCAAqC,OAAO;AAAA,MACjE,uBAAuB,uCAAuC,OAAO;AAAA,MACrE,wBAAwB,wCAAwC,OAAO;AAAA,MACvE,iBAAiB,uCAAuC,OAAO;AAAA,MAC/D,iBAAiB,iCAAiC,mBAAmB;AAAA,MACrE,cAAc,8BAA8B,mBAAmB;AAAA,IACjE,CAAC;AAAA,EACH;AACF;AASA,eAAsB,cACpB,sBACA,QACA;AACA,QAAM,gBAAgB,MAAM,OAAO,KAAK,2BAA2B,EAAE,OAEnE,OAAO,SAAS,mBAAmB;AACnC,UAAM,cAAc,MAAM;AAC1B,QAAI,qBAAqB,cAAc,QAAQ,cAAc,GAAG;AAC9D,YAAM,aAAa,MAAM,qBAAqB;AAAA,QAC5C;AAAA,QACA;AAAA,MACF;AAEA,UAAI,YAAY;AACd,eAAO,YAAY,OAAO,UAAsB;AAAA,MAClD;AAAA,IACF;AAEA,WAAO;AAAA,EACT,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC;AAEtB,SAAO,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,oBAAoB,GAAG,aAAa,CAAC,CAAC;AAC/D","sourcesContent":["import type { GenericPermissionController } from '@metamask/permission-controller';\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 type { RootControllerMessenger } from '../controllers';\nimport type { SimulationOptions } from '../options';\nimport type { RunSagaFunction } from '../store';\nimport {\n EXCLUDED_SNAP_ENDOWMENTS,\n EXCLUDED_SNAP_PERMISSIONS,\n} from './constants';\nimport {\n getGetPreferencesMethodImplementation,\n getClearSnapStateMethodImplementation,\n getGetSnapStateMethodImplementation,\n getUpdateSnapStateMethodImplementation,\n getShowInAppNotificationImplementation,\n getShowNativeNotificationImplementation,\n getCreateInterfaceImplementation,\n getGetInterfaceImplementation,\n getRequestUserApprovalImplementation,\n} from './hooks';\n\nexport type PermissionSpecificationsHooks = {\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\nexport type GetPermissionSpecificationsOptions = {\n controllerMessenger: RootControllerMessenger;\n hooks: PermissionSpecificationsHooks;\n runSaga: RunSagaFunction;\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(result?: unknown) {\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.runSaga - The function to run a saga outside the usual Redux\n * flow.\n * @param options.options - The simulation options.\n * @returns The permission specifications for the Snap.\n */\nexport function getPermissionSpecifications({\n controllerMessenger,\n hooks,\n runSaga,\n options,\n}: GetPermissionSpecificationsOptions) {\n return {\n ...buildSnapEndowmentSpecifications(EXCLUDED_SNAP_ENDOWMENTS),\n ...buildSnapRestrictedMethodSpecifications(EXCLUDED_SNAP_PERMISSIONS, {\n // Shared hooks.\n ...hooks,\n\n // Snaps-specific hooks.\n clearSnapState: getClearSnapStateMethodImplementation(runSaga),\n getPreferences: getGetPreferencesMethodImplementation(options),\n getSnapState: getGetSnapStateMethodImplementation(runSaga),\n getUnlockPromise: asyncResolve(true),\n\n // TODO: Allow the user to specify the result of this function.\n isOnPhishingList: resolve(false),\n\n maybeUpdatePhishingList: asyncResolve(),\n requestUserApproval: getRequestUserApprovalImplementation(runSaga),\n showInAppNotification: getShowInAppNotificationImplementation(runSaga),\n showNativeNotification: getShowNativeNotificationImplementation(runSaga),\n updateSnapState: getUpdateSnapStateMethodImplementation(runSaga),\n createInterface: getCreateInterfaceImplementation(controllerMessenger),\n getInterface: getGetInterfaceImplementation(controllerMessenger),\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,39 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkY3JC4WGWjs = require('./chunk-Y3JC4WGW.js');
4
-
5
-
6
- var _chunkEMTW3H54js = require('./chunk-EMTW3H54.js');
7
-
8
-
9
- var _chunkKPRLFCKDjs = require('./chunk-KPRLFCKD.js');
10
-
11
- // src/internals/simulation/middleware/engine.ts
12
- var _ethjsonrpcmiddleware = require('@metamask/eth-json-rpc-middleware');
13
- var _jsonrpcengine = require('@metamask/json-rpc-engine');
14
- var _snapsrpcmethods = require('@metamask/snaps-rpc-methods');
15
- function createJsonRpcEngine({
16
- store,
17
- hooks,
18
- permissionMiddleware,
19
- endpoint = _chunkKPRLFCKDjs.DEFAULT_JSON_RPC_ENDPOINT
20
- }) {
21
- const engine = new (0, _jsonrpcengine.JsonRpcEngine)();
22
- engine.push(_chunkEMTW3H54js.createMockMiddleware.call(void 0, store));
23
- engine.push(_chunkY3JC4WGWjs.createInternalMethodsMiddleware.call(void 0, hooks));
24
- engine.push(_snapsrpcmethods.createSnapsMethodMiddleware.call(void 0, true, hooks));
25
- engine.push(permissionMiddleware);
26
- engine.push(
27
- _ethjsonrpcmiddleware.createFetchMiddleware.call(void 0, {
28
- btoa: globalThis.btoa,
29
- fetch: globalThis.fetch,
30
- rpcUrl: endpoint
31
- })
32
- );
33
- return engine;
34
- }
35
-
36
-
37
-
38
- exports.createJsonRpcEngine = createJsonRpcEngine;
39
- //# sourceMappingURL=chunk-RJNNNCZJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internals/simulation/middleware/engine.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,SAAS,6BAA6B;AAEtC,SAAS,qBAAqB;AAE9B,SAAS,mCAAmC;AA6BrC,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AACb,GAA+B;AAC7B,QAAM,SAAS,IAAI,cAAc;AACjC,SAAO,KAAK,qBAAqB,KAAK,CAAC;AACvC,SAAO,KAAK,gCAAgC,KAAK,CAAC;AAClD,SAAO,KAAK,4BAA4B,MAAM,KAAK,CAAC;AACpD,SAAO,KAAK,oBAAoB;AAChC,SAAO;AAAA,IACL,sBAAsB;AAAA,MACpB,MAAM,WAAW;AAAA,MACjB,OAAO,WAAW;AAAA,MAClB,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AAEA,SAAO;AACT","sourcesContent":["import { createFetchMiddleware } from '@metamask/eth-json-rpc-middleware';\nimport type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { JsonRpcEngine } from '@metamask/json-rpc-engine';\nimport type { RestrictedMethodParameters } from '@metamask/permission-controller';\nimport { createSnapsMethodMiddleware } from '@metamask/snaps-rpc-methods';\nimport type { Json } from '@metamask/utils';\n\nimport { DEFAULT_JSON_RPC_ENDPOINT } from '../constants';\nimport type { MiddlewareHooks } from '../simulation';\nimport type { Store } from '../store';\nimport { createInternalMethodsMiddleware } from './internal-methods';\nimport { createMockMiddleware } from './mock';\n\nexport type CreateJsonRpcEngineOptions = {\n store: Store;\n hooks: MiddlewareHooks;\n permissionMiddleware: JsonRpcMiddleware<RestrictedMethodParameters, Json>;\n endpoint?: string;\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.store - The Redux store to use.\n * @param options.hooks - Any hooks used by the middleware handlers.\n * @param options.permissionMiddleware - The permission middleware to use.\n * @param options.endpoint - The JSON-RPC endpoint to use for Ethereum requests.\n * @returns A JSON-RPC engine.\n */\nexport function createJsonRpcEngine({\n store,\n hooks,\n permissionMiddleware,\n endpoint = DEFAULT_JSON_RPC_ENDPOINT,\n}: CreateJsonRpcEngineOptions) {\n const engine = new JsonRpcEngine();\n engine.push(createMockMiddleware(store));\n engine.push(createInternalMethodsMiddleware(hooks));\n engine.push(createSnapsMethodMiddleware(true, hooks));\n engine.push(permissionMiddleware);\n engine.push(\n createFetchMiddleware({\n btoa: globalThis.btoa,\n fetch: globalThis.fetch,\n rpcUrl: endpoint,\n }),\n );\n\n return engine;\n}\n"]}
@@ -1,203 +0,0 @@
1
- import {
2
- getEnvironment
3
- } from "./chunk-XK5HPZZC.mjs";
4
- import {
5
- handleRequest
6
- } from "./chunk-PDOVVC74.mjs";
7
- import {
8
- getElementByType
9
- } from "./chunk-6JPBXAHM.mjs";
10
- import {
11
- rootLogger
12
- } from "./chunk-J4ZPUCLX.mjs";
13
- import {
14
- JsonRpcMockOptionsStruct,
15
- SignatureOptionsStruct,
16
- SnapResponseWithInterfaceStruct,
17
- TransactionOptionsStruct
18
- } from "./chunk-C26TYXXD.mjs";
19
- import {
20
- addJsonRpcMock,
21
- removeJsonRpcMock
22
- } from "./chunk-H2464AXT.mjs";
23
-
24
- // src/helpers.ts
25
- import { DialogType } from "@metamask/snaps-sdk";
26
- import { HandlerType, getJsxChildren, logInfo } from "@metamask/snaps-utils";
27
- import { create } from "@metamask/superstruct";
28
- import {
29
- assert,
30
- assertStruct,
31
- createModuleLogger,
32
- hasProperty
33
- } from "@metamask/utils";
34
- var log = createModuleLogger(rootLogger, "helpers");
35
- function getOptions(snapId, options) {
36
- if (typeof snapId === "object") {
37
- return [void 0, snapId];
38
- }
39
- return [snapId, options];
40
- }
41
- function assertIsResponseWithInterface(response) {
42
- assertStruct(response, SnapResponseWithInterfaceStruct);
43
- }
44
- function assertIsAlertDialog(ui) {
45
- assert(hasProperty(ui, "type") && ui.type === DialogType.Alert);
46
- }
47
- function assertIsConfirmationDialog(ui) {
48
- assert(hasProperty(ui, "type") && ui.type === DialogType.Confirmation);
49
- }
50
- function assertIsPromptDialog(ui) {
51
- assert(hasProperty(ui, "type") && ui.type === DialogType.Prompt);
52
- }
53
- function assertIsCustomDialog(ui) {
54
- assert(!hasProperty(ui, "type"));
55
- }
56
- function assertCustomDialogHasFooter(ui) {
57
- const footer = getElementByType(ui.content, "Footer");
58
- assert(footer && getJsxChildren(footer).length === 2);
59
- }
60
- function assertCustomDialogHasPartialFooter(ui) {
61
- const footer = getElementByType(ui.content, "Footer");
62
- assert(footer && getJsxChildren(footer).length === 1);
63
- }
64
- function assertCustomDialogHasNoFooter(ui) {
65
- const footer = getElementByType(ui.content, "Footer");
66
- assert(!footer);
67
- }
68
- async function installSnap(snapId, options = {}) {
69
- const resolvedOptions = getOptions(snapId, options);
70
- const {
71
- snapId: installedSnapId,
72
- store,
73
- executionService,
74
- runSaga,
75
- controllerMessenger
76
- } = await getEnvironment().installSnap(...resolvedOptions);
77
- const onTransaction = async (request) => {
78
- log("Sending transaction %o.", request);
79
- const {
80
- origin: transactionOrigin,
81
- chainId,
82
- ...transaction
83
- } = create(request, TransactionOptionsStruct);
84
- const response = await handleRequest({
85
- snapId: installedSnapId,
86
- store,
87
- executionService,
88
- runSaga,
89
- controllerMessenger,
90
- handler: HandlerType.OnTransaction,
91
- request: {
92
- method: "",
93
- params: {
94
- chainId,
95
- transaction,
96
- transactionOrigin
97
- }
98
- }
99
- });
100
- assertIsResponseWithInterface(response);
101
- return response;
102
- };
103
- const onCronjob = (request) => {
104
- log("Running cronjob %o.", options);
105
- return handleRequest({
106
- snapId: installedSnapId,
107
- store,
108
- executionService,
109
- controllerMessenger,
110
- runSaga,
111
- handler: HandlerType.OnCronjob,
112
- request
113
- });
114
- };
115
- return {
116
- request: (request) => {
117
- log("Sending request %o.", request);
118
- return handleRequest({
119
- snapId: installedSnapId,
120
- store,
121
- executionService,
122
- controllerMessenger,
123
- runSaga,
124
- handler: HandlerType.OnRpcRequest,
125
- request
126
- });
127
- },
128
- onTransaction,
129
- sendTransaction: onTransaction,
130
- onSignature: async (request) => {
131
- log("Requesting signature %o.", request);
132
- const { origin: signatureOrigin, ...signature } = create(
133
- request,
134
- SignatureOptionsStruct
135
- );
136
- const response = await handleRequest({
137
- snapId: installedSnapId,
138
- store,
139
- executionService,
140
- controllerMessenger,
141
- runSaga,
142
- handler: HandlerType.OnSignature,
143
- request: {
144
- method: "",
145
- params: {
146
- signature,
147
- signatureOrigin
148
- }
149
- }
150
- });
151
- assertIsResponseWithInterface(response);
152
- return response;
153
- },
154
- onCronjob,
155
- runCronjob: onCronjob,
156
- onHomePage: async () => {
157
- log("Rendering home page.");
158
- const response = await handleRequest({
159
- snapId: installedSnapId,
160
- store,
161
- executionService,
162
- controllerMessenger,
163
- runSaga,
164
- handler: HandlerType.OnHomePage,
165
- request: {
166
- method: ""
167
- }
168
- });
169
- assertIsResponseWithInterface(response);
170
- return response;
171
- },
172
- mockJsonRpc(mock) {
173
- log("Mocking JSON-RPC request %o.", mock);
174
- const { method, result } = create(mock, JsonRpcMockOptionsStruct);
175
- store.dispatch(addJsonRpcMock({ method, result }));
176
- return {
177
- unmock() {
178
- log("Unmocking JSON-RPC request %o.", mock);
179
- store.dispatch(removeJsonRpcMock(method));
180
- }
181
- };
182
- },
183
- close: async () => {
184
- log("Closing execution service.");
185
- logInfo(
186
- "Calling `snap.close()` is deprecated, and will be removed in a future release. Snaps are now automatically closed when the test ends."
187
- );
188
- await executionService.terminateAllSnaps();
189
- }
190
- };
191
- }
192
-
193
- export {
194
- assertIsAlertDialog,
195
- assertIsConfirmationDialog,
196
- assertIsPromptDialog,
197
- assertIsCustomDialog,
198
- assertCustomDialogHasFooter,
199
- assertCustomDialogHasPartialFooter,
200
- assertCustomDialogHasNoFooter,
201
- installSnap
202
- };
203
- //# sourceMappingURL=chunk-ROCGQYSK.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/helpers.ts"],"sourcesContent":["import type { AbstractExecutionService } from '@metamask/snaps-controllers';\nimport type { SnapId } from '@metamask/snaps-sdk';\nimport { DialogType } from '@metamask/snaps-sdk';\nimport type { FooterElement } from '@metamask/snaps-sdk/jsx';\nimport { HandlerType, getJsxChildren, logInfo } from '@metamask/snaps-utils';\nimport { create } from '@metamask/superstruct';\nimport {\n assert,\n assertStruct,\n createModuleLogger,\n hasProperty,\n} from '@metamask/utils';\n\nimport {\n rootLogger,\n handleRequest,\n TransactionOptionsStruct,\n getEnvironment,\n JsonRpcMockOptionsStruct,\n SignatureOptionsStruct,\n SnapResponseWithInterfaceStruct,\n getElementByType,\n} from './internals';\nimport type { InstallSnapOptions } from './internals';\nimport {\n addJsonRpcMock,\n removeJsonRpcMock,\n} from './internals/simulation/store/mocks';\nimport type {\n SnapResponseWithInterface,\n CronjobOptions,\n JsonRpcMockOptions,\n Snap,\n SnapResponse,\n TransactionOptions,\n SnapInterface,\n SnapAlertInterface,\n SnapInterfaceActions,\n SnapConfirmationInterface,\n SnapPromptInterface,\n DefaultSnapInterface,\n DefaultSnapInterfaceWithFooter,\n DefaultSnapInterfaceWithPartialFooter,\n DefaultSnapInterfaceWithoutFooter,\n} from './types';\n\nconst log = createModuleLogger(rootLogger, 'helpers');\n\n/**\n * Get the options for {@link installSnap}.\n *\n * @param snapId - The ID of the Snap, or the options.\n * @param options - The options, if any.\n * @returns The options.\n */\nfunction getOptions<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId: SnapId | Partial<InstallSnapOptions<Service>> | undefined,\n options: Partial<InstallSnapOptions<Service>>,\n): [SnapId | undefined, Partial<InstallSnapOptions<Service>>] {\n if (typeof snapId === 'object') {\n return [undefined, snapId];\n }\n\n return [snapId, options];\n}\n\n/**\n * Ensure that the actual response contains `getInterface`.\n *\n * @param response - The response of the handler.\n */\nfunction assertIsResponseWithInterface(\n response: SnapResponse,\n): asserts response is SnapResponseWithInterface {\n assertStruct(response, SnapResponseWithInterfaceStruct);\n}\n\n/**\n * Ensure that the actual interface is an alert dialog.\n *\n * @param ui - The interface to verify.\n */\nexport function assertIsAlertDialog(\n ui: SnapInterface,\n): asserts ui is SnapAlertInterface & SnapInterfaceActions {\n assert(hasProperty(ui, 'type') && ui.type === DialogType.Alert);\n}\n\n/**\n * Ensure that the actual interface is a confirmation dialog.\n *\n * @param ui - The interface to verify.\n */\nexport function assertIsConfirmationDialog(\n ui: SnapInterface,\n): asserts ui is SnapConfirmationInterface & SnapInterfaceActions {\n assert(hasProperty(ui, 'type') && ui.type === DialogType.Confirmation);\n}\n\n/**\n * Ensure that the actual interface is a Prompt dialog.\n *\n * @param ui - The interface to verify.\n */\nexport function assertIsPromptDialog(\n ui: SnapInterface,\n): asserts ui is SnapPromptInterface & SnapInterfaceActions {\n assert(hasProperty(ui, 'type') && ui.type === DialogType.Prompt);\n}\n\n/**\n * Ensure that the actual interface is a custom dialog.\n *\n * @param ui - The interface to verify.\n */\nexport function assertIsCustomDialog(\n ui: SnapInterface,\n): asserts ui is DefaultSnapInterface & SnapInterfaceActions {\n assert(!hasProperty(ui, 'type'));\n}\n\n/**\n * Ensure that the actual interface is a custom dialog with a complete footer.\n *\n * @param ui - The interface to verify.\n */\nexport function assertCustomDialogHasFooter(\n ui: DefaultSnapInterface & SnapInterfaceActions,\n): asserts ui is DefaultSnapInterfaceWithFooter & SnapInterfaceActions {\n const footer = getElementByType<FooterElement>(ui.content, 'Footer');\n\n assert(footer && getJsxChildren(footer).length === 2);\n}\n\n/**\n * Ensure that the actual interface is a custom dialog with a partial footer.\n *\n * @param ui - The interface to verify.\n */\nexport function assertCustomDialogHasPartialFooter(\n ui: DefaultSnapInterface & SnapInterfaceActions,\n): asserts ui is DefaultSnapInterfaceWithPartialFooter & SnapInterfaceActions {\n const footer = getElementByType<FooterElement>(ui.content, 'Footer');\n\n assert(footer && getJsxChildren(footer).length === 1);\n}\n\n/**\n * Ensure that the actual interface is a custom dialog without a footer.\n *\n * @param ui - The interface to verify.\n */\nexport function assertCustomDialogHasNoFooter(\n ui: DefaultSnapInterface & SnapInterfaceActions,\n): asserts ui is DefaultSnapInterfaceWithoutFooter & SnapInterfaceActions {\n const footer = getElementByType<FooterElement>(ui.content, 'Footer');\n\n assert(!footer);\n}\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap(): Promise<Snap>;\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @param options - The options to use.\n * @param options.executionService - The execution service to use. Defaults to\n * {@link NodeThreadExecutionService}. You do not need to provide this unless\n * you are testing a custom execution service.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(options: Partial<InstallSnapOptions<Service>>): Promise<Snap>;\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @param snapId - The ID of the snap, including the prefix (`local:`). Defaults\n * to the URL of the built-in server, if it is running. This supports both\n * local snap IDs and NPM snap IDs.\n * @param options - The options to use.\n * @param options.executionService - The execution service to use. Defaults to\n * {@link NodeThreadExecutionService}. You do not need to provide this unless\n * you are testing a custom execution service.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId: SnapId,\n options?: Partial<InstallSnapOptions<Service>>,\n): Promise<Snap>;\n\n/**\n * Load a snap into the environment. This is the main entry point for testing\n * snaps: It returns a {@link Snap} object that can be used to interact with the\n * snap.\n *\n * @example\n * import { installSnap } from '@metamask/snaps-jest';\n *\n * describe('My Snap', () => {\n * it('should do something', async () => {\n * const { request } = await installSnap('local:my-snap');\n * const response = await request({\n * method: 'foo',\n * params: ['bar'],\n * });\n * expect(response).toRespondWith('bar');\n * });\n * });\n * @param snapId - The ID of the snap, including the prefix (`local:`). Defaults\n * to the URL of the built-in server, if it is running. This supports both\n * local snap IDs and NPM snap IDs.\n * @param options - The options to use.\n * @param options.executionService - The execution service to use. Defaults to\n * {@link NodeThreadExecutionService}. You do not need to provide this unless\n * you are testing a custom execution service.\n * @param options.executionServiceOptions - The options to use when creating the\n * execution service, if any. This should only include options specific to the\n * provided execution service.\n * @param options.options - The simulation options.\n * @returns The snap.\n * @throws If the built-in server is not running, and no snap ID is provided.\n */\nexport async function installSnap<\n Service extends new (...args: any[]) => InstanceType<\n typeof AbstractExecutionService\n >,\n>(\n snapId?: SnapId | Partial<InstallSnapOptions<Service>>,\n options: Partial<InstallSnapOptions<Service>> = {},\n): Promise<Snap> {\n const resolvedOptions = getOptions(snapId, options);\n const {\n snapId: installedSnapId,\n store,\n executionService,\n runSaga,\n controllerMessenger,\n } = await getEnvironment().installSnap(...resolvedOptions);\n\n const onTransaction = async (\n request: TransactionOptions,\n ): Promise<SnapResponseWithInterface> => {\n log('Sending transaction %o.', request);\n\n const {\n origin: transactionOrigin,\n chainId,\n ...transaction\n } = create(request, TransactionOptionsStruct);\n\n const response = await handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n runSaga,\n controllerMessenger,\n handler: HandlerType.OnTransaction,\n request: {\n method: '',\n params: {\n chainId,\n transaction,\n transactionOrigin,\n },\n },\n });\n\n assertIsResponseWithInterface(response);\n\n return response;\n };\n\n const onCronjob = (request: CronjobOptions) => {\n log('Running cronjob %o.', options);\n\n return handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnCronjob,\n request,\n });\n };\n\n return {\n request: (request) => {\n log('Sending request %o.', request);\n\n return handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnRpcRequest,\n request,\n });\n },\n\n onTransaction,\n sendTransaction: onTransaction,\n\n onSignature: async (\n request: unknown,\n ): Promise<SnapResponseWithInterface> => {\n log('Requesting signature %o.', request);\n\n const { origin: signatureOrigin, ...signature } = create(\n request,\n SignatureOptionsStruct,\n );\n\n const response = await handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnSignature,\n request: {\n method: '',\n params: {\n signature,\n signatureOrigin,\n },\n },\n });\n\n assertIsResponseWithInterface(response);\n\n return response;\n },\n\n onCronjob,\n runCronjob: onCronjob,\n\n onHomePage: async (): Promise<SnapResponseWithInterface> => {\n log('Rendering home page.');\n\n const response = await handleRequest({\n snapId: installedSnapId,\n store,\n executionService,\n controllerMessenger,\n runSaga,\n handler: HandlerType.OnHomePage,\n request: {\n method: '',\n },\n });\n\n assertIsResponseWithInterface(response);\n\n return response;\n },\n\n mockJsonRpc(mock: JsonRpcMockOptions) {\n log('Mocking JSON-RPC request %o.', mock);\n\n const { method, result } = create(mock, JsonRpcMockOptionsStruct);\n store.dispatch(addJsonRpcMock({ method, result }));\n\n return {\n unmock() {\n log('Unmocking JSON-RPC request %o.', mock);\n\n store.dispatch(removeJsonRpcMock(method));\n },\n };\n },\n\n close: async () => {\n log('Closing execution service.');\n logInfo(\n 'Calling `snap.close()` is deprecated, and will be removed in a future release. Snaps are now automatically closed when the test ends.',\n );\n\n await executionService.terminateAllSnaps();\n },\n };\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-RQKT6BQ2.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- "use strict";//# sourceMappingURL=chunk-S2HLITUN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,41 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
- var _chunkLBC2OGSNjs = require('./chunk-LBC2OGSN.js');
6
-
7
- // src/internals/simulation/methods/hooks/state.ts
8
- var _snapsutils = require('@metamask/snaps-utils');
9
- var _effects = require('redux-saga/effects');
10
- function* getSnapStateImplementation(_snapId, encrypted = true) {
11
- const state = yield _effects.select.call(void 0, _chunkLBC2OGSNjs.getState.call(void 0, encrypted));
12
- return _snapsutils.parseJson.call(void 0, state);
13
- }
14
- function getGetSnapStateMethodImplementation(runSaga) {
15
- return (...args) => {
16
- return runSaga(getSnapStateImplementation, ...args).result();
17
- };
18
- }
19
- function* updateSnapStateImplementation(_snapId, newState, encrypted = true) {
20
- yield _effects.put.call(void 0, _chunkLBC2OGSNjs.setState.call(void 0, { state: JSON.stringify(newState), encrypted }));
21
- }
22
- function getUpdateSnapStateMethodImplementation(runSaga) {
23
- return (...args) => {
24
- runSaga(updateSnapStateImplementation, ...args).result();
25
- };
26
- }
27
- function* clearSnapStateImplementation(_snapId, encrypted = true) {
28
- yield _effects.put.call(void 0, _chunkLBC2OGSNjs.clearState.call(void 0, { encrypted }));
29
- }
30
- function getClearSnapStateMethodImplementation(runSaga) {
31
- return async (...args) => {
32
- runSaga(clearSnapStateImplementation, ...args).result();
33
- };
34
- }
35
-
36
-
37
-
38
-
39
-
40
- exports.getGetSnapStateMethodImplementation = getGetSnapStateMethodImplementation; exports.getUpdateSnapStateMethodImplementation = getUpdateSnapStateMethodImplementation; exports.getClearSnapStateMethodImplementation = getClearSnapStateMethodImplementation;
41
- //# sourceMappingURL=chunk-SB5EPHE3.js.map