@crossmint/wallets-sdk 0.18.14 → 0.19.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 (99) hide show
  1. package/dist/api/__tests__/constants.cjs +31 -0
  2. package/dist/api/__tests__/constants.d.cts +96 -0
  3. package/dist/api/__tests__/constants.d.ts +96 -0
  4. package/dist/api/__tests__/constants.js +31 -0
  5. package/dist/api/__tests__/test-utils.cjs +372 -0
  6. package/dist/api/__tests__/test-utils.d.cts +99 -0
  7. package/dist/api/__tests__/test-utils.d.ts +99 -0
  8. package/dist/api/__tests__/test-utils.js +372 -0
  9. package/dist/api/client.cjs +4 -4
  10. package/dist/api/client.js +3 -3
  11. package/dist/api/gen/types.gen.d.cts +8 -0
  12. package/dist/api/gen/types.gen.d.ts +8 -0
  13. package/dist/api/index.cjs +4 -4
  14. package/dist/api/index.js +3 -3
  15. package/dist/chains/chains.cjs +8 -4
  16. package/dist/chains/chains.d.cts +3 -1
  17. package/dist/chains/chains.d.ts +3 -1
  18. package/dist/chains/chains.js +7 -3
  19. package/dist/{chunk-AAESOWQL.js → chunk-57HPJVTI.js} +8 -3
  20. package/dist/{chunk-ADCODBBF.cjs → chunk-5CBGJLA4.cjs} +1 -1
  21. package/dist/{chunk-CEFMURL3.js → chunk-6EP3PLGP.js} +2 -2
  22. package/dist/{chunk-ZJZO6LQ3.js → chunk-7EZZGCYI.js} +10 -1
  23. package/dist/{chunk-THLRRDVV.js → chunk-7NKX266V.js} +39 -5
  24. package/dist/{chunk-5CTWIW7X.js → chunk-BBYNVHFR.js} +3 -3
  25. package/dist/{chunk-PUXRHELK.cjs → chunk-C5F6IECX.cjs} +12 -12
  26. package/dist/{chunk-GROJZ247.cjs → chunk-DIM3X4IX.cjs} +13 -5
  27. package/dist/{chunk-OPKBL6A2.cjs → chunk-EIZVQAZO.cjs} +54 -20
  28. package/dist/{chunk-VJ2ZKU3R.js → chunk-ETCH6L2Y.js} +5 -5
  29. package/dist/{chunk-SWPJZ5JX.cjs → chunk-FQV77LH4.cjs} +3 -3
  30. package/dist/chunk-G6QJHFSY.cjs +74 -0
  31. package/dist/{chunk-FV4PV7HU.cjs → chunk-JLW3Q65G.cjs} +6 -6
  32. package/dist/{chunk-FUMQWMQR.cjs → chunk-JZQYCISB.cjs} +9 -9
  33. package/dist/{chunk-SEGDDAL2.js → chunk-KE6LX37B.js} +1 -1
  34. package/dist/{chunk-3PI54IUS.js → chunk-L5IMC3NM.js} +2 -2
  35. package/dist/{chunk-KIS2P5DM.js → chunk-N65K6TUY.js} +10 -1
  36. package/dist/{chunk-PST7R25G.cjs → chunk-NXST74TX.cjs} +80 -43
  37. package/dist/chunk-PJOJIRTY.js +74 -0
  38. package/dist/{chunk-SGKMU5NX.cjs → chunk-REP547HH.cjs} +36 -13
  39. package/dist/{chunk-B24CPC6Y.js → chunk-S2AKC2CK.js} +1 -1
  40. package/dist/{chunk-PCZDMOJH.js → chunk-SUJQZWLJ.js} +2 -2
  41. package/dist/{chunk-BEJB6ZUK.cjs → chunk-TCNXKNBQ.cjs} +7 -7
  42. package/dist/{chunk-5TYDRD6D.cjs → chunk-VNPL3HFN.cjs} +12 -3
  43. package/dist/{chunk-G7TC2YMQ.cjs → chunk-VWENCGQO.cjs} +12 -3
  44. package/dist/{chunk-LKAE7D7W.js → chunk-W3OYA42M.js} +32 -9
  45. package/dist/{chunk-ZQACPBUW.js → chunk-XEZBA7I2.js} +58 -21
  46. package/dist/{chunk-5WJE5X7V.cjs → chunk-XQSMZXBR.cjs} +28 -23
  47. package/dist/{chunk-NJTKHWXR.js → chunk-XSMIDXUA.js} +15 -7
  48. package/dist/{chunk-UWKMOJ4D.js → chunk-YF4DYTBM.js} +10 -1
  49. package/dist/{chunk-2RVPHSR5.cjs → chunk-YFOUZXSM.cjs} +12 -3
  50. package/dist/{chunk-SB5FTFPM.cjs → chunk-YXFIZNFL.cjs} +9 -9
  51. package/dist/index.cjs +18 -18
  52. package/dist/index.js +17 -17
  53. package/dist/logger/index.cjs +3 -3
  54. package/dist/logger/index.js +2 -2
  55. package/dist/logger/init.cjs +3 -3
  56. package/dist/logger/init.js +2 -2
  57. package/dist/sdk.cjs +17 -12
  58. package/dist/sdk.js +16 -11
  59. package/dist/signers/index.cjs +8 -8
  60. package/dist/signers/index.js +7 -7
  61. package/dist/signers/non-custodial/index.cjs +7 -7
  62. package/dist/signers/non-custodial/index.js +8 -8
  63. package/dist/signers/non-custodial/ncs-evm-signer.cjs +5 -5
  64. package/dist/signers/non-custodial/ncs-evm-signer.js +4 -4
  65. package/dist/signers/non-custodial/ncs-signer.cjs +4 -4
  66. package/dist/signers/non-custodial/ncs-signer.js +3 -3
  67. package/dist/signers/non-custodial/ncs-solana-signer.cjs +5 -5
  68. package/dist/signers/non-custodial/ncs-solana-signer.js +4 -4
  69. package/dist/signers/non-custodial/ncs-stellar-signer.cjs +5 -5
  70. package/dist/signers/non-custodial/ncs-stellar-signer.js +4 -4
  71. package/dist/utils/constants.cjs +2 -2
  72. package/dist/utils/constants.js +1 -1
  73. package/dist/wallets/__tests__/test-helpers.cjs +10 -8
  74. package/dist/wallets/__tests__/test-helpers.d.cts +2 -1
  75. package/dist/wallets/__tests__/test-helpers.d.ts +2 -1
  76. package/dist/wallets/__tests__/test-helpers.js +9 -7
  77. package/dist/wallets/evm.cjs +12 -12
  78. package/dist/wallets/evm.d.cts +20 -0
  79. package/dist/wallets/evm.d.ts +20 -0
  80. package/dist/wallets/evm.js +11 -11
  81. package/dist/wallets/solana.cjs +9 -9
  82. package/dist/wallets/solana.d.cts +5 -0
  83. package/dist/wallets/solana.d.ts +5 -0
  84. package/dist/wallets/solana.js +8 -8
  85. package/dist/wallets/stellar.cjs +9 -9
  86. package/dist/wallets/stellar.d.cts +5 -0
  87. package/dist/wallets/stellar.d.ts +5 -0
  88. package/dist/wallets/stellar.js +8 -8
  89. package/dist/wallets/types.d.cts +5 -1
  90. package/dist/wallets/types.d.ts +5 -1
  91. package/dist/wallets/wallet-factory.cjs +15 -10
  92. package/dist/wallets/wallet-factory.d.cts +2 -0
  93. package/dist/wallets/wallet-factory.d.ts +2 -0
  94. package/dist/wallets/wallet-factory.js +14 -9
  95. package/dist/wallets/wallet.cjs +8 -8
  96. package/dist/wallets/wallet.d.cts +6 -2
  97. package/dist/wallets/wallet.d.ts +6 -2
  98. package/dist/wallets/wallet.js +7 -7
  99. package/package.json +4 -4
