@crossmint/wallets-sdk 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +17 -15
  2. package/dist/api/__tests__/constants.d.cts +1 -1
  3. package/dist/api/__tests__/constants.d.ts +1 -1
  4. package/dist/api/__tests__/test-utils.cjs +1 -1
  5. package/dist/api/__tests__/test-utils.d.cts +1 -1
  6. package/dist/api/__tests__/test-utils.d.ts +1 -1
  7. package/dist/api/__tests__/test-utils.js +1 -1
  8. package/dist/api/client.cjs +1 -1
  9. package/dist/api/client.d.cts +1 -1
  10. package/dist/api/client.d.ts +1 -1
  11. package/dist/api/client.js +1 -1
  12. package/dist/api/index.cjs +1 -1
  13. package/dist/api/index.d.cts +1 -1
  14. package/dist/api/index.d.ts +1 -1
  15. package/dist/api/index.js +1 -1
  16. package/dist/api/types.d.cts +1 -1
  17. package/dist/api/types.d.ts +1 -1
  18. package/dist/chains/adapters/evm.cjs +1 -1
  19. package/dist/chains/adapters/evm.d.cts +1 -1
  20. package/dist/chains/adapters/evm.d.ts +1 -1
  21. package/dist/chains/adapters/evm.js +1 -1
  22. package/dist/chains/adapters/solana.cjs +1 -1
  23. package/dist/chains/adapters/solana.d.cts +1 -1
  24. package/dist/chains/adapters/solana.d.ts +1 -1
  25. package/dist/chains/adapters/solana.js +1 -1
  26. package/dist/chains/adapters/stellar.cjs +1 -1
  27. package/dist/chains/adapters/stellar.d.cts +1 -1
  28. package/dist/chains/adapters/stellar.d.ts +1 -1
  29. package/dist/chains/adapters/stellar.js +1 -1
  30. package/dist/chains/chain-adapter.cjs +1 -1
  31. package/dist/chains/chain-adapter.d.cts +4 -2
  32. package/dist/chains/chain-adapter.d.ts +4 -2
  33. package/dist/chains/chain-adapter.js +1 -1
  34. package/dist/chains/chains.cjs +1 -1
  35. package/dist/chains/chains.js +1 -1
  36. package/dist/{chunk-5IC6BHP5.js → chunk-2KMXYKU6.js} +1 -1
  37. package/dist/{chunk-KVMPBMNG.cjs → chunk-2QCYHRPX.cjs} +1 -1
  38. package/dist/chunk-3NAV25KH.js +1 -0
  39. package/dist/{chunk-IU7J7IPE.cjs → chunk-4HOB7SBT.cjs} +1 -1
  40. package/dist/{chunk-4R2UUYLC.cjs → chunk-4JR5AF3R.cjs} +1 -1
  41. package/dist/{chunk-2G4Y25AJ.cjs → chunk-52EJ53LP.cjs} +1 -1
  42. package/dist/{chunk-BHHXVRU6.cjs → chunk-5X66U2JL.cjs} +1 -1
  43. package/dist/{chunk-JAWHGOGP.cjs → chunk-6BNGRRNH.cjs} +1 -1
  44. package/dist/{chunk-66IZJXGV.js → chunk-6M2N2ULU.js} +1 -1
  45. package/dist/{chunk-ZSFPKH2C.js → chunk-7ER4XMKQ.js} +1 -1
  46. package/dist/{chunk-UX2FEVDY.cjs → chunk-7FIAYQ4O.cjs} +1 -1
  47. package/dist/chunk-7RC4ESQH.cjs +1 -0
  48. package/dist/{chunk-ZUG5ROPF.cjs → chunk-7SRQ77HY.cjs} +1 -1
  49. package/dist/chunk-A3NUC7CS.js +1 -0
  50. package/dist/chunk-AA2XAWEU.cjs +1 -0
  51. package/dist/chunk-ABOMDBIJ.js +1 -0
  52. package/dist/chunk-AF6NBGQT.js +1 -0
  53. package/dist/chunk-AXFHMPWT.cjs +1 -0
  54. package/dist/{chunk-HJH2S644.cjs → chunk-BIL7GVBL.cjs} +1 -1
  55. package/dist/chunk-BK4RGDMJ.cjs +1 -0
  56. package/dist/{chunk-BL7A7ROX.js → chunk-BTTVP3MP.js} +1 -1
  57. package/dist/chunk-BZYYVTXK.js +1 -0
  58. package/dist/{chunk-V3LZ3MNU.js → chunk-C2LINO2L.js} +1 -1
  59. package/dist/chunk-C2QJ3WKC.js +1 -0
  60. package/dist/{chunk-BJC5DQQ3.cjs → chunk-DWUBPIYD.cjs} +1 -1
  61. package/dist/{chunk-Z4ZDZYZ3.js → chunk-F7ERKXXH.js} +1 -1
  62. package/dist/chunk-HCV4M7X2.cjs +1 -0
  63. package/dist/chunk-HGH3VTQM.cjs +1 -0
  64. package/dist/{chunk-62EHAJRH.js → chunk-HHIMK2FC.js} +1 -1
  65. package/dist/chunk-HXNRP6QX.js +1 -0
  66. package/dist/{chunk-AZAIXRGS.js → chunk-INUEMQPG.js} +1 -1
  67. package/dist/{chunk-24CGMAY3.js → chunk-IQARABFX.js} +1 -1
  68. package/dist/chunk-JAXFDUNN.js +1 -0
  69. package/dist/{chunk-NMUHOXYI.js → chunk-JGLNAY5C.js} +1 -1
  70. package/dist/chunk-JY4KRKZ6.js +1 -0
  71. package/dist/chunk-K4KSI3GM.js +1 -0
  72. package/dist/{chunk-NQ3PROUV.js → chunk-L7DGQX3V.js} +1 -1
  73. package/dist/{chunk-62XSK3ZX.cjs → chunk-LJRWHLTK.cjs} +1 -1
  74. package/dist/{chunk-XFCHACH7.cjs → chunk-M42AKAZK.cjs} +1 -1
  75. package/dist/chunk-MDAPK5FG.js +1 -0
  76. package/dist/chunk-NB6EQOHP.cjs +1 -0
  77. package/dist/{chunk-UP6VFZQH.js → chunk-NUCKXAQL.js} +1 -1
  78. package/dist/chunk-NWFQRNBN.cjs +1 -0
  79. package/dist/chunk-NZHMWFOO.js +1 -0
  80. package/dist/chunk-P3P5Q5XX.js +1 -0
  81. package/dist/{chunk-OQFOUCTW.js → chunk-PCRZWMYM.js} +1 -1
  82. package/dist/{chunk-SDXHKREB.cjs → chunk-PZRFDTBH.cjs} +1 -1
  83. package/dist/chunk-STB2VIIK.cjs +1 -0
  84. package/dist/chunk-TA5VIPMH.cjs +1 -0
  85. package/dist/{chunk-5SREMYFJ.cjs → chunk-TDI66D63.cjs} +1 -1
  86. package/dist/{chunk-Q6UT242Q.cjs → chunk-TLCSIHPP.cjs} +1 -1
  87. package/dist/chunk-TWYVUVLB.js +1 -0
  88. package/dist/chunk-UY7L4D4M.cjs +1 -0
  89. package/dist/{chunk-BHSOWQOR.js → chunk-V5D6CUMS.js} +1 -1
  90. package/dist/{chunk-53VKI7FJ.cjs → chunk-W222P6C6.cjs} +1 -1
  91. package/dist/{chunk-SP5DQZ6D.cjs → chunk-W3BYSI7F.cjs} +1 -1
  92. package/dist/{chunk-7HOXBHKP.cjs → chunk-WIKKXJH7.cjs} +1 -1
  93. package/dist/chunk-WP4GRRR2.js +1 -0
  94. package/dist/{chunk-U5DLRN5U.cjs → chunk-WY5KEIIJ.cjs} +1 -1
  95. package/dist/{chunk-VHSQUXJK.js → chunk-X7V2C53V.js} +1 -1
  96. package/dist/{chunk-T7DD437D.cjs → chunk-XFUCYR24.cjs} +2 -2
  97. package/dist/{chunk-QNM7BGTP.js → chunk-YKRLB374.js} +1 -1
  98. package/dist/chunk-ZATY4PKV.cjs +1 -0
  99. package/dist/{chunk-YFNCXOVW.js → chunk-ZMU6KU3L.js} +1 -1
  100. package/dist/index.cjs +1 -1
  101. package/dist/index.d.cts +2 -2
  102. package/dist/index.d.ts +2 -2
  103. package/dist/index.js +1 -1
  104. package/dist/logger/index.cjs +1 -1
  105. package/dist/logger/index.js +1 -1
  106. package/dist/logger/init.cjs +1 -1
  107. package/dist/logger/init.js +1 -1
  108. package/dist/sdk.cjs +1 -1
  109. package/dist/sdk.d.cts +3 -3
  110. package/dist/sdk.d.ts +3 -3
  111. package/dist/sdk.js +1 -1
  112. package/dist/signers/descriptors/api-key.d.cts +1 -1
  113. package/dist/signers/descriptors/api-key.d.ts +1 -1
  114. package/dist/signers/descriptors/device.d.cts +1 -1
  115. package/dist/signers/descriptors/device.d.ts +1 -1
  116. package/dist/signers/descriptors/email.d.cts +1 -1
  117. package/dist/signers/descriptors/email.d.ts +1 -1
  118. package/dist/signers/descriptors/external-wallet.d.cts +1 -1
  119. package/dist/signers/descriptors/external-wallet.d.ts +1 -1
  120. package/dist/signers/descriptors/index.cjs +1 -1
  121. package/dist/signers/descriptors/index.d.cts +1 -1
  122. package/dist/signers/descriptors/index.d.ts +1 -1
  123. package/dist/signers/descriptors/index.js +1 -1
  124. package/dist/signers/descriptors/passkey.d.cts +1 -1
  125. package/dist/signers/descriptors/passkey.d.ts +1 -1
  126. package/dist/signers/descriptors/phone.d.cts +1 -1
  127. package/dist/signers/descriptors/phone.d.ts +1 -1
  128. package/dist/signers/descriptors/server.cjs +1 -1
  129. package/dist/signers/descriptors/server.d.cts +1 -1
  130. package/dist/signers/descriptors/server.d.ts +1 -1
  131. package/dist/signers/descriptors/server.js +1 -1
  132. package/dist/signers/descriptors/types.d.cts +1 -1
  133. package/dist/signers/descriptors/types.d.ts +1 -1
  134. package/dist/signers/device.d.cts +1 -1
  135. package/dist/signers/device.d.ts +1 -1
  136. package/dist/signers/evm-api-key.d.cts +1 -1
  137. package/dist/signers/evm-api-key.d.ts +1 -1
  138. package/dist/signers/evm-external-wallet.d.cts +1 -1
  139. package/dist/signers/evm-external-wallet.d.ts +1 -1
  140. package/dist/signers/external-wallet-signer.d.cts +1 -1
  141. package/dist/signers/external-wallet-signer.d.ts +1 -1
  142. package/dist/signers/index.cjs +1 -1
  143. package/dist/signers/index.d.cts +1 -1
  144. package/dist/signers/index.d.ts +1 -1
  145. package/dist/signers/index.js +1 -1
  146. package/dist/signers/non-custodial/index.cjs +1 -1
  147. package/dist/signers/non-custodial/index.d.cts +2 -2
  148. package/dist/signers/non-custodial/index.d.ts +2 -2
  149. package/dist/signers/non-custodial/index.js +1 -1
  150. package/dist/signers/non-custodial/ncs-evm-signer.cjs +1 -1
  151. package/dist/signers/non-custodial/ncs-evm-signer.d.cts +1 -1
  152. package/dist/signers/non-custodial/ncs-evm-signer.d.ts +1 -1
  153. package/dist/signers/non-custodial/ncs-evm-signer.js +1 -1
  154. package/dist/signers/non-custodial/ncs-signer.cjs +1 -1
  155. package/dist/signers/non-custodial/ncs-signer.d.cts +5 -2
  156. package/dist/signers/non-custodial/ncs-signer.d.ts +5 -2
  157. package/dist/signers/non-custodial/ncs-signer.js +1 -1
  158. package/dist/signers/non-custodial/ncs-solana-signer.cjs +1 -1
  159. package/dist/signers/non-custodial/ncs-solana-signer.d.cts +2 -2
  160. package/dist/signers/non-custodial/ncs-solana-signer.d.ts +2 -2
  161. package/dist/signers/non-custodial/ncs-solana-signer.js +1 -1
  162. package/dist/signers/non-custodial/ncs-stellar-signer.cjs +1 -1
  163. package/dist/signers/non-custodial/ncs-stellar-signer.d.cts +1 -1
  164. package/dist/signers/non-custodial/ncs-stellar-signer.d.ts +1 -1
  165. package/dist/signers/non-custodial/ncs-stellar-signer.js +1 -1
  166. package/dist/signers/passkey.d.cts +1 -1
  167. package/dist/signers/passkey.d.ts +1 -1
  168. package/dist/signers/server/assemble-server-signer.cjs +1 -1
  169. package/dist/signers/server/assemble-server-signer.d.cts +1 -1
  170. package/dist/signers/server/assemble-server-signer.d.ts +1 -1
  171. package/dist/signers/server/assemble-server-signer.js +1 -1
  172. package/dist/signers/server/evm-server-signer.d.cts +1 -1
  173. package/dist/signers/server/evm-server-signer.d.ts +1 -1
  174. package/dist/signers/server/helpers/derive-server-signer.d.cts +1 -1
  175. package/dist/signers/server/helpers/derive-server-signer.d.ts +1 -1
  176. package/dist/signers/server/helpers/index.d.cts +1 -1
  177. package/dist/signers/server/helpers/index.d.ts +1 -1
  178. package/dist/signers/server/index.cjs +1 -1
  179. package/dist/signers/server/index.d.cts +1 -1
  180. package/dist/signers/server/index.d.ts +1 -1
  181. package/dist/signers/server/index.js +1 -1
  182. package/dist/signers/server/resolver.cjs +1 -1
  183. package/dist/signers/server/resolver.d.cts +1 -1
  184. package/dist/signers/server/resolver.d.ts +1 -1
  185. package/dist/signers/server/resolver.js +1 -1
  186. package/dist/signers/server/solana-server-signer.cjs +1 -1
  187. package/dist/signers/server/solana-server-signer.d.cts +2 -2
  188. package/dist/signers/server/solana-server-signer.d.ts +2 -2
  189. package/dist/signers/server/solana-server-signer.js +1 -1
  190. package/dist/signers/server/stellar-server-signer.d.cts +1 -1
  191. package/dist/signers/server/stellar-server-signer.d.ts +1 -1
  192. package/dist/signers/solana-api-key.d.cts +1 -1
  193. package/dist/signers/solana-api-key.d.ts +1 -1
  194. package/dist/signers/solana-external-wallet.cjs +1 -1
  195. package/dist/signers/solana-external-wallet.d.cts +5 -2
  196. package/dist/signers/solana-external-wallet.d.ts +5 -2
  197. package/dist/signers/solana-external-wallet.js +1 -1
  198. package/dist/signers/solana-version-1.fixture.cjs +1 -0
  199. package/dist/signers/solana-version-1.fixture.d.cts +4 -0
  200. package/dist/signers/solana-version-1.fixture.d.ts +4 -0
  201. package/dist/signers/solana-version-1.fixture.js +1 -0
  202. package/dist/signers/stellar-external-wallet.d.cts +1 -1
  203. package/dist/signers/stellar-external-wallet.d.ts +1 -1
  204. package/dist/signers/types.cjs +1 -1
  205. package/dist/signers/types.d.cts +1 -1
  206. package/dist/signers/types.d.ts +1 -1
  207. package/dist/signers/types.js +1 -1
  208. package/dist/{types-r_5ltlhH.d.cts → types-B4kzDRWb.d.cts} +20 -9
  209. package/dist/{types-D2ugRtLo.d.ts → types-Bxb54lGe.d.ts} +20 -9
  210. package/dist/utils/constants.cjs +1 -1
  211. package/dist/utils/constants.js +1 -1
  212. package/dist/utils/device-signers/IframeDeviceSignerKeyStorage.cjs +1 -1
  213. package/dist/utils/device-signers/IframeDeviceSignerKeyStorage.js +1 -1
  214. package/dist/utils/device-signers/createDeviceSigner.d.cts +1 -1
  215. package/dist/utils/device-signers/createDeviceSigner.d.ts +1 -1
  216. package/dist/utils/device-signers/index.cjs +1 -1
  217. package/dist/utils/device-signers/index.d.cts +1 -1
  218. package/dist/utils/device-signers/index.d.ts +1 -1
  219. package/dist/utils/device-signers/index.js +1 -1
  220. package/dist/utils/locators.d.cts +1 -1
  221. package/dist/utils/locators.d.ts +1 -1
  222. package/dist/utils/recovery.cjs +1 -1
  223. package/dist/utils/recovery.d.cts +11 -4
  224. package/dist/utils/recovery.d.ts +11 -4
  225. package/dist/utils/recovery.js +1 -1
  226. package/dist/utils/signer-locator.d.cts +1 -1
  227. package/dist/utils/signer-locator.d.ts +1 -1
  228. package/dist/utils/signer-mapping.d.cts +1 -1
  229. package/dist/utils/signer-mapping.d.ts +1 -1
  230. package/dist/wallets/__tests__/test-helpers.cjs +1 -1
  231. package/dist/wallets/__tests__/test-helpers.d.cts +1 -1
  232. package/dist/wallets/__tests__/test-helpers.d.ts +1 -1
  233. package/dist/wallets/__tests__/test-helpers.js +1 -1
  234. package/dist/wallets/evm.cjs +1 -1
  235. package/dist/wallets/evm.d.cts +1 -1
  236. package/dist/wallets/evm.d.ts +1 -1
  237. package/dist/wallets/evm.js +1 -1
  238. package/dist/wallets/services/balance-formatter.cjs +1 -1
  239. package/dist/wallets/services/balance-formatter.d.cts +1 -1
  240. package/dist/wallets/services/balance-formatter.d.ts +1 -1
  241. package/dist/wallets/services/balance-formatter.js +1 -1
  242. package/dist/wallets/services/device-recovery-service.cjs +1 -1
  243. package/dist/wallets/services/device-recovery-service.d.cts +1 -1
  244. package/dist/wallets/services/device-recovery-service.d.ts +1 -1
  245. package/dist/wallets/services/device-recovery-service.js +1 -1
  246. package/dist/wallets/services/operation-poller.cjs +1 -1
  247. package/dist/wallets/services/operation-poller.d.cts +1 -1
  248. package/dist/wallets/services/operation-poller.d.ts +1 -1
  249. package/dist/wallets/services/operation-poller.js +1 -1
  250. package/dist/wallets/services/signer-manager.cjs +1 -1
  251. package/dist/wallets/services/signer-manager.d.cts +1 -1
  252. package/dist/wallets/services/signer-manager.d.ts +1 -1
  253. package/dist/wallets/services/signer-manager.js +1 -1
  254. package/dist/wallets/solana.cjs +1 -1
  255. package/dist/wallets/solana.d.cts +1 -1
  256. package/dist/wallets/solana.d.ts +1 -1
  257. package/dist/wallets/solana.js +1 -1
  258. package/dist/wallets/stellar.cjs +1 -1
  259. package/dist/wallets/stellar.d.cts +1 -1
  260. package/dist/wallets/stellar.d.ts +1 -1
  261. package/dist/wallets/stellar.js +1 -1
  262. package/dist/wallets/types.d.cts +1 -1
  263. package/dist/wallets/types.d.ts +1 -1
  264. package/dist/wallets/wallet-factory.cjs +1 -1
  265. package/dist/wallets/wallet-factory.d.cts +2 -5
  266. package/dist/wallets/wallet-factory.d.ts +2 -5
  267. package/dist/wallets/wallet-factory.js +1 -1
  268. package/dist/wallets/wallet.cjs +1 -1
  269. package/dist/wallets/wallet.d.cts +1 -1
  270. package/dist/wallets/wallet.d.ts +1 -1
  271. package/dist/wallets/wallet.js +1 -1
  272. package/package.json +4 -4
  273. package/dist/chunk-3DK46BDI.cjs +0 -1
  274. package/dist/chunk-3KAXLLXJ.js +0 -1
  275. package/dist/chunk-4KOHNUNP.js +0 -1
  276. package/dist/chunk-5L5MJAFS.cjs +0 -1
  277. package/dist/chunk-63VNTHGQ.cjs +0 -1
  278. package/dist/chunk-6T4GBLXY.js +0 -1
  279. package/dist/chunk-7CUHY3S4.js +0 -1
  280. package/dist/chunk-7KKHT5PF.js +0 -1
  281. package/dist/chunk-A7DA5DSE.js +0 -1
  282. package/dist/chunk-BKN5HSDC.js +0 -1
  283. package/dist/chunk-CXWFJGKI.js +0 -1
  284. package/dist/chunk-D2QNNQ26.cjs +0 -1
  285. package/dist/chunk-D5IIHIEW.cjs +0 -1
  286. package/dist/chunk-DB3TFNM2.cjs +0 -1
  287. package/dist/chunk-DCKFFFPG.js +0 -1
  288. package/dist/chunk-FBOM4U3X.js +0 -1
  289. package/dist/chunk-FUZ2TPGD.js +0 -1
  290. package/dist/chunk-IQ3QQ4M6.js +0 -1
  291. package/dist/chunk-KQFRFHM4.cjs +0 -1
  292. package/dist/chunk-LUUUKDHQ.js +0 -1
  293. package/dist/chunk-LXAEBSEY.cjs +0 -1
  294. package/dist/chunk-QPCZFIUV.cjs +0 -1
  295. package/dist/chunk-QYNWUGXV.js +0 -1
  296. package/dist/chunk-WJDR3MG5.js +0 -1
  297. package/dist/chunk-Y7P2T5BP.cjs +0 -1
  298. package/dist/chunk-YWN6HKW7.cjs +0 -1
  299. package/dist/chunk-ZHGXG7JM.cjs +0 -1
