@sodax/sdk 0.0.1-rc.2 → 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.
Files changed (134) hide show
  1. package/README.md +2 -0
  2. package/dist/constants.d.ts +17 -32
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +67 -67
  5. package/dist/constants.js.map +1 -1
  6. package/dist/constants.test.js +3 -2
  7. package/dist/constants.test.js.map +1 -1
  8. package/dist/entities/Providers.d.ts +3 -10
  9. package/dist/entities/Providers.d.ts.map +1 -1
  10. package/dist/entities/Providers.js +2 -2
  11. package/dist/entities/Providers.js.map +1 -1
  12. package/dist/entities/Sodax.test.js +120 -104
  13. package/dist/entities/Sodax.test.js.map +1 -1
  14. package/dist/entities/cosmos/CWSpokeProvider.d.ts +2 -1
  15. package/dist/entities/cosmos/CWSpokeProvider.d.ts.map +1 -1
  16. package/dist/entities/cosmos/CWSpokeProvider.js.map +1 -1
  17. package/dist/entities/cosmos/CosmosWalletProvider.d.ts +2 -2
  18. package/dist/entities/cosmos/CosmosWalletProvider.d.ts.map +1 -1
  19. package/dist/entities/cosmos/CosmosWalletProvider.js +4 -4
  20. package/dist/entities/cosmos/CosmosWalletProvider.js.map +1 -1
  21. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts +2 -2
  22. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts.map +1 -1
  23. package/dist/entities/cosmos/InjectiveWalletProvider.js +4 -4
  24. package/dist/entities/cosmos/InjectiveWalletProvider.js.map +1 -1
  25. package/dist/entities/icon/IconSpokeProvider.d.ts +5 -3
  26. package/dist/entities/icon/IconSpokeProvider.d.ts.map +1 -1
  27. package/dist/entities/icon/IconSpokeProvider.js +4 -1
  28. package/dist/entities/icon/IconSpokeProvider.js.map +1 -1
  29. package/dist/entities/icon/index.d.ts +0 -1
  30. package/dist/entities/icon/index.d.ts.map +1 -1
  31. package/dist/entities/icon/index.js +0 -1
  32. package/dist/entities/icon/index.js.map +1 -1
  33. package/dist/entities/index.d.ts +0 -1
  34. package/dist/entities/index.d.ts.map +1 -1
  35. package/dist/entities/index.js +0 -1
  36. package/dist/entities/index.js.map +1 -1
  37. package/dist/entities/solana/SolanaWalletProvider.d.ts +3 -3
  38. package/dist/entities/solana/SolanaWalletProvider.d.ts.map +1 -1
  39. package/dist/entities/solana/SolanaWalletProvider.js +3 -3
  40. package/dist/entities/solana/SolanaWalletProvider.js.map +1 -1
  41. package/dist/entities/solana/utils/utils.js +2 -1
  42. package/dist/entities/solana/utils/utils.js.map +1 -1
  43. package/dist/entities/stellar/StellarSpokeProvider.d.ts +4 -11
  44. package/dist/entities/stellar/StellarSpokeProvider.d.ts.map +1 -1
  45. package/dist/entities/stellar/StellarSpokeProvider.js +27 -31
  46. package/dist/entities/stellar/StellarSpokeProvider.js.map +1 -1
  47. package/dist/entities/sui/SuiSpokeProvider.d.ts +6 -5
  48. package/dist/entities/sui/SuiSpokeProvider.d.ts.map +1 -1
  49. package/dist/entities/sui/SuiSpokeProvider.js +9 -7
  50. package/dist/entities/sui/SuiSpokeProvider.js.map +1 -1
  51. package/dist/guards.js +8 -8
  52. package/dist/guards.js.map +1 -1
  53. package/dist/index.d.ts +1 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +1 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/services/hub/EvmAssetManagerService.d.ts +2 -1
  58. package/dist/services/hub/EvmAssetManagerService.d.ts.map +1 -1
  59. package/dist/services/hub/EvmAssetManagerService.js.map +1 -1
  60. package/dist/services/hub/EvmVaultTokenService.d.ts.map +1 -1
  61. package/dist/services/hub/EvmVaultTokenService.js +4 -2
  62. package/dist/services/hub/EvmVaultTokenService.js.map +1 -1
  63. package/dist/services/hub/EvmWalletAbstraction.d.ts +2 -1
  64. package/dist/services/hub/EvmWalletAbstraction.d.ts.map +1 -1
  65. package/dist/services/hub/EvmWalletAbstraction.js.map +1 -1
  66. package/dist/services/intentRelay/IntentRelayApiService.d.ts +2 -1
  67. package/dist/services/intentRelay/IntentRelayApiService.d.ts.map +1 -1
  68. package/dist/services/intentRelay/IntentRelayApiService.js.map +1 -1
  69. package/dist/services/moneyMarket/MoneyMarketService.d.ts +267 -63
  70. package/dist/services/moneyMarket/MoneyMarketService.d.ts.map +1 -1
  71. package/dist/services/moneyMarket/MoneyMarketService.js +283 -73
  72. package/dist/services/moneyMarket/MoneyMarketService.js.map +1 -1
  73. package/dist/services/moneyMarket/MoneyMarketService.test.js +36 -19
  74. package/dist/services/moneyMarket/MoneyMarketService.test.js.map +1 -1
  75. package/dist/services/shared/Erc20Service.d.ts +6 -5
  76. package/dist/services/shared/Erc20Service.d.ts.map +1 -1
  77. package/dist/services/shared/Erc20Service.js +7 -6
  78. package/dist/services/shared/Erc20Service.js.map +1 -1
  79. package/dist/services/solver/SolverApiService.test.js +2 -1
  80. package/dist/services/solver/SolverApiService.test.js.map +1 -1
  81. package/dist/services/solver/SolverService.d.ts +138 -37
  82. package/dist/services/solver/SolverService.d.ts.map +1 -1
  83. package/dist/services/solver/SolverService.js +146 -41
  84. package/dist/services/solver/SolverService.js.map +1 -1
  85. package/dist/services/solver/SolverService.test.js +89 -143
  86. package/dist/services/solver/SolverService.test.js.map +1 -1
  87. package/dist/services/spoke/CWSpokeService.d.ts +1 -1
  88. package/dist/services/spoke/CWSpokeService.d.ts.map +1 -1
  89. package/dist/services/spoke/CWSpokeService.js +2 -2
  90. package/dist/services/spoke/CWSpokeService.js.map +1 -1
  91. package/dist/services/spoke/EvmSpokeService.d.ts +3 -2
  92. package/dist/services/spoke/EvmSpokeService.d.ts.map +1 -1
  93. package/dist/services/spoke/EvmSpokeService.js +4 -2
  94. package/dist/services/spoke/EvmSpokeService.js.map +1 -1
  95. package/dist/services/spoke/IconSpokeService.d.ts +4 -3
  96. package/dist/services/spoke/IconSpokeService.d.ts.map +1 -1
  97. package/dist/services/spoke/IconSpokeService.js +28 -15
  98. package/dist/services/spoke/IconSpokeService.js.map +1 -1
  99. package/dist/services/spoke/SolanaSpokeService.d.ts +3 -2
  100. package/dist/services/spoke/SolanaSpokeService.d.ts.map +1 -1
  101. package/dist/services/spoke/SolanaSpokeService.js.map +1 -1
  102. package/dist/services/spoke/SpokeService.d.ts +2 -1
  103. package/dist/services/spoke/SpokeService.d.ts.map +1 -1
  104. package/dist/services/spoke/SpokeService.js.map +1 -1
  105. package/dist/services/spoke/StellarSpokeService.d.ts +1 -1
  106. package/dist/services/spoke/StellarSpokeService.d.ts.map +1 -1
  107. package/dist/services/spoke/SuiSpokeService.d.ts +1 -1
  108. package/dist/services/spoke/SuiSpokeService.d.ts.map +1 -1
  109. package/dist/tests/services/hub/EvmAssetManagerService.test.js +45 -30
  110. package/dist/tests/services/hub/EvmAssetManagerService.test.js.map +1 -1
  111. package/dist/tests/services/spoke/EvmSpokeService.test.js +7 -6
  112. package/dist/tests/services/spoke/EvmSpokeService.test.js.map +1 -1
  113. package/dist/types.d.ts +28 -71
  114. package/dist/types.d.ts.map +1 -1
  115. package/dist/types.js.map +1 -1
  116. package/dist/utils/evm-utils.d.ts +2 -2
  117. package/dist/utils/evm-utils.d.ts.map +1 -1
  118. package/dist/utils/shared-utils.d.ts +2 -1
  119. package/dist/utils/shared-utils.d.ts.map +1 -1
  120. package/dist/utils/shared-utils.js +3 -0
  121. package/dist/utils/shared-utils.js.map +1 -1
  122. package/package.json +3 -3
  123. package/dist/entities/icon/IconWalletProvider.d.ts +0 -12
  124. package/dist/entities/icon/IconWalletProvider.d.ts.map +0 -1
  125. package/dist/entities/icon/IconWalletProvider.js +0 -34
  126. package/dist/entities/icon/IconWalletProvider.js.map +0 -1
  127. package/dist/entities/sui/SuiWalletProvider.d.ts +0 -15
  128. package/dist/entities/sui/SuiWalletProvider.d.ts.map +0 -1
  129. package/dist/entities/sui/SuiWalletProvider.js +0 -43
  130. package/dist/entities/sui/SuiWalletProvider.js.map +0 -1
  131. package/dist/interfaces.d.ts +0 -8
  132. package/dist/interfaces.d.ts.map +0 -1
  133. package/dist/interfaces.js +0 -2
  134. package/dist/interfaces.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MoneyMarketService.d.ts","sourceRoot":"","sources":["../../../src/services/moneyMarket/MoneyMarketService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoneyMarketService.d.ts","sourceRoot":"","sources":["../../../src/services/moneyMarket/MoneyMarketService.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { encodeFunctionData } from 'viem';
