@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,5 +1,6 @@
1
1
  import { type EvmHubProvider, type IntentRelayRequest, type PacketData, type RelayErrorCode, type SpokeProvider, type WaitUntilIntentExecutedPayload } from '../../index.js';
2
- import type { Address, EvmRawTransactionReceipt, FeeAmount, Hash, Hex, HttpUrl, IntentErrorResponse, IntentExecutionRequest, IntentExecutionResponse, IntentQuoteRequest, IntentQuoteResponse, IntentRelayChainId, IntentStatusRequest, IntentStatusResponse, PartnerFee, Result, SolverConfigParams, SpokeChainId, TxReturnType } from '../../types.js';
2
+ import type { FeeAmount, HttpUrl, IntentErrorResponse, IntentExecutionRequest, IntentExecutionResponse, IntentQuoteRequest, IntentQuoteResponse, IntentRelayChainId, IntentStatusRequest, IntentStatusResponse, PartnerFee, Result, SolverConfigParams, TxReturnType } from '../../types.js';
3
+ import { type SpokeChainId, type Address, type Hex, type EvmRawTransactionReceipt, type Hash } from '@sodax/types';
3
4
  export type CreateIntentParams = {
4
5
  inputToken: string;
5
6
  outputToken: string;
@@ -75,25 +76,33 @@ export declare class SolverService {
75
76
  * @returns {Promise<Result<IntentQuoteResponse, IntentErrorResponse>>} The intent quote response
76
77
  *
77
78
  * @example
78
- * // payload
79
- * {
80
- * "token_src":"0x13b70564b1ec12876b20fab5d1bb630311312f4f", // Asset BSC
81
- * "token_dst":"0xdcd9578b51ef55239b6e68629d822a8d97c95b86", // Asset ETH Arbitrum
82
- * "token_src_blockchain_id":"56",
83
- * "token_dst_blockchain_id":"42161",
79
+ * const payload = {
80
+ * "token_src":"0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
81
+ * "token_dst":"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
82
+ * "token_src_blockchain_id":"0x38.bsc",
83
+ * "token_dst_blockchain_id":"0xa4b1.arbitrum",
84
84
  * "amount":1000000000000000n,
85
85
  * "quote_type": "exact_input"
86
86
  * } satisfies IntentQuoteRequest
87
- * // response
88
- * {
89
- * "quoted_amount": "1000000000000000"
90
- * } satisfies IntentQuoteResponse
87
+ *
88
+ * const response = await solverService.getQuote(payload);
89
+ *
90
+ * if (response.ok) {
91
+ * const quotedAmount = response.value.quoted_amount;
92
+ * console.log('Quoted amount:', quotedAmount);
93
+ * } else {
94
+ * console.error('Quote failed:', response.error);
95
+ * }
91
96
  */
92
97
  getQuote(payload: IntentQuoteRequest): Promise<Result<IntentQuoteResponse, IntentErrorResponse>>;
93
98
  /**
94
99
  * Get the fee for a given input amount
95
100
  * @param {bigint} inputAmount - The amount of input tokens
96
101
  * @returns {Promise<bigint>} The fee amount (denominated in input tokens)
102
+ *
103
+ * @example
104
+ * const fee: bigint = await solverService.getFee(1000000000000000n);
105
+ * console.log('Fee:', fee);
97
106
  */
98
107
  getFee(inputAmount: bigint): Promise<bigint>;
99
108
  /**
@@ -102,38 +111,39 @@ export declare class SolverService {
102
111
  * @returns {Promise<Result<IntentStatusResponse, IntentErrorResponse>>} The intent status response
103
112
  *
104
113
  * @example
105
- * // request
106
- * {
114
+ * const intentStatusRequest = {
107
115
  * "intentHash": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
108
- * }
109
- * // response
110
- * {
111
- * "status": 3,
112
- * "intent_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af"
116
+ * } satisfies IntentStatusRequest
117
+ *
118
+ * const response = await solverService.getStatus(intentStatusRequest);
119
+ *
120
+ * if (response.ok) {
121
+ * const { status, intent_hash } = response.value;
122
+ * console.log('Status:', status);
123
+ * console.log('Intent hash:', intent_hash);
124
+ * } else {
125
+ * // handle error
113
126
  * }
114
127
  */
115
128
  getStatus(intentStatusRequest: IntentStatusRequest): Promise<Result<IntentStatusResponse, IntentErrorResponse>>;
116
129
  /**
117
- * Post execution of intent order to Solver API
130
+ * Post execution of intent order transaction executed on hub chain to Solver API
118
131
  * @param {IntentExecutionRequest} intentExecutionRequest - The intent execution request
119
132
  * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The intent execution response
120
133
  *
121
134
  * @example
122
- * // request
123
- * {
135
+ * const intentExecutionRequest = {
124
136
  * "intent_tx_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af",
125
- * "quote_uuid": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
126
- * }
137
+ * } satisfies IntentExecutionRequest
138
+ *
139
+ * const response = await solverService.postExecution(intentExecutionRequest);
127
140
  *
128
- * // response
129
- * {
130
- * "ok": true,
131
- * "value": {
132
- * "output": {
133
- * "answer":"OK",
134
- * "task_id":"a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
135
- * }
136
- * }
141
+ * if (response.ok) {
142
+ * const { answer, intent_hash } = response.value;
143
+ * console.log('Answer:', answer);
144
+ * console.log('Intent hash:', intent_hash);
145
+ * } else {
146
+ * // handle error
137
147
  * }
138
148
  */
139
149
  postExecution(intentExecutionRequest: IntentExecutionRequest): Promise<Result<IntentExecutionResponse, IntentErrorResponse>>;
@@ -141,8 +151,35 @@ export declare class SolverService {
141
151
  * Creates an intent and submits it to the Solver API and Relayer API
142
152
  * @param {CreateIntentParams} payload - The intent to create
143
153
  * @param {ISpokeProvider} spokeProvider - The spoke provider
144
- * @param {number} timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
145
- * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The encoded contract call
154
+ * @param {number} timeout - The timeout in milliseconds for the transaction. Default is 60 seconds.
155
+ * @returns {Promise<Result<[IntentExecutionResponse, Intent, PacketData], IntentSubmitError<IntentSubmitErrorCode>>>} The intent execution response, intent, and packet data
156
+ *
157
+ * @example
158
+ * const payload = {
159
+ * "inputToken": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
160
+ * "outputToken": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
161
+ * "inputAmount": 1000000000000000n, // The amount of input tokens
162
+ * "minOutputAmount": 900000000000000n, // min amount you are expecting to receive
163
+ * "deadline": 0n, // Optional timestamp after which intent expires (0 = no deadline)
164
+ * "allowPartialFill": false, // Whether the intent can be partially filled
165
+ * "srcChain": "0x38.bsc", // Chain ID where input tokens originate
166
+ * "dstChain": "0xa4b1.arbitrum", // Chain ID where output tokens should be delivered
167
+ * "srcAddress": "0x..", // Source address in bytes (original address on spoke chain)
168
+ * "dstAddress": "0x...", // Destination address in bytes (original address on spoke chain)
169
+ * "solver": "0x..", // Optional specific solver address (address(0) = any solver)
170
+ * "data": "0x..", // Additional arbitrary data
171
+ * } satisfies CreateIntentParams;
172
+ *
173
+ * const createAndSubmitIntentResult = await solverService.createAndSubmitIntent(payload, spokeProvider);
174
+ *
175
+ * if (createAndSubmitIntentResult.ok) {
176
+ * const [intentExecutionResponse, intent, packetData] = createAndSubmitIntentResult.value;
177
+ * console.log('Intent execution response:', intentExecutionResponse);
178
+ * console.log('Intent:', intent);
179
+ * console.log('Packet data:', packetData);
180
+ * } else {
181
+ * // handle error
182
+ * }
146
183
  */
147
184
  createAndSubmitIntent<S extends SpokeProvider>(payload: CreateIntentParams, spokeProvider: S, fee?: PartnerFee, timeout?: number): Promise<Result<[IntentExecutionResponse, Intent, PacketData], IntentSubmitError<IntentSubmitErrorCode>>>;
148
185
  /**
@@ -150,14 +187,55 @@ export declare class SolverService {
150
187
  * @param {CreateIntentParams} params - The intent to create
151
188
  * @param {SpokeProvider} spokeProvider - The spoke provider
152
189
  * @return {Promise<Result<boolean>>} - valid = true, invalid = false
190
+ *
191
+ * @example
192
+ * const payload = {
193
+ * "inputToken": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
194
+ * "outputToken": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
195
+ * "inputAmount": 1000000000000000n, // The amount of input tokens
196
+ * "minOutputAmount": 900000000000000n, // min amount you are expecting to receive
197
+ * "deadline": 0n, // Optional timestamp after which intent expires (0 = no deadline)
198
+ * "allowPartialFill": false, // Whether the intent can be partially filled
199
+ * "srcChain": "0x38.bsc", // Chain ID where input tokens originate
200
+ * "dstChain": "0xa4b1.arbitrum", // Chain ID where output tokens should be delivered
201
+ * "srcAddress": "0x..", // Source address in bytes (original address on spoke chain)
202
+ * "dstAddress": "0x...", // Destination address in bytes (original address on spoke chain)
203
+ * "solver": "0x..", // Optional specific solver address (address(0) = any solver)
204
+ * "data": "0x..", // Additional arbitrary data
205
+ * } satisfies CreateIntentParams;
206
+ *
207
+ * const isAllowanceValid = await solverService.isAllowanceValid(payload, spokeProvider);
208
+ *
209
+ * if (!allowanceValid.ok) {
210
+ * // Handle error
211
+ * }
212
+ *
213
+ * if (!allowanceValid.value) {
214
+ * // Need to approve
215
+ * }
153
216
  */
154
217
  isAllowanceValid<S extends SpokeProvider>(params: CreateIntentParams, spokeProvider: S): Promise<Result<boolean>>;
155
218
  /**
156
- * Approve ERC20 amount spending
219
+ * Approve amount spending (currently required for EVM only)
157
220
  * @param token - ERC20 token address
158
221
  * @param amount - Amount to approve
159
- * @param address - Address to approve spending for
222
+ * @param spender - Spender address
160
223
  * @param spokeProvider - Spoke provider
224
+ * @returns {Promise<Result<EvmRawTransactionReceipt>>} - Returns the transaction receipt
225
+ *
226
+ * @example
227
+ * const approveResult = await approve(
228
+ * '0x...', // ERC20 token address
229
+ * 1000n, // Amount to approve (in token decimals)
230
+ * '0x...', // Spender address (usually the asset manager contract: spokeProvider.chainConfig.addresses.assetManager)
231
+ * spokeProvider
232
+ * );
233
+ *
234
+ * if (!approveResult.ok) {
235
+ * // Handle error
236
+ * }
237
+ *
238
+ * const txReceipt = approveResult.value;
161
239
  */
162
240
  approve<S extends SpokeProvider>(token: Address, amount: bigint, address: Address, spokeProvider: S): Promise<Result<EvmRawTransactionReceipt>>;
163
241
  /**
@@ -167,7 +245,30 @@ export declare class SolverService {
167
245
  * @param {SpokeProvider} spokeProvider - The spoke provider
168
246
  * @param {boolean} raw - Whether to return the raw transaction
169
247
  * @param {PartnerFee} fee - The fee to apply to the intent
170
- * @returns {Promise<[TxReturnType<T, R>, Intent]>} The encoded contract call
248
+ * @returns {Promise<Result<[TxReturnType<S, R>, Intent & FeeAmount], IntentSubmitError<'CREATION_FAILED'>>>} The encoded contract call
249
+ *
250
+ * @example
251
+ * const payload = {
252
+ * "inputToken": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
253
+ * "outputToken": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
254
+ * "inputAmount": 1000000000000000n, // The amount of input tokens
255
+ * "minOutputAmount": 900000000000000n, // min amount you are expecting to receive
256
+ * "deadline": 0n, // Optional timestamp after which intent expires (0 = no deadline)
257
+ * "allowPartialFill": false, // Whether the intent can be partially filled
258
+ * "srcChain": "0x38.bsc", // Chain ID where input tokens originate
259
+ * "dstChain": "0xa4b1.arbitrum", // Chain ID where output tokens should be delivered
260
+ * "srcAddress": "0x..", // Source address in bytes (original address on spoke chain)
261
+ * "dstAddress": "0x...", // Destination address in bytes (original address on spoke chain)
262
+ * "solver": "0x..", // Optional specific solver address (address(0) = any solver)
263
+ * "data": "0x..", // Additional arbitrary data
264
+ * } satisfies CreateIntentParams;
265
+ *
266
+ * const createIntentResult = await solverService.createIntent(payload, spokeProvider);
267
+ *
268
+ * if (createIntentResult.ok) {
269
+ * const [txResult, intent] = createIntentResult.value;
270
+ * console.log('Intent:', intent);
271
+ *
171
272
  */
172
273
  createIntent<S extends SpokeProvider, R extends boolean = false>(params: CreateIntentParams, spokeProvider: S, fee?: PartnerFee, raw?: R): Promise<Result<[TxReturnType<S, R>, Intent & FeeAmount], IntentSubmitError<'CREATION_FAILED'>>>;
173
274
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SolverService.d.ts","sourceRoot":"","sources":["../../../src/services/solver/SolverService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SolverService.d.ts","sourceRoot":"","sources":["../../../src/services/solver/SolverService.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,8BAA8B,EAWpC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEV,SAAS,EAET,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,MAAM,EACN,kBAAkB,EAElB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,wBAAwB,EAC7B,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,GAAG,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,GAAG,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAGF,oBAAY,cAAc;IACxB,GAAG,IAAI;CACR;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4CAA4C,GAAG;IACzD,OAAO,EAAE,8BAA8B,CAAC;IACxC,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,SAAS,GAAG,iBAAiB,CAAC;AACnF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,qBAAqB,IAAI,CAAC,SAAS,SAAS,GACpF,4CAA4C,GAC5C,CAAC,SAAS,iBAAiB,GACzB,6BAA6B,GAC7B,CAAC,SAAS,kBAAkB,GAC1B,6BAA6B,GAC7B,CAAC,SAAS,uBAAuB,GAC/B,mBAAmB,GACnB,KAAK,CAAC;AAEhB,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IAC/D,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC;AAEF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;gBAG3C,MAAM,EAAE,kBAAkB,GAAG,SAAS,EACtC,WAAW,EAAE,cAAc,EAC3B,kBAAkB,CAAC,EAAE,OAAO;IAyB9B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAI7G;;;;;;;;OAQG;IACU,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzD;;;;;;;;;;;;;;;;;;;OAmBG;IACU,SAAS,CACpB,mBAAmB,EAAE,mBAAmB,GACvC,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IAI7D;;;;;;;;;;;;;;;;;;;OAmBG;IACU,aAAa,CACxB,sBAAsB,EAAE,sBAAsB,GAC7C,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;IAIhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACU,qBAAqB,CAAC,CAAC,SAAS,aAAa,EACxD,OAAO,EAAE,kBAAkB,EAC3B,aAAa,EAAE,CAAC,EAChB,GAAG,CAAC,EAAE,UAAU,EAChB,OAAO,SAA2B,GACjC,OAAO,CAAC,MAAM,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAkF3G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACU,gBAAgB,CAAC,CAAC,SAAS,aAAa,EACnD,MAAM,EAAE,kBAAkB,EAC1B,aAAa,EAAE,CAAC,GACf,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAyB3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,OAAO,CAAC,CAAC,SAAS,aAAa,EAC1C,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,CAAC,GACf,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAkB5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACU,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EAC1E,MAAM,EAAE,kBAAkB,EAC1B,aAAa,EAAE,CAAC,EAChB,GAAG,CAAC,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,CAAC,GACN,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IA6DlG;;;;;;OAMG;IACU,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EAC1E,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,CAAC,EAChB,GAAG,CAAC,EAAE,CAAC,GACN,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAmB9B;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C;;;;OAIG;IACI,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG1C"}
@@ -1,8 +1,9 @@
1
1
  import invariant from 'tiny-invariant';
2
- import { DEFAULT_RELAYER_API_ENDPOINT, DEFAULT_RELAY_TX_TIMEOUT, Erc20Service, EvmSpokeProvider, SONIC_MAINNET_CHAIN_ID, SpokeService, calculateFeeAmount, encodeContractCalls, getIntentRelayChainId, getSolverConfig, isConfiguredSolverConfig, isValidIntentRelayChainId, isValidOriginalAssetAddress, isValidSpokeChainId, submitTransaction, waitUntilIntentExecuted, } from '../../index.js';
2
+ import { DEFAULT_RELAYER_API_ENDPOINT, DEFAULT_RELAY_TX_TIMEOUT, Erc20Service, EvmSpokeProvider, SpokeService, calculateFeeAmount, encodeContractCalls, getIntentRelayChainId, getSolverConfig, isConfiguredSolverConfig, isValidIntentRelayChainId, isValidOriginalAssetAddress, isValidSpokeChainId, submitTransaction, waitUntilIntentExecuted, } from '../../index.js';
3
3
  import { EvmWalletAbstraction } from '../hub/EvmWalletAbstraction.js';
4
4
  import { EvmSolverService } from './EvmSolverService.js';
5
5
  import { SolverApiService } from './SolverApiService.js';
6
+ import { SONIC_MAINNET_CHAIN_ID, } from '@sodax/types';
6
7
  // Data types for arbitrary data
7
8
  export var IntentDataType;
8
9
  (function (IntentDataType) {
@@ -42,19 +43,23 @@ export class SolverService {
42
43
  * @returns {Promise<Result<IntentQuoteResponse, IntentErrorResponse>>} The intent quote response
43
44
  *
44
45
  * @example
45
- * // payload
46
- * {
47
- * "token_src":"0x13b70564b1ec12876b20fab5d1bb630311312f4f", // Asset BSC
48
- * "token_dst":"0xdcd9578b51ef55239b6e68629d822a8d97c95b86", // Asset ETH Arbitrum
49
- * "token_src_blockchain_id":"56",
50
- * "token_dst_blockchain_id":"42161",
46
+ * const payload = {
47
+ * "token_src":"0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
48
+ * "token_dst":"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
49
+ * "token_src_blockchain_id":"0x38.bsc",
50
+ * "token_dst_blockchain_id":"0xa4b1.arbitrum",
51
51
  * "amount":1000000000000000n,
52
52
  * "quote_type": "exact_input"
53
53
  * } satisfies IntentQuoteRequest
54
- * // response
55
- * {
56
- * "quoted_amount": "1000000000000000"
57
- * } satisfies IntentQuoteResponse
54
+ *
55
+ * const response = await solverService.getQuote(payload);
56
+ *
57
+ * if (response.ok) {
58
+ * const quotedAmount = response.value.quoted_amount;
59
+ * console.log('Quoted amount:', quotedAmount);
60
+ * } else {
61
+ * console.error('Quote failed:', response.error);
62
+ * }
58
63
  */
59
64
  async getQuote(payload) {
60
65
  return SolverApiService.getQuote(payload, this.config);
@@ -63,6 +68,10 @@ export class SolverService {
63
68
  * Get the fee for a given input amount
64
69
  * @param {bigint} inputAmount - The amount of input tokens
65
70
  * @returns {Promise<bigint>} The fee amount (denominated in input tokens)
71
+ *
72
+ * @example
73
+ * const fee: bigint = await solverService.getFee(1000000000000000n);
74
+ * console.log('Fee:', fee);
66
75
  */
67
76
  async getFee(inputAmount) {
68
77
  if (!this.config.partnerFee) {
@@ -76,40 +85,41 @@ export class SolverService {
76
85
  * @returns {Promise<Result<IntentStatusResponse, IntentErrorResponse>>} The intent status response
77
86
  *
78
87
  * @example
79
- * // request
80
- * {
88
+ * const intentStatusRequest = {
81
89
  * "intentHash": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
82
- * }
83
- * // response
84
- * {
85
- * "status": 3,
86
- * "intent_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af"
90
+ * } satisfies IntentStatusRequest
91
+ *
92
+ * const response = await solverService.getStatus(intentStatusRequest);
93
+ *
94
+ * if (response.ok) {
95
+ * const { status, intent_hash } = response.value;
96
+ * console.log('Status:', status);
97
+ * console.log('Intent hash:', intent_hash);
98
+ * } else {
99
+ * // handle error
87
100
  * }
88
101
  */
89
102
  async getStatus(intentStatusRequest) {
90
103
  return SolverApiService.getStatus(intentStatusRequest, this.config);
91
104
  }
92
105
  /**
93
- * Post execution of intent order to Solver API
106
+ * Post execution of intent order transaction executed on hub chain to Solver API
94
107
  * @param {IntentExecutionRequest} intentExecutionRequest - The intent execution request
95
108
  * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The intent execution response
96
109
  *
97
110
  * @example
98
- * // request
99
- * {
111
+ * const intentExecutionRequest = {
100
112
  * "intent_tx_hash": "0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af",
101
- * "quote_uuid": "a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
102
- * }
113
+ * } satisfies IntentExecutionRequest
114
+ *
115
+ * const response = await solverService.postExecution(intentExecutionRequest);
103
116
  *
104
- * // response
105
- * {
106
- * "ok": true,
107
- * "value": {
108
- * "output": {
109
- * "answer":"OK",
110
- * "task_id":"a0dd7652-b360-4123-ab2d-78cfbcd20c6b"
111
- * }
112
- * }
117
+ * if (response.ok) {
118
+ * const { answer, intent_hash } = response.value;
119
+ * console.log('Answer:', answer);
120
+ * console.log('Intent hash:', intent_hash);
121
+ * } else {
122
+ * // handle error
113
123
  * }
114
124
  */
115
125
  async postExecution(intentExecutionRequest) {
@@ -119,8 +129,35 @@ export class SolverService {
119
129
  * Creates an intent and submits it to the Solver API and Relayer API
120
130
  * @param {CreateIntentParams} payload - The intent to create
121
131
  * @param {ISpokeProvider} spokeProvider - The spoke provider
122
- * @param {number} timeout - The timeout in milliseconds for the transaction. Default is 20 seconds.
123
- * @returns {Promise<Result<IntentExecutionResponse, IntentErrorResponse>>} The encoded contract call
132
+ * @param {number} timeout - The timeout in milliseconds for the transaction. Default is 60 seconds.
133
+ * @returns {Promise<Result<[IntentExecutionResponse, Intent, PacketData], IntentSubmitError<IntentSubmitErrorCode>>>} The intent execution response, intent, and packet data
134
+ *
135
+ * @example
136
+ * const payload = {
137
+ * "inputToken": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
138
+ * "outputToken": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
139
+ * "inputAmount": 1000000000000000n, // The amount of input tokens
140
+ * "minOutputAmount": 900000000000000n, // min amount you are expecting to receive
141
+ * "deadline": 0n, // Optional timestamp after which intent expires (0 = no deadline)
142
+ * "allowPartialFill": false, // Whether the intent can be partially filled
143
+ * "srcChain": "0x38.bsc", // Chain ID where input tokens originate
144
+ * "dstChain": "0xa4b1.arbitrum", // Chain ID where output tokens should be delivered
145
+ * "srcAddress": "0x..", // Source address in bytes (original address on spoke chain)
146
+ * "dstAddress": "0x...", // Destination address in bytes (original address on spoke chain)
147
+ * "solver": "0x..", // Optional specific solver address (address(0) = any solver)
148
+ * "data": "0x..", // Additional arbitrary data
149
+ * } satisfies CreateIntentParams;
150
+ *
151
+ * const createAndSubmitIntentResult = await solverService.createAndSubmitIntent(payload, spokeProvider);
152
+ *
153
+ * if (createAndSubmitIntentResult.ok) {
154
+ * const [intentExecutionResponse, intent, packetData] = createAndSubmitIntentResult.value;
155
+ * console.log('Intent execution response:', intentExecutionResponse);
156
+ * console.log('Intent:', intent);
157
+ * console.log('Packet data:', packetData);
158
+ * } else {
159
+ * // handle error
160
+ * }
124
161
  */
125
162
  async createAndSubmitIntent(payload, spokeProvider, fee, timeout = DEFAULT_RELAY_TX_TIMEOUT) {
126
163
  try {
@@ -200,11 +237,38 @@ export class SolverService {
200
237
  * @param {CreateIntentParams} params - The intent to create
201
238
  * @param {SpokeProvider} spokeProvider - The spoke provider
202
239
  * @return {Promise<Result<boolean>>} - valid = true, invalid = false
240
+ *
241
+ * @example
242
+ * const payload = {
243
+ * "inputToken": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
244
+ * "outputToken": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
245
+ * "inputAmount": 1000000000000000n, // The amount of input tokens
246
+ * "minOutputAmount": 900000000000000n, // min amount you are expecting to receive
247
+ * "deadline": 0n, // Optional timestamp after which intent expires (0 = no deadline)
248
+ * "allowPartialFill": false, // Whether the intent can be partially filled
249
+ * "srcChain": "0x38.bsc", // Chain ID where input tokens originate
250
+ * "dstChain": "0xa4b1.arbitrum", // Chain ID where output tokens should be delivered
251
+ * "srcAddress": "0x..", // Source address in bytes (original address on spoke chain)
252
+ * "dstAddress": "0x...", // Destination address in bytes (original address on spoke chain)
253
+ * "solver": "0x..", // Optional specific solver address (address(0) = any solver)
254
+ * "data": "0x..", // Additional arbitrary data
255
+ * } satisfies CreateIntentParams;
256
+ *
257
+ * const isAllowanceValid = await solverService.isAllowanceValid(payload, spokeProvider);
258
+ *
259
+ * if (!allowanceValid.ok) {
260
+ * // Handle error
261
+ * }
262
+ *
263
+ * if (!allowanceValid.value) {
264
+ * // Need to approve
265
+ * }
203
266
  */
204
267
  async isAllowanceValid(params, spokeProvider) {
205
268
  try {
206
269
  if (spokeProvider instanceof EvmSpokeProvider) {
207
- return Erc20Service.isAllowanceValid(params.inputToken, params.inputAmount, spokeProvider.walletProvider.getWalletAddress(), spokeProvider.chainConfig.addresses.assetManager, spokeProvider);
270
+ const walletAddress = (await spokeProvider.walletProvider.getWalletAddress());
271
+ return Erc20Service.isAllowanceValid(params.inputToken, params.inputAmount, walletAddress, spokeProvider.chainConfig.addresses.assetManager, spokeProvider);
208
272
  }
209
273
  return {
210
274
  ok: true,
@@ -219,11 +283,26 @@ export class SolverService {
219
283
  }
220
284
  }
221
285
  /**
222
- * Approve ERC20 amount spending
286
+ * Approve amount spending (currently required for EVM only)
223
287
  * @param token - ERC20 token address
224
288
  * @param amount - Amount to approve
225
- * @param address - Address to approve spending for
289
+ * @param spender - Spender address
226
290
  * @param spokeProvider - Spoke provider
291
+ * @returns {Promise<Result<EvmRawTransactionReceipt>>} - Returns the transaction receipt
292
+ *
293
+ * @example
294
+ * const approveResult = await approve(
295
+ * '0x...', // ERC20 token address
296
+ * 1000n, // Amount to approve (in token decimals)
297
+ * '0x...', // Spender address (usually the asset manager contract: spokeProvider.chainConfig.addresses.assetManager)
298
+ * spokeProvider
299
+ * );
300
+ *
301
+ * if (!approveResult.ok) {
302
+ * // Handle error
303
+ * }
304
+ *
305
+ * const txReceipt = approveResult.value;
227
306
  */
228
307
  async approve(token, amount, address, spokeProvider) {
229
308
  try {
@@ -249,7 +328,30 @@ export class SolverService {
249
328
  * @param {SpokeProvider} spokeProvider - The spoke provider
250
329
  * @param {boolean} raw - Whether to return the raw transaction
251
330
  * @param {PartnerFee} fee - The fee to apply to the intent
252
- * @returns {Promise<[TxReturnType<T, R>, Intent]>} The encoded contract call
331
+ * @returns {Promise<Result<[TxReturnType<S, R>, Intent & FeeAmount], IntentSubmitError<'CREATION_FAILED'>>>} The encoded contract call
332
+ *
333
+ * @example
334
+ * const payload = {
335
+ * "inputToken": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8", // BSC ETH token address
336
+ * "outputToken": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", // ARB WBTC token address
337
+ * "inputAmount": 1000000000000000n, // The amount of input tokens
338
+ * "minOutputAmount": 900000000000000n, // min amount you are expecting to receive
339
+ * "deadline": 0n, // Optional timestamp after which intent expires (0 = no deadline)
340
+ * "allowPartialFill": false, // Whether the intent can be partially filled
341
+ * "srcChain": "0x38.bsc", // Chain ID where input tokens originate
342
+ * "dstChain": "0xa4b1.arbitrum", // Chain ID where output tokens should be delivered
343
+ * "srcAddress": "0x..", // Source address in bytes (original address on spoke chain)
344
+ * "dstAddress": "0x...", // Destination address in bytes (original address on spoke chain)
345
+ * "solver": "0x..", // Optional specific solver address (address(0) = any solver)
346
+ * "data": "0x..", // Additional arbitrary data
347
+ * } satisfies CreateIntentParams;
348
+ *
349
+ * const createIntentResult = await solverService.createIntent(payload, spokeProvider);
350
+ *
351
+ * if (createIntentResult.ok) {
352
+ * const [txResult, intent] = createIntentResult.value;
353
+ * console.log('Intent:', intent);
354
+ *
253
355
  */
254
356
  async createIntent(params, spokeProvider, fee, raw) {
255
357
  invariant(isValidOriginalAssetAddress(params.srcChain, params.inputToken), `Unsupported spoke chain token (params.srcChain): ${params.srcChain}, params.inputToken): ${params.inputToken}`);
@@ -257,12 +359,14 @@ export class SolverService {
257
359
  invariant(isValidSpokeChainId(params.srcChain), `Invalid spoke chain (params.srcChain): ${params.srcChain}`);
258
360
  invariant(isValidSpokeChainId(params.dstChain), `Invalid spoke chain (params.dstChain): ${params.dstChain}`);
259
361
  try {
362
+ const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
260
363
  // derive users hub wallet address
261
- const creatorHubWalletAddress = await EvmWalletAbstraction.getUserHubWalletAddress(params.srcChain, spokeProvider.walletProvider.getWalletAddressBytes(), this.hubProvider);
364
+ const creatorHubWalletAddress = await EvmWalletAbstraction.getUserHubWalletAddress(params.srcChain, walletAddressBytes, this.hubProvider);
262
365
  // construct the intent data
263
366
  const [data, intent, feeAmount] = EvmSolverService.constructCreateIntentData(params, creatorHubWalletAddress, this.config, fee);
367
+ const walletAddress = (await spokeProvider.walletProvider.getWalletAddress());
264
368
  const txResult = await SpokeService.deposit({
265
- from: spokeProvider.walletProvider.getWalletAddress(),
369
+ from: walletAddress,
266
370
  to: creatorHubWalletAddress,
267
371
  token: params.inputToken,
268
372
  amount: params.inputAmount + feeAmount,
@@ -296,8 +400,9 @@ export class SolverService {
296
400
  async cancelIntent(intent, spokeProvider, raw) {
297
401
  invariant(isValidIntentRelayChainId(intent.srcChain), `Invalid intent.srcChain: ${intent.srcChain}`);
298
402
  invariant(isValidIntentRelayChainId(intent.dstChain), `Invalid intent.dstChain: ${intent.dstChain}`);
403
+ const walletAddressBytes = await spokeProvider.walletProvider.getWalletAddressBytes();
299
404
  // derive users hub wallet address
300
- const creatorHubWalletAddress = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, spokeProvider.walletProvider.getWalletAddressBytes(), this.hubProvider);
405
+ const creatorHubWalletAddress = await EvmWalletAbstraction.getUserHubWalletAddress(spokeProvider.chainConfig.chain.id, walletAddressBytes, this.hubProvider);
301
406
  const calls = [];
302
407
  const intentsContract = this.config.intentsContract;
303
408
  calls.push(EvmSolverService.encodeCancelIntent(intent, intentsContract));
@@ -1 +1 @@
1
- {"version":3,"file":"SolverService.js","sourceRoot":"","sources":["../../../src/services/solver/SolverService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SolverService.js","sourceRoot":"","sources":["../../../src/services/solver/SolverService.ts"],"names":[],"mappings":"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"}