@crossmint/client-sdk-smart-wallet 0.1.24 → 0.1.26

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 (351) hide show
  1. package/dist/SmartWalletSDK.cjs +1 -34
  2. package/dist/SmartWalletSDK.js +1 -34
  3. package/dist/api/CrossmintWalletService.cjs +1 -13
  4. package/dist/api/CrossmintWalletService.js +1 -13
  5. package/dist/blockchain/chains.cjs +1 -23
  6. package/dist/blockchain/chains.js +1 -23
  7. package/dist/blockchain/rpc.cjs +1 -11
  8. package/dist/blockchain/rpc.js +1 -11
  9. package/dist/blockchain/transfer.cjs +1 -7
  10. package/dist/blockchain/transfer.js +1 -7
  11. package/dist/blockchain/wallets/EVMSmartWallet.cjs +1 -10
  12. package/dist/blockchain/wallets/EVMSmartWallet.js +1 -10
  13. package/dist/blockchain/wallets/SendTransactionService.cjs +1 -11
  14. package/dist/blockchain/wallets/SendTransactionService.js +1 -11
  15. package/dist/blockchain/wallets/account/cache.cjs +1 -9
  16. package/dist/blockchain/wallets/account/cache.js +1 -9
  17. package/dist/blockchain/wallets/account/config.cjs +1 -9
  18. package/dist/blockchain/wallets/account/config.js +1 -9
  19. package/dist/blockchain/wallets/account/creator.cjs +1 -10
  20. package/dist/blockchain/wallets/account/creator.js +1 -10
  21. package/dist/blockchain/wallets/account/eoa.cjs +1 -11
  22. package/dist/blockchain/wallets/account/eoa.js +1 -11
  23. package/dist/blockchain/wallets/account/passkey.cjs +1 -9
  24. package/dist/blockchain/wallets/account/passkey.js +1 -9
  25. package/dist/blockchain/wallets/account/signer.cjs +1 -9
  26. package/dist/blockchain/wallets/account/signer.js +1 -9
  27. package/dist/blockchain/wallets/account/strategy.cjs +1 -1
  28. package/dist/blockchain/wallets/account/strategy.js +0 -1
  29. package/dist/blockchain/wallets/clientDecorator.cjs +1 -12
  30. package/dist/blockchain/wallets/clientDecorator.js +1 -12
  31. package/dist/blockchain/wallets/index.cjs +1 -10
  32. package/dist/blockchain/wallets/index.js +1 -10
  33. package/dist/blockchain/wallets/paymaster.cjs +1 -10
  34. package/dist/blockchain/wallets/paymaster.js +1 -10
  35. package/dist/blockchain/wallets/service.cjs +1 -16
  36. package/dist/blockchain/wallets/service.js +1 -16
  37. package/dist/chunk-265KNPZR.js +1 -0
  38. package/dist/chunk-2GS5TXEY.cjs +1 -0
  39. package/dist/chunk-2R6HK64N.cjs +1 -0
  40. package/dist/chunk-3F6P4HUZ.js +1 -0
  41. package/dist/chunk-4SPA557P.js +0 -0
  42. package/dist/chunk-7AVDZZGD.cjs +1 -0
  43. package/dist/chunk-7FXFOOQU.cjs +1 -0
  44. package/dist/chunk-7KTCGFU5.js +1 -0
  45. package/dist/chunk-AK6IIUTM.js +1 -0
  46. package/dist/chunk-ATQ4WGCW.js +1 -0
  47. package/dist/chunk-BIJAOWPS.js +1 -0
  48. package/dist/chunk-BJZQA5VC.js +1 -0
  49. package/dist/chunk-C3VZY7VJ.js +1 -0
  50. package/dist/chunk-CUTQYF3F.js +1 -0
  51. package/dist/chunk-D4NDUT36.js +1 -0
  52. package/dist/chunk-DIDKPOO2.cjs +1 -0
  53. package/dist/chunk-DQNKQDE2.cjs +1 -0
  54. package/dist/chunk-E3NG3YWO.js +1 -0
  55. package/dist/chunk-ETVJGLNY.js +1 -0
  56. package/dist/chunk-FHNNZVNU.js +1 -0
  57. package/dist/chunk-GB35YMN4.cjs +1 -0
  58. package/dist/chunk-H4CMXNVK.js +1 -0
  59. package/dist/chunk-HGA3WK6L.cjs +1 -0
  60. package/dist/chunk-II4HKF7X.cjs +1 -0
  61. package/dist/chunk-IQTGPM2U.cjs +1 -0
  62. package/dist/chunk-KYPTGHC6.cjs +1 -0
  63. package/dist/chunk-LDNU6SJL.cjs +3 -0
  64. package/dist/chunk-M4K3IZTT.cjs +1 -0
  65. package/dist/chunk-MJ62KCTK.cjs +1 -0
  66. package/dist/chunk-NAX6LRUY.cjs +1 -0
  67. package/dist/chunk-NLGILHJS.js +1 -0
  68. package/dist/chunk-O2ACORII.cjs +1 -0
  69. package/dist/chunk-ODAUWGUU.cjs +1 -0
  70. package/dist/chunk-PZ6Q22YJ.js +1 -0
  71. package/dist/chunk-QD2JKGX6.cjs +1 -0
  72. package/dist/chunk-S2XBSAGM.js +1 -0
  73. package/dist/chunk-SBW2PS63.cjs +1 -0
  74. package/dist/chunk-SCXFZMLR.cjs +1 -0
  75. package/dist/chunk-STH2LE35.cjs +1 -0
  76. package/dist/chunk-SWWOVT47.cjs +1 -0
  77. package/dist/chunk-TBTRV56U.cjs +2 -0
  78. package/dist/chunk-TWADESPF.cjs +1 -0
  79. package/dist/chunk-TXLAUKCK.cjs +1 -0
  80. package/dist/chunk-TZG6MROQ.js +1 -0
  81. package/dist/chunk-UG47CBKR.js +1 -0
  82. package/dist/chunk-UPURFW46.js +1 -0
  83. package/dist/chunk-UXNWF66Q.js +1 -0
  84. package/dist/chunk-VMOQWOZV.js +3 -0
  85. package/dist/chunk-VXGNAQOW.js +1 -0
  86. package/dist/chunk-WJ6XJMRD.cjs +1 -0
  87. package/dist/{chunk-5MG5CIEX.cjs → chunk-XJGFG3RT.cjs} +1 -13
  88. package/dist/chunk-XQ2K2K23.cjs +1 -0
  89. package/dist/chunk-YBHSEZMB.js +1 -0
  90. package/dist/chunk-YJUD5MVS.js +1 -0
  91. package/dist/chunk-YUWCRSYD.js +1 -0
  92. package/dist/chunk-Z7MMOBIC.js +2 -0
  93. package/dist/error/index.cjs +1 -25
  94. package/dist/error/index.js +1 -25
  95. package/dist/error/processor.cjs +1 -9
  96. package/dist/error/processor.js +1 -9
  97. package/dist/index.cjs +1 -86
  98. package/dist/index.js +1 -86
  99. package/dist/services/index.cjs +1 -11
  100. package/dist/services/index.js +1 -11
  101. package/dist/services/logger.cjs +1 -10
  102. package/dist/services/logger.js +1 -10
  103. package/dist/types/internal.cjs +1 -18
  104. package/dist/types/internal.js +1 -18
  105. package/dist/types/params.cjs +1 -1
  106. package/dist/types/params.js +0 -1
  107. package/dist/types/schema.cjs +1 -16
  108. package/dist/types/schema.js +1 -16
  109. package/dist/types/service.cjs +1 -1
  110. package/dist/types/service.js +0 -1
  111. package/dist/types/token.cjs +1 -1
  112. package/dist/types/token.js +0 -1
  113. package/dist/utils/api.cjs +1 -9
  114. package/dist/utils/api.js +1 -9
  115. package/dist/utils/blockchain.cjs +1 -7
  116. package/dist/utils/blockchain.js +1 -7
  117. package/dist/utils/constants.cjs +1 -19
  118. package/dist/utils/constants.js +1 -19
  119. package/dist/utils/environment.cjs +1 -7
  120. package/dist/utils/environment.js +1 -7
  121. package/dist/utils/helpers.cjs +1 -9
  122. package/dist/utils/helpers.js +1 -9
  123. package/dist/utils/signer.cjs +1 -10
  124. package/dist/utils/signer.js +1 -10
  125. package/dist/utils/test.cjs +1 -27
  126. package/dist/utils/test.js +1 -27
  127. package/package.json +3 -4
  128. package/dist/SmartWalletSDK.cjs.map +0 -1
  129. package/dist/SmartWalletSDK.js.map +0 -1
  130. package/dist/api/CrossmintWalletService.cjs.map +0 -1
  131. package/dist/api/CrossmintWalletService.js.map +0 -1
  132. package/dist/blockchain/chains.cjs.map +0 -1
  133. package/dist/blockchain/chains.js.map +0 -1
  134. package/dist/blockchain/rpc.cjs.map +0 -1
  135. package/dist/blockchain/rpc.js.map +0 -1
  136. package/dist/blockchain/transfer.cjs.map +0 -1
  137. package/dist/blockchain/transfer.js.map +0 -1
  138. package/dist/blockchain/wallets/EVMSmartWallet.cjs.map +0 -1
  139. package/dist/blockchain/wallets/EVMSmartWallet.js.map +0 -1
  140. package/dist/blockchain/wallets/SendTransactionService.cjs.map +0 -1
  141. package/dist/blockchain/wallets/SendTransactionService.js.map +0 -1
  142. package/dist/blockchain/wallets/account/cache.cjs.map +0 -1
  143. package/dist/blockchain/wallets/account/cache.js.map +0 -1
  144. package/dist/blockchain/wallets/account/config.cjs.map +0 -1
  145. package/dist/blockchain/wallets/account/config.js.map +0 -1
  146. package/dist/blockchain/wallets/account/creator.cjs.map +0 -1
  147. package/dist/blockchain/wallets/account/creator.js.map +0 -1
  148. package/dist/blockchain/wallets/account/eoa.cjs.map +0 -1
  149. package/dist/blockchain/wallets/account/eoa.js.map +0 -1
  150. package/dist/blockchain/wallets/account/passkey.cjs.map +0 -1
  151. package/dist/blockchain/wallets/account/passkey.js.map +0 -1
  152. package/dist/blockchain/wallets/account/signer.cjs.map +0 -1
  153. package/dist/blockchain/wallets/account/signer.js.map +0 -1
  154. package/dist/blockchain/wallets/account/strategy.cjs.map +0 -1
  155. package/dist/blockchain/wallets/account/strategy.js.map +0 -1
  156. package/dist/blockchain/wallets/clientDecorator.cjs.map +0 -1
  157. package/dist/blockchain/wallets/clientDecorator.js.map +0 -1
  158. package/dist/blockchain/wallets/index.cjs.map +0 -1
  159. package/dist/blockchain/wallets/index.js.map +0 -1
  160. package/dist/blockchain/wallets/paymaster.cjs.map +0 -1
  161. package/dist/blockchain/wallets/paymaster.js.map +0 -1
  162. package/dist/blockchain/wallets/service.cjs.map +0 -1
  163. package/dist/blockchain/wallets/service.js.map +0 -1
  164. package/dist/chunk-2BBSPDW4.cjs +0 -99
  165. package/dist/chunk-2BBSPDW4.cjs.map +0 -1
  166. package/dist/chunk-2GADBKIW.cjs +0 -39
  167. package/dist/chunk-2GADBKIW.cjs.map +0 -1
  168. package/dist/chunk-2HB65Y7D.js +0 -79
  169. package/dist/chunk-2HB65Y7D.js.map +0 -1
  170. package/dist/chunk-3EQHAQXO.js +0 -112
  171. package/dist/chunk-3EQHAQXO.js.map +0 -1
  172. package/dist/chunk-3R6PW6HY.js +0 -30
  173. package/dist/chunk-3R6PW6HY.js.map +0 -1
  174. package/dist/chunk-5MG5CIEX.cjs.map +0 -1
  175. package/dist/chunk-5URMCCO6.js +0 -9
  176. package/dist/chunk-5URMCCO6.js.map +0 -1
  177. package/dist/chunk-5WVQ7J3E.cjs +0 -369
  178. package/dist/chunk-5WVQ7J3E.cjs.map +0 -1
  179. package/dist/chunk-6FS2OI5W.js +0 -66
  180. package/dist/chunk-6FS2OI5W.js.map +0 -1
  181. package/dist/chunk-6NJVFL2X.js +0 -60
  182. package/dist/chunk-6NJVFL2X.js.map +0 -1
  183. package/dist/chunk-74NTQGER.js +0 -44
  184. package/dist/chunk-74NTQGER.js.map +0 -1
  185. package/dist/chunk-77GT6B5L.cjs +0 -79
  186. package/dist/chunk-77GT6B5L.cjs.map +0 -1
  187. package/dist/chunk-7KTQNIAZ.cjs +0 -112
  188. package/dist/chunk-7KTQNIAZ.cjs.map +0 -1
  189. package/dist/chunk-7ORLXP6K.cjs +0 -93
  190. package/dist/chunk-7ORLXP6K.cjs.map +0 -1
  191. package/dist/chunk-ASIPMVRQ.js +0 -90
  192. package/dist/chunk-ASIPMVRQ.js.map +0 -1
  193. package/dist/chunk-BARW756O.js +0 -27
  194. package/dist/chunk-BARW756O.js.map +0 -1
  195. package/dist/chunk-BXSAJOIV.cjs +0 -90
  196. package/dist/chunk-BXSAJOIV.cjs.map +0 -1
  197. package/dist/chunk-DTEA33DF.cjs +0 -59
  198. package/dist/chunk-DTEA33DF.cjs.map +0 -1
  199. package/dist/chunk-DYO4HODM.cjs +0 -36
  200. package/dist/chunk-DYO4HODM.cjs.map +0 -1
  201. package/dist/chunk-EPEGJY6N.cjs +0 -9
  202. package/dist/chunk-EPEGJY6N.cjs.map +0 -1
  203. package/dist/chunk-EQSMHR77.js +0 -30
  204. package/dist/chunk-EQSMHR77.js.map +0 -1
  205. package/dist/chunk-FSIMJYXR.js +0 -36
  206. package/dist/chunk-FSIMJYXR.js.map +0 -1
  207. package/dist/chunk-FXGOVLZW.cjs +0 -9
  208. package/dist/chunk-FXGOVLZW.cjs.map +0 -1
  209. package/dist/chunk-ICLDP7BD.cjs +0 -36
  210. package/dist/chunk-ICLDP7BD.cjs.map +0 -1
  211. package/dist/chunk-IZZQHNZT.cjs +0 -22
  212. package/dist/chunk-IZZQHNZT.cjs.map +0 -1
  213. package/dist/chunk-JLZCSWUY.cjs +0 -14
  214. package/dist/chunk-JLZCSWUY.cjs.map +0 -1
  215. package/dist/chunk-JOB7STIS.js +0 -9
  216. package/dist/chunk-JOB7STIS.js.map +0 -1
  217. package/dist/chunk-KHROQTVY.js +0 -1
  218. package/dist/chunk-KHROQTVY.js.map +0 -1
  219. package/dist/chunk-LWVV7JDJ.js +0 -36
  220. package/dist/chunk-LWVV7JDJ.js.map +0 -1
  221. package/dist/chunk-N6DG5EZG.cjs +0 -156
  222. package/dist/chunk-N6DG5EZG.cjs.map +0 -1
  223. package/dist/chunk-NI6WQXMN.js +0 -99
  224. package/dist/chunk-NI6WQXMN.js.map +0 -1
  225. package/dist/chunk-O6IFYHDP.cjs +0 -36
  226. package/dist/chunk-O6IFYHDP.cjs.map +0 -1
  227. package/dist/chunk-OGA3YDWS.cjs +0 -112
  228. package/dist/chunk-OGA3YDWS.cjs.map +0 -1
  229. package/dist/chunk-OIEP34C6.js +0 -41
  230. package/dist/chunk-OIEP34C6.js.map +0 -1
  231. package/dist/chunk-ON4DOYVD.js +0 -369
  232. package/dist/chunk-ON4DOYVD.js.map +0 -1
  233. package/dist/chunk-PVFA6PBX.cjs +0 -60
  234. package/dist/chunk-PVFA6PBX.cjs.map +0 -1
  235. package/dist/chunk-QBQDYMNI.js +0 -39
  236. package/dist/chunk-QBQDYMNI.js.map +0 -1
  237. package/dist/chunk-QJ3BSVGV.js +0 -36
  238. package/dist/chunk-QJ3BSVGV.js.map +0 -1
  239. package/dist/chunk-RUTDRRS2.cjs +0 -66
  240. package/dist/chunk-RUTDRRS2.cjs.map +0 -1
  241. package/dist/chunk-SBR2CREX.js +0 -82
  242. package/dist/chunk-SBR2CREX.js.map +0 -1
  243. package/dist/chunk-SMDX2MXU.js +0 -13
  244. package/dist/chunk-SMDX2MXU.js.map +0 -1
  245. package/dist/chunk-TDJDKTRS.js +0 -156
  246. package/dist/chunk-TDJDKTRS.js.map +0 -1
  247. package/dist/chunk-TZUJ5MXW.cjs +0 -82
  248. package/dist/chunk-TZUJ5MXW.cjs.map +0 -1
  249. package/dist/chunk-U4OBHCIP.js +0 -59
  250. package/dist/chunk-U4OBHCIP.js.map +0 -1
  251. package/dist/chunk-UQKE6R5W.cjs +0 -27
  252. package/dist/chunk-UQKE6R5W.cjs.map +0 -1
  253. package/dist/chunk-UZGHOTKZ.js +0 -112
  254. package/dist/chunk-UZGHOTKZ.js.map +0 -1
  255. package/dist/chunk-WRH3YJT3.js +0 -14
  256. package/dist/chunk-WRH3YJT3.js.map +0 -1
  257. package/dist/chunk-X4KT4AKM.cjs +0 -123
  258. package/dist/chunk-X4KT4AKM.cjs.map +0 -1
  259. package/dist/chunk-YKW7PMBU.js +0 -22
  260. package/dist/chunk-YKW7PMBU.js.map +0 -1
  261. package/dist/chunk-YWCXHOSD.cjs +0 -30
  262. package/dist/chunk-YWCXHOSD.cjs.map +0 -1
  263. package/dist/chunk-Z5DNJTAW.cjs +0 -41
  264. package/dist/chunk-Z5DNJTAW.cjs.map +0 -1
  265. package/dist/chunk-Z7JWER3L.js +0 -93
  266. package/dist/chunk-Z7JWER3L.js.map +0 -1
  267. package/dist/chunk-ZAQLXUMA.cjs +0 -44
  268. package/dist/chunk-ZAQLXUMA.cjs.map +0 -1
  269. package/dist/chunk-ZEWOQEKM.js +0 -123
  270. package/dist/chunk-ZEWOQEKM.js.map +0 -1
  271. package/dist/chunk-ZN42AA2G.cjs +0 -1
  272. package/dist/chunk-ZN42AA2G.cjs.map +0 -1
  273. package/dist/chunk-ZOXKITU4.cjs +0 -30
  274. package/dist/chunk-ZOXKITU4.cjs.map +0 -1
  275. package/dist/error/index.cjs.map +0 -1
  276. package/dist/error/index.js.map +0 -1
  277. package/dist/error/processor.cjs.map +0 -1
  278. package/dist/error/processor.js.map +0 -1
  279. package/dist/index.cjs.map +0 -1
  280. package/dist/index.js.map +0 -1
  281. package/dist/services/index.cjs.map +0 -1
  282. package/dist/services/index.js.map +0 -1
  283. package/dist/services/logger.cjs.map +0 -1
  284. package/dist/services/logger.js.map +0 -1
  285. package/dist/types/internal.cjs.map +0 -1
  286. package/dist/types/internal.js.map +0 -1
  287. package/dist/types/params.cjs.map +0 -1
  288. package/dist/types/params.js.map +0 -1
  289. package/dist/types/schema.cjs.map +0 -1
  290. package/dist/types/schema.js.map +0 -1
  291. package/dist/types/service.cjs.map +0 -1
  292. package/dist/types/service.js.map +0 -1
  293. package/dist/types/token.cjs.map +0 -1
  294. package/dist/types/token.js.map +0 -1
  295. package/dist/utils/api.cjs.map +0 -1
  296. package/dist/utils/api.js.map +0 -1
  297. package/dist/utils/blockchain.cjs.map +0 -1
  298. package/dist/utils/blockchain.js.map +0 -1
  299. package/dist/utils/constants.cjs.map +0 -1
  300. package/dist/utils/constants.js.map +0 -1
  301. package/dist/utils/environment.cjs.map +0 -1
  302. package/dist/utils/environment.js.map +0 -1
  303. package/dist/utils/helpers.cjs.map +0 -1
  304. package/dist/utils/helpers.js.map +0 -1
  305. package/dist/utils/signer.cjs.map +0 -1
  306. package/dist/utils/signer.js.map +0 -1
  307. package/dist/utils/test.cjs.map +0 -1
  308. package/dist/utils/test.js.map +0 -1
  309. package/src/ABI/ERC1155.json +0 -325
  310. package/src/ABI/ERC20.json +0 -222
  311. package/src/ABI/ERC721.json +0 -320
  312. package/src/SmartWalletSDK.test.ts +0 -31
  313. package/src/SmartWalletSDK.ts +0 -104
  314. package/src/api/CrossmintWalletService.test.ts +0 -43
  315. package/src/api/CrossmintWalletService.ts +0 -84
  316. package/src/blockchain/chains.ts +0 -57
  317. package/src/blockchain/rpc.ts +0 -25
  318. package/src/blockchain/transfer.ts +0 -54
  319. package/src/blockchain/wallets/EVMSmartWallet.ts +0 -157
  320. package/src/blockchain/wallets/SendTransactionService.test.ts +0 -159
  321. package/src/blockchain/wallets/SendTransactionService.ts +0 -188
  322. package/src/blockchain/wallets/account/cache.test.ts +0 -67
  323. package/src/blockchain/wallets/account/cache.ts +0 -43
  324. package/src/blockchain/wallets/account/config.test.ts +0 -103
  325. package/src/blockchain/wallets/account/config.ts +0 -116
  326. package/src/blockchain/wallets/account/creator.ts +0 -40
  327. package/src/blockchain/wallets/account/eoa.ts +0 -51
  328. package/src/blockchain/wallets/account/passkey.ts +0 -198
  329. package/src/blockchain/wallets/account/signer.ts +0 -44
  330. package/src/blockchain/wallets/account/strategy.ts +0 -5
  331. package/src/blockchain/wallets/clientDecorator.ts +0 -128
  332. package/src/blockchain/wallets/index.ts +0 -1
  333. package/src/blockchain/wallets/paymaster.ts +0 -41
  334. package/src/blockchain/wallets/service.ts +0 -107
  335. package/src/error/index.ts +0 -100
  336. package/src/error/processor.ts +0 -36
  337. package/src/index.ts +0 -47
  338. package/src/services/index.ts +0 -1
  339. package/src/services/logger.ts +0 -6
  340. package/src/types/internal.ts +0 -76
  341. package/src/types/params.ts +0 -34
  342. package/src/types/schema.ts +0 -63
  343. package/src/types/service.ts +0 -31
  344. package/src/types/token.ts +0 -29
  345. package/src/utils/api.ts +0 -39
  346. package/src/utils/blockchain.ts +0 -5
  347. package/src/utils/constants.ts +0 -9
  348. package/src/utils/environment.ts +0 -3
  349. package/src/utils/helpers.ts +0 -7
  350. package/src/utils/signer.ts +0 -33
  351. package/src/utils/test.ts +0 -24
