@crossmint/wallets-sdk 0.20.1 → 0.21.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 (155) hide show
  1. package/dist/api/__tests__/test-utils.cjs +8 -8
  2. package/dist/api/__tests__/test-utils.d.cts +3 -3
  3. package/dist/api/__tests__/test-utils.d.ts +3 -3
  4. package/dist/api/__tests__/test-utils.js +6 -6
  5. package/dist/api/client.cjs +4 -4
  6. package/dist/api/client.d.cts +1 -0
  7. package/dist/api/client.d.ts +1 -0
  8. package/dist/api/client.js +3 -3
  9. package/dist/api/gen/index.cjs +3 -103
  10. package/dist/api/gen/index.d.cts +2 -2
  11. package/dist/api/gen/index.d.ts +2 -2
  12. package/dist/api/gen/index.js +6 -106
  13. package/dist/api/gen/sdk.gen.cjs +2 -102
  14. package/dist/api/gen/sdk.gen.d.cts +22 -370
  15. package/dist/api/gen/sdk.gen.d.ts +22 -370
  16. package/dist/api/gen/sdk.gen.js +5 -105
  17. package/dist/api/gen/types.gen.d.cts +2558 -5712
  18. package/dist/api/gen/types.gen.d.ts +2558 -5712
  19. package/dist/api/index.cjs +4 -4
  20. package/dist/api/index.js +3 -3
  21. package/dist/api/types.d.cts +12 -12
  22. package/dist/api/types.d.ts +12 -12
  23. package/dist/chains/chains.cjs +5 -5
  24. package/dist/chains/chains.js +4 -4
  25. package/dist/{chunk-TC6ITDWV.cjs → chunk-2M32LBCA.cjs} +3 -3
  26. package/dist/{chunk-AYE7XUR2.js → chunk-2PSAUSOG.js} +61 -18
  27. package/dist/chunk-2RG6642I.js +39 -0
  28. package/dist/{chunk-HH3MM7IJ.cjs → chunk-3WZUNLYI.cjs} +1 -1
  29. package/dist/{chunk-3G4P2NHM.js → chunk-4Z3YDHHG.js} +2 -2
  30. package/dist/{chunk-SJSXTTSY.cjs → chunk-4ZWUI6LE.cjs} +64 -48
  31. package/dist/chunk-5IC7UWND.cjs +1 -0
  32. package/dist/{chunk-TYRXXYHP.js → chunk-65KPNJ77.js} +13 -4
  33. package/dist/{chunk-O42BRSEX.cjs → chunk-7EZDSDKA.cjs} +21 -11
  34. package/dist/{chunk-3WF7K4KF.cjs → chunk-7SUWMK4J.cjs} +34 -25
  35. package/dist/{chunk-LONKAMXJ.cjs → chunk-7W4HGN3H.cjs} +11 -6
  36. package/dist/chunk-BR4UVMIC.js +332 -0
  37. package/dist/chunk-BUBSPQ7U.cjs +332 -0
  38. package/dist/{chunk-LPR7BODP.cjs → chunk-CPZQ7BK5.cjs} +6 -6
  39. package/dist/chunk-CTOLL4BK.js +29 -0
  40. package/dist/chunk-DDNG224J.cjs +45 -0
  41. package/dist/{chunk-3SYMIYEW.js → chunk-EVR4CD53.js} +8 -3
  42. package/dist/{chunk-3KEY2NLC.js → chunk-FZQG6OX2.js} +1 -1
  43. package/dist/chunk-GJT2JD3E.js +45 -0
  44. package/dist/{chunk-NPTNXK47.js → chunk-GLUD6EBN.js} +1 -1
  45. package/dist/chunk-H6WV5NRT.js +10 -0
  46. package/dist/{chunk-TPW2OJIB.js → chunk-HFEF2URB.js} +2 -2
  47. package/dist/chunk-HWTWDQYT.cjs +42 -0
  48. package/dist/{chunk-DENEF27X.js → chunk-HYA3ESUA.js} +3 -3
  49. package/dist/chunk-IGRPHTXZ.cjs +1 -0
  50. package/dist/chunk-K6LSGLG6.js +42 -0
  51. package/dist/chunk-KHY5FXO4.cjs +37 -0
  52. package/dist/chunk-L52GDMSH.js +0 -0
  53. package/dist/{chunk-IBV7DELQ.js → chunk-M47ZHA7Q.js} +14 -5
  54. package/dist/{chunk-ZZLEVK2P.cjs → chunk-M4HCASMG.cjs} +20 -11
  55. package/dist/chunk-M6IPPGXQ.cjs +29 -0
  56. package/dist/{chunk-XMVAZ7EW.cjs → chunk-M7OPRXZH.cjs} +7 -7
  57. package/dist/{chunk-H3XAAMD3.cjs → chunk-MIKWTXUA.cjs} +6 -6
  58. package/dist/chunk-MNHK6EQK.cjs +57 -0
  59. package/dist/{chunk-Y35UJFTB.cjs → chunk-NO2KMGS2.cjs} +80 -37
  60. package/dist/chunk-OPKFMXPI.cjs +39 -0
  61. package/dist/{chunk-J45OIOTF.js → chunk-OXB6RTW7.js} +14 -4
  62. package/dist/{chunk-NFV5K2D2.cjs → chunk-P4XJHOLW.cjs} +18 -12
  63. package/dist/chunk-Q52MMQSC.js +57 -0
  64. package/dist/chunk-QM3BB4E2.js +0 -0
  65. package/dist/{chunk-3ASKCQJN.cjs → chunk-QQNDLR6E.cjs} +18 -18
  66. package/dist/chunk-RUQYXEEG.cjs +10 -0
  67. package/dist/chunk-S2L5Z2ZT.js +37 -0
  68. package/dist/{chunk-XTKNO44C.js → chunk-T5NKL6F4.js} +2 -2
  69. package/dist/{chunk-AEGU53OM.cjs → chunk-U56Z2EOR.cjs} +6 -6
  70. package/dist/{chunk-KD6N62YZ.js → chunk-VLZ5ZS5U.js} +8 -2
  71. package/dist/{chunk-KN3AKBVY.cjs → chunk-VTF3WCXG.cjs} +6 -6
  72. package/dist/{chunk-DPZIHSN7.js → chunk-VVPGO564.js} +24 -8
  73. package/dist/{chunk-FGGGBNUF.js → chunk-X4SPF4KJ.js} +4 -4
  74. package/dist/{chunk-DZ6MCPD3.js → chunk-XEPUH4XH.js} +1 -1
  75. package/dist/index.cjs +26 -17
  76. package/dist/index.d.cts +1 -1
  77. package/dist/index.d.ts +1 -1
  78. package/dist/index.js +25 -16
  79. package/dist/logger/index.cjs +3 -3
  80. package/dist/logger/index.js +2 -2
  81. package/dist/logger/init.cjs +3 -3
  82. package/dist/logger/init.js +2 -2
  83. package/dist/sdk.cjs +23 -14
  84. package/dist/sdk.js +22 -13
  85. package/dist/signers/index.cjs +17 -8
  86. package/dist/signers/index.js +16 -7
  87. package/dist/signers/non-custodial/index.cjs +7 -7
  88. package/dist/signers/non-custodial/index.js +6 -6
  89. package/dist/signers/non-custodial/ncs-evm-signer.cjs +5 -5
  90. package/dist/signers/non-custodial/ncs-evm-signer.js +4 -4
  91. package/dist/signers/non-custodial/ncs-signer.cjs +4 -4
  92. package/dist/signers/non-custodial/ncs-signer.js +3 -3
  93. package/dist/signers/non-custodial/ncs-solana-signer.cjs +5 -5
  94. package/dist/signers/non-custodial/ncs-solana-signer.js +4 -4
  95. package/dist/signers/non-custodial/ncs-stellar-signer.cjs +5 -5
  96. package/dist/signers/non-custodial/ncs-stellar-signer.js +4 -4
  97. package/dist/signers/server/assemble-server-signer.cjs +14 -0
  98. package/dist/signers/server/assemble-server-signer.d.cts +11 -0
  99. package/dist/signers/server/assemble-server-signer.d.ts +11 -0
  100. package/dist/signers/server/assemble-server-signer.js +14 -0
  101. package/dist/signers/server/evm-server-signer.cjs +7 -0
  102. package/dist/signers/server/evm-server-signer.d.cts +25 -0
  103. package/dist/signers/server/evm-server-signer.d.ts +25 -0
  104. package/dist/signers/server/evm-server-signer.js +7 -0
  105. package/dist/signers/server/helpers/derive-server-signer.cjs +11 -0
  106. package/dist/signers/server/helpers/derive-server-signer.d.cts +15 -0
  107. package/dist/signers/server/helpers/derive-server-signer.d.ts +15 -0
  108. package/dist/signers/server/helpers/derive-server-signer.js +11 -0
  109. package/dist/signers/server/helpers/get-chain-type.cjs +7 -0
  110. package/dist/signers/server/helpers/get-chain-type.d.cts +7 -0
  111. package/dist/signers/server/helpers/get-chain-type.d.ts +7 -0
  112. package/dist/signers/server/helpers/get-chain-type.js +7 -0
  113. package/dist/signers/server/helpers/index.cjs +15 -0
  114. package/dist/signers/server/helpers/index.d.cts +9 -0
  115. package/dist/signers/server/helpers/index.d.ts +9 -0
  116. package/dist/signers/server/helpers/index.js +15 -0
  117. package/dist/signers/server/index.cjs +29 -0
  118. package/dist/signers/server/index.d.cts +12 -0
  119. package/dist/signers/server/index.d.ts +12 -0
  120. package/dist/signers/server/index.js +29 -0
  121. package/dist/signers/server/solana-server-signer.cjs +7 -0
  122. package/dist/signers/server/solana-server-signer.d.cts +25 -0
  123. package/dist/signers/server/solana-server-signer.d.ts +25 -0
  124. package/dist/signers/server/solana-server-signer.js +7 -0
  125. package/dist/signers/server/stellar-server-signer.cjs +7 -0
  126. package/dist/signers/server/stellar-server-signer.d.cts +25 -0
  127. package/dist/signers/server/stellar-server-signer.d.ts +25 -0
  128. package/dist/signers/server/stellar-server-signer.js +7 -0
  129. package/dist/signers/types.d.cts +15 -3
  130. package/dist/signers/types.d.ts +15 -3
  131. package/dist/utils/constants.cjs +2 -2
  132. package/dist/utils/constants.js +1 -1
  133. package/dist/utils/server-key-derivation.cjs +9 -0
  134. package/dist/utils/server-key-derivation.d.cts +20 -0
  135. package/dist/utils/server-key-derivation.d.ts +20 -0
  136. package/dist/utils/server-key-derivation.js +9 -0
  137. package/dist/wallets/__tests__/test-helpers.cjs +19 -10
  138. package/dist/wallets/__tests__/test-helpers.js +18 -9
  139. package/dist/wallets/evm.cjs +20 -11
  140. package/dist/wallets/evm.js +19 -10
  141. package/dist/wallets/solana.cjs +20 -11
  142. package/dist/wallets/solana.js +19 -10
  143. package/dist/wallets/stellar.cjs +20 -11
  144. package/dist/wallets/stellar.js +19 -10
  145. package/dist/wallets/types.d.cts +7 -4
  146. package/dist/wallets/types.d.ts +7 -4
  147. package/dist/wallets/wallet-factory.cjs +21 -12
  148. package/dist/wallets/wallet-factory.js +20 -11
  149. package/dist/wallets/wallet.cjs +19 -10
  150. package/dist/wallets/wallet.d.cts +2 -2
  151. package/dist/wallets/wallet.d.ts +2 -2
  152. package/dist/wallets/wallet.js +18 -9
  153. package/package.json +5 -4
  154. package/dist/chunk-BMMZIPXT.js +0 -778
  155. package/dist/chunk-COR3CNRW.cjs +0 -778