@@ -0,0 +1,74 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/api/__tests__/constants.ts
2
+ var HTTP_ERROR_STATUSES = [
3
+ { status: 400, message: "Bad Request" },
4
+ { status: 401, message: "Unauthorized" },
5
+ { status: 403, message: "Forbidden" },
6
+ { status: 404, message: "Not Found" },
7
+ { status: 429, message: "Rate limit exceeded" },
8
+ { status: 500, message: "Internal server error" },
9
+ { status: 502, message: "Bad Gateway" },
10
+ { status: 503, message: "Service Unavailable" }
11
+ ];
12
+ var WALLET_LOCATORS = {
13
+ evmSmart: "me:evm:smart",
14
+ evmMpc: "me:evm:mpc",
15
+ solanaSmart: "me:solana:smart",
16
+ solanaAddress: "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
17
+ evmAddress: "0x1234567890123456789012345678901234567890",
18
+ evmAddressWithSpecialChars: "0xABCDEFabcdef0123456789ABCDEFabcdef012345"
19
+ };
20
+ var TOKEN_LOCATORS = {
21
+ eth: "base-sepolia:eth",
22
+ usdc: "base-sepolia:usdc",
23
+ sol: "solana:sol",
24
+ customContract: "base-sepolia:0x1234567890123456789012345678901234567890",
25
+ tokenWithSpecialChars: "base-sepolia:0xABCDEFabcdef0123456789ABCDEFabcdef012345"
26
+ };
27
+ var TIMEOUT_SHORT = 3e4;
28
+ var TIMEOUT_MEDIUM = 6e4;
29
+ var TIMEOUT_LONG = 12e4;
30
+ var DELAY_SHORT = 200;
31
+ var DELAY_MEDIUM = 500;
32
+ var DELAY_LONG = 1e3;
33
+ var DELAY_RATE_LIMIT_WINDOW = 2e3;
34
+ var TEST_ADDRESSES = {
35
+ EVM_ADMIN_SIGNER: "0xe5E91D9b21C3563011cc332B050150fb9211bBEB",
36
+ SOLANA_ADMIN_SIGNER: "CsHuaddA9J8j9vSTdL9wpvBsyjYe4F7iQQLuPg3EUqsU",
37
+ EVM_RECIPIENT: "0xDF8b5F9c19E187f1Ea00730a1e46180152244315",
38
+ EVM_NON_EXISTENT: "0x0000000000000000000000000000000000000000",
39
+ EVM_TEST: "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
40
+ };
41
+ var TEST_VALUES = {
42
+ FUNDING_AMOUNT_SMALL: 1,
43
+ FUNDING_AMOUNT_LARGE: 10,
44
+ SEND_AMOUNT_SMALL: "0.0001",
45
+ SEND_AMOUNT_VERY_SMALL: "0.000000000000000001",
46
+ SEND_AMOUNT_ZERO: "0",
47
+ SEND_AMOUNT_INVALID: "999999999999999999.0",
48
+ SEND_AMOUNT_EXTREME: "999999999999999999999999999999.999999999999999999",
49
+ LONG_STRING_LENGTH: 1e4,
50
+ CONCURRENT_REQUESTS: 3,
51
+ RAPID_SEQUENTIAL_COUNT: 3,
52
+ RATE_LIMIT_BATCH_SIZE: 5,
53
+ RATE_LIMIT_BATCHES: 3,
54
+ RATE_LIMIT_RAPID_COUNT: 20,
55
+ RATE_LIMIT_STRESS_COUNT: 50,
56
+ APPROVE_TRANSACTION_MAX_RETRIES: 10
57
+ };
58
+ var MOCK_API_KEY = "ck_development_A61UZQnvjSQcM5qVBaBactgqebxafWAVsNdD2xLkgBxoYuH5q2guM8r9DUmZQzE1WYyoByGVYpEG2o9gVSzAZFsrLbfKGERUJ6D5CW6S9AsJGAc3ctgrsD4n2ioekzGj7KPbLwT3SysDjMamYXLxEroUbQSdwf6aLF4zeEpECq2crkTUQeLFzxzmjWNxFDHFYefDrfrFPCURvBXJLf5pCxCQ";
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+ exports.HTTP_ERROR_STATUSES = HTTP_ERROR_STATUSES; exports.WALLET_LOCATORS = WALLET_LOCATORS; exports.TOKEN_LOCATORS = TOKEN_LOCATORS; exports.TIMEOUT_SHORT = TIMEOUT_SHORT; exports.TIMEOUT_MEDIUM = TIMEOUT_MEDIUM; exports.TIMEOUT_LONG = TIMEOUT_LONG; exports.DELAY_SHORT = DELAY_SHORT; exports.DELAY_MEDIUM = DELAY_MEDIUM; exports.DELAY_LONG = DELAY_LONG; exports.DELAY_RATE_LIMIT_WINDOW = DELAY_RATE_LIMIT_WINDOW; exports.TEST_ADDRESSES = TEST_ADDRESSES; exports.TEST_VALUES = TEST_VALUES; exports.MOCK_API_KEY = MOCK_API_KEY;
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk5TYDRD6Dcjs = require('./chunk-5TYDRD6D.cjs');
3
+ var _chunkYFOUZXSMcjs = require('./chunk-YFOUZXSM.cjs');
4
4
 
