@metamask/snaps-rpc-methods 14.2.0 → 15.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 (432) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/dist/endowments/assets.cjs +1 -1
  3. package/dist/endowments/assets.cjs.map +1 -1
  4. package/dist/endowments/assets.mjs +1 -1
  5. package/dist/endowments/assets.mjs.map +1 -1
  6. package/dist/endowments/cronjob.cjs +3 -8
  7. package/dist/endowments/cronjob.cjs.map +1 -1
  8. package/dist/endowments/cronjob.d.cts.map +1 -1
  9. package/dist/endowments/cronjob.d.mts.map +1 -1
  10. package/dist/endowments/cronjob.mjs +4 -9
  11. package/dist/endowments/cronjob.mjs.map +1 -1
  12. package/dist/endowments/home-page.cjs +6 -1
  13. package/dist/endowments/home-page.cjs.map +1 -1
  14. package/dist/endowments/home-page.d.cts +2 -1
  15. package/dist/endowments/home-page.d.cts.map +1 -1
  16. package/dist/endowments/home-page.d.mts +2 -1
  17. package/dist/endowments/home-page.d.mts.map +1 -1
  18. package/dist/endowments/home-page.mjs +6 -1
  19. package/dist/endowments/home-page.mjs.map +1 -1
  20. package/dist/endowments/index.d.cts +3 -0
  21. package/dist/endowments/index.d.cts.map +1 -1
  22. package/dist/endowments/index.d.mts +3 -0
  23. package/dist/endowments/index.d.mts.map +1 -1
  24. package/dist/endowments/keyring.cjs +2 -4
  25. package/dist/endowments/keyring.cjs.map +1 -1
  26. package/dist/endowments/keyring.d.cts +1 -1
  27. package/dist/endowments/keyring.d.cts.map +1 -1
  28. package/dist/endowments/keyring.d.mts +1 -1
  29. package/dist/endowments/keyring.d.mts.map +1 -1
  30. package/dist/endowments/keyring.mjs +2 -4
  31. package/dist/endowments/keyring.mjs.map +1 -1
  32. package/dist/endowments/lifecycle-hooks.cjs +6 -1
  33. package/dist/endowments/lifecycle-hooks.cjs.map +1 -1
  34. package/dist/endowments/lifecycle-hooks.d.cts +2 -1
  35. package/dist/endowments/lifecycle-hooks.d.cts.map +1 -1
  36. package/dist/endowments/lifecycle-hooks.d.mts +2 -1
  37. package/dist/endowments/lifecycle-hooks.d.mts.map +1 -1
  38. package/dist/endowments/lifecycle-hooks.mjs +6 -1
  39. package/dist/endowments/lifecycle-hooks.mjs.map +1 -1
  40. package/dist/endowments/rpc.cjs +2 -4
  41. package/dist/endowments/rpc.cjs.map +1 -1
  42. package/dist/endowments/rpc.d.cts +1 -1
  43. package/dist/endowments/rpc.d.cts.map +1 -1
  44. package/dist/endowments/rpc.d.mts +1 -1
  45. package/dist/endowments/rpc.d.mts.map +1 -1
  46. package/dist/endowments/rpc.mjs +2 -4
  47. package/dist/endowments/rpc.mjs.map +1 -1
  48. package/dist/endowments/settings-page.cjs +6 -1
  49. package/dist/endowments/settings-page.cjs.map +1 -1
  50. package/dist/endowments/settings-page.d.cts +2 -1
  51. package/dist/endowments/settings-page.d.cts.map +1 -1
  52. package/dist/endowments/settings-page.d.mts +2 -1
  53. package/dist/endowments/settings-page.d.mts.map +1 -1
  54. package/dist/endowments/settings-page.mjs +6 -1
  55. package/dist/endowments/settings-page.mjs.map +1 -1
  56. package/dist/endowments/signature-insight.cjs +6 -8
  57. package/dist/endowments/signature-insight.cjs.map +1 -1
  58. package/dist/endowments/signature-insight.d.cts.map +1 -1
  59. package/dist/endowments/signature-insight.d.mts.map +1 -1
  60. package/dist/endowments/signature-insight.mjs +6 -8
  61. package/dist/endowments/signature-insight.mjs.map +1 -1
  62. package/dist/endowments/transaction-insight.cjs +2 -7
  63. package/dist/endowments/transaction-insight.cjs.map +1 -1
  64. package/dist/endowments/transaction-insight.d.cts.map +1 -1
  65. package/dist/endowments/transaction-insight.d.mts.map +1 -1
  66. package/dist/endowments/transaction-insight.mjs +2 -7
  67. package/dist/endowments/transaction-insight.mjs.map +1 -1
  68. package/dist/middleware/index.cjs +3 -0
  69. package/dist/middleware/index.cjs.map +1 -1
  70. package/dist/middleware/index.d.cts +1 -0
  71. package/dist/middleware/index.d.cts.map +1 -1
  72. package/dist/middleware/index.d.mts +1 -0
  73. package/dist/middleware/index.d.mts.map +1 -1
  74. package/dist/middleware/index.mjs +1 -0
  75. package/dist/middleware/index.mjs.map +1 -1
  76. package/dist/middleware/wallet-snap-permission.cjs +32 -0
  77. package/dist/middleware/wallet-snap-permission.cjs.map +1 -0
  78. package/dist/middleware/wallet-snap-permission.d.cts +18 -0
  79. package/dist/middleware/wallet-snap-permission.d.cts.map +1 -0
  80. package/dist/middleware/wallet-snap-permission.d.mts +18 -0
  81. package/dist/middleware/wallet-snap-permission.d.mts.map +1 -0
  82. package/dist/middleware/wallet-snap-permission.mjs +28 -0
  83. package/dist/middleware/wallet-snap-permission.mjs.map +1 -0
  84. package/dist/permitted/cancelBackgroundEvent.cjs +20 -0
  85. package/dist/permitted/cancelBackgroundEvent.cjs.map +1 -1
  86. package/dist/permitted/cancelBackgroundEvent.d.cts +43 -3
  87. package/dist/permitted/cancelBackgroundEvent.d.cts.map +1 -1
  88. package/dist/permitted/cancelBackgroundEvent.d.mts +43 -3
  89. package/dist/permitted/cancelBackgroundEvent.d.mts.map +1 -1
  90. package/dist/permitted/cancelBackgroundEvent.mjs +20 -0
  91. package/dist/permitted/cancelBackgroundEvent.mjs.map +1 -1
  92. package/dist/permitted/clearState.cjs +13 -2
  93. package/dist/permitted/clearState.cjs.map +1 -1
  94. package/dist/permitted/clearState.d.cts +35 -3
  95. package/dist/permitted/clearState.d.cts.map +1 -1
  96. package/dist/permitted/clearState.d.mts +35 -3
  97. package/dist/permitted/clearState.d.mts.map +1 -1
  98. package/dist/permitted/clearState.mjs +13 -2
  99. package/dist/permitted/clearState.mjs.map +1 -1
  100. package/dist/permitted/closeWebSocket.cjs +19 -2
  101. package/dist/permitted/closeWebSocket.cjs.map +1 -1
  102. package/dist/permitted/closeWebSocket.d.cts +39 -4
  103. package/dist/permitted/closeWebSocket.d.cts.map +1 -1
  104. package/dist/permitted/closeWebSocket.d.mts +39 -4
  105. package/dist/permitted/closeWebSocket.d.mts.map +1 -1
  106. package/dist/permitted/closeWebSocket.mjs +19 -2
  107. package/dist/permitted/closeWebSocket.mjs.map +1 -1
  108. package/dist/permitted/createInterface.cjs +33 -2
  109. package/dist/permitted/createInterface.cjs.map +1 -1
  110. package/dist/permitted/createInterface.d.cts +68 -17
  111. package/dist/permitted/createInterface.d.cts.map +1 -1
  112. package/dist/permitted/createInterface.d.mts +68 -17
  113. package/dist/permitted/createInterface.d.mts.map +1 -1
  114. package/dist/permitted/createInterface.mjs +34 -3
  115. package/dist/permitted/createInterface.mjs.map +1 -1
  116. package/dist/permitted/endTrace.cjs +6 -2
  117. package/dist/permitted/endTrace.cjs.map +1 -1
  118. package/dist/permitted/endTrace.d.cts +28 -4
  119. package/dist/permitted/endTrace.d.cts.map +1 -1
  120. package/dist/permitted/endTrace.d.mts +28 -4
  121. package/dist/permitted/endTrace.d.mts.map +1 -1
  122. package/dist/permitted/endTrace.mjs +6 -2
  123. package/dist/permitted/endTrace.mjs.map +1 -1
  124. package/dist/permitted/getAllSnaps.cjs +4 -1
  125. package/dist/permitted/getAllSnaps.cjs.map +1 -1
  126. package/dist/permitted/getAllSnaps.d.cts +25 -3
  127. package/dist/permitted/getAllSnaps.d.cts.map +1 -1
  128. package/dist/permitted/getAllSnaps.d.mts +25 -3
  129. package/dist/permitted/getAllSnaps.d.mts.map +1 -1
  130. package/dist/permitted/getAllSnaps.mjs +4 -1
  131. package/dist/permitted/getAllSnaps.mjs.map +1 -1
  132. package/dist/permitted/getBackgroundEvents.cjs +24 -0
  133. package/dist/permitted/getBackgroundEvents.cjs.map +1 -1
  134. package/dist/permitted/getBackgroundEvents.d.cts +48 -3
  135. package/dist/permitted/getBackgroundEvents.d.cts.map +1 -1
  136. package/dist/permitted/getBackgroundEvents.d.mts +48 -3
  137. package/dist/permitted/getBackgroundEvents.d.mts.map +1 -1
  138. package/dist/permitted/getBackgroundEvents.mjs +24 -0
  139. package/dist/permitted/getBackgroundEvents.mjs.map +1 -1
  140. package/dist/permitted/getClientStatus.cjs +27 -2
  141. package/dist/permitted/getClientStatus.cjs.map +1 -1
  142. package/dist/permitted/getClientStatus.d.cts +50 -4
  143. package/dist/permitted/getClientStatus.d.cts.map +1 -1
  144. package/dist/permitted/getClientStatus.d.mts +50 -4
  145. package/dist/permitted/getClientStatus.d.mts.map +1 -1
  146. package/dist/permitted/getClientStatus.mjs +27 -2
  147. package/dist/permitted/getClientStatus.mjs.map +1 -1
  148. package/dist/permitted/getFile.cjs +28 -1
  149. package/dist/permitted/getFile.cjs.map +1 -1
  150. package/dist/permitted/getFile.d.cts +49 -3
  151. package/dist/permitted/getFile.d.cts.map +1 -1
  152. package/dist/permitted/getFile.d.mts +49 -3
  153. package/dist/permitted/getFile.d.mts.map +1 -1
  154. package/dist/permitted/getFile.mjs +28 -1
  155. package/dist/permitted/getFile.mjs.map +1 -1
  156. package/dist/permitted/getInterfaceContext.cjs +49 -3
  157. package/dist/permitted/getInterfaceContext.cjs.map +1 -1
  158. package/dist/permitted/getInterfaceContext.d.cts +65 -3
  159. package/dist/permitted/getInterfaceContext.d.cts.map +1 -1
  160. package/dist/permitted/getInterfaceContext.d.mts +65 -3
  161. package/dist/permitted/getInterfaceContext.d.mts.map +1 -1
  162. package/dist/permitted/getInterfaceContext.mjs +50 -4
  163. package/dist/permitted/getInterfaceContext.mjs.map +1 -1
  164. package/dist/permitted/getInterfaceState.cjs +27 -3
  165. package/dist/permitted/getInterfaceState.cjs.map +1 -1
  166. package/dist/permitted/getInterfaceState.d.cts +43 -3
  167. package/dist/permitted/getInterfaceState.d.cts.map +1 -1
  168. package/dist/permitted/getInterfaceState.d.mts +43 -3
  169. package/dist/permitted/getInterfaceState.d.mts.map +1 -1
  170. package/dist/permitted/getInterfaceState.mjs +28 -4
  171. package/dist/permitted/getInterfaceState.mjs.map +1 -1
  172. package/dist/permitted/getSnaps.cjs +21 -2
  173. package/dist/permitted/getSnaps.cjs.map +1 -1
  174. package/dist/permitted/getSnaps.d.cts +42 -4
  175. package/dist/permitted/getSnaps.d.cts.map +1 -1
  176. package/dist/permitted/getSnaps.d.mts +42 -4
  177. package/dist/permitted/getSnaps.d.mts.map +1 -1
  178. package/dist/permitted/getSnaps.mjs +21 -2
  179. package/dist/permitted/getSnaps.mjs.map +1 -1
  180. package/dist/permitted/getState.cjs +24 -2
  181. package/dist/permitted/getState.cjs.map +1 -1
  182. package/dist/permitted/getState.d.cts +46 -4
  183. package/dist/permitted/getState.d.cts.map +1 -1
  184. package/dist/permitted/getState.d.mts +46 -4
  185. package/dist/permitted/getState.d.mts.map +1 -1
  186. package/dist/permitted/getState.mjs +24 -2
  187. package/dist/permitted/getState.mjs.map +1 -1
  188. package/dist/permitted/getWebSockets.cjs +29 -2
  189. package/dist/permitted/getWebSockets.cjs.map +1 -1
  190. package/dist/permitted/getWebSockets.d.cts +50 -4
  191. package/dist/permitted/getWebSockets.d.cts.map +1 -1
  192. package/dist/permitted/getWebSockets.d.mts +50 -4
  193. package/dist/permitted/getWebSockets.d.mts.map +1 -1
  194. package/dist/permitted/getWebSockets.mjs +29 -2
  195. package/dist/permitted/getWebSockets.mjs.map +1 -1
  196. package/dist/permitted/handlers.cjs +0 -4
  197. package/dist/permitted/handlers.cjs.map +1 -1
  198. package/dist/permitted/handlers.d.cts +274 -56
  199. package/dist/permitted/handlers.d.cts.map +1 -1
  200. package/dist/permitted/handlers.d.mts +274 -56
  201. package/dist/permitted/handlers.d.mts.map +1 -1
  202. package/dist/permitted/handlers.mjs +0 -4
  203. package/dist/permitted/handlers.mjs.map +1 -1
  204. package/dist/permitted/index.cjs.map +1 -1
  205. package/dist/permitted/index.d.cts +1 -3
  206. package/dist/permitted/index.d.cts.map +1 -1
  207. package/dist/permitted/index.d.mts +1 -3
  208. package/dist/permitted/index.d.mts.map +1 -1
  209. package/dist/permitted/index.mjs.map +1 -1
  210. package/dist/permitted/invokeKeyring.cjs +8 -2
  211. package/dist/permitted/invokeKeyring.cjs.map +1 -1
  212. package/dist/permitted/invokeKeyring.d.cts +34 -4
  213. package/dist/permitted/invokeKeyring.d.cts.map +1 -1
  214. package/dist/permitted/invokeKeyring.d.mts +34 -4
  215. package/dist/permitted/invokeKeyring.d.mts.map +1 -1
  216. package/dist/permitted/invokeKeyring.mjs +8 -2
  217. package/dist/permitted/invokeKeyring.mjs.map +1 -1
  218. package/dist/permitted/invokeSnapSugar.cjs +25 -2
  219. package/dist/permitted/invokeSnapSugar.cjs.map +1 -1
  220. package/dist/permitted/invokeSnapSugar.d.cts +30 -3
  221. package/dist/permitted/invokeSnapSugar.d.cts.map +1 -1
  222. package/dist/permitted/invokeSnapSugar.d.mts +30 -3
  223. package/dist/permitted/invokeSnapSugar.d.mts.map +1 -1
  224. package/dist/permitted/invokeSnapSugar.mjs +25 -2
  225. package/dist/permitted/invokeSnapSugar.mjs.map +1 -1
  226. package/dist/permitted/listEntropySources.cjs +40 -1
  227. package/dist/permitted/listEntropySources.cjs.map +1 -1
  228. package/dist/permitted/listEntropySources.d.cts +64 -3
  229. package/dist/permitted/listEntropySources.d.cts.map +1 -1
  230. package/dist/permitted/listEntropySources.d.mts +64 -3
  231. package/dist/permitted/listEntropySources.d.mts.map +1 -1
  232. package/dist/permitted/listEntropySources.mjs +40 -1
  233. package/dist/permitted/listEntropySources.mjs.map +1 -1
  234. package/dist/permitted/openWebSocket.cjs +46 -2
  235. package/dist/permitted/openWebSocket.cjs.map +1 -1
  236. package/dist/permitted/openWebSocket.d.cts +66 -4
  237. package/dist/permitted/openWebSocket.d.cts.map +1 -1
  238. package/dist/permitted/openWebSocket.d.mts +66 -4
  239. package/dist/permitted/openWebSocket.d.mts.map +1 -1
  240. package/dist/permitted/openWebSocket.mjs +46 -2
  241. package/dist/permitted/openWebSocket.mjs.map +1 -1
  242. package/dist/permitted/requestSnaps.cjs +25 -2
  243. package/dist/permitted/requestSnaps.cjs.map +1 -1
  244. package/dist/permitted/requestSnaps.d.cts +51 -3
  245. package/dist/permitted/requestSnaps.d.cts.map +1 -1
  246. package/dist/permitted/requestSnaps.d.mts +51 -3
  247. package/dist/permitted/requestSnaps.d.mts.map +1 -1
  248. package/dist/permitted/requestSnaps.mjs +25 -2
  249. package/dist/permitted/requestSnaps.mjs.map +1 -1
  250. package/dist/permitted/resolveInterface.cjs +38 -2
  251. package/dist/permitted/resolveInterface.cjs.map +1 -1
  252. package/dist/permitted/resolveInterface.d.cts +55 -4
  253. package/dist/permitted/resolveInterface.d.cts.map +1 -1
  254. package/dist/permitted/resolveInterface.d.mts +55 -4
  255. package/dist/permitted/resolveInterface.d.mts.map +1 -1
  256. package/dist/permitted/resolveInterface.mjs +39 -3
  257. package/dist/permitted/resolveInterface.mjs.map +1 -1
  258. package/dist/permitted/scheduleBackgroundEvent.cjs +26 -0
  259. package/dist/permitted/scheduleBackgroundEvent.cjs.map +1 -1
  260. package/dist/permitted/scheduleBackgroundEvent.d.cts +49 -3
  261. package/dist/permitted/scheduleBackgroundEvent.d.cts.map +1 -1
  262. package/dist/permitted/scheduleBackgroundEvent.d.mts +49 -3
  263. package/dist/permitted/scheduleBackgroundEvent.d.mts.map +1 -1
  264. package/dist/permitted/scheduleBackgroundEvent.mjs +26 -0
  265. package/dist/permitted/scheduleBackgroundEvent.mjs.map +1 -1
  266. package/dist/permitted/sendWebSocketMessage.cjs +24 -2
  267. package/dist/permitted/sendWebSocketMessage.cjs.map +1 -1
  268. package/dist/permitted/sendWebSocketMessage.d.cts +44 -4
  269. package/dist/permitted/sendWebSocketMessage.d.cts.map +1 -1
  270. package/dist/permitted/sendWebSocketMessage.d.mts +44 -4
  271. package/dist/permitted/sendWebSocketMessage.d.mts.map +1 -1
  272. package/dist/permitted/sendWebSocketMessage.mjs +24 -2
  273. package/dist/permitted/sendWebSocketMessage.mjs.map +1 -1
  274. package/dist/permitted/setState.cjs +48 -2
  275. package/dist/permitted/setState.cjs.map +1 -1
  276. package/dist/permitted/setState.d.cts +72 -4
  277. package/dist/permitted/setState.d.cts.map +1 -1
  278. package/dist/permitted/setState.d.mts +72 -4
  279. package/dist/permitted/setState.d.mts.map +1 -1
  280. package/dist/permitted/setState.mjs +48 -2
  281. package/dist/permitted/setState.mjs.map +1 -1
  282. package/dist/permitted/startTrace.cjs +4 -1
  283. package/dist/permitted/startTrace.cjs.map +1 -1
  284. package/dist/permitted/startTrace.d.cts +26 -3
  285. package/dist/permitted/startTrace.d.cts.map +1 -1
  286. package/dist/permitted/startTrace.d.mts +26 -3
  287. package/dist/permitted/startTrace.d.mts.map +1 -1
  288. package/dist/permitted/startTrace.mjs +4 -1
  289. package/dist/permitted/startTrace.mjs.map +1 -1
  290. package/dist/permitted/trackError.cjs +4 -1
  291. package/dist/permitted/trackError.cjs.map +1 -1
  292. package/dist/permitted/trackError.d.cts +26 -3
  293. package/dist/permitted/trackError.d.cts.map +1 -1
  294. package/dist/permitted/trackError.d.mts +26 -3
  295. package/dist/permitted/trackError.d.mts.map +1 -1
  296. package/dist/permitted/trackError.mjs +4 -1
  297. package/dist/permitted/trackError.mjs.map +1 -1
  298. package/dist/permitted/trackEvent.cjs +4 -1
  299. package/dist/permitted/trackEvent.cjs.map +1 -1
  300. package/dist/permitted/trackEvent.d.cts +25 -4
  301. package/dist/permitted/trackEvent.d.cts.map +1 -1
  302. package/dist/permitted/trackEvent.d.mts +25 -4
  303. package/dist/permitted/trackEvent.d.mts.map +1 -1
  304. package/dist/permitted/trackEvent.mjs +4 -1
  305. package/dist/permitted/trackEvent.mjs.map +1 -1
  306. package/dist/permitted/updateInterface.cjs +47 -2
  307. package/dist/permitted/updateInterface.cjs.map +1 -1
  308. package/dist/permitted/updateInterface.d.cts +64 -3
  309. package/dist/permitted/updateInterface.d.cts.map +1 -1
  310. package/dist/permitted/updateInterface.d.mts +64 -3
  311. package/dist/permitted/updateInterface.d.mts.map +1 -1
  312. package/dist/permitted/updateInterface.mjs +48 -3
  313. package/dist/permitted/updateInterface.mjs.map +1 -1
  314. package/dist/restricted/caveats/snapIds.cjs.map +1 -1
  315. package/dist/restricted/caveats/snapIds.d.cts.map +1 -1
  316. package/dist/restricted/caveats/snapIds.d.mts.map +1 -1
  317. package/dist/restricted/caveats/snapIds.mjs.map +1 -1
  318. package/dist/restricted/dialog.cjs +49 -1
  319. package/dist/restricted/dialog.cjs.map +1 -1
  320. package/dist/restricted/dialog.d.cts +52 -2
  321. package/dist/restricted/dialog.d.cts.map +1 -1
  322. package/dist/restricted/dialog.d.mts +52 -2
  323. package/dist/restricted/dialog.d.mts.map +1 -1
  324. package/dist/restricted/dialog.mjs +49 -1
  325. package/dist/restricted/dialog.mjs.map +1 -1
  326. package/dist/restricted/getBip32Entropy.cjs +55 -0
  327. package/dist/restricted/getBip32Entropy.cjs.map +1 -1
  328. package/dist/restricted/getBip32Entropy.d.cts +55 -0
  329. package/dist/restricted/getBip32Entropy.d.cts.map +1 -1
  330. package/dist/restricted/getBip32Entropy.d.mts +55 -0
  331. package/dist/restricted/getBip32Entropy.d.mts.map +1 -1
  332. package/dist/restricted/getBip32Entropy.mjs +55 -0
  333. package/dist/restricted/getBip32Entropy.mjs.map +1 -1
  334. package/dist/restricted/getBip32PublicKey.cjs +36 -0
  335. package/dist/restricted/getBip32PublicKey.cjs.map +1 -1
  336. package/dist/restricted/getBip32PublicKey.d.cts +36 -0
  337. package/dist/restricted/getBip32PublicKey.d.cts.map +1 -1
  338. package/dist/restricted/getBip32PublicKey.d.mts +36 -0
  339. package/dist/restricted/getBip32PublicKey.d.mts.map +1 -1
  340. package/dist/restricted/getBip32PublicKey.mjs +36 -0
  341. package/dist/restricted/getBip32PublicKey.mjs.map +1 -1
  342. package/dist/restricted/getBip44Entropy.cjs +53 -0
  343. package/dist/restricted/getBip44Entropy.cjs.map +1 -1
  344. package/dist/restricted/getBip44Entropy.d.cts +53 -0
  345. package/dist/restricted/getBip44Entropy.d.cts.map +1 -1
  346. package/dist/restricted/getBip44Entropy.d.mts +53 -0
  347. package/dist/restricted/getBip44Entropy.d.mts.map +1 -1
  348. package/dist/restricted/getBip44Entropy.mjs +53 -0
  349. package/dist/restricted/getBip44Entropy.mjs.map +1 -1
  350. package/dist/restricted/getEntropy.cjs +35 -0
  351. package/dist/restricted/getEntropy.cjs.map +1 -1
  352. package/dist/restricted/getEntropy.d.cts +35 -0
  353. package/dist/restricted/getEntropy.d.cts.map +1 -1
  354. package/dist/restricted/getEntropy.d.mts +35 -0
  355. package/dist/restricted/getEntropy.d.mts.map +1 -1
  356. package/dist/restricted/getEntropy.mjs +35 -0
  357. package/dist/restricted/getEntropy.mjs.map +1 -1
  358. package/dist/restricted/getLocale.cjs +11 -0
  359. package/dist/restricted/getLocale.cjs.map +1 -1
  360. package/dist/restricted/getLocale.d.cts +11 -0
  361. package/dist/restricted/getLocale.d.cts.map +1 -1
  362. package/dist/restricted/getLocale.d.mts +11 -0
  363. package/dist/restricted/getLocale.d.mts.map +1 -1
  364. package/dist/restricted/getLocale.mjs +11 -0
  365. package/dist/restricted/getLocale.mjs.map +1 -1
  366. package/dist/restricted/getPreferences.cjs +24 -0
  367. package/dist/restricted/getPreferences.cjs.map +1 -1
  368. package/dist/restricted/getPreferences.d.cts +24 -0
  369. package/dist/restricted/getPreferences.d.cts.map +1 -1
  370. package/dist/restricted/getPreferences.d.mts +24 -0
  371. package/dist/restricted/getPreferences.d.mts.map +1 -1
  372. package/dist/restricted/getPreferences.mjs +24 -0
  373. package/dist/restricted/getPreferences.mjs.map +1 -1
  374. package/dist/restricted/index.d.cts +1 -1
  375. package/dist/restricted/index.d.mts +1 -1
  376. package/dist/restricted/invokeSnap.cjs +22 -0
  377. package/dist/restricted/invokeSnap.cjs.map +1 -1
  378. package/dist/restricted/invokeSnap.d.cts +24 -6
  379. package/dist/restricted/invokeSnap.d.cts.map +1 -1
  380. package/dist/restricted/invokeSnap.d.mts +24 -6
  381. package/dist/restricted/invokeSnap.d.mts.map +1 -1
  382. package/dist/restricted/invokeSnap.mjs +22 -0
  383. package/dist/restricted/invokeSnap.mjs.map +1 -1
  384. package/dist/restricted/manageAccounts.cjs +10 -0
  385. package/dist/restricted/manageAccounts.cjs.map +1 -1
  386. package/dist/restricted/manageAccounts.d.cts +10 -0
  387. package/dist/restricted/manageAccounts.d.cts.map +1 -1
  388. package/dist/restricted/manageAccounts.d.mts +10 -0
  389. package/dist/restricted/manageAccounts.d.mts.map +1 -1
  390. package/dist/restricted/manageAccounts.mjs +10 -0
  391. package/dist/restricted/manageAccounts.mjs.map +1 -1
  392. package/dist/restricted/manageState.cjs +42 -0
  393. package/dist/restricted/manageState.cjs.map +1 -1
  394. package/dist/restricted/manageState.d.cts +42 -0
  395. package/dist/restricted/manageState.d.cts.map +1 -1
  396. package/dist/restricted/manageState.d.mts +42 -0
  397. package/dist/restricted/manageState.d.mts.map +1 -1
  398. package/dist/restricted/manageState.mjs +42 -0
  399. package/dist/restricted/manageState.mjs.map +1 -1
  400. package/dist/restricted/notify.cjs +74 -0
  401. package/dist/restricted/notify.cjs.map +1 -1
  402. package/dist/restricted/notify.d.cts +74 -0
  403. package/dist/restricted/notify.d.cts.map +1 -1
  404. package/dist/restricted/notify.d.mts +74 -0
  405. package/dist/restricted/notify.d.mts.map +1 -1
  406. package/dist/restricted/notify.mjs +74 -0
  407. package/dist/restricted/notify.mjs.map +1 -1
  408. package/dist/utils.cjs +14 -1
  409. package/dist/utils.cjs.map +1 -1
  410. package/dist/utils.d.cts +6 -0
  411. package/dist/utils.d.cts.map +1 -1
  412. package/dist/utils.d.mts +6 -0
  413. package/dist/utils.d.mts.map +1 -1
  414. package/dist/utils.mjs +13 -0
  415. package/dist/utils.mjs.map +1 -1
  416. package/package.json +11 -7
  417. package/dist/permitted/experimentalProviderRequest.cjs +0 -152
  418. package/dist/permitted/experimentalProviderRequest.cjs.map +0 -1
  419. package/dist/permitted/experimentalProviderRequest.d.cts +0 -39
  420. package/dist/permitted/experimentalProviderRequest.d.cts.map +0 -1
  421. package/dist/permitted/experimentalProviderRequest.d.mts +0 -39
  422. package/dist/permitted/experimentalProviderRequest.d.mts.map +0 -1
  423. package/dist/permitted/experimentalProviderRequest.mjs +0 -149
  424. package/dist/permitted/experimentalProviderRequest.mjs.map +0 -1
  425. package/dist/permitted/getCurrencyRate.cjs +0 -63
  426. package/dist/permitted/getCurrencyRate.cjs.map +0 -1
  427. package/dist/permitted/getCurrencyRate.d.cts +0 -20
  428. package/dist/permitted/getCurrencyRate.d.cts.map +0 -1
  429. package/dist/permitted/getCurrencyRate.d.mts +0 -20
  430. package/dist/permitted/getCurrencyRate.d.mts.map +0 -1
  431. package/dist/permitted/getCurrencyRate.mjs +0 -60
  432. package/dist/permitted/getCurrencyRate.mjs.map +0 -1