@@ -1,82 +0,0 @@
1
- import {
2
- scwLogger
3
- } from "./chunk-WRH3YJT3.js";
4
- import {
5
- SmartWalletConfigSchema
6
- } from "./chunk-6FS2OI5W.js";
7
- import {
8
- bigintsToHex,
9
- parseBigintAPIResponse
10
- } from "./chunk-FSIMJYXR.js";
11
- import {
12
- API_VERSION
13
- } from "./chunk-YKW7PMBU.js";
14
- import {
15
- AdminAlreadyUsedError,
16
- SmartWalletsNotEnabledError,
17
- UserWalletAlreadyCreatedError
18
- } from "./chunk-ASIPMVRQ.js";
19
-
20
- // src/api/CrossmintWalletService.ts
21
- import { APIErrorService, BaseCrossmintService, CrossmintServiceError } from "@crossmint/client-sdk-base";
22
- import { blockchainToChainId } from "@crossmint/common-sdk-base";
23
- var CrossmintWalletService = class extends BaseCrossmintService {
24
- constructor() {
25
- super(...arguments);
26
- this.logger = scwLogger;
27
- this.apiErrorService = new APIErrorService({
28
- ERROR_USER_WALLET_ALREADY_CREATED: ({ userId }) => new UserWalletAlreadyCreatedError(userId),
29
- ERROR_ADMIN_SIGNER_ALREADY_USED: () => new AdminAlreadyUsedError(),
30
- ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED: () => new SmartWalletsNotEnabledError()
31
- });
32
- }
33
- async idempotentCreateSmartWallet(user, input) {
34
- await this.fetchCrossmintAPI(
35
- `${API_VERSION}/sdk/smart-wallet`,
36
- { method: "PUT", body: JSON.stringify(input) },
37
- "Error creating abstract wallet. Please contact support",
38
- user.jwt
39
- );
40
- }
41
- async sponsorUserOperation(user, userOp, entryPoint, chain) {
42
- const chainId = blockchainToChainId(chain);
43
- const result = await this.fetchCrossmintAPI(
44
- `${API_VERSION}/sdk/paymaster`,
45
- { method: "POST", body: JSON.stringify({ userOp: bigintsToHex(userOp), entryPoint, chainId }) },
46
- "Error sponsoring user operation. Please contact support",
47
- user.jwt
48
- );
49
- return parseBigintAPIResponse(result);
50
- }
51
- async getSmartWalletConfig(user, chain) {
52
- const data = await this.fetchCrossmintAPI(
53
- `${API_VERSION}/sdk/smart-wallet/config?chain=${chain}`,
54
- { method: "GET" },
55
- "Error getting smart wallet version configuration. Please contact support",
56
- user.jwt
57
- );
58
- const result = SmartWalletConfigSchema.safeParse(data);
59
- if (!result.success) {
60
- throw new CrossmintServiceError(
61
- `Invalid smart wallet config, please contact support. Details below:
62
- ${result.error.toString()}`
63
- );
64
- }
65
- return result.data;
66
- }
67
- async fetchNFTs(address, chain) {
68
- return this.fetchCrossmintAPI(
69
- `v1-alpha1/wallets/${chain}:${address}/nfts`,
70
- { method: "GET" },
71
- `Error fetching NFTs for wallet: ${address}`
72
- );
73
- }
74
- getPasskeyServerUrl() {
75
- return this.crossmintBaseUrl + "api/internal/passkeys";
76
- }
77
- };
78
-
79
- export {
80
- CrossmintWalletService
81
- };
82
- //# sourceMappingURL=chunk-SBR2CREX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api/CrossmintWalletService.ts"],"sourcesContent":["import type { UserOperation } from \"permissionless\";\nimport type { EntryPoint, GetEntryPointVersion } from \"permissionless/types/entrypoint\";\n\nimport { APIErrorService, BaseCrossmintService, CrossmintServiceError } from \"@crossmint/client-sdk-base\";\nimport { blockchainToChainId } from \"@crossmint/common-sdk-base\";\n\nimport type { SmartWalletChain } from \"../blockchain/chains\";\nimport { AdminAlreadyUsedError, SmartWalletsNotEnabledError, UserWalletAlreadyCreatedError } from \"../error\";\nimport { scwLogger } from \"../services\";\nimport type { UserParams } from \"../types/params\";\nimport { SmartWalletConfigSchema } from \"../types/schema\";\nimport type { SmartWalletConfig, StoreSmartWalletParams } from \"../types/service\";\nimport { bigintsToHex, parseBigintAPIResponse } from \"../utils/api\";\nimport { API_VERSION } from \"../utils/constants\";\n\ntype WalletsAPIErrorCodes =\n | \"ERROR_USER_WALLET_ALREADY_CREATED\"\n | \"ERROR_ADMIN_SIGNER_ALREADY_USED\"\n | \"ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED\";\n\nexport class CrossmintWalletService extends BaseCrossmintService {\n logger = scwLogger;\n protected apiErrorService = new APIErrorService<WalletsAPIErrorCodes>({\n ERROR_USER_WALLET_ALREADY_CREATED: ({ userId }: { userId: string }) =>\n new UserWalletAlreadyCreatedError(userId),\n ERROR_ADMIN_SIGNER_ALREADY_USED: () => new AdminAlreadyUsedError(),\n ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED: () => new SmartWalletsNotEnabledError(),\n });\n\n async idempotentCreateSmartWallet(user: UserParams, input: StoreSmartWalletParams): Promise<void> {\n await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/smart-wallet`,\n { method: \"PUT\", body: JSON.stringify(input) },\n \"Error creating abstract wallet. Please contact support\",\n user.jwt\n );\n }\n\n async sponsorUserOperation<E extends EntryPoint>(\n user: UserParams,\n userOp: UserOperation<GetEntryPointVersion<E>>,\n entryPoint: E,\n chain: SmartWalletChain\n ): Promise<{ sponsorUserOpParams: UserOperation<GetEntryPointVersion<E>> }> {\n const chainId = blockchainToChainId(chain);\n const result = await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/paymaster`,\n { method: \"POST\", body: JSON.stringify({ userOp: bigintsToHex(userOp), entryPoint, chainId }) },\n \"Error sponsoring user operation. Please contact support\",\n user.jwt\n );\n return parseBigintAPIResponse(result);\n }\n\n async getSmartWalletConfig(user: UserParams, chain: SmartWalletChain): Promise<SmartWalletConfig> {\n const data: unknown = await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/smart-wallet/config?chain=${chain}`,\n { method: \"GET\" },\n \"Error getting smart wallet version configuration. Please contact support\",\n user.jwt\n );\n\n const result = SmartWalletConfigSchema.safeParse(data);\n if (!result.success) {\n throw new CrossmintServiceError(\n `Invalid smart wallet config, please contact support. Details below:\\n${result.error.toString()}`\n );\n }\n\n return result.data;\n }\n\n async fetchNFTs(address: string, chain: SmartWalletChain) {\n return this.fetchCrossmintAPI(\n `v1-alpha1/wallets/${chain}:${address}/nfts`,\n { method: \"GET\" },\n `Error fetching NFTs for wallet: ${address}`\n );\n }\n\n public getPasskeyServerUrl(): string {\n return this.crossmintBaseUrl + \"api/internal/passkeys\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGA,SAAS,iBAAiB,sBAAsB,6BAA6B;AAC7E,SAAS,2BAA2B;AAgB7B,IAAM,yBAAN,cAAqC,qBAAqB;AAAA,EAA1D;AAAA;AACH,kBAAS;AACT,SAAU,kBAAkB,IAAI,gBAAsC;AAAA,MAClE,mCAAmC,CAAC,EAAE,OAAO,MACzC,IAAI,8BAA8B,MAAM;AAAA,MAC5C,iCAAiC,MAAM,IAAI,sBAAsB;AAAA,MACjE,gDAAgD,MAAM,IAAI,4BAA4B;AAAA,IAC1F,CAAC;AAAA;AAAA,EAED,MAAM,4BAA4B,MAAkB,OAA8C;AAC9F,UAAM,KAAK;AAAA,MACP,GAAG,WAAW;AAAA,MACd,EAAE,QAAQ,OAAO,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,MAC7C;AAAA,MACA,KAAK;AAAA,IACT;AAAA,EACJ;AAAA,EAEA,MAAM,qBACF,MACA,QACA,YACA,OACwE;AACxE,UAAM,UAAU,oBAAoB,KAAK;AACzC,UAAM,SAAS,MAAM,KAAK;AAAA,MACtB,GAAG,WAAW;AAAA,MACd,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,EAAE,QAAQ,aAAa,MAAM,GAAG,YAAY,QAAQ,CAAC,EAAE;AAAA,MAC9F;AAAA,MACA,KAAK;AAAA,IACT;AACA,WAAO,uBAAuB,MAAM;AAAA,EACxC;AAAA,EAEA,MAAM,qBAAqB,MAAkB,OAAqD;AAC9F,UAAM,OAAgB,MAAM,KAAK;AAAA,MAC7B,GAAG,WAAW,kCAAkC,KAAK;AAAA,MACrD,EAAE,QAAQ,MAAM;AAAA,MAChB;AAAA,MACA,KAAK;AAAA,IACT;AAEA,UAAM,SAAS,wBAAwB,UAAU,IAAI;AACrD,QAAI,CAAC,OAAO,SAAS;AACjB,YAAM,IAAI;AAAA,QACN;AAAA,EAAwE,OAAO,MAAM,SAAS,CAAC;AAAA,MACnG;AAAA,IACJ;AAEA,WAAO,OAAO;AAAA,EAClB;AAAA,EAEA,MAAM,UAAU,SAAiB,OAAyB;AACtD,WAAO,KAAK;AAAA,MACR,qBAAqB,KAAK,IAAI,OAAO;AAAA,MACrC,EAAE,QAAQ,MAAM;AAAA,MAChB,mCAAmC,OAAO;AAAA,IAC9C;AAAA,EACJ;AAAA,EAEO,sBAA8B;AACjC,WAAO,KAAK,mBAAmB;AAAA,EACnC;AACJ;","names":[]}
@@ -1,13 +0,0 @@
1
- // src/utils/helpers.ts
2
- function isEmpty(str) {
3
- return !str || str.length === 0 || str.trim().length === 0;
4
- }
5
- function equalsIgnoreCase(a, b) {
6
- return a?.toLowerCase() === b?.toLowerCase();
7
- }
8
-
9
- export {
10
- isEmpty,
11
- equalsIgnoreCase
12
- };
13
- //# sourceMappingURL=chunk-SMDX2MXU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/helpers.ts"],"sourcesContent":["export function isEmpty(str: string | undefined | null): str is undefined | null {\n return !str || str.length === 0 || str.trim().length === 0;\n}\n\nexport function equalsIgnoreCase(a?: string, b?: string): boolean {\n return a?.toLowerCase() === b?.toLowerCase();\n}\n"],"mappings":";AAAO,SAAS,QAAQ,KAAyD;AAC7E,SAAO,CAAC,OAAO,IAAI,WAAW,KAAK,IAAI,KAAK,EAAE,WAAW;AAC7D;AAEO,SAAS,iBAAiB,GAAY,GAAqB;AAC9D,SAAO,GAAG,YAAY,MAAM,GAAG,YAAY;AAC/C;","names":[]}
@@ -1,156 +0,0 @@
1
- import {
2
- PasskeySignerConfig
3
- } from "./chunk-3R6PW6HY.js";
4
- import {
5
- PasskeyIncompatibleAuthenticatorError,
6
- PasskeyMismatchError,
7
- PasskeyPromptError,
8
- PasskeyRegistrationError
9
- } from "./chunk-ASIPMVRQ.js";
10
-
11
- // src/blockchain/wallets/account/passkey.ts
12
- import { PasskeyValidatorContractVersion, WebAuthnMode, toPasskeyValidator } from "@zerodev/passkey-validator";
13
- import { createKernelAccount } from "@zerodev/sdk";
14
- import { toWebAuthnKey } from "@zerodev/webauthn-key";
15
- var PasskeyCreationStrategy = class {
16
- constructor(passkeyServerUrl, apiKey) {
17
- this.passkeyServerUrl = passkeyServerUrl;
18
- this.apiKey = apiKey;
19
- }
20
- async create({
21
- user,
22
- publicClient,
23
- walletParams,
24
- entryPoint,
25
- kernelVersion,
26
- existing
27
- }) {
28
- const inputPasskeyName = walletParams.signer.passkeyName ?? user.id;
29
- if (existing != null && existing.signerConfig.data.passkeyName !== inputPasskeyName) {
30
- throw new PasskeyMismatchError(
31
- `User '${user.id}' has an existing wallet created with a passkey named '${existing.signerConfig.data.passkeyName}', this does match input passkey name '${inputPasskeyName}'.`,
32
- existing.signerConfig.display()
33
- );
34
- }
35
- try {
36
- if (existing == null && walletParams.signer.onPrePasskeyRegistration != null) {
37
- await walletParams.signer.onPrePasskeyRegistration();
38
- }
39
- const passkey = await this.getPasskey(user, inputPasskeyName, existing?.signerConfig.data);
40
- const latestValidatorVersion = PasskeyValidatorContractVersion.V0_0_2;
41
- const validatorContractVersion = existing == null ? latestValidatorVersion : existing.signerConfig.data.validatorContractVersion;
42
- const validator = await toPasskeyValidator(publicClient, {
43
- webAuthnKey: passkey,
44
- entryPoint,
45
- validatorContractVersion,
46
- kernelVersion
47
- });
48
- const kernelAccount = await createKernelAccount(publicClient, {
49
- plugins: { sudo: validator },
50
- entryPoint,
51
- kernelVersion,
52
- deployedAccountAddress: existing?.address
53
- });
54
- return {
55
- signerConfig: this.getSignerConfig(validator, validatorContractVersion, inputPasskeyName),
56
- account: this.decorate(kernelAccount, inputPasskeyName, walletParams)
57
- };
58
- } catch (error) {
59
- if (walletParams.signer.onPasskeyRegistrationError != null) {
60
- walletParams.signer.onPasskeyRegistrationError(error);
61
- }
62
- throw this.mapError(error, inputPasskeyName);
63
- }
64
- }
65
- async getPasskey(user, passkeyName, existing) {
66
- if (existing != null) {
67
- return {
68
- pubX: BigInt(existing.pubKeyX),
69
- pubY: BigInt(existing.pubKeyY),
70
- authenticatorId: existing.authenticatorId,
71
- authenticatorIdHash: existing.authenticatorIdHash
72
- };
73
- }
74
- return toWebAuthnKey({
75
- passkeyName,
76
- passkeyServerUrl: this.passkeyServerUrl,
77
- mode: WebAuthnMode.Register,
78
- passkeyServerHeaders: this.createPasskeysServerHeaders(user)
79
- });
80
- }
81
- getSignerConfig(validator, validatorContractVersion, passkeyName) {
82
- return new PasskeySignerConfig({
83
- ...deserializePasskeyValidatorData(validator.getSerializedData()),
84
- passkeyName,
85
- validatorContractVersion,
86
- domain: window.location.hostname,
87
- type: "passkeys"
88
- });
89
- }
90
- createPasskeysServerHeaders(user) {
91
- return {
92
- "x-api-key": this.apiKey,
93
- Authorization: `Bearer ${user.jwt}`
94
- };
95
- }
96
- mapError(error, passkeyName) {
97
- if (error.code === 0 && error.name === "DataError") {
98
- return new PasskeyIncompatibleAuthenticatorError(passkeyName);
99
- }
100
- if (error.message === "Registration not verified") {
101
- return new PasskeyRegistrationError(passkeyName);
102
- }
103
- if (error.code === "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY" && error.name === "NotAllowedError") {
104
- return new PasskeyPromptError(passkeyName);
105
- }
106
- return error;
107
- }
108
- decorate(account, passkeyName, walletParams) {
109
- return new Proxy(account, {
110
- get: (target, prop, receiver) => {
111
- const original = Reflect.get(target, prop, receiver);
112
- if (typeof original !== "function" || typeof prop !== "string" || !isAccountSigningMethod(prop)) {
113
- return original;
114
- }
115
- const signer = walletParams.signer;
116
- return async (...args) => {
117
- const isFirstTransaction = args?.[0]?.factoryData != null;
118
- if (isFirstTransaction && prop === "signUserOperation" && signer.type === "PASSKEY" && signer.onFirstTimePasskeySigning != null) {
119
- await signer.onFirstTimePasskeySigning();
120
- }
121
- try {
122
- return await original.call(target, ...args);
123
- } catch (error) {
124
- if (signer.onFirstTimePasskeySigningError != null) {
125
- await signer.onFirstTimePasskeySigningError(error);
126
- }
127
- throw this.mapError(error, passkeyName);
128
- }
129
- };
130
- }
131
- });
132
- }
133
- };
134
- var accountSigningMethods = [
135
- "signMessage",
136
- "signTypedData",
137
- "signUserOperation",
138
- "signTransaction"
139
- ];
140
- function isAccountSigningMethod(method) {
141
- return accountSigningMethods.includes(method);
142
- }
143
- var deserializePasskeyValidatorData = (params) => {
144
- const uint8Array = base64ToBytes(params);
145
- const jsonString = new TextDecoder().decode(uint8Array);
146
- return JSON.parse(jsonString);
147
- };
148
- function base64ToBytes(base64) {
149
- const binString = atob(base64);
150
- return Uint8Array.from(binString, (m) => m.codePointAt(0));
151
- }
152
-
153
- export {
154
- PasskeyCreationStrategy
155
- };
156
- //# sourceMappingURL=chunk-TDJDKTRS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/blockchain/wallets/account/passkey.ts"],"sourcesContent":["import { PasskeyValidatorContractVersion, WebAuthnMode, toPasskeyValidator } from \"@zerodev/passkey-validator\";\nimport { type KernelSmartAccount, type KernelValidator, createKernelAccount } from \"@zerodev/sdk\";\nimport { type WebAuthnKey, toWebAuthnKey } from \"@zerodev/webauthn-key\";\nimport type { SmartAccount } from \"permissionless/accounts\";\nimport type { EntryPoint } from \"permissionless/types/entrypoint\";\n\nimport {\n PasskeyIncompatibleAuthenticatorError,\n PasskeyMismatchError,\n PasskeyPromptError,\n PasskeyRegistrationError,\n} from \"../../../error\";\nimport type { AccountAndSigner, PasskeyCreationContext } from \"../../../types/internal\";\nimport type { PasskeySigner, UserParams, WalletParams } from \"../../../types/params\";\nimport type { PasskeySignerData, PasskeyValidatorSerializedData } from \"../../../types/service\";\nimport { PasskeySignerConfig } from \"./signer\";\nimport type { AccountCreationStrategy } from \"./strategy\";\n\ntype PasskeyValidator = KernelValidator<EntryPoint, \"WebAuthnValidator\"> & {\n getSerializedData: () => string;\n};\nexport class PasskeyCreationStrategy implements AccountCreationStrategy {\n constructor(\n private readonly passkeyServerUrl: string,\n private readonly apiKey: string\n ) {}\n\n public async create({\n user,\n publicClient,\n walletParams,\n entryPoint,\n kernelVersion,\n existing,\n }: PasskeyCreationContext): Promise<AccountAndSigner> {\n const inputPasskeyName = walletParams.signer.passkeyName ?? user.id;\n if (existing != null && existing.signerConfig.data.passkeyName !== inputPasskeyName) {\n throw new PasskeyMismatchError(\n `User '${user.id}' has an existing wallet created with a passkey named '${existing.signerConfig.data.passkeyName}', this does match input passkey name '${inputPasskeyName}'.`,\n existing.signerConfig.display()\n );\n }\n\n try {\n if (existing == null && walletParams.signer.onPrePasskeyRegistration != null) {\n await walletParams.signer.onPrePasskeyRegistration();\n }\n\n const passkey = await this.getPasskey(user, inputPasskeyName, existing?.signerConfig.data);\n\n const latestValidatorVersion = PasskeyValidatorContractVersion.V0_0_2;\n const validatorContractVersion =\n existing == null ? latestValidatorVersion : existing.signerConfig.data.validatorContractVersion;\n\n const validator = await toPasskeyValidator(publicClient, {\n webAuthnKey: passkey,\n entryPoint,\n validatorContractVersion,\n kernelVersion,\n });\n\n const kernelAccount = await createKernelAccount(publicClient, {\n plugins: { sudo: validator },\n entryPoint,\n kernelVersion,\n deployedAccountAddress: existing?.address,\n });\n\n return {\n signerConfig: this.getSignerConfig(validator, validatorContractVersion, inputPasskeyName),\n account: this.decorate(kernelAccount, inputPasskeyName, walletParams),\n };\n } catch (error) {\n if (walletParams.signer.onPasskeyRegistrationError != null) {\n walletParams.signer.onPasskeyRegistrationError(error);\n }\n throw this.mapError(error, inputPasskeyName);\n }\n }\n\n private async getPasskey(\n user: UserParams,\n passkeyName: string,\n existing?: PasskeySignerData\n ): Promise<WebAuthnKey> {\n if (existing != null) {\n return {\n pubX: BigInt(existing.pubKeyX),\n pubY: BigInt(existing.pubKeyY),\n authenticatorId: existing.authenticatorId,\n authenticatorIdHash: existing.authenticatorIdHash,\n };\n }\n\n return toWebAuthnKey({\n passkeyName,\n passkeyServerUrl: this.passkeyServerUrl,\n mode: WebAuthnMode.Register,\n passkeyServerHeaders: this.createPasskeysServerHeaders(user),\n });\n }\n\n private getSignerConfig(\n validator: PasskeyValidator,\n validatorContractVersion: PasskeyValidatorContractVersion,\n passkeyName: string\n ): PasskeySignerConfig {\n return new PasskeySignerConfig({\n ...deserializePasskeyValidatorData(validator.getSerializedData()),\n passkeyName,\n validatorContractVersion,\n domain: window.location.hostname,\n type: \"passkeys\",\n });\n }\n\n private createPasskeysServerHeaders(user: UserParams) {\n return {\n \"x-api-key\": this.apiKey,\n Authorization: `Bearer ${user.jwt}`,\n };\n }\n\n private mapError(error: any, passkeyName: string) {\n if (error.code === 0 && error.name === \"DataError\") {\n return new PasskeyIncompatibleAuthenticatorError(passkeyName);\n }\n\n if (error.message === \"Registration not verified\") {\n return new PasskeyRegistrationError(passkeyName);\n }\n\n if (error.code === \"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY\" && error.name === \"NotAllowedError\") {\n return new PasskeyPromptError(passkeyName);\n }\n\n return error;\n }\n\n private decorate<Account extends KernelSmartAccount<EntryPoint>>(\n account: Account,\n passkeyName: string,\n walletParams: WalletParams\n ): Account {\n return new Proxy(account, {\n get: (target, prop, receiver) => {\n const original = Reflect.get(target, prop, receiver);\n if (typeof original !== \"function\" || typeof prop !== \"string\" || !isAccountSigningMethod(prop)) {\n return original;\n }\n\n const signer = walletParams.signer as PasskeySigner;\n return async (...args: any[]) => {\n const isFirstTransaction = args?.[0]?.factoryData != null;\n if (\n isFirstTransaction &&\n prop === \"signUserOperation\" &&\n signer.type === \"PASSKEY\" &&\n signer.onFirstTimePasskeySigning != null\n ) {\n await signer.onFirstTimePasskeySigning();\n }\n try {\n return await original.call(target, ...args);\n } catch (error) {\n if (signer.onFirstTimePasskeySigningError != null) {\n await signer.onFirstTimePasskeySigningError(error);\n }\n throw this.mapError(error, passkeyName);\n }\n };\n },\n });\n }\n}\n\nconst accountSigningMethods = [\n \"signMessage\",\n \"signTypedData\",\n \"signUserOperation\",\n \"signTransaction\",\n] as const satisfies readonly (keyof SmartAccount<EntryPoint>)[];\n\nfunction isAccountSigningMethod(method: string): method is (typeof accountSigningMethods)[number] {\n return accountSigningMethods.includes(method as any);\n}\n\nconst deserializePasskeyValidatorData = (params: string) => {\n const uint8Array = base64ToBytes(params);\n const jsonString = new TextDecoder().decode(uint8Array);\n\n return JSON.parse(jsonString) as PasskeyValidatorSerializedData;\n};\n\nfunction base64ToBytes(base64: string) {\n const binString = atob(base64);\n return Uint8Array.from(binString, (m) => m.codePointAt(0) as number);\n}\n"],"mappings":"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","names":[]}
@@ -1,82 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkJLZCSWUYcjs = require('./chunk-JLZCSWUY.cjs');
4
-
5
-
6
- var _chunkRUTDRRS2cjs = require('./chunk-RUTDRRS2.cjs');
7
-
8
-
9
-
10
- var _chunkO6IFYHDPcjs = require('./chunk-O6IFYHDP.cjs');
11
-
12
-
13
- var _chunkIZZQHNZTcjs = require('./chunk-IZZQHNZT.cjs');
14
-
15
-
16
-
17
-
18
- var _chunkBXSAJOIVcjs = require('./chunk-BXSAJOIV.cjs');
19
-
20
- // src/api/CrossmintWalletService.ts
21
- var _clientsdkbase = require('@crossmint/client-sdk-base');
22
- var _commonsdkbase = require('@crossmint/common-sdk-base');
23
- var CrossmintWalletService = class extends _clientsdkbase.BaseCrossmintService {
24
- constructor() {
25
- super(...arguments);
26
- this.logger = _chunkJLZCSWUYcjs.scwLogger;
27
- this.apiErrorService = new (0, _clientsdkbase.APIErrorService)({
28
- ERROR_USER_WALLET_ALREADY_CREATED: ({ userId }) => new (0, _chunkBXSAJOIVcjs.UserWalletAlreadyCreatedError)(userId),
29
- ERROR_ADMIN_SIGNER_ALREADY_USED: () => new (0, _chunkBXSAJOIVcjs.AdminAlreadyUsedError)(),
30
- ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED: () => new (0, _chunkBXSAJOIVcjs.SmartWalletsNotEnabledError)()
31
- });
32
- }
33
- async idempotentCreateSmartWallet(user, input) {
34
- await this.fetchCrossmintAPI(
35
- `${_chunkIZZQHNZTcjs.API_VERSION}/sdk/smart-wallet`,
36
- { method: "PUT", body: JSON.stringify(input) },
37
- "Error creating abstract wallet. Please contact support",
38
- user.jwt
39
- );
40
- }
41
- async sponsorUserOperation(user, userOp, entryPoint, chain) {
42
- const chainId = _commonsdkbase.blockchainToChainId.call(void 0, chain);
43
- const result = await this.fetchCrossmintAPI(
44
- `${_chunkIZZQHNZTcjs.API_VERSION}/sdk/paymaster`,
45
- { method: "POST", body: JSON.stringify({ userOp: _chunkO6IFYHDPcjs.bigintsToHex.call(void 0, userOp), entryPoint, chainId }) },
46
- "Error sponsoring user operation. Please contact support",
47
- user.jwt
48
- );
49
- return _chunkO6IFYHDPcjs.parseBigintAPIResponse.call(void 0, result);
50
- }
51
- async getSmartWalletConfig(user, chain) {
52
- const data = await this.fetchCrossmintAPI(
53
- `${_chunkIZZQHNZTcjs.API_VERSION}/sdk/smart-wallet/config?chain=${chain}`,
54
- { method: "GET" },
55
- "Error getting smart wallet version configuration. Please contact support",
56
- user.jwt
57
- );
58
- const result = _chunkRUTDRRS2cjs.SmartWalletConfigSchema.safeParse(data);
59
- if (!result.success) {
60
- throw new (0, _clientsdkbase.CrossmintServiceError)(
61
- `Invalid smart wallet config, please contact support. Details below:
62
- ${result.error.toString()}`
63
- );
64
- }
65
- return result.data;
66
- }
67
- async fetchNFTs(address, chain) {
68
- return this.fetchCrossmintAPI(
69
- `v1-alpha1/wallets/${chain}:${address}/nfts`,
70
- { method: "GET" },
71
- `Error fetching NFTs for wallet: ${address}`
72
- );
73
- }
74
- getPasskeyServerUrl() {
75
- return this.crossmintBaseUrl + "api/internal/passkeys";
76
- }
77
- };
78
-
79
-
80
-
81
- exports.CrossmintWalletService = CrossmintWalletService;
82
- //# sourceMappingURL=chunk-TZUJ5MXW.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api/CrossmintWalletService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAGA,SAAS,iBAAiB,sBAAsB,6BAA6B;AAC7E,SAAS,2BAA2B;AAgB7B,IAAM,yBAAN,cAAqC,qBAAqB;AAAA,EAA1D;AAAA;AACH,kBAAS;AACT,SAAU,kBAAkB,IAAI,gBAAsC;AAAA,MAClE,mCAAmC,CAAC,EAAE,OAAO,MACzC,IAAI,8BAA8B,MAAM;AAAA,MAC5C,iCAAiC,MAAM,IAAI,sBAAsB;AAAA,MACjE,gDAAgD,MAAM,IAAI,4BAA4B;AAAA,IAC1F,CAAC;AAAA;AAAA,EAED,MAAM,4BAA4B,MAAkB,OAA8C;AAC9F,UAAM,KAAK;AAAA,MACP,GAAG,WAAW;AAAA,MACd,EAAE,QAAQ,OAAO,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,MAC7C;AAAA,MACA,KAAK;AAAA,IACT;AAAA,EACJ;AAAA,EAEA,MAAM,qBACF,MACA,QACA,YACA,OACwE;AACxE,UAAM,UAAU,oBAAoB,KAAK;AACzC,UAAM,SAAS,MAAM,KAAK;AAAA,MACtB,GAAG,WAAW;AAAA,MACd,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,EAAE,QAAQ,aAAa,MAAM,GAAG,YAAY,QAAQ,CAAC,EAAE;AAAA,MAC9F;AAAA,MACA,KAAK;AAAA,IACT;AACA,WAAO,uBAAuB,MAAM;AAAA,EACxC;AAAA,EAEA,MAAM,qBAAqB,MAAkB,OAAqD;AAC9F,UAAM,OAAgB,MAAM,KAAK;AAAA,MAC7B,GAAG,WAAW,kCAAkC,KAAK;AAAA,MACrD,EAAE,QAAQ,MAAM;AAAA,MAChB;AAAA,MACA,KAAK;AAAA,IACT;AAEA,UAAM,SAAS,wBAAwB,UAAU,IAAI;AACrD,QAAI,CAAC,OAAO,SAAS;AACjB,YAAM,IAAI;AAAA,QACN;AAAA,EAAwE,OAAO,MAAM,SAAS,CAAC;AAAA,MACnG;AAAA,IACJ;AAEA,WAAO,OAAO;AAAA,EAClB;AAAA,EAEA,MAAM,UAAU,SAAiB,OAAyB;AACtD,WAAO,KAAK;AAAA,MACR,qBAAqB,KAAK,IAAI,OAAO;AAAA,MACrC,EAAE,QAAQ,MAAM;AAAA,MAChB,mCAAmC,OAAO;AAAA,IAC9C;AAAA,EACJ;AAAA,EAEO,sBAA8B;AACjC,WAAO,KAAK,mBAAmB;AAAA,EACnC;AACJ","sourcesContent":["import type { UserOperation } from \"permissionless\";\nimport type { EntryPoint, GetEntryPointVersion } from \"permissionless/types/entrypoint\";\n\nimport { APIErrorService, BaseCrossmintService, CrossmintServiceError } from \"@crossmint/client-sdk-base\";\nimport { blockchainToChainId } from \"@crossmint/common-sdk-base\";\n\nimport type { SmartWalletChain } from \"../blockchain/chains\";\nimport { AdminAlreadyUsedError, SmartWalletsNotEnabledError, UserWalletAlreadyCreatedError } from \"../error\";\nimport { scwLogger } from \"../services\";\nimport type { UserParams } from \"../types/params\";\nimport { SmartWalletConfigSchema } from \"../types/schema\";\nimport type { SmartWalletConfig, StoreSmartWalletParams } from \"../types/service\";\nimport { bigintsToHex, parseBigintAPIResponse } from \"../utils/api\";\nimport { API_VERSION } from \"../utils/constants\";\n\ntype WalletsAPIErrorCodes =\n | \"ERROR_USER_WALLET_ALREADY_CREATED\"\n | \"ERROR_ADMIN_SIGNER_ALREADY_USED\"\n | \"ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED\";\n\nexport class CrossmintWalletService extends BaseCrossmintService {\n logger = scwLogger;\n protected apiErrorService = new APIErrorService<WalletsAPIErrorCodes>({\n ERROR_USER_WALLET_ALREADY_CREATED: ({ userId }: { userId: string }) =>\n new UserWalletAlreadyCreatedError(userId),\n ERROR_ADMIN_SIGNER_ALREADY_USED: () => new AdminAlreadyUsedError(),\n ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED: () => new SmartWalletsNotEnabledError(),\n });\n\n async idempotentCreateSmartWallet(user: UserParams, input: StoreSmartWalletParams): Promise<void> {\n await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/smart-wallet`,\n { method: \"PUT\", body: JSON.stringify(input) },\n \"Error creating abstract wallet. Please contact support\",\n user.jwt\n );\n }\n\n async sponsorUserOperation<E extends EntryPoint>(\n user: UserParams,\n userOp: UserOperation<GetEntryPointVersion<E>>,\n entryPoint: E,\n chain: SmartWalletChain\n ): Promise<{ sponsorUserOpParams: UserOperation<GetEntryPointVersion<E>> }> {\n const chainId = blockchainToChainId(chain);\n const result = await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/paymaster`,\n { method: \"POST\", body: JSON.stringify({ userOp: bigintsToHex(userOp), entryPoint, chainId }) },\n \"Error sponsoring user operation. Please contact support\",\n user.jwt\n );\n return parseBigintAPIResponse(result);\n }\n\n async getSmartWalletConfig(user: UserParams, chain: SmartWalletChain): Promise<SmartWalletConfig> {\n const data: unknown = await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/smart-wallet/config?chain=${chain}`,\n { method: \"GET\" },\n \"Error getting smart wallet version configuration. Please contact support\",\n user.jwt\n );\n\n const result = SmartWalletConfigSchema.safeParse(data);\n if (!result.success) {\n throw new CrossmintServiceError(\n `Invalid smart wallet config, please contact support. Details below:\\n${result.error.toString()}`\n );\n }\n\n return result.data;\n }\n\n async fetchNFTs(address: string, chain: SmartWalletChain) {\n return this.fetchCrossmintAPI(\n `v1-alpha1/wallets/${chain}:${address}/nfts`,\n { method: \"GET\" },\n `Error fetching NFTs for wallet: ${address}`\n );\n }\n\n public getPasskeyServerUrl(): string {\n return this.crossmintBaseUrl + \"api/internal/passkeys\";\n }\n}\n"]}
@@ -1,59 +0,0 @@
1
- import {
2
- EOASignerConfig
3
- } from "./chunk-3R6PW6HY.js";
4
- import {
5
- equalsIgnoreCase
6
- } from "./chunk-SMDX2MXU.js";
7
- import {
8
- createOwnerSigner
9
- } from "./chunk-EQSMHR77.js";
10
- import {
11
- AdminMismatchError
12
- } from "./chunk-ASIPMVRQ.js";
13
-
14
- // src/blockchain/wallets/account/eoa.ts
15
- import { signerToEcdsaValidator } from "@zerodev/ecdsa-validator";
16
- import { createKernelAccount } from "@zerodev/sdk";
17
- var EOACreationStrategy = class {
18
- async create({
19
- chain,
20
- publicClient,
21
- entryPoint,
22
- walletParams,
23
- kernelVersion,
24
- user,
25
- existing
26
- }) {
27
- const eoa = await createOwnerSigner({
28
- chain,
29
- walletParams
30
- });
31
- if (existing != null && !equalsIgnoreCase(eoa.address, existing.signerConfig.data.eoaAddress)) {
32
- throw new AdminMismatchError(
33
- `User '${user.id}' has an existing wallet with an eoa signer '${existing.signerConfig.data.eoaAddress}', this does not match input eoa signer '${eoa.address}'.`,
34
- existing.signerConfig.display(),
35
- { type: "eoa", eoaAddress: existing.signerConfig.data.eoaAddress }
36
- );
37
- }
38
- const ecdsaValidator = await signerToEcdsaValidator(publicClient, {
39
- signer: eoa,
40
- entryPoint,
41
- kernelVersion
42
- });
43
- const account = await createKernelAccount(publicClient, {
44
- plugins: {
45
- sudo: ecdsaValidator
46
- },
47
- index: 0n,
48
- entryPoint,
49
- kernelVersion,
50
- deployedAccountAddress: existing?.address
51
- });
52
- return { account, signerConfig: new EOASignerConfig({ eoaAddress: eoa.address, type: "eoa" }) };
53
- }
54
- };
55
-
56
- export {
57
- EOACreationStrategy
58
- };
59
- //# sourceMappingURL=chunk-U4OBHCIP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/blockchain/wallets/account/eoa.ts"],"sourcesContent":["import { signerToEcdsaValidator } from \"@zerodev/ecdsa-validator\";\nimport { createKernelAccount } from \"@zerodev/sdk\";\n\nimport { AdminMismatchError } from \"../../../error\";\nimport type { AccountAndSigner, EOACreationContext } from \"../../../types/internal\";\nimport { equalsIgnoreCase } from \"../../../utils/helpers\";\nimport { createOwnerSigner } from \"../../../utils/signer\";\nimport { EOASignerConfig } from \"./signer\";\nimport type { AccountCreationStrategy } from \"./strategy\";\n\nexport class EOACreationStrategy implements AccountCreationStrategy {\n public async create({\n chain,\n publicClient,\n entryPoint,\n walletParams,\n kernelVersion,\n user,\n existing,\n }: EOACreationContext): Promise<AccountAndSigner> {\n const eoa = await createOwnerSigner({\n chain,\n walletParams,\n });\n\n if (existing != null && !equalsIgnoreCase(eoa.address, existing.signerConfig.data.eoaAddress)) {\n throw new AdminMismatchError(\n `User '${user.id}' has an existing wallet with an eoa signer '${existing.signerConfig.data.eoaAddress}', this does not match input eoa signer '${eoa.address}'.`,\n existing.signerConfig.display(),\n { type: \"eoa\", eoaAddress: existing.signerConfig.data.eoaAddress }\n );\n }\n\n const ecdsaValidator = await signerToEcdsaValidator(publicClient, {\n signer: eoa,\n entryPoint,\n kernelVersion,\n });\n const account = await createKernelAccount(publicClient, {\n plugins: {\n sudo: ecdsaValidator,\n },\n index: 0n,\n entryPoint,\n kernelVersion,\n deployedAccountAddress: existing?.address,\n });\n\n return { account, signerConfig: new EOASignerConfig({ eoaAddress: eoa.address, type: \"eoa\" }) };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,8BAA8B;AACvC,SAAS,2BAA2B;AAS7B,IAAM,sBAAN,MAA6D;AAAA,EAChE,MAAa,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAAkD;AAC9C,UAAM,MAAM,MAAM,kBAAkB;AAAA,MAChC;AAAA,MACA;AAAA,IACJ,CAAC;AAED,QAAI,YAAY,QAAQ,CAAC,iBAAiB,IAAI,SAAS,SAAS,aAAa,KAAK,UAAU,GAAG;AAC3F,YAAM,IAAI;AAAA,QACN,SAAS,KAAK,EAAE,gDAAgD,SAAS,aAAa,KAAK,UAAU,4CAA4C,IAAI,OAAO;AAAA,QAC5J,SAAS,aAAa,QAAQ;AAAA,QAC9B,EAAE,MAAM,OAAO,YAAY,SAAS,aAAa,KAAK,WAAW;AAAA,MACrE;AAAA,IACJ;AAEA,UAAM,iBAAiB,MAAM,uBAAuB,cAAc;AAAA,MAC9D,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,IACJ,CAAC;AACD,UAAM,UAAU,MAAM,oBAAoB,cAAc;AAAA,MACpD,SAAS;AAAA,QACL,MAAM;AAAA,MACV;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,wBAAwB,UAAU;AAAA,IACtC,CAAC;AAED,WAAO,EAAE,SAAS,cAAc,IAAI,gBAAgB,EAAE,YAAY,IAAI,SAAS,MAAM,MAAM,CAAC,EAAE;AAAA,EAClG;AACJ;","names":[]}
@@ -1,27 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/blockchain/rpc.ts
2
- var _commonsdkbase = require('@crossmint/common-sdk-base');
3
- var ALCHEMY_API_KEY = "-7M6vRDBDknwvMxnqah_jbcieWg0qad9";
4
- var PIMLICO_API_KEY = "pim_9dKmQPxiTCvtbUNF7XFBbA";
5
- var ALCHEMY_RPC_SUBDOMAIN = {
6
- polygon: "polygon-mainnet",
7
- "polygon-amoy": "polygon-amoy",
8
- base: "base-mainnet",
9
- "base-sepolia": "base-sepolia",
10
- optimism: "opt-mainnet",
11
- "optimism-sepolia": "opt-sepolia",
12
- arbitrum: "arb-mainnet",
13
- "arbitrum-sepolia": "arb-sepolia"
14
- };
15
- function getAlchemyRPC(chain) {
16
- return `https://${ALCHEMY_RPC_SUBDOMAIN[chain]}.g.alchemy.com/v2/${ALCHEMY_API_KEY}`;
17
- }
18
- function getPimlicoBundlerRPC(chain) {
19
- return `https://api.pimlico.io/v2/${_commonsdkbase.blockchainToChainId.call(void 0, chain)}/rpc?apikey=${PIMLICO_API_KEY}`;
20
- }
21
-
22
-
23
-
24
-
25
-
26
- exports.ALCHEMY_RPC_SUBDOMAIN = ALCHEMY_RPC_SUBDOMAIN; exports.getAlchemyRPC = getAlchemyRPC; exports.getPimlicoBundlerRPC = getPimlicoBundlerRPC;
27
- //# sourceMappingURL=chunk-UQKE6R5W.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/blockchain/rpc.ts"],"names":[],"mappings":";AAAA,SAAS,2BAA2B;AAIpC,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAEjB,IAAM,wBAA0D;AAAA,EACnE,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,UAAU;AAAA,EACV,oBAAoB;AACxB;AAEO,SAAS,cAAc,OAAiC;AAC3D,SAAO,WAAW,sBAAsB,KAAK,CAAC,qBAAqB,eAAe;AACtF;AAEO,SAAS,qBAAqB,OAAiC;AAClE,SAAO,6BAA6B,oBAAoB,KAAK,CAAC,eAAe,eAAe;AAChG","sourcesContent":["import { blockchainToChainId } from \"@crossmint/common-sdk-base\";\n\nimport type { SmartWalletChain } from \"./chains\";\n\nconst ALCHEMY_API_KEY = \"-7M6vRDBDknwvMxnqah_jbcieWg0qad9\";\nconst PIMLICO_API_KEY = \"pim_9dKmQPxiTCvtbUNF7XFBbA\";\n\nexport const ALCHEMY_RPC_SUBDOMAIN: Record<SmartWalletChain, string> = {\n polygon: \"polygon-mainnet\",\n \"polygon-amoy\": \"polygon-amoy\",\n base: \"base-mainnet\",\n \"base-sepolia\": \"base-sepolia\",\n optimism: \"opt-mainnet\",\n \"optimism-sepolia\": \"opt-sepolia\",\n arbitrum: \"arb-mainnet\",\n \"arbitrum-sepolia\": \"arb-sepolia\",\n};\n\nexport function getAlchemyRPC(chain: SmartWalletChain): string {\n return `https://${ALCHEMY_RPC_SUBDOMAIN[chain]}.g.alchemy.com/v2/${ALCHEMY_API_KEY}`;\n}\n\nexport function getPimlicoBundlerRPC(chain: SmartWalletChain): string {\n return `https://api.pimlico.io/v2/${blockchainToChainId(chain)}/rpc?apikey=${PIMLICO_API_KEY}`;\n}\n"]}
@@ -1,112 +0,0 @@
1
- import {
2
- SendTransactionService
3
- } from "./chunk-3EQHAQXO.js";
4
- import {
5
- transferParams
6
- } from "./chunk-ON4DOYVD.js";
7
- import {
8
- SmartWalletError
9
- } from "./chunk-ASIPMVRQ.js";
10
-
11
- // src/blockchain/wallets/EVMSmartWallet.ts
12
- var EVMSmartWallet = class {
13
- constructor(client, chain, crossmintService, sendTransactionService = new SendTransactionService(client)) {
14
- this.crossmintService = crossmintService;
15
- this.sendTransactionService = sendTransactionService;
16
- this.chain = chain;
17
- this.client = client;
18
- }
19
- /**
20
- * The address of the smart wallet.
21
- */
22
- get address() {
23
- return this.client.wallet.account.address;
24
- }
25
- /**
26
- * Transfers tokens from the smart wallet to a specified address.
27
- * @param toAddress The recipient's address.
28
- * @param config The transfer configuration, including token details and amount.
29
- * @returns The transaction hash.
30
- * @throws {SmartWalletError} If there's a chain mismatch between this wallet and the input configuration.
31
- * @throws {SendTransactionError} If the transaction fails to send. Contains the error thrown by the viem client.
32
- * @throws {SendTransactionExecutionRevertedError} A subclass of SendTransactionError if the transaction fails due to a contract execution error.
33
- */
34
- async transferToken(toAddress, config) {
35
- if (this.chain !== config.token.chain) {
36
- throw new SmartWalletError(
37
- `Chain mismatch: Expected ${config.token.chain}, but got ${this.chain}. Ensure you are interacting with the correct blockchain.`
38
- );
39
- }
40
- return this.executeContract(
41
- transferParams({
42
- contract: config.token.contractAddress,
43
- to: toAddress,
44
- from: this.client.wallet.account,
45
- config
46
- })
47
- );
48
- }
49
- /**
50
- * @returns A list of NFTs owned by the wallet.
51
- */
52
- async nfts() {
53
- return this.crossmintService.fetchNFTs(this.address, this.chain);
54
- }
55
- /**
56
- * Sends a contract call transaction and returns the hash of a confirmed transaction.
57
- * @param address the address of the contract to be called
58
- * @param abi the ABI of the contract - ***should be defined as a typed variable*** to enable type checking of the contract arguments, see https://viem.sh/docs/typescript#type-inference for guidance
59
- * @param functionName the name of the smart contract function to be called
60
- * @param args the arguments to be passed to the function
61
- * @returns The transaction hash.
62
- * @throws `SendTransactionError` if the transaction fails to send. Contains the error thrown by the viem client.
63
- * @throws `SendTransactionExecutionRevertedError`, a subclass of `SendTransactionError` if the transaction fails due to a contract execution error.
64
- *
65
- * **Passing a typed ABI:**
66
- * @example
67
- * const abi = [{
68
- * "inputs": [
69
- * {
70
- * "internalType": "address",
71
- * "name": "recipient",
72
- * "type": "address"
73
- * },
74
- * ],
75
- * "name": "mintNFT",
76
- * "outputs": [],
77
- * "stateMutability": "nonpayable",
78
- * "type": "function"
79
- * }] as const;
80
- *
81
- * await wallet.executeContract({
82
- * address: contractAddress,
83
- * abi,
84
- * functionName: "mintNFT",
85
- * args: [recipientAddress],
86
- * });
87
- */
88
- async executeContract({
89
- address,
90
- abi,
91
- functionName,
92
- args,
93
- value,
94
- config
95
- }) {
96
- return this.sendTransactionService.sendTransaction(
97
- {
98
- address,
99
- abi,
100
- functionName,
101
- args,
102
- value
103
- },
104
- config
105
- );
106
- }
107
- };
108
-
109
- export {
110
- EVMSmartWallet
111
- };
112
- //# sourceMappingURL=chunk-UZGHOTKZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/blockchain/wallets/EVMSmartWallet.ts"],"sourcesContent":["import type {\n Abi,\n Address,\n ContractFunctionArgs,\n ContractFunctionName,\n Hex,\n HttpTransport,\n PublicClient,\n WriteContractParameters,\n} from \"viem\";\n\nimport type { CrossmintWalletService } from \"../../api/CrossmintWalletService\";\nimport { SmartWalletError } from \"../../error\";\nimport type { SmartWalletClient } from \"../../types/internal\";\nimport type { TransferType } from \"../../types/token\";\nimport type { SmartWalletChain } from \"../chains\";\nimport { transferParams } from \"../transfer\";\nimport { type SendTransactionOptions, SendTransactionService } from \"./SendTransactionService\";\n\n/**\n * Smart wallet interface for EVM chains enhanced with Crossmint capabilities.\n * Core functionality is exposed via [viem](https://viem.sh/) clients within the `client` property of the class.\n */\nexport class EVMSmartWallet {\n public readonly chain: SmartWalletChain;\n\n /**\n * [viem](https://viem.sh/) clients that provide an interface for core wallet functionality.\n */\n public readonly client: {\n /**\n * An interface to interact with the smart wallet, execute transactions, sign messages, etc.\n */\n wallet: SmartWalletClient;\n\n /**\n * An interface to read onchain data, fetch transactions, retrieve account balances, etc. Corresponds to public [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods.\n */\n public: PublicClient;\n };\n\n constructor(\n client: { public: PublicClient<HttpTransport>; wallet: SmartWalletClient },\n chain: SmartWalletChain,\n private readonly crossmintService: CrossmintWalletService,\n private readonly sendTransactionService = new SendTransactionService(client)\n ) {\n this.chain = chain;\n this.client = client;\n }\n\n /**\n * The address of the smart wallet.\n */\n public get address() {\n return this.client.wallet.account.address;\n }\n\n /**\n * Transfers tokens from the smart wallet to a specified address.\n * @param toAddress The recipient's address.\n * @param config The transfer configuration, including token details and amount.\n * @returns The transaction hash.\n * @throws {SmartWalletError} If there's a chain mismatch between this wallet and the input configuration.\n * @throws {SendTransactionError} If the transaction fails to send. Contains the error thrown by the viem client.\n * @throws {SendTransactionExecutionRevertedError} A subclass of SendTransactionError if the transaction fails due to a contract execution error.\n */\n public async transferToken(toAddress: Address, config: TransferType): Promise<string> {\n if (this.chain !== config.token.chain) {\n throw new SmartWalletError(\n `Chain mismatch: Expected ${config.token.chain}, but got ${this.chain}. Ensure you are interacting with the correct blockchain.`\n );\n }\n\n return this.executeContract(\n transferParams({\n contract: config.token.contractAddress,\n to: toAddress,\n from: this.client.wallet.account,\n config,\n })\n );\n }\n\n /**\n * @returns A list of NFTs owned by the wallet.\n */\n public async nfts() {\n return this.crossmintService.fetchNFTs(this.address, this.chain);\n }\n\n /**\n * Sends a contract call transaction and returns the hash of a confirmed transaction.\n * @param address the address of the contract to be called\n * @param abi the ABI of the contract - ***should be defined as a typed variable*** to enable type checking of the contract arguments, see https://viem.sh/docs/typescript#type-inference for guidance\n * @param functionName the name of the smart contract function to be called\n * @param args the arguments to be passed to the function\n * @returns The transaction hash.\n * @throws `SendTransactionError` if the transaction fails to send. Contains the error thrown by the viem client.\n * @throws `SendTransactionExecutionRevertedError`, a subclass of `SendTransactionError` if the transaction fails due to a contract execution error.\n *\n * **Passing a typed ABI:**\n * @example\n * const abi = [{\n * \"inputs\": [\n * {\n * \"internalType\": \"address\",\n * \"name\": \"recipient\",\n * \"type\": \"address\"\n * },\n * ],\n * \"name\": \"mintNFT\",\n * \"outputs\": [],\n * \"stateMutability\": \"nonpayable\",\n * \"type\": \"function\"\n * }] as const;\n *\n * await wallet.executeContract({\n * address: contractAddress,\n * abi,\n * functionName: \"mintNFT\",\n * args: [recipientAddress],\n * });\n */\n public async executeContract<\n const TAbi extends Abi | readonly unknown[],\n TFunctionName extends ContractFunctionName<TAbi, \"nonpayable\" | \"payable\"> = ContractFunctionName<\n TAbi,\n \"nonpayable\" | \"payable\"\n >,\n TArgs extends ContractFunctionArgs<TAbi, \"nonpayable\" | \"payable\", TFunctionName> = ContractFunctionArgs<\n TAbi,\n \"nonpayable\" | \"payable\",\n TFunctionName\n >,\n >({\n address,\n abi,\n functionName,\n args,\n value,\n config,\n }: Omit<WriteContractParameters<TAbi, TFunctionName, TArgs>, \"chain\" | \"account\"> & {\n config?: Partial<SendTransactionOptions>;\n }): Promise<Hex> {\n return this.sendTransactionService.sendTransaction(\n {\n address,\n abi: abi as Abi,\n functionName,\n args,\n value,\n },\n config\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAuBO,IAAM,iBAAN,MAAqB;AAAA,EAkBxB,YACI,QACA,OACiB,kBACA,yBAAyB,IAAI,uBAAuB,MAAM,GAC7E;AAFmB;AACA;AAEjB,SAAK,QAAQ;AACb,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAW,UAAU;AACjB,WAAO,KAAK,OAAO,OAAO,QAAQ;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAa,cAAc,WAAoB,QAAuC;AAClF,QAAI,KAAK,UAAU,OAAO,MAAM,OAAO;AACnC,YAAM,IAAI;AAAA,QACN,4BAA4B,OAAO,MAAM,KAAK,aAAa,KAAK,KAAK;AAAA,MACzE;AAAA,IACJ;AAEA,WAAO,KAAK;AAAA,MACR,eAAe;AAAA,QACX,UAAU,OAAO,MAAM;AAAA,QACvB,IAAI;AAAA,QACJ,MAAM,KAAK,OAAO,OAAO;AAAA,QACzB;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,OAAO;AAChB,WAAO,KAAK,iBAAiB,UAAU,KAAK,SAAS,KAAK,KAAK;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCA,MAAa,gBAWX;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAEiB;AACb,WAAO,KAAK,uBAAuB;AAAA,MAC/B;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
@@ -1,14 +0,0 @@
1
- import {
2
- SCW_SERVICE
3
- } from "./chunk-YKW7PMBU.js";
4
-
5
- // src/services/logger.ts
6
- import { SDKLogger, getBrowserLogger } from "@crossmint/client-sdk-base";
7
- var scwLogger = new SDKLogger(SCW_SERVICE);
8
- var scwDatadogLogger = new SDKLogger(SCW_SERVICE, getBrowserLogger(SCW_SERVICE, { onlyDatadog: true }));
9
-
10
- export {
11
- scwLogger,
12
- scwDatadogLogger
13
- };
14
- //# sourceMappingURL=chunk-WRH3YJT3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/services/logger.ts"],"sourcesContent":["import { SDKLogger, getBrowserLogger } from \"@crossmint/client-sdk-base\";\n\nimport { SCW_SERVICE } from \"../utils/constants\";\n\nexport const scwLogger = new SDKLogger(SCW_SERVICE);\nexport const scwDatadogLogger = new SDKLogger(SCW_SERVICE, getBrowserLogger(SCW_SERVICE, { onlyDatadog: true }));\n"],"mappings":";;;;;AAAA,SAAS,WAAW,wBAAwB;AAIrC,IAAM,YAAY,IAAI,UAAU,WAAW;AAC3C,IAAM,mBAAmB,IAAI,UAAU,aAAa,iBAAiB,aAAa,EAAE,aAAa,KAAK,CAAC,CAAC;","names":[]}