package/README.md CHANGED
@@ -32,7 +32,7 @@ const wallets = CrossmintWallets.from(crossmint);
32
32
  // Create a wallet with a server signer
33
33
  const wallet = await wallets.createWallet({
34
34
  chain: "base-sepolia",
35
- recovery: { type: "server", secret: "<RECOVERY_SECRET>" },
35
+ recoveryMethods: [{ type: "server", secret: "<RECOVERY_SECRET>" }],
36
36
  });
37
37
 
38
38
  console.log(wallet.address);
@@ -64,7 +64,7 @@ console.log(wallet.address);
64
64
 
65
65
  ### Server signer
66
66
 
67
- Create a wallet with a server key as the recovery signer:
67
+ Create a wallet with a server key as a recovery method:
68
68
 
69
69
  ```ts
70
70
  import { createCrossmint, CrossmintWallets } from "@crossmint/wallets-sdk";
@@ -74,7 +74,7 @@ const wallets = CrossmintWallets.from(crossmint);
74
74
 
75
75
  const wallet = await wallets.createWallet({
76
76
  chain: "base-sepolia",
77
- recovery: { type: "server", secret: "<RECOVERY_SECRET>" },
77
+ recoveryMethods: [{ type: "server", secret: "<RECOVERY_SECRET>" }],
78
78
  });
79
79
 
80
80
  console.log(wallet.address);
@@ -87,14 +87,16 @@ Bring your own key (MetaMask, KMS, etc.):
87
87
  ```ts
