@skip-go/client 1.4.0 → 1.5.1

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 (71) hide show
  1. package/dist/cjs/{chunk-IDEJORRT.cjs → chunk-23YF4LFI.cjs} +30 -0
  2. package/dist/cjs/{chunk-Q43XCBMX.cjs → chunk-5CB6SPCX.cjs} +4 -4
  3. package/dist/cjs/{chunk-ZKBSNSHQ.cjs → chunk-EZGHN6ZL.cjs} +120 -116
  4. package/dist/cjs/{chunk-7MC3BVQN.cjs → chunk-KHJQE3DI.cjs} +133 -35
  5. package/dist/cjs/chunk-KSJ5QYMR.cjs +185 -0
  6. package/dist/cjs/chunk-N5V3YW5K.cjs +55 -0
  7. package/dist/cjs/chunk-NDSHB4I6.cjs +214 -0
  8. package/dist/cjs/{chunk-ZAATXQBG.cjs → chunk-QZ2BGX6O.cjs} +2 -2
  9. package/dist/cjs/{chunk-6LA66667.cjs → chunk-RVXCF6AL.cjs} +3 -3
  10. package/dist/cjs/{chunk-46VB6RQK.cjs → chunk-V3FWWJG2.cjs} +10 -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/api/getAssets.d.ts +1 -1
  21. package/dist/esm/api/getAssetsBetweenChains.d.ts +1 -1
  22. package/dist/esm/api/getBridges.d.ts +3 -3
  23. package/dist/esm/api/getChains.d.ts +1 -1
  24. package/dist/esm/api/postAssetsFromSource.d.ts +10 -1
  25. package/dist/esm/api/postBalances.d.ts +2 -2
  26. package/dist/esm/api/postMessages.d.ts +2 -2
  27. package/dist/esm/api/postMessagesDirect.d.ts +3 -1
  28. package/dist/esm/api/postRecommendAssets.d.ts +1 -1
  29. package/dist/esm/api/postRoute.d.ts +4 -2
  30. package/dist/esm/api/postSubmitTransaction.d.ts +2 -2
  31. package/dist/esm/api/postTrackTransaction.d.ts +2 -2
  32. package/dist/esm/api/postTransactionStatus.d.ts +2 -2
  33. package/dist/esm/{callbacks-B3kjKg0v.d.ts → callbacks-DCqqd0D9.d.ts} +22 -69
  34. package/dist/esm/{chunk-CIAOTO3M.js → chunk-2DD5F6PK.js} +1 -1
  35. package/dist/esm/{chunk-4RLJWCQR.js → chunk-3J5IMMMB.js} +1 -1
  36. package/dist/esm/chunk-562J5DCB.js +53 -0
  37. package/dist/esm/{chunk-KYDY7QRT.js → chunk-BZDVQMHK.js} +1 -1
  38. package/dist/esm/chunk-FVQFGEL2.js +212 -0
  39. package/dist/esm/chunk-RHGDUD76.js +180 -0
  40. package/dist/esm/{chunk-GHNH5QC3.js → chunk-VZGOU6MB.js} +9 -2
  41. package/dist/esm/{chunk-BAJFQZDT.js → chunk-W5EGS2G4.js} +99 -96
  42. package/dist/esm/{chunk-REWUSU53.js → chunk-WBZVMPPV.js} +30 -0
  43. package/dist/esm/{chunk-RQ7DXNSS.js → chunk-XYYXRVFN.js} +133 -35
  44. package/dist/esm/client-types-BSZasIDd.d.ts +114 -0
  45. package/dist/esm/{generateApi-C_xgtxrO.d.ts → generateApi-CwM4Ca30.d.ts} +1 -1
  46. package/dist/esm/index.d.ts +216 -6
  47. package/dist/esm/index.js +12 -10
  48. package/dist/esm/public-functions/executeMultipleRoutes.d.ts +60 -0
  49. package/dist/esm/public-functions/executeMultipleRoutes.js +20 -0
  50. package/dist/esm/public-functions/executeRoute.d.ts +5 -5
  51. package/dist/esm/public-functions/executeRoute.js +7 -6
  52. package/dist/esm/public-functions/getCosmosGasAmountForMessage.d.ts +1 -1
  53. package/dist/esm/public-functions/getEvmGasAmountForMessage.d.ts +5 -2
  54. package/dist/esm/public-functions/getFeeInfoForChain.d.ts +1 -1
  55. package/dist/esm/public-functions/getFeeInfoForChain.js +2 -2
  56. package/dist/esm/public-functions/getRecommendedGasPrice.js +3 -3
  57. package/dist/esm/public-functions/getSigningStargateClient.js +2 -2
  58. package/dist/esm/public-functions/setApiOptions.d.ts +1 -1
  59. package/dist/esm/public-functions/setClientOptions.d.ts +5 -3
  60. package/dist/esm/public-functions/setClientOptions.js +1 -1
  61. package/dist/esm/public-functions/subscribeToRouteStatus.d.ts +5 -5
  62. package/dist/esm/public-functions/subscribeToRouteStatus.js +1 -1
  63. package/dist/esm/public-functions/validateCosmosGasBalance.d.ts +7 -6
  64. package/dist/esm/public-functions/validateCosmosGasBalance.js +4 -4
  65. package/dist/esm/public-functions/waitForTransaction.d.ts +5 -5
  66. package/dist/esm/{setClientOptions-BTRwCbmt.d.ts → setClientOptions-0DYCj_A5.d.ts} +1 -1
  67. package/dist/esm/{swaggerTypes-DDwqIjap.d.ts → swaggerTypes-Bh6hu5Q-.d.ts} +220 -196
  68. package/package.json +1 -1
  69. package/dist/cjs/chunk-VIG2BHYJ.cjs +0 -185
  70. package/dist/esm/chunk-3J6O2PVK.js +0 -180
  71. 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,29 +163,41 @@ 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,
