@skip-go/client 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/cjs/{chunk-IDEJORRT.cjs → chunk-23YF4LFI.cjs} +30 -0
  2. package/dist/cjs/chunk-4YTACAVP.cjs +185 -0
  3. package/dist/cjs/{chunk-46VB6RQK.cjs → chunk-CUDPMOR6.cjs} +10 -3
  4. package/dist/cjs/chunk-GCJO6DZD.cjs +55 -0
  5. package/dist/cjs/{chunk-ZKBSNSHQ.cjs → chunk-HHZGD62Y.cjs} +120 -116
  6. package/dist/cjs/{chunk-ZAATXQBG.cjs → chunk-K4YAPDUE.cjs} +2 -2
  7. package/dist/cjs/{chunk-7MC3BVQN.cjs → chunk-UIQML2XG.cjs} +113 -28
  8. package/dist/cjs/chunk-VF65UG3E.cjs +214 -0
  9. package/dist/cjs/{chunk-Q43XCBMX.cjs → chunk-W3KF3V57.cjs} +4 -4
  10. package/dist/cjs/{chunk-6LA66667.cjs → chunk-X22PL5T7.cjs} +3 -3
  11. package/dist/cjs/index.cjs +26 -20
  12. package/dist/cjs/public-functions/executeMultipleRoutes.cjs +29 -0
  13. package/dist/cjs/public-functions/executeRoute.cjs +8 -7
  14. package/dist/cjs/public-functions/getFeeInfoForChain.cjs +3 -3
  15. package/dist/cjs/public-functions/getRecommendedGasPrice.cjs +4 -4
  16. package/dist/cjs/public-functions/getSigningStargateClient.cjs +3 -3
  17. package/dist/cjs/public-functions/setClientOptions.cjs +2 -2
  18. package/dist/cjs/public-functions/subscribeToRouteStatus.cjs +5 -5
  19. package/dist/cjs/public-functions/validateCosmosGasBalance.cjs +5 -5
  20. package/dist/esm/{callbacks-B3kjKg0v.d.ts → callbacks-CvqAtBJq.d.ts} +19 -64
  21. package/dist/esm/chunk-7RS3YIVC.js +53 -0
  22. package/dist/esm/chunk-AZALP3WR.js +212 -0
  23. package/dist/esm/{chunk-CIAOTO3M.js → chunk-CX5N7ZLJ.js} +1 -1
  24. package/dist/esm/chunk-IUYOY23L.js +180 -0
  25. package/dist/esm/{chunk-GHNH5QC3.js → chunk-JKN4E5VN.js} +9 -2
  26. package/dist/esm/{chunk-4RLJWCQR.js → chunk-KLGGCB73.js} +1 -1
  27. package/dist/esm/{chunk-KYDY7QRT.js → chunk-MPSXXWKL.js} +1 -1
  28. package/dist/esm/{chunk-BAJFQZDT.js → chunk-MTAS5XMN.js} +99 -96
  29. package/dist/esm/{chunk-RQ7DXNSS.js → chunk-VUXLWWLF.js} +113 -28
  30. package/dist/esm/{chunk-REWUSU53.js → chunk-WBZVMPPV.js} +30 -0
  31. package/dist/esm/client-types-Dk6ypWdO.d.ts +114 -0
  32. package/dist/esm/index.d.ts +4 -3
  33. package/dist/esm/index.js +12 -10
  34. package/dist/esm/public-functions/executeMultipleRoutes.d.ts +60 -0
  35. package/dist/esm/public-functions/executeMultipleRoutes.js +20 -0
  36. package/dist/esm/public-functions/executeRoute.d.ts +3 -3
  37. package/dist/esm/public-functions/executeRoute.js +7 -6
  38. package/dist/esm/public-functions/getEvmGasAmountForMessage.d.ts +4 -1
  39. package/dist/esm/public-functions/getFeeInfoForChain.js +2 -2
  40. package/dist/esm/public-functions/getRecommendedGasPrice.js +3 -3
  41. package/dist/esm/public-functions/getSigningStargateClient.js +2 -2
  42. package/dist/esm/public-functions/setClientOptions.d.ts +4 -2
  43. package/dist/esm/public-functions/setClientOptions.js +1 -1
  44. package/dist/esm/public-functions/subscribeToRouteStatus.d.ts +3 -3
  45. package/dist/esm/public-functions/subscribeToRouteStatus.js +1 -1
  46. package/dist/esm/public-functions/validateCosmosGasBalance.d.ts +5 -4
  47. package/dist/esm/public-functions/validateCosmosGasBalance.js +4 -4
  48. package/dist/esm/public-functions/waitForTransaction.d.ts +3 -3
  49. package/dist/esm/{setClientOptions-BTRwCbmt.d.ts → setClientOptions-BD8e7m2x.d.ts} +1 -1
  50. package/package.json +1 -1
  51. package/dist/cjs/chunk-VIG2BHYJ.cjs +0 -185
  52. package/dist/esm/chunk-3J6O2PVK.js +0 -180
  53. package/dist/esm/client-types-B7Fin0mq.d.ts +0 -61