88
88
  const wallet = await wallets.createWallet({
89
89
  chain: "base-sepolia",
90
- recovery: {
91
- type: "external-wallet",
92
- address: "0xYourWalletAddress",
93
- onSign: async (message: string) => {
94
- // Sign the message with your wallet/KMS and return the signature
95
- return await yourWallet.signMessage({ message: { raw: message as `0x${string}` } });
90
+ recoveryMethods: [
91
+ {
92
+ type: "external-wallet",
93
+ address: "0xYourWalletAddress",
94
+ onSign: async (message: string) => {
95
+ // Sign the message with your wallet/KMS and return the signature
96
+ return await yourWallet.signMessage({ message: { raw: message as `0x${string}` } });
97
+ },
96
98
  },
97
- },
99
+ ],
98
100
  });
99
101
  ```
100
102
 
@@ -114,7 +116,7 @@ const deviceSigner = await createDeviceSigner();
114
116
  const wallet = await wallets.createWallet({
115
117
  chain: "base-sepolia",
116
118
  owner: "email:user@example.com",
117
- recovery: { type: "email", email: "user@example.com" },
119
+ recoveryMethods: [{ type: "email", email: "user@example.com" }],
118
120
  signers: [deviceSigner],
119
121
  });
120
122
  ```
@@ -141,10 +143,10 @@ const wallet = await wallets.getWallet("0xWalletAddress", {
141
143
 
142
144
  Wallets SDK uses a two-tier signer model:
143
145
 
144
- - **Recovery signer** — High-security, used for wallet recovery and adding new signers. Supports email OTP, phone OTP, external wallet, or server key.
146
+ - **Recovery method** — High-security, used for wallet recovery and adding new signers. Supports email OTP, phone OTP, external wallet, or server key.
145
147
  - **Operational signer** — Low-friction, used for day-to-day signing. Supports server key, external wallet, passkey, and device (browser/mobile only). For server-side (Node.js) usage, use a **server** or **external-wallet** signer.
146
148
 
147
- When no operational signer is available, the recovery signer automatically serves as a fallback for signing.
149
+ When no operational signer is available, the recovery method automatically serves as a fallback for signing.
148
150
 
149
151
  ## Usage
150
152
 
@@ -252,8 +254,8 @@ const result = await wallet.approve({
252
254
  |---|---|---|
253
255
  | `device` | Hardware-backed, no OTP. **Browser and React Native only** — not available in Node.js. | Browser, React Native |
254
256
  | `server` | Server-side automated operations (AI agents, backends). | Node.js |
255
- | `email` | OTP-based recovery signer. | All |
256
- | `phone` | OTP-based recovery signer. | All |
257
+ | `email` | OTP-based recovery method. | All |
258
+ | `phone` | OTP-based recovery method. | All |
257
259
  | `passkey` | WebAuthn/FIDO2 biometric signer. | Browser (EVM only) |
258
260
  | `external-wallet` | Bring-your-own key (MetaMask, KMS, etc). | All |
259
261
 
@@ -1,4 +1,4 @@
1
- import { af as WalletLocator } from '../../types-r_5ltlhH.cjs';
1
+ import { ag as WalletLocator } from '../../types-B4kzDRWb.cjs';
2
2
  import 'viem';
3
3
  import '../gen/types.gen.cjs';
4
4
  import 'ox';
@@ -1,4 +1,4 @@
1
- import { af as WalletLocator } from '../../types-D2ugRtLo.js';
1
+ import { ag as WalletLocator } from '../../types-Bxb54lGe.js';
2
2
  import 'viem';
3
3
  import '../gen/types.gen.js';
4
4
  import 'ox';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJ33QM2IDcjs = require('../../chunk-J33QM2ID.cjs');var _chunk53VKI7FJcjs = require('../../chunk-53VKI7FJ.cjs');require('../../chunk-VS6I4S7X.cjs');require('../../chunk-SP5DQZ6D.cjs');require('../../chunk-XFCHACH7.cjs');var _chunkDSIFRRBScjs = require('../../chunk-DSIFRRBS.cjs');var _vitest = require('vitest');var P=({data:e,status:t=200,ok:n=!0,statusText:s="OK"})=>({json:_vitest.vi.fn().mockResolvedValue(e),ok:n,status:t,statusText:s}),j= exports.createMockSuccessResponse =e=>P({data:e}),b= exports.createMockErrorResponse =(e,t=400,n="Bad Request")=>P({data:e,status:t,ok:!1,statusText:n}),B= exports.createMockCrossmint =(e={})=>{let t=_chunkDSIFRRBScjs.a.call(void 0, {apiKey:_chunkJ33QM2IDcjs.m},e);return _chunkDSIFRRBScjs.b.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {},t),{setJwt:_vitest.vi.fn().mockReturnThis()})},L= exports.createTestApiClient =e=>new (0, _chunk53VKI7FJcjs.a)(e||B()),K= exports.createServerSideApiClient =()=>{let e=L();return Object.defineProperty(e,"isServerSide",{get:()=>!0,configurable:!0}),e},Y= exports.extractFetchCall =e=>{let t=e.mock.calls;if(t.length===0)return;let n=t[t.length-1];return{path:n[0],options:n[1]}},N= exports.expectRequestPath =(e,t)=>{_vitest.expect.call(void 0, e==null?void 0:e.path).toBe(t)},V= exports.expectCommonHeaders =e=>{_vitest.expect.call(void 0, e["Content-Type"]).toBe("application/json")},q= exports.expectRequestBody =(e,t)=>{_vitest.expect.call(void 0, e.body).toBe(JSON.stringify(t))},z= exports.validateRequest =(e,t,n)=>{_vitest.expect.call(void 0, e).toBeDefined(),e&&(N(e,t),e.options.headers&&V(e.options.headers),n!==void 0&&e.options&&q(e.options,n))},X= exports.testHttpErrorResponse =(e,t,n,s)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockResolvedValue(b(n,s));let a=yield e();_vitest.expect.call(void 0, l(a)).toBe(!0),l(a)&&(_vitest.expect.call(void 0, a.error).toBe(!0),n.message&&_vitest.expect.call(void 0, a.message).toBe(n.message))}),Z= exports.testCommonHttpErrors =(s,a,...o)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,[s,a,...o],function*(e,t,n=[]){for(let{status:c,message:g}of _chunkJ33QM2IDcjs.a){if(n.includes(c))continue;let u={error:!0,message:g};t.mockResolvedValueOnce(b(u,c));let m=yield e();_vitest.expect.call(void 0, l(m)).toBe(!0)}}),Q= exports.testNetworkError =(e,t)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockRejectedValue(new Error("Network error")),yield _vitest.expect.call(void 0, e()).rejects.toThrow("Network error")}),ee= exports.testInvalidJsonResponse =(e,t)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){let n={json:_vitest.vi.fn().mockRejectedValue(new Error("Invalid JSON")),ok:!0,status:200};t.mockResolvedValue(n),yield _vitest.expect.call(void 0, e()).rejects.toThrow()}),te= exports.testTimeoutError =(e,t)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockImplementation(()=>new Promise((n,s)=>setTimeout(()=>s(new Error("Request timeout")),0))),yield _vitest.expect.call(void 0, e()).rejects.toThrow("Request timeout")}),ne= exports.testMalformedResponse =(e,t,n)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockResolvedValue(j(n));let s=yield e();_vitest.expect.call(void 0, s).toEqual(n)}),se= exports.createMockWalletResponse =(e={})=>_chunkDSIFRRBScjs.a.call(void 0, {address:_chunkJ33QM2IDcjs.b.evmAddress,chainType:"evm",type:"smart",config:{adminSigner:{type:"external-wallet",address:_chunkJ33QM2IDcjs.k.EVM_TEST}}},e),oe= exports.createMockSendResponse =(e={})=>_chunkDSIFRRBScjs.a.call(void 0, {id:"txn-123",status:"pending",chainType:"evm",walletType:"evm-smart-wallet",params:{transaction:"0x1234567890abcdef",signer:"api-key:test"},onChain:{txId:"0xabcdef1234567890abcdef1234567890abcdef12",explorerLink:"https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12"},createdAt:Date.now()},e);function l(e){return typeof e=="object"&&e!==null&&"error"in e&&e.error===!0}function C(e){return typeof e=="object"&&e!==null&&"address"in e&&"chainType"in e&&"type"in e}function $(e){return typeof e=="object"&&e!==null&&"id"in e&&"status"in e&&"chainType"in e}var x=e=>new Promise(t=>setTimeout(t,e)),re= exports.isValidEthereumAddress =e=>/^0x[a-fA-F0-9]{40}$/.test(e),ae= exports.isValidSolanaAddress =e=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e),ie= exports.createIntegrationApiClient =(e,t,n={})=>{let s=_chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {apiKey:e},t&&{overrideBaseUrl:t}),n),a=_chunkDSIFRRBScjs.b.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {},s),{setJwt:()=>a});return new (0, _chunk53VKI7FJcjs.a)(a)},v= exports.TestDataFactory =class{constructor(){this.wallets=[];this.transactions=[]}addWallet(t){t&&!this.wallets.includes(t)&&this.wallets.push(t)}addTransaction(t){t&&!this.transactions.includes(t)&&this.transactions.push(t)}getWallet(t=0){return this.wallets[t]}getTransaction(t=0){return this.transactions[t]}hasWallets(){return this.wallets.length>0}clear(){this.wallets=[],this.transactions=[]}};function ce(s,a){return _chunkDSIFRRBScjs.h.call(void 0, this,arguments,function*(e,t,n={}){if(t.hasWallets())return t.getWallet();let{chainType:o="evm",type:c="mpc",owner:g,testName:u="default"}=n,m=g||`userId:integration-${u}-${Date.now()}`,f=yield e.createWallet(_chunkDSIFRRBScjs.a.call(void 0, {chainType:o,type:c},g&&{owner:m}));if(C(f))return t.addWallet(f.address),f.address})}function pe(e,t,n){return _chunkDSIFRRBScjs.h.call(void 0, this,null,function*(){let s=yield e.createWallet(n);return C(s)&&t.addWallet(s.address),s})}function le(e,t){_vitest.expect.call(void 0, l(e)).toBe(!0),t&&_vitest.expect.call(void 0, e.message).toBeDefined()}function ue(e){_vitest.expect.call(void 0, C(e)).toBe(!0)}function de(e){_vitest.expect.call(void 0, $(e)).toBe(!0)}var I=(e,t,n,s="usdxm",a="base-sepolia")=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){let o={amount:n,token:s,chain:a},c=yield e.fundWallet(t,o);if(l(c))throw new Error(`Failed to fund wallet: ${c.message||"Unknown error"}`);return yield x(_chunkJ33QM2IDcjs.i),c}),U= exports.approveTransaction =(a,o,c,...g)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,[a,o,c,...g],function*(e,t,n,s=_chunkJ33QM2IDcjs.l.APPROVE_TRANSACTION_MAX_RETRIES){var m;for(let f=0;f<s;f++){let d=yield e.getTransaction(t,n);if(l(d))throw new Error(`Transaction not found: ${d.message||"Unknown error"}`);if("status"in d&&(d.status==="success"||d.status==="failed"))return d;let T="approvals"in d?(m=d.approvals)==null?void 0:m.pending:void 0;if(T&&T.length>0){let O={approvals:T.map(_=>({signer:_.signer.locator,signature:""}))},h=yield e.approveTransaction(t,n,O);if(l(h))throw new Error(`Failed to approve transaction: ${h.message||"Unknown error"}`);yield x(_chunkJ33QM2IDcjs.j);continue}yield x(_chunkJ33QM2IDcjs.i)}let u=yield e.getTransaction(t,n);if(l(u))throw new Error(`Transaction not found after retries: ${u.message||"Unknown error"}`);if(!("status"in u))throw new Error("Transaction response missing status property");return u}),me= exports.fundWalletAndWait =(e,t,n=1,s="usdxm",a="base-sepolia")=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){return I(e,t,n,s,a)}),fe= exports.sendTokenAndApprove =(e,t,n,s,a)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){let o=yield e.send(t,n,{recipient:s,amount:a});if(l(o))throw new Error(`Failed to send token: ${o.message||"Unknown error"}`);if(typeof o=="object"&&o!==null&&"id"in o&&typeof o.id=="string")return U(e,t,o.id);throw new Error("Transaction ID not found in send response")}),ge= exports.ensureWalletFunded =(e,t,n=1,s="usdxm",a="base-sepolia")=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){try{yield I(e,t,n,s,a)}catch(o){let c=o instanceof Error?o.message:String(o);if(!c.includes("already funded")&&!c.includes("insufficient"))throw o}});exports.TestDataFactory = v; exports.approveTransaction = U; exports.createIntegrationApiClient = ie; exports.createMockCrossmint = B; exports.createMockErrorResponse = b; exports.createMockResponse = P; exports.createMockSendResponse = oe; exports.createMockSuccessResponse = j; exports.createMockWalletResponse = se; exports.createServerSideApiClient = K; exports.createTestApiClient = L; exports.createTestWallet = pe; exports.delay = x; exports.ensureWalletExists = ce; exports.ensureWalletFunded = ge; exports.expectCommonHeaders = V; exports.expectErrorResponse = le; exports.expectRequestBody = q; exports.expectRequestPath = N; exports.expectSuccessTransactionResponse = de; exports.expectSuccessWalletResponse = ue; exports.extractFetchCall = Y; exports.fundWallet = I; exports.fundWalletAndWait = me; exports.isErrorResponse = l; exports.isSuccessTransactionResponse = $; exports.isSuccessWalletResponse = C; exports.isValidEthereumAddress = re; exports.isValidSolanaAddress = ae; exports.sendTokenAndApprove = fe; exports.testCommonHttpErrors = Z; exports.testHttpErrorResponse = X; exports.testInvalidJsonResponse = ee; exports.testMalformedResponse = ne; exports.testNetworkError = Q; exports.testTimeoutError = te; exports.validateRequest = z;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJ33QM2IDcjs = require('../../chunk-J33QM2ID.cjs');var _chunkW222P6C6cjs = require('../../chunk-W222P6C6.cjs');require('../../chunk-VS6I4S7X.cjs');require('../../chunk-W3BYSI7F.cjs');require('../../chunk-M42AKAZK.cjs');var _chunkDSIFRRBScjs = require('../../chunk-DSIFRRBS.cjs');var _vitest = require('vitest');var P=({data:e,status:t=200,ok:n=!0,statusText:s="OK"})=>({json:_vitest.vi.fn().mockResolvedValue(e),ok:n,status:t,statusText:s}),j= exports.createMockSuccessResponse =e=>P({data:e}),b= exports.createMockErrorResponse =(e,t=400,n="Bad Request")=>P({data:e,status:t,ok:!1,statusText:n}),B= exports.createMockCrossmint =(e={})=>{let t=_chunkDSIFRRBScjs.a.call(void 0, {apiKey:_chunkJ33QM2IDcjs.m},e);return _chunkDSIFRRBScjs.b.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {},t),{setJwt:_vitest.vi.fn().mockReturnThis()})},L= exports.createTestApiClient =e=>new (0, _chunkW222P6C6cjs.a)(e||B()),K= exports.createServerSideApiClient =()=>{let e=L();return Object.defineProperty(e,"isServerSide",{get:()=>!0,configurable:!0}),e},Y= exports.extractFetchCall =e=>{let t=e.mock.calls;if(t.length===0)return;let n=t[t.length-1];return{path:n[0],options:n[1]}},N= exports.expectRequestPath =(e,t)=>{_vitest.expect.call(void 0, e==null?void 0:e.path).toBe(t)},V= exports.expectCommonHeaders =e=>{_vitest.expect.call(void 0, e["Content-Type"]).toBe("application/json")},q= exports.expectRequestBody =(e,t)=>{_vitest.expect.call(void 0, e.body).toBe(JSON.stringify(t))},z= exports.validateRequest =(e,t,n)=>{_vitest.expect.call(void 0, e).toBeDefined(),e&&(N(e,t),e.options.headers&&V(e.options.headers),n!==void 0&&e.options&&q(e.options,n))},X= exports.testHttpErrorResponse =(e,t,n,s)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockResolvedValue(b(n,s));let a=yield e();_vitest.expect.call(void 0, l(a)).toBe(!0),l(a)&&(_vitest.expect.call(void 0, a.error).toBe(!0),n.message&&_vitest.expect.call(void 0, a.message).toBe(n.message))}),Z= exports.testCommonHttpErrors =(s,a,...o)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,[s,a,...o],function*(e,t,n=[]){for(let{status:c,message:g}of _chunkJ33QM2IDcjs.a){if(n.includes(c))continue;let u={error:!0,message:g};t.mockResolvedValueOnce(b(u,c));let m=yield e();_vitest.expect.call(void 0, l(m)).toBe(!0)}}),Q= exports.testNetworkError =(e,t)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockRejectedValue(new Error("Network error")),yield _vitest.expect.call(void 0, e()).rejects.toThrow("Network error")}),ee= exports.testInvalidJsonResponse =(e,t)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){let n={json:_vitest.vi.fn().mockRejectedValue(new Error("Invalid JSON")),ok:!0,status:200};t.mockResolvedValue(n),yield _vitest.expect.call(void 0, e()).rejects.toThrow()}),te= exports.testTimeoutError =(e,t)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockImplementation(()=>new Promise((n,s)=>setTimeout(()=>s(new Error("Request timeout")),0))),yield _vitest.expect.call(void 0, e()).rejects.toThrow("Request timeout")}),ne= exports.testMalformedResponse =(e,t,n)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){t.mockResolvedValue(j(n));let s=yield e();_vitest.expect.call(void 0, s).toEqual(n)}),se= exports.createMockWalletResponse =(e={})=>_chunkDSIFRRBScjs.a.call(void 0, {address:_chunkJ33QM2IDcjs.b.evmAddress,chainType:"evm",type:"smart",config:{adminSigner:{type:"external-wallet",address:_chunkJ33QM2IDcjs.k.EVM_TEST}}},e),oe= exports.createMockSendResponse =(e={})=>_chunkDSIFRRBScjs.a.call(void 0, {id:"txn-123",status:"pending",chainType:"evm",walletType:"evm-smart-wallet",params:{transaction:"0x1234567890abcdef",signer:"api-key:test"},onChain:{txId:"0xabcdef1234567890abcdef1234567890abcdef12",explorerLink:"https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12"},createdAt:Date.now()},e);function l(e){return typeof e=="object"&&e!==null&&"error"in e&&e.error===!0}function C(e){return typeof e=="object"&&e!==null&&"address"in e&&"chainType"in e&&"type"in e}function $(e){return typeof e=="object"&&e!==null&&"id"in e&&"status"in e&&"chainType"in e}var x=e=>new Promise(t=>setTimeout(t,e)),re= exports.isValidEthereumAddress =e=>/^0x[a-fA-F0-9]{40}$/.test(e),ae= exports.isValidSolanaAddress =e=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e),ie= exports.createIntegrationApiClient =(e,t,n={})=>{let s=_chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {apiKey:e},t&&{overrideBaseUrl:t}),n),a=_chunkDSIFRRBScjs.b.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {},s),{setJwt:()=>a});return new (0, _chunkW222P6C6cjs.a)(a)},v= exports.TestDataFactory =class{constructor(){this.wallets=[];this.transactions=[]}addWallet(t){t&&!this.wallets.includes(t)&&this.wallets.push(t)}addTransaction(t){t&&!this.transactions.includes(t)&&this.transactions.push(t)}getWallet(t=0){return this.wallets[t]}getTransaction(t=0){return this.transactions[t]}hasWallets(){return this.wallets.length>0}clear(){this.wallets=[],this.transactions=[]}};function ce(s,a){return _chunkDSIFRRBScjs.h.call(void 0, this,arguments,function*(e,t,n={}){if(t.hasWallets())return t.getWallet();let{chainType:o="evm",type:c="mpc",owner:g,testName:u="default"}=n,m=g||`userId:integration-${u}-${Date.now()}`,f=yield e.createWallet(_chunkDSIFRRBScjs.a.call(void 0, {chainType:o,type:c},g&&{owner:m}));if(C(f))return t.addWallet(f.address),f.address})}function pe(e,t,n){return _chunkDSIFRRBScjs.h.call(void 0, this,null,function*(){let s=yield e.createWallet(n);return C(s)&&t.addWallet(s.address),s})}function le(e,t){_vitest.expect.call(void 0, l(e)).toBe(!0),t&&_vitest.expect.call(void 0, e.message).toBeDefined()}function ue(e){_vitest.expect.call(void 0, C(e)).toBe(!0)}function de(e){_vitest.expect.call(void 0, $(e)).toBe(!0)}var I=(e,t,n,s="usdxm",a="base-sepolia")=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){let o={amount:n,token:s,chain:a},c=yield e.fundWallet(t,o);if(l(c))throw new Error(`Failed to fund wallet: ${c.message||"Unknown error"}`);return yield x(_chunkJ33QM2IDcjs.i),c}),U= exports.approveTransaction =(a,o,c,...g)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,[a,o,c,...g],function*(e,t,n,s=_chunkJ33QM2IDcjs.l.APPROVE_TRANSACTION_MAX_RETRIES){var m;for(let f=0;f<s;f++){let d=yield e.getTransaction(t,n);if(l(d))throw new Error(`Transaction not found: ${d.message||"Unknown error"}`);if("status"in d&&(d.status==="success"||d.status==="failed"))return d;let T="approvals"in d?(m=d.approvals)==null?void 0:m.pending:void 0;if(T&&T.length>0){let O={approvals:T.map(_=>({signer:_.signer.locator,signature:""}))},h=yield e.approveTransaction(t,n,O);if(l(h))throw new Error(`Failed to approve transaction: ${h.message||"Unknown error"}`);yield x(_chunkJ33QM2IDcjs.j);continue}yield x(_chunkJ33QM2IDcjs.i)}let u=yield e.getTransaction(t,n);if(l(u))throw new Error(`Transaction not found after retries: ${u.message||"Unknown error"}`);if(!("status"in u))throw new Error("Transaction response missing status property");return u}),me= exports.fundWalletAndWait =(e,t,n=1,s="usdxm",a="base-sepolia")=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){return I(e,t,n,s,a)}),fe= exports.sendTokenAndApprove =(e,t,n,s,a)=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){let o=yield e.send(t,n,{recipient:s,amount:a});if(l(o))throw new Error(`Failed to send token: ${o.message||"Unknown error"}`);if(typeof o=="object"&&o!==null&&"id"in o&&typeof o.id=="string")return U(e,t,o.id);throw new Error("Transaction ID not found in send response")}),ge= exports.ensureWalletFunded =(e,t,n=1,s="usdxm",a="base-sepolia")=>_chunkDSIFRRBScjs.h.call(void 0, void 0,null,function*(){try{yield I(e,t,n,s,a)}catch(o){let c=o instanceof Error?o.message:String(o);if(!c.includes("already funded")&&!c.includes("insufficient"))throw o}});exports.TestDataFactory = v; exports.approveTransaction = U; exports.createIntegrationApiClient = ie; exports.createMockCrossmint = B; exports.createMockErrorResponse = b; exports.createMockResponse = P; exports.createMockSendResponse = oe; exports.createMockSuccessResponse = j; exports.createMockWalletResponse = se; exports.createServerSideApiClient = K; exports.createTestApiClient = L; exports.createTestWallet = pe; exports.delay = x; exports.ensureWalletExists = ce; exports.ensureWalletFunded = ge; exports.expectCommonHeaders = V; exports.expectErrorResponse = le; exports.expectRequestBody = q; exports.expectRequestPath = N; exports.expectSuccessTransactionResponse = de; exports.expectSuccessWalletResponse = ue; exports.extractFetchCall = Y; exports.fundWallet = I; exports.fundWalletAndWait = me; exports.isErrorResponse = l; exports.isSuccessTransactionResponse = $; exports.isSuccessWalletResponse = C; exports.isValidEthereumAddress = re; exports.isValidSolanaAddress = ae; exports.sendTokenAndApprove = fe; exports.testCommonHttpErrors = Z; exports.testHttpErrorResponse = X; exports.testInvalidJsonResponse = ee; exports.testMalformedResponse = ne; exports.testNetworkError = Q; exports.testTimeoutError = te; exports.validateRequest = z;
@@ -1,7 +1,7 @@
1
1
  import { MockedFunction } from 'vitest';
2
2
  import { Crossmint } from '@crossmint/common-sdk-base';
3
3
  import { ApiClient } from '../client.cjs';
4
- import { af as WalletLocator, ar as GetTransactionResponse, as as SendResponse, at as CreateWalletResponse, au as CreateWalletParams, a8 as FundWalletResponse } from '../../types-r_5ltlhH.cjs';
4
+ import { ag as WalletLocator, at as GetTransactionResponse, au as SendResponse, av as CreateWalletResponse, aw as CreateWalletParams, a9 as FundWalletResponse } from '../../types-B4kzDRWb.cjs';
5
5
  import '../../chains/chains.cjs';
6
6
  import 'viem';
7
7
  import '../gen/types.gen.cjs';
@@ -1,7 +1,7 @@
1
1
  import { MockedFunction } from 'vitest';
2
2
  import { Crossmint } from '@crossmint/common-sdk-base';
3
3
  import { ApiClient } from '../client.js';
4
- import { af as WalletLocator, ar as GetTransactionResponse, as as SendResponse, at as CreateWalletResponse, au as CreateWalletParams, a8 as FundWalletResponse } from '../../types-D2ugRtLo.js';
4
+ import { ag as WalletLocator, at as GetTransactionResponse, au as SendResponse, av as CreateWalletResponse, aw as CreateWalletParams, a9 as FundWalletResponse } from '../../types-Bxb54lGe.js';
5
5
  import '../../chains/chains.js';
6
6
  import 'viem';
7
7
  import '../gen/types.gen.js';