2
2
  import { poolAbi } from '../../abis/pool.abi.js';
3
- import { DEFAULT_RELAYER_API_ENDPOINT, getHubAssetInfo, getMoneyMarketConfig, getSupportedMoneyMarketTokens, isConfiguredMoneyMarketConfig, isValidOriginalAssetAddress, isValidSpokeChainId, moneyMarketReserveAssets, SpokeService, relayTxAndWaitPacket, uiPoolDataAbi, SONIC_MAINNET_CHAIN_ID, DEFAULT_RELAY_TX_TIMEOUT, EvmSpokeProvider, isMoneyMarketSupportedToken, } from '../../index.js';
3
+ import { DEFAULT_RELAYER_API_ENDPOINT, getHubAssetInfo, getMoneyMarketConfig, getSupportedMoneyMarketTokens, isConfiguredMoneyMarketConfig, isValidOriginalAssetAddress, isValidSpokeChainId, moneyMarketReserveAssets, SpokeService, relayTxAndWaitPacket, uiPoolDataAbi, DEFAULT_RELAY_TX_TIMEOUT, EvmSpokeProvider, isMoneyMarketSupportedToken, } from '../../index.js';
4
4
  import { calculateFeeAmount, encodeContractCalls } from '../../utils/index.js';
5
5
  import { EvmAssetManagerService, EvmVaultTokenService, EvmWalletAbstraction } from '../hub/index.js';
