@crossmint/wallets-sdk 0.20.4 → 0.20.5

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 (423) hide show
  1. package/package.json +50 -47
  2. package/LICENSE +0 -201
  3. package/README.md +0 -96
  4. package/dist/api/__tests__/constants.cjs +0 -32
  5. package/dist/api/__tests__/constants.cjs.map +0 -1
  6. package/dist/api/__tests__/constants.d.cts +0 -96
  7. package/dist/api/__tests__/constants.d.ts +0 -96
  8. package/dist/api/__tests__/constants.js +0 -32
  9. package/dist/api/__tests__/constants.js.map +0 -1
  10. package/dist/api/__tests__/test-utils.cjs +0 -373
  11. package/dist/api/__tests__/test-utils.cjs.map +0 -1
  12. package/dist/api/__tests__/test-utils.d.cts +0 -99
  13. package/dist/api/__tests__/test-utils.d.ts +0 -99
  14. package/dist/api/__tests__/test-utils.js +0 -373
  15. package/dist/api/__tests__/test-utils.js.map +0 -1
  16. package/dist/api/client.cjs +0 -11
  17. package/dist/api/client.cjs.map +0 -1
  18. package/dist/api/client.d.cts +0 -42
  19. package/dist/api/client.d.ts +0 -42
  20. package/dist/api/client.js +0 -11
  21. package/dist/api/client.js.map +0 -1
  22. package/dist/api/gen/client.gen.cjs +0 -8
  23. package/dist/api/gen/client.gen.cjs.map +0 -1
  24. package/dist/api/gen/client.gen.d.cts +0 -16
  25. package/dist/api/gen/client.gen.d.ts +0 -16
  26. package/dist/api/gen/client.gen.js +0 -8
  27. package/dist/api/gen/client.gen.js.map +0 -1
  28. package/dist/api/gen/index.cjs +0 -180
  29. package/dist/api/gen/index.cjs.map +0 -1
  30. package/dist/api/gen/index.d.cts +0 -3
  31. package/dist/api/gen/index.d.ts +0 -3
  32. package/dist/api/gen/index.js +0 -180
  33. package/dist/api/gen/index.js.map +0 -1
  34. package/dist/api/gen/sdk.gen.cjs +0 -179
  35. package/dist/api/gen/sdk.gen.cjs.map +0 -1
  36. package/dist/api/gen/sdk.gen.d.cts +0 -611
  37. package/dist/api/gen/sdk.gen.d.ts +0 -611
  38. package/dist/api/gen/sdk.gen.js +0 -179
  39. package/dist/api/gen/sdk.gen.js.map +0 -1
  40. package/dist/api/gen/types.gen.cjs +0 -2
  41. package/dist/api/gen/types.gen.cjs.map +0 -1
  42. package/dist/api/gen/types.gen.d.cts +0 -13865
  43. package/dist/api/gen/types.gen.d.ts +0 -13865
  44. package/dist/api/gen/types.gen.js +0 -2
  45. package/dist/api/gen/types.gen.js.map +0 -1
  46. package/dist/api/index.cjs +0 -13
  47. package/dist/api/index.cjs.map +0 -1
  48. package/dist/api/index.d.cts +0 -6
  49. package/dist/api/index.d.ts +0 -6
  50. package/dist/api/index.js +0 -13
  51. package/dist/api/index.js.map +0 -1
  52. package/dist/api/types.cjs +0 -2
  53. package/dist/api/types.cjs.map +0 -1
  54. package/dist/api/types.d.cts +0 -55
  55. package/dist/api/types.d.ts +0 -55
  56. package/dist/api/types.js +0 -2
  57. package/dist/api/types.js.map +0 -1
  58. package/dist/chains/chains.cjs +0 -25
  59. package/dist/chains/chains.cjs.map +0 -1
  60. package/dist/chains/chains.d.cts +0 -28
  61. package/dist/chains/chains.d.ts +0 -28
  62. package/dist/chains/chains.js +0 -25
  63. package/dist/chains/chains.js.map +0 -1
  64. package/dist/chains/definitions/arcTestnet.cjs +0 -8
  65. package/dist/chains/definitions/arcTestnet.cjs.map +0 -1
  66. package/dist/chains/definitions/arcTestnet.d.cts +0 -43
  67. package/dist/chains/definitions/arcTestnet.d.ts +0 -43
  68. package/dist/chains/definitions/arcTestnet.js +0 -8
  69. package/dist/chains/definitions/arcTestnet.js.map +0 -1
  70. package/dist/chains/definitions/story.cjs +0 -8
  71. package/dist/chains/definitions/story.cjs.map +0 -1
  72. package/dist/chains/definitions/story.d.cts +0 -49
  73. package/dist/chains/definitions/story.d.ts +0 -49
  74. package/dist/chains/definitions/story.js +0 -8
  75. package/dist/chains/definitions/story.js.map +0 -1
  76. package/dist/chains/definitions/storyTestnet.cjs +0 -8
  77. package/dist/chains/definitions/storyTestnet.cjs.map +0 -1
  78. package/dist/chains/definitions/storyTestnet.d.cts +0 -43
  79. package/dist/chains/definitions/storyTestnet.d.ts +0 -43
  80. package/dist/chains/definitions/storyTestnet.js +0 -8
  81. package/dist/chains/definitions/storyTestnet.js.map +0 -1
  82. package/dist/chains/definitions/tempo.cjs +0 -8
  83. package/dist/chains/definitions/tempo.cjs.map +0 -1
  84. package/dist/chains/definitions/tempo.d.cts +0 -39
  85. package/dist/chains/definitions/tempo.d.ts +0 -39
  86. package/dist/chains/definitions/tempo.js +0 -8
  87. package/dist/chains/definitions/tempo.js.map +0 -1
  88. package/dist/chains/definitions/tempoTestnet.cjs +0 -8
  89. package/dist/chains/definitions/tempoTestnet.cjs.map +0 -1
  90. package/dist/chains/definitions/tempoTestnet.d.cts +0 -39
  91. package/dist/chains/definitions/tempoTestnet.d.ts +0 -39
  92. package/dist/chains/definitions/tempoTestnet.js +0 -8
  93. package/dist/chains/definitions/tempoTestnet.js.map +0 -1
  94. package/dist/chunk-2QI75IOB.js +0 -85
  95. package/dist/chunk-2QI75IOB.js.map +0 -1
  96. package/dist/chunk-2RQYQVVY.js +0 -20
  97. package/dist/chunk-2RQYQVVY.js.map +0 -1
  98. package/dist/chunk-33TLFTHT.js +0 -22
  99. package/dist/chunk-33TLFTHT.js.map +0 -1
  100. package/dist/chunk-36C7SCPK.js +0 -156
  101. package/dist/chunk-36C7SCPK.js.map +0 -1
  102. package/dist/chunk-3J2BNUTO.js +0 -16
  103. package/dist/chunk-3J2BNUTO.js.map +0 -1
  104. package/dist/chunk-3PG4HRAS.js +0 -67
  105. package/dist/chunk-3PG4HRAS.js.map +0 -1
  106. package/dist/chunk-4AV3GY27.js +0 -59
  107. package/dist/chunk-4AV3GY27.js.map +0 -1
  108. package/dist/chunk-4BB7YYTT.js +0 -64
  109. package/dist/chunk-4BB7YYTT.js.map +0 -1
  110. package/dist/chunk-4GADBBZN.cjs +0 -156
  111. package/dist/chunk-4GADBBZN.cjs.map +0 -1
  112. package/dist/chunk-4GSHSMCA.js +0 -90
  113. package/dist/chunk-4GSHSMCA.js.map +0 -1
  114. package/dist/chunk-5NIFUAZH.js +0 -83
  115. package/dist/chunk-5NIFUAZH.js.map +0 -1
  116. package/dist/chunk-5OFC4HSW.js +0 -111
  117. package/dist/chunk-5OFC4HSW.js.map +0 -1
  118. package/dist/chunk-5QPU62QL.cjs +0 -111
  119. package/dist/chunk-5QPU62QL.cjs.map +0 -1
  120. package/dist/chunk-6CR6FGAO.cjs +0 -67
  121. package/dist/chunk-6CR6FGAO.cjs.map +0 -1
  122. package/dist/chunk-6DPHKKVR.cjs +0 -37
  123. package/dist/chunk-6DPHKKVR.cjs.map +0 -1
  124. package/dist/chunk-6G4QLBSO.js +0 -22
  125. package/dist/chunk-6G4QLBSO.js.map +0 -1
  126. package/dist/chunk-6PIQDY3F.cjs +0 -44
  127. package/dist/chunk-6PIQDY3F.cjs.map +0 -1
  128. package/dist/chunk-6QZLBFZZ.js +0 -116
  129. package/dist/chunk-6QZLBFZZ.js.map +0 -1
  130. package/dist/chunk-7PHIXK4Q.js +0 -17
  131. package/dist/chunk-7PHIXK4Q.js.map +0 -1
  132. package/dist/chunk-A3QJT5UU.cjs +0 -59
  133. package/dist/chunk-A3QJT5UU.cjs.map +0 -1
  134. package/dist/chunk-AMS7MCD6.js +0 -238
  135. package/dist/chunk-AMS7MCD6.js.map +0 -1
  136. package/dist/chunk-BBUEX3DG.cjs +0 -53
  137. package/dist/chunk-BBUEX3DG.cjs.map +0 -1
  138. package/dist/chunk-BD3ZXT5D.js +0 -1
  139. package/dist/chunk-BD3ZXT5D.js.map +0 -1
  140. package/dist/chunk-C6WWOWGR.js +0 -26
  141. package/dist/chunk-C6WWOWGR.js.map +0 -1
  142. package/dist/chunk-CLVXR2JV.cjs +0 -60
  143. package/dist/chunk-CLVXR2JV.cjs.map +0 -1
  144. package/dist/chunk-CYUJJIHO.cjs +0 -26
  145. package/dist/chunk-CYUJJIHO.cjs.map +0 -1
  146. package/dist/chunk-D2OS4757.js +0 -37
  147. package/dist/chunk-D2OS4757.js.map +0 -1
  148. package/dist/chunk-DA47DMPI.js +0 -1
  149. package/dist/chunk-DA47DMPI.js.map +0 -1
  150. package/dist/chunk-DGBAFJTM.js +0 -44
  151. package/dist/chunk-DGBAFJTM.js.map +0 -1
  152. package/dist/chunk-DIJNSNWN.cjs +0 -116
  153. package/dist/chunk-DIJNSNWN.cjs.map +0 -1
  154. package/dist/chunk-DN2SNZIX.cjs +0 -22
  155. package/dist/chunk-DN2SNZIX.cjs.map +0 -1
  156. package/dist/chunk-EKMTR3GD.js +0 -60
  157. package/dist/chunk-EKMTR3GD.js.map +0 -1
  158. package/dist/chunk-FLI7NWQN.cjs +0 -779
  159. package/dist/chunk-FLI7NWQN.cjs.map +0 -1
  160. package/dist/chunk-G43MR76L.cjs +0 -20
  161. package/dist/chunk-G43MR76L.cjs.map +0 -1
  162. package/dist/chunk-GGMUF77N.cjs +0 -37
  163. package/dist/chunk-GGMUF77N.cjs.map +0 -1
  164. package/dist/chunk-GNU6RIKU.js +0 -224
  165. package/dist/chunk-GNU6RIKU.js.map +0 -1
  166. package/dist/chunk-H6BH7OK4.cjs +0 -224
  167. package/dist/chunk-H6BH7OK4.cjs.map +0 -1
  168. package/dist/chunk-HP6T3FTF.js +0 -70
  169. package/dist/chunk-HP6T3FTF.js.map +0 -1
  170. package/dist/chunk-I2O3XXRZ.cjs +0 -16
  171. package/dist/chunk-I2O3XXRZ.cjs.map +0 -1
  172. package/dist/chunk-IE4R2VDM.cjs +0 -1
  173. package/dist/chunk-IE4R2VDM.cjs.map +0 -1
  174. package/dist/chunk-IP6APT2S.js +0 -248
  175. package/dist/chunk-IP6APT2S.js.map +0 -1
  176. package/dist/chunk-IUSTF2DR.js +0 -779
  177. package/dist/chunk-IUSTF2DR.js.map +0 -1
  178. package/dist/chunk-IYQMWYQI.cjs +0 -70
  179. package/dist/chunk-IYQMWYQI.cjs.map +0 -1
  180. package/dist/chunk-IZYJJUOE.cjs +0 -324
  181. package/dist/chunk-IZYJJUOE.cjs.map +0 -1
  182. package/dist/chunk-J2OH6EMB.cjs +0 -26
  183. package/dist/chunk-J2OH6EMB.cjs.map +0 -1
  184. package/dist/chunk-J6AO2ZDU.js +0 -743
  185. package/dist/chunk-J6AO2ZDU.js.map +0 -1
  186. package/dist/chunk-JF4JR5QQ.js +0 -66
  187. package/dist/chunk-JF4JR5QQ.js.map +0 -1
  188. package/dist/chunk-JMRG565N.js +0 -37
  189. package/dist/chunk-JMRG565N.js.map +0 -1
  190. package/dist/chunk-JXXXM7AV.js +0 -53
  191. package/dist/chunk-JXXXM7AV.js.map +0 -1
  192. package/dist/chunk-KV7KHODO.cjs +0 -10
  193. package/dist/chunk-KV7KHODO.cjs.map +0 -1
  194. package/dist/chunk-KXXRVRR6.cjs +0 -83
  195. package/dist/chunk-KXXRVRR6.cjs.map +0 -1
  196. package/dist/chunk-L33DZOLM.cjs +0 -1
  197. package/dist/chunk-L33DZOLM.cjs.map +0 -1
  198. package/dist/chunk-M2OFHRMU.cjs +0 -1
  199. package/dist/chunk-M2OFHRMU.cjs.map +0 -1
  200. package/dist/chunk-NAGMAP3Y.cjs +0 -64
  201. package/dist/chunk-NAGMAP3Y.cjs.map +0 -1
  202. package/dist/chunk-NG77OKLY.js +0 -45
  203. package/dist/chunk-NG77OKLY.js.map +0 -1
  204. package/dist/chunk-NQR4AQOW.cjs +0 -17
  205. package/dist/chunk-NQR4AQOW.cjs.map +0 -1
  206. package/dist/chunk-PHGHKSBT.js +0 -1
  207. package/dist/chunk-PHGHKSBT.js.map +0 -1
  208. package/dist/chunk-QFE6TYBN.cjs +0 -75
  209. package/dist/chunk-QFE6TYBN.cjs.map +0 -1
  210. package/dist/chunk-QUIRXKKE.js +0 -75
  211. package/dist/chunk-QUIRXKKE.js.map +0 -1
  212. package/dist/chunk-RB7HTHG4.js +0 -1
  213. package/dist/chunk-RB7HTHG4.js.map +0 -1
  214. package/dist/chunk-RJ3VNO74.cjs +0 -45
  215. package/dist/chunk-RJ3VNO74.cjs.map +0 -1
  216. package/dist/chunk-RLWGW5R2.js +0 -1
  217. package/dist/chunk-RLWGW5R2.js.map +0 -1
  218. package/dist/chunk-RPLIXWF3.cjs +0 -90
  219. package/dist/chunk-RPLIXWF3.cjs.map +0 -1
  220. package/dist/chunk-RUUBB4EB.js +0 -59
  221. package/dist/chunk-RUUBB4EB.js.map +0 -1
  222. package/dist/chunk-TONAC74L.cjs +0 -743
  223. package/dist/chunk-TONAC74L.cjs.map +0 -1
  224. package/dist/chunk-TXLF6BM6.cjs +0 -22
  225. package/dist/chunk-TXLF6BM6.cjs.map +0 -1
  226. package/dist/chunk-UAFXNE4C.js +0 -324
  227. package/dist/chunk-UAFXNE4C.js.map +0 -1
  228. package/dist/chunk-UBZ7RWBZ.cjs +0 -1
  229. package/dist/chunk-UBZ7RWBZ.cjs.map +0 -1
  230. package/dist/chunk-UDLDOYUB.cjs +0 -1
  231. package/dist/chunk-UDLDOYUB.cjs.map +0 -1
  232. package/dist/chunk-V5HHKVTT.cjs +0 -59
  233. package/dist/chunk-V5HHKVTT.cjs.map +0 -1
  234. package/dist/chunk-VIL33DEX.js +0 -337
  235. package/dist/chunk-VIL33DEX.js.map +0 -1
  236. package/dist/chunk-W4VYO3P6.cjs +0 -66
  237. package/dist/chunk-W4VYO3P6.cjs.map +0 -1
  238. package/dist/chunk-W5LNQWQD.cjs +0 -85
  239. package/dist/chunk-W5LNQWQD.cjs.map +0 -1
  240. package/dist/chunk-XOVH2G3J.cjs +0 -238
  241. package/dist/chunk-XOVH2G3J.cjs.map +0 -1
  242. package/dist/chunk-XWXIO5PH.cjs +0 -248
  243. package/dist/chunk-XWXIO5PH.cjs.map +0 -1
  244. package/dist/chunk-Y3CJJ3GO.cjs +0 -337
  245. package/dist/chunk-Y3CJJ3GO.cjs.map +0 -1
  246. package/dist/chunk-Y5AADOPZ.js +0 -26
  247. package/dist/chunk-Y5AADOPZ.js.map +0 -1
  248. package/dist/chunk-ZEH4W3O4.js +0 -10
  249. package/dist/chunk-ZEH4W3O4.js.map +0 -1
  250. package/dist/index.cjs +0 -61
  251. package/dist/index.cjs.map +0 -1
  252. package/dist/index.d.cts +0 -19
  253. package/dist/index.d.ts +0 -19
  254. package/dist/index.js +0 -61
  255. package/dist/index.js.map +0 -1
  256. package/dist/logger/index.cjs +0 -12
  257. package/dist/logger/index.cjs.map +0 -1
  258. package/dist/logger/index.d.cts +0 -2
  259. package/dist/logger/index.d.ts +0 -2
  260. package/dist/logger/index.js +0 -12
  261. package/dist/logger/index.js.map +0 -1
  262. package/dist/logger/init.cjs +0 -11
  263. package/dist/logger/init.cjs.map +0 -1
  264. package/dist/logger/init.d.cts +0 -15
  265. package/dist/logger/init.d.ts +0 -15
  266. package/dist/logger/init.js +0 -11
  267. package/dist/logger/init.js.map +0 -1
  268. package/dist/sdk.cjs +0 -40
  269. package/dist/sdk.cjs.map +0 -1
  270. package/dist/sdk.d.cts +0 -48
  271. package/dist/sdk.d.ts +0 -48
  272. package/dist/sdk.js +0 -40
  273. package/dist/sdk.js.map +0 -1
  274. package/dist/signers/evm-api-key.cjs +0 -8
  275. package/dist/signers/evm-api-key.cjs.map +0 -1
  276. package/dist/signers/evm-api-key.d.cts +0 -18
  277. package/dist/signers/evm-api-key.d.ts +0 -18
  278. package/dist/signers/evm-api-key.js +0 -8
  279. package/dist/signers/evm-api-key.js.map +0 -1
  280. package/dist/signers/evm-external-wallet.cjs +0 -8
  281. package/dist/signers/evm-external-wallet.cjs.map +0 -1
  282. package/dist/signers/evm-external-wallet.d.cts +0 -26
  283. package/dist/signers/evm-external-wallet.d.ts +0 -26
  284. package/dist/signers/evm-external-wallet.js +0 -8
  285. package/dist/signers/evm-external-wallet.js.map +0 -1
  286. package/dist/signers/index.cjs +0 -25
  287. package/dist/signers/index.cjs.map +0 -1
  288. package/dist/signers/index.d.cts +0 -11
  289. package/dist/signers/index.d.ts +0 -11
  290. package/dist/signers/index.js +0 -25
  291. package/dist/signers/index.js.map +0 -1
  292. package/dist/signers/non-custodial/index.cjs +0 -28
  293. package/dist/signers/non-custodial/index.cjs.map +0 -1
  294. package/dist/signers/non-custodial/index.d.cts +0 -11
  295. package/dist/signers/non-custodial/index.d.ts +0 -11
  296. package/dist/signers/non-custodial/index.js +0 -28
  297. package/dist/signers/non-custodial/index.js.map +0 -1
  298. package/dist/signers/non-custodial/ncs-evm-signer.cjs +0 -14
  299. package/dist/signers/non-custodial/ncs-evm-signer.cjs.map +0 -1
  300. package/dist/signers/non-custodial/ncs-evm-signer.d.cts +0 -30
  301. package/dist/signers/non-custodial/ncs-evm-signer.d.ts +0 -30
  302. package/dist/signers/non-custodial/ncs-evm-signer.js +0 -14
  303. package/dist/signers/non-custodial/ncs-evm-signer.js.map +0 -1
  304. package/dist/signers/non-custodial/ncs-iframe-manager.cjs +0 -8
  305. package/dist/signers/non-custodial/ncs-iframe-manager.cjs.map +0 -1
  306. package/dist/signers/non-custodial/ncs-iframe-manager.d.cts +0 -16
  307. package/dist/signers/non-custodial/ncs-iframe-manager.d.ts +0 -16
  308. package/dist/signers/non-custodial/ncs-iframe-manager.js +0 -8
  309. package/dist/signers/non-custodial/ncs-iframe-manager.js.map +0 -1
  310. package/dist/signers/non-custodial/ncs-signer.cjs +0 -15
  311. package/dist/signers/non-custodial/ncs-signer.cjs.map +0 -1
  312. package/dist/signers/non-custodial/ncs-signer.d.cts +0 -50
  313. package/dist/signers/non-custodial/ncs-signer.d.ts +0 -50
  314. package/dist/signers/non-custodial/ncs-signer.js +0 -15
  315. package/dist/signers/non-custodial/ncs-signer.js.map +0 -1
  316. package/dist/signers/non-custodial/ncs-solana-signer.cjs +0 -14
  317. package/dist/signers/non-custodial/ncs-solana-signer.cjs.map +0 -1
  318. package/dist/signers/non-custodial/ncs-solana-signer.d.cts +0 -27
  319. package/dist/signers/non-custodial/ncs-solana-signer.d.ts +0 -27
  320. package/dist/signers/non-custodial/ncs-solana-signer.js +0 -14
  321. package/dist/signers/non-custodial/ncs-solana-signer.js.map +0 -1
  322. package/dist/signers/non-custodial/ncs-stellar-signer.cjs +0 -14
  323. package/dist/signers/non-custodial/ncs-stellar-signer.cjs.map +0 -1
  324. package/dist/signers/non-custodial/ncs-stellar-signer.d.cts +0 -27
  325. package/dist/signers/non-custodial/ncs-stellar-signer.d.ts +0 -27
  326. package/dist/signers/non-custodial/ncs-stellar-signer.js +0 -14
  327. package/dist/signers/non-custodial/ncs-stellar-signer.js.map +0 -1
  328. package/dist/signers/passkey.cjs +0 -8
  329. package/dist/signers/passkey.cjs.map +0 -1
  330. package/dist/signers/passkey.d.cts +0 -19
  331. package/dist/signers/passkey.d.ts +0 -19
  332. package/dist/signers/passkey.js +0 -8
  333. package/dist/signers/passkey.js.map +0 -1
  334. package/dist/signers/solana-api-key.cjs +0 -8
  335. package/dist/signers/solana-api-key.cjs.map +0 -1
  336. package/dist/signers/solana-api-key.d.cts +0 -18
  337. package/dist/signers/solana-api-key.d.ts +0 -18
  338. package/dist/signers/solana-api-key.js +0 -8
  339. package/dist/signers/solana-api-key.js.map +0 -1
  340. package/dist/signers/solana-external-wallet.cjs +0 -9
  341. package/dist/signers/solana-external-wallet.cjs.map +0 -1
  342. package/dist/signers/solana-external-wallet.d.cts +0 -24
  343. package/dist/signers/solana-external-wallet.d.ts +0 -24
  344. package/dist/signers/solana-external-wallet.js +0 -9
  345. package/dist/signers/solana-external-wallet.js.map +0 -1
  346. package/dist/signers/stellar-external-wallet.cjs +0 -8
  347. package/dist/signers/stellar-external-wallet.cjs.map +0 -1
  348. package/dist/signers/stellar-external-wallet.d.cts +0 -23
  349. package/dist/signers/stellar-external-wallet.d.ts +0 -23
  350. package/dist/signers/stellar-external-wallet.js +0 -8
  351. package/dist/signers/stellar-external-wallet.js.map +0 -1
  352. package/dist/signers/types.cjs +0 -10
  353. package/dist/signers/types.cjs.map +0 -1
  354. package/dist/signers/types.d.cts +0 -91
  355. package/dist/signers/types.d.ts +0 -91
  356. package/dist/signers/types.js +0 -10
  357. package/dist/signers/types.js.map +0 -1
  358. package/dist/utils/constants.cjs +0 -14
  359. package/dist/utils/constants.cjs.map +0 -1
  360. package/dist/utils/constants.d.cts +0 -6
  361. package/dist/utils/constants.d.ts +0 -6
  362. package/dist/utils/constants.js +0 -14
  363. package/dist/utils/constants.js.map +0 -1
  364. package/dist/utils/errors.cjs +0 -56
  365. package/dist/utils/errors.cjs.map +0 -1
  366. package/dist/utils/errors.d.cts +0 -80
  367. package/dist/utils/errors.d.ts +0 -80
  368. package/dist/utils/errors.js +0 -56
  369. package/dist/utils/errors.js.map +0 -1
  370. package/dist/utils/signer-validation.cjs +0 -11
  371. package/dist/utils/signer-validation.cjs.map +0 -1
  372. package/dist/utils/signer-validation.d.cts +0 -9
  373. package/dist/utils/signer-validation.d.ts +0 -9
  374. package/dist/utils/signer-validation.js +0 -11
  375. package/dist/utils/signer-validation.js.map +0 -1
  376. package/dist/wallets/__tests__/setup.cjs +0 -37
  377. package/dist/wallets/__tests__/setup.cjs.map +0 -1
  378. package/dist/wallets/__tests__/setup.d.cts +0 -2
  379. package/dist/wallets/__tests__/setup.d.ts +0 -2
  380. package/dist/wallets/__tests__/setup.js +0 -37
  381. package/dist/wallets/__tests__/setup.js.map +0 -1
  382. package/dist/wallets/__tests__/test-helpers.cjs +0 -94
  383. package/dist/wallets/__tests__/test-helpers.cjs.map +0 -1
  384. package/dist/wallets/__tests__/test-helpers.d.cts +0 -36
  385. package/dist/wallets/__tests__/test-helpers.d.ts +0 -36
  386. package/dist/wallets/__tests__/test-helpers.js +0 -94
  387. package/dist/wallets/__tests__/test-helpers.js.map +0 -1
  388. package/dist/wallets/evm.cjs +0 -26
  389. package/dist/wallets/evm.cjs.map +0 -1
  390. package/dist/wallets/evm.d.cts +0 -155
  391. package/dist/wallets/evm.d.ts +0 -155
  392. package/dist/wallets/evm.js +0 -26
  393. package/dist/wallets/evm.js.map +0 -1
  394. package/dist/wallets/solana.cjs +0 -27
  395. package/dist/wallets/solana.cjs.map +0 -1
  396. package/dist/wallets/solana.d.cts +0 -28
  397. package/dist/wallets/solana.d.ts +0 -28
  398. package/dist/wallets/solana.js +0 -27
  399. package/dist/wallets/solana.js.map +0 -1
  400. package/dist/wallets/stellar.cjs +0 -26
  401. package/dist/wallets/stellar.cjs.map +0 -1
  402. package/dist/wallets/stellar.d.cts +0 -30
  403. package/dist/wallets/stellar.d.ts +0 -30
  404. package/dist/wallets/stellar.js +0 -26
  405. package/dist/wallets/stellar.js.map +0 -1
  406. package/dist/wallets/types.cjs +0 -1
  407. package/dist/wallets/types.cjs.map +0 -1
  408. package/dist/wallets/types.d.cts +0 -170
  409. package/dist/wallets/types.d.ts +0 -170
  410. package/dist/wallets/types.js +0 -1
  411. package/dist/wallets/types.js.map +0 -1
  412. package/dist/wallets/wallet-factory.cjs +0 -34
  413. package/dist/wallets/wallet-factory.cjs.map +0 -1
  414. package/dist/wallets/wallet-factory.d.cts +0 -33
  415. package/dist/wallets/wallet-factory.d.ts +0 -33
  416. package/dist/wallets/wallet-factory.js +0 -34
  417. package/dist/wallets/wallet-factory.js.map +0 -1
  418. package/dist/wallets/wallet.cjs +0 -25
  419. package/dist/wallets/wallet.cjs.map +0 -1
  420. package/dist/wallets/wallet.d.cts +0 -168
  421. package/dist/wallets/wallet.d.ts +0 -168
  422. package/dist/wallets/wallet.js +0 -25
  423. package/dist/wallets/wallet.js.map +0 -1