@@ -1,14 +1,48 @@
1
- import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
- import type { CreateInterfaceParams, CreateInterfaceResult, ComponentOrElement, InterfaceContext, ContentType } from "@metamask/snaps-sdk";
1
+ import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
+ import type { CreateInterfaceParams, CreateInterfaceResult, JsonRpcRequest, ComponentOrElement, InterfaceContext, ContentType } from "@metamask/snaps-sdk";
3
3
  import { type InferMatching } from "@metamask/snaps-utils";
4
+ import type { PendingJsonRpcResponse } from "@metamask/utils";
5
+ import type { MethodHooksObject } from "../utils.mjs";
4
6
  export type CreateInterfaceMethodHooks = {
7
+ /**
8
+ * @param permissionName - The name of the permission to check.
9
+ * @returns Whether the Snap has the permission.
10
+ */
11
+ hasPermission: (permissionName: string) => boolean;
5
12
  /**
6
13
  * @param ui - The UI components.
14
+ * @param context - An optional interface context object.
15
+ * @param contentType - The optional content type.
7
16
  * @returns The unique identifier of the interface.
8
17
  */
9
18
  createInterface: (ui: ComponentOrElement, context?: InterfaceContext, contentType?: ContentType) => string;
10
19
  };
11
- export declare const createInterfaceHandler: PermittedHandlerExport<CreateInterfaceMethodHooks, CreateInterfaceParameters, CreateInterfaceResult>;
20
+ /**
21
+ * Create the interactive interface for use in the
22
+ * [interactive UI](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/).
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * import { Box, Heading, Text } from '@metamask/snaps-sdk/jsx';
27
+ *
28
+ * const interfaceId = snap.request({
29
+ * method: 'snap_createInterface',
30
+ * params: {
31
+ * ui: (
32
+ * <Box>
33
+ * <Heading>Example Interface</Heading>
34
+ * <Text>This is an example interface created by "snap_createInterface".</Text>
35
+ * </Box>
36
+ * ),
37
+ * },
38
+ * });
39
+ * ```
40
+ */
41
+ export declare const createInterfaceHandler: {
42
+ methodNames: ["snap_createInterface"];
43
+ implementation: typeof getCreateInterfaceImplementation;
44
+ hookNames: MethodHooksObject<CreateInterfaceMethodHooks>;
45
+ };
12
46
  declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").Struct<{