6
6
  import { Erc20Service } from '../shared/index.js';
7
7
  import invariant from 'tiny-invariant';
8
+ import { SONIC_MAINNET_CHAIN_ID } from '@sodax/types';
8
9
  export class MoneyMarketService {
9
10
  config;
10
11
  hubProvider;
@@ -33,15 +34,30 @@ export class MoneyMarketService {
33
34
  this.hubProvider = hubProvider;
34
35
  }
35
36
  /**
36
- * Check whether assetManager contract is allowed to move the given payload amount
37
- * @param {MoneyMarketRepayParams | MoneyMarketSupplyParams} params - Money market params
38
- * @param {SpokeProvider} spokeProvider - The spoke provider
39
- * @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
+ * }
40
55
  */
41
56
  async isAllowanceValid(params, spokeProvider) {
42
57
  try {
43
58
  if (spokeProvider instanceof EvmSpokeProvider) {
44
- return Erc20Service.isAllowanceValid(params.token, params.amount, spokeProvider.walletProvider.getWalletAddress(), spokeProvider.chainConfig.addresses.assetManager, spokeProvider);
59
+ const walletAddress = (await spokeProvider.walletProvider.getWalletAddress());
60
+ return Erc20Service.isAllowanceValid(params.token, params.amount, walletAddress, spokeProvider.chainConfig.addresses.assetManager, spokeProvider);
45
61
  }
46
62
  return {
47
63
  ok: true,
@@ -56,16 +72,31 @@ export class MoneyMarketService {
56
72
  }
57
73
  }
58
74
  /**
59
- * Approve ERC20 amount spending
75
+ * Approve amount spending (currently required for EVM only)
60
76
  * @param token - ERC20 token address
61
77
  * @param amount - Amount to approve
62
- * @param address - Address to approve spending for
78
+ * @param spender - Spender address
63
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;
64
95
  */
65
- async approve(token, amount, address, spokeProvider) {
96
+ async approve(token, amount, spender, spokeProvider) {
66
97
  try {
67
98
  if (spokeProvider instanceof EvmSpokeProvider) {
68
- return Erc20Service.approve(token, amount, address, spokeProvider);
99
+ return Erc20Service.approve(token, amount, spender, spokeProvider);
69
100
  }
70
101
  return {
71
102
  ok: false,
@@ -80,11 +111,31 @@ export class MoneyMarketService {
80
111
  }
81
112
  }
82
113
  /**
83
- * 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
84
115
  * @param params - The parameters for the supply transaction.
85
116
  * @param spokeProvider - The spoke provider.
86
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
87
- * @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 });
88
139
  */
89
140
  async supplyAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
90
141
  try {
@@ -115,22 +166,48 @@ export class MoneyMarketService {
115
166
  }
116
167
  }
117
168
  /**
118
- * Supply tokens to the money market pool
119
- * 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
+ *
120
177
  * @param params - The parameters for the supply transaction.
121
178
  * @param spokeProvider - The spoke provider.
122
179
  * @param raw - Whether to return the raw transaction data.
123
- * @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
+ * }
124
199
  */
125
200
  async supply(params, spokeProvider, raw) {
126
201
  try {
127
202
  invariant(params.token.length > 0, 'Token is required');
128
203
  invariant(params.amount > 0n, 'Amount must be greater than 0');
129
204
  invariant(isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token), `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`);
130
- const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, spokeProvider.walletProvider.getWalletAddressBytes(), this.hubProvider);
205
+ const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
206
+ const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, walletAddressBytes, this.hubProvider);
131
207
  const data = this.supplyData(params.token, hubWallet, params.amount, spokeProvider.chainConfig.chain.id);
208
+ const walletAddress = (await spokeProvider.walletProvider.getWalletAddress());
132
209
  const txResult = await SpokeService.deposit({
133
- from: spokeProvider.walletProvider.getWalletAddress(),
210
+ from: walletAddress,
134
211
  to: hubWallet,
135
212
  token: params.token,
136
213
  amount: params.amount,
@@ -152,11 +229,31 @@ export class MoneyMarketService {
152
229
  }
153
230
  }
154
231
  /**
155
- * 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
156
233
  * @param params - The parameters for the borrow transaction.
157
234
  * @param spokeProvider - The spoke provider.
158
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
159
- * @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 });
160
257
  */
161
258
  async borrowAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
162
259
  try {
@@ -187,28 +284,72 @@ export class MoneyMarketService {
187
284
  }
188
285
  }
189
286
  /**
190
- * Borrow tokens from the money market pool
191
- * 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
+ *
192
293
  * @param params - The parameters for the borrow transaction.
193
294
  * @param spokeProvider - The spoke provider.
194
295
  * @param raw - Whether to return the raw transaction data.
195
- * @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
+ * }
196
315
  */
197
316
  async borrow(params, spokeProvider, raw) {
198
317
  invariant(params.token.length > 0, 'Token is required');
199
318
  invariant(params.amount > 0n, 'Amount must be greater than 0');
200
319
  invariant(isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token), `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`);
201
- const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, spokeProvider.walletProvider.getWalletAddressBytes(), this.hubProvider);
202
- const data = this.borrowData(hubWallet, spokeProvider.walletProvider.getWalletAddressBytes(), params.token, params.amount, spokeProvider.chainConfig.chain.id);
320
+ const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
321
+ const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, walletAddressBytes, this.hubProvider);
322
+ const data = this.borrowData(hubWallet, walletAddressBytes, params.token, params.amount, spokeProvider.chainConfig.chain.id);
203
323
  const txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
204
324
  return { ok: true, value: txResult };
205
325
  }
206
326
  /**
207
- * 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
+ *
208
329
  * @param params - The parameters for the withdraw transaction.
209
330
  * @param spokeProvider - The spoke provider.
210
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
211
- * @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 });
212
353
  */
213
354
  async withdrawAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
214
355
  try {
@@ -239,28 +380,72 @@ export class MoneyMarketService {
239
380
  }
240
381
  }
241
382
  /**
242
- * Withdraw tokens from the money market pool
243
- * 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
+ *
244
389
  * @param params - The parameters for the withdraw transaction.
245
390
  * @param spokeProvider - The spoke provider.
246
391
  * @param raw - Whether to return the raw transaction data.
247
- * @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
+ * }
248
411
  */
249
412
  async withdraw(params, spokeProvider, raw) {
250
413
  invariant(params.token.length > 0, 'Token is required');
251
414
  invariant(params.amount > 0n, 'Amount must be greater than 0');
252
415
  invariant(isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token), `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`);
253
- const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, spokeProvider.walletProvider.getWalletAddressBytes(), this.hubProvider);
254
- const data = this.withdrawData(hubWallet, spokeProvider.walletProvider.getWalletAddressBytes(), params.token, params.amount, spokeProvider.chainConfig.chain.id);
416
+ const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
417
+ const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, walletAddressBytes, this.hubProvider);
418
+ const data = this.withdrawData(hubWallet, walletAddressBytes, params.token, params.amount, spokeProvider.chainConfig.chain.id);
255
419
  const txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
256
420
  return { ok: true, value: txResult };
257
421
  }