@@ -1 +1 @@
1
- import{a as A,b as F,i as R,j as W,k as E,l as M,m as S}from"../../chunk-DIGDDKSF.js";import{a as w}from"../../chunk-BL7A7ROX.js";import"../../chunk-KOHPRJDP.js";import"../../chunk-AZAIXRGS.js";import"../../chunk-FUZ2TPGD.js";import{a as p,b as k,h as i}from"../../chunk-NU7VF7MC.js";import{expect as r,vi as y}from"vitest";var P=({data:e,status:t=200,ok:n=!0,statusText:s="OK"})=>({json:y.fn().mockResolvedValue(e),ok:n,status:t,statusText:s}),j=e=>P({data:e}),b=(e,t=400,n="Bad Request")=>P({data:e,status:t,ok:!1,statusText:n}),B=(e={})=>{let t=p({apiKey:S},e);return k(p({},t),{setJwt:y.fn().mockReturnThis()})},L=e=>new w(e||B()),Y=()=>{let e=L();return Object.defineProperty(e,"isServerSide",{get:()=>!0,configurable:!0}),e},z=e=>{let t=e.mock.calls;if(t.length===0)return;let n=t[t.length-1];return{path:n[0],options:n[1]}},N=(e,t)=>{r(e==null?void 0:e.path).toBe(t)},V=e=>{r(e["Content-Type"]).toBe("application/json")},q=(e,t)=>{r(e.body).toBe(JSON.stringify(t))},X=(e,t,n)=>{r(e).toBeDefined(),e&&(N(e,t),e.options.headers&&V(e.options.headers),n!==void 0&&e.options&&q(e.options,n))},Z=(e,t,n,s)=>i(void 0,null,function*(){t.mockResolvedValue(b(n,s));let a=yield e();r(l(a)).toBe(!0),l(a)&&(r(a.error).toBe(!0),n.message&&r(a.message).toBe(n.message))}),Q=(s,a,...o)=>i(void 0,[s,a,...o],function*(e,t,n=[]){for(let{status:c,message:g}of A){if(n.includes(c))continue;let u={error:!0,message:g};t.mockResolvedValueOnce(b(u,c));let m=yield e();r(l(m)).toBe(!0)}}),ee=(e,t)=>i(void 0,null,function*(){t.mockRejectedValue(new Error("Network error")),yield r(e()).rejects.toThrow("Network error")}),te=(e,t)=>i(void 0,null,function*(){let n={json:y.fn().mockRejectedValue(new Error("Invalid JSON")),ok:!0,status:200};t.mockResolvedValue(n),yield r(e()).rejects.toThrow()}),ne=(e,t)=>i(void 0,null,function*(){t.mockImplementation(()=>new Promise((n,s)=>setTimeout(()=>s(new Error("Request timeout")),0))),yield r(e()).rejects.toThrow("Request timeout")}),se=(e,t,n)=>i(void 0,null,function*(){t.mockResolvedValue(j(n));let s=yield e();r(s).toEqual(n)}),oe=(e={})=>p({address:F.evmAddress,chainType:"evm",type:"smart",config:{adminSigner:{type:"external-wallet",address:E.EVM_TEST}}},e),re=(e={})=>p({id:"txn-123",status:"pending",chainType:"evm",walletType:"evm-smart-wallet",params:{transaction:"0x1234567890abcdef",signer:"api-key:test"},onChain:{txId:"0xabcdef1234567890abcdef1234567890abcdef12",explorerLink:"https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12"},createdAt:Date.now()},e);function l(e){return typeof e=="object"&&e!==null&&"error"in e&&e.error===!0}function C(e){return typeof e=="object"&&e!==null&&"address"in e&&"chainType"in e&&"type"in e}function $(e){return typeof e=="object"&&e!==null&&"id"in e&&"status"in e&&"chainType"in e}var x=e=>new Promise(t=>setTimeout(t,e)),ae=e=>/^0x[a-fA-F0-9]{40}$/.test(e),ie=e=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e),ce=(e,t,n={})=>{let s=p(p({apiKey:e},t&&{overrideBaseUrl:t}),n),a=k(p({},s),{setJwt:()=>a});return new w(a)},v=class{constructor(){this.wallets=[];this.transactions=[]}addWallet(t){t&&!this.wallets.includes(t)&&this.wallets.push(t)}addTransaction(t){t&&!this.transactions.includes(t)&&this.transactions.push(t)}getWallet(t=0){return this.wallets[t]}getTransaction(t=0){return this.transactions[t]}hasWallets(){return this.wallets.length>0}clear(){this.wallets=[],this.transactions=[]}};function pe(s,a){return i(this,arguments,function*(e,t,n={}){if(t.hasWallets())return t.getWallet();let{chainType:o="evm",type:c="mpc",owner:g,testName:u="default"}=n,m=g||`userId:integration-${u}-${Date.now()}`,f=yield e.createWallet(p({chainType:o,type:c},g&&{owner:m}));if(C(f))return t.addWallet(f.address),f.address})}function le(e,t,n){return i(this,null,function*(){let s=yield e.createWallet(n);return C(s)&&t.addWallet(s.address),s})}function ue(e,t){r(l(e)).toBe(!0),t&&r(e.message).toBeDefined()}function de(e){r(C(e)).toBe(!0)}function me(e){r($(e)).toBe(!0)}var I=(e,t,n,s="usdxm",a="base-sepolia")=>i(void 0,null,function*(){let o={amount:n,token:s,chain:a},c=yield e.fundWallet(t,o);if(l(c))throw new Error(`Failed to fund wallet: ${c.message||"Unknown error"}`);return yield x(R),c}),U=(a,o,c,...g)=>i(void 0,[a,o,c,...g],function*(e,t,n,s=M.APPROVE_TRANSACTION_MAX_RETRIES){var m;for(let f=0;f<s;f++){let d=yield e.getTransaction(t,n);if(l(d))throw new Error(`Transaction not found: ${d.message||"Unknown error"}`);if("status"in d&&(d.status==="success"||d.status==="failed"))return d;let T="approvals"in d?(m=d.approvals)==null?void 0:m.pending:void 0;if(T&&T.length>0){let O={approvals:T.map(_=>({signer:_.signer.locator,signature:""}))},h=yield e.approveTransaction(t,n,O);if(l(h))throw new Error(`Failed to approve transaction: ${h.message||"Unknown error"}`);yield x(W);continue}yield x(R)}let u=yield e.getTransaction(t,n);if(l(u))throw new Error(`Transaction not found after retries: ${u.message||"Unknown error"}`);if(!("status"in u))throw new Error("Transaction response missing status property");return u}),fe=(e,t,n=1,s="usdxm",a="base-sepolia")=>i(void 0,null,function*(){return I(e,t,n,s,a)}),ge=(e,t,n,s,a)=>i(void 0,null,function*(){let o=yield e.send(t,n,{recipient:s,amount:a});if(l(o))throw new Error(`Failed to send token: ${o.message||"Unknown error"}`);if(typeof o=="object"&&o!==null&&"id"in o&&typeof o.id=="string")return U(e,t,o.id);throw new Error("Transaction ID not found in send response")}),Te=(e,t,n=1,s="usdxm",a="base-sepolia")=>i(void 0,null,function*(){try{yield I(e,t,n,s,a)}catch(o){let c=o instanceof Error?o.message:String(o);if(!c.includes("already funded")&&!c.includes("insufficient"))throw o}});export{v as TestDataFactory,U as approveTransaction,ce as createIntegrationApiClient,B as createMockCrossmint,b as createMockErrorResponse,P as createMockResponse,re as createMockSendResponse,j as createMockSuccessResponse,oe as createMockWalletResponse,Y as createServerSideApiClient,L as createTestApiClient,le as createTestWallet,x as delay,pe as ensureWalletExists,Te as ensureWalletFunded,V as expectCommonHeaders,ue as expectErrorResponse,q as expectRequestBody,N as expectRequestPath,me as expectSuccessTransactionResponse,de as expectSuccessWalletResponse,z as extractFetchCall,I as fundWallet,fe as fundWalletAndWait,l as isErrorResponse,$ as isSuccessTransactionResponse,C as isSuccessWalletResponse,ae as isValidEthereumAddress,ie as isValidSolanaAddress,ge as sendTokenAndApprove,Q as testCommonHttpErrors,Z as testHttpErrorResponse,te as testInvalidJsonResponse,se as testMalformedResponse,ee as testNetworkError,ne as testTimeoutError,X as validateRequest};
1
+ import{a as A,b as F,i as R,j as W,k as E,l as M,m as S}from"../../chunk-DIGDDKSF.js";import{a as w}from"../../chunk-BTTVP3MP.js";import"../../chunk-KOHPRJDP.js";import"../../chunk-INUEMQPG.js";import"../../chunk-MDAPK5FG.js";import{a as p,b as k,h as i}from"../../chunk-NU7VF7MC.js";import{expect as r,vi as y}from"vitest";var P=({data:e,status:t=200,ok:n=!0,statusText:s="OK"})=>({json:y.fn().mockResolvedValue(e),ok:n,status:t,statusText:s}),j=e=>P({data:e}),b=(e,t=400,n="Bad Request")=>P({data:e,status:t,ok:!1,statusText:n}),B=(e={})=>{let t=p({apiKey:S},e);return k(p({},t),{setJwt:y.fn().mockReturnThis()})},L=e=>new w(e||B()),Y=()=>{let e=L();return Object.defineProperty(e,"isServerSide",{get:()=>!0,configurable:!0}),e},z=e=>{let t=e.mock.calls;if(t.length===0)return;let n=t[t.length-1];return{path:n[0],options:n[1]}},N=(e,t)=>{r(e==null?void 0:e.path).toBe(t)},V=e=>{r(e["Content-Type"]).toBe("application/json")},q=(e,t)=>{r(e.body).toBe(JSON.stringify(t))},X=(e,t,n)=>{r(e).toBeDefined(),e&&(N(e,t),e.options.headers&&V(e.options.headers),n!==void 0&&e.options&&q(e.options,n))},Z=(e,t,n,s)=>i(void 0,null,function*(){t.mockResolvedValue(b(n,s));let a=yield e();r(l(a)).toBe(!0),l(a)&&(r(a.error).toBe(!0),n.message&&r(a.message).toBe(n.message))}),Q=(s,a,...o)=>i(void 0,[s,a,...o],function*(e,t,n=[]){for(let{status:c,message:g}of A){if(n.includes(c))continue;let u={error:!0,message:g};t.mockResolvedValueOnce(b(u,c));let m=yield e();r(l(m)).toBe(!0)}}),ee=(e,t)=>i(void 0,null,function*(){t.mockRejectedValue(new Error("Network error")),yield r(e()).rejects.toThrow("Network error")}),te=(e,t)=>i(void 0,null,function*(){let n={json:y.fn().mockRejectedValue(new Error("Invalid JSON")),ok:!0,status:200};t.mockResolvedValue(n),yield r(e()).rejects.toThrow()}),ne=(e,t)=>i(void 0,null,function*(){t.mockImplementation(()=>new Promise((n,s)=>setTimeout(()=>s(new Error("Request timeout")),0))),yield r(e()).rejects.toThrow("Request timeout")}),se=(e,t,n)=>i(void 0,null,function*(){t.mockResolvedValue(j(n));let s=yield e();r(s).toEqual(n)}),oe=(e={})=>p({address:F.evmAddress,chainType:"evm",type:"smart",config:{adminSigner:{type:"external-wallet",address:E.EVM_TEST}}},e),re=(e={})=>p({id:"txn-123",status:"pending",chainType:"evm",walletType:"evm-smart-wallet",params:{transaction:"0x1234567890abcdef",signer:"api-key:test"},onChain:{txId:"0xabcdef1234567890abcdef1234567890abcdef12",explorerLink:"https://explorer.example.com/tx/0xabcdef1234567890abcdef1234567890abcdef12"},createdAt:Date.now()},e);function l(e){return typeof e=="object"&&e!==null&&"error"in e&&e.error===!0}function C(e){return typeof e=="object"&&e!==null&&"address"in e&&"chainType"in e&&"type"in e}function $(e){return typeof e=="object"&&e!==null&&"id"in e&&"status"in e&&"chainType"in e}var x=e=>new Promise(t=>setTimeout(t,e)),ae=e=>/^0x[a-fA-F0-9]{40}$/.test(e),ie=e=>/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(e),ce=(e,t,n={})=>{let s=p(p({apiKey:e},t&&{overrideBaseUrl:t}),n),a=k(p({},s),{setJwt:()=>a});return new w(a)},v=class{constructor(){this.wallets=[];this.transactions=[]}addWallet(t){t&&!this.wallets.includes(t)&&this.wallets.push(t)}addTransaction(t){t&&!this.transactions.includes(t)&&this.transactions.push(t)}getWallet(t=0){return this.wallets[t]}getTransaction(t=0){return this.transactions[t]}hasWallets(){return this.wallets.length>0}clear(){this.wallets=[],this.transactions=[]}};function pe(s,a){return i(this,arguments,function*(e,t,n={}){if(t.hasWallets())return t.getWallet();let{chainType:o="evm",type:c="mpc",owner:g,testName:u="default"}=n,m=g||`userId:integration-${u}-${Date.now()}`,f=yield e.createWallet(p({chainType:o,type:c},g&&{owner:m}));if(C(f))return t.addWallet(f.address),f.address})}function le(e,t,n){return i(this,null,function*(){let s=yield e.createWallet(n);return C(s)&&t.addWallet(s.address),s})}function ue(e,t){r(l(e)).toBe(!0),t&&r(e.message).toBeDefined()}function de(e){r(C(e)).toBe(!0)}function me(e){r($(e)).toBe(!0)}var I=(e,t,n,s="usdxm",a="base-sepolia")=>i(void 0,null,function*(){let o={amount:n,token:s,chain:a},c=yield e.fundWallet(t,o);if(l(c))throw new Error(`Failed to fund wallet: ${c.message||"Unknown error"}`);return yield x(R),c}),U=(a,o,c,...g)=>i(void 0,[a,o,c,...g],function*(e,t,n,s=M.APPROVE_TRANSACTION_MAX_RETRIES){var m;for(let f=0;f<s;f++){let d=yield e.getTransaction(t,n);if(l(d))throw new Error(`Transaction not found: ${d.message||"Unknown error"}`);if("status"in d&&(d.status==="success"||d.status==="failed"))return d;let T="approvals"in d?(m=d.approvals)==null?void 0:m.pending:void 0;if(T&&T.length>0){let O={approvals:T.map(_=>({signer:_.signer.locator,signature:""}))},h=yield e.approveTransaction(t,n,O);if(l(h))throw new Error(`Failed to approve transaction: ${h.message||"Unknown error"}`);yield x(W);continue}yield x(R)}let u=yield e.getTransaction(t,n);if(l(u))throw new Error(`Transaction not found after retries: ${u.message||"Unknown error"}`);if(!("status"in u))throw new Error("Transaction response missing status property");return u}),fe=(e,t,n=1,s="usdxm",a="base-sepolia")=>i(void 0,null,function*(){return I(e,t,n,s,a)}),ge=(e,t,n,s,a)=>i(void 0,null,function*(){let o=yield e.send(t,n,{recipient:s,amount:a});if(l(o))throw new Error(`Failed to send token: ${o.message||"Unknown error"}`);if(typeof o=="object"&&o!==null&&"id"in o&&typeof o.id=="string")return U(e,t,o.id);throw new Error("Transaction ID not found in send response")}),Te=(e,t,n=1,s="usdxm",a="base-sepolia")=>i(void 0,null,function*(){try{yield I(e,t,n,s,a)}catch(o){let c=o instanceof Error?o.message:String(o);if(!c.includes("already funded")&&!c.includes("insufficient"))throw o}});export{v as TestDataFactory,U as approveTransaction,ce as createIntegrationApiClient,B as createMockCrossmint,b as createMockErrorResponse,P as createMockResponse,re as createMockSendResponse,j as createMockSuccessResponse,oe as createMockWalletResponse,Y as createServerSideApiClient,L as createTestApiClient,le as createTestWallet,x as delay,pe as ensureWalletExists,Te as ensureWalletFunded,V as expectCommonHeaders,ue as expectErrorResponse,q as expectRequestBody,N as expectRequestPath,me as expectSuccessTransactionResponse,de as expectSuccessWalletResponse,z as extractFetchCall,I as fundWallet,fe as fundWalletAndWait,l as isErrorResponse,$ as isSuccessTransactionResponse,C as isSuccessWalletResponse,ae as isValidEthereumAddress,ie as isValidSolanaAddress,ge as sendTokenAndApprove,Q as testCommonHttpErrors,Z as testHttpErrorResponse,te as testInvalidJsonResponse,se as testMalformedResponse,ee as testNetworkError,ne as testTimeoutError,X as validateRequest};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk53VKI7FJcjs = require('../chunk-53VKI7FJ.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-SP5DQZ6D.cjs');require('../chunk-XFCHACH7.cjs');require('../chunk-DSIFRRBS.cjs');exports.ApiClient = _chunk53VKI7FJcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkW222P6C6cjs = require('../chunk-W222P6C6.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-W3BYSI7F.cjs');require('../chunk-M42AKAZK.cjs');require('../chunk-DSIFRRBS.cjs');exports.ApiClient = _chunkW222P6C6cjs.a;
@@ -1,5 +1,5 @@
1
1
  import { CrossmintApiClient, Crossmint, APIKeyEnvironmentPrefix } from '@crossmint/common-sdk-base';
2
- import { au as CreateWalletParams, at as CreateWalletResponse, af as WalletLocator, aA as GetWalletResponse, aB as CreateTransactionParams, aC as CreateTransactionResponse, aD as ApproveTransactionParams, aE as ApproveTransactionResponse, ar as GetTransactionResponse, aF as CreateSignatureParams, aG as CreateSignatureResponse, aH as ApproveSignatureParams, ag as ApproveSignatureResponse, aI as GetSignatureResponse, a9 as GetTransactionsResponse, aJ as GetTransfersResponse, aK as GetBalanceResponse, aL as FundWalletParams, a8 as FundWalletResponse, am as RegisterSignerParams, ap as RegisterSignerResponse, aM as RemoveSignerParams, aN as RemoveSignerResponse, ak as GetSignerResponse, aO as SendParams, as as SendResponse } from '../types-r_5ltlhH.cjs';
2
+ import { aw as CreateWalletParams, av as CreateWalletResponse, ag as WalletLocator, aC as GetWalletResponse, aD as CreateTransactionParams, aE as CreateTransactionResponse, aF as ApproveTransactionParams, aG as ApproveTransactionResponse, at as GetTransactionResponse, aH as CreateSignatureParams, aI as CreateSignatureResponse, aJ as ApproveSignatureParams, ah as ApproveSignatureResponse, aK as GetSignatureResponse, aa as GetTransactionsResponse, aL as GetTransfersResponse, aM as GetBalanceResponse, aN as FundWalletParams, a9 as FundWalletResponse, ao as RegisterSignerParams, ar as RegisterSignerResponse, aO as RemoveSignerParams, aP as RemoveSignerResponse, am as GetSignerResponse, aQ as SendParams, au as SendResponse } from '../types-B4kzDRWb.cjs';
3
3
  import { Chain } from '../chains/chains.cjs';
4
4
  import 'viem';
5
5
  import './gen/types.gen.cjs';
@@ -1,5 +1,5 @@
1
1
  import { CrossmintApiClient, Crossmint, APIKeyEnvironmentPrefix } from '@crossmint/common-sdk-base';
