@metamask/keyring-api 10.1.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/{JsonRpcRequest.js → JsonRpcRequest.cjs} +2 -2
  3. package/dist/JsonRpcRequest.cjs.map +1 -0
  4. package/dist/{JsonRpcRequest.d.ts → JsonRpcRequest.d.cts} +3 -2
  5. package/dist/JsonRpcRequest.d.cts.map +1 -0
  6. package/dist/JsonRpcRequest.d.mts +17 -0
  7. package/dist/JsonRpcRequest.d.mts.map +1 -0
  8. package/dist/JsonRpcRequest.mjs +10 -0
  9. package/dist/JsonRpcRequest.mjs.map +1 -0
  10. package/dist/{KeyringClient.js → KeyringClient.cjs} +4 -4
  11. package/dist/KeyringClient.cjs.map +1 -0
  12. package/dist/{KeyringClient.d.ts → KeyringClient.d.cts} +4 -3
  13. package/dist/KeyringClient.d.cts.map +1 -0
  14. package/dist/KeyringClient.d.mts +29 -0
  15. package/dist/KeyringClient.d.mts.map +1 -0
  16. package/dist/KeyringClient.mjs +120 -0
  17. package/dist/KeyringClient.mjs.map +1 -0
  18. package/dist/{KeyringSnapRpcClient.js → KeyringSnapRpcClient.cjs} +2 -2
  19. package/dist/KeyringSnapRpcClient.cjs.map +1 -0
  20. package/dist/{KeyringSnapRpcClient.d.ts → KeyringSnapRpcClient.d.cts} +6 -5
  21. package/dist/KeyringSnapRpcClient.d.cts.map +1 -0
  22. package/dist/KeyringSnapRpcClient.d.mts +40 -0
  23. package/dist/KeyringSnapRpcClient.d.mts.map +1 -0
  24. package/dist/KeyringSnapRpcClient.mjs +63 -0
  25. package/dist/KeyringSnapRpcClient.mjs.map +1 -0
  26. package/dist/api/{account.js → account.cjs} +3 -3
  27. package/dist/api/account.cjs.map +1 -0
  28. package/dist/api/{account.d.ts → account.d.cts} +2 -1
  29. package/dist/api/account.d.cts.map +1 -0
  30. package/dist/api/account.d.mts +70 -0
  31. package/dist/api/account.d.mts.map +1 -0
  32. package/dist/api/account.mjs +61 -0
  33. package/dist/api/account.mjs.map +1 -0
  34. package/dist/api/{balance.js → balance.cjs} +3 -3
  35. package/dist/api/balance.cjs.map +1 -0
  36. package/dist/api/{balance.d.ts → balance.d.cts} +2 -1
  37. package/dist/api/balance.d.cts.map +1 -0
  38. package/dist/api/balance.d.mts +10 -0
  39. package/dist/api/balance.d.mts.map +1 -0
  40. package/dist/api/balance.mjs +8 -0
  41. package/dist/api/balance.mjs.map +1 -0
  42. package/dist/api/{caip.js → caip.cjs} +5 -5
  43. package/dist/api/caip.cjs.map +1 -0
  44. package/dist/api/{caip.d.ts → caip.d.cts} +2 -1
  45. package/dist/api/caip.d.cts.map +1 -0
  46. package/dist/api/caip.d.mts +38 -0
  47. package/dist/api/caip.d.mts.map +1 -0
  48. package/dist/api/caip.mjs +43 -0
  49. package/dist/api/caip.mjs.map +1 -0
  50. package/dist/api/{export.js → export.cjs} +1 -1
  51. package/dist/api/export.cjs.map +1 -0
  52. package/dist/api/{export.d.ts → export.d.cts} +2 -1
  53. package/dist/api/export.d.cts.map +1 -0
  54. package/dist/api/export.d.mts +9 -0
  55. package/dist/api/export.d.mts.map +1 -0
  56. package/dist/api/export.mjs +4 -0
  57. package/dist/api/export.mjs.map +1 -0
  58. package/dist/api/{index.js → index.cjs} +7 -7
  59. package/dist/api/index.cjs.map +1 -0
  60. package/dist/api/index.d.cts +8 -0
  61. package/dist/api/index.d.cts.map +1 -0
  62. package/dist/api/index.d.mts +8 -0
  63. package/dist/api/index.d.mts.map +1 -0
  64. package/dist/api/index.mjs +7 -0
  65. package/dist/api/index.mjs.map +1 -0
  66. package/dist/api/{keyring.js → keyring.cjs} +1 -1
  67. package/dist/api/keyring.cjs.map +1 -0
  68. package/dist/api/{keyring.d.ts → keyring.d.cts} +8 -7
  69. package/dist/api/keyring.d.cts.map +1 -0
  70. package/dist/api/keyring.d.mts +160 -0
  71. package/dist/api/keyring.d.mts.map +1 -0
  72. package/dist/api/keyring.mjs +2 -0
  73. package/dist/api/keyring.mjs.map +1 -0
  74. package/dist/api/{request.js → request.cjs} +3 -3
  75. package/dist/api/request.cjs.map +1 -0
  76. package/dist/api/{request.d.ts → request.d.cts} +3 -2
  77. package/dist/api/request.d.cts.map +1 -0
  78. package/dist/api/request.d.mts +40 -0
  79. package/dist/api/request.d.mts.map +1 -0
  80. package/dist/api/request.mjs +26 -0
  81. package/dist/api/request.mjs.map +1 -0
  82. package/dist/api/{response.js → response.cjs} +2 -2
  83. package/dist/api/response.cjs.map +1 -0
  84. package/dist/api/{response.d.ts → response.d.cts} +2 -1
  85. package/dist/api/response.d.cts.map +1 -0
  86. package/dist/api/response.d.mts +25 -0
  87. package/dist/api/response.d.mts.map +1 -0
  88. package/dist/api/response.mjs +41 -0
  89. package/dist/api/response.mjs.map +1 -0
  90. package/dist/{eth/erc4337/index.js → btc/index.cjs} +2 -2
  91. package/dist/btc/index.cjs.map +1 -0
  92. package/dist/btc/index.d.cts +2 -0
  93. package/dist/btc/index.d.cts.map +1 -0
  94. package/dist/btc/index.d.mts +2 -0
  95. package/dist/btc/index.d.mts.map +1 -0
  96. package/dist/btc/index.mjs +2 -0
  97. package/dist/btc/index.mjs.map +1 -0
  98. package/dist/btc/{types.js → types.cjs} +3 -3
  99. package/dist/btc/types.cjs.map +1 -0
  100. package/dist/btc/{types.d.ts → types.d.cts} +2 -1
  101. package/dist/btc/types.d.cts.map +1 -0
  102. package/dist/btc/types.d.mts +34 -0
  103. package/dist/btc/types.d.mts.map +1 -0
  104. package/dist/btc/types.mjs +37 -0
  105. package/dist/btc/types.mjs.map +1 -0
  106. package/dist/{contexts.js → contexts.cjs} +1 -1
  107. package/dist/contexts.cjs.map +1 -0
  108. package/dist/{contexts.d.ts → contexts.d.cts} +1 -0
  109. package/dist/contexts.d.cts.map +1 -0
  110. package/dist/contexts.d.mts +8 -0
  111. package/dist/contexts.d.mts.map +1 -0
  112. package/dist/contexts.mjs +2 -0
  113. package/dist/contexts.mjs.map +1 -0
  114. package/dist/{sol/index.js → eth/erc4337/index.cjs} +2 -2
  115. package/dist/eth/erc4337/index.cjs.map +1 -0
  116. package/dist/eth/erc4337/index.d.cts +2 -0
  117. package/dist/eth/erc4337/index.d.cts.map +1 -0
  118. package/dist/eth/erc4337/index.d.mts +2 -0
  119. package/dist/eth/erc4337/index.d.mts.map +1 -0
  120. package/dist/eth/erc4337/index.mjs +2 -0
  121. package/dist/eth/erc4337/index.mjs.map +1 -0
  122. package/dist/eth/erc4337/{types.js → types.cjs} +4 -4
  123. package/dist/eth/erc4337/types.cjs.map +1 -0
  124. package/dist/eth/erc4337/{types.d.ts → types.d.cts} +6 -5
  125. package/dist/eth/erc4337/types.d.cts.map +1 -0
  126. package/dist/eth/erc4337/types.d.mts +98 -0
  127. package/dist/eth/erc4337/types.d.mts.map +1 -0
  128. package/dist/eth/erc4337/types.mjs +59 -0
  129. package/dist/eth/erc4337/types.mjs.map +1 -0
  130. package/dist/eth/{index.js → index.cjs} +4 -4
  131. package/dist/eth/index.cjs.map +1 -0
  132. package/dist/eth/index.d.cts +4 -0
  133. package/dist/eth/index.d.cts.map +1 -0
  134. package/dist/eth/index.d.mts +4 -0
  135. package/dist/eth/index.d.mts.map +1 -0
  136. package/dist/eth/index.mjs +4 -0
  137. package/dist/eth/index.mjs.map +1 -0
  138. package/dist/eth/{types.js → types.cjs} +3 -3
  139. package/dist/eth/types.cjs.map +1 -0
  140. package/dist/eth/{types.d.ts → types.d.cts} +2 -1
  141. package/dist/eth/types.d.cts.map +1 -0
  142. package/dist/eth/types.d.mts +81 -0
  143. package/dist/eth/types.d.mts.map +1 -0
  144. package/dist/eth/types.mjs +70 -0
  145. package/dist/eth/types.mjs.map +1 -0
  146. package/dist/eth/{utils.js → utils.cjs} +3 -4
  147. package/dist/eth/{utils.js.map → utils.cjs.map} +1 -1
  148. package/dist/eth/{utils.d.ts → utils.d.cts} +2 -1
  149. package/dist/eth/utils.d.cts.map +1 -0
  150. package/dist/eth/utils.d.mts +9 -0
  151. package/dist/eth/utils.d.mts.map +1 -0
  152. package/dist/eth/utils.mjs +11 -0
  153. package/dist/eth/utils.mjs.map +1 -0
  154. package/dist/{events.js → events.cjs} +1 -1
  155. package/dist/events.cjs.map +1 -0
  156. package/dist/{events.d.ts → events.d.cts} +1 -0
  157. package/dist/events.d.cts.map +1 -0
  158. package/dist/events.d.mts +11 -0
  159. package/dist/events.d.mts.map +1 -0
  160. package/dist/events.mjs +14 -0
  161. package/dist/events.mjs.map +1 -0
  162. package/dist/index.cjs +29 -0
  163. package/dist/index.cjs.map +1 -0
  164. package/dist/index.d.cts +14 -0
  165. package/dist/index.d.cts.map +1 -0
  166. package/dist/index.d.mts +14 -0
  167. package/dist/index.d.mts.map +1 -0
  168. package/dist/index.mjs +13 -0
  169. package/dist/index.mjs.map +1 -0
  170. package/dist/internal/{api.js → api.cjs} +5 -5
  171. package/dist/internal/api.cjs.map +1 -0
  172. package/dist/internal/{api.d.ts → api.d.cts} +5 -4
  173. package/dist/internal/api.d.cts.map +1 -0
  174. package/dist/internal/api.d.mts +420 -0
  175. package/dist/internal/api.d.mts.map +1 -0
  176. package/dist/internal/api.mjs +136 -0
  177. package/dist/internal/api.mjs.map +1 -0
  178. package/dist/internal/eth/{EthKeyring.js → EthKeyring.cjs} +1 -1
  179. package/dist/internal/eth/EthKeyring.cjs.map +1 -0
  180. package/dist/internal/eth/{EthKeyring.d.ts → EthKeyring.d.cts} +4 -3
  181. package/dist/internal/eth/EthKeyring.d.cts.map +1 -0
  182. package/dist/internal/eth/EthKeyring.d.mts +34 -0
  183. package/dist/internal/eth/EthKeyring.d.mts.map +1 -0
  184. package/dist/internal/eth/EthKeyring.mjs +2 -0
  185. package/dist/internal/eth/EthKeyring.mjs.map +1 -0
  186. package/dist/internal/eth/{index.js → index.cjs} +1 -1
  187. package/dist/internal/eth/index.cjs.map +1 -0
  188. package/dist/internal/eth/index.d.cts +2 -0
  189. package/dist/internal/eth/index.d.cts.map +1 -0
  190. package/dist/internal/eth/index.d.mts +2 -0
  191. package/dist/internal/eth/index.d.mts.map +1 -0
  192. package/dist/internal/eth/index.mjs +2 -0
  193. package/dist/internal/eth/index.mjs.map +1 -0
  194. package/dist/internal/{events.js → events.cjs} +5 -5
  195. package/dist/internal/events.cjs.map +1 -0
  196. package/dist/internal/{events.d.ts → events.d.cts} +3 -2
  197. package/dist/internal/events.d.cts.map +1 -0
  198. package/dist/internal/events.d.mts +162 -0
  199. package/dist/internal/events.d.mts.map +1 -0
  200. package/dist/internal/events.mjs +69 -0
  201. package/dist/internal/events.mjs.map +1 -0
  202. package/dist/internal/{index.js → index.cjs} +5 -5
  203. package/dist/internal/index.cjs.map +1 -0
  204. package/dist/internal/index.d.cts +6 -0
  205. package/dist/internal/index.d.cts.map +1 -0
  206. package/dist/internal/index.d.mts +6 -0
  207. package/dist/internal/index.d.mts.map +1 -0
  208. package/dist/internal/index.mjs +5 -0
  209. package/dist/internal/index.mjs.map +1 -0
  210. package/dist/internal/{rpc.js → rpc.cjs} +3 -3
  211. package/dist/internal/rpc.cjs.map +1 -0
  212. package/dist/internal/{rpc.d.ts → rpc.d.cts} +1 -0
  213. package/dist/internal/rpc.d.cts.map +1 -0
  214. package/dist/internal/rpc.d.mts +26 -0
  215. package/dist/internal/rpc.d.mts.map +1 -0
  216. package/dist/internal/rpc.mjs +29 -0
  217. package/dist/internal/{rpc.js.map → rpc.mjs.map} +1 -1
  218. package/dist/internal/{types.js → types.cjs} +6 -6
  219. package/dist/internal/types.cjs.map +1 -0
  220. package/dist/internal/{types.d.ts → types.d.cts} +21 -20
  221. package/dist/internal/types.d.cts.map +1 -0
  222. package/dist/internal/types.d.mts +392 -0
  223. package/dist/internal/types.d.mts.map +1 -0
  224. package/dist/internal/types.mjs +49 -0
  225. package/dist/internal/types.mjs.map +1 -0
  226. package/dist/{rpc-handler.js → rpc-handler.cjs} +6 -6
  227. package/dist/rpc-handler.cjs.map +1 -0
  228. package/dist/{rpc-handler.d.ts → rpc-handler.d.cts} +4 -3
  229. package/dist/rpc-handler.d.cts.map +1 -0
  230. package/dist/rpc-handler.d.mts +30 -0
  231. package/dist/rpc-handler.d.mts.map +1 -0
  232. package/dist/rpc-handler.mjs +131 -0
  233. package/dist/rpc-handler.mjs.map +1 -0
  234. package/dist/{snap-utils.js → snap-utils.cjs} +2 -3
  235. package/dist/snap-utils.cjs.map +1 -0
  236. package/dist/{snap-utils.d.ts → snap-utils.d.cts} +4 -3
  237. package/dist/snap-utils.d.cts.map +1 -0
  238. package/dist/snap-utils.d.mts +12 -0
  239. package/dist/snap-utils.d.mts.map +1 -0
  240. package/dist/snap-utils.mjs +17 -0
  241. package/dist/snap-utils.mjs.map +1 -0
  242. package/dist/{btc/index.js → sol/index.cjs} +2 -2
  243. package/dist/sol/index.cjs.map +1 -0
  244. package/dist/sol/index.d.cts +2 -0
  245. package/dist/sol/index.d.cts.map +1 -0
  246. package/dist/sol/index.d.mts +2 -0
  247. package/dist/sol/index.d.mts.map +1 -0
  248. package/dist/sol/index.mjs +2 -0
  249. package/dist/sol/index.mjs.map +1 -0
  250. package/dist/sol/{types.js → types.cjs} +3 -3
  251. package/dist/sol/types.cjs.map +1 -0
  252. package/dist/sol/{types.d.ts → types.d.cts} +2 -1
  253. package/dist/sol/types.d.cts.map +1 -0
  254. package/dist/sol/types.d.mts +39 -0
  255. package/dist/sol/types.d.mts.map +1 -0
  256. package/dist/sol/types.mjs +33 -0
  257. package/dist/sol/types.mjs.map +1 -0
  258. package/dist/{superstruct.js → superstruct.cjs} +5 -6
  259. package/dist/superstruct.cjs.map +1 -0
  260. package/dist/{superstruct.d.ts → superstruct.d.cts} +3 -2
  261. package/dist/superstruct.d.cts.map +1 -0
  262. package/dist/superstruct.d.mts +84 -0
  263. package/dist/superstruct.d.mts.map +1 -0
  264. package/dist/superstruct.mjs +74 -0
  265. package/dist/superstruct.mjs.map +1 -0
  266. package/dist/utils/{index.js → index.cjs} +3 -3
  267. package/dist/utils/index.cjs.map +1 -0
  268. package/dist/utils/index.d.cts +3 -0
  269. package/dist/utils/index.d.cts.map +1 -0
  270. package/dist/utils/index.d.mts +3 -0
  271. package/dist/utils/index.d.mts.map +1 -0
  272. package/dist/utils/index.mjs +3 -0
  273. package/dist/utils/index.mjs.map +1 -0
  274. package/dist/utils/{types.js → types.cjs} +2 -2
  275. package/dist/utils/types.cjs.map +1 -0
  276. package/dist/utils/{types.d.ts → types.d.cts} +2 -1
  277. package/dist/utils/types.d.cts.map +1 -0
  278. package/dist/utils/types.d.mts +18 -0
  279. package/dist/utils/types.d.mts.map +1 -0
  280. package/dist/utils/types.mjs +26 -0
  281. package/dist/utils/types.mjs.map +1 -0
  282. package/dist/utils/{typing.js → typing.cjs} +2 -3
  283. package/dist/utils/{typing.js.map → typing.cjs.map} +1 -1
  284. package/dist/utils/{typing.d.ts → typing.d.cts} +1 -0
  285. package/dist/utils/typing.d.cts.map +1 -0
  286. package/dist/utils/typing.d.mts +33 -0
  287. package/dist/utils/typing.d.mts.map +1 -0
  288. package/dist/utils/typing.mjs +17 -0
  289. package/dist/utils/typing.mjs.map +1 -0
  290. package/package.json +19 -8
  291. package/dist/JsonRpcRequest.js.map +0 -1
  292. package/dist/KeyringClient.js.map +0 -1
  293. package/dist/KeyringSnapRpcClient.js.map +0 -1
  294. package/dist/api/account.js.map +0 -1
  295. package/dist/api/balance.js.map +0 -1
  296. package/dist/api/caip.js.map +0 -1
  297. package/dist/api/export.js.map +0 -1
  298. package/dist/api/index.d.ts +0 -7
  299. package/dist/api/index.js.map +0 -1
  300. package/dist/api/keyring.js.map +0 -1
  301. package/dist/api/request.js.map +0 -1
  302. package/dist/api/response.js.map +0 -1
  303. package/dist/btc/index.d.ts +0 -1
  304. package/dist/btc/index.js.map +0 -1
  305. package/dist/btc/types.js.map +0 -1
  306. package/dist/contexts.js.map +0 -1
  307. package/dist/eth/erc4337/index.d.ts +0 -1
  308. package/dist/eth/erc4337/index.js.map +0 -1
  309. package/dist/eth/erc4337/types.js.map +0 -1
  310. package/dist/eth/index.d.ts +0 -3
  311. package/dist/eth/index.js.map +0 -1
  312. package/dist/eth/types.js.map +0 -1
  313. package/dist/events.js.map +0 -1
  314. package/dist/index.d.ts +0 -12
  315. package/dist/index.js +0 -28
  316. package/dist/index.js.map +0 -1
  317. package/dist/internal/api.js.map +0 -1
  318. package/dist/internal/eth/EthKeyring.js.map +0 -1
  319. package/dist/internal/eth/index.d.ts +0 -1
  320. package/dist/internal/eth/index.js.map +0 -1
  321. package/dist/internal/events.js.map +0 -1
  322. package/dist/internal/index.d.ts +0 -5
  323. package/dist/internal/index.js.map +0 -1
  324. package/dist/internal/types.js.map +0 -1
  325. package/dist/rpc-handler.js.map +0 -1
  326. package/dist/snap-utils.js.map +0 -1
  327. package/dist/sol/index.d.ts +0 -1
  328. package/dist/sol/index.js.map +0 -1
  329. package/dist/sol/types.js.map +0 -1
  330. package/dist/superstruct.js.map +0 -1
  331. package/dist/utils/index.d.ts +0 -2
  332. package/dist/utils/index.js.map +0 -1
  333. package/dist/utils/types.js.map +0 -1
