@crossmint/wallets-sdk 1.0.14 → 1.1.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 (177) hide show
  1. package/dist/api/__tests__/constants.d.cts +1 -1
  2. package/dist/api/__tests__/constants.d.ts +1 -1
  3. package/dist/api/__tests__/test-utils.cjs +1 -1
  4. package/dist/api/__tests__/test-utils.d.cts +1 -1
  5. package/dist/api/__tests__/test-utils.d.ts +1 -1
  6. package/dist/api/__tests__/test-utils.js +1 -1
  7. package/dist/api/client.cjs +1 -1
  8. package/dist/api/client.d.cts +1 -1
  9. package/dist/api/client.d.ts +1 -1
  10. package/dist/api/client.js +1 -1
  11. package/dist/api/gen/sdk.gen.d.cts +1 -1
  12. package/dist/api/gen/sdk.gen.d.ts +1 -1
  13. package/dist/api/gen/types.gen.d.cts +295 -5
  14. package/dist/api/gen/types.gen.d.ts +295 -5
  15. package/dist/api/index.cjs +1 -1
  16. package/dist/api/index.d.cts +1 -1
  17. package/dist/api/index.d.ts +1 -1
  18. package/dist/api/index.js +1 -1
  19. package/dist/api/types.d.cts +1 -1
  20. package/dist/api/types.d.ts +1 -1
  21. package/dist/chains/chains.cjs +1 -1
  22. package/dist/chains/chains.js +1 -1
  23. package/dist/{chunk-EFK26RL5.cjs → chunk-2U7WGZKO.cjs} +1 -1
  24. package/dist/{chunk-SWXDKYWM.js → chunk-5FTEELGX.js} +1 -1
  25. package/dist/chunk-7GRHCD3D.js +1 -0
  26. package/dist/chunk-7N2UI3ZF.js +3 -0
  27. package/dist/{chunk-BS55OS3S.js → chunk-7PJMUI5M.js} +1 -1
  28. package/dist/{chunk-GSGBIM5E.cjs → chunk-AZQCD6KG.cjs} +1 -1
  29. package/dist/chunk-CW6D6JCN.js +1 -0
  30. package/dist/chunk-DXCJLVQZ.js +1 -0
  31. package/dist/chunk-DYJIQP7I.cjs +1 -0
  32. package/dist/{chunk-K5FNXQIQ.js → chunk-EGFMYX2J.js} +1 -1
  33. package/dist/{chunk-7EZQOS37.cjs → chunk-EPG5PWL4.cjs} +1 -1
  34. package/dist/{chunk-QWHQ5NAY.js → chunk-EUE4ZUZX.js} +1 -1
  35. package/dist/chunk-FBPSY3QL.cjs +1 -0
  36. package/dist/{chunk-CF5YIHZX.cjs → chunk-FPFNBH6I.cjs} +1 -1
  37. package/dist/chunk-HILLNWYM.js +1 -0
  38. package/dist/{chunk-LEIODNM5.js → chunk-HZVB2TS2.js} +1 -1
  39. package/dist/{chunk-HFQTOJEG.cjs → chunk-IR6H3POT.cjs} +1 -1
  40. package/dist/chunk-J7D3WVQK.cjs +1 -0
  41. package/dist/{chunk-TP7RAANC.js → chunk-J7WM724X.js} +1 -1
  42. package/dist/{chunk-4NYZ24DW.js → chunk-KTKQ6OL5.js} +1 -1
  43. package/dist/{chunk-CU332MNQ.js → chunk-M5Y7T2U7.js} +1 -1
  44. package/dist/chunk-PGAG6P4Q.cjs +1 -0
  45. package/dist/{chunk-KEEHHSIZ.cjs → chunk-R6HDN7FK.cjs} +1 -1
  46. package/dist/chunk-RFGFHHWP.cjs +1 -0
  47. package/dist/chunk-SL3R26GU.js +1 -0
  48. package/dist/chunk-TLCNLI7Z.cjs +3 -0
  49. package/dist/{chunk-VVLFMWTS.js → chunk-U6Y7VUDY.js} +1 -1
  50. package/dist/{chunk-RUD4GDRD.cjs → chunk-URCSUROA.cjs} +1 -1
  51. package/dist/{chunk-QLHOHXVZ.cjs → chunk-VXCCA7AL.cjs} +1 -1
  52. package/dist/{chunk-5QHWUYYN.js → chunk-W2RVTMBI.js} +1 -1
  53. package/dist/{chunk-PGHXTBM2.cjs → chunk-XQ4IOAFY.cjs} +1 -1
  54. package/dist/{chunk-XKKIMGTA.cjs → chunk-XRZ5RNIN.cjs} +1 -1
  55. package/dist/index.cjs +1 -1
  56. package/dist/index.d.cts +1 -1
  57. package/dist/index.d.ts +1 -1
  58. package/dist/index.js +1 -1
  59. package/dist/logger/index.cjs +1 -1
  60. package/dist/logger/index.js +1 -1
  61. package/dist/logger/init.cjs +1 -1
  62. package/dist/logger/init.js +1 -1
  63. package/dist/sdk.cjs +1 -1
  64. package/dist/sdk.d.cts +1 -1
  65. package/dist/sdk.d.ts +1 -1
  66. package/dist/sdk.js +1 -1
  67. package/dist/signers/device.d.cts +1 -1
  68. package/dist/signers/device.d.ts +1 -1
  69. package/dist/signers/evm-api-key.d.cts +1 -1
  70. package/dist/signers/evm-api-key.d.ts +1 -1
  71. package/dist/signers/evm-external-wallet.d.cts +1 -1
  72. package/dist/signers/evm-external-wallet.d.ts +1 -1
  73. package/dist/signers/external-wallet-signer.d.cts +1 -1
  74. package/dist/signers/external-wallet-signer.d.ts +1 -1
  75. package/dist/signers/index.cjs +1 -1
  76. package/dist/signers/index.d.cts +1 -1
  77. package/dist/signers/index.d.ts +1 -1
  78. package/dist/signers/index.js +1 -1
  79. package/dist/signers/non-custodial/index.cjs +1 -1
  80. package/dist/signers/non-custodial/index.d.cts +1 -1
  81. package/dist/signers/non-custodial/index.d.ts +1 -1
  82. package/dist/signers/non-custodial/index.js +1 -1
  83. package/dist/signers/non-custodial/ncs-evm-signer.cjs +1 -1
  84. package/dist/signers/non-custodial/ncs-evm-signer.d.cts +1 -1
  85. package/dist/signers/non-custodial/ncs-evm-signer.d.ts +1 -1
  86. package/dist/signers/non-custodial/ncs-evm-signer.js +1 -1
  87. package/dist/signers/non-custodial/ncs-signer.cjs +1 -1
  88. package/dist/signers/non-custodial/ncs-signer.d.cts +2 -2
  89. package/dist/signers/non-custodial/ncs-signer.d.ts +2 -2
  90. package/dist/signers/non-custodial/ncs-signer.js +1 -1
  91. package/dist/signers/non-custodial/ncs-solana-signer.cjs +1 -1
  92. package/dist/signers/non-custodial/ncs-solana-signer.d.cts +1 -1
  93. package/dist/signers/non-custodial/ncs-solana-signer.d.ts +1 -1
  94. package/dist/signers/non-custodial/ncs-solana-signer.js +1 -1
  95. package/dist/signers/non-custodial/ncs-stellar-signer.cjs +1 -1
  96. package/dist/signers/non-custodial/ncs-stellar-signer.d.cts +1 -1
  97. package/dist/signers/non-custodial/ncs-stellar-signer.d.ts +1 -1
  98. package/dist/signers/non-custodial/ncs-stellar-signer.js +1 -1
  99. package/dist/signers/passkey.d.cts +1 -1
  100. package/dist/signers/passkey.d.ts +1 -1
  101. package/dist/signers/server/assemble-server-signer.d.cts +1 -1
  102. package/dist/signers/server/assemble-server-signer.d.ts +1 -1
  103. package/dist/signers/server/evm-server-signer.d.cts +1 -1
  104. package/dist/signers/server/evm-server-signer.d.ts +1 -1
  105. package/dist/signers/server/helpers/derive-server-signer.d.cts +1 -1
  106. package/dist/signers/server/helpers/derive-server-signer.d.ts +1 -1
  107. package/dist/signers/server/helpers/index.d.cts +1 -1
  108. package/dist/signers/server/helpers/index.d.ts +1 -1
  109. package/dist/signers/server/index.d.cts +1 -1
  110. package/dist/signers/server/index.d.ts +1 -1
  111. package/dist/signers/server/solana-server-signer.d.cts +1 -1
  112. package/dist/signers/server/solana-server-signer.d.ts +1 -1
  113. package/dist/signers/server/stellar-server-signer.d.cts +1 -1
  114. package/dist/signers/server/stellar-server-signer.d.ts +1 -1
  115. package/dist/signers/solana-api-key.d.cts +1 -1
  116. package/dist/signers/solana-api-key.d.ts +1 -1
  117. package/dist/signers/solana-external-wallet.d.cts +1 -1
  118. package/dist/signers/solana-external-wallet.d.ts +1 -1
  119. package/dist/signers/stellar-external-wallet.d.cts +1 -1
  120. package/dist/signers/stellar-external-wallet.d.ts +1 -1
  121. package/dist/signers/types.d.cts +1 -1
  122. package/dist/signers/types.d.ts +1 -1
  123. package/dist/{types-BZ83dAVx.d.ts → types-CtOIG5sn.d.ts} +8 -2
  124. package/dist/{types-fUCYdXAl.d.cts → types-DZWn68Po.d.cts} +8 -2
  125. package/dist/utils/constants.cjs +1 -1
  126. package/dist/utils/constants.js +1 -1
  127. package/dist/utils/device-signers/IframeDeviceSignerKeyStorage.cjs +1 -1
  128. package/dist/utils/device-signers/IframeDeviceSignerKeyStorage.js +1 -1
  129. package/dist/utils/device-signers/createDeviceSigner.d.cts +1 -1
  130. package/dist/utils/device-signers/createDeviceSigner.d.ts +1 -1
  131. package/dist/utils/device-signers/index.cjs +1 -1
  132. package/dist/utils/device-signers/index.d.cts +1 -1
  133. package/dist/utils/device-signers/index.d.ts +1 -1
  134. package/dist/utils/device-signers/index.js +1 -1
  135. package/dist/utils/signer-locator.d.cts +1 -1
  136. package/dist/utils/signer-locator.d.ts +1 -1
  137. package/dist/utils/signer-mapping.d.cts +1 -1
  138. package/dist/utils/signer-mapping.d.ts +1 -1
  139. package/dist/wallets/__tests__/test-helpers.cjs +1 -1
  140. package/dist/wallets/__tests__/test-helpers.d.cts +1 -1
  141. package/dist/wallets/__tests__/test-helpers.d.ts +1 -1
  142. package/dist/wallets/__tests__/test-helpers.js +1 -1
  143. package/dist/wallets/evm.cjs +1 -1
  144. package/dist/wallets/evm.d.cts +1 -1
  145. package/dist/wallets/evm.d.ts +1 -1
  146. package/dist/wallets/evm.js +1 -1
  147. package/dist/wallets/solana.cjs +1 -1
  148. package/dist/wallets/solana.d.cts +1 -1
  149. package/dist/wallets/solana.d.ts +1 -1
  150. package/dist/wallets/solana.js +1 -1
  151. package/dist/wallets/stellar.cjs +1 -1
  152. package/dist/wallets/stellar.d.cts +40 -1
  153. package/dist/wallets/stellar.d.ts +40 -1
  154. package/dist/wallets/stellar.js +1 -1
  155. package/dist/wallets/types.d.cts +1 -1
  156. package/dist/wallets/types.d.ts +1 -1
  157. package/dist/wallets/wallet-factory.cjs +1 -1
  158. package/dist/wallets/wallet-factory.d.cts +2 -2
  159. package/dist/wallets/wallet-factory.d.ts +2 -2
  160. package/dist/wallets/wallet-factory.js +1 -1
  161. package/dist/wallets/wallet.cjs +1 -1
  162. package/dist/wallets/wallet.d.cts +2 -2
  163. package/dist/wallets/wallet.d.ts +2 -2
  164. package/dist/wallets/wallet.js +1 -1
  165. package/package.json +4 -4
  166. package/dist/chunk-6OELZRMT.cjs +0 -1
  167. package/dist/chunk-6XGP4HMG.cjs +0 -1
  168. package/dist/chunk-6Z4EZBIA.js +0 -1
  169. package/dist/chunk-C7ZRKJGY.cjs +0 -1
  170. package/dist/chunk-LTA4BVJ2.js +0 -1
  171. package/dist/chunk-LTTG4ATS.js +0 -1
  172. package/dist/chunk-OH2QJLHX.cjs +0 -1
  173. package/dist/chunk-PTCXLH65.cjs +0 -3
  174. package/dist/chunk-QMSW23Z6.js +0 -1
  175. package/dist/chunk-XFPV6OUZ.js +0 -3
  176. package/dist/chunk-XWG5HSVL.cjs +0 -1
  177. package/dist/chunk-ZPVXC2SA.js +0 -1
