@sodax/sdk 0.0.1-rc.3 → 0.0.1-rc.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.
@@ -34,10 +34,24 @@ export class MoneyMarketService {
34
34
  this.hubProvider = hubProvider;
35
35
  }
36
36
  /**
37
- * Check whether assetManager contract is allowed to move the given payload amount
38
- * @param {MoneyMarketRepayParams | MoneyMarketSupplyParams} params - Money market params
39
- * @param {SpokeProvider} spokeProvider - The spoke provider
40
- * @return {Promise<Result<boolean>>} - valid = true, invalid = false
37
+ * Check if allowance is sufficient for supply or repay operations (currently required for EVM only)
38
+ * @param {MoneyMarketRepayParams | MoneyMarketSupplyParams} params - Money market params containing token address and amount
39
+ * @param {SpokeProvider} spokeProvider - The spoke provider instance
40
+ * @return {Promise<Result<boolean>>} - Returns true if allowance is sufficient, false otherwise
41
+ *
42
+ * @example
43
+ * const allowanceValid = await isAllowanceValid({
44
+ * token: '0x...', // Address of the token (spoke chain) to supply
45
+ * amount: 1000n, // Amount to supply (in token decimals)
46
+ * }, spokeProvider);
47
+ *
48
+ * if (!allowanceValid.ok) {
49
+ * // Handle error
50
+ * }
51
+ *
52
+ * if (!allowanceValid.value) {
53
+ * // Need to approve
54
+ * }
41
55
  */
