@crossmint/wallets-sdk 0.18.2 → 0.18.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/dist/api/client.cjs +9 -1
  2. package/dist/api/client.d.cts +4 -4
  3. package/dist/api/client.d.ts +4 -4
  4. package/dist/api/client.js +9 -1
  5. package/dist/api/gen/client.gen.cjs +7 -1
  6. package/dist/api/gen/client.gen.js +7 -1
  7. package/dist/api/gen/index.cjs +179 -1
  8. package/dist/api/gen/index.js +179 -1
  9. package/dist/api/gen/sdk.gen.cjs +178 -1
  10. package/dist/api/gen/sdk.gen.js +178 -1
  11. package/dist/api/gen/types.gen.js +1 -1
  12. package/dist/api/index.cjs +11 -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 +11 -1
  16. package/dist/api/types.d.cts +4 -2
  17. package/dist/api/types.d.ts +4 -2
  18. package/dist/api/types.js +1 -1
  19. package/dist/chains/chains.cjs +9 -1
  20. package/dist/chains/chains.js +9 -1
  21. package/dist/chains/definitions/story.cjs +7 -1
  22. package/dist/chains/definitions/story.js +7 -1
  23. package/dist/chains/definitions/storyTestnet.cjs +7 -1
  24. package/dist/chains/definitions/storyTestnet.js +7 -1
  25. package/dist/chunk-2DHIAP2S.js +58 -0
  26. package/dist/chunk-2T5HHKUI.js +19 -0
  27. package/dist/chunk-2VOEAAFA.cjs +200 -0
  28. package/dist/chunk-3U6UAYOV.js +25 -0
  29. package/dist/chunk-4BMNDPJ4.cjs +92 -0
  30. package/dist/chunk-4QGBVHV3.js +629 -0
  31. package/dist/chunk-55V4VMTX.cjs +25 -0
  32. package/dist/chunk-5H5YHSCK.js +200 -0
  33. package/dist/chunk-7ECQJFYM.cjs +63 -0
  34. package/dist/chunk-7GHQBCRV.cjs +57 -0
  35. package/dist/chunk-7JFVG4IY.js +59 -0
  36. package/dist/chunk-7QL5JVK4.js +262 -0
  37. package/dist/chunk-AJCWEEWH.js +73 -0
  38. package/dist/chunk-AL77JANE.js +36 -0
  39. package/dist/chunk-BAHU3KZE.cjs +75 -0
  40. package/dist/chunk-BAULM7A2.js +289 -0
  41. package/dist/chunk-BFAU2NL6.js +175 -0
  42. package/dist/chunk-BSC55MYK.cjs +43 -0
  43. package/dist/chunk-CHGPNMRL.cjs +36 -0
  44. package/dist/chunk-CN2GVFBU.cjs +138 -0
  45. package/dist/chunk-COVOGZ4S.js +80 -0
  46. package/dist/chunk-DPERJZBG.js +63 -0
  47. package/dist/chunk-DQCXGBZM.js +59 -0
  48. package/dist/chunk-E4LJ7252.cjs +289 -0
  49. package/dist/chunk-EM6H7EUU.cjs +80 -0
  50. package/dist/chunk-EYJQSDDI.js +43 -0
  51. package/dist/chunk-FAGFW4AR.js +16 -0
  52. package/dist/chunk-FK23BDCU.js +87 -0
  53. package/dist/chunk-FPMW7Q5O.js +55 -0
  54. package/dist/chunk-G5NYLGM5.cjs +55 -0
  55. package/dist/chunk-HHDDI3CS.js +75 -0
  56. package/dist/chunk-HNRM45KF.cjs +87 -0
  57. package/dist/chunk-JICSSJOK.js +57 -0
  58. package/dist/chunk-KS63YEQ4.js +138 -0
  59. package/dist/chunk-KT3CVXFG.js +9 -0
  60. package/dist/chunk-LLFD22UQ.cjs +36 -0
  61. package/dist/chunk-MPGPBFUZ.cjs +16 -0
  62. package/dist/chunk-MYKPHXUR.cjs +629 -0
  63. package/dist/chunk-MZBFXUHT.js +63 -0
  64. package/dist/chunk-NIBKCMQ2.cjs +19 -0
  65. package/dist/chunk-OD5RGQ4Z.js +92 -0
  66. package/dist/chunk-PSPNZEG4.cjs +175 -0
  67. package/dist/chunk-R2OY54EJ.cjs +59 -0
  68. package/dist/chunk-RHR6P2KP.cjs +15 -0
  69. package/dist/chunk-RSPJPRQW.cjs +262 -0
  70. package/dist/chunk-RTRDZB52.js +778 -0
  71. package/dist/chunk-SG7WIZLK.cjs +63 -0
  72. package/dist/chunk-SGINWAB6.js +155 -0
  73. package/dist/chunk-TK3EUCQ4.cjs +59 -0
  74. package/dist/chunk-V3QJQUT7.cjs +778 -0
  75. package/dist/chunk-WC7T2CR4.js +44 -0
  76. package/dist/chunk-WJUPOCKJ.js +15 -0
  77. package/dist/chunk-XC2V34TS.cjs +155 -0
  78. package/dist/chunk-XH3ARVJG.cjs +58 -0
  79. package/dist/chunk-YBA7WO32.cjs +44 -0
  80. package/dist/chunk-YOJETSLN.cjs +73 -0
  81. package/dist/chunk-ZT7EGOCI.cjs +9 -0
  82. package/dist/chunk-ZTGRDOOH.js +36 -0
  83. package/dist/index.cjs +55 -1
  84. package/dist/index.js +55 -1
  85. package/dist/sdk.cjs +31 -1
  86. package/dist/sdk.js +31 -1
  87. package/dist/signers/evm-api-key.cjs +7 -1
  88. package/dist/signers/evm-api-key.js +7 -1
  89. package/dist/signers/evm-external-wallet.cjs +7 -1
  90. package/dist/signers/evm-external-wallet.js +7 -1
  91. package/dist/signers/index.cjs +21 -1
  92. package/dist/signers/index.js +21 -1
  93. package/dist/signers/non-custodial/index.cjs +24 -1
  94. package/dist/signers/non-custodial/index.js +24 -1
  95. package/dist/signers/non-custodial/ncs-evm-signer.cjs +10 -1
  96. package/dist/signers/non-custodial/ncs-evm-signer.js +10 -1
  97. package/dist/signers/non-custodial/ncs-iframe-manager.cjs +7 -1
  98. package/dist/signers/non-custodial/ncs-iframe-manager.js +7 -1
  99. package/dist/signers/non-custodial/ncs-signer.cjs +11 -1
  100. package/dist/signers/non-custodial/ncs-signer.js +11 -1
  101. package/dist/signers/non-custodial/ncs-solana-signer.cjs +10 -1
  102. package/dist/signers/non-custodial/ncs-solana-signer.js +10 -1
  103. package/dist/signers/non-custodial/ncs-stellar-signer.cjs +10 -1
  104. package/dist/signers/non-custodial/ncs-stellar-signer.js +10 -1
  105. package/dist/signers/passkey.cjs +7 -1
  106. package/dist/signers/passkey.js +7 -1
  107. package/dist/signers/solana-api-key.cjs +7 -1
  108. package/dist/signers/solana-api-key.js +7 -1
  109. package/dist/signers/solana-external-wallet.cjs +8 -1
  110. package/dist/signers/solana-external-wallet.js +8 -1
  111. package/dist/signers/stellar-external-wallet.cjs +7 -1
  112. package/dist/signers/stellar-external-wallet.js +7 -1
  113. package/dist/signers/types.cjs +9 -1
  114. package/dist/signers/types.js +9 -1
  115. package/dist/utils/constants.cjs +13 -1
  116. package/dist/utils/constants.js +13 -1
  117. package/dist/utils/errors.cjs +55 -1
  118. package/dist/utils/errors.js +55 -1
  119. package/dist/utils/signer-validation.cjs +8 -1
  120. package/dist/utils/signer-validation.js +8 -1
  121. package/dist/wallets/evm.cjs +20 -1
  122. package/dist/wallets/evm.js +20 -1
  123. package/dist/wallets/solana.cjs +18 -1
  124. package/dist/wallets/solana.js +18 -1
  125. package/dist/wallets/stellar.cjs +17 -1
  126. package/dist/wallets/stellar.js +17 -1
  127. package/dist/wallets/wallet-factory.cjs +25 -1
  128. package/dist/wallets/wallet-factory.js +25 -1
  129. package/dist/wallets/wallet.cjs +16 -1
  130. package/dist/wallets/wallet.d.cts +12 -1
  131. package/dist/wallets/wallet.d.ts +12 -1
  132. package/dist/wallets/wallet.js +16 -1
  133. package/package.json +4 -4
  134. package/dist/chunk-23ZHV3VD.js +0 -1
  135. package/dist/chunk-2SHDBC47.js +0 -1
  136. package/dist/chunk-2XVV7Z43.cjs +0 -1
  137. package/dist/chunk-2YH3NVVK.cjs +0 -1
  138. package/dist/chunk-3APSOOE3.js +0 -1
  139. package/dist/chunk-3IZNWAZE.cjs +0 -1
  140. package/dist/chunk-4AJT6I6Q.js +0 -1
  141. package/dist/chunk-4KXOWU5E.cjs +0 -1
  142. package/dist/chunk-5M7IRODB.js +0 -1
  143. package/dist/chunk-5QIW67NU.cjs +0 -1
  144. package/dist/chunk-6PVKL5RC.js +0 -1
  145. package/dist/chunk-73RCBQG5.js +0 -1
  146. package/dist/chunk-7JIPYRKX.js +0 -1
  147. package/dist/chunk-7WKKOG6H.cjs +0 -3
  148. package/dist/chunk-BQZES4ST.js +0 -1
  149. package/dist/chunk-BW7YYVZE.js +0 -1
  150. package/dist/chunk-C3T63EC7.cjs +0 -1
  151. package/dist/chunk-CVZ3RNWV.cjs +0 -1
  152. package/dist/chunk-GEY574TH.cjs +0 -1
  153. package/dist/chunk-H4T4IXCF.js +0 -1
  154. package/dist/chunk-HJ5EDMTA.js +0 -1
  155. package/dist/chunk-HMPMFEPS.cjs +0 -1
  156. package/dist/chunk-HPHVJ6BA.cjs +0 -1
  157. package/dist/chunk-HRSVFJND.cjs +0 -1
  158. package/dist/chunk-IGBQEAD5.js +0 -1
  159. package/dist/chunk-IR5WN6FQ.cjs +0 -1
  160. package/dist/chunk-JUSY5XEE.js +0 -1
  161. package/dist/chunk-KHSWQE6W.js +0 -1
  162. package/dist/chunk-KKQBZXFE.js +0 -1
  163. package/dist/chunk-KO6QYKDX.cjs +0 -1
  164. package/dist/chunk-KRV3IXJU.cjs +0 -1
  165. package/dist/chunk-L5L64FWM.js +0 -1
  166. package/dist/chunk-LW6JSI4J.js +0 -1
  167. package/dist/chunk-M4TOGGLV.cjs +0 -1
  168. package/dist/chunk-MQP5VZCA.cjs +0 -1
  169. package/dist/chunk-NEJPPLYW.cjs +0 -1
  170. package/dist/chunk-NIKULSJK.cjs +0 -1
  171. package/dist/chunk-NT4EICOB.cjs +0 -1
  172. package/dist/chunk-O4FVTK7X.cjs +0 -1
  173. package/dist/chunk-P6JJHAAV.js +0 -1
  174. package/dist/chunk-PONCGT2H.cjs +0 -1
  175. package/dist/chunk-PSXRNSOE.js +0 -1
  176. package/dist/chunk-R6VFNNAA.js +0 -3
  177. package/dist/chunk-RJZV72YF.js +0 -1
  178. package/dist/chunk-S3DYQVRD.js +0 -1
  179. package/dist/chunk-SHVVA55W.js +0 -1
  180. package/dist/chunk-STYSP6KL.cjs +0 -1
  181. package/dist/chunk-UBOWSXW3.js +0 -1
  182. package/dist/chunk-UNBXKCNN.js +0 -1
  183. package/dist/chunk-VXFSSEA4.js +0 -1
  184. package/dist/chunk-VY634F3J.js +0 -1
  185. package/dist/chunk-WQP2FSVI.js +0 -1
  186. package/dist/chunk-WYYAPI4G.cjs +0 -1
  187. package/dist/chunk-WZFHEUWT.cjs +0 -1
  188. package/dist/chunk-XALFCQKD.cjs +0 -1
  189. package/dist/chunk-XIRT2EZN.cjs +0 -1
  190. package/dist/chunk-YWPTI2QO.cjs +0 -1
  191. package/dist/chunk-YZ4HRYSL.cjs +0 -1