@@ -2146,6 +2146,22 @@ type CreateSignerV2025InputDtoClass = {
2146
2146
  */
2147
2147
  name?: string;
2148
2148
  }) | string;
2149
+ /**
2150
+ * Optional array of scopes to restrict the signer's capabilities
2151
+ */
2152
+ scopes?: Array<{
2153
+ type: 'transfer';
2154
+ tokenLocator: string;
2155
+ recipients?: Array<string>;
2156
+ spendingLimit?: {
2157
+ amount: string;
2158
+ interval?: number;
2159
+ };
2160
+ }>;
2161
+ /**
2162
+ * The expiry date of the signer in ISO 8601 format
2163
+ */
2164
+ expiresAt?: string;
2149
2165
  } | {
2150
2166
  signer: ({
2151
2167
  /**
@@ -2421,6 +2437,16 @@ type CreateTransactionV2025DtoClass = {
2421
2437
  args: {
2422
2438
  [key: string]: unknown;
2423
2439
  };
2440
+ } | {
2441
+ /**
2442
+ * The type of transaction to execute
2443
+ */
2444
+ type: 'upgrade-wallet';
2445
+ } | {
2446
+ /**
2447
+ * The type of transaction to execute
2448
+ */
2449
+ type: 'migrate-wallet';
2424
2450
  };
2425
2451
  /**
2426
2452
  * Signer Locator
@@ -2432,7 +2458,7 @@ type CreateTransactionV2025DtoClass = {
2432
2458
  type CreateWalletV2025DtoClass = {
2433
2459
  chainType: 'evm';
2434
2460
  type?: 'smart';
2435
- config?: {
2461
+ config: {
2436
2462
  adminSigner: {
2437
2463
  /**
2438
2464
  * Identifier for external wallet signer type
@@ -2605,7 +2631,7 @@ type CreateWalletV2025DtoClass = {
2605
2631
  */
2606
2632
  creationSeed?: string;
2607
2633
  };
2608
- owner?: 'COMPANY' | string;
2634
+ owner?: string;
2609
2635
  /**
2610
2636
  * The wallet alias
2611
2637
  */
@@ -2626,7 +2652,7 @@ type CreateWalletV2025DtoClass = {
2626
2652
  } | {
2627
2653
  chainType: 'solana';
2628
2654
  type?: 'smart';
2629
- config?: {
2655
+ config: {
2630
2656
  adminSigner: {
2631
2657
  /**
2632
2658
  * Identifier for external wallet signer type
@@ -2763,9 +2789,25 @@ type CreateWalletV2025DtoClass = {
2763
2789
  */
2764
2790
  name?: string;
2765
2791
  }) | string;
2792
+ /**
2793
+ * Optional array of scopes to restrict the signer's capabilities
2794
+ */
2795
+ scopes?: Array<{
2796
+ type: 'transfer';
2797
+ tokenLocator: string;
2798
+ recipients?: Array<string>;
2799
+ spendingLimit?: {
2800
+ amount: string;
2801
+ interval?: number;
2802
+ };
2803
+ }>;
2804
+ /**
2805
+ * The expiry date of the signer in ISO 8601 format
2806
+ */
2807
+ expiresAt?: string;
2766
2808
  }>;
2767
2809
  };
2768
- owner?: 'COMPANY' | string;
2810
+ owner?: string;
2769
2811
  /**
2770
2812
  * The wallet alias
2771
2813
  */
@@ -2971,7 +3013,7 @@ type CreateWalletV2025DtoClass = {
2971
3013
  */
2972
3014
  plugins?: Array<string>;
2973
3015
  };
2974
- owner?: 'COMPANY' | string;
3016
+ owner?: string;
2975
3017
  /**
2976
3018
  * The wallet alias
2977
3019
  */
@@ -3111,6 +3153,22 @@ type DelegatedSignerV2025DtoClass = (({
3111
3153
  */
3112
3154
  name?: string;
3113
3155
  }) & {
3156
+ /**
3157
+ * Optional array of scopes restricting the signer's capabilities
3158
+ */
3159
+ scopes?: Array<{
3160
+ type: 'transfer';
3161
+ tokenLocator: string;
3162
+ recipients?: Array<string>;
3163
+ spendingLimit?: {
3164
+ amount: string;
3165
+ interval?: number;
3166
+ };
3167
+ }>;
3168
+ /**
3169
+ * The expiry date of the signer in ISO 8601 format
3170
+ */
3171
+ expiresAt?: number | string;
3114
3172
  /**
3115
3173
  * The transaction for the signer
3116
3174
  */
@@ -3368,6 +3426,20 @@ type DelegatedSignerV2025DtoClass = (({
3368
3426
  recipientAddress: string;
3369
3427
  };
3370
3428
  };
3429
+ /**
3430
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
3431
+ */
3432
+ fees?: {
3433
+ mode: 'user-native' | 'user-fungible' | 'project';
3434
+ estimate?: unknown;
3435
+ actual?: unknown;
3436
+ billed?: {
3437
+ usd: number;
3438
+ };
3439
+ billing?: {
3440
+ status: 'pending' | 'settled' | 'failed';
3441
+ };
3442
+ };
3371
3443
  walletType: 'smart';
3372
3444
  };
3373
3445
  }) | (({
@@ -4122,6 +4194,20 @@ type DelegatedSignerV2025DtoClass = (({
4122
4194
  recipientAddress: string;
4123
4195
  };
4124
4196
  };
4197
+ /**
4198
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
4199
+ */
4200
+ fees?: {
4201
+ mode: 'user-native' | 'user-fungible' | 'project';
4202
+ estimate?: unknown;
4203
+ actual?: unknown;
4204
+ billed?: {
4205
+ usd: number;
4206
+ };
4207
+ billing?: {
4208
+ status: 'pending' | 'settled' | 'failed';
4209
+ };
4210
+ };
4125
4211
  walletType: 'smart';
4126
4212
  };
4127
4213
  });
@@ -5863,6 +5949,20 @@ type WalletsMultipleTransactionV2025ResponseDto = {
5863
5949
  recipientAddress: string;
5864
5950
  };
5865
5951
  };
5952
+ /**
5953
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
5954
+ */
5955
+ fees?: {
5956
+ mode: 'user-native' | 'user-fungible' | 'project';
5957
+ estimate?: unknown;
5958
+ actual?: unknown;
5959
+ billed?: {
5960
+ usd: number;
5961
+ };
5962
+ billing?: {
5963
+ status: 'pending' | 'settled' | 'failed';
5964
+ };
5965
+ };
5866
5966
  } | {
5867
5967
  /**
5868
5968
  * The blockchain type of the wallet
@@ -6175,6 +6275,20 @@ type WalletsMultipleTransactionV2025ResponseDto = {
6175
6275
  recipientAddress: string;
6176
6276
  };
6177
6277
  };
6278
+ /**
6279
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
6280
+ */
6281
+ fees?: {
6282
+ mode: 'user-native' | 'user-fungible' | 'project';
6283
+ estimate?: unknown;
6284
+ actual?: unknown;
6285
+ billed?: {
6286
+ usd: number;
6287
+ };
6288
+ billing?: {
6289
+ status: 'pending' | 'settled' | 'failed';
6290
+ };
6291
+ };
6178
6292
  } | {
6179
6293
  /**
6180
6294
  * The blockchain type of the wallet
@@ -6588,6 +6702,20 @@ type WalletsMultipleTransactionV2025ResponseDto = {
6588
6702
  recipientAddress: string;
6589
6703
  };
6590
6704
  };
6705
+ /**
6706
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
6707
+ */
6708
+ fees?: {
6709
+ mode: 'user-native' | 'user-fungible' | 'project';
6710
+ estimate?: unknown;
6711
+ actual?: unknown;
6712
+ billed?: {
6713
+ usd: number;
6714
+ };
6715
+ billing?: {
6716
+ status: 'pending' | 'settled' | 'failed';
6717
+ };
6718
+ };
6591
6719
  } | {
6592
6720
  /**
6593
6721
  * The blockchain type of the wallet
@@ -6918,6 +7046,20 @@ type WalletsMultipleTransactionV2025ResponseDto = {
6918
7046
  recipientAddress: string;
6919
7047
  };
6920
7048
  };
7049
+ /**
7050
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
7051
+ */
7052
+ fees?: {
7053
+ mode: 'user-native' | 'user-fungible' | 'project';
7054
+ estimate?: unknown;
7055
+ actual?: unknown;
7056
+ billed?: {
7057
+ usd: number;
7058
+ };
7059
+ billing?: {
7060
+ status: 'pending' | 'settled' | 'failed';
7061
+ };
7062
+ };
6921
7063
  } | {
6922
7064
  /**
6923
7065
  * The blockchain type of the wallet
@@ -6963,6 +7105,16 @@ type WalletsMultipleTransactionV2025ResponseDto = {
6963
7105
  args: {
6964
7106
  [key: string]: unknown;
6965
7107
  };
7108
+ } | {
7109
+ /**
7110
+ * The type of transaction to execute
7111
+ */
7112
+ type: 'upgrade-wallet';
7113
+ } | {
7114
+ /**
7115
+ * The type of transaction to execute
7116
+ */
7117
+ type: 'migrate-wallet';
6966
7118
  };