42
56
  async isAllowanceValid(params, spokeProvider) {
43
57
  try {
@@ -58,11 +72,26 @@ export class MoneyMarketService {
58
72
  }
59
73
  }
60
74
  /**
61
- * Approve ERC20 amount spending
75
+ * Approve amount spending (currently required for EVM only)
62
76
  * @param token - ERC20 token address
63
77
  * @param amount - Amount to approve
64
78
  * @param spender - Spender address
65
79
  * @param spokeProvider - Spoke provider
80
+ * @returns {Promise<Result<EvmRawTransactionReceipt>>} - Returns the transaction receipt
81
+ *
82
+ * @example
83
+ * const approveResult = await approve(
84
+ * '0x...', // ERC20 token address
85
+ * 1000n, // Amount to approve (in token decimals)
86
+ * '0x...', // Spender address (usually the asset manager contract: spokeProvider.chainConfig.addresses.assetManager)
87
+ * spokeProvider
88
+ * );
89
+ *
90
+ * if (!approveResult.ok) {
91
+ * // Handle error
92
+ * }
93
+ *
94
+ * const txReceipt = approveResult.value;
66
95
  */
67
96
  async approve(token, amount, spender, spokeProvider) {
68
97
  try {
@@ -82,11 +111,31 @@ export class MoneyMarketService {
82
111
  }
83
112
  }
84
113
  /**
85
- * Supply tokens to the money market pool and submit the intent to the Solver API
114
+ * Supply tokens to the money market pool, relay the transaction to the hub and submit the intent to the Solver API
86
115
  * @param params - The parameters for the supply transaction.
87
116
  * @param spokeProvider - The spoke provider.
88
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
89
- * @returns [spokeTxHash, hubTxHash]
117
+ * @param timeout - The timeout in milliseconds for the transaction. Default is 60 seconds.
118
+ * @returns {Promise<Result<[Hex, Hex], MoneyMarketError>>} - Returns the transaction result and the hub transaction hash or error
119
+ *
120
+ * @example
121
+ * const result = await moneyMarketService.supplyAndSubmit(
122
+ * {
123
+ * token: '0x...', // Address of the token (spoke chain address) to supply
124
+ * amount: 1000n, // Amount to supply (in token decimals)
125
+ * },
126
+ * spokeProvider,
127
+ * 30000 // Optional timeout in milliseconds (default: 60000, i.e. 60 seconds)
128
+ * );
129
+ *
130
+ * if (!result.ok) {
131
+ * // Handle error
132
+ * }
133
+ *
134
+ * const [
135
+ * spokeTxHash, // transaction hash on the spoke chain
136
+ * hubTxHash, // transaction hash on the hub chain (i.e. the transaction that was relayed to the hub)
137
+ * ] = result.value;
138
+ * console.log('Supply transaction hashes:', { spokeTxHash, hubTxHash });
90
139
  */
91
140
  async supplyAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
92
141
  try {
@@ -117,12 +166,36 @@ export class MoneyMarketService {
117
166
  }
118
167
  }
119
168
  /**
120
- * Supply tokens to the money market pool
121
- * NOTE: This method does not submit the intent to the Solver API
169
+ * Supply tokens to the money market pool without submitting the intent to the Solver API
170
+ * NOTE: This method does not submit the intent to the Solver API, it only executes the transaction on the spoke chain
171
+ * In order to successfully supply tokens, you need to:
172
+ * 1. Check if the allowance is sufficient
173
+ * 2. Approve the asset manager contract to spend the tokens
174
+ * 3. Supply the tokens
175
+ * 4. Submit the intent to the Solver API and await it using relayTxAndWaitPacket method
176
+ *
122
177
  * @param params - The parameters for the supply transaction.
123
178
  * @param spokeProvider - The spoke provider.
124
179
  * @param raw - Whether to return the raw transaction data.
125
- * @returns The transaction result.
180
+ * @returns {Promise<Result<TxReturnType<S, R>, MoneyMarketErrorCode>>} - Returns the transaction result.
181
+ *
182
+ * @example
183
+ * const moneyMarketService = new MoneyMarketService(config);
184
+ * const result = await moneyMarketService.supply(
185
+ * {
186
+ * token: "0x123...", // token address
187
+ * amount: 1000000000000000000n // 1 token in wei
188
+ * },
189
+ * spokeProvider,
190
+ * raw // Optional: true = return the raw transaction data, false = exeute and return the transaction hash (default: false)
191
+ * );
192
+ *
193
+ * if (result.ok) {
194
+ * const txHash = result.value;
195
+ * console.log('Supply transaction hash:', txHash);
196
+ * } else {
197
+ * console.error('Supply failed:', result.error);
198
+ * }
126
199
  */
127
200
  async supply(params, spokeProvider, raw) {
128
201
  try {
@@ -156,11 +229,31 @@ export class MoneyMarketService {
156
229
  }
157
230
  }
158
231
  /**
159
- * Borrow tokens from the money market pool and submit the intent to the Solver API
232
+ * Borrow tokens from the money market pool, relay the transaction to the hub and submit the intent to the Solver API
160
233
  * @param params - The parameters for the borrow transaction.
161
234
  * @param spokeProvider - The spoke provider.
162
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
163
- * @returns [spokeTxHash, hubTxHash]
235
+ * @param timeout - The timeout in milliseconds for the transaction. Default is 60 seconds.
236
+ * @returns {Promise<Result<[Hex, Hex], MoneyMarketError>>} - Returns the transaction result and the hub transaction hash or error
237
+ *
238
+ * @example
239
+ * const result = await moneyMarketService.borrowAndSubmit(
240
+ * {
241
+ * token: '0x...', // Address of the token (spoke chain address) to borrow
242
+ * amount: 1000n, // Amount to borrow (in token decimals)
243
+ * },
244
+ * spokeProvider,
245
+ * 30000 // Optional timeout in milliseconds (default: 60000, i.e. 60 seconds)
246
+ * );
247
+ *
248
+ * if (!result.ok) {
249
+ * // Handle error
250
+ * }
251
+ *
252
+ * const [
253
+ * spokeTxHash, // transaction hash on the spoke chain
254
+ * hubTxHash, // transaction hash on the hub chain (i.e. the transaction that was relayed to the hub)
255
+ * ] = result.value;
256
+ * console.log('Borrow transaction hashes:', { spokeTxHash, hubTxHash });
164
257
  */
165
258
  async borrowAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
166
259
  try {
@@ -191,12 +284,34 @@ export class MoneyMarketService {
191
284
  }
192
285
  }
193
286
  /**
194
- * Borrow tokens from the money market pool
195
- * NOTE: This method does not submit the intent to the Solver API
287
+ * Borrow tokens from the money market pool without submitting the intent to the Solver API
288
+ * NOTE: This method does not submit the intent to the Solver API, it only executes the transaction on the spoke chain
289
+ * In order to successfully borrow tokens, you need to:
290
+ * 1. Execute the borrow transaction on the spoke chain
291
+ * 2. Submit the intent to the Solver API and await it using relayTxAndWaitPacket method
292
+ *
196
293
  * @param params - The parameters for the borrow transaction.
197
294
  * @param spokeProvider - The spoke provider.
198
295
  * @param raw - Whether to return the raw transaction data.
199
- * @returns The transaction result (raw transaction data or transaction hash).
296
+ * @returns {Promise<Result<TxReturnType<S, R>, MoneyMarketErrorCode>>} - Returns the transaction result (raw transaction data or transaction hash).
297
+ *
298
+ * @example
299
+ * const moneyMarketService = new MoneyMarketService(config);
300
+ * const result = await moneyMarketService.borrow(
301
+ * {
302
+ * token: "0x123...", // token address
303
+ * amount: 1000000000000000000n // 1 token in wei
304
+ * },
305
+ * spokeProvider,
306
+ * raw // Optional: true = return the raw transaction data, false = exeute and return the transaction hash (default: false)
307
+ * );
308
+ *
309
+ * if (result.ok) {
310
+ * const txHash = result.value;
311
+ * console.log('Borrow transaction hash:', txHash);
312
+ * } else {
313
+ * console.error('Borrow failed:', result.error);
314
+ * }
200
315
  */
201
316
  async borrow(params, spokeProvider, raw) {
202
317
  invariant(params.token.length > 0, 'Token is required');
@@ -209,11 +324,32 @@ export class MoneyMarketService {
209
324
  return { ok: true, value: txResult };
210
325
  }
211
326
  /**
212
- * Withdraw tokens from the money market pool and submit the intent to the Solver API
327
+ * Withdraw tokens from the money market pool, relay the transaction to the hub and submit the intent to the Solver API
328
+ *
213
329
  * @param params - The parameters for the withdraw transaction.
214
330
  * @param spokeProvider - The spoke provider.
215
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
216
- * @returns [spokeTxHash, hubTxHash]
331
+ * @param timeout - The timeout in milliseconds for the transaction. Default is 60 seconds.
332
+ * @returns {Promise<Result<[Hex, Hex], MoneyMarketError>>} - Returns the transaction result and the hub transaction hash or error
333
+ *
334
+ * @example
335
+ * const result = await moneyMarketService.withdrawAndSubmit(
336
+ * {
337
+ * token: '0x...', // Address of the token (spoke chain address) to withdraw
338
+ * amount: 1000n, // Amount to withdraw (in token decimals)
339
+ * },
340
+ * spokeProvider,
341
+ * 30000 // Optional timeout in milliseconds (default: 60000, i.e. 60 seconds)
342
+ * );
343
+ *
344
+ * if (!result.ok) {
345
+ * // Handle error
346
+ * }
347
+ *
348
+ * const [
349
+ * spokeTxHash, // transaction hash on the spoke chain
350
+ * hubTxHash, // transaction hash on the hub chain (i.e. the transaction that was relayed to the hub)
351
+ * ] = result.value;
352
+ * console.log('Withdraw transaction hashes:', { spokeTxHash, hubTxHash });
217
353
  */
218
354
  async withdrawAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
219
355
  try {
@@ -244,12 +380,34 @@ export class MoneyMarketService {
244
380
  }
245
381
  }
246
382
  /**
247
- * Withdraw tokens from the money market pool
248
- * NOTE: This method does not submit the intent to the Solver API
383
+ * Withdraw tokens from the money market pool without submitting the intent to the Solver API
384
+ * NOTE: This method does not submit the intent to the Solver API, it only executes the transaction on the spoke chain
385
+ * In order to successfully withdraw tokens, you need to:
386
+ * 1. Execute the withdraw transaction on the spoke chain
387
+ * 2. Submit the intent to the Solver API and await it using relayTxAndWaitPacket method
388
+ *
249
389
  * @param params - The parameters for the withdraw transaction.
250
390
  * @param spokeProvider - The spoke provider.
251
391
  * @param raw - Whether to return the raw transaction data.
252
- * @returns The transaction result (raw transaction data or transaction hash).
392
+ * @returns {Promise<Result<TxReturnType<S, R>, MoneyMarketErrorCode>>} - Returns the transaction result (raw transaction data or transaction hash).
393
+ *
394
+ * @example
395
+ * const moneyMarketService = new MoneyMarketService(config);
396
+ * const result = await moneyMarketService.withdraw(
397
+ * {
398
+ * token: "0x123...", // token address
399
+ * amount: 1000000000000000000n // 1 token in wei
400
+ * },
401
+ * spokeProvider,
402
+ * raw // Optional: true = return the raw transaction data, false = exeute and return the transaction hash (default: false)
403
+ * );
404
+ *
405
+ * if (result.ok) {
406
+ * const txHash = result.value;
407
+ * console.log('Withdraw transaction hash:', txHash);
408
+ * } else {
409
+ * console.error('Withdraw failed:', result.error);
410
+ * }
253
411
  */
254
412
  async withdraw(params, spokeProvider, raw) {
255
413
  invariant(params.token.length > 0, 'Token is required');
@@ -262,11 +420,32 @@ export class MoneyMarketService {
262
420
  return { ok: true, value: txResult };
263
421
  }
264
422
  /**
265
- * Repay tokens to the money market pool and submit the intent to the Solver API
423
+ * Repay tokens to the money market pool, relay the transaction to the hub and submit the intent to the Solver API
424
+ *
266
425
  * @param params - The parameters for the repay transaction.
267
426
  * @param spokeProvider - The spoke provider.
268
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
269
- * @returns [spokeTxHash, hubTxHash]
427
+ * @param timeout - The timeout in milliseconds for the transaction. Default is 60 seconds.
428
+ * @returns {Promise<Result<[Hex, Hex], MoneyMarketError>>} - Returns the transaction result and the hub transaction hash or error
429
+ *
430
+ * @example
431
+ * const result = await moneyMarketService.repayAndSubmit(
432
+ * {
433
+ * token: '0x...', // Address of the token (spoke chain address) to repay
434
+ * amount: 1000n, // Amount to repay (in token decimals)
435
+ * },
436
+ * spokeProvider,
437
+ * 30000 // Optional timeout in milliseconds (default: 60000, i.e. 60 seconds)
438
+ * );
439
+ *
440
+ * if (!result.ok) {
441
+ * // Handle error
442
+ * }
443
+ *
444
+ * const [
445
+ * spokeTxHash, // transaction hash on the spoke chain
446
+ * hubTxHash, // transaction hash on the hub chain (i.e. the transaction that was relayed to the hub)
447
+ * ] = result.value;
448
+ * console.log('Repay transaction hashes:', { spokeTxHash, hubTxHash });
270
449
  */
271
450
  async repayAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
272
451
  try {
@@ -297,12 +476,36 @@ export class MoneyMarketService {
297
476
  }
298
477
  }
299
478
  /**
300
- * Repay tokens to the money market pool
301
- * NOTE: This method does not submit the intent to the Solver API
479
+ * Repay tokens to the money market pool without submitting the intent to the Solver API
480
+ * NOTE: This method does not submit the intent to the Solver API, it only executes the transaction on the spoke chain
481
+ * In order to successfully repay tokens, you need to:
482
+ * 1. Check if the allowance is sufficient
483
+ * 2. Approve the asset manager contract to spend the tokens
484
+ * 3. Execute the repay transaction on the spoke chain
485
+ * 4. Submit the intent to the Solver API and await it using relayTxAndWaitPacket method
486
+ *
302
487
  * @param params - The parameters for the repay transaction.
303
488
  * @param spokeProvider - The spoke provider.
304
489
  * @param raw - Whether to return the raw transaction data.
305
- * @returns The transaction result (raw transaction data or transaction hash).
490
+ * @returns {Promise<Result<TxReturnType<S, R>, MoneyMarketErrorCode>>} The transaction result (raw transaction data or transaction hash) or error.
491
+ *
492
+ * @example
493
+ * const moneyMarketService = new MoneyMarketService(config);
494
+ * const result = await moneyMarketService.repay(
495
+ * {
496
+ * token: "0x123...", // token address
497
+ * amount: 1000000000000000000n // 1 token in wei
498
+ * },
499
+ * spokeProvider,
500
+ * raw // Optional: true = return the raw transaction data, false = exeute and return the transaction hash (default: false)
501
+ * );
502
+ *
503
+ * if (result.ok) {
504
+ * const txHash = result.value;
505
+ * console.log('Repay transaction hash:', txHash);
506
+ * } else {
507
+ * console.error('Repay failed:', result.error);
508
+ * }
306
509
  */
307
510
  async repay(params, spokeProvider, raw) {
308
511
  invariant(params.token.length > 0, 'Token is required');
@@ -322,12 +525,12 @@ export class MoneyMarketService {
322
525
  return { ok: true, value: txResult };
323
526
  }
324
527
  /**
325
- * Deposit tokens to the spoke chain and supply to the money market pool
528
+ * Build transaction data for supplying to the money market pool
326
529
  * @param token - The address of the token on spoke chain
327
- * @param to The user wallet address on the hub chain
328
- * @param amount The amount to deposit
329
- * @param spokeChainId The chain ID of the spoke chain
330
- * @returns The transaction result (raw transaction data or transaction hash).
530
+ * @param to - The user wallet address on the hub chain
531
+ * @param amount - The amount to deposit
532
+ * @param spokeChainId - The chain ID of the spoke chain
533
+ * @returns {Hex} The transaction data.
331
534
  */
332
535
  supplyData(token, to, amount, spokeChainId) {
333
536
  const calls = [];
@@ -344,13 +547,13 @@ export class MoneyMarketService {
344
547
  return encodeContractCalls(calls);
345
548
  }
346
549
  /**
347
- * Borrow tokens from the money market pool
348
- * @param from The user wallet address on the hub chain
349
- * @param to The user wallet address on the spoke chain
350
- * @param token The address of the token to borrow
351
- * @param amount The amount to borrow in hub chain decimals
352
- * @param spokeChainId The chain ID of the spoke chain
353
- * @returns Transaction object
550
+ * Build transaction data for borrowing from the money market pool
551
+ * @param from - The user wallet address on the hub chain
552
+ * @param to - The user wallet address on the spoke chain
553
+ * @param token - The address of the token to borrow
554
+ * @param amount - The amount to borrow in hub chain decimals
555
+ * @param spokeChainId - The chain ID of the spoke chain
556
+ * @returns {Hex} The transaction data.
354
557
  */
355
558
  borrowData(from, to, token, amount, spokeChainId) {
356
559
  invariant(isValidSpokeChainId(spokeChainId), `Invalid spokeChainId: ${spokeChainId}`);
@@ -383,13 +586,13 @@ export class MoneyMarketService {
383
586
  return encodeContractCalls(calls);
384
587
  }
385
588
  /**
386
- * Withdraw tokens from the money market pool
387
- * @param from The user wallet address on the hub chain
388
- * @param to The user wallet address on the spoke chain
389
- * @param token The address of the token to borrow
390
- * @param amount The amount to borrow in hub chain decimals
391
- * @param spokeChainId The chain ID of the spoke chain
392
- * @returns Transaction object
589
+ * Build transaction data for withdrawing from the money market pool
590
+ * @param from - The user wallet address on the hub chain
591
+ * @param to - The user wallet address on the spoke chain
592
+ * @param token - The address of the token to borrow
593
+ * @param amount - The amount to borrow in hub chain decimals
594
+ * @param spokeChainId - The chain ID of the spoke chain
595
+ * @returns {Hex} The transaction data.
393
596
  */
394
597
  withdrawData(from, to, token, amount, spokeChainId) {
395
598
  const calls = [];
@@ -409,13 +612,12 @@ export class MoneyMarketService {
409
612
  return encodeContractCalls(calls);
410
613
  }
411
614
  /**
412
- * Repay tokens to the money market pool
413
- * @param token The address of the token to repay
414
- * @param to The user wallet address on the hub chain
415
- * @param amount The amount to repay
416
- * @param spokeChainId The chain ID of the spoke chain
417
- * @param moneyMarketConfig The money market config
418
- * @returns Transaction object
615
+ * Build transaction data for repaying to the money market pool
616
+ * @param token - The address of the token to repay
617
+ * @param to - The user wallet address on the hub chain
618
+ * @param amount - The amount to repay
619
+ * @param spokeChainId - The chain ID of the spoke chain
620
+ * @returns {Hex} The transaction data.
419
621
  */
420
622
  repayData(token, to, amount, spokeChainId) {
421
623
  const calls = [];
@@ -443,7 +645,7 @@ export class MoneyMarketService {
443
645
  * Get the list of all reserves in the pool
444
646
  * @param uiPoolDataProvider - The address of the UI Pool Data Provider
445
647
  * @param poolAddressesProvider - The address of the Pool Addresses Provider
446
- * @returns Array of reserve addresses
648
+ * @returns {Promise<readonly Address[]>} - Array of reserve addresses
447
649
  */
448
650
  async getReservesList(uiPoolDataProvider, poolAddressesProvider) {
449
651
  return this.hubProvider.publicClient.readContract({
@@ -457,7 +659,7 @@ export class MoneyMarketService {
457
659
  * Get detailed data for all reserves in the pool
458
660
  * @param uiPoolDataProvider - The address of the UI Pool Data Provider
459
661
  * @param poolAddressesProvider - The address of the Pool Addresses Provider
460
- * @returns Tuple containing array of reserve data and base currency info
662
+ * @returns {Promise<readonly [readonly AggregatedReserveData[], BaseCurrencyInfo]>} - Tuple containing array of reserve data and base currency info
461
663
  */
462
664
  async getReservesData(uiPoolDataProvider, poolAddressesProvider) {
463
665
  return this.hubProvider.publicClient.readContract({
@@ -472,7 +674,7 @@ export class MoneyMarketService {
472
674
  * @param userAddress Address of the user
473
675
  * @param uiPoolDataProvider - The address of the UI Pool Data Provider
474
676
  * @param poolAddressesProvider - The address of the Pool Addresses Provider
475
- * @returns Tuple containing array of user reserve data and eMode category ID
677
+ * @returns {Promise<readonly [readonly UserReserveData[], number]>} - Tuple containing array of user reserve data and eMode category ID
476
678
  */
477
679
  async getUserReservesData(userAddress, uiPoolDataProvider, poolAddressesProvider) {
478
680
  return this.hubProvider.publicClient.readContract({
@@ -595,7 +797,7 @@ export class MoneyMarketService {
595
797
  /**
596
798
  * Get the list of all supported money market tokens (supply / borrow tokens) for a given spoke chain ID
597
799
  * @param chainId The chain ID
598
- * @returns Array of supported tokens
800
+ * @returns {readonly Token[]} - Array of supported tokens
599
801
  */
600
802
  getSupportedTokens(chainId) {
601
803
  return getSupportedMoneyMarketTokens(chainId);
@@ -603,7 +805,7 @@ export class MoneyMarketService {
603
805
  /**
604
806
  * Get the list of all supported money market reserves (supply / borrow reserves)
605
807
  * NOTE: reserve addresses are on the hub chain and can be of type vault, erc20, etc.
606
- * @returns Array of supported reserves
808
+ * @returns {readonly Address[]} - Array of supported reserves
607
809
  */
608
810
  getSupportedReserves() {
609
811
  return [...moneyMarketReserveAssets];
@@ -1 +1 @@
1
- {"version":3,"file":"MoneyMarketService.js","sourceRoot":"","sources":["../../../src/services/moneyMarket/MoneyMarketService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoneyMarketService.js","sourceRoot":"","sources":["../../../src/services/moneyMarket/MoneyMarketService.ts"],"names":[],"mappings":"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"}