13
47
  ui: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AccountSelectorProps, "AccountSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DateTimePickerProps, "DateTimePicker"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
14
48
  value: string;
@@ -21,13 +55,7 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
21
55
  type: import("@metamask/snaps-sdk").NodeType.Heading;
22
56
  } | {
23
57
  value: string;
24
- type: import("@metamask/snaps-sdk").NodeType.Image; /**
25
- * Validate the createInterface method `params` and returns them cast to the correct
26
- * type. Throws if validation fails.
27
- *
28
- * @param params - The unvalidated params object from the method request.
29
- * @returns The validated createInterface method parameter object.
30
- */
58
+ type: import("@metamask/snaps-sdk").NodeType.Image;
31
59
  } | {
32
60
  type: import("@metamask/snaps-sdk").NodeType.Spinner;
33
61
  } | {
@@ -70,6 +98,13 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
70
98
  type: import("@metamask/snaps-sdk").NodeType.Form;
71
99
  name: string;
72
100
  children: ({
101
+ /**
102
+ * Validate the createInterface method `params` and returns them cast to the correct
103
+ * type. Throws if validation fails.
104
+ *
105
+ * @param params - The unvalidated params object from the method request.
106
+ * @returns The validated createInterface method parameter object.
107
+ */
73
108
  type: import("@metamask/snaps-sdk").NodeType.Input;
74
109
  name: string;
75
110
  value?: string | undefined;
@@ -116,13 +151,7 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
116
151
  type: import("@metamask/snaps-sdk").NodeType.Heading;
117
152
  } | {
118
153
  value: string;
119
- type: import("@metamask/snaps-sdk").NodeType.Image; /**
120
- * Validate the createInterface method `params` and returns them cast to the correct
121
- * type. Throws if validation fails.
122
- *
123
- * @param params - The unvalidated params object from the method request.
124
- * @returns The validated createInterface method parameter object.
125
- */
154
+ type: import("@metamask/snaps-sdk").NodeType.Image;
126
155
  } | {
127
156
  type: import("@metamask/snaps-sdk").NodeType.Spinner;
128
157
  } | {
@@ -165,6 +194,13 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
165
194
  type: import("@metamask/snaps-sdk").NodeType.Form;
166
195
  name: string;
167
196
  children: ({
197
+ /**
198
+ * Validate the createInterface method `params` and returns them cast to the correct
199
+ * type. Throws if validation fails.
200
+ *
201
+ * @param params - The unvalidated params object from the method request.
202
+ * @returns The validated createInterface method parameter object.
203
+ */
168
204
  type: import("@metamask/snaps-sdk").NodeType.Input;
169
205
  name: string;
170
206
  value?: string | undefined;
@@ -201,5 +237,20 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
201
237
  context: import("@metamask/superstruct").Struct<Record<string, import("@metamask/snaps-sdk").Json> | undefined, null>;
202
238
  }>;
203
239
  export type CreateInterfaceParameters = InferMatching<typeof CreateInterfaceParametersStruct, CreateInterfaceParams>;
240
+ /**
241
+ * The `snap_createInterface` method implementation.
242
+ *
243
+ * @param req - The JSON-RPC request object.
244
+ * @param res - The JSON-RPC response object.
245
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
246
+ * function.
247
+ * @param end - The `json-rpc-engine` "end" callback.
248
+ * @param hooks - The RPC method hooks.
249
+ * @param hooks.hasPermission - The function to check if the Snap has a given
250
+ * permission.
251
+ * @param hooks.createInterface - The function to create the interface.
252
+ * @returns Nothing.
253
+ */
254
+ declare function getCreateInterfaceImplementation(req: JsonRpcRequest<CreateInterfaceParameters>, res: PendingJsonRpcResponse<CreateInterfaceResult>, _next: unknown, end: JsonRpcEngineEndCallback, { hasPermission, createInterface }: CreateInterfaceMethodHooks): void;
204
255
  export {};
205
256
  //# sourceMappingURL=createInterface.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createInterface.d.mts","sourceRoot":"","sources":["../../src/permitted/createInterface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EAErB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACZ,4BAA4B;AAK7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAU3D,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;OAGG;IACH,eAAe,EAAE,CACf,EAAE,EAAE,kBAAkB,EACtB,OAAO,CAAC,EAAE,gBAAgB,EAC1B,WAAW,CAAC,EAAE,WAAW,KACtB,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,sBAAsB,CACzD,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,CAKtB,CAAC;AAEF,QAAA,MAAM,+BAA+B;;;;;;;;;;;;4DA4CrC;;;;;;WAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4DANH;;;;;;WAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA/CD,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,aAAa,CACnD,OAAO,+BAA+B,EACtC,qBAAqB,CACtB,CAAC"}
1
+ {"version":3,"file":"createInterface.d.mts","sourceRoot":"","sources":["../../src/permitted/createInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,kCAAkC;AAG1E,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACZ,4BAA4B;AAK7B,OAAO,EAAE,KAAK,aAAa,EAAE,8BAA8B;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAiB;AAUlD,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;OAGG;IACH,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IAEnD;;;;;OAKG;IACH,eAAe,EAAE,CACf,EAAE,EAAE,kBAAkB,EACtB,OAAO,CAAC,EAAE,gBAAgB,EAC1B,WAAW,CAAC,EAAE,WAAW,KACtB,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,sBAAsB;;;;CAQlC,CAAC;AAEF,QAAA,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAsDrC;;;;;;eAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YANH;;;;;;eAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAzDD,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,aAAa,CACnD,OAAO,+BAA+B,EACtC,qBAAqB,CACtB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,iBAAS,gCAAgC,CACvC,GAAG,EAAE,cAAc,CAAC,yBAAyB,CAAC,EAC9C,GAAG,EAAE,sBAAsB,CAAC,qBAAqB,CAAC,EAClD,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,wBAAwB,EAC7B,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,0BAA0B,GAC7D,IAAI,CAsBN"}
@@ -1,11 +1,35 @@
1
- import { rpcErrors } from "@metamask/rpc-errors";
1
+ import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
2
2
  import { ComponentOrElementStruct, InterfaceContextStruct } from "@metamask/snaps-sdk";
3
3
  import { StructError, create, object, optional } from "@metamask/superstruct";
4
+ import { UI_PERMISSIONS } from "../utils.mjs";
5
+ const methodName = 'snap_createInterface';
4
6
  const hookNames = {
7
+ hasPermission: true,
5
8
  createInterface: true,
6
9
  };
10
+ /**
11
+ * Create the interactive interface for use in the
12
+ * [interactive UI](https://docs.metamask.io/snaps/features/custom-ui/interactive-ui/).
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * import { Box, Heading, Text } from '@metamask/snaps-sdk/jsx';
17
+ *
18
+ * const interfaceId = snap.request({
19
+ * method: 'snap_createInterface',
20
+ * params: {
21
+ * ui: (
22
+ * <Box>
23
+ * <Heading>Example Interface</Heading>
24
+ * <Text>This is an example interface created by "snap_createInterface".</Text>
25
+ * </Box>
26
+ * ),
27
+ * },
28
+ * });
29
+ * ```
30
+ */
7
31
  export const createInterfaceHandler = {
8
- methodNames: ['snap_createInterface'],
32
+ methodNames: [methodName],
9
33
  implementation: getCreateInterfaceImplementation,
10
34
  hookNames,
11
35
  };
@@ -22,10 +46,17 @@ const CreateInterfaceParametersStruct = object({
22
46
  * function.
23
47
  * @param end - The `json-rpc-engine` "end" callback.
24
48
  * @param hooks - The RPC method hooks.
49
+ * @param hooks.hasPermission - The function to check if the Snap has a given
50
+ * permission.
25
51
  * @param hooks.createInterface - The function to create the interface.
26
52
  * @returns Nothing.
27
53
  */
28
- function getCreateInterfaceImplementation(req, res, _next, end, { createInterface }) {
54
+ function getCreateInterfaceImplementation(req, res, _next, end, { hasPermission, createInterface }) {
55
+ if (!UI_PERMISSIONS.some(hasPermission)) {
56
+ return end(providerErrors.unauthorized({
57
+ message: `This method can only be used if the Snap has one of the following permissions: ${UI_PERMISSIONS.join(', ')}.`,
58
+ }));
59
+ }
29
60
  const { params } = req;
30
61
  try {
31
62
  const validatedParams = getValidatedParams(params);
@@ -1 +1 @@
1
- {"version":3,"file":"createInterface.mjs","sourceRoot":"","sources":["../../src/permitted/createInterface.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AASjD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACvB,4BAA4B;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,8BAA8B;AAK9E,MAAM,SAAS,GAAkD;IAC/D,eAAe,EAAE,IAAI;CACtB,CAAC;AAcF,MAAM,CAAC,MAAM,sBAAsB,GAI/B;IACF,WAAW,EAAE,CAAC,sBAAsB,CAAC;IACrC,cAAc,EAAE,gCAAgC;IAChD,SAAS;CACV,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,GAA8C,EAC9C,GAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,EAAE,eAAe,EAA8B;IAE/C,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 { 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';\n\nconst hookNames: MethodHooksObject<CreateInterfaceMethodHooks> = {\n createInterface: true,\n};\n\nexport type CreateInterfaceMethodHooks = {\n /**\n * @param ui - The UI components.\n * @returns The unique identifier of the interface.\n */\n createInterface: (\n ui: ComponentOrElement,\n context?: InterfaceContext,\n contentType?: ContentType,\n ) => string;\n};\n\nexport const createInterfaceHandler: PermittedHandlerExport<\n CreateInterfaceMethodHooks,\n CreateInterfaceParameters,\n CreateInterfaceResult\n> = {\n methodNames: ['snap_createInterface'],\n implementation: getCreateInterfaceImplementation,\n hookNames,\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.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 { createInterface }: CreateInterfaceMethodHooks,\n): void {\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":"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"]}
@@ -3,6 +3,7 @@ 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';
6
7
  const hookNames = {
7
8
  endTrace: true,
8
9
  getSnap: true,
@@ -13,10 +14,13 @@ const EndTraceParametersStruct = (0, superstruct_1.object)({
13
14
  timestamp: (0, superstruct_1.exactOptional)((0, superstruct_1.number)()),
14
15
  });
15
16
  /**
16
- * Handler for the `snap_endTrace` method.
17
+ * End a performance trace in Sentry. This method is only available to
18
+ * preinstalled Snaps.
19
+ *
20
+ * @internal
17
21
  */
18
22
  exports.endTraceHandler = {
19
- methodNames: ['snap_endTrace'],
23
+ methodNames: [methodName],
20
24
  implementation: getEndTraceImplementation,
21
25
  hookNames,
22
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"endTrace.cjs","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAQjD,uDAO+B;AAK/B,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;;GAEG;AACU,QAAA,eAAe,GAIxB;IACF,WAAW,EAAE,CAAC,eAAe,CAAC;IAC9B,cAAc,EAAE,yBAAyB;IACzC,SAAS;CACV,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 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 * Handler for the `snap_endTrace` method.\n */\nexport const endTraceHandler: PermittedHandlerExport<\n EndTraceMethodHooks,\n EndTraceParameters,\n EndTraceResult\n> = {\n methodNames: ['snap_endTrace'],\n implementation: getEndTraceImplementation,\n hookNames,\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":";;;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,6 +1,8 @@
1
- import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
- import type { EndTraceParams, EndTraceResult, EndTraceRequest } from "@metamask/snaps-sdk";
1
+ import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
+ import type { JsonRpcRequest, EndTraceParams, EndTraceRequest } from "@metamask/snaps-sdk";
3
3
  import type { InferMatching, Snap } from "@metamask/snaps-utils";
4
+ import type { PendingJsonRpcResponse } from "@metamask/utils";
5
+ import type { MethodHooksObject } from "../utils.cjs";
4
6
  export type EndTraceMethodHooks = {
5
7
  /**
6
8
  * End a performance trace in Sentry.
@@ -27,8 +29,30 @@ declare const EndTraceParametersStruct: import("@metamask/superstruct").Struct<{
27
29
  }>;
28
30
  export type EndTraceParameters = InferMatching<typeof EndTraceParametersStruct, EndTraceParams>;
29
31
  /**
30
- * Handler for the `snap_endTrace` method.
32
+ * End a performance trace in Sentry. This method is only available to
33
+ * preinstalled Snaps.
34
+ *
35
+ * @internal
31
36
  */
32
- export declare const endTraceHandler: PermittedHandlerExport<EndTraceMethodHooks, EndTraceParameters, EndTraceResult>;
37
+ export declare const endTraceHandler: {
38
+ methodNames: ["snap_endTrace"];
39
+ implementation: typeof getEndTraceImplementation;
40
+ hookNames: MethodHooksObject<EndTraceMethodHooks>;
41
+ };
42
+ /**
43
+ * The `snap_endTrace` method implementation. This method is used to end a
44
+ * performance trace in Sentry. It is only available to preinstalled Snaps.
45
+ *
46
+ * @param request - The JSON-RPC request object.
47
+ * @param response - The JSON-RPC response object.
48
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
49
+ * function.
50
+ * @param end - The `json-rpc-engine` "end" callback.
51
+ * @param hooks - The RPC method hooks.
52
+ * @param hooks.endTrace - The hook function to end a performance trace.
53
+ * @param hooks.getSnap - The hook function to get Snap metadata.
54
+ * @returns Nothing.
55
+ */
56
+ declare function getEndTraceImplementation(request: JsonRpcRequest<EndTraceParameters>, response: PendingJsonRpcResponse, _next: unknown, end: JsonRpcEngineEndCallback, { endTrace, getSnap }: EndTraceMethodHooks): void;
33
57
  export {};
34
58
  //# sourceMappingURL=endTrace.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endTrace.d.cts","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,cAAc,EACd,cAAc,EACd,eAAe,EAChB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AAkBjE,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;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,sBAAsB,CAClD,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,CAKf,CAAC"}
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,6 +1,8 @@
1
- import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
- import type { EndTraceParams, EndTraceResult, EndTraceRequest } from "@metamask/snaps-sdk";
1
+ import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
+ import type { JsonRpcRequest, EndTraceParams, EndTraceRequest } from "@metamask/snaps-sdk";
3
3
  import type { InferMatching, Snap } from "@metamask/snaps-utils";
4
+ import type { PendingJsonRpcResponse } from "@metamask/utils";
5
+ import type { MethodHooksObject } from "../utils.mjs";
4
6
  export type EndTraceMethodHooks = {
5
7
  /**
6
8
  * End a performance trace in Sentry.
@@ -27,8 +29,30 @@ declare const EndTraceParametersStruct: import("@metamask/superstruct").Struct<{
27
29
  }>;
28
30
  export type EndTraceParameters = InferMatching<typeof EndTraceParametersStruct, EndTraceParams>;
29
31
  /**
30
- * Handler for the `snap_endTrace` method.
32
+ * End a performance trace in Sentry. This method is only available to
33
+ * preinstalled Snaps.
34
+ *
35
+ * @internal
31
36
  */
32
- export declare const endTraceHandler: PermittedHandlerExport<EndTraceMethodHooks, EndTraceParameters, EndTraceResult>;
37
+ export declare const endTraceHandler: {
38
+ methodNames: ["snap_endTrace"];
39
+ implementation: typeof getEndTraceImplementation;
40
+ hookNames: MethodHooksObject<EndTraceMethodHooks>;
41
+ };
42
+ /**
43
+ * The `snap_endTrace` method implementation. This method is used to end a
44
+ * performance trace in Sentry. It is only available to preinstalled Snaps.
45
+ *
46
+ * @param request - The JSON-RPC request object.
47
+ * @param response - The JSON-RPC response object.
48
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
49
+ * function.
50
+ * @param end - The `json-rpc-engine` "end" callback.
51
+ * @param hooks - The RPC method hooks.
52
+ * @param hooks.endTrace - The hook function to end a performance trace.
53
+ * @param hooks.getSnap - The hook function to get Snap metadata.
54
+ * @returns Nothing.
55
+ */
56
+ declare function getEndTraceImplementation(request: JsonRpcRequest<EndTraceParameters>, response: PendingJsonRpcResponse, _next: unknown, end: JsonRpcEngineEndCallback, { endTrace, getSnap }: EndTraceMethodHooks): void;
33
57
  export {};
34
58
  //# sourceMappingURL=endTrace.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endTrace.d.mts","sourceRoot":"","sources":["../../src/permitted/endTrace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,cAAc,EACd,cAAc,EACd,eAAe,EAChB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AAkBjE,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;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,sBAAsB,CAClD,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,CAKf,CAAC"}
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,5 +1,6 @@
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';
3
4
  const hookNames = {
4
5
  endTrace: true,
5
6
  getSnap: true,
@@ -10,10 +11,13 @@ const EndTraceParametersStruct = object({
10
11
  timestamp: exactOptional(number()),
11
12
  });
12
13
  /**
13
- * Handler for the `snap_endTrace` method.
14
+ * End a performance trace in Sentry. This method is only available to
15
+ * preinstalled Snaps.
16
+ *
17
+ * @internal
14
18
  */
15
19
  export const endTraceHandler = {
16
- methodNames: ['snap_endTrace'],
20
+ methodNames: [methodName],
17
21
  implementation: getEndTraceImplementation,
18
22
  hookNames,
19
23
  };
@@ -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,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;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAIxB;IACF,WAAW,EAAE,CAAC,eAAe,CAAC;IAC9B,cAAc,EAAE,yBAAyB;IACzC,SAAS;CACV,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 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 * Handler for the `snap_endTrace` method.\n */\nexport const endTraceHandler: PermittedHandlerExport<\n EndTraceMethodHooks,\n EndTraceParameters,\n EndTraceResult\n> = {\n methodNames: ['snap_endTrace'],\n implementation: getEndTraceImplementation,\n hookNames,\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":"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"]}
@@ -2,15 +2,18 @@
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';
5
6
  const hookNames = {
6
7
  getAllSnaps: true,
7
8
  };
8
9
  /**
9
10
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
10
11
  * called from `https://snaps.metamask.io`.
12
+ *
13
+ * @internal
11
14
  */
12
15
  exports.getAllSnapsHandler = {
13
- methodNames: ['wallet_getAllSnaps'],
16
+ methodNames: [methodName],
14
17
  implementation: getAllSnapsImplementation,
15
18
  hookNames,
16
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.cjs","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAUjD,MAAM,SAAS,GAAwC;IACrD,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;;GAGG;AACU,QAAA,kBAAkB,GAI3B;IACF,WAAW,EAAE,CAAC,oBAAoB,CAAC;IACnC,cAAc,EAAE,yBAAyB;IACzC,SAAS;CACV,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 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 */\nexport const getAllSnapsHandler: PermittedHandlerExport<\n GetAllSnapsHooks,\n JsonRpcParams,\n GetSnapsResult\n> = {\n methodNames: ['wallet_getAllSnaps'],\n implementation: getAllSnapsImplementation,\n hookNames,\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":";;;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,15 +1,37 @@
1
- import type { PermittedHandlerExport } from "@metamask/permission-controller";
1
+ import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
2
  import type { GetSnapsResult } from "@metamask/snaps-sdk";
3
- import type { JsonRpcParams } from "@metamask/utils";
3
+ import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
4
+ import type { MethodHooksObject } from "../utils.cjs";
4
5
  /**
5
6
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
6
7
  * called from `https://snaps.metamask.io`.
8
+ *
9
+ * @internal
7
10
  */
8
- export declare const getAllSnapsHandler: PermittedHandlerExport<GetAllSnapsHooks, JsonRpcParams, GetSnapsResult>;
11
+ export declare const getAllSnapsHandler: {
12
+ methodNames: ["wallet_getAllSnaps"];
13
+ implementation: typeof getAllSnapsImplementation;
14
+ hookNames: MethodHooksObject<GetAllSnapsHooks>;
15
+ };
9
16
  export type GetAllSnapsHooks = {
10
17
  /**
11
18
  * @returns All installed Snaps.
12
19
  */
13
20
  getAllSnaps: () => Promise<GetSnapsResult>;
14
21
  };
22
+ /**
23
+ * The `wallet_getAllSnaps` method implementation.
24
+ * Fetches all installed snaps and adds them to the JSON-RPC response.
25
+ *
26
+ * @param request - The JSON-RPC request object.
27
+ * @param response - The JSON-RPC response object.
28
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
29
+ * function.
30
+ * @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.
33
+ * @returns Nothing.
34
+ */
35
+ declare function getAllSnapsImplementation(request: JsonRpcRequest, response: PendingJsonRpcResponse<GetSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getAllSnaps }: GetAllSnapsHooks): Promise<void>;
36
+ export {};
15
37
  //# sourceMappingURL=getAllSnaps.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.d.cts","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B;AAC1D,OAAO,KAAK,EACV,aAAa,EAGd,wBAAwB;AAQzB;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,sBAAsB,CACrD,gBAAgB,EAChB,aAAa,EACb,cAAc,CAKf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5C,CAAC"}
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,15 +1,37 @@
1
- import type { PermittedHandlerExport } from "@metamask/permission-controller";
1
+ import type { JsonRpcEngineEndCallback } from "@metamask/json-rpc-engine";
2
2
  import type { GetSnapsResult } from "@metamask/snaps-sdk";
3
- import type { JsonRpcParams } from "@metamask/utils";
3
+ import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
4
+ import type { MethodHooksObject } from "../utils.mjs";
4
5
  /**
5
6
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
6
7
  * called from `https://snaps.metamask.io`.
8
+ *
9
+ * @internal
7
10
  */
8
- export declare const getAllSnapsHandler: PermittedHandlerExport<GetAllSnapsHooks, JsonRpcParams, GetSnapsResult>;
11
+ export declare const getAllSnapsHandler: {
12
+ methodNames: ["wallet_getAllSnaps"];
13
+ implementation: typeof getAllSnapsImplementation;
14
+ hookNames: MethodHooksObject<GetAllSnapsHooks>;
15
+ };
9
16
  export type GetAllSnapsHooks = {
10
17
  /**
11
18
  * @returns All installed Snaps.
12
19
  */
13
20
  getAllSnaps: () => Promise<GetSnapsResult>;
14
21
  };
22
+ /**
23
+ * The `wallet_getAllSnaps` method implementation.
24
+ * Fetches all installed snaps and adds them to the JSON-RPC response.
25
+ *
26
+ * @param request - The JSON-RPC request object.
27
+ * @param response - The JSON-RPC response object.
28
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
29
+ * function.
30
+ * @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.
33
+ * @returns Nothing.
34
+ */
35
+ declare function getAllSnapsImplementation(request: JsonRpcRequest, response: PendingJsonRpcResponse<GetSnapsResult>, _next: unknown, end: JsonRpcEngineEndCallback, { getAllSnaps }: GetAllSnapsHooks): Promise<void>;
36
+ export {};
15
37
  //# sourceMappingURL=getAllSnaps.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.d.mts","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B;AAC1D,OAAO,KAAK,EACV,aAAa,EAGd,wBAAwB;AAQzB;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,sBAAsB,CACrD,gBAAgB,EAChB,aAAa,EACb,cAAc,CAKf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5C,CAAC"}
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,13 +1,16 @@
1
1
  import { rpcErrors } from "@metamask/rpc-errors";
2
+ const methodName = 'wallet_getAllSnaps';
2
3
  const hookNames = {
3
4
  getAllSnaps: true,
4
5
  };
5
6
  /**
6
7
  * `wallet_getAllSnaps` gets all installed Snaps. Currently, this can only be
7
8
  * called from `https://snaps.metamask.io`.
9
+ *
10
+ * @internal
8
11
  */
9
12
  export const getAllSnapsHandler = {
10
- methodNames: ['wallet_getAllSnaps'],
13
+ methodNames: [methodName],
11
14
  implementation: getAllSnapsImplementation,
12
15
  hookNames,
13
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSnaps.mjs","sourceRoot":"","sources":["../../src/permitted/getAllSnaps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAUjD,MAAM,SAAS,GAAwC;IACrD,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAI3B;IACF,WAAW,EAAE,CAAC,oBAAoB,CAAC;IACnC,cAAc,EAAE,yBAAyB;IACzC,SAAS;CACV,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 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 */\nexport const getAllSnapsHandler: PermittedHandlerExport<\n GetAllSnapsHooks,\n JsonRpcParams,\n GetSnapsResult\n> = {\n methodNames: ['wallet_getAllSnaps'],\n implementation: getAllSnapsImplementation,\n hookNames,\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":"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"]}