@metamask/snaps-rpc-methods 6.0.0 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/chunk-23XDKQW2.mjs +73 -0
  3. package/dist/chunk-23XDKQW2.mjs.map +1 -0
  4. package/dist/chunk-2KTJCF3C.js +68 -0
  5. package/dist/chunk-2KTJCF3C.js.map +1 -0
  6. package/dist/chunk-3DHVA2FY.js +21 -0
  7. package/dist/chunk-3DHVA2FY.js.map +1 -0
  8. package/dist/chunk-3LPBU737.js +43 -0
  9. package/dist/chunk-3LPBU737.js.map +1 -0
  10. package/dist/chunk-3S7DJI4I.mjs +49 -0
  11. package/dist/chunk-3S7DJI4I.mjs.map +1 -0
  12. package/dist/chunk-3UAWEHMF.js +18 -0
  13. package/dist/chunk-3UAWEHMF.js.map +1 -0
  14. package/dist/chunk-4D2B2UQ6.mjs +23 -0
  15. package/dist/chunk-4D2B2UQ6.mjs.map +1 -0
  16. package/dist/chunk-4LSOS7SM.js +23 -0
  17. package/dist/chunk-4LSOS7SM.js.map +1 -0
  18. package/dist/chunk-4SQWLI2S.mjs +151 -0
  19. package/dist/chunk-4SQWLI2S.mjs.map +1 -0
  20. package/dist/chunk-4W7U4OH6.js +42 -0
  21. package/dist/chunk-4W7U4OH6.js.map +1 -0
  22. package/dist/chunk-62URQ5VS.mjs +18 -0
  23. package/dist/chunk-62URQ5VS.mjs.map +1 -0
  24. package/dist/chunk-6TKD32TS.js +78 -0
  25. package/dist/chunk-6TKD32TS.js.map +1 -0
  26. package/dist/chunk-6UY23OOZ.js +39 -0
  27. package/dist/chunk-6UY23OOZ.js.map +1 -0
  28. package/dist/chunk-6WUIFFMQ.mjs +78 -0
  29. package/dist/chunk-6WUIFFMQ.mjs.map +1 -0
  30. package/dist/chunk-7NBRKDKJ.mjs +188 -0
  31. package/dist/chunk-7NBRKDKJ.mjs.map +1 -0
  32. package/dist/chunk-7OMVZR5X.mjs +39 -0
  33. package/dist/chunk-7OMVZR5X.mjs.map +1 -0
  34. package/dist/chunk-7TVJV425.js +1 -0
  35. package/dist/chunk-7TVJV425.js.map +1 -0
  36. package/dist/chunk-ADXH5C3U.mjs +119 -0
  37. package/dist/chunk-ADXH5C3U.mjs.map +1 -0
  38. package/dist/chunk-AKRFLGOS.mjs +59 -0
  39. package/dist/chunk-AKRFLGOS.mjs.map +1 -0
  40. package/dist/chunk-AOWUGDER.js +78 -0
  41. package/dist/chunk-AOWUGDER.js.map +1 -0
  42. package/dist/chunk-AWQ6HTAL.mjs +75 -0
  43. package/dist/chunk-AWQ6HTAL.mjs.map +1 -0
  44. package/dist/chunk-AYJK7MSH.js +43 -0
  45. package/dist/chunk-AYJK7MSH.js.map +1 -0
  46. package/dist/chunk-B3NIHNXW.js +23 -0
  47. package/dist/{cjs/endowments/ethereum-provider.js.map → chunk-B3NIHNXW.js.map} +1 -1
  48. package/dist/chunk-C6E6DI4I.mjs +115 -0
  49. package/dist/chunk-C6E6DI4I.mjs.map +1 -0
  50. package/dist/chunk-CD4OUHO5.mjs +20 -0
  51. package/dist/chunk-CD4OUHO5.mjs.map +1 -0
  52. package/dist/chunk-CH5O2YCX.mjs +18 -0
  53. package/dist/chunk-CH5O2YCX.mjs.map +1 -0
  54. package/dist/chunk-CVK2TYJX.mjs +54 -0
  55. package/dist/chunk-CVK2TYJX.mjs.map +1 -0
  56. package/dist/chunk-D6MUXDVI.js +51 -0
  57. package/dist/chunk-D6MUXDVI.js.map +1 -0
  58. package/dist/chunk-E6WUMFQT.mjs +54 -0
  59. package/dist/chunk-E6WUMFQT.mjs.map +1 -0
  60. package/dist/chunk-EEVEVBK6.mjs +78 -0
  61. package/dist/chunk-EEVEVBK6.mjs.map +1 -0
  62. package/dist/chunk-EKXDFYIX.mjs +68 -0
  63. package/dist/chunk-EKXDFYIX.mjs.map +1 -0
  64. package/dist/chunk-FBOZCV3C.js +59 -0
  65. package/dist/chunk-FBOZCV3C.js.map +1 -0
  66. package/dist/chunk-FCVWU5XH.js +73 -0
  67. package/dist/chunk-FCVWU5XH.js.map +1 -0
  68. package/dist/chunk-FFHVA6PP.js +82 -0
  69. package/dist/chunk-FFHVA6PP.js.map +1 -0
  70. package/dist/chunk-FMDV3RFT.js +21 -0
  71. package/dist/chunk-FMDV3RFT.js.map +1 -0
  72. package/dist/chunk-GP5KW5FU.js +45 -0
  73. package/dist/chunk-GP5KW5FU.js.map +1 -0
  74. package/dist/chunk-GYZV5UBD.js +151 -0
  75. package/dist/chunk-GYZV5UBD.js.map +1 -0
  76. package/dist/chunk-I6FU5MGE.mjs +47 -0
  77. package/dist/chunk-I6FU5MGE.mjs.map +1 -0
  78. package/dist/chunk-IBV23QOX.mjs +67 -0
  79. package/dist/chunk-IBV23QOX.mjs.map +1 -0
  80. package/dist/chunk-IDZGMGIB.js +45 -0
  81. package/dist/chunk-IDZGMGIB.js.map +1 -0
  82. package/dist/chunk-IEUCBULU.js +119 -0
  83. package/dist/chunk-IEUCBULU.js.map +1 -0
  84. package/dist/chunk-IZYMBIBD.mjs +32 -0
  85. package/dist/chunk-IZYMBIBD.mjs.map +1 -0
  86. package/dist/chunk-JQ456NCC.mjs +51 -0
  87. package/dist/chunk-JQ456NCC.mjs.map +1 -0
  88. package/dist/chunk-JRSPKOFG.js +115 -0
  89. package/dist/chunk-JRSPKOFG.js.map +1 -0
  90. package/dist/chunk-JWDQUKKU.mjs +80 -0
  91. package/dist/chunk-JWDQUKKU.mjs.map +1 -0
  92. package/dist/chunk-KO4MKRYZ.js +188 -0
  93. package/dist/chunk-KO4MKRYZ.js.map +1 -0
  94. package/dist/chunk-KSTF5JYB.mjs +23 -0
  95. package/dist/chunk-KSTF5JYB.mjs.map +1 -0
  96. package/dist/chunk-LGUJMQC7.js +78 -0
  97. package/dist/{cjs/restricted/getBip32PublicKey.js.map → chunk-LGUJMQC7.js.map} +1 -1
  98. package/dist/chunk-LIWV3FMY.js +69 -0
  99. package/dist/chunk-LIWV3FMY.js.map +1 -0
  100. package/dist/chunk-LR7UR4YU.mjs +52 -0
  101. package/dist/chunk-LR7UR4YU.mjs.map +1 -0
  102. package/dist/chunk-LVTN25J2.js +49 -0
  103. package/dist/chunk-LVTN25J2.js.map +1 -0
  104. package/dist/chunk-MVG4B2HM.mjs +21 -0
  105. package/dist/chunk-MVG4B2HM.mjs.map +1 -0
  106. package/dist/chunk-MXCJWR45.mjs +45 -0
  107. package/dist/chunk-MXCJWR45.mjs.map +1 -0
  108. package/dist/chunk-MXPVC2XP.mjs +105 -0
  109. package/dist/chunk-MXPVC2XP.mjs.map +1 -0
  110. package/dist/chunk-NP3KGMVC.js +47 -0
  111. package/dist/chunk-NP3KGMVC.js.map +1 -0
  112. package/dist/chunk-NU4NAAFG.js +1 -0
  113. package/dist/chunk-NU4NAAFG.js.map +1 -0
  114. package/dist/chunk-NWT2EXFD.js +18 -0
  115. package/dist/chunk-NWT2EXFD.js.map +1 -0
  116. package/dist/chunk-O66NZFSD.mjs +23 -0
  117. package/dist/chunk-O66NZFSD.mjs.map +1 -0
  118. package/dist/chunk-OQOTJFFV.js +74 -0
  119. package/dist/chunk-OQOTJFFV.js.map +1 -0
  120. package/dist/chunk-P74WXDY4.js +54 -0
  121. package/dist/chunk-P74WXDY4.js.map +1 -0
  122. package/dist/chunk-PCB6QOHL.mjs +21 -0
  123. package/dist/chunk-PCB6QOHL.mjs.map +1 -0
  124. package/dist/chunk-PS6OEQXL.js +105 -0
  125. package/dist/chunk-PS6OEQXL.js.map +1 -0
  126. package/dist/chunk-PWUEAR4H.js +70 -0
  127. package/dist/chunk-PWUEAR4H.js.map +1 -0
  128. package/dist/chunk-Q27K2I6Z.js +23 -0
  129. package/dist/{cjs/endowments/web-assembly.js.map → chunk-Q27K2I6Z.js.map} +1 -1
  130. package/dist/chunk-Q5W3YGEB.js +67 -0
  131. package/dist/chunk-Q5W3YGEB.js.map +1 -0
  132. package/dist/chunk-QDZAWH6F.js +80 -0
  133. package/dist/chunk-QDZAWH6F.js.map +1 -0
  134. package/dist/chunk-QMULJEYN.js +35 -0
  135. package/dist/chunk-QMULJEYN.js.map +1 -0
  136. package/dist/chunk-S7AR3ROH.js +57 -0
  137. package/dist/chunk-S7AR3ROH.js.map +1 -0
  138. package/dist/chunk-SGQXD5K7.mjs +83 -0
  139. package/dist/chunk-SGQXD5K7.mjs.map +1 -0
  140. package/dist/chunk-SYUGPLEP.js +32 -0
  141. package/dist/chunk-SYUGPLEP.js.map +1 -0
  142. package/dist/chunk-TEXEQGNZ.js +75 -0
  143. package/dist/chunk-TEXEQGNZ.js.map +1 -0
  144. package/dist/chunk-TG63GBK3.mjs +1 -0
  145. package/dist/chunk-TG63GBK3.mjs.map +1 -0
  146. package/dist/chunk-TJYMYQAB.mjs +42 -0
  147. package/dist/chunk-TJYMYQAB.mjs.map +1 -0
  148. package/dist/chunk-TKXU7ZXP.mjs +78 -0
  149. package/dist/chunk-TKXU7ZXP.mjs.map +1 -0
  150. package/dist/chunk-TNENASGX.mjs +1 -0
  151. package/dist/chunk-TNENASGX.mjs.map +1 -0
  152. package/dist/chunk-TNRH2LRU.mjs +57 -0
  153. package/dist/chunk-TNRH2LRU.mjs.map +1 -0
  154. package/dist/chunk-TOYWHUAS.mjs +70 -0
  155. package/dist/chunk-TOYWHUAS.mjs.map +1 -0
  156. package/dist/chunk-TT4DP2YW.mjs +35 -0
  157. package/dist/chunk-TT4DP2YW.mjs.map +1 -0
  158. package/dist/chunk-UB3733UY.mjs +23 -0
  159. package/dist/chunk-UB3733UY.mjs.map +1 -0
  160. package/dist/chunk-UBPHGXCO.mjs +74 -0
  161. package/dist/chunk-UBPHGXCO.mjs.map +1 -0
  162. package/dist/chunk-VCGZNL35.mjs +69 -0
  163. package/dist/chunk-VCGZNL35.mjs.map +1 -0
  164. package/dist/chunk-VHY3NATP.js +67 -0
  165. package/dist/chunk-VHY3NATP.js.map +1 -0
  166. package/dist/chunk-VUA6ICJO.js +52 -0
  167. package/dist/chunk-VUA6ICJO.js.map +1 -0
  168. package/dist/chunk-VVBTXSID.mjs +82 -0
  169. package/dist/chunk-VVBTXSID.mjs.map +1 -0
  170. package/dist/chunk-WFAY5FPP.mjs +67 -0
  171. package/dist/chunk-WFAY5FPP.mjs.map +1 -0
  172. package/dist/chunk-WLDEPJGG.mjs +43 -0
  173. package/dist/chunk-WLDEPJGG.mjs.map +1 -0
  174. package/dist/chunk-Y4LNTDZ2.mjs +43 -0
  175. package/dist/chunk-Y4LNTDZ2.mjs.map +1 -0
  176. package/dist/chunk-YG7W4CDT.js +83 -0
  177. package/dist/{cjs/utils.js.map → chunk-YG7W4CDT.js.map} +1 -1
  178. package/dist/chunk-YGKFOOWI.js +20 -0
  179. package/dist/chunk-YGKFOOWI.js.map +1 -0
  180. package/dist/chunk-YOHE52XB.js +23 -0
  181. package/dist/chunk-YOHE52XB.js.map +1 -0
  182. package/dist/chunk-YS6TYXCP.mjs +45 -0
  183. package/dist/chunk-YS6TYXCP.mjs.map +1 -0
  184. package/dist/chunk-ZPK4THX4.js +54 -0
  185. package/dist/chunk-ZPK4THX4.js.map +1 -0
  186. package/dist/endowments/caveats/generic.js +7 -0
  187. package/dist/endowments/caveats/generic.js.map +1 -0
  188. package/dist/endowments/caveats/generic.mjs +7 -0
  189. package/dist/endowments/caveats/generic.mjs.map +1 -0
  190. package/dist/endowments/caveats/index.js +18 -0
  191. package/dist/endowments/caveats/index.js.map +1 -0
  192. package/dist/endowments/caveats/index.mjs +18 -0
  193. package/dist/endowments/caveats/index.mjs.map +1 -0
  194. package/dist/endowments/caveats/requestTime.js +13 -0
  195. package/dist/endowments/caveats/requestTime.js.map +1 -0
  196. package/dist/endowments/caveats/requestTime.mjs +13 -0
  197. package/dist/endowments/caveats/requestTime.mjs.map +1 -0
  198. package/dist/endowments/cronjob.js +16 -0
  199. package/dist/endowments/cronjob.js.map +1 -0
  200. package/dist/endowments/cronjob.mjs +16 -0
  201. package/dist/endowments/cronjob.mjs.map +1 -0
  202. package/dist/endowments/enum.js +7 -0
  203. package/dist/endowments/enum.js.map +1 -0
  204. package/dist/endowments/enum.mjs +7 -0
  205. package/dist/endowments/enum.mjs.map +1 -0
  206. package/dist/endowments/ethereum-provider.js +8 -0
  207. package/dist/endowments/ethereum-provider.js.map +1 -0
  208. package/dist/endowments/ethereum-provider.mjs +8 -0
  209. package/dist/endowments/ethereum-provider.mjs.map +1 -0
  210. package/dist/endowments/home-page.js +8 -0
  211. package/dist/endowments/home-page.js.map +1 -0
  212. package/dist/endowments/home-page.mjs +8 -0
  213. package/dist/endowments/home-page.mjs.map +1 -0
  214. package/dist/endowments/index.js +54 -0
  215. package/dist/endowments/index.js.map +1 -0
  216. package/dist/endowments/index.mjs +54 -0
  217. package/dist/endowments/index.mjs.map +1 -0
  218. package/dist/endowments/keyring.js +17 -0
  219. package/dist/endowments/keyring.js.map +1 -0
  220. package/dist/endowments/keyring.mjs +17 -0
  221. package/dist/endowments/keyring.mjs.map +1 -0
  222. package/dist/endowments/lifecycle-hooks.js +8 -0
  223. package/dist/endowments/lifecycle-hooks.js.map +1 -0
  224. package/dist/endowments/lifecycle-hooks.mjs +8 -0
  225. package/dist/endowments/lifecycle-hooks.mjs.map +1 -0
  226. package/dist/endowments/name-lookup.js +19 -0
  227. package/dist/endowments/name-lookup.js.map +1 -0
  228. package/dist/endowments/name-lookup.mjs +19 -0
  229. package/dist/endowments/name-lookup.mjs.map +1 -0
  230. package/dist/endowments/network-access.js +8 -0
  231. package/dist/endowments/network-access.js.map +1 -0
  232. package/dist/endowments/network-access.mjs +8 -0
  233. package/dist/endowments/network-access.mjs.map +1 -0
  234. package/dist/endowments/rpc.js +17 -0
  235. package/dist/endowments/rpc.js.map +1 -0
  236. package/dist/endowments/rpc.mjs +17 -0
  237. package/dist/endowments/rpc.mjs.map +1 -0
  238. package/dist/endowments/signature-insight.js +17 -0
  239. package/dist/endowments/signature-insight.js.map +1 -0
  240. package/dist/endowments/signature-insight.mjs +17 -0
  241. package/dist/endowments/signature-insight.mjs.map +1 -0
  242. package/dist/endowments/transaction-insight.js +17 -0
  243. package/dist/endowments/transaction-insight.js.map +1 -0
  244. package/dist/endowments/transaction-insight.mjs +17 -0
  245. package/dist/endowments/transaction-insight.mjs.map +1 -0
  246. package/dist/endowments/web-assembly.js +8 -0
  247. package/dist/endowments/web-assembly.js.map +1 -0
  248. package/dist/endowments/web-assembly.mjs +8 -0
  249. package/dist/endowments/web-assembly.mjs.map +1 -0
  250. package/dist/index.js +118 -0
  251. package/dist/index.js.map +1 -0
  252. package/dist/index.mjs +118 -0
  253. package/dist/index.mjs.map +1 -0
  254. package/dist/permissions.js +43 -0
  255. package/dist/permissions.js.map +1 -0
  256. package/dist/permissions.mjs +43 -0
  257. package/dist/permissions.mjs.map +1 -0
  258. package/dist/permitted/createInterface.js +7 -0
  259. package/dist/permitted/createInterface.js.map +1 -0
  260. package/dist/permitted/createInterface.mjs +7 -0
  261. package/dist/permitted/createInterface.mjs.map +1 -0
  262. package/dist/permitted/getAllSnaps.js +7 -0
  263. package/dist/permitted/getAllSnaps.js.map +1 -0
  264. package/dist/permitted/getAllSnaps.mjs +7 -0
  265. package/dist/permitted/getAllSnaps.mjs.map +1 -0
  266. package/dist/permitted/getClientStatus.js +7 -0
  267. package/dist/permitted/getClientStatus.js.map +1 -0
  268. package/dist/permitted/getClientStatus.mjs +7 -0
  269. package/dist/permitted/getClientStatus.mjs.map +1 -0
  270. package/dist/permitted/getFile.js +9 -0
  271. package/dist/permitted/getFile.js.map +1 -0
  272. package/dist/permitted/getFile.mjs +9 -0
  273. package/dist/permitted/getFile.mjs.map +1 -0
  274. package/dist/permitted/getInterfaceState.js +7 -0
  275. package/dist/permitted/getInterfaceState.js.map +1 -0
  276. package/dist/permitted/getInterfaceState.mjs +7 -0
  277. package/dist/permitted/getInterfaceState.mjs.map +1 -0
  278. package/dist/permitted/getSnaps.js +7 -0
  279. package/dist/permitted/getSnaps.js.map +1 -0
  280. package/dist/permitted/getSnaps.mjs +7 -0
  281. package/dist/permitted/getSnaps.mjs.map +1 -0
  282. package/dist/permitted/handlers.js +20 -0
  283. package/dist/permitted/handlers.js.map +1 -0
  284. package/dist/permitted/handlers.mjs +20 -0
  285. package/dist/permitted/handlers.mjs.map +1 -0
  286. package/dist/permitted/index.js +26 -0
  287. package/dist/permitted/index.js.map +1 -0
  288. package/dist/permitted/index.mjs +26 -0
  289. package/dist/permitted/index.mjs.map +1 -0
  290. package/dist/permitted/invokeKeyring.js +8 -0
  291. package/dist/permitted/invokeKeyring.js.map +1 -0
  292. package/dist/permitted/invokeKeyring.mjs +8 -0
  293. package/dist/permitted/invokeKeyring.mjs.map +1 -0
  294. package/dist/permitted/invokeSnapSugar.js +11 -0
  295. package/dist/permitted/invokeSnapSugar.js.map +1 -0
  296. package/dist/permitted/invokeSnapSugar.mjs +11 -0
  297. package/dist/permitted/invokeSnapSugar.mjs.map +1 -0
  298. package/dist/permitted/middleware.js +20 -0
  299. package/dist/permitted/middleware.js.map +1 -0
  300. package/dist/permitted/middleware.mjs +20 -0
  301. package/dist/permitted/middleware.mjs.map +1 -0
  302. package/dist/permitted/requestSnaps.js +12 -0
  303. package/dist/permitted/requestSnaps.js.map +1 -0
  304. package/dist/permitted/requestSnaps.mjs +12 -0
  305. package/dist/permitted/requestSnaps.mjs.map +1 -0
  306. package/dist/permitted/updateInterface.js +7 -0
  307. package/dist/permitted/updateInterface.js.map +1 -0
  308. package/dist/permitted/updateInterface.mjs +7 -0
  309. package/dist/permitted/updateInterface.mjs.map +1 -0
  310. package/dist/restricted/caveats/index.js +17 -0
  311. package/dist/restricted/caveats/index.js.map +1 -0
  312. package/dist/restricted/caveats/index.mjs +17 -0
  313. package/dist/restricted/caveats/index.mjs.map +1 -0
  314. package/dist/restricted/caveats/permittedCoinTypes.js +13 -0
  315. package/dist/restricted/caveats/permittedCoinTypes.js.map +1 -0
  316. package/dist/restricted/caveats/permittedCoinTypes.mjs +13 -0
  317. package/dist/restricted/caveats/permittedCoinTypes.mjs.map +1 -0
  318. package/dist/restricted/caveats/permittedDerivationPaths.js +13 -0
  319. package/dist/restricted/caveats/permittedDerivationPaths.js.map +1 -0
  320. package/dist/restricted/caveats/permittedDerivationPaths.mjs +13 -0
  321. package/dist/restricted/caveats/permittedDerivationPaths.mjs.map +1 -0
  322. package/dist/restricted/caveats/snapIds.js +11 -0
  323. package/dist/restricted/caveats/snapIds.js.map +1 -0
  324. package/dist/restricted/caveats/snapIds.mjs +11 -0
  325. package/dist/restricted/caveats/snapIds.mjs.map +1 -0
  326. package/dist/restricted/dialog.js +9 -0
  327. package/dist/restricted/dialog.js.map +1 -0
  328. package/dist/restricted/dialog.mjs +9 -0
  329. package/dist/restricted/dialog.mjs.map +1 -0
  330. package/dist/restricted/getBip32Entropy.js +10 -0
  331. package/dist/restricted/getBip32Entropy.js.map +1 -0
  332. package/dist/restricted/getBip32Entropy.mjs +10 -0
  333. package/dist/restricted/getBip32Entropy.mjs.map +1 -0
  334. package/dist/restricted/getBip32PublicKey.js +12 -0
  335. package/dist/restricted/getBip32PublicKey.js.map +1 -0
  336. package/dist/restricted/getBip32PublicKey.mjs +12 -0
  337. package/dist/restricted/getBip32PublicKey.mjs.map +1 -0
  338. package/dist/restricted/getBip44Entropy.js +9 -0
  339. package/dist/restricted/getBip44Entropy.js.map +1 -0
  340. package/dist/restricted/getBip44Entropy.mjs +9 -0
  341. package/dist/restricted/getBip44Entropy.mjs.map +1 -0
  342. package/dist/restricted/getEntropy.js +10 -0
  343. package/dist/restricted/getEntropy.js.map +1 -0
  344. package/dist/restricted/getEntropy.mjs +10 -0
  345. package/dist/restricted/getEntropy.mjs.map +1 -0
  346. package/dist/restricted/getLocale.js +11 -0
  347. package/dist/restricted/getLocale.js.map +1 -0
  348. package/dist/restricted/getLocale.mjs +11 -0
  349. package/dist/restricted/getLocale.mjs.map +1 -0
  350. package/dist/restricted/index.js +33 -0
  351. package/dist/restricted/index.js.map +1 -0
  352. package/dist/restricted/index.mjs +33 -0
  353. package/dist/restricted/index.mjs.map +1 -0
  354. package/dist/restricted/invokeSnap.js +13 -0
  355. package/dist/restricted/invokeSnap.js.map +1 -0
  356. package/dist/restricted/invokeSnap.mjs +13 -0
  357. package/dist/restricted/invokeSnap.mjs.map +1 -0
  358. package/dist/restricted/manageAccounts.js +13 -0
  359. package/dist/restricted/manageAccounts.js.map +1 -0
  360. package/dist/restricted/manageAccounts.mjs +13 -0
  361. package/dist/restricted/manageAccounts.mjs.map +1 -0
  362. package/dist/restricted/manageState.js +20 -0
  363. package/dist/restricted/manageState.js.map +1 -0
  364. package/dist/restricted/manageState.mjs +20 -0
  365. package/dist/restricted/manageState.mjs.map +1 -0
  366. package/dist/restricted/notify.js +13 -0
  367. package/dist/restricted/notify.js.map +1 -0
  368. package/dist/restricted/notify.mjs +13 -0
  369. package/dist/restricted/notify.mjs.map +1 -0
  370. package/dist/tsconfig.build.tsbuildinfo +1 -0
  371. package/dist/utils.js +13 -0
  372. package/dist/utils.js.map +1 -0
  373. package/dist/utils.mjs +13 -0
  374. package/dist/utils.mjs.map +1 -0
  375. package/package.json +21 -18
  376. package/dist/cjs/endowments/caveats/generic.js +0 -40
  377. package/dist/cjs/endowments/caveats/generic.js.map +0 -1
  378. package/dist/cjs/endowments/caveats/index.js +0 -21
  379. package/dist/cjs/endowments/caveats/index.js.map +0 -1
  380. package/dist/cjs/endowments/caveats/requestTime.js +0 -99
  381. package/dist/cjs/endowments/caveats/requestTime.js.map +0 -1
  382. package/dist/cjs/endowments/cronjob.js +0 -100
  383. package/dist/cjs/endowments/cronjob.js.map +0 -1
  384. package/dist/cjs/endowments/enum.js +0 -26
  385. package/dist/cjs/endowments/enum.js.map +0 -1
  386. package/dist/cjs/endowments/ethereum-provider.js +0 -43
  387. package/dist/cjs/endowments/home-page.js +0 -37
  388. package/dist/cjs/endowments/home-page.js.map +0 -1
  389. package/dist/cjs/endowments/index.js +0 -121
  390. package/dist/cjs/endowments/index.js.map +0 -1
  391. package/dist/cjs/endowments/keyring.js +0 -104
  392. package/dist/cjs/endowments/keyring.js.map +0 -1
  393. package/dist/cjs/endowments/lifecycle-hooks.js +0 -37
  394. package/dist/cjs/endowments/lifecycle-hooks.js.map +0 -1
  395. package/dist/cjs/endowments/name-lookup.js +0 -148
  396. package/dist/cjs/endowments/name-lookup.js.map +0 -1
  397. package/dist/cjs/endowments/network-access.js +0 -44
  398. package/dist/cjs/endowments/network-access.js.map +0 -1
  399. package/dist/cjs/endowments/rpc.js +0 -103
  400. package/dist/cjs/endowments/rpc.js.map +0 -1
  401. package/dist/cjs/endowments/signature-insight.js +0 -110
  402. package/dist/cjs/endowments/signature-insight.js.map +0 -1
  403. package/dist/cjs/endowments/transaction-insight.js +0 -111
  404. package/dist/cjs/endowments/transaction-insight.js.map +0 -1
  405. package/dist/cjs/endowments/web-assembly.js +0 -42
  406. package/dist/cjs/index.js +0 -45
  407. package/dist/cjs/index.js.map +0 -1
  408. package/dist/cjs/permissions.js +0 -62
  409. package/dist/cjs/permissions.js.map +0 -1
  410. package/dist/cjs/permitted/createInterface.js +0 -68
  411. package/dist/cjs/permitted/createInterface.js.map +0 -1
  412. package/dist/cjs/permitted/getAllSnaps.js +0 -44
  413. package/dist/cjs/permitted/getAllSnaps.js.map +0 -1
  414. package/dist/cjs/permitted/getClientStatus.js +0 -40
  415. package/dist/cjs/permitted/getClientStatus.js.map +0 -1
  416. package/dist/cjs/permitted/getFile.js +0 -63
  417. package/dist/cjs/permitted/getFile.js.map +0 -1
  418. package/dist/cjs/permitted/getInterfaceState.js +0 -67
  419. package/dist/cjs/permitted/getInterfaceState.js.map +0 -1
  420. package/dist/cjs/permitted/getSnaps.js +0 -39
  421. package/dist/cjs/permitted/getSnaps.js.map +0 -1
  422. package/dist/cjs/permitted/handlers.js +0 -43
  423. package/dist/cjs/permitted/handlers.js.map +0 -1
  424. package/dist/cjs/permitted/index.js +0 -21
  425. package/dist/cjs/permitted/index.js.map +0 -1
  426. package/dist/cjs/permitted/invokeKeyring.js +0 -87
  427. package/dist/cjs/permitted/invokeKeyring.js.map +0 -1
  428. package/dist/cjs/permitted/invokeSnapSugar.js +0 -62
  429. package/dist/cjs/permitted/invokeSnapSugar.js.map +0 -1
  430. package/dist/cjs/permitted/middleware.js +0 -38
  431. package/dist/cjs/permitted/middleware.js.map +0 -1
  432. package/dist/cjs/permitted/requestSnaps.js +0 -123
  433. package/dist/cjs/permitted/requestSnaps.js.map +0 -1
  434. package/dist/cjs/permitted/updateInterface.js +0 -70
  435. package/dist/cjs/permitted/updateInterface.js.map +0 -1
  436. package/dist/cjs/restricted/caveats/index.js +0 -38
  437. package/dist/cjs/restricted/caveats/index.js.map +0 -1
  438. package/dist/cjs/restricted/caveats/permittedCoinTypes.js +0 -83
  439. package/dist/cjs/restricted/caveats/permittedCoinTypes.js.map +0 -1
  440. package/dist/cjs/restricted/caveats/permittedDerivationPaths.js +0 -67
  441. package/dist/cjs/restricted/caveats/permittedDerivationPaths.js.map +0 -1
  442. package/dist/cjs/restricted/caveats/snapIds.js +0 -59
  443. package/dist/cjs/restricted/caveats/snapIds.js.map +0 -1
  444. package/dist/cjs/restricted/dialog.js +0 -172
  445. package/dist/cjs/restricted/dialog.js.map +0 -1
  446. package/dist/cjs/restricted/getBip32Entropy.js +0 -76
  447. package/dist/cjs/restricted/getBip32Entropy.js.map +0 -1
  448. package/dist/cjs/restricted/getBip32PublicKey.js +0 -91
  449. package/dist/cjs/restricted/getBip44Entropy.js +0 -76
  450. package/dist/cjs/restricted/getBip44Entropy.js.map +0 -1
  451. package/dist/cjs/restricted/getEntropy.js +0 -76
  452. package/dist/cjs/restricted/getEntropy.js.map +0 -1
  453. package/dist/cjs/restricted/getLocale.js +0 -49
  454. package/dist/cjs/restricted/getLocale.js.map +0 -1
  455. package/dist/cjs/restricted/index.js +0 -59
  456. package/dist/cjs/restricted/index.js.map +0 -1
  457. package/dist/cjs/restricted/invokeSnap.js +0 -99
  458. package/dist/cjs/restricted/invokeSnap.js.map +0 -1
  459. package/dist/cjs/restricted/manageAccounts.js +0 -68
  460. package/dist/cjs/restricted/manageAccounts.js.map +0 -1
  461. package/dist/cjs/restricted/manageState.js +0 -208
  462. package/dist/cjs/restricted/manageState.js.map +0 -1
  463. package/dist/cjs/restricted/notify.js +0 -92
  464. package/dist/cjs/restricted/notify.js.map +0 -1
  465. package/dist/cjs/utils.js +0 -98
  466. package/dist/esm/endowments/caveats/generic.js +0 -40
  467. package/dist/esm/endowments/caveats/generic.js.map +0 -1
  468. package/dist/esm/endowments/caveats/index.js +0 -4
  469. package/dist/esm/endowments/caveats/index.js.map +0 -1
  470. package/dist/esm/endowments/caveats/requestTime.js +0 -93
  471. package/dist/esm/endowments/caveats/requestTime.js.map +0 -1
  472. package/dist/esm/endowments/cronjob.js +0 -99
  473. package/dist/esm/endowments/cronjob.js.map +0 -1
  474. package/dist/esm/endowments/enum.js +0 -16
  475. package/dist/esm/endowments/enum.js.map +0 -1
  476. package/dist/esm/endowments/ethereum-provider.js +0 -33
  477. package/dist/esm/endowments/ethereum-provider.js.map +0 -1
  478. package/dist/esm/endowments/home-page.js +0 -27
  479. package/dist/esm/endowments/home-page.js.map +0 -1
  480. package/dist/esm/endowments/index.js +0 -68
  481. package/dist/esm/endowments/index.js.map +0 -1
  482. package/dist/esm/endowments/keyring.js +0 -95
  483. package/dist/esm/endowments/keyring.js.map +0 -1
  484. package/dist/esm/endowments/lifecycle-hooks.js +0 -27
  485. package/dist/esm/endowments/lifecycle-hooks.js.map +0 -1
  486. package/dist/esm/endowments/name-lookup.js +0 -146
  487. package/dist/esm/endowments/name-lookup.js.map +0 -1
  488. package/dist/esm/endowments/network-access.js +0 -34
  489. package/dist/esm/endowments/network-access.js.map +0 -1
  490. package/dist/esm/endowments/rpc.js +0 -92
  491. package/dist/esm/endowments/rpc.js.map +0 -1
  492. package/dist/esm/endowments/signature-insight.js +0 -103
  493. package/dist/esm/endowments/signature-insight.js.map +0 -1
  494. package/dist/esm/endowments/transaction-insight.js +0 -104
  495. package/dist/esm/endowments/transaction-insight.js.map +0 -1
  496. package/dist/esm/endowments/web-assembly.js +0 -32
  497. package/dist/esm/endowments/web-assembly.js.map +0 -1
  498. package/dist/esm/index.js +0 -8
  499. package/dist/esm/index.js.map +0 -1
  500. package/dist/esm/permissions.js +0 -51
  501. package/dist/esm/permissions.js.map +0 -1
  502. package/dist/esm/permitted/createInterface.js +0 -58
  503. package/dist/esm/permitted/createInterface.js.map +0 -1
  504. package/dist/esm/permitted/getAllSnaps.js +0 -37
  505. package/dist/esm/permitted/getAllSnaps.js.map +0 -1
  506. package/dist/esm/permitted/getClientStatus.js +0 -32
  507. package/dist/esm/permitted/getClientStatus.js.map +0 -1
  508. package/dist/esm/permitted/getFile.js +0 -45
  509. package/dist/esm/permitted/getFile.js.map +0 -1
  510. package/dist/esm/permitted/getInterfaceState.js +0 -57
  511. package/dist/esm/permitted/getInterfaceState.js.map +0 -1
  512. package/dist/esm/permitted/getSnaps.js +0 -31
  513. package/dist/esm/permitted/getSnaps.js.map +0 -1
  514. package/dist/esm/permitted/handlers.js +0 -25
  515. package/dist/esm/permitted/handlers.js.map +0 -1
  516. package/dist/esm/permitted/index.js +0 -4
  517. package/dist/esm/permitted/index.js.map +0 -1
  518. package/dist/esm/permitted/invokeKeyring.js +0 -79
  519. package/dist/esm/permitted/invokeKeyring.js.map +0 -1
  520. package/dist/esm/permitted/invokeSnapSugar.js +0 -60
  521. package/dist/esm/permitted/invokeSnapSugar.js.map +0 -1
  522. package/dist/esm/permitted/middleware.js +0 -34
  523. package/dist/esm/permitted/middleware.js.map +0 -1
  524. package/dist/esm/permitted/requestSnaps.js +0 -118
  525. package/dist/esm/permitted/requestSnaps.js.map +0 -1
  526. package/dist/esm/permitted/updateInterface.js +0 -60
  527. package/dist/esm/permitted/updateInterface.js.map +0 -1
  528. package/dist/esm/restricted/caveats/index.js +0 -20
  529. package/dist/esm/restricted/caveats/index.js.map +0 -1
  530. package/dist/esm/restricted/caveats/permittedCoinTypes.js +0 -77
  531. package/dist/esm/restricted/caveats/permittedCoinTypes.js.map +0 -1
  532. package/dist/esm/restricted/caveats/permittedDerivationPaths.js +0 -64
  533. package/dist/esm/restricted/caveats/permittedDerivationPaths.js.map +0 -1
  534. package/dist/esm/restricted/caveats/snapIds.js +0 -50
  535. package/dist/esm/restricted/caveats/snapIds.js.map +0 -1
  536. package/dist/esm/restricted/dialog.js +0 -164
  537. package/dist/esm/restricted/dialog.js.map +0 -1
  538. package/dist/esm/restricted/getBip32Entropy.js +0 -67
  539. package/dist/esm/restricted/getBip32Entropy.js.map +0 -1
  540. package/dist/esm/restricted/getBip32PublicKey.js +0 -79
  541. package/dist/esm/restricted/getBip32PublicKey.js.map +0 -1
  542. package/dist/esm/restricted/getBip44Entropy.js +0 -69
  543. package/dist/esm/restricted/getBip44Entropy.js.map +0 -1
  544. package/dist/esm/restricted/getEntropy.js +0 -58
  545. package/dist/esm/restricted/getEntropy.js.map +0 -1
  546. package/dist/esm/restricted/getLocale.js +0 -42
  547. package/dist/esm/restricted/getLocale.js.map +0 -1
  548. package/dist/esm/restricted/index.js +0 -27
  549. package/dist/esm/restricted/index.js.map +0 -1
  550. package/dist/esm/restricted/invokeSnap.js +0 -89
  551. package/dist/esm/restricted/invokeSnap.js.map +0 -1
  552. package/dist/esm/restricted/manageAccounts.js +0 -60
  553. package/dist/esm/restricted/manageAccounts.js.map +0 -1
  554. package/dist/esm/restricted/manageState.js +0 -225
  555. package/dist/esm/restricted/manageState.js.map +0 -1
  556. package/dist/esm/restricted/notify.js +0 -92
  557. package/dist/esm/restricted/notify.js.map +0 -1
  558. package/dist/esm/utils.js +0 -124
  559. package/dist/esm/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/endowments/home-page.ts"],"names":[],"mappings":";AAKA,SAAS,gBAAgB,mBAAmB;AAK5C,IAAM;AAiBN,IAAM,uBAIF,CAAC,oBAA8B;AACjC,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,iBAAiB,CAAC,mBAA2C;AAAA,IAC7D,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEO,IAAM,2BAA2B,OAAO,OAAO;AAAA,EACpD,YAAY;AAAA,EACZ;AACF,CAAU","sourcesContent":["import type {\n PermissionSpecificationBuilder,\n EndowmentGetterParams,\n ValidPermissionSpecification,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport type { NonEmptyArray } from '@metamask/utils';\n\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.HomePage;\n\ntype HomePageEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: EndowmentGetterParams) => undefined;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n}>;\n\n/**\n * `endowment:page-home` returns nothing; it is intended to be used as a\n * flag by the snap controller to detect whether the snap has the capability to\n * use the snap home page feature.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the `snap-pages` endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n HomePageEndowmentSpecification\n> = (_builderOptions?: unknown) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: null,\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => undefined,\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nexport const homePageEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\n"]}
@@ -0,0 +1,45 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/permitted/updateInterface.ts
2
+ var _rpcerrors = require('@metamask/rpc-errors');
3
+ var _snapssdk = require('@metamask/snaps-sdk');
4
+ var _superstruct = require('superstruct');
5
+ var hookNames = {
6
+ updateInterface: true
7
+ };
8
+ var updateInterfaceHandler = {
9
+ methodNames: ["snap_updateInterface"],
10
+ implementation: getUpdateInterfaceImplementation,
11
+ hookNames
12
+ };
13
+ var UpdateInterfaceParametersStruct = _superstruct.object.call(void 0, {
14
+ id: _superstruct.string.call(void 0, ),
15
+ ui: _snapssdk.ComponentStruct
16
+ });
17
+ async function getUpdateInterfaceImplementation(req, res, _next, end, { updateInterface }) {
18
+ const { params } = req;
19
+ try {
20
+ const validatedParams = getValidatedParams(params);
21
+ const { id, ui } = validatedParams;
22
+ await updateInterface(id, ui);
23
+ res.result = null;
24
+ } catch (error) {
25
+ return end(error);
26
+ }
27
+ return end();
28
+ }
29
+ function getValidatedParams(params) {
30
+ try {
31
+ return _superstruct.create.call(void 0, params, UpdateInterfaceParametersStruct);
32
+ } catch (error) {
33
+ if (error instanceof _superstruct.StructError) {
34
+ throw _rpcerrors.rpcErrors.invalidParams({
35
+ message: `Invalid params: ${error.message}.`
36
+ });
37
+ }
38
+ throw _rpcerrors.rpcErrors.internal();
39
+ }
40
+ }
41
+
42
+
43
+
44
+ exports.updateInterfaceHandler = updateInterfaceHandler;
45
+ //# sourceMappingURL=chunk-GP5KW5FU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/permitted/updateInterface.ts"],"names":[],"mappings":";AAEA,SAAS,iBAAiB;AAO1B,SAAS,uBAAuB;AAGhC,SAAS,aAAa,QAAQ,QAAQ,cAAc;AAIpD,IAAM,YAA2D;AAAA,EAC/D,iBAAiB;AACnB;AAUO,IAAM,yBAIT;AAAA,EACF,aAAa,CAAC,sBAAsB;AAAA,EACpC,gBAAgB;AAAA,EAChB;AACF;AAEA,IAAM,kCAAkC,OAAO;AAAA,EAC7C,IAAI,OAAO;AAAA,EACX,IAAI;AACN,CAAC;AAmBD,eAAe,iCACb,KACA,KACA,OACA,KACA,EAAE,gBAAgB,GACH;AACf,QAAM,EAAE,OAAO,IAAI;AAEnB,MAAI;AACF,UAAM,kBAAkB,mBAAmB,MAAM;AAEjD,UAAM,EAAE,IAAI,GAAG,IAAI;AAEnB,UAAM,gBAAgB,IAAI,EAAE;AAC5B,QAAI,SAAS;AAAA,EACf,SAAS,OAAO;AACd,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,SAAO,IAAI;AACb;AASA,SAAS,mBAAmB,QAA4C;AACtE,MAAI;AACF,WAAO,OAAO,QAAQ,+BAA+B;AAAA,EACvD,SAAS,OAAO;AACd,QAAI,iBAAiB,aAAa;AAChC,YAAM,UAAU,cAAc;AAAA,QAC5B,SAAS,mBAAmB,MAAM,OAAO;AAAA,MAC3C,CAAC;AAAA,IACH;AAEA,UAAM,UAAU,SAAS;AAAA,EAC3B;AACF","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 Component,\n UpdateInterfaceParams,\n UpdateInterfaceResult,\n JsonRpcRequest,\n} from '@metamask/snaps-sdk';\nimport { ComponentStruct } from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\nimport { StructError, create, object, string } from 'superstruct';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<UpdateInterfaceMethodHooks> = {\n updateInterface: true,\n};\n\nexport type UpdateInterfaceMethodHooks = {\n /**\n * @param id - The interface ID.\n * @param ui - The UI components.\n */\n updateInterface: (id: string, ui: Component) => Promise<void>;\n};\n\nexport const updateInterfaceHandler: PermittedHandlerExport<\n UpdateInterfaceMethodHooks,\n UpdateInterfaceParameters,\n UpdateInterfaceResult\n> = {\n methodNames: ['snap_updateInterface'],\n implementation: getUpdateInterfaceImplementation,\n hookNames,\n};\n\nconst UpdateInterfaceParametersStruct = object({\n id: string(),\n ui: ComponentStruct,\n});\n\nexport type UpdateInterfaceParameters = InferMatching<\n typeof UpdateInterfaceParametersStruct,\n UpdateInterfaceParams\n>;\n\n/**\n * The `snap_updateInterface` 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.updateInterface - The function to update the interface.\n * @returns Nothing.\n */\nasync function getUpdateInterfaceImplementation(\n req: JsonRpcRequest<UpdateInterfaceParameters>,\n res: PendingJsonRpcResponse<UpdateInterfaceResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { updateInterface }: UpdateInterfaceMethodHooks,\n): Promise<void> {\n const { params } = req;\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id, ui } = validatedParams;\n\n await updateInterface(id, ui);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the updateInterface 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 updateInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): UpdateInterfaceParameters {\n try {\n return create(params, UpdateInterfaceParametersStruct);\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"]}
@@ -0,0 +1,151 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/restricted/dialog.ts
2
+ var _permissioncontroller = require('@metamask/permission-controller');
3
+ var _rpcerrors = require('@metamask/rpc-errors');
4
+
5
+
6
+
7
+
8
+
9
+ var _snapssdk = require('@metamask/snaps-sdk');
10
+ var _snapsutils = require('@metamask/snaps-utils');
11
+ var _utils = require('@metamask/utils');
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+ var _superstruct = require('superstruct');
21
+ var methodName = "snap_dialog";
22
+ var PlaceholderStruct = _superstruct.optional.call(void 0, _superstruct.size.call(void 0, _superstruct.string.call(void 0, ), 1, 40));
23
+ var specificationBuilder = ({
24
+ allowedCaveats = null,
25
+ methodHooks: methodHooks2
26
+ }) => {
27
+ return {
28
+ permissionType: _permissioncontroller.PermissionType.RestrictedMethod,
29
+ targetName: methodName,
30
+ allowedCaveats,
31
+ methodImplementation: getDialogImplementation(methodHooks2),
32
+ subjectTypes: [_permissioncontroller.SubjectType.Snap]
33
+ };
34
+ };
35
+ var methodHooks = {
36
+ showDialog: true,
37
+ createInterface: true,
38
+ getInterface: true
39
+ };
40
+ var dialogBuilder = Object.freeze({
41
+ targetName: methodName,
42
+ specificationBuilder,
43
+ methodHooks
44
+ });
45
+ var BaseParamsStruct = _superstruct.type.call(void 0, {
46
+ type: _superstruct.enums.call(void 0, [_snapssdk.DialogType.Alert, _snapssdk.DialogType.Confirmation, _snapssdk.DialogType.Prompt])
47
+ });
48
+ var AlertParametersWithContentStruct = _superstruct.object.call(void 0, {
49
+ type: _snapssdk.enumValue.call(void 0, _snapssdk.DialogType.Alert),
50
+ content: _snapssdk.ComponentStruct
51
+ });
52
+ var AlertParametersWithIdStruct = _superstruct.object.call(void 0, {
53
+ type: _snapssdk.enumValue.call(void 0, _snapssdk.DialogType.Alert),
54
+ id: _superstruct.string.call(void 0, )
55
+ });
56
+ var AlertParametersStruct = _snapssdk.union.call(void 0, [
57
+ AlertParametersWithContentStruct,
58
+ AlertParametersWithIdStruct
59
+ ]);
60
+ var ConfirmationParametersWithContentStruct = _superstruct.object.call(void 0, {
61
+ type: _snapssdk.enumValue.call(void 0, _snapssdk.DialogType.Confirmation),
62
+ content: _snapssdk.ComponentStruct
63
+ });
64
+ var ConfirmationParametersWithIdStruct = _superstruct.object.call(void 0, {
65
+ type: _snapssdk.enumValue.call(void 0, _snapssdk.DialogType.Confirmation),
66
+ id: _superstruct.string.call(void 0, )
67
+ });
68
+ var ConfirmationParametersStruct = _snapssdk.union.call(void 0, [
69
+ ConfirmationParametersWithContentStruct,
70
+ ConfirmationParametersWithIdStruct
71
+ ]);
72
+ var PromptParametersWithContentStruct = _superstruct.object.call(void 0, {
73
+ type: _snapssdk.enumValue.call(void 0, _snapssdk.DialogType.Prompt),
74
+ content: _snapssdk.ComponentStruct,
75
+ placeholder: PlaceholderStruct
76
+ });
77
+ var PromptParametersWithIdStruct = _superstruct.object.call(void 0, {
78
+ type: _snapssdk.enumValue.call(void 0, _snapssdk.DialogType.Prompt),
79
+ id: _superstruct.string.call(void 0, ),
80
+ placeholder: PlaceholderStruct
81
+ });
82
+ var PromptParametersStruct = _snapssdk.union.call(void 0, [
83
+ PromptParametersWithContentStruct,
84
+ PromptParametersWithIdStruct
85
+ ]);
86
+ var DialogParametersStruct = _snapssdk.union.call(void 0, [
87
+ AlertParametersStruct,
88
+ ConfirmationParametersStruct,
89
+ PromptParametersStruct
90
+ ]);
91
+ var structs = {
92
+ [_snapssdk.DialogType.Alert]: AlertParametersStruct,
93
+ [_snapssdk.DialogType.Confirmation]: ConfirmationParametersStruct,
94
+ [_snapssdk.DialogType.Prompt]: PromptParametersStruct
95
+ };
96
+ function getDialogImplementation({
97
+ showDialog,
98
+ createInterface,
99
+ getInterface
100
+ }) {
101
+ return async function dialogImplementation(args) {
102
+ const {
103
+ params,
104
+ context: { origin }
105
+ } = args;
106
+ const validatedType = getValidatedType(params);
107
+ const validatedParams = getValidatedParams(params, structs[validatedType]);
108
+ const placeholder = validatedParams.type === _snapssdk.DialogType.Prompt ? validatedParams.placeholder : void 0;
109
+ if (_utils.hasProperty.call(void 0, validatedParams, "content")) {
110
+ const id = await createInterface(
111
+ origin,
112
+ validatedParams.content
113
+ );
114
+ return showDialog(origin, validatedType, id, placeholder);
115
+ }
116
+ try {
117
+ getInterface(origin, validatedParams.id);
118
+ } catch (error) {
119
+ throw _rpcerrors.rpcErrors.invalidParams({
120
+ message: `Invalid params: ${error.message}`
121
+ });
122
+ }
123
+ return showDialog(origin, validatedType, validatedParams.id, placeholder);
124
+ };
125
+ }
126
+ function getValidatedType(params) {
127
+ try {
128
+ return _superstruct.create.call(void 0, params, BaseParamsStruct).type;
129
+ } catch (error) {
130
+ throw _rpcerrors.rpcErrors.invalidParams({
131
+ message: `The "type" property must be one of: ${Object.values(
132
+ _snapssdk.DialogType
133
+ ).join(", ")}.`
134
+ });
135
+ }
136
+ }
137
+ function getValidatedParams(params, struct) {
138
+ try {
139
+ return _snapsutils.createUnion.call(void 0, params, struct, "type");
140
+ } catch (error) {
141
+ throw _rpcerrors.rpcErrors.invalidParams({
142
+ message: `Invalid params: ${error.message}`
143
+ });
144
+ }
145
+ }
146
+
147
+
148
+
149
+
150
+ exports.dialogBuilder = dialogBuilder; exports.getDialogImplementation = getDialogImplementation;
151
+ //# sourceMappingURL=chunk-GYZV5UBD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/restricted/dialog.ts"],"names":["methodHooks"],"mappings":";AAKA,SAAS,gBAAgB,mBAAmB;AAC5C,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAQP,SAAS,mBAAmB;AAE5B,SAAS,mBAAuC;AAEhD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP,IAAM,aAAa;AAEnB,IAAM,oBAAoB,SAAS,KAAK,OAAO,GAAG,GAAG,EAAE,CAAC;AAgExD,IAAM,uBAIF,CAAC;AAAA,EACH,iBAAiB;AAAA,EACjB,aAAAA;AACF,MAAyC;AACvC,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ;AAAA,IACA,sBAAsB,wBAAwBA,YAAW;AAAA,IACzD,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEA,IAAM,cAAoD;AAAA,EACxD,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,cAAc;AAChB;AAEO,IAAM,gBAAgB,OAAO,OAAO;AAAA,EACzC,YAAY;AAAA,EACZ;AAAA,EACA;AACF,CAAU;AAIV,IAAM,mBAAmB,KAAK;AAAA,EAC5B,MAAM,MAAM,CAAC,WAAW,OAAO,WAAW,cAAc,WAAW,MAAM,CAAC;AAC5E,CAAC;AAED,IAAM,mCAAmC,OAAO;AAAA,EAC9C,MAAM,UAAU,WAAW,KAAK;AAAA,EAChC,SAAS;AACX,CAAC;AACD,IAAM,8BAA8B,OAAO;AAAA,EACzC,MAAM,UAAU,WAAW,KAAK;AAAA,EAChC,IAAI,OAAO;AACb,CAAC;AAED,IAAM,wBAAwB,MAAM;AAAA,EAClC;AAAA,EACA;AACF,CAAC;AAED,IAAM,0CAA0C,OAAO;AAAA,EACrD,MAAM,UAAU,WAAW,YAAY;AAAA,EACvC,SAAS;AACX,CAAC;AAED,IAAM,qCAAqC,OAAO;AAAA,EAChD,MAAM,UAAU,WAAW,YAAY;AAAA,EACvC,IAAI,OAAO;AACb,CAAC;AAED,IAAM,+BAA+B,MAAM;AAAA,EACzC;AAAA,EACA;AACF,CAAC;AAED,IAAM,oCAAoC,OAAO;AAAA,EAC/C,MAAM,UAAU,WAAW,MAAM;AAAA,EACjC,SAAS;AAAA,EACT,aAAa;AACf,CAAC;AAED,IAAM,+BAA+B,OAAO;AAAA,EAC1C,MAAM,UAAU,WAAW,MAAM;AAAA,EACjC,IAAI,OAAO;AAAA,EACX,aAAa;AACf,CAAC;AAED,IAAM,yBAAyB,MAAM;AAAA,EACnC;AAAA,EACA;AACF,CAAC;AAED,IAAM,yBAAyB,MAAM;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAOD,IAAM,UAAU;AAAA,EACd,CAAC,WAAW,KAAK,GAAG;AAAA,EACpB,CAAC,WAAW,YAAY,GAAG;AAAA,EAC3B,CAAC,WAAW,MAAM,GAAG;AACvB;AAaO,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,SAAO,eAAe,qBACpB,MACkC;AAClC,UAAM;AAAA,MACJ;AAAA,MACA,SAAS,EAAE,OAAO;AAAA,IACpB,IAAI;AAEJ,UAAM,gBAAgB,iBAAiB,MAAM;AAC7C,UAAM,kBAAkB,mBAAmB,QAAQ,QAAQ,aAAa,CAAC;AAEzE,UAAM,cACJ,gBAAgB,SAAS,WAAW,SAChC,gBAAgB,cAChB;AAEN,QAAI,YAAY,iBAAiB,SAAS,GAAG;AAC3C,YAAM,KAAK,MAAM;AAAA,QACf;AAAA,QACA,gBAAgB;AAAA,MAClB;AACA,aAAO,WAAW,QAAQ,eAAe,IAAI,WAAW;AAAA,IAC1D;AAIA,QAAI;AACF,mBAAa,QAAQ,gBAAgB,EAAE;AAAA,IACzC,SAAS,OAAO;AACd,YAAM,UAAU,cAAc;AAAA,QAC5B,SAAS,mBAAmB,MAAM,OAAO;AAAA,MAC3C,CAAC;AAAA,IACH;AAEA,WAAO,WAAW,QAAQ,eAAe,gBAAgB,IAAI,WAAW;AAAA,EAC1E;AACF;AASA,SAAS,iBAAiB,QAA6B;AACrD,MAAI;AACF,WAAO,OAAO,QAAQ,gBAAgB,EAAE;AAAA,EAC1C,SAAS,OAAO;AACd,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS,uCAAuC,OAAO;AAAA,QACrD;AAAA,MACF,EAAE,KAAK,IAAI,CAAC;AAAA,IACd,CAAC;AAAA,EACH;AACF;AAUA,SAAS,mBACP,QACA,QACkB;AAClB,MAAI;AACF,WAAO,YAAY,QAAQ,QAAQ,MAAM;AAAA,EAC3C,SAAS,OAAO;AACd,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS,mBAAmB,MAAM,OAAO;AAAA,IAC3C,CAAC;AAAA,EACH;AACF","sourcesContent":["import type {\n PermissionSpecificationBuilder,\n RestrictedMethodOptions,\n ValidPermissionSpecification,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n DialogType,\n ComponentStruct,\n enumValue,\n union,\n} from '@metamask/snaps-sdk';\nimport type {\n DialogParams,\n EnumToUnion,\n Component,\n InterfaceState,\n SnapId,\n} from '@metamask/snaps-sdk';\nimport { createUnion } from '@metamask/snaps-utils';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport { hasProperty, type NonEmptyArray } from '@metamask/utils';\nimport type { Infer, Struct } from 'superstruct';\nimport {\n create,\n enums,\n object,\n optional,\n size,\n string,\n type,\n} from 'superstruct';\n\nimport { type MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_dialog';\n\nconst PlaceholderStruct = optional(size(string(), 1, 40));\n\nexport type Placeholder = Infer<typeof PlaceholderStruct>;\n\ntype ShowDialog = (\n snapId: string,\n type: EnumToUnion<DialogType>,\n id: string,\n placeholder?: Placeholder,\n) => Promise<null | boolean | string>;\n\ntype CreateInterface = (snapId: string, content: Component) => Promise<string>;\ntype GetInterface = (\n snapId: string,\n id: string,\n) => { content: Component; snapId: SnapId; state: InterfaceState };\n\nexport type DialogMethodHooks = {\n /**\n * @param snapId - The ID of the Snap that created the alert.\n * @param type - The dialog type.\n * @param id - The interface ID.\n * @param placeholder - The placeholder for the Prompt dialog input.\n */\n showDialog: ShowDialog;\n\n /**\n * @param snapId - The Snap ID creating the interface.\n * @param content - The content of the interface.\n */\n createInterface: CreateInterface;\n /**\n * @param snapId - The SnapId requesting the interface.\n * @param id - The interface ID.\n */\n getInterface: GetInterface;\n};\n\ntype DialogSpecificationBuilderOptions = {\n allowedCaveats?: Readonly<NonEmptyArray<string>> | null;\n methodHooks: DialogMethodHooks;\n};\n\ntype DialogSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.RestrictedMethod;\n targetName: typeof methodName;\n methodImplementation: ReturnType<typeof getDialogImplementation>;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n}>;\n\n/**\n * The specification builder for the `snap_dialog` permission. `snap_dialog`\n * lets the Snap display one of the following dialogs to the user:\n * - An alert, for displaying information.\n * - A confirmation, for accepting or rejecting some action.\n * - A prompt, for inputting some information.\n *\n * @param options - The specification builder options.\n * @param options.allowedCaveats - The optional allowed caveats for the\n * permission.\n * @param options.methodHooks - The RPC method hooks needed by the method\n * implementation.\n * @returns The specification for the `snap_dialog` permission.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.RestrictedMethod,\n DialogSpecificationBuilderOptions,\n DialogSpecification\n> = ({\n allowedCaveats = null,\n methodHooks,\n}: DialogSpecificationBuilderOptions) => {\n return {\n permissionType: PermissionType.RestrictedMethod,\n targetName: methodName,\n allowedCaveats,\n methodImplementation: getDialogImplementation(methodHooks),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nconst methodHooks: MethodHooksObject<DialogMethodHooks> = {\n showDialog: true,\n createInterface: true,\n getInterface: true,\n};\n\nexport const dialogBuilder = Object.freeze({\n targetName: methodName,\n specificationBuilder,\n methodHooks,\n} as const);\n\n// Note: We use `type` here instead of `object` because `type` does not validate\n// the keys of the object, which is what we want.\nconst BaseParamsStruct = type({\n type: enums([DialogType.Alert, DialogType.Confirmation, DialogType.Prompt]),\n});\n\nconst AlertParametersWithContentStruct = object({\n type: enumValue(DialogType.Alert),\n content: ComponentStruct,\n});\nconst AlertParametersWithIdStruct = object({\n type: enumValue(DialogType.Alert),\n id: string(),\n});\n\nconst AlertParametersStruct = union([\n AlertParametersWithContentStruct,\n AlertParametersWithIdStruct,\n]);\n\nconst ConfirmationParametersWithContentStruct = object({\n type: enumValue(DialogType.Confirmation),\n content: ComponentStruct,\n});\n\nconst ConfirmationParametersWithIdStruct = object({\n type: enumValue(DialogType.Confirmation),\n id: string(),\n});\n\nconst ConfirmationParametersStruct = union([\n ConfirmationParametersWithContentStruct,\n ConfirmationParametersWithIdStruct,\n]);\n\nconst PromptParametersWithContentStruct = object({\n type: enumValue(DialogType.Prompt),\n content: ComponentStruct,\n placeholder: PlaceholderStruct,\n});\n\nconst PromptParametersWithIdStruct = object({\n type: enumValue(DialogType.Prompt),\n id: string(),\n placeholder: PlaceholderStruct,\n});\n\nconst PromptParametersStruct = union([\n PromptParametersWithContentStruct,\n PromptParametersWithIdStruct,\n]);\n\nconst DialogParametersStruct = union([\n AlertParametersStruct,\n ConfirmationParametersStruct,\n PromptParametersStruct,\n]);\n\nexport type DialogParameters = InferMatching<\n typeof DialogParametersStruct,\n DialogParams\n>;\n\nconst structs = {\n [DialogType.Alert]: AlertParametersStruct,\n [DialogType.Confirmation]: ConfirmationParametersStruct,\n [DialogType.Prompt]: PromptParametersStruct,\n};\n\n/**\n * Builds the method implementation for `snap_dialog`.\n *\n * @param hooks - The RPC method hooks.\n * @param hooks.showDialog - A function that shows the specified dialog in the\n * MetaMask UI and returns the appropriate value for the dialog type.\n * @param hooks.createInterface - A function that creates the interface in SnapInterfaceController.\n * @param hooks.getInterface - A function that gets an interface from SnapInterfaceController.\n * @returns The method implementation which return value depends on the dialog\n * type, valid return types are: string, boolean, null.\n */\nexport function getDialogImplementation({\n showDialog,\n createInterface,\n getInterface,\n}: DialogMethodHooks) {\n return async function dialogImplementation(\n args: RestrictedMethodOptions<DialogParameters>,\n ): Promise<boolean | null | string> {\n const {\n params,\n context: { origin },\n } = args;\n\n const validatedType = getValidatedType(params);\n const validatedParams = getValidatedParams(params, structs[validatedType]);\n\n const placeholder =\n validatedParams.type === DialogType.Prompt\n ? validatedParams.placeholder\n : undefined;\n\n if (hasProperty(validatedParams, 'content')) {\n const id = await createInterface(\n origin,\n validatedParams.content as Component,\n );\n return showDialog(origin, validatedType, id, placeholder);\n }\n\n // Verify that the passed interface ID is valid.\n // This will throw if the interface ID is invalid (not created by the snap or doesn't exist)\n try {\n getInterface(origin, validatedParams.id);\n } catch (error) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}`,\n });\n }\n\n return showDialog(origin, validatedType, validatedParams.id, placeholder);\n };\n}\n\n/**\n * Get the validated type of the dialog parameters. Throws an error if the type\n * is invalid.\n *\n * @param params - The parameters to validate.\n * @returns The validated type of the dialog parameters.\n */\nfunction getValidatedType(params: unknown): DialogType {\n try {\n return create(params, BaseParamsStruct).type;\n } catch (error) {\n throw rpcErrors.invalidParams({\n message: `The \"type\" property must be one of: ${Object.values(\n DialogType,\n ).join(', ')}.`,\n });\n }\n}\n\n/**\n * Validates the confirm 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 * @param struct - The struct to validate the params against.\n * @returns The validated confirm method parameter object.\n */\nfunction getValidatedParams(\n params: unknown,\n struct: Struct<any, any>,\n): DialogParameters {\n try {\n return createUnion(params, struct, 'type');\n } catch (error) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}`,\n });\n }\n}\n"]}
@@ -0,0 +1,47 @@
1
+ // src/permitted/getFile.ts
2
+ import { rpcErrors } from "@metamask/rpc-errors";
3
+ import { AuxiliaryFileEncoding, enumValue } from "@metamask/snaps-sdk";
4
+ import { assertStruct } from "@metamask/utils";
5
+ import { object, optional, string, union } from "superstruct";
6
+ var GetFileArgsStruct = object({
7
+ path: string(),
8
+ encoding: optional(
9
+ union([
10
+ enumValue(AuxiliaryFileEncoding.Base64),
11
+ enumValue(AuxiliaryFileEncoding.Hex),
12
+ enumValue(AuxiliaryFileEncoding.Utf8)
13
+ ])
14
+ )
15
+ });
16
+ var hookNames = {
17
+ getSnapFile: true
18
+ };
19
+ var getFileHandler = {
20
+ methodNames: ["snap_getFile"],
21
+ implementation,
22
+ hookNames
23
+ };
24
+ async function implementation(req, res, _next, end, { getSnapFile }) {
25
+ const { params } = req;
26
+ assertStruct(
27
+ params,
28
+ GetFileArgsStruct,
29
+ 'Invalid "snap_getFile" parameters',
30
+ rpcErrors.invalidParams
31
+ );
32
+ try {
33
+ res.result = await getSnapFile(
34
+ params.path,
35
+ params.encoding ?? AuxiliaryFileEncoding.Base64
36
+ );
37
+ } catch (error) {
38
+ return end(error);
39
+ }
40
+ return end();
41
+ }
42
+
43
+ export {
44
+ GetFileArgsStruct,
45
+ getFileHandler
46
+ };
47
+ //# sourceMappingURL=chunk-I6FU5MGE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/permitted/getFile.ts"],"sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { GetFileParams, GetFileResult } from '@metamask/snaps-sdk';\nimport { AuxiliaryFileEncoding, enumValue } from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport type { PendingJsonRpcResponse, JsonRpcRequest } from '@metamask/utils';\nimport { assertStruct } from '@metamask/utils';\nimport { object, optional, string, union } from 'superstruct';\n\nimport type { MethodHooksObject } from '../utils';\n\nexport const GetFileArgsStruct = object({\n path: string(),\n encoding: optional(\n union([\n enumValue(AuxiliaryFileEncoding.Base64),\n enumValue(AuxiliaryFileEncoding.Hex),\n enumValue(AuxiliaryFileEncoding.Utf8),\n ]),\n ),\n});\n\nexport type InferredGetFileParams = InferMatching<\n typeof GetFileArgsStruct,\n GetFileParams\n>;\n\nconst hookNames: MethodHooksObject<GetFileHooks> = {\n getSnapFile: true,\n};\n\nexport const getFileHandler: PermittedHandlerExport<\n GetFileHooks,\n InferredGetFileParams,\n string\n> = {\n methodNames: ['snap_getFile'],\n implementation,\n hookNames,\n};\n\nexport type GetFileHooks = {\n getSnapFile: (\n path: InferredGetFileParams['path'],\n encoding: InferredGetFileParams['encoding'],\n ) => Promise<string>;\n};\n\n/**\n * The `snap_getFile` 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.getSnapFile - The function to load a static snap file.\n * @returns Nothing.\n */\nasync function implementation(\n req: JsonRpcRequest<InferredGetFileParams>,\n res: PendingJsonRpcResponse<GetFileResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getSnapFile }: GetFileHooks,\n): Promise<void> {\n const { params } = req;\n\n assertStruct(\n params,\n GetFileArgsStruct,\n 'Invalid \"snap_getFile\" parameters',\n rpcErrors.invalidParams,\n );\n\n try {\n res.result = await getSnapFile(\n params.path,\n params.encoding ?? AuxiliaryFileEncoding.Base64,\n );\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n"],"mappings":";AAEA,SAAS,iBAAiB;AAE1B,SAAS,uBAAuB,iBAAiB;AAGjD,SAAS,oBAAoB;AAC7B,SAAS,QAAQ,UAAU,QAAQ,aAAa;AAIzC,IAAM,oBAAoB,OAAO;AAAA,EACtC,MAAM,OAAO;AAAA,EACb,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,UAAU,sBAAsB,MAAM;AAAA,MACtC,UAAU,sBAAsB,GAAG;AAAA,MACnC,UAAU,sBAAsB,IAAI;AAAA,IACtC,CAAC;AAAA,EACH;AACF,CAAC;AAOD,IAAM,YAA6C;AAAA,EACjD,aAAa;AACf;AAEO,IAAM,iBAIT;AAAA,EACF,aAAa,CAAC,cAAc;AAAA,EAC5B;AAAA,EACA;AACF;AAqBA,eAAe,eACb,KACA,KACA,OACA,KACA,EAAE,YAAY,GACC;AACf,QAAM,EAAE,OAAO,IAAI;AAEnB;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ;AAEA,MAAI;AACF,QAAI,SAAS,MAAM;AAAA,MACjB,OAAO;AAAA,MACP,OAAO,YAAY,sBAAsB;AAAA,IAC3C;AAAA,EACF,SAAS,OAAO;AACd,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,SAAO,IAAI;AACb;","names":[]}
@@ -0,0 +1,67 @@
1
+ import {
2
+ deriveEntropy
3
+ } from "./chunk-SGQXD5K7.mjs";
4
+
5
+ // src/restricted/getEntropy.ts
6
+ import { PermissionType, SubjectType } from "@metamask/permission-controller";
7
+ import { rpcErrors } from "@metamask/rpc-errors";
8
+ import { SIP_6_MAGIC_VALUE } from "@metamask/snaps-utils";
9
+ import { assertStruct } from "@metamask/utils";
10
+ import { literal, object, optional, string } from "superstruct";
11
+ var targetName = "snap_getEntropy";
12
+ var GetEntropyArgsStruct = object({
13
+ version: literal(1),
14
+ salt: optional(string())
15
+ });
16
+ var specificationBuilder = ({
17
+ allowedCaveats = null,
18
+ methodHooks: methodHooks2
19
+ }) => {
20
+ return {
21
+ permissionType: PermissionType.RestrictedMethod,
22
+ targetName,
23
+ allowedCaveats,
24
+ methodImplementation: getEntropyImplementation(methodHooks2),
25
+ subjectTypes: [SubjectType.Snap]
26
+ };
27
+ };
28
+ var methodHooks = {
29
+ getMnemonic: true,
30
+ getUnlockPromise: true
31
+ };
32
+ var getEntropyBuilder = Object.freeze({
33
+ targetName,
34
+ specificationBuilder,
35
+ methodHooks
36
+ });
37
+ function getEntropyImplementation({
38
+ getMnemonic,
39
+ getUnlockPromise
40
+ }) {
41
+ return async function getEntropy(options) {
42
+ const {
43
+ params,
44
+ context: { origin }
45
+ } = options;
46
+ assertStruct(
47
+ params,
48
+ GetEntropyArgsStruct,
49
+ 'Invalid "snap_getEntropy" parameters',
50
+ rpcErrors.invalidParams
51
+ );
52
+ await getUnlockPromise(true);
53
+ const mnemonicPhrase = await getMnemonic();
54
+ return deriveEntropy({
55
+ input: origin,
56
+ salt: params.salt,
57
+ mnemonicPhrase,
58
+ magic: SIP_6_MAGIC_VALUE
59
+ });
60
+ };
61
+ }
62
+
63
+ export {
64
+ GetEntropyArgsStruct,
65
+ getEntropyBuilder
66
+ };
67
+ //# sourceMappingURL=chunk-IBV23QOX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/restricted/getEntropy.ts"],"sourcesContent":["import type {\n PermissionSpecificationBuilder,\n RestrictedMethodOptions,\n ValidPermissionSpecification,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { GetEntropyParams, GetEntropyResult } from '@metamask/snaps-sdk';\nimport { SIP_6_MAGIC_VALUE } from '@metamask/snaps-utils';\nimport type { NonEmptyArray } from '@metamask/utils';\nimport { assertStruct } from '@metamask/utils';\nimport type { Infer } from 'superstruct';\nimport { literal, object, optional, string } from 'superstruct';\n\nimport type { MethodHooksObject } from '../utils';\nimport { deriveEntropy } from '../utils';\n\nconst targetName = 'snap_getEntropy';\n\ntype GetEntropySpecificationBuilderOptions = {\n allowedCaveats?: Readonly<NonEmptyArray<string>> | null;\n methodHooks: GetEntropyHooks;\n};\n\ntype GetEntropySpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.RestrictedMethod;\n targetName: typeof targetName;\n methodImplementation: ReturnType<typeof getEntropyImplementation>;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n}>;\n\nexport const GetEntropyArgsStruct = object({\n version: literal(1),\n salt: optional(string()),\n});\n\n/**\n * @property version - The version of the `snap_getEntropy` method. This must be\n * the numeric literal `1`.\n * @property salt - A string to use as the salt when deriving the entropy. If\n * omitted, the salt will be an empty string.\n */\nexport type GetEntropyArgs = Infer<typeof GetEntropyArgsStruct>;\n\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.RestrictedMethod,\n GetEntropySpecificationBuilderOptions,\n GetEntropySpecification\n> = ({\n allowedCaveats = null,\n methodHooks,\n}: GetEntropySpecificationBuilderOptions) => {\n return {\n permissionType: PermissionType.RestrictedMethod,\n targetName,\n allowedCaveats,\n methodImplementation: getEntropyImplementation(methodHooks),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nconst methodHooks: MethodHooksObject<GetEntropyHooks> = {\n getMnemonic: true,\n getUnlockPromise: true,\n};\n\nexport const getEntropyBuilder = Object.freeze({\n targetName,\n specificationBuilder,\n methodHooks,\n} as const);\n\nexport type GetEntropyHooks = {\n /**\n * @returns The mnemonic of the user's primary keyring.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * Waits for the extension to be unlocked.\n *\n * @returns A promise that resolves once the extension is unlocked.\n */\n getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;\n};\n\n/**\n * Builds the method implementation for `snap_getEntropy`. The implementation\n * is based on the reference implementation of\n * [SIP-6](https://metamask.github.io/SIPs/SIPS/sip-6).\n *\n * @param hooks - The RPC method hooks.\n * @param hooks.getMnemonic - The method to get the mnemonic of the user's\n * primary keyring.\n * @param hooks.getUnlockPromise - The method to get a promise that resolves\n * once the extension is unlocked.\n * @returns The method implementation.\n */\nfunction getEntropyImplementation({\n getMnemonic,\n getUnlockPromise,\n}: GetEntropyHooks) {\n return async function getEntropy(\n options: RestrictedMethodOptions<GetEntropyParams>,\n ): Promise<GetEntropyResult> {\n const {\n params,\n context: { origin },\n } = options;\n\n assertStruct(\n params,\n GetEntropyArgsStruct,\n 'Invalid \"snap_getEntropy\" parameters',\n rpcErrors.invalidParams,\n );\n\n await getUnlockPromise(true);\n const mnemonicPhrase = await getMnemonic();\n\n return deriveEntropy({\n input: origin,\n salt: params.salt,\n mnemonicPhrase,\n magic: SIP_6_MAGIC_VALUE,\n });\n };\n}\n"],"mappings":";;;;;AAKA,SAAS,gBAAgB,mBAAmB;AAC5C,SAAS,iBAAiB;AAE1B,SAAS,yBAAyB;AAElC,SAAS,oBAAoB;AAE7B,SAAS,SAAS,QAAQ,UAAU,cAAc;AAKlD,IAAM,aAAa;AAcZ,IAAM,uBAAuB,OAAO;AAAA,EACzC,SAAS,QAAQ,CAAC;AAAA,EAClB,MAAM,SAAS,OAAO,CAAC;AACzB,CAAC;AAUD,IAAM,uBAIF,CAAC;AAAA,EACH,iBAAiB;AAAA,EACjB,aAAAA;AACF,MAA6C;AAC3C,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B;AAAA,IACA;AAAA,IACA,sBAAsB,yBAAyBA,YAAW;AAAA,IAC1D,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEA,IAAM,cAAkD;AAAA,EACtD,aAAa;AAAA,EACb,kBAAkB;AACpB;AAEO,IAAM,oBAAoB,OAAO,OAAO;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AACF,CAAU;AA4BV,SAAS,yBAAyB;AAAA,EAChC;AAAA,EACA;AACF,GAAoB;AAClB,SAAO,eAAe,WACpB,SAC2B;AAC3B,UAAM;AAAA,MACJ;AAAA,MACA,SAAS,EAAE,OAAO;AAAA,IACpB,IAAI;AAEJ;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACZ;AAEA,UAAM,iBAAiB,IAAI;AAC3B,UAAM,iBAAiB,MAAM,YAAY;AAEzC,WAAO,cAAc;AAAA,MACnB,OAAO;AAAA,MACP,MAAM,OAAO;AAAA,MACb;AAAA,MACA,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;","names":["methodHooks"]}
@@ -0,0 +1,45 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/permitted/invokeSnapSugar.ts
2
+ var _rpcerrors = require('@metamask/rpc-errors');
3
+ var _utils = require('@metamask/utils');
4
+ var invokeSnapSugarHandler = {
5
+ methodNames: ["wallet_invokeSnap"],
6
+ implementation: invokeSnapSugar,
7
+ hookNames: void 0
8
+ };
9
+ function invokeSnapSugar(req, _res, next, end) {
10
+ let params;
11
+ try {
12
+ params = getValidatedParams(req.params);
13
+ } catch (error) {
14
+ return end(error);
15
+ }
16
+ req.method = "wallet_snap";
17
+ req.params = params;
18
+ return next();
19
+ }
20
+ function getValidatedParams(params) {
21
+ if (!_utils.isObject.call(void 0, params)) {
22
+ throw _rpcerrors.rpcErrors.invalidParams({
23
+ message: "Expected params to be a single object."
24
+ });
25
+ }
26
+ const { snapId, request } = params;
27
+ if (!snapId || typeof snapId !== "string" || snapId === "") {
28
+ throw _rpcerrors.rpcErrors.invalidParams({
29
+ message: "Must specify a valid snap ID."
30
+ });
31
+ }
32
+ if (!_utils.isObject.call(void 0, request)) {
33
+ throw _rpcerrors.rpcErrors.invalidParams({
34
+ message: "Expected request to be a single object."
35
+ });
36
+ }
37
+ return params;
38
+ }
39
+
40
+
41
+
42
+
43
+
44
+ exports.invokeSnapSugarHandler = invokeSnapSugarHandler; exports.invokeSnapSugar = invokeSnapSugar; exports.getValidatedParams = getValidatedParams;
45
+ //# sourceMappingURL=chunk-IDZGMGIB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/permitted/invokeSnapSugar.ts"],"names":[],"mappings":";AAKA,SAAS,iBAAiB;AAG1B,SAAS,gBAAgB;AAKlB,IAAM,yBAIT;AAAA,EACF,aAAa,CAAC,mBAAmB;AAAA,EACjC,gBAAgB;AAAA,EAChB,WAAW;AACb;AAcO,SAAS,gBACd,KACA,MACA,MACA,KACM;AACN,MAAI;AACJ,MAAI;AACF,aAAS,mBAAmB,IAAI,MAAM;AAAA,EACxC,SAAS,OAAO;AACd,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,MAAI,SAAS;AACb,MAAI,SAAS;AACb,SAAO,KAAK;AACd;AASO,SAAS,mBAAmB,QAAmC;AACpE,MAAI,CAAC,SAAS,MAAM,GAAG;AACrB,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,QAAM,EAAE,QAAQ,QAAQ,IAAI;AAE5B,MAAI,CAAC,UAAU,OAAO,WAAW,YAAY,WAAW,IAAI;AAC1D,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,MAAI,CAAC,SAAS,OAAO,GAAG;AACtB,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,SAAO;AACT","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { InvokeSnapParams, InvokeSnapResult } from '@metamask/snaps-sdk';\nimport type { JsonRpcRequest } from '@metamask/utils';\nimport { isObject } from '@metamask/utils';\n\n/**\n * `wallet_invokeSnap` attempts to invoke an RPC method of the specified Snap.\n */\nexport const invokeSnapSugarHandler: PermittedHandlerExport<\n void,\n InvokeSnapParams,\n InvokeSnapResult\n> = {\n methodNames: ['wallet_invokeSnap'],\n implementation: invokeSnapSugar,\n hookNames: undefined,\n};\n\n/**\n * The `wallet_invokeSnap` method implementation.\n * Reroutes incoming JSON-RPC requests that are targeting snaps, by modifying the method and params.\n *\n * @param req - The JSON-RPC request object.\n * @param _res - The JSON-RPC response object. Not used by this\n * function.\n * @param next - The `json-rpc-engine` \"next\" callback.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @returns Nothing.\n * @throws If the params are invalid.\n */\nexport function invokeSnapSugar(\n req: JsonRpcRequest<InvokeSnapParams>,\n _res: unknown,\n next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n): void {\n let params: InvokeSnapParams;\n try {\n params = getValidatedParams(req.params);\n } catch (error) {\n return end(error);\n }\n\n req.method = 'wallet_snap';\n req.params = params;\n return next();\n}\n\n/**\n * Validates the wallet_invokeSnap 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 method parameter object.\n */\nexport function getValidatedParams(params: unknown): InvokeSnapParams {\n if (!isObject(params)) {\n throw rpcErrors.invalidParams({\n message: 'Expected params to be a single object.',\n });\n }\n\n const { snapId, request } = params;\n\n if (!snapId || typeof snapId !== 'string' || snapId === '') {\n throw rpcErrors.invalidParams({\n message: 'Must specify a valid snap ID.',\n });\n }\n\n if (!isObject(request)) {\n throw rpcErrors.invalidParams({\n message: 'Expected request to be a single object.',\n });\n }\n\n return params as InvokeSnapParams;\n}\n"]}
@@ -0,0 +1,119 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkQMULJEYNjs = require('./chunk-QMULJEYN.js');
4
+
5
+ // src/endowments/name-lookup.ts
6
+ var _permissioncontroller = require('@metamask/permission-controller');
7
+ var _rpcerrors = require('@metamask/rpc-errors');
8
+
9
+
10
+
11
+
12
+ var _snapsutils = require('@metamask/snaps-utils');
13
+
14
+
15
+
16
+
17
+
18
+
19
+ var _utils = require('@metamask/utils');
20
+ var permissionName = "endowment:name-lookup" /* NameLookup */;
21
+ var specificationBuilder = (_builderOptions) => {
22
+ return {
23
+ permissionType: _permissioncontroller.PermissionType.Endowment,
24
+ targetName: permissionName,
25
+ allowedCaveats: [
26
+ _snapsutils.SnapCaveatType.ChainIds,
27
+ _snapsutils.SnapCaveatType.LookupMatchers,
28
+ _snapsutils.SnapCaveatType.MaxRequestTime
29
+ ],
30
+ endowmentGetter: (_getterOptions) => void 0,
31
+ validator: _chunkQMULJEYNjs.createGenericPermissionValidator.call(void 0, [
32
+ { type: _snapsutils.SnapCaveatType.ChainIds, optional: true },
33
+ { type: _snapsutils.SnapCaveatType.LookupMatchers, optional: true },
34
+ { type: _snapsutils.SnapCaveatType.MaxRequestTime, optional: true }
35
+ ]),
36
+ subjectTypes: [_permissioncontroller.SubjectType.Snap]
37
+ };
38
+ };
39
+ var nameLookupEndowmentBuilder = Object.freeze({
40
+ targetName: permissionName,
41
+ specificationBuilder
42
+ });
43
+ function validateCaveat(caveat) {
44
+ if (!_utils.hasProperty.call(void 0, caveat, "value") || !_utils.isPlainObject.call(void 0, caveat)) {
45
+ throw _rpcerrors.rpcErrors.invalidParams({
46
+ message: "Expected a plain object."
47
+ });
48
+ }
49
+ const { value } = caveat;
50
+ switch (caveat.type) {
51
+ case _snapsutils.SnapCaveatType.ChainIds:
52
+ _utils.assertStruct.call(void 0, value, _snapsutils.ChainIdsStruct);
53
+ break;
54
+ case _snapsutils.SnapCaveatType.LookupMatchers:
55
+ _utils.assertStruct.call(void 0, value, _snapsutils.LookupMatchersStruct);
56
+ break;
57
+ default:
58
+ throw _rpcerrors.rpcErrors.invalidParams({
59
+ message: 'Invalid caveat type, must be one of the following: "chainIds", "matchers".'
60
+ });
61
+ }
62
+ }
63
+ function getNameLookupCaveatMapper(value) {
64
+ if (!value || !_utils.isObject.call(void 0, value) || Object.keys(value).length === 0) {
65
+ return { caveats: null };
66
+ }
67
+ const caveats = [];
68
+ if (value.chains) {
69
+ caveats.push({
70
+ type: _snapsutils.SnapCaveatType.ChainIds,
71
+ value: value.chains
72
+ });
73
+ }
74
+ if (value.matchers) {
75
+ caveats.push({
76
+ type: _snapsutils.SnapCaveatType.LookupMatchers,
77
+ value: value.matchers
78
+ });
79
+ }
80
+ _utils.assert.call(void 0, caveats.length > 0);
81
+ return { caveats };
82
+ }
83
+ function getChainIdsCaveat(permission) {
84
+ if (!permission?.caveats) {
85
+ return null;
86
+ }
87
+ const caveat = permission.caveats.find(
88
+ (permCaveat) => permCaveat.type === _snapsutils.SnapCaveatType.ChainIds
89
+ );
90
+ return caveat ? caveat.value : null;
91
+ }
92
+ function getLookupMatchersCaveat(permission) {
93
+ if (!permission?.caveats) {
94
+ return null;
95
+ }
96
+ const caveat = permission.caveats.find(
97
+ (permCaveat) => permCaveat.type === _snapsutils.SnapCaveatType.LookupMatchers
98
+ );
99
+ return caveat ? caveat.value : null;
100
+ }
101
+ var nameLookupCaveatSpecifications = {
102
+ [_snapsutils.SnapCaveatType.ChainIds]: Object.freeze({
103
+ type: _snapsutils.SnapCaveatType.ChainIds,
104
+ validator: (caveat) => validateCaveat(caveat)
105
+ }),
106
+ [_snapsutils.SnapCaveatType.LookupMatchers]: Object.freeze({
107
+ type: _snapsutils.SnapCaveatType.LookupMatchers,
108
+ validator: (caveat) => validateCaveat(caveat)
109
+ })
110
+ };
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+ exports.nameLookupEndowmentBuilder = nameLookupEndowmentBuilder; exports.getNameLookupCaveatMapper = getNameLookupCaveatMapper; exports.getChainIdsCaveat = getChainIdsCaveat; exports.getLookupMatchersCaveat = getLookupMatchersCaveat; exports.nameLookupCaveatSpecifications = nameLookupCaveatSpecifications;
119
+ //# sourceMappingURL=chunk-IEUCBULU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/endowments/name-lookup.ts"],"names":[],"mappings":";;;;;AAUA,SAAS,gBAAgB,mBAAmB;AAC5C,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,IAAM;AAiBN,IAAM,uBAIF,CAAC,oBAA8B;AACjC,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ,gBAAgB;AAAA,MACd,eAAe;AAAA,MACf,eAAe;AAAA,MACf,eAAe;AAAA,IACjB;AAAA,IACA,iBAAiB,CAAC,mBAA2C;AAAA,IAC7D,WAAW,iCAAiC;AAAA,MAC1C,EAAE,MAAM,eAAe,UAAU,UAAU,KAAK;AAAA,MAChD,EAAE,MAAM,eAAe,gBAAgB,UAAU,KAAK;AAAA,MACtD,EAAE,MAAM,eAAe,gBAAgB,UAAU,KAAK;AAAA,IACxD,CAAC;AAAA,IACD,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEO,IAAM,6BAA6B,OAAO,OAAO;AAAA,EACtD,YAAY;AAAA,EACZ;AACF,CAAU;AAQV,SAAS,eAAe,QAAmC;AACzD,MAAI,CAAC,YAAY,QAAQ,OAAO,KAAK,CAAC,cAAc,MAAM,GAAG;AAC3D,UAAM,UAAU,cAAc;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,QAAM,EAAE,MAAM,IAAI;AAElB,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,eAAe;AAClB,mBAAa,OAAO,cAAc;AAClC;AAAA,IACF,KAAK,eAAe;AAClB,mBAAa,OAAO,oBAAoB;AACxC;AAAA,IACF;AACE,YAAM,UAAU,cAAc;AAAA,QAC5B,SACE;AAAA,MACJ,CAAC;AAAA,EACL;AACF;AAUO,SAAS,0BACd,OACuC;AACvC,MAAI,CAAC,SAAS,CAAC,SAAS,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AACjE,WAAO,EAAE,SAAS,KAAK;AAAA,EACzB;AAEA,QAAM,UAAU,CAAC;AAEjB,MAAI,MAAM,QAAQ;AAChB,YAAQ,KAAK;AAAA,MACX,MAAM,eAAe;AAAA,MACrB,OAAO,MAAM;AAAA,IACf,CAAC;AAAA,EACH;AAEA,MAAI,MAAM,UAAU;AAClB,YAAQ,KAAK;AAAA,MACX,MAAM,eAAe;AAAA,MACrB,OAAO,MAAM;AAAA,IACf,CAAC;AAAA,EACH;AAEA,SAAO,QAAQ,SAAS,CAAC;AAEzB,SAAO,EAAE,QAAoD;AAC/D;AAYO,SAAS,kBACd,YACiB;AACjB,MAAI,CAAC,YAAY,SAAS;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,WAAW,QAAQ;AAAA,IAChC,CAAC,eAAe,WAAW,SAAS,eAAe;AAAA,EACrD;AAEA,SAAO,SAAS,OAAO,QAAQ;AACjC;AAYO,SAAS,wBACd,YACiC;AACjC,MAAI,CAAC,YAAY,SAAS;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,SAAS,WAAW,QAAQ;AAAA,IAChC,CAAC,eAAe,WAAW,SAAS,eAAe;AAAA,EACrD;AAEA,SAAO,SAAS,OAAO,QAAQ;AACjC;AAEO,IAAM,iCAGT;AAAA,EACF,CAAC,eAAe,QAAQ,GAAG,OAAO,OAAO;AAAA,IACvC,MAAM,eAAe;AAAA,IACrB,WAAW,CAAC,WAAgC,eAAe,MAAM;AAAA,EACnE,CAAC;AAAA,EACD,CAAC,eAAe,cAAc,GAAG,OAAO,OAAO;AAAA,IAC7C,MAAM,eAAe;AAAA,IACrB,WAAW,CAAC,WAAgC,eAAe,MAAM;AAAA,EACnE,CAAC;AACH","sourcesContent":["import type {\n EndowmentGetterParams,\n PermissionSpecificationBuilder,\n PermissionValidatorConstraint,\n ValidPermissionSpecification,\n Caveat,\n CaveatSpecificationConstraint,\n PermissionConstraint,\n CaveatConstraint,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n ChainIdsStruct,\n LookupMatchersStruct,\n SnapCaveatType,\n} from '@metamask/snaps-utils';\nimport type { Json, NonEmptyArray } from '@metamask/utils';\nimport {\n assert,\n assertStruct,\n hasProperty,\n isObject,\n isPlainObject,\n} from '@metamask/utils';\n\nimport { createGenericPermissionValidator } from './caveats';\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.NameLookup;\n\ntype NameLookupEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: EndowmentGetterParams) => undefined;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n validator: PermissionValidatorConstraint;\n}>;\n\n/**\n * `endowment:name-lookup` returns nothing; it is intended to be used as a flag\n * by the extension to detect whether the snap has the capability to resolve a domain/address.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the name-lookup endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n NameLookupEndowmentSpecification\n> = (_builderOptions?: unknown) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: [\n SnapCaveatType.ChainIds,\n SnapCaveatType.LookupMatchers,\n SnapCaveatType.MaxRequestTime,\n ],\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => undefined,\n validator: createGenericPermissionValidator([\n { type: SnapCaveatType.ChainIds, optional: true },\n { type: SnapCaveatType.LookupMatchers, optional: true },\n { type: SnapCaveatType.MaxRequestTime, optional: true },\n ]),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nexport const nameLookupEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\n\n/**\n * Validates the type of the caveat value.\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat value is invalid.\n */\nfunction validateCaveat(caveat: Caveat<string, any>): void {\n if (!hasProperty(caveat, 'value') || !isPlainObject(caveat)) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object.',\n });\n }\n\n const { value } = caveat;\n\n switch (caveat.type) {\n case SnapCaveatType.ChainIds:\n assertStruct(value, ChainIdsStruct);\n break;\n case SnapCaveatType.LookupMatchers:\n assertStruct(value, LookupMatchersStruct);\n break;\n default:\n throw rpcErrors.invalidParams({\n message:\n 'Invalid caveat type, must be one of the following: \"chainIds\", \"matchers\".',\n });\n }\n}\n\n/**\n * Map a raw value from the `initialPermissions` to a caveat specification.\n * Note that this function does not do any validation, that's handled by the\n * PermissionsController when the permission is requested.\n *\n * @param value - The raw value from the `initialPermissions`.\n * @returns The caveat specification.\n */\nexport function getNameLookupCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n if (!value || !isObject(value) || Object.keys(value).length === 0) {\n return { caveats: null };\n }\n\n const caveats = [];\n\n if (value.chains) {\n caveats.push({\n type: SnapCaveatType.ChainIds,\n value: value.chains,\n });\n }\n\n if (value.matchers) {\n caveats.push({\n type: SnapCaveatType.LookupMatchers,\n value: value.matchers,\n });\n }\n\n assert(caveats.length > 0);\n\n return { caveats: caveats as NonEmptyArray<CaveatConstraint> };\n}\n\n/**\n * Getter function to get the chainIds caveat from a permission.\n *\n * This does basic validation of the caveat, but does not validate the type or\n * value of the namespaces object itself, as this is handled by the\n * `PermissionsController` when the permission is requested.\n *\n * @param permission - The permission to get the `chainIds` caveat from.\n * @returns An array of `chainIds` that the snap supports.\n */\nexport function getChainIdsCaveat(\n permission?: PermissionConstraint,\n): string[] | null {\n if (!permission?.caveats) {\n return null;\n }\n\n const caveat = permission.caveats.find(\n (permCaveat) => permCaveat.type === SnapCaveatType.ChainIds,\n ) as Caveat<string, string[]> | undefined;\n\n return caveat ? caveat.value : null;\n}\n\n/**\n * Getter function to get the matchers caveat from a permission.\n *\n * This does basic validation of the caveat, but does not validate the type or\n * value of the namespaces object itself, as this is handled by the\n * `PermissionsController` when the permission is requested.\n *\n * @param permission - The permission to get the `matchers` caveat from.\n * @returns A `matchers` object that defines the input that the snap supports.\n */\nexport function getLookupMatchersCaveat(\n permission?: PermissionConstraint,\n): Record<string, string[]> | null {\n if (!permission?.caveats) {\n return null;\n }\n\n const caveat = permission.caveats.find(\n (permCaveat) => permCaveat.type === SnapCaveatType.LookupMatchers,\n ) as Caveat<string, Record<string, string[]>> | undefined;\n\n return caveat ? caveat.value : null;\n}\n\nexport const nameLookupCaveatSpecifications: Record<\n SnapCaveatType.ChainIds | SnapCaveatType.LookupMatchers,\n CaveatSpecificationConstraint\n> = {\n [SnapCaveatType.ChainIds]: Object.freeze({\n type: SnapCaveatType.ChainIds,\n validator: (caveat: Caveat<string, any>) => validateCaveat(caveat),\n }),\n [SnapCaveatType.LookupMatchers]: Object.freeze({\n type: SnapCaveatType.LookupMatchers,\n validator: (caveat: Caveat<string, any>) => validateCaveat(caveat),\n }),\n};\n"]}
@@ -0,0 +1,32 @@
1
+ // src/restricted/getLocale.ts
2
+ import { PermissionType, SubjectType } from "@metamask/permission-controller";
3
+ var methodName = "snap_getLocale";
4
+ var specificationBuilder = ({ allowedCaveats = null, methodHooks: methodHooks2 }) => {
5
+ return {
6
+ permissionType: PermissionType.RestrictedMethod,
7
+ targetName: methodName,
8
+ allowedCaveats,
9
+ methodImplementation: getImplementation(methodHooks2),
10
+ subjectTypes: [SubjectType.Snap]
11
+ };
12
+ };
13
+ var methodHooks = {
14
+ getLocale: true
15
+ };
16
+ var getLocaleBuilder = Object.freeze({
17
+ targetName: methodName,
18
+ specificationBuilder,
19
+ methodHooks
20
+ });
21
+ function getImplementation({ getLocale }) {
22
+ return async function implementation(_args) {
23
+ return getLocale();
24
+ };
25
+ }
26
+
27
+ export {
28
+ specificationBuilder,
29
+ getLocaleBuilder,
30
+ getImplementation
31
+ };
32
+ //# sourceMappingURL=chunk-IZYMBIBD.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/restricted/getLocale.ts"],"sourcesContent":["import type {\n PermissionSpecificationBuilder,\n ValidPermissionSpecification,\n RestrictedMethodOptions,\n RestrictedMethodParameters,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport type { GetLocaleResult } from '@metamask/snaps-sdk';\nimport type { NonEmptyArray } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst methodName = 'snap_getLocale';\n\nexport type GetLocaleMethodHooks = {\n getLocale: () => Promise<string>;\n};\n\ntype SpecificationBuilderOptions = {\n allowedCaveats?: Readonly<NonEmptyArray<string>> | null;\n methodHooks: GetLocaleMethodHooks;\n};\n\ntype Specification = ValidPermissionSpecification<{\n permissionType: PermissionType.RestrictedMethod;\n targetName: typeof methodName;\n methodImplementation: ReturnType<typeof getImplementation>;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n}>;\n\n/**\n * The specification builder for the `snap_getLocale` permission.\n * `snap_getLocale` allows snaps to get the user selected locale.\n *\n * @param options - The specification builder options.\n * @param options.allowedCaveats - The optional allowed caveats for the permission.\n * @param options.methodHooks - The RPC method hooks needed by the method implementation.\n * @returns The specification for the `snap_getLocale` permission.\n */\nexport const specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.RestrictedMethod,\n SpecificationBuilderOptions,\n Specification\n> = ({ allowedCaveats = null, methodHooks }: SpecificationBuilderOptions) => {\n return {\n permissionType: PermissionType.RestrictedMethod,\n targetName: methodName,\n allowedCaveats,\n methodImplementation: getImplementation(methodHooks),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nconst methodHooks: MethodHooksObject<GetLocaleMethodHooks> = {\n getLocale: true,\n};\n\nexport const getLocaleBuilder = Object.freeze({\n targetName: methodName,\n specificationBuilder,\n methodHooks,\n} as const);\n\n/**\n * Builds the method implementation for `snap_getLocale`.\n *\n * @param hooks - The RPC method hooks.\n * @param hooks.getLocale - A function that returns the user selected locale.\n * @returns The user selected locale.\n */\nexport function getImplementation({ getLocale }: GetLocaleMethodHooks) {\n return async function implementation(\n _args: RestrictedMethodOptions<RestrictedMethodParameters>,\n ): Promise<GetLocaleResult> {\n return getLocale();\n };\n}\n"],"mappings":";AAMA,SAAS,gBAAgB,mBAAmB;AAM5C,IAAM,aAAa;AA2BZ,IAAM,uBAIT,CAAC,EAAE,iBAAiB,MAAM,aAAAA,aAAY,MAAmC;AAC3E,SAAO;AAAA,IACL,gBAAgB,eAAe;AAAA,IAC/B,YAAY;AAAA,IACZ;AAAA,IACA,sBAAsB,kBAAkBA,YAAW;AAAA,IACnD,cAAc,CAAC,YAAY,IAAI;AAAA,EACjC;AACF;AAEA,IAAM,cAAuD;AAAA,EAC3D,WAAW;AACb;AAEO,IAAM,mBAAmB,OAAO,OAAO;AAAA,EAC5C,YAAY;AAAA,EACZ;AAAA,EACA;AACF,CAAU;AASH,SAAS,kBAAkB,EAAE,UAAU,GAAyB;AACrE,SAAO,eAAe,eACpB,OAC0B;AAC1B,WAAO,UAAU;AAAA,EACnB;AACF;","names":["methodHooks"]}