@@ -0,0 +1,37 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkRUQYXEEGcjs = require('./chunk-RUQYXEEG.cjs');
4
+
5
+
6
+ var _chunkMNHK6EQKcjs = require('./chunk-MNHK6EQK.cjs');
7
+
8
+ // src/signers/server/helpers/derive-server-signer.ts
9
+ var _accounts = require('viem/accounts');
10
+ var _utils = require('@noble/hashes/utils');
11
+ var _web3js = require('@solana/web3.js');
12
+ var _stellarsdk = require('@stellar/stellar-sdk');
13
+ function deriveServerSignerAddress(keyBytes, chain) {
14
+ const chainType = _chunkRUQYXEEGcjs.getChainType.call(void 0, chain);
15
+ switch (chainType) {
16
+ case "evm":
17
+ return _accounts.privateKeyToAccount.call(void 0, `0x${_utils.bytesToHex.call(void 0, keyBytes)}`).address;
18
+ case "solana":
19
+ return _web3js.Keypair.fromSeed(keyBytes).publicKey.toBase58();
20
+ case "stellar":
21
+ return _stellarsdk.Keypair.fromRawEd25519Seed(Buffer.from(keyBytes)).publicKey();
22
+ }
23
+ }
24
+ function deriveServerSignerDetails(signer, chain, projectId, environment) {
25
+ if (typeof window !== "undefined") {
26
+ throw new Error("Server signers can only be used from server-side code.");
27
+ }
28
+ const chainStr = typeof chain === "string" ? chain : String(chain);
29
+ const derivedKeyBytes = _chunkMNHK6EQKcjs.deriveKeyBytes.call(void 0, signer.secret, projectId, environment, chainStr);
30
+ const derivedAddress = deriveServerSignerAddress(derivedKeyBytes, chain);
31
+ return { derivedKeyBytes, derivedAddress };
32
+ }
33
+
34
+
35
+
36
+
37
+ exports.deriveServerSignerAddress = deriveServerSignerAddress; exports.deriveServerSignerDetails = deriveServerSignerDetails;
File without changes
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  Wallet
3
- } from "./chunk-DPZIHSN7.js";
3
+ } from "./chunk-VVPGO564.js";
4
+ import {
5
+ deriveServerSignerDetails
6
+ } from "./chunk-S2L5Z2ZT.js";
4
7
  import {
5
8
  toViemChain
6
- } from "./chunk-FGGGBNUF.js";
9
+ } from "./chunk-X4SPF4KJ.js";
7
10
  import {
8
11
  InvalidTypedDataError,
9
12
  SignatureNotCreatedError,
@@ -11,7 +14,7 @@ import {
11
14
  } from "./chunk-SGINWAB6.js";
12
15
  import {
13
16
  walletsLogger
14
- } from "./chunk-DZ6MCPD3.js";
17
+ } from "./chunk-XEPUH4XH.js";
15
18
  import {
16
19
  __async,
17
20
  __decorateClass
@@ -162,8 +165,14 @@ var _EVMWallet = class _EVMWallet extends Wallet {
162
165
  }
163
166
  createTransaction(transaction, options) {
164
167
  return __async(this, null, function* () {
165
- var _a;
166
- const signer = (_a = options == null ? void 0 : options.experimental_signer) != null ? _a : this.signer.locator();
168
+ let signer;
169
+ if ((options == null ? void 0 : options.experimental_signer) == null) {
170
+ signer = this.signer.locator();
171
+ } else if (typeof options.experimental_signer === "string") {
172
+ signer = options.experimental_signer;
173
+ } else {
174
+ signer = `server:${deriveServerSignerDetails(options.experimental_signer, this.chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}`;
175
+ }
167
176
  const transactionCreationResponse = yield this.apiClient.createTransaction(this.walletLocator, {
168
177
  params: {
169
178
  signer,
@@ -1,12 +1,15 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkSJSXTTSYcjs = require('./chunk-SJSXTTSY.cjs');
3
+ var _chunk4ZWUI6LEcjs = require('./chunk-4ZWUI6LE.cjs');
4
+
5
+
6
+ var _chunkKHY5FXO4cjs = require('./chunk-KHY5FXO4.cjs');
4
7
 
5
8
 
6
9
  var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
7
10
 
8
11
 
9
- var _chunkTC6ITDWVcjs = require('./chunk-TC6ITDWV.cjs');
12
+ var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
10
13
 
11
14
 
12
15
 
@@ -14,7 +17,7 @@ var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
14
17
 
15
18
  // src/wallets/stellar.ts
16
19
  var _commonsdkbase = require('@crossmint/common-sdk-base');
17
- var _StellarWallet = class _StellarWallet extends _chunkSJSXTTSYcjs.Wallet {
20
+ var _StellarWallet = class _StellarWallet extends _chunk4ZWUI6LEcjs.Wallet {
18
21
  constructor(wallet) {
19
22
  super(
20
23
  {
@@ -22,10 +25,10 @@ var _StellarWallet = class _StellarWallet extends _chunkSJSXTTSYcjs.Wallet {
22
25
  address: wallet.address,
23
26
  owner: wallet.owner,
24
27
  signer: wallet.signer,
25
- options: _chunkSJSXTTSYcjs.Wallet.getOptions(wallet),
28
+ options: _chunk4ZWUI6LEcjs.Wallet.getOptions(wallet),
26
29
  alias: wallet.alias
27
30
  },
28
- _chunkSJSXTTSYcjs.Wallet.getApiClient(wallet)
31
+ _chunk4ZWUI6LEcjs.Wallet.getApiClient(wallet)
29
32
  );
30
33
  }
31
34
  static from(wallet) {
@@ -37,11 +40,11 @@ var _StellarWallet = class _StellarWallet extends _chunkSJSXTTSYcjs.Wallet {
37
40
  sendTransaction(params) {
38
41
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
39
42
  var _a;
40
- _chunkTC6ITDWVcjs.walletsLogger.info("stellarWallet.sendTransaction.start");
43
+ _chunk2M32LBCAcjs.walletsLogger.info("stellarWallet.sendTransaction.start");
41
44
  yield this.preAuthIfNeeded();
42
45
  const createdTransaction = yield this.createTransaction(params);
43
46
  if ((_a = params.options) == null ? void 0 : _a.experimental_prepareOnly) {
44
- _chunkTC6ITDWVcjs.walletsLogger.info("stellarWallet.sendTransaction.prepared", {
47
+ _chunk2M32LBCAcjs.walletsLogger.info("stellarWallet.sendTransaction.prepared", {
45
48
  transactionId: createdTransaction.id
46
49
  });
47
50
  return {
@@ -52,7 +55,7 @@ var _StellarWallet = class _StellarWallet extends _chunkSJSXTTSYcjs.Wallet {
52
55
  }
53
56
  const options = {};
54
57
  const result = yield this.approveTransactionAndWait(createdTransaction.id, options);
55
- _chunkTC6ITDWVcjs.walletsLogger.info("stellarWallet.sendTransaction.success", {
58
+ _chunk2M32LBCAcjs.walletsLogger.info("stellarWallet.sendTransaction.success", {
56
59
  transactionId: createdTransaction.id,
57
60
  hash: result.hash
58
61
  });
@@ -61,9 +64,15 @@ var _StellarWallet = class _StellarWallet extends _chunkSJSXTTSYcjs.Wallet {
61
64
  }
62
65
  createTransaction(params) {
63
66
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
64
- var _a;
65
67
  const { contractId, options } = params;
66
- const signer = (_a = options == null ? void 0 : options.experimental_signer) != null ? _a : this.signer.locator();
68
+ let signer;
69
+ if ((options == null ? void 0 : options.experimental_signer) == null) {
70
+ signer = this.signer.locator();
71
+ } else if (typeof options.experimental_signer === "string") {
72
+ signer = options.experimental_signer;
73
+ } else {
74
+ signer = `server:${_chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0, options.experimental_signer, this.chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}`;
75
+ }
67
76
  let transaction;
68
77
  if ("transaction" in params) {
69
78
  transaction = {
@@ -96,7 +105,7 @@ var _StellarWallet = class _StellarWallet extends _chunkSJSXTTSYcjs.Wallet {
96
105
  };
97
106
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
98
107
  _commonsdkbase.WithLoggerContext.call(void 0, {
99
- logger: _chunkTC6ITDWVcjs.walletsLogger,
108
+ logger: _chunk2M32LBCAcjs.walletsLogger,
100
109
  methodName: "stellarWallet.sendTransaction",
101
110
  buildContext(thisArg) {
102
111
  return { chain: thisArg.chain, address: thisArg.address };
@@ -0,0 +1,29 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkRUQYXEEGcjs = require('./chunk-RUQYXEEG.cjs');
4
+
5
+
6
+ var _chunkDDNG224Jcjs = require('./chunk-DDNG224J.cjs');
7
+
8
+
9
+ var _chunkHWTWDQYTcjs = require('./chunk-HWTWDQYT.cjs');
10
+
11
+
12
+ var _chunkOPKFMXPIcjs = require('./chunk-OPKFMXPI.cjs');
13
+
14
+ // src/signers/server/assemble-server-signer.ts
15
+ function assembleServerSigner(chain, config) {
16
+ const chainType = _chunkRUQYXEEGcjs.getChainType.call(void 0, chain);
17
+ switch (chainType) {
18
+ case "evm":
19
+ return new (0, _chunkDDNG224Jcjs.EVMServerSigner)(config);
20
+ case "solana":
21
+ return new (0, _chunkHWTWDQYTcjs.SolanaServerSigner)(config);
22
+ case "stellar":
23
+ return new (0, _chunkOPKFMXPIcjs.StellarServerSigner)(config);
24
+ }
25
+ }
26
+
27
+
28
+
29
+ exports.assembleServerSigner = assembleServerSigner;
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkY35UJFTBcjs = require('./chunk-Y35UJFTB.cjs');
3
+ var _chunkNO2KMGS2cjs = require('./chunk-NO2KMGS2.cjs');
4
4
 
5
5
 
6
- var _chunkNFV5K2D2cjs = require('./chunk-NFV5K2D2.cjs');
6
+ var _chunkP4XJHOLWcjs = require('./chunk-P4XJHOLW.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkTC6ITDWVcjs = require('./chunk-TC6ITDWV.cjs');
10
+ var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
11
11
 
12
12
 
13
13
  var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
@@ -16,10 +16,10 @@ var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
16
16
  var _commonsdkbase = require('@crossmint/common-sdk-base');
17
17
  var CrossmintWallets = class _CrossmintWallets {
18
18
  constructor(crossmint) {
19
- _chunkTC6ITDWVcjs.initWalletsLogger.call(void 0, crossmint.apiKey);
20
- const apiClient = new (0, _chunkNFV5K2D2cjs.ApiClient)(crossmint);
21
- this.walletFactory = new (0, _chunkY35UJFTBcjs.WalletFactory)(apiClient);
22
- _chunkTC6ITDWVcjs.walletsLogger.info("wallets.sdk.initialized");
19
+ _chunk2M32LBCAcjs.initWalletsLogger.call(void 0, crossmint.apiKey);
20
+ const apiClient = new (0, _chunkP4XJHOLWcjs.ApiClient)(crossmint);
21
+ this.walletFactory = new (0, _chunkNO2KMGS2cjs.WalletFactory)(apiClient);
22
+ _chunk2M32LBCAcjs.walletsLogger.info("wallets.sdk.initialized");
23
23
  }
24
24
  /**
25
25
  * Initialize the Wallets SDK
@@ -1,5 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
+ var _chunkHTSQPZHWcjs = require('./chunk-HTSQPZHW.cjs');
4
+
5
+
3
6
  var _chunkNIBKCMQ2cjs = require('./chunk-NIBKCMQ2.cjs');
4
7
 
5
8
 
@@ -12,13 +15,10 @@ var _chunk7USEVMTWcjs = require('./chunk-7USEVMTW.cjs');
12
15
  var _chunkF7L2TZ3Icjs = require('./chunk-F7L2TZ3I.cjs');
13
16
 
14
17
 
15
- var _chunkHTSQPZHWcjs = require('./chunk-HTSQPZHW.cjs');
16
-
17
-
18
18
  var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
19
19
 
20
20
 
21
- var _chunkTC6ITDWVcjs = require('./chunk-TC6ITDWV.cjs');
21
+ var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
22
22
 
23
23
  // src/chains/chains.ts
24
24
  var _commonsdkbase = require('@crossmint/common-sdk-base');
@@ -197,7 +197,7 @@ function validateChainForEnvironment(chain, environment) {
197
197
  if (!isProductionEnv && isMainnetChain(evmChain)) {
198
198
  const testnetEquivalent = mainnetToTestnet(evmChain);
199
199
  if (testnetEquivalent != null) {
200
- _chunkTC6ITDWVcjs.walletsLogger.debug("validateChainForEnvironment.autoConverted", {
200
+ _chunk2M32LBCAcjs.walletsLogger.debug("validateChainForEnvironment.autoConverted", {
201
201
  chain,
202
202
  convertedTo: testnetEquivalent,
203
203
  environment,
@@ -205,7 +205,7 @@ function validateChainForEnvironment(chain, environment) {
205
205
  });
206
206
  return testnetEquivalent;
207
207
  }
208
- _chunkTC6ITDWVcjs.walletsLogger.debug("validateChainForEnvironment.mismatch", {
208
+ _chunk2M32LBCAcjs.walletsLogger.debug("validateChainForEnvironment.mismatch", {
209
209
  chain,
210
210
  environment,
211
211
  message: `Chain "${chain}" is a mainnet chain and should not be used in ${environment} environment. No testnet equivalent is available. Please use a testnet chain instead.`
@@ -0,0 +1,57 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/utils/server-key-derivation.ts
2
+ var _hkdf = require('@noble/hashes/hkdf');
3
+ var _sha2 = require('@noble/hashes/sha2');
4
+ var _utils = require('@noble/hashes/utils');
5
+ var HKDF_SALT = "crossmint";
6
+ var SECRET_PREFIX = "xmsk1_";
7
+ function deriveKeyBytes(secret, projectId, environment, chain) {
8
+ const rawSecret = stripAndValidateSecret(secret);
9
+ const ikm = hexToBytes(rawSecret);
10
+ const algorithm = getAlgorithmForChain(chain);
11
+ const info = `${projectId}:${environment}:${chain}-${algorithm}`;
12
+ return _hkdf.hkdf.call(void 0, _sha2.sha256, ikm, HKDF_SALT, info, 32);
13
+ }
14
+ function deriveAlias(secret, projectId, environment, chain) {
15
+ const rawSecret = stripAndValidateSecret(secret);
16
+ const ikm = hexToBytes(rawSecret);
17
+ const info = `${projectId}:${environment}:${chain}-alias`;
18
+ const derived = _hkdf.hkdf.call(void 0, _sha2.sha256, ikm, HKDF_SALT, info, 17);
19
+ return `s-${_utils.bytesToHex.call(void 0, derived).slice(0, 34)}`;
20
+ }
21
+ var EXPECTED_SECRET_LENGTH = 64;
22
+ function stripAndValidateSecret(secret) {
23
+ const rawSecret = secret.startsWith(SECRET_PREFIX) ? secret.slice(SECRET_PREFIX.length) : secret;
24
+ if (rawSecret.length !== EXPECTED_SECRET_LENGTH) {
25
+ throw new Error(
26
+ `Invalid server signer secret: expected ${EXPECTED_SECRET_LENGTH}-char hex string (256-bit), got ${rawSecret.length} chars`
27
+ );
28
+ }
29
+ return rawSecret;
30
+ }
31
+ function getAlgorithmForChain(chain) {
32
+ if (chain === "solana") {
33
+ return "ed25519";
34
+ }
35
+ if (chain === "stellar") {
36
+ return "ed25519";
37
+ }
38
+ return "secp256k1";
39
+ }
40
+ function hexToBytes(hex) {
41
+ if (hex.length % 2 !== 0) {
42
+ throw new Error(`Invalid hex string: odd length (${hex.length})`);
43
+ }
44
+ if (!/^[0-9a-fA-F]+$/.test(hex)) {
45
+ throw new Error("Invalid hex string: contains non-hex characters");
46
+ }
47
+ const bytes = new Uint8Array(hex.length / 2);
48
+ for (let i = 0; i < hex.length; i += 2) {
49
+ bytes[i / 2] = parseInt(hex.slice(i, i + 2), 16);
50
+ }
51
+ return bytes;
52
+ }
53
+
54
+
55
+
56
+
57
+ exports.deriveKeyBytes = deriveKeyBytes; exports.deriveAlias = deriveAlias;
@@ -4,20 +4,23 @@
4
4
  var _chunkRBHGZDDXcjs = require('./chunk-RBHGZDDX.cjs');
5
5
 
6
6
 
7
- var _chunkSJSXTTSYcjs = require('./chunk-SJSXTTSY.cjs');
7
+ var _chunk4ZWUI6LEcjs = require('./chunk-4ZWUI6LE.cjs');
8
8
 
9
9
 
10
- var _chunkLONKAMXJcjs = require('./chunk-LONKAMXJ.cjs');
10
+ var _chunk7W4HGN3Hcjs = require('./chunk-7W4HGN3H.cjs');
11
11
 
12
12
 
13
- var _chunkH3XAAMD3cjs = require('./chunk-H3XAAMD3.cjs');
13
+ var _chunkKHY5FXO4cjs = require('./chunk-KHY5FXO4.cjs');
14
+
15
+
16
+ var _chunkMIKWTXUAcjs = require('./chunk-MIKWTXUA.cjs');
14
17
 
15
18
 
16
19
 
17
20
  var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
18
21
 
19
22
 
20
- var _chunkTC6ITDWVcjs = require('./chunk-TC6ITDWV.cjs');
23
+ var _chunk2M32LBCAcjs = require('./chunk-2M32LBCA.cjs');
21
24
 
22
25
 
23
26
 
@@ -36,45 +39,45 @@ var WalletFactory = class {
36
39
  getOrCreateWallet(args) {
37
40
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
38
41
  if (this.apiClient.isServerSide) {
39
- _chunkTC6ITDWVcjs.walletsLogger.error("walletFactory.getOrCreateWallet.error", {
42
+ _chunk2M32LBCAcjs.walletsLogger.error("walletFactory.getOrCreateWallet.error", {
40
43
  error: "getOrCreateWallet can only be called from client-side code"
41
44
  });
42
45
  throw new (0, _chunkXC2V34TScjs.WalletCreationError)(
43
46
  "getOrCreateWallet can only be called from client-side code.\n- Make sure you're running this in the browser (or another client environment), not on your server.\n- Use your Crossmint Client API Key (not a server key)."
44
47
  );
45
48
  }
46
- args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkH3XAAMD3cjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
49
+ args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkMIKWTXUAcjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
47
50
  const locator = this.getWalletLocator(args);
48
- _chunkTC6ITDWVcjs.walletsLogger.info("walletFactory.getOrCreateWallet.start");
51
+ _chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getOrCreateWallet.start");
49
52
  const existingWallet = yield this.apiClient.getWallet(locator);
50
53
  if (existingWallet != null && !("error" in existingWallet)) {
51
- _chunkTC6ITDWVcjs.walletsLogger.info("walletFactory.getOrCreateWallet.existing", {
54
+ _chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getOrCreateWallet.existing", {
52
55
  address: existingWallet.address
53
56
  });
54
57
  return this.createWalletInstance(existingWallet, args);
55
58
  }
56
- _chunkTC6ITDWVcjs.walletsLogger.info("walletFactory.getOrCreateWallet.creating");
59
+ _chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getOrCreateWallet.creating");
57
60
  return this.createWalletInternal(args);
58
61
  });
59
62
  }
60
63
  getWallet(walletLocator, args) {
61
64
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
62
65
  if (!this.apiClient.isServerSide) {
63
- _chunkTC6ITDWVcjs.walletsLogger.error("walletFactory.getWallet.error", {
66
+ _chunk2M32LBCAcjs.walletsLogger.error("walletFactory.getWallet.error", {
64
67
  error: "getWallet is not supported on client side"
65
68
  });
66
69
  throw new (0, _chunkXC2V34TScjs.WalletCreationError)("getWallet is not supported on client side, use getOrCreateWallet instead");
67
70
  }
68
- args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkH3XAAMD3cjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
69
- _chunkTC6ITDWVcjs.walletsLogger.info("walletFactory.getWallet.start");
71
+ args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkMIKWTXUAcjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
72
+ _chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getWallet.start");
70
73
  const existingWallet = yield this.apiClient.getWallet(walletLocator);
71
74
  if ("error" in existingWallet) {
72
- _chunkTC6ITDWVcjs.walletsLogger.warn("walletFactory.getWallet.notFound", {
75
+ _chunk2M32LBCAcjs.walletsLogger.warn("walletFactory.getWallet.notFound", {
73
76
  error: existingWallet.error
74
77
  });
75
78
  throw new (0, _chunkXC2V34TScjs.WalletNotAvailableError)(JSON.stringify(existingWallet));
76
79
  }
77
- _chunkTC6ITDWVcjs.walletsLogger.info("walletFactory.getWallet.success", {
80
+ _chunk2M32LBCAcjs.walletsLogger.info("walletFactory.getWallet.success", {
78
81
  address: existingWallet.address
79
82
  });
80
83
  return this.createWalletInstance(existingWallet, args);
@@ -82,33 +85,49 @@ var WalletFactory = class {
82
85
  }
83
86
  createWallet(args) {
84
87
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
85
- args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkH3XAAMD3cjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
88
+ args = _chunkUO2J2ZB2cjs.__spreadProps.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {}, args), { chain: _chunkMIKWTXUAcjs.validateChainForEnvironment.call(void 0, args.chain, this.apiClient.environment) });
86
89
  return this.createWalletInternal(args);
87
90
  });
88
91
  }
89
92
  createWalletInternal(args) {
90
93
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
91
- var _a, _b, _c, _d, _e;
94
+ var _a, _b, _c, _d, _e, _f;
92
95
  yield (_c = (_b = (_a = args.options) == null ? void 0 : _a.experimental_callbacks) == null ? void 0 : _b.onWalletCreationStart) == null ? void 0 : _c.call(_b);
93
- _chunkTC6ITDWVcjs.walletsLogger.info("walletFactory.createWallet.start");
96
+ _chunk2M32LBCAcjs.walletsLogger.info("walletFactory.createWallet.start");
94
97
  this.mutateSignerFromCustomAuth(args, true);
95
- const adminSigner = args.signer.type === "passkey" ? yield this.createPasskeyAdminSigner(args.signer) : args.signer;
98
+ let adminSigner;
99
+ const delegatedSigners = (_d = args.delegatedSigners) == null ? void 0 : _d.map((ds) => ({
100
+ signer: typeof ds.signer === "object" && ds.signer.type === "server" ? `server:${_chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0, ds.signer, args.chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}` : ds.signer
101
+ }));
102
+ if (args.signer.type === "passkey") {
103
+ adminSigner = yield this.createPasskeyAdminSigner(args.signer);
104
+ } else if (args.signer.type === "server") {
105
+ const { derivedAddress } = _chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0,
106
+ args.signer,
107
+ args.chain,
108
+ this.apiClient.projectId,
109
+ this.apiClient.environment
110
+ );
111
+ adminSigner = { type: "server", address: derivedAddress };
112
+ } else {
113
+ adminSigner = args.signer;
114
+ }
96
115
  const walletResponse = yield this.apiClient.createWallet({
97
116
  type: "smart",
98
117
  chainType: this.getChainType(args.chain),
99
118
  config: _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {
100
119
  adminSigner
101
- }, (args == null ? void 0 : args.plugins) ? { plugins: args.plugins } : {}), args.delegatedSigners != null ? { delegatedSigners: args.delegatedSigners } : {}),
102
- owner: (_d = args.owner) != null ? _d : void 0,
103
- alias: (_e = args.alias) != null ? _e : void 0
120
+ }, (args == null ? void 0 : args.plugins) ? { plugins: args.plugins } : {}), delegatedSigners != null ? { delegatedSigners } : {}),
121
+ owner: (_e = args.owner) != null ? _e : void 0,
122
+ alias: (_f = args.alias) != null ? _f : void 0
104
123
  });
105
124
  if ("error" in walletResponse) {
106
- _chunkTC6ITDWVcjs.walletsLogger.error("walletFactory.createWallet.error", {
125
+ _chunk2M32LBCAcjs.walletsLogger.error("walletFactory.createWallet.error", {
107
126
  error: walletResponse.error
108
127
  });
109
128
  throw new (0, _chunkXC2V34TScjs.WalletCreationError)(JSON.stringify(walletResponse));
110
129
  }
111
- _chunkTC6ITDWVcjs.walletsLogger.info("walletFactory.createWallet.success", {
130
+ _chunk2M32LBCAcjs.walletsLogger.info("walletFactory.createWallet.success", {
112
131
  address: walletResponse.address
113
132
  });
114
133
  return this.createWalletInstance(walletResponse, args);
@@ -116,21 +135,21 @@ var WalletFactory = class {
116
135
  }
117
136
  createWalletInstance(walletResponse, args) {
118
137
  this.validateExistingWalletConfig(walletResponse, args);
119
- const signerConfig = this.toInternalSignerConfig(walletResponse, args.signer, args.options);
120
- return new (0, _chunkSJSXTTSYcjs.Wallet)(
138
+ const signerConfig = this.toInternalSignerConfig(walletResponse, args.signer, args.chain, args.options);
139
+ return new (0, _chunk4ZWUI6LEcjs.Wallet)(
121
140
  {
122
141
  chain: args.chain,
123
142
  address: walletResponse.address,
124
143
  owner: walletResponse.owner,
125
- signer: _chunkLONKAMXJcjs.assembleSigner.call(void 0, args.chain, signerConfig),
144
+ signer: _chunk7W4HGN3Hcjs.assembleSigner.call(void 0, args.chain, signerConfig),
126
145
  options: args.options,
127
146
  alias: args.alias
128
147
  },
129
148
  this.apiClient
130
149
  );
131
150
  }
132
- toInternalSignerConfig(walletResponse, signerArgs, options) {
133
- var _a, _b, _c, _d, _e, _f;
151
+ toInternalSignerConfig(walletResponse, signerArgs, chain, options) {
152
+ var _a, _b, _c, _d, _e, _f, _g;
134
153
  if (!(walletResponse.chainType === "evm" || walletResponse.chainType === "solana" || walletResponse.chainType === "stellar")) {
135
154
  throw new (0, _chunkXC2V34TScjs.WalletCreationError)(`Wallet type ${walletResponse.chainType} is not supported`);
136
155
  }
@@ -165,8 +184,31 @@ var WalletFactory = class {
165
184
  onCreatePasskey: signerArgs.onCreatePasskey,
166
185
  onSignWithPasskey: signerArgs.onSignWithPasskey
167
186
  };
187
+ case "server": {
188
+ const serverAdminSigner = (_e = walletResponse.config) == null ? void 0 : _e.adminSigner;
189
+ if ((serverAdminSigner == null ? void 0 : serverAdminSigner.type) !== "server") {
190
+ throw new (0, _chunkXC2V34TScjs.WalletCreationError)("Server signer expects a server admin signer on the wallet");
191
+ }
192
+ const { derivedKeyBytes, derivedAddress } = _chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0,
193
+ signerArgs,
194
+ chain,
195
+ this.apiClient.projectId,
196
+ this.apiClient.environment
197
+ );
198
+ if (serverAdminSigner.address !== derivedAddress) {
199
+ throw new (0, _chunkXC2V34TScjs.WalletCreationError)(
200
+ `Server signer address ${derivedAddress} does not match the wallet's admin signer address`
201
+ );
202
+ }
203
+ return {
204
+ type: "server",
205
+ derivedKeyBytes,
206
+ locator: serverAdminSigner.locator,
207
+ address: derivedAddress
208
+ };
209
+ }
168
210
  case "email": {
169
- if (((_e = walletResponse.config) == null ? void 0 : _e.adminSigner.type) !== "email") {
211
+ if (((_f = walletResponse.config) == null ? void 0 : _f.adminSigner.type) !== "email") {
170
212
  throw new (0, _chunkXC2V34TScjs.WalletCreationError)("Email signer does not match the wallet's signer type");
171
213
  }
172
214
  const { locator, email, address } = walletResponse.config.adminSigner;
@@ -181,7 +223,7 @@ var WalletFactory = class {
181
223
  };
182
224
  }
183
225
  case "phone": {
184
- if (((_f = walletResponse.config) == null ? void 0 : _f.adminSigner.type) !== "phone") {
226
+ if (((_g = walletResponse.config) == null ? void 0 : _g.adminSigner.type) !== "phone") {
185
227
  throw new (0, _chunkXC2V34TScjs.WalletCreationError)("Phone signer does not match the wallet's signer type");
186
228
  }
187
229
  const { locator, phone, address } = walletResponse.config.adminSigner;
@@ -263,10 +305,10 @@ var WalletFactory = class {
263
305
  _chunkRBHGZDDXcjs.compareSignerConfigs.call(void 0, adminSignerArgs, existingWalletSigner);
264
306
  }
265
307
  if (args.delegatedSigners != null) {
266
- this.validateDelegatedSigners(existingWallet, args.delegatedSigners);
308
+ this.validateDelegatedSigners(existingWallet, args.delegatedSigners, args.chain);
267
309
  }
268
310
  }
269
- validateDelegatedSigners(existingWallet, inputDelegatedSigners) {
311
+ validateDelegatedSigners(existingWallet, inputDelegatedSigners, chain) {
270
312
  var _a;
271
313
  const existingDelegatedSigners = (_a = existingWallet == null ? void 0 : existingWallet.config) == null ? void 0 : _a.delegatedSigners;
272
314
  if (inputDelegatedSigners.length === 0) {
@@ -278,13 +320,14 @@ var WalletFactory = class {
278
320
  );
279
321
  }
280
322
  for (const argSigner of inputDelegatedSigners) {
323
+ const resolvedSigner = typeof argSigner.signer === "object" && argSigner.signer.type === "server" ? `server:${_chunkKHY5FXO4cjs.deriveServerSignerDetails.call(void 0, argSigner.signer, chain, this.apiClient.projectId, this.apiClient.environment).derivedAddress}` : argSigner.signer;
281
324
  const matchingExistingSigner = existingDelegatedSigners.find(
282
- (existingSigner) => existingSigner.locator === argSigner.signer
325
+ (existingSigner) => existingSigner.locator === resolvedSigner
283
326
  );
284
327
  if (matchingExistingSigner == null) {
285
328
  const walletSigners = existingDelegatedSigners.map((s) => s.locator).join(", ");
286
329
  throw new (0, _chunkXC2V34TScjs.WalletCreationError)(
287
- `Delegated signer '${argSigner.signer}' does not exist in wallet "${existingWallet.address}". Available delegated signers: ${walletSigners}. ${DELEGATED_SIGNER_MISMATCH_ERROR}`
330
+ `Delegated signer '${resolvedSigner}' does not exist in wallet "${existingWallet.address}". Available delegated signers: ${walletSigners}. ${DELEGATED_SIGNER_MISMATCH_ERROR}`
288
331
  );
289
332
  }
290
333
  }
@@ -301,7 +344,7 @@ var WalletFactory = class {
301
344
  };
302
345
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
303
346
  _commonsdkbase.WithLoggerContext.call(void 0, {
304
- logger: _chunkTC6ITDWVcjs.walletsLogger,
347
+ logger: _chunk2M32LBCAcjs.walletsLogger,
305
348
  methodName: "walletFactory.getOrCreateWallet",
306
349
  buildContext(_thisArg, args) {
307
350
  const walletArgs = args[0];
@@ -311,7 +354,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
311
354
  ], WalletFactory.prototype, "getOrCreateWallet", 1);
312
355
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
313
356
  _commonsdkbase.WithLoggerContext.call(void 0, {
314
- logger: _chunkTC6ITDWVcjs.walletsLogger,
357
+ logger: _chunk2M32LBCAcjs.walletsLogger,
315
358
  methodName: "walletFactory.getWallet",
316
359
  buildContext(_thisArg, args) {
317
360
  const walletLocator = args[0];
@@ -322,7 +365,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
322
365
  ], WalletFactory.prototype, "getWallet", 1);
323
366
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
324
367
  _commonsdkbase.WithLoggerContext.call(void 0, {
325
- logger: _chunkTC6ITDWVcjs.walletsLogger,
368
+ logger: _chunk2M32LBCAcjs.walletsLogger,
326
369
  methodName: "walletFactory.createWallet",
327
370
  buildContext(_thisArg, args) {
328
371
  const walletArgs = args[0];
@@ -0,0 +1,39 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
4
+
5
+ // src/signers/server/stellar-server-signer.ts
6
+ var _stellarsdk = require('@stellar/stellar-sdk');
7
+ var StellarServerSigner = class {
8
+ constructor(config) {
9
+ this.type = "server";
10
+ this.keypair = _stellarsdk.Keypair.fromRawEd25519Seed(Buffer.from(config.derivedKeyBytes));
11
+ this._address = this.keypair.publicKey();
12
+ this._locator = config.locator;
13
+ }
14
+ address() {
15
+ return this._address;
16
+ }
17
+ locator() {
18
+ return this._locator;
19
+ }
20
+ signMessage(message) {
21
+ return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
22
+ if (!/^[A-Za-z0-9+/]*={0,2}$/.test(message)) {
23
+ throw new Error("StellarServerSigner.signMessage: expected a base64-encoded string");
24
+ }
25
+ const messageBytes = Buffer.from(message, "base64");
26
+ const signatureBytes = this.keypair.sign(messageBytes);
27
+ return { signature: signatureBytes.toString("base64") };
28
+ });
29
+ }
30
+ signTransaction(transaction) {
31
+ return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
32
+ return yield this.signMessage(transaction);
33
+ });
34
+ }
35
+ };
36
+
37
+
38
+
39
+ exports.StellarServerSigner = StellarServerSigner;