@metamask/snaps-rpc-methods 15.1.0 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/CHANGELOG.md +34 -4
  2. package/dist/endowments/keyring.cjs +2 -5
  3. package/dist/endowments/keyring.cjs.map +1 -1
  4. package/dist/endowments/keyring.d.cts +0 -2
  5. package/dist/endowments/keyring.d.cts.map +1 -1
  6. package/dist/endowments/keyring.d.mts +0 -2
  7. package/dist/endowments/keyring.d.mts.map +1 -1
  8. package/dist/endowments/keyring.mjs +3 -6
  9. package/dist/endowments/keyring.mjs.map +1 -1
  10. package/dist/index.cjs +1 -4
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +1 -2
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.mts +1 -2
  15. package/dist/index.d.mts.map +1 -1
  16. package/dist/index.mjs +1 -2
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/permissions.cjs +18 -8
  19. package/dist/permissions.cjs.map +1 -1
  20. package/dist/permissions.d.cts +3 -2
  21. package/dist/permissions.d.cts.map +1 -1
  22. package/dist/permissions.d.mts +3 -2
  23. package/dist/permissions.d.mts.map +1 -1
  24. package/dist/permissions.mjs +17 -7
  25. package/dist/permissions.mjs.map +1 -1
  26. package/dist/permitted/cancelBackgroundEvent.cjs +10 -14
  27. package/dist/permitted/cancelBackgroundEvent.cjs.map +1 -1
  28. package/dist/permitted/cancelBackgroundEvent.d.cts +9 -12
  29. package/dist/permitted/cancelBackgroundEvent.d.cts.map +1 -1
  30. package/dist/permitted/cancelBackgroundEvent.d.mts +9 -12
  31. package/dist/permitted/cancelBackgroundEvent.d.mts.map +1 -1
  32. package/dist/permitted/cancelBackgroundEvent.mjs +10 -14
  33. package/dist/permitted/cancelBackgroundEvent.mjs.map +1 -1
  34. package/dist/permitted/clearState.cjs +10 -16
  35. package/dist/permitted/clearState.cjs.map +1 -1
  36. package/dist/permitted/clearState.d.cts +9 -23
  37. package/dist/permitted/clearState.d.cts.map +1 -1
  38. package/dist/permitted/clearState.d.mts +9 -23
  39. package/dist/permitted/clearState.d.mts.map +1 -1
  40. package/dist/permitted/clearState.mjs +10 -16
  41. package/dist/permitted/clearState.mjs.map +1 -1
  42. package/dist/permitted/closeWebSocket.cjs +7 -14
  43. package/dist/permitted/closeWebSocket.cjs.map +1 -1
  44. package/dist/permitted/closeWebSocket.d.cts +9 -12
  45. package/dist/permitted/closeWebSocket.d.cts.map +1 -1
  46. package/dist/permitted/closeWebSocket.d.mts +9 -12
  47. package/dist/permitted/closeWebSocket.d.mts.map +1 -1
  48. package/dist/permitted/closeWebSocket.mjs +7 -14
  49. package/dist/permitted/closeWebSocket.mjs.map +1 -1
  50. package/dist/permitted/createInterface.cjs +11 -15
  51. package/dist/permitted/createInterface.cjs.map +1 -1
  52. package/dist/permitted/createInterface.d.cts +23 -37
  53. package/dist/permitted/createInterface.d.cts.map +1 -1
  54. package/dist/permitted/createInterface.d.mts +23 -37
  55. package/dist/permitted/createInterface.d.mts.map +1 -1
  56. package/dist/permitted/createInterface.mjs +11 -15
  57. package/dist/permitted/createInterface.mjs.map +1 -1
  58. package/dist/permitted/endTrace.cjs +4 -6
  59. package/dist/permitted/endTrace.cjs.map +1 -1
  60. package/dist/permitted/endTrace.d.cts +8 -11
  61. package/dist/permitted/endTrace.d.cts.map +1 -1
  62. package/dist/permitted/endTrace.d.mts +8 -11
  63. package/dist/permitted/endTrace.d.mts.map +1 -1
  64. package/dist/permitted/endTrace.mjs +4 -6
  65. package/dist/permitted/endTrace.mjs.map +1 -1
  66. package/dist/permitted/getAllSnaps.cjs +5 -11
  67. package/dist/permitted/getAllSnaps.cjs.map +1 -1
  68. package/dist/permitted/getAllSnaps.d.cts +10 -14
  69. package/dist/permitted/getAllSnaps.d.cts.map +1 -1
  70. package/dist/permitted/getAllSnaps.d.mts +10 -14
  71. package/dist/permitted/getAllSnaps.d.mts.map +1 -1
  72. package/dist/permitted/getAllSnaps.mjs +5 -11
  73. package/dist/permitted/getAllSnaps.mjs.map +1 -1
  74. package/dist/permitted/getBackgroundEvents.cjs +8 -15
  75. package/dist/permitted/getBackgroundEvents.cjs.map +1 -1
  76. package/dist/permitted/getBackgroundEvents.d.cts +10 -13
  77. package/dist/permitted/getBackgroundEvents.d.cts.map +1 -1
  78. package/dist/permitted/getBackgroundEvents.d.mts +10 -13
  79. package/dist/permitted/getBackgroundEvents.d.mts.map +1 -1
  80. package/dist/permitted/getBackgroundEvents.mjs +8 -15
  81. package/dist/permitted/getBackgroundEvents.mjs.map +1 -1
  82. package/dist/permitted/getClientStatus.cjs +5 -6
  83. package/dist/permitted/getClientStatus.cjs.map +1 -1
  84. package/dist/permitted/getClientStatus.d.cts +17 -18
  85. package/dist/permitted/getClientStatus.d.cts.map +1 -1
  86. package/dist/permitted/getClientStatus.d.mts +17 -18
  87. package/dist/permitted/getClientStatus.d.mts.map +1 -1
  88. package/dist/permitted/getClientStatus.mjs +5 -6
  89. package/dist/permitted/getClientStatus.mjs.map +1 -1
  90. package/dist/permitted/getFile.cjs +7 -11
  91. package/dist/permitted/getFile.cjs.map +1 -1
  92. package/dist/permitted/getFile.d.cts +8 -10
  93. package/dist/permitted/getFile.d.cts.map +1 -1
  94. package/dist/permitted/getFile.d.mts +8 -10
  95. package/dist/permitted/getFile.d.mts.map +1 -1
  96. package/dist/permitted/getFile.mjs +7 -11
  97. package/dist/permitted/getFile.mjs.map +1 -1
  98. package/dist/permitted/getInterfaceContext.cjs +12 -15
  99. package/dist/permitted/getInterfaceContext.cjs.map +1 -1
  100. package/dist/permitted/getInterfaceContext.d.cts +9 -21
  101. package/dist/permitted/getInterfaceContext.d.cts.map +1 -1
  102. package/dist/permitted/getInterfaceContext.d.mts +9 -21
  103. package/dist/permitted/getInterfaceContext.d.mts.map +1 -1
  104. package/dist/permitted/getInterfaceContext.mjs +12 -15
  105. package/dist/permitted/getInterfaceContext.mjs.map +1 -1
  106. package/dist/permitted/getInterfaceState.cjs +11 -15
  107. package/dist/permitted/getInterfaceState.cjs.map +1 -1
  108. package/dist/permitted/getInterfaceState.d.cts +9 -21
  109. package/dist/permitted/getInterfaceState.d.cts.map +1 -1
  110. package/dist/permitted/getInterfaceState.d.mts +9 -21
  111. package/dist/permitted/getInterfaceState.d.mts.map +1 -1
  112. package/dist/permitted/getInterfaceState.mjs +11 -15
  113. package/dist/permitted/getInterfaceState.mjs.map +1 -1
  114. package/dist/permitted/getSnaps.cjs +6 -12
  115. package/dist/permitted/getSnaps.cjs.map +1 -1
  116. package/dist/permitted/getSnaps.d.cts +11 -14
  117. package/dist/permitted/getSnaps.d.cts.map +1 -1
  118. package/dist/permitted/getSnaps.d.mts +11 -14
  119. package/dist/permitted/getSnaps.d.mts.map +1 -1
  120. package/dist/permitted/getSnaps.mjs +6 -12
  121. package/dist/permitted/getSnaps.mjs.map +1 -1
  122. package/dist/permitted/getState.cjs +9 -11
  123. package/dist/permitted/getState.cjs.map +1 -1
  124. package/dist/permitted/getState.d.cts +17 -28
  125. package/dist/permitted/getState.d.cts.map +1 -1
  126. package/dist/permitted/getState.d.mts +17 -28
  127. package/dist/permitted/getState.d.mts.map +1 -1
  128. package/dist/permitted/getState.mjs +9 -11
  129. package/dist/permitted/getState.mjs.map +1 -1
  130. package/dist/permitted/getWebSockets.cjs +11 -14
  131. package/dist/permitted/getWebSockets.cjs.map +1 -1
  132. package/dist/permitted/getWebSockets.d.cts +10 -13
  133. package/dist/permitted/getWebSockets.d.cts.map +1 -1
  134. package/dist/permitted/getWebSockets.d.mts +10 -13
  135. package/dist/permitted/getWebSockets.d.mts.map +1 -1
  136. package/dist/permitted/getWebSockets.mjs +11 -14
  137. package/dist/permitted/getWebSockets.mjs.map +1 -1
  138. package/dist/permitted/index.cjs +0 -1
  139. package/dist/permitted/index.cjs.map +1 -1
  140. package/dist/permitted/index.d.cts +29 -25
  141. package/dist/permitted/index.d.cts.map +1 -1
  142. package/dist/permitted/index.d.mts +29 -25
  143. package/dist/permitted/index.d.mts.map +1 -1
  144. package/dist/permitted/index.mjs +0 -1
  145. package/dist/permitted/index.mjs.map +1 -1
  146. package/dist/permitted/invokeKeyring.cjs +12 -13
  147. package/dist/permitted/invokeKeyring.cjs.map +1 -1
  148. package/dist/permitted/invokeKeyring.d.cts +17 -16
  149. package/dist/permitted/invokeKeyring.d.cts.map +1 -1
  150. package/dist/permitted/invokeKeyring.d.mts +17 -16
  151. package/dist/permitted/invokeKeyring.d.mts.map +1 -1
  152. package/dist/permitted/invokeKeyring.mjs +12 -13
  153. package/dist/permitted/invokeKeyring.mjs.map +1 -1
  154. package/dist/permitted/invokeSnapSugar.cjs +6 -10
  155. package/dist/permitted/invokeSnapSugar.cjs.map +1 -1
  156. package/dist/permitted/invokeSnapSugar.d.cts +9 -12
  157. package/dist/permitted/invokeSnapSugar.d.cts.map +1 -1
  158. package/dist/permitted/invokeSnapSugar.d.mts +9 -12
  159. package/dist/permitted/invokeSnapSugar.d.mts.map +1 -1
  160. package/dist/permitted/invokeSnapSugar.mjs +6 -10
  161. package/dist/permitted/invokeSnapSugar.mjs.map +1 -1
  162. package/dist/permitted/listEntropySources.cjs +28 -12
  163. package/dist/permitted/listEntropySources.cjs.map +1 -1
  164. package/dist/permitted/listEntropySources.d.cts +12 -23
  165. package/dist/permitted/listEntropySources.d.cts.map +1 -1
  166. package/dist/permitted/listEntropySources.d.mts +12 -23
  167. package/dist/permitted/listEntropySources.d.mts.map +1 -1
  168. package/dist/permitted/listEntropySources.mjs +28 -12
  169. package/dist/permitted/listEntropySources.mjs.map +1 -1
  170. package/dist/permitted/middleware.cjs +70 -20
  171. package/dist/permitted/middleware.cjs.map +1 -1
  172. package/dist/permitted/middleware.d.cts +5 -2
  173. package/dist/permitted/middleware.d.cts.map +1 -1
  174. package/dist/permitted/middleware.d.mts +5 -2
  175. package/dist/permitted/middleware.d.mts.map +1 -1
  176. package/dist/permitted/middleware.mjs +70 -20
  177. package/dist/permitted/middleware.mjs.map +1 -1
  178. package/dist/permitted/openWebSocket.cjs +7 -14
  179. package/dist/permitted/openWebSocket.cjs.map +1 -1
  180. package/dist/permitted/openWebSocket.d.cts +9 -12
  181. package/dist/permitted/openWebSocket.d.cts.map +1 -1
  182. package/dist/permitted/openWebSocket.d.mts +9 -12
  183. package/dist/permitted/openWebSocket.d.mts.map +1 -1
  184. package/dist/permitted/openWebSocket.mjs +7 -14
  185. package/dist/permitted/openWebSocket.mjs.map +1 -1
  186. package/dist/permitted/requestSnaps.cjs +14 -19
  187. package/dist/permitted/requestSnaps.cjs.map +1 -1
  188. package/dist/permitted/requestSnaps.d.cts +9 -36
  189. package/dist/permitted/requestSnaps.d.cts.map +1 -1
  190. package/dist/permitted/requestSnaps.d.mts +9 -36
  191. package/dist/permitted/requestSnaps.d.mts.map +1 -1
  192. package/dist/permitted/requestSnaps.mjs +15 -20
  193. package/dist/permitted/requestSnaps.mjs.map +1 -1
  194. package/dist/permitted/resolveInterface.cjs +11 -15
  195. package/dist/permitted/resolveInterface.cjs.map +1 -1
  196. package/dist/permitted/resolveInterface.d.cts +12 -24
  197. package/dist/permitted/resolveInterface.d.cts.map +1 -1
  198. package/dist/permitted/resolveInterface.d.mts +12 -24
  199. package/dist/permitted/resolveInterface.d.mts.map +1 -1
  200. package/dist/permitted/resolveInterface.mjs +11 -15
  201. package/dist/permitted/resolveInterface.mjs.map +1 -1
  202. package/dist/permitted/scheduleBackgroundEvent.cjs +11 -14
  203. package/dist/permitted/scheduleBackgroundEvent.cjs.map +1 -1
  204. package/dist/permitted/scheduleBackgroundEvent.d.cts +10 -17
  205. package/dist/permitted/scheduleBackgroundEvent.d.cts.map +1 -1
  206. package/dist/permitted/scheduleBackgroundEvent.d.mts +10 -17
  207. package/dist/permitted/scheduleBackgroundEvent.d.mts.map +1 -1
  208. package/dist/permitted/scheduleBackgroundEvent.mjs +11 -14
  209. package/dist/permitted/scheduleBackgroundEvent.mjs.map +1 -1
  210. package/dist/permitted/sendWebSocketMessage.cjs +10 -14
  211. package/dist/permitted/sendWebSocketMessage.cjs.map +1 -1
  212. package/dist/permitted/sendWebSocketMessage.d.cts +9 -12
  213. package/dist/permitted/sendWebSocketMessage.d.cts.map +1 -1
  214. package/dist/permitted/sendWebSocketMessage.d.mts +9 -12
  215. package/dist/permitted/sendWebSocketMessage.d.mts.map +1 -1
  216. package/dist/permitted/sendWebSocketMessage.mjs +10 -14
  217. package/dist/permitted/sendWebSocketMessage.mjs.map +1 -1
  218. package/dist/permitted/setState.cjs +18 -21
  219. package/dist/permitted/setState.cjs.map +1 -1
  220. package/dist/permitted/setState.d.cts +18 -45
  221. package/dist/permitted/setState.d.cts.map +1 -1
  222. package/dist/permitted/setState.d.mts +18 -45
  223. package/dist/permitted/setState.d.mts.map +1 -1
  224. package/dist/permitted/setState.mjs +18 -21
  225. package/dist/permitted/setState.mjs.map +1 -1
  226. package/dist/permitted/startTrace.cjs +4 -6
  227. package/dist/permitted/startTrace.cjs.map +1 -1
  228. package/dist/permitted/startTrace.d.cts +8 -11
  229. package/dist/permitted/startTrace.d.cts.map +1 -1
  230. package/dist/permitted/startTrace.d.mts +8 -11
  231. package/dist/permitted/startTrace.d.mts.map +1 -1
  232. package/dist/permitted/startTrace.mjs +4 -6
  233. package/dist/permitted/startTrace.mjs.map +1 -1
  234. package/dist/permitted/trackError.cjs +4 -6
  235. package/dist/permitted/trackError.cjs.map +1 -1
  236. package/dist/permitted/trackError.d.cts +8 -11
  237. package/dist/permitted/trackError.d.cts.map +1 -1
  238. package/dist/permitted/trackError.d.mts +8 -11
  239. package/dist/permitted/trackError.d.mts.map +1 -1
  240. package/dist/permitted/trackError.mjs +4 -6
  241. package/dist/permitted/trackError.mjs.map +1 -1
  242. package/dist/permitted/trackEvent.cjs +4 -6
  243. package/dist/permitted/trackEvent.cjs.map +1 -1
  244. package/dist/permitted/trackEvent.d.cts +8 -11
  245. package/dist/permitted/trackEvent.d.cts.map +1 -1
  246. package/dist/permitted/trackEvent.d.mts +8 -11
  247. package/dist/permitted/trackEvent.d.mts.map +1 -1
  248. package/dist/permitted/trackEvent.mjs +4 -6
  249. package/dist/permitted/trackEvent.mjs.map +1 -1
  250. package/dist/permitted/updateInterface.cjs +11 -15
  251. package/dist/permitted/updateInterface.cjs.map +1 -1
  252. package/dist/permitted/updateInterface.d.cts +9 -22
  253. package/dist/permitted/updateInterface.d.cts.map +1 -1
  254. package/dist/permitted/updateInterface.d.mts +9 -22
  255. package/dist/permitted/updateInterface.d.mts.map +1 -1
  256. package/dist/permitted/updateInterface.mjs +11 -15
  257. package/dist/permitted/updateInterface.mjs.map +1 -1
  258. package/dist/restricted/dialog.cjs +23 -30
  259. package/dist/restricted/dialog.cjs.map +1 -1
  260. package/dist/restricted/dialog.d.cts +10 -58
  261. package/dist/restricted/dialog.d.cts.map +1 -1
  262. package/dist/restricted/dialog.d.mts +10 -58
  263. package/dist/restricted/dialog.d.mts.map +1 -1
  264. package/dist/restricted/dialog.mjs +23 -30
  265. package/dist/restricted/dialog.mjs.map +1 -1
  266. package/dist/restricted/getBip32Entropy.cjs +15 -12
  267. package/dist/restricted/getBip32Entropy.cjs.map +1 -1
  268. package/dist/restricted/getBip32Entropy.d.cts +11 -24
  269. package/dist/restricted/getBip32Entropy.d.cts.map +1 -1
  270. package/dist/restricted/getBip32Entropy.d.mts +11 -24
  271. package/dist/restricted/getBip32Entropy.d.mts.map +1 -1
  272. package/dist/restricted/getBip32Entropy.mjs +16 -13
  273. package/dist/restricted/getBip32Entropy.mjs.map +1 -1
  274. package/dist/restricted/getBip32PublicKey.cjs +15 -12
  275. package/dist/restricted/getBip32PublicKey.cjs.map +1 -1
  276. package/dist/restricted/getBip32PublicKey.d.cts +11 -24
  277. package/dist/restricted/getBip32PublicKey.d.cts.map +1 -1
  278. package/dist/restricted/getBip32PublicKey.d.mts +11 -24
  279. package/dist/restricted/getBip32PublicKey.d.mts.map +1 -1
  280. package/dist/restricted/getBip32PublicKey.mjs +16 -13
  281. package/dist/restricted/getBip32PublicKey.mjs.map +1 -1
  282. package/dist/restricted/getBip44Entropy.cjs +14 -10
  283. package/dist/restricted/getBip44Entropy.cjs.map +1 -1
  284. package/dist/restricted/getBip44Entropy.d.cts +11 -15
  285. package/dist/restricted/getBip44Entropy.d.cts.map +1 -1
  286. package/dist/restricted/getBip44Entropy.d.mts +11 -15
  287. package/dist/restricted/getBip44Entropy.d.mts.map +1 -1
  288. package/dist/restricted/getBip44Entropy.mjs +15 -11
  289. package/dist/restricted/getBip44Entropy.mjs.map +1 -1
  290. package/dist/restricted/getEntropy.cjs +10 -10
  291. package/dist/restricted/getEntropy.cjs.map +1 -1
  292. package/dist/restricted/getEntropy.d.cts +11 -15
  293. package/dist/restricted/getEntropy.d.cts.map +1 -1
  294. package/dist/restricted/getEntropy.d.mts +11 -15
  295. package/dist/restricted/getEntropy.d.mts.map +1 -1
  296. package/dist/restricted/getEntropy.mjs +11 -11
  297. package/dist/restricted/getEntropy.mjs.map +1 -1
  298. package/dist/restricted/index.cjs.map +1 -1
  299. package/dist/restricted/index.d.cts +20 -160
  300. package/dist/restricted/index.d.cts.map +1 -1
  301. package/dist/restricted/index.d.mts +20 -160
  302. package/dist/restricted/index.d.mts.map +1 -1
  303. package/dist/restricted/index.mjs.map +1 -1
  304. package/dist/restricted/invokeSnap.cjs +11 -12
  305. package/dist/restricted/invokeSnap.cjs.map +1 -1
  306. package/dist/restricted/invokeSnap.d.cts +9 -13
  307. package/dist/restricted/invokeSnap.d.cts.map +1 -1
  308. package/dist/restricted/invokeSnap.d.mts +9 -13
  309. package/dist/restricted/invokeSnap.d.mts.map +1 -1
  310. package/dist/restricted/invokeSnap.mjs +11 -12
  311. package/dist/restricted/invokeSnap.mjs.map +1 -1
  312. package/dist/restricted/manageState.cjs +21 -20
  313. package/dist/restricted/manageState.cjs.map +1 -1
  314. package/dist/restricted/manageState.d.cts +12 -34
  315. package/dist/restricted/manageState.d.cts.map +1 -1
  316. package/dist/restricted/manageState.d.mts +12 -34
  317. package/dist/restricted/manageState.d.mts.map +1 -1
  318. package/dist/restricted/manageState.mjs +21 -20
  319. package/dist/restricted/manageState.mjs.map +1 -1
  320. package/dist/restricted/notify.cjs +31 -24
  321. package/dist/restricted/notify.cjs.map +1 -1
  322. package/dist/restricted/notify.d.cts +16 -25
  323. package/dist/restricted/notify.d.cts.map +1 -1
  324. package/dist/restricted/notify.d.mts +16 -25
  325. package/dist/restricted/notify.d.mts.map +1 -1
  326. package/dist/restricted/notify.mjs +32 -25
  327. package/dist/restricted/notify.mjs.map +1 -1
  328. package/dist/types.cjs +3 -0
  329. package/dist/types.cjs.map +1 -0
  330. package/dist/types.d.cts +155 -0
  331. package/dist/types.d.cts.map +1 -0
  332. package/dist/types.d.mts +155 -0
  333. package/dist/types.d.mts.map +1 -0
  334. package/dist/types.mjs +2 -0
  335. package/dist/types.mjs.map +1 -0
  336. package/dist/utils.cjs +78 -24
  337. package/dist/utils.cjs.map +1 -1
  338. package/dist/utils.d.cts +21 -13
  339. package/dist/utils.d.cts.map +1 -1
  340. package/dist/utils.d.mts +21 -13
  341. package/dist/utils.d.mts.map +1 -1
  342. package/dist/utils.mjs +75 -22
  343. package/dist/utils.mjs.map +1 -1
  344. package/package.json +6 -6
  345. package/dist/permitted/handlers.cjs +0 -63
  346. package/dist/permitted/handlers.cjs.map +0 -1
  347. package/dist/permitted/handlers.d.cts +0 -299
  348. package/dist/permitted/handlers.d.cts.map +0 -1
  349. package/dist/permitted/handlers.d.mts +0 -299
  350. package/dist/permitted/handlers.d.mts.map +0 -1
  351. package/dist/permitted/handlers.mjs +0 -60
  352. package/dist/permitted/handlers.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createInterface.mjs","sourceRoot":"","sources":["../../src/permitted/createInterface.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AASjE,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACvB,4BAA4B;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,8BAA8B;AAI9E,OAAO,EAAE,cAAc,EAAE,qBAAiB;AAE1C,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C,MAAM,SAAS,GAAkD;IAC/D,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;CACtB,CAAC;AAsBF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,gCAAgC;IAChD,SAAS;CAKV,CAAC;AAEF,MAAM,+BAA+B,GAAG,MAAM,CAAC;IAC7C,EAAE,EAAE,wBAAwB;IAC5B,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC;CAC1C,CAAC,CAAC;AAOH;;;;;;;;;;;;;GAaG;AACH,SAAS,gCAAgC,CACvC,GAA8C,EAC9C,GAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,eAAe,EAA8B;IAE9D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACxC,OAAO,GAAG,CACR,cAAc,CAAC,YAAY,CAAC;YAC1B,OAAO,EAAE,kFAAkF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACxH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;QAExC,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n CreateInterfaceParams,\n CreateInterfaceResult,\n JsonRpcRequest,\n ComponentOrElement,\n InterfaceContext,\n ContentType,\n} from '@metamask/snaps-sdk';\nimport {\n ComponentOrElementStruct,\n InterfaceContextStruct,\n} from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, optional } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\nimport { UI_PERMISSIONS } from '../utils';\n\nconst methodName = 'snap_createInterface';\n\nconst hookNames: MethodHooksObject<CreateInterfaceMethodHooks> = {\n hasPermission: true,\n createInterface: true,\n};\n\nexport type CreateInterfaceMethodHooks = {\n /**\n * @param permissionName - The name of the permission to check.\n * @returns Whether the Snap has the permission.\n */\n hasPermission: (permissionName: string) => boolean;\n\n /**\n * @param ui - The UI components.\n * @param context - An optional interface context object.\n * @param contentType - The optional content type.\n * @returns The unique identifier of the interface.\n */\n createInterface: (\n ui: ComponentOrElement,\n context?: InterfaceContext,\n contentType?: ContentType,\n ) => string;\n};\n\n/**\n * Create the interactive interface for use in the\n * [interactive UI](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/).\n *\n * @example\n * ```tsx\n * import { Box, Heading, Text } from '@metamask/snaps-sdk/jsx';\n *\n * const interfaceId = snap.request({\n * method: 'snap_createInterface',\n * params: {\n * ui: (\n * <Box>\n * <Heading>Example Interface</Heading>\n * <Text>This is an example interface created by \"snap_createInterface\".</Text>\n * </Box>\n * ),\n * },\n * });\n * ```\n */\nexport const createInterfaceHandler = {\n methodNames: [methodName] as const,\n implementation: getCreateInterfaceImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n CreateInterfaceMethodHooks,\n CreateInterfaceParameters,\n CreateInterfaceResult\n>;\n\nconst CreateInterfaceParametersStruct = object({\n ui: ComponentOrElementStruct,\n context: optional(InterfaceContextStruct),\n});\n\nexport type CreateInterfaceParameters = InferMatching<\n typeof CreateInterfaceParametersStruct,\n CreateInterfaceParams\n>;\n\n/**\n * The `snap_createInterface` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.hasPermission - The function to check if the Snap has a given\n * permission.\n * @param hooks.createInterface - The function to create the interface.\n * @returns Nothing.\n */\nfunction getCreateInterfaceImplementation(\n req: JsonRpcRequest<CreateInterfaceParameters>,\n res: PendingJsonRpcResponse<CreateInterfaceResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, createInterface }: CreateInterfaceMethodHooks,\n): void {\n if (!UI_PERMISSIONS.some(hasPermission)) {\n return end(\n providerErrors.unauthorized({\n message: `This method can only be used if the Snap has one of the following permissions: ${UI_PERMISSIONS.join(', ')}.`,\n }),\n );\n }\n\n const { params } = req;\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { ui, context } = validatedParams;\n\n res.result = createInterface(ui, context);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the createInterface method `params` and returns them cast to the correct\n * type. Throws if validation fails.\n *\n * @param params - The unvalidated params object from the method request.\n * @returns The validated createInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): CreateInterfaceParameters {\n try {\n return create(params, CreateInterfaceParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
1
+ {"version":3,"file":"createInterface.mjs","sourceRoot":"","sources":["../../src/permitted/createInterface.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAKjE,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACvB,4BAA4B;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,8BAA8B;AAO9E,OAAO,EAAE,cAAc,EAAE,qBAAiB;AAM1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,cAAc,EAAE,gCAAgC;IAChD,WAAW,EAAE;QACX,oCAAoC;QACpC,yCAAyC;KAC1C;CAOF,CAAC;AAEF,MAAM,+BAA+B,GAAG,MAAM,CAAC;IAC7C,EAAE,EAAE,wBAAwB;IAC5B,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC;CAC1C,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,SAAS,gCAAgC,CACvC,GAAwD,EACxD,GAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAA0D;IAE1D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE/B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACrD,SAAS,CAAC,IAAI,CAAC,oCAAoC,EAAE,MAAM,EAAE,UAAU,CAAC,CACzE,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,GAAG,CACR,cAAc,CAAC,YAAY,CAAC;YAC1B,OAAO,EAAE,kFAAkF,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACxH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;QAExC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CACzB,yCAAyC,EACzC,MAAM,EACN,EAAE,EACF,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport type { PermissionControllerHasPermissionAction } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n CreateInterfaceParams,\n CreateInterfaceResult,\n} from '@metamask/snaps-sdk';\nimport {\n ComponentOrElementStruct,\n InterfaceContextStruct,\n} from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, optional } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type {\n JsonRpcRequestWithOrigin,\n SnapInterfaceControllerCreateInterfaceAction,\n} from '../types';\nimport { UI_PERMISSIONS } from '../utils';\n\nexport type CreateInterfaceMethodActions =\n | PermissionControllerHasPermissionAction\n | SnapInterfaceControllerCreateInterfaceAction;\n\n/**\n * Create the interactive interface for use in the\n * [interactive UI](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/).\n *\n * @example\n * ```tsx\n * import { Box, Heading, Text } from '@metamask/snaps-sdk/jsx';\n *\n * const interfaceId = snap.request({\n * method: 'snap_createInterface',\n * params: {\n * ui: (\n * <Box>\n * <Heading>Example Interface</Heading>\n * <Text>This is an example interface created by \"snap_createInterface\".</Text>\n * </Box>\n * ),\n * },\n * });\n * ```\n */\nexport const createInterfaceHandler = {\n implementation: getCreateInterfaceImplementation,\n actionNames: [\n 'PermissionController:hasPermission',\n 'SnapInterfaceController:createInterface',\n ],\n} satisfies MethodHandler<\n never,\n CreateInterfaceMethodActions,\n CreateInterfaceParameters,\n CreateInterfaceResult,\n { origin: string }\n>;\n\nconst CreateInterfaceParametersStruct = object({\n ui: ComponentOrElementStruct,\n context: optional(InterfaceContextStruct),\n});\n\nexport type CreateInterfaceParameters = InferMatching<\n typeof CreateInterfaceParametersStruct,\n CreateInterfaceParams\n>;\n\n/**\n * The `snap_createInterface` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nfunction getCreateInterfaceImplementation(\n req: JsonRpcRequestWithOrigin<CreateInterfaceParameters>,\n res: PendingJsonRpcResponse<CreateInterfaceResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, CreateInterfaceMethodActions>,\n): void {\n const { params, origin } = req;\n\n const isPermitted = UI_PERMISSIONS.some((permission) =>\n messenger.call('PermissionController:hasPermission', origin, permission),\n );\n\n if (!isPermitted) {\n return end(\n providerErrors.unauthorized({\n message: `This method can only be used if the Snap has one of the following permissions: ${UI_PERMISSIONS.join(', ')}.`,\n }),\n );\n }\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { ui, context } = validatedParams;\n\n res.result = messenger.call(\n 'SnapInterfaceController:createInterface',\n origin,\n ui,\n context,\n );\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the createInterface method `params` and returns them cast to the correct\n * type. Throws if validation fails.\n *\n * @param params - The unvalidated params object from the method request.\n * @returns The validated createInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): CreateInterfaceParameters {\n try {\n return create(params, CreateInterfaceParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
@@ -3,10 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.endTraceHandler = void 0;
4
4
  const rpc_errors_1 = require("@metamask/rpc-errors");
5
5
  const superstruct_1 = require("@metamask/superstruct");
6
- const methodName = 'snap_endTrace';
7
6
  const hookNames = {
8
7
  endTrace: true,
9
- getSnap: true,
10
8
  };
11
9
  const EndTraceParametersStruct = (0, superstruct_1.object)({
12
10
  id: (0, superstruct_1.exactOptional)((0, superstruct_1.string)()),
@@ -20,9 +18,9 @@ const EndTraceParametersStruct = (0, superstruct_1.object)({
20
18
  * @internal
21
19
  */
22
20
  exports.endTraceHandler = {
23
- methodNames: [methodName],
24
21
  implementation: getEndTraceImplementation,
25
22
  hookNames,
23
+ actionNames: ['SnapController:getSnap'],
26
24
  };
27
25
  /**
28
26
  * The `snap_endTrace` method implementation. This method is used to end a
@@ -35,11 +33,11 @@ exports.endTraceHandler = {
35
33
  * @param end - The `json-rpc-engine` "end" callback.
36
34
  * @param hooks - The RPC method hooks.
37
35
  * @param hooks.endTrace - The hook function to end a performance trace.
38
- * @param hooks.getSnap - The hook function to get Snap metadata.
36
+ * @param messenger - The messenger used to call controller actions.
39
37
  * @returns Nothing.
40
38
  */
41
- function getEndTraceImplementation(request, response, _next, end, { endTrace, getSnap }) {
42
- const snap = getSnap(request.origin);
39
+ function getEndTraceImplementation(request, response, _next, end, { endTrace }, messenger) {
40
+ const snap = messenger.call('SnapController:getSnap', request.origin);
43
41
  if (!snap?.preinstalled) {
44
42
  return end(rpc_errors_1.rpcErrors.methodNotFound());
45
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"endTrace.cjs","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAQjD,uDAO+B;AAK/B,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,MAAM,SAAS,GAA2C;IACxD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAC;AAmBF,MAAM,wBAAwB,GAAG,IAAA,oBAAM,EAAC;IACtC,EAAE,EAAE,IAAA,2BAAa,EAAC,IAAA,oBAAM,GAAE,CAAC;IAC3B,IAAI,EAAE,IAAA,oBAAM,GAAE;IACd,SAAS,EAAE,IAAA,2BAAa,EAAC,IAAA,oBAAM,GAAE,CAAC;CACnC,CAAC,CAAC;AAOH;;;;;GAKG;AACU,QAAA,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,yBAAyB;IACzC,SAAS;CAKV,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,yBAAyB,CAChC,OAA2C,EAC3C,QAAgC,EAChC,KAAc,EACd,GAA6B,EAC7B,EAAE,QAAQ,EAAE,OAAO,EAAuB;IAE1C,MAAM,IAAI,GAAG,OAAO,CACjB,OAA+D,CAAC,MAAM,CACxE,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE1B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n EndTraceParams,\n EndTraceResult,\n EndTraceRequest,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching, Snap } from '@metamask/snaps-utils';\nimport {\n number,\n create,\n object,\n string,\n StructError,\n exactOptional,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_endTrace';\n\nconst hookNames: MethodHooksObject<EndTraceMethodHooks> = {\n endTrace: true,\n getSnap: true,\n};\n\nexport type EndTraceMethodHooks = {\n /**\n * End a performance trace in Sentry.\n *\n * @param request - The trace request object.\n * @returns The performance trace context.\n */\n endTrace: (request: EndTraceRequest) => void;\n\n /**\n * Get Snap metadata.\n *\n * @param snapId - The ID of a Snap.\n */\n getSnap: (snapId: string) => Snap | undefined;\n};\n\nconst EndTraceParametersStruct = object({\n id: exactOptional(string()),\n name: string(),\n timestamp: exactOptional(number()),\n});\n\nexport type EndTraceParameters = InferMatching<\n typeof EndTraceParametersStruct,\n EndTraceParams\n>;\n\n/**\n * End a performance trace in Sentry. This method is only available to\n * preinstalled Snaps.\n *\n * @internal\n */\nexport const endTraceHandler = {\n methodNames: [methodName] as const,\n implementation: getEndTraceImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n EndTraceMethodHooks,\n EndTraceParameters,\n EndTraceResult\n>;\n\n/**\n * The `snap_endTrace` method implementation. This method is used to end a\n * performance trace in Sentry. It is only available to preinstalled Snaps.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.endTrace - The hook function to end a performance trace.\n * @param hooks.getSnap - The hook function to get Snap metadata.\n * @returns Nothing.\n */\nfunction getEndTraceImplementation(\n request: JsonRpcRequest<EndTraceParameters>,\n response: PendingJsonRpcResponse,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { endTrace, getSnap }: EndTraceMethodHooks,\n): void {\n const snap = getSnap(\n (request as JsonRpcRequest<EndTraceParams> & { origin: string }).origin,\n );\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n endTrace(validatedParams);\n\n response.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_endTrace` method.\n *\n * @param params - Parameters to validate.\n * @returns Validated parameters.\n * @throws Throws RPC error if validation fails.\n */\nfunction getValidatedParams(params: unknown): EndTraceParameters {\n try {\n return create(params, EndTraceParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
1
+ {"version":3,"file":"endTrace.cjs","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":";;;AAKA,qDAAiD;AAOjD,uDAO+B;AAS/B,MAAM,SAAS,GAA2C;IACxD,QAAQ,EAAE,IAAI;CACf,CAAC;AAcF,MAAM,wBAAwB,GAAG,IAAA,oBAAM,EAAC;IACtC,EAAE,EAAE,IAAA,2BAAa,EAAC,IAAA,oBAAM,GAAE,CAAC;IAC3B,IAAI,EAAE,IAAA,oBAAM,GAAE;IACd,SAAS,EAAE,IAAA,2BAAa,EAAC,IAAA,oBAAM,GAAE,CAAC;CACnC,CAAC,CAAC;AAOH;;;;;GAKG;AACU,QAAA,eAAe,GAAG;IAC7B,cAAc,EAAE,yBAAyB;IACzC,SAAS;IACT,WAAW,EAAE,CAAC,wBAAwB,CAAC;CAOxC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,yBAAyB,CAChC,OAAqD,EACrD,QAAgC,EAChC,KAAc,EACd,GAA6B,EAC7B,EAAE,QAAQ,EAAuB,EACjC,SAAmD;IAEnD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE1B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n EndTraceParams,\n EndTraceResult,\n EndTraceRequest,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport {\n number,\n create,\n object,\n string,\n StructError,\n exactOptional,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type {\n JsonRpcRequestWithOrigin,\n SnapControllerGetSnapAction,\n} from '../types';\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<EndTraceMethodHooks> = {\n endTrace: true,\n};\n\nexport type EndTraceMethodHooks = {\n /**\n * End a performance trace in Sentry.\n *\n * @param request - The trace request object.\n * @returns The performance trace context.\n */\n endTrace: (request: EndTraceRequest) => void;\n};\n\nexport type EndTraceMethodActions = SnapControllerGetSnapAction;\n\nconst EndTraceParametersStruct = object({\n id: exactOptional(string()),\n name: string(),\n timestamp: exactOptional(number()),\n});\n\nexport type EndTraceParameters = InferMatching<\n typeof EndTraceParametersStruct,\n EndTraceParams\n>;\n\n/**\n * End a performance trace in Sentry. This method is only available to\n * preinstalled Snaps.\n *\n * @internal\n */\nexport const endTraceHandler = {\n implementation: getEndTraceImplementation,\n hookNames,\n actionNames: ['SnapController:getSnap'],\n} satisfies MethodHandler<\n EndTraceMethodHooks,\n EndTraceMethodActions,\n EndTraceParameters,\n EndTraceResult,\n { origin: string }\n>;\n\n/**\n * The `snap_endTrace` method implementation. This method is used to end a\n * performance trace in Sentry. It is only available to preinstalled Snaps.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.endTrace - The hook function to end a performance trace.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nfunction getEndTraceImplementation(\n request: JsonRpcRequestWithOrigin<EndTraceParameters>,\n response: PendingJsonRpcResponse,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { endTrace }: EndTraceMethodHooks,\n messenger: Messenger<string, EndTraceMethodActions>,\n): void {\n const snap = messenger.call('SnapController:getSnap', request.origin);\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n endTrace(validatedParams);\n\n response.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_endTrace` method.\n *\n * @param params - Parameters to validate.\n * @returns Validated parameters.\n * @throws Throws RPC error if validation fails.\n */\nfunction getValidatedParams(params: unknown): EndTraceParameters {\n try {\n return create(params, EndTraceParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
@@ -1,7 +1,9 @@
1
1
  import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, EndTraceParams, EndTraceRequest } from "@metamask/snaps-sdk";
3
- import type { InferMatching, Snap } from "@metamask/snaps-utils";
2
+ import type { Messenger } from "@metamask/messenger";
3
+ import type { EndTraceParams, EndTraceRequest } from "@metamask/snaps-sdk";
4
+ import type { InferMatching } from "@metamask/snaps-utils";
4
5
  import type { PendingJsonRpcResponse } from "@metamask/utils";
6
+ import type { JsonRpcRequestWithOrigin, SnapControllerGetSnapAction } from "../types.cjs";
5
7
  import type { MethodHooksObject } from "../utils.cjs";
6
8
  export type EndTraceMethodHooks = {
7
9
  /**
@@ -11,13 +13,8 @@ export type EndTraceMethodHooks = {
11
13
  * @returns The performance trace context.
12
14
  */
13
15
  endTrace: (request: EndTraceRequest) => void;
14
- /**
15
- * Get Snap metadata.
16
- *
17
- * @param snapId - The ID of a Snap.
18
- */
19
- getSnap: (snapId: string) => Snap | undefined;
20
16
  };
17
+ export type EndTraceMethodActions = SnapControllerGetSnapAction;
21
18
  declare const EndTraceParametersStruct: import("@metamask/superstruct").Struct<{
22
19
  name: string;
23
20
  id?: string | undefined;
@@ -35,9 +32,9 @@ export type EndTraceParameters = InferMatching<typeof EndTraceParametersStruct,
35
32
  * @internal
36
33
  */
37
34
  export declare const endTraceHandler: {
38
- methodNames: ["snap_endTrace"];
39
35
  implementation: typeof getEndTraceImplementation;
40
36
  hookNames: MethodHooksObject<EndTraceMethodHooks>;
37
+ actionNames: "SnapController:getSnap"[];
41
38
  };
42
39
  /**
43
40
  * The `snap_endTrace` method implementation. This method is used to end a
@@ -50,9 +47,9 @@ export declare const endTraceHandler: {
50
47
  * @param end - The `json-rpc-engine` "end" callback.
51
48
  * @param hooks - The RPC method hooks.
52
49
  * @param hooks.endTrace - The hook function to end a performance trace.
53
- * @param hooks.getSnap - The hook function to get Snap metadata.
50
+ * @param messenger - The messenger used to call controller actions.
54
51
  * @returns Nothing.
55
52
  */
56
- declare function getEndTraceImplementation(request: JsonRpcRequest<EndTraceParameters>, response: PendingJsonRpcResponse, _next: unknown, end: JsonRpcEngineEndCallback, { endTrace, getSnap }: EndTraceMethodHooks): void;
53
+ declare function getEndTraceImplementation(request: JsonRpcRequestWithOrigin<EndTraceParameters>, response: PendingJsonRpcResponse, _next: unknown, end: JsonRpcEngineEndCallback, { endTrace }: EndTraceMethodHooks, messenger: Messenger<string, EndTraceMethodActions>): void;
57
54
  export {};
58
55
  //# sourceMappingURL=endTrace.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endTrace.d.cts","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,eAAe,EAChB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AASlD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAE7C;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,QAAA,MAAM,wBAAwB;;;;;;;;EAI5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,OAAO,wBAAwB,EAC/B,cAAc,CACf,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;CAQ3B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,cAAc,CAAC,kBAAkB,CAAC,EAC3C,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,mBAAmB,GACzC,IAAI,CAqBN"}
1
+ {"version":3,"file":"endTrace.d.cts","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AAErD,OAAO,KAAK,EACV,cAAc,EAEd,eAAe,EAChB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAS3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC5B,qBAAiB;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAMlD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEhE,QAAA,MAAM,wBAAwB;;;;;;;;EAI5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,OAAO,wBAAwB,EAC/B,cAAc,CACf,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;CAU3B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,EACrD,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,QAAQ,EAAE,EAAE,mBAAmB,EACjC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAClD,IAAI,CAmBN"}
@@ -1,7 +1,9 @@
1
1
  import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, EndTraceParams, EndTraceRequest } from "@metamask/snaps-sdk";
3
- import type { InferMatching, Snap } from "@metamask/snaps-utils";
2
+ import type { Messenger } from "@metamask/messenger";
3
+ import type { EndTraceParams, EndTraceRequest } from "@metamask/snaps-sdk";
4
+ import type { InferMatching } from "@metamask/snaps-utils";
4
5
  import type { PendingJsonRpcResponse } from "@metamask/utils";
6
+ import type { JsonRpcRequestWithOrigin, SnapControllerGetSnapAction } from "../types.mjs";
5
7
  import type { MethodHooksObject } from "../utils.mjs";
6
8
  export type EndTraceMethodHooks = {
7
9
  /**
@@ -11,13 +13,8 @@ export type EndTraceMethodHooks = {
11
13
  * @returns The performance trace context.
12
14
  */
13
15
  endTrace: (request: EndTraceRequest) => void;
14
- /**
15
- * Get Snap metadata.
16
- *
17
- * @param snapId - The ID of a Snap.
18
- */
19
- getSnap: (snapId: string) => Snap | undefined;
20
16
  };
17
+ export type EndTraceMethodActions = SnapControllerGetSnapAction;
21
18
  declare const EndTraceParametersStruct: import("@metamask/superstruct").Struct<{
22
19
  name: string;
23
20
  id?: string | undefined;
@@ -35,9 +32,9 @@ export type EndTraceParameters = InferMatching<typeof EndTraceParametersStruct,
35
32
  * @internal
36
33
  */
37
34
  export declare const endTraceHandler: {
38
- methodNames: ["snap_endTrace"];
39
35
  implementation: typeof getEndTraceImplementation;
40
36
  hookNames: MethodHooksObject<EndTraceMethodHooks>;
37
+ actionNames: "SnapController:getSnap"[];
41
38
  };
42
39
  /**
43
40
  * The `snap_endTrace` method implementation. This method is used to end a
@@ -50,9 +47,9 @@ export declare const endTraceHandler: {
50
47
  * @param end - The `json-rpc-engine` "end" callback.
51
48
  * @param hooks - The RPC method hooks.
52
49
  * @param hooks.endTrace - The hook function to end a performance trace.
53
- * @param hooks.getSnap - The hook function to get Snap metadata.
50
+ * @param messenger - The messenger used to call controller actions.
54
51
  * @returns Nothing.
55
52
  */
56
- declare function getEndTraceImplementation(request: JsonRpcRequest<EndTraceParameters>, response: PendingJsonRpcResponse, _next: unknown, end: JsonRpcEngineEndCallback, { endTrace, getSnap }: EndTraceMethodHooks): void;
53
+ declare function getEndTraceImplementation(request: JsonRpcRequestWithOrigin<EndTraceParameters>, response: PendingJsonRpcResponse, _next: unknown, end: JsonRpcEngineEndCallback, { endTrace }: EndTraceMethodHooks, messenger: Messenger<string, EndTraceMethodActions>): void;
57
54
  export {};
58
55
  //# sourceMappingURL=endTrace.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endTrace.d.mts","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,eAAe,EAChB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AASjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AASlD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IAE7C;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,QAAA,MAAM,wBAAwB;;;;;;;;EAI5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,OAAO,wBAAwB,EAC/B,cAAc,CACf,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;CAQ3B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,cAAc,CAAC,kBAAkB,CAAC,EAC3C,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,mBAAmB,GACzC,IAAI,CAqBN"}
1
+ {"version":3,"file":"endTrace.d.mts","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AAErD,OAAO,KAAK,EACV,cAAc,EAEd,eAAe,EAChB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAS3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC5B,qBAAiB;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAMlD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEhE,QAAA,MAAM,wBAAwB;;;;;;;;EAI5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,OAAO,wBAAwB,EAC/B,cAAc,CACf,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;CAU3B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,yBAAyB,CAChC,OAAO,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,EACrD,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,QAAQ,EAAE,EAAE,mBAAmB,EACjC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAClD,IAAI,CAmBN"}
@@ -1,9 +1,7 @@
1
1
  import { rpcErrors } from "@metamask/rpc-errors";
2
2
  import { number, create, object, string, StructError, exactOptional } from "@metamask/superstruct";
3
- const methodName = 'snap_endTrace';
4
3
  const hookNames = {
5
4
  endTrace: true,
6
- getSnap: true,
7
5
  };
8
6
  const EndTraceParametersStruct = object({
9
7
  id: exactOptional(string()),
@@ -17,9 +15,9 @@ const EndTraceParametersStruct = object({
17
15
  * @internal
18
16
  */
19
17
  export const endTraceHandler = {
20
- methodNames: [methodName],
21
18
  implementation: getEndTraceImplementation,
22
19
  hookNames,
20
+ actionNames: ['SnapController:getSnap'],
23
21
  };
24
22
  /**
25
23
  * The `snap_endTrace` method implementation. This method is used to end a
@@ -32,11 +30,11 @@ export const endTraceHandler = {
32
30
  * @param end - The `json-rpc-engine` "end" callback.
33
31
  * @param hooks - The RPC method hooks.
34
32
  * @param hooks.endTrace - The hook function to end a performance trace.
35
- * @param hooks.getSnap - The hook function to get Snap metadata.
33
+ * @param messenger - The messenger used to call controller actions.
36
34
  * @returns Nothing.
37
35
  */
38
- function getEndTraceImplementation(request, response, _next, end, { endTrace, getSnap }) {
39
- const snap = getSnap(request.origin);
36
+ function getEndTraceImplementation(request, response, _next, end, { endTrace }, messenger) {
37
+ const snap = messenger.call('SnapController:getSnap', request.origin);
40
38
  if (!snap?.preinstalled) {
41
39
  return end(rpcErrors.methodNotFound());
42
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"endTrace.mjs","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAQjD,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACd,8BAA8B;AAK/B,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,MAAM,SAAS,GAA2C;IACxD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAC;AAmBF,MAAM,wBAAwB,GAAG,MAAM,CAAC;IACtC,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,EAAE;IACd,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;CACnC,CAAC,CAAC;AAOH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,yBAAyB;IACzC,SAAS;CAKV,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,yBAAyB,CAChC,OAA2C,EAC3C,QAAgC,EAChC,KAAc,EACd,GAA6B,EAC7B,EAAE,QAAQ,EAAE,OAAO,EAAuB;IAE1C,MAAM,IAAI,GAAG,OAAO,CACjB,OAA+D,CAAC,MAAM,CACxE,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE1B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n EndTraceParams,\n EndTraceResult,\n EndTraceRequest,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching, Snap } from '@metamask/snaps-utils';\nimport {\n number,\n create,\n object,\n string,\n StructError,\n exactOptional,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_endTrace';\n\nconst hookNames: MethodHooksObject<EndTraceMethodHooks> = {\n endTrace: true,\n getSnap: true,\n};\n\nexport type EndTraceMethodHooks = {\n /**\n * End a performance trace in Sentry.\n *\n * @param request - The trace request object.\n * @returns The performance trace context.\n */\n endTrace: (request: EndTraceRequest) => void;\n\n /**\n * Get Snap metadata.\n *\n * @param snapId - The ID of a Snap.\n */\n getSnap: (snapId: string) => Snap | undefined;\n};\n\nconst EndTraceParametersStruct = object({\n id: exactOptional(string()),\n name: string(),\n timestamp: exactOptional(number()),\n});\n\nexport type EndTraceParameters = InferMatching<\n typeof EndTraceParametersStruct,\n EndTraceParams\n>;\n\n/**\n * End a performance trace in Sentry. This method is only available to\n * preinstalled Snaps.\n *\n * @internal\n */\nexport const endTraceHandler = {\n methodNames: [methodName] as const,\n implementation: getEndTraceImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n EndTraceMethodHooks,\n EndTraceParameters,\n EndTraceResult\n>;\n\n/**\n * The `snap_endTrace` method implementation. This method is used to end a\n * performance trace in Sentry. It is only available to preinstalled Snaps.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.endTrace - The hook function to end a performance trace.\n * @param hooks.getSnap - The hook function to get Snap metadata.\n * @returns Nothing.\n */\nfunction getEndTraceImplementation(\n request: JsonRpcRequest<EndTraceParameters>,\n response: PendingJsonRpcResponse,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { endTrace, getSnap }: EndTraceMethodHooks,\n): void {\n const snap = getSnap(\n (request as JsonRpcRequest<EndTraceParams> & { origin: string }).origin,\n );\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n endTrace(validatedParams);\n\n response.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_endTrace` method.\n *\n * @param params - Parameters to validate.\n * @returns Validated parameters.\n * @throws Throws RPC error if validation fails.\n */\nfunction getValidatedParams(params: unknown): EndTraceParameters {\n try {\n return create(params, EndTraceParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
1
+ {"version":3,"file":"endTrace.mjs","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAOjD,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,EACX,aAAa,EACd,8BAA8B;AAS/B,MAAM,SAAS,GAA2C;IACxD,QAAQ,EAAE,IAAI;CACf,CAAC;AAcF,MAAM,wBAAwB,GAAG,MAAM,CAAC;IACtC,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,EAAE;IACd,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;CACnC,CAAC,CAAC;AAOH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,yBAAyB;IACzC,SAAS;IACT,WAAW,EAAE,CAAC,wBAAwB,CAAC;CAOxC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,yBAAyB,CAChC,OAAqD,EACrD,QAAgC,EAChC,KAAc,EACd,GAA6B,EAC7B,EAAE,QAAQ,EAAuB,EACjC,SAAmD;IAEnD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE1B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n EndTraceParams,\n EndTraceResult,\n EndTraceRequest,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport {\n number,\n create,\n object,\n string,\n StructError,\n exactOptional,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type {\n JsonRpcRequestWithOrigin,\n SnapControllerGetSnapAction,\n} from '../types';\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<EndTraceMethodHooks> = {\n endTrace: true,\n};\n\nexport type EndTraceMethodHooks = {\n /**\n * End a performance trace in Sentry.\n *\n * @param request - The trace request object.\n * @returns The performance trace context.\n */\n endTrace: (request: EndTraceRequest) => void;\n};\n\nexport type EndTraceMethodActions = SnapControllerGetSnapAction;\n\nconst EndTraceParametersStruct = object({\n id: exactOptional(string()),\n name: string(),\n timestamp: exactOptional(number()),\n});\n\nexport type EndTraceParameters = InferMatching<\n typeof EndTraceParametersStruct,\n EndTraceParams\n>;\n\n/**\n * End a performance trace in Sentry. This method is only available to\n * preinstalled Snaps.\n *\n * @internal\n */\nexport const endTraceHandler = {\n implementation: getEndTraceImplementation,\n hookNames,\n actionNames: ['SnapController:getSnap'],\n} satisfies MethodHandler<\n EndTraceMethodHooks,\n EndTraceMethodActions,\n EndTraceParameters,\n EndTraceResult,\n { origin: string }\n>;\n\n/**\n * The `snap_endTrace` method implementation. This method is used to end a\n * performance trace in Sentry. It is only available to preinstalled Snaps.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.endTrace - The hook function to end a performance trace.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nfunction getEndTraceImplementation(\n request: JsonRpcRequestWithOrigin<EndTraceParameters>,\n response: PendingJsonRpcResponse,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { endTrace }: EndTraceMethodHooks,\n messenger: Messenger<string, EndTraceMethodActions>,\n): void {\n const snap = messenger.call('SnapController:getSnap', request.origin);\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n endTrace(validatedParams);\n\n response.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_endTrace` method.\n *\n * @param params - Parameters to validate.\n * @returns Validated parameters.\n * @throws Throws RPC error if validation fails.\n */\nfunction getValidatedParams(params: unknown): EndTraceParameters {\n try {\n return create(params, EndTraceParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
@@ -2,10 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAllSnapsHandler = void 0;
4
4
  const rpc_errors_1 = require("@metamask/rpc-errors");
5
- const methodName = 'wallet_getAllSnaps';
6
- const hookNames = {
7
- getAllSnaps: true,
8
- };
9
5
  /**
10
6
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
11
7
  * called from `https://snaps.metamask.io`.
@@ -13,9 +9,8 @@ const hookNames = {
13
9
  * @internal
14
10
  */
15
11
  exports.getAllSnapsHandler = {
16
- methodNames: [methodName],
17
12
  implementation: getAllSnapsImplementation,
18
- hookNames,
13
+ actionNames: ['SnapController:getAllSnaps'],
19
14
  };
20
15
  /**
21
16
  * The `wallet_getAllSnaps` method implementation.
@@ -26,17 +21,16 @@ exports.getAllSnapsHandler = {
26
21
  * @param _next - The `json-rpc-engine` "next" callback. Not used by this
27
22
  * function.
28
23
  * @param end - The `json-rpc-engine` "end" callback.
29
- * @param hooks - The RPC method hooks.
30
- * @param hooks.getAllSnaps - A function that returns all installed snaps.
24
+ * @param _hooks - The RPC method hooks. Not used by this function.
25
+ * @param messenger - The messenger used to call controller actions.
31
26
  * @returns Nothing.
32
27
  */
33
- async function getAllSnapsImplementation(request, response, _next, end, { getAllSnaps }) {
34
- // The origin is added by the MetaMask middleware stack.
28
+ async function getAllSnapsImplementation(request, response, _next, end, _hooks, messenger) {
35
29
  const { origin } = request;
36
30
  if (origin !== 'https://snaps.metamask.io') {
37
31
  return end(rpc_errors_1.rpcErrors.methodNotFound());
38
32
  }
39
- response.result = await getAllSnaps();
33
+ response.result = messenger.call('SnapController:getAllSnaps');
40
34
  return end();
41
35
  }
42
36
  //# sourceMappingURL=getAllSnaps.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.cjs","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAUjD,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,SAAS,GAAwC;IACrD,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG;IAChC,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,yBAAyB;IACzC,SAAS;CAKV,CAAC;AASF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,yBAAyB,CACtC,OAAuB,EACvB,QAAgD,EAChD,KAAc,EACd,GAA6B,EAC7B,EAAE,WAAW,EAAoB;IAEjC,wDAAwD;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,OAA8C,CAAC;IAElE,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;IACtC,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { GetSnapsResult } from '@metamask/snaps-sdk';\nimport type {\n JsonRpcParams,\n JsonRpcRequest,\n PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'wallet_getAllSnaps';\n\nconst hookNames: MethodHooksObject<GetAllSnapsHooks> = {\n getAllSnaps: true,\n};\n\n/**\n * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be\n * called from `https://snaps.metamask.io`.\n *\n * @internal\n */\nexport const getAllSnapsHandler = {\n methodNames: [methodName] as const,\n implementation: getAllSnapsImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetAllSnapsHooks,\n JsonRpcParams,\n GetSnapsResult\n>;\n\nexport type GetAllSnapsHooks = {\n /**\n * @returns All installed Snaps.\n */\n getAllSnaps: () => Promise<GetSnapsResult>;\n};\n\n/**\n * The `wallet_getAllSnaps` method implementation.\n * Fetches all installed snaps and adds them to the JSON-RPC response.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.getAllSnaps - A function that returns all installed snaps.\n * @returns Nothing.\n */\nasync function getAllSnapsImplementation(\n request: JsonRpcRequest,\n response: PendingJsonRpcResponse<GetSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getAllSnaps }: GetAllSnapsHooks,\n): Promise<void> {\n // The origin is added by the MetaMask middleware stack.\n const { origin } = request as JsonRpcRequest & { origin: string };\n\n if (origin !== 'https://snaps.metamask.io') {\n return end(rpcErrors.methodNotFound());\n }\n\n response.result = await getAllSnaps();\n return end();\n}\n"]}
1
+ {"version":3,"file":"getAllSnaps.cjs","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":";;;AAKA,qDAAiD;AAajD;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG;IAChC,cAAc,EAAE,yBAAyB;IACzC,WAAW,EAAE,CAAC,4BAA4B,CAAC;CAO5C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,yBAAyB,CACtC,OAAiC,EACjC,QAAmD,EACnD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAAsD;IAEtD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC/D,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { TruncatedSnap } from '@metamask/snaps-utils';\nimport type { JsonRpcParams, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type {\n JsonRpcRequestWithOrigin,\n SnapControllerGetAllSnapsAction,\n} from '../types';\n\nexport type GetAllSnapsResult = TruncatedSnap[];\n\nexport type GetAllSnapsMethodActions = SnapControllerGetAllSnapsAction;\n\n/**\n * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be\n * called from `https://snaps.metamask.io`.\n *\n * @internal\n */\nexport const getAllSnapsHandler = {\n implementation: getAllSnapsImplementation,\n actionNames: ['SnapController:getAllSnaps'],\n} satisfies MethodHandler<\n never,\n GetAllSnapsMethodActions,\n JsonRpcParams,\n GetAllSnapsResult,\n { origin: string }\n>;\n\n/**\n * The `wallet_getAllSnaps` method implementation.\n * Fetches all installed snaps and adds them to the JSON-RPC response.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function getAllSnapsImplementation(\n request: JsonRpcRequestWithOrigin,\n response: PendingJsonRpcResponse<GetAllSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, GetAllSnapsMethodActions>,\n): Promise<void> {\n const { origin } = request;\n\n if (origin !== 'https://snaps.metamask.io') {\n return end(rpcErrors.methodNotFound());\n }\n\n response.result = messenger.call('SnapController:getAllSnaps');\n return end();\n}\n"]}
@@ -1,7 +1,10 @@
1
1
  import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
- import type { GetSnapsResult } from "@metamask/snaps-sdk";
3
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
4
- import type { MethodHooksObject } from "../utils.cjs";
2
+ import type { Messenger } from "@metamask/messenger";
3
+ import type { TruncatedSnap } from "@metamask/snaps-utils";
4
+ import type { PendingJsonRpcResponse } from "@metamask/utils";
5
+ import type { JsonRpcRequestWithOrigin, SnapControllerGetAllSnapsAction } from "../types.cjs";
6
+ export type GetAllSnapsResult = TruncatedSnap[];
7
+ export type GetAllSnapsMethodActions = SnapControllerGetAllSnapsAction;
5
8
  /**
6
9
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
7
10
  * called from `https://snaps.metamask.io`.
@@ -9,15 +12,8 @@ import type { MethodHooksObject } from "../utils.cjs";
9
12
  * @internal
10
13
  */
11
14
  export declare const getAllSnapsHandler: {
12
- methodNames: ["wallet_getAllSnaps"];
13
15
  implementation: typeof getAllSnapsImplementation;
14
- hookNames: MethodHooksObject<GetAllSnapsHooks>;
15
- };
16
- export type GetAllSnapsHooks = {
17
- /**
18
- * @returns All installed Snaps.
19
- */
20
- getAllSnaps: () => Promise<GetSnapsResult>;
16
+ actionNames: "SnapController:getAllSnaps"[];
21
17
  };
22
18
  /**
23
19
  * The `wallet_getAllSnaps` method implementation.
@@ -28,10 +24,10 @@ export type GetAllSnapsHooks = {
28
24
  * @param _next - The `json-rpc-engine` "next" callback. Not used by this
29
25
  * function.
30
26
  * @param end - The `json-rpc-engine` "end" callback.
31
- * @param hooks - The RPC method hooks.
32
- * @param hooks.getAllSnaps - A function that returns all installed snaps.
27
+ * @param _hooks - The RPC method hooks. Not used by this function.
28
+ * @param messenger - The messenger used to call controller actions.
33
29
  * @returns Nothing.
34
30
  */
35
- declare function getAllSnapsImplementation(request: JsonRpcRequest, response: PendingJsonRpcResponse<GetSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getAllSnaps }: GetAllSnapsHooks): Promise<void>;
31
+ declare function getAllSnapsImplementation(request: JsonRpcRequestWithOrigin, response: PendingJsonRpcResponse<GetAllSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, _hooks: never, messenger: Messenger<string, GetAllSnapsMethodActions>): Promise<void>;
36
32
  export {};
37
33
  //# sourceMappingURL=getAllSnaps.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.d.cts","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B;AAC1D,OAAO,KAAK,EAEV,cAAc,EACd,sBAAsB,EACvB,wBAAwB;AAEzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAQlD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;CAQ9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,yBAAyB,CACtC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAChD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAChC,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"getAllSnaps.d.cts","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAC3D,OAAO,KAAK,EAAiB,sBAAsB,EAAE,wBAAwB;AAE7E,OAAO,KAAK,EACV,wBAAwB,EACxB,+BAA+B,EAChC,qBAAiB;AAElB,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;CAS9B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,yBAAyB,CACtC,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EACnD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACrD,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -1,7 +1,10 @@
1
1
  import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
- import type { GetSnapsResult } from "@metamask/snaps-sdk";
3
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
4
- import type { MethodHooksObject } from "../utils.mjs";
2
+ import type { Messenger } from "@metamask/messenger";
3
+ import type { TruncatedSnap } from "@metamask/snaps-utils";
4
+ import type { PendingJsonRpcResponse } from "@metamask/utils";
5
+ import type { JsonRpcRequestWithOrigin, SnapControllerGetAllSnapsAction } from "../types.mjs";
6
+ export type GetAllSnapsResult = TruncatedSnap[];
7
+ export type GetAllSnapsMethodActions = SnapControllerGetAllSnapsAction;
5
8
  /**
6
9
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
7
10
  * called from `https://snaps.metamask.io`.
@@ -9,15 +12,8 @@ import type { MethodHooksObject } from "../utils.mjs";
9
12
  * @internal
10
13
  */
11
14
  export declare const getAllSnapsHandler: {
12
- methodNames: ["wallet_getAllSnaps"];
13
15
  implementation: typeof getAllSnapsImplementation;
14
- hookNames: MethodHooksObject<GetAllSnapsHooks>;
15
- };
16
- export type GetAllSnapsHooks = {
17
- /**
18
- * @returns All installed Snaps.
19
- */
20
- getAllSnaps: () => Promise<GetSnapsResult>;
16
+ actionNames: "SnapController:getAllSnaps"[];
21
17
  };
22
18
  /**
23
19
  * The `wallet_getAllSnaps` method implementation.
@@ -28,10 +24,10 @@ export type GetAllSnapsHooks = {
28
24
  * @param _next - The `json-rpc-engine` "next" callback. Not used by this
29
25
  * function.
30
26
  * @param end - The `json-rpc-engine` "end" callback.
31
- * @param hooks - The RPC method hooks.
32
- * @param hooks.getAllSnaps - A function that returns all installed snaps.
27
+ * @param _hooks - The RPC method hooks. Not used by this function.
28
+ * @param messenger - The messenger used to call controller actions.
33
29
  * @returns Nothing.
34
30
  */
35
- declare function getAllSnapsImplementation(request: JsonRpcRequest, response: PendingJsonRpcResponse<GetSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getAllSnaps }: GetAllSnapsHooks): Promise<void>;
31
+ declare function getAllSnapsImplementation(request: JsonRpcRequestWithOrigin, response: PendingJsonRpcResponse<GetAllSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, _hooks: never, messenger: Messenger<string, GetAllSnapsMethodActions>): Promise<void>;
36
32
  export {};
37
33
  //# sourceMappingURL=getAllSnaps.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.d.mts","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B;AAC1D,OAAO,KAAK,EAEV,cAAc,EACd,sBAAsB,EACvB,wBAAwB;AAEzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAQlD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;CAQ9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,yBAAyB,CACtC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAChD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,WAAW,EAAE,EAAE,gBAAgB,GAChC,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"getAllSnaps.d.mts","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAEzB,kCAAkC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAC3D,OAAO,KAAK,EAAiB,sBAAsB,EAAE,wBAAwB;AAE7E,OAAO,KAAK,EACV,wBAAwB,EACxB,+BAA+B,EAChC,qBAAiB;AAElB,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;CAS9B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAe,yBAAyB,CACtC,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,EACnD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,wBAAwB,CAAC,GACrD,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -1,8 +1,4 @@
1
1
  import { rpcErrors } from "@metamask/rpc-errors";
2
- const methodName = 'wallet_getAllSnaps';
3
- const hookNames = {
4
- getAllSnaps: true,
5
- };
6
2
  /**
7
3
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
8
4
  * called from `https://snaps.metamask.io`.
@@ -10,9 +6,8 @@ const hookNames = {
10
6
  * @internal
11
7
  */
12
8
  export const getAllSnapsHandler = {
13
- methodNames: [methodName],
14
9
  implementation: getAllSnapsImplementation,
15
- hookNames,
10
+ actionNames: ['SnapController:getAllSnaps'],
16
11
  };
17
12
  /**
18
13
  * The `wallet_getAllSnaps` method implementation.
@@ -23,17 +18,16 @@ export const getAllSnapsHandler = {
23
18
  * @param _next - The `json-rpc-engine` "next" callback. Not used by this
24
19
  * function.
25
20
  * @param end - The `json-rpc-engine` "end" callback.
26
- * @param hooks - The RPC method hooks.
27
- * @param hooks.getAllSnaps - A function that returns all installed snaps.
21
+ * @param _hooks - The RPC method hooks. Not used by this function.
22
+ * @param messenger - The messenger used to call controller actions.
28
23
  * @returns Nothing.
29
24
  */
30
- async function getAllSnapsImplementation(request, response, _next, end, { getAllSnaps }) {
31
- // The origin is added by the MetaMask middleware stack.
25
+ async function getAllSnapsImplementation(request, response, _next, end, _hooks, messenger) {
32
26
  const { origin } = request;
33
27
  if (origin !== 'https://snaps.metamask.io') {
34
28
  return end(rpcErrors.methodNotFound());
35
29
  }
36
- response.result = await getAllSnaps();
30
+ response.result = messenger.call('SnapController:getAllSnaps');
37
31
  return end();
38
32
  }
39
33
  //# sourceMappingURL=getAllSnaps.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.mjs","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAUjD,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,SAAS,GAAwC;IACrD,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,yBAAyB;IACzC,SAAS;CAKV,CAAC;AASF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,yBAAyB,CACtC,OAAuB,EACvB,QAAgD,EAChD,KAAc,EACd,GAA6B,EAC7B,EAAE,WAAW,EAAoB;IAEjC,wDAAwD;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,OAA8C,CAAC;IAElE,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;IACtC,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { GetSnapsResult } from '@metamask/snaps-sdk';\nimport type {\n JsonRpcParams,\n JsonRpcRequest,\n PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'wallet_getAllSnaps';\n\nconst hookNames: MethodHooksObject<GetAllSnapsHooks> = {\n getAllSnaps: true,\n};\n\n/**\n * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be\n * called from `https://snaps.metamask.io`.\n *\n * @internal\n */\nexport const getAllSnapsHandler = {\n methodNames: [methodName] as const,\n implementation: getAllSnapsImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetAllSnapsHooks,\n JsonRpcParams,\n GetSnapsResult\n>;\n\nexport type GetAllSnapsHooks = {\n /**\n * @returns All installed Snaps.\n */\n getAllSnaps: () => Promise<GetSnapsResult>;\n};\n\n/**\n * The `wallet_getAllSnaps` method implementation.\n * Fetches all installed snaps and adds them to the JSON-RPC response.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.getAllSnaps - A function that returns all installed snaps.\n * @returns Nothing.\n */\nasync function getAllSnapsImplementation(\n request: JsonRpcRequest,\n response: PendingJsonRpcResponse<GetSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getAllSnaps }: GetAllSnapsHooks,\n): Promise<void> {\n // The origin is added by the MetaMask middleware stack.\n const { origin } = request as JsonRpcRequest & { origin: string };\n\n if (origin !== 'https://snaps.metamask.io') {\n return end(rpcErrors.methodNotFound());\n }\n\n response.result = await getAllSnaps();\n return end();\n}\n"]}
1
+ {"version":3,"file":"getAllSnaps.mjs","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAajD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,cAAc,EAAE,yBAAyB;IACzC,WAAW,EAAE,CAAC,4BAA4B,CAAC;CAO5C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,yBAAyB,CACtC,OAAiC,EACjC,QAAmD,EACnD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAAsD;IAEtD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,MAAM,KAAK,2BAA2B,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC/D,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { TruncatedSnap } from '@metamask/snaps-utils';\nimport type { JsonRpcParams, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type {\n JsonRpcRequestWithOrigin,\n SnapControllerGetAllSnapsAction,\n} from '../types';\n\nexport type GetAllSnapsResult = TruncatedSnap[];\n\nexport type GetAllSnapsMethodActions = SnapControllerGetAllSnapsAction;\n\n/**\n * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be\n * called from `https://snaps.metamask.io`.\n *\n * @internal\n */\nexport const getAllSnapsHandler = {\n implementation: getAllSnapsImplementation,\n actionNames: ['SnapController:getAllSnaps'],\n} satisfies MethodHandler<\n never,\n GetAllSnapsMethodActions,\n JsonRpcParams,\n GetAllSnapsResult,\n { origin: string }\n>;\n\n/**\n * The `wallet_getAllSnaps` method implementation.\n * Fetches all installed snaps and adds them to the JSON-RPC response.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns Nothing.\n */\nasync function getAllSnapsImplementation(\n request: JsonRpcRequestWithOrigin,\n response: PendingJsonRpcResponse<GetAllSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, GetAllSnapsMethodActions>,\n): Promise<void> {\n const { origin } = request;\n\n if (origin !== 'https://snaps.metamask.io') {\n return end(rpcErrors.methodNotFound());\n }\n\n response.result = messenger.call('SnapController:getAllSnaps');\n return end();\n}\n"]}
@@ -3,11 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getBackgroundEventsHandler = void 0;
4
4
  const rpc_errors_1 = require("@metamask/rpc-errors");
5
5
  const endowments_1 = require("../endowments/index.cjs");
6
- const methodName = 'snap_getBackgroundEvents';
7
- const hookNames = {
8
- getBackgroundEvents: true,
9
- hasPermission: true,
10
- };
11
6
  /**
12
7
  * Get the scheduled background events for the Snap.
13
8
  *
@@ -33,30 +28,28 @@ const hookNames = {
33
28
  * ```
34
29
  */
35
30
  exports.getBackgroundEventsHandler = {
36
- methodNames: [methodName],
37
31
  implementation: getGetBackgroundEventsImplementation,
38
- hookNames,
32
+ actionNames: ['PermissionController:hasPermission', 'CronjobController:get'],
39
33
  };
40
34
  /**
41
35
  * The `snap_getBackgroundEvents` method implementation.
42
36
  *
43
- * @param _req - The JSON-RPC request object. Not used by this function.
37
+ * @param req - The JSON-RPC request object.
44
38
  * @param res - The JSON-RPC response object.
45
39
  * @param _next - The `json-rpc-engine` "next" callback.
46
40
  * Not used by this function.
47
41
  * @param end - The `json-rpc-engine` "end" callback.
48
- * @param hooks - The RPC method hooks.
49
- * @param hooks.getBackgroundEvents - The function to get the background events.
50
- * @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.
42
+ * @param _hooks - The RPC method hooks. Not used by this function.
43
+ * @param messenger - The messenger used to call controller actions.
51
44
  * @returns An array of background events.
52
45
  */
53
- async function getGetBackgroundEventsImplementation(_req, res, _next, end, { getBackgroundEvents, hasPermission }) {
54
- if (!hasPermission(endowments_1.SnapEndowments.Cronjob)) {
46
+ async function getGetBackgroundEventsImplementation(req, res, _next, end, _hooks, messenger) {
47
+ const { origin } = req;
48
+ if (!messenger.call('PermissionController:hasPermission', origin, endowments_1.SnapEndowments.Cronjob)) {
55
49
  return end(rpc_errors_1.providerErrors.unauthorized());
56
50
  }
57
51
  try {
58
- const events = getBackgroundEvents();
59
- res.result = events;
52
+ res.result = messenger.call('CronjobController:get', origin);
60
53
  }
61
54
  catch (error) {
62
55
  return end(error);
@@ -1 +1 @@
1
- {"version":3,"file":"getBackgroundEvents.cjs","sourceRoot":"","sources":["../../src/permitted/getBackgroundEvents.ts"],"names":[],"mappings":";;;AAEA,qDAAsD;AAStD,wDAA+C;AAG/C,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,SAAS,GAAsD;IACnE,mBAAmB,EAAE,IAAI;IACzB,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,0BAA0B,GAAG;IACxC,WAAW,EAAE,CAAC,UAAU,CAAU;IAClC,cAAc,EAAE,oCAAoC;IACpD,SAAS;CAKV,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,oCAAoC,CACjD,IAA+C,EAC/C,GAAsD,EACtD,KAAc,EACd,GAA6B,EAC7B,EAAE,mBAAmB,EAAE,aAAa,EAAkC;IAEtE,IAAI,CAAC,aAAa,CAAC,2BAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors } from '@metamask/rpc-errors';\nimport type {\n BackgroundEvent,\n GetBackgroundEventsParams,\n GetBackgroundEventsResult,\n JsonRpcRequest,\n} from '@metamask/snaps-sdk';\nimport { type PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_getBackgroundEvents';\n\nconst hookNames: MethodHooksObject<GetBackgroundEventsMethodHooks> = {\n getBackgroundEvents: true,\n hasPermission: true,\n};\n\nexport type GetBackgroundEventsMethodHooks = {\n getBackgroundEvents: () => BackgroundEvent[];\n hasPermission: (permissionName: string) => boolean;\n};\n\n/**\n * Get the scheduled background events for the Snap.\n *\n * @example\n * ```ts\n * const events = await snap.request({\n * method: 'snap_getBackgroundEvents',\n * });\n * console.log(events);\n * // [\n * // {\n * // id: 'event-1',\n * // scheduledAt: 1672531200000,\n * // snapId: 'npm:example-snap',\n * // date: 1672531200000,\n * // request: {\n * // method: 'example_method',\n * // params: { example: 'data' },\n * // },\n * // },\n * // ...,\n * // ]\n * ```\n */\nexport const getBackgroundEventsHandler = {\n methodNames: [methodName] as const,\n implementation: getGetBackgroundEventsImplementation,\n hookNames,\n} satisfies PermittedHandlerExport<\n GetBackgroundEventsMethodHooks,\n GetBackgroundEventsParams,\n GetBackgroundEventsResult\n>;\n\n/**\n * The `snap_getBackgroundEvents` method implementation.\n *\n * @param _req - The JSON-RPC request object. Not used by this function.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback.\n * Not used by this function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.getBackgroundEvents - The function to get the background events.\n * @param hooks.hasPermission - The function to check if a snap has the `endowment:cronjob` permission.\n * @returns An array of background events.\n */\nasync function getGetBackgroundEventsImplementation(\n _req: JsonRpcRequest<GetBackgroundEventsParams>,\n res: PendingJsonRpcResponse<GetBackgroundEventsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getBackgroundEvents, hasPermission }: GetBackgroundEventsMethodHooks,\n): Promise<void> {\n if (!hasPermission(SnapEndowments.Cronjob)) {\n return end(providerErrors.unauthorized());\n }\n try {\n const events = getBackgroundEvents();\n res.result = events;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n"]}
1
+ {"version":3,"file":"getBackgroundEvents.cjs","sourceRoot":"","sources":["../../src/permitted/getBackgroundEvents.ts"],"names":[],"mappings":";;;AAMA,qDAAsD;AAQtD,wDAA+C;AAU/C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,0BAA0B,GAAG;IACxC,cAAc,EAAE,oCAAoC;IACpD,WAAW,EAAE,CAAC,oCAAoC,EAAE,uBAAuB,CAAC;CAO7E,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,oCAAoC,CACjD,GAAwD,EACxD,GAAsD,EACtD,KAAc,EACd,GAA6B,EAC7B,MAAa,EACb,SAA8D;IAE9D,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IACE,CAAC,SAAS,CAAC,IAAI,CACb,oCAAoC,EACpC,MAAM,EACN,2BAAc,CAAC,OAAO,CACvB,EACD,CAAC;QACD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n MethodHandler,\n} from '@metamask/json-rpc-engine';\nimport type { Messenger } from '@metamask/messenger';\nimport type { PermissionControllerHasPermissionAction } from '@metamask/permission-controller';\nimport { providerErrors } from '@metamask/rpc-errors';\nimport type {\n GetBackgroundEventsParams,\n GetBackgroundEventsResult,\n SnapId,\n} from '@metamask/snaps-sdk';\nimport { type PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type {\n CronjobControllerGetAction,\n JsonRpcRequestWithOrigin,\n} from '../types';\n\nexport type GetBackgroundEventsMethodActions =\n | PermissionControllerHasPermissionAction\n | CronjobControllerGetAction;\n\n/**\n * Get the scheduled background events for the Snap.\n *\n * @example\n * ```ts\n * const events = await snap.request({\n * method: 'snap_getBackgroundEvents',\n * });\n * console.log(events);\n * // [\n * // {\n * // id: 'event-1',\n * // scheduledAt: 1672531200000,\n * // snapId: 'npm:example-snap',\n * // date: 1672531200000,\n * // request: {\n * // method: 'example_method',\n * // params: { example: 'data' },\n * // },\n * // },\n * // ...,\n * // ]\n * ```\n */\nexport const getBackgroundEventsHandler = {\n implementation: getGetBackgroundEventsImplementation,\n actionNames: ['PermissionController:hasPermission', 'CronjobController:get'],\n} satisfies MethodHandler<\n never,\n GetBackgroundEventsMethodActions,\n GetBackgroundEventsParams,\n GetBackgroundEventsResult,\n { origin: SnapId }\n>;\n\n/**\n * The `snap_getBackgroundEvents` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback.\n * Not used by this function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param _hooks - The RPC method hooks. Not used by this function.\n * @param messenger - The messenger used to call controller actions.\n * @returns An array of background events.\n */\nasync function getGetBackgroundEventsImplementation(\n req: JsonRpcRequestWithOrigin<GetBackgroundEventsParams>,\n res: PendingJsonRpcResponse<GetBackgroundEventsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n _hooks: never,\n messenger: Messenger<string, GetBackgroundEventsMethodActions>,\n): Promise<void> {\n const { origin } = req;\n\n if (\n !messenger.call(\n 'PermissionController:hasPermission',\n origin,\n SnapEndowments.Cronjob,\n )\n ) {\n return end(providerErrors.unauthorized());\n }\n try {\n res.result = messenger.call('CronjobController:get', origin);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n"]}