2
- import { au as CreateWalletParams, at as CreateWalletResponse, af as WalletLocator, aA as GetWalletResponse, aB as CreateTransactionParams, aC as CreateTransactionResponse, aD as ApproveTransactionParams, aE as ApproveTransactionResponse, ar as GetTransactionResponse, aF as CreateSignatureParams, aG as CreateSignatureResponse, aH as ApproveSignatureParams, ag as ApproveSignatureResponse, aI as GetSignatureResponse, a9 as GetTransactionsResponse, aJ as GetTransfersResponse, aK as GetBalanceResponse, aL as FundWalletParams, a8 as FundWalletResponse, am as RegisterSignerParams, ap as RegisterSignerResponse, aM as RemoveSignerParams, aN as RemoveSignerResponse, ak as GetSignerResponse, aO as SendParams, as as SendResponse } from '../types-D2ugRtLo.js';
2
+ import { aw as CreateWalletParams, av as CreateWalletResponse, ag as WalletLocator, aC as GetWalletResponse, aD as CreateTransactionParams, aE as CreateTransactionResponse, aF as ApproveTransactionParams, aG as ApproveTransactionResponse, at as GetTransactionResponse, aH as CreateSignatureParams, aI as CreateSignatureResponse, aJ as ApproveSignatureParams, ah as ApproveSignatureResponse, aK as GetSignatureResponse, aa as GetTransactionsResponse, aL as GetTransfersResponse, aM as GetBalanceResponse, aN as FundWalletParams, a9 as FundWalletResponse, ao as RegisterSignerParams, ar as RegisterSignerResponse, aO as RemoveSignerParams, aP as RemoveSignerResponse, am as GetSignerResponse, aQ as SendParams, au as SendResponse } from '../types-Bxb54lGe.js';
3
3
  import { Chain } from '../chains/chains.js';
4
4
  import 'viem';
5
5
  import './gen/types.gen.js';
@@ -1 +1 @@
1
- import{a}from"../chunk-BL7A7ROX.js";import"../chunk-KOHPRJDP.js";import"../chunk-AZAIXRGS.js";import"../chunk-FUZ2TPGD.js";import"../chunk-NU7VF7MC.js";export{a as ApiClient};
1
+ import{a}from"../chunk-BTTVP3MP.js";import"../chunk-KOHPRJDP.js";import"../chunk-INUEMQPG.js";import"../chunk-MDAPK5FG.js";import"../chunk-NU7VF7MC.js";export{a as ApiClient};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-6HXIZLEQ.cjs');var _chunk53VKI7FJcjs = require('../chunk-53VKI7FJ.cjs');require('../chunk-ECAM5KTH.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-SP5DQZ6D.cjs');require('../chunk-XFCHACH7.cjs');require('../chunk-DSIFRRBS.cjs');exports.ApiClient = _chunk53VKI7FJcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-6HXIZLEQ.cjs');var _chunkW222P6C6cjs = require('../chunk-W222P6C6.cjs');require('../chunk-ECAM5KTH.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-W3BYSI7F.cjs');require('../chunk-M42AKAZK.cjs');require('../chunk-DSIFRRBS.cjs');exports.ApiClient = _chunkW222P6C6cjs.a;
@@ -1,5 +1,5 @@
1
1
  export { ApiClient } from './client.cjs';
2
- export { aH as ApproveSignatureParams, ag as ApproveSignatureResponse, aD as ApproveTransactionParams, aE as ApproveTransactionResponse, aF as CreateSignatureParams, aG as CreateSignatureResponse, aB as CreateTransactionParams, aC as CreateTransactionResponse, aP as CreateTransactionSuccessResponse, au as CreateWalletParams, at as CreateWalletResponse, aL as FundWalletParams, a8 as FundWalletResponse, aK as GetBalanceResponse, az as GetBalanceSuccessResponse, aI as GetSignatureResponse, ak as GetSignerResponse, aQ as GetSignersResponse, ar as GetTransactionResponse, aa as GetTransactionSuccessResponse, a9 as GetTransactionsResponse, aJ as GetTransfersResponse, aA as GetWalletResponse, aR as GetWalletSuccessResponse, aS as RecoverySignerConfig, ao as RegisterSignerChain, am as RegisterSignerParams, r as RegisterSignerPasskeyParams, ap as RegisterSignerResponse, aM as RemoveSignerParams, aN as RemoveSignerResponse, S as Scope, aO as SendParams, as as SendResponse, a2 as Signer, H as TransferScope, I as Transfers, af as WalletLocator } from '../types-r_5ltlhH.cjs';
2
+ export { aJ as ApproveSignatureParams, ah as ApproveSignatureResponse, aF as ApproveTransactionParams, aG as ApproveTransactionResponse, aH as CreateSignatureParams, aI as CreateSignatureResponse, aD as CreateTransactionParams, aE as CreateTransactionResponse, aR as CreateTransactionSuccessResponse, aw as CreateWalletParams, av as CreateWalletResponse, aN as FundWalletParams, a9 as FundWalletResponse, aM as GetBalanceResponse, aB as GetBalanceSuccessResponse, aK as GetSignatureResponse, am as GetSignerResponse, aS as GetSignersResponse, at as GetTransactionResponse, ab as GetTransactionSuccessResponse, aa as GetTransactionsResponse, aL as GetTransfersResponse, aC as GetWalletResponse, aT as GetWalletSuccessResponse, aU as RecoverySignerConfig, aq as RegisterSignerChain, ao as RegisterSignerParams, r as RegisterSignerPasskeyParams, ar as RegisterSignerResponse, aO as RemoveSignerParams, aP as RemoveSignerResponse, S as Scope, aQ as SendParams, au as SendResponse, a4 as Signer, I as TransferScope, J as Transfers, ag as WalletLocator } from '../types-B4kzDRWb.cjs';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import '../chains/chains.cjs';
5
5
  import 'viem';
@@ -1,5 +1,5 @@
1
1
  export { ApiClient } from './client.js';
2
- export { aH as ApproveSignatureParams, ag as ApproveSignatureResponse, aD as ApproveTransactionParams, aE as ApproveTransactionResponse, aF as CreateSignatureParams, aG as CreateSignatureResponse, aB as CreateTransactionParams, aC as CreateTransactionResponse, aP as CreateTransactionSuccessResponse, au as CreateWalletParams, at as CreateWalletResponse, aL as FundWalletParams, a8 as FundWalletResponse, aK as GetBalanceResponse, az as GetBalanceSuccessResponse, aI as GetSignatureResponse, ak as GetSignerResponse, aQ as GetSignersResponse, ar as GetTransactionResponse, aa as GetTransactionSuccessResponse, a9 as GetTransactionsResponse, aJ as GetTransfersResponse, aA as GetWalletResponse, aR as GetWalletSuccessResponse, aS as RecoverySignerConfig, ao as RegisterSignerChain, am as RegisterSignerParams, r as RegisterSignerPasskeyParams, ap as RegisterSignerResponse, aM as RemoveSignerParams, aN as RemoveSignerResponse, S as Scope, aO as SendParams, as as SendResponse, a2 as Signer, H as TransferScope, I as Transfers, af as WalletLocator } from '../types-D2ugRtLo.js';
2
+ export { aJ as ApproveSignatureParams, ah as ApproveSignatureResponse, aF as ApproveTransactionParams, aG as ApproveTransactionResponse, aH as CreateSignatureParams, aI as CreateSignatureResponse, aD as CreateTransactionParams, aE as CreateTransactionResponse, aR as CreateTransactionSuccessResponse, aw as CreateWalletParams, av as CreateWalletResponse, aN as FundWalletParams, a9 as FundWalletResponse, aM as GetBalanceResponse, aB as GetBalanceSuccessResponse, aK as GetSignatureResponse, am as GetSignerResponse, aS as GetSignersResponse, at as GetTransactionResponse, ab as GetTransactionSuccessResponse, aa as GetTransactionsResponse, aL as GetTransfersResponse, aC as GetWalletResponse, aT as GetWalletSuccessResponse, aU as RecoverySignerConfig, aq as RegisterSignerChain, ao as RegisterSignerParams, r as RegisterSignerPasskeyParams, ar as RegisterSignerResponse, aO as RemoveSignerParams, aP as RemoveSignerResponse, S as Scope, aQ as SendParams, au as SendResponse, a4 as Signer, I as TransferScope, J as Transfers, ag as WalletLocator } from '../types-Bxb54lGe.js';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import '../chains/chains.js';
5
5
  import 'viem';
package/dist/api/index.js CHANGED
@@ -1 +1 @@
1
- import"../chunk-5IFDVB4Y.js";import{a}from"../chunk-BL7A7ROX.js";import"../chunk-KBJA7JDT.js";import"../chunk-KOHPRJDP.js";import"../chunk-AZAIXRGS.js";import"../chunk-FUZ2TPGD.js";import"../chunk-NU7VF7MC.js";export{a as ApiClient};
1
+ import"../chunk-5IFDVB4Y.js";import{a}from"../chunk-BTTVP3MP.js";import"../chunk-KBJA7JDT.js";import"../chunk-KOHPRJDP.js";import"../chunk-INUEMQPG.js";import"../chunk-MDAPK5FG.js";import"../chunk-NU7VF7MC.js";export{a as ApiClient};
@@ -1,6 +1,6 @@
1
1
  import 'viem';
2
2
  import './gen/types.gen.cjs';
3
- export { aH as ApproveSignatureParams, ag as ApproveSignatureResponse, aD as ApproveTransactionParams, aE as ApproveTransactionResponse, aF as CreateSignatureParams, aG as CreateSignatureResponse, aB as CreateTransactionParams, aC as CreateTransactionResponse, aP as CreateTransactionSuccessResponse, au as CreateWalletParams, at as CreateWalletResponse, aL as FundWalletParams, a8 as FundWalletResponse, aK as GetBalanceResponse, az as GetBalanceSuccessResponse, aI as GetSignatureResponse, ak as GetSignerResponse, aQ as GetSignersResponse, ar as GetTransactionResponse, aa as GetTransactionSuccessResponse, a9 as GetTransactionsResponse, aJ as GetTransfersResponse, aA as GetWalletResponse, aR as GetWalletSuccessResponse, aS as RecoverySignerConfig, ao as RegisterSignerChain, am as RegisterSignerParams, r as RegisterSignerPasskeyParams, ap as RegisterSignerResponse, aM as RemoveSignerParams, aN as RemoveSignerResponse, S as Scope, aO as SendParams, as as SendResponse, a2 as Signer, H as TransferScope, I as Transfers, af as WalletLocator } from '../types-r_5ltlhH.cjs';
3
+ export { aJ as ApproveSignatureParams, ah as ApproveSignatureResponse, aF as ApproveTransactionParams, aG as ApproveTransactionResponse, aH as CreateSignatureParams, aI as CreateSignatureResponse, aD as CreateTransactionParams, aE as CreateTransactionResponse, aR as CreateTransactionSuccessResponse, aw as CreateWalletParams, av as CreateWalletResponse, aN as FundWalletParams, a9 as FundWalletResponse, aM as GetBalanceResponse, aB as GetBalanceSuccessResponse, aK as GetSignatureResponse, am as GetSignerResponse, aS as GetSignersResponse, at as GetTransactionResponse, ab as GetTransactionSuccessResponse, aa as GetTransactionsResponse, aL as GetTransfersResponse, aC as GetWalletResponse, aT as GetWalletSuccessResponse, aU as RecoverySignerConfig, aq as RegisterSignerChain, ao as RegisterSignerParams, r as RegisterSignerPasskeyParams, ar as RegisterSignerResponse, aO as RemoveSignerParams, aP as RemoveSignerResponse, S as Scope, aQ as SendParams, au as SendResponse, a4 as Signer, I as TransferScope, J as Transfers, ag as WalletLocator } from '../types-B4kzDRWb.cjs';
4
4
  import '../chains/chains.cjs';
5
5
  import 'ox';
6
6
  import '@crossmint/client-sdk-window';
@@ -1,6 +1,6 @@
1
1
  import 'viem';
2
2
  import './gen/types.gen.js';
3
- export { aH as ApproveSignatureParams, ag as ApproveSignatureResponse, aD as ApproveTransactionParams, aE as ApproveTransactionResponse, aF as CreateSignatureParams, aG as CreateSignatureResponse, aB as CreateTransactionParams, aC as CreateTransactionResponse, aP as CreateTransactionSuccessResponse, au as CreateWalletParams, at as CreateWalletResponse, aL as FundWalletParams, a8 as FundWalletResponse, aK as GetBalanceResponse, az as GetBalanceSuccessResponse, aI as GetSignatureResponse, ak as GetSignerResponse, aQ as GetSignersResponse, ar as GetTransactionResponse, aa as GetTransactionSuccessResponse, a9 as GetTransactionsResponse, aJ as GetTransfersResponse, aA as GetWalletResponse, aR as GetWalletSuccessResponse, aS as RecoverySignerConfig, ao as RegisterSignerChain, am as RegisterSignerParams, r as RegisterSignerPasskeyParams, ap as RegisterSignerResponse, aM as RemoveSignerParams, aN as RemoveSignerResponse, S as Scope, aO as SendParams, as as SendResponse, a2 as Signer, H as TransferScope, I as Transfers, af as WalletLocator } from '../types-D2ugRtLo.js';
3
+ export { aJ as ApproveSignatureParams, ah as ApproveSignatureResponse, aF as ApproveTransactionParams, aG as ApproveTransactionResponse, aH as CreateSignatureParams, aI as CreateSignatureResponse, aD as CreateTransactionParams, aE as CreateTransactionResponse, aR as CreateTransactionSuccessResponse, aw as CreateWalletParams, av as CreateWalletResponse, aN as FundWalletParams, a9 as FundWalletResponse, aM as GetBalanceResponse, aB as GetBalanceSuccessResponse, aK as GetSignatureResponse, am as GetSignerResponse, aS as GetSignersResponse, at as GetTransactionResponse, ab as GetTransactionSuccessResponse, aa as GetTransactionsResponse, aL as GetTransfersResponse, aC as GetWalletResponse, aT as GetWalletSuccessResponse, aU as RecoverySignerConfig, aq as RegisterSignerChain, ao as RegisterSignerParams, r as RegisterSignerPasskeyParams, ar as RegisterSignerResponse, aO as RemoveSignerParams, aP as RemoveSignerResponse, S as Scope, aQ as SendParams, au as SendResponse, a4 as Signer, I as TransferScope, J as Transfers, ag as WalletLocator } from '../types-Bxb54lGe.js';
4
4
  import '../chains/chains.js';
5
5
  import 'ox';
6
6
  import '@crossmint/client-sdk-window';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk2G4Y25AJcjs = require('../../chunk-2G4Y25AJ.cjs');require('../../chunk-JNKTRQPS.cjs');require('../../chunk-VS6I4S7X.cjs');require('../../chunk-CCIGWTAO.cjs');require('../../chunk-SP5DQZ6D.cjs');require('../../chunk-XFCHACH7.cjs');require('../../chunk-DSIFRRBS.cjs');exports.evmChainAdapter = _chunk2G4Y25AJcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk52EJ53LPcjs = require('../../chunk-52EJ53LP.cjs');require('../../chunk-JNKTRQPS.cjs');require('../../chunk-VS6I4S7X.cjs');require('../../chunk-CCIGWTAO.cjs');require('../../chunk-W3BYSI7F.cjs');require('../../chunk-M42AKAZK.cjs');require('../../chunk-DSIFRRBS.cjs');exports.evmChainAdapter = _chunk52EJ53LPcjs.a;
@@ -2,7 +2,7 @@ import { ChainAdapter } from '../chain-adapter.cjs';
2
2
  import '../chains.cjs';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
- import '../../types-r_5ltlhH.cjs';
5
+ import '../../types-B4kzDRWb.cjs';
6
6
  import '../../api/gen/types.gen.cjs';
7
7
  import 'ox';
8
8
  import '@crossmint/client-sdk-window';
@@ -2,7 +2,7 @@ import { ChainAdapter } from '../chain-adapter.js';
2
2
  import '../chains.js';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
- import '../../types-D2ugRtLo.js';
5
+ import '../../types-Bxb54lGe.js';
6
6
  import '../../api/gen/types.gen.js';
7
7
  import 'ox';
8
8
  import '@crossmint/client-sdk-window';
@@ -1 +1 @@
1
- import{a}from"../../chunk-6T4GBLXY.js";import"../../chunk-B4GYB3XY.js";import"../../chunk-KOHPRJDP.js";import"../../chunk-455NK5LB.js";import"../../chunk-AZAIXRGS.js";import"../../chunk-FUZ2TPGD.js";import"../../chunk-NU7VF7MC.js";export{a as evmChainAdapter};
1
+ import{a}from"../../chunk-ABOMDBIJ.js";import"../../chunk-B4GYB3XY.js";import"../../chunk-KOHPRJDP.js";import"../../chunk-455NK5LB.js";import"../../chunk-INUEMQPG.js";import"../../chunk-MDAPK5FG.js";import"../../chunk-NU7VF7MC.js";export{a as evmChainAdapter};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5L5MJAFScjs = require('../../chunk-5L5MJAFS.cjs');require('../../chunk-CCIGWTAO.cjs');require('../../chunk-SP5DQZ6D.cjs');require('../../chunk-XFCHACH7.cjs');require('../../chunk-DSIFRRBS.cjs');exports.solanaChainAdapter = _chunk5L5MJAFScjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTA5VIPMHcjs = require('../../chunk-TA5VIPMH.cjs');require('../../chunk-CCIGWTAO.cjs');require('../../chunk-W3BYSI7F.cjs');require('../../chunk-M42AKAZK.cjs');require('../../chunk-DSIFRRBS.cjs');exports.solanaChainAdapter = _chunkTA5VIPMHcjs.a;
@@ -2,7 +2,7 @@ import { ChainAdapter } from '../chain-adapter.cjs';
2
2
  import '../chains.cjs';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
