@skip-go/client 1.3.6 → 1.4.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 (118) hide show
  1. package/dist/cjs/api/getAssets.cjs +4 -4
  2. package/dist/cjs/api/getAssetsBetweenChains.cjs +3 -3
  3. package/dist/cjs/api/getBridges.cjs +3 -3
  4. package/dist/cjs/api/getChains.cjs +3 -3
  5. package/dist/cjs/api/getVenues.cjs +3 -3
  6. package/dist/cjs/api/postAssetsFromSource.cjs +4 -4
  7. package/dist/cjs/api/postBalances.cjs +3 -3
  8. package/dist/cjs/api/postIbcOriginAssets.cjs +3 -3
  9. package/dist/cjs/api/postMessages.cjs +3 -3
  10. package/dist/cjs/api/postMessagesDirect.cjs +3 -3
  11. package/dist/cjs/api/postRecommendAssets.cjs +3 -3
  12. package/dist/cjs/api/postRoute.cjs +3 -3
  13. package/dist/cjs/api/postSubmitTransaction.cjs +3 -3
  14. package/dist/cjs/api/postTrackTransaction.cjs +3 -3
  15. package/dist/cjs/api/postTransactionStatus.cjs +3 -3
  16. package/dist/cjs/chunk-3M7YYWGL.cjs +295 -0
  17. package/dist/cjs/{chunk-IE22IVFA.cjs → chunk-46VB6RQK.cjs} +8 -8
  18. package/dist/cjs/{chunk-MW3TE7DC.cjs → chunk-5AYPH3ZR.cjs} +2 -2
  19. package/dist/cjs/{chunk-2CCLIBCC.cjs → chunk-5HDKZVOL.cjs} +2 -2
  20. package/dist/cjs/{chunk-3FYU3BJ7.cjs → chunk-6LA66667.cjs} +126 -16
  21. package/dist/cjs/chunk-7MC3BVQN.cjs +370 -0
  22. package/dist/cjs/{chunk-YYBGBKRE.cjs → chunk-A26H4FVN.cjs} +4 -4
  23. package/dist/cjs/{chunk-P7CDAHIX.cjs → chunk-AXYRULAI.cjs} +2 -2
  24. package/dist/cjs/{chunk-WMXUOVHN.cjs → chunk-DWOE6N5S.cjs} +248 -532
  25. package/dist/cjs/{chunk-7I2KQNIU.cjs → chunk-EJMC4JXF.cjs} +2 -2
  26. package/dist/cjs/{chunk-HKQ5VION.cjs → chunk-ERGJBZUC.cjs} +5 -1
  27. package/dist/cjs/{chunk-J5RC6ZU5.cjs → chunk-FNB244QI.cjs} +6 -6
  28. package/dist/cjs/{chunk-2EKCOIWV.cjs → chunk-IDEJORRT.cjs} +155 -154
  29. package/dist/cjs/{chunk-DBDB2XWX.cjs → chunk-JBKNEFXB.cjs} +3 -3
  30. package/dist/cjs/{chunk-N3LR7KTI.cjs → chunk-KM2D7PJL.cjs} +33 -57
  31. package/dist/cjs/{chunk-XGBCEYWI.cjs → chunk-LHY62HPI.cjs} +2 -2
  32. package/dist/cjs/{chunk-EXK2GDR5.cjs → chunk-LUVMRHAJ.cjs} +2 -2
  33. package/dist/cjs/{chunk-QSISUSYP.cjs → chunk-N4UW74AG.cjs} +4 -4
  34. package/dist/cjs/{chunk-FY56EEFB.cjs → chunk-OZUCMWNE.cjs} +2 -2
  35. package/dist/cjs/{chunk-JTB3SPCH.cjs → chunk-Q43XCBMX.cjs} +6 -6
  36. package/dist/cjs/{chunk-2VQ2TNFM.cjs → chunk-QPM7H2YL.cjs} +2 -2
  37. package/dist/cjs/{chunk-FO25SR66.cjs → chunk-RCGCQD6T.cjs} +6 -6
  38. package/dist/cjs/chunk-VIG2BHYJ.cjs +185 -0
  39. package/dist/cjs/{chunk-DCFIIF7G.cjs → chunk-X5AJHZ2J.cjs} +2 -2
  40. package/dist/cjs/{chunk-SZ64FWGB.cjs → chunk-ZAATXQBG.cjs} +2 -2
  41. package/dist/cjs/{chunk-MCZ3F457.cjs → chunk-ZBPDDVQ2.cjs} +2 -2
  42. package/dist/cjs/{chunk-VGS46RWR.cjs → chunk-ZKBSNSHQ.cjs} +188 -209
  43. package/dist/cjs/index.cjs +57 -51
  44. package/dist/cjs/public-functions/executeRoute.cjs +16 -15
  45. package/dist/cjs/public-functions/getCosmosGasAmountForMessage.cjs +5 -4
  46. package/dist/cjs/public-functions/getFeeInfoForChain.cjs +5 -5
  47. package/dist/cjs/public-functions/getRecommendedGasPrice.cjs +6 -6
  48. package/dist/cjs/public-functions/getSigningStargateClient.cjs +6 -5
  49. package/dist/cjs/public-functions/setApiOptions.cjs +3 -3
  50. package/dist/cjs/public-functions/setClientOptions.cjs +6 -5
  51. package/dist/cjs/public-functions/subscribeToRouteStatus.cjs +26 -0
  52. package/dist/cjs/public-functions/validateCosmosGasBalance.cjs +9 -8
  53. package/dist/cjs/public-functions/waitForTransaction.cjs +5 -5
  54. package/dist/esm/api/getAssets.js +2 -2
  55. package/dist/esm/api/getAssetsBetweenChains.js +2 -2
  56. package/dist/esm/api/getBridges.js +2 -2
  57. package/dist/esm/api/getChains.js +2 -2
  58. package/dist/esm/api/getVenues.js +2 -2
  59. package/dist/esm/api/postAssetsFromSource.js +3 -3
  60. package/dist/esm/api/postBalances.js +2 -2
  61. package/dist/esm/api/postIbcOriginAssets.js +2 -2
  62. package/dist/esm/api/postMessages.js +2 -2
  63. package/dist/esm/api/postMessagesDirect.js +2 -2
  64. package/dist/esm/api/postRecommendAssets.js +2 -2
  65. package/dist/esm/api/postRoute.js +2 -2
  66. package/dist/esm/api/postSubmitTransaction.js +2 -2
  67. package/dist/esm/api/postTrackTransaction.d.ts +2 -1
  68. package/dist/esm/api/postTrackTransaction.js +2 -2
  69. package/dist/esm/api/postTransactionStatus.d.ts +1 -1
  70. package/dist/esm/api/postTransactionStatus.js +2 -2
  71. package/dist/esm/callbacks-B3kjKg0v.d.ts +175 -0
  72. package/dist/esm/chunk-3J6O2PVK.js +180 -0
  73. package/dist/esm/{chunk-SJP6W2SK.js → chunk-3XOGEVJL.js} +1 -1
  74. package/dist/esm/{chunk-ZL6XF5A3.js → chunk-4RLJWCQR.js} +2 -2
  75. package/dist/esm/{chunk-JSY7M43P.js → chunk-52PEBJRQ.js} +1 -1
  76. package/dist/esm/{chunk-7ITTEUMR.js → chunk-7X4ERB3R.js} +1 -1
  77. package/dist/esm/{chunk-LZI7A4JI.js → chunk-A6KSECAH.js} +5 -1
  78. package/dist/esm/{chunk-7LSTJXAF.js → chunk-AND7HVIU.js} +1 -1
  79. package/dist/esm/{chunk-MXCJ2M3K.js → chunk-APRMN34M.js} +1 -1
  80. package/dist/esm/{chunk-6ZLEWCU2.js → chunk-BAJFQZDT.js} +146 -167
  81. package/dist/esm/{chunk-5KIWNRW4.js → chunk-CIAOTO3M.js} +1 -1
  82. package/dist/esm/{chunk-JYUNVL4F.js → chunk-FH2YHZVV.js} +1 -1
  83. package/dist/esm/{chunk-ADUNNC4O.js → chunk-GHNH5QC3.js} +3 -3
  84. package/dist/esm/{chunk-OHV2LZEG.js → chunk-JQ4F4WBG.js} +1 -1
  85. package/dist/esm/{chunk-TV2XPAIF.js → chunk-KNXMSLOB.js} +3 -26
  86. package/dist/esm/{chunk-YLVFZDR5.js → chunk-KYDY7QRT.js} +109 -3
  87. package/dist/esm/{chunk-IWXRHEX4.js → chunk-LHNGF5J2.js} +2 -2
  88. package/dist/esm/{chunk-JIADJKRD.js → chunk-OTS5KO43.js} +1 -1
  89. package/dist/esm/{chunk-CU6W3622.js → chunk-QIS6ILPS.js} +3 -3
  90. package/dist/esm/chunk-QO2CYYF5.js +278 -0
  91. package/dist/esm/{chunk-OL7CWCPB.js → chunk-REWUSU53.js} +4 -3
  92. package/dist/esm/chunk-RQ7DXNSS.js +365 -0
  93. package/dist/esm/{chunk-XXTECZG3.js → chunk-S4RO2LHD.js} +1 -1
  94. package/dist/esm/{chunk-7YN3UVVF.js → chunk-UI3SIFZN.js} +1 -1
  95. package/dist/esm/{chunk-TD63P2AG.js → chunk-UIDIKXMB.js} +65 -340
  96. package/dist/esm/{chunk-HT6O3BQ7.js → chunk-Y2YCODZK.js} +1 -1
  97. package/dist/esm/{chunk-IPHFFTGO.js → chunk-ZI3SYUQH.js} +1 -1
  98. package/dist/esm/{chunk-2L7PKZDY.js → chunk-ZOUYAZU6.js} +1 -1
  99. package/dist/esm/index.d.ts +2 -3
  100. package/dist/esm/index.js +27 -25
  101. package/dist/esm/public-functions/executeRoute.d.ts +7 -76
  102. package/dist/esm/public-functions/executeRoute.js +15 -14
  103. package/dist/esm/public-functions/getCosmosGasAmountForMessage.js +3 -2
  104. package/dist/esm/public-functions/getFeeInfoForChain.js +4 -4
  105. package/dist/esm/public-functions/getRecommendedGasPrice.js +5 -5
  106. package/dist/esm/public-functions/getSigningStargateClient.js +5 -4
  107. package/dist/esm/public-functions/setApiOptions.js +2 -2
  108. package/dist/esm/public-functions/setClientOptions.js +5 -4
  109. package/dist/esm/public-functions/subscribeToRouteStatus.d.ts +12 -0
  110. package/dist/esm/public-functions/subscribeToRouteStatus.js +5 -0
  111. package/dist/esm/public-functions/validateCosmosGasBalance.d.ts +3 -2
  112. package/dist/esm/public-functions/validateCosmosGasBalance.js +8 -7
  113. package/dist/esm/public-functions/waitForTransaction.d.ts +5 -1
  114. package/dist/esm/public-functions/waitForTransaction.js +4 -4
  115. package/package.json +3 -3
  116. package/dist/cjs/chunk-MN763TPC.cjs +0 -187
  117. package/dist/esm/callbacks-CuL50GnB.d.ts +0 -38
  118. package/dist/esm/chunk-VBWLUZXT.js +0 -182