6967
7119
  /**
6968
7120
  * Signer Locator
@@ -7246,6 +7398,20 @@ type WalletsMultipleTransactionV2025ResponseDto = {
7246
7398
  recipientAddress: string;
7247
7399
  };
7248
7400
  };
7401
+ /**
7402
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
7403
+ */
7404
+ fees?: {
7405
+ mode: 'user-native' | 'user-fungible' | 'project';
7406
+ estimate?: unknown;
7407
+ actual?: unknown;
7408
+ billed?: {
7409
+ usd: number;
7410
+ };
7411
+ billing?: {
7412
+ status: 'pending' | 'settled' | 'failed';
7413
+ };
7414
+ };
7249
7415
  }>;
7250
7416
  };
7251
7417
  type WalletsSignatureV2025ResponseDto = {
@@ -8161,6 +8327,20 @@ type WalletsTransactionV2025ResponseDtoClass = {
8161
8327
  recipientAddress: string;
8162
8328
  };
8163
8329
  };
8330
+ /**
8331
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
8332
+ */
8333
+ fees?: {
8334
+ mode: 'user-native' | 'user-fungible' | 'project';
8335
+ estimate?: unknown;
8336
+ actual?: unknown;
8337
+ billed?: {
8338
+ usd: number;
8339
+ };
8340
+ billing?: {
8341
+ status: 'pending' | 'settled' | 'failed';
8342
+ };
8343
+ };
8164
8344
  } | {
8165
8345
  /**
8166
8346
  * The blockchain type of the wallet
@@ -8473,6 +8653,20 @@ type WalletsTransactionV2025ResponseDtoClass = {
8473
8653
  recipientAddress: string;
8474
8654
  };
8475
8655
  };
8656
+ /**
8657
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
8658
+ */
8659
+ fees?: {
8660
+ mode: 'user-native' | 'user-fungible' | 'project';
8661
+ estimate?: unknown;
8662
+ actual?: unknown;
8663
+ billed?: {
8664
+ usd: number;
8665
+ };
8666
+ billing?: {
8667
+ status: 'pending' | 'settled' | 'failed';
8668
+ };
8669
+ };
8476
8670
  } | {
8477
8671
  /**
8478
8672
  * The blockchain type of the wallet
@@ -8886,6 +9080,20 @@ type WalletsTransactionV2025ResponseDtoClass = {
8886
9080
  recipientAddress: string;
8887
9081
  };
8888
9082
  };
9083
+ /**
9084
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
9085
+ */
9086
+ fees?: {
9087
+ mode: 'user-native' | 'user-fungible' | 'project';
9088
+ estimate?: unknown;
9089
+ actual?: unknown;
9090
+ billed?: {
9091
+ usd: number;
9092
+ };
9093
+ billing?: {
9094
+ status: 'pending' | 'settled' | 'failed';
9095
+ };
9096
+ };
8889
9097
  } | {
8890
9098
  /**
8891
9099
  * The blockchain type of the wallet
@@ -9216,6 +9424,20 @@ type WalletsTransactionV2025ResponseDtoClass = {
9216
9424
  recipientAddress: string;
9217
9425
  };
9218
9426
  };
9427
+ /**
9428
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
9429
+ */
9430
+ fees?: {
9431
+ mode: 'user-native' | 'user-fungible' | 'project';
9432
+ estimate?: unknown;
9433
+ actual?: unknown;
9434
+ billed?: {
9435
+ usd: number;
9436
+ };
9437
+ billing?: {
9438
+ status: 'pending' | 'settled' | 'failed';
9439
+ };
9440
+ };
9219
9441
  } | {
9220
9442
  /**
9221
9443
  * The blockchain type of the wallet
@@ -9261,6 +9483,16 @@ type WalletsTransactionV2025ResponseDtoClass = {
9261
9483
  args: {
9262
9484
  [key: string]: unknown;
9263
9485
  };
9486
+ } | {
9487
+ /**
9488
+ * The type of transaction to execute
9489
+ */
9490
+ type: 'upgrade-wallet';
9491
+ } | {
9492
+ /**
9493
+ * The type of transaction to execute
9494
+ */
9495
+ type: 'migrate-wallet';
9264
9496
  };
9265
9497
  /**
9266
9498
  * Signer Locator
@@ -9544,6 +9776,20 @@ type WalletsTransactionV2025ResponseDtoClass = {
9544
9776
  recipientAddress: string;
9545
9777
  };
9546
9778
  };
9779
+ /**
9780
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
9781
+ */
9782
+ fees?: {
9783
+ mode: 'user-native' | 'user-fungible' | 'project';
9784
+ estimate?: unknown;
9785
+ actual?: unknown;
9786
+ billed?: {
9787
+ usd: number;
9788
+ };
9789
+ billing?: {
9790
+ status: 'pending' | 'settled' | 'failed';
9791
+ };
9792
+ };
9547
9793
  };
9548
9794
  type WalletsV1Alpha2TransactionResponseDtoClass = {
9549
9795
  /**
@@ -11699,6 +11945,22 @@ type WalletV2025ResponseDtoClass = {
11699
11945
  */
11700
11946
  name?: string;
11701
11947
  }) & {
11948
+ /**
11949
+ * Optional array of scopes restricting the signer's capabilities
11950
+ */
11951
+ scopes?: Array<{
11952
+ type: 'transfer';
11953
+ tokenLocator: string;
11954
+ recipients?: Array<string>;
11955
+ spendingLimit?: {
11956
+ amount: string;
11957
+ interval?: number;
11958
+ };
11959
+ }>;
11960
+ /**
11961
+ * The expiry date of the signer in ISO 8601 format
11962
+ */
11963
+ expiresAt?: number | string;
11702
11964
  /**
11703
11965
  * The transaction for the signer
11704
11966
  */
@@ -11956,6 +12218,20 @@ type WalletV2025ResponseDtoClass = {
11956
12218
  recipientAddress: string;
11957
12219
  };
11958
12220
  };
12221
+ /**
12222
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
12223
+ */
12224
+ fees?: {
12225
+ mode: 'user-native' | 'user-fungible' | 'project';
12226
+ estimate?: unknown;
12227
+ actual?: unknown;
12228
+ billed?: {
12229
+ usd: number;
12230
+ };
12231
+ billing?: {
12232
+ status: 'pending' | 'settled' | 'failed';
12233
+ };
12234
+ };
11959
12235
  walletType: 'smart';
11960
12236
  };
11961
12237
  }>;
@@ -12556,6 +12832,20 @@ type WalletV2025ResponseDtoClass = {
12556
12832
  recipientAddress: string;
12557
12833
  };
12558
12834
  };
12835
+ /**
12836
+ * Transaction fee information including actual gas costs, billed amounts, and billing status
12837
+ */
12838
+ fees?: {
12839
+ mode: 'user-native' | 'user-fungible' | 'project';
12840
+ estimate?: unknown;
12841
+ actual?: unknown;
12842
+ billed?: {
12843
+ usd: number;
12844
+ };
12845
+ billing?: {
12846
+ status: 'pending' | 'settled' | 'failed';
12847
+ };
12848
+ };
12559
12849
  walletType: 'smart';
12560
12850
  };
12561
12851
  }>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-6HXIZLEQ.cjs');var _chunkQLHOHXVZcjs = require('../chunk-QLHOHXVZ.cjs');require('../chunk-ECAM5KTH.cjs');require('../chunk-T3U46LK3.cjs');require('../chunk-HFQTOJEG.cjs');require('../chunk-6XGP4HMG.cjs');require('../chunk-2GKPWQBQ.cjs');exports.ApiClient = _chunkQLHOHXVZcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-6HXIZLEQ.cjs');var _chunkVXCCA7ALcjs = require('../chunk-VXCCA7AL.cjs');require('../chunk-ECAM5KTH.cjs');require('../chunk-T3U46LK3.cjs');require('../chunk-IR6H3POT.cjs');require('../chunk-J7D3WVQK.cjs');require('../chunk-2GKPWQBQ.cjs');exports.ApiClient = _chunkVXCCA7ALcjs.a;
@@ -1,5 +1,5 @@
1
1
  export { ApiClient } from './client.cjs';