- import '../../types-r_5ltlhH.cjs';
5
+ import '../../types-B4kzDRWb.cjs';
6
6
  import '../../api/gen/types.gen.cjs';
7
7
  import 'ox';
8
8
  import '@crossmint/client-sdk-window';
@@ -2,7 +2,7 @@ import { ChainAdapter } from '../chain-adapter.js';
2
2
  import '../chains.js';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
- import '../../types-D2ugRtLo.js';
5
+ import '../../types-Bxb54lGe.js';
6
6
  import '../../api/gen/types.gen.js';
7
7
  import 'ox';
8
8
  import '@crossmint/client-sdk-window';
@@ -1 +1 @@
1
- import{a}from"../../chunk-CXWFJGKI.js";import"../../chunk-455NK5LB.js";import"../../chunk-AZAIXRGS.js";import"../../chunk-FUZ2TPGD.js";import"../../chunk-NU7VF7MC.js";export{a as solanaChainAdapter};
1
+ import{a}from"../../chunk-TWYVUVLB.js";import"../../chunk-455NK5LB.js";import"../../chunk-INUEMQPG.js";import"../../chunk-MDAPK5FG.js";import"../../chunk-NU7VF7MC.js";export{a as solanaChainAdapter};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKVMPBMNGcjs = require('../../chunk-KVMPBMNG.cjs');require('../../chunk-CCIGWTAO.cjs');require('../../chunk-SP5DQZ6D.cjs');require('../../chunk-XFCHACH7.cjs');require('../../chunk-DSIFRRBS.cjs');exports.stellarChainAdapter = _chunkKVMPBMNGcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk2QCYHRPXcjs = require('../../chunk-2QCYHRPX.cjs');require('../../chunk-CCIGWTAO.cjs');require('../../chunk-W3BYSI7F.cjs');require('../../chunk-M42AKAZK.cjs');require('../../chunk-DSIFRRBS.cjs');exports.stellarChainAdapter = _chunk2QCYHRPXcjs.a;
@@ -2,7 +2,7 @@ import { ChainAdapter } from '../chain-adapter.cjs';
2
2
  import '../chains.cjs';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
- import '../../types-r_5ltlhH.cjs';
5
+ import '../../types-B4kzDRWb.cjs';
6
6
  import '../../api/gen/types.gen.cjs';
7
7
  import 'ox';
8
8
  import '@crossmint/client-sdk-window';
@@ -2,7 +2,7 @@ import { ChainAdapter } from '../chain-adapter.js';
2
2
  import '../chains.js';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
- import '../../types-D2ugRtLo.js';
5
+ import '../../types-Bxb54lGe.js';
6
6
  import '../../api/gen/types.gen.js';
7
7
  import 'ox';
8
8
  import '@crossmint/client-sdk-window';
@@ -1 +1 @@
1
- import{a}from"../../chunk-NQ3PROUV.js";import"../../chunk-455NK5LB.js";import"../../chunk-AZAIXRGS.js";import"../../chunk-FUZ2TPGD.js";import"../../chunk-NU7VF7MC.js";export{a as stellarChainAdapter};
1
+ import{a}from"../../chunk-L7DGQX3V.js";import"../../chunk-455NK5LB.js";import"../../chunk-INUEMQPG.js";import"../../chunk-MDAPK5FG.js";import"../../chunk-NU7VF7MC.js";export{a as stellarChainAdapter};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkD5IIHIEWcjs = require('../chunk-D5IIHIEW.cjs');require('../chunk-2G4Y25AJ.cjs');require('../chunk-5L5MJAFS.cjs');require('../chunk-KVMPBMNG.cjs');require('../chunk-JNKTRQPS.cjs');require('../chunk-ENU3EKBG.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-CCIGWTAO.cjs');require('../chunk-SP5DQZ6D.cjs');require('../chunk-XFCHACH7.cjs');require('../chunk-DSIFRRBS.cjs');exports.getChainAdapter = _chunkD5IIHIEWcjs.a; exports.isSupportedChainType = _chunkD5IIHIEWcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkAA2XAWEUcjs = require('../chunk-AA2XAWEU.cjs');require('../chunk-52EJ53LP.cjs');require('../chunk-TA5VIPMH.cjs');require('../chunk-2QCYHRPX.cjs');require('../chunk-JNKTRQPS.cjs');require('../chunk-ENU3EKBG.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-CCIGWTAO.cjs');require('../chunk-W3BYSI7F.cjs');require('../chunk-M42AKAZK.cjs');require('../chunk-DSIFRRBS.cjs');exports.getApprovalAdapter = _chunkAA2XAWEUcjs.c; exports.getChainAdapter = _chunkAA2XAWEUcjs.a; exports.isSupportedChainType = _chunkAA2XAWEUcjs.b;
@@ -1,5 +1,5 @@
1
1
  import { Chain } from './chains.cjs';
2
- import { ao as RegisterSignerChain, ap as RegisterSignerResponse, a3 as PendingSignerOperation, aq as TokenBalance } from '../types-r_5ltlhH.cjs';
2
+ import { aq as RegisterSignerChain, ar as RegisterSignerResponse, a5 as PendingSignerOperation, as as TokenBalance, w as SignerAdapter, ab as GetTransactionSuccessResponse } from '../types-B4kzDRWb.cjs';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
5
  import '../api/gen/types.gen.cjs';
@@ -23,6 +23,7 @@ interface ChainAdapter {
23
23
  extractAddSignerOperation(response: RegisterSignerResponse, chain: Chain, signer: AddSignerContext): PendingSignerOperation | null;
24
24
  balanceTokenFields(chainData: unknown): Partial<TokenBalance>;
25
25
  emptyBalanceTokenFields(): Partial<TokenBalance>;
26
+ signApproval(signer: SignerAdapter, transaction: GetTransactionSuccessResponse, approvalMessage: string): ReturnType<SignerAdapter["signMessage"]>;
26
27
  }
