@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,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermittedCoinTypesCaveatSpecification = exports.validateBIP44Caveat = exports.validateBIP44Params = exports.permittedCoinTypesCaveatMapper = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const snaps_utils_1 = require("@metamask/snaps-utils");
6
+ const utils_1 = require("@metamask/utils");
7
+ /**
8
+ * Map a raw value from the `initialPermissions` to a caveat specification.
9
+ * Note that this function does not do any validation, that's handled by the
10
+ * PermissionsController when the permission is requested.
11
+ *
12
+ * @param value - The raw value from the `initialPermissions`.
13
+ * @returns The caveat specification.
14
+ */
15
+ function permittedCoinTypesCaveatMapper(value) {
16
+ return {
17
+ caveats: [
18
+ {
19
+ type: snaps_utils_1.SnapCaveatType.PermittedCoinTypes,
20
+ value,
21
+ },
22
+ ],
23
+ };
24
+ }
25
+ exports.permittedCoinTypesCaveatMapper = permittedCoinTypesCaveatMapper;
26
+ /**
27
+ * Validate the params for `snap_getBip44Entropy`.
28
+ *
29
+ * @param value - The params to validate.
30
+ * @throws If the params are invalid.
31
+ */
32
+ function validateBIP44Params(value) {
33
+ if (!(0, utils_1.isPlainObject)(value) || !(0, utils_1.hasProperty)(value, 'coinType')) {
34
+ throw rpc_errors_1.rpcErrors.invalidParams({
35
+ message: 'Expected a plain object containing a coin type.',
36
+ });
37
+ }
38
+ if (typeof value.coinType !== 'number' ||
39
+ !Number.isInteger(value.coinType) ||
40
+ value.coinType < 0 ||
41
+ value.coinType > 0x7fffffff) {
42
+ throw rpc_errors_1.rpcErrors.invalidParams({
43
+ message: 'Invalid "coinType" parameter. Coin type must be a non-negative integer.',
44
+ });
45
+ }
46
+ if (snaps_utils_1.FORBIDDEN_COIN_TYPES.includes(value.coinType)) {
47
+ throw rpc_errors_1.rpcErrors.invalidParams({
48
+ message: `Coin type ${value.coinType} is forbidden.`,
49
+ });
50
+ }
51
+ }
52
+ exports.validateBIP44Params = validateBIP44Params;
53
+ /**
54
+ * Validate the coin types values associated with a caveat. This checks if the
55
+ * values are non-negative integers (>= 0).
56
+ *
57
+ * @param caveat - The caveat to validate.
58
+ * @throws If the caveat is invalid.
59
+ */
60
+ function validateBIP44Caveat(caveat) {
61
+ if (!(0, utils_1.hasProperty)(caveat, 'value') ||
62
+ !Array.isArray(caveat.value) ||
63
+ caveat.value.length === 0) {
64
+ throw rpc_errors_1.rpcErrors.invalidParams({
65
+ message: 'Expected non-empty array of coin types.',
66
+ });
67
+ }
68
+ caveat.value.forEach(validateBIP44Params);
69
+ }
70
+ exports.validateBIP44Caveat = validateBIP44Caveat;
71
+ exports.PermittedCoinTypesCaveatSpecification = {
72
+ [snaps_utils_1.SnapCaveatType.PermittedCoinTypes]: Object.freeze({
73
+ type: snaps_utils_1.SnapCaveatType.PermittedCoinTypes,
74
+ decorator: (method, caveat) => {
75
+ return async (args) => {
76
+ const { params } = args;
77
+ validateBIP44Params(params);
78
+ const coinType = caveat.value.find((caveatValue) => caveatValue.coinType === params.coinType);
79
+ if (!coinType) {
80
+ throw rpc_errors_1.providerErrors.unauthorized({
81
+ message: 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',
82
+ });
83
+ }
84
+ return await method(args);
85
+ };
86
+ },
87
+ validator: (caveat) => validateBIP44Caveat(caveat),
88
+ }),
89
+ };
90
+ //# sourceMappingURL=permittedCoinTypes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permittedCoinTypes.cjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":";;;AAKA,qDAAiE;AAEjE,uDAA6E;AAE7E,2CAA6D;AAE7D;;;;;;;GAOG;AACH,SAAgB,8BAA8B,CAC5C,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,kBAAkB;gBACvC,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAXD,wEAWC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,KAAc;IAEd,IAAI,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,IACE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,CAAC;QAClB,KAAK,CAAC,QAAQ,GAAG,UAAU,EAC3B,CAAC;QACD,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EACL,yEAAyE;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,kCAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,aAAa,KAAK,CAAC,QAAQ,gBAAgB;SACrD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AA1BD,kDA0BC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,MAA2B;IAC7D,IACE,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACzB,CAAC;QACD,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,yCAAyC;SACnD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5C,CAAC;AAZD,kDAYC;AAEY,QAAA,qCAAqC,GAG9C;IACF,CAAC,4BAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,IAAI,EAAE,4BAAc,CAAC,kBAAkB;QACvC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAE5B,MAAM,QAAQ,GAAI,MAAM,CAAC,KAAiC,CAAC,IAAI,CAC7D,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAC1D,CAAC;gBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,2BAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,sGAAsG;qBACzG,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;KACnD,CAAC;CACH,CAAC","sourcesContent":["import type {\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n Caveat,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { GetBip44EntropyParams } from '@metamask/snaps-sdk';\nimport { FORBIDDEN_COIN_TYPES, SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\nimport { hasProperty, isPlainObject } from '@metamask/utils';\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 permittedCoinTypesCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedCoinTypes,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate the params for `snap_getBip44Entropy`.\n *\n * @param value - The params to validate.\n * @throws If the params are invalid.\n */\nexport function validateBIP44Params(\n value: unknown,\n): asserts value is GetBip44EntropyParams {\n if (!isPlainObject(value) || !hasProperty(value, 'coinType')) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object containing a coin type.',\n });\n }\n\n if (\n typeof value.coinType !== 'number' ||\n !Number.isInteger(value.coinType) ||\n value.coinType < 0 ||\n value.coinType > 0x7fffffff\n ) {\n throw rpcErrors.invalidParams({\n message:\n 'Invalid \"coinType\" parameter. Coin type must be a non-negative integer.',\n });\n }\n\n if (FORBIDDEN_COIN_TYPES.includes(value.coinType)) {\n throw rpcErrors.invalidParams({\n message: `Coin type ${value.coinType} is forbidden.`,\n });\n }\n}\n\n/**\n * Validate the coin types values associated with a caveat. This checks if the\n * values are non-negative integers (>= 0).\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat is invalid.\n */\nexport function validateBIP44Caveat(caveat: Caveat<string, any>) {\n if (\n !hasProperty(caveat, 'value') ||\n !Array.isArray(caveat.value) ||\n caveat.value.length === 0\n ) {\n throw rpcErrors.invalidParams({\n message: 'Expected non-empty array of coin types.',\n });\n }\n\n caveat.value.forEach(validateBIP44Params);\n}\n\nexport const PermittedCoinTypesCaveatSpecification: Record<\n SnapCaveatType.PermittedCoinTypes,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedCoinTypes]: Object.freeze({\n type: SnapCaveatType.PermittedCoinTypes,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP44Params(params);\n\n const coinType = (caveat.value as GetBip44EntropyParams[]).find(\n (caveatValue) => caveatValue.coinType === params.coinType,\n );\n\n if (!coinType) {\n throw providerErrors.unauthorized({\n message:\n 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP44Caveat(caveat),\n }),\n};\n"]}
@@ -1,7 +1,7 @@
1
- import type { PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint, Caveat } from '@metamask/permission-controller';
2
- import type { GetBip44EntropyParams } from '@metamask/snaps-sdk';
3
- import { SnapCaveatType } from '@metamask/snaps-utils';
4
- import type { Json } from '@metamask/utils';
1
+ import type { PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint, Caveat } from "@metamask/permission-controller";
2
+ import type { GetBip44EntropyParams } from "@metamask/snaps-sdk";
3
+ import { SnapCaveatType } from "@metamask/snaps-utils";
4
+ import type { Json } from "@metamask/utils";
5
5
  /**
6
6
  * Map a raw value from the `initialPermissions` to a caveat specification.
7
7
  * Note that this function does not do any validation, that's handled by the
@@ -27,3 +27,4 @@ export declare function validateBIP44Params(value: unknown): asserts value is Ge
27
27
  */