@@ -142,12 +142,12 @@ var isFinalRouteStatus = (routeDetails) => {
142
142
  return false;
143
143
  };
144
144
  var isFinalState = (transaction) => {
145
- const transactionState = transaction?.statusResponse?.state;
145
+ const transactionState = transaction?.statusResponse?.transfers?.[0]?.state;
146
146
  const transactionStatus2 = transaction?.status;
147
147
  return transactionState === "STATE_COMPLETED_SUCCESS" || transactionState === "STATE_COMPLETED_ERROR" || transactionState === "STATE_ABANDONED" || transactionStatus2 === "failed" || transactionStatus2 === "success";
148
148
  };
149
149
  var isSuccessState = (transaction) => {
150
- const transactionState = transaction?.statusResponse?.state;
150
+ const transactionState = transaction?.statusResponse?.transfers?.[0]?.state;
151
151
  const transactionStatus2 = transaction?.status;
152
152
  return transactionState === "STATE_COMPLETED_SUCCESS" || transactionStatus2 === "success";
153
153
  };
@@ -163,22 +163,36 @@ var initializeNewRouteDetails = (options) => {
163
163
  txsSigned: 0,
164
164
  transactionDetails: [],
165
165
  transferEvents: [],
166
- senderAddress: options?.userAddresses?.[0]?.address ?? "",
167
- receiverAddress: options?.userAddresses?.at(-1)?.address ?? ""
166
+ relatedRoutes: [],
167
+ userAddresses: options?.userAddresses ?? []
168
168
  };
169
169
  routeDetailsMap.set(newRouteId, newRouteDetails);
170
170
  return newRouteDetails;
171
171
  };