@@ -0,0 +1,36 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkG5NYLGM5cjs = require('./chunk-G5NYLGM5.cjs');
4
+
5
+ // src/signers/evm-api-key.ts
6
+ var EVMApiKeySigner = class {
7
+ constructor(config) {
8
+ this.config = config;
9
+ this.type = "api-key";
10
+ }
11
+ locator() {
12
+ return this.config.locator;
13
+ }
14
+ signMessage() {
15
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
16
+ return yield Promise.reject(
17
+ new Error(
18
+ "API key signers do not support direct message signing - signatures are handled automatically by the backend"
19
+ )
20
+ );
21
+ });
22
+ }
23
+ signTransaction() {
24
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
25
+ return yield Promise.reject(
26
+ new Error(
27
+ "API key signers do not support direct transaction signing - transaction are handled automatically by the backend"
28
+ )
29
+ );
30
+ });
31
+ }
32
+ };
33
+
34
+
35
+
36
+ exports.EVMApiKeySigner = EVMApiKeySigner;
@@ -0,0 +1,138 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkNIBKCMQ2cjs = require('./chunk-NIBKCMQ2.cjs');
4
+
5
+
6
+ var _chunk55V4VMTXcjs = require('./chunk-55V4VMTX.cjs');
7
+
8
+ // src/chains/chains.ts
9
+ var _commonsdkbase = require('@crossmint/common-sdk-base');
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+ var _chains = require('viem/chains');
32
+ var TESTNET_AA_CHAINS = [
33
+ _commonsdkbase.BlockchainIncludingTestnet.ABSTRACT_TESTNET,
34
+ _commonsdkbase.BlockchainIncludingTestnet.ARBITRUM_SEPOLIA,
35
+ _commonsdkbase.BlockchainIncludingTestnet.BASE_SEPOLIA,
36
+ _commonsdkbase.BlockchainIncludingTestnet.CURTIS,
37
+ _commonsdkbase.BlockchainIncludingTestnet.ETHEREUM_SEPOLIA,
38
+ _commonsdkbase.BlockchainIncludingTestnet.FLOW_TESTNET,
39
+ _commonsdkbase.BlockchainIncludingTestnet.MANTLE_SEPOLIA,
40
+ _commonsdkbase.BlockchainIncludingTestnet.MODE_SEPOLIA,
41
+ _commonsdkbase.BlockchainIncludingTestnet.OPTIMISM_SEPOLIA,
42
+ _commonsdkbase.BlockchainIncludingTestnet.PLUME_TESTNET,
43
+ _commonsdkbase.BlockchainIncludingTestnet.POLYGON_AMOY,
44
+ _commonsdkbase.BlockchainIncludingTestnet.SCROLL_SEPOLIA,
45
+ _commonsdkbase.BlockchainIncludingTestnet.SEI_ATLANTIC_2_TESTNET,
46
+ _commonsdkbase.BlockchainIncludingTestnet.STORY_TESTNET,
47
+ _commonsdkbase.BlockchainIncludingTestnet.WORLD_CHAIN_SEPOLIA,
48
+ _commonsdkbase.BlockchainIncludingTestnet.ZORA_SEPOLIA
49
+ ];
50
+ var PRODUCTION_AA_CHAINS = [
51
+ _commonsdkbase.BlockchainIncludingTestnet.ABSTRACT,
52
+ _commonsdkbase.BlockchainIncludingTestnet.APECHAIN,
53
+ _commonsdkbase.BlockchainIncludingTestnet.ARBITRUM,
54
+ _commonsdkbase.BlockchainIncludingTestnet.ARBITRUMNOVA,
55
+ _commonsdkbase.BlockchainIncludingTestnet.BASE,
56
+ _commonsdkbase.BlockchainIncludingTestnet.BSC,
57
+ _commonsdkbase.BlockchainIncludingTestnet.FLOW,
58
+ _commonsdkbase.BlockchainIncludingTestnet.MANTLE,
59
+ _commonsdkbase.BlockchainIncludingTestnet.MODE,
60
+ _commonsdkbase.BlockchainIncludingTestnet.OPTIMISM,
61
+ _commonsdkbase.BlockchainIncludingTestnet.PLUME,
62
+ _commonsdkbase.BlockchainIncludingTestnet.POLYGON,
63
+ _commonsdkbase.BlockchainIncludingTestnet.SCROLL,
64
+ _commonsdkbase.BlockchainIncludingTestnet.SEI_PACIFIC_1,
65
+ _commonsdkbase.BlockchainIncludingTestnet.SHAPE,
66
+ _commonsdkbase.BlockchainIncludingTestnet.STORY,
67
+ _commonsdkbase.BlockchainIncludingTestnet.WORLDCHAIN,
68
+ _commonsdkbase.BlockchainIncludingTestnet.ZORA
69
+ ];
70
+ function toViemChain(chain) {
71
+ switch (chain) {
72
+ case _commonsdkbase.BlockchainIncludingTestnet.BASE_SEPOLIA:
73
+ return _chains.baseSepolia;
74
+ case _commonsdkbase.BlockchainIncludingTestnet.BASE:
75
+ return _chains.base;
76
+ case _commonsdkbase.BlockchainIncludingTestnet.POLYGON_AMOY:
77
+ return _chains.polygonAmoy;
78
+ case _commonsdkbase.BlockchainIncludingTestnet.POLYGON:
79
+ return _chains.polygon;
80
+ case _commonsdkbase.BlockchainIncludingTestnet.OPTIMISM_SEPOLIA:
81
+ return _chains.optimismSepolia;
82
+ case _commonsdkbase.BlockchainIncludingTestnet.OPTIMISM:
83
+ return _chains.optimism;
84
+ case _commonsdkbase.BlockchainIncludingTestnet.ARBITRUM_SEPOLIA:
85
+ return _chains.arbitrumSepolia;
86
+ case _commonsdkbase.BlockchainIncludingTestnet.ARBITRUM:
87
+ return _chains.arbitrum;
88
+ case _commonsdkbase.BlockchainIncludingTestnet.ARBITRUMNOVA:
89
+ return _chains.arbitrumNova;
90
+ case _commonsdkbase.BlockchainIncludingTestnet.STORY_TESTNET:
91
+ return _chunk55V4VMTXcjs.storyTestnet;
92
+ case _commonsdkbase.BlockchainIncludingTestnet.STORY:
93
+ return _chunkNIBKCMQ2cjs.story;
94
+ case _commonsdkbase.BlockchainIncludingTestnet.MODE_SEPOLIA:
95
+ return _chains.modeTestnet;
96
+ case _commonsdkbase.BlockchainIncludingTestnet.MODE:
97
+ return _chains.mode;
98
+ case _commonsdkbase.BlockchainIncludingTestnet.BSC:
99
+ return _chains.bsc;
100
+ case _commonsdkbase.BlockchainIncludingTestnet.SHAPE:
101
+ return _chains.shape;
102
+ case _commonsdkbase.BlockchainIncludingTestnet.ZORA:
103
+ return _chains.zora;
104
+ case _commonsdkbase.BlockchainIncludingTestnet.ZORA_SEPOLIA:
105
+ return _chains.zoraSepolia;
106
+ case _commonsdkbase.BlockchainIncludingTestnet.ETHEREUM_SEPOLIA:
107
+ return _chains.sepolia;
108
+ case _commonsdkbase.BlockchainIncludingTestnet.FLOW:
109
+ return _chains.flowMainnet;
110
+ case _commonsdkbase.BlockchainIncludingTestnet.FLOW_TESTNET:
111
+ return _chains.flowTestnet;
112
+ case _commonsdkbase.BlockchainIncludingTestnet.PLUME_TESTNET:
113
+ return _chains.plumeTestnet;
114
+ case _commonsdkbase.BlockchainIncludingTestnet.PLUME:
115
+ return _chains.plume;
116
+ case _commonsdkbase.BlockchainIncludingTestnet.ABSTRACT:
117
+ case _commonsdkbase.BlockchainIncludingTestnet.ABSTRACT_TESTNET:
118
+ case _commonsdkbase.BlockchainIncludingTestnet.APECHAIN:
119
+ case _commonsdkbase.BlockchainIncludingTestnet.MANTLE:
120
+ case _commonsdkbase.BlockchainIncludingTestnet.MANTLE_SEPOLIA:
121
+ case _commonsdkbase.BlockchainIncludingTestnet.SCROLL:
122
+ case _commonsdkbase.BlockchainIncludingTestnet.SCROLL_SEPOLIA:
123
+ case _commonsdkbase.BlockchainIncludingTestnet.SEI_PACIFIC_1:
124
+ case _commonsdkbase.BlockchainIncludingTestnet.SEI_ATLANTIC_2_TESTNET:
125
+ case _commonsdkbase.BlockchainIncludingTestnet.CURTIS:
126
+ case _commonsdkbase.BlockchainIncludingTestnet.WORLDCHAIN:
127
+ case _commonsdkbase.BlockchainIncludingTestnet.WORLD_CHAIN_SEPOLIA:
128
+ throw new Error(
129
+ `Chain ${chain} is not yet supported in toViemChain function. Please add the appropriate viem chain definition.`
130
+ );
131
+ default:
132
+ throw new Error(`Unknown chain: ${chain}`);
133
+ }
134
+ }
135
+
136
+
137
+
138
+ exports.toViemChain = toViemChain;
@@ -0,0 +1,80 @@
1
+ import {
2
+ DEFAULT_EVENT_OPTIONS,
3
+ NonCustodialSigner
4
+ } from "./chunk-BAULM7A2.js";
5
+ import {
6
+ __async
7
+ } from "./chunk-FPMW7Q5O.js";
8
+
9
+ // src/signers/non-custodial/ncs-evm-signer.ts
10
+ import { PersonalMessage } from "ox";
11
+ import { isHex, toHex } from "viem";
12
+ var EVMNonCustodialSigner = class _EVMNonCustodialSigner extends NonCustodialSigner {
13
+ constructor(config) {
14
+ super(config);
15
+ }
16
+ signMessage(message) {
17
+ return __async(this, null, function* () {
18
+ const messageRaw = isHex(message) ? message : toHex(message);
19
+ const messageToSign = PersonalMessage.getSignPayload(messageRaw);
20
+ return yield this.sign(messageToSign);
21
+ });
22
+ }
23
+ signTransaction(transaction) {
24
+ return __async(this, null, function* () {
25
+ return yield this.sign(transaction);
26
+ });
27
+ }
28
+ sign(raw) {
29
+ return __async(this, null, function* () {
30
+ var _a;
31
+ yield this.handleAuthRequired();
32
+ const jwt = this.getJwtOrThrow();
33
+ const hexString = raw.replace("0x", "");
34
+ const res = yield (_a = this.config.clientTEEConnection) == null ? void 0 : _a.sendAction({
35
+ event: "request:sign",
36
+ responseEvent: "response:sign",
37
+ data: {
38
+ authData: {
39
+ jwt,
40
+ apiKey: this.config.crossmint.apiKey
41
+ },
42
+ data: {
43
+ keyType: "secp256k1",
44
+ bytes: hexString,
45
+ encoding: "hex"
46
+ }
47
+ },
48
+ options: DEFAULT_EVENT_OPTIONS
49
+ });
50
+ if ((res == null ? void 0 : res.status) === "error") {
51
+ throw new Error(res.error);
52
+ }
53
+ if ((res == null ? void 0 : res.signature) == null) {
54
+ throw new Error("Failed to sign transaction");
55
+ }
56
+ _EVMNonCustodialSigner.verifyPublicKeyFormat(res.publicKey);
57
+ return { signature: res.signature.bytes };
58
+ });
59
+ }
60
+ static verifyPublicKeyFormat(publicKey) {
61
+ if (publicKey == null) {
62
+ throw new Error("No public key found");
63
+ }
64
+ if (publicKey.encoding !== "hex" || publicKey.keyType !== "secp256k1" || publicKey.bytes == null) {
65
+ throw new Error(
66
+ "Not supported. Expected public key to be in hex encoding and secp256k1 key type. Got: " + JSON.stringify(publicKey)
67
+ );
68
+ }
69
+ }
70
+ getChainKeyParams() {
71
+ return {
72
+ scheme: "secp256k1",
73
+ encoding: "hex"
74
+ };
75
+ }
76
+ };
77
+
78
+ export {
79
+ EVMNonCustodialSigner
80
+ };
@@ -0,0 +1,63 @@
1
+ import {
2
+ WalletFactory
3
+ } from "./chunk-7QL5JVK4.js";
4
+ import {
5
+ ApiClient
6
+ } from "./chunk-5H5YHSCK.js";
7
+ import {
8
+ __async
9
+ } from "./chunk-FPMW7Q5O.js";
10
+
11
+ // src/sdk.ts
12
+ import { createCrossmint } from "@crossmint/common-sdk-base";
13
+ var CrossmintWallets = class _CrossmintWallets {
14
+ constructor(crossmint) {
15
+ const apiClient = new ApiClient(crossmint);
16
+ this.walletFactory = new WalletFactory(apiClient);
17
+ }
18
+ /**
19
+ * Initialize the Wallets SDK
20
+ * @param crossmint - Crossmint data (use `createCrossmint` to initialize)
21
+ * @returns A new CrossmintWallets instance
22
+ */
23
+ static from(crossmint) {
24
+ return new _CrossmintWallets(crossmint);
25
+ }
26
+ /**
27
+ * Get or create a wallet, can only be called on the client side
28
+ * @param args - Wallet data
29
+ * @param options - Wallet options
30
+ * @returns An existing wallet or a new wallet
31
+ */
32
+ getOrCreateWallet(options) {
33
+ return __async(this, null, function* () {
34
+ return yield this.walletFactory.getOrCreateWallet(options);
35
+ });
36
+ }
37
+ /**
38
+ * Get an existing wallet by its locator, can only be called on the server side
39
+ * @param walletLocator - Wallet locator
40
+ * @param options - Wallet options
41
+ * @returns A wallet if found, throws WalletNotAvailableError if not found
42
+ */
43
+ getWallet(walletLocator, options) {
44
+ return __async(this, null, function* () {
45
+ return yield this.walletFactory.getWallet(walletLocator, options);
46
+ });
47
+ }
48
+ /**
49
+ * Create a new wallet, can only be called on the server side
50
+ * @param options - Wallet options
51
+ * @returns A new wallet
52
+ */
53
+ createWallet(options) {
54
+ return __async(this, null, function* () {
55
+ return yield this.walletFactory.createWallet(options);
56
+ });
57
+ }
58
+ };
59
+
60
+ export {
61
+ createCrossmint,
62
+ CrossmintWallets
63
+ };
@@ -0,0 +1,59 @@
1
+ import {
2
+ TransactionFailedError
3
+ } from "./chunk-SGINWAB6.js";
4
+ import {
5
+ __async
6
+ } from "./chunk-FPMW7Q5O.js";
7
+
8
+ // src/signers/solana-external-wallet.ts
9
+ import { PublicKey, VersionedTransaction } from "@solana/web3.js";
10
+ import base58 from "bs58";
11
+ var SolanaExternalWalletSigner = class {
12
+ constructor(config) {
13
+ this.config = config;
14
+ this.type = "external-wallet";
15
+ if (config.address == null) {
16
+ throw new Error("Please provide an address for the External Wallet Signer");
17
+ }
18
+ this._address = config.address;
19
+ this.onSignTransaction = config.onSignTransaction;
20
+ }
21
+ address() {
22
+ return this._address;
23
+ }
24
+ locator() {
25
+ return this.config.locator;
26
+ }
27
+ signMessage() {
28
+ return __async(this, null, function* () {
29
+ return yield Promise.reject(new Error("signMessage method not implemented for solana external wallet signer"));
30
+ });
31
+ }
32
+ signTransaction(transaction) {
33
+ return __async(this, null, function* () {
34
+ if (this.onSignTransaction == null) {
35
+ return yield Promise.reject(
36
+ new Error("onSignTransaction method is required to sign transactions with a Solana external wallet")
37
+ );
38
+ }
39
+ const transactionBytes = base58.decode(transaction);
40
+ const deserializedTransaction = VersionedTransaction.deserialize(transactionBytes);
41
+ const signedTxn = yield this.onSignTransaction(deserializedTransaction);
42
+ const externalWalletPublicKey = new PublicKey(this._address);
43
+ const signerIndex = signedTxn.message.staticAccountKeys.findIndex((key) => key.equals(externalWalletPublicKey));
44
+ if (signerIndex === -1) {
45
+ throw new TransactionFailedError("Wallet public key not found in transaction signers");
46
+ }
47
+ const validSignature = signedTxn.signatures[signerIndex];
48
+ if (validSignature == null) {
49
+ throw new TransactionFailedError("No valid signature found in the transaction");
50
+ }
51
+ const signatureBytes = new Uint8Array(Object.values(validSignature));
52
+ return { signature: base58.encode(signatureBytes) };
53
+ });
54
+ }
55
+ };
56
+
57
+ export {
58
+ SolanaExternalWalletSigner
59
+ };
@@ -0,0 +1,289 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkTK3EUCQ4cjs = require('./chunk-TK3EUCQ4.cjs');
4
+
5
+
6
+ var _chunkRHR6P2KPcjs = require('./chunk-RHR6P2KP.cjs');
7
+
8
+
9
+
10
+
11
+ var _chunkG5NYLGM5cjs = require('./chunk-G5NYLGM5.cjs');
12
+
13
+ // src/signers/non-custodial/ncs-signer.ts
14
+ var _commonsdkbase = require('@crossmint/common-sdk-base');
15
+ var NonCustodialSigner = class {
16
+ constructor(config) {
17
+ this.config = config;
18
+ this._needsAuth = true;
19
+ this._authPromise = null;
20
+ this._initializationPromise = null;
21
+ if (typeof window !== "undefined") {
22
+ this.initialize();
23
+ }
24
+ this.type = this.config.type;
25
+ }
26
+ locator() {
27
+ return this.config.locator;
28
+ }
29
+ address() {
30
+ return this.config.address;
31
+ }
32
+ initialize() {
33
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
34
+ if (this.config.clientTEEConnection == null) {
35
+ const parsedAPIKey = _commonsdkbase.validateAPIKey.call(void 0, this.config.crossmint.apiKey);
36
+ if (!parsedAPIKey.isValid) {
37
+ throw new Error("Invalid API key");
38
+ }
39
+ const iframeManager = new (0, _chunkTK3EUCQ4cjs.NcsIframeManager)({ environment: parsedAPIKey.environment });
40
+ this.config.clientTEEConnection = yield iframeManager.initialize();
41
+ }
42
+ });
43
+ }
44
+ getTEEConnection() {
45
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
46
+ if (this.config.clientTEEConnection == null) {
47
+ if (this._initializationPromise) {
48
+ yield this._initializationPromise;
49
+ return this.config.clientTEEConnection;
50
+ }
51
+ this._initializationPromise = this.initializeTEEConnection();
52
+ try {
53
+ yield this._initializationPromise;
54
+ } finally {
55
+ this._initializationPromise = null;
56
+ }
57
+ }
58
+ return this.config.clientTEEConnection;
59
+ });
60
+ }
61
+ initializeTEEConnection() {
62
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
63
+ console.warn("TEE connection is not initialized, initializing now...");
64
+ const parsedAPIKey = _commonsdkbase.validateAPIKey.call(void 0, this.config.crossmint.apiKey);
65
+ if (!parsedAPIKey.isValid) {
66
+ throw new Error("Invalid API key");
67
+ }
68
+ const iframeManager = new (0, _chunkTK3EUCQ4cjs.NcsIframeManager)({ environment: parsedAPIKey.environment });
69
+ this.config.clientTEEConnection = yield iframeManager.initialize();
70
+ if (this.config.clientTEEConnection == null) {
71
+ throw new Error("Failed to initialize TEE connection");
72
+ }
73
+ console.log("TEE connection initialized successfully");
74
+ });
75
+ }
76
+ handleAuthRequired() {
77
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
78
+ var _a, _b;
79
+ const clientTEEConnection = yield this.getTEEConnection();
80
+ if (this.config.onAuthRequired == null) {
81
+ throw new Error(
82
+ `${this.type} signer requires the onAuthRequired callback to handle OTP verification. This callback manages the authentication flow (sending OTP and verifying user input). If using our React/React Native SDK, this is handled automatically by the provider. For other environments, implement: onAuthRequired: (needsAuth, sendEmailWithOtp, verifyOtp, reject) => { /* your UI logic */ }`
83
+ );
84
+ }
85
+ const signerResponse = yield clientTEEConnection.sendAction({
86
+ event: "request:get-status",
87
+ responseEvent: "response:get-status",
88
+ data: {
89
+ authData: {
90
+ jwt: (_b = (_a = this.config.crossmint.experimental_customAuth) == null ? void 0 : _a.jwt) != null ? _b : "",
91
+ apiKey: this.config.crossmint.apiKey
92
+ }
93
+ },
94
+ options: _chunkG5NYLGM5cjs.__spreadProps.call(void 0, _chunkG5NYLGM5cjs.__spreadValues.call(void 0, {}, DEFAULT_EVENT_OPTIONS), {
95
+ maxRetries: 5
96
+ })
97
+ });
98
+ if ((signerResponse == null ? void 0 : signerResponse.status) !== "success") {
99
+ throw new Error(signerResponse == null ? void 0 : signerResponse.error);
100
+ }
101
+ if (signerResponse.signerStatus === "ready") {
102
+ this._needsAuth = false;
103
+ return;
104
+ } else {
105
+ this._needsAuth = true;
106
+ }
107
+ const { promise, resolve, reject } = this.createAuthPromise();
108
+ this._authPromise = { promise, resolve, reject };
109
+ if (this.config.onAuthRequired) {
110
+ try {
111
+ yield this.config.onAuthRequired(
112
+ this._needsAuth,
113
+ () => this.sendMessageWithOtp(),
114
+ (otp) => this.verifyOtp(otp),
115
+ () => _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
116
+ this._needsAuth = false;
117
+ if (this.config.onAuthRequired != null) {
118
+ yield this.config.onAuthRequired(
119
+ this._needsAuth,
120
+ () => this.sendMessageWithOtp(),
121
+ (otp) => this.verifyOtp(otp),
122
+ () => {
123
+ var _a2;
124
+ return (_a2 = this._authPromise) == null ? void 0 : _a2.reject(new (0, _chunkRHR6P2KPcjs.AuthRejectedError)());
125
+ }
126
+ );
127
+ }
128
+ reject(new (0, _chunkRHR6P2KPcjs.AuthRejectedError)());
129
+ })
130
+ );
131
+ } catch (error) {
132
+ reject(error);
133
+ }
134
+ }
135
+ try {
136
+ yield promise;
137
+ } catch (error) {
138
+ throw error;
139
+ }
140
+ });
141
+ }
142
+ ensureAuthenticated() {
143
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
144
+ yield this.handleAuthRequired();
145
+ });
146
+ }
147
+ getJwtOrThrow() {
148
+ var _a;
149
+ const jwt = (_a = this.config.crossmint.experimental_customAuth) == null ? void 0 : _a.jwt;
150
+ if (jwt == null) {
151
+ throw new Error("JWT is required");
152
+ }
153
+ return jwt;
154
+ }
155
+ createAuthPromise() {
156
+ let resolvePromise;
157
+ let rejectPromise;
158
+ const promise = new Promise((resolve, reject) => {
159
+ resolvePromise = resolve;
160
+ rejectPromise = reject;
161
+ });
162
+ return { promise, resolve: resolvePromise, reject: rejectPromise };
163
+ }
164
+ sendMessageWithOtp() {
165
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
166
+ var _a, _b, _c;
167
+ const handshakeParent = yield this.getTEEConnection();
168
+ const authId = this.getAuthId();
169
+ const response = yield handshakeParent.sendAction({
170
+ event: "request:start-onboarding",
171
+ responseEvent: "response:start-onboarding",
172
+ data: {
173
+ authData: {
174
+ jwt: (_b = (_a = this.config.crossmint.experimental_customAuth) == null ? void 0 : _a.jwt) != null ? _b : "",
175
+ apiKey: this.config.crossmint.apiKey
176
+ },
177
+ data: { authId }
178
+ },
179
+ options: _chunkG5NYLGM5cjs.__spreadProps.call(void 0, _chunkG5NYLGM5cjs.__spreadValues.call(void 0, {}, DEFAULT_EVENT_OPTIONS), {
180
+ maxRetries: 3
181
+ })
182
+ });
183
+ if ((response == null ? void 0 : response.status) === "success" && response.signerStatus === "ready") {
184
+ this._needsAuth = false;
185
+ return;
186
+ }
187
+ if ((response == null ? void 0 : response.status) === "error") {
188
+ console.error("[sendMessageWithOtp] Failed to send OTP:", response);
189
+ (_c = this._authPromise) == null ? void 0 : _c.reject(new Error(response.error || "Failed to initiate OTP process."));
190
+ }
191
+ });
192
+ }
193
+ getAuthId() {
194
+ if (this.config.type === "email") {
195
+ return `email:${this.config.email}`;
196
+ }
197
+ return `phone:${this.config.phone}`;
198
+ }
199
+ verifyOtp(encryptedOtp) {
200
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
201
+ var _a, _b, _c, _d, _e;
202
+ let response;
203
+ try {
204
+ const handshakeParent = yield this.getTEEConnection();
205
+ response = yield handshakeParent.sendAction({
206
+ event: "request:complete-onboarding",
207
+ responseEvent: "response:complete-onboarding",
208
+ data: {
209
+ authData: {
210
+ jwt: (_b = (_a = this.config.crossmint.experimental_customAuth) == null ? void 0 : _a.jwt) != null ? _b : "",
211
+ apiKey: this.config.crossmint.apiKey
212
+ },
213
+ data: {
214
+ onboardingAuthentication: { encryptedOtp }
215
+ }
216
+ },
217
+ options: _chunkG5NYLGM5cjs.__spreadProps.call(void 0, _chunkG5NYLGM5cjs.__spreadValues.call(void 0, {}, DEFAULT_EVENT_OPTIONS), {
218
+ maxRetries: 3
219
+ })
220
+ });
221
+ } catch (err) {
222
+ console.error("[verifyOtp] Error sending OTP validation request:", err);
223
+ this._needsAuth = true;
224
+ (_c = this._authPromise) == null ? void 0 : _c.reject(err);
225
+ throw err;
226
+ }
227
+ if ((response == null ? void 0 : response.status) === "success") {
228
+ this._needsAuth = false;
229
+ if (this.config.onAuthRequired != null) {
230
+ yield this.config.onAuthRequired(
231
+ this._needsAuth,
232
+ () => this.sendMessageWithOtp(),
233
+ (otp) => this.verifyOtp(otp),
234
+ () => {
235
+ var _a2;
236
+ return (_a2 = this._authPromise) == null ? void 0 : _a2.reject(new (0, _chunkRHR6P2KPcjs.AuthRejectedError)());
237
+ }
238
+ );
239
+ }
240
+ (_d = this._authPromise) == null ? void 0 : _d.resolve();
241
+ return;
242
+ }
243
+ console.error("[verifyOtp] Failed to validate OTP:", response);
244
+ this._needsAuth = true;
245
+ const errorMessage = (response == null ? void 0 : response.status) === "error" ? response.error : "Failed to validate encrypted OTP";
246
+ const error = new Error(errorMessage);
247
+ (_e = this._authPromise) == null ? void 0 : _e.reject(error);
248
+ throw error;
249
+ });
250
+ }
251
+ /**
252
+ * Export the private key for this signer
253
+ * @throws {Error} If signer is not authenticated
254
+ */
255
+ _exportPrivateKey(exportTEEConnection) {
256
+ return _chunkG5NYLGM5cjs.__async.call(void 0, this, null, function* () {
257
+ yield this.handleAuthRequired();
258
+ const jwt = this.getJwtOrThrow();
259
+ const { scheme, encoding } = this.getChainKeyParams();
260
+ const response = yield exportTEEConnection.sendAction({
261
+ event: "request:export-signer",
262
+ responseEvent: "response:export-signer",
263
+ data: {
264
+ authData: {
265
+ jwt,
266
+ apiKey: this.config.crossmint.apiKey
267
+ },
268
+ data: {
269
+ scheme,
270
+ encoding
271
+ }
272
+ },
273
+ options: DEFAULT_EVENT_OPTIONS
274
+ });
275
+ if ((response == null ? void 0 : response.status) === "error") {
276
+ throw new Error(response.error || "Failed to export private key");
277
+ }
278
+ });
279
+ }
280
+ };
281
+ var DEFAULT_EVENT_OPTIONS = {
282
+ timeoutMs: 1e4,
283
+ intervalMs: 5e3
284
+ };
285
+
286
+
287
+
288
+
289
+ exports.NonCustodialSigner = NonCustodialSigner; exports.DEFAULT_EVENT_OPTIONS = DEFAULT_EVENT_OPTIONS;