@crossmint/wallets-sdk 0.20.1 → 0.20.4

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 (344) hide show
  1. package/dist/api/__tests__/constants.cjs +4 -3
  2. package/dist/api/__tests__/constants.cjs.map +1 -0
  3. package/dist/api/__tests__/constants.js +3 -2
  4. package/dist/api/__tests__/constants.js.map +1 -0
  5. package/dist/api/__tests__/test-utils.cjs +36 -35
  6. package/dist/api/__tests__/test-utils.cjs.map +1 -0
  7. package/dist/api/__tests__/test-utils.js +7 -6
  8. package/dist/api/__tests__/test-utils.js.map +1 -0
  9. package/dist/api/client.cjs +7 -6
  10. package/dist/api/client.cjs.map +1 -0
  11. package/dist/api/client.js +6 -5
  12. package/dist/api/client.js.map +1 -0
  13. package/dist/api/gen/client.gen.cjs +4 -3
  14. package/dist/api/gen/client.gen.cjs.map +1 -0
  15. package/dist/api/gen/client.gen.js +3 -2
  16. package/dist/api/gen/client.gen.js.map +1 -0
  17. package/dist/api/gen/index.cjs +6 -5
  18. package/dist/api/gen/index.cjs.map +1 -0
  19. package/dist/api/gen/index.js +5 -4
  20. package/dist/api/gen/index.js.map +1 -0
  21. package/dist/api/gen/sdk.gen.cjs +5 -4
  22. package/dist/api/gen/sdk.gen.cjs.map +1 -0
  23. package/dist/api/gen/sdk.gen.js +4 -3
  24. package/dist/api/gen/sdk.gen.js.map +1 -0
  25. package/dist/api/gen/types.gen.cjs +2 -1
  26. package/dist/api/gen/types.gen.cjs.map +1 -0
  27. package/dist/api/gen/types.gen.js +2 -1
  28. package/dist/api/gen/types.gen.js.map +1 -0
  29. package/dist/api/index.cjs +9 -8
  30. package/dist/api/index.cjs.map +1 -0
  31. package/dist/api/index.js +8 -7
  32. package/dist/api/index.js.map +1 -0
  33. package/dist/api/types.cjs +2 -1
  34. package/dist/api/types.cjs.map +1 -0
  35. package/dist/api/types.js +2 -1
  36. package/dist/api/types.js.map +1 -0
  37. package/dist/chains/chains.cjs +13 -12
  38. package/dist/chains/chains.cjs.map +1 -0
  39. package/dist/chains/chains.js +12 -11
  40. package/dist/chains/chains.js.map +1 -0
  41. package/dist/chains/definitions/arcTestnet.cjs +4 -3
  42. package/dist/chains/definitions/arcTestnet.cjs.map +1 -0
  43. package/dist/chains/definitions/arcTestnet.js +3 -2
  44. package/dist/chains/definitions/arcTestnet.js.map +1 -0
  45. package/dist/chains/definitions/story.cjs +4 -3
  46. package/dist/chains/definitions/story.cjs.map +1 -0
  47. package/dist/chains/definitions/story.js +3 -2
  48. package/dist/chains/definitions/story.js.map +1 -0
  49. package/dist/chains/definitions/storyTestnet.cjs +4 -3
  50. package/dist/chains/definitions/storyTestnet.cjs.map +1 -0
  51. package/dist/chains/definitions/storyTestnet.js +3 -2
  52. package/dist/chains/definitions/storyTestnet.js.map +1 -0
  53. package/dist/chains/definitions/tempo.cjs +4 -3
  54. package/dist/chains/definitions/tempo.cjs.map +1 -0
  55. package/dist/chains/definitions/tempo.js +3 -2
  56. package/dist/chains/definitions/tempo.js.map +1 -0
  57. package/dist/chains/definitions/tempoTestnet.cjs +4 -3
  58. package/dist/chains/definitions/tempoTestnet.cjs.map +1 -0
  59. package/dist/chains/definitions/tempoTestnet.js +3 -2
  60. package/dist/chains/definitions/tempoTestnet.js.map +1 -0
  61. package/dist/{chunk-TPW2OJIB.js → chunk-2QI75IOB.js} +4 -3
  62. package/dist/chunk-2QI75IOB.js.map +1 -0
  63. package/dist/{chunk-2T5HHKUI.js → chunk-2RQYQVVY.js} +1 -0
  64. package/dist/chunk-2RQYQVVY.js.map +1 -0
  65. package/dist/{chunk-JWMQALLN.js → chunk-33TLFTHT.js} +1 -0
  66. package/dist/chunk-33TLFTHT.js.map +1 -0
  67. package/dist/{chunk-SGINWAB6.js → chunk-36C7SCPK.js} +1 -0
  68. package/dist/chunk-36C7SCPK.js.map +1 -0
  69. package/dist/{chunk-WJUPOCKJ.js → chunk-3J2BNUTO.js} +1 -0
  70. package/dist/chunk-3J2BNUTO.js.map +1 -0
  71. package/dist/{chunk-FOOISYCJ.js → chunk-3PG4HRAS.js} +2 -1
  72. package/dist/chunk-3PG4HRAS.js.map +1 -0
  73. package/dist/{chunk-ZP4ZZCIE.js → chunk-4AV3GY27.js} +2 -1
  74. package/dist/chunk-4AV3GY27.js.map +1 -0
  75. package/dist/{chunk-47WKYTRN.js → chunk-4BB7YYTT.js} +2 -1
  76. package/dist/chunk-4BB7YYTT.js.map +1 -0
  77. package/dist/{chunk-XC2V34TS.cjs → chunk-4GADBBZN.cjs} +1 -0
  78. package/dist/chunk-4GADBBZN.cjs.map +1 -0
  79. package/dist/{chunk-XTKNO44C.js → chunk-4GSHSMCA.js} +4 -3
  80. package/dist/chunk-4GSHSMCA.js.map +1 -0
  81. package/dist/{chunk-3G4P2NHM.js → chunk-5NIFUAZH.js} +4 -3
  82. package/dist/chunk-5NIFUAZH.js.map +1 -0
  83. package/dist/{chunk-TYRXXYHP.js → chunk-5OFC4HSW.js} +5 -4
  84. package/dist/chunk-5OFC4HSW.js.map +1 -0
  85. package/dist/{chunk-ZZLEVK2P.cjs → chunk-5QPU62QL.cjs} +16 -15
  86. package/dist/chunk-5QPU62QL.cjs.map +1 -0
  87. package/dist/{chunk-4GFSUI2I.cjs → chunk-6CR6FGAO.cjs} +4 -3
  88. package/dist/chunk-6CR6FGAO.cjs.map +1 -0
  89. package/dist/{chunk-JSWTGW46.cjs → chunk-6DPHKKVR.cjs} +4 -3
  90. package/dist/chunk-6DPHKKVR.cjs.map +1 -0
  91. package/dist/{chunk-MMISP35W.js → chunk-6G4QLBSO.js} +1 -0
  92. package/dist/chunk-6G4QLBSO.js.map +1 -0
  93. package/dist/{chunk-ZNAGDENG.cjs → chunk-6PIQDY3F.cjs} +4 -3
  94. package/dist/chunk-6PIQDY3F.cjs.map +1 -0
  95. package/dist/{chunk-J45OIOTF.js → chunk-6QZLBFZZ.js} +6 -5
  96. package/dist/chunk-6QZLBFZZ.js.map +1 -0
  97. package/dist/{chunk-NPTNXK47.js → chunk-7PHIXK4Q.js} +2 -1
  98. package/dist/chunk-7PHIXK4Q.js.map +1 -0
  99. package/dist/{chunk-RBHGZDDX.cjs → chunk-A3QJT5UU.cjs} +3 -2
  100. package/dist/chunk-A3QJT5UU.cjs.map +1 -0
  101. package/dist/{chunk-IBV7DELQ.js → chunk-AMS7MCD6.js} +6 -5
  102. package/dist/chunk-AMS7MCD6.js.map +1 -0
  103. package/dist/{chunk-TC6ITDWV.cjs → chunk-BBUEX3DG.cjs} +4 -3
  104. package/dist/chunk-BBUEX3DG.cjs.map +1 -0
  105. package/dist/chunk-BD3ZXT5D.js +1 -0
  106. package/dist/chunk-BD3ZXT5D.js.map +1 -0
  107. package/dist/{chunk-ZBLW42YE.js → chunk-C6WWOWGR.js} +1 -0
  108. package/dist/chunk-C6WWOWGR.js.map +1 -0
  109. package/dist/{chunk-Q5KNPVYI.cjs → chunk-CLVXR2JV.cjs} +7 -6
  110. package/dist/chunk-CLVXR2JV.cjs.map +1 -0
  111. package/dist/{chunk-55V4VMTX.cjs → chunk-CYUJJIHO.cjs} +1 -0
  112. package/dist/chunk-CYUJJIHO.cjs.map +1 -0
  113. package/dist/{chunk-7GOUUPS4.js → chunk-D2OS4757.js} +2 -1
  114. package/dist/chunk-D2OS4757.js.map +1 -0
  115. package/dist/chunk-DA47DMPI.js +1 -0
  116. package/dist/chunk-DA47DMPI.js.map +1 -0
  117. package/dist/{chunk-IPO25BCU.js → chunk-DGBAFJTM.js} +2 -1
  118. package/dist/chunk-DGBAFJTM.js.map +1 -0
  119. package/dist/{chunk-O42BRSEX.cjs → chunk-DIJNSNWN.cjs} +18 -17
  120. package/dist/chunk-DIJNSNWN.cjs.map +1 -0
  121. package/dist/{chunk-7USEVMTW.cjs → chunk-DN2SNZIX.cjs} +1 -0
  122. package/dist/chunk-DN2SNZIX.cjs.map +1 -0
  123. package/dist/{chunk-PIFD6KNH.js → chunk-EKMTR3GD.js} +3 -2
  124. package/dist/chunk-EKMTR3GD.js.map +1 -0
  125. package/dist/{chunk-COR3CNRW.cjs → chunk-FLI7NWQN.cjs} +130 -129
  126. package/dist/chunk-FLI7NWQN.cjs.map +1 -0
  127. package/dist/{chunk-NIBKCMQ2.cjs → chunk-G43MR76L.cjs} +1 -0
  128. package/dist/chunk-G43MR76L.cjs.map +1 -0
  129. package/dist/{chunk-XOCC3MPK.cjs → chunk-GGMUF77N.cjs} +4 -3
  130. package/dist/chunk-GGMUF77N.cjs.map +1 -0
  131. package/dist/{chunk-FGGGBNUF.js → chunk-GNU6RIKU.js} +8 -7
  132. package/dist/chunk-GNU6RIKU.js.map +1 -0
  133. package/dist/{chunk-H3XAAMD3.cjs → chunk-H6BH7OK4.cjs} +16 -15
  134. package/dist/chunk-H6BH7OK4.cjs.map +1 -0
  135. package/dist/{chunk-DENEF27X.js → chunk-HP6T3FTF.js} +5 -4
  136. package/dist/chunk-HP6T3FTF.js.map +1 -0
  137. package/dist/{chunk-RHR6P2KP.cjs → chunk-I2O3XXRZ.cjs} +1 -0
  138. package/dist/chunk-I2O3XXRZ.cjs.map +1 -0
  139. package/dist/chunk-IE4R2VDM.cjs +1 -0
  140. package/dist/chunk-IE4R2VDM.cjs.map +1 -0
  141. package/dist/{chunk-KD6N62YZ.js → chunk-IP6APT2S.js} +5 -4
  142. package/dist/chunk-IP6APT2S.js.map +1 -0
  143. package/dist/{chunk-BMMZIPXT.js → chunk-IUSTF2DR.js} +3 -2
  144. package/dist/chunk-IUSTF2DR.js.map +1 -0
  145. package/dist/{chunk-XMVAZ7EW.cjs → chunk-IYQMWYQI.cjs} +12 -11
  146. package/dist/chunk-IYQMWYQI.cjs.map +1 -0
  147. package/dist/{chunk-3ASKCQJN.cjs → chunk-IZYJJUOE.cjs} +37 -36
  148. package/dist/chunk-IZYJJUOE.cjs.map +1 -0
  149. package/dist/{chunk-HTSQPZHW.cjs → chunk-J2OH6EMB.cjs} +1 -0
  150. package/dist/chunk-J2OH6EMB.cjs.map +1 -0
  151. package/dist/{chunk-DPZIHSN7.js → chunk-J6AO2ZDU.js} +8 -6
  152. package/dist/chunk-J6AO2ZDU.js.map +1 -0
  153. package/dist/{chunk-ASE2FXWP.js → chunk-JF4JR5QQ.js} +1 -0
  154. package/dist/chunk-JF4JR5QQ.js.map +1 -0
  155. package/dist/{chunk-2I2OFGNL.js → chunk-JMRG565N.js} +2 -1
  156. package/dist/chunk-JMRG565N.js.map +1 -0
  157. package/dist/{chunk-DZ6MCPD3.js → chunk-JXXXM7AV.js} +2 -1
  158. package/dist/chunk-JXXXM7AV.js.map +1 -0
  159. package/dist/{chunk-ZT7EGOCI.cjs → chunk-KV7KHODO.cjs} +1 -0
  160. package/dist/chunk-KV7KHODO.cjs.map +1 -0
  161. package/dist/{chunk-LPR7BODP.cjs → chunk-KXXRVRR6.cjs} +10 -9
  162. package/dist/chunk-KXXRVRR6.cjs.map +1 -0
  163. package/dist/chunk-L33DZOLM.cjs +1 -0
  164. package/dist/chunk-L33DZOLM.cjs.map +1 -0
  165. package/dist/chunk-M2OFHRMU.cjs +1 -0
  166. package/dist/chunk-M2OFHRMU.cjs.map +1 -0
  167. package/dist/{chunk-ZTEMOYS2.cjs → chunk-NAGMAP3Y.cjs} +4 -3
  168. package/dist/chunk-NAGMAP3Y.cjs.map +1 -0
  169. package/dist/{chunk-PK7J3Y3L.js → chunk-NG77OKLY.js} +2 -1
  170. package/dist/chunk-NG77OKLY.js.map +1 -0
  171. package/dist/{chunk-HH3MM7IJ.cjs → chunk-NQR4AQOW.cjs} +2 -1
  172. package/dist/chunk-NQR4AQOW.cjs.map +1 -0
  173. package/dist/chunk-PHGHKSBT.js +1 -0
  174. package/dist/chunk-PHGHKSBT.js.map +1 -0
  175. package/dist/{chunk-G6QJHFSY.cjs → chunk-QFE6TYBN.cjs} +1 -0
  176. package/dist/chunk-QFE6TYBN.cjs.map +1 -0
  177. package/dist/{chunk-PJOJIRTY.js → chunk-QUIRXKKE.js} +1 -0
  178. package/dist/chunk-QUIRXKKE.js.map +1 -0
  179. package/dist/chunk-RB7HTHG4.js +1 -0
  180. package/dist/chunk-RB7HTHG4.js.map +1 -0
  181. package/dist/{chunk-IOMKHF6R.cjs → chunk-RJ3VNO74.cjs} +4 -3
  182. package/dist/chunk-RJ3VNO74.cjs.map +1 -0
  183. package/dist/chunk-RLWGW5R2.js +1 -0
  184. package/dist/chunk-RLWGW5R2.js.map +1 -0
  185. package/dist/{chunk-AEGU53OM.cjs → chunk-RPLIXWF3.cjs} +11 -10
  186. package/dist/chunk-RPLIXWF3.cjs.map +1 -0
  187. package/dist/{chunk-3SYMIYEW.js → chunk-RUUBB4EB.js} +10 -9
  188. package/dist/chunk-RUUBB4EB.js.map +1 -0
  189. package/dist/{chunk-SJSXTTSY.cjs → chunk-TONAC74L.cjs} +121 -119
  190. package/dist/chunk-TONAC74L.cjs.map +1 -0
  191. package/dist/{chunk-F7L2TZ3I.cjs → chunk-TXLF6BM6.cjs} +1 -0
  192. package/dist/chunk-TXLF6BM6.cjs.map +1 -0
  193. package/dist/{chunk-3KEY2NLC.js → chunk-UAFXNE4C.js} +5 -4
  194. package/dist/chunk-UAFXNE4C.js.map +1 -0
  195. package/dist/chunk-UBZ7RWBZ.cjs +1 -0
  196. package/dist/chunk-UBZ7RWBZ.cjs.map +1 -0
  197. package/dist/chunk-UDLDOYUB.cjs +1 -0
  198. package/dist/chunk-UDLDOYUB.cjs.map +1 -0
  199. package/dist/chunk-V5HHKVTT.cjs +59 -0
  200. package/dist/chunk-V5HHKVTT.cjs.map +1 -0
  201. package/dist/{chunk-AYE7XUR2.js → chunk-VIL33DEX.js} +8 -7
  202. package/dist/chunk-VIL33DEX.js.map +1 -0
  203. package/dist/{chunk-UO2J2ZB2.cjs → chunk-W4VYO3P6.cjs} +1 -0
  204. package/dist/chunk-W4VYO3P6.cjs.map +1 -0
  205. package/dist/{chunk-KN3AKBVY.cjs → chunk-W5LNQWQD.cjs} +10 -9
  206. package/dist/chunk-W5LNQWQD.cjs.map +1 -0
  207. package/dist/{chunk-3WF7K4KF.cjs → chunk-XOVH2G3J.cjs} +38 -37
  208. package/dist/chunk-XOVH2G3J.cjs.map +1 -0
  209. package/dist/{chunk-NFV5K2D2.cjs → chunk-XWXIO5PH.cjs} +32 -31
  210. package/dist/chunk-XWXIO5PH.cjs.map +1 -0
  211. package/dist/{chunk-Y35UJFTB.cjs → chunk-Y3CJJ3GO.cjs} +55 -54
  212. package/dist/chunk-Y3CJJ3GO.cjs.map +1 -0
  213. package/dist/{chunk-3U6UAYOV.js → chunk-Y5AADOPZ.js} +1 -0
  214. package/dist/chunk-Y5AADOPZ.js.map +1 -0
  215. package/dist/{chunk-KT3CVXFG.js → chunk-ZEH4W3O4.js} +1 -0
  216. package/dist/chunk-ZEH4W3O4.js.map +1 -0
  217. package/dist/index.cjs +37 -36
  218. package/dist/index.cjs.map +1 -0
  219. package/dist/index.js +36 -35
  220. package/dist/index.js.map +1 -0
  221. package/dist/logger/index.cjs +6 -5
  222. package/dist/logger/index.cjs.map +1 -0
  223. package/dist/logger/index.js +5 -4
  224. package/dist/logger/index.js.map +1 -0
  225. package/dist/logger/init.cjs +5 -4
  226. package/dist/logger/init.cjs.map +1 -0
  227. package/dist/logger/init.js +4 -3
  228. package/dist/logger/init.js.map +1 -0
  229. package/dist/sdk.cjs +34 -33
  230. package/dist/sdk.cjs.map +1 -0
  231. package/dist/sdk.js +33 -32
  232. package/dist/sdk.js.map +1 -0
  233. package/dist/signers/evm-api-key.cjs +4 -3
  234. package/dist/signers/evm-api-key.cjs.map +1 -0
  235. package/dist/signers/evm-api-key.js +3 -2
  236. package/dist/signers/evm-api-key.js.map +1 -0
  237. package/dist/signers/evm-external-wallet.cjs +4 -3
  238. package/dist/signers/evm-external-wallet.cjs.map +1 -0
  239. package/dist/signers/evm-external-wallet.js +3 -2
  240. package/dist/signers/evm-external-wallet.js.map +1 -0
  241. package/dist/signers/index.cjs +21 -20
  242. package/dist/signers/index.cjs.map +1 -0
  243. package/dist/signers/index.js +20 -19
  244. package/dist/signers/index.js.map +1 -0
  245. package/dist/signers/non-custodial/index.cjs +13 -12
  246. package/dist/signers/non-custodial/index.cjs.map +1 -0
  247. package/dist/signers/non-custodial/index.js +12 -11
  248. package/dist/signers/non-custodial/index.js.map +1 -0
  249. package/dist/signers/non-custodial/ncs-evm-signer.cjs +10 -9
  250. package/dist/signers/non-custodial/ncs-evm-signer.cjs.map +1 -0
  251. package/dist/signers/non-custodial/ncs-evm-signer.js +9 -8
  252. package/dist/signers/non-custodial/ncs-evm-signer.js.map +1 -0
  253. package/dist/signers/non-custodial/ncs-iframe-manager.cjs +4 -3
  254. package/dist/signers/non-custodial/ncs-iframe-manager.cjs.map +1 -0
  255. package/dist/signers/non-custodial/ncs-iframe-manager.js +3 -2
  256. package/dist/signers/non-custodial/ncs-iframe-manager.js.map +1 -0
  257. package/dist/signers/non-custodial/ncs-signer.cjs +9 -8
  258. package/dist/signers/non-custodial/ncs-signer.cjs.map +1 -0
  259. package/dist/signers/non-custodial/ncs-signer.js +8 -7
  260. package/dist/signers/non-custodial/ncs-signer.js.map +1 -0
  261. package/dist/signers/non-custodial/ncs-solana-signer.cjs +10 -9
  262. package/dist/signers/non-custodial/ncs-solana-signer.cjs.map +1 -0
  263. package/dist/signers/non-custodial/ncs-solana-signer.js +9 -8
  264. package/dist/signers/non-custodial/ncs-solana-signer.js.map +1 -0
  265. package/dist/signers/non-custodial/ncs-stellar-signer.cjs +10 -9
  266. package/dist/signers/non-custodial/ncs-stellar-signer.cjs.map +1 -0
  267. package/dist/signers/non-custodial/ncs-stellar-signer.js +9 -8
  268. package/dist/signers/non-custodial/ncs-stellar-signer.js.map +1 -0
  269. package/dist/signers/passkey.cjs +4 -3
  270. package/dist/signers/passkey.cjs.map +1 -0
  271. package/dist/signers/passkey.js +3 -2
  272. package/dist/signers/passkey.js.map +1 -0
  273. package/dist/signers/solana-api-key.cjs +4 -3
  274. package/dist/signers/solana-api-key.cjs.map +1 -0
  275. package/dist/signers/solana-api-key.js +3 -2
  276. package/dist/signers/solana-api-key.js.map +1 -0
  277. package/dist/signers/solana-external-wallet.cjs +5 -4
  278. package/dist/signers/solana-external-wallet.cjs.map +1 -0
  279. package/dist/signers/solana-external-wallet.js +4 -3
  280. package/dist/signers/solana-external-wallet.js.map +1 -0
  281. package/dist/signers/stellar-external-wallet.cjs +4 -3
  282. package/dist/signers/stellar-external-wallet.cjs.map +1 -0
  283. package/dist/signers/stellar-external-wallet.js +3 -2
  284. package/dist/signers/stellar-external-wallet.js.map +1 -0
  285. package/dist/signers/types.cjs +4 -3
  286. package/dist/signers/types.cjs.map +1 -0
  287. package/dist/signers/types.js +3 -2
  288. package/dist/signers/types.js.map +1 -0
  289. package/dist/utils/constants.cjs +4 -3
  290. package/dist/utils/constants.cjs.map +1 -0
  291. package/dist/utils/constants.js +3 -2
  292. package/dist/utils/constants.js.map +1 -0
  293. package/dist/utils/errors.cjs +4 -3
  294. package/dist/utils/errors.cjs.map +1 -0
  295. package/dist/utils/errors.js +3 -2
  296. package/dist/utils/errors.js.map +1 -0
  297. package/dist/utils/signer-validation.cjs +5 -4
  298. package/dist/utils/signer-validation.cjs.map +1 -0
  299. package/dist/utils/signer-validation.js +4 -3
  300. package/dist/utils/signer-validation.js.map +1 -0
  301. package/dist/wallets/__tests__/setup.cjs +4 -3
  302. package/dist/wallets/__tests__/setup.cjs.map +1 -0
  303. package/dist/wallets/__tests__/setup.js +2 -1
  304. package/dist/wallets/__tests__/setup.js.map +1 -0
  305. package/dist/wallets/__tests__/test-helpers.cjs +22 -21
  306. package/dist/wallets/__tests__/test-helpers.cjs.map +1 -0
  307. package/dist/wallets/__tests__/test-helpers.js +20 -19
  308. package/dist/wallets/__tests__/test-helpers.js.map +1 -0
  309. package/dist/wallets/evm.cjs +22 -21
  310. package/dist/wallets/evm.cjs.map +1 -0
  311. package/dist/wallets/evm.js +21 -20
  312. package/dist/wallets/evm.js.map +1 -0
  313. package/dist/wallets/solana.cjs +23 -22
  314. package/dist/wallets/solana.cjs.map +1 -0
  315. package/dist/wallets/solana.js +22 -21
  316. package/dist/wallets/solana.js.map +1 -0
  317. package/dist/wallets/stellar.cjs +22 -21
  318. package/dist/wallets/stellar.cjs.map +1 -0
  319. package/dist/wallets/stellar.js +21 -20
  320. package/dist/wallets/stellar.js.map +1 -0
  321. package/dist/wallets/types.cjs +1 -1
  322. package/dist/wallets/types.cjs.map +1 -0
  323. package/dist/wallets/types.js +1 -0
  324. package/dist/wallets/types.js.map +1 -0
  325. package/dist/wallets/wallet-factory.cjs +30 -29
  326. package/dist/wallets/wallet-factory.cjs.map +1 -0
  327. package/dist/wallets/wallet-factory.js +29 -28
  328. package/dist/wallets/wallet-factory.js.map +1 -0
  329. package/dist/wallets/wallet.cjs +21 -20
  330. package/dist/wallets/wallet.cjs.map +1 -0
  331. package/dist/wallets/wallet.js +20 -19
  332. package/dist/wallets/wallet.js.map +1 -0
  333. package/package.json +47 -50
  334. package/dist/chunk-455NK5LB.js +0 -0
  335. package/dist/chunk-5IFDVB4Y.js +0 -0
  336. package/dist/chunk-6HXIZLEQ.cjs +0 -1
  337. package/dist/chunk-CCIGWTAO.cjs +0 -1
  338. package/dist/chunk-ECAM5KTH.cjs +0 -1
  339. package/dist/chunk-KBJA7JDT.js +0 -0
  340. package/dist/chunk-LONKAMXJ.cjs +0 -58
  341. package/dist/chunk-PO6S7UR3.cjs +0 -1
  342. package/dist/chunk-XPMCPXI3.cjs +0 -1
  343. package/dist/chunk-YDZRBHS3.js +0 -0
  344. package/dist/chunk-YMRXMNME.js +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  NonCustodialSigner