258
422
  /**
259
- * 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
+ *
260
425
  * @param params - The parameters for the repay transaction.
261
426
  * @param spokeProvider - The spoke provider.
262
- * @param timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
263
- * @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 });
264
449
  */
265
450
  async repayAndSubmit(params, spokeProvider, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
266
451
  try {
@@ -291,21 +476,47 @@ export class MoneyMarketService {
291
476
  }
292
477
  }
293
478
  /**
294
- * Repay tokens to the money market pool
295
- * 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
+ *
296
487
  * @param params - The parameters for the repay transaction.
297
488
  * @param spokeProvider - The spoke provider.
298
489
  * @param raw - Whether to return the raw transaction data.
299
- * @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
+ * }
300
509
  */
301
510
  async repay(params, spokeProvider, raw) {
302
511
  invariant(params.token.length > 0, 'Token is required');
303
512
  invariant(params.amount > 0n, 'Amount must be greater than 0');
304
513
  invariant(isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token), `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`);
305
- const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, spokeProvider.walletProvider.getWalletAddressBytes(), this.hubProvider);
514
+ const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
515
+ const hubWallet = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, walletAddressBytes, this.hubProvider);
306
516
  const data = this.repayData(params.token, hubWallet, params.amount, spokeProvider.chainConfig.chain.id);