5
5
 
6
- var _chunkG7TC2YMQcjs = require('./chunk-G7TC2YMQ.cjs');
6
+ var _chunkVNPL3HFNcjs = require('./chunk-VNPL3HFN.cjs');
7
7
 
8
8
 
9
- var _chunk2RVPHSR5cjs = require('./chunk-2RVPHSR5.cjs');
9
+ var _chunkVWENCGQOcjs = require('./chunk-VWENCGQO.cjs');
10
10
 
11
11
 
12
12
  var _chunkJSWTGW46cjs = require('./chunk-JSWTGW46.cjs');
@@ -32,12 +32,12 @@ function assembleSigner(chain, config) {
32
32
  case "email":
33
33
  case "phone":
34
34
  if (chain === "solana") {
35
- return new (0, _chunkG7TC2YMQcjs.SolanaNonCustodialSigner)(config);
35
+ return new (0, _chunkVWENCGQOcjs.SolanaNonCustodialSigner)(config);
36
36
  }
37
37
  if (chain === "stellar") {
38
- return new (0, _chunk2RVPHSR5cjs.StellarNonCustodialSigner)(config);
38
+ return new (0, _chunkYFOUZXSMcjs.StellarNonCustodialSigner)(config);
39
39
  }
40
- return new (0, _chunk5TYDRD6Dcjs.EVMNonCustodialSigner)(config);
40
+ return new (0, _chunkVNPL3HFNcjs.EVMNonCustodialSigner)(config);
41
41
  case "api-key":
42
42
  return chain === "solana" ? new (0, _chunkXOCC3MPKcjs.SolanaApiKeySigner)(config) : new (0, _chunkJSWTGW46cjs.EVMApiKeySigner)(config);
43
43
  case "external-wallet":
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkPST7R25Gcjs = require('./chunk-PST7R25G.cjs');
3
+ var _chunkNXST74TXcjs = require('./chunk-NXST74TX.cjs');
4
4
 
5
5
 
6
6
  var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
7
7
 
8
8
 
9
- var _chunkSWPJZ5JXcjs = require('./chunk-SWPJZ5JX.cjs');
9
+ var _chunkFQV77LH4cjs = require('./chunk-FQV77LH4.cjs');
10
10
 
11
11
 
12
12
 
@@ -14,7 +14,7 @@ var _chunkUO2J2ZB2cjs = require('./chunk-UO2J2ZB2.cjs');
14
14
 
15
15
  // src/wallets/stellar.ts
16
16
  var _commonsdkbase = require('@crossmint/common-sdk-base');
17
- var _StellarWallet = class _StellarWallet extends _chunkPST7R25Gcjs.Wallet {
17
+ var _StellarWallet = class _StellarWallet extends _chunkNXST74TXcjs.Wallet {
18
18
  constructor(wallet) {
19
19
  super(
20
20
  {
@@ -22,10 +22,10 @@ var _StellarWallet = class _StellarWallet extends _chunkPST7R25Gcjs.Wallet {
22
22
  address: wallet.address,
23
23
  owner: wallet.owner,
24
24
  signer: wallet.signer,
25
- options: _chunkPST7R25Gcjs.Wallet.getOptions(wallet),
25
+ options: _chunkNXST74TXcjs.Wallet.getOptions(wallet),
26
26
  alias: wallet.alias
27
27
  },
28
- _chunkPST7R25Gcjs.Wallet.getApiClient(wallet)
28
+ _chunkNXST74TXcjs.Wallet.getApiClient(wallet)
29
29
  );
30
30
  }
31
31
  static from(wallet) {
@@ -37,11 +37,11 @@ var _StellarWallet = class _StellarWallet extends _chunkPST7R25Gcjs.Wallet {
37
37
  sendTransaction(params) {
38
38
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
39
39
  var _a;
40
- _chunkSWPJZ5JXcjs.walletsLogger.info("stellarWallet.sendTransaction.start");
40
+ _chunkFQV77LH4cjs.walletsLogger.info("stellarWallet.sendTransaction.start");
41
41
  yield this.preAuthIfNeeded();
42
42
  const createdTransaction = yield this.createTransaction(params);
43
43
  if ((_a = params.options) == null ? void 0 : _a.experimental_prepareOnly) {
44
- _chunkSWPJZ5JXcjs.walletsLogger.info("stellarWallet.sendTransaction.prepared", {
44
+ _chunkFQV77LH4cjs.walletsLogger.info("stellarWallet.sendTransaction.prepared", {
45
45
  transactionId: createdTransaction.id
46
46
  });
47
47
  return {
@@ -52,7 +52,7 @@ var _StellarWallet = class _StellarWallet extends _chunkPST7R25Gcjs.Wallet {
52
52
  }
53
53
  const options = {};
54
54
  const result = yield this.approveTransactionAndWait(createdTransaction.id, options);
55
- _chunkSWPJZ5JXcjs.walletsLogger.info("stellarWallet.sendTransaction.success", {
55
+ _chunkFQV77LH4cjs.walletsLogger.info("stellarWallet.sendTransaction.success", {
56
56
  transactionId: createdTransaction.id,
57
57
  hash: result.hash
58
58
  });
@@ -96,7 +96,7 @@ var _StellarWallet = class _StellarWallet extends _chunkPST7R25Gcjs.Wallet {
96
96
  };
97
97
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
98
98
  _commonsdkbase.WithLoggerContext.call(void 0, {
99
- logger: _chunkSWPJZ5JXcjs.walletsLogger,
99
+ logger: _chunkFQV77LH4cjs.walletsLogger,
100
100
  methodName: "stellarWallet.sendTransaction",
101
101
  buildContext(thisArg) {
102
102
  return { chain: thisArg.chain, address: thisArg.address };
@@ -1,6 +1,6 @@
1
1
  // package.json
2
2
  var name = "@crossmint/wallets-sdk";
3
- var version = "0.18.14";
3
+ var version = "0.19.0";
4
4
 
5
5
  // src/utils/constants.ts
6
6
  var WALLETS_SERVICE = "WALLETS_SDK";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  Wallet
3
- } from "./chunk-ZQACPBUW.js";
3
+ } from "./chunk-XEZBA7I2.js";
4
4
  import {
5
5
  TransactionNotCreatedError
6
6
  } from "./chunk-SGINWAB6.js";
7
7
  import {
8
8
  walletsLogger
9
- } from "./chunk-B24CPC6Y.js";
9
+ } from "./chunk-S2AKC2CK.js";
10
10
  import {
11
11
  __async,
12
12
  __decorateClass
@@ -1,7 +1,10 @@
1
1
  import {
2
2
  DEFAULT_EVENT_OPTIONS,
3
3
  NonCustodialSigner
4
- } from "./chunk-LKAE7D7W.js";
4
+ } from "./chunk-W3OYA42M.js";
5
+ import {
6
+ walletsLogger
7
+ } from "./chunk-S2AKC2CK.js";
5
8
  import {
6
9
  __async
7
10
  } from "./chunk-ASE2FXWP.js";
@@ -21,6 +24,8 @@ var StellarNonCustodialSigner = class _StellarNonCustodialSigner extends NonCust
21
24
  var _a;
22
25
  yield this.handleAuthRequired();
23
26
  const jwt = this.getJwtOrThrow();
27
+ walletsLogger.info("sign: sending request", { keyType: "ed25519" });
28
+ const startTime = Date.now();
24
29
  const res = yield (_a = this.config.clientTEEConnection) == null ? void 0 : _a.sendAction({
25
30
  event: "request:sign",
26
31
  responseEvent: "response:sign",
@@ -37,6 +42,10 @@ var StellarNonCustodialSigner = class _StellarNonCustodialSigner extends NonCust
37
42
  },
38
43
  options: DEFAULT_EVENT_OPTIONS
39
44
  });
45
+ walletsLogger.info("sign: response received", {
46
+ status: res == null ? void 0 : res.status,
47
+ durationMs: Date.now() - startTime
48
+ });
40
49
  if ((res == null ? void 0 : res.status) === "error") {
41
50
  throw new Error(res.error);
42
51
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkSGKMU5NXcjs = require('./chunk-SGKMU5NX.cjs');
3
+ var _chunkREP547HHcjs = require('./chunk-REP547HH.cjs');
4
4
 
5
5
 
6
6
 
@@ -18,10 +18,10 @@ var _chunkSGKMU5NXcjs = require('./chunk-SGKMU5NX.cjs');
18
18
  var _chunkXC2V34TScjs = require('./chunk-XC2V34TS.cjs');
19
19
 
20
20
 
21
- var _chunkSWPJZ5JXcjs = require('./chunk-SWPJZ5JX.cjs');
21
+ var _chunkFQV77LH4cjs = require('./chunk-FQV77LH4.cjs');
22
22
 
23
23
 
24
- var _chunkADCODBBFcjs = require('./chunk-ADCODBBF.cjs');
24
+ var _chunk5CBGJLA4cjs = require('./chunk-5CBGJLA4.cjs');
25
25
 
26
26
 
27
27
 
@@ -70,7 +70,7 @@ var Wallet = class {
70
70
  }
71
71
  balances(tokens) {
72
72
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
73
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.balances.start");
73
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.balances.start");
74
74
  let nativeToken;
75
75
  switch (this.chain) {
76
76
  case "solana":
@@ -89,16 +89,19 @@ var Wallet = class {
89
89
  tokens: allTokens
90
90
  });
91
91
  if ("error" in response) {
92
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.balances.error", { error: response });
92
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.balances.error", { error: response });
93
93
  throw new Error(`Failed to get balances for wallet: ${JSON.stringify(response.message)}`);
94
94
  }
95
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.balances.success");
95
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.balances.success");
96
96
  return this.transformBalanceResponse(response, nativeToken, tokens);
97
97
  });
98
98
  }
99
99
  stagingFund(amount, chain) {
100
100
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
101
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.stagingFund.start", { amount, chain: chain != null ? chain : this.chain });
101
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.stagingFund.start", {
102
+ amount,
103
+ chain: chain != null ? chain : this.chain
104
+ });
102
105
  const response = yield this.apiClient.fundWallet(this.address, {
103
106
  amount,
104
107
  token: "usdxm",
@@ -107,10 +110,12 @@ var Wallet = class {
107
110
  chain: chain != null ? chain : this.chain
108
111
  });
109
112
  if ("error" in response) {
110
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.stagingFund.error", { error: response });
113
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.stagingFund.error", {
114
+ error: response
115
+ });
111
116
  throw new Error(`Failed to fund wallet: ${JSON.stringify(response.message)}`);
112
117
  }
113
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.stagingFund.success");
118
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.stagingFund.success");
114
119
  return response;
115
120
  });
116
121
  }
@@ -128,7 +133,9 @@ var Wallet = class {
128
133
  } else if (this.chain === "stellar" && chainData != null && "contractId" in chainData) {
129
134
  chainSpecificField = { contractId: chainData.contractId };
130
135
  } else if (chainData != null && "contractAddress" in chainData) {
131
- chainSpecificField = { contractAddress: chainData.contractAddress };
136
+ chainSpecificField = {
137
+ contractAddress: chainData.contractAddress
138
+ };
132
139
  }
133
140
  return _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {
134
141
  symbol: (_b = tokenData.symbol) != null ? _b : "",
@@ -231,21 +238,29 @@ var Wallet = class {
231
238
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
232
239
  const recipient = toRecipientLocator(to);
233
240
  const tokenLocator = toTokenLocator(token, this.chain);
234
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.send.start", { recipient, token: tokenLocator, amount });
241
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.send.start", _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {
242
+ recipient,
243
+ token: tokenLocator,
244
+ amount
245
+ }, (options == null ? void 0 : options.transactionType) != null ? { transactionType: options.transactionType } : {}));
235
246
  yield this.preAuthIfNeeded();
236
- const sendParams = _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {
247
+ const sendParams = _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, _chunkUO2J2ZB2cjs.__spreadValues.call(void 0, {
237
248
  recipient,
238
249
  amount
239
- }, (options == null ? void 0 : options.experimental_signer) != null ? { signer: options.experimental_signer } : {});
250
+ }, (options == null ? void 0 : options.experimental_signer) != null ? { signer: options.experimental_signer } : {}), (options == null ? void 0 : options.transactionType) != null ? { transactionType: options.transactionType } : {});
240
251
  const transactionCreationResponse = yield _chunkUO2J2ZB2cjs.__privateGet.call(void 0, this, _apiClient).send(this.walletLocator, tokenLocator, sendParams);
241
252
  if ("message" in transactionCreationResponse) {
242
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.send.error", { error: transactionCreationResponse });
253
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.send.error", {
254
+ error: transactionCreationResponse
255
+ });
243
256
  throw new (0, _chunkXC2V34TScjs.TransactionNotCreatedError)(
244
257
  `Failed to send token: ${JSON.stringify(transactionCreationResponse.message)}`
245
258
  );
246
259
  }
247
260
  if (options == null ? void 0 : options.experimental_prepareOnly) {
248
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.send.prepared", { transactionId: transactionCreationResponse.id });
261
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.send.prepared", {
262
+ transactionId: transactionCreationResponse.id
263
+ });
249
264
  return {
250
265
  hash: void 0,
251
266
  explorerLink: void 0,
@@ -253,7 +268,7 @@ var Wallet = class {
253
268
  };
254
269
  }
