@skip-go/client 1.3.7 → 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/api/getAssets.cjs +4 -4
- package/dist/cjs/api/getAssetsBetweenChains.cjs +3 -3
- package/dist/cjs/api/getBridges.cjs +3 -3
- package/dist/cjs/api/getChains.cjs +3 -3
- package/dist/cjs/api/getVenues.cjs +3 -3
- package/dist/cjs/api/postAssetsFromSource.cjs +4 -4
- package/dist/cjs/api/postBalances.cjs +3 -3
- package/dist/cjs/api/postIbcOriginAssets.cjs +3 -3
- package/dist/cjs/api/postMessages.cjs +3 -3
- package/dist/cjs/api/postMessagesDirect.cjs +3 -3
- package/dist/cjs/api/postRecommendAssets.cjs +3 -3
- package/dist/cjs/api/postRoute.cjs +3 -3
- package/dist/cjs/api/postSubmitTransaction.cjs +3 -3
- package/dist/cjs/api/postTrackTransaction.cjs +3 -3
- package/dist/cjs/api/postTransactionStatus.cjs +3 -3
- package/dist/cjs/{chunk-2EKCOIWV.cjs → chunk-23YF4LFI.cjs} +185 -154
- package/dist/cjs/chunk-3M7YYWGL.cjs +295 -0
- package/dist/cjs/chunk-4YTACAVP.cjs +185 -0
- package/dist/cjs/{chunk-MW3TE7DC.cjs → chunk-5AYPH3ZR.cjs} +2 -2
- package/dist/cjs/{chunk-2CCLIBCC.cjs → chunk-5HDKZVOL.cjs} +2 -2
- package/dist/cjs/{chunk-YYBGBKRE.cjs → chunk-A26H4FVN.cjs} +4 -4
- package/dist/cjs/{chunk-P7CDAHIX.cjs → chunk-AXYRULAI.cjs} +2 -2
- package/dist/cjs/{chunk-E2P5MVX3.cjs → chunk-CUDPMOR6.cjs} +16 -9
- package/dist/cjs/{chunk-WMXUOVHN.cjs → chunk-DWOE6N5S.cjs} +248 -532
- package/dist/cjs/{chunk-7I2KQNIU.cjs → chunk-EJMC4JXF.cjs} +2 -2
- package/dist/cjs/{chunk-HKQ5VION.cjs → chunk-ERGJBZUC.cjs} +5 -1
- package/dist/cjs/{chunk-J5RC6ZU5.cjs → chunk-FNB244QI.cjs} +6 -6
- package/dist/cjs/chunk-GCJO6DZD.cjs +55 -0
- package/dist/cjs/{chunk-OEYY7NXT.cjs → chunk-HHZGD62Y.cjs} +256 -168
- package/dist/cjs/{chunk-DBDB2XWX.cjs → chunk-JBKNEFXB.cjs} +3 -3
- package/dist/cjs/{chunk-AF7EI5BT.cjs → chunk-K4YAPDUE.cjs} +2 -2
- package/dist/cjs/{chunk-MN6HFZJA.cjs → chunk-KM2D7PJL.cjs} +33 -33
- package/dist/cjs/{chunk-XGBCEYWI.cjs → chunk-LHY62HPI.cjs} +2 -2
- package/dist/cjs/{chunk-EXK2GDR5.cjs → chunk-LUVMRHAJ.cjs} +2 -2
- package/dist/cjs/{chunk-QSISUSYP.cjs → chunk-N4UW74AG.cjs} +4 -4
- package/dist/cjs/{chunk-FY56EEFB.cjs → chunk-OZUCMWNE.cjs} +2 -2
- package/dist/cjs/{chunk-2VQ2TNFM.cjs → chunk-QPM7H2YL.cjs} +2 -2
- package/dist/cjs/{chunk-FO25SR66.cjs → chunk-RCGCQD6T.cjs} +6 -6
- package/dist/cjs/chunk-UIQML2XG.cjs +455 -0
- package/dist/cjs/chunk-VF65UG3E.cjs +214 -0
- package/dist/cjs/{chunk-VKVHMUDR.cjs → chunk-W3KF3V57.cjs} +6 -6
- package/dist/cjs/{chunk-YN66ABRQ.cjs → chunk-X22PL5T7.cjs} +126 -16
- package/dist/cjs/{chunk-DCFIIF7G.cjs → chunk-X5AJHZ2J.cjs} +2 -2
- package/dist/cjs/{chunk-MCZ3F457.cjs → chunk-ZBPDDVQ2.cjs} +2 -2
- package/dist/cjs/index.cjs +66 -54
- package/dist/cjs/public-functions/executeMultipleRoutes.cjs +29 -0
- package/dist/cjs/public-functions/executeRoute.cjs +17 -15
- package/dist/cjs/public-functions/getCosmosGasAmountForMessage.cjs +5 -4
- package/dist/cjs/public-functions/getFeeInfoForChain.cjs +5 -5
- package/dist/cjs/public-functions/getRecommendedGasPrice.cjs +6 -6
- package/dist/cjs/public-functions/getSigningStargateClient.cjs +6 -5
- package/dist/cjs/public-functions/setApiOptions.cjs +3 -3
- package/dist/cjs/public-functions/setClientOptions.cjs +6 -5
- package/dist/cjs/public-functions/subscribeToRouteStatus.cjs +26 -0
- package/dist/cjs/public-functions/validateCosmosGasBalance.cjs +9 -8
- package/dist/cjs/public-functions/waitForTransaction.cjs +5 -5
- package/dist/esm/api/getAssets.js +2 -2
- package/dist/esm/api/getAssetsBetweenChains.js +2 -2
- package/dist/esm/api/getBridges.js +2 -2
- package/dist/esm/api/getChains.js +2 -2
- package/dist/esm/api/getVenues.js +2 -2
- package/dist/esm/api/postAssetsFromSource.js +3 -3
- package/dist/esm/api/postBalances.js +2 -2
- package/dist/esm/api/postIbcOriginAssets.js +2 -2
- package/dist/esm/api/postMessages.js +2 -2
- package/dist/esm/api/postMessagesDirect.js +2 -2
- package/dist/esm/api/postRecommendAssets.js +2 -2
- package/dist/esm/api/postRoute.js +2 -2
- package/dist/esm/api/postSubmitTransaction.js +2 -2
- package/dist/esm/api/postTrackTransaction.d.ts +2 -1
- package/dist/esm/api/postTrackTransaction.js +2 -2
- package/dist/esm/api/postTransactionStatus.d.ts +1 -1
- package/dist/esm/api/postTransactionStatus.js +2 -2
- package/dist/esm/callbacks-CvqAtBJq.d.ts +130 -0
- package/dist/esm/{chunk-SJP6W2SK.js → chunk-3XOGEVJL.js} +1 -1
- package/dist/esm/{chunk-JSY7M43P.js → chunk-52PEBJRQ.js} +1 -1
- package/dist/esm/chunk-7RS3YIVC.js +53 -0
- package/dist/esm/{chunk-7ITTEUMR.js → chunk-7X4ERB3R.js} +1 -1
- package/dist/esm/{chunk-LZI7A4JI.js → chunk-A6KSECAH.js} +5 -1
- package/dist/esm/{chunk-7LSTJXAF.js → chunk-AND7HVIU.js} +1 -1
- package/dist/esm/{chunk-MXCJ2M3K.js → chunk-APRMN34M.js} +1 -1
- package/dist/esm/chunk-AZALP3WR.js +212 -0
- package/dist/esm/{chunk-5JZOTYDC.js → chunk-CX5N7ZLJ.js} +1 -1
- package/dist/esm/{chunk-JYUNVL4F.js → chunk-FH2YHZVV.js} +1 -1
- package/dist/esm/chunk-IUYOY23L.js +180 -0
- package/dist/esm/{chunk-IQQDEBLI.js → chunk-JKN4E5VN.js} +11 -4
- package/dist/esm/{chunk-OHV2LZEG.js → chunk-JQ4F4WBG.js} +1 -1
- package/dist/esm/{chunk-5FKIW2ZL.js → chunk-KLGGCB73.js} +2 -2
- package/dist/esm/{chunk-P76IRSIS.js → chunk-KNXMSLOB.js} +2 -2
- package/dist/esm/{chunk-IWXRHEX4.js → chunk-LHNGF5J2.js} +2 -2
- package/dist/esm/{chunk-KJVD5P3Q.js → chunk-MPSXXWKL.js} +109 -3
- package/dist/esm/{chunk-FFFVITWF.js → chunk-MTAS5XMN.js} +219 -132
- package/dist/esm/{chunk-JIADJKRD.js → chunk-OTS5KO43.js} +1 -1
- package/dist/esm/{chunk-CU6W3622.js → chunk-QIS6ILPS.js} +3 -3
- package/dist/esm/chunk-QO2CYYF5.js +278 -0
- package/dist/esm/{chunk-XXTECZG3.js → chunk-S4RO2LHD.js} +1 -1
- package/dist/esm/{chunk-7YN3UVVF.js → chunk-UI3SIFZN.js} +1 -1
- package/dist/esm/{chunk-TD63P2AG.js → chunk-UIDIKXMB.js} +65 -340
- package/dist/esm/chunk-VUXLWWLF.js +450 -0
- package/dist/esm/{chunk-OL7CWCPB.js → chunk-WBZVMPPV.js} +34 -3
- package/dist/esm/{chunk-HT6O3BQ7.js → chunk-Y2YCODZK.js} +1 -1
- package/dist/esm/{chunk-IPHFFTGO.js → chunk-ZI3SYUQH.js} +1 -1
- package/dist/esm/{chunk-2L7PKZDY.js → chunk-ZOUYAZU6.js} +1 -1
- package/dist/esm/client-types-Dk6ypWdO.d.ts +114 -0
- package/dist/esm/index.d.ts +5 -5
- package/dist/esm/index.js +29 -25
- 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 +7 -76
- package/dist/esm/public-functions/executeRoute.js +16 -14
- package/dist/esm/public-functions/getCosmosGasAmountForMessage.js +3 -2
- package/dist/esm/public-functions/getEvmGasAmountForMessage.d.ts +4 -1
- package/dist/esm/public-functions/getFeeInfoForChain.js +4 -4
- package/dist/esm/public-functions/getRecommendedGasPrice.js +5 -5
- package/dist/esm/public-functions/getSigningStargateClient.js +5 -4
- package/dist/esm/public-functions/setApiOptions.js +2 -2
- package/dist/esm/public-functions/setClientOptions.d.ts +4 -2
- package/dist/esm/public-functions/setClientOptions.js +5 -4
- package/dist/esm/public-functions/subscribeToRouteStatus.d.ts +12 -0
- package/dist/esm/public-functions/subscribeToRouteStatus.js +5 -0
- package/dist/esm/public-functions/validateCosmosGasBalance.d.ts +7 -5
- package/dist/esm/public-functions/validateCosmosGasBalance.js +8 -7
- package/dist/esm/public-functions/waitForTransaction.d.ts +6 -2
- package/dist/esm/public-functions/waitForTransaction.js +4 -4
- package/dist/esm/{setClientOptions-BTRwCbmt.d.ts → setClientOptions-BD8e7m2x.d.ts} +1 -1
- package/package.json +3 -3
- package/dist/cjs/chunk-7H6XRQAX.cjs +0 -185
- package/dist/esm/callbacks-CuL50GnB.d.ts +0 -38
- package/dist/esm/chunk-U6AH2WOP.js +0 -180
- package/dist/esm/client-types-B7Fin0mq.d.ts +0 -61
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkLUVMRHAJ_cjs = require('./chunk-LUVMRHAJ.cjs');
|
|
4
|
+
var chunkQPM7H2YL_cjs = require('./chunk-QPM7H2YL.cjs');
|
|
5
|
+
var chunkERGJBZUC_cjs = require('./chunk-ERGJBZUC.cjs');
|
|
6
|
+
var uuid = require('uuid');
|
|
7
|
+
|
|
8
|
+
// src/utils/clientType.ts
|
|
9
|
+
function getClientTransferEvent(transferEvent) {
|
|
10
|
+
const combinedTransferEvent = transferEvent;
|
|
11
|
+
const axelarTransfer = combinedTransferEvent?.axelarTransfer;
|
|
12
|
+
const ibcTransfer = combinedTransferEvent?.ibcTransfer;
|
|
13
|
+
const cctpTransfer = combinedTransferEvent?.cctpTransfer;
|
|
14
|
+
const hyperlaneTransfer = combinedTransferEvent?.hyperlaneTransfer;
|
|
15
|
+
const opInitTransfer = combinedTransferEvent?.opInitTransfer;
|
|
16
|
+
const goFastTransfer = combinedTransferEvent?.goFastTransfer;
|
|
17
|
+
const stargateTransfer = combinedTransferEvent?.stargateTransfer;
|
|
18
|
+
const eurekaTransfer = combinedTransferEvent?.eurekaTransfer;
|
|
19
|
+
const layerZeroTransfer = combinedTransferEvent?.layerZeroTransfer;
|
|
20
|
+
let transferType = "";
|
|
21
|
+
if (axelarTransfer) {
|
|
22
|
+
transferType = "axelarTransfer" /* axelarTransfer */;
|
|
23
|
+
} else if (ibcTransfer) {
|
|
24
|
+
transferType = "ibcTransfer" /* ibcTransfer */;
|
|
25
|
+
} else if (cctpTransfer) {
|
|
26
|
+
transferType = "cctpTransfer" /* cctpTransfer */;
|
|
27
|
+
} else if (hyperlaneTransfer) {
|
|
28
|
+
transferType = "hyperlaneTransfer" /* hyperlaneTransfer */;
|
|
29
|
+
} else if (opInitTransfer) {
|
|
30
|
+
transferType = "opInitTransfer" /* opInitTransfer */;
|
|
31
|
+
} else if (goFastTransfer) {
|
|
32
|
+
transferType = "goFastTransfer" /* goFastTransfer */;
|
|
33
|
+
} else if (stargateTransfer) {
|
|
34
|
+
transferType = "stargateTransfer" /* stargateTransfer */;
|
|
35
|
+
} else if (eurekaTransfer) {
|
|
36
|
+
transferType = "eurekaTransfer" /* eurekaTransfer */;
|
|
37
|
+
} else if (layerZeroTransfer) {
|
|
38
|
+
transferType = "layerZeroTransfer" /* layerZeroTransfer */;
|
|
39
|
+
}
|
|
40
|
+
const getExplorerLink = (type) => {
|
|
41
|
+
switch (transferType) {
|
|
42
|
+
case "ibcTransfer" /* ibcTransfer */:
|
|
43
|
+
if (type === "send") {
|
|
44
|
+
return ibcTransfer.packetTxs.sendTx?.explorerLink;
|
|
45
|
+
}
|
|
46
|
+
return ibcTransfer.packetTxs.receiveTx?.explorerLink;
|
|
47
|
+
case "eurekaTransfer" /* eurekaTransfer */:
|
|
48
|
+
if (type === "send") {
|
|
49
|
+
return eurekaTransfer.packetTxs.sendTx?.explorerLink;
|
|
50
|
+
}
|
|
51
|
+
return eurekaTransfer.packetTxs.receiveTx?.explorerLink;
|
|
52
|
+
case "goFastTransfer" /* goFastTransfer */:
|
|
53
|
+
if (type === "send") {
|
|
54
|
+
return goFastTransfer.txs.orderSubmittedTx?.explorerLink;
|
|
55
|
+
}
|
|
56
|
+
return goFastTransfer.txs.orderFilledTx?.explorerLink;
|
|
57
|
+
case "axelarTransfer" /* axelarTransfer */:
|
|
58
|
+
return axelarTransfer?.axelarScanLink;
|
|
59
|
+
default:
|
|
60
|
+
if (type === "send") {
|
|
61
|
+
return combinedTransferEvent[transferType]?.txs?.sendTx?.explorerLink;
|
|
62
|
+
}
|
|
63
|
+
return combinedTransferEvent[transferType]?.txs?.receiveTx?.explorerLink;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const _result = {
|
|
67
|
+
...ibcTransfer,
|
|
68
|
+
...axelarTransfer,
|
|
69
|
+
...cctpTransfer,
|
|
70
|
+
...hyperlaneTransfer,
|
|
71
|
+
...stargateTransfer,
|
|
72
|
+
...hyperlaneTransfer,
|
|
73
|
+
...opInitTransfer,
|
|
74
|
+
...goFastTransfer,
|
|
75
|
+
...stargateTransfer,
|
|
76
|
+
...eurekaTransfer,
|
|
77
|
+
...layerZeroTransfer,
|
|
78
|
+
fromExplorerLink: getExplorerLink("send"),
|
|
79
|
+
toExplorerLink: getExplorerLink("receive")
|
|
80
|
+
};
|
|
81
|
+
const status = getSimpleStatus(_result.state);
|
|
82
|
+
const result = {
|
|
83
|
+
..._result,
|
|
84
|
+
status
|
|
85
|
+
};
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
function getTransferEventsFromTxStatusResponse(txStatusResponse) {
|
|
89
|
+
if (!txStatusResponse) return [];
|
|
90
|
+
return txStatusResponse?.flatMap((txStatus) => {
|
|
91
|
+
return (txStatus.transferSequence ?? []).map((transferEvent) => {
|
|
92
|
+
return getClientTransferEvent(transferEvent);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function getSimpleStatus(state) {
|
|
97
|
+
switch (state) {
|
|
98
|
+
case "TRANSFER_PENDING":
|
|
99
|
+
case "TRANSFER_RECEIVED":
|
|
100
|
+
case "AXELAR_TRANSFER_PENDING_CONFIRMATION":
|
|
101
|
+
case "AXELAR_TRANSFER_PENDING_RECEIPT":
|
|
102
|
+
case "CCTP_TRANSFER_SENT":
|
|
103
|
+
case "CCTP_TRANSFER_PENDING_CONFIRMATION":
|
|
104
|
+
case "CCTP_TRANSFER_CONFIRMED":
|
|
105
|
+
case "HYPERLANE_TRANSFER_SENT":
|
|
106
|
+
case "OPINIT_TRANSFER_SENT":
|
|
107
|
+
case "GO_FAST_TRANSFER_SENT":
|
|
108
|
+
case "STARGATE_TRANSFER_SENT":
|
|
109
|
+
case "LAYER_ZERO_TRANSFER_SENT":
|
|
110
|
+
return "pending";
|
|
111
|
+
case "TRANSFER_SUCCESS":
|
|
112
|
+
case "AXELAR_TRANSFER_SUCCESS":
|
|
113
|
+
case "CCTP_TRANSFER_RECEIVED":
|
|
114
|
+
case "HYPERLANE_TRANSFER_RECEIVED":
|
|
115
|
+
case "OPINIT_TRANSFER_RECEIVED":
|
|
116
|
+
case "STARGATE_TRANSFER_RECEIVED":
|
|
117
|
+
case "GO_FAST_TRANSFER_FILLED":
|
|
118
|
+
case "LAYER_ZERO_TRANSFER_RECEIVED":
|
|
119
|
+
return "completed";
|
|
120
|
+
default:
|
|
121
|
+
return "failed";
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function getTransactionStatus(state) {
|
|
125
|
+
switch (state) {
|
|
126
|
+
case "STATE_SUBMITTED":
|
|
127
|
+
case "STATE_PENDING":
|
|
128
|
+
return "pending";
|
|
129
|
+
case "STATE_COMPLETED_SUCCESS":
|
|
130
|
+
return "success";
|
|
131
|
+
case "STATE_COMPLETED_ERROR":
|
|
132
|
+
case "STATE_PENDING_ERROR":
|
|
133
|
+
return "failed";
|
|
134
|
+
default:
|
|
135
|
+
return "pending";
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
var isFinalRouteStatus = (routeDetails) => {
|
|
139
|
+
if (routeDetails.status === "completed" || routeDetails.status === "failed" || routeDetails.status === "incomplete") {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
return false;
|
|
143
|
+
};
|
|
144
|
+
var isFinalState = (transaction) => {
|
|
145
|
+
const transactionState = transaction?.statusResponse?.transfers?.[0]?.state;
|
|
146
|
+
const transactionStatus2 = transaction?.status;
|
|
147
|
+
return transactionState === "STATE_COMPLETED_SUCCESS" || transactionState === "STATE_COMPLETED_ERROR" || transactionState === "STATE_ABANDONED" || transactionStatus2 === "failed" || transactionStatus2 === "success";
|
|
148
|
+
};
|
|
149
|
+
var isSuccessState = (transaction) => {
|
|
150
|
+
const transactionState = transaction?.statusResponse?.transfers?.[0]?.state;
|
|
151
|
+
const transactionStatus2 = transaction?.status;
|
|
152
|
+
return transactionState === "STATE_COMPLETED_SUCCESS" || transactionStatus2 === "success";
|
|
153
|
+
};
|
|
154
|
+
var routeDetailsMap = /* @__PURE__ */ new Map();
|
|
155
|
+
var initializeNewRouteDetails = (options) => {
|
|
156
|
+
const newRouteId = uuid.v4();
|
|
157
|
+
const newRouteDetails = {
|
|
158
|
+
id: newRouteId,
|
|
159
|
+
timestamp: Date.now(),
|
|
160
|
+
route: getSimpleRoute(options?.route),
|
|
161
|
+
status: "unconfirmed",
|
|
162
|
+
txsRequired: options?.route?.txsRequired ?? 1,
|
|
163
|
+
txsSigned: 0,
|
|
164
|
+
transactionDetails: [],
|
|
165
|
+
transferEvents: [],
|
|
166
|
+
relatedRoutes: [],
|
|
167
|
+
userAddresses: options?.userAddresses ?? []
|
|
168
|
+
};
|
|
169
|
+
routeDetailsMap.set(newRouteId, newRouteDetails);
|
|
170
|
+
return newRouteDetails;
|
|
171
|
+
};
|
|
172
|
+
var subscribeToRouteStatus = (props) => {
|
|
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
|
+
}
|
|
194
|
+
};
|
|
195
|
+
return unsubscribeAll;
|
|
196
|
+
};
|
|
197
|
+
var executeAndSubscribeToRouteStatus = async ({
|
|
198
|
+
transactionDetails,
|
|
199
|
+
executeTransaction,
|
|
200
|
+
trackTxPollingOptions,
|
|
201
|
+
onTransactionTracked,
|
|
202
|
+
onTransactionCompleted,
|
|
203
|
+
routeDetails,
|
|
204
|
+
onRouteStatusUpdated,
|
|
205
|
+
options,
|
|
206
|
+
routeId,
|
|
207
|
+
isCancelled
|
|
208
|
+
}) => {
|
|
209
|
+
removeRoutesWithFinalStatus();
|
|
210
|
+
routeId ??= routeDetails?.id;
|
|
211
|
+
const currentRouteDetails = routeDetailsMap.get(routeId ?? "");
|
|
212
|
+
transactionDetails ??= routeDetails?.transactionDetails ?? currentRouteDetails?.transactionDetails ?? [];
|
|
213
|
+
if (routeDetails && isFinalRouteStatus(routeDetails) && routeDetails?.relatedRoutes?.every(
|
|
214
|
+
(relatedRoute) => isFinalRouteStatus(relatedRoute)
|
|
215
|
+
)) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
for (const [transactionIndex, transaction] of transactionDetails.entries()) {
|
|
219
|
+
if (executeTransaction && !transaction.txHash) {
|
|
220
|
+
let { txHash, explorerLink } = await executeTransaction?.(transactionIndex);
|
|
221
|
+
transaction.txHash = txHash;
|
|
222
|
+
if (!explorerLink) {
|
|
223
|
+
const trackResponse = await chunkLUVMRHAJ_cjs.trackTransaction({
|
|
224
|
+
chainId: transaction.chainId,
|
|
225
|
+
txHash: transaction.txHash,
|
|
226
|
+
...trackTxPollingOptions
|
|
227
|
+
});
|
|
228
|
+
explorerLink = trackResponse.explorerLink;
|
|
229
|
+
}
|
|
230
|
+
transaction.explorerLink = explorerLink;
|
|
231
|
+
await onTransactionTracked?.({
|
|
232
|
+
txHash: transaction.txHash,
|
|
233
|
+
chainId: transaction.chainId,
|
|
234
|
+
explorerLink
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
if (transaction.txHash === void 0) {
|
|
238
|
+
updateRouteDetails({
|
|
239
|
+
routeId,
|
|
240
|
+
routeDetails,
|
|
241
|
+
transactionDetails,
|
|
242
|
+
options: {
|
|
243
|
+
onRouteStatusUpdated,
|
|
244
|
+
...options
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
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
|
+
}
|
|
257
|
+
if (isCancelled?.()) {
|
|
258
|
+
console.info(`Polling cancelled for route ${routeId}`);
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
try {
|
|
262
|
+
const statusResponse = await chunkQPM7H2YL_cjs.transactionStatus({
|
|
263
|
+
chainId: transaction.chainId,
|
|
264
|
+
txHash: transaction.txHash
|
|
265
|
+
});
|
|
266
|
+
transaction.statusResponse = statusResponse;
|
|
267
|
+
updateRouteDetails({
|
|
268
|
+
routeId,
|
|
269
|
+
routeDetails,
|
|
270
|
+
transactionDetails,
|
|
271
|
+
options: {
|
|
272
|
+
onRouteStatusUpdated,
|
|
273
|
+
...options
|
|
274
|
+
},
|
|
275
|
+
relatedRoutes: routeDetails?.relatedRoutes
|
|
276
|
+
});
|
|
277
|
+
if (isFinalState(transaction)) {
|
|
278
|
+
onTransactionCompleted?.({
|
|
279
|
+
chainId: transaction.chainId,
|
|
280
|
+
txHash: transaction.txHash,
|
|
281
|
+
status: statusResponse
|
|
282
|
+
});
|
|
283
|
+
if (routeDetails?.relatedRoutes?.every(
|
|
284
|
+
(relatedRoute) => isFinalRouteStatus(relatedRoute)
|
|
285
|
+
)) {
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
} catch (error) {
|
|
290
|
+
console.error(error);
|
|
291
|
+
} finally {
|
|
292
|
+
await chunkERGJBZUC_cjs.wait(1e3);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
var updateRouteDetails = ({
|
|
298
|
+
transactionDetails,
|
|
299
|
+
routeDetails,
|
|
300
|
+
options,
|
|
301
|
+
status,
|
|
302
|
+
routeId,
|
|
303
|
+
mainRouteId,
|
|
304
|
+
transferIndexToRouteKey,
|
|
305
|
+
relatedRoutes
|
|
306
|
+
}) => {
|
|
307
|
+
routeId ??= routeDetails?.id ?? "";
|
|
308
|
+
let currentRouteDetails = routeDetails ?? routeDetailsMap.get(routeId);
|
|
309
|
+
if (!routeId && currentRouteDetails == void 0) {
|
|
310
|
+
currentRouteDetails = initializeNewRouteDetails(options);
|
|
311
|
+
routeId = currentRouteDetails?.id;
|
|
312
|
+
}
|
|
313
|
+
transferIndexToRouteKey ??= currentRouteDetails?.transferIndexToRouteKey;
|
|
314
|
+
if (currentRouteDetails === void 0) {
|
|
315
|
+
throw new Error("No route details found");
|
|
316
|
+
}
|
|
317
|
+
transactionDetails ??= currentRouteDetails?.transactionDetails ?? [];
|
|
318
|
+
const txsRequired = currentRouteDetails?.txsRequired ?? options?.route?.txsRequired ?? 1;
|
|
319
|
+
if (currentRouteDetails?.status === "signing" && status === "pending") {
|
|
320
|
+
currentRouteDetails.txsSigned += 1;
|
|
321
|
+
}
|
|
322
|
+
const transferEvents = routeDetails?.transferEvents ?? getTransferEventsFromTxStatusResponse(
|
|
323
|
+
transactionDetails.map((tx) => tx.statusResponse).filter((status2) => status2 !== void 0)
|
|
324
|
+
);
|
|
325
|
+
const allExpectedTxsStarted = transactionDetails.every(
|
|
326
|
+
(tx) => tx.txHash || tx.status === void 0
|
|
327
|
+
);
|
|
328
|
+
const allKnownDetailsHaveFinalStatus = transactionDetails.every(
|
|
329
|
+
(transaction) => isFinalState(transaction)
|
|
330
|
+
);
|
|
331
|
+
const isAllSettled = allExpectedTxsStarted && allKnownDetailsHaveFinalStatus;
|
|
332
|
+
const someTxSucceeded = transactionDetails.some((tx) => isSuccessState(tx));
|
|
333
|
+
const someTxFailed = transactionDetails.some((tx) => !isSuccessState(tx));
|
|
334
|
+
const getRouteStatus = () => {
|
|
335
|
+
if (status) return status;
|
|
336
|
+
if (someTxSucceeded && !allExpectedTxsStarted) return "incomplete";
|
|
337
|
+
if (isAllSettled) {
|
|
338
|
+
if (!someTxFailed) {
|
|
339
|
+
return "completed";
|
|
340
|
+
} else if (someTxSucceeded && someTxFailed) {
|
|
341
|
+
return "incomplete";
|
|
342
|
+
} else if (someTxFailed) {
|
|
343
|
+
return "failed";
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return currentRouteDetails?.status;
|
|
347
|
+
};
|
|
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
|
+
});
|
|
356
|
+
const newRouteDetails = {
|
|
357
|
+
id: routeId,
|
|
358
|
+
timestamp: currentRouteDetails.timestamp,
|
|
359
|
+
status: getRouteStatus(),
|
|
360
|
+
route: getSimpleRoute(currentRouteDetails?.route ?? options?.route),
|
|
361
|
+
txsRequired,
|
|
362
|
+
transactionDetails,
|
|
363
|
+
transferEvents,
|
|
364
|
+
transferAssetRelease,
|
|
365
|
+
userAddresses: (currentRouteDetails?.userAddresses.length > 0 ? currentRouteDetails?.userAddresses : options?.userAddresses) ?? [],
|
|
366
|
+
txsSigned: currentRouteDetails?.txsSigned,
|
|
367
|
+
transferIndexToRouteKey,
|
|
368
|
+
mainRouteId: mainRouteId ?? currentRouteDetails?.mainRouteId,
|
|
369
|
+
relatedRoutes: updatedRelatedRoutes
|
|
370
|
+
};
|
|
371
|
+
const newRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(newRouteDetails);
|
|
372
|
+
const previousRouteStatus = getRouteDetailsWithSimpleTransactionDetailsStatus(currentRouteDetails);
|
|
373
|
+
if (options?.onRouteStatusUpdated && JSON.stringify(newRouteStatus) !== JSON.stringify(previousRouteStatus)) {
|
|
374
|
+
options?.onRouteStatusUpdated?.(newRouteStatus);
|
|
375
|
+
}
|
|
376
|
+
if (routeId) {
|
|
377
|
+
routeDetailsMap.set(routeId, newRouteDetails);
|
|
378
|
+
}
|
|
379
|
+
return newRouteDetails;
|
|
380
|
+
};
|
|
381
|
+
var getSimpleRoute = (route) => {
|
|
382
|
+
return {
|
|
383
|
+
usdAmountOut: route?.usdAmountOut,
|
|
384
|
+
usdAmountIn: route?.usdAmountIn,
|
|
385
|
+
amountIn: route?.amountIn,
|
|
386
|
+
amountOut: route?.amountOut,
|
|
387
|
+
sourceAssetDenom: route?.sourceAssetDenom,
|
|
388
|
+
sourceAssetChainId: route?.sourceAssetChainId,
|
|
389
|
+
destAssetDenom: route?.destAssetDenom,
|
|
390
|
+
destAssetChainId: route?.destAssetChainId,
|
|
391
|
+
estimatedRouteDurationSeconds: route?.estimatedRouteDurationSeconds
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
var getRouteDetailsWithSimpleTransactionDetailsStatus = (routeDetails) => {
|
|
395
|
+
return {
|
|
396
|
+
...routeDetails,
|
|
397
|
+
transactionDetails: routeDetails.transactionDetails.map((txDetails) => {
|
|
398
|
+
const { statusResponse, ...rest } = txDetails;
|
|
399
|
+
const newTxDetails = {
|
|
400
|
+
...rest,
|
|
401
|
+
status: txDetails?.status ?? getTransactionStatus(statusResponse?.transfers?.[0]?.state)
|
|
402
|
+
};
|
|
403
|
+
return newTxDetails;
|
|
404
|
+
})
|
|
405
|
+
};
|
|
406
|
+
};
|
|
407
|
+
var removeRoutesWithFinalStatus = () => {
|
|
408
|
+
routeDetailsMap.forEach((routeDetails, routeId) => {
|
|
409
|
+
if (routeDetails.status === "completed" || routeDetails.status === "failed" || routeDetails.status === "incomplete") {
|
|
410
|
+
routeDetailsMap.delete(routeId);
|
|
411
|
+
}
|
|
412
|
+
});
|
|
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
|
+
};
|
|
451
|
+
|
|
452
|
+
exports.executeAndSubscribeToRouteStatus = executeAndSubscribeToRouteStatus;
|
|
453
|
+
exports.getTransactionStatus = getTransactionStatus;
|
|
454
|
+
exports.subscribeToRouteStatus = subscribeToRouteStatus;
|
|
455
|
+
exports.updateRouteDetails = updateRouteDetails;
|
|
@@ -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;
|