@@ -0,0 +1,365 @@
1
+ import { trackTransaction } from './chunk-7X4ERB3R.js';
2
+ import { transactionStatus } from './chunk-APRMN34M.js';
3
+ import { wait } from './chunk-A6KSECAH.js';
4
+ import { v4 } from 'uuid';
5
+
6
+ // src/utils/clientType.ts
7
+ function getClientTransferEvent(transferEvent) {
8
+ const combinedTransferEvent = transferEvent;
9
+ const axelarTransfer = combinedTransferEvent?.axelarTransfer;
10
+ const ibcTransfer = combinedTransferEvent?.ibcTransfer;
11
+ const cctpTransfer = combinedTransferEvent?.cctpTransfer;
12
+ const hyperlaneTransfer = combinedTransferEvent?.hyperlaneTransfer;
13
+ const opInitTransfer = combinedTransferEvent?.opInitTransfer;
14
+ const goFastTransfer = combinedTransferEvent?.goFastTransfer;
15
+ const stargateTransfer = combinedTransferEvent?.stargateTransfer;
16
+ const eurekaTransfer = combinedTransferEvent?.eurekaTransfer;
17
+ const layerZeroTransfer = combinedTransferEvent?.layerZeroTransfer;
18
+ let transferType = "";
19
+ if (axelarTransfer) {
20
+ transferType = "axelarTransfer" /* axelarTransfer */;
21
+ } else if (ibcTransfer) {
22
+ transferType = "ibcTransfer" /* ibcTransfer */;
23
+ } else if (cctpTransfer) {
24
+ transferType = "cctpTransfer" /* cctpTransfer */;
25
+ } else if (hyperlaneTransfer) {
26
+ transferType = "hyperlaneTransfer" /* hyperlaneTransfer */;
27
+ } else if (opInitTransfer) {
28
+ transferType = "opInitTransfer" /* opInitTransfer */;
29
+ } else if (goFastTransfer) {
30
+ transferType = "goFastTransfer" /* goFastTransfer */;
31
+ } else if (stargateTransfer) {
32
+ transferType = "stargateTransfer" /* stargateTransfer */;
33
+ } else if (eurekaTransfer) {
34
+ transferType = "eurekaTransfer" /* eurekaTransfer */;
35
+ } else if (layerZeroTransfer) {
36
+ transferType = "layerZeroTransfer" /* layerZeroTransfer */;
37
+ }
38
+ const getExplorerLink = (type) => {
39
+ switch (transferType) {
40
+ case "ibcTransfer" /* ibcTransfer */:
41
+ if (type === "send") {
42
+ return ibcTransfer.packetTxs.sendTx?.explorerLink;
43
+ }
44
+ return ibcTransfer.packetTxs.receiveTx?.explorerLink;
45
+ case "eurekaTransfer" /* eurekaTransfer */:
46
+ if (type === "send") {
47
+ return eurekaTransfer.packetTxs.sendTx?.explorerLink;
48
+ }
49
+ return eurekaTransfer.packetTxs.receiveTx?.explorerLink;
50
+ case "goFastTransfer" /* goFastTransfer */:
51
+ if (type === "send") {
52
+ return goFastTransfer.txs.orderSubmittedTx?.explorerLink;
53
+ }
54
+ return goFastTransfer.txs.orderFilledTx?.explorerLink;
55
+ case "axelarTransfer" /* axelarTransfer */:
56
+ return axelarTransfer?.axelarScanLink;
57
+ default:
58
+ if (type === "send") {
59
+ return combinedTransferEvent[transferType]?.txs?.sendTx?.explorerLink;
60
+ }
61
+ return combinedTransferEvent[transferType]?.txs?.receiveTx?.explorerLink;
62
+ }
63
+ };
64
+ const _result = {
65
+ ...ibcTransfer,
66
+ ...axelarTransfer,
67
+ ...cctpTransfer,
68
+ ...hyperlaneTransfer,
69
+ ...stargateTransfer,
70
+ ...hyperlaneTransfer,
71
+ ...opInitTransfer,
72
+ ...goFastTransfer,
73
+ ...stargateTransfer,
74
+ ...eurekaTransfer,
75
+ ...layerZeroTransfer,
76
+ fromExplorerLink: getExplorerLink("send"),
77
+ toExplorerLink: getExplorerLink("receive")
78
+ };
79
+ const status = getSimpleStatus(_result.state);
80
+ const result = {
81
+ ..._result,
82
+ status
83
+ };
84
+ return result;
85
+ }
86
+ function getTransferEventsFromTxStatusResponse(txStatusResponse) {
87
+ if (!txStatusResponse) return [];
88
+ return txStatusResponse?.flatMap((txStatus) => {
89
+ return (txStatus.transferSequence ?? []).map((transferEvent) => {
90
+ return getClientTransferEvent(transferEvent);
91
+ });
92
+ });
93
+ }
94
+ function getSimpleStatus(state) {
95
+ switch (state) {
96
+ case "TRANSFER_PENDING":
97
+ case "TRANSFER_RECEIVED":
98
+ case "AXELAR_TRANSFER_PENDING_CONFIRMATION":
99
+ case "AXELAR_TRANSFER_PENDING_RECEIPT":
100
+ case "CCTP_TRANSFER_SENT":
101
+ case "CCTP_TRANSFER_PENDING_CONFIRMATION":
102
+ case "CCTP_TRANSFER_CONFIRMED":
103
+ case "HYPERLANE_TRANSFER_SENT":
104
+ case "OPINIT_TRANSFER_SENT":
105
+ case "GO_FAST_TRANSFER_SENT":
106
+ case "STARGATE_TRANSFER_SENT":
107
+ case "LAYER_ZERO_TRANSFER_SENT":
108
+ return "pending";
109
+ case "TRANSFER_SUCCESS":
110
+ case "AXELAR_TRANSFER_SUCCESS":
111
+ case "CCTP_TRANSFER_RECEIVED":
112
+ case "HYPERLANE_TRANSFER_RECEIVED":
113
+ case "OPINIT_TRANSFER_RECEIVED":
114
+ case "STARGATE_TRANSFER_RECEIVED":
115
+ case "GO_FAST_TRANSFER_FILLED":
116
+ case "LAYER_ZERO_TRANSFER_RECEIVED":
117
+ return "completed";
118
+ default:
119
+ return "failed";
120
+ }
121
+ }
122
+ function getTransactionStatus(state) {
123
+ switch (state) {
124
+ case "STATE_SUBMITTED":
125
+ case "STATE_PENDING":
126
+ return "pending";
127
+ case "STATE_COMPLETED_SUCCESS":
128
+ return "success";
129
+ case "STATE_COMPLETED_ERROR":
130
+ case "STATE_PENDING_ERROR":
131
+ return "failed";
132
+ default:
133
+ return "pending";
134
+ }
135
+ }
136
+ var isFinalRouteStatus = (routeDetails) => {
137
+ if (routeDetails.status === "completed" || routeDetails.status === "failed" || routeDetails.status === "incomplete") {
138
+ return true;
139
+ }
140
+ return false;
141
+ };
142
+ var isFinalState = (transaction) => {
143
+ const transactionState = transaction?.statusResponse?.state;
144
+ const transactionStatus2 = transaction?.status;
145
+ return transactionState === "STATE_COMPLETED_SUCCESS" || transactionState === "STATE_COMPLETED_ERROR" || transactionState === "STATE_ABANDONED" || transactionStatus2 === "failed" || transactionStatus2 === "success";
146
+ };
147
+ var isSuccessState = (transaction) => {
148
+ const transactionState = transaction?.statusResponse?.state;
149
+ const transactionStatus2 = transaction?.status;
150
+ return transactionState === "STATE_COMPLETED_SUCCESS" || transactionStatus2 === "success";
151
+ };
152
+ var routeDetailsMap = /* @__PURE__ */ new Map();
153
+ var initializeNewRouteDetails = (options) => {
154
+ const newRouteId = v4();
155
+ const newRouteDetails = {
156
+ id: newRouteId,
157
+ timestamp: Date.now(),
158
+ route: getSimpleRoute(options?.route),
159
+ status: "unconfirmed",
160
+ txsRequired: options?.route?.txsRequired ?? 1,
161
+ txsSigned: 0,
162
+ transactionDetails: [],
163
+ transferEvents: [],
164
+ senderAddress: options?.userAddresses?.[0]?.address ?? "",
165
+ receiverAddress: options?.userAddresses?.at(-1)?.address ?? ""
166
+ };
167
+ routeDetailsMap.set(newRouteId, newRouteDetails);
168
+ return newRouteDetails;
169
+ };
170
+ var subscribeToRouteStatus = (props) => {
171
+ let cancelled = false;
172
+ const unsubscribe = () => {
173
+ cancelled = true;
174
+ };
175
+ executeAndSubscribeToRouteStatus({
176
+ ...props,
177
+ isCancelled: () => cancelled
178
+ });
179
+ return unsubscribe;
180
+ };
181
+ var executeAndSubscribeToRouteStatus = async ({
182
+ transactionDetails,
183
+ executeTransaction,
184
+ trackTxPollingOptions,
185
+ onTransactionTracked,
186
+ onTransactionCompleted,
187
+ routeDetails,
188
+ onRouteStatusUpdated,
189
+ options,
190
+ routeId,
191
+ isCancelled
192
+ }) => {
193
+ removeRoutesWithFinalStatus();
194
+ routeId ??= routeDetails?.id;
195
+ const currentRouteDetails = routeDetailsMap.get(routeId ?? "");
196
+ transactionDetails ??= routeDetails?.transactionDetails ?? currentRouteDetails?.transactionDetails ?? [];
197
+ if (routeDetails && isFinalRouteStatus(routeDetails)) {
198
+ return;
199
+ }
200
+ for (const [transactionIndex, transaction] of transactionDetails.entries()) {
201
+ if (executeTransaction && !transaction.txHash) {
202
+ let { txHash, explorerLink } = await executeTransaction?.(transactionIndex);
203
+ transaction.txHash = txHash;
204
+ if (!explorerLink) {
205
+ const trackResponse = await trackTransaction({
206
+ chainId: transaction.chainId,
207
+ txHash: transaction.txHash,
208
+ ...trackTxPollingOptions
209
+ });
210
+ explorerLink = trackResponse.explorerLink;
211
+ }
212
+ transaction.explorerLink = explorerLink;
213
+ await onTransactionTracked?.({ txHash: transaction.txHash, chainId: transaction.chainId, explorerLink });
214
+ }
215
+ if (transaction.txHash === void 0) {
216
+ updateRouteDetails({
217
+ routeId,
218
+ routeDetails,
219
+ transactionDetails,
220
+ options: {
221
+ onRouteStatusUpdated,
222
+ ...options
223
+ }
224
+ });
225
+ return;
226
+ }
227
+ while (!isFinalState(transaction)) {
228
+ if (isCancelled?.()) {
229
+ console.info(`Polling cancelled for route ${routeId}`);
230
+ return;
231
+ }
232
+ try {
233
+ const statusResponse = await transactionStatus({
234
+ chainId: transaction.chainId,
235
+ txHash: transaction.txHash
236
+ });
237
+ transaction.statusResponse = statusResponse;
238
+ updateRouteDetails({
239
+ routeId,
240
+ routeDetails,
241
+ transactionDetails,
242
+ options: {
243
+ onRouteStatusUpdated,
244
+ ...options
245
+ }
246
+ });
247
+ if (isFinalState(transaction)) {
248
+ onTransactionCompleted?.({
249
+ chainId: transaction.chainId,
250
+ txHash: transaction.txHash,
251
+ status: statusResponse
252
+ });
253
+ break;
254
+ }
255
+ } catch (error) {
256
+ console.error(error);
257
+ } finally {
258
+ await wait(1e3);
259
+ }
260
+ }
261
+ }
262
+ };
263
+ var updateRouteDetails = ({
264
+ transactionDetails,
265
+ routeDetails,
266
+ options,
267
+ status,
268
+ routeId
269
+ }) => {
270
+ routeId ??= routeDetails?.id ?? "";
271
+ let currentRouteDetails = routeDetails ?? routeDetailsMap.get(routeId);
272
+ if (!routeId && currentRouteDetails == void 0) {
273
+ currentRouteDetails = initializeNewRouteDetails(options);
274
+ routeId = currentRouteDetails?.id;
275
+ }
276
+ if (currentRouteDetails === void 0) {
277
+ throw new Error("No route details found");
278
+ }
279
+ transactionDetails ??= currentRouteDetails?.transactionDetails ?? [];
280
+ const txsRequired = currentRouteDetails?.txsRequired ?? options?.route?.txsRequired ?? 1;
281
+ if (currentRouteDetails?.status === "signing" && status === "pending") {
282
+ currentRouteDetails.txsSigned += 1;
283
+ }
284
+ const transferEvents = routeDetails?.transferEvents ?? getTransferEventsFromTxStatusResponse(transactionDetails.map((tx) => tx.statusResponse).filter((status2) => status2 !== void 0));
285
+ const allExpectedTxsStarted = transactionDetails.every(
286
+ (tx) => tx.txHash || tx.status === void 0
287
+ );
288
+ const allKnownDetailsHaveFinalStatus = transactionDetails.every(
289
+ (transaction) => isFinalState(transaction)
290
+ );
291
+ const isAllSettled = allExpectedTxsStarted && allKnownDetailsHaveFinalStatus;
292
+ const someTxSucceeded = transactionDetails.some((tx) => isSuccessState(tx));
293
+ const someTxFailed = transactionDetails.some((tx) => !isSuccessState(tx));
294
+ const getRouteStatus = () => {
295
+ if (status) return status;
296
+ if (someTxSucceeded && !allExpectedTxsStarted) return "incomplete";
297
+ if (isAllSettled) {
298
+ if (!someTxFailed) {
299
+ return "completed";
300
+ } else if (someTxSucceeded && someTxFailed) {
301
+ return "incomplete";
302
+ } else if (someTxFailed) {
303
+ return "failed";
304
+ }
305
+ }
306
+ return currentRouteDetails?.status;
307
+ };
308
+ const transferAssetRelease = transactionDetails?.findLast((i) => i.statusResponse?.transferAssetRelease)?.statusResponse?.transferAssetRelease;
309
+ const senderAddress = options?.userAddresses?.at(0);
310
+ const receiverAddress = options?.userAddresses?.at(-1);
311
+ const newRouteDetails = {
312
+ id: routeId,
313
+ timestamp: currentRouteDetails.timestamp,
314
+ status: getRouteStatus(),
315
+ route: getSimpleRoute(currentRouteDetails?.route ?? options?.route),
316
+ txsRequired,
317
+ transactionDetails,
318
+ transferEvents,
319
+ transferAssetRelease,
320
+ senderAddress: currentRouteDetails?.senderAddress ?? senderAddress?.address ?? "",
321
+ receiverAddress: currentRouteDetails?.receiverAddress ?? receiverAddress?.address ?? "",
322
+ txsSigned: currentRouteDetails?.txsSigned
323
+ };
324
+ const newRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(newRouteDetails);
325
+ const previousRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(currentRouteDetails);
326
+ if (options?.onRouteStatusUpdated && JSON.stringify(newRouteStatus) !== JSON.stringify(previousRouteStatus)) {
327
+ options?.onRouteStatusUpdated?.(newRouteStatus);
328
+ }
329
+ if (routeId) {
330
+ routeDetailsMap.set(routeId, newRouteDetails);
331
+ }
332
+ return newRouteDetails;
333
+ };
334
+ var getSimpleRoute = (route) => {
335
+ return {
336
+ amountIn: route?.amountIn,
337
+ amountOut: route?.amountOut,
338
+ sourceAssetDenom: route?.sourceAssetDenom,
339
+ sourceAssetChainId: route?.sourceAssetChainId,
340
+ destAssetDenom: route?.destAssetDenom,
341
+ destAssetChainId: route?.destAssetChainId,
342
+ estimatedRouteDurationSeconds: route?.estimatedRouteDurationSeconds
343
+ };
344
+ };
345
+ var getRouteDetailsWithSimpleTransactionDetailsStatus = (routeDetails) => {
346
+ return {
347
+ ...routeDetails,
348
+ transactionDetails: routeDetails.transactionDetails.map((txDetails) => {
349
+ const { statusResponse, ...rest } = txDetails;
350
+ return {
351
+ ...rest,
352
+ status: txDetails?.status ?? getTransactionStatus(txDetails.statusResponse?.state)
353
+ };
354
+ })
355
+ };
356
+ };
357
+ var removeRoutesWithFinalStatus = () => {
358
+ routeDetailsMap.forEach((routeDetails, routeId) => {
359
+ if (routeDetails.status === "completed" || routeDetails.status === "failed" || routeDetails.status === "incomplete") {
360
+ routeDetailsMap.delete(routeId);
361
+ }
362
+ });
363
+ };
364
+
365
+ export { executeAndSubscribeToRouteStatus, getTransactionStatus, subscribeToRouteStatus, updateRouteDetails };
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-LZI7A4JI.js';
1
+ import { api } from './chunk-A6KSECAH.js';
2
2
 
3
3
  // src/api/postIbcOriginAssets.ts
4
4
  var ibcOriginAssets = api({
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-LZI7A4JI.js';
1
+ import { api } from './chunk-A6KSECAH.js';
2
2
 
3
3
  // src/api/getBridges.ts
4
4
  var bridges = api({