@metamask/snaps-rpc-methods 10.0.1 → 11.1.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 (698) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/__fixtures__/entropy.cjs +31 -0
  3. package/dist/__fixtures__/entropy.cjs.map +1 -0
  4. package/dist/{types/__fixtures__/entropy.d.ts → __fixtures__/entropy.d.cts} +1 -0
  5. package/dist/__fixtures__/entropy.d.cts.map +1 -0
  6. package/dist/__fixtures__/entropy.d.mts +15 -0
  7. package/dist/__fixtures__/entropy.d.mts.map +1 -0
  8. package/dist/__fixtures__/entropy.mjs +28 -0
  9. package/dist/__fixtures__/entropy.mjs.map +1 -0
  10. package/dist/__fixtures__/index.cjs +18 -0
  11. package/dist/__fixtures__/index.cjs.map +1 -0
  12. package/dist/__fixtures__/index.d.cts +2 -0
  13. package/dist/__fixtures__/index.d.cts.map +1 -0
  14. package/dist/__fixtures__/index.d.mts +2 -0
  15. package/dist/__fixtures__/index.d.mts.map +1 -0
  16. package/dist/__fixtures__/index.mjs +2 -0
  17. package/dist/__fixtures__/index.mjs.map +1 -0
  18. package/dist/endowments/caveats/generic.cjs +50 -0
  19. package/dist/endowments/caveats/generic.cjs.map +1 -0
  20. package/dist/{types/endowments/caveats/generic.d.ts → endowments/caveats/generic.d.cts} +5 -4
  21. package/dist/endowments/caveats/generic.d.cts.map +1 -0
  22. package/dist/endowments/caveats/generic.d.mts +20 -0
  23. package/dist/endowments/caveats/generic.d.mts.map +1 -0
  24. package/dist/endowments/caveats/generic.mjs +45 -6
  25. package/dist/endowments/caveats/generic.mjs.map +1 -1
  26. package/dist/endowments/caveats/index.cjs +19 -0
  27. package/dist/endowments/caveats/index.cjs.map +1 -0
  28. package/dist/endowments/caveats/index.d.cts +3 -0
  29. package/dist/endowments/caveats/index.d.cts.map +1 -0
  30. package/dist/endowments/caveats/index.d.mts +3 -0
  31. package/dist/endowments/caveats/index.d.mts.map +1 -0
  32. package/dist/endowments/caveats/index.mjs +2 -17
  33. package/dist/endowments/caveats/index.mjs.map +1 -1
  34. package/dist/endowments/caveats/requestTime.cjs +104 -0
  35. package/dist/{chunk-FCVWU5XH.js.map → endowments/caveats/requestTime.cjs.map} +1 -1
  36. package/dist/{types/endowments/caveats/requestTime.d.ts → endowments/caveats/requestTime.d.cts} +5 -4
  37. package/dist/endowments/caveats/requestTime.d.cts.map +1 -0
  38. package/dist/endowments/caveats/requestTime.d.mts +30 -0
  39. package/dist/endowments/caveats/requestTime.d.mts.map +1 -0
  40. package/dist/endowments/caveats/requestTime.mjs +96 -11
  41. package/dist/endowments/caveats/requestTime.mjs.map +1 -1
  42. package/dist/endowments/cronjob.cjs +105 -0
  43. package/dist/endowments/cronjob.cjs.map +1 -0
  44. package/dist/{types/endowments/cronjob.d.ts → endowments/cronjob.d.cts} +7 -6
  45. package/dist/endowments/cronjob.d.cts.map +1 -0
  46. package/dist/endowments/cronjob.d.mts +52 -0
  47. package/dist/endowments/cronjob.d.mts.map +1 -0
  48. package/dist/endowments/cronjob.mjs +97 -14
  49. package/dist/endowments/cronjob.mjs.map +1 -1
  50. package/dist/endowments/enum.cjs +18 -0
  51. package/dist/endowments/enum.cjs.map +1 -0
  52. package/dist/{types/endowments/enum.d.ts → endowments/enum.d.cts} +1 -0
  53. package/dist/endowments/enum.d.cts.map +1 -0
  54. package/dist/endowments/enum.d.mts +14 -0
  55. package/dist/endowments/enum.d.mts.map +1 -0
  56. package/dist/endowments/enum.mjs +14 -6
  57. package/dist/endowments/enum.mjs.map +1 -1
  58. package/dist/endowments/ethereum-provider.cjs +32 -0
  59. package/dist/endowments/ethereum-provider.cjs.map +1 -0
  60. package/dist/{types/endowments/ethereum-provider.d.ts → endowments/ethereum-provider.d.cts} +4 -3
  61. package/dist/endowments/ethereum-provider.d.cts.map +1 -0
  62. package/dist/endowments/ethereum-provider.d.mts +15 -0
  63. package/dist/endowments/ethereum-provider.d.mts.map +1 -0
  64. package/dist/endowments/ethereum-provider.mjs +27 -6
  65. package/dist/endowments/ethereum-provider.mjs.map +1 -1
  66. package/dist/endowments/home-page.cjs +28 -0
  67. package/dist/{chunk-2SFH57UV.js.map → endowments/home-page.cjs.map} +1 -1
  68. package/dist/{types/endowments/home-page.d.ts → endowments/home-page.d.cts} +5 -4
  69. package/dist/endowments/home-page.d.cts.map +1 -0
  70. package/dist/endowments/home-page.d.mts +16 -0
  71. package/dist/endowments/home-page.d.mts.map +1 -0
  72. package/dist/endowments/home-page.mjs +23 -6
  73. package/dist/endowments/home-page.mjs.map +1 -1
  74. package/dist/endowments/index.cjs +92 -0
  75. package/dist/endowments/index.cjs.map +1 -0
  76. package/dist/{types/endowments/index.d.ts → endowments/index.d.cts} +12 -11
  77. package/dist/endowments/index.d.cts.map +1 -0
  78. package/dist/endowments/index.d.mts +132 -0
  79. package/dist/endowments/index.d.mts.map +1 -0
  80. package/dist/endowments/index.mjs +65 -52
  81. package/dist/endowments/index.mjs.map +1 -1
  82. package/dist/endowments/keyring.cjs +96 -0
  83. package/dist/endowments/keyring.cjs.map +1 -0
  84. package/dist/{types/endowments/keyring.d.ts → endowments/keyring.d.cts} +7 -6
  85. package/dist/endowments/keyring.d.cts.map +1 -0
  86. package/dist/endowments/keyring.d.mts +40 -0
  87. package/dist/endowments/keyring.d.mts.map +1 -0
  88. package/dist/endowments/keyring.mjs +89 -15
  89. package/dist/endowments/keyring.mjs.map +1 -1
  90. package/dist/endowments/lifecycle-hooks.cjs +28 -0
  91. package/dist/endowments/lifecycle-hooks.cjs.map +1 -0
  92. package/dist/{types/endowments/lifecycle-hooks.d.ts → endowments/lifecycle-hooks.d.cts} +5 -4
  93. package/dist/endowments/lifecycle-hooks.d.cts.map +1 -0
  94. package/dist/endowments/lifecycle-hooks.d.mts +16 -0
  95. package/dist/endowments/lifecycle-hooks.d.mts.map +1 -0
  96. package/dist/endowments/lifecycle-hooks.mjs +23 -6
  97. package/dist/endowments/lifecycle-hooks.mjs.map +1 -1
  98. package/dist/endowments/name-lookup.cjs +141 -0
  99. package/dist/endowments/name-lookup.cjs.map +1 -0
  100. package/dist/{types/endowments/name-lookup.d.ts → endowments/name-lookup.d.cts} +6 -5
  101. package/dist/endowments/name-lookup.d.cts.map +1 -0
  102. package/dist/endowments/name-lookup.d.mts +50 -0
  103. package/dist/endowments/name-lookup.d.mts.map +1 -0
  104. package/dist/endowments/name-lookup.mjs +133 -17
  105. package/dist/endowments/name-lookup.mjs.map +1 -1
  106. package/dist/endowments/network-access.cjs +30 -0
  107. package/dist/endowments/network-access.cjs.map +1 -0
  108. package/dist/{types/endowments/network-access.d.ts → endowments/network-access.d.cts} +4 -3
  109. package/dist/endowments/network-access.d.cts.map +1 -0
  110. package/dist/endowments/network-access.d.mts +15 -0
  111. package/dist/endowments/network-access.d.mts.map +1 -0
  112. package/dist/endowments/network-access.mjs +25 -6
  113. package/dist/endowments/network-access.mjs.map +1 -1
  114. package/dist/endowments/rpc.cjs +90 -0
  115. package/dist/endowments/rpc.cjs.map +1 -0
  116. package/dist/{types/endowments/rpc.d.ts → endowments/rpc.d.cts} +8 -7
  117. package/dist/endowments/rpc.d.cts.map +1 -0
  118. package/dist/endowments/rpc.d.mts +39 -0
  119. package/dist/endowments/rpc.d.mts.map +1 -0
  120. package/dist/endowments/rpc.mjs +83 -15
  121. package/dist/endowments/rpc.mjs.map +1 -1
  122. package/dist/endowments/signature-insight.cjs +102 -0
  123. package/dist/endowments/signature-insight.cjs.map +1 -0
  124. package/dist/{types/endowments/signature-insight.d.ts → endowments/signature-insight.d.cts} +6 -5
  125. package/dist/endowments/signature-insight.d.cts.map +1 -0
  126. package/dist/endowments/signature-insight.d.mts +40 -0
  127. package/dist/endowments/signature-insight.d.mts.map +1 -0
  128. package/dist/endowments/signature-insight.mjs +95 -15
  129. package/dist/endowments/signature-insight.mjs.map +1 -1
  130. package/dist/endowments/transaction-insight.cjs +105 -0
  131. package/dist/endowments/transaction-insight.cjs.map +1 -0
  132. package/dist/{types/endowments/transaction-insight.d.ts → endowments/transaction-insight.d.cts} +6 -5
  133. package/dist/endowments/transaction-insight.d.cts.map +1 -0
  134. package/dist/endowments/transaction-insight.d.mts +40 -0
  135. package/dist/endowments/transaction-insight.d.mts.map +1 -0
  136. package/dist/endowments/transaction-insight.mjs +98 -15
  137. package/dist/endowments/transaction-insight.mjs.map +1 -1
  138. package/dist/endowments/web-assembly.cjs +31 -0
  139. package/dist/endowments/web-assembly.cjs.map +1 -0
  140. package/dist/{types/endowments/web-assembly.d.ts → endowments/web-assembly.d.cts} +4 -3
  141. package/dist/endowments/web-assembly.d.cts.map +1 -0
  142. package/dist/endowments/web-assembly.d.mts +15 -0
  143. package/dist/endowments/web-assembly.d.mts.map +1 -0
  144. package/dist/endowments/web-assembly.mjs +26 -6
  145. package/dist/endowments/web-assembly.mjs.map +1 -1
  146. package/dist/index.cjs +28 -0
  147. package/dist/index.cjs.map +1 -0
  148. package/dist/index.d.cts +8 -0
  149. package/dist/index.d.cts.map +1 -0
  150. package/dist/index.d.mts +8 -0
  151. package/dist/index.d.mts.map +1 -0
  152. package/dist/index.mjs +6 -121
  153. package/dist/index.mjs.map +1 -1
  154. package/dist/permissions.cjs +55 -0
  155. package/dist/permissions.cjs.map +1 -0
  156. package/dist/{types/permissions.d.ts → permissions.d.cts} +3 -2
  157. package/dist/permissions.d.cts.map +1 -0
  158. package/dist/permissions.d.mts +17 -0
  159. package/dist/permissions.d.mts.map +1 -0
  160. package/dist/permissions.mjs +48 -42
  161. package/dist/permissions.mjs.map +1 -1
  162. package/dist/permitted/createInterface.cjs +64 -0
  163. package/dist/permitted/createInterface.cjs.map +1 -0
  164. package/dist/{types/permitted/createInterface.d.ts → permitted/createInterface.d.cts} +62 -47
  165. package/dist/permitted/createInterface.d.cts.map +1 -0
  166. package/dist/permitted/createInterface.d.mts +181 -0
  167. package/dist/permitted/createInterface.d.mts.map +1 -0
  168. package/dist/permitted/createInterface.mjs +59 -5
  169. package/dist/permitted/createInterface.mjs.map +1 -1
  170. package/dist/permitted/getAllSnaps.cjs +39 -0
  171. package/dist/permitted/getAllSnaps.cjs.map +1 -0
  172. package/dist/{types/permitted/getAllSnaps.d.ts → permitted/getAllSnaps.d.cts} +5 -4
  173. package/dist/permitted/getAllSnaps.d.cts.map +1 -0
  174. package/dist/permitted/getAllSnaps.d.mts +15 -0
  175. package/dist/permitted/getAllSnaps.d.mts.map +1 -0
  176. package/dist/permitted/getAllSnaps.mjs +34 -5
  177. package/dist/permitted/getAllSnaps.mjs.map +1 -1
  178. package/dist/permitted/getClientStatus.cjs +32 -0
  179. package/dist/permitted/getClientStatus.cjs.map +1 -0
  180. package/dist/{types/permitted/getClientStatus.d.ts → permitted/getClientStatus.d.cts} +5 -4
  181. package/dist/permitted/getClientStatus.d.cts.map +1 -0
  182. package/dist/permitted/getClientStatus.d.mts +14 -0
  183. package/dist/permitted/getClientStatus.d.mts.map +1 -0
  184. package/dist/permitted/getClientStatus.mjs +27 -5
  185. package/dist/permitted/getClientStatus.mjs.map +1 -1
  186. package/dist/permitted/getFile.cjs +47 -0
  187. package/dist/permitted/getFile.cjs.map +1 -0
  188. package/dist/{types/permitted/getFile.d.ts → permitted/getFile.d.cts} +6 -5
  189. package/dist/permitted/getFile.d.cts.map +1 -0
  190. package/dist/permitted/getFile.d.mts +16 -0
  191. package/dist/permitted/getFile.d.mts.map +1 -0
  192. package/dist/permitted/getFile.mjs +42 -7
  193. package/dist/permitted/getFile.mjs.map +1 -1
  194. package/dist/permitted/getInterfaceState.cjs +62 -0
  195. package/dist/permitted/getInterfaceState.cjs.map +1 -0
  196. package/dist/{types/permitted/getInterfaceState.d.ts → permitted/getInterfaceState.d.cts} +6 -5
  197. package/dist/permitted/getInterfaceState.d.cts.map +1 -0
  198. package/dist/permitted/getInterfaceState.d.mts +19 -0
  199. package/dist/permitted/getInterfaceState.d.mts.map +1 -0
  200. package/dist/permitted/getInterfaceState.mjs +57 -5
  201. package/dist/permitted/getInterfaceState.mjs.map +1 -1
  202. package/dist/permitted/getSnaps.cjs +33 -0
  203. package/dist/permitted/getSnaps.cjs.map +1 -0
  204. package/dist/{types/permitted/getSnaps.d.ts → permitted/getSnaps.d.cts} +5 -4
  205. package/dist/permitted/getSnaps.d.cts.map +1 -0
  206. package/dist/permitted/getSnaps.d.mts +14 -0
  207. package/dist/permitted/getSnaps.d.mts.map +1 -0
  208. package/dist/permitted/getSnaps.mjs +28 -5
  209. package/dist/permitted/getSnaps.mjs.map +1 -1
  210. package/dist/permitted/handlers.cjs +31 -0
  211. package/dist/permitted/handlers.cjs.map +1 -0
  212. package/dist/{types/permitted/handlers.d.ts → permitted/handlers.d.cts} +1 -0
  213. package/dist/permitted/handlers.d.cts.map +1 -0
  214. package/dist/permitted/handlers.d.mts +35 -0
  215. package/dist/permitted/handlers.d.mts.map +1 -0
  216. package/dist/permitted/handlers.mjs +26 -19
  217. package/dist/permitted/handlers.mjs.map +1 -1
  218. package/dist/permitted/index.cjs +19 -0
  219. package/dist/permitted/index.cjs.map +1 -0
  220. package/dist/permitted/index.d.cts +12 -0
  221. package/dist/permitted/index.d.cts.map +1 -0
  222. package/dist/permitted/index.d.mts +12 -0
  223. package/dist/permitted/index.d.mts.map +1 -0
  224. package/dist/permitted/index.mjs +2 -26
  225. package/dist/permitted/index.mjs.map +1 -1
  226. package/dist/permitted/invokeKeyring.cjs +83 -0
  227. package/dist/permitted/invokeKeyring.cjs.map +1 -0
  228. package/dist/{types/permitted/invokeKeyring.d.ts → permitted/invokeKeyring.d.cts} +5 -4
  229. package/dist/permitted/invokeKeyring.d.cts.map +1 -0
  230. package/dist/permitted/invokeKeyring.d.mts +16 -0
  231. package/dist/permitted/invokeKeyring.d.mts.map +1 -0
  232. package/dist/permitted/invokeKeyring.mjs +78 -6
  233. package/dist/permitted/invokeKeyring.mjs.map +1 -1
  234. package/dist/permitted/invokeSnapSugar.cjs +68 -0
  235. package/dist/permitted/invokeSnapSugar.cjs.map +1 -0
  236. package/dist/{types/permitted/invokeSnapSugar.d.ts → permitted/invokeSnapSugar.d.cts} +6 -5
  237. package/dist/permitted/invokeSnapSugar.d.cts.map +1 -0
  238. package/dist/permitted/invokeSnapSugar.d.mts +35 -0
  239. package/dist/permitted/invokeSnapSugar.d.mts.map +1 -0
  240. package/dist/permitted/invokeSnapSugar.mjs +61 -9
  241. package/dist/permitted/invokeSnapSugar.mjs.map +1 -1
  242. package/dist/permitted/middleware.cjs +40 -0
  243. package/dist/permitted/middleware.cjs.map +1 -0
  244. package/dist/{types/permitted/middleware.d.ts → permitted/middleware.d.cts} +3 -2
  245. package/dist/permitted/middleware.d.cts.map +1 -0
  246. package/dist/permitted/middleware.d.mts +11 -0
  247. package/dist/permitted/middleware.d.mts.map +1 -0
  248. package/dist/permitted/middleware.mjs +35 -20
  249. package/dist/permitted/middleware.mjs.map +1 -1
  250. package/dist/permitted/requestSnaps.cjs +121 -0
  251. package/dist/permitted/requestSnaps.cjs.map +1 -0
  252. package/dist/{types/permitted/requestSnaps.d.ts → permitted/requestSnaps.d.cts} +5 -4
  253. package/dist/permitted/requestSnaps.d.cts.map +1 -0
  254. package/dist/permitted/requestSnaps.d.mts +51 -0
  255. package/dist/permitted/requestSnaps.d.mts.map +1 -0
  256. package/dist/permitted/requestSnaps.mjs +114 -10
  257. package/dist/permitted/requestSnaps.mjs.map +1 -1
  258. package/dist/permitted/resolveInterface.cjs +65 -0
  259. package/dist/permitted/resolveInterface.cjs.map +1 -0
  260. package/dist/{types/permitted/resolveInterface.d.ts → permitted/resolveInterface.d.cts} +8 -7
  261. package/dist/permitted/resolveInterface.d.cts.map +1 -0
  262. package/dist/permitted/resolveInterface.d.mts +22 -0
  263. package/dist/permitted/resolveInterface.d.mts.map +1 -0
  264. package/dist/permitted/resolveInterface.mjs +60 -5
  265. package/dist/permitted/resolveInterface.mjs.map +1 -1
  266. package/dist/permitted/updateInterface.cjs +65 -0
  267. package/dist/permitted/updateInterface.cjs.map +1 -0
  268. package/dist/{types/permitted/updateInterface.d.ts → permitted/updateInterface.d.cts} +62 -47
  269. package/dist/permitted/updateInterface.d.cts.map +1 -0
  270. package/dist/permitted/updateInterface.d.mts +181 -0
  271. package/dist/permitted/updateInterface.d.mts.map +1 -0
  272. package/dist/permitted/updateInterface.mjs +60 -5
  273. package/dist/permitted/updateInterface.mjs.map +1 -1
  274. package/dist/restricted/caveats/index.cjs +22 -0
  275. package/dist/restricted/caveats/index.cjs.map +1 -0
  276. package/dist/{types/restricted/caveats/index.d.ts → restricted/caveats/index.d.cts} +3 -2
  277. package/dist/restricted/caveats/index.d.cts.map +1 -0
  278. package/dist/restricted/caveats/index.d.mts +9 -0
  279. package/dist/restricted/caveats/index.d.mts.map +1 -0
  280. package/dist/restricted/caveats/index.mjs +17 -15
  281. package/dist/restricted/caveats/index.mjs.map +1 -1
  282. package/dist/restricted/caveats/permittedCoinTypes.cjs +90 -0
  283. package/dist/restricted/caveats/permittedCoinTypes.cjs.map +1 -0
  284. package/dist/{types/restricted/caveats/permittedCoinTypes.d.ts → restricted/caveats/permittedCoinTypes.d.cts} +5 -4
  285. package/dist/restricted/caveats/permittedCoinTypes.d.cts.map +1 -0
  286. package/dist/restricted/caveats/permittedCoinTypes.d.mts +30 -0
  287. package/dist/restricted/caveats/permittedCoinTypes.d.mts.map +1 -0
  288. package/dist/restricted/caveats/permittedCoinTypes.mjs +82 -11
  289. package/dist/restricted/caveats/permittedCoinTypes.mjs.map +1 -1
  290. package/dist/restricted/caveats/permittedDerivationPaths.cjs +70 -0
  291. package/dist/restricted/caveats/permittedDerivationPaths.cjs.map +1 -0
  292. package/dist/{types/restricted/caveats/permittedDerivationPaths.d.ts → restricted/caveats/permittedDerivationPaths.d.cts} +5 -4
  293. package/dist/restricted/caveats/permittedDerivationPaths.d.cts.map +1 -0
  294. package/dist/restricted/caveats/permittedDerivationPaths.d.mts +33 -0
  295. package/dist/restricted/caveats/permittedDerivationPaths.d.mts.map +1 -0
  296. package/dist/restricted/caveats/permittedDerivationPaths.mjs +62 -11
  297. package/dist/restricted/caveats/permittedDerivationPaths.mjs.map +1 -1
  298. package/dist/restricted/caveats/snapIds.cjs +56 -0
  299. package/dist/restricted/caveats/snapIds.cjs.map +1 -0
  300. package/dist/{types/restricted/caveats/snapIds.d.ts → restricted/caveats/snapIds.d.cts} +5 -4
  301. package/dist/restricted/caveats/snapIds.d.cts.map +1 -0
  302. package/dist/restricted/caveats/snapIds.d.mts +22 -0
  303. package/dist/restricted/caveats/snapIds.d.mts.map +1 -0
  304. package/dist/restricted/caveats/snapIds.mjs +49 -9
  305. package/dist/restricted/caveats/snapIds.mjs.map +1 -1
  306. package/dist/restricted/dialog.cjs +222 -0
  307. package/dist/restricted/dialog.cjs.map +1 -0
  308. package/dist/restricted/dialog.d.cts +432 -0
  309. package/dist/restricted/dialog.d.cts.map +1 -0
  310. package/dist/restricted/dialog.d.mts +432 -0
  311. package/dist/restricted/dialog.d.mts.map +1 -0
  312. package/dist/restricted/dialog.mjs +216 -9
  313. package/dist/restricted/dialog.mjs.map +1 -1
  314. package/dist/restricted/getBip32Entropy.cjs +69 -0
  315. package/dist/restricted/getBip32Entropy.cjs.map +1 -0
  316. package/dist/{types/restricted/getBip32Entropy.d.ts → restricted/getBip32Entropy.d.cts} +8 -7
  317. package/dist/restricted/getBip32Entropy.d.cts.map +1 -0
  318. package/dist/restricted/getBip32Entropy.d.mts +45 -0
  319. package/dist/restricted/getBip32Entropy.d.mts.map +1 -0
  320. package/dist/restricted/getBip32Entropy.mjs +63 -8
  321. package/dist/restricted/getBip32Entropy.mjs.map +1 -1
  322. package/dist/restricted/getBip32PublicKey.cjs +78 -0
  323. package/dist/restricted/getBip32PublicKey.cjs.map +1 -0
  324. package/dist/{types/restricted/getBip32PublicKey.d.ts → restricted/getBip32PublicKey.d.cts} +9 -8
  325. package/dist/restricted/getBip32PublicKey.d.cts.map +1 -0
  326. package/dist/restricted/getBip32PublicKey.d.mts +54 -0
  327. package/dist/restricted/getBip32PublicKey.d.mts.map +1 -0
  328. package/dist/restricted/getBip32PublicKey.mjs +72 -10
  329. package/dist/restricted/getBip32PublicKey.mjs.map +1 -1
  330. package/dist/restricted/getBip44Entropy.cjs +71 -0
  331. package/dist/restricted/getBip44Entropy.cjs.map +1 -0
  332. package/dist/{types/restricted/getBip44Entropy.d.ts → restricted/getBip44Entropy.d.cts} +8 -7
  333. package/dist/restricted/getBip44Entropy.d.cts.map +1 -0
  334. package/dist/restricted/getBip44Entropy.d.mts +47 -0
  335. package/dist/restricted/getBip44Entropy.d.mts.map +1 -0
  336. package/dist/restricted/getBip44Entropy.mjs +65 -7
  337. package/dist/restricted/getBip44Entropy.mjs.map +1 -1
  338. package/dist/restricted/getEntropy.cjs +59 -0
  339. package/dist/restricted/getEntropy.cjs.map +1 -0
  340. package/dist/{types/restricted/getEntropy.d.ts → restricted/getEntropy.d.cts} +10 -9
  341. package/dist/restricted/getEntropy.d.cts.map +1 -0
  342. package/dist/restricted/getEntropy.d.mts +62 -0
  343. package/dist/restricted/getEntropy.d.mts.map +1 -0
  344. package/dist/restricted/getEntropy.mjs +54 -8
  345. package/dist/restricted/getEntropy.mjs.map +1 -1
  346. package/dist/restricted/getLocale.cjs +47 -0
  347. package/dist/restricted/getLocale.cjs.map +1 -0
  348. package/dist/{types/restricted/getLocale.d.ts → restricted/getLocale.d.cts} +13 -11
  349. package/dist/restricted/getLocale.d.cts.map +1 -0
  350. package/dist/restricted/getLocale.d.mts +50 -0
  351. package/dist/restricted/getLocale.d.mts.map +1 -0
  352. package/dist/restricted/getLocale.mjs +40 -9
  353. package/dist/restricted/getLocale.mjs.map +1 -1
  354. package/dist/restricted/getPreferences.cjs +46 -0
  355. package/dist/restricted/getPreferences.cjs.map +1 -0
  356. package/dist/restricted/getPreferences.d.cts +49 -0
  357. package/dist/restricted/getPreferences.d.cts.map +1 -0
  358. package/dist/restricted/getPreferences.d.mts +49 -0
  359. package/dist/restricted/getPreferences.d.mts.map +1 -0
  360. package/dist/restricted/getPreferences.mjs +41 -0
  361. package/dist/restricted/getPreferences.mjs.map +1 -0
  362. package/dist/restricted/index.cjs +49 -0
  363. package/dist/restricted/index.cjs.map +1 -0
  364. package/dist/{types/restricted/index.d.ts → restricted/index.d.cts} +31 -16
  365. package/dist/restricted/index.d.cts.map +1 -0
  366. package/dist/restricted/index.d.mts +169 -0
  367. package/dist/restricted/index.d.mts.map +1 -0
  368. package/dist/restricted/index.mjs +27 -34
  369. package/dist/restricted/index.mjs.map +1 -1
  370. package/dist/restricted/invokeSnap.cjs +96 -0
  371. package/dist/restricted/invokeSnap.cjs.map +1 -0
  372. package/dist/{types/restricted/invokeSnap.d.ts → restricted/invokeSnap.d.cts} +14 -12
  373. package/dist/restricted/invokeSnap.d.cts.map +1 -0
  374. package/dist/restricted/invokeSnap.d.mts +65 -0
  375. package/dist/restricted/invokeSnap.d.mts.map +1 -0
  376. package/dist/restricted/invokeSnap.mjs +89 -11
  377. package/dist/restricted/invokeSnap.mjs.map +1 -1
  378. package/dist/restricted/manageAccounts.cjs +61 -0
  379. package/dist/restricted/manageAccounts.cjs.map +1 -0
  380. package/dist/{types/restricted/manageAccounts.d.ts → restricted/manageAccounts.d.cts} +10 -9
  381. package/dist/restricted/manageAccounts.d.cts.map +1 -0
  382. package/dist/restricted/manageAccounts.d.mts +65 -0
  383. package/dist/restricted/manageAccounts.d.mts.map +1 -0
  384. package/dist/restricted/manageAccounts.mjs +54 -11
  385. package/dist/restricted/manageAccounts.mjs.map +1 -1
  386. package/dist/restricted/manageState.cjs +175 -0
  387. package/dist/restricted/manageState.cjs.map +1 -0
  388. package/dist/{types/restricted/manageState.d.ts → restricted/manageState.d.cts} +10 -9
  389. package/dist/restricted/manageState.d.cts.map +1 -0
  390. package/dist/restricted/manageState.d.mts +111 -0
  391. package/dist/restricted/manageState.d.mts.map +1 -0
  392. package/dist/restricted/manageState.mjs +166 -18
  393. package/dist/restricted/manageState.mjs.map +1 -1
  394. package/dist/restricted/notify.cjs +108 -0
  395. package/dist/restricted/notify.cjs.map +1 -0
  396. package/dist/{types/restricted/notify.d.ts → restricted/notify.d.cts} +11 -10
  397. package/dist/restricted/notify.d.cts.map +1 -0
  398. package/dist/restricted/notify.d.mts +83 -0
  399. package/dist/restricted/notify.d.mts.map +1 -0
  400. package/dist/restricted/notify.mjs +100 -11
  401. package/dist/restricted/notify.mjs.map +1 -1
  402. package/dist/utils.cjs +140 -0
  403. package/dist/utils.cjs.map +1 -0
  404. package/dist/{types/utils.d.ts → utils.d.cts} +9 -7
  405. package/dist/utils.d.cts.map +1 -0
  406. package/dist/utils.d.mts +98 -0
  407. package/dist/utils.d.mts.map +1 -0
  408. package/dist/utils.mjs +132 -12
  409. package/dist/utils.mjs.map +1 -1
  410. package/package.json +20 -19
  411. package/dist/chunk-23XDKQW2.mjs +0 -73
  412. package/dist/chunk-23XDKQW2.mjs.map +0 -1
  413. package/dist/chunk-2CTOCP34.mjs +0 -45
  414. package/dist/chunk-2CTOCP34.mjs.map +0 -1
  415. package/dist/chunk-2L2ATCIK.mjs +0 -78
  416. package/dist/chunk-2L2ATCIK.mjs.map +0 -1
  417. package/dist/chunk-2RDYC42U.mjs +0 -67
  418. package/dist/chunk-2RDYC42U.mjs.map +0 -1
  419. package/dist/chunk-2SFH57UV.js +0 -21
  420. package/dist/chunk-33LLA2MH.mjs +0 -75
  421. package/dist/chunk-33LLA2MH.mjs.map +0 -1
  422. package/dist/chunk-33MTKZ4H.js +0 -90
  423. package/dist/chunk-33MTKZ4H.js.map +0 -1
  424. package/dist/chunk-3UAWEHMF.js +0 -18
  425. package/dist/chunk-3UAWEHMF.js.map +0 -1
  426. package/dist/chunk-3WCLDJAS.mjs +0 -74
  427. package/dist/chunk-3WCLDJAS.mjs.map +0 -1
  428. package/dist/chunk-3WKIKYUH.js +0 -78
  429. package/dist/chunk-3WKIKYUH.js.map +0 -1
  430. package/dist/chunk-4D2B2UQ6.mjs +0 -23
  431. package/dist/chunk-4D2B2UQ6.mjs.map +0 -1
  432. package/dist/chunk-4LSOS7SM.js +0 -23
  433. package/dist/chunk-4LSOS7SM.js.map +0 -1
  434. package/dist/chunk-4PWFZPJC.js +0 -79
  435. package/dist/chunk-4PWFZPJC.js.map +0 -1
  436. package/dist/chunk-4TUORIA6.js +0 -59
  437. package/dist/chunk-4TUORIA6.js.map +0 -1
  438. package/dist/chunk-57BL7O2P.mjs +0 -69
  439. package/dist/chunk-57BL7O2P.mjs.map +0 -1
  440. package/dist/chunk-62URQ5VS.mjs +0 -18
  441. package/dist/chunk-62URQ5VS.mjs.map +0 -1
  442. package/dist/chunk-6VJVURH5.js +0 -43
  443. package/dist/chunk-6VJVURH5.js.map +0 -1
  444. package/dist/chunk-756OQVOC.js +0 -67
  445. package/dist/chunk-756OQVOC.js.map +0 -1
  446. package/dist/chunk-7CV677MM.js +0 -42
  447. package/dist/chunk-7CV677MM.js.map +0 -1
  448. package/dist/chunk-7HVABE5R.js +0 -74
  449. package/dist/chunk-7HVABE5R.js.map +0 -1
  450. package/dist/chunk-7P6TF6CE.mjs +0 -55
  451. package/dist/chunk-7P6TF6CE.mjs.map +0 -1
  452. package/dist/chunk-7TVJV425.js +0 -1
  453. package/dist/chunk-7TVJV425.js.map +0 -1
  454. package/dist/chunk-A6H6I4VH.js +0 -61
  455. package/dist/chunk-A6H6I4VH.js.map +0 -1
  456. package/dist/chunk-ATBKAX2S.js +0 -39
  457. package/dist/chunk-ATBKAX2S.js.map +0 -1
  458. package/dist/chunk-B3NIHNXW.js +0 -23
  459. package/dist/chunk-B3NIHNXW.js.map +0 -1
  460. package/dist/chunk-BSAXPL2T.mjs +0 -59
  461. package/dist/chunk-BSAXPL2T.mjs.map +0 -1
  462. package/dist/chunk-CD4OUHO5.mjs +0 -20
  463. package/dist/chunk-CD4OUHO5.mjs.map +0 -1
  464. package/dist/chunk-CH5O2YCX.mjs +0 -18
  465. package/dist/chunk-CH5O2YCX.mjs.map +0 -1
  466. package/dist/chunk-DLVPMPRZ.js +0 -45
  467. package/dist/chunk-DLVPMPRZ.js.map +0 -1
  468. package/dist/chunk-DTZF746A.mjs +0 -21
  469. package/dist/chunk-DTZF746A.mjs.map +0 -1
  470. package/dist/chunk-E27BGHCR.js +0 -78
  471. package/dist/chunk-E27BGHCR.js.map +0 -1
  472. package/dist/chunk-ELCOEVKA.js +0 -196
  473. package/dist/chunk-ELCOEVKA.js.map +0 -1
  474. package/dist/chunk-EOXTZF5U.js +0 -47
  475. package/dist/chunk-EOXTZF5U.js.map +0 -1
  476. package/dist/chunk-FCVWU5XH.js +0 -73
  477. package/dist/chunk-FFHVA6PP.js +0 -82
  478. package/dist/chunk-FFHVA6PP.js.map +0 -1
  479. package/dist/chunk-FJ7COFRJ.mjs +0 -54
  480. package/dist/chunk-FJ7COFRJ.mjs.map +0 -1
  481. package/dist/chunk-FNUO7MQ4.mjs +0 -43
  482. package/dist/chunk-FNUO7MQ4.mjs.map +0 -1
  483. package/dist/chunk-GE5XFDUE.js +0 -21
  484. package/dist/chunk-GE5XFDUE.js.map +0 -1
  485. package/dist/chunk-GPV4ETUH.mjs +0 -47
  486. package/dist/chunk-GPV4ETUH.mjs.map +0 -1
  487. package/dist/chunk-H6X3CWWQ.js +0 -54
  488. package/dist/chunk-H6X3CWWQ.js.map +0 -1
  489. package/dist/chunk-HOECEYMT.mjs +0 -70
  490. package/dist/chunk-HOECEYMT.mjs.map +0 -1
  491. package/dist/chunk-HZQ34FQT.js +0 -49
  492. package/dist/chunk-HZQ34FQT.js.map +0 -1
  493. package/dist/chunk-I2P65KBQ.mjs +0 -67
  494. package/dist/chunk-I2P65KBQ.mjs.map +0 -1
  495. package/dist/chunk-I3G6S6MJ.js +0 -68
  496. package/dist/chunk-I3G6S6MJ.js.map +0 -1
  497. package/dist/chunk-IE6EHYEG.js +0 -57
  498. package/dist/chunk-IE6EHYEG.js.map +0 -1
  499. package/dist/chunk-IZYMBIBD.mjs +0 -32
  500. package/dist/chunk-IZYMBIBD.mjs.map +0 -1
  501. package/dist/chunk-JWDQUKKU.mjs +0 -80
  502. package/dist/chunk-JWDQUKKU.mjs.map +0 -1
  503. package/dist/chunk-KRSIAVUJ.js +0 -115
  504. package/dist/chunk-KRSIAVUJ.js.map +0 -1
  505. package/dist/chunk-KSTF5JYB.mjs +0 -23
  506. package/dist/chunk-KSTF5JYB.mjs.map +0 -1
  507. package/dist/chunk-LR7UR4YU.mjs +0 -52
  508. package/dist/chunk-LR7UR4YU.mjs.map +0 -1
  509. package/dist/chunk-LXJBBRQ4.mjs +0 -57
  510. package/dist/chunk-LXJBBRQ4.mjs.map +0 -1
  511. package/dist/chunk-M2JQCKR7.js +0 -143
  512. package/dist/chunk-M2JQCKR7.js.map +0 -1
  513. package/dist/chunk-MC2Z4NF6.mjs +0 -45
  514. package/dist/chunk-MC2Z4NF6.mjs.map +0 -1
  515. package/dist/chunk-MXPVC2XP.mjs +0 -105
  516. package/dist/chunk-MXPVC2XP.mjs.map +0 -1
  517. package/dist/chunk-NU4NAAFG.js +0 -1
  518. package/dist/chunk-NU4NAAFG.js.map +0 -1
  519. package/dist/chunk-NWT2EXFD.js +0 -18
  520. package/dist/chunk-NWT2EXFD.js.map +0 -1
  521. package/dist/chunk-O66NZFSD.mjs +0 -23
  522. package/dist/chunk-O66NZFSD.mjs.map +0 -1
  523. package/dist/chunk-ODN35VOK.mjs +0 -119
  524. package/dist/chunk-ODN35VOK.mjs.map +0 -1
  525. package/dist/chunk-OI33OL7K.js +0 -47
  526. package/dist/chunk-OI33OL7K.js.map +0 -1
  527. package/dist/chunk-PIAWDTWO.mjs +0 -68
  528. package/dist/chunk-PIAWDTWO.mjs.map +0 -1
  529. package/dist/chunk-PIRQCNBJ.mjs +0 -78
  530. package/dist/chunk-PIRQCNBJ.mjs.map +0 -1
  531. package/dist/chunk-PS6OEQXL.js +0 -105
  532. package/dist/chunk-PS6OEQXL.js.map +0 -1
  533. package/dist/chunk-PXU6PORA.js +0 -119
  534. package/dist/chunk-PXU6PORA.js.map +0 -1
  535. package/dist/chunk-Q27K2I6Z.js +0 -23
  536. package/dist/chunk-Q27K2I6Z.js.map +0 -1
  537. package/dist/chunk-QDZAWH6F.js +0 -80
  538. package/dist/chunk-QDZAWH6F.js.map +0 -1
  539. package/dist/chunk-QMULJEYN.js +0 -35
  540. package/dist/chunk-QMULJEYN.js.map +0 -1
  541. package/dist/chunk-SYB5TG5O.mjs +0 -49
  542. package/dist/chunk-SYB5TG5O.mjs.map +0 -1
  543. package/dist/chunk-SYUGPLEP.js +0 -32
  544. package/dist/chunk-SYUGPLEP.js.map +0 -1
  545. package/dist/chunk-T56DKVFS.js +0 -70
  546. package/dist/chunk-T56DKVFS.js.map +0 -1
  547. package/dist/chunk-TAXLFFV4.mjs +0 -115
  548. package/dist/chunk-TAXLFFV4.mjs.map +0 -1
  549. package/dist/chunk-TE4W25CA.mjs +0 -143
  550. package/dist/chunk-TE4W25CA.mjs.map +0 -1
  551. package/dist/chunk-TG63GBK3.mjs +0 -1
  552. package/dist/chunk-TG63GBK3.mjs.map +0 -1
  553. package/dist/chunk-TNENASGX.mjs +0 -1
  554. package/dist/chunk-TNENASGX.mjs.map +0 -1
  555. package/dist/chunk-TQCUJQHY.mjs +0 -196
  556. package/dist/chunk-TQCUJQHY.mjs.map +0 -1
  557. package/dist/chunk-TT4DP2YW.mjs +0 -35
  558. package/dist/chunk-TT4DP2YW.mjs.map +0 -1
  559. package/dist/chunk-TVC3E5LI.mjs +0 -42
  560. package/dist/chunk-TVC3E5LI.mjs.map +0 -1
  561. package/dist/chunk-U6TJQLNV.js +0 -45
  562. package/dist/chunk-U6TJQLNV.js.map +0 -1
  563. package/dist/chunk-UB3733UY.mjs +0 -23
  564. package/dist/chunk-UB3733UY.mjs.map +0 -1
  565. package/dist/chunk-UCWANXBZ.js +0 -45
  566. package/dist/chunk-UCWANXBZ.js.map +0 -1
  567. package/dist/chunk-UF3UJTY3.js +0 -55
  568. package/dist/chunk-UF3UJTY3.js.map +0 -1
  569. package/dist/chunk-UY4DUF53.mjs +0 -45
  570. package/dist/chunk-UY4DUF53.mjs.map +0 -1
  571. package/dist/chunk-VUA6ICJO.js +0 -52
  572. package/dist/chunk-VUA6ICJO.js.map +0 -1
  573. package/dist/chunk-VVBTXSID.mjs +0 -82
  574. package/dist/chunk-VVBTXSID.mjs.map +0 -1
  575. package/dist/chunk-VYII7C3J.mjs +0 -79
  576. package/dist/chunk-VYII7C3J.mjs.map +0 -1
  577. package/dist/chunk-W33UWNA2.mjs +0 -90
  578. package/dist/chunk-W33UWNA2.mjs.map +0 -1
  579. package/dist/chunk-XGMYBPQR.mjs +0 -47
  580. package/dist/chunk-XGMYBPQR.mjs.map +0 -1
  581. package/dist/chunk-YGKFOOWI.js +0 -20
  582. package/dist/chunk-YGKFOOWI.js.map +0 -1
  583. package/dist/chunk-YOHE52XB.js +0 -23
  584. package/dist/chunk-YOHE52XB.js.map +0 -1
  585. package/dist/chunk-YT2Q3W5C.js +0 -69
  586. package/dist/chunk-YT2Q3W5C.js.map +0 -1
  587. package/dist/chunk-YZMFLB67.js +0 -75
  588. package/dist/chunk-YZMFLB67.js.map +0 -1
  589. package/dist/chunk-Z6YFGWHN.mjs +0 -61
  590. package/dist/chunk-Z6YFGWHN.mjs.map +0 -1
  591. package/dist/chunk-ZH3FC55E.mjs +0 -21
  592. package/dist/chunk-ZH3FC55E.mjs.map +0 -1
  593. package/dist/chunk-ZKISN6YP.js +0 -67
  594. package/dist/chunk-ZKISN6YP.js.map +0 -1
  595. package/dist/chunk-ZXDCQWMJ.mjs +0 -39
  596. package/dist/chunk-ZXDCQWMJ.mjs.map +0 -1
  597. package/dist/endowments/caveats/generic.js +0 -7
  598. package/dist/endowments/caveats/generic.js.map +0 -1
  599. package/dist/endowments/caveats/index.js +0 -18
  600. package/dist/endowments/caveats/index.js.map +0 -1
  601. package/dist/endowments/caveats/requestTime.js +0 -13
  602. package/dist/endowments/caveats/requestTime.js.map +0 -1
  603. package/dist/endowments/cronjob.js +0 -16
  604. package/dist/endowments/cronjob.js.map +0 -1
  605. package/dist/endowments/enum.js +0 -7
  606. package/dist/endowments/enum.js.map +0 -1
  607. package/dist/endowments/ethereum-provider.js +0 -8
  608. package/dist/endowments/ethereum-provider.js.map +0 -1
  609. package/dist/endowments/home-page.js +0 -8
  610. package/dist/endowments/home-page.js.map +0 -1
  611. package/dist/endowments/index.js +0 -54
  612. package/dist/endowments/index.js.map +0 -1
  613. package/dist/endowments/keyring.js +0 -17
  614. package/dist/endowments/keyring.js.map +0 -1
  615. package/dist/endowments/lifecycle-hooks.js +0 -8
  616. package/dist/endowments/lifecycle-hooks.js.map +0 -1
  617. package/dist/endowments/name-lookup.js +0 -19
  618. package/dist/endowments/name-lookup.js.map +0 -1
  619. package/dist/endowments/network-access.js +0 -8
  620. package/dist/endowments/network-access.js.map +0 -1
  621. package/dist/endowments/rpc.js +0 -17
  622. package/dist/endowments/rpc.js.map +0 -1
  623. package/dist/endowments/signature-insight.js +0 -17
  624. package/dist/endowments/signature-insight.js.map +0 -1
  625. package/dist/endowments/transaction-insight.js +0 -17
  626. package/dist/endowments/transaction-insight.js.map +0 -1
  627. package/dist/endowments/web-assembly.js +0 -8
  628. package/dist/endowments/web-assembly.js.map +0 -1
  629. package/dist/index.js +0 -122
  630. package/dist/index.js.map +0 -1
  631. package/dist/permissions.js +0 -43
  632. package/dist/permissions.js.map +0 -1
  633. package/dist/permitted/createInterface.js +0 -7
  634. package/dist/permitted/createInterface.js.map +0 -1
  635. package/dist/permitted/getAllSnaps.js +0 -7
  636. package/dist/permitted/getAllSnaps.js.map +0 -1
  637. package/dist/permitted/getClientStatus.js +0 -7
  638. package/dist/permitted/getClientStatus.js.map +0 -1
  639. package/dist/permitted/getFile.js +0 -9
  640. package/dist/permitted/getFile.js.map +0 -1
  641. package/dist/permitted/getInterfaceState.js +0 -7
  642. package/dist/permitted/getInterfaceState.js.map +0 -1
  643. package/dist/permitted/getSnaps.js +0 -7
  644. package/dist/permitted/getSnaps.js.map +0 -1
  645. package/dist/permitted/handlers.js +0 -21
  646. package/dist/permitted/handlers.js.map +0 -1
  647. package/dist/permitted/index.js +0 -27
  648. package/dist/permitted/index.js.map +0 -1
  649. package/dist/permitted/invokeKeyring.js +0 -8
  650. package/dist/permitted/invokeKeyring.js.map +0 -1
  651. package/dist/permitted/invokeSnapSugar.js +0 -11
  652. package/dist/permitted/invokeSnapSugar.js.map +0 -1
  653. package/dist/permitted/middleware.js +0 -21
  654. package/dist/permitted/middleware.js.map +0 -1
  655. package/dist/permitted/requestSnaps.js +0 -12
  656. package/dist/permitted/requestSnaps.js.map +0 -1
  657. package/dist/permitted/resolveInterface.js +0 -7
  658. package/dist/permitted/resolveInterface.js.map +0 -1
  659. package/dist/permitted/updateInterface.js +0 -7
  660. package/dist/permitted/updateInterface.js.map +0 -1
  661. package/dist/restricted/caveats/index.js +0 -17
  662. package/dist/restricted/caveats/index.js.map +0 -1
  663. package/dist/restricted/caveats/permittedCoinTypes.js +0 -13
  664. package/dist/restricted/caveats/permittedCoinTypes.js.map +0 -1
  665. package/dist/restricted/caveats/permittedDerivationPaths.js +0 -13
  666. package/dist/restricted/caveats/permittedDerivationPaths.js.map +0 -1
  667. package/dist/restricted/caveats/snapIds.js +0 -11
  668. package/dist/restricted/caveats/snapIds.js.map +0 -1
  669. package/dist/restricted/dialog.js +0 -11
  670. package/dist/restricted/dialog.js.map +0 -1
  671. package/dist/restricted/getBip32Entropy.js +0 -10
  672. package/dist/restricted/getBip32Entropy.js.map +0 -1
  673. package/dist/restricted/getBip32PublicKey.js +0 -12
  674. package/dist/restricted/getBip32PublicKey.js.map +0 -1
  675. package/dist/restricted/getBip44Entropy.js +0 -9
  676. package/dist/restricted/getBip44Entropy.js.map +0 -1
  677. package/dist/restricted/getEntropy.js +0 -10
  678. package/dist/restricted/getEntropy.js.map +0 -1
  679. package/dist/restricted/getLocale.js +0 -11
  680. package/dist/restricted/getLocale.js.map +0 -1
  681. package/dist/restricted/index.js +0 -36
  682. package/dist/restricted/index.js.map +0 -1
  683. package/dist/restricted/invokeSnap.js +0 -13
  684. package/dist/restricted/invokeSnap.js.map +0 -1
  685. package/dist/restricted/manageAccounts.js +0 -13
  686. package/dist/restricted/manageAccounts.js.map +0 -1
  687. package/dist/restricted/manageState.js +0 -20
  688. package/dist/restricted/manageState.js.map +0 -1
  689. package/dist/restricted/notify.js +0 -13
  690. package/dist/restricted/notify.js.map +0 -1
  691. package/dist/tsconfig.build.tsbuildinfo +0 -1
  692. package/dist/types/__fixtures__/index.d.ts +0 -1
  693. package/dist/types/endowments/caveats/index.d.ts +0 -2
  694. package/dist/types/index.d.ts +0 -7
  695. package/dist/types/permitted/index.d.ts +0 -11
  696. package/dist/types/restricted/dialog.d.ts +0 -1351
  697. package/dist/utils.js +0 -13
  698. package/dist/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestSnaps.cjs","sourceRoot":"","sources":["../../src/permitted/requestSnaps.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type {\n PermissionConstraint,\n RequestedPermissions,\n Caveat,\n PermittedHandlerExport,\n} from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n RequestSnapsParams,\n RequestSnapsResult,\n} from '@metamask/snaps-sdk';\nimport type { SnapsPermissionRequest } from '@metamask/snaps-utils';\nimport {\n SnapCaveatType,\n verifyRequestedSnapPermissions,\n} from '@metamask/snaps-utils';\nimport type {\n JsonRpcRequest,\n PendingJsonRpcResponse,\n Json,\n} from '@metamask/utils';\nimport { hasProperty, isObject } from '@metamask/utils';\n\nimport { WALLET_SNAP_PERMISSION_KEY } from '../restricted/invokeSnap';\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<RequestSnapsHooks> = {\n installSnaps: true,\n requestPermissions: true,\n getPermissions: true,\n};\n\n/**\n * `wallet_requestSnaps` installs the requested Snaps and requests permission to use them if necessary.\n */\nexport const requestSnapsHandler: PermittedHandlerExport<\n RequestSnapsHooks,\n RequestSnapsParams,\n RequestSnapsResult\n> = {\n methodNames: ['wallet_requestSnaps'],\n implementation: requestSnapsImplementation,\n hookNames,\n};\n\nexport type RequestSnapsHooks = {\n /**\n * Installs the requested snaps if they are permitted.\n */\n installSnaps: (\n requestedSnaps: RequestSnapsParams,\n ) => Promise<RequestSnapsResult>;\n\n /**\n * Initiates a permission request for the requesting origin.\n *\n * @returns The result of the permissions request.\n */\n requestPermissions: (\n permissions: RequestedPermissions,\n ) => Promise<\n [\n Record<string, PermissionConstraint>,\n { data: Record<string, unknown>; id: string; origin: string },\n ]\n >;\n\n /**\n * Gets the current permissions for the requesting origin.\n *\n * @returns The current permissions of the requesting origin.\n */\n getPermissions: () => Promise<\n Record<string, PermissionConstraint> | undefined\n >;\n};\n\n/**\n * Checks whether an origin has existing `wallet_snap` permission and\n * whether or not it has the requested snapIds caveat.\n *\n * @param existingPermissions - The existing permissions for the origin.\n * @param requestedSnaps - The requested snaps.\n * @returns True if the existing permissions satisfy the requested snaps, otherwise false.\n */\nexport function hasRequestedSnaps(\n existingPermissions: Record<string, PermissionConstraint>,\n requestedSnaps: Record<string, unknown>,\n): boolean {\n const snapIdCaveat = existingPermissions[\n WALLET_SNAP_PERMISSION_KEY\n ]?.caveats?.find(\n (caveat: Caveat<string, Json>) => caveat.type === SnapCaveatType.SnapIds,\n );\n\n const permittedSnaps = snapIdCaveat?.value;\n if (isObject(permittedSnaps)) {\n return Object.keys(requestedSnaps).every((requestedSnap) =>\n hasProperty(permittedSnaps, requestedSnap),\n );\n }\n return false;\n}\n\n/**\n * Constructs a valid permission request with merged caveats based on existing permissions\n * and the requested snaps.\n *\n * @param existingPermissions - The existing permissions for the origin.\n * @param requestedPermissions - The permission request passed into `requestPermissions`.\n * @returns `requestedPermissions`.\n */\nexport function getSnapPermissionsRequest(\n existingPermissions: Record<string, PermissionConstraint>,\n requestedPermissions: unknown,\n): SnapsPermissionRequest {\n verifyRequestedSnapPermissions(requestedPermissions);\n\n if (!existingPermissions[WALLET_SNAP_PERMISSION_KEY]) {\n return requestedPermissions;\n }\n\n const snapIdCaveat = existingPermissions[\n WALLET_SNAP_PERMISSION_KEY\n ].caveats?.find(\n (caveat: Caveat<string, Json>) => caveat.type === SnapCaveatType.SnapIds,\n );\n\n const permittedSnaps = (snapIdCaveat?.value as Record<string, Json>) ?? {};\n\n const requestedSnaps =\n requestedPermissions[WALLET_SNAP_PERMISSION_KEY].caveats[0].value;\n\n const snapIdSet = new Set([\n ...Object.keys(permittedSnaps),\n ...Object.keys(requestedSnaps),\n ]);\n\n const mergedCaveatValue = [...snapIdSet].reduce<Record<string, Json>>(\n (request, snapId) => {\n request[snapId] = requestedSnaps[snapId] ?? permittedSnaps[snapId];\n return request;\n },\n {},\n );\n\n requestedPermissions[WALLET_SNAP_PERMISSION_KEY].caveats[0].value =\n mergedCaveatValue;\n\n return requestedPermissions;\n}\n\n/**\n * The `wallet_requestSnaps` method implementation.\n * Tries to install the requested snaps and adds them to the JSON-RPC response.\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.installSnaps - A function that tries to install a given snap, prompting the user if necessary.\n * @param hooks.requestPermissions - A function that requests permissions on\n * behalf of a subject.\n * @param hooks.getPermissions - A function that gets the current permissions.\n * @returns A promise that resolves once the JSON-RPC response has been modified.\n * @throws If the params are invalid.\n */\nasync function requestSnapsImplementation(\n req: JsonRpcRequest<RequestSnapsParams>,\n res: PendingJsonRpcResponse<RequestSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { installSnaps, requestPermissions, getPermissions }: RequestSnapsHooks,\n): Promise<void> {\n const requestedSnaps = req.params;\n if (!isObject(requestedSnaps)) {\n return end(\n rpcErrors.invalidParams({\n message: '\"params\" must be an object.',\n }),\n );\n }\n\n try {\n if (Object.keys(requestedSnaps).length === 0) {\n return end(\n rpcErrors.invalidParams({\n message: 'Request must have at least one requested snap.',\n }),\n );\n }\n\n const requestedPermissions = {\n [WALLET_SNAP_PERMISSION_KEY]: {\n caveats: [{ type: SnapCaveatType.SnapIds, value: requestedSnaps }],\n },\n } as RequestedPermissions;\n const existingPermissions = await getPermissions();\n\n if (!existingPermissions) {\n const [, metadata] = await requestPermissions(requestedPermissions);\n res.result = metadata.data[\n WALLET_SNAP_PERMISSION_KEY\n ] as RequestSnapsResult;\n } else if (hasRequestedSnaps(existingPermissions, requestedSnaps)) {\n res.result = await installSnaps(requestedSnaps);\n } else {\n const mergedPermissionsRequest = getSnapPermissionsRequest(\n existingPermissions,\n requestedPermissions,\n );\n\n const [, metadata] = await requestPermissions(mergedPermissionsRequest);\n res.result = metadata.data[\n WALLET_SNAP_PERMISSION_KEY\n ] as RequestSnapsResult;\n }\n } catch (error) {\n res.error = error;\n }\n\n return end();\n}\n"]}