255
270
  const result = yield this.approveTransactionAndWait(transactionCreationResponse.id);
256
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.send.success", {
271
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.send.success", {
257
272
  transactionId: transactionCreationResponse.id,
258
273
  hash: result.hash
259
274
  });
@@ -281,7 +296,7 @@ var Wallet = class {
281
296
  }
282
297
  approve(params) {
283
298
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
284
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.approve.start", {
299
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.approve.start", {
285
300
  transactionId: params.transactionId,
286
301
  signatureId: params.signatureId
287
302
  });
@@ -290,15 +305,19 @@ var Wallet = class {
290
305
  params.transactionId,
291
306
  params.options
292
307
  );
293
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.approve.success", { transactionId: params.transactionId });
308
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.approve.success", {
309
+ transactionId: params.transactionId
310
+ });
294
311
  return result;
295
312
  }
296
313
  if (params.signatureId != null) {
297
314
  const result = yield this.approveSignatureAndWait(params.signatureId, params.options);
298
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.approve.success", { signatureId: params.signatureId });
315
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.approve.success", {
316
+ signatureId: params.signatureId
317
+ });
299
318
  return result;
300
319
  }
301
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.approve.error", {
320
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.approve.error", {
302
321
  error: "Either transactionId or signatureId must be provided"
303
322
  });