517
+ const walletAddress = (await spokeProvider.walletProvider.getWalletAddress());
307
518
  const txResult = await SpokeService.deposit({
308
- from: spokeProvider.walletProvider.getWalletAddress(),
519
+ from: walletAddress,
309
520
  to: hubWallet,
310
521
  token: params.token,
311
522
  amount: params.amount,
@@ -314,12 +525,12 @@ export class MoneyMarketService {
314
525
  return { ok: true, value: txResult };
315
526
  }
316
527
  /**
317
- * Deposit tokens to the spoke chain and supply to the money market pool
528
+ * Build transaction data for supplying to the money market pool
318
529
  * @param token - The address of the token on spoke chain
319
- * @param to The user wallet address on the hub chain
320
- * @param amount The amount to deposit
321
- * @param spokeChainId The chain ID of the spoke chain
322
- * @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.
323
534
  */
324
535
  supplyData(token, to, amount, spokeChainId) {
325
536
  const calls = [];
@@ -336,13 +547,13 @@ export class MoneyMarketService {
336
547
  return encodeContractCalls(calls);
337
548
  }
338
549
  /**
339
- * Borrow tokens from the money market pool
340
- * @param from The user wallet address on the hub chain
341
- * @param to The user wallet address on the spoke chain
342
- * @param token The address of the token to borrow
343
- * @param amount The amount to borrow in hub chain decimals
344
- * @param spokeChainId The chain ID of the spoke chain
345
- * @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.
346
557
  */
347
558
  borrowData(from, to, token, amount, spokeChainId) {
348
559
  invariant(isValidSpokeChainId(spokeChainId), `Invalid spokeChainId: ${spokeChainId}`);
@@ -375,13 +586,13 @@ export class MoneyMarketService {
375
586
  return encodeContractCalls(calls);
376
587
  }
377
588
  /**
378
- * Withdraw tokens from the money market pool
379
- * @param from The user wallet address on the hub chain
380
- * @param to The user wallet address on the spoke chain
381
- * @param token The address of the token to borrow
382
- * @param amount The amount to borrow in hub chain decimals
383
- * @param spokeChainId The chain ID of the spoke chain
384
- * @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.
385
596
  */
386
597
  withdrawData(from, to, token, amount, spokeChainId) {
387
598
  const calls = [];
@@ -401,13 +612,12 @@ export class MoneyMarketService {
401
612
  return encodeContractCalls(calls);
402
613
  }
403
614
  /**
404
- * Repay tokens to the money market pool
405
- * @param token The address of the token to repay
406
- * @param to The user wallet address on the hub chain
407
- * @param amount The amount to repay
408
- * @param spokeChainId The chain ID of the spoke chain
409
- * @param moneyMarketConfig The money market config
410
- * @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.
411
621
  */
412
622
  repayData(token, to, amount, spokeChainId) {
413
623
  const calls = [];
@@ -435,7 +645,7 @@ export class MoneyMarketService {
435
645
  * Get the list of all reserves in the pool
436
646
  * @param uiPoolDataProvider - The address of the UI Pool Data Provider
437
647
  * @param poolAddressesProvider - The address of the Pool Addresses Provider
438
- * @returns Array of reserve addresses
648
+ * @returns {Promise<readonly Address[]>} - Array of reserve addresses
439
649
  */
440
650
  async getReservesList(uiPoolDataProvider, poolAddressesProvider) {
441
651
  return this.hubProvider.publicClient.readContract({
@@ -449,7 +659,7 @@ export class MoneyMarketService {
449
659
  * Get detailed data for all reserves in the pool
450
660
  * @param uiPoolDataProvider - The address of the UI Pool Data Provider
451
661
  * @param poolAddressesProvider - The address of the Pool Addresses Provider
452
- * @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
453
663
  */
454
664
  async getReservesData(uiPoolDataProvider, poolAddressesProvider) {
455
665
  return this.hubProvider.publicClient.readContract({
@@ -464,7 +674,7 @@ export class MoneyMarketService {
464
674
  * @param userAddress Address of the user
465
675
  * @param uiPoolDataProvider - The address of the UI Pool Data Provider
466
676
  * @param poolAddressesProvider - The address of the Pool Addresses Provider
467
- * @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
468
678
  */
469
679
  async getUserReservesData(userAddress, uiPoolDataProvider, poolAddressesProvider) {
470
680
  return this.hubProvider.publicClient.readContract({
@@ -587,7 +797,7 @@ export class MoneyMarketService {
587
797
  /**
588
798
  * Get the list of all supported money market tokens (supply / borrow tokens) for a given spoke chain ID
589
799
  * @param chainId The chain ID
590
- * @returns Array of supported tokens
800
+ * @returns {readonly Token[]} - Array of supported tokens
591
801
  */
592
802
  getSupportedTokens(chainId) {
593
803
  return getSupportedMoneyMarketTokens(chainId);
@@ -595,7 +805,7 @@ export class MoneyMarketService {
595
805
  /**
596
806
  * Get the list of all supported money market reserves (supply / borrow reserves)
597
807
  * NOTE: reserve addresses are on the hub chain and can be of type vault, erc20, etc.
598
- * @returns Array of supported reserves
808
+ * @returns {readonly Address[]} - Array of supported reserves
599
809
  */
600
810
  getSupportedReserves() {
601
811
  return [...moneyMarketReserveAssets];