@@ -1,373 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
- var _chunkQFE6TYBNcjs = require('../../chunk-QFE6TYBN.cjs');
10
-
11
-
12
- var _chunkXWXIO5PHcjs = require('../../chunk-XWXIO5PH.cjs');
13
- require('../../chunk-4GADBBZN.cjs');
14
- require('../../chunk-BBUEX3DG.cjs');
15
- require('../../chunk-NQR4AQOW.cjs');
16
-
17
-
18
-
19
-
20
- var _chunkW4VYO3P6cjs = require('../../chunk-W4VYO3P6.cjs');
21
-
22
- // src/api/__tests__/test-utils.ts
23
- var _vitest = require('vitest');
24
- var createMockResponse = ({
25
- data,
26
- status = 200,
27
- ok = true,
28
- statusText = "OK"
29
- }) => {
30
- return {
31
- json: _vitest.vi.fn().mockResolvedValue(data),
32
- ok,
33
- status,
34
- statusText
35
- };
36
- };
37
- var createMockSuccessResponse = (data) => createMockResponse({ data });
38
- var createMockErrorResponse = (data, status = 400, statusText = "Bad Request") => createMockResponse({ data, status, ok: false, statusText });
39
- var createMockCrossmint = (overrides = {}) => {
40
- const base = _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
41
- apiKey: _chunkQFE6TYBNcjs.MOCK_API_KEY
42
- }, overrides);
43
- return _chunkW4VYO3P6cjs.__spreadProps.call(void 0, _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {}, base), {
44
- setJwt: _vitest.vi.fn().mockReturnThis(),
45
- experimental_setCustomAuth: _vitest.vi.fn().mockReturnThis()
46
- });
47
- };
48
- var createTestApiClient = (crossmint) => {
49
- return new (0, _chunkXWXIO5PHcjs.ApiClient)(crossmint || createMockCrossmint());
50
- };
51
- var createServerSideApiClient = () => {
52
- const apiClient = createTestApiClient();
53
- Object.defineProperty(apiClient, "isServerSide", {
54
- get: () => true,
55
- configurable: true
56
- });
57
- return apiClient;
58
- };
59
- var extractFetchCall = (mockFn) => {
60
- const calls = mockFn.mock.calls;
61
- if (calls.length === 0) {
62
- return void 0;
63
- }
64
- const lastCall = calls[calls.length - 1];
65
- return {
66
- path: lastCall[0],
67
- options: lastCall[1]
68
- };
69
- };
70
- var expectRequestPath = (call, expectedPath) => {
71
- _vitest.expect.call(void 0, call == null ? void 0 : call.path).toBe(expectedPath);
72
- };
73
- var expectCommonHeaders = (headers) => {
74
- const headerObj = headers;
75
- _vitest.expect.call(void 0, headerObj["Content-Type"]).toBe("application/json");
76
- };
77
- var expectRequestBody = (options, expectedBody) => {
78
- _vitest.expect.call(void 0, options.body).toBe(JSON.stringify(expectedBody));
79
- };
80
- var validateRequest = (call, expectedPath, expectedBody) => {
81
- _vitest.expect.call(void 0, call).toBeDefined();
82
- if (!call) {
83
- return;
84
- }
85
- expectRequestPath(call, expectedPath);
86
- if (call.options.headers) {
87
- expectCommonHeaders(call.options.headers);
88
- }
89
- if (expectedBody !== void 0 && call.options) {
90
- expectRequestBody(call.options, expectedBody);
91
- }
92
- };
93
- var testHttpErrorResponse = (apiCall, mockFn, errorData, statusCode) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
94
- mockFn.mockResolvedValue(createMockErrorResponse(errorData, statusCode));
95
- const result = yield apiCall();
96
- _vitest.expect.call(void 0, isErrorResponse(result)).toBe(true);
97
- if (isErrorResponse(result)) {
98
- _vitest.expect.call(void 0, result.error).toBe(true);
99
- if (errorData.message) {
100
- _vitest.expect.call(void 0, result.message).toBe(errorData.message);
101
- }
102
- }
103
- });
104
- var testCommonHttpErrors = (_0, _1, ..._2) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, [_0, _1, ..._2], function* (apiCall, mockFn, skipStatuses = []) {
105
- for (const { status, message } of _chunkQFE6TYBNcjs.HTTP_ERROR_STATUSES) {
106
- if (skipStatuses.includes(status)) {
107
- continue;
108
- }
109
- const errorResponse = { error: true, message };
110
- mockFn.mockResolvedValueOnce(createMockErrorResponse(errorResponse, status));
111
- const result = yield apiCall();
112
- _vitest.expect.call(void 0, isErrorResponse(result)).toBe(true);
113
- }
114
- });
115
- var testNetworkError = (apiCall, mockFn) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
116
- mockFn.mockRejectedValue(new Error("Network error"));
117
- yield _vitest.expect.call(void 0, apiCall()).rejects.toThrow("Network error");
118
- });
119
- var testInvalidJsonResponse = (apiCall, mockFn) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
120
- const mockResponse = {
121
- json: _vitest.vi.fn().mockRejectedValue(new Error("Invalid JSON")),
122
- ok: true,
123
- status: 200
124
- };
125
- mockFn.mockResolvedValue(mockResponse);
126
- yield _vitest.expect.call(void 0, apiCall()).rejects.toThrow();
127
- });
128
- var testTimeoutError = (apiCall, mockFn) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
129
- mockFn.mockImplementation(
130
- () => new Promise((_, reject) => setTimeout(() => reject(new Error("Request timeout")), 0))
131
- );
132
- yield _vitest.expect.call(void 0, apiCall()).rejects.toThrow("Request timeout");
133
- });
134
- var testMalformedResponse = (apiCall, mockFn, malformedData) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
135
- mockFn.mockResolvedValue(createMockSuccessResponse(malformedData));
136
- const result = yield apiCall();
137
- _vitest.expect.call(void 0, result).toEqual(malformedData);
138
- });
139
- var createMockWalletResponse = (overrides = {}) => _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
140
- address: _chunkQFE6TYBNcjs.WALLET_LOCATORS.evmAddress,
141
- chainType: "evm",
142
- type: "smart",
143
- config: {
144
- adminSigner: {
145
- type: "external-wallet",
146
- address: _chunkQFE6TYBNcjs.TEST_ADDRESSES.EVM_TEST
147
- }
148
- }
149
- }, overrides);
150
- var createMockSendResponse = (overrides = {}) => _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
151
- id: "txn-123",
152
- status: "pending",
153
- chainType: "evm",
154
- walletType: "evm-smart-wallet",
155
- params: {
156
- transaction: "0x1234567890abcdef",
157
- signer: "api-key:test"
158
- },
159
- onChain: {
160
- txId: "0xabcdef1234567890abcdef1234567890abcdef12",
161
- explorerLink: "https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12"
162
- },
163
- createdAt: Date.now()
164
- }, overrides);
165
- function isErrorResponse(response) {
166
- return typeof response === "object" && response !== null && "error" in response && response.error === true;
167
- }
168
- function isSuccessWalletResponse(response) {
169
- return typeof response === "object" && response !== null && "address" in response && "chainType" in response && "type" in response;
170
- }
171
- function isSuccessTransactionResponse(response) {
172
- return typeof response === "object" && response !== null && "id" in response && "status" in response && "chainType" in response;
173
- }
174
- var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
175
- var isValidEthereumAddress = (address) => {
176
- return /^0x[a-fA-F0-9]{40}$/.test(address);
177
- };
178
- var isValidSolanaAddress = (address) => {
179
- return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
180
- };
181
- var createIntegrationApiClient = (apiKey, baseUrl, overrides = {}) => {
182
- const base = _chunkW4VYO3P6cjs.__spreadValues.call(void 0, _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
183
- apiKey
184
- }, baseUrl && { overrideBaseUrl: baseUrl }), overrides);
185
- const crossmint = _chunkW4VYO3P6cjs.__spreadProps.call(void 0, _chunkW4VYO3P6cjs.__spreadValues.call(void 0, {}, base), {
186
- setJwt: () => crossmint,
187
- experimental_setCustomAuth: () => crossmint
188
- });
189
- return new (0, _chunkXWXIO5PHcjs.ApiClient)(crossmint);
190
- };
191
- var TestDataFactory = class {
192
- constructor() {
193
- this.wallets = [];
194
- this.transactions = [];
195
- }
196
- addWallet(address) {
197
- if (address && !this.wallets.includes(address)) {
198
- this.wallets.push(address);
199
- }
200
- }
201
- addTransaction(id) {
202
- if (id && !this.transactions.includes(id)) {
203
- this.transactions.push(id);
204
- }
205
- }
206
- getWallet(index = 0) {
207
- return this.wallets[index];
208
- }
209
- getTransaction(index = 0) {
210
- return this.transactions[index];
211
- }
212
- hasWallets() {
213
- return this.wallets.length > 0;
214
- }
215
- clear() {
216
- this.wallets = [];
217
- this.transactions = [];
218
- }
219
- };
220
- function ensureWalletExists(_0, _1) {
221
- return _chunkW4VYO3P6cjs.__async.call(void 0, this, arguments, function* (apiClient, testData, options = {}) {
222
- if (testData.hasWallets()) {
223
- return testData.getWallet();
224
- }
225
- const { chainType = "evm", type = "mpc", owner, testName = "default" } = options;
226
- const ownerId = owner || `userId:integration-${testName}-${Date.now()}`;
227
- const createResult = yield apiClient.createWallet(_chunkW4VYO3P6cjs.__spreadValues.call(void 0, {
228
- chainType,
229
- type
230
- }, owner && { owner: ownerId }));
231
- if (isSuccessWalletResponse(createResult)) {
232
- testData.addWallet(createResult.address);
233
- return createResult.address;
234
- }
235
- return void 0;
236
- });
237
- }
238
- function createTestWallet(apiClient, testData, params) {
239
- return _chunkW4VYO3P6cjs.__async.call(void 0, this, null, function* () {
240
- const result = yield apiClient.createWallet(params);
241
- if (isSuccessWalletResponse(result)) {
242
- testData.addWallet(result.address);
243
- }
244
- return result;
245
- });
246
- }
247
- function expectErrorResponse(response, message) {
248
- _vitest.expect.call(void 0, isErrorResponse(response)).toBe(true);
249
- if (message) {
250
- _vitest.expect.call(void 0, response.message).toBeDefined();
251
- }
252
- }
253
- function expectSuccessWalletResponse(response) {
254
- _vitest.expect.call(void 0, isSuccessWalletResponse(response)).toBe(true);
255
- }
256
- function expectSuccessTransactionResponse(response) {
257
- _vitest.expect.call(void 0, isSuccessTransactionResponse(response)).toBe(true);
258
- }
259
- var fundWallet = (apiClient, walletLocator, amount, token = "usdxm", chain = "base-sepolia") => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
260
- const params = {
261
- amount,
262
- token,
263
- chain
264
- };
265
- const result = yield apiClient.fundWallet(walletLocator, params);
266
- if (isErrorResponse(result)) {
267
- throw new Error(`Failed to fund wallet: ${result.message || "Unknown error"}`);
268
- }
269
- yield delay(_chunkQFE6TYBNcjs.DELAY_LONG);
270
- return result;
271
- });
272
- var approveTransaction = (_0, _1, _2, ..._3) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, [_0, _1, _2, ..._3], function* (apiClient, walletLocator, transactionId, maxRetries = _chunkQFE6TYBNcjs.TEST_VALUES.APPROVE_TRANSACTION_MAX_RETRIES) {
273
- var _a;
274
- for (let i = 0; i < maxRetries; i++) {
275
- const transaction = yield apiClient.getTransaction(walletLocator, transactionId);
276
- if (isErrorResponse(transaction)) {
277
- throw new Error(`Transaction not found: ${transaction.message || "Unknown error"}`);
278
- }
279
- if ("status" in transaction && (transaction.status === "success" || transaction.status === "failed")) {
280
- return transaction;
281
- }
282
- const pendingApprovals = "approvals" in transaction ? (_a = transaction.approvals) == null ? void 0 : _a.pending : void 0;
283
- if (pendingApprovals && pendingApprovals.length > 0) {
284
- const approvals = {
285
- approvals: pendingApprovals.map((approval) => ({
286
- signer: approval.signer.locator,
287
- signature: ""
288
- }))
289
- };
290
- const approvedTransaction = yield apiClient.approveTransaction(walletLocator, transactionId, approvals);
291
- if (isErrorResponse(approvedTransaction)) {
292
- throw new Error(`Failed to approve transaction: ${approvedTransaction.message || "Unknown error"}`);
293
- }
294
- yield delay(_chunkQFE6TYBNcjs.DELAY_RATE_LIMIT_WINDOW);
295
- continue;
296
- }
297
- yield delay(_chunkQFE6TYBNcjs.DELAY_LONG);
298
- }
299
- const finalTransaction = yield apiClient.getTransaction(walletLocator, transactionId);
300
- if (isErrorResponse(finalTransaction)) {
301
- throw new Error(`Transaction not found after retries: ${finalTransaction.message || "Unknown error"}`);
302
- }
303
- if (!("status" in finalTransaction)) {
304
- throw new Error("Transaction response missing status property");
305
- }
306
- return finalTransaction;
307
- });
308
- var fundWalletAndWait = (apiClient, walletLocator, amount = 1, token = "usdxm", chain = "base-sepolia") => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
309
- return fundWallet(apiClient, walletLocator, amount, token, chain);
310
- });
311
- var sendTokenAndApprove = (apiClient, walletLocator, tokenLocator, recipient, amount) => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
312
- const sendResult = yield apiClient.send(walletLocator, tokenLocator, {
313
- recipient,
314
- amount
315
- });
316
- if (isErrorResponse(sendResult)) {
317
- throw new Error(`Failed to send token: ${sendResult.message || "Unknown error"}`);
318
- }
319
- if (typeof sendResult === "object" && sendResult !== null && "id" in sendResult && typeof sendResult.id === "string") {
320
- return approveTransaction(apiClient, walletLocator, sendResult.id);
321
- }
322
- throw new Error("Transaction ID not found in send response");
323
- });
324
- var ensureWalletFunded = (apiClient, walletLocator, amount = 1, token = "usdxm", chain = "base-sepolia") => _chunkW4VYO3P6cjs.__async.call(void 0, void 0, null, function* () {
325
- try {
326
- yield fundWallet(apiClient, walletLocator, amount, token, chain);
327
- } catch (error) {
328
- const errorMessage = error instanceof Error ? error.message : String(error);
329
- if (!errorMessage.includes("already funded") && !errorMessage.includes("insufficient")) {
330
- throw error;
331
- }
332
- }
333
- });
334
-
335
-
336
-
337
-
338
-
339
-
340
-
341
-
342
-
343
-
344
-
345
-
346
-
347
-
348
-
349
-
350
-
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
-
361
-
362
-
363
-
364
-
365
-
366
-
367
-
368
-
369
-
370
-
371
-
372
- exports.TestDataFactory = TestDataFactory; exports.approveTransaction = approveTransaction; exports.createIntegrationApiClient = createIntegrationApiClient; exports.createMockCrossmint = createMockCrossmint; exports.createMockErrorResponse = createMockErrorResponse; exports.createMockResponse = createMockResponse; exports.createMockSendResponse = createMockSendResponse; exports.createMockSuccessResponse = createMockSuccessResponse; exports.createMockWalletResponse = createMockWalletResponse; exports.createServerSideApiClient = createServerSideApiClient; exports.createTestApiClient = createTestApiClient; exports.createTestWallet = createTestWallet; exports.delay = delay; exports.ensureWalletExists = ensureWalletExists; exports.ensureWalletFunded = ensureWalletFunded; exports.expectCommonHeaders = expectCommonHeaders; exports.expectErrorResponse = expectErrorResponse; exports.expectRequestBody = expectRequestBody; exports.expectRequestPath = expectRequestPath; exports.expectSuccessTransactionResponse = expectSuccessTransactionResponse; exports.expectSuccessWalletResponse = expectSuccessWalletResponse; exports.extractFetchCall = extractFetchCall; exports.fundWallet = fundWallet; exports.fundWalletAndWait = fundWalletAndWait; exports.isErrorResponse = isErrorResponse; exports.isSuccessTransactionResponse = isSuccessTransactionResponse; exports.isSuccessWalletResponse = isSuccessWalletResponse; exports.isValidEthereumAddress = isValidEthereumAddress; exports.isValidSolanaAddress = isValidSolanaAddress; exports.sendTokenAndApprove = sendTokenAndApprove; exports.testCommonHttpErrors = testCommonHttpErrors; exports.testHttpErrorResponse = testHttpErrorResponse; exports.testInvalidJsonResponse = testInvalidJsonResponse; exports.testMalformedResponse = testMalformedResponse; exports.testNetworkError = testNetworkError; exports.testTimeoutError = testTimeoutError; exports.validateRequest = validateRequest;
373
- //# sourceMappingURL=test-utils.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/api/__tests__/test-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, vi, type MockedFunction } from \"vitest\";\nimport type { Crossmint } from \"@crossmint/common-sdk-base\";\nimport { ApiClient } from \"../client\";\nimport type {\n CreateWalletResponse,\n CreateWalletParams,\n SendResponse,\n FundWalletParams,\n FundWalletResponse,\n GetTransactionResponse,\n ApproveTransactionParams,\n WalletLocator,\n} from \"../types\";\nimport {\n HTTP_ERROR_STATUSES,\n DELAY_LONG,\n DELAY_RATE_LIMIT_WINDOW,\n MOCK_API_KEY,\n TEST_VALUES,\n WALLET_LOCATORS,\n TEST_ADDRESSES,\n} from \"./constants\";\n\nexport type MockResponseOptions<T> = {\n data: T;\n status?: number;\n ok?: boolean;\n statusText?: string;\n};\n\nexport type FetchCallInfo = { path: string; options: RequestInit };\n\nexport const createMockResponse = <T>({\n data,\n status = 200,\n ok = true,\n statusText = \"OK\",\n}: MockResponseOptions<T>): Response => {\n return {\n json: vi.fn().mockResolvedValue(data),\n ok,\n status,\n statusText,\n } as unknown as Response;\n};\n\nexport const createMockSuccessResponse = <T>(data: T): Response => createMockResponse({ data });\n\nexport const createMockErrorResponse = <T>(data: T, status = 400, statusText = \"Bad Request\"): Response =>\n createMockResponse({ data, status, ok: false, statusText });\n\nexport const createMockCrossmint = (overrides: Partial<Crossmint> = {}): Crossmint => {\n const base = {\n apiKey: MOCK_API_KEY,\n ...overrides,\n };\n return {\n ...base,\n setJwt: vi.fn().mockReturnThis(),\n experimental_setCustomAuth: vi.fn().mockReturnThis(),\n } as Crossmint;\n};\n\nexport const createTestApiClient = (crossmint?: Crossmint): ApiClient => {\n return new ApiClient(crossmint || createMockCrossmint());\n};\n\nexport const createServerSideApiClient = (): ApiClient => {\n const apiClient = createTestApiClient();\n Object.defineProperty(apiClient, \"isServerSide\", {\n get: () => true,\n configurable: true,\n });\n return apiClient;\n};\n\nexport const extractFetchCall = (\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n): FetchCallInfo | undefined => {\n const calls = (mockFn as MockedFunction<any>).mock.calls;\n if (calls.length === 0) {\n return undefined;\n }\n const lastCall = calls[calls.length - 1];\n return {\n path: lastCall[0] as string,\n options: lastCall[1] as RequestInit,\n };\n};\n\nexport const expectRequestPath = (call: FetchCallInfo | undefined, expectedPath: string) => {\n expect(call?.path).toBe(expectedPath);\n};\n\nexport const expectCommonHeaders = (headers: HeadersInit) => {\n const headerObj = headers as Record<string, string>;\n expect(headerObj[\"Content-Type\"]).toBe(\"application/json\");\n};\n\nexport const expectRequestBody = (options: RequestInit, expectedBody: unknown) => {\n expect(options.body).toBe(JSON.stringify(expectedBody));\n};\n\nexport const validateRequest = (call: FetchCallInfo | undefined, expectedPath: string, expectedBody?: unknown) => {\n expect(call).toBeDefined();\n if (!call) {\n return;\n }\n expectRequestPath(call, expectedPath);\n if (call.options.headers) {\n expectCommonHeaders(call.options.headers);\n }\n if (expectedBody !== undefined && call.options) {\n expectRequestBody(call.options, expectedBody);\n }\n};\n\nexport const testHttpErrorResponse = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>,\n errorData: { error: boolean; message?: string },\n statusCode: number\n) => {\n (mockFn as MockedFunction<any>).mockResolvedValue(createMockErrorResponse(errorData, statusCode));\n const result = await apiCall();\n expect(isErrorResponse(result)).toBe(true);\n if (isErrorResponse(result)) {\n expect(result.error).toBe(true);\n if (errorData.message) {\n expect(result.message).toBe(errorData.message);\n }\n }\n};\n\nexport const testCommonHttpErrors = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>,\n skipStatuses: number[] = []\n) => {\n for (const { status, message } of HTTP_ERROR_STATUSES) {\n if (skipStatuses.includes(status)) {\n continue;\n }\n const errorResponse = { error: true, message };\n (mockFn as MockedFunction<any>).mockResolvedValueOnce(createMockErrorResponse(errorResponse, status));\n const result = await apiCall();\n expect(isErrorResponse(result)).toBe(true);\n }\n};\n\nexport const testNetworkError = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n) => {\n (mockFn as MockedFunction<any>).mockRejectedValue(new Error(\"Network error\"));\n await expect(apiCall()).rejects.toThrow(\"Network error\");\n};\n\nexport const testInvalidJsonResponse = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n) => {\n const mockResponse = {\n json: vi.fn().mockRejectedValue(new Error(\"Invalid JSON\")),\n ok: true,\n status: 200,\n } as unknown as Response;\n (mockFn as MockedFunction<any>).mockResolvedValue(mockResponse);\n await expect(apiCall()).rejects.toThrow();\n};\n\nexport const testTimeoutError = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>\n) => {\n (mockFn as MockedFunction<any>).mockImplementation(\n () => new Promise((_, reject) => setTimeout(() => reject(new Error(\"Request timeout\")), 0))\n );\n await expect(apiCall()).rejects.toThrow(\"Request timeout\");\n};\n\nexport const testMalformedResponse = async <T>(\n apiCall: () => Promise<T>,\n mockFn: MockedFunction<any> | MockedFunction<ApiClient[\"post\"]> | MockedFunction<ApiClient[\"get\"]>,\n malformedData: unknown\n) => {\n (mockFn as MockedFunction<any>).mockResolvedValue(createMockSuccessResponse(malformedData));\n const result = await apiCall();\n expect(result).toEqual(malformedData);\n};\n\nexport const createMockWalletResponse = (overrides: Partial<CreateWalletResponse> = {}): CreateWalletResponse =>\n ({\n address: WALLET_LOCATORS.evmAddress,\n chainType: \"evm\",\n type: \"smart\",\n config: {\n adminSigner: {\n type: \"external-wallet\",\n address: TEST_ADDRESSES.EVM_TEST,\n },\n },\n ...overrides,\n }) as CreateWalletResponse;\n\nexport const createMockSendResponse = (overrides: Partial<SendResponse> = {}): SendResponse =>\n ({\n id: \"txn-123\",\n status: \"pending\",\n chainType: \"evm\",\n walletType: \"evm-smart-wallet\",\n params: {\n transaction: \"0x1234567890abcdef\",\n signer: \"api-key:test\",\n },\n onChain: {\n txId: \"0xabcdef1234567890abcdef1234567890abcdef12\",\n explorerLink: \"https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12\",\n },\n createdAt: Date.now(),\n ...overrides,\n }) as unknown as SendResponse;\n\nexport interface ErrorResponse {\n error: true;\n message?: string;\n details?: unknown;\n}\n\nexport interface SuccessWalletResponse {\n address: string;\n chainType: string;\n type: string;\n config?: {\n adminSigner?: {\n type: string;\n address: string;\n };\n };\n}\n\nexport interface SuccessTransactionResponse {\n id: string;\n status: string;\n chainType: string;\n}\n\nexport function isErrorResponse(response: unknown): response is ErrorResponse {\n return (\n typeof response === \"object\" &&\n response !== null &&\n \"error\" in response &&\n (response as ErrorResponse).error === true\n );\n}\n\nexport function isSuccessWalletResponse(response: unknown): response is SuccessWalletResponse {\n return (\n typeof response === \"object\" &&\n response !== null &&\n \"address\" in response &&\n \"chainType\" in response &&\n \"type\" in response\n );\n}\n\nexport function isSuccessTransactionResponse(response: unknown): response is SuccessTransactionResponse {\n return (\n typeof response === \"object\" &&\n response !== null &&\n \"id\" in response &&\n \"status\" in response &&\n \"chainType\" in response\n );\n}\n\nexport const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const isValidEthereumAddress = (address: string): boolean => {\n return /^0x[a-fA-F0-9]{40}$/.test(address);\n};\n\nexport const isValidSolanaAddress = (address: string): boolean => {\n return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);\n};\n\n/**\n * Creates an API client for integration tests using environment variables.\n * This is different from createTestApiClient which uses mocked data.\n */\nexport const createIntegrationApiClient = (\n apiKey: string,\n baseUrl?: string,\n overrides: Partial<Crossmint> = {}\n): ApiClient => {\n const base = {\n apiKey,\n ...(baseUrl && { overrideBaseUrl: baseUrl }),\n ...overrides,\n };\n const crossmint = {\n ...base,\n setJwt: () => crossmint as Crossmint,\n experimental_setCustomAuth: () => crossmint as Crossmint,\n } as Crossmint;\n return new ApiClient(crossmint);\n};\n\nexport class TestDataFactory {\n private wallets: string[] = [];\n private transactions: string[] = [];\n\n addWallet(address: string): void {\n if (address && !this.wallets.includes(address)) {\n this.wallets.push(address);\n }\n }\n\n addTransaction(id: string): void {\n if (id && !this.transactions.includes(id)) {\n this.transactions.push(id);\n }\n }\n\n getWallet(index = 0): string | undefined {\n return this.wallets[index];\n }\n\n getTransaction(index = 0): string | undefined {\n return this.transactions[index];\n }\n\n hasWallets(): boolean {\n return this.wallets.length > 0;\n }\n\n clear(): void {\n this.wallets = [];\n this.transactions = [];\n }\n}\n\nexport async function ensureWalletExists(\n apiClient: ApiClient,\n testData: TestDataFactory,\n options: {\n chainType?: \"evm\" | \"solana\";\n type?: \"mpc\" | \"smart\";\n owner?: string;\n testName?: string;\n } = {}\n): Promise<string | undefined> {\n if (testData.hasWallets()) {\n return testData.getWallet();\n }\n\n const { chainType = \"evm\", type = \"mpc\", owner, testName = \"default\" } = options;\n const ownerId = owner || `userId:integration-${testName}-${Date.now()}`;\n\n const createResult = await apiClient.createWallet({\n chainType,\n type,\n ...(owner && { owner: ownerId }),\n });\n\n if (isSuccessWalletResponse(createResult)) {\n testData.addWallet(createResult.address);\n return createResult.address;\n }\n\n return undefined;\n}\n\nexport async function createTestWallet(\n apiClient: ApiClient,\n testData: TestDataFactory,\n params: CreateWalletParams\n): Promise<CreateWalletResponse> {\n const result = await apiClient.createWallet(params);\n if (isSuccessWalletResponse(result)) {\n testData.addWallet(result.address);\n }\n return result;\n}\n\nexport function expectErrorResponse(response: unknown, message?: string): asserts response is ErrorResponse {\n expect(isErrorResponse(response)).toBe(true);\n if (message) {\n expect((response as ErrorResponse).message).toBeDefined();\n }\n}\n\nexport function expectSuccessWalletResponse(response: unknown): asserts response is SuccessWalletResponse {\n expect(isSuccessWalletResponse(response)).toBe(true);\n}\n\nexport function expectSuccessTransactionResponse(response: unknown): asserts response is SuccessTransactionResponse {\n expect(isSuccessTransactionResponse(response)).toBe(true);\n}\n\nexport const fundWallet = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n amount: number,\n token: \"usdc\" | \"usdxm\" = \"usdxm\",\n chain = \"base-sepolia\"\n): Promise<FundWalletResponse> => {\n const params: FundWalletParams = {\n amount,\n token,\n chain: chain as any,\n };\n\n const result = await apiClient.fundWallet(walletLocator, params);\n\n if (isErrorResponse(result)) {\n throw new Error(`Failed to fund wallet: ${result.message || \"Unknown error\"}`);\n }\n\n await delay(DELAY_LONG);\n\n return result;\n};\n\nexport const approveTransaction = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n transactionId: string,\n maxRetries: number = TEST_VALUES.APPROVE_TRANSACTION_MAX_RETRIES\n): Promise<GetTransactionResponse> => {\n for (let i = 0; i < maxRetries; i++) {\n const transaction = await apiClient.getTransaction(walletLocator, transactionId);\n\n if (isErrorResponse(transaction)) {\n throw new Error(`Transaction not found: ${transaction.message || \"Unknown error\"}`);\n }\n\n // Type guard: check if transaction has status property (success response)\n if (\"status\" in transaction && (transaction.status === \"success\" || transaction.status === \"failed\")) {\n return transaction;\n }\n\n const pendingApprovals = \"approvals\" in transaction ? transaction.approvals?.pending : undefined;\n\n if (pendingApprovals && pendingApprovals.length > 0) {\n const approvals: ApproveTransactionParams = {\n approvals: pendingApprovals.map((approval) => ({\n signer: approval.signer.locator,\n signature: \"\",\n })),\n };\n\n const approvedTransaction = await apiClient.approveTransaction(walletLocator, transactionId, approvals);\n\n if (isErrorResponse(approvedTransaction)) {\n throw new Error(`Failed to approve transaction: ${approvedTransaction.message || \"Unknown error\"}`);\n }\n\n await delay(DELAY_RATE_LIMIT_WINDOW);\n continue;\n }\n\n await delay(DELAY_LONG);\n }\n\n const finalTransaction = await apiClient.getTransaction(walletLocator, transactionId);\n if (isErrorResponse(finalTransaction)) {\n throw new Error(`Transaction not found after retries: ${finalTransaction.message || \"Unknown error\"}`);\n }\n\n // Type guard: ensure transaction has status property before returning\n if (!(\"status\" in finalTransaction)) {\n throw new Error(\"Transaction response missing status property\");\n }\n\n return finalTransaction;\n};\n\nexport const fundWalletAndWait = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n amount = 1.0,\n token: \"usdc\" | \"usdxm\" = \"usdxm\",\n chain = \"base-sepolia\"\n): Promise<FundWalletResponse> => {\n return fundWallet(apiClient, walletLocator, amount, token, chain);\n};\n\nexport const sendTokenAndApprove = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n tokenLocator: string,\n recipient: string,\n amount: string\n): Promise<GetTransactionResponse> => {\n const sendResult = await apiClient.send(walletLocator, tokenLocator, {\n recipient,\n amount,\n });\n\n if (isErrorResponse(sendResult)) {\n throw new Error(`Failed to send token: ${sendResult.message || \"Unknown error\"}`);\n }\n\n // SendResponse can have an id field when successful\n if (\n typeof sendResult === \"object\" &&\n sendResult !== null &&\n \"id\" in sendResult &&\n typeof (sendResult as { id: unknown }).id === \"string\"\n ) {\n return approveTransaction(apiClient, walletLocator, (sendResult as { id: string }).id);\n }\n\n throw new Error(\"Transaction ID not found in send response\");\n};\n\nexport const ensureWalletFunded = async (\n apiClient: ApiClient,\n walletLocator: WalletLocator,\n amount = 1.0,\n token: \"usdc\" | \"usdxm\" = \"usdxm\",\n chain = \"base-sepolia\"\n): Promise<void> => {\n try {\n await fundWallet(apiClient, walletLocator, amount, token, chain);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (!errorMessage.includes(\"already funded\") && !errorMessage.includes(\"insufficient\")) {\n throw error;\n }\n }\n};\n"]}
@@ -1,99 +0,0 @@
1
- import { MockedFunction } from 'vitest';
2
- import { Crossmint } from '@crossmint/common-sdk-base';
3
- import { ApiClient } from '../client.cjs';
4
- import { CreateWalletResponse, SendResponse, CreateWalletParams, WalletLocator, FundWalletResponse, GetTransactionResponse } from '../types.cjs';
5
- import '../../chains/chains.cjs';
6
- import 'viem';
7
- import '../gen/types.gen.cjs';
8
-
9
- type MockResponseOptions<T> = {
10
- data: T;
11
- status?: number;
12
- ok?: boolean;
13
- statusText?: string;
14
- };
15
- type FetchCallInfo = {
16
- path: string;
17
- options: RequestInit;
18
- };
19
- declare const createMockResponse: <T>({ data, status, ok, statusText, }: MockResponseOptions<T>) => Response;
20
- declare const createMockSuccessResponse: <T>(data: T) => Response;
21
- declare const createMockErrorResponse: <T>(data: T, status?: number, statusText?: string) => Response;
22
- declare const createMockCrossmint: (overrides?: Partial<Crossmint>) => Crossmint;
23
- declare const createTestApiClient: (crossmint?: Crossmint) => ApiClient;
24
- declare const createServerSideApiClient: () => ApiClient;
25
- declare const extractFetchCall: (mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => FetchCallInfo | undefined;
26
- declare const expectRequestPath: (call: FetchCallInfo | undefined, expectedPath: string) => void;
27
- declare const expectCommonHeaders: (headers: HeadersInit) => void;
28
- declare const expectRequestBody: (options: RequestInit, expectedBody: unknown) => void;
29
- declare const validateRequest: (call: FetchCallInfo | undefined, expectedPath: string, expectedBody?: unknown) => void;
30
- declare const testHttpErrorResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, errorData: {
31
- error: boolean;
32
- message?: string;
33
- }, statusCode: number) => Promise<void>;
34
- declare const testCommonHttpErrors: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, skipStatuses?: number[]) => Promise<void>;
35
- declare const testNetworkError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
36
- declare const testInvalidJsonResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
37
- declare const testTimeoutError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
38
- declare const testMalformedResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, malformedData: unknown) => Promise<void>;
39
- declare const createMockWalletResponse: (overrides?: Partial<CreateWalletResponse>) => CreateWalletResponse;
40
- declare const createMockSendResponse: (overrides?: Partial<SendResponse>) => SendResponse;
41
- interface ErrorResponse {
42
- error: true;
43
- message?: string;
44
- details?: unknown;
45
- }
46
- interface SuccessWalletResponse {
47
- address: string;
48
- chainType: string;
49
- type: string;
50
- config?: {
51
- adminSigner?: {
52
- type: string;
53
- address: string;
54
- };
55
- };
56
- }
57
- interface SuccessTransactionResponse {
58
- id: string;
59
- status: string;
60
- chainType: string;
61
- }
62
- declare function isErrorResponse(response: unknown): response is ErrorResponse;
63
- declare function isSuccessWalletResponse(response: unknown): response is SuccessWalletResponse;
64
- declare function isSuccessTransactionResponse(response: unknown): response is SuccessTransactionResponse;
65
- declare const delay: (ms: number) => Promise<unknown>;
66
- declare const isValidEthereumAddress: (address: string) => boolean;
67
- declare const isValidSolanaAddress: (address: string) => boolean;
68
- /**
69
- * Creates an API client for integration tests using environment variables.
70
- * This is different from createTestApiClient which uses mocked data.
71
- */
72
- declare const createIntegrationApiClient: (apiKey: string, baseUrl?: string, overrides?: Partial<Crossmint>) => ApiClient;
73
- declare class TestDataFactory {
74
- private wallets;
75
- private transactions;
76
- addWallet(address: string): void;
77
- addTransaction(id: string): void;
78
- getWallet(index?: number): string | undefined;
79
- getTransaction(index?: number): string | undefined;
80
- hasWallets(): boolean;
81
- clear(): void;
82
- }
83
- declare function ensureWalletExists(apiClient: ApiClient, testData: TestDataFactory, options?: {
84
- chainType?: "evm" | "solana";
85
- type?: "mpc" | "smart";
86
- owner?: string;
87
- testName?: string;
88
- }): Promise<string | undefined>;
89
- declare function createTestWallet(apiClient: ApiClient, testData: TestDataFactory, params: CreateWalletParams): Promise<CreateWalletResponse>;
90
- declare function expectErrorResponse(response: unknown, message?: string): asserts response is ErrorResponse;
91
- declare function expectSuccessWalletResponse(response: unknown): asserts response is SuccessWalletResponse;
92
- declare function expectSuccessTransactionResponse(response: unknown): asserts response is SuccessTransactionResponse;
93
- declare const fundWallet: (apiClient: ApiClient, walletLocator: WalletLocator, amount: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
94
- declare const approveTransaction: (apiClient: ApiClient, walletLocator: WalletLocator, transactionId: string, maxRetries?: number) => Promise<GetTransactionResponse>;
95
- declare const fundWalletAndWait: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
96
- declare const sendTokenAndApprove: (apiClient: ApiClient, walletLocator: WalletLocator, tokenLocator: string, recipient: string, amount: string) => Promise<GetTransactionResponse>;
97
- declare const ensureWalletFunded: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<void>;
98
-
99
- export { type ErrorResponse, type FetchCallInfo, type MockResponseOptions, type SuccessTransactionResponse, type SuccessWalletResponse, TestDataFactory, approveTransaction, createIntegrationApiClient, createMockCrossmint, createMockErrorResponse, createMockResponse, createMockSendResponse, createMockSuccessResponse, createMockWalletResponse, createServerSideApiClient, createTestApiClient, createTestWallet, delay, ensureWalletExists, ensureWalletFunded, expectCommonHeaders, expectErrorResponse, expectRequestBody, expectRequestPath, expectSuccessTransactionResponse, expectSuccessWalletResponse, extractFetchCall, fundWallet, fundWalletAndWait, isErrorResponse, isSuccessTransactionResponse, isSuccessWalletResponse, isValidEthereumAddress, isValidSolanaAddress, sendTokenAndApprove, testCommonHttpErrors, testHttpErrorResponse, testInvalidJsonResponse, testMalformedResponse, testNetworkError, testTimeoutError, validateRequest };
@@ -1,99 +0,0 @@
1
- import { MockedFunction } from 'vitest';
2
- import { Crossmint } from '@crossmint/common-sdk-base';
3
- import { ApiClient } from '../client.js';
4
- import { CreateWalletResponse, SendResponse, CreateWalletParams, WalletLocator, FundWalletResponse, GetTransactionResponse } from '../types.js';
5
- import '../../chains/chains.js';
6
- import 'viem';
7
- import '../gen/types.gen.js';
8
-
9
- type MockResponseOptions<T> = {
10
- data: T;
11
- status?: number;
12
- ok?: boolean;
13
- statusText?: string;
14
- };
15
- type FetchCallInfo = {
16
- path: string;
17
- options: RequestInit;
18
- };
19
- declare const createMockResponse: <T>({ data, status, ok, statusText, }: MockResponseOptions<T>) => Response;
20
- declare const createMockSuccessResponse: <T>(data: T) => Response;
21
- declare const createMockErrorResponse: <T>(data: T, status?: number, statusText?: string) => Response;
22
- declare const createMockCrossmint: (overrides?: Partial<Crossmint>) => Crossmint;
23
- declare const createTestApiClient: (crossmint?: Crossmint) => ApiClient;
24
- declare const createServerSideApiClient: () => ApiClient;
25
- declare const extractFetchCall: (mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => FetchCallInfo | undefined;
26
- declare const expectRequestPath: (call: FetchCallInfo | undefined, expectedPath: string) => void;
27
- declare const expectCommonHeaders: (headers: HeadersInit) => void;
28
- declare const expectRequestBody: (options: RequestInit, expectedBody: unknown) => void;
29
- declare const validateRequest: (call: FetchCallInfo | undefined, expectedPath: string, expectedBody?: unknown) => void;
30
- declare const testHttpErrorResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, errorData: {
31
- error: boolean;
32
- message?: string;
33
- }, statusCode: number) => Promise<void>;
34
- declare const testCommonHttpErrors: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, skipStatuses?: number[]) => Promise<void>;
35
- declare const testNetworkError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
36
- declare const testInvalidJsonResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
37
- declare const testTimeoutError: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>) => Promise<void>;
38
- declare const testMalformedResponse: <T>(apiCall: () => Promise<T>, mockFn: MockedFunction<any> | MockedFunction<ApiClient["post"]> | MockedFunction<ApiClient["get"]>, malformedData: unknown) => Promise<void>;
39
- declare const createMockWalletResponse: (overrides?: Partial<CreateWalletResponse>) => CreateWalletResponse;
40
- declare const createMockSendResponse: (overrides?: Partial<SendResponse>) => SendResponse;
41
- interface ErrorResponse {
42
- error: true;
43
- message?: string;
44
- details?: unknown;
45
- }
46
- interface SuccessWalletResponse {
47
- address: string;
48
- chainType: string;
49
- type: string;
50
- config?: {
51
- adminSigner?: {
52
- type: string;
53
- address: string;
54
- };
55
- };
56
- }
57
- interface SuccessTransactionResponse {
58
- id: string;
59
- status: string;
60
- chainType: string;
61
- }
62
- declare function isErrorResponse(response: unknown): response is ErrorResponse;
63
- declare function isSuccessWalletResponse(response: unknown): response is SuccessWalletResponse;
64
- declare function isSuccessTransactionResponse(response: unknown): response is SuccessTransactionResponse;
65
- declare const delay: (ms: number) => Promise<unknown>;
66
- declare const isValidEthereumAddress: (address: string) => boolean;
67
- declare const isValidSolanaAddress: (address: string) => boolean;
68
- /**
69
- * Creates an API client for integration tests using environment variables.
70
- * This is different from createTestApiClient which uses mocked data.
71
- */
72
- declare const createIntegrationApiClient: (apiKey: string, baseUrl?: string, overrides?: Partial<Crossmint>) => ApiClient;
73
- declare class TestDataFactory {
74
- private wallets;
75
- private transactions;
76
- addWallet(address: string): void;
77
- addTransaction(id: string): void;
78
- getWallet(index?: number): string | undefined;
79
- getTransaction(index?: number): string | undefined;
80
- hasWallets(): boolean;
81
- clear(): void;
82
- }
83
- declare function ensureWalletExists(apiClient: ApiClient, testData: TestDataFactory, options?: {
84
- chainType?: "evm" | "solana";
85
- type?: "mpc" | "smart";
86
- owner?: string;
87
- testName?: string;
88
- }): Promise<string | undefined>;
89
- declare function createTestWallet(apiClient: ApiClient, testData: TestDataFactory, params: CreateWalletParams): Promise<CreateWalletResponse>;
90
- declare function expectErrorResponse(response: unknown, message?: string): asserts response is ErrorResponse;
91
- declare function expectSuccessWalletResponse(response: unknown): asserts response is SuccessWalletResponse;
92
- declare function expectSuccessTransactionResponse(response: unknown): asserts response is SuccessTransactionResponse;
93
- declare const fundWallet: (apiClient: ApiClient, walletLocator: WalletLocator, amount: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
94
- declare const approveTransaction: (apiClient: ApiClient, walletLocator: WalletLocator, transactionId: string, maxRetries?: number) => Promise<GetTransactionResponse>;
95
- declare const fundWalletAndWait: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<FundWalletResponse>;
96
- declare const sendTokenAndApprove: (apiClient: ApiClient, walletLocator: WalletLocator, tokenLocator: string, recipient: string, amount: string) => Promise<GetTransactionResponse>;
97
- declare const ensureWalletFunded: (apiClient: ApiClient, walletLocator: WalletLocator, amount?: number, token?: "usdc" | "usdxm", chain?: string) => Promise<void>;
98
-
99
- export { type ErrorResponse, type FetchCallInfo, type MockResponseOptions, type SuccessTransactionResponse, type SuccessWalletResponse, TestDataFactory, approveTransaction, createIntegrationApiClient, createMockCrossmint, createMockErrorResponse, createMockResponse, createMockSendResponse, createMockSuccessResponse, createMockWalletResponse, createServerSideApiClient, createTestApiClient, createTestWallet, delay, ensureWalletExists, ensureWalletFunded, expectCommonHeaders, expectErrorResponse, expectRequestBody, expectRequestPath, expectSuccessTransactionResponse, expectSuccessWalletResponse, extractFetchCall, fundWallet, fundWalletAndWait, isErrorResponse, isSuccessTransactionResponse, isSuccessWalletResponse, isValidEthereumAddress, isValidSolanaAddress, sendTokenAndApprove, testCommonHttpErrors, testHttpErrorResponse, testInvalidJsonResponse, testMalformedResponse, testNetworkError, testTimeoutError, validateRequest };