304
323
  throw new Error("Either transactionId or signatureId must be provided");
@@ -307,33 +326,39 @@ var Wallet = class {
307
326
  addDelegatedSigner(params) {
308
327
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
309
328
  var _a, _b, _c;
310
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.addDelegatedSigner.start");
329
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.addDelegatedSigner.start");
311
330
  const response = yield _chunkUO2J2ZB2cjs.__privateGet.call(void 0, this, _apiClient).registerSigner(this.walletLocator, {
312
331
  signer: params.signer,
313
332
  chain: this.chain === "solana" || this.chain === "stellar" ? void 0 : this.chain
314
333
  });
315
334
  if ("error" in response) {
316
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.addDelegatedSigner.error", { error: response });
335
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.addDelegatedSigner.error", {
336
+ error: response
337
+ });
317
338
  throw new Error(`Failed to register signer: ${JSON.stringify(response.message)}`);
318
339
  }
319
340
  if (this.chain === "solana" || this.chain === "stellar") {
320
341
  if (!("transaction" in response) || response.transaction == null) {
321
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.addDelegatedSigner.error", {
342
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.addDelegatedSigner.error", {
322
343
  error: "Expected transaction in response for Solana/Stellar chain"
323
344
  });
324
345
  throw new Error("Expected transaction in response for Solana/Stellar chain");