3
- } from "./chunk-3KEY2NLC.js";
3
+ } from "./chunk-UAFXNE4C.js";
4
4
  import {
5
5
  validateChainForEnvironment
6
- } from "./chunk-FGGGBNUF.js";
6
+ } from "./chunk-GNU6RIKU.js";
7
7
  import {
8
8
  InvalidSignerError,
9
9
  SignatureFailedError,
@@ -18,13 +18,13 @@ import {
18
18
  TransactionSendingFailedError,
19
19
  WalletNotAvailableError,
20
20
  WalletTypeNotSupportedError
21
- } from "./chunk-SGINWAB6.js";
21
+ } from "./chunk-36C7SCPK.js";
22
22
  import {
23
23
  walletsLogger
24
- } from "./chunk-DZ6MCPD3.js";
24
+ } from "./chunk-JXXXM7AV.js";
25
25
  import {
26
26
  STATUS_POLLING_INTERVAL_MS
27
- } from "./chunk-NPTNXK47.js";
27
+ } from "./chunk-7PHIXK4Q.js";
28
28
  import {
29
29
  __async,
30
30
  __decorateClass,
@@ -33,7 +33,7 @@ import {
33
33
  __privateSet,
34
34
  __spreadProps,
35
35
  __spreadValues
36
- } from "./chunk-ASE2FXWP.js";
36
+ } from "./chunk-JF4JR5QQ.js";
37
37
 