2
- export { an as ApproveSignatureParams, a7 as ApproveSignatureResponse, aj as ApproveTransactionParams, ak as ApproveTransactionResponse, al as CreateSignatureParams, am as CreateSignatureResponse, ah as CreateTransactionParams, ai as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, aa as CreateWalletParams, a8 as CreateWalletResponse, ar as FundWalletParams, _ as FundWalletResponse, aq as GetBalanceResponse, aB as GetBalanceSuccessResponse, ao as GetSignatureResponse, aw as GetSignerResponse, aD as GetSignersResponse, ab as GetTransactionResponse, a0 as GetTransactionSuccessResponse, $ as GetTransactionsResponse, ap as GetTransfersResponse, ag as GetWalletResponse, ay as GetWalletSuccessResponse, az as RecoverySignerConfig, aC as RegisterSignerChain, as as RegisterSignerParams, R as RegisterSignerPasskeyParams, at as RegisterSignerResponse, au as RemoveSignerParams, av as RemoveSignerResponse, ax as SendParams, a9 as SendResponse, O as Signer, T as Transfers, a6 as WalletLocator } from '../types-fUCYdXAl.cjs';
2
+ export { ap as ApproveSignatureParams, a9 as ApproveSignatureResponse, al as ApproveTransactionParams, am as ApproveTransactionResponse, an as CreateSignatureParams, ao as CreateSignatureResponse, aj as CreateTransactionParams, ak as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, ad as CreateWalletParams, ac as CreateWalletResponse, at as FundWalletParams, a0 as FundWalletResponse, as as GetBalanceResponse, aB as GetBalanceSuccessResponse, aq as GetSignatureResponse, ay as GetSignerResponse, aC as GetSignersResponse, aa as GetTransactionResponse, a2 as GetTransactionSuccessResponse, a1 as GetTransactionsResponse, ar as GetTransfersResponse, ai as GetWalletResponse, aD as GetWalletSuccessResponse, aE as RecoverySignerConfig, aF as RegisterSignerChain, au as RegisterSignerParams, R as RegisterSignerPasskeyParams, av as RegisterSignerResponse, aw as RemoveSignerParams, ax as RemoveSignerResponse, az as SendParams, ab as SendResponse, O as Signer, x as Transfers, a8 as WalletLocator } from '../types-DZWn68Po.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 { an as ApproveSignatureParams, a7 as ApproveSignatureResponse, aj as ApproveTransactionParams, ak as ApproveTransactionResponse, al as CreateSignatureParams, am as CreateSignatureResponse, ah as CreateTransactionParams, ai as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, aa as CreateWalletParams, a8 as CreateWalletResponse, ar as FundWalletParams, _ as FundWalletResponse, aq as GetBalanceResponse, aB as GetBalanceSuccessResponse, ao as GetSignatureResponse, aw as GetSignerResponse, aD as GetSignersResponse, ab as GetTransactionResponse, a0 as GetTransactionSuccessResponse, $ as GetTransactionsResponse, ap as GetTransfersResponse, ag as GetWalletResponse, ay as GetWalletSuccessResponse, az as RecoverySignerConfig, aC as RegisterSignerChain, as as RegisterSignerParams, R as RegisterSignerPasskeyParams, at as RegisterSignerResponse, au as RemoveSignerParams, av as RemoveSignerResponse, ax as SendParams, a9 as SendResponse, O as Signer, T as Transfers, a6 as WalletLocator } from '../types-BZ83dAVx.js';
2
+ export { ap as ApproveSignatureParams, a9 as ApproveSignatureResponse, al as ApproveTransactionParams, am as ApproveTransactionResponse, an as CreateSignatureParams, ao as CreateSignatureResponse, aj as CreateTransactionParams, ak as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, ad as CreateWalletParams, ac as CreateWalletResponse, at as FundWalletParams, a0 as FundWalletResponse, as as GetBalanceResponse, aB as GetBalanceSuccessResponse, aq as GetSignatureResponse, ay as GetSignerResponse, aC as GetSignersResponse, aa as GetTransactionResponse, a2 as GetTransactionSuccessResponse, a1 as GetTransactionsResponse, ar as GetTransfersResponse, ai as GetWalletResponse, aD as GetWalletSuccessResponse, aE as RecoverySignerConfig, aF as RegisterSignerChain, au as RegisterSignerParams, R as RegisterSignerPasskeyParams, av as RegisterSignerResponse, aw as RemoveSignerParams, ax as RemoveSignerResponse, az as SendParams, ab as SendResponse, O as Signer, x as Transfers, a8 as WalletLocator } from '../types-CtOIG5sn.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-VVLFMWTS.js";import"../chunk-KBJA7JDT.js";import"../chunk-EXC7TCGL.js";import"../chunk-LEIODNM5.js";import"../chunk-6Z4EZBIA.js";import"../chunk-J3R36SGJ.js";export{a as ApiClient};
1
+ import"../chunk-5IFDVB4Y.js";import{a}from"../chunk-U6Y7VUDY.js";import"../chunk-KBJA7JDT.js";import"../chunk-EXC7TCGL.js";import"../chunk-HZVB2TS2.js";import"../chunk-7GRHCD3D.js";import"../chunk-J3R36SGJ.js";export{a as ApiClient};
@@ -1,6 +1,6 @@
1
1
  import 'viem';
2
2
  import './gen/types.gen.cjs';