325
346
  }
326
347
  const transactionId = response.transaction.id;
327
348
  if ((_a = params.options) == null ? void 0 : _a.experimental_prepareOnly) {
328
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.addDelegatedSigner.prepared", { transactionId });
349
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.addDelegatedSigner.prepared", {
350
+ transactionId
351
+ });
329
352
  return { transactionId };
330
353
  }
331
354
  yield this.approveTransactionAndWait(transactionId);
332
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.addDelegatedSigner.success", { transactionId });
355
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.addDelegatedSigner.success", {
356
+ transactionId
357
+ });
333
358
  return void 0;
334
359
  }
335
360
  if (!("chains" in response)) {
336
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.addDelegatedSigner.error", {
361
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.addDelegatedSigner.error", {
337
362
  error: "Expected chains in response for EVM chain"
338
363
  });
339
364
  throw new Error("Expected chains in response for EVM chain");
@@ -341,34 +366,42 @@ var Wallet = class {
341
366
  const chainResponse = (_b = response.chains) == null ? void 0 : _b[this.chain];
342
367
  if ((_c = params.options) == null ? void 0 : _c.experimental_prepareOnly) {
343
368
  const signatureId = (chainResponse == null ? void 0 : chainResponse.status) !== "success" ? chainResponse == null ? void 0 : chainResponse.id : void 0;
344
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.addDelegatedSigner.prepared", { signatureId });
369
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.addDelegatedSigner.prepared", {
370
+ signatureId
371
+ });
345
372
  return { signatureId };
346
373
  }
347
374
  if ((chainResponse == null ? void 0 : chainResponse.status) === "awaiting-approval") {
348
375
  yield this.approveSignatureAndWait(chainResponse.id);
349
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.addDelegatedSigner.success", { signatureId: chainResponse.id });
376
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.addDelegatedSigner.success", {
377
+ signatureId: chainResponse.id
378
+ });
350
379
  return void 0;
351
380
  }
352
381
  if ((chainResponse == null ? void 0 : chainResponse.status) === "pending") {
353
382
  yield this.waitForSignature(chainResponse.id);
354
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.addDelegatedSigner.success", { signatureId: chainResponse.id });
383
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.addDelegatedSigner.success", {
384
+ signatureId: chainResponse.id
385
+ });
355
386
  return void 0;
356
387
  }
357
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.addDelegatedSigner.success");
388
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.addDelegatedSigner.success");
358
389
  return void 0;
359
390
  });
360
391
  }
361
392
  delegatedSigners() {
362
393
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
363
394
  var _a, _b, _c;
364
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.delegatedSigners.start");
395
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.delegatedSigners.start");
365
396
  const walletResponse = yield _chunkUO2J2ZB2cjs.__privateGet.call(void 0, this, _apiClient).getWallet(this.walletLocator);
366
397
  if ("error" in walletResponse) {
367
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.delegatedSigners.error", { error: walletResponse });
398
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.delegatedSigners.error", {
399
+ error: walletResponse
400
+ });
368
401
  throw new (0, _chunkXC2V34TScjs.WalletNotAvailableError)(JSON.stringify(walletResponse));
369
402
  }
370
403
  if (walletResponse.type !== "smart" || walletResponse.chainType !== "evm" && walletResponse.chainType !== "solana" && walletResponse.chainType !== "stellar") {
371
- _chunkSWPJZ5JXcjs.walletsLogger.error("wallet.delegatedSigners.error", {
404
+ _chunkFQV77LH4cjs.walletsLogger.error("wallet.delegatedSigners.error", {
372
405
  error: `Wallet type ${walletResponse.type} not supported`
373
406
  });
374
407
  throw new (0, _chunkXC2V34TScjs.WalletTypeNotSupportedError)(`Wallet type ${walletResponse.type} not supported`);
@@ -380,7 +413,9 @@ var Wallet = class {
380
413
  signer: `external-wallet:${address}`
381
414
  };
382
415
  })) != null ? _c : [];