27
28
  declare const CHAIN_ADAPTERS: {
28
29
  readonly evm: ChainAdapter;
@@ -32,5 +33,6 @@ declare const CHAIN_ADAPTERS: {
32
33
  type ChainType = keyof typeof CHAIN_ADAPTERS;
33
34
  declare function getChainAdapter(chain: Chain): ChainAdapter;
34
35
  declare function isSupportedChainType(chainType: string): chainType is ChainType;
36
+ declare function getApprovalAdapter(chainType: string, fallback: ChainAdapter): ChainAdapter;
35
37
 
36
- export { type AddSignerChain, type AddSignerContext, type ChainAdapter, type ChainType, getChainAdapter, isSupportedChainType };
38
+ export { type AddSignerChain, type AddSignerContext, type ChainAdapter, type ChainType, getApprovalAdapter, getChainAdapter, isSupportedChainType };
@@ -1,5 +1,5 @@
1
1
  import { Chain } from './chains.js';
2
- import { ao as RegisterSignerChain, ap as RegisterSignerResponse, a3 as PendingSignerOperation, aq as TokenBalance } from '../types-D2ugRtLo.js';
2
+ import { aq as RegisterSignerChain, ar as RegisterSignerResponse, a5 as PendingSignerOperation, as as TokenBalance, w as SignerAdapter, ab as GetTransactionSuccessResponse } from '../types-Bxb54lGe.js';
3
3
  import '@crossmint/common-sdk-base';
4
4
  import 'viem';
5
5
  import '../api/gen/types.gen.js';
@@ -23,6 +23,7 @@ interface ChainAdapter {
23
23
  extractAddSignerOperation(response: RegisterSignerResponse, chain: Chain, signer: AddSignerContext): PendingSignerOperation | null;
24
24
  balanceTokenFields(chainData: unknown): Partial<TokenBalance>;
25
25
  emptyBalanceTokenFields(): Partial<TokenBalance>;
26
+ signApproval(signer: SignerAdapter, transaction: GetTransactionSuccessResponse, approvalMessage: string): ReturnType<SignerAdapter["signMessage"]>;
26
27
  }
27
28
  declare const CHAIN_ADAPTERS: {
28
29
  readonly evm: ChainAdapter;
@@ -32,5 +33,6 @@ declare const CHAIN_ADAPTERS: {
32
33
  type ChainType = keyof typeof CHAIN_ADAPTERS;
33
34
  declare function getChainAdapter(chain: Chain): ChainAdapter;
34
35
  declare function isSupportedChainType(chainType: string): chainType is ChainType;
36
+ declare function getApprovalAdapter(chainType: string, fallback: ChainAdapter): ChainAdapter;
35
37
 
36
- export { type AddSignerChain, type AddSignerContext, type ChainAdapter, type ChainType, getChainAdapter, isSupportedChainType };
38
+ export { type AddSignerChain, type AddSignerContext, type ChainAdapter, type ChainType, getApprovalAdapter, getChainAdapter, isSupportedChainType };
@@ -1 +1 @@
1
- import{a,b}from"../chunk-WJDR3MG5.js";import"../chunk-6T4GBLXY.js";import"../chunk-CXWFJGKI.js";import"../chunk-NQ3PROUV.js";import"../chunk-B4GYB3XY.js";import"../chunk-OQZTL6ZG.js";import"../chunk-KOHPRJDP.js";import"../chunk-455NK5LB.js";import"../chunk-AZAIXRGS.js";import"../chunk-FUZ2TPGD.js";import"../chunk-NU7VF7MC.js";export{a as getChainAdapter,b as isSupportedChainType};
1
+ import{a,b,c}from"../chunk-C2QJ3WKC.js";import"../chunk-ABOMDBIJ.js";import"../chunk-TWYVUVLB.js";import"../chunk-L7DGQX3V.js";import"../chunk-B4GYB3XY.js";import"../chunk-OQZTL6ZG.js";import"../chunk-KOHPRJDP.js";import"../chunk-455NK5LB.js";import"../chunk-INUEMQPG.js";import"../chunk-MDAPK5FG.js";import"../chunk-NU7VF7MC.js";export{c as getApprovalAdapter,a as getChainAdapter,b as isSupportedChainType};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBHHXVRU6cjs = require('../chunk-BHHXVRU6.cjs');require('../chunk-AUO6R32H.cjs');require('../chunk-ZPO3XSWU.cjs');require('../chunk-IR5WN6FQ.cjs');require('../chunk-GEY574TH.cjs');require('../chunk-UE3WVHTM.cjs');require('../chunk-5X4EOJFG.cjs');require('../chunk-TCDH5Q6Q.cjs');require('../chunk-HRUMWG2F.cjs');require('../chunk-OQFZL5LI.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-CCIGWTAO.cjs');require('../chunk-SP5DQZ6D.cjs');require('../chunk-XFCHACH7.cjs');require('../chunk-DSIFRRBS.cjs');exports.isMainnetChain = _chunkBHHXVRU6cjs.c; exports.isTestnetChain = _chunkBHHXVRU6cjs.b; exports.isValidChain = _chunkBHHXVRU6cjs.e; exports.mainnetToTestnet = _chunkBHHXVRU6cjs.d; exports.toViemChain = _chunkBHHXVRU6cjs.a; exports.validateChainForEnvironment = _chunkBHHXVRU6cjs.f;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5X66U2JLcjs = require('../chunk-5X66U2JL.cjs');require('../chunk-OQFZL5LI.cjs');require('../chunk-AUO6R32H.cjs');require('../chunk-ZPO3XSWU.cjs');require('../chunk-IR5WN6FQ.cjs');require('../chunk-GEY574TH.cjs');require('../chunk-UE3WVHTM.cjs');require('../chunk-5X4EOJFG.cjs');require('../chunk-TCDH5Q6Q.cjs');require('../chunk-HRUMWG2F.cjs');require('../chunk-VS6I4S7X.cjs');require('../chunk-CCIGWTAO.cjs');require('../chunk-W3BYSI7F.cjs');require('../chunk-M42AKAZK.cjs');require('../chunk-DSIFRRBS.cjs');exports.isMainnetChain = _chunk5X66U2JLcjs.c; exports.isTestnetChain = _chunk5X66U2JLcjs.b; exports.isValidChain = _chunk5X66U2JLcjs.e; exports.mainnetToTestnet = _chunk5X66U2JLcjs.d; exports.toViemChain = _chunk5X66U2JLcjs.a; exports.validateChainForEnvironment = _chunk5X66U2JLcjs.f;
@@ -1 +1 @@
1
- import{a,b,c,d,e,f}from"../chunk-NMUHOXYI.js";import"../chunk-V5NY4W5H.js";import"../chunk-CGQCRDG7.js";import"../chunk-KKQBZXFE.js";import"../chunk-S3DYQVRD.js";import"../chunk-KUP7H7X2.js";import"../chunk-FT5EVMLB.js";import"../chunk-QLOW4D2N.js";import"../chunk-SVIKBM3S.js";import"../chunk-C6E6WC4P.js";import"../chunk-KOHPRJDP.js";import"../chunk-455NK5LB.js";import"../chunk-AZAIXRGS.js";import"../chunk-FUZ2TPGD.js";import"../chunk-NU7VF7MC.js";export{c as isMainnetChain,b as isTestnetChain,e as isValidChain,d as mainnetToTestnet,a as toViemChain,f as validateChainForEnvironment};
1
+ import{a,b,c,d,e,f}from"../chunk-JGLNAY5C.js";import"../chunk-C6E6WC4P.js";import"../chunk-V5NY4W5H.js";import"../chunk-CGQCRDG7.js";import"../chunk-KKQBZXFE.js";import"../chunk-S3DYQVRD.js";import"../chunk-KUP7H7X2.js";import"../chunk-FT5EVMLB.js";import"../chunk-QLOW4D2N.js";import"../chunk-SVIKBM3S.js";import"../chunk-KOHPRJDP.js";import"../chunk-455NK5LB.js";import"../chunk-INUEMQPG.js";import"../chunk-MDAPK5FG.js";import"../chunk-NU7VF7MC.js";export{c as isMainnetChain,b as isTestnetChain,e as isValidChain,d as mainnetToTestnet,a as toViemChain,f as validateChainForEnvironment};
@@ -1 +1 @@
1
- import{a as n}from"./chunk-4KOHNUNP.js";import{a as s}from"./chunk-5LNDUSMZ.js";import{a as l}from"./chunk-BL7A7ROX.js";import{a,b as i}from"./chunk-AZAIXRGS.js";import{h as r}from"./chunk-NU7VF7MC.js";import{createCrossmint as C}from"@crossmint/common-sdk-base";import{WebAuthnP256 as p}from"ox";var o=class c{constructor(e){i(e.apiKey);let t=new l(e);this.walletFactory=new n(t),a.info("wallets.sdk.initialized")}static from(e){return new c(e)}getWallet(e,t){return r(this,null,function*(){if(typeof e=="string"){if(t==null)throw new Error("Args parameter is required when walletLocator is provided");return yield this.walletFactory.getWallet(e,t)}return yield this.walletFactory.getWallet(e)})}createWallet(e){return r(this,null,function*(){return yield this.walletFactory.createWallet(e)})}createDeviceSigner(e,t){return r(this,null,function*(){return yield s(e,t)})}createPasskeySigner(e){return r(this,null,function*(){let t=yield p.createCredential({name:e});return{type:"passkey",id:t.id,name:e,publicKey:{x:t.publicKey.x.toString(),y:t.publicKey.y.toString()}}})}};export{C as a,o as b};
1
+ import{a as n}from"./chunk-A3NUC7CS.js";import{a as s}from"./chunk-5LNDUSMZ.js";import{a as l}from"./chunk-BTTVP3MP.js";import{a,b as i}from"./chunk-INUEMQPG.js";import{h as r}from"./chunk-NU7VF7MC.js";import{createCrossmint as C}from"@crossmint/common-sdk-base";import{WebAuthnP256 as p}from"ox";var o=class c{constructor(e){i(e.apiKey);let t=new l(e);this.walletFactory=new n(t),a.info("wallets.sdk.initialized")}static from(e){return new c(e)}getWallet(e,t){return r(this,null,function*(){if(typeof e=="string"){if(t==null)throw new Error("Args parameter is required when walletLocator is provided");return yield this.walletFactory.getWallet(e,t)}return yield this.walletFactory.getWallet(e)})}createWallet(e){return r(this,null,function*(){return yield this.walletFactory.createWallet(e)})}createDeviceSigner(e,t){return r(this,null,function*(){return yield s(e,t)})}createPasskeySigner(e){return r(this,null,function*(){let t=yield p.createCredential({name:e});return{type:"passkey",id:t.id,name:e,publicKey:{x:t.publicKey.x.toString(),y:t.publicKey.y.toString()}}})}};export{C as a,o as b};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkSP5DQZ6Dcjs = require('./chunk-SP5DQZ6D.cjs');var o={nativeToken:"xlm",walletLocatorPrefix:"me:stellar:smart",supportsSignatures:!1,addSignerChain(n){},extractAddSignerOperation(n,r,t){if(!("transaction"in n)||n.transaction==null)throw _chunkSP5DQZ6Dcjs.a.error("wallet.addSigner.error",{error:"Expected transaction in response for Solana/Stellar chain"}),new Error("Expected transaction in response for Solana/Stellar chain");return{type:"transaction",id:n.transaction.id}},balanceTokenFields(n){return n!=null&&"contractId"in n?{contractId:n.contractId}:n!=null&&"contractAddress"in n?{contractAddress:n.contractAddress}:{}},emptyBalanceTokenFields(){return{contractId:void 0}}};exports.a = o;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkW3BYSI7Fcjs = require('./chunk-W3BYSI7F.cjs');var o={nativeToken:"xlm",walletLocatorPrefix:"me:stellar:smart",supportsSignatures:!1,addSignerChain(n){},extractAddSignerOperation(n,t,r){if(!("transaction"in n)||n.transaction==null)throw _chunkW3BYSI7Fcjs.a.error("wallet.addSigner.error",{error:"Expected transaction in response for Solana/Stellar chain"}),new Error("Expected transaction in response for Solana/Stellar chain");return{type:"transaction",id:n.transaction.id}},balanceTokenFields(n){return n!=null&&"contractId"in n?{contractId:n.contractId}:n!=null&&"contractAddress"in n?{contractAddress:n.contractAddress}:{}},emptyBalanceTokenFields(){return{contractId:void 0}},signApproval(n,t,r){return n.signTransaction(r)}};exports.a = o;
@@ -0,0 +1 @@
1
+ import{a as pe}from"./chunk-YKRLB374.js";import{a as de}from"./chunk-V5D6CUMS.js";import{a as he}from"./chunk-WP4GRRR2.js";import{a as ue,b as Se}from"./chunk-ZMU6KU3L.js";import{a as oe}from"./chunk-PCRZWMYM.js";import{a as L}from"./chunk-BZYYVTXK.js";import{a as le,b as M}from"./chunk-BV6IQIQK.js";import{a as ce,b as ge}from"./chunk-FTUJ5XHD.js";import{a as ae}from"./chunk-K4KSI3GM.js";import{g as $}from"./chunk-P3P5Q5XX.js";import{a as ie,b as ne,c as se}from"./chunk-C2QJ3WKC.js";import{b as te}from"./chunk-B4GYB3XY.js";import{f as re}from"./chunk-JGLNAY5C.js";import{D as Q,E as K,G as X,H as Y,I as Z,N as ee,Q as k,d as H,e as j,j as q,l as B,m as V,n as z}from"./chunk-KOHPRJDP.js";import{a as s}from"./chunk-INUEMQPG.js";import{a as v,b as D,c as P,d as i,e as A,f as T,g as F,h as o}from"./chunk-NU7VF7MC.js";import{WithLoggerContext as E}from"@crossmint/common-sdk-base";var N,d,b,x,l,f,I,O,W,m,ve,fe,G,U,R=class{constructor(e,r){A(this,m);A(this,N);A(this,d);A(this,b);A(this,x);A(this,l);A(this,f);A(this,I,[]);A(this,O);A(this,W,null);let{chain:t,address:n,owner:a,options:c,alias:h,recovery:u,apiRecoveryServerSignerAddresses:S,apiDelegatedServerSignerAddresses:g,signers:w,signer:y}=e;T(this,d,r),this.chain=t,this.address=n,this.owner=a,T(this,N,c),this.alias=h;let C=Array.isArray(u)?u:[u],_=S!=null?S:C.filter(p=>p.type==="server"&&$(p)).map(p=>p.address);T(this,I,g!=null?g:[]),T(this,b,w!=null?w:[]),T(this,x,new oe({chain:t,projectId:i(this,d).projectId,environment:i(this,d).environment,apiRecoveryAddresses:_,apiDelegatedAddresses:i(this,I),knownOnChainAddresses:()=>[...i(this,b).filter(p=>p.type==="server"&&$(p)).map(p=>p.address),...i(this,I)]})),T(this,l,new pe({apiClient:r,options:c,chain:t,walletAddress:this.address,walletLocator:()=>this.walletLocator,serverSignerResolver:i(this,x),recoverySigners:C,initialSigners:i(this,b),signers:()=>this.signers(),signer:y})),C.forEach((p,ye)=>{p.type==="server"&&!$(p)&&i(this,l).stripSecretFromRecovery(ye,i(this,x).resolveRecovery(p))}),T(this,f,new he({chain:t,walletAddress:this.address,options:c,signerManager:i(this,l),serverSignerResolver:i(this,x),signers:()=>this.signers(),addSigner:p=>this.addSigner(p),removeSigner:p=>this.removeSigner({type:"device",locator:p}),approveSignature:p=>this.approveSignatureAndWait(p),approveTransaction:p=>this.approveTransactionAndWait(p)})),T(this,O,this.initDefaultSigner())}get signer(){return i(this,l).activeSigner}waitForInit(){return o(this,null,function*(){yield i(this,O)})}initDefaultSigner(){return o(this,null,function*(){if(i(this,l).activeSigner!=null||(yield i(this,f).initDeviceSigner(),i(this,l).activeSigner!=null||i(this,f).needsRecovery))return;let e=i(this,b).length===0?i(this,l).recovery:i(this,b).length===1?i(this,b)[0]:null;if(e==null)return;let r=L(e.type),t=i(this,l).descriptorContext();if(!r.canAutoAssemble(e,t))return;let n=e===i(this,l).recovery;try{let a=r.buildInternalConfig(e,t);i(this,l).setActiveSigner(yield i(this,l).assemble(a,{isAdminSigner:n}))}catch(a){s.warn("wallet.initDefaultSigner.autoAssemblyFailed",{recoveryType:i(this,l).recovery.type,signerCount:i(this,b).length,error:a})}})}static getApiClient(e){return e.apiClient}static getOptions(e){return e.options}static getRecoverySigners(e){return e.recoveryMethods}static getInitialSigners(e){return i(e,b)}static getApiRecoveryServerSignerAddresses(e){return i(e,x).apiRecoveryAddresses}static getApiDelegatedServerSignerAddresses(e){return i(e,I)}get apiClient(){return i(this,d)}get options(){return i(this,N)}get chainAdapter(){return ie(this.chain)}resolveServerSignerApiLocator(e){return i(this,x).apiLocator(e)}get recovery(){return i(this,l).recovery}get recoveryMethods(){return i(this,l).recoverySigners}balances(e){return o(this,null,function*(){s.info("wallet.balances.start");let r=this.resolveChainForEnvironment(),t=this.chainAdapter.nativeToken,n=[t,"usdc",...e!=null?e:[]],a=yield i(this,d).getBalance(this.address,{chains:[r],tokens:n});if("error"in a)throw s.error("wallet.balances.error",{error:a}),new Error(`Failed to get balances for wallet: ${JSON.stringify(a.message)}`);return s.info("wallet.balances.success"),de(a,this.chain,t,e)})}stagingFund(e,r){return o(this,null,function*(){s.info("wallet.stagingFund.start",{amount:e,chain:r!=null?r:this.chain});let t=yield this.apiClient.fundWallet(this.address,{amount:e,token:"usdxm",chain:r!=null?r:this.chain});if("error"in t)throw s.error("wallet.stagingFund.error",{error:t}),new Error(`Failed to fund wallet: ${JSON.stringify(t.message)}`);return s.info("wallet.stagingFund.success"),t})}nfts(e){return o(this,null,function*(){let r=this.resolveChainForEnvironment(),t=yield i(this,d).getNfts(D(v({},e),{chain:r,address:this.address}));if(t!=null&&typeof t=="object"&&"error"in t)throw s.error("wallet.nfts.error",{error:t}),new Error(`Failed to get nfts: ${JSON.stringify(t.message)}`);return t})}transactions(){return o(this,null,function*(){let e=yield i(this,d).getTransactions(this.walletLocator);if("error"in e)throw new Error(`Failed to get transactions: ${JSON.stringify(e.message)}`);return e})}transaction(e){return o(this,null,function*(){let r=yield i(this,d).getTransaction(this.walletLocator,e);if("error"in r)throw new Error(`Failed to get transaction: ${JSON.stringify(r.message)}`);return r})}transfers(e){return o(this,null,function*(){let r=this.resolveChainForEnvironment(),t=yield this.apiClient.getTransfers(this.walletLocator,{chain:r,tokens:e.tokens,status:e.status});if("error"in t)throw new Error(`Failed to get transfers: ${JSON.stringify(t.message)}`);return t})}send(e,r,t,n){return o(this,null,function*(){let a=Number(t);if(Number.isNaN(a)||!Number.isFinite(a)||a<=0)throw new X(`Invalid transfer amount: "${t}". Amount must be a positive number greater than zero.`);let c=ce(e),h=this.resolveChainForEnvironment(),u=ge(r,h);s.info("wallet.send.start",v({recipient:c,token:u,amount:t},(n==null?void 0:n.transactionType)!=null?{transactionType:n.transactionType}:{})),yield this.preAuthIfNeeded();let S=i(this,l).require(),g;(n==null?void 0:n.signer)==null?g=S.locator():typeof n.signer=="string"?g=n.signer:g=this.resolveServerSignerApiLocator(n.signer);let w=v({recipient:c,amount:t,signer:g},(n==null?void 0:n.transactionType)!=null?{transactionType:n.transactionType}:{}),y=yield i(this,d).send(this.walletLocator,u,w);if("message"in y)throw s.error("wallet.send.error",{error:y}),new Y(`Failed to send token: ${JSON.stringify(y.message)}`);if((n==null?void 0:n.prepareOnly)===!0)return s.info("wallet.send.prepared",{transactionId:y.id}),{hash:void 0,explorerLink:void 0,transactionId:y.id};let C=yield this.approveTransactionAndWait(y.id);return s.info("wallet.send.success",{transactionId:y.id,hash:C.hash}),C})}approveTransaction(e){return o(this,null,function*(){return console.warn("approveTransaction is deprecated. Use approve instead. This method will be removed in the next major version."),yield this.approve(e)})}approve(e){return o(this,null,function*(){if(s.info("wallet.approve.start",{transactionId:e.transactionId,signatureId:e.signatureId}),yield this.preAuthIfNeeded(),e.transactionId!=null){let r=yield this.approveTransactionAndWait(e.transactionId,e.options);return s.info("wallet.approve.success",{transactionId:e.transactionId}),r}if(e.signatureId!=null){let r=yield this.approveSignatureAndWait(e.signatureId,e.options);return s.info("wallet.approve.success",{signatureId:e.signatureId}),r}throw s.error("wallet.approve.error",{error:"Either transactionId or signatureId must be provided"}),new Error("Either transactionId or signatureId must be provided")})}addSigner(e,r){return o(this,null,function*(){s.info("wallet.addSigner.start");let t=typeof e=="object"&&"type"in e&&e.type==="server"?this.resolveServerSignerApiLocator(e):e;return i(this,l).withRecoverySigner(n=>o(this,null,function*(){var C;let a=typeof t=="string"?t:M(t),c=yield i(this,l).getSignerState(a);if(c.signer!=null){if(i(this,l).isApprovedSignerStatus(c.signer.status))return(r==null?void 0:r.scopes)!=null&&s.warn("wallet.addSigner.scopesIgnored",{reason:"signer already approved",signerLocator:a}),s.info("wallet.addSigner.alreadyApproved"),this.completeSignerRegistration(c.signer,null,r);if(c.pendingOperation!=null){if((r==null?void 0:r.scopes)!=null)throw new Error("Cannot apply scopes when resuming a pending signer registration. Remove the pending signer and register it again with the desired scopes.");return s.info("wallet.addSigner.resuming",{operationType:c.pendingOperation.type,operationId:c.pendingOperation.id}),this.completeSignerRegistration(c.signer,c.pendingOperation,r)}}let h=typeof t=="string"?t:L(t.type).addSignerPayload(t,i(this,l).descriptorContext()),S=this.chain!=="solana"&&this.chain!=="stellar"?(C=r==null?void 0:r.deployImmediately)!=null?C:!0:void 0,g=yield i(this,d).registerSigner(this.walletLocator,v(v(v({signer:h,chain:this.chainAdapter.addSignerChain(this.chain)},(r==null?void 0:r.scopes)!=null&&{scopes:r.scopes}),S!=null&&{deployImmediately:S}),n!=null&&{approver:n}));if("error"in g)throw s.error("wallet.addSigner.error",{error:g}),g.code===B?new V(g.message):new q(`Failed to register signer: ${JSON.stringify(g.message)}`);let w=te(g,this.chain);if(w==null)throw new Error(`No approval found for chain ${this.chain} in register signer response`);let y=this.chainAdapter.extractAddSignerOperation(g,this.chain,{locator:a,type:e.type});return this.completeSignerRegistration(w,y,r)}))})}completeSignerRegistration(e,r,t){return o(this,null,function*(){if(t!=null&&t.prepareOnly){if(r==null)return v({},e);switch(r.type){case"transaction":{let n={transactionId:r.id};return s.info("wallet.addSigner.prepared",n),v(v({},e),n)}case"signature":{let n={signatureId:r.id};return s.info("wallet.addSigner.prepared",n),v(v({},e),n)}default:{let n=r.type;throw new Error(`Unknown pending operation type: ${n}`)}}}if(r!=null)switch(r.type){case"transaction":yield this.approveTransactionAndWait(r.id),s.info("wallet.addSigner.success",{transactionId:r.id});break;case"signature":yield this.approveSignatureAndWait(r.id),s.info("wallet.addSigner.success",{signatureId:r.id});break;default:{let n=r.type;throw new Error(`Unknown pending operation type: ${n}`)}}else s.info("wallet.addSigner.success");return D(v({},e),{status:"success"})})}removeSigner(e,r){return o(this,null,function*(){let t=this.resolveSignerLocator(e);return s.info("wallet.removeSigner.start",{signerLocator:t}),i(this,l).withRecoverySigner(n=>o(this,null,function*(){let a=yield i(this,d).removeSigner(this.walletLocator,t,v({chain:this.chainAdapter.addSignerChain(this.chain)},n!=null&&{approver:n}));if("error"in a)throw s.error("wallet.removeSigner.error",{error:a}),new Error(`Failed to remove signer: ${JSON.stringify(a)}`);let c=a.id;return r!=null&&r.prepareOnly?(s.info("wallet.removeSigner.prepared",{transactionId:c}),{transactionId:c,status:void 0}):(yield this.approveTransactionAndWait(c),s.info("wallet.removeSigner.success",{transactionId:c}),{transactionId:c,status:"success"})}))})}useSigner(e){return o(this,null,function*(){s.info("wallet.useSigner.start"),e.type==="server"&&i(this,x).resetDelegatedCache(),L(e.type).validateConfig(e);let r=!1;e.type==="device"?yield i(this,f).resolveAvailability(e):r=yield this.resolveNonDeviceSigner(e);let t=L(e.type).buildInternalConfig(e,i(this,l).descriptorContext()),n=M(e);i(this,l).setActiveSigner(yield i(this,l).assemble(t,{isAdminSigner:r})),s.info("wallet.useSigner.success",{signerLocator:n})})}resolveNonDeviceSigner(e){return o(this,null,function*(){if(e.type!=="passkey"&&e.type!=="server"&&this.isRecoverySigner(e))return i(this,f).onSignerSelected(),!0;if(e.type==="passkey"&&this.isPasskeyMissingId(e)&&!(yield this.tryAutoSelectPasskey(e))){if(this.isRecoverySigner(e))return i(this,f).onSignerSelected(),!0;throw new Error("No passkey signer is registered on this wallet.")}if(e.type==="server")return this.resolveServerSigner(e);let r=this.resolveSignerLocator(e);if(yield this.signerIsRegistered(r))return i(this,f).onSignerSelected(),!1;if(this.isRecoverySigner(e))return i(this,f).onSignerSelected(),!0;throw new Error(`Signer "${r}" is not registered in this wallet.`)})}resolveServerSigner(e){return o(this,null,function*(){let t=(yield this.signers()).map(c=>c.locator),n={recoveryIndex:null},a=i(this,x).resolveForUseSigner(e,t,()=>(n.recoveryIndex=this.matchRecoverySigner(e),n.recoveryIndex!=null));switch(a.kind){case"delegated":return i(this,f).onSignerSelected(),!1;case"recovery":return n.recoveryIndex!=null&&i(this,l).stripSecretFromRecovery(n.recoveryIndex,a.address),i(this,f).onSignerSelected(),!0;case"unregistered":throw new Error(a.message)}})}tryAutoSelectPasskey(e){return o(this,null,function*(){let t=(yield this.signers()).filter(n=>n.type==="passkey");if(t.length===0)return!1;if(t.length>1)throw new Error('Multiple passkey signers are registered on this wallet. Please specify the credential id: wallet.useSigner({ type: "passkey", id: "<credential-id>" })');return e.id=t[0].locator.replace("passkey:",""),!0})}resolveSignerLocator(e){return e.type==="server"?this.resolveServerSignerApiLocator(e):M(e)}isPasskeyMissingId(e){return le(e)==null}signerIsRegistered(e){return o(this,null,function*(){return i(this,l).signerIsRegistered(e)})}isSignerApproved(e){return o(this,null,function*(){return i(this,l).isSignerApproved(e)})}needsRecovery(){return i(this,f).needsRecovery}recover(){return o(this,null,function*(){yield i(this,f).recover()})}signers(){return o(this,null,function*(){var a,c;s.info("wallet.signers.start");let e=yield i(this,d).getWallet(this.walletLocator);if("error"in e)throw s.error("wallet.signers.error",{error:e}),new j(JSON.stringify(e));if(!we(e)){let h=e.type!=="smart"?`Wallet type ${e.type} not supported`:`Wallet chain type ${e.chainType} not supported`;throw s.error("wallet.signers.error",{error:h}),new H(h)}let r=(c=(a=e==null?void 0:e.config)==null?void 0:a.delegatedSigners)!=null?c:[],n=(yield Promise.all(r.map(h=>o(this,null,function*(){try{return(yield i(this,l).getSignerState(h.locator)).signer}catch(u){return s.warn("wallet.signers.mapSigner.failed",{locator:h.locator,error:u}),null}})))).filter(h=>h!=null);return s.info("wallet.signers.success",{count:n.length}),n})}get walletLocator(){if(i(this,d).isServerSide)return this.address;{let e=this.chainAdapter.walletLocatorPrefix,r=this.alias!=null?`:alias:${this.alias}`:"";return e+r}}get signerManager(){return i(this,l)}preAuthIfNeeded(){return o(this,null,function*(){yield i(this,O),i(this,W)==null&&T(this,W,this.recover());try{yield i(this,W)}finally{T(this,W,null)}let e=i(this,l).require();e instanceof ae&&(yield e.ensureAuthenticated())})}isRecoverySigner(e){return this.matchRecoverySigner(e)!=null}matchRecoverySigner(e){let r=L(e.type),t=i(this,l).descriptorContext(),n=this.recoveryMethods.findIndex(a=>a.type===e.type&&r.matchesRecovery(e,a,t));return n===-1?null:(r.adoptsRecoveryConfigOnMatch&&i(this,l).adoptRecoveryConfig(n,e),n)}resolveChainForEnvironment(){let e=re(this.chain,i(this,d).environment);return e!==this.chain&&(this.chain=e),this.chain}approveTransactionAndWait(e,r){return o(this,null,function*(){return yield this.approveTransactionInternal(e,r),yield this.sleep(1e3),yield this.waitForTransaction(e)})}approveSignatureAndWait(e,r){return o(this,null,function*(){let t=yield this.approveSignatureInternal(e,r);return!("error"in t)&&t.status==="success"&&t.outputSignature!=null?{signature:t.outputSignature,signatureId:e}:(yield this.sleep(1e3),yield this.waitForSignature(e))})}approveSignatureInternal(e,r){return o(this,null,function*(){var u,S;if(!this.chainAdapter.supportsSignatures)throw new Error("Approving signatures is only supported for EVM smart wallets");let t=i(this,l).require(),n=yield i(this,d).getSignature(this.walletLocator,e);if("error"in n)throw k(n),new Q(JSON.stringify(n));if(t.type==="api-key")return n;if((r==null?void 0:r.approval)!=null){let g=[r.approval];return yield this.executeApproveSignatureWithErrorHandling(e,g)}let a=(u=n.approvals)==null?void 0:u.pending;if(a==null||a.length===0)return n;let c=[...(S=r==null?void 0:r.additionalSigners)!=null?S:[],t],h=yield F(this,m,U).call(this,F(this,m,G).call(this,a),c,(g,w)=>g.signMessage(w.message));return yield this.executeApproveSignatureWithErrorHandling(e,h)})}approveTransactionInternal(e,r){return o(this,null,function*(){var u,S,g,w,y;let t=yield i(this,d).getTransaction(this.walletLocator,e);if("error"in t)throw k(t),new Z(JSON.stringify(t));yield(g=(S=(u=i(this,N))==null?void 0:u.callbacks)==null?void 0:S.onTransactionStart)==null?void 0:g.call(S);let n=i(this,l).require();if(n.type==="api-key")return t;if((r==null?void 0:r.approval)!=null){let C=[r.approval];return yield this.executeApproveTransactionWithErrorHandling(e,C)}let a=(w=t.approvals)==null?void 0:w.pending;if(a==null||a.length===0)return t;let c=[...(y=r==null?void 0:r.additionalSigners)!=null?y:[],n],h=yield F(this,m,U).call(this,F(this,m,G).call(this,a),c,(C,_)=>se(t.chainType,this.chainAdapter).signApproval(C,t,_.message));return yield this.executeApproveTransactionWithErrorHandling(e,h)})}executeApproveTransactionWithErrorHandling(e,r){return o(this,null,function*(){s.info("wallet.approve: submitting approval to API",{transactionId:e});let t=yield i(this,d).approveTransaction(this.walletLocator,e,{approvals:r});if(t.error)throw k(t),new ee(JSON.stringify(t));return t})}executeApproveSignatureWithErrorHandling(e,r){return o(this,null,function*(){let t=yield i(this,d).approveSignature(this.walletLocator,e,{approvals:r});if(t.error)throw k(t),new K(JSON.stringify(t));return t})}waitForSignature(e){return o(this,null,function*(){return yield Se(i(this,d),this.walletLocator,e)})}waitForTransaction(n){return o(this,arguments,function*(e,r=6e4,t={}){return yield ue(i(this,d),this.walletLocator,e,v({timeoutMs:r},t))})}sleep(e){return o(this,null,function*(){return new Promise(r=>setTimeout(r,e))})}};N=new WeakMap,d=new WeakMap,b=new WeakMap,x=new WeakMap,l=new WeakMap,f=new WeakMap,I=new WeakMap,O=new WeakMap,W=new WeakMap,m=new WeakSet,ve=function(e){return o(this,null,function*(){let r=yield i(this,f).tryResolveLocallyAvailableSigner(e);return r!=null&&s.info("wallet.approve.deviceSignerRecoveredViaFallback",{signerLocator:e}),r})},fe=function(e,r){return o(this,null,function*(){var n;let t=e.find(a=>a.locator()===r);if(t==null&&(t=(n=yield F(this,m,ve).call(this,r))!=null?n:void 0),t==null)throw new q(`Signer ${r} not found in pending approvals`);return t})},G=function(e){return e.map(r=>{if(r.signer.type==="quorum")throw new z(`This wallet requires approval from a quorum signer (${r.signer.locator}), which is not yet supported by this SDK version`);return r})},U=function(e,r,t){return o(this,null,function*(){return yield Promise.all(e.map(n=>o(this,null,function*(){let a=yield F(this,m,fe).call(this,r,n.signer.locator),c=yield t(a,n);return D(v({},c),{signer:a.locator()})})))})},P([E({logger:s,methodName:"wallet.balances",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"balances",1),P([E({logger:s,methodName:"wallet.stagingFund",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"stagingFund",1),P([E({logger:s,methodName:"wallet.send",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"send",1),P([E({logger:s,methodName:"wallet.approve",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"approve",1),P([E({logger:s,methodName:"wallet.addSigner",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"addSigner",1),P([E({logger:s,methodName:"wallet.removeSigner",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"removeSigner",1),P([E({logger:s,methodName:"wallet.useSigner",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"useSigner",1),P([E({logger:s,methodName:"wallet.recover",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"recover",1),P([E({logger:s,methodName:"wallet.signers",buildContext(e){return{chain:e.chain,address:e.address}}})],R.prototype,"signers",1);function we(J){return J.type==="smart"&&ne(J.chainType)}export{R as a};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkD5IIHIEWcjs = require('./chunk-D5IIHIEW.cjs');var _chunkENU3EKBGcjs = require('./chunk-ENU3EKBG.cjs');var _chunkDSIFRRBScjs = require('./chunk-DSIFRRBS.cjs');function d(e,s){var l,t,r,i,a;let n=(l=e.chains)==null?void 0:l[s],c=_chunkD5IIHIEWcjs.a.call(void 0, s).balanceTokenFields(n);return _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {symbol:(t=e.symbol)!=null?t:"",name:(r=e.name)!=null?r:"",amount:(i=e.amount)!=null?i:"0",decimals:e.decimals,rawAmount:(a=e.rawAmount)!=null?a:"0"},(n==null?void 0:n.available)!=null?{available:n.available}:{}),(n==null?void 0:n.locked)!=null?{locked:n.locked}:{}),(n==null?void 0:n.accounts)!=null?{accounts:n.accounts}:{}),c)}function B(e,s){let n={symbol:e,name:e,amount:"0",decimals:0,rawAmount:"0"},c=_chunkD5IIHIEWcjs.a.call(void 0, s).emptyBalanceTokenFields();return _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {},n),c)}function b(e,s,n){var r,i,a,f,p;if(s==null)return!0;let c=((r=e.symbol)!=null?r:"").toLowerCase();if(s.has(c))return!0;let l=(i=e.chains)==null?void 0:i[n];if(l==null)return!1;let t=_chunkENU3EKBGcjs.a.call(void 0, n);if(t==="solana"&&"mintHash"in l){let o=(a=l.mintHash)==null?void 0:a.toLowerCase();return o!=null&&(s.has(o)||s.has(`solana:${o}`))}if(t==="stellar"&&"contractId"in l){let o=(f=l.contractId)==null?void 0:f.toLowerCase();return o!=null&&(s.has(o)||s.has(`stellar:${o}`))}if("contractAddress"in l){let o=(p=l.contractAddress)==null?void 0:p.toLowerCase();return o!=null&&(s.has(o)||s.has(`${n}:${o}`))}return!1}function T(e,s,n,c){let l=e.find(a=>a.symbol===n),t=e.find(a=>a.symbol==="usdc"),r=c!=null?new Set(c.map(a=>a.toLowerCase())):null,i=e.filter(a=>a.symbol!==n&&a.symbol!=="usdc"&&b(a,r,s));return{nativeToken:l!=null?d(l,s):B(n,s),usdc:t!=null?d(t,s):B("usdc",s),tokens:i.map(a=>d(a,s))}}exports.a = T;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkAA2XAWEUcjs = require('./chunk-AA2XAWEU.cjs');var _chunkENU3EKBGcjs = require('./chunk-ENU3EKBG.cjs');var _chunkDSIFRRBScjs = require('./chunk-DSIFRRBS.cjs');function d(e,s){var l,t,r,i,a;let n=(l=e.chains)==null?void 0:l[s],c=_chunkAA2XAWEUcjs.a.call(void 0, s).balanceTokenFields(n);return _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {symbol:(t=e.symbol)!=null?t:"",name:(r=e.name)!=null?r:"",amount:(i=e.amount)!=null?i:"0",decimals:e.decimals,rawAmount:(a=e.rawAmount)!=null?a:"0"},(n==null?void 0:n.available)!=null?{available:n.available}:{}),(n==null?void 0:n.locked)!=null?{locked:n.locked}:{}),(n==null?void 0:n.accounts)!=null?{accounts:n.accounts}:{}),c)}function B(e,s){let n={symbol:e,name:e,amount:"0",decimals:0,rawAmount:"0"},c=_chunkAA2XAWEUcjs.a.call(void 0, s).emptyBalanceTokenFields();return _chunkDSIFRRBScjs.a.call(void 0, _chunkDSIFRRBScjs.a.call(void 0, {},n),c)}function b(e,s,n){var r,i,a,f,p;if(s==null)return!0;let c=((r=e.symbol)!=null?r:"").toLowerCase();if(s.has(c))return!0;let l=(i=e.chains)==null?void 0:i[n];if(l==null)return!1;let t=_chunkENU3EKBGcjs.a.call(void 0, n);if(t==="solana"&&"mintHash"in l){let o=(a=l.mintHash)==null?void 0:a.toLowerCase();return o!=null&&(s.has(o)||s.has(`solana:${o}`))}if(t==="stellar"&&"contractId"in l){let o=(f=l.contractId)==null?void 0:f.toLowerCase();return o!=null&&(s.has(o)||s.has(`stellar:${o}`))}if("contractAddress"in l){let o=(p=l.contractAddress)==null?void 0:p.toLowerCase();return o!=null&&(s.has(o)||s.has(`${n}:${o}`))}return!1}function T(e,s,n,c){let l=e.find(a=>a.symbol===n),t=e.find(a=>a.symbol==="usdc"),r=c!=null?new Set(c.map(a=>a.toLowerCase())):null,i=e.filter(a=>a.symbol!==n&&a.symbol!=="usdc"&&b(a,r,s));return{nativeToken:l!=null?d(l,s):B(n,s),usdc:t!=null?d(t,s):B("usdc",s),tokens:i.map(a=>d(a,s))}}exports.a = T;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkUX2FEVDYcjs = require('./chunk-UX2FEVDY.cjs');var _chunkZUG5ROPFcjs = require('./chunk-ZUG5ROPF.cjs');var _chunkKQFRFHM4cjs = require('./chunk-KQFRFHM4.cjs');var _chunkJAWHGOGPcjs = require('./chunk-JAWHGOGP.cjs');var _chunkLXAEBSEYcjs = require('./chunk-LXAEBSEY.cjs');var _chunk5FVDLMWWcjs = require('./chunk-5FVDLMWW.cjs');var _chunkXWQC6G7Ncjs = require('./chunk-XWQC6G7N.cjs');var _chunkR4SBFRTMcjs = require('./chunk-R4SBFRTM.cjs');var _chunkHYWIWJ6Hcjs = require('./chunk-HYWIWJ6H.cjs');var _chunkPWVGLO7Tcjs = require('./chunk-PWVGLO7T.cjs');var _chunkCDHMNLZ6cjs = require('./chunk-CDHMNLZ6.cjs');var _chunkVS6I4S7Xcjs = require('./chunk-VS6I4S7X.cjs');var _chunkDSIFRRBScjs = require('./chunk-DSIFRRBS.cjs');function c(r,e,n){switch(e.type){case"email":case"phone":return r==="solana"?new (0, _chunkKQFRFHM4cjs.a)(e):r==="stellar"?new (0, _chunkJAWHGOGPcjs.a)(e):new (0, _chunkZUG5ROPFcjs.a)(e);case"api-key":return r==="solana"?new (0, _chunkCDHMNLZ6cjs.a)(e):new (0, _chunkR4SBFRTMcjs.a)(e);case"external-wallet":return r==="solana"?new (0, _chunkLXAEBSEYcjs.a)(e):r==="stellar"?new (0, _chunk5FVDLMWWcjs.a)(e):new (0, _chunkHYWIWJ6Hcjs.a)(e);case"server":return _chunkUX2FEVDYcjs.a.call(void 0, r,e);case"passkey":return new (0, _chunkPWVGLO7Tcjs.a)(e);case"device":if(n==null)throw new (0, _chunkVS6I4S7Xcjs.g)("Device signer key storage is required for device signers");return new (0, _chunkXWQC6G7Ncjs.a)(e,n)}}function b(r,e,n,a){return _chunkDSIFRRBScjs.h.call(void 0, this,null,function*(){if(!e.startsWith("device:"))return null;let w=e.replace("device:","");return(yield a.hasKey(w))?c(r,{type:"device",locator:e,address:n},a):null})}exports.a = c; exports.b = b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7SRQ77HYcjs = require('./chunk-7SRQ77HY.cjs');var _chunkZATY4PKVcjs = require('./chunk-ZATY4PKV.cjs');var _chunk6BNGRRNHcjs = require('./chunk-6BNGRRNH.cjs');var _chunk7FIAYQ4Ocjs = require('./chunk-7FIAYQ4O.cjs');var _chunkSTB2VIIKcjs = require('./chunk-STB2VIIK.cjs');var _chunk5FVDLMWWcjs = require('./chunk-5FVDLMWW.cjs');var _chunkXWQC6G7Ncjs = require('./chunk-XWQC6G7N.cjs');var _chunkR4SBFRTMcjs = require('./chunk-R4SBFRTM.cjs');var _chunkHYWIWJ6Hcjs = require('./chunk-HYWIWJ6H.cjs');var _chunkPWVGLO7Tcjs = require('./chunk-PWVGLO7T.cjs');var _chunkCDHMNLZ6cjs = require('./chunk-CDHMNLZ6.cjs');var _chunkVS6I4S7Xcjs = require('./chunk-VS6I4S7X.cjs');var _chunkDSIFRRBScjs = require('./chunk-DSIFRRBS.cjs');function c(r,e,n){switch(e.type){case"email":case"phone":return r==="solana"?new (0, _chunkZATY4PKVcjs.a)(e):r==="stellar"?new (0, _chunk6BNGRRNHcjs.a)(e):new (0, _chunk7SRQ77HYcjs.a)(e);case"api-key":return r==="solana"?new (0, _chunkCDHMNLZ6cjs.a)(e):new (0, _chunkR4SBFRTMcjs.a)(e);case"external-wallet":return r==="solana"?new (0, _chunkSTB2VIIKcjs.a)(e):r==="stellar"?new (0, _chunk5FVDLMWWcjs.a)(e):new (0, _chunkHYWIWJ6Hcjs.a)(e);case"server":return _chunk7FIAYQ4Ocjs.a.call(void 0, r,e);case"passkey":return new (0, _chunkPWVGLO7Tcjs.a)(e);case"device":if(n==null)throw new (0, _chunkVS6I4S7Xcjs.g)("Device signer key storage is required for device signers");return new (0, _chunkXWQC6G7Ncjs.a)(e,n)}}function b(r,e,n,a){return _chunkDSIFRRBScjs.h.call(void 0, this,null,function*(){if(!e.startsWith("device:"))return null;let w=e.replace("device:","");return(yield a.hasKey(w))?c(r,{type:"device",locator:e,address:n},a):null})}exports.a = c; exports.b = b;