3
- export { an as ApproveSignatureParams, a7 as ApproveSignatureResponse, aj as ApproveTransactionParams, ak as ApproveTransactionResponse, al as CreateSignatureParams, am as CreateSignatureResponse, ah as CreateTransactionParams, ai as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, aa as CreateWalletParams, a8 as CreateWalletResponse, ar as FundWalletParams, _ as FundWalletResponse, aq as GetBalanceResponse, aB as GetBalanceSuccessResponse, ao as GetSignatureResponse, aw as GetSignerResponse, aD as GetSignersResponse, ab as GetTransactionResponse, a0 as GetTransactionSuccessResponse, $ as GetTransactionsResponse, ap as GetTransfersResponse, ag as GetWalletResponse, ay as GetWalletSuccessResponse, az as RecoverySignerConfig, aC as RegisterSignerChain, as as RegisterSignerParams, R as RegisterSignerPasskeyParams, at as RegisterSignerResponse, au as RemoveSignerParams, av as RemoveSignerResponse, ax as SendParams, a9 as SendResponse, O as Signer, T as Transfers, a6 as WalletLocator } from '../types-fUCYdXAl.cjs';
3
+ export { ap as ApproveSignatureParams, a9 as ApproveSignatureResponse, al as ApproveTransactionParams, am as ApproveTransactionResponse, an as CreateSignatureParams, ao as CreateSignatureResponse, aj as CreateTransactionParams, ak as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, ad as CreateWalletParams, ac as CreateWalletResponse, at as FundWalletParams, a0 as FundWalletResponse, as as GetBalanceResponse, aB as GetBalanceSuccessResponse, aq as GetSignatureResponse, ay as GetSignerResponse, aC as GetSignersResponse, aa as GetTransactionResponse, a2 as GetTransactionSuccessResponse, a1 as GetTransactionsResponse, ar as GetTransfersResponse, ai as GetWalletResponse, aD as GetWalletSuccessResponse, aE as RecoverySignerConfig, aF as RegisterSignerChain, au as RegisterSignerParams, R as RegisterSignerPasskeyParams, av as RegisterSignerResponse, aw as RemoveSignerParams, ax as RemoveSignerResponse, az as SendParams, ab as SendResponse, O as Signer, x as Transfers, a8 as WalletLocator } from '../types-DZWn68Po.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 { an as ApproveSignatureParams, a7 as ApproveSignatureResponse, aj as ApproveTransactionParams, ak as ApproveTransactionResponse, al as CreateSignatureParams, am as CreateSignatureResponse, ah as CreateTransactionParams, ai as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, aa as CreateWalletParams, a8 as CreateWalletResponse, ar as FundWalletParams, _ as FundWalletResponse, aq as GetBalanceResponse, aB as GetBalanceSuccessResponse, ao as GetSignatureResponse, aw as GetSignerResponse, aD as GetSignersResponse, ab as GetTransactionResponse, a0 as GetTransactionSuccessResponse, $ as GetTransactionsResponse, ap as GetTransfersResponse, ag as GetWalletResponse, ay as GetWalletSuccessResponse, az as RecoverySignerConfig, aC as RegisterSignerChain, as as RegisterSignerParams, R as RegisterSignerPasskeyParams, at as RegisterSignerResponse, au as RemoveSignerParams, av as RemoveSignerResponse, ax as SendParams, a9 as SendResponse, O as Signer, T as Transfers, a6 as WalletLocator } from '../types-BZ83dAVx.js';
3
+ export { ap as ApproveSignatureParams, a9 as ApproveSignatureResponse, al as ApproveTransactionParams, am as ApproveTransactionResponse, an as CreateSignatureParams, ao as CreateSignatureResponse, aj as CreateTransactionParams, ak as CreateTransactionResponse, aA as CreateTransactionSuccessResponse, ad as CreateWalletParams, ac as CreateWalletResponse, at as FundWalletParams, a0 as FundWalletResponse, as as GetBalanceResponse, aB as GetBalanceSuccessResponse, aq as GetSignatureResponse, ay as GetSignerResponse, aC as GetSignersResponse, aa as GetTransactionResponse, a2 as GetTransactionSuccessResponse, a1 as GetTransactionsResponse, ar as GetTransfersResponse, ai as GetWalletResponse, aD as GetWalletSuccessResponse, aE as RecoverySignerConfig, aF as RegisterSignerChain, au as RegisterSignerParams, R as RegisterSignerPasskeyParams, av as RegisterSignerResponse, aw as RemoveSignerParams, ax as RemoveSignerResponse, az as SendParams, ab as SendResponse, O as Signer, x as Transfers, a8 as WalletLocator } from '../types-CtOIG5sn.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 _chunkKEEHHSIZcjs = require('../chunk-KEEHHSIZ.cjs');require('../chunk-GEY574TH.cjs');require('../chunk-UE3WVHTM.cjs');require('../chunk-5X4EOJFG.cjs');require('../chunk-HRUMWG2F.cjs');require('../chunk-IR5WN6FQ.cjs');require('../chunk-T3U46LK3.cjs');require('../chunk-CCIGWTAO.cjs');require('../chunk-HFQTOJEG.cjs');require('../chunk-6XGP4HMG.cjs');require('../chunk-2GKPWQBQ.cjs');exports.isMainnetChain = _chunkKEEHHSIZcjs.c; exports.isTestnetChain = _chunkKEEHHSIZcjs.b; exports.isValidChain = _chunkKEEHHSIZcjs.e; exports.mainnetToTestnet = _chunkKEEHHSIZcjs.d; exports.toViemChain = _chunkKEEHHSIZcjs.a; exports.validateChainForEnvironment = _chunkKEEHHSIZcjs.f;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkR6HDN7FKcjs = require('../chunk-R6HDN7FK.cjs');require('../chunk-GEY574TH.cjs');require('../chunk-UE3WVHTM.cjs');require('../chunk-5X4EOJFG.cjs');require('../chunk-HRUMWG2F.cjs');require('../chunk-IR5WN6FQ.cjs');require('../chunk-T3U46LK3.cjs');require('../chunk-CCIGWTAO.cjs');require('../chunk-IR6H3POT.cjs');require('../chunk-J7D3WVQK.cjs');require('../chunk-2GKPWQBQ.cjs');exports.isMainnetChain = _chunkR6HDN7FKcjs.c; exports.isTestnetChain = _chunkR6HDN7FKcjs.b; exports.isValidChain = _chunkR6HDN7FKcjs.e; exports.mainnetToTestnet = _chunkR6HDN7FKcjs.d; exports.toViemChain = _chunkR6HDN7FKcjs.a; exports.validateChainForEnvironment = _chunkR6HDN7FKcjs.f;
@@ -1 +1 @@
1
- import{a,b,c,d,e,f}from"../chunk-4NYZ24DW.js";import"../chunk-S3DYQVRD.js";import"../chunk-KUP7H7X2.js";import"../chunk-FT5EVMLB.js";import"../chunk-SVIKBM3S.js";import"../chunk-KKQBZXFE.js";import"../chunk-EXC7TCGL.js";import"../chunk-455NK5LB.js";import"../chunk-LEIODNM5.js";import"../chunk-6Z4EZBIA.js";import"../chunk-J3R36SGJ.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-KTKQ6OL5.js";import"../chunk-S3DYQVRD.js";import"../chunk-KUP7H7X2.js";import"../chunk-FT5EVMLB.js";import"../chunk-SVIKBM3S.js";import"../chunk-KKQBZXFE.js";import"../chunk-EXC7TCGL.js";import"../chunk-455NK5LB.js";import"../chunk-HZVB2TS2.js";import"../chunk-7GRHCD3D.js";import"../chunk-J3R36SGJ.js";export{c as isMainnetChain,b as isTestnetChain,e as isValidChain,d as mainnetToTestnet,a as toViemChain,f as validateChainForEnvironment};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkGZP2JQ6Pcjs = require('./chunk-GZP2JQ6P.cjs');var _chunkGSGBIM5Ecjs = require('./chunk-GSGBIM5E.cjs');var _chunkCF5YIHZXcjs = require('./chunk-CF5YIHZX.cjs');var _chunkPGHXTBM2cjs = require('./chunk-PGHXTBM2.cjs');var _chunkSPTXAOFRcjs = require('./chunk-SPTXAOFR.cjs');var _chunkGEY3BU62cjs = require('./chunk-GEY3BU62.cjs');var _chunkPHPBBEXUcjs = require('./chunk-PHPBBEXU.cjs');var _chunkA33BEWR7cjs = require('./chunk-A33BEWR7.cjs');var _chunkOGP7B5O3cjs = require('./chunk-OGP7B5O3.cjs');var _chunkIJ632UXDcjs = require('./chunk-IJ632UXD.cjs');var _chunk6EZCCLTKcjs = require('./chunk-6EZCCLTK.cjs');var _chunkT3U46LK3cjs = require('./chunk-T3U46LK3.cjs');function M(r,e,n){switch(e.type){case"email":case"phone":return r==="solana"?new (0, _chunkPGHXTBM2cjs.a)(e):r==="stellar"?new (0, _chunkGSGBIM5Ecjs.a)(e):new (0, _chunkCF5YIHZXcjs.a)(e);case"api-key":return r==="solana"?new (0, _chunkIJ632UXDcjs.a)(e):new (0, _chunkPHPBBEXUcjs.a)(e);case"external-wallet":return r==="solana"?new (0, _chunk6EZCCLTKcjs.a)(e):r==="stellar"?new (0, _chunkSPTXAOFRcjs.a)(e):new (0, _chunkA33BEWR7cjs.a)(e);case"server":return _chunkGZP2JQ6Pcjs.a.call(void 0, r,e);case"passkey":return new (0, _chunkOGP7B5O3cjs.a)(e);case"device":if(n==null)throw new (0, _chunkT3U46LK3cjs.g)("Device signer key storage is required for device signers");return new (0, _chunkGEY3BU62cjs.a)(e,n)}}exports.a = M;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkGZP2JQ6Pcjs = require('./chunk-GZP2JQ6P.cjs');var _chunkAZQCD6KGcjs = require('./chunk-AZQCD6KG.cjs');var _chunkFPFNBH6Icjs = require('./chunk-FPFNBH6I.cjs');var _chunkXQ4IOAFYcjs = require('./chunk-XQ4IOAFY.cjs');var _chunkSPTXAOFRcjs = require('./chunk-SPTXAOFR.cjs');var _chunkGEY3BU62cjs = require('./chunk-GEY3BU62.cjs');var _chunkPHPBBEXUcjs = require('./chunk-PHPBBEXU.cjs');var _chunkA33BEWR7cjs = require('./chunk-A33BEWR7.cjs');var _chunkOGP7B5O3cjs = require('./chunk-OGP7B5O3.cjs');var _chunkIJ632UXDcjs = require('./chunk-IJ632UXD.cjs');var _chunk6EZCCLTKcjs = require('./chunk-6EZCCLTK.cjs');var _chunkT3U46LK3cjs = require('./chunk-T3U46LK3.cjs');function M(r,e,n){switch(e.type){case"email":case"phone":return r==="solana"?new (0, _chunkXQ4IOAFYcjs.a)(e):r==="stellar"?new (0, _chunkAZQCD6KGcjs.a)(e):new (0, _chunkFPFNBH6Icjs.a)(e);case"api-key":return r==="solana"?new (0, _chunkIJ632UXDcjs.a)(e):new (0, _chunkPHPBBEXUcjs.a)(e);case"external-wallet":return r==="solana"?new (0, _chunk6EZCCLTKcjs.a)(e):r==="stellar"?new (0, _chunkSPTXAOFRcjs.a)(e):new (0, _chunkA33BEWR7cjs.a)(e);case"server":return _chunkGZP2JQ6Pcjs.a.call(void 0, r,e);case"passkey":return new (0, _chunkOGP7B5O3cjs.a)(e);case"device":if(n==null)throw new (0, _chunkT3U46LK3cjs.g)("Device signer key storage is required for device signers");return new (0, _chunkGEY3BU62cjs.a)(e,n)}}exports.a = M;
@@ -1 +1 @@
1
- import{a as s,b as o}from"./chunk-QMSW23Z6.js";import{a as r}from"./chunk-LEIODNM5.js";import{g as t}from"./chunk-J3R36SGJ.js";var a=class g extends s{constructor(n){super(n)}signMessage(){return t(this,null,function*(){return yield Promise.reject(new Error("signMessage method not implemented for stellar signer"))})}signTransaction(n){return t(this,null,function*(){var i;yield this.handleAuthRequired();let c=this.getJwtOrThrow();r.info("sign: sending request",{keyType:"ed25519"});let d=Date.now(),e=yield(i=this.config.clientTEEConnection)==null?void 0:i.sendAction({event:"request:sign",responseEvent:"response:sign",data:{authData:{jwt:c,apiKey:this.config.crossmint.apiKey},data:{keyType:"ed25519",bytes:n,encoding:"base64"}},options:o});if(r.info("sign: response received",{status:e==null?void 0:e.status,durationMs:Date.now()-d}),(e==null?void 0:e.status)==="error")throw new Error(e.error);if((e==null?void 0:e.signature)==null)throw new Error("Failed to sign transaction");if(g.verifyPublicKeyFormat(e.publicKey),e.signature.encoding!=="base64")throw new Error("Wrong encoding for signature. Expected base64, got "+e.signature.encoding);return{signature:e.signature.bytes}})}static verifyPublicKeyFormat(n){if(n==null)throw new Error("No public key found");if(n.encoding!=="base64"||n.keyType!=="ed25519"||n.bytes==null)throw new Error("Not supported. Expected public key to be in base64 encoding and ed25519 key type. Got: "+JSON.stringify(n))}getChainKeyParams(){return{scheme:"ed25519",encoding:"strkey"}}};export{a};
1
+ import{a as s,b as o}from"./chunk-DXCJLVQZ.js";import{a as r}from"./chunk-HZVB2TS2.js";import{g as t}from"./chunk-J3R36SGJ.js";var a=class g extends s{constructor(n){super(n)}signMessage(){return t(this,null,function*(){return yield Promise.reject(new Error("signMessage method not implemented for stellar signer"))})}signTransaction(n){return t(this,null,function*(){var i;yield this.handleAuthRequired();let c=this.getJwtOrThrow();r.info("sign: sending request",{keyType:"ed25519"});let d=Date.now(),e=yield(i=this.config.clientTEEConnection)==null?void 0:i.sendAction({event:"request:sign",responseEvent:"response:sign",data:{authData:{jwt:c,apiKey:this.config.crossmint.apiKey},data:{keyType:"ed25519",bytes:n,encoding:"base64"}},options:o});if(r.info("sign: response received",{status:e==null?void 0:e.status,durationMs:Date.now()-d}),(e==null?void 0:e.status)==="error")throw new Error(e.error);if((e==null?void 0:e.signature)==null)throw new Error("Failed to sign transaction");if(g.verifyPublicKeyFormat(e.publicKey),e.signature.encoding!=="base64")throw new Error("Wrong encoding for signature. Expected base64, got "+e.signature.encoding);return{signature:e.signature.bytes}})}static verifyPublicKeyFormat(n){if(n==null)throw new Error("No public key found");if(n.encoding!=="base64"||n.keyType!=="ed25519"||n.bytes==null)throw new Error("Not supported. Expected public key to be in base64 encoding and ed25519 key type. Got: "+JSON.stringify(n))}getChainKeyParams(){return{scheme:"ed25519",encoding:"strkey"}}};export{a};
@@ -0,0 +1 @@
1
+ var s="@crossmint/wallets-sdk",t="1.1.0";var c="WALLETS_SDK",r=t,a=s,d=500;export{c as a,r as b,a as c,d};
@@ -0,0 +1,3 @@
1
+ import{a as oe}from"./chunk-N4IWDL6M.js";import{a as P}from"./chunk-GOXB2RBF.js";import{b as j,c as _}from"./chunk-VADIEIDS.js";import{a as D}from"./chunk-J7WM724X.js";import{b as N}from"./chunk-RBSMBO4T.js";import{a as se}from"./chunk-DXCJLVQZ.js";import{a as ae,b as $}from"./chunk-6RX65NOA.js";import{f as ne}from"./chunk-KTKQ6OL5.js";import{B as ie,d as M,e as U,j as q,n as V,q as H,r as z,s as Y,t as Q,u as G,v as X,w as Z,x as ee,y as re,z as te}from"./chunk-EXC7TCGL.js";import{a}from"./chunk-HZVB2TS2.js";import{d as J}from"./chunk-7GRHCD3D.js";import{a as b,b as W,c as E,d as i,e as x,f as p,g as c}from"./chunk-J3R36SGJ.js";import{isValidAddress as le,WithLoggerContext as k}from"@crossmint/common-sdk-base";var S,C,h,w,R,A,L,O,F,T=class{constructor(e,r){x(this,S);x(this,C);x(this,h);x(this,w);x(this,R);x(this,A,!1);x(this,L,!1);x(this,O);x(this,F,null);let{chain:t,address:n,owner:s,options:d,alias:o,recovery:l,signers:g,signer:u}=e;p(this,h,r),this.chain=t,this.address=n,this.owner=s,p(this,C,d),this.alias=o,p(this,w,l),p(this,R,g!=null?g:[]),p(this,S,u),p(this,O,this.initDefaultSigner())}get signer(){return i(this,S)}waitForInit(){return c(this,null,function*(){yield i(this,O)})}initDeviceSigner(){return c(this,null,function*(){var n;let e=(n=i(this,C))==null?void 0:n.deviceSignerKeyStorage;if(e==null)return;let r={type:"device"};try{yield this.resolveDeviceSignerAvailability(r)}catch(s){a.error("wallet.initDeviceSigner.error",{error:s}),p(this,A,!0);return}if(i(this,A))return;let t=this.buildInternalSignerConfig(r);p(this,S,yield this.assembleFullSigner(t,e))})}initDefaultSigner(){return c(this,null,function*(){if(i(this,S)!=null||(yield this.initDeviceSigner(),i(this,S)!=null||i(this,A)))return;let e=i(this,R).length===0?i(this,w):i(this,R).length===1?i(this,R)[0]:null;if(e==null||!this.isAutoAssemblableSignerConfig(e))return;let r=e===i(this,w);try{let t=this.buildInternalSignerConfig(e);p(this,S,yield this.assembleFullSigner(t,void 0,{isAdminSigner:r}))}catch(t){a.warn("wallet.initDefaultSigner.autoAssemblyFailed",{recoveryType:i(this,w).type,signerCount:i(this,R).length,error:t})}})}static getApiClient(e){return e.apiClient}static getOptions(e){return e.options}static getRecovery(e){return i(e,w)}static getInitialSigners(e){return i(e,R)}get apiClient(){return i(this,h)}get options(){return i(this,C)}get recovery(){return i(this,w)}balances(e){return c(this,null,function*(){a.info("wallet.balances.start");let r=this.resolveChainForEnvironment(),t;switch(this.chain){case"solana":t="sol";break;case"stellar":t="xlm";break;default:t="eth";break}let n=[t,"usdc",...e!=null?e:[]],s=yield i(this,h).getBalance(this.address,{chains:[r],tokens:n});if("error"in s)throw a.error("wallet.balances.error",{error:s}),new Error(`Failed to get balances for wallet: ${JSON.stringify(s.message)}`);return a.info("wallet.balances.success"),this.transformBalanceResponse(s,t,e)})}stagingFund(e,r){return c(this,null,function*(){a.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 a.error("wallet.stagingFund.error",{error:t}),new Error(`Failed to fund wallet: ${JSON.stringify(t.message)}`);return a.info("wallet.stagingFund.success"),t})}transformBalanceResponse(e,r,t){let n=g=>{var y,m,I,K,B;let u=(y=g.chains)==null?void 0:y[this.chain],f={};return this.chain==="solana"&&u!=null&&"mintHash"in u?f={mintHash:u.mintHash}:this.chain==="stellar"&&u!=null&&"contractId"in u?f={contractId:u.contractId}:u!=null&&"contractAddress"in u&&(f={contractAddress:u.contractAddress}),b({symbol:(m=g.symbol)!=null?m:"",name:(I=g.name)!=null?I:"",amount:(K=g.amount)!=null?K:"0",decimals:g.decimals,rawAmount:(B=g.rawAmount)!=null?B:"0"},f)},s=e.find(g=>g.symbol===r),d=e.find(g=>g.symbol==="usdc"),o=e.filter(g=>{var u;return g.symbol!==r&&g.symbol!=="usdc"&&(t==null||t.includes((u=g.symbol)!=null?u:""))}),l=g=>{let u={symbol:g,name:g,amount:"0",decimals:0,rawAmount:"0"},f={};return this.chain==="solana"?f={mintHash:void 0}:this.chain==="stellar"?f={contractId:void 0}:f={contractAddress:void 0},b(b({},u),f)};return{nativeToken:s!=null?n(s):l(r),usdc:d!=null?n(d):l("usdc"),tokens:o.map(n)}}nfts(e){return c(this,null,function*(){return yield i(this,h).getNfts(W(b({},e),{chain:this.chain,address:this.address}))})}transactions(){return c(this,null,function*(){let e=yield i(this,h).getTransactions(this.walletLocator);if("error"in e)throw new Error(`Failed to get transactions: ${JSON.stringify(e.message)}`);return e})}transaction(e){return c(this,null,function*(){let r=yield i(this,h).getTransaction(this.walletLocator,e);if("error"in r)throw new Error(`Failed to get transaction: ${JSON.stringify(r.error)}`);return r})}transfers(e){return c(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 c(this,null,function*(){let s=this.resolveChainForEnvironment(),d=de(e),o=ue(r,s),l=Number(t);if(Number.isNaN(l)||!Number.isFinite(l)||l<=0)throw new Y(`Invalid transfer amount: "${t}". Amount must be a positive number greater than zero.`);a.info("wallet.send.start",b({recipient:d,token:o,amount:t},(n==null?void 0:n.transactionType)!=null?{transactionType:n.transactionType}:{})),yield this.preAuthIfNeeded();let g=this.requireSigner(),u;(n==null?void 0:n.signer)==null?u=g.locator():typeof n.signer=="string"?u=n.signer:u=`server:${N(n.signer,this.chain,i(this,h).projectId,i(this,h).environment).derivedAddress}`;let f=b({recipient:d,amount:t,signer:u},(n==null?void 0:n.transactionType)!=null?{transactionType:n.transactionType}:{}),y=yield i(this,h).send(this.walletLocator,o,f);if("message"in y)throw a.error("wallet.send.error",{error:y}),new Q(`Failed to send token: ${JSON.stringify(y.message)}`);if((n==null?void 0:n.prepareOnly)===!0)return a.info("wallet.send.prepared",{transactionId:y.id}),{hash:void 0,explorerLink:void 0,transactionId:y.id};let m=yield this.approveTransactionAndWait(y.id);return a.info("wallet.send.success",{transactionId:y.id,hash:m.hash}),m})}approveTransaction(e){return c(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 c(this,null,function*(){if(a.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 a.info("wallet.approve.success",{transactionId:e.transactionId}),r}if(e.signatureId!=null){let r=yield this.approveSignatureAndWait(e.signatureId,e.options);return a.info("wallet.approve.success",{signatureId:e.signatureId}),r}throw a.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 c(this,null,function*(){a.info("wallet.addSigner.start");let t=typeof e=="object"&&"type"in e&&e.type==="server"?`server:${N(e,this.chain,i(this,h).projectId,i(this,h).environment).derivedAddress}`:e;return this.withRecoverySigner(()=>c(this,null,function*(){var u,f;let n=typeof t=="string"?t:P(t),s=yield this.getSignerState(n);if(s.signer!=null){if(this.isApprovedSignerStatus(s.signer.status))return a.info("wallet.addSigner.alreadyApproved"),this.completeSignerRegistration(s.signer,null,r);if(s.pendingOperation!=null)return a.info("wallet.addSigner.resuming",{operationType:s.pendingOperation.type,operationId:s.pendingOperation.id}),this.completeSignerRegistration(s.signer,s.pendingOperation,r)}let d=typeof t=="string"||t.type==="passkey"?t:t.type==="device"&&"publicKey"in t&&t.publicKey!=null?{type:"device",publicKey:t.publicKey,name:t.name}:P(t),o=yield i(this,h).registerSigner(this.walletLocator,{signer:d,chain:this.getSignerRegistrationChain()});if("error"in o)throw a.error("wallet.addSigner.error",{error:o}),new q(`Failed to register signer: ${JSON.stringify(o.message)}`);let l=j(o,this.chain);if(l==null)throw new Error(`No approval found for chain ${this.chain} in register signer response`);let g=null;if(this.chain==="solana"||this.chain==="stellar"){if(!("transaction"in o)||o.transaction==null)throw a.error("wallet.addSigner.error",{error:"Expected transaction in response for Solana/Stellar chain"}),new Error("Expected transaction in response for Solana/Stellar chain");g={type:"transaction",id:o.transaction.id}}else{if(!("chains"in o))throw a.error("wallet.addSigner.error",{error:"Expected chains in response for EVM chain"}),new Error("Expected chains in response for EVM chain");if(((f=(u=o.chains)==null?void 0:u[this.chain])==null?void 0:f.status)==="failed")throw new Error(`Signer registration failed for chain ${this.chain}`);g=_(o,this.chain)}return this.completeSignerRegistration(l,g,r)}))})}completeSignerRegistration(e,r,t){return c(this,null,function*(){if(t!=null&&t.prepareOnly){if(r==null)return b({},e);switch(r.type){case"transaction":{let n={transactionId:r.id};return a.info("wallet.addSigner.prepared",n),b(b({},e),n)}case"signature":{let n={signatureId:r.id};return a.info("wallet.addSigner.prepared",n),b(b({},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),a.info("wallet.addSigner.success",{transactionId:r.id});break;case"signature":yield this.approveSignatureAndWait(r.id),a.info("wallet.addSigner.success",{signatureId:r.id});break;default:{let n=r.type;throw new Error(`Unknown pending operation type: ${n}`)}}else a.info("wallet.addSigner.success");return W(b({},e),{status:"success"})})}removeSigner(e,r){return c(this,null,function*(){let t=this.resolveSignerLocator(e);return a.info("wallet.removeSigner.start",{signerLocator:t}),this.withRecoverySigner(()=>c(this,null,function*(){let n=yield i(this,h).removeSigner(this.walletLocator,t,{chain:this.getSignerRegistrationChain()});if("error"in n)throw a.error("wallet.removeSigner.error",{error:n}),new Error(`Failed to remove signer: ${JSON.stringify(n)}`);let s=n.id;return r!=null&&r.prepareOnly?(a.info("wallet.removeSigner.prepared",{transactionId:s}),{transactionId:s,status:void 0}):(yield this.approveTransactionAndWait(s),a.info("wallet.removeSigner.success",{transactionId:s}),{transactionId:s,status:"success"})}))})}useSigner(e){return c(this,null,function*(){a.info("wallet.useSigner.start"),this.validateSignerInput(e);let r=!1;e.type==="device"?yield this.resolveDeviceSignerAvailability(e):r=yield this.resolveNonDeviceSigner(e);let t=this.buildInternalSignerConfig(e),n=P(e);p(this,S,yield this.assembleFullSigner(t,void 0,{isAdminSigner:r})),a.info("wallet.useSigner.success",{signerLocator:n})})}resolveNonDeviceSigner(e){return c(this,null,function*(){if(e.type!=="passkey"&&this.isRecoverySigner(e))return p(this,A,!1),!0;if(e.type==="passkey"&&this.isPasskeyMissingId(e)&&!(yield this.tryAutoSelectPasskey(e))){if(this.isRecoverySigner(e))return p(this,A,!1),!0;throw new Error("No passkey signer is registered on this wallet.")}let r=this.resolveSignerLocator(e);if(yield this.signerIsRegistered(r))return p(this,A,!1),!1;if(this.isRecoverySigner(e))return p(this,A,!1),!0;throw new Error(`Signer "${r}" is not registered in this wallet.`)})}tryAutoSelectPasskey(e){return c(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){if(e.type==="server"){let{derivedAddress:r}=N(e,this.chain,i(this,h).projectId,i(this,h).environment);return`server:${r}`}return P(e)}getSignerRegistrationChain(){if(!(this.chain==="solana"||this.chain==="stellar"))return this.chain}withRecoverySigner(e){return c(this,null,function*(){var n;let r=this.signer;if($(i(this,w)))throw new Error('Cannot assemble server signer: no secret available. Call wallet.useSigner({ type: "server", secret: ... }) first with the recovery server secret.');if(i(this,w)!=null&&i(this,w).type==="external-wallet"&&!this.isAutoAssemblableSignerConfig(i(this,w)))throw new Error('Cannot assemble external wallet signer: no onSign callback available. Call wallet.useSigner({ type: "external-wallet", address: "0x...", onSign: async (tx) => ... }) first.');let t=this.buildInternalSignerConfig(i(this,w));p(this,S,D(this.chain,t,(n=i(this,C))==null?void 0:n.deviceSignerKeyStorage));try{return yield e()}finally{p(this,S,r)}})}isPasskeyMissingId(e){return e.id==null||e.id===""}signerIsRegistered(e){return c(this,null,function*(){return(yield this.signers()).some(t=>t.locator===e)})}isSignerApproved(e){return c(this,null,function*(){var t;let r=yield this.getSignerState(e);return this.isApprovedSignerStatus((t=r.signer)==null?void 0:t.status)})}isApprovedSignerStatus(e){return e==="success"||e==="active"}needsRecovery(){return i(this,A)}recover(){return c(this,null,function*(){var s,d;if(a.info("wallet.recover.start"),i(this,L)){a.info("wallet.recover.skipped",{reason:"Device signer already approved (cached)"});return}let e=()=>{p(this,A,!1),p(this,L,!0)};if(((s=i(this,S))==null?void 0:s.type)==="device"&&(yield this.checkAndResumeDeviceSigner(i(this,S)))){e();return}if(i(this,S)!=null&&i(this,S).type!=="device"){a.warn("wallet.recover.skipped",{reason:"Recovery is only supported for device signers"}),p(this,A,!1);return}let r=(d=i(this,C))==null?void 0:d.deviceSignerKeyStorage;if(r==null){if(!i(this,A))return;throw new Error("Device signer key storage is required to recover a device signer")}let t=yield this.findLocalDeviceSigner(r);if(t!=null&&(yield this.checkAndResumeDeviceSigner(t))){p(this,S,t),e();let o=t.locator().replace("device:","");try{yield r.mapAddressToKey(this.address,o)}catch(l){a.warn("wallet.recover.mapAddressToKey.error",{error:l})}return}let n=yield oe(r,this.address);try{yield this.addSigner(n)}catch(o){if(o instanceof Error&&o.message.toLowerCase().includes("delegated signer")&&o.message.toLowerCase().includes("already")&&o.message.toLowerCase().includes("approved"))a.info("wallet.recover.skipped",{reason:"Device signer already approved",signerLocator:n.locator});else throw o instanceof ae||o instanceof Error&&o.name==="AuthRejectedError"?(a.info("wallet.recover.device.authRejected",{signerLocator:n.locator}),o):(a.error("wallet.recover.device.error",{error:o}),yield r.deleteKey(this.address),p(this,A,!1),p(this,L,!0),o)}p(this,S,yield this.assembleFullSigner({type:"device",locator:n.locator,address:this.address},r)),i(this,S).type==="device"&&(i(this,S).status="success"),a.info("wallet.recover.device.success",{signerLocator:n.locator}),e()})}checkAndResumeDeviceSigner(e){return c(this,null,function*(){var t;if(this.isApprovedSignerStatus(e.status))return a.info("wallet.recover.skipped",{reason:"Device signer already approved"}),!0;let r=yield this.getSignerState(e.locator());return e.status=(t=r.signer)==null?void 0:t.status,r.pendingOperation!=null?(yield this.resumePendingDeviceSignerApproval(e,r.pendingOperation),!0):this.isApprovedSignerStatus(e.status)?(a.info("wallet.recover.skipped",{reason:"Device signer already approved"}),!0):!1})}resumePendingDeviceSignerApproval(e,r){return c(this,null,function*(){var s;let t=i(this,S);if($(i(this,w)))throw new Error('Cannot resume pending approval: no secret available. Call wallet.useSigner({ type: "server", secret: ... }) first with the recovery server secret.');if(i(this,w)!=null&&i(this,w).type==="external-wallet"&&!this.isAutoAssemblableSignerConfig(i(this,w)))throw new Error('Cannot resume pending approval: no onSign callback available. Call wallet.useSigner({ type: "external-wallet", address: "0x...", onSign: async (tx) => ... }) first.');let n=this.buildInternalSignerConfig(i(this,w));p(this,S,D(this.chain,n,(s=i(this,C))==null?void 0:s.deviceSignerKeyStorage));try{r.type==="signature"?yield this.approveSignatureAndWait(r.id):yield this.approveTransactionAndWait(r.id)}catch(d){throw p(this,S,e),d}finally{i(this,S)!==e&&p(this,S,t)}e.status="success",a.info("wallet.recover.device.success",{signerLocator:e.locator(),resumed:!0})})}findLocalDeviceSigner(e){return c(this,null,function*(){let t=(yield this.signers()).filter(n=>n.locator.startsWith("device:"));for(let n of t){let s=n.locator.replace("device:","");try{if(yield e.hasKey(s)){let o=D(this.chain,{type:"device",locator:n.locator,address:this.address},e);return a.info("wallet.recover.foundLocalDeviceSigner",{signerLocator:n.locator}),o}}catch(d){a.warn("wallet.recover.findLocalDeviceSigner.keyCheckError",{signerLocator:n.locator,error:d})}}return null})}signers(){return c(this,null,function*(){var s,d;a.info("wallet.signers.start");let e=yield i(this,h).getWallet(this.walletLocator);if("error"in e)throw a.error("wallet.signers.error",{error:e}),new U(JSON.stringify(e));if(e.type!=="smart"||e.chainType!=="evm"&&e.chainType!=="solana"&&e.chainType!=="stellar")throw a.error("wallet.signers.error",{error:`Wallet type ${e.type} not supported`}),new M(`Wallet type ${e.type} not supported`);let r=(d=(s=e==null?void 0:e.config)==null?void 0:s.delegatedSigners)!=null?d:[],n=(yield Promise.all(r.map(o=>c(this,null,function*(){try{return(yield this.getSignerState(o.locator)).signer}catch(l){return null}})))).filter(o=>o!=null);return a.info("wallet.signers.success",{count:n.length}),n})}get walletLocator(){if(i(this,h).isServerSide)return this.address;{let e;switch(this.chain){case"stellar":e="me:stellar:smart";break;case"solana":e="me:solana:smart";break;default:e="me:evm:smart";break}let r=this.alias!=null?`:alias:${this.alias}`:"";return e+r}}requireSigner(){if(i(this,S)==null)throw i(this,R).length>1?new Error("No signer is set. This wallet has multiple signers configured. Call wallet.useSigner() to select which signer to use before signing operations."):i(this,w).type==="server"?new Error(`No signer is set. Server wallets require calling wallet.useSigner() with the server secret before signing operations.
2
+ Example: wallet.useSigner({ type: "server", secret: process.env.YOUR_SERVER_SECRET })`):i(this,w).type==="external-wallet"||!this.isAutoAssemblableSignerConfig(i(this,w))?new Error(`No signer is set. External wallet signers require calling wallet.useSigner() with the onSign callback before signing operations.
3
+ Example: wallet.useSigner({ type: "external-wallet", address: "0x...", onSign: async (tx) => ... })`):new Error("This wallet is read-only because no signer was provided. Operations that require signing (send, approve, addSigner, etc.) are not available.");return i(this,S)}preAuthIfNeeded(){return c(this,null,function*(){yield i(this,O),i(this,F)==null&&p(this,F,this.recover());try{yield i(this,F)}finally{p(this,F,null)}let e=this.requireSigner();e instanceof se&&(yield e.ensureAuthenticated())})}isRecoverySigner(e){let r=i(this,w);if(r==null||r.type!==e.type||e.type==="device")return!1;if(e.type==="passkey")return!0;if(e.type==="server"&&r.type==="server"){let t=d=>$(d)?d.address:N(d,this.chain,i(this,h).projectId,i(this,h).environment).derivedAddress,n=t(e),s=t(r);if(n!==s)return!1}else if(P(e)!==P(r))return!1;return p(this,w,e),!0}validateSignerInput(e){switch(e.type){case"email":if(!("email"in e)||e.email==null)throw new Error("Email signer requires an email address");break;case"phone":if(!("phone"in e)||e.phone==null)throw new Error("Phone signer requires a phone number");break;case"external-wallet":if(!("address"in e)||e.address==null)throw new Error("External wallet signer requires a wallet address");if(!("onSign"in e)||typeof e.onSign!="function")throw new Error("External wallet signer requires an onSign callback");break;case"passkey":case"device":case"api-key":break;default:break}}resolveDeviceSignerAvailability(e){return c(this,null,function*(){var d;let r=(d=i(this,C))==null?void 0:d.deviceSignerKeyStorage;if(r==null)throw new Error("Device signer key storage is required for device signers");let t=yield r.getKey(this.address);if(t!=null){e.locator=`device:${t}`;return}let s=(yield this.signers()).filter(o=>o.locator.startsWith("device:"));for(let o of s){let l=o.locator.replace("device:","");if(yield r.hasKey(l)){yield r.mapAddressToKey(this.address,l),e.locator=o.locator;return}}p(this,A,!0),p(this,L,!1)})}assembleFullSigner(s){return c(this,arguments,function*(e,r=(n=>(n=i(this,C))==null?void 0:n.deviceSignerKeyStorage)(),t){var o;let d=D(this.chain,e,r);if(t!=null&&t.isAdminSigner)d.status="active";else{let l=yield this.getSignerState(d.locator());d.status=(o=l.signer)==null?void 0:o.status}return d})}getSignerState(e){return c(this,null,function*(){let r=null;try{r=yield i(this,h).getSigner(this.walletLocator,e)}catch(n){return{response:null,signer:null,pendingOperation:null}}if(r==null||typeof r!="object"||"error"in r)return{response:null,signer:null,pendingOperation:null};let t=j(r,this.chain);return{response:r,signer:t,pendingOperation:_(r,this.chain)}})}buildInternalSignerConfig(e){var r,t,n,s,d,o;switch(e.type){case"email":return{type:"email",email:e.email,locator:`email:${e.email}`,address:this.address,crossmint:i(this,h).crossmint,clientTEEConnection:(r=i(this,C))==null?void 0:r.clientTEEConnection,onAuthRequired:(n=(t=i(this,C))==null?void 0:t.callbacks)==null?void 0:n.onAuthRequired};case"phone":return{type:"phone",phone:e.phone,locator:`phone:${e.phone}`,address:this.address,crossmint:i(this,h).crossmint,clientTEEConnection:(s=i(this,C))==null?void 0:s.clientTEEConnection,onAuthRequired:(o=(d=i(this,C))==null?void 0:d.callbacks)==null?void 0:o.onAuthRequired};case"passkey":{let l="id"in e&&e.id?e.id:"";return{type:"passkey",id:l,locator:`passkey:${l}`,name:"name"in e?e.name:void 0,publicKey:"publicKey"in e?e.publicKey:void 0,onCreatePasskey:e.onCreatePasskey,onSignWithPasskey:e.onSignWithPasskey}}case"device":return{type:"device",locator:"locator"in e&&e.locator?e.locator:void 0,address:this.address};case"external-wallet":return W(b({},e),{locator:`external-wallet:${e.address}`});case"api-key":return{type:"api-key",locator:"api-key",address:this.address};case"server":{let{derivedKeyBytes:l,derivedAddress:g}=N(e,this.chain,i(this,h).projectId,i(this,h).environment);return{type:"server",derivedKeyBytes:l,locator:`server:${g}`,address:g}}default:throw new Error(`Unknown signer type: ${e==null?void 0:e.type}`)}}isAutoAssemblableSignerConfig(e){var r;switch(e.type){case"email":case"phone":case"passkey":case"api-key":return!0;case"device":return((r=i(this,C))==null?void 0:r.deviceSignerKeyStorage)!=null;case"server":return!$(e);case"external-wallet":return"onSign"in e&&typeof e.onSign=="function";default:return!1}}get isSolanaWallet(){return this.chain==="solana"}resolveChainForEnvironment(){let e=ne(this.chain,i(this,h).environment);return e!==this.chain&&(this.chain=e),this.chain}approveTransactionAndWait(e,r){return c(this,null,function*(){return yield this.approveTransactionInternal(e,r),yield this.sleep(1e3),yield this.waitForTransaction(e)})}approveSignatureAndWait(e,r){return c(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 c(this,null,function*(){var l,g;if(this.isSolanaWallet)throw new Error("Approving signatures is only supported for EVM smart wallets");let t=this.requireSigner(),n=yield i(this,h).getSignature(this.walletLocator,e);if("error"in n)throw new H(JSON.stringify(n));if(t.type==="api-key")return n;if((r==null?void 0:r.approval)!=null){let u=[r.approval];return yield this.executeApproveSignatureWithErrorHandling(e,u)}let s=(l=n.approvals)==null?void 0:l.pending;if(s==null)return n;let d=[...(g=r==null?void 0:r.additionalSigners)!=null?g:[],t],o=yield Promise.all(s.map(u=>c(this,null,function*(){let f=d.find(m=>m.locator()===u.signer.locator);if(f==null)throw new q(`Signer ${u.signer.locator} not found in pending approvals`);let y=yield f.signMessage(u.message);return W(b({},y),{signer:f.locator()})})));return yield this.executeApproveSignatureWithErrorHandling(e,o)})}approveTransactionInternal(e,r){return c(this,null,function*(){var l,g,u,f,y;let t=yield i(this,h).getTransaction(this.walletLocator,e);if("error"in t)throw new G(JSON.stringify(t));yield(u=(g=(l=i(this,C))==null?void 0:l.callbacks)==null?void 0:g.onTransactionStart)==null?void 0:u.call(g);let n=this.requireSigner();if(n.type==="api-key")return t;if((r==null?void 0:r.approval)!=null){let m=[r.approval];return yield this.executeApproveTransactionWithErrorHandling(e,m)}let s=(f=t.approvals)==null?void 0:f.pending;if(s==null)return t;let d=[...(y=r==null?void 0:r.additionalSigners)!=null?y:[],n],o=yield Promise.all(s.map(m=>c(this,null,function*(){let I=d.find(ge=>ge.locator()===m.signer.locator);if(I==null)throw new q(`Signer ${m.signer.locator} not found in pending approvals`);let K=I.type==="device",B=t.chainType==="solana"&&"transaction"in t.onChain&&!K?t.onChain.transaction:m.message,ce=yield I.signTransaction(B);return W(b({},ce),{signer:I.locator()})})));return yield this.executeApproveTransactionWithErrorHandling(e,o)})}executeApproveTransactionWithErrorHandling(e,r){return c(this,null,function*(){a.info("wallet.approve: submitting approval to API",{transactionId:e});let t=yield i(this,h).approveTransaction(this.walletLocator,e,{approvals:r});if(t.error)throw new te(JSON.stringify(t));return t})}executeApproveSignatureWithErrorHandling(e,r){return c(this,null,function*(){let t=yield i(this,h).approveSignature(this.walletLocator,e,{approvals:r});if(t.error)throw new z(JSON.stringify(t));return t})}waitForSignature(e){return c(this,null,function*(){let r=null;do if(yield new Promise(t=>setTimeout(t,J)),r=yield i(this,h).getSignature(this.walletLocator,e),"error"in r)throw new H(JSON.stringify(r));while(r===null||r.status==="pending");if(r.status==="failed")throw new V("Signature signing failed");if(!r.outputSignature)throw new H("Signature not available");return{signature:r.outputSignature,signatureId:e}})}waitForTransaction(d){return c(this,arguments,function*(e,r=6e4,{backoffMultiplier:t=1.1,maxBackoffMs:n=2e3,initialBackoffMs:s=J}={}){var f,y;a.info("wallet.approve: waiting for transaction confirmation",{transactionId:e,timeoutMs:r});let o=Date.now(),l;do{if(Date.now()-o>r)throw new X("Transaction confirmation timeout");if(l=yield i(this,h).getTransaction(this.walletLocator,e),l.error)throw new G(JSON.stringify(l));yield this.sleep(s),s=Math.min(s*t,n)}while(l.status==="pending");if(l.status==="failed")throw new Z(`Transaction sending failed: ${JSON.stringify(l.error)}`);if(l.status==="awaiting-approval")throw new ee("Transaction is awaiting approval. Please submit required approvals before waiting for completion.");let g="txHash"in l.onChain&&typeof l.onChain.txHash=="string"?l.onChain.txHash:void 0,u=(f=l.onChain.txId)!=null?f:g;if(u==null)throw new re("Transaction hash not found on transaction response");return{hash:u,explorerLink:(y=l.onChain.explorerLink)!=null?y:"",transactionId:l.id}})}sleep(e){return c(this,null,function*(){return new Promise(r=>setTimeout(r,e))})}};S=new WeakMap,C=new WeakMap,h=new WeakMap,w=new WeakMap,R=new WeakMap,A=new WeakMap,L=new WeakMap,O=new WeakMap,F=new WeakMap,E([k({logger:a,methodName:"wallet.balances",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"balances",1),E([k({logger:a,methodName:"wallet.stagingFund",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"stagingFund",1),E([k({logger:a,methodName:"wallet.send",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"send",1),E([k({logger:a,methodName:"wallet.approve",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"approve",1),E([k({logger:a,methodName:"wallet.addSigner",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"addSigner",1),E([k({logger:a,methodName:"wallet.removeSigner",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"removeSigner",1),E([k({logger:a,methodName:"wallet.useSigner",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"useSigner",1),E([k({logger:a,methodName:"wallet.recover",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"recover",1),E([k({logger:a,methodName:"wallet.signers",buildContext(e){return{chain:e.chain,address:e.address}}})],T.prototype,"signers",1);function de(v){if(typeof v=="string"){if(!le(v))throw new ie(`Invalid recipient address: "${v}". Expected a valid EVM (0x...), Solana (base58), or Stellar (G.../C...) address.`);return v}if("email"in v)return`email:${v.email}`;if("x"in v)return`x:${v.x}`;if("twitter"in v)return`twitter:${v.twitter}`;if("phone"in v)return`phoneNumber:${v.phone}`;if("userId"in v)return`userId:${v.userId}`;throw new Error("Invalid recipient locator")}function ue(v,e){return le(v)?`${e}:${v}`:`${e}:${v.toLowerCase()}`}export{T as a};