383
- _chunkSWPJZ5JXcjs.walletsLogger.info("wallet.delegatedSigners.success", { count: signers.length });
416
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.delegatedSigners.success", {
417
+ count: signers.length
418
+ });
384
419
  return signers;
385
420
  });
386
421
  }
@@ -406,7 +441,7 @@ var Wallet = class {
406
441
  }
407
442
  preAuthIfNeeded() {
408
443
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
409
- if (this.signer instanceof _chunkSGKMU5NXcjs.NonCustodialSigner) {
444
+ if (this.signer instanceof _chunkREP547HHcjs.NonCustodialSigner) {
410
445
  yield this.signer.ensureAuthenticated();
411
446
  }
412
447
  });
@@ -509,6 +544,7 @@ var Wallet = class {
509
544
  }
510
545
  executeApproveTransactionWithErrorHandling(transactionId, approvals) {
511
546
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
547
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.approve: submitting approval to API", { transactionId });
512
548
  const approvedTransaction = yield _chunkUO2J2ZB2cjs.__privateGet.call(void 0, this, _apiClient).approveTransaction(this.walletLocator, transactionId, {
513
549
  approvals
514
550
  });
@@ -533,7 +569,7 @@ var Wallet = class {
533
569
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, null, function* () {
534
570
  let signatureResponse = null;
535
571
  do {
536
- yield new Promise((resolve) => setTimeout(resolve, _chunkADCODBBFcjs.STATUS_POLLING_INTERVAL_MS));
572
+ yield new Promise((resolve) => setTimeout(resolve, _chunk5CBGJLA4cjs.STATUS_POLLING_INTERVAL_MS));
537
573
  signatureResponse = yield _chunkUO2J2ZB2cjs.__privateGet.call(void 0, this, _apiClient).getSignature(this.walletLocator, signatureId);
538
574
  if ("error" in signatureResponse) {
539
575
  throw new (0, _chunkXC2V34TScjs.SignatureNotAvailableError)(JSON.stringify(signatureResponse));
@@ -555,9 +591,10 @@ var Wallet = class {
555
591
  return _chunkUO2J2ZB2cjs.__async.call(void 0, this, arguments, function* (transactionId, timeoutMs = 6e4, {
556
592
  backoffMultiplier = 1.1,
557
593
  maxBackoffMs = 2e3,
558
- initialBackoffMs = _chunkADCODBBFcjs.STATUS_POLLING_INTERVAL_MS
594
+ initialBackoffMs = _chunk5CBGJLA4cjs.STATUS_POLLING_INTERVAL_MS
559
595
  } = {}) {
560
596
  var _a;
597
+ _chunkFQV77LH4cjs.walletsLogger.info("wallet.approve: waiting for transaction confirmation", { transactionId, timeoutMs });
561
598
  const startTime = Date.now();
562
599
  let transactionResponse;
563
600
  do {
@@ -606,7 +643,7 @@ _options = new WeakMap();
606
643
  _apiClient = new WeakMap();
607
644
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
608
645
  _commonsdkbase.WithLoggerContext.call(void 0, {
609
- logger: _chunkSWPJZ5JXcjs.walletsLogger,
646
+ logger: _chunkFQV77LH4cjs.walletsLogger,
610
647
  methodName: "wallet.balances",
611
648
  buildContext(thisArg) {
612
649
  return { chain: thisArg.chain, address: thisArg.address };
@@ -615,7 +652,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
615
652
  ], Wallet.prototype, "balances", 1);
616
653
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
617
654
  _commonsdkbase.WithLoggerContext.call(void 0, {
618
- logger: _chunkSWPJZ5JXcjs.walletsLogger,
655
+ logger: _chunkFQV77LH4cjs.walletsLogger,
619
656
  methodName: "wallet.stagingFund",
620
657
  buildContext(thisArg) {
621
658
  return { chain: thisArg.chain, address: thisArg.address };
@@ -624,7 +661,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
624
661
  ], Wallet.prototype, "stagingFund", 1);
625
662
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
626
663
  _commonsdkbase.WithLoggerContext.call(void 0, {
627
- logger: _chunkSWPJZ5JXcjs.walletsLogger,
664
+ logger: _chunkFQV77LH4cjs.walletsLogger,
628
665
  methodName: "wallet.send",
629
666
  buildContext(thisArg) {
630
667
  return { chain: thisArg.chain, address: thisArg.address };
@@ -633,7 +670,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
633
670
  ], Wallet.prototype, "send", 1);
634
671
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
635
672
  _commonsdkbase.WithLoggerContext.call(void 0, {
636
- logger: _chunkSWPJZ5JXcjs.walletsLogger,
673
+ logger: _chunkFQV77LH4cjs.walletsLogger,
637
674
  methodName: "wallet.approve",
638
675
  buildContext(thisArg) {
639
676
  return { chain: thisArg.chain, address: thisArg.address };
@@ -642,7 +679,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
642
679
  ], Wallet.prototype, "approve", 1);
643
680
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
644
681
  _commonsdkbase.WithLoggerContext.call(void 0, {
645
- logger: _chunkSWPJZ5JXcjs.walletsLogger,
682
+ logger: _chunkFQV77LH4cjs.walletsLogger,
646
683
  methodName: "wallet.addDelegatedSigner",
647
684
  buildContext(thisArg) {
648
685
  return { chain: thisArg.chain, address: thisArg.address };
@@ -651,7 +688,7 @@ _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
651
688
  ], Wallet.prototype, "addDelegatedSigner", 1);
652
689
  _chunkUO2J2ZB2cjs.__decorateClass.call(void 0, [
653
690
  _commonsdkbase.WithLoggerContext.call(void 0, {
654
- logger: _chunkSWPJZ5JXcjs.walletsLogger,
691
+ logger: _chunkFQV77LH4cjs.walletsLogger,
655
692
  methodName: "wallet.delegatedSigners",
656
693
  buildContext(thisArg) {
657
694
  return { chain: thisArg.chain, address: thisArg.address };
@@ -0,0 +1,74 @@
1
+ // src/api/__tests__/constants.ts
2
+ var HTTP_ERROR_STATUSES = [
3
+ { status: 400, message: "Bad Request" },
4
+ { status: 401, message: "Unauthorized" },
5
+ { status: 403, message: "Forbidden" },
6
+ { status: 404, message: "Not Found" },
7
+ { status: 429, message: "Rate limit exceeded" },
8
+ { status: 500, message: "Internal server error" },
9
+ { status: 502, message: "Bad Gateway" },
10
+ { status: 503, message: "Service Unavailable" }
11
+ ];
12
+ var WALLET_LOCATORS = {
13
+ evmSmart: "me:evm:smart",
14
+ evmMpc: "me:evm:mpc",
15
+ solanaSmart: "me:solana:smart",
16
+ solanaAddress: "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
17
+ evmAddress: "0x1234567890123456789012345678901234567890",
18
+ evmAddressWithSpecialChars: "0xABCDEFabcdef0123456789ABCDEFabcdef012345"
19
+ };
20
+ var TOKEN_LOCATORS = {
21
+ eth: "base-sepolia:eth",
22
+ usdc: "base-sepolia:usdc",
23
+ sol: "solana:sol",
24
+ customContract: "base-sepolia:0x1234567890123456789012345678901234567890",
25
+ tokenWithSpecialChars: "base-sepolia:0xABCDEFabcdef0123456789ABCDEFabcdef012345"
26
+ };
27
+ var TIMEOUT_SHORT = 3e4;
28
+ var TIMEOUT_MEDIUM = 6e4;
29
+ var TIMEOUT_LONG = 12e4;
30
+ var DELAY_SHORT = 200;
31
+ var DELAY_MEDIUM = 500;
32
+ var DELAY_LONG = 1e3;
33
+ var DELAY_RATE_LIMIT_WINDOW = 2e3;
34
+ var TEST_ADDRESSES = {
35
+ EVM_ADMIN_SIGNER: "0xe5E91D9b21C3563011cc332B050150fb9211bBEB",
36
+ SOLANA_ADMIN_SIGNER: "CsHuaddA9J8j9vSTdL9wpvBsyjYe4F7iQQLuPg3EUqsU",
37
+ EVM_RECIPIENT: "0xDF8b5F9c19E187f1Ea00730a1e46180152244315",
38
+ EVM_NON_EXISTENT: "0x0000000000000000000000000000000000000000",
39
+ EVM_TEST: "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
40
+ };
41
+ var TEST_VALUES = {
42
+ FUNDING_AMOUNT_SMALL: 1,
43
+ FUNDING_AMOUNT_LARGE: 10,
44
+ SEND_AMOUNT_SMALL: "0.0001",
45
+ SEND_AMOUNT_VERY_SMALL: "0.000000000000000001",
46
+ SEND_AMOUNT_ZERO: "0",
47
+ SEND_AMOUNT_INVALID: "999999999999999999.0",
48
+ SEND_AMOUNT_EXTREME: "999999999999999999999999999999.999999999999999999",
49
+ LONG_STRING_LENGTH: 1e4,
50
+ CONCURRENT_REQUESTS: 3,
51
+ RAPID_SEQUENTIAL_COUNT: 3,
52
+ RATE_LIMIT_BATCH_SIZE: 5,
53
+ RATE_LIMIT_BATCHES: 3,
54
+ RATE_LIMIT_RAPID_COUNT: 20,
55
+ RATE_LIMIT_STRESS_COUNT: 50,
56
+ APPROVE_TRANSACTION_MAX_RETRIES: 10
57
+ };
58
+ var MOCK_API_KEY = "ck_development_A61UZQnvjSQcM5qVBaBactgqebxafWAVsNdD2xLkgBxoYuH5q2guM8r9DUmZQzE1WYyoByGVYpEG2o9gVSzAZFsrLbfKGERUJ6D5CW6S9AsJGAc3ctgrsD4n2ioekzGj7KPbLwT3SysDjMamYXLxEroUbQSdwf6aLF4zeEpECq2crkTUQeLFzxzmjWNxFDHFYefDrfrFPCURvBXJLf5pCxCQ";
59
+
60
+ export {
61
+ HTTP_ERROR_STATUSES,
62
+ WALLET_LOCATORS,
63
+ TOKEN_LOCATORS,
64
+ TIMEOUT_SHORT,
65
+ TIMEOUT_MEDIUM,
66
+ TIMEOUT_LONG,
67
+ DELAY_SHORT,
68
+ DELAY_MEDIUM,
69
+ DELAY_LONG,
70
+ DELAY_RATE_LIMIT_WINDOW,
71
+ TEST_ADDRESSES,
72
+ TEST_VALUES,
73
+ MOCK_API_KEY
74
+ };