@@ -1,11 +1,11 @@
1
- import type { PermissionConstraint, RequestedPermissions, PermittedHandlerExport } from '@metamask/permission-controller';
2
- import type { RequestSnapsParams, RequestSnapsResult } from '@metamask/snaps-sdk';
3
- import type { SnapsPermissionRequest } from '@metamask/snaps-utils';
1
+ import type { PermissionConstraint, RequestedPermissions, PermittedHandlerExport } from "@metamask/permission-controller";
2
+ import type { RequestSnapsParams, RequestSnapsResult } from "@metamask/snaps-sdk";
3
+ import type { SnapsPermissionRequest } from "@metamask/snaps-utils";
4
4
  /**
5
5
  * `wallet_requestSnaps` installs the requested Snaps and requests permission to use them if necessary.
6
6
  */
7
7
  export declare const requestSnapsHandler: PermittedHandlerExport<RequestSnapsHooks, RequestSnapsParams, RequestSnapsResult>;
8
- export declare type RequestSnapsHooks = {
8
+ export type RequestSnapsHooks = {
9
9
  /**
10
10
  * Installs the requested snaps if they are permitted.
11
11
  */
@@ -48,3 +48,4 @@ export declare function hasRequestedSnaps(existingPermissions: Record<string, Pe
48
48
  * @returns `requestedPermissions`.
49
49
  */
50
50
  export declare function getSnapPermissionsRequest(existingPermissions: Record<string, PermissionConstraint>, requestedPermissions: unknown): SnapsPermissionRequest;
51
+ //# sourceMappingURL=requestSnaps.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestSnaps.d.cts","sourceRoot":"","sources":["../../src/permitted/requestSnaps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EAEpB,sBAAsB,EACvB,wCAAwC;AAEzC,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,8BAA8B;AAqBpE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,sBAAsB,CACtD,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,CAKnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,YAAY,EAAE,CACZ,cAAc,EAAE,kBAAkB,KAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEjC;;;;OAIG;IACH,kBAAkB,EAAE,CAClB,WAAW,EAAE,oBAAoB,KAC9B,OAAO,CACV;QACE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;QACpC;YAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE;KAC9D,CACF,CAAC;IAEF;;;;OAIG;IACH,cAAc,EAAE,MAAM,OAAO,CAC3B,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,SAAS,CACjD,CAAC;CACH,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACzD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,OAAO,CAcT;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACzD,oBAAoB,EAAE,OAAO,GAC5B,sBAAsB,CAmCxB"}
@@ -0,0 +1,51 @@
1
+ import type { PermissionConstraint, RequestedPermissions, PermittedHandlerExport } from "@metamask/permission-controller";
2
+ import type { RequestSnapsParams, RequestSnapsResult } from "@metamask/snaps-sdk";
3
+ import type { SnapsPermissionRequest } from "@metamask/snaps-utils";
4
+ /**
5
+ * `wallet_requestSnaps` installs the requested Snaps and requests permission to use them if necessary.
6
+ */
7
+ export declare const requestSnapsHandler: PermittedHandlerExport<RequestSnapsHooks, RequestSnapsParams, RequestSnapsResult>;
8
+ export type RequestSnapsHooks = {
9
+ /**
10
+ * Installs the requested snaps if they are permitted.
11
+ */
12
+ installSnaps: (requestedSnaps: RequestSnapsParams) => Promise<RequestSnapsResult>;
13
+ /**
14
+ * Initiates a permission request for the requesting origin.
15
+ *
16
+ * @returns The result of the permissions request.
17
+ */
18
+ requestPermissions: (permissions: RequestedPermissions) => Promise<[
19
+ Record<string, PermissionConstraint>,
20
+ {
21
+ data: Record<string, unknown>;
22
+ id: string;
23
+ origin: string;
24
+ }
25
+ ]>;
26
+ /**
27
+ * Gets the current permissions for the requesting origin.
28
+ *
29
+ * @returns The current permissions of the requesting origin.
30
+ */
31
+ getPermissions: () => Promise<Record<string, PermissionConstraint> | undefined>;
32
+ };
33
+ /**
34
+ * Checks whether an origin has existing `wallet_snap` permission and
35
+ * whether or not it has the requested snapIds caveat.
36
+ *
37
+ * @param existingPermissions - The existing permissions for the origin.
38
+ * @param requestedSnaps - The requested snaps.
39
+ * @returns True if the existing permissions satisfy the requested snaps, otherwise false.
40
+ */
41
+ export declare function hasRequestedSnaps(existingPermissions: Record<string, PermissionConstraint>, requestedSnaps: Record<string, unknown>): boolean;
42
+ /**
43
+ * Constructs a valid permission request with merged caveats based on existing permissions
44
+ * and the requested snaps.
45
+ *
46
+ * @param existingPermissions - The existing permissions for the origin.
47
+ * @param requestedPermissions - The permission request passed into `requestPermissions`.
48
+ * @returns `requestedPermissions`.
49
+ */
50
+ export declare function getSnapPermissionsRequest(existingPermissions: Record<string, PermissionConstraint>, requestedPermissions: unknown): SnapsPermissionRequest;
51
+ //# sourceMappingURL=requestSnaps.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestSnaps.d.mts","sourceRoot":"","sources":["../../src/permitted/requestSnaps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EAEpB,sBAAsB,EACvB,wCAAwC;AAEzC,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,8BAA8B;AAqBpE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,sBAAsB,CACtD,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,CAKnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,YAAY,EAAE,CACZ,cAAc,EAAE,kBAAkB,KAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEjC;;;;OAIG;IACH,kBAAkB,EAAE,CAClB,WAAW,EAAE,oBAAoB,KAC9B,OAAO,CACV;QACE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;QACpC;YAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE;KAC9D,CACF,CAAC;IAEF;;;;OAIG;IACH,cAAc,EAAE,MAAM,OAAO,CAC3B,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,SAAS,CACjD,CAAC;CACH,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACzD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,OAAO,CAcT;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACzD,oBAAoB,EAAE,OAAO,GAC5B,sBAAsB,CAmCxB"}
@@ -1,12 +1,116 @@
1
- import {
2
- getSnapPermissionsRequest,
3
- hasRequestedSnaps,
4
- requestSnapsHandler
5
- } from "../chunk-MXPVC2XP.mjs";
6
- import "../chunk-VVBTXSID.mjs";
7
- export {
8
- getSnapPermissionsRequest,
9
- hasRequestedSnaps,
10
- requestSnapsHandler
1
+ import { rpcErrors } from "@metamask/rpc-errors";
2
+ import { SnapCaveatType, verifyRequestedSnapPermissions } from "@metamask/snaps-utils";
3
+ import { hasProperty, isObject } from "@metamask/utils";
4
+ import { WALLET_SNAP_PERMISSION_KEY } from "../restricted/invokeSnap.mjs";
5
+ const hookNames = {
6
+ installSnaps: true,
7
+ requestPermissions: true,
8
+ getPermissions: true,
11
9
  };
10
+ /**
11
+ * `wallet_requestSnaps` installs the requested Snaps and requests permission to use them if necessary.
12
+ */
13
+ export const requestSnapsHandler = {
14
+ methodNames: ['wallet_requestSnaps'],
15
+ implementation: requestSnapsImplementation,
16
+ hookNames,
17
+ };
18
+ /**
19
+ * Checks whether an origin has existing `wallet_snap` permission and
20
+ * whether or not it has the requested snapIds caveat.
21
+ *
22
+ * @param existingPermissions - The existing permissions for the origin.
23
+ * @param requestedSnaps - The requested snaps.
24
+ * @returns True if the existing permissions satisfy the requested snaps, otherwise false.
25
+ */
26
+ export function hasRequestedSnaps(existingPermissions, requestedSnaps) {
27
+ const snapIdCaveat = existingPermissions[WALLET_SNAP_PERMISSION_KEY]?.caveats?.find((caveat) => caveat.type === SnapCaveatType.SnapIds);
28
+ const permittedSnaps = snapIdCaveat?.value;
29
+ if (isObject(permittedSnaps)) {
30
+ return Object.keys(requestedSnaps).every((requestedSnap) => hasProperty(permittedSnaps, requestedSnap));
31
+ }
32
+ return false;
33
+ }
34
+ /**
35
+ * Constructs a valid permission request with merged caveats based on existing permissions
36
+ * and the requested snaps.
37
+ *
38
+ * @param existingPermissions - The existing permissions for the origin.
39
+ * @param requestedPermissions - The permission request passed into `requestPermissions`.
40
+ * @returns `requestedPermissions`.
41
+ */
42
+ export function getSnapPermissionsRequest(existingPermissions, requestedPermissions) {
43
+ verifyRequestedSnapPermissions(requestedPermissions);
44
+ if (!existingPermissions[WALLET_SNAP_PERMISSION_KEY]) {
45
+ return requestedPermissions;
46
+ }
47
+ const snapIdCaveat = existingPermissions[WALLET_SNAP_PERMISSION_KEY].caveats?.find((caveat) => caveat.type === SnapCaveatType.SnapIds);
48
+ const permittedSnaps = snapIdCaveat?.value ?? {};
49
+ const requestedSnaps = requestedPermissions[WALLET_SNAP_PERMISSION_KEY].caveats[0].value;
50
+ const snapIdSet = new Set([
51
+ ...Object.keys(permittedSnaps),
52
+ ...Object.keys(requestedSnaps),
53
+ ]);
54
+ const mergedCaveatValue = [...snapIdSet].reduce((request, snapId) => {
55
+ request[snapId] = requestedSnaps[snapId] ?? permittedSnaps[snapId];
56
+ return request;
57
+ }, {});
58
+ requestedPermissions[WALLET_SNAP_PERMISSION_KEY].caveats[0].value =
59
+ mergedCaveatValue;
60
+ return requestedPermissions;
61
+ }
62
+ /**
63
+ * The `wallet_requestSnaps` method implementation.
64
+ * Tries to install the requested snaps and adds them to the JSON-RPC response.
65
+ *
66
+ * @param req - The JSON-RPC request object.
67
+ * @param res - The JSON-RPC response object.
68
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
69
+ * function.
70
+ * @param end - The `json-rpc-engine` "end" callback.
71
+ * @param hooks - The RPC method hooks.
72
+ * @param hooks.installSnaps - A function that tries to install a given snap, prompting the user if necessary.
73
+ * @param hooks.requestPermissions - A function that requests permissions on
74
+ * behalf of a subject.
75
+ * @param hooks.getPermissions - A function that gets the current permissions.
76
+ * @returns A promise that resolves once the JSON-RPC response has been modified.
77
+ * @throws If the params are invalid.
78
+ */
79
+ async function requestSnapsImplementation(req, res, _next, end, { installSnaps, requestPermissions, getPermissions }) {
80
+ const requestedSnaps = req.params;
81
+ if (!isObject(requestedSnaps)) {
82
+ return end(rpcErrors.invalidParams({
83
+ message: '"params" must be an object.',
84
+ }));
85
+ }
86
+ try {
87
+ if (Object.keys(requestedSnaps).length === 0) {
88
+ return end(rpcErrors.invalidParams({
89
+ message: 'Request must have at least one requested snap.',
90
+ }));
91
+ }
92
+ const requestedPermissions = {
93
+ [WALLET_SNAP_PERMISSION_KEY]: {
94
+ caveats: [{ type: SnapCaveatType.SnapIds, value: requestedSnaps }],
95
+ },
96
+ };
97
+ const existingPermissions = await getPermissions();
98
+ if (!existingPermissions) {
99
+ const [, metadata] = await requestPermissions(requestedPermissions);
100
+ res.result = metadata.data[WALLET_SNAP_PERMISSION_KEY];
101
+ }
102
+ else if (hasRequestedSnaps(existingPermissions, requestedSnaps)) {
103
+ res.result = await installSnaps(requestedSnaps);
104
+ }
105
+ else {
106
+ const mergedPermissionsRequest = getSnapPermissionsRequest(existingPermissions, requestedPermissions);
107
+ const [, metadata] = await requestPermissions(mergedPermissionsRequest);
108
+ res.result = metadata.data[WALLET_SNAP_PERMISSION_KEY];
109
+ }
110
+ }
111
+ catch (error) {
112
+ res.error = error;
113
+ }
114
+ return end();
115
+ }
12
116
  //# sourceMappingURL=requestSnaps.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"requestSnaps.mjs","sourceRoot":"","sources":["../../src/permitted/requestSnaps.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type {\n PermissionConstraint,\n RequestedPermissions,\n Caveat,\n PermittedHandlerExport,\n} from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n RequestSnapsParams,\n RequestSnapsResult,\n} from '@metamask/snaps-sdk';\nimport type { SnapsPermissionRequest } from '@metamask/snaps-utils';\nimport {\n SnapCaveatType,\n verifyRequestedSnapPermissions,\n} from '@metamask/snaps-utils';\nimport type {\n JsonRpcRequest,\n PendingJsonRpcResponse,\n Json,\n} from '@metamask/utils';\nimport { hasProperty, isObject } from '@metamask/utils';\n\nimport { WALLET_SNAP_PERMISSION_KEY } from '../restricted/invokeSnap';\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<RequestSnapsHooks> = {\n installSnaps: true,\n requestPermissions: true,\n getPermissions: true,\n};\n\n/**\n * `wallet_requestSnaps` installs the requested Snaps and requests permission to use them if necessary.\n */\nexport const requestSnapsHandler: PermittedHandlerExport<\n RequestSnapsHooks,\n RequestSnapsParams,\n RequestSnapsResult\n> = {\n methodNames: ['wallet_requestSnaps'],\n implementation: requestSnapsImplementation,\n hookNames,\n};\n\nexport type RequestSnapsHooks = {\n /**\n * Installs the requested snaps if they are permitted.\n */\n installSnaps: (\n requestedSnaps: RequestSnapsParams,\n ) => Promise<RequestSnapsResult>;\n\n /**\n * Initiates a permission request for the requesting origin.\n *\n * @returns The result of the permissions request.\n */\n requestPermissions: (\n permissions: RequestedPermissions,\n ) => Promise<\n [\n Record<string, PermissionConstraint>,\n { data: Record<string, unknown>; id: string; origin: string },\n ]\n >;\n\n /**\n * Gets the current permissions for the requesting origin.\n *\n * @returns The current permissions of the requesting origin.\n */\n getPermissions: () => Promise<\n Record<string, PermissionConstraint> | undefined\n >;\n};\n\n/**\n * Checks whether an origin has existing `wallet_snap` permission and\n * whether or not it has the requested snapIds caveat.\n *\n * @param existingPermissions - The existing permissions for the origin.\n * @param requestedSnaps - The requested snaps.\n * @returns True if the existing permissions satisfy the requested snaps, otherwise false.\n */\nexport function hasRequestedSnaps(\n existingPermissions: Record<string, PermissionConstraint>,\n requestedSnaps: Record<string, unknown>,\n): boolean {\n const snapIdCaveat = existingPermissions[\n WALLET_SNAP_PERMISSION_KEY\n ]?.caveats?.find(\n (caveat: Caveat<string, Json>) => caveat.type === SnapCaveatType.SnapIds,\n );\n\n const permittedSnaps = snapIdCaveat?.value;\n if (isObject(permittedSnaps)) {\n return Object.keys(requestedSnaps).every((requestedSnap) =>\n hasProperty(permittedSnaps, requestedSnap),\n );\n }\n return false;\n}\n\n/**\n * Constructs a valid permission request with merged caveats based on existing permissions\n * and the requested snaps.\n *\n * @param existingPermissions - The existing permissions for the origin.\n * @param requestedPermissions - The permission request passed into `requestPermissions`.\n * @returns `requestedPermissions`.\n */\nexport function getSnapPermissionsRequest(\n existingPermissions: Record<string, PermissionConstraint>,\n requestedPermissions: unknown,\n): SnapsPermissionRequest {\n verifyRequestedSnapPermissions(requestedPermissions);\n\n if (!existingPermissions[WALLET_SNAP_PERMISSION_KEY]) {\n return requestedPermissions;\n }\n\n const snapIdCaveat = existingPermissions[\n WALLET_SNAP_PERMISSION_KEY\n ].caveats?.find(\n (caveat: Caveat<string, Json>) => caveat.type === SnapCaveatType.SnapIds,\n );\n\n const permittedSnaps = (snapIdCaveat?.value as Record<string, Json>) ?? {};\n\n const requestedSnaps =\n requestedPermissions[WALLET_SNAP_PERMISSION_KEY].caveats[0].value;\n\n const snapIdSet = new Set([\n ...Object.keys(permittedSnaps),\n ...Object.keys(requestedSnaps),\n ]);\n\n const mergedCaveatValue = [...snapIdSet].reduce<Record<string, Json>>(\n (request, snapId) => {\n request[snapId] = requestedSnaps[snapId] ?? permittedSnaps[snapId];\n return request;\n },\n {},\n );\n\n requestedPermissions[WALLET_SNAP_PERMISSION_KEY].caveats[0].value =\n mergedCaveatValue;\n\n return requestedPermissions;\n}\n\n/**\n * The `wallet_requestSnaps` method implementation.\n * Tries to install the requested snaps and adds them to the JSON-RPC response.\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.installSnaps - A function that tries to install a given snap, prompting the user if necessary.\n * @param hooks.requestPermissions - A function that requests permissions on\n * behalf of a subject.\n * @param hooks.getPermissions - A function that gets the current permissions.\n * @returns A promise that resolves once the JSON-RPC response has been modified.\n * @throws If the params are invalid.\n */\nasync function requestSnapsImplementation(\n req: JsonRpcRequest<RequestSnapsParams>,\n res: PendingJsonRpcResponse<RequestSnapsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { installSnaps, requestPermissions, getPermissions }: RequestSnapsHooks,\n): Promise<void> {\n const requestedSnaps = req.params;\n if (!isObject(requestedSnaps)) {\n return end(\n rpcErrors.invalidParams({\n message: '\"params\" must be an object.',\n }),\n );\n }\n\n try {\n if (Object.keys(requestedSnaps).length === 0) {\n return end(\n rpcErrors.invalidParams({\n message: 'Request must have at least one requested snap.',\n }),\n );\n }\n\n const requestedPermissions = {\n [WALLET_SNAP_PERMISSION_KEY]: {\n caveats: [{ type: SnapCaveatType.SnapIds, value: requestedSnaps }],\n },\n } as RequestedPermissions;\n const existingPermissions = await getPermissions();\n\n if (!existingPermissions) {\n const [, metadata] = await requestPermissions(requestedPermissions);\n res.result = metadata.data[\n WALLET_SNAP_PERMISSION_KEY\n ] as RequestSnapsResult;\n } else if (hasRequestedSnaps(existingPermissions, requestedSnaps)) {\n res.result = await installSnaps(requestedSnaps);\n } else {\n const mergedPermissionsRequest = getSnapPermissionsRequest(\n existingPermissions,\n requestedPermissions,\n );\n\n const [, metadata] = await requestPermissions(mergedPermissionsRequest);\n res.result = metadata.data[\n WALLET_SNAP_PERMISSION_KEY\n ] as RequestSnapsResult;\n }\n } catch (error) {\n res.error = error;\n }\n\n return end();\n}\n"]}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveInterfaceHandler = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const superstruct_1 = require("@metamask/superstruct");
6
+ const utils_1 = require("@metamask/utils");
7
+ const hookNames = {
8
+ resolveInterface: true,
9
+ };
10
+ exports.resolveInterfaceHandler = {
11
+ methodNames: ['snap_resolveInterface'],
12
+ implementation: getResolveInterfaceImplementation,
13
+ hookNames,
14
+ };
15
+ const ResolveInterfaceParametersStruct = (0, superstruct_1.object)({
16
+ id: (0, superstruct_1.string)(),
17
+ value: utils_1.JsonStruct,
18
+ });
19
+ /**
20
+ * The `snap_resolveInterface` method implementation.
21
+ *
22
+ * @param req - The JSON-RPC request object.
23
+ * @param res - The JSON-RPC response object.
24
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
25
+ * function.
26
+ * @param end - The `json-rpc-engine` "end" callback.
27
+ * @param hooks - The RPC method hooks.
28
+ * @param hooks.resolveInterface - The function to resolve the interface.
29
+ * @returns Nothing.
30
+ */
31
+ async function getResolveInterfaceImplementation(req, res, _next, end, { resolveInterface }) {
32
+ const { params } = req;
33
+ try {
34
+ const validatedParams = getValidatedParams(params);
35
+ const { id, value } = validatedParams;
36
+ await resolveInterface(id, value);
37
+ res.result = null;
38
+ }
39
+ catch (error) {
40
+ return end(error);
41
+ }
42
+ return end();
43
+ }
44
+ /**
45
+ * Validate the resolveInterface method `params` and returns them cast to the correct
46
+ * type. Throws if validation fails.
47
+ *
48
+ * @param params - The unvalidated params object from the method request.
49
+ * @returns The validated resolveInterface method parameter object.
50
+ */
51
+ function getValidatedParams(params) {
52
+ try {
53
+ return (0, superstruct_1.create)(params, ResolveInterfaceParametersStruct);
54
+ }
55
+ catch (error) {
56
+ if (error instanceof superstruct_1.StructError) {
57
+ throw rpc_errors_1.rpcErrors.invalidParams({
58
+ message: `Invalid params: ${error.message}.`,
59
+ });
60
+ }
61
+ /* istanbul ignore next */
62
+ throw rpc_errors_1.rpcErrors.internal();
63
+ }
64
+ }
65
+ //# sourceMappingURL=resolveInterface.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveInterface.cjs","sourceRoot":"","sources":["../../src/permitted/resolveInterface.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAOjD,uDAA4E;AAE5E,2CAAwD;AAIxD,MAAM,SAAS,GAAmD;IAChE,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAUW,QAAA,uBAAuB,GAIhC;IACF,WAAW,EAAE,CAAC,uBAAuB,CAAC;IACtC,cAAc,EAAE,iCAAiC;IACjD,SAAS;CACV,CAAC;AAEF,MAAM,gCAAgC,GAAG,IAAA,oBAAM,EAAC;IAC9C,EAAE,EAAE,IAAA,oBAAM,GAAE;IACZ,KAAK,EAAE,kBAAU;CAClB,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,iCAAiC,CAC9C,GAA+C,EAC/C,GAAmD,EACnD,KAAc,EACd,GAA6B,EAC7B,EAAE,gBAAgB,EAA+B;IAEjD,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;QAEtC,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,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,gCAAgC,CAAC,CAAC;IAC1D,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;QACD,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 ResolveInterfaceParams,\n ResolveInterfaceResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, string } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\nimport { JsonStruct, type Json } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<ResolveInterfaceMethodHooks> = {\n resolveInterface: true,\n};\n\nexport type ResolveInterfaceMethodHooks = {\n /**\n * @param id - The interface id.\n * @param value - The value to resolve the interface with.\n */\n resolveInterface: (id: string, value: Json) => Promise<void>;\n};\n\nexport const resolveInterfaceHandler: PermittedHandlerExport<\n ResolveInterfaceMethodHooks,\n ResolveInterfaceParameters,\n ResolveInterfaceResult\n> = {\n methodNames: ['snap_resolveInterface'],\n implementation: getResolveInterfaceImplementation,\n hookNames,\n};\n\nconst ResolveInterfaceParametersStruct = object({\n id: string(),\n value: JsonStruct,\n});\n\nexport type ResolveInterfaceParameters = InferMatching<\n typeof ResolveInterfaceParametersStruct,\n ResolveInterfaceParams\n>;\n\n/**\n * The `snap_resolveInterface` 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.resolveInterface - The function to resolve the interface.\n * @returns Nothing.\n */\nasync function getResolveInterfaceImplementation(\n req: JsonRpcRequest<ResolveInterfaceParameters>,\n res: PendingJsonRpcResponse<ResolveInterfaceResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { resolveInterface }: ResolveInterfaceMethodHooks,\n): Promise<void> {\n const { params } = req;\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id, value } = validatedParams;\n\n await resolveInterface(id, value);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the resolveInterface 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 resolveInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): ResolveInterfaceParameters {\n try {\n return create(params, ResolveInterfaceParametersStruct);\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,8 +1,8 @@
1
- import type { PermittedHandlerExport } from '@metamask/permission-controller';
2
- import type { ResolveInterfaceParams, ResolveInterfaceResult } from '@metamask/snaps-sdk';
3
- import type { InferMatching } from '@metamask/snaps-utils';
4
- import { type Json } from '@metamask/utils';
5
- export declare type ResolveInterfaceMethodHooks = {
1
+ import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
+ import type { ResolveInterfaceParams, ResolveInterfaceResult } from "@metamask/snaps-sdk";
3
+ import type { InferMatching } from "@metamask/snaps-utils";
4
+ import { type Json } from "@metamask/utils";
5
+ export type ResolveInterfaceMethodHooks = {
6
6
  /**
7
7
  * @param id - The interface id.
8
8
  * @param value - The value to resolve the interface with.
@@ -11,11 +11,12 @@ export declare type ResolveInterfaceMethodHooks = {
11
11
  };
12
12
  export declare const resolveInterfaceHandler: PermittedHandlerExport<ResolveInterfaceMethodHooks, ResolveInterfaceParameters, ResolveInterfaceResult>;
13
13
  declare const ResolveInterfaceParametersStruct: import("@metamask/superstruct").Struct<{
14
- value: Json;
15
14
  id: string;
15
+ value: Json;
16
16
  }, {
17
17
  id: import("@metamask/superstruct").Struct<string, null>;
18
18
  value: import("@metamask/superstruct").Struct<Json, unknown>;
19
19
  }>;
20
- export declare type ResolveInterfaceParameters = InferMatching<typeof ResolveInterfaceParametersStruct, ResolveInterfaceParams>;
20
+ export type ResolveInterfaceParameters = InferMatching<typeof ResolveInterfaceParametersStruct, ResolveInterfaceParams>;
21
21
  export {};
22
+ //# sourceMappingURL=resolveInterface.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveInterface.d.cts","sourceRoot":"","sources":["../../src/permitted/resolveInterface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,sBAAsB,EACtB,sBAAsB,EACvB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAG3D,OAAO,EAAc,KAAK,IAAI,EAAE,wBAAwB;AAQxD,MAAM,MAAM,2BAA2B,GAAG;IACxC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,sBAAsB,CAC1D,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,CAKvB,CAAC;AAEF,QAAA,MAAM,gCAAgC;;;;;;EAGpC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,aAAa,CACpD,OAAO,gCAAgC,EACvC,sBAAsB,CACvB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
+ import type { ResolveInterfaceParams, ResolveInterfaceResult } from "@metamask/snaps-sdk";
3
+ import type { InferMatching } from "@metamask/snaps-utils";
4
+ import { type Json } from "@metamask/utils";
5
+ export type ResolveInterfaceMethodHooks = {
6
+ /**
7
+ * @param id - The interface id.
8
+ * @param value - The value to resolve the interface with.
9
+ */
10
+ resolveInterface: (id: string, value: Json) => Promise<void>;
11
+ };
12
+ export declare const resolveInterfaceHandler: PermittedHandlerExport<ResolveInterfaceMethodHooks, ResolveInterfaceParameters, ResolveInterfaceResult>;
13
+ declare const ResolveInterfaceParametersStruct: import("@metamask/superstruct").Struct<{
14
+ id: string;
15
+ value: Json;
16
+ }, {
17
+ id: import("@metamask/superstruct").Struct<string, null>;
18
+ value: import("@metamask/superstruct").Struct<Json, unknown>;
19
+ }>;
20
+ export type ResolveInterfaceParameters = InferMatching<typeof ResolveInterfaceParametersStruct, ResolveInterfaceParams>;
21
+ export {};
22
+ //# sourceMappingURL=resolveInterface.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveInterface.d.mts","sourceRoot":"","sources":["../../src/permitted/resolveInterface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,sBAAsB,EACtB,sBAAsB,EACvB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAG3D,OAAO,EAAc,KAAK,IAAI,EAAE,wBAAwB;AAQxD,MAAM,MAAM,2BAA2B,GAAG;IACxC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,sBAAsB,CAC1D,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,CAKvB,CAAC;AAEF,QAAA,MAAM,gCAAgC;;;;;;EAGpC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,aAAa,CACpD,OAAO,gCAAgC,EACvC,sBAAsB,CACvB,CAAC"}
@@ -1,7 +1,62 @@
1
- import {
2
- resolveInterfaceHandler
3
- } from "../chunk-MC2Z4NF6.mjs";
4
- export {
5
- resolveInterfaceHandler
1
+ import { rpcErrors } from "@metamask/rpc-errors";
2
+ import { StructError, create, object, string } from "@metamask/superstruct";
3
+ import { JsonStruct } from "@metamask/utils";
4
+ const hookNames = {
5
+ resolveInterface: true,
6
6
  };
7
+ export const resolveInterfaceHandler = {
8
+ methodNames: ['snap_resolveInterface'],
9
+ implementation: getResolveInterfaceImplementation,
10
+ hookNames,
11
+ };
12
+ const ResolveInterfaceParametersStruct = object({
13
+ id: string(),
14
+ value: JsonStruct,
15
+ });
16
+ /**
17
+ * The `snap_resolveInterface` method implementation.
18
+ *
19
+ * @param req - The JSON-RPC request object.
20
+ * @param res - The JSON-RPC response object.
21
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
22
+ * function.
23
+ * @param end - The `json-rpc-engine` "end" callback.
24
+ * @param hooks - The RPC method hooks.
25
+ * @param hooks.resolveInterface - The function to resolve the interface.
26
+ * @returns Nothing.
27
+ */
28
+ async function getResolveInterfaceImplementation(req, res, _next, end, { resolveInterface }) {
29
+ const { params } = req;
30
+ try {
31
+ const validatedParams = getValidatedParams(params);
32
+ const { id, value } = validatedParams;
33
+ await resolveInterface(id, value);
34
+ res.result = null;
35
+ }
36
+ catch (error) {
37
+ return end(error);
38
+ }
39
+ return end();
40
+ }
41
+ /**
42
+ * Validate the resolveInterface method `params` and returns them cast to the correct
43
+ * type. Throws if validation fails.
44
+ *
45
+ * @param params - The unvalidated params object from the method request.
46
+ * @returns The validated resolveInterface method parameter object.
47
+ */
48
+ function getValidatedParams(params) {
49
+ try {
50
+ return create(params, ResolveInterfaceParametersStruct);
51
+ }
52
+ catch (error) {
53
+ if (error instanceof StructError) {
54
+ throw rpcErrors.invalidParams({
55
+ message: `Invalid params: ${error.message}.`,
56
+ });
57
+ }
58
+ /* istanbul ignore next */
59
+ throw rpcErrors.internal();
60
+ }
61
+ }
7
62
  //# sourceMappingURL=resolveInterface.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"resolveInterface.mjs","sourceRoot":"","sources":["../../src/permitted/resolveInterface.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAOjD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,8BAA8B;AAE5E,OAAO,EAAE,UAAU,EAAa,wBAAwB;AAIxD,MAAM,SAAS,GAAmD;IAChE,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAUF,MAAM,CAAC,MAAM,uBAAuB,GAIhC;IACF,WAAW,EAAE,CAAC,uBAAuB,CAAC;IACtC,cAAc,EAAE,iCAAiC;IACjD,SAAS;CACV,CAAC;AAEF,MAAM,gCAAgC,GAAG,MAAM,CAAC;IAC9C,EAAE,EAAE,MAAM,EAAE;IACZ,KAAK,EAAE,UAAU;CAClB,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,iCAAiC,CAC9C,GAA+C,EAC/C,GAAmD,EACnD,KAAc,EACd,GAA6B,EAC7B,EAAE,gBAAgB,EAA+B;IAEjD,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;QAEtC,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,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,gCAAgC,CAAC,CAAC;IAC1D,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 JsonRpcRequest,\n ResolveInterfaceParams,\n ResolveInterfaceResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, string } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\nimport { JsonStruct, type Json } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<ResolveInterfaceMethodHooks> = {\n resolveInterface: true,\n};\n\nexport type ResolveInterfaceMethodHooks = {\n /**\n * @param id - The interface id.\n * @param value - The value to resolve the interface with.\n */\n resolveInterface: (id: string, value: Json) => Promise<void>;\n};\n\nexport const resolveInterfaceHandler: PermittedHandlerExport<\n ResolveInterfaceMethodHooks,\n ResolveInterfaceParameters,\n ResolveInterfaceResult\n> = {\n methodNames: ['snap_resolveInterface'],\n implementation: getResolveInterfaceImplementation,\n hookNames,\n};\n\nconst ResolveInterfaceParametersStruct = object({\n id: string(),\n value: JsonStruct,\n});\n\nexport type ResolveInterfaceParameters = InferMatching<\n typeof ResolveInterfaceParametersStruct,\n ResolveInterfaceParams\n>;\n\n/**\n * The `snap_resolveInterface` 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.resolveInterface - The function to resolve the interface.\n * @returns Nothing.\n */\nasync function getResolveInterfaceImplementation(\n req: JsonRpcRequest<ResolveInterfaceParameters>,\n res: PendingJsonRpcResponse<ResolveInterfaceResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { resolveInterface }: ResolveInterfaceMethodHooks,\n): Promise<void> {\n const { params } = req;\n\n try {\n const validatedParams = getValidatedParams(params);\n\n const { id, value } = validatedParams;\n\n await resolveInterface(id, value);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the resolveInterface 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 resolveInterface method parameter object.\n */\nfunction getValidatedParams(params: unknown): ResolveInterfaceParameters {\n try {\n return create(params, ResolveInterfaceParametersStruct);\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,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateInterfaceHandler = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const snaps_sdk_1 = require("@metamask/snaps-sdk");
6
+ const superstruct_1 = require("@metamask/superstruct");
7
+ const hookNames = {
8
+ updateInterface: true,
9
+ };
10
+ exports.updateInterfaceHandler = {
11
+ methodNames: ['snap_updateInterface'],
12
+ implementation: getUpdateInterfaceImplementation,
13
+ hookNames,
14
+ };
15
+ const UpdateInterfaceParametersStruct = (0, superstruct_1.object)({
16
+ id: (0, superstruct_1.string)(),
17
+ ui: snaps_sdk_1.ComponentOrElementStruct,
18
+ });
19
+ /**
20
+ * The `snap_updateInterface` method implementation.
21
+ *
22
+ * @param req - The JSON-RPC request object.
23
+ * @param res - The JSON-RPC response object.
24
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this
25
+ * function.
26
+ * @param end - The `json-rpc-engine` "end" callback.
27
+ * @param hooks - The RPC method hooks.
28
+ * @param hooks.updateInterface - The function to update the interface.
29
+ * @returns Nothing.
30
+ */
31
+ async function getUpdateInterfaceImplementation(req, res, _next, end, { updateInterface }) {
32
+ const { params } = req;
33
+ try {
34
+ const validatedParams = getValidatedParams(params);
35
+ const { id, ui } = validatedParams;
36
+ await updateInterface(id, ui);
37
+ res.result = null;
38
+ }
39
+ catch (error) {
40
+ return end(error);
41
+ }
42
+ return end();
43
+ }
44
+ /**
45
+ * Validate the updateInterface method `params` and returns them cast to the correct
46
+ * type. Throws if validation fails.
47
+ *
48
+ * @param params - The unvalidated params object from the method request.
49
+ * @returns The validated updateInterface method parameter object.
50
+ */
51
+ function getValidatedParams(params) {
52
+ try {
53
+ return (0, superstruct_1.create)(params, UpdateInterfaceParametersStruct);
54
+ }
55
+ catch (error) {
56
+ if (error instanceof superstruct_1.StructError) {
57
+ throw rpc_errors_1.rpcErrors.invalidParams({
58
+ message: `Invalid params: ${error.message}.`,
59
+ });
60
+ }
61
+ /* istanbul ignore next */
62
+ throw rpc_errors_1.rpcErrors.internal();
63
+ }
64
+ }
65
+ //# sourceMappingURL=updateInterface.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateInterface.cjs","sourceRoot":"","sources":["../../src/permitted/updateInterface.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAOjD,mDAA+D;AAE/D,uDAA4E;AAK5E,MAAM,SAAS,GAAkD;IAC/D,eAAe,EAAE,IAAI;CACtB,CAAC;AAUW,QAAA,sBAAsB,GAI/B;IACF,WAAW,EAAE,CAAC,sBAAsB,CAAC;IACrC,cAAc,EAAE,gCAAgC;IAChD,SAAS;CACV,CAAC;AAEF,MAAM,+BAA+B,GAAG,IAAA,oBAAM,EAAC;IAC7C,EAAE,EAAE,IAAA,oBAAM,GAAE;IACZ,EAAE,EAAE,oCAAwB;CAC7B,CAAC,CAAC;AAOH;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,gCAAgC,CAC7C,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,EAAE,EAAE,GAAG,eAAe,CAAC;QAEnC,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,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,+BAA+B,CAAC,CAAC;IACzD,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;QACD,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 UpdateInterfaceParams,\n UpdateInterfaceResult,\n JsonRpcRequest,\n ComponentOrElement,\n} from '@metamask/snaps-sdk';\nimport { ComponentOrElementStruct } from '@metamask/snaps-sdk';\nimport { type InferMatching } from '@metamask/snaps-utils';\nimport { StructError, create, object, string } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\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: ComponentOrElement) => 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: ComponentOrElementStruct,\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"]}