@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.
- package/dist/cjs/{chunk-IDEJORRT.cjs → chunk-23YF4LFI.cjs} +30 -0
- package/dist/cjs/chunk-4YTACAVP.cjs +185 -0
- package/dist/cjs/{chunk-46VB6RQK.cjs → chunk-CUDPMOR6.cjs} +10 -3
- package/dist/cjs/chunk-GCJO6DZD.cjs +55 -0
- package/dist/cjs/{chunk-ZKBSNSHQ.cjs → chunk-HHZGD62Y.cjs} +120 -116
- package/dist/cjs/{chunk-ZAATXQBG.cjs → chunk-K4YAPDUE.cjs} +2 -2
- package/dist/cjs/{chunk-7MC3BVQN.cjs → chunk-UIQML2XG.cjs} +113 -28
- package/dist/cjs/chunk-VF65UG3E.cjs +214 -0
- package/dist/cjs/{chunk-Q43XCBMX.cjs → chunk-W3KF3V57.cjs} +4 -4
- package/dist/cjs/{chunk-6LA66667.cjs → chunk-X22PL5T7.cjs} +3 -3
- package/dist/cjs/index.cjs +26 -20
- package/dist/cjs/public-functions/executeMultipleRoutes.cjs +29 -0
- package/dist/cjs/public-functions/executeRoute.cjs +8 -7
- package/dist/cjs/public-functions/getFeeInfoForChain.cjs +3 -3
- package/dist/cjs/public-functions/getRecommendedGasPrice.cjs +4 -4
- package/dist/cjs/public-functions/getSigningStargateClient.cjs +3 -3
- package/dist/cjs/public-functions/setClientOptions.cjs +2 -2
- package/dist/cjs/public-functions/subscribeToRouteStatus.cjs +5 -5
- package/dist/cjs/public-functions/validateCosmosGasBalance.cjs +5 -5
- package/dist/esm/{callbacks-B3kjKg0v.d.ts → callbacks-CvqAtBJq.d.ts} +19 -64
- package/dist/esm/chunk-7RS3YIVC.js +53 -0
- package/dist/esm/chunk-AZALP3WR.js +212 -0
- package/dist/esm/{chunk-CIAOTO3M.js → chunk-CX5N7ZLJ.js} +1 -1
- package/dist/esm/chunk-IUYOY23L.js +180 -0
- package/dist/esm/{chunk-GHNH5QC3.js → chunk-JKN4E5VN.js} +9 -2
- package/dist/esm/{chunk-4RLJWCQR.js → chunk-KLGGCB73.js} +1 -1
- package/dist/esm/{chunk-KYDY7QRT.js → chunk-MPSXXWKL.js} +1 -1
- package/dist/esm/{chunk-BAJFQZDT.js → chunk-MTAS5XMN.js} +99 -96
- package/dist/esm/{chunk-RQ7DXNSS.js → chunk-VUXLWWLF.js} +113 -28
- package/dist/esm/{chunk-REWUSU53.js → chunk-WBZVMPPV.js} +30 -0
- package/dist/esm/client-types-Dk6ypWdO.d.ts +114 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +12 -10
- package/dist/esm/public-functions/executeMultipleRoutes.d.ts +60 -0
- package/dist/esm/public-functions/executeMultipleRoutes.js +20 -0
- package/dist/esm/public-functions/executeRoute.d.ts +3 -3
- package/dist/esm/public-functions/executeRoute.js +7 -6
- package/dist/esm/public-functions/getEvmGasAmountForMessage.d.ts +4 -1
- package/dist/esm/public-functions/getFeeInfoForChain.js +2 -2
- package/dist/esm/public-functions/getRecommendedGasPrice.js +3 -3
- package/dist/esm/public-functions/getSigningStargateClient.js +2 -2
- package/dist/esm/public-functions/setClientOptions.d.ts +4 -2
- package/dist/esm/public-functions/setClientOptions.js +1 -1
- package/dist/esm/public-functions/subscribeToRouteStatus.d.ts +3 -3
- package/dist/esm/public-functions/subscribeToRouteStatus.js +1 -1
- package/dist/esm/public-functions/validateCosmosGasBalance.d.ts +5 -4
- package/dist/esm/public-functions/validateCosmosGasBalance.js +4 -4
- package/dist/esm/public-functions/waitForTransaction.d.ts +3 -3
- package/dist/esm/{setClientOptions-BTRwCbmt.d.ts → setClientOptions-BD8e7m2x.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/cjs/chunk-VIG2BHYJ.cjs +0 -185
- package/dist/esm/chunk-3J6O2PVK.js +0 -180
- 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
|
-
|
|
167
|
-
|
|
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
|
-
|
|
174
|
-
const
|
|
175
|
-
|
|
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
|
-
|
|
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?.({
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
311
|
-
|
|
312
|
-
|
|
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
|
-
|
|
323
|
-
|
|
324
|
-
|
|
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
|
-
|
|
399
|
+
const newTxDetails = {
|
|
353
400
|
...rest,
|
|
354
|
-
status: txDetails?.status ?? getTransactionStatus(
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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}'`
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -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
|
|
5
|
-
var
|
|
6
|
-
|
|
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
|
|
13
|
+
var chunkK4YAPDUE_cjs = require('./chunk-K4YAPDUE.cjs');
|
|
10
14
|
require('./chunk-4R6OCWRR.cjs');
|
|
11
|
-
var
|
|
15
|
+
var chunkW3KF3V57_cjs = require('./chunk-W3KF3V57.cjs');
|
|
12
16
|
var chunkKZOSEIWH_cjs = require('./chunk-KZOSEIWH.cjs');
|
|
13
|
-
var
|
|
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
|
|
195
|
+
get: function () { return chunkGCJO6DZD_cjs.executeRoute; }
|
|
186
196
|
});
|
|
187
197
|
Object.defineProperty(exports, "subscribeToRouteStatus", {
|
|
188
198
|
enumerable: true,
|
|
189
|
-
get: function () { return
|
|
199
|
+
get: function () { return chunkUIQML2XG_cjs.subscribeToRouteStatus; }
|
|
190
200
|
});
|
|
191
201
|
Object.defineProperty(exports, "validateCosmosGasBalance", {
|
|
192
202
|
enumerable: true,
|
|
193
|
-
get: function () { return
|
|
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
|
|
215
|
+
get: function () { return chunkK4YAPDUE_cjs.getRecommendedGasPrice; }
|
|
206
216
|
});
|
|
207
217
|
Object.defineProperty(exports, "getFeeInfoForChain", {
|
|
208
218
|
enumerable: true,
|
|
209
|
-
get: function () { return
|
|
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
|
|
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
|
+
});
|