28
28
  export declare function validateBIP44Caveat(caveat: Caveat<string, any>): void;
29
29
  export declare const PermittedCoinTypesCaveatSpecification: Record<SnapCaveatType.PermittedCoinTypes, RestrictedMethodCaveatSpecificationConstraint>;
30
+ //# sourceMappingURL=permittedCoinTypes.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permittedCoinTypes.d.cts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,6CAA6C,EAC7C,MAAM,EACP,wCAAwC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,4BAA4B;AACjE,OAAO,EAAwB,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAwBxC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAY9D;AAED,eAAO,MAAM,qCAAqC,EAAE,MAAM,CACxD,cAAc,CAAC,kBAAkB,EACjC,6CAA6C,CAyB9C,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint, Caveat } from "@metamask/permission-controller";
2
+ import type { GetBip44EntropyParams } from "@metamask/snaps-sdk";
3
+ import { SnapCaveatType } from "@metamask/snaps-utils";
4
+ import type { Json } from "@metamask/utils";
5
+ /**
6
+ * Map a raw value from the `initialPermissions` to a caveat specification.
7
+ * Note that this function does not do any validation, that's handled by the
8
+ * PermissionsController when the permission is requested.
9
+ *
10
+ * @param value - The raw value from the `initialPermissions`.
11
+ * @returns The caveat specification.
12
+ */
13
+ export declare function permittedCoinTypesCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
14
+ /**
15
+ * Validate the params for `snap_getBip44Entropy`.
16
+ *
17
+ * @param value - The params to validate.
18
+ * @throws If the params are invalid.
19
+ */
20
+ export declare function validateBIP44Params(value: unknown): asserts value is GetBip44EntropyParams;
21
+ /**
22
+ * Validate the coin types values associated with a caveat. This checks if the
23
+ * values are non-negative integers (>= 0).
24
+ *
25
+ * @param caveat - The caveat to validate.
26
+ * @throws If the caveat is invalid.
27
+ */
28
+ export declare function validateBIP44Caveat(caveat: Caveat<string, any>): void;
29
+ export declare const PermittedCoinTypesCaveatSpecification: Record<SnapCaveatType.PermittedCoinTypes, RestrictedMethodCaveatSpecificationConstraint>;
30
+ //# sourceMappingURL=permittedCoinTypes.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permittedCoinTypes.d.mts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,6CAA6C,EAC7C,MAAM,EACP,wCAAwC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,4BAA4B;AACjE,OAAO,EAAwB,cAAc,EAAE,8BAA8B;AAC7E,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAwBxC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAY9D;AAED,eAAO,MAAM,qCAAqC,EAAE,MAAM,CACxD,cAAc,CAAC,kBAAkB,EACjC,6CAA6C,CAyB9C,CAAC"}
@@ -1,13 +1,84 @@
1
- import {
2
- PermittedCoinTypesCaveatSpecification,
3
- permittedCoinTypesCaveatMapper,
4
- validateBIP44Caveat,
5
- validateBIP44Params
6
- } from "../../chunk-PIAWDTWO.mjs";
7
- export {
8
- PermittedCoinTypesCaveatSpecification,
9
- permittedCoinTypesCaveatMapper,
10
- validateBIP44Caveat,
11
- validateBIP44Params
1
+ import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
2
+ import { FORBIDDEN_COIN_TYPES, SnapCaveatType } from "@metamask/snaps-utils";
3
+ import { hasProperty, isPlainObject } from "@metamask/utils";
4
+ /**
5
+ * Map a raw value from the `initialPermissions` to a caveat specification.
6
+ * Note that this function does not do any validation, that's handled by the
7
+ * PermissionsController when the permission is requested.
8
+ *
9
+ * @param value - The raw value from the `initialPermissions`.
10
+ * @returns The caveat specification.
11
+ */
12
+ export function permittedCoinTypesCaveatMapper(value) {
13
+ return {
14
+ caveats: [
15
+ {
16
+ type: SnapCaveatType.PermittedCoinTypes,
17
+ value,
18
+ },
19
+ ],
20
+ };
21
+ }
22
+ /**
23
+ * Validate the params for `snap_getBip44Entropy`.
24
+ *
25
+ * @param value - The params to validate.
26
+ * @throws If the params are invalid.
27
+ */
28
+ export function validateBIP44Params(value) {
29
+ if (!isPlainObject(value) || !hasProperty(value, 'coinType')) {
30
+ throw rpcErrors.invalidParams({
31
+ message: 'Expected a plain object containing a coin type.',
32
+ });
33
+ }
34
+ if (typeof value.coinType !== 'number' ||
35
+ !Number.isInteger(value.coinType) ||
36
+ value.coinType < 0 ||
37
+ value.coinType > 0x7fffffff) {
38
+ throw rpcErrors.invalidParams({
39
+ message: 'Invalid "coinType" parameter. Coin type must be a non-negative integer.',
40
+ });
41
+ }
42
+ if (FORBIDDEN_COIN_TYPES.includes(value.coinType)) {
43
+ throw rpcErrors.invalidParams({
44
+ message: `Coin type ${value.coinType} is forbidden.`,
45
+ });
46
+ }
47
+ }
48
+ /**
49
+ * Validate the coin types values associated with a caveat. This checks if the
50
+ * values are non-negative integers (>= 0).
51
+ *
52
+ * @param caveat - The caveat to validate.
53
+ * @throws If the caveat is invalid.
54
+ */
55
+ export function validateBIP44Caveat(caveat) {
56
+ if (!hasProperty(caveat, 'value') ||
57
+ !Array.isArray(caveat.value) ||
58
+ caveat.value.length === 0) {
59
+ throw rpcErrors.invalidParams({
60
+ message: 'Expected non-empty array of coin types.',
61
+ });
62
+ }
63
+ caveat.value.forEach(validateBIP44Params);
64
+ }
65
+ export const PermittedCoinTypesCaveatSpecification = {
66
+ [SnapCaveatType.PermittedCoinTypes]: Object.freeze({
67
+ type: SnapCaveatType.PermittedCoinTypes,
68
+ decorator: (method, caveat) => {
69
+ return async (args) => {
70
+ const { params } = args;
71
+ validateBIP44Params(params);
72
+ const coinType = caveat.value.find((caveatValue) => caveatValue.coinType === params.coinType);
73
+ if (!coinType) {
74
+ throw providerErrors.unauthorized({
75
+ message: 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',
76
+ });
77
+ }
78
+ return await method(args);
79
+ };
80
+ },
81
+ validator: (caveat) => validateBIP44Caveat(caveat),
82
+ }),
12
83
  };
13
84
  //# sourceMappingURL=permittedCoinTypes.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"permittedCoinTypes.mjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedCoinTypes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAEjE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,8BAA8B;AAE7E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,wBAAwB;AAE7D;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc,CAAC,kBAAkB;gBACvC,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,IACE,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,CAAC;QAClB,KAAK,CAAC,QAAQ,GAAG,UAAU,EAC3B,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EACL,yEAAyE;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,aAAa,KAAK,CAAC,QAAQ,gBAAgB;SACrD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC7D,IACE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACzB,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,yCAAyC;SACnD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,qCAAqC,GAG9C;IACF,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,IAAI,EAAE,cAAc,CAAC,kBAAkB;QACvC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAE5B,MAAM,QAAQ,GAAI,MAAM,CAAC,KAAiC,CAAC,IAAI,CAC7D,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAC1D,CAAC;gBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,cAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,sGAAsG;qBACzG,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC;KACnD,CAAC;CACH,CAAC","sourcesContent":["import type {\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n Caveat,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { GetBip44EntropyParams } from '@metamask/snaps-sdk';\nimport { FORBIDDEN_COIN_TYPES, SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\nimport { hasProperty, isPlainObject } from '@metamask/utils';\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 permittedCoinTypesCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedCoinTypes,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate the params for `snap_getBip44Entropy`.\n *\n * @param value - The params to validate.\n * @throws If the params are invalid.\n */\nexport function validateBIP44Params(\n value: unknown,\n): asserts value is GetBip44EntropyParams {\n if (!isPlainObject(value) || !hasProperty(value, 'coinType')) {\n throw rpcErrors.invalidParams({\n message: 'Expected a plain object containing a coin type.',\n });\n }\n\n if (\n typeof value.coinType !== 'number' ||\n !Number.isInteger(value.coinType) ||\n value.coinType < 0 ||\n value.coinType > 0x7fffffff\n ) {\n throw rpcErrors.invalidParams({\n message:\n 'Invalid \"coinType\" parameter. Coin type must be a non-negative integer.',\n });\n }\n\n if (FORBIDDEN_COIN_TYPES.includes(value.coinType)) {\n throw rpcErrors.invalidParams({\n message: `Coin type ${value.coinType} is forbidden.`,\n });\n }\n}\n\n/**\n * Validate the coin types values associated with a caveat. This checks if the\n * values are non-negative integers (>= 0).\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat is invalid.\n */\nexport function validateBIP44Caveat(caveat: Caveat<string, any>) {\n if (\n !hasProperty(caveat, 'value') ||\n !Array.isArray(caveat.value) ||\n caveat.value.length === 0\n ) {\n throw rpcErrors.invalidParams({\n message: 'Expected non-empty array of coin types.',\n });\n }\n\n caveat.value.forEach(validateBIP44Params);\n}\n\nexport const PermittedCoinTypesCaveatSpecification: Record<\n SnapCaveatType.PermittedCoinTypes,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedCoinTypes]: Object.freeze({\n type: SnapCaveatType.PermittedCoinTypes,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP44Params(params);\n\n const coinType = (caveat.value as GetBip44EntropyParams[]).find(\n (caveatValue) => caveatValue.coinType === params.coinType,\n );\n\n if (!coinType) {\n throw providerErrors.unauthorized({\n message:\n 'The requested coin type is not permitted. Allowed coin types must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP44Caveat(caveat),\n }),\n};\n"]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermittedDerivationPathsCaveatSpecification = exports.validateBIP32CaveatPaths = exports.validateBIP32Path = exports.permittedDerivationPathsCaveatMapper = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const snaps_utils_1 = require("@metamask/snaps-utils");
6
+ const superstruct_1 = require("@metamask/superstruct");
7
+ const utils_1 = require("@metamask/utils");
8
+ /**
9
+ * Map a raw value from the `initialPermissions` to a caveat specification.
10
+ * Note that this function does not do any validation, that's handled by the
11
+ * PermissionsController when the permission is requested.
12
+ *
13
+ * @param value - The raw value from the `initialPermissions`.
14
+ * @returns The caveat specification.
15
+ */
16
+ function permittedDerivationPathsCaveatMapper(value) {
17
+ return {
18
+ caveats: [
19
+ {
20
+ type: snaps_utils_1.SnapCaveatType.PermittedDerivationPaths,
21
+ value,
22
+ },
23
+ ],
24
+ };
25
+ }
26
+ exports.permittedDerivationPathsCaveatMapper = permittedDerivationPathsCaveatMapper;
27
+ /**
28
+ * Validate a caveat path object. The object must consist of a `path` array and
29
+ * a `curve` string. Paths must start with `m`, and must contain at
30
+ * least two indices. If `ed25519` is used, this checks if all the path indices
31
+ * are hardened.
32
+ *
33
+ * @param value - The value to validate.
34
+ * @throws If the value is invalid.
35
+ */
36
+ function validateBIP32Path(value) {
37
+ (0, utils_1.assertStruct)(value, snaps_utils_1.Bip32EntropyStruct, 'Invalid BIP-32 entropy path definition', rpc_errors_1.rpcErrors.invalidParams);
38
+ }
39
+ exports.validateBIP32Path = validateBIP32Path;
40
+ /**
41
+ * Validate the path values associated with a caveat. This validates that the
42
+ * value is a non-empty array with valid derivation paths and curves.
43
+ *
44
+ * @param caveat - The caveat to validate.
45
+ * @throws If the value is invalid.
46
+ */
47
+ function validateBIP32CaveatPaths(caveat) {
48
+ (0, utils_1.assertStruct)(caveat, (0, superstruct_1.type)({ value: (0, superstruct_1.size)((0, superstruct_1.array)(snaps_utils_1.Bip32EntropyStruct), 1, Infinity) }), 'Invalid BIP-32 entropy caveat', rpc_errors_1.rpcErrors.internal);
49
+ }
50
+ exports.validateBIP32CaveatPaths = validateBIP32CaveatPaths;
51
+ exports.PermittedDerivationPathsCaveatSpecification = {
52
+ [snaps_utils_1.SnapCaveatType.PermittedDerivationPaths]: Object.freeze({
53
+ type: snaps_utils_1.SnapCaveatType.PermittedDerivationPaths,
54
+ decorator: (method, caveat) => {
55
+ return async (args) => {
56
+ const { params } = args;
57
+ validateBIP32Path(params);
58
+ const path = caveat.value.find((caveatPath) => (0, snaps_utils_1.isEqual)(params.path.slice(0, caveatPath.path.length), caveatPath.path) && caveatPath.curve === params.curve);
59
+ if (!path) {
60
+ throw rpc_errors_1.providerErrors.unauthorized({
61
+ message: 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',
62
+ });
63
+ }
64
+ return await method(args);
65
+ };
66
+ },
67
+ validator: (caveat) => validateBIP32CaveatPaths(caveat),
68
+ }),
69
+ };
70
+ //# sourceMappingURL=permittedDerivationPaths.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permittedDerivationPaths.cjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":";;;AAKA,qDAAiE;AAEjE,uDAI+B;AAC/B,uDAA0D;AAE1D,2CAA+C;AAE/C;;;;;;;GAOG;AACH,SAAgB,oCAAoC,CAClD,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,wBAAwB;gBAC7C,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAXD,oFAWC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,KAAc;IAEd,IAAA,oBAAY,EACV,KAAK,EACL,gCAAkB,EAClB,wCAAwC,EACxC,sBAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AATD,8CASC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACtC,MAA2B;IAE3B,IAAA,oBAAY,EACV,MAAM,EACN,IAAA,kBAAI,EAAC,EAAE,KAAK,EAAE,IAAA,kBAAI,EAAC,IAAA,mBAAK,EAAC,gCAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAC7D,+BAA+B,EAC/B,sBAAS,CAAC,QAAQ,CACnB,CAAC;AACJ,CAAC;AATD,4DASC;AAEY,QAAA,2CAA2C,GAGpD;IACF,CAAC,4BAAc,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,4BAAc,CAAC,wBAAwB;QAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAE1B,MAAM,IAAI,GAAI,MAAM,CAAC,KAAwB,CAAC,IAAI,CAChD,CAAC,UAAU,EAAE,EAAE,CACb,IAAA,qBAAO,EACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5C,UAAU,CAAC,IAAI,CAChB,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CACzC,CAAC;gBAEF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,2BAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,4FAA4F;qBAC/F,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;KACxD,CAAC;CACH,CAAC","sourcesContent":["import type {\n Caveat,\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { Bip32Entropy } from '@metamask/snaps-utils';\nimport {\n SnapCaveatType,\n Bip32EntropyStruct,\n isEqual,\n} from '@metamask/snaps-utils';\nimport { array, size, type } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { assertStruct } from '@metamask/utils';\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 permittedDerivationPathsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedDerivationPaths,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate a caveat path object. The object must consist of a `path` array and\n * a `curve` string. Paths must start with `m`, and must contain at\n * least two indices. If `ed25519` is used, this checks if all the path indices\n * are hardened.\n *\n * @param value - The value to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32Path(\n value: unknown,\n): asserts value is Bip32Entropy {\n assertStruct(\n value,\n Bip32EntropyStruct,\n 'Invalid BIP-32 entropy path definition',\n rpcErrors.invalidParams,\n );\n}\n\n/**\n * Validate the path values associated with a caveat. This validates that the\n * value is a non-empty array with valid derivation paths and curves.\n *\n * @param caveat - The caveat to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32CaveatPaths(\n caveat: Caveat<string, any>,\n): asserts caveat is Caveat<string, Bip32Entropy[]> {\n assertStruct(\n caveat,\n type({ value: size(array(Bip32EntropyStruct), 1, Infinity) }),\n 'Invalid BIP-32 entropy caveat',\n rpcErrors.internal,\n );\n}\n\nexport const PermittedDerivationPathsCaveatSpecification: Record<\n SnapCaveatType.PermittedDerivationPaths,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedDerivationPaths]: Object.freeze({\n type: SnapCaveatType.PermittedDerivationPaths,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP32Path(params);\n\n const path = (caveat.value as Bip32Entropy[]).find(\n (caveatPath) =>\n isEqual(\n params.path.slice(0, caveatPath.path.length),\n caveatPath.path,\n ) && caveatPath.curve === params.curve,\n );\n\n if (!path) {\n throw providerErrors.unauthorized({\n message:\n 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP32CaveatPaths(caveat),\n }),\n};\n"]}
@@ -1,7 +1,7 @@
1
- import type { Caveat, PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint } from '@metamask/permission-controller';
2
- import type { Bip32Entropy } from '@metamask/snaps-utils';
3
- import { SnapCaveatType } from '@metamask/snaps-utils';
4
- import type { Json } from '@metamask/utils';
1
+ import type { Caveat, PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint } from "@metamask/permission-controller";
2
+ import type { Bip32Entropy } from "@metamask/snaps-utils";
3
+ import { SnapCaveatType } from "@metamask/snaps-utils";
4
+ import type { Json } from "@metamask/utils";
5
5
  /**
6
6
  * Map a raw value from the `initialPermissions` to a caveat specification.
7
7
  * Note that this function does not do any validation, that's handled by the
@@ -30,3 +30,4 @@ export declare function validateBIP32Path(value: unknown): asserts value is Bip3
30
30
  */
31
31
  export declare function validateBIP32CaveatPaths(caveat: Caveat<string, any>): asserts caveat is Caveat<string, Bip32Entropy[]>;
32
32
  export declare const PermittedDerivationPathsCaveatSpecification: Record<SnapCaveatType.PermittedDerivationPaths, RestrictedMethodCaveatSpecificationConstraint>;
33
+ //# sourceMappingURL=permittedDerivationPaths.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permittedDerivationPaths.d.cts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,oBAAoB,EACpB,6CAA6C,EAC9C,wCAAwC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,EACL,cAAc,EAGf,8BAA8B;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,YAAY,CAO/B;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAOlD;AAED,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,cAAc,CAAC,wBAAwB,EACvC,6CAA6C,CA6B9C,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Caveat, PermissionConstraint, RestrictedMethodCaveatSpecificationConstraint } from "@metamask/permission-controller";
2
+ import type { Bip32Entropy } from "@metamask/snaps-utils";
3
+ import { SnapCaveatType } from "@metamask/snaps-utils";
4
+ import type { Json } from "@metamask/utils";
5
+ /**
6
+ * Map a raw value from the `initialPermissions` to a caveat specification.
7
+ * Note that this function does not do any validation, that's handled by the
8
+ * PermissionsController when the permission is requested.
9
+ *
10
+ * @param value - The raw value from the `initialPermissions`.
11
+ * @returns The caveat specification.
12
+ */
13
+ export declare function permittedDerivationPathsCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
14
+ /**
15
+ * Validate a caveat path object. The object must consist of a `path` array and
16
+ * a `curve` string. Paths must start with `m`, and must contain at
17
+ * least two indices. If `ed25519` is used, this checks if all the path indices
18
+ * are hardened.
19
+ *
20
+ * @param value - The value to validate.
21
+ * @throws If the value is invalid.
22
+ */
23
+ export declare function validateBIP32Path(value: unknown): asserts value is Bip32Entropy;
24
+ /**
25
+ * Validate the path values associated with a caveat. This validates that the
26
+ * value is a non-empty array with valid derivation paths and curves.
27
+ *
28
+ * @param caveat - The caveat to validate.
29
+ * @throws If the value is invalid.
30
+ */
31
+ export declare function validateBIP32CaveatPaths(caveat: Caveat<string, any>): asserts caveat is Caveat<string, Bip32Entropy[]>;
32
+ export declare const PermittedDerivationPathsCaveatSpecification: Record<SnapCaveatType.PermittedDerivationPaths, RestrictedMethodCaveatSpecificationConstraint>;
33
+ //# sourceMappingURL=permittedDerivationPaths.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permittedDerivationPaths.d.mts","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,oBAAoB,EACpB,6CAA6C,EAC9C,wCAAwC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B;AAC1D,OAAO,EACL,cAAc,EAGf,8BAA8B;AAE/B,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAG5C;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,YAAY,CAO/B;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAOlD;AAED,eAAO,MAAM,2CAA2C,EAAE,MAAM,CAC9D,cAAc,CAAC,wBAAwB,EACvC,6CAA6C,CA6B9C,CAAC"}
@@ -1,13 +1,64 @@
1
- import {
2
- PermittedDerivationPathsCaveatSpecification,
3
- permittedDerivationPathsCaveatMapper,
4
- validateBIP32CaveatPaths,
5
- validateBIP32Path
6
- } from "../../chunk-I2P65KBQ.mjs";
7
- export {
8
- PermittedDerivationPathsCaveatSpecification,
9
- permittedDerivationPathsCaveatMapper,
10
- validateBIP32CaveatPaths,
11
- validateBIP32Path
1
+ import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
2
+ import { SnapCaveatType, Bip32EntropyStruct, isEqual } from "@metamask/snaps-utils";
3
+ import { array, size, type } from "@metamask/superstruct";
4
+ import { assertStruct } from "@metamask/utils";
5
+ /**
6
+ * Map a raw value from the `initialPermissions` to a caveat specification.
7
+ * Note that this function does not do any validation, that's handled by the
8
+ * PermissionsController when the permission is requested.
9
+ *
10
+ * @param value - The raw value from the `initialPermissions`.
11
+ * @returns The caveat specification.
12
+ */
13
+ export function permittedDerivationPathsCaveatMapper(value) {
14
+ return {
15
+ caveats: [
16
+ {
17
+ type: SnapCaveatType.PermittedDerivationPaths,
18
+ value,
19
+ },
20
+ ],
21
+ };
22
+ }
23
+ /**
24
+ * Validate a caveat path object. The object must consist of a `path` array and
25
+ * a `curve` string. Paths must start with `m`, and must contain at
26
+ * least two indices. If `ed25519` is used, this checks if all the path indices
27
+ * are hardened.
28
+ *
29
+ * @param value - The value to validate.
30
+ * @throws If the value is invalid.
31
+ */
32
+ export function validateBIP32Path(value) {
33
+ assertStruct(value, Bip32EntropyStruct, 'Invalid BIP-32 entropy path definition', rpcErrors.invalidParams);
34
+ }
35
+ /**
36
+ * Validate the path values associated with a caveat. This validates that the
37
+ * value is a non-empty array with valid derivation paths and curves.
38
+ *
39
+ * @param caveat - The caveat to validate.
40
+ * @throws If the value is invalid.
41
+ */
42
+ export function validateBIP32CaveatPaths(caveat) {
43
+ assertStruct(caveat, type({ value: size(array(Bip32EntropyStruct), 1, Infinity) }), 'Invalid BIP-32 entropy caveat', rpcErrors.internal);
44
+ }
45
+ export const PermittedDerivationPathsCaveatSpecification = {
46
+ [SnapCaveatType.PermittedDerivationPaths]: Object.freeze({
47
+ type: SnapCaveatType.PermittedDerivationPaths,
48
+ decorator: (method, caveat) => {
49
+ return async (args) => {
50
+ const { params } = args;
51
+ validateBIP32Path(params);
52
+ const path = caveat.value.find((caveatPath) => isEqual(params.path.slice(0, caveatPath.path.length), caveatPath.path) && caveatPath.curve === params.curve);
53
+ if (!path) {
54
+ throw providerErrors.unauthorized({
55
+ message: 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',
56
+ });
57
+ }
58
+ return await method(args);
59
+ };
60
+ },
61
+ validator: (caveat) => validateBIP32CaveatPaths(caveat),
62
+ }),
12
63
  };
13
64
  //# sourceMappingURL=permittedDerivationPaths.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"permittedDerivationPaths.mjs","sourceRoot":"","sources":["../../../src/restricted/caveats/permittedDerivationPaths.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAEjE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,OAAO,EACR,8BAA8B;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,8BAA8B;AAE1D,OAAO,EAAE,YAAY,EAAE,wBAAwB;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,oCAAoC,CAClD,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc,CAAC,wBAAwB;gBAC7C,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAc;IAEd,YAAY,CACV,KAAK,EACL,kBAAkB,EAClB,wCAAwC,EACxC,SAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA2B;IAE3B,YAAY,CACV,MAAM,EACN,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAC7D,+BAA+B,EAC/B,SAAS,CAAC,QAAQ,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2CAA2C,GAGpD;IACF,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,cAAc,CAAC,wBAAwB;QAC7C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;gBACxB,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAE1B,MAAM,IAAI,GAAI,MAAM,CAAC,KAAwB,CAAC,IAAI,CAChD,CAAC,UAAU,EAAE,EAAE,CACb,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5C,UAAU,CAAC,IAAI,CAChB,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CACzC,CAAC;gBAEF,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,cAAc,CAAC,YAAY,CAAC;wBAChC,OAAO,EACL,4FAA4F;qBAC/F,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;KACxD,CAAC;CACH,CAAC","sourcesContent":["import type {\n Caveat,\n PermissionConstraint,\n RestrictedMethodCaveatSpecificationConstraint,\n} from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type { Bip32Entropy } from '@metamask/snaps-utils';\nimport {\n SnapCaveatType,\n Bip32EntropyStruct,\n isEqual,\n} from '@metamask/snaps-utils';\nimport { array, size, type } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { assertStruct } from '@metamask/utils';\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 permittedDerivationPathsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.PermittedDerivationPaths,\n value,\n },\n ],\n };\n}\n\n/**\n * Validate a caveat path object. The object must consist of a `path` array and\n * a `curve` string. Paths must start with `m`, and must contain at\n * least two indices. If `ed25519` is used, this checks if all the path indices\n * are hardened.\n *\n * @param value - The value to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32Path(\n value: unknown,\n): asserts value is Bip32Entropy {\n assertStruct(\n value,\n Bip32EntropyStruct,\n 'Invalid BIP-32 entropy path definition',\n rpcErrors.invalidParams,\n );\n}\n\n/**\n * Validate the path values associated with a caveat. This validates that the\n * value is a non-empty array with valid derivation paths and curves.\n *\n * @param caveat - The caveat to validate.\n * @throws If the value is invalid.\n */\nexport function validateBIP32CaveatPaths(\n caveat: Caveat<string, any>,\n): asserts caveat is Caveat<string, Bip32Entropy[]> {\n assertStruct(\n caveat,\n type({ value: size(array(Bip32EntropyStruct), 1, Infinity) }),\n 'Invalid BIP-32 entropy caveat',\n rpcErrors.internal,\n );\n}\n\nexport const PermittedDerivationPathsCaveatSpecification: Record<\n SnapCaveatType.PermittedDerivationPaths,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.PermittedDerivationPaths]: Object.freeze({\n type: SnapCaveatType.PermittedDerivationPaths,\n decorator: (method, caveat) => {\n return async (args) => {\n const { params } = args;\n validateBIP32Path(params);\n\n const path = (caveat.value as Bip32Entropy[]).find(\n (caveatPath) =>\n isEqual(\n params.path.slice(0, caveatPath.path.length),\n caveatPath.path,\n ) && caveatPath.curve === params.curve,\n );\n\n if (!path) {\n throw providerErrors.unauthorized({\n message:\n 'The requested path is not permitted. Allowed paths must be specified in the snap manifest.',\n });\n }\n\n return await method(args);\n };\n },\n validator: (caveat) => validateBIP32CaveatPaths(caveat),\n }),\n};\n"]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnapIdsCaveatSpecification = exports.validateSnapIdsCaveat = exports.snapIdsCaveatMapper = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const snaps_utils_1 = require("@metamask/snaps-utils");
6
+ const superstruct_1 = require("@metamask/superstruct");
7
+ const utils_1 = require("@metamask/utils");
8
+ /**
9
+ * Map a raw value from the `initialPermissions` to a caveat specification.
10
+ * Note that this function does not do any validation, that's handled by the
11
+ * PermissionsController when the permission is requested.
12
+ *
13
+ * @param value - The raw value from the `initialPermissions`.
14
+ * @returns The caveat specification.
15
+ */
16
+ function snapIdsCaveatMapper(value) {
17
+ return {
18
+ caveats: [
19
+ {
20
+ type: snaps_utils_1.SnapCaveatType.SnapIds,
21
+ value,
22
+ },
23
+ ],
24
+ };
25
+ }
26
+ exports.snapIdsCaveatMapper = snapIdsCaveatMapper;
27
+ /**
28
+ * Validates that the caveat value exists and is a non-empty object.
29
+ *
30
+ * @param caveat - The caveat to validate.
31
+ * @throws If the caveat is invalid.
32
+ */
33
+ function validateSnapIdsCaveat(caveat) {
34
+ (0, utils_1.assertStruct)(caveat, (0, superstruct_1.type)({
35
+ value: snaps_utils_1.SnapIdsStruct,
36
+ }), 'Expected caveat to have a value property of a non-empty object of snap IDs.', rpc_errors_1.rpcErrors.invalidParams);
37
+ }
38
+ exports.validateSnapIdsCaveat = validateSnapIdsCaveat;
39
+ exports.SnapIdsCaveatSpecification = {
40
+ [snaps_utils_1.SnapCaveatType.SnapIds]: Object.freeze({
41
+ type: snaps_utils_1.SnapCaveatType.SnapIds,
42
+ validator: (caveat) => validateSnapIdsCaveat(caveat),
43
+ decorator: (method, caveat) => {
44
+ return async (args) => {
45
+ const { params, context: { origin }, } = args;
46
+ const snapIds = caveat.value;
47
+ const { snapId } = params;
48
+ if (!(0, utils_1.hasProperty)(snapIds, snapId)) {
49
+ throw new Error(`${origin} does not have permission to invoke ${snapId} snap.`);
50
+ }
51
+ return await method(args);
52
+ };
53
+ },
54
+ }),
55
+ };
56
+ //# sourceMappingURL=snapIds.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapIds.cjs","sourceRoot":"","sources":["../../../src/restricted/caveats/snapIds.ts"],"names":[],"mappings":";;;AAOA,qDAAiD;AAEjD,uDAAsE;AACtE,uDAA6C;AAE7C,2CAA4D;AAI5D;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,KAAW;IAEX,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,OAAO;gBAC5B,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAXD,kDAWC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,MAA2B;IAE3B,IAAA,oBAAY,EACV,MAAM,EACN,IAAA,kBAAI,EAAC;QACH,KAAK,EAAE,2BAAa;KACrB,CAAC,EACF,6EAA6E,EAC7E,sBAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AAXD,sDAWC;AAEY,QAAA,0BAA0B,GAGnC;IACF,CAAC,4BAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE,4BAAc,CAAC,OAAO;QAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC;QACpD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,EAAE;gBACpB,MAAM,EACJ,MAAM,EACN,OAAO,EAAE,EAAE,MAAM,EAAE,GACpB,GAAwD,IAAI,CAAC;gBAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAgB,CAAC;gBACxC,MAAM,EAAE,MAAM,EAAE,GAAG,MAA0B,CAAC;gBAC9C,IAAI,CAAC,IAAA,mBAAW,EAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,uCAAuC,MAAM,QAAQ,CAC/D,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;CACH,CAAC","sourcesContent":["import type {\n Caveat,\n RestrictedMethodOptions,\n RestrictedMethodParameters,\n RestrictedMethodCaveatSpecificationConstraint,\n PermissionConstraint,\n} from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { SnapIds } from '@metamask/snaps-utils';\nimport { SnapCaveatType, SnapIdsStruct } from '@metamask/snaps-utils';\nimport { type } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\nimport { hasProperty, assertStruct } from '@metamask/utils';\n\nimport type { InvokeSnapParams } from '../invokeSnap';\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 snapIdsCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n return {\n caveats: [\n {\n type: SnapCaveatType.SnapIds,\n value,\n },\n ],\n };\n}\n\n/**\n * Validates that the caveat value exists and is a non-empty object.\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat is invalid.\n */\nexport function validateSnapIdsCaveat(\n caveat: Caveat<string, any>,\n): asserts caveat is Caveat<string, SnapIds> {\n assertStruct(\n caveat,\n type({\n value: SnapIdsStruct,\n }),\n 'Expected caveat to have a value property of a non-empty object of snap IDs.',\n rpcErrors.invalidParams,\n );\n}\n\nexport const SnapIdsCaveatSpecification: Record<\n SnapCaveatType.SnapIds,\n RestrictedMethodCaveatSpecificationConstraint\n> = {\n [SnapCaveatType.SnapIds]: Object.freeze({\n type: SnapCaveatType.SnapIds,\n validator: (caveat) => validateSnapIdsCaveat(caveat),\n decorator: (method, caveat) => {\n return async (args) => {\n const {\n params,\n context: { origin },\n }: RestrictedMethodOptions<RestrictedMethodParameters> = args;\n const snapIds = caveat.value as SnapIds;\n const { snapId } = params as InvokeSnapParams;\n if (!hasProperty(snapIds, snapId)) {\n throw new Error(\n `${origin} does not have permission to invoke ${snapId} snap.`,\n );\n }\n return await method(args);\n };\n },\n }),\n};\n"]}
@@ -1,7 +1,7 @@
1
- import type { Caveat, RestrictedMethodCaveatSpecificationConstraint, PermissionConstraint } from '@metamask/permission-controller';
2
- import type { SnapIds } from '@metamask/snaps-utils';
3
- import { SnapCaveatType } from '@metamask/snaps-utils';
4
- import type { Json } from '@metamask/utils';
1
+ import type { Caveat, RestrictedMethodCaveatSpecificationConstraint, PermissionConstraint } from "@metamask/permission-controller";
2
+ import type { SnapIds } from "@metamask/snaps-utils";
3
+ import { SnapCaveatType } from "@metamask/snaps-utils";
4
+ import type { Json } from "@metamask/utils";
5
5
  /**
6
6
  * Map a raw value from the `initialPermissions` to a caveat specification.
7
7
  * Note that this function does not do any validation, that's handled by the
@@ -19,3 +19,4 @@ export declare function snapIdsCaveatMapper(value: Json): Pick<PermissionConstra
19
19
  */
20
20
  export declare function validateSnapIdsCaveat(caveat: Caveat<string, any>): asserts caveat is Caveat<string, SnapIds>;
21
21
  export declare const SnapIdsCaveatSpecification: Record<SnapCaveatType.SnapIds, RestrictedMethodCaveatSpecificationConstraint>;
22
+ //# sourceMappingURL=snapIds.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapIds.d.cts","sourceRoot":"","sources":["../../../src/restricted/caveats/snapIds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAGN,6CAA6C,EAC7C,oBAAoB,EACrB,wCAAwC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;AACrD,OAAO,EAAE,cAAc,EAAiB,8BAA8B;AAEtE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAK5C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3C;AAED,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAC7C,cAAc,CAAC,OAAO,EACtB,6CAA6C,CAsB9C,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Caveat, RestrictedMethodCaveatSpecificationConstraint, PermissionConstraint } from "@metamask/permission-controller";
2
+ import type { SnapIds } from "@metamask/snaps-utils";
3
+ import { SnapCaveatType } from "@metamask/snaps-utils";
4
+ import type { Json } from "@metamask/utils";
5
+ /**
6
+ * Map a raw value from the `initialPermissions` to a caveat specification.
7
+ * Note that this function does not do any validation, that's handled by the
8
+ * PermissionsController when the permission is requested.
9
+ *
10
+ * @param value - The raw value from the `initialPermissions`.
11
+ * @returns The caveat specification.
12
+ */
13
+ export declare function snapIdsCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
14
+ /**
15
+ * Validates that the caveat value exists and is a non-empty object.
16
+ *
17
+ * @param caveat - The caveat to validate.
18
+ * @throws If the caveat is invalid.
19
+ */
20
+ export declare function validateSnapIdsCaveat(caveat: Caveat<string, any>): asserts caveat is Caveat<string, SnapIds>;
21
+ export declare const SnapIdsCaveatSpecification: Record<SnapCaveatType.SnapIds, RestrictedMethodCaveatSpecificationConstraint>;
22
+ //# sourceMappingURL=snapIds.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapIds.d.mts","sourceRoot":"","sources":["../../../src/restricted/caveats/snapIds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAGN,6CAA6C,EAC7C,oBAAoB,EACrB,wCAAwC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,8BAA8B;AACrD,OAAO,EAAE,cAAc,EAAiB,8BAA8B;AAEtE,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAK5C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CASvC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3C;AAED,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAC7C,cAAc,CAAC,OAAO,EACtB,6CAA6C,CAsB9C,CAAC"}