172
172
  var subscribeToRouteStatus = (props) => {
173
- let cancelled = false;
174
- const unsubscribe = () => {
175
- cancelled = true;
173
+ const { routeDetails, onRouteStatusUpdated } = props;
174
+ const routeList = Array.isArray(routeDetails) ? routeDetails : [routeDetails];
175
+ const cancelFlags = /* @__PURE__ */ new Map();
176
+ const unsubscribers = [];
177
+ for (const route of routeList) {
178
+ const cancelFlag = { cancelled: false };
179
+ cancelFlags.set(route?.id ?? uuid.v4(), cancelFlag);
180
+ const unsubscribe = () => {
181
+ cancelFlag.cancelled = true;
182
+ };
183
+ unsubscribers.push(unsubscribe);
184
+ void executeAndSubscribeToRouteStatus({
185
+ routeDetails: route,
186
+ onRouteStatusUpdated,
187
+ isCancelled: () => cancelFlag.cancelled
188
+ });
189
+ }
190
+ const unsubscribeAll = () => {
191
+ for (const unsubscribe of unsubscribers) {
192
+ unsubscribe();
193
+ }
176
194
  };
177
- executeAndSubscribeToRouteStatus({
178
- ...props,
179
- isCancelled: () => cancelled
180
- });
181
- return unsubscribe;
195
+ return unsubscribeAll;
182
196
  };
183
197
  var executeAndSubscribeToRouteStatus = async ({
184
198
  transactionDetails,
@@ -196,7 +210,9 @@ var executeAndSubscribeToRouteStatus = async ({
196
210
  routeId ??= routeDetails?.id;
197
211
  const currentRouteDetails = routeDetailsMap.get(routeId ?? "");
198
212
  transactionDetails ??= routeDetails?.transactionDetails ?? currentRouteDetails?.transactionDetails ?? [];
199
- if (routeDetails && isFinalRouteStatus(routeDetails)) {
213
+ if (routeDetails && isFinalRouteStatus(routeDetails) && routeDetails?.relatedRoutes?.every(
214
+ (relatedRoute) => isFinalRouteStatus(relatedRoute)
215
+ )) {
200
216
  return;
201
217
  }
202
218
  for (const [transactionIndex, transaction] of transactionDetails.entries()) {
@@ -212,7 +228,11 @@ var executeAndSubscribeToRouteStatus = async ({
212
228
  explorerLink = trackResponse.explorerLink;
213
229
  }
214
230
  transaction.explorerLink = explorerLink;
215
- await onTransactionTracked?.({ txHash: transaction.txHash, chainId: transaction.chainId, explorerLink });
231
+ await onTransactionTracked?.({
232
+ txHash: transaction.txHash,
233
+ chainId: transaction.chainId,
234
+ explorerLink
235
+ });
216
236
  }
217
237
  if (transaction.txHash === void 0) {
218
238
  updateRouteDetails({
@@ -226,10 +246,17 @@ var executeAndSubscribeToRouteStatus = async ({
226
246
  });
227
247
  return;
228
248
  }
229
- while (!isFinalState(transaction)) {
249
+ while (true) {
250
+ const updatedRouteDetails = routeDetailsMap.get(routeId ?? "");
251
+ const allRelatedRoutesFinal = updatedRouteDetails?.relatedRoutes?.every(
252
+ (relatedRoute) => relatedRoute && isFinalRouteStatus(relatedRoute)
253
+ );
254
+ if (isFinalState(transaction) && allRelatedRoutesFinal) {
255
+ break;
256
+ }
230
257
  if (isCancelled?.()) {
231
258
  console.info(`Polling cancelled for route ${routeId}`);
232
- return;
259
+ break;
233
260
  }
234
261
  try {
235
262
  const statusResponse = await chunkQPM7H2YL_cjs.transactionStatus({
@@ -244,7 +271,8 @@ var executeAndSubscribeToRouteStatus = async ({
244
271
  options: {
245
272
  onRouteStatusUpdated,
246
273
  ...options
247
- }
274
+ },
275
+ relatedRoutes: routeDetails?.relatedRoutes
248
276
  });
249
277
  if (isFinalState(transaction)) {
250
278
  onTransactionCompleted?.({
@@ -252,7 +280,11 @@ var executeAndSubscribeToRouteStatus = async ({
252
280
  txHash: transaction.txHash,
253
281
  status: statusResponse
254
282
  });
255
- break;
283
+ if (routeDetails?.relatedRoutes?.every(
284
+ (relatedRoute) => isFinalRouteStatus(relatedRoute)
285
+ )) {
286
+ break;
287
+ }
256
288
  }
257
289
  } catch (error) {
258
290
  console.error(error);
@@ -267,7 +299,10 @@ var updateRouteDetails = ({
267
299
  routeDetails,
268
300
  options,
269
301
  status,
270
- routeId
302
+ routeId,
303
+ mainRouteId,
304
+ transferIndexToRouteKey,
305
+ relatedRoutes
271
306
  }) => {
272
307
  routeId ??= routeDetails?.id ?? "";
273
308
  let currentRouteDetails = routeDetails ?? routeDetailsMap.get(routeId);
@@ -275,6 +310,7 @@ var updateRouteDetails = ({
275
310
  currentRouteDetails = initializeNewRouteDetails(options);
276
311
  routeId = currentRouteDetails?.id;
277
312
  }
313
+ transferIndexToRouteKey ??= currentRouteDetails?.transferIndexToRouteKey;
278
314
  if (currentRouteDetails === void 0) {
279
315
  throw new Error("No route details found");
280
316
  }
@@ -283,7 +319,9 @@ var updateRouteDetails = ({
283
319
  if (currentRouteDetails?.status === "signing" && status === "pending") {
284
320
  currentRouteDetails.txsSigned += 1;
285
321
  }
286
- const transferEvents = routeDetails?.transferEvents ?? getTransferEventsFromTxStatusResponse(transactionDetails.map((tx) => tx.statusResponse).filter((status2) => status2 !== void 0));
322
+ const transferEvents = routeDetails?.transferEvents ?? getTransferEventsFromTxStatusResponse(
323
+ transactionDetails.map((tx) => tx.statusResponse).filter((status2) => status2 !== void 0)
324
+ );
287
325
  const allExpectedTxsStarted = transactionDetails.every(
288
326
  (tx) => tx.txHash || tx.status === void 0
289
327
  );
@@ -307,9 +345,14 @@ var updateRouteDetails = ({
307
345
  }
308
346
  return currentRouteDetails?.status;
309
347
  };
310
- const transferAssetRelease = transactionDetails?.findLast((i) => i.statusResponse?.transferAssetRelease)?.statusResponse?.transferAssetRelease;
311
- const senderAddress = options?.userAddresses?.at(0);
312
- const receiverAddress = options?.userAddresses?.at(-1);
348
+ const transferAssetRelease = transactionDetails?.findLast(
349
+ (i) => i.statusResponse?.transferAssetRelease
350
+ )?.statusResponse?.transferAssetRelease;
351
+ const updatedRelatedRoutes = updateRelatedRoutes({
352
+ relatedRoutes: relatedRoutes ?? currentRouteDetails?.relatedRoutes ?? [],
353
+ transferIndexToRouteKey,
354
+ transactionDetails
355
+ });
313
356
  const newRouteDetails = {
314
357
  id: routeId,
315
358
  timestamp: currentRouteDetails.timestamp,
@@ -319,9 +362,11 @@ var updateRouteDetails = ({
319
362
  transactionDetails,
320
363
  transferEvents,
321
364
  transferAssetRelease,
322
- senderAddress: currentRouteDetails?.senderAddress ?? senderAddress?.address ?? "",
323
- receiverAddress: currentRouteDetails?.receiverAddress ?? receiverAddress?.address ?? "",
324
- txsSigned: currentRouteDetails?.txsSigned
365
+ userAddresses: (currentRouteDetails?.userAddresses.length > 0 ? currentRouteDetails?.userAddresses : options?.userAddresses) ?? [],
366
+ txsSigned: currentRouteDetails?.txsSigned,
367
+ transferIndexToRouteKey,
368
+ mainRouteId: mainRouteId ?? currentRouteDetails?.mainRouteId,
369
+ relatedRoutes: updatedRelatedRoutes
325
370
  };
326
371
  const newRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(newRouteDetails);
327
372
  const previousRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(currentRouteDetails);
@@ -335,6 +380,8 @@ var updateRouteDetails = ({
335
380
  };
336
381
  var getSimpleRoute = (route) => {
337
382
  return {
383
+ usdAmountOut: route?.usdAmountOut,
384
+ usdAmountIn: route?.usdAmountIn,
338
385
  amountIn: route?.amountIn,
339
386
  amountOut: route?.amountOut,
340
387
  sourceAssetDenom: route?.sourceAssetDenom,
@@ -349,10 +396,11 @@ var getRouteDetailsWithSimpleTransactionDetailsStatus = (routeDetails) => {
349
396
  ...routeDetails,
350
397
  transactionDetails: routeDetails.transactionDetails.map((txDetails) => {
351
398
  const { statusResponse, ...rest } = txDetails;
352
- return {
399
+ const newTxDetails = {
353
400
  ...rest,
354
- status: txDetails?.status ?? getTransactionStatus(txDetails.statusResponse?.state)
401
+ status: txDetails?.status ?? getTransactionStatus(statusResponse?.transfers?.[0]?.state)
355
402
  };
403
+ return newTxDetails;
356
404
  })
357
405
  };
358
406
  };
@@ -363,6 +411,43 @@ var removeRoutesWithFinalStatus = () => {
363
411
  }
364
412
  });
365
413
  };
414
+ var convertTransactionStatusToRouteStatus = (transactionStatus2) => {
415
+ if (!transactionStatus2) return;
416
+ if (transactionStatus2 === "success") {
417
+ return "completed";
418
+ }
419
+ return transactionStatus2;
420
+ };
421
+ var updateRelatedRoutes = ({
422
+ relatedRoutes,
423
+ transferIndexToRouteKey,
424
+ transactionDetails
425
+ }) => {
426
+ let updatedRelatedRoutes = [
427
+ ...relatedRoutes.map((relatedRoute) => ({ ...relatedRoute }))
428
+ ];
429
+ if (!transferIndexToRouteKey) return updatedRelatedRoutes;
430
+ transactionDetails?.forEach((transaction) => {
431
+ Object.entries(transferIndexToRouteKey).forEach(([indexStr, routeKey]) => {
432
+ const index = Number(indexStr);
433
+ const state = transaction?.statusResponse?.transfers?.[index]?.state;
434
+ const status = convertTransactionStatusToRouteStatus(
435
+ getTransactionStatus(state)
436
+ );
437
+ const transferAssetRelease = transaction?.statusResponse?.transfers?.[index]?.transferAssetRelease;
438
+ const targetRoute = updatedRelatedRoutes.find(
439
+ (r) => r.routeKey === routeKey
440
+ );
441
+ if (targetRoute && state) {
442
+ targetRoute.status = status ?? "failed";
443
+ }
444
+ if (targetRoute && transferAssetRelease) {
445
+ targetRoute.transferAssetRelease = transferAssetRelease;
446
+ }
447
+ });
448
+ });
449
+ return updatedRelatedRoutes;
450
+ };
366
451
 
367
452
  exports.executeAndSubscribeToRouteStatus = executeAndSubscribeToRouteStatus;
368
453
  exports.getTransactionStatus = getTransactionStatus;
@@ -0,0 +1,214 @@
1
+ 'use strict';
2
+
3
+ var chunkHHZGD62Y_cjs = require('./chunk-HHZGD62Y.cjs');
4
+ var chunkUIQML2XG_cjs = require('./chunk-UIQML2XG.cjs');
5
+ var chunkOZUCMWNE_cjs = require('./chunk-OZUCMWNE.cjs');
6
+ var chunkLUVMRHAJ_cjs = require('./chunk-LUVMRHAJ.cjs');
7
+ var chunkERGJBZUC_cjs = require('./chunk-ERGJBZUC.cjs');
8
+ require('uuid');
9
+
10
+ var executeMultipleRoutes = async (options) => {
11
+ const {
12
+ route,
13
+ userAddresses,
14
+ appendCosmosMsgs,
15
+ postRouteHandler,
16
+ slippageTolerancePercent,
17
+ ...restOptions
18
+ } = options;
19
+ const addressList = {};
20
+ for (const [routeKey, routeValue] of Object.entries(route)) {
21
+ const _userAddresses = userAddresses[routeKey];
22
+ if (_userAddresses === void 0) {
23
+ throw new Error(
24
+ `executeMultipleRoutes error: no user addresses found for route: ${routeKey}`
25
+ );
26
+ }
27
+ const routeAddressList = await chunkHHZGD62Y_cjs.createValidAddressList({
28
+ userAddresses: _userAddresses,
29
+ route: routeValue
30
+ });
31
+ addressList[routeKey] = routeAddressList;
32
+ }
33
+ const msgsResponses = await Promise.all(
34
+ Object.entries(route).map(async ([routeKey, routeValue]) => {
35
+ const routeAddressList = addressList[routeKey];
36
+ if (routeAddressList === void 0) {
37
+ throw new Error(
38
+ `executeMultipleRoutes error: address list not found for route ${routeKey}`
39
+ );
40
+ }
41
+ return await chunkOZUCMWNE_cjs.messages({
42
+ timeoutSeconds: options.timeoutSeconds,
43
+ amountIn: routeValue?.amountIn,
44
+ amountOut: routeValue.estimatedAmountOut || "0",
45
+ sourceAssetChainId: routeValue?.sourceAssetChainId,
46
+ sourceAssetDenom: routeValue?.sourceAssetDenom,
47
+ destAssetChainId: routeValue?.destAssetChainId,
48
+ destAssetDenom: routeValue?.destAssetDenom,
49
+ operations: routeValue?.operations,
50
+ addressList: routeAddressList,
51
+ slippageTolerancePercent: slippageTolerancePercent?.[routeKey] || "1",
52
+ chainIdsToAffiliates: chunkERGJBZUC_cjs.ApiState.chainIdsToAffiliates,
53
+ postRouteHandler: postRouteHandler?.[routeKey],
54
+ feePayerAddress: options.svmFeePayer?.address
55
+ });
56
+ })
57
+ );
58
+ let msgsRecord = {};
59
+ msgsResponses.forEach((msg, index2) => {
60
+ const routeKey = Object.keys(route)[index2];
61
+ if (!routeKey) {
62
+ throw new Error(
63
+ `executeMultipleRoutes error: route key not found for index ${index2}`
64
+ );
65
+ }
66
+ const addedCosmosMsgs = appendCosmosMsgs?.[routeKey];
67
+ if (addedCosmosMsgs) {
68
+ Object.entries(addedCosmosMsgs).forEach(([chainId, msgs]) => {
69
+ const txIndex = msg?.txs?.findIndex(
70
+ (tx2) => "cosmosTx" in tx2 && tx2.cosmosTx.chainId === chainId
71
+ );
72
+ if (txIndex === void 0 || txIndex === -1) return;
73
+ const tx = msg?.txs?.[txIndex];
74
+ if (tx && "cosmosTx" in tx) {
75
+ tx.cosmosTx.msgs?.unshift(...msgs);
76
+ }
77
+ });
78
+ }
79
+ msgsRecord[routeKey] = msg;
80
+ });
81
+ let transferIndexToRouteKey = void 0;
82
+ const cosmosTxIndex0Map = /* @__PURE__ */ new Map();
83
+ let transferIndex = 0;
84
+ for (const [routeKey, msgs] of Object.entries(msgsRecord)) {
85
+ const firstTx = msgs?.txs?.[0];
86
+ if (firstTx && "cosmosTx" in firstTx) {
87
+ const { chainId, msgs: firstTxMsgs } = firstTx.cosmosTx;
88
+ if (!transferIndexToRouteKey) {
89
+ transferIndexToRouteKey = {};
90
+ }
91
+ transferIndexToRouteKey[transferIndex] = routeKey;
92
+ transferIndex++;
93
+ if (!cosmosTxIndex0Map.has(chainId)) {
94
+ cosmosTxIndex0Map.set(chainId, {
95
+ routeKey,
96
+ firstCosmosTx: firstTx.cosmosTx
97
+ });
98
+ } else {
99
+ const existing = cosmosTxIndex0Map.get(chainId);
100
+ if (existing && firstTxMsgs) {
101
+ const modifyTarget = msgsRecord[existing.routeKey]?.txs?.[0];
102
+ if (modifyTarget && "cosmosTx" in modifyTarget) {
103
+ modifyTarget.cosmosTx.msgs?.push(...firstTxMsgs);
104
+ msgsRecord[routeKey]?.txs?.shift();
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ Object.entries(msgsRecord).forEach(([routeKey, msgs]) => {
111
+ if (msgs?.txs?.length === 0) {
112
+ delete msgsRecord[routeKey];
113
+ }
114
+ });
115
+ let mainRouteId = void 0;
116
+ let msgsRecordIndexToRouteId = {};
117
+ let index = 0;
118
+ const transactionDetailsList = {};
119
+ const executeTransactionList = {};
120
+ const mergedMainAndSecondaryRoutes = Object.entries(msgsRecord).length !== Object.entries(route).length;
121
+ for (const [routeKey, msgsResponse] of Object.entries(msgsRecord)) {
122
+ const { id: routeId } = chunkUIQML2XG_cjs.updateRouteDetails({
123
+ status: "unconfirmed",
124
+ options: {
125
+ route: route[routeKey],
126
+ ...restOptions
127
+ },
128
+ mainRouteId,
129
+ transferIndexToRouteKey
130
+ });
131
+ msgsRecordIndexToRouteId[index] = routeId;
132
+ if (routeKey === "mainRoute") {
133
+ mainRouteId = routeId;
134
+ }
135
+ const { transactionDetails, executeTransaction: _executeTransaction } = await chunkHHZGD62Y_cjs.executeTransactions({
136
+ ...restOptions,
137
+ routeId,
138
+ txs: msgsResponse?.txs,
139
+ route: route[routeKey],
140
+ userAddresses: userAddresses[routeKey],
141
+ isMultiRoutes: true
142
+ });
143
+ const executeTransaction = async (index2) => {
144
+ const txResult = await _executeTransaction(index2);
145
+ if (routeKey !== "mainRoute" || mergedMainAndSecondaryRoutes) {
146
+ const relatedRoutes = Object.entries(route).filter(([key]) => key !== "mainRoute").map(([key, route2]) => ({ route: route2, routeKey: key, status: "pending" }));
147
+ chunkUIQML2XG_cjs.updateRouteDetails({
148
+ options: {
149
+ route: route[routeKey],
150
+ ...restOptions
151
+ },
152
+ routeId: mainRouteId,
153
+ transferIndexToRouteKey,
154
+ relatedRoutes
155
+ });
156
+ }
157
+ return txResult;
158
+ };
159
+ if (transactionDetails[0]?.chainType === "evm" /* Evm */) {
160
+ for (const [index2, transactionDetail] of transactionDetails.entries()) {
161
+ const txResult = await executeTransaction(index2);
162
+ if (txResult.txHash) {
163
+ const trackResponse = await chunkLUVMRHAJ_cjs.trackTransaction({
164
+ chainId: transactionDetail.chainId,
165
+ txHash: txResult.txHash,
166
+ ...options.trackTxPollingOptions
167
+ });
168
+ await options?.onTransactionTracked?.({
169
+ txHash: txResult.txHash,
170
+ chainId: transactionDetail.chainId,
171
+ explorerLink: trackResponse.explorerLink
172
+ });
173
+ transactionDetail.txHash = txResult.txHash;
174
+ transactionDetail.explorerLink = trackResponse.explorerLink;
175
+ }
176
+ }
177
+ } else {
178
+ executeTransactionList[index] = executeTransaction;
179
+ }
180
+ transactionDetailsList[index] = transactionDetails;
181
+ index++;
182
+ }
183
+ await Promise.all(
184
+ Object.entries(msgsRecord).map(([routeKey, msgsResponse], index2) => {
185
+ return chunkUIQML2XG_cjs.executeAndSubscribeToRouteStatus({
186
+ transactionDetails: transactionDetailsList[index2],
187
+ executeTransaction: executeTransactionList[index2],
188
+ routeId: msgsRecordIndexToRouteId[index2],
189
+ options: {
190
+ route: route[routeKey],
191
+ userAddresses: userAddresses[routeKey],
192
+ ...restOptions,
193
+ onRouteStatusUpdated: (routeStatus) => {
194
+ const relatedRoutes = Object.entries(route).filter(([key]) => key !== "mainRoute").map(([key, route2]) => ({ route: route2, routeKey: key, status: routeStatus.status }));
195
+ if (routeKey !== "mainRoute") {
196
+ chunkUIQML2XG_cjs.updateRouteDetails({
197
+ options: {
198
+ route: route[routeKey],
199
+ ...restOptions
200
+ },
201
+ routeId: mainRouteId,
202
+ transferIndexToRouteKey,
203
+ relatedRoutes
204
+ });
205
+ }
206
+ options.onRouteStatusUpdated?.(routeStatus);
207
+ }
208
+ }
209
+ });
210
+ })
211
+ );
212
+ };
213
+
214
+ exports.executeMultipleRoutes = executeMultipleRoutes;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkKZOSEIWH_cjs = require('./chunk-KZOSEIWH.cjs');
4
- var chunkVIG2BHYJ_cjs = require('./chunk-VIG2BHYJ.cjs');
4
+ var chunk4YTACAVP_cjs = require('./chunk-4YTACAVP.cjs');
5
5
  var chunkN4UW74AG_cjs = require('./chunk-N4UW74AG.cjs');
6
6
 
7
7
  // src/private-functions/getDefaultGasTokenForChain.ts
@@ -10,7 +10,7 @@ var getDefaultGasTokenForChain = async (chainId) => {
10
10
  if (gasDenom) {
11
11
  return gasDenom;
12
12
  }
13
- const chain = chunkVIG2BHYJ_cjs.chains().find((chain2) => chain2.chainId === chainId);
13
+ const chain = chunk4YTACAVP_cjs.chains().find((chain2) => chain2.chainId === chainId);
14
14
  if (!chain) {
15
15
  return void 0;
16
16
  }
@@ -39,7 +39,7 @@ var getDefaultGasTokenForChain = async (chainId) => {
39
39
  return chain.fees.feeTokens[0]?.denom;
40
40
  };
41
41
  var getStakingTokensForChain = (chainId) => {
42
- const chain = chunkVIG2BHYJ_cjs.chains().find((chain2) => chain2.chainId === chainId);
42
+ const chain = chunk4YTACAVP_cjs.chains().find((chain2) => chain2.chainId === chainId);
43
43
  if (!chain) {
44
44
  throw new Error(
45
45
  `getStakingTokensForChain error: failed to find chain id '${chainId}' in registry`
@@ -69,7 +69,7 @@ var getFeeInfoForChain = async ({ chainId, apiUrl, apiKey }) => {
69
69
  if (skipFeeInfo && skipFeeInfo.gasPrice !== null) {
70
70
  return skipFeeInfo;
71
71
  }
72
- const chain = chunkVIG2BHYJ_cjs.chains().find((chain2) => chain2.chainId === chainId);
72
+ const chain = chunk4YTACAVP_cjs.chains().find((chain2) => chain2.chainId === chainId);
73
73
  if (!chain) {
74
74
  return void 0;
75
75
  }
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkVIG2BHYJ_cjs = require('./chunk-VIG2BHYJ.cjs');
4
3
  var chunk3M7YYWGL_cjs = require('./chunk-3M7YYWGL.cjs');
4
+ var chunk4YTACAVP_cjs = require('./chunk-4YTACAVP.cjs');
5
5
  var chunkN4UW74AG_cjs = require('./chunk-N4UW74AG.cjs');
6
6
  var stargate = require('@cosmjs/stargate');
7
7
  var utils = require('@cosmjs/utils');
@@ -334,7 +334,7 @@ var getRpcEndpointForChain = async (chainId) => {
334
334
  console.warn(
335
335
  "Warning: You are using unreliable public endpoints. We strongly recommend overriding them via endpointOptions for use beyond development settings."
336
336
  );
337
- const chain = chunkVIG2BHYJ_cjs.chains().find((chain2) => chain2.chainId === chainId);
337
+ const chain = chunk4YTACAVP_cjs.chains().find((chain2) => chain2.chainId === chainId);
338
338
  if (!chain) {
339
339
  throw new Error(`getRpcEndpointForChain: failed to find chain id '${chainId}' in registry`);
340
340
  }
@@ -344,7 +344,7 @@ var getRpcEndpointForChain = async (chainId) => {
344
344
  );
345
345
  }
346
346
  const endpoints = chain.apis?.rpc?.map((api) => api.address);
347
- const endpoint = await chunkVIG2BHYJ_cjs.findFirstWorkingEndpoint(endpoints, "rpc");
347
+ const endpoint = await chunk4YTACAVP_cjs.findFirstWorkingEndpoint(endpoints, "rpc");
348
348
  if (!endpoint) {
349
349
  throw new Error(
350
350
  `getRpcEndpointForChain error: failed to find RPC endpoint for chain id '${chainId}'`
@@ -1,21 +1,23 @@
1
1
  'use strict';
2
2
 
3
+ var chunk23YF4LFI_cjs = require('./chunk-23YF4LFI.cjs');
3
4
  var chunkFNB244QI_cjs = require('./chunk-FNB244QI.cjs');
4
- var chunkZKBSNSHQ_cjs = require('./chunk-ZKBSNSHQ.cjs');
5
- var chunk7MC3BVQN_cjs = require('./chunk-7MC3BVQN.cjs');
6
- var chunk46VB6RQK_cjs = require('./chunk-46VB6RQK.cjs');
5
+ var chunkVF65UG3E_cjs = require('./chunk-VF65UG3E.cjs');
6
+ var chunkGCJO6DZD_cjs = require('./chunk-GCJO6DZD.cjs');
7
+ require('./chunk-HHZGD62Y.cjs');
8
+ var chunkUIQML2XG_cjs = require('./chunk-UIQML2XG.cjs');
9
+ var chunkCUDPMOR6_cjs = require('./chunk-CUDPMOR6.cjs');
7
10
  var chunkKM2D7PJL_cjs = require('./chunk-KM2D7PJL.cjs');
11
+ require('./chunk-DWOE6N5S.cjs');
8
12
  var chunkF3EB2AQG_cjs = require('./chunk-F3EB2AQG.cjs');
9
- var chunkZAATXQBG_cjs = require('./chunk-ZAATXQBG.cjs');
13
+ var chunkK4YAPDUE_cjs = require('./chunk-K4YAPDUE.cjs');
10
14
  require('./chunk-4R6OCWRR.cjs');
11
- var chunkQ43XCBMX_cjs = require('./chunk-Q43XCBMX.cjs');
15
+ var chunkW3KF3V57_cjs = require('./chunk-W3KF3V57.cjs');
12
16
  var chunkKZOSEIWH_cjs = require('./chunk-KZOSEIWH.cjs');
13
- var chunk6LA66667_cjs = require('./chunk-6LA66667.cjs');
14
- require('./chunk-VIG2BHYJ.cjs');
15
- var chunkRCGCQD6T_cjs = require('./chunk-RCGCQD6T.cjs');
16
- var chunkIDEJORRT_cjs = require('./chunk-IDEJORRT.cjs');
17
- require('./chunk-DWOE6N5S.cjs');
17
+ var chunkX22PL5T7_cjs = require('./chunk-X22PL5T7.cjs');
18
18
  require('./chunk-3M7YYWGL.cjs');
19
+ require('./chunk-4YTACAVP.cjs');
20
+ var chunkRCGCQD6T_cjs = require('./chunk-RCGCQD6T.cjs');
19
21
  var chunkLHY62HPI_cjs = require('./chunk-LHY62HPI.cjs');
20
22
  var chunkOZUCMWNE_cjs = require('./chunk-OZUCMWNE.cjs');
21
23
  var chunkZBPDDVQ2_cjs = require('./chunk-ZBPDDVQ2.cjs');
@@ -176,21 +178,29 @@ var FeeBehaviorJson = /* @__PURE__ */ ((FeeBehaviorJson2) => {
176
178
  return FeeBehaviorJson2;
177
179
  })(FeeBehaviorJson || {});
178
180
 
181
+ Object.defineProperty(exports, "setClientOptions", {
182
+ enumerable: true,
183
+ get: function () { return chunk23YF4LFI_cjs.setClientOptions; }
184
+ });
179
185
  Object.defineProperty(exports, "waitForTransaction", {
180
186
  enumerable: true,
181
187
  get: function () { return chunkFNB244QI_cjs.waitForTransaction; }
182
188
  });
189
+ Object.defineProperty(exports, "executeMultipleRoutes", {
190
+ enumerable: true,
191
+ get: function () { return chunkVF65UG3E_cjs.executeMultipleRoutes; }
192
+ });
183
193
  Object.defineProperty(exports, "executeRoute", {
184
194
  enumerable: true,
185
- get: function () { return chunkZKBSNSHQ_cjs.executeRoute; }
195
+ get: function () { return chunkGCJO6DZD_cjs.executeRoute; }
186
196
  });
187
197
  Object.defineProperty(exports, "subscribeToRouteStatus", {
188
198
  enumerable: true,
189
- get: function () { return chunk7MC3BVQN_cjs.subscribeToRouteStatus; }
199
+ get: function () { return chunkUIQML2XG_cjs.subscribeToRouteStatus; }
190
200
  });
191
201
  Object.defineProperty(exports, "validateCosmosGasBalance", {
192
202
  enumerable: true,
193
- get: function () { return chunk46VB6RQK_cjs.validateCosmosGasBalance; }
203
+ get: function () { return chunkCUDPMOR6_cjs.validateCosmosGasBalance; }
194
204
  });
195
205
  Object.defineProperty(exports, "getCosmosGasAmountForMessage", {
196
206
  enumerable: true,
@@ -202,11 +212,11 @@ Object.defineProperty(exports, "getEVMGasAmountForMessage", {
202
212
  });
203
213
  Object.defineProperty(exports, "getRecommendedGasPrice", {
204
214
  enumerable: true,
205
- get: function () { return chunkZAATXQBG_cjs.getRecommendedGasPrice; }
215
+ get: function () { return chunkK4YAPDUE_cjs.getRecommendedGasPrice; }
206
216
  });
207
217
  Object.defineProperty(exports, "getFeeInfoForChain", {
208
218
  enumerable: true,
209
- get: function () { return chunkQ43XCBMX_cjs.getFeeInfoForChain; }
219
+ get: function () { return chunkW3KF3V57_cjs.getFeeInfoForChain; }
210
220
  });
211
221
  Object.defineProperty(exports, "GAS_STATION_CHAIN_IDS", {
212
222
  enumerable: true,
@@ -214,16 +224,12 @@ Object.defineProperty(exports, "GAS_STATION_CHAIN_IDS", {
214
224
  });
215
225
  Object.defineProperty(exports, "getSigningStargateClient", {
216
226
  enumerable: true,
217
- get: function () { return chunk6LA66667_cjs.getSigningStargateClient; }
227
+ get: function () { return chunkX22PL5T7_cjs.getSigningStargateClient; }
218
228
  });
219
229
  Object.defineProperty(exports, "setApiOptions", {
220
230
  enumerable: true,
221
231
  get: function () { return chunkRCGCQD6T_cjs.setApiOptions; }
222
232
  });
223
- Object.defineProperty(exports, "setClientOptions", {
224
- enumerable: true,
225
- get: function () { return chunkIDEJORRT_cjs.setClientOptions; }
226
- });
227
233
  Object.defineProperty(exports, "ibcOriginAssets", {
228
234
  enumerable: true,
229
235
  get: function () { return chunkLHY62HPI_cjs.ibcOriginAssets; }
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var chunkVF65UG3E_cjs = require('../chunk-VF65UG3E.cjs');
4
+ require('../chunk-HHZGD62Y.cjs');
5
+ require('../chunk-UIQML2XG.cjs');
6
+ require('../chunk-CUDPMOR6.cjs');
7
+ require('../chunk-KM2D7PJL.cjs');
8
+ require('../chunk-DWOE6N5S.cjs');
9
+ require('../chunk-F3EB2AQG.cjs');
10
+ require('../chunk-4R6OCWRR.cjs');
11
+ require('../chunk-KZOSEIWH.cjs');
12
+ require('../chunk-X22PL5T7.cjs');
13
+ require('../chunk-3M7YYWGL.cjs');
14
+ require('../chunk-4YTACAVP.cjs');
15
+ require('../chunk-OZUCMWNE.cjs');
16
+ require('../chunk-5HDKZVOL.cjs');
17
+ require('../chunk-LUVMRHAJ.cjs');
18
+ require('../chunk-QPM7H2YL.cjs');
19
+ require('../chunk-5AYPH3ZR.cjs');
20
+ require('../chunk-N4UW74AG.cjs');
21
+ require('../chunk-ERGJBZUC.cjs');
22
+ require('../chunk-IDDRJJO5.cjs');
23
+
24
+
25
+
26
+ Object.defineProperty(exports, "executeMultipleRoutes", {
27
+ enumerable: true,
28
+ get: function () { return chunkVF65UG3E_cjs.executeMultipleRoutes; }
29
+ });