185
199
  executeTransaction,
186
200
  trackTxPollingOptions,
187
- onTransactionTracked,
188
- onTransactionCompleted,
189
201
  routeDetails,
190
202
  onRouteStatusUpdated,
191
203
  options,
@@ -196,7 +208,9 @@ var executeAndSubscribeToRouteStatus = async ({
196
208
  routeId ??= routeDetails?.id;
197
209
  const currentRouteDetails = routeDetailsMap.get(routeId ?? "");
198
210
  transactionDetails ??= routeDetails?.transactionDetails ?? currentRouteDetails?.transactionDetails ?? [];
199
- if (routeDetails && isFinalRouteStatus(routeDetails)) {
211
+ if (routeDetails && isFinalRouteStatus(routeDetails) && routeDetails?.relatedRoutes?.every(
212
+ (relatedRoute) => isFinalRouteStatus(relatedRoute)
213
+ )) {
200
214
  return;
201
215
  }
202
216
  for (const [transactionIndex, transaction] of transactionDetails.entries()) {
@@ -212,7 +226,11 @@ var executeAndSubscribeToRouteStatus = async ({
212
226
  explorerLink = trackResponse.explorerLink;
213
227
  }
214
228
  transaction.explorerLink = explorerLink;
215
- await onTransactionTracked?.({ txHash: transaction.txHash, chainId: transaction.chainId, explorerLink });
229
+ await options?.onTransactionTracked?.({
230
+ txHash: transaction.txHash,
231
+ chainId: transaction.chainId,
232
+ explorerLink
233
+ });
216
234
  }
217
235
  if (transaction.txHash === void 0) {
218
236
  updateRouteDetails({
@@ -226,10 +244,22 @@ var executeAndSubscribeToRouteStatus = async ({
226
244
  });
227
245
  return;
228
246
  }
229
- while (!isFinalState(transaction)) {
247
+ while (true) {
248
+ const updatedRouteDetails = routeDetailsMap.get(routeId ?? "");
249
+ const allRelatedRoutesFinal = updatedRouteDetails?.relatedRoutes?.every(
250
+ (relatedRoute) => relatedRoute && isFinalRouteStatus(relatedRoute)
251
+ );
252
+ if (isFinalState(transaction) && allRelatedRoutesFinal) {
253
+ options?.onTransactionCompleted?.({
254
+ chainId: transaction.chainId,
255
+ txHash: transaction.txHash,
256
+ status: transaction.statusResponse
257
+ });
258
+ break;
259
+ }
230
260
  if (isCancelled?.()) {
231
261
  console.info(`Polling cancelled for route ${routeId}`);
232
- return;
262
+ break;
233
263
  }
234
264
  try {
235
265
  const statusResponse = await chunkQPM7H2YL_cjs.transactionStatus({
@@ -244,15 +274,30 @@ var executeAndSubscribeToRouteStatus = async ({
244
274
  options: {
245
275
  onRouteStatusUpdated,
246
276
  ...options
247
- }
277
+ },
278
+ relatedRoutes: routeDetails?.relatedRoutes
248
279
  });
249
280
  if (isFinalState(transaction)) {
250
- onTransactionCompleted?.({
251
- chainId: transaction.chainId,
252
- txHash: transaction.txHash,
253
- status: statusResponse
254
- });
255
- break;
281
+ const relatedRoutes = updatedRouteDetails?.relatedRoutes && updatedRouteDetails?.relatedRoutes.length > 0 ? updatedRouteDetails.relatedRoutes : routeDetails?.relatedRoutes;
282
+ if (relatedRoutes && relatedRoutes.length > 0) {
283
+ if (relatedRoutes.every(
284
+ (relatedRoute) => isFinalRouteStatus(relatedRoute)
285
+ )) {
286
+ options?.onTransactionCompleted?.({
287
+ chainId: transaction.chainId,
288
+ txHash: transaction.txHash,
289
+ status: statusResponse
290
+ });
291
+ break;
292
+ }
293
+ } else {
294
+ options?.onTransactionCompleted?.({
295
+ chainId: transaction.chainId,
296
+ txHash: transaction.txHash,
297
+ status: statusResponse
298
+ });
299
+ break;
300
+ }
256
301
  }
257
302
  } catch (error) {
258
303
  console.error(error);
@@ -267,7 +312,10 @@ var updateRouteDetails = ({
267
312
  routeDetails,
268
313
  options,
269
314
  status,
270
- routeId
315
+ routeId,
316
+ mainRouteId,
317
+ transferIndexToRouteKey,
318
+ relatedRoutes
271
319
  }) => {
272
320
  routeId ??= routeDetails?.id ?? "";
273
321
  let currentRouteDetails = routeDetails ?? routeDetailsMap.get(routeId);
@@ -275,6 +323,7 @@ var updateRouteDetails = ({
275
323
  currentRouteDetails = initializeNewRouteDetails(options);
276
324
  routeId = currentRouteDetails?.id;
277
325
  }
326
+ transferIndexToRouteKey ??= currentRouteDetails?.transferIndexToRouteKey;
278
327
  if (currentRouteDetails === void 0) {
279
328
  throw new Error("No route details found");
280
329
  }
@@ -283,7 +332,9 @@ var updateRouteDetails = ({
283
332
  if (currentRouteDetails?.status === "signing" && status === "pending") {
284
333
  currentRouteDetails.txsSigned += 1;
285
334
  }
286
- const transferEvents = routeDetails?.transferEvents ?? getTransferEventsFromTxStatusResponse(transactionDetails.map((tx) => tx.statusResponse).filter((status2) => status2 !== void 0));
335
+ const transferEvents = routeDetails?.transferEvents ?? getTransferEventsFromTxStatusResponse(
336
+ transactionDetails.map((tx) => tx.statusResponse).filter((status2) => status2 !== void 0)
337
+ );
287
338
  const allExpectedTxsStarted = transactionDetails.every(
288
339
  (tx) => tx.txHash || tx.status === void 0
289
340
  );
@@ -307,9 +358,14 @@ var updateRouteDetails = ({
307
358
  }
308
359
  return currentRouteDetails?.status;
309
360
  };
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);
361
+ const transferAssetRelease = transactionDetails?.findLast(
362
+ (i) => i.statusResponse?.transferAssetRelease
363
+ )?.statusResponse?.transferAssetRelease;
364
+ const updatedRelatedRoutes = updateRelatedRoutes({
365
+ relatedRoutes: relatedRoutes ?? currentRouteDetails?.relatedRoutes ?? [],
366
+ transferIndexToRouteKey,
367
+ transactionDetails
368
+ });
313
369
  const newRouteDetails = {
314
370
  id: routeId,
315
371
  timestamp: currentRouteDetails.timestamp,
@@ -319,9 +375,11 @@ var updateRouteDetails = ({
319
375
  transactionDetails,
320
376
  transferEvents,
321
377
  transferAssetRelease,
322
- senderAddress: currentRouteDetails?.senderAddress ?? senderAddress?.address ?? "",
323
- receiverAddress: currentRouteDetails?.receiverAddress ?? receiverAddress?.address ?? "",
324
- txsSigned: currentRouteDetails?.txsSigned
378
+ userAddresses: (currentRouteDetails?.userAddresses.length > 0 ? currentRouteDetails?.userAddresses : options?.userAddresses) ?? [],
379
+ txsSigned: currentRouteDetails?.txsSigned,
380
+ transferIndexToRouteKey,
381
+ mainRouteId: mainRouteId ?? currentRouteDetails?.mainRouteId,
382
+ relatedRoutes: updatedRelatedRoutes
325
383
  };
326
384
  const newRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(newRouteDetails);
327
385
  const previousRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(currentRouteDetails);
@@ -335,6 +393,8 @@ var updateRouteDetails = ({
335
393
  };
336
394
  var getSimpleRoute = (route) => {
337
395
  return {
396
+ usdAmountOut: route?.usdAmountOut,
397
+ usdAmountIn: route?.usdAmountIn,
338
398
  amountIn: route?.amountIn,
339
399
  amountOut: route?.amountOut,
340
400
  sourceAssetDenom: route?.sourceAssetDenom,
@@ -349,10 +409,11 @@ var getRouteDetailsWithSimpleTransactionDetailsStatus = (routeDetails) => {
349
409
  ...routeDetails,
350
410
  transactionDetails: routeDetails.transactionDetails.map((txDetails) => {
351
411
  const { statusResponse, ...rest } = txDetails;
352
- return {
412
+ const newTxDetails = {
353
413
  ...rest,
354
- status: txDetails?.status ?? getTransactionStatus(txDetails.statusResponse?.state)
414
+ status: txDetails?.status ?? getTransactionStatus(statusResponse?.transfers?.[0]?.state)
355
415
  };
416
+ return newTxDetails;
356
417
  })
357
418
  };
358
419
  };
@@ -363,6 +424,43 @@ var removeRoutesWithFinalStatus = () => {
363
424
  }
364
425
  });
365
426
  };
427
+ var convertTransactionStatusToRouteStatus = (transactionStatus2) => {
428
+ if (!transactionStatus2) return;
429
+ if (transactionStatus2 === "success") {
430
+ return "completed";
431
+ }
432
+ return transactionStatus2;
433
+ };
434
+ var updateRelatedRoutes = ({
435
+ relatedRoutes,
436
+ transferIndexToRouteKey,
437
+ transactionDetails
438
+ }) => {
439
+ let updatedRelatedRoutes = [
440
+ ...relatedRoutes.map((relatedRoute) => ({ ...relatedRoute }))
441
+ ];
442
+ if (!transferIndexToRouteKey) return updatedRelatedRoutes;
443
+ transactionDetails?.forEach((transaction) => {
444
+ Object.entries(transferIndexToRouteKey).forEach(([indexStr, routeKey]) => {
445
+ const index = Number(indexStr);
446
+ const state = transaction?.statusResponse?.transfers?.[index]?.state;
447
+ const status = convertTransactionStatusToRouteStatus(
448
+ getTransactionStatus(state)
449
+ );
450
+ const transferAssetRelease = transaction?.statusResponse?.transfers?.[index]?.transferAssetRelease;
451
+ const targetRoute = updatedRelatedRoutes.find(
452
+ (r) => r.routeKey === routeKey
453
+ );
454
+ if (targetRoute && state) {
455
+ targetRoute.status = status ?? "failed";
456
+ }
457
+ if (targetRoute && transferAssetRelease) {
458
+ targetRoute.transferAssetRelease = transferAssetRelease;
459
+ }
460
+ });
461
+ });
462
+ return updatedRelatedRoutes;
463
+ };
366
464
 
367
465
  exports.executeAndSubscribeToRouteStatus = executeAndSubscribeToRouteStatus;
368
466
  exports.getTransactionStatus = getTransactionStatus;