@@ -1,5 +0,0 @@
1
- export * from './api';
2
- export type * from './eth';
3
- export * from './events';
4
- export * from './rpc';
5
- export * from './types';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/internal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AAEtB,2CAAyB;AACzB,wCAAsB;AACtB,0CAAwB","sourcesContent":["export * from './api';\nexport type * from './eth';\nexport * from './events';\nexport * from './rpc';\nexport * from './types';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/internal/types.ts"],"names":[],"mappings":";;;AACA,uDAAgE;AAEhE,gCAKgB;AAChB,wCAAsD;AACtD,wCAA4E;AAC5E,wCAAoD;AACpD,gDAAuD;AAO1C,QAAA,6BAA6B,GAAG,IAAA,oBAAM,EAAC;IAClD,QAAQ,EAAE,IAAA,oBAAM,EAAC;QACf,IAAI,EAAE,IAAA,oBAAM,GAAE;QACd,iBAAiB,EAAE,IAAA,2BAAa,EAAC,IAAA,oBAAM,GAAE,CAAC;QAC1C,IAAI,EAAE,IAAA,2BAAa,EACjB,IAAA,oBAAM,EAAC;YACL,EAAE,EAAE,IAAA,oBAAM,GAAE;YACZ,OAAO,EAAE,IAAA,qBAAO,GAAE;YAClB,IAAI,EAAE,IAAA,oBAAM,GAAE;SACf,CAAC,CACH;QACD,YAAY,EAAE,IAAA,2BAAa,EAAC,IAAA,oBAAM,GAAE,CAAC;QACrC,UAAU,EAAE,IAAA,oBAAM,GAAE;QACpB,OAAO,EAAE,IAAA,oBAAM,EAAC;YACd,IAAI,EAAE,IAAA,oBAAM,GAAE;SACf,CAAC;KACH,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,IAAA,oBAAM,EAAC;IAChD,GAAG,2BAAmB,CAAC,MAAM;IAC7B,GAAG,qCAA6B,CAAC,MAAM;CACxC,CAAC,CAAC;AAEU,QAAA,+BAA+B,GAAG,IAAA,oBAAM,EAAC;IACpD,GAAG,+BAAuB,CAAC,MAAM;IACjC,GAAG,qCAA6B,CAAC,MAAM;CACxC,CAAC,CAAC;AAEU,QAAA,8BAA8B,GAAG,IAAA,oBAAM,EAAC;IACnD,GAAG,8BAAsB,CAAC,MAAM;IAChC,GAAG,qCAA6B,CAAC,MAAM;CACxC,CAAC,CAAC;AAEU,QAAA,4BAA4B,GAAG,IAAA,oBAAM,EAAC;IACjD,GAAG,4BAAoB,CAAC,MAAM;IAC9B,GAAG,qCAA6B,CAAC,MAAM;CACxC,CAAC,CAAC;AAcU,QAAA,sBAAsB,GAM/B;IACF,CAAC,GAAG,oBAAc,CAAC,GAAG,EAAE,CAAC,EAAE,mCAA2B;IACtD,CAAC,GAAG,oBAAc,CAAC,OAAO,EAAE,CAAC,EAAE,uCAA+B;IAC9D,CAAC,GAAG,oBAAc,CAAC,MAAM,EAAE,CAAC,EAAE,sCAA8B;IAC5D,CAAC,GAAG,oBAAc,CAAC,WAAW,EAAE,CAAC,EAAE,oCAA4B;CAChE,CAAC;AAQW,QAAA,qBAAqB,GAAG,IAAA,oBAAM,EAAC;IAC1C,GAAG,0BAAoB,CAAC,MAAM;IAC9B,GAAG,qCAA6B,CAAC,MAAM;CACxC,CAAC,CAAC","sourcesContent":["import type { Infer, Struct } from '@metamask/superstruct';\nimport { boolean, string, number } from '@metamask/superstruct';\n\nimport {\n BtcAccountType,\n EthAccountType,\n KeyringAccountStruct,\n SolAccountType,\n} from '../api';\nimport { BtcP2wpkhAccountStruct } from '../btc/types';\nimport { EthEoaAccountStruct, EthErc4337AccountStruct } from '../eth/types';\nimport { SolDataAccountStruct } from '../sol/types';\nimport { exactOptional, object } from '../superstruct';\n\nexport type InternalAccountType =\n | EthAccountType\n | BtcAccountType\n | SolAccountType;\n\nexport const InternalAccountMetadataStruct = object({\n metadata: object({\n name: string(),\n nameLastUpdatedAt: exactOptional(number()),\n snap: exactOptional(\n object({\n id: string(),\n enabled: boolean(),\n name: string(),\n }),\n ),\n lastSelected: exactOptional(number()),\n importTime: number(),\n keyring: object({\n type: string(),\n }),\n }),\n});\n\nexport const InternalEthEoaAccountStruct = object({\n ...EthEoaAccountStruct.schema,\n ...InternalAccountMetadataStruct.schema,\n});\n\nexport const InternalEthErc4337AccountStruct = object({\n ...EthErc4337AccountStruct.schema,\n ...InternalAccountMetadataStruct.schema,\n});\n\nexport const InternalBtcP2wpkhAccountStruct = object({\n ...BtcP2wpkhAccountStruct.schema,\n ...InternalAccountMetadataStruct.schema,\n});\n\nexport const InternalSolDataAccountStruct = object({\n ...SolDataAccountStruct.schema,\n ...InternalAccountMetadataStruct.schema,\n});\n\nexport type InternalEthEoaAccount = Infer<typeof InternalEthEoaAccountStruct>;\n\nexport type InternalEthErc4337Account = Infer<\n typeof InternalEthErc4337AccountStruct\n>;\n\nexport type InternalBtcP2wpkhAccount = Infer<\n typeof InternalBtcP2wpkhAccountStruct\n>;\n\nexport type InternalSolDataAccount = Infer<typeof InternalSolDataAccountStruct>;\n\nexport const InternalAccountStructs: Record<\n string,\n | Struct<InternalEthEoaAccount>\n | Struct<InternalEthErc4337Account>\n | Struct<InternalBtcP2wpkhAccount>\n | Struct<InternalSolDataAccount>\n> = {\n [`${EthAccountType.Eoa}`]: InternalEthEoaAccountStruct,\n [`${EthAccountType.Erc4337}`]: InternalEthErc4337AccountStruct,\n [`${BtcAccountType.P2wpkh}`]: InternalBtcP2wpkhAccountStruct,\n [`${SolAccountType.DataAccount}`]: InternalSolDataAccountStruct,\n};\n\nexport type InternalAccountTypes =\n | InternalEthEoaAccount\n | InternalEthErc4337Account\n | InternalBtcP2wpkhAccount\n | InternalSolDataAccount;\n\nexport const InternalAccountStruct = object({\n ...KeyringAccountStruct.schema,\n ...InternalAccountMetadataStruct.schema,\n});\n\n/**\n * Internal account representation.\n *\n * This type is used internally by MetaMask to add additional metadata to the\n * account object. It's should not be used by external applications.\n */\nexport type InternalAccount = Infer<typeof InternalAccountStruct>;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-handler.js","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\n\nimport type { Keyring } from './api';\nimport {\n GetAccountRequestStruct,\n CreateAccountRequestStruct,\n ApproveRequestRequestStruct,\n DeleteAccountRequestStruct,\n ExportAccountRequestStruct,\n GetRequestRequestStruct,\n RejectRequestRequestStruct,\n SubmitRequestRequestStruct,\n UpdateAccountRequestStruct,\n FilterAccountChainsStruct,\n ListAccountsRequestStruct,\n ListRequestsRequestStruct,\n GetAccountBalancesRequestStruct,\n} from './internal/api';\nimport { KeyringRpcMethod } from './internal/rpc';\nimport type { JsonRpcRequest } from './JsonRpcRequest';\nimport { JsonRpcRequestStruct } from './JsonRpcRequest';\n\n/**\n * Error thrown when a keyring JSON-RPC method is not supported.\n */\nexport class MethodNotSupportedError extends Error {\n constructor(method: string) {\n super(`Method not supported: ${method}`);\n }\n}\n\n/**\n * Inner function that dispatches JSON-RPC request to the associated Keyring\n * methods.\n *\n * @param keyring - Keyring instance.\n * @param request - Keyring JSON-RPC request.\n * @returns A promise that resolves to the keyring response.\n */\nasync function dispatchRequest(\n keyring: Keyring,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n // We first have to make sure that the request is a valid JSON-RPC request so\n // we can check its method name.\n assert(request, JsonRpcRequestStruct);\n\n switch (request.method) {\n case `${KeyringRpcMethod.ListAccounts}`: {\n assert(request, ListAccountsRequestStruct);\n return keyring.listAccounts();\n }\n\n case `${KeyringRpcMethod.GetAccount}`: {\n assert(request, GetAccountRequestStruct);\n return keyring.getAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.CreateAccount}`: {\n assert(request, CreateAccountRequestStruct);\n return keyring.createAccount(request.params.options);\n }\n\n case `${KeyringRpcMethod.GetAccountBalances}`: {\n if (keyring.getAccountBalances === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetAccountBalancesRequestStruct);\n return keyring.getAccountBalances(\n request.params.id,\n request.params.assets,\n );\n }\n\n case `${KeyringRpcMethod.FilterAccountChains}`: {\n assert(request, FilterAccountChainsStruct);\n return keyring.filterAccountChains(\n request.params.id,\n request.params.chains,\n );\n }\n\n case `${KeyringRpcMethod.UpdateAccount}`: {\n assert(request, UpdateAccountRequestStruct);\n return keyring.updateAccount(request.params.account);\n }\n\n case `${KeyringRpcMethod.DeleteAccount}`: {\n assert(request, DeleteAccountRequestStruct);\n return keyring.deleteAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.ExportAccount}`: {\n if (keyring.exportAccount === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ExportAccountRequestStruct);\n return keyring.exportAccount(request.params.id);\n }\n\n case `${KeyringRpcMethod.ListRequests}`: {\n if (keyring.listRequests === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ListRequestsRequestStruct);\n return keyring.listRequests();\n }\n\n case `${KeyringRpcMethod.GetRequest}`: {\n if (keyring.getRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, GetRequestRequestStruct);\n return keyring.getRequest(request.params.id);\n }\n\n case `${KeyringRpcMethod.SubmitRequest}`: {\n assert(request, SubmitRequestRequestStruct);\n return keyring.submitRequest(request.params);\n }\n\n case `${KeyringRpcMethod.ApproveRequest}`: {\n if (keyring.approveRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, ApproveRequestRequestStruct);\n return keyring.approveRequest(request.params.id, request.params.data);\n }\n\n case `${KeyringRpcMethod.RejectRequest}`: {\n if (keyring.rejectRequest === undefined) {\n throw new MethodNotSupportedError(request.method);\n }\n assert(request, RejectRequestRequestStruct);\n return keyring.rejectRequest(request.params.id);\n }\n\n default: {\n throw new MethodNotSupportedError(request.method);\n }\n }\n}\n\n/**\n * Handles a keyring JSON-RPC request.\n *\n * This function is meant to be used as a handler for Keyring JSON-RPC requests\n * in an Accounts Snap.\n *\n * @param keyring - Keyring instance.\n * @param request - Keyring JSON-RPC request.\n * @returns A promise that resolves to the keyring response.\n * @example\n * ```ts\n * export const onKeyringRequest: OnKeyringRequestHandler = async ({\n * origin,\n * request,\n * }) => {\n * return await handleKeyringRequest(keyring, request);\n * };\n * ```\n */\nexport async function handleKeyringRequest(\n keyring: Keyring,\n request: JsonRpcRequest,\n): Promise<Json | void> {\n try {\n return await dispatchRequest(keyring, request);\n } catch (error) {\n const message =\n error instanceof Error && typeof error.message === 'string'\n ? error.message\n : 'An unknown error occurred while handling the keyring request';\n\n throw new Error(message);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snap-utils.js","sourceRoot":"","sources":["../src/snap-utils.ts"],"names":[],"mappings":";;;AAKA;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,IAAmB,EACnB,KAAmB,EACnB,IAA0B;IAE1B,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,EAAE,qBAAqB;QAC7B,MAAM,EAAE;YACN,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE;SACpB;KACF,CAAC,CAAC;AACL,CAAC;AAZD,oDAYC","sourcesContent":["import type { SnapsProvider } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\nimport type { KeyringEvent } from './events';\n\n/**\n * Emit a keyring event from a snap.\n *\n * @param snap - The global snap object.\n * @param event - The event name.\n * @param data - The event data.\n */\nexport async function emitSnapKeyringEvent(\n snap: SnapsProvider,\n event: KeyringEvent,\n data: Record<string, Json>,\n): Promise<void> {\n await snap.request({\n method: 'snap_manageAccounts',\n params: {\n method: event,\n params: { ...data },\n },\n });\n}\n"]}
@@ -1 +0,0 @@
1
- export * from './types';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sol/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB","sourcesContent":["export * from './types';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sol/types.ts"],"names":[],"mappings":";;;AACA,uDAA8D;AAE9D,gCAA8D;AAC9D,gDAAuD;AAEvD;;;;GAIG;AACU,QAAA,gBAAgB,GAAG,IAAA,2BAAa,EAC3C,YAAY,EACZ,iCAAiC,CAClC,CAAC;AAEF;;GAEG;AACH,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,8BAA8B;IAC9B,oEAAuD,CAAA;AACzD,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAEY,QAAA,oBAAoB,GAAG,IAAA,oBAAM,EAAC;IACzC,GAAG,0BAAoB,CAAC,MAAM;IAE9B;;OAEG;IACH,OAAO,EAAE,wBAAgB;IAEzB;;OAEG;IACH,IAAI,EAAE,IAAA,qBAAO,EAAC,GAAG,oBAAc,CAAC,WAAW,EAAE,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,IAAA,mBAAK,EAAC,IAAA,mBAAK,EAAC,CAAC,GAAG,SAAS,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;CAClE,CAAC,CAAC","sourcesContent":["import type { Infer } from '@metamask/superstruct';\nimport { array, enums, literal } from '@metamask/superstruct';\n\nimport { KeyringAccountStruct, SolAccountType } from '../api';\nimport { object, definePattern } from '../superstruct';\n\n/**\n * Solana addresses are represented in the format of a 256-bit ed25519 public key and\n * are encoded using base58.\n * They are usually 32 to 44 characters long.\n */\nexport const SolAddressStruct = definePattern(\n 'SolAddress',\n /^[1-9A-HJ-NP-Za-km-z]{32,44}$/iu,\n);\n\n/**\n * Supported Solana methods.\n */\nexport enum SolMethod {\n // General transaction methods\n SendAndConfirmTransaction = 'sendAndConfirmTransaction',\n}\n\nexport const SolDataAccountStruct = object({\n ...KeyringAccountStruct.schema,\n\n /**\n * Account address.\n */\n address: SolAddressStruct,\n\n /**\n * Account type.\n */\n type: literal(`${SolAccountType.DataAccount}`),\n\n /**\n * Account supported methods.\n */\n methods: array(enums([`${SolMethod.SendAndConfirmTransaction}`])),\n});\n\nexport type SolDataAccount = Infer<typeof SolDataAccountStruct>;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"superstruct.js","sourceRoot":"","sources":["../src/superstruct.ts"],"names":[],"mappings":";;;AAAA,uDAK+B;AAqD/B;;;;;;GAMG;AACH,SAAgB,MAAM,CACpB,MAAc;IAEd,OAAO,IAAA,oBAAQ,EAAC,MAAM,CAAQ,CAAC;AACjC,CAAC;AAJD,wBAIC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,GAAY;IAC/B,MAAM,QAAQ,GAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAA4B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1E,OAAO,QAAQ,IAAI,MAAM,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,aAAa,CAC3B,MAA4B;IAE5B,OAAO,IAAI,oBAAM,CAAC;QAChB,GAAG,MAAM;QAET,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CACxB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;QAEnD,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CACtB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAa,EAAE,GAAG,CAAC;KAC1D,CAAC,CAAC;AACL,CAAC;AAZD,sCAYC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,OAAe;IAEf,OAAO,IAAA,oBAAM,EACX,IAAI,EACJ,CAAC,KAAc,EAAW,EAAE,CAC1B,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CACnD,CAAC;AACJ,CAAC;AATD,sCASC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CACxB,KAAc,EACd,MAA4B,EAC5B,OAAgB;IAEhB,IAAA,oBAAM,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAPD,gCAOC","sourcesContent":["import {\n Struct,\n assert,\n define,\n object as stObject,\n} from '@metamask/superstruct';\nimport type {\n Infer,\n Context,\n ObjectSchema,\n OmitBy,\n Optionalize,\n PickBy,\n Simplify,\n} from '@metamask/superstruct';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare const ExactOptionalSymbol: unique symbol;\n\nexport type ExactOptionalTag = {\n type: typeof ExactOptionalSymbol;\n};\n\n/**\n * Exclude type `Type` from the properties of `Obj`.\n *\n * ```ts\n * type Foo = { a: string | null; b: number };\n * type Bar = ExcludeType<Foo, null>;\n * // Bar = { a: string, b: number }\n * ```\n */\nexport type ExcludeType<Obj, Type> = {\n [K in keyof Obj]: Exclude<Obj[K], Type>;\n};\n\n/**\n * Make optional all properties that have the `ExactOptionalTag` type.\n *\n * ```ts\n * type Foo = { a: string | ExactOptionalTag; b: number};\n * type Bar = ExactOptionalize<Foo>;\n * // Bar = { a?: string; b: number}\n * ```\n */\nexport type ExactOptionalize<Schema extends object> = OmitBy<\n Schema,\n ExactOptionalTag\n> &\n Partial<ExcludeType<PickBy<Schema, ExactOptionalTag>, ExactOptionalTag>>;\n\n/**\n * Infer a type from an superstruct object schema.\n */\nexport type ObjectType<Schema extends ObjectSchema> = Simplify<\n ExactOptionalize<Optionalize<{ [K in keyof Schema]: Infer<Schema[K]> }>>\n>;\n\n/**\n * Change the return type of a superstruct object struct to support exact\n * optional properties.\n *\n * @param schema - The object schema.\n * @returns A struct representing an object with a known set of properties.\n */\nexport function object<Schema extends ObjectSchema>(\n schema: Schema,\n): Struct<ObjectType<Schema>, Schema> {\n return stObject(schema) as any;\n}\n\n/**\n * Check if the current property is present in its parent object.\n *\n * @param ctx - The context to check.\n * @returns `true` if the property is present, `false` otherwise.\n */\nfunction hasOptional(ctx: Context): boolean {\n const property: string = ctx.path[ctx.path.length - 1];\n const parent: Record<string, unknown> = ctx.branch[ctx.branch.length - 2];\n\n return property in parent;\n}\n\n/**\n * Augment a struct to allow exact-optional values. Exact-optional values can\n * be omitted but cannot be `undefined`.\n *\n * ```ts\n * const foo = object({ bar: exactOptional(string()) });\n * type Foo = Infer<typeof foo>;\n * // Foo = { bar?: string }\n * ```\n *\n * @param struct - The struct to augment.\n * @returns The augmented struct.\n */\nexport function exactOptional<Type, Schema>(\n struct: Struct<Type, Schema>,\n): Struct<Type | ExactOptionalTag, Schema> {\n return new Struct({\n ...struct,\n\n validator: (value, ctx) =>\n !hasOptional(ctx) || struct.validator(value, ctx),\n\n refiner: (value, ctx) =>\n !hasOptional(ctx) || struct.refiner(value as Type, ctx),\n });\n}\n\n/**\n * Defines a new string-struct matching a regular expression.\n *\n * Example:\n *\n * ```ts\n * const EthAddressStruct = definePattern('EthAddress', /^0x[0-9a-f]{40}$/iu);\n * ```\n *\n * @param name - Type name.\n * @param pattern - Regular expression to match.\n * @returns A new string-struct that matches the given pattern.\n */\nexport function definePattern(\n name: string,\n pattern: RegExp,\n): Struct<string, null> {\n return define<string>(\n name,\n (value: unknown): boolean =>\n typeof value === 'string' && pattern.test(value),\n );\n}\n\n/**\n * Assert that a value is valid according to a struct.\n *\n * It is similar to superstruct's mask function, but it does not ignore extra\n * properties.\n *\n * @param value - Value to check.\n * @param struct - Struct to validate the value against.\n * @param message - Error message to throw if the value is not valid.\n * @returns The value if it is valid.\n */\nexport function strictMask<Type, Schema>(\n value: unknown,\n struct: Struct<Type, Schema>,\n message?: string,\n): Type {\n assert(value, struct, message);\n return value;\n}\n"]}
@@ -1,2 +0,0 @@
1
- export * from './types';
2
- export * from './typing';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB","sourcesContent":["export * from './types';\nexport * from './typing';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":";;;AAAA,uDAA2D;AAE3D,gDAA+C;AAE/C;;GAEG;AACU,QAAA,UAAU,GAAG,IAAA,2BAAa,EACrC,QAAQ,EACR,yEAAyE,CAC1E,CAAC;AAEF;;;;;GAKG;AACU,QAAA,SAAS,GAAG,IAAA,oBAAM,EAAS,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAe,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,kBAAkB,GAAG,IAAA,2BAAa,EAC7C,cAAc,EACd,gBAAgB,CACjB,CAAC","sourcesContent":["import { define, type Infer } from '@metamask/superstruct';\n\nimport { definePattern } from '../superstruct';\n\n/**\n * UUIDv4 struct.\n */\nexport const UuidStruct = definePattern(\n 'UuidV4',\n /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,\n);\n\n/**\n * Validates if a given value is a valid URL.\n *\n * @param value - The value to be validated.\n * @returns A boolean indicating if the value is a valid URL.\n */\nexport const UrlStruct = define<string>('Url', (value: unknown) => {\n try {\n const url = new URL(value as string);\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch {\n return false;\n }\n});\n\n/**\n * A string which contains a positive float number.\n */\nexport const StringNumberStruct = definePattern(\n 'StringNumber',\n /^\\d+(\\.\\d+)?$/u,\n);\nexport type StringNumber = Infer<typeof StringNumberStruct>;\n"]}