38
38
  // src/wallets/wallet.ts
39
39
  import { isValidAddress, WithLoggerContext } from "@crossmint/common-sdk-base";
@@ -306,6 +306,7 @@ var Wallet = class {
306
306
  transactionId: params.transactionId,
307
307
  signatureId: params.signatureId
308
308
  });
309
+ yield this.preAuthIfNeeded();
309
310
  if (params.transactionId != null) {
310
311
  const result = yield this.approveTransactionAndWait(
311
312
  params.transactionId,
@@ -739,3 +740,4 @@ function toTokenLocator(token, chain) {
739
740
  export {
740
741
  Wallet
741
742
  };
743
+ //# sourceMappingURL=chunk-J6AO2ZDU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/wallets/wallet.ts"],"sourcesContent":["import { isValidAddress, WithLoggerContext } from \"@crossmint/common-sdk-base\";\nimport type {\n Activity,\n ApiClient,\n GetSignatureResponse,\n GetBalanceSuccessResponse,\n WalletLocator,\n RegisterSignerPasskeyParams,\n GetTransactionSuccessResponse,\n GetTransactionsResponse,\n FundWalletResponse,\n} from \"../api\";\nimport type {\n AddDelegatedSignerOptions,\n AddDelegatedSignerReturnType,\n DelegatedSigner,\n WalletOptions,\n UserLocator,\n Transaction,\n Balances,\n TokenBalance,\n ApproveParams,\n ApproveOptions,\n Approval,\n Signature,\n ApproveResult,\n PrepareOnly,\n SendTokenTransactionOptions,\n} from \"./types\";\nimport {\n InvalidSignerError,\n SignatureFailedError,\n SignatureNotAvailableError,\n SigningFailedError,\n TransactionAwaitingApprovalError,\n TransactionConfirmationTimeoutError,\n TransactionFailedError,\n TransactionHashNotFoundError,\n TransactionNotAvailableError,\n TransactionNotCreatedError,\n TransactionSendingFailedError,\n WalletNotAvailableError,\n WalletTypeNotSupportedError,\n} from \"../utils/errors\";\nimport { STATUS_POLLING_INTERVAL_MS } from \"../utils/constants\";\nimport { type Chain, validateChainForEnvironment } from \"../chains/chains\";\nimport type { Signer } from \"../signers/types\";\nimport { NonCustodialSigner } from \"../signers/non-custodial\";\nimport { walletsLogger } from \"../logger\";\n\ntype WalletContructorType<C extends Chain> = {\n chain: C;\n address: string;\n owner?: string;\n alias?: string;\n signer: Signer;\n options?: WalletOptions;\n};\n\nexport class Wallet<C extends Chain> {\n chain: C;\n address: string;\n owner?: string;\n alias?: string;\n signer: Signer;\n #options?: WalletOptions;\n #apiClient: ApiClient;\n\n constructor(args: WalletContructorType<C>, apiClient: ApiClient) {\n const { chain, address, owner, signer, options, alias } = args;\n this.#apiClient = apiClient;\n this.chain = chain;\n this.address = address;\n this.owner = owner;\n this.signer = signer;\n this.#options = options;\n this.alias = alias;\n }\n\n protected static getApiClient<C extends Chain>(wallet: Wallet<C>): ApiClient {\n return wallet.apiClient;\n }\n\n protected static getOptions<C extends Chain>(wallet: Wallet<C>): WalletOptions | undefined {\n return wallet.options;\n }\n\n protected get apiClient(): ApiClient {\n return this.#apiClient;\n }\n\n protected get options(): WalletOptions | undefined {\n return this.#options;\n }\n\n /**\n * Get the API client\n * @returns The API client\n * @experimental This API is experimental and may change in the future\n */\n public experimental_apiClient(): ApiClient {\n return this.#apiClient;\n }\n\n /**\n * Get the wallet balances - always includes USDC and native token (ETH/SOL)\n * @param {string[]} tokens - Additional tokens to request (optional: native token and usdc are always included)\n * @returns {Promise<Balances<C>>} The balances returns nativeToken, usdc, tokens\n * @throws {Error} If the balances cannot be retrieved\n */\n @WithLoggerContext({\n logger: walletsLogger,\n methodName: \"wallet.balances\",\n buildContext(thisArg: Wallet<Chain>) {\n return { chain: thisArg.chain, address: thisArg.address };\n },\n })\n public async balances(tokens?: string[]): Promise<Balances<C>> {\n walletsLogger.info(\"wallet.balances.start\");\n\n const resolvedChain = this.resolveChainForEnvironment();\n\n let nativeToken: string;\n switch (this.chain) {\n case \"solana\":\n nativeToken = \"sol\";\n break;\n case \"stellar\":\n nativeToken = \"xlm\";\n break;\n default:\n nativeToken = \"eth\";\n break;\n }\n const allTokens = [nativeToken, \"usdc\", ...(tokens ?? [])];\n\n const response = await this.#apiClient.getBalance(this.address, {\n chains: [resolvedChain],\n tokens: allTokens,\n });\n\n if (\"error\" in response) {\n walletsLogger.error(\"wallet.balances.error\", { error: response });\n throw new Error(`Failed to get balances for wallet: ${JSON.stringify(response.message)}`);\n }\n\n walletsLogger.info(\"wallet.balances.success\");\n return this.transformBalanceResponse(response, nativeToken, tokens);\n }\n\n /**\n * Funds the wallet with Crossmint's stablecoin (USDXM).\n *\n * **Note:** This method is only available in staging environments and exclusively supports USDXM tokens.\n * It cannot be used in production environments.\n * @param amount - The amount of USDXM to fund the wallet with\n * @param chain - Optional chain to fund on. If not provided, uses the wallet's default chain\n * @returns The funding response\n * @throws {Error} If the funding operation fails or if called in a production environment\n */\n @WithLoggerContext({\n logger: walletsLogger,\n methodName: \"wallet.stagingFund\",\n buildContext(thisArg: Wallet<Chain>) {\n return { chain: thisArg.chain, address: thisArg.address };\n },\n })\n public async stagingFund(amount: number, chain?: Chain): Promise<FundWalletResponse> {\n walletsLogger.info(\"wallet.stagingFund.start\", {\n amount,\n chain: chain ?? this.chain,\n });\n\n const response = await this.apiClient.fundWallet(this.address, {\n amount,\n token: \"usdxm\",\n // Type casting is necessary here due to a type mismatch between our DTO schema and server-side types\n // (which only contains 10 testnet chains. Variable in main server is called EvmUsdcEnabledTestnetChains for reference).\n chain: chain ?? (this.chain as any),\n });\n if (\"error\" in response) {\n walletsLogger.error(\"wallet.stagingFund.error\", {\n error: response,\n });\n throw new Error(`Failed to fund wallet: ${JSON.stringify(response.message)}`);\n }\n walletsLogger.info(\"wallet.stagingFund.success\");\n return response;\n }\n\n /**\n * Transform the API balance response to the new structure\n * @private\n */\n private transformBalanceResponse(\n apiResponse: GetBalanceSuccessResponse,\n nativeTokenSymbol: TokenBalance[\"symbol\"],\n requestedTokens?: string[]\n ): Balances<C> {\n const transformTokenBalance = (tokenData: GetBalanceSuccessResponse[number]): TokenBalance<C> => {\n const chainData = tokenData.chains?.[this.chain];\n\n let chainSpecificField = {};\n if (this.chain === \"solana\" && chainData != null && \"mintHash\" in chainData) {\n chainSpecificField = { mintHash: chainData.mintHash };\n } else if (this.chain === \"stellar\" && chainData != null && \"contractId\" in chainData) {\n chainSpecificField = { contractId: chainData.contractId };\n } else if (chainData != null && \"contractAddress\" in chainData) {\n chainSpecificField = {\n contractAddress: chainData.contractAddress,\n };\n }\n\n return {\n symbol: tokenData.symbol ?? \"\",\n name: tokenData.name ?? \"\",\n amount: tokenData.amount ?? \"0\",\n decimals: tokenData.decimals,\n rawAmount: tokenData.rawAmount ?? \"0\",\n ...chainSpecificField,\n } as TokenBalance<C>;\n };\n\n const nativeTokenData = apiResponse.find((token) => token.symbol === nativeTokenSymbol);\n const usdcData = apiResponse.find((token) => token.symbol === \"usdc\");\n\n const otherTokens = apiResponse.filter((token) => {\n return token.symbol !== nativeTokenSymbol && token.symbol !== \"usdc\";\n });\n\n const createDefaultToken = (symbol: TokenBalance[\"symbol\"]): TokenBalance<C> => {\n const baseToken = {\n symbol,\n name: symbol,\n amount: \"0\",\n decimals: 0,\n rawAmount: \"0\",\n };\n\n let chainSpecificField = {};\n if (this.chain === \"solana\") {\n chainSpecificField = { mintHash: undefined };\n } else if (this.chain === \"stellar\") {\n chainSpecificField = { contractId: undefined };\n } else {\n chainSpecificField = { contractAddress: undefined };\n }\n\n return {\n ...baseToken,\n ...chainSpecificField,\n } as TokenBalance<C>;\n };\n\n return {\n nativeToken:\n nativeTokenData != null\n ? transformTokenBalance(nativeTokenData)\n : createDefaultToken(nativeTokenSymbol),\n usdc: usdcData != null ? transformTokenBalance(usdcData) : createDefaultToken(\"usdc\"),\n tokens: otherTokens.map(transformTokenBalance),\n };\n }\n\n /**\n * Get the wallet NFTs\n * @param {Object} params - The parameters\n * @param {number} params.perPage - The number of NFTs per page\n * @param {number} params.page - The page number\n * @param {WalletLocator} [params.locator] - The locator\n * @returns The NFTs\n * @experimental This API is experimental and may change in the future\n */\n public async experimental_nfts(params: { perPage: number; page: number }) {\n return await this.#apiClient.experimental_getNfts({\n ...params,\n chain: this.chain,\n address: this.address,\n });\n }\n\n /**\n * Get the wallet transactions\n * @returns The transactions\n * @throws {Error} If the transactions cannot be retrieved\n */\n public async experimental_transactions(): Promise<GetTransactionsResponse> {\n const response = await this.#apiClient.getTransactions(this.walletLocator);\n if (\"error\" in response) {\n throw new Error(`Failed to get transactions: ${JSON.stringify(response.message)}`);\n }\n return response;\n }\n\n /**\n * Get a transaction by id\n * @returns The transaction\n * @throws {Error} If the transaction cannot be retrieved\n */\n public async experimental_transaction(transactionId: string): Promise<GetTransactionSuccessResponse> {\n const response = await this.#apiClient.getTransaction(this.walletLocator, transactionId);\n if (\"error\" in response) {\n throw new Error(`Failed to get transaction: ${JSON.stringify(response.error)}`);\n }\n return response;\n }\n\n /**\n * Get the wallet activity\n * @returns The activity\n * @experimental This API is experimental and may change in the future\n * @throws {Error} If the activity cannot be retrieved\n */\n public async experimental_activity(): Promise<Activity> {\n const resolvedChain = this.resolveChainForEnvironment();\n const response = await this.apiClient.experimental_activity(this.walletLocator, { chain: resolvedChain });\n if (\"error\" in response) {\n throw new Error(`Failed to get activity: ${JSON.stringify(response.message)}`);\n }\n return response;\n }\n\n /**\n * Send a token to a wallet or user locator\n * @param {string | UserLocator} to - The recipient (address or user locator)\n * @param {string} token - The token (address or currency symbol)\n * @param {string} amount - The amount to send (decimal units)\n * @param {TransactionInputOptions} options - The options for the transaction\n * @returns {Transaction} The transaction\n */\n @WithLoggerContext({\n logger: walletsLogger,\n methodName: \"wallet.send\",\n buildContext(thisArg: Wallet<Chain>) {\n return { chain: thisArg.chain, address: thisArg.address };\n },\n })\n public async send<T extends SendTokenTransactionOptions | undefined = undefined>(\n to: string | UserLocator,\n token: string,\n amount: string,\n options?: T\n ): Promise<Transaction<T extends PrepareOnly<true> ? true : false>> {\n const resolvedChain = this.resolveChainForEnvironment();\n const recipient = toRecipientLocator(to);\n const tokenLocator = toTokenLocator(token, resolvedChain);\n\n walletsLogger.info(\"wallet.send.start\", {\n recipient,\n token: tokenLocator,\n amount,\n ...(options?.transactionType != null ? { transactionType: options.transactionType } : {}),\n });\n\n await this.preAuthIfNeeded();\n const sendParams = {\n recipient,\n amount,\n ...(options?.experimental_signer != null ? { signer: options.experimental_signer } : {}),\n ...(options?.transactionType != null ? { transactionType: options.transactionType } : {}),\n };\n const transactionCreationResponse = await this.#apiClient.send(this.walletLocator, tokenLocator, sendParams);\n\n if (\"message\" in transactionCreationResponse) {\n walletsLogger.error(\"wallet.send.error\", {\n error: transactionCreationResponse,\n });\n throw new TransactionNotCreatedError(\n `Failed to send token: ${JSON.stringify(transactionCreationResponse.message)}`\n );\n }\n\n if (options?.experimental_prepareOnly) {\n walletsLogger.info(\"wallet.send.prepared\", {\n transactionId: transactionCreationResponse.id,\n });\n return {\n hash: undefined,\n explorerLink: undefined,\n transactionId: transactionCreationResponse.id,\n } as Transaction<T extends PrepareOnly<true> ? true : false>;\n }\n\n const result = await this.approveTransactionAndWait(transactionCreationResponse.id);\n walletsLogger.info(\"wallet.send.success\", {\n transactionId: transactionCreationResponse.id,\n hash: result.hash,\n });\n return result;\n }\n\n /**\n * @deprecated Use `approve` instead.\n * Approve a transaction\n * @param params - The parameters\n * @param params.transactionId - The transaction id\n * @param params.options - The options for the transaction\n * @param params.options.experimental_approval - The approval\n * @param params.options.additionalSigners - The additional signers\n * @returns The transaction\n */\n // TODO: Remove this method in the next major version\n public async approveTransaction(params: ApproveParams) {\n console.warn(\n \"approveTransaction is deprecated. Use approve instead. This method will be removed in the next major version.\"\n );\n return await this.approve(params);\n }\n\n /**\n * Approve a transaction or signature\n * @param params - The parameters\n * @param params.transactionId - The transaction id or\n * @param params.signatureId - The signature id\n * @param params.options - The options for the transaction\n * @param params.options.experimental_approval - The approval\n * @param params.options.additionalSigners - The additional signers\n * @returns The transaction or signature\n */\n @WithLoggerContext({\n logger: walletsLogger,\n methodName: \"wallet.approve\",\n buildContext(thisArg: Wallet<Chain>) {\n return { chain: thisArg.chain, address: thisArg.address };\n },\n })\n public async approve<T extends ApproveParams>(params: T): Promise<ApproveResult<T>> {\n walletsLogger.info(\"wallet.approve.start\", {\n transactionId: params.transactionId,\n signatureId: params.signatureId,\n });\n\n await this.preAuthIfNeeded();\n\n if (params.transactionId != null) {\n const result = (await this.approveTransactionAndWait(\n params.transactionId,\n params.options\n )) as ApproveResult<T>;\n walletsLogger.info(\"wallet.approve.success\", {\n transactionId: params.transactionId,\n });\n return result;\n }\n if (params.signatureId != null) {\n const result = (await this.approveSignatureAndWait(params.signatureId, params.options)) as ApproveResult<T>;\n walletsLogger.info(\"wallet.approve.success\", {\n signatureId: params.signatureId,\n });\n return result;\n }\n walletsLogger.error(\"wallet.approve.error\", {\n error: \"Either transactionId or signatureId must be provided\",\n });\n throw new Error(\"Either transactionId or signatureId must be provided\");\n }\n\n /**\n * Add a delegated signer to the wallet\n * @param signer - The signer. For Solana, it must be a string. For EVM, it can be a string or a passkey.\n * @param options - The options for the operation\n * @param options.experimental_prepareOnly - If true, returns the transaction/signature ID without auto-approving\n */\n @WithLoggerContext({\n logger: walletsLogger,\n methodName: \"wallet.addDelegatedSigner\",\n buildContext(thisArg: Wallet<Chain>) {\n return { chain: thisArg.chain, address: thisArg.address };\n },\n })\n public async addDelegatedSigner<T extends AddDelegatedSignerOptions | undefined = undefined>(params: {\n signer: string | RegisterSignerPasskeyParams;\n options?: T;\n }): Promise<T extends PrepareOnly<true> ? AddDelegatedSignerReturnType<C> : void> {\n walletsLogger.info(\"wallet.addDelegatedSigner.start\");\n\n const response = await this.#apiClient.registerSigner(this.walletLocator, {\n signer: params.signer,\n chain: this.chain === \"solana\" || this.chain === \"stellar\" ? undefined : this.chain,\n });\n\n if (\"error\" in response) {\n walletsLogger.error(\"wallet.addDelegatedSigner.error\", {\n error: response,\n });\n throw new Error(`Failed to register signer: ${JSON.stringify(response.message)}`);\n }\n\n if (this.chain === \"solana\" || this.chain === \"stellar\") {\n if (!(\"transaction\" in response) || response.transaction == null) {\n walletsLogger.error(\"wallet.addDelegatedSigner.error\", {\n error: \"Expected transaction in response for Solana/Stellar chain\",\n });\n throw new Error(\"Expected transaction in response for Solana/Stellar chain\");\n }\n\n const transactionId = response.transaction.id;\n\n if (params.options?.experimental_prepareOnly) {\n walletsLogger.info(\"wallet.addDelegatedSigner.prepared\", {\n transactionId,\n });\n return { transactionId } as any;\n }\n\n await this.approveTransactionAndWait(transactionId);\n walletsLogger.info(\"wallet.addDelegatedSigner.success\", {\n transactionId,\n });\n return undefined as any;\n }\n\n if (!(\"chains\" in response)) {\n walletsLogger.error(\"wallet.addDelegatedSigner.error\", {\n error: \"Expected chains in response for EVM chain\",\n });\n throw new Error(\"Expected chains in response for EVM chain\");\n }\n\n const chainResponse = response.chains?.[this.chain];\n\n if (params.options?.experimental_prepareOnly) {\n const signatureId = chainResponse?.status !== \"success\" ? chainResponse?.id : undefined;\n walletsLogger.info(\"wallet.addDelegatedSigner.prepared\", {\n signatureId,\n });\n return { signatureId } as any;\n }\n\n if (chainResponse?.status === \"awaiting-approval\") {\n await this.approveSignatureAndWait(chainResponse.id);\n walletsLogger.info(\"wallet.addDelegatedSigner.success\", {\n signatureId: chainResponse.id,\n });\n return undefined as any;\n }\n if (chainResponse?.status === \"pending\") {\n await this.waitForSignature(chainResponse.id);\n walletsLogger.info(\"wallet.addDelegatedSigner.success\", {\n signatureId: chainResponse.id,\n });\n return undefined as any;\n }\n\n walletsLogger.info(\"wallet.addDelegatedSigner.success\");\n return undefined as any;\n }\n\n /**\n * List the delegated signers for this wallet.\n * @returns {Promise<DelegatedSigner[]>} The delegated signers\n */\n @WithLoggerContext({\n logger: walletsLogger,\n methodName: \"wallet.delegatedSigners\",\n buildContext(thisArg: Wallet<Chain>) {\n return { chain: thisArg.chain, address: thisArg.address };\n },\n })\n public async delegatedSigners(): Promise<DelegatedSigner[]> {\n walletsLogger.info(\"wallet.delegatedSigners.start\");\n\n const walletResponse = await this.#apiClient.getWallet(this.walletLocator);\n if (\"error\" in walletResponse) {\n walletsLogger.error(\"wallet.delegatedSigners.error\", {\n error: walletResponse,\n });\n throw new WalletNotAvailableError(JSON.stringify(walletResponse));\n }\n\n if (\n walletResponse.type !== \"smart\" ||\n (walletResponse.chainType !== \"evm\" &&\n walletResponse.chainType !== \"solana\" &&\n walletResponse.chainType !== \"stellar\")\n ) {\n walletsLogger.error(\"wallet.delegatedSigners.error\", {\n error: `Wallet type ${walletResponse.type} not supported`,\n });\n throw new WalletTypeNotSupportedError(`Wallet type ${walletResponse.type} not supported`);\n }\n\n // Map wallet-type to simply wallet\n const signers =\n walletResponse?.config?.delegatedSigners?.map((signer) => {\n const colonIndex = signer.locator.indexOf(\":\");\n // If there's a colon, keep everything after it; otherwise treat the whole string as \"rest\"\n const address = colonIndex >= 0 ? signer.locator.slice(colonIndex + 1) : signer.locator;\n return {\n signer: `external-wallet:${address}`,\n };\n }) ?? [];\n\n walletsLogger.info(\"wallet.delegatedSigners.success\", {\n count: signers.length,\n });\n return signers;\n }\n\n protected get walletLocator(): WalletLocator {\n if (this.#apiClient.isServerSide) {\n return this.address;\n } else {\n let baseLocator: string;\n switch (this.chain) {\n case \"stellar\":\n baseLocator = `me:stellar:smart`;\n break;\n case \"solana\":\n baseLocator = `me:solana:smart`;\n break;\n default:\n baseLocator = `me:evm:smart`;\n break;\n }\n const aliasLocatorPart = this.alias != null ? `:alias:${this.alias}` : \"\";\n return baseLocator + aliasLocatorPart;\n }\n }\n\n protected async preAuthIfNeeded(): Promise<void> {\n if (this.signer instanceof NonCustodialSigner) {\n await this.signer.ensureAuthenticated();\n }\n }\n\n protected get isSolanaWallet(): boolean {\n return this.chain === \"solana\";\n }\n\n protected resolveChainForEnvironment(): C {\n const resolvedChain = validateChainForEnvironment(this.chain, this.#apiClient.environment);\n\n if (resolvedChain !== this.chain) {\n this.chain = resolvedChain as C;\n }\n\n return this.chain;\n }\n\n protected async approveTransactionAndWait(transactionId: string, options?: ApproveOptions) {\n await this.approveTransactionInternal(transactionId, options);\n await this.sleep(1_000); // Rule of thumb: tx won't be confirmed in less than 1 second\n return await this.waitForTransaction(transactionId);\n }\n\n protected async approveSignatureAndWait(signatureId: string, options?: ApproveOptions) {\n const signatureResponse = await this.approveSignatureInternal(signatureId, options);\n\n if (\n !(\"error\" in signatureResponse) &&\n signatureResponse.status === \"success\" &&\n signatureResponse.outputSignature != null\n ) {\n return {\n signature: signatureResponse.outputSignature,\n signatureId,\n };\n }\n\n await this.sleep(1_000);\n return await this.waitForSignature(signatureId);\n }\n\n protected async approveSignatureInternal(signatureId: string, options?: ApproveOptions) {\n if (this.isSolanaWallet) {\n throw new Error(\"Approving signatures is only supported for EVM smart wallets\");\n }\n\n const signature = await this.#apiClient.getSignature(this.walletLocator, signatureId);\n\n if (\"error\" in signature) {\n throw new SignatureNotAvailableError(JSON.stringify(signature));\n }\n\n // API key signers approve automatically\n if (this.signer.type === \"api-key\") {\n return signature;\n }\n\n // If an external signature is provided, use it to approve the transaction\n if (options?.experimental_approval != null) {\n const approvals = [options.experimental_approval];\n\n return await this.executeApproveSignatureWithErrorHandling(signatureId, approvals);\n }\n\n const pendingApprovals = signature.approvals?.pending;\n\n if (pendingApprovals == null) {\n return signature;\n }\n\n const signers = [...(options?.additionalSigners ?? []), this.signer];\n\n const approvals = await Promise.all(\n pendingApprovals.map(async (pendingApproval) => {\n const signer = signers.find((s) => s.locator() === pendingApproval.signer.locator);\n if (signer == null) {\n throw new InvalidSignerError(`Signer ${pendingApproval.signer} not found in pending approvals`);\n }\n\n const signature = await signer.signMessage(pendingApproval.message);\n return {\n ...signature,\n signer: signer.locator(),\n };\n })\n );\n\n return await this.executeApproveSignatureWithErrorHandling(signatureId, approvals);\n }\n\n protected async approveTransactionInternal(transactionId: string, options?: ApproveOptions) {\n const transaction = await this.#apiClient.getTransaction(this.walletLocator, transactionId);\n\n if (\"error\" in transaction) {\n throw new TransactionNotAvailableError(JSON.stringify(transaction));\n }\n\n await this.#options?.experimental_callbacks?.onTransactionStart?.();\n\n // API key signers approve automatically\n if (this.signer.type === \"api-key\") {\n return transaction;\n }\n\n // If an external signature is provided, use it to approve the transaction\n if (options?.experimental_approval != null) {\n const approvals = [options.experimental_approval];\n\n return await this.executeApproveTransactionWithErrorHandling(transactionId, approvals);\n }\n\n const pendingApprovals = transaction.approvals?.pending;\n\n if (pendingApprovals == null) {\n return transaction;\n }\n\n const signers = [...(options?.additionalSigners ?? []), this.signer];\n\n const approvals = await Promise.all(\n pendingApprovals.map(async (pendingApproval) => {\n const signer = signers.find((s) => s.locator() === pendingApproval.signer.locator);\n if (signer == null) {\n throw new InvalidSignerError(`Signer ${pendingApproval.signer} not found in pending approvals`);\n }\n\n const transactionToSign =\n transaction.chainType === \"solana\" && \"transaction\" in transaction.onChain\n ? (transaction.onChain.transaction as string) // in Solana, the transaction is a string\n : pendingApproval.message;\n\n const signature = await signer.signTransaction(transactionToSign);\n return {\n ...signature,\n signer: signer.locator(),\n };\n })\n );\n\n return await this.executeApproveTransactionWithErrorHandling(transactionId, approvals);\n }\n\n private async executeApproveTransactionWithErrorHandling(transactionId: string, approvals: Approval[]) {\n walletsLogger.info(\"wallet.approve: submitting approval to API\", { transactionId });\n const approvedTransaction = await this.#apiClient.approveTransaction(this.walletLocator, transactionId, {\n approvals,\n });\n\n if (approvedTransaction.error) {\n throw new TransactionFailedError(JSON.stringify(approvedTransaction));\n }\n\n return approvedTransaction;\n }\n\n private async executeApproveSignatureWithErrorHandling(signatureId: string, approvals: Approval[]) {\n const approvedSignature = await this.#apiClient.approveSignature(this.walletLocator, signatureId, {\n approvals,\n });\n\n if (approvedSignature.error) {\n throw new SignatureFailedError(JSON.stringify(approvedSignature));\n }\n\n return approvedSignature;\n }\n\n protected async waitForSignature(signatureId: string): Promise<Signature<false>> {\n let signatureResponse: GetSignatureResponse | null = null;\n\n do {\n await new Promise((resolve) => setTimeout(resolve, STATUS_POLLING_INTERVAL_MS));\n signatureResponse = await this.#apiClient.getSignature(this.walletLocator, signatureId);\n if (\"error\" in signatureResponse) {\n throw new SignatureNotAvailableError(JSON.stringify(signatureResponse));\n }\n } while (signatureResponse === null || signatureResponse.status === \"pending\");\n\n if (signatureResponse.status === \"failed\") {\n throw new SigningFailedError(\"Signature signing failed\");\n }\n\n if (!signatureResponse.outputSignature) {\n throw new SignatureNotAvailableError(\"Signature not available\");\n }\n\n return {\n signature: signatureResponse.outputSignature,\n signatureId,\n };\n }\n\n protected async waitForTransaction(\n transactionId: string,\n timeoutMs = 60_000,\n {\n backoffMultiplier = 1.1,\n maxBackoffMs = 2_000,\n initialBackoffMs = STATUS_POLLING_INTERVAL_MS,\n }: {\n initialBackoffMs?: number;\n backoffMultiplier?: number;\n maxBackoffMs?: number;\n } = {}\n ): Promise<Transaction<false>> {\n walletsLogger.info(\"wallet.approve: waiting for transaction confirmation\", { transactionId, timeoutMs });\n const startTime = Date.now();\n let transactionResponse;\n\n do {\n if (Date.now() - startTime > timeoutMs) {\n const error = new TransactionConfirmationTimeoutError(\"Transaction confirmation timeout\");\n throw error;\n }\n\n transactionResponse = await this.#apiClient.getTransaction(this.walletLocator, transactionId);\n if (transactionResponse.error) {\n throw new TransactionNotAvailableError(JSON.stringify(transactionResponse));\n }\n // Wait for the polling interval\n await this.sleep(initialBackoffMs);\n initialBackoffMs = Math.min(initialBackoffMs * backoffMultiplier, maxBackoffMs);\n } while (transactionResponse.status === \"pending\");\n\n if (transactionResponse.status === \"failed\") {\n const error = new TransactionSendingFailedError(\n `Transaction sending failed: ${JSON.stringify(transactionResponse.error)}`\n );\n throw error;\n }\n\n if (transactionResponse.status === \"awaiting-approval\") {\n const error = new TransactionAwaitingApprovalError(\n `Transaction is awaiting approval. Please submit required approvals before waiting for completion.`\n );\n throw error;\n }\n\n const transactionHash = transactionResponse.onChain.txId;\n if (transactionHash == null) {\n const error = new TransactionHashNotFoundError(\"Transaction hash not found on transaction response\");\n throw error;\n }\n\n return {\n hash: transactionHash,\n explorerLink: transactionResponse.onChain.explorerLink ?? \"\",\n transactionId: transactionResponse.id,\n };\n }\n\n protected async sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n\nfunction toRecipientLocator(to: string | UserLocator): string {\n if (typeof to === \"string\") {\n return to;\n }\n if (\"email\" in to) {\n return `email:${to.email}`;\n }\n if (\"x\" in to) {\n return `x:${to.x}`;\n }\n if (\"twitter\" in to) {\n return `twitter:${to.twitter}`;\n }\n if (\"phone\" in to) {\n return `phoneNumber:${to.phone}`;\n }\n if (\"userId\" in to) {\n return `userId:${to.userId}`;\n }\n throw new Error(\"Invalid recipient locator\");\n}\n\nfunction toTokenLocator(token: string, chain: string): string {\n if (isValidAddress(token)) {\n return `${chain}:${token}`;\n }\n // Otherwise, treat as currency symbol (lowercase)\n return `${chain}:${token.toLowerCase()}`;\n}\n"],"mappings":"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","names":["approvals","signature"]}
@@ -63,3 +63,4 @@ export {
63
63
  __privateSet,
64
64
  __async
65
65
  };
66
+ //# sourceMappingURL=chunk-JF4JR5QQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __async
3
- } from "./chunk-ASE2FXWP.js";
3
+ } from "./chunk-JF4JR5QQ.js";
4
4
 
5
5
  // src/signers/solana-api-key.ts
6
6
  var SolanaApiKeySigner = class {
@@ -34,3 +34,4 @@ var SolanaApiKeySigner = class {
34
34
  export {
35
35
  SolanaApiKeySigner
36
36
  };
37
+ //# sourceMappingURL=chunk-JMRG565N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signers/solana-api-key.ts"],"sourcesContent":["import type { ApiKeyInternalSignerConfig, Signer } from \"./types\";\n\nexport class SolanaApiKeySigner implements Signer {\n type = \"api-key\" as const;\n\n constructor(private readonly config: ApiKeyInternalSignerConfig) {}\n\n locator() {\n return this.config.locator;\n }\n\n async signMessage() {\n return await Promise.reject(\n new Error(\n \"API key signers do not support direct message signing - signatures are handled automatically by the backend\"\n )\n );\n }\n async signTransaction() {\n return await Promise.reject(\n new Error(\n \"API key signers do not support direct transaction signing - transaction are handled automatically by the backend\"\n )\n );\n }\n}\n"],"mappings":";;;;;AAEO,IAAM,qBAAN,MAA2C;AAAA,EAG9C,YAA6B,QAAoC;AAApC;AAF7B,gBAAO;AAAA,EAE2D;AAAA,EAElE,UAAU;AACN,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEM,cAAc;AAAA;AAChB,aAAO,MAAM,QAAQ;AAAA,QACjB,IAAI;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA;AAAA,EACM,kBAAkB;AAAA;AACpB,aAAO,MAAM,QAAQ;AAAA,QACjB,IAAI;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA;AACJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SDK_NAME,
3
3
  SDK_VERSION
4
- } from "./chunk-NPTNXK47.js";
4
+ } from "./chunk-7PHIXK4Q.js";
5
5
 
6
6
  // src/logger/init.ts
7
7
  import {
@@ -50,3 +50,4 @@ export {
50
50
  walletsLogger,
51
51
  initWalletsLogger
52
52
  };
53
+ //# sourceMappingURL=chunk-JXXXM7AV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger/init.ts"],"sourcesContent":["import {\n SdkLogger,\n BrowserDatadogSink,\n detectPlatform,\n validateAPIKey,\n ServerDatadogSink,\n} from \"@crossmint/common-sdk-base\";\nimport { SDK_NAME, SDK_VERSION } from \"../utils/constants\";\n\n/**\n * Package-specific logger instance for the wallets SDK\n */\nexport const walletsLogger = new SdkLogger();\n\n/**\n * Initialize the SDK logger for the wallets SDK\n * Should be called once when the SDK is initialized\n * Automatically detects the platform and environment from API key\n * @param apiKey - Optional API key to determine environment (development/staging/production)\n */\nexport function initWalletsLogger(apiKey: string): void {\n const platform = detectPlatform();\n const validationResult = validateAPIKey(apiKey);\n if (!validationResult.isValid) {\n throw new Error(`Invalid API key: ${validationResult.message}`);\n }\n const { environment, projectId } = validationResult;\n // Initialize the package-specific logger instance with package context\n walletsLogger.init({\n packageName: SDK_NAME,\n packageVersion: SDK_VERSION,\n environment,\n projectId,\n platform,\n });\n\n // Add platform-specific Datadog sink\n switch (platform) {\n case \"browser\": {\n // Create HTTP-based Datadog sink that sends logs directly via telemetry proxy\n // This bypasses the Datadog browser SDK entirely, ensuring isolation\n const sink = new BrowserDatadogSink(environment);\n walletsLogger.addSink(sink);\n break;\n }\n case \"react-native\": {\n // React Native logger initialization is handled by @crossmint/client-sdk-react-native-ui\n // This package only initializes for browser/server to avoid bundling React Native dependencies\n // The React Native UI package will initialize the logger with the appropriate Datadog sink\n break;\n }\n case \"server\": {\n const sink = new ServerDatadogSink(environment);\n walletsLogger.addSink(sink);\n break;\n }\n default: {\n // Unknown platform - only use console sink\n break;\n }\n }\n}\n"],"mappings":";;;;;;AAAA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAMA,IAAM,gBAAgB,IAAI,UAAU;AAQpC,SAAS,kBAAkB,QAAsB;AACpD,QAAM,WAAW,eAAe;AAChC,QAAM,mBAAmB,eAAe,MAAM;AAC9C,MAAI,CAAC,iBAAiB,SAAS;AAC3B,UAAM,IAAI,MAAM,oBAAoB,iBAAiB,OAAO,EAAE;AAAA,EAClE;AACA,QAAM,EAAE,aAAa,UAAU,IAAI;AAEnC,gBAAc,KAAK;AAAA,IACf,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAGD,UAAQ,UAAU;AAAA,IACd,KAAK,WAAW;AAGZ,YAAM,OAAO,IAAI,mBAAmB,WAAW;AAC/C,oBAAc,QAAQ,IAAI;AAC1B;AAAA,IACJ;AAAA,IACA,KAAK,gBAAgB;AAIjB;AAAA,IACJ;AAAA,IACA,KAAK,UAAU;AACX,YAAM,OAAO,IAAI,kBAAkB,WAAW;AAC9C,oBAAc,QAAQ,IAAI;AAC1B;AAAA,IACJ;AAAA,IACA,SAAS;AAEL;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
@@ -7,3 +7,4 @@ var client = _clientfetch.createClient.call(void 0, _clientfetch.createConfig.ca
7
7
 
8
8
 
9
9
  exports.client = client;
10
+ //# sourceMappingURL=chunk-KV7KHODO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/gen/client.gen.ts"],"names":[],"mappings":";AAGA,SAAkE,cAAc,oBAAoB;AAY7F,IAAM,SAAS,aAAa,aAA4B;AAAA,EAC3D,SAAS;AACb,CAAC,CAAC","sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ClientOptions } from './types.gen';\nimport { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from '@hey-api/client-fetch';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions>({\n baseUrl: 'https://staging.crossmint.com/api'\n}));"]}
@@ -1,30 +1,30 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk3ASKCQJNcjs = require('./chunk-3ASKCQJN.cjs');
4
+ var _chunkIZYJJUOEcjs = require('./chunk-IZYJJUOE.cjs');
5
5
 
6
6
 
7
- var _chunkTC6ITDWVcjs = require('./chunk-TC6ITDWV.cjs');
7
+ var _chunkBBUEX3DGcjs = require('./chunk-BBUEX3DG.cjs');
8
8
 
9
9
 
10
- var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
10
+ var _chunkW4VYO3P6cjs = require('./chunk-W4VYO3P6.cjs');
11
11
 
12
12
  // src/signers/non-custodial/ncs-stellar-signer.ts
13
- var StellarNonCustodialSigner = class _StellarNonCustodialSigner extends _chunk3ASKCQJNcjs.NonCustodialSigner {
13
+ var StellarNonCustodialSigner = class _StellarNonCustodialSigner extends _chunkIZYJJUOEcjs.NonCustodialSigner {
14
14
  constructor(config) {
15
15
  super(config);
16
16
  }
17
17
  signMessage() {
18
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
18
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
19
19
  return yield Promise.reject(new Error("signMessage method not implemented for stellar signer"));
20
20
  });
21
21
  }
22
22
  signTransaction(payload) {
23
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
23
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
24
24
  var _a;
25
25
  yield this.handleAuthRequired();
26
26
  const jwt = this.getJwtOrThrow();
27
- _chunkTC6ITDWVcjs.walletsLogger.info("sign: sending request", { keyType: "ed25519" });
27
+ _chunkBBUEX3DGcjs.walletsLogger.info("sign: sending request", { keyType: "ed25519" });
28
28
  const startTime = Date.now();
29
29
  const res = yield (_a = this.config.clientTEEConnection) == null ? void 0 : _a.sendAction({
30
30
  event: "request:sign",
@@ -40,9 +40,9 @@ var StellarNonCustodialSigner = class _StellarNonCustodialSigner extends _chunk3
40
40
  encoding: "base64"
41
41
  }
42
42
  },
43
- options: _chunk3ASKCQJNcjs.DEFAULT_EVENT_OPTIONS
43
+ options: _chunkIZYJJUOEcjs.DEFAULT_EVENT_OPTIONS
44
44
  });
45
- _chunkTC6ITDWVcjs.walletsLogger.info("sign: response received", {
45
+ _chunkBBUEX3DGcjs.walletsLogger.info("sign: response received", {
46
46
  status: res == null ? void 0 : res.status,
47
47
  durationMs: Date.now() - startTime
48
48
  });
@@ -80,3 +80,4 @@ var StellarNonCustodialSigner = class _StellarNonCustodialSigner extends _chunk3
80
80
 
81
81
 
82
82
  exports.StellarNonCustodialSigner = StellarNonCustodialSigner;
83
+ //# sourceMappingURL=chunk-KXXRVRR6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signers/non-custodial/ncs-stellar-signer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIO,IAAM,4BAAN,MAAM,mCAAkC,mBAAmB;AAAA,EAC9D,YAAY,QAA+D;AACvE,UAAM,MAAM;AAAA,EAChB;AAAA,EAEM,cAAc;AAAA;AAChB,aAAO,MAAM,QAAQ,OAAO,IAAI,MAAM,uDAAuD,CAAC;AAAA,IAClG;AAAA;AAAA,EAEM,gBAAgB,SAAiD;AAAA;AAb3E;AAcQ,YAAM,KAAK,mBAAmB;AAC9B,YAAM,MAAM,KAAK,cAAc;AAE/B,oBAAc,KAAK,yBAAyB,EAAE,SAAS,UAAU,CAAC;AAClE,YAAM,YAAY,KAAK,IAAI;AAC3B,YAAM,MAAM,OAAM,UAAK,OAAO,wBAAZ,mBAAiC,WAAW;AAAA,QAC1D,OAAO;AAAA,QACP,eAAe;AAAA,QACf,MAAM;AAAA,UACF,UAAU;AAAA,YACN;AAAA,YACA,QAAQ,KAAK,OAAO,UAAU;AAAA,UAClC;AAAA,UACA,MAAM;AAAA,YACF,SAAS;AAAA,YACT,OAAO;AAAA,YACP,UAAU;AAAA,UACd;AAAA,QACJ;AAAA,QACA,SAAS;AAAA,MACb;AACA,oBAAc,KAAK,2BAA2B;AAAA,QAC1C,QAAQ,2BAAK;AAAA,QACb,YAAY,KAAK,IAAI,IAAI;AAAA,MAC7B,CAAC;AAED,WAAI,2BAAK,YAAW,SAAS;AACzB,cAAM,IAAI,MAAM,IAAI,KAAK;AAAA,MAC7B;AAEA,WAAI,2BAAK,cAAa,MAAM;AACxB,cAAM,IAAI,MAAM,4BAA4B;AAAA,MAChD;AACA,iCAA0B,sBAAsB,IAAI,SAAS;AAC7D,UAAI,IAAI,UAAU,aAAa,UAAU;AACrC,cAAM,IAAI,MAAM,wDAAwD,IAAI,UAAU,QAAQ;AAAA,MAClG;AAEA,aAAO,EAAE,WAAW,IAAI,UAAU,MAAM;AAAA,IAC5C;AAAA;AAAA,EAEA,OAAO,sBAAsB,WAAwE;AACjG,QAAI,aAAa,MAAM;AACnB,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AAEA,QAAI,UAAU,aAAa,YAAY,UAAU,YAAY,aAAa,UAAU,SAAS,MAAM;AAC/F,YAAM,IAAI;AAAA,QACN,4FACI,KAAK,UAAU,SAAS;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEU,oBAA+D;AACrE,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,EACJ;AACJ","sourcesContent":["import type { EmailInternalSignerConfig, PhoneInternalSignerConfig } from \"../types\";\nimport { DEFAULT_EVENT_OPTIONS, NonCustodialSigner } from \"./ncs-signer\";\nimport { walletsLogger } from \"../../logger\";\n\nexport class StellarNonCustodialSigner extends NonCustodialSigner {\n constructor(config: EmailInternalSignerConfig | PhoneInternalSignerConfig) {\n super(config);\n }\n\n async signMessage() {\n return await Promise.reject(new Error(\"signMessage method not implemented for stellar signer\"));\n }\n\n async signTransaction(payload: string): Promise<{ signature: string }> {\n await this.handleAuthRequired();\n const jwt = this.getJwtOrThrow();\n\n walletsLogger.info(\"sign: sending request\", { keyType: \"ed25519\" });\n const startTime = Date.now();\n const res = await this.config.clientTEEConnection?.sendAction({\n event: \"request:sign\",\n responseEvent: \"response:sign\",\n data: {\n authData: {\n jwt,\n apiKey: this.config.crossmint.apiKey,\n },\n data: {\n keyType: \"ed25519\",\n bytes: payload,\n encoding: \"base64\",\n },\n },\n options: DEFAULT_EVENT_OPTIONS,\n });\n walletsLogger.info(\"sign: response received\", {\n status: res?.status,\n durationMs: Date.now() - startTime,\n });\n\n if (res?.status === \"error\") {\n throw new Error(res.error);\n }\n\n if (res?.signature == null) {\n throw new Error(\"Failed to sign transaction\");\n }\n StellarNonCustodialSigner.verifyPublicKeyFormat(res.publicKey);\n if (res.signature.encoding !== \"base64\") {\n throw new Error(\"Wrong encoding for signature. Expected base64, got \" + res.signature.encoding);\n }\n\n return { signature: res.signature.bytes };\n }\n\n static verifyPublicKeyFormat(publicKey: { encoding: string; keyType: string; bytes: string } | null) {\n if (publicKey == null) {\n throw new Error(\"No public key found\");\n }\n\n if (publicKey.encoding !== \"base64\" || publicKey.keyType !== \"ed25519\" || publicKey.bytes == null) {\n throw new Error(\n \"Not supported. Expected public key to be in base64 encoding and ed25519 key type. Got: \" +\n JSON.stringify(publicKey)\n );\n }\n }\n\n protected getChainKeyParams(): { scheme: \"ed25519\"; encoding: \"strkey\" } {\n return {\n scheme: \"ed25519\",\n encoding: \"strkey\",\n };\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-L33DZOLM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-M2OFHRMU.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
3
+ var _chunkW4VYO3P6cjs = require('./chunk-W4VYO3P6.cjs');
4
4
 
5
5
  // src/signers/evm-external-wallet.ts
6
6
  var EVMExternalWalletSigner = class {
@@ -21,7 +21,7 @@ var EVMExternalWalletSigner = class {
21
21
  return this.config.locator;
22
22
  }
23
23
  signMessage(message) {
24
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
24
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
25
25
  var _a;
26
26
  if (this.provider != null) {
27
27
  const signature = yield this.provider.request({
@@ -52,7 +52,7 @@ var EVMExternalWalletSigner = class {
52
52
  });
53
53
  }
54
54
  signTransaction(transaction) {
55
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
55
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
56
56
  return yield this.signMessage(transaction);
57
57
  });
58
58
  }
@@ -61,3 +61,4 @@ var EVMExternalWalletSigner = class {
61
61
 
62
62
 
63
63
  exports.EVMExternalWalletSigner = EVMExternalWalletSigner;
64
+ //# sourceMappingURL=chunk-NAGMAP3Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signers/evm-external-wallet.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,0BAAN,MAAgD;AAAA,EAMnD,YAAoB,QAAsD;AAAtD;AALpB,gBAAO;AAMH,QAAI,OAAO,WAAW,MAAM;AACxB,YAAM,IAAI,MAAM,0DAA0D;AAAA,IAC9E;AACA,SAAK,WAAW,OAAO;AACvB,SAAK,WAAW,OAAO;AACvB,SAAK,cAAc,OAAO;AAAA,EAC9B;AAAA,EAEA,UAAU;AACN,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,UAAU;AACN,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEM,YAAY,SAAiB;AAAA;AA3BvC;AA4BQ,UAAI,KAAK,YAAY,MAAM;AACvB,cAAM,YAAY,MAAM,KAAK,SAAS,QAAQ;AAAA,UAC1C,QAAQ;AAAA,UACR,QAAQ,CAAC,SAAS,KAAK,QAAQ;AAAA,QACnC,CAAC;AACD,YAAI,aAAa,MAAM;AACnB,gBAAM,IAAI;AAAA,YACN;AAAA,UACJ;AAAA,QACJ;AACA,eAAO,EAAE,UAAU;AAAA,MACvB;AACA,YAAI,UAAK,gBAAL,mBAAkB,gBAAe,MAAM;AACvC,cAAM,YAAY,MAAM,KAAK,YAAY,YAAY;AAAA,UACjD,SAAS;AAAA,YACL,KAAK;AAAA,UACT;AAAA,QACJ,CAAC;AACD,YAAI,aAAa,MAAM;AACnB,gBAAM,IAAI;AAAA,YACN;AAAA,UACJ;AAAA,QACJ;AACA,eAAO,EAAE,UAAU;AAAA,MACvB;AACA,YAAM,IAAI,MAAM,6CAA6C;AAAA,IACjE;AAAA;AAAA,EAEM,gBAAgB,aAAqB;AAAA;AACvC,aAAO,MAAM,KAAK,YAAY,WAAW;AAAA,IAC7C;AAAA;AACJ","sourcesContent":["import type { Account, EIP1193Provider as ViemEIP1193Provider } from \"viem\";\nimport type { GenericEIP1193Provider, Signer, ExternalWalletInternalSignerConfig } from \"./types\";\nimport type { EVMChain } from \"@/chains/chains\";\n\nexport class EVMExternalWalletSigner implements Signer {\n type = \"external-wallet\" as const;\n private _address: string;\n provider?: GenericEIP1193Provider | ViemEIP1193Provider;\n viemAccount?: Account;\n\n constructor(private config: ExternalWalletInternalSignerConfig<EVMChain>) {\n if (config.address == null) {\n throw new Error(\"Please provide an address for the External Wallet Signer\");\n }\n this._address = config.address;\n this.provider = config.provider;\n this.viemAccount = config.viemAccount;\n }\n\n address() {\n return this._address;\n }\n\n locator() {\n return this.config.locator;\n }\n\n async signMessage(message: string) {\n if (this.provider != null) {\n const signature = await this.provider.request({\n method: \"personal_sign\",\n params: [message, this._address] as any,\n });\n if (signature == null) {\n throw new Error(\n \"[EVMExternalWalletSigner] Failed to sign message: EIP1193 provider signMessage returned null\"\n );\n }\n return { signature };\n }\n if (this.viemAccount?.signMessage != null) {\n const signature = await this.viemAccount.signMessage({\n message: {\n raw: message as `0x${string}`,\n },\n });\n if (signature == null) {\n throw new Error(\n \"[EVMExternalWalletSigner] Failed to sign message: Viem account signMessage returned null\"\n );\n }\n return { signature };\n }\n throw new Error(\"No signer provider or viem account provided\");\n }\n\n async signTransaction(transaction: string) {\n return await this.signMessage(transaction);\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __async
3
- } from "./chunk-ASE2FXWP.js";
3
+ } from "./chunk-JF4JR5QQ.js";
4
4
 
5
5
  // src/signers/stellar-external-wallet.ts
6
6
  var StellarExternalWalletSigner = class {
@@ -42,3 +42,4 @@ var StellarExternalWalletSigner = class {
42
42
  export {
43
43
  StellarExternalWalletSigner
44
44
  };
45
+ //# sourceMappingURL=chunk-NG77OKLY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signers/stellar-external-wallet.ts"],"sourcesContent":["import type { ExternalWalletInternalSignerConfig, Signer } from \"./types\";\nimport type { StellarChain } from \"@/chains/chains\";\n\nexport class StellarExternalWalletSigner implements Signer {\n type = \"external-wallet\" as const;\n private _address: string;\n onSignStellarTransaction?: (payload: string) => Promise<string>;\n\n constructor(private config: ExternalWalletInternalSignerConfig<StellarChain>) {\n if (config.address == null) {\n throw new Error(\"Please provide an address for the External Wallet Signer\");\n }\n this._address = config.address;\n this.onSignStellarTransaction = config.onSignStellarTransaction;\n }\n\n address() {\n return this._address;\n }\n\n locator() {\n return this.config.locator;\n }\n\n async signMessage() {\n return await Promise.reject(new Error(\"signMessage method not implemented for stellar external wallet signer\"));\n }\n\n async signTransaction(payload: string) {\n if (this.onSignStellarTransaction == null) {\n return await Promise.reject(\n new Error(\n \"onSignStellarTransaction method is required to sign transactions with a Stellar external wallet\"\n )\n );\n }\n\n const signedTx = await this.onSignStellarTransaction(payload);\n return { signature: signedTx };\n }\n}\n"],"mappings":";;;;;AAGO,IAAM,8BAAN,MAAoD;AAAA,EAKvD,YAAoB,QAA0D;AAA1D;AAJpB,gBAAO;AAKH,QAAI,OAAO,WAAW,MAAM;AACxB,YAAM,IAAI,MAAM,0DAA0D;AAAA,IAC9E;AACA,SAAK,WAAW,OAAO;AACvB,SAAK,2BAA2B,OAAO;AAAA,EAC3C;AAAA,EAEA,UAAU;AACN,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,UAAU;AACN,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEM,cAAc;AAAA;AAChB,aAAO,MAAM,QAAQ,OAAO,IAAI,MAAM,uEAAuE,CAAC;AAAA,IAClH;AAAA;AAAA,EAEM,gBAAgB,SAAiB;AAAA;AACnC,UAAI,KAAK,4BAA4B,MAAM;AACvC,eAAO,MAAM,QAAQ;AAAA,UACjB,IAAI;AAAA,YACA;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,YAAM,WAAW,MAAM,KAAK,yBAAyB,OAAO;AAC5D,aAAO,EAAE,WAAW,SAAS;AAAA,IACjC;AAAA;AACJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});// package.json
2
2
  var name = "@crossmint/wallets-sdk";
3
- var version = "0.20.1";
3
+ var version = "0.20.3";
4
4
 
5
5
  // src/utils/constants.ts
6
6
  var WALLETS_SERVICE = "WALLETS_SDK";
@@ -14,3 +14,4 @@ var STATUS_POLLING_INTERVAL_MS = 500;
14
14
 
15
15
 
16
16
  exports.WALLETS_SERVICE = WALLETS_SERVICE; exports.SDK_VERSION = SDK_VERSION; exports.SDK_NAME = SDK_NAME; exports.STATUS_POLLING_INTERVAL_MS = STATUS_POLLING_INTERVAL_MS;
17
+ //# sourceMappingURL=chunk-NQR4AQOW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../package.json","../src/utils/constants.ts"],"names":[],"mappings":";AACI,WAAQ;AACR,cAAW;;;ACAR,IAAM,kBAAkB;AACxB,IAAM,cAAc;AACpB,IAAM,WAAW;AACjB,IAAM,6BAA6B","sourcesContent":["{\n \"name\": \"@crossmint/wallets-sdk\",\n \"version\": \"0.20.3\",\n \"repository\": \"https://github.com/Crossmint/crossmint-sdk\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Paella Labs Inc\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\"dist\", \"LICENSE\"],\n \"scripts\": {\n \"build\": \"pnpm generate && tsup\",\n \"dev\": \"tsup --watch\",\n \"test:vitest\": \"vitest run --passWithNoTests\",\n \"openapi-ts\": \"openapi-ts\",\n \"generate\": \"pnpm run openapi-ts\",\n \"generate:docs\": \"typedoc\"\n },\n \"dependencies\": {\n \"@crossmint/client-sdk-window\": \"workspace:*\",\n \"@crossmint/client-signers\": \"workspace:*\",\n \"@crossmint/common-sdk-auth\": \"workspace:*\",\n \"@crossmint/common-sdk-base\": \"workspace:*\",\n \"@hey-api/client-fetch\": \"0.8.1\",\n \"@solana/web3.js\": \"1.98.1\",\n \"@stellar/stellar-sdk\": \"v14.0.0-rc.3\",\n \"abitype\": \"1.0.8\",\n \"bs58\": \"5.0.0\",\n \"ox\": \"0.6.9\",\n \"tweetnacl\": \"1.0.3\",\n \"viem\": \"2.33.1\"\n },\n \"devDependencies\": {\n \"@hey-api/openapi-ts\": \"0.69.2\",\n \"typedoc\": \"0.28.17\",\n \"typedoc-plugin-frontmatter\": \"1.3.0\",\n \"typedoc-plugin-markdown\": \"4.5.2\"\n },\n \"peerDependencies\": {\n \"@solana/web3.js\": \"^1.98.1\"\n }\n}\n","import { name, version } from \"../../package.json\";\n\nexport const WALLETS_SERVICE = \"WALLETS_SDK\";\nexport const SDK_VERSION = version;\nexport const SDK_NAME = name;\nexport const STATUS_POLLING_INTERVAL_MS = 500;\n"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-PHGHKSBT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -72,3 +72,4 @@ var MOCK_API_KEY = "ck_development_A61UZQnvjSQcM5qVBaBactgqebxafWAVsNdD2xLkgBxoY
72
72
 
73
73
 
74
74
  exports.HTTP_ERROR_STATUSES = HTTP_ERROR_STATUSES; exports.WALLET_LOCATORS = WALLET_LOCATORS; exports.TOKEN_LOCATORS = TOKEN_LOCATORS; exports.TIMEOUT_SHORT = TIMEOUT_SHORT; exports.TIMEOUT_MEDIUM = TIMEOUT_MEDIUM; exports.TIMEOUT_LONG = TIMEOUT_LONG; exports.DELAY_SHORT = DELAY_SHORT; exports.DELAY_MEDIUM = DELAY_MEDIUM; exports.DELAY_LONG = DELAY_LONG; exports.DELAY_RATE_LIMIT_WINDOW = DELAY_RATE_LIMIT_WINDOW; exports.TEST_ADDRESSES = TEST_ADDRESSES; exports.TEST_VALUES = TEST_VALUES; exports.MOCK_API_KEY = MOCK_API_KEY;
75
+ //# sourceMappingURL=chunk-QFE6TYBN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/__tests__/constants.ts"],"names":[],"mappings":";AAEO,IAAM,sBAAsB;AAAA,EAC/B,EAAE,QAAQ,KAAK,SAAS,cAAc;AAAA,EACtC,EAAE,QAAQ,KAAK,SAAS,eAAe;AAAA,EACvC,EAAE,QAAQ,KAAK,SAAS,YAAY;AAAA,EACpC,EAAE,QAAQ,KAAK,SAAS,YAAY;AAAA,EACpC,EAAE,QAAQ,KAAK,SAAS,sBAAsB;AAAA,EAC9C,EAAE,QAAQ,KAAK,SAAS,wBAAwB;AAAA,EAChD,EAAE,QAAQ,KAAK,SAAS,cAAc;AAAA,EACtC,EAAE,QAAQ,KAAK,SAAS,sBAAsB;AAClD;AAOO,IAAM,kBAAkB;AAAA,EAC3B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,4BAA4B;AAChC;AAEO,IAAM,iBAAiB;AAAA,EAC1B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,uBAAuB;AAC3B;AAEO,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AACvB,IAAM,eAAe;AAErB,IAAM,cAAc;AACpB,IAAM,eAAe;AACrB,IAAM,aAAa;AACnB,IAAM,0BAA0B;AAWhC,IAAM,iBAAiB;AAAA,EAC1B,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,UAAU;AACd;AAEO,IAAM,cAAc;AAAA,EACvB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,wBAAwB;AAAA,EACxB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,iCAAiC;AACrC;AAMO,IAAM,eACT","sourcesContent":["import type { WalletLocator } from \"../types\";\n\nexport const HTTP_ERROR_STATUSES = [\n { status: 400, message: \"Bad Request\" },\n { status: 401, message: \"Unauthorized\" },\n { status: 403, message: \"Forbidden\" },\n { status: 404, message: \"Not Found\" },\n { status: 429, message: \"Rate limit exceeded\" },\n { status: 500, message: \"Internal server error\" },\n { status: 502, message: \"Bad Gateway\" },\n { status: 503, message: \"Service Unavailable\" },\n] as const;\n\n/**\n * General-purpose wallet locators for unit and integration tests.\n * Includes both locator format strings (me:chain:type) and actual addresses.\n * Used for testing wallet operations that accept WalletLocator type.\n */\nexport const WALLET_LOCATORS = {\n evmSmart: \"me:evm:smart\" as WalletLocator,\n evmMpc: \"me:evm:mpc\" as WalletLocator,\n solanaSmart: \"me:solana:smart\" as WalletLocator,\n solanaAddress: \"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM\" as WalletLocator,\n evmAddress: \"0x1234567890123456789012345678901234567890\" as WalletLocator,\n evmAddressWithSpecialChars: \"0xABCDEFabcdef0123456789ABCDEFabcdef012345\" as WalletLocator,\n} as const;\n\nexport const TOKEN_LOCATORS = {\n eth: \"base-sepolia:eth\",\n usdc: \"base-sepolia:usdc\",\n sol: \"solana:sol\",\n customContract: \"base-sepolia:0x1234567890123456789012345678901234567890\",\n tokenWithSpecialChars: \"base-sepolia:0xABCDEFabcdef0123456789ABCDEFabcdef012345\",\n} as const;\n\nexport const TIMEOUT_SHORT = 30000; // 30 seconds\nexport const TIMEOUT_MEDIUM = 60000; // 60 seconds\nexport const TIMEOUT_LONG = 120000; // 120 seconds\n\nexport const DELAY_SHORT = 200; // 200ms - for rapid sequential requests\nexport const DELAY_MEDIUM = 500; // 500ms - for standard rate limiting\nexport const DELAY_LONG = 1000; // 1s - for cleanup and rate limit windows\nexport const DELAY_RATE_LIMIT_WINDOW = 2000; // 2s - for rate limit recovery\n\n/**\n * Real blockchain addresses for integration tests with specific purposes.\n * These are actual addresses used in integration tests for:\n * - Admin signers (external wallet addresses for wallet creation)\n * - Recipients (addresses to send tokens to)\n * - Error testing (non-existent addresses)\n * - General test operations\n * Note: These are actual addresses, not locator format strings.\n */\nexport const TEST_ADDRESSES = {\n EVM_ADMIN_SIGNER: \"0xe5E91D9b21C3563011cc332B050150fb9211bBEB\",\n SOLANA_ADMIN_SIGNER: \"CsHuaddA9J8j9vSTdL9wpvBsyjYe4F7iQQLuPg3EUqsU\",\n EVM_RECIPIENT: \"0xDF8b5F9c19E187f1Ea00730a1e46180152244315\",\n EVM_NON_EXISTENT: \"0x0000000000000000000000000000000000000000\",\n EVM_TEST: \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\",\n} as const;\n\nexport const TEST_VALUES = {\n FUNDING_AMOUNT_SMALL: 1.0,\n FUNDING_AMOUNT_LARGE: 10,\n SEND_AMOUNT_SMALL: \"0.0001\",\n SEND_AMOUNT_VERY_SMALL: \"0.000000000000000001\",\n SEND_AMOUNT_ZERO: \"0\",\n SEND_AMOUNT_INVALID: \"999999999999999999.0\",\n SEND_AMOUNT_EXTREME: \"999999999999999999999999999999.999999999999999999\",\n LONG_STRING_LENGTH: 10000,\n CONCURRENT_REQUESTS: 3,\n RAPID_SEQUENTIAL_COUNT: 3,\n RATE_LIMIT_BATCH_SIZE: 5,\n RATE_LIMIT_BATCHES: 3,\n RATE_LIMIT_RAPID_COUNT: 20,\n RATE_LIMIT_STRESS_COUNT: 50,\n APPROVE_TRANSACTION_MAX_RETRIES: 10,\n} as const;\n\n/**\n * Mock API key for unit tests.\n * This is a valid development API key format used for testing purposes only.\n */\nexport const MOCK_API_KEY =\n \"ck_development_A61UZQnvjSQcM5qVBaBactgqebxafWAVsNdD2xLkgBxoYuH5q2guM8r9DUmZQzE1WYyoByGVYpEG2o9gVSzAZFsrLbfKGERUJ6D5CW6S9AsJGAc3ctgrsD4n2ioekzGj7KPbLwT3SysDjMamYXLxEroUbQSdwf6aLF4zeEpECq2crkTUQeLFzxzmjWNxFDHFYefDrfrFPCURvBXJLf5pCxCQ\";\n"]}
@@ -72,3 +72,4 @@ export {
72
72
  TEST_VALUES,
73
73
  MOCK_API_KEY
74
74
  };
75
+ //# sourceMappingURL=chunk-QUIRXKKE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/__tests__/constants.ts"],"sourcesContent":["import type { WalletLocator } from \"../types\";\n\nexport const HTTP_ERROR_STATUSES = [\n { status: 400, message: \"Bad Request\" },\n { status: 401, message: \"Unauthorized\" },\n { status: 403, message: \"Forbidden\" },\n { status: 404, message: \"Not Found\" },\n { status: 429, message: \"Rate limit exceeded\" },\n { status: 500, message: \"Internal server error\" },\n { status: 502, message: \"Bad Gateway\" },\n { status: 503, message: \"Service Unavailable\" },\n] as const;\n\n/**\n * General-purpose wallet locators for unit and integration tests.\n * Includes both locator format strings (me:chain:type) and actual addresses.\n * Used for testing wallet operations that accept WalletLocator type.\n */\nexport const WALLET_LOCATORS = {\n evmSmart: \"me:evm:smart\" as WalletLocator,\n evmMpc: \"me:evm:mpc\" as WalletLocator,\n solanaSmart: \"me:solana:smart\" as WalletLocator,\n solanaAddress: \"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM\" as WalletLocator,\n evmAddress: \"0x1234567890123456789012345678901234567890\" as WalletLocator,\n evmAddressWithSpecialChars: \"0xABCDEFabcdef0123456789ABCDEFabcdef012345\" as WalletLocator,\n} as const;\n\nexport const TOKEN_LOCATORS = {\n eth: \"base-sepolia:eth\",\n usdc: \"base-sepolia:usdc\",\n sol: \"solana:sol\",\n customContract: \"base-sepolia:0x1234567890123456789012345678901234567890\",\n tokenWithSpecialChars: \"base-sepolia:0xABCDEFabcdef0123456789ABCDEFabcdef012345\",\n} as const;\n\nexport const TIMEOUT_SHORT = 30000; // 30 seconds\nexport const TIMEOUT_MEDIUM = 60000; // 60 seconds\nexport const TIMEOUT_LONG = 120000; // 120 seconds\n\nexport const DELAY_SHORT = 200; // 200ms - for rapid sequential requests\nexport const DELAY_MEDIUM = 500; // 500ms - for standard rate limiting\nexport const DELAY_LONG = 1000; // 1s - for cleanup and rate limit windows\nexport const DELAY_RATE_LIMIT_WINDOW = 2000; // 2s - for rate limit recovery\n\n/**\n * Real blockchain addresses for integration tests with specific purposes.\n * These are actual addresses used in integration tests for:\n * - Admin signers (external wallet addresses for wallet creation)\n * - Recipients (addresses to send tokens to)\n * - Error testing (non-existent addresses)\n * - General test operations\n * Note: These are actual addresses, not locator format strings.\n */\nexport const TEST_ADDRESSES = {\n EVM_ADMIN_SIGNER: \"0xe5E91D9b21C3563011cc332B050150fb9211bBEB\",\n SOLANA_ADMIN_SIGNER: \"CsHuaddA9J8j9vSTdL9wpvBsyjYe4F7iQQLuPg3EUqsU\",\n EVM_RECIPIENT: \"0xDF8b5F9c19E187f1Ea00730a1e46180152244315\",\n EVM_NON_EXISTENT: \"0x0000000000000000000000000000000000000000\",\n EVM_TEST: \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\",\n} as const;\n\nexport const TEST_VALUES = {\n FUNDING_AMOUNT_SMALL: 1.0,\n FUNDING_AMOUNT_LARGE: 10,\n SEND_AMOUNT_SMALL: \"0.0001\",\n SEND_AMOUNT_VERY_SMALL: \"0.000000000000000001\",\n SEND_AMOUNT_ZERO: \"0\",\n SEND_AMOUNT_INVALID: \"999999999999999999.0\",\n SEND_AMOUNT_EXTREME: \"999999999999999999999999999999.999999999999999999\",\n LONG_STRING_LENGTH: 10000,\n CONCURRENT_REQUESTS: 3,\n RAPID_SEQUENTIAL_COUNT: 3,\n RATE_LIMIT_BATCH_SIZE: 5,\n RATE_LIMIT_BATCHES: 3,\n RATE_LIMIT_RAPID_COUNT: 20,\n RATE_LIMIT_STRESS_COUNT: 50,\n APPROVE_TRANSACTION_MAX_RETRIES: 10,\n} as const;\n\n/**\n * Mock API key for unit tests.\n * This is a valid development API key format used for testing purposes only.\n */\nexport const MOCK_API_KEY =\n \"ck_development_A61UZQnvjSQcM5qVBaBactgqebxafWAVsNdD2xLkgBxoYuH5q2guM8r9DUmZQzE1WYyoByGVYpEG2o9gVSzAZFsrLbfKGERUJ6D5CW6S9AsJGAc3ctgrsD4n2ioekzGj7KPbLwT3SysDjMamYXLxEroUbQSdwf6aLF4zeEpECq2crkTUQeLFzxzmjWNxFDHFYefDrfrFPCURvBXJLf5pCxCQ\";\n"],"mappings":";AAEO,IAAM,sBAAsB;AAAA,EAC/B,EAAE,QAAQ,KAAK,SAAS,cAAc;AAAA,EACtC,EAAE,QAAQ,KAAK,SAAS,eAAe;AAAA,EACvC,EAAE,QAAQ,KAAK,SAAS,YAAY;AAAA,EACpC,EAAE,QAAQ,KAAK,SAAS,YAAY;AAAA,EACpC,EAAE,QAAQ,KAAK,SAAS,sBAAsB;AAAA,EAC9C,EAAE,QAAQ,KAAK,SAAS,wBAAwB;AAAA,EAChD,EAAE,QAAQ,KAAK,SAAS,cAAc;AAAA,EACtC,EAAE,QAAQ,KAAK,SAAS,sBAAsB;AAClD;AAOO,IAAM,kBAAkB;AAAA,EAC3B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,4BAA4B;AAChC;AAEO,IAAM,iBAAiB;AAAA,EAC1B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,uBAAuB;AAC3B;AAEO,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AACvB,IAAM,eAAe;AAErB,IAAM,cAAc;AACpB,IAAM,eAAe;AACrB,IAAM,aAAa;AACnB,IAAM,0BAA0B;AAWhC,IAAM,iBAAiB;AAAA,EAC1B,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,UAAU;AACd;AAEO,IAAM,cAAc;AAAA,EACvB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,wBAAwB;AAAA,EACxB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,iCAAiC;AACrC;AAMO,IAAM,eACT;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-RB7HTHG4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
3
+ var _chunkW4VYO3P6cjs = require('./chunk-W4VYO3P6.cjs');
4
4
 
5
5
  // src/signers/stellar-external-wallet.ts
6
6
  var StellarExternalWalletSigner = class {
@@ -20,12 +20,12 @@ var StellarExternalWalletSigner = class {
20
20
  return this.config.locator;
21
21
  }
22
22
  signMessage() {
23
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
23
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
24
24
  return yield Promise.reject(new Error("signMessage method not implemented for stellar external wallet signer"));
25
25
  });
26
26
  }
27
27
  signTransaction(payload) {
28
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
28
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
29
29
  if (this.onSignStellarTransaction == null) {
30
30
  return yield Promise.reject(
31
31
  new Error(
@@ -42,3 +42,4 @@ var StellarExternalWalletSigner = class {
42
42
 
43
43
 
44
44
  exports.StellarExternalWalletSigner = StellarExternalWalletSigner;
45
+ //# sourceMappingURL=chunk-RJ3VNO74.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signers/stellar-external-wallet.ts"],"names":[],"mappings":";;;;;AAGO,IAAM,8BAAN,MAAoD;AAAA,EAKvD,YAAoB,QAA0D;AAA1D;AAJpB,gBAAO;AAKH,QAAI,OAAO,WAAW,MAAM;AACxB,YAAM,IAAI,MAAM,0DAA0D;AAAA,IAC9E;AACA,SAAK,WAAW,OAAO;AACvB,SAAK,2BAA2B,OAAO;AAAA,EAC3C;AAAA,EAEA,UAAU;AACN,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,UAAU;AACN,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEM,cAAc;AAAA;AAChB,aAAO,MAAM,QAAQ,OAAO,IAAI,MAAM,uEAAuE,CAAC;AAAA,IAClH;AAAA;AAAA,EAEM,gBAAgB,SAAiB;AAAA;AACnC,UAAI,KAAK,4BAA4B,MAAM;AACvC,eAAO,MAAM,QAAQ;AAAA,UACjB,IAAI;AAAA,YACA;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,YAAM,WAAW,MAAM,KAAK,yBAAyB,OAAO;AAC5D,aAAO,EAAE,WAAW,SAAS;AAAA,IACjC;AAAA;AACJ","sourcesContent":["import type { ExternalWalletInternalSignerConfig, Signer } from \"./types\";\nimport type { StellarChain } from \"@/chains/chains\";\n\nexport class StellarExternalWalletSigner implements Signer {\n type = \"external-wallet\" as const;\n private _address: string;\n onSignStellarTransaction?: (payload: string) => Promise<string>;\n\n constructor(private config: ExternalWalletInternalSignerConfig<StellarChain>) {\n if (config.address == null) {\n throw new Error(\"Please provide an address for the External Wallet Signer\");\n }\n this._address = config.address;\n this.onSignStellarTransaction = config.onSignStellarTransaction;\n }\n\n address() {\n return this._address;\n }\n\n locator() {\n return this.config.locator;\n }\n\n async signMessage() {\n return await Promise.reject(new Error(\"signMessage method not implemented for stellar external wallet signer\"));\n }\n\n async signTransaction(payload: string) {\n if (this.onSignStellarTransaction == null) {\n return await Promise.reject(\n new Error(\n \"onSignStellarTransaction method is required to sign transactions with a Stellar external wallet\"\n )\n );\n }\n\n const signedTx = await this.onSignStellarTransaction(payload);\n return { signature: signedTx };\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-RLWGW5R2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,40 +1,40 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk3ASKCQJNcjs = require('./chunk-3ASKCQJN.cjs');
4
+ var _chunkIZYJJUOEcjs = require('./chunk-IZYJJUOE.cjs');
5
5
 
6
6
 
7
- var _chunkTC6ITDWVcjs = require('./chunk-TC6ITDWV.cjs');
7
+ var _chunkBBUEX3DGcjs = require('./chunk-BBUEX3DG.cjs');
8
8
 
9
9
 
10
- var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
10
+ var _chunkW4VYO3P6cjs = require('./chunk-W4VYO3P6.cjs');
11
11
 
12
12
  // src/signers/non-custodial/ncs-evm-signer.ts
13
13
  var _ox = require('ox');
14
14
  var _viem = require('viem');
15
- var EVMNonCustodialSigner = class _EVMNonCustodialSigner extends _chunk3ASKCQJNcjs.NonCustodialSigner {
15
+ var EVMNonCustodialSigner = class _EVMNonCustodialSigner extends _chunkIZYJJUOEcjs.NonCustodialSigner {
16
16
  constructor(config) {
17
17
  super(config);
18
18
  }
19
19
  signMessage(message) {
20
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
20
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
21
21
  const messageRaw = _viem.isHex.call(void 0, message) ? message : _viem.toHex.call(void 0, message);
22
22
  const messageToSign = _ox.PersonalMessage.getSignPayload(messageRaw);
23
23
  return yield this.sign(messageToSign);
24
24
  });
25
25
  }
26
26
  signTransaction(transaction) {
27
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
27
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
28
28
  return yield this.sign(transaction);
29
29
  });
30
30
  }
31
31
  sign(raw) {
32
- return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
32
+ return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
33
33
  var _a;
34
34
  yield this.handleAuthRequired();
35
35
  const jwt = this.getJwtOrThrow();
36
36
  const hexString = raw.replace("0x", "");
37
- _chunkTC6ITDWVcjs.walletsLogger.info("sign: sending request", { keyType: "secp256k1" });
37
+ _chunkBBUEX3DGcjs.walletsLogger.info("sign: sending request", { keyType: "secp256k1" });
38
38
  const startTime = Date.now();
39
39
  const res = yield (_a = this.config.clientTEEConnection) == null ? void 0 : _a.sendAction({
40
40
  event: "request:sign",
@@ -50,9 +50,9 @@ var EVMNonCustodialSigner = class _EVMNonCustodialSigner extends _chunk3ASKCQJNc
50
50
  encoding: "hex"
51
51
  }
52
52
  },
53
- options: _chunk3ASKCQJNcjs.DEFAULT_EVENT_OPTIONS
53
+ options: _chunkIZYJJUOEcjs.DEFAULT_EVENT_OPTIONS
54
54
  });
55
- _chunkTC6ITDWVcjs.walletsLogger.info("sign: response received", {
55
+ _chunkBBUEX3DGcjs.walletsLogger.info("sign: response received", {
56
56
  status: res == null ? void 0 : res.status,
57
57
  durationMs: Date.now() - startTime
58
58
  });
@@ -87,3 +87,4 @@ var EVMNonCustodialSigner = class _EVMNonCustodialSigner extends _chunk3ASKCQJNc
87
87
 
88
88
 
89
89
  exports.EVMNonCustodialSigner = EVMNonCustodialSigner;
90
+ //# sourceMappingURL=chunk-RPLIXWF3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/signers/non-custodial/ncs-evm-signer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,SAAS,uBAAuB;AAChC,SAAS,OAAO,aAAuB;AAGhC,IAAM,wBAAN,MAAM,+BAA8B,mBAAmB;AAAA,EAC1D,YAAY,QAA+D;AACvE,UAAM,MAAM;AAAA,EAChB;AAAA,EAEM,YAAY,SAAiB;AAAA;AAC/B,YAAM,aAAa,MAAM,OAAO,IAAK,UAAkB,MAAM,OAAO;AACpE,YAAM,gBAAgB,gBAAgB,eAAe,UAAU;AAC/D,aAAO,MAAM,KAAK,KAAK,aAAa;AAAA,IACxC;AAAA;AAAA,EAEM,gBAAgB,aAAqD;AAAA;AACvE,aAAO,MAAM,KAAK,KAAK,WAAW;AAAA,IACtC;AAAA;AAAA,EAEc,KAAK,KAA6C;AAAA;AArBpE;AAsBQ,YAAM,KAAK,mBAAmB;AAC9B,YAAM,MAAM,KAAK,cAAc;AAE/B,YAAM,YAAY,IAAI,QAAQ,MAAM,EAAE;AAEtC,oBAAc,KAAK,yBAAyB,EAAE,SAAS,YAAY,CAAC;AACpE,YAAM,YAAY,KAAK,IAAI;AAC3B,YAAM,MAAM,OAAM,UAAK,OAAO,wBAAZ,mBAAiC,WAAW;AAAA,QAC1D,OAAO;AAAA,QACP,eAAe;AAAA,QACf,MAAM;AAAA,UACF,UAAU;AAAA,YACN;AAAA,YACA,QAAQ,KAAK,OAAO,UAAU;AAAA,UAClC;AAAA,UACA,MAAM;AAAA,YACF,SAAS;AAAA,YACT,OAAO;AAAA,YACP,UAAU;AAAA,UACd;AAAA,QACJ;AAAA,QACA,SAAS;AAAA,MACb;AACA,oBAAc,KAAK,2BAA2B;AAAA,QAC1C,QAAQ,2BAAK;AAAA,QACb,YAAY,KAAK,IAAI,IAAI;AAAA,MAC7B,CAAC;AAED,WAAI,2BAAK,YAAW,SAAS;AACzB,cAAM,IAAI,MAAM,IAAI,KAAK;AAAA,MAC7B;AAEA,WAAI,2BAAK,cAAa,MAAM;AACxB,cAAM,IAAI,MAAM,4BAA4B;AAAA,MAChD;AACA,6BAAsB,sBAAsB,IAAI,SAAS;AACzD,aAAO,EAAE,WAAW,IAAI,UAAU,MAAM;AAAA,IAC5C;AAAA;AAAA,EAEA,OAAO,sBAAsB,WAAwE;AACjG,QAAI,aAAa,MAAM;AACnB,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AAEA,QAAI,UAAU,aAAa,SAAS,UAAU,YAAY,eAAe,UAAU,SAAS,MAAM;AAC9F,YAAM,IAAI;AAAA,QACN,2FACI,KAAK,UAAU,SAAS;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEU,oBAA8D;AACpE,WAAO;AAAA,MACH,QAAQ;AAAA,MACR,UAAU;AAAA,IACd;AAAA,EACJ;AACJ","sourcesContent":["import type { EmailInternalSignerConfig, PhoneInternalSignerConfig } from \"../types\";\nimport { NonCustodialSigner, DEFAULT_EVENT_OPTIONS } from \"./ncs-signer\";\nimport { PersonalMessage } from \"ox\";\nimport { isHex, toHex, type Hex } from \"viem\";\nimport { walletsLogger } from \"../../logger\";\n\nexport class EVMNonCustodialSigner extends NonCustodialSigner {\n constructor(config: EmailInternalSignerConfig | PhoneInternalSignerConfig) {\n super(config);\n }\n\n async signMessage(message: string) {\n const messageRaw = isHex(message) ? (message as Hex) : toHex(message);\n const messageToSign = PersonalMessage.getSignPayload(messageRaw);\n return await this.sign(messageToSign);\n }\n\n async signTransaction(transaction: string): Promise<{ signature: string }> {\n return await this.sign(transaction);\n }\n\n private async sign(raw: string): Promise<{ signature: string }> {\n await this.handleAuthRequired();\n const jwt = this.getJwtOrThrow();\n\n const hexString = raw.replace(\"0x\", \"\");\n\n walletsLogger.info(\"sign: sending request\", { keyType: \"secp256k1\" });\n const startTime = Date.now();\n const res = await this.config.clientTEEConnection?.sendAction({\n event: \"request:sign\",\n responseEvent: \"response:sign\",\n data: {\n authData: {\n jwt,\n apiKey: this.config.crossmint.apiKey,\n },\n data: {\n keyType: \"secp256k1\",\n bytes: hexString,\n encoding: \"hex\",\n },\n },\n options: DEFAULT_EVENT_OPTIONS,\n });\n walletsLogger.info(\"sign: response received\", {\n status: res?.status,\n durationMs: Date.now() - startTime,\n });\n\n if (res?.status === \"error\") {\n throw new Error(res.error);\n }\n\n if (res?.signature == null) {\n throw new Error(\"Failed to sign transaction\");\n }\n EVMNonCustodialSigner.verifyPublicKeyFormat(res.publicKey);\n return { signature: res.signature.bytes };\n }\n\n static verifyPublicKeyFormat(publicKey: { encoding: string; keyType: string; bytes: string } | null) {\n if (publicKey == null) {\n throw new Error(\"No public key found\");\n }\n\n if (publicKey.encoding !== \"hex\" || publicKey.keyType !== \"secp256k1\" || publicKey.bytes == null) {\n throw new Error(\n \"Not supported. Expected public key to be in hex encoding and secp256k1 key type. Got: \" +\n JSON.stringify(publicKey)\n );\n }\n }\n\n protected getChainKeyParams(): { scheme: \"secp256k1\"; encoding: \"hex\" } {\n return {\n scheme: \"secp256k1\",\n encoding: \"hex\",\n };\n }\n}\n"]}