@skip-go/client 1.6.1 → 1.6.3

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.
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var chunkKGK6P2R2_cjs = require('./chunk-KGK6P2R2.cjs');
4
- var chunkX2ASEG4P_cjs = require('./chunk-X2ASEG4P.cjs');
3
+ var chunkG2JJ2R36_cjs = require('./chunk-G2JJ2R36.cjs');
4
+ var chunkXJASQLBH_cjs = require('./chunk-XJASQLBH.cjs');
5
5
  var chunkNCFH5MGF_cjs = require('./chunk-NCFH5MGF.cjs');
6
6
  var chunk2QPPD3BB_cjs = require('./chunk-2QPPD3BB.cjs');
7
7
 
8
8
  // src/public-functions/executeRoute.ts
9
9
  var executeRoute = async (options) => {
10
10
  const { route, userAddresses, appendCosmosMsgs, timeoutSeconds } = options;
11
- const { id: routeId } = chunkX2ASEG4P_cjs.updateRouteDetails({
11
+ const { id: routeId } = chunkXJASQLBH_cjs.updateRouteDetails({
12
12
  status: "unconfirmed",
13
13
  options
14
14
  });
15
- const addressList = await chunkKGK6P2R2_cjs.createValidAddressList({
15
+ const addressList = await chunkG2JJ2R36_cjs.createValidAddressList({
16
16
  userAddresses,
17
17
  route
18
18
  });
@@ -43,8 +43,15 @@ var executeRoute = async (options) => {
43
43
  }
44
44
  });
45
45
  }
46
- const { transactionDetails, executeTransaction } = await chunkKGK6P2R2_cjs.executeTransactions({ ...options, routeId, txs: response?.txs });
47
- await chunkX2ASEG4P_cjs.executeAndSubscribeToRouteStatus({
46
+ const { transactionDetails, executeTransaction } = await chunkG2JJ2R36_cjs.executeTransactions({
47
+ ...options,
48
+ // TODO: temporary - remove once CCTP v1->v2 migration is done. These routes
49
+ // must sign one tx at a time, in execution order (see routeRequiresSequentialSigning).
50
+ batchSignTxs: chunkXJASQLBH_cjs.routeRequiresSequentialSigning(route?.operations) ? false : options.batchSignTxs,
51
+ routeId,
52
+ txs: response?.txs
53
+ });
54
+ await chunkXJASQLBH_cjs.executeAndSubscribeToRouteStatus({
48
55
  transactionDetails,
49
56
  executeTransaction,
50
57
  routeId,
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkX2ASEG4P_cjs = require('./chunk-X2ASEG4P.cjs');
3
+ var chunkXJASQLBH_cjs = require('./chunk-XJASQLBH.cjs');
4
4
  var chunkERKGQBNL_cjs = require('./chunk-ERKGQBNL.cjs');
5
5
  var chunk477CU2G2_cjs = require('./chunk-477CU2G2.cjs');
6
6
  var chunkF3EB2AQG_cjs = require('./chunk-F3EB2AQG.cjs');
@@ -327,7 +327,7 @@ var signCosmosTransaction = async ({
327
327
  txIndex: index,
328
328
  signerAddress: currentUserAddress
329
329
  });
330
- chunkX2ASEG4P_cjs.updateRouteDetails({
330
+ chunkXJASQLBH_cjs.updateRouteDetails({
331
331
  status: "signing",
332
332
  routeId,
333
333
  options
@@ -343,7 +343,7 @@ var signCosmosTransaction = async ({
343
343
  options?.onTransactionSigned?.({
344
344
  chainId
345
345
  });
346
- chunkX2ASEG4P_cjs.updateRouteDetails({
346
+ chunkXJASQLBH_cjs.updateRouteDetails({
347
347
  status: "pending",
348
348
  routeId,
349
349
  options
@@ -629,7 +629,7 @@ var executeEvmTransaction = async (message, options, index, routeId) => {
629
629
  status: "pending",
630
630
  allowance: requiredApproval
631
631
  });
632
- chunkX2ASEG4P_cjs.updateRouteDetails({
632
+ chunkXJASQLBH_cjs.updateRouteDetails({
633
633
  status: "allowance",
634
634
  routeId,
635
635
  options
@@ -663,7 +663,7 @@ var executeEvmTransaction = async (message, options, index, routeId) => {
663
663
  signerAddress: evmSigner.account.address,
664
664
  txIndex: index
665
665
  });
666
- chunkX2ASEG4P_cjs.updateRouteDetails({
666
+ chunkXJASQLBH_cjs.updateRouteDetails({
667
667
  status: "signing",
668
668
  routeId,
669
669
  options
@@ -675,7 +675,7 @@ var executeEvmTransaction = async (message, options, index, routeId) => {
675
675
  chain: evmSigner.chain,
676
676
  value: evmTx.value === "" ? void 0 : BigInt(evmTx.value)
677
677
  });
678
- chunkX2ASEG4P_cjs.updateRouteDetails({
678
+ chunkXJASQLBH_cjs.updateRouteDetails({
679
679
  status: "pending",
680
680
  routeId,
681
681
  options
@@ -751,14 +751,14 @@ var signSvmTransaction = async ({
751
751
  signerAddress: signer.publicKey?.toBase58(),
752
752
  txIndex: index
753
753
  });
754
- chunkX2ASEG4P_cjs.updateRouteDetails({
754
+ chunkXJASQLBH_cjs.updateRouteDetails({
755
755
  status: "signing",
756
756
  routeId,
757
757
  options
758
758
  });
759
759
  const signedTx = await signer.signTransaction(transaction);
760
760
  options?.onTransactionSigned?.({ chainId: svmTx.chainId });
761
- chunkX2ASEG4P_cjs.updateRouteDetails({
761
+ chunkXJASQLBH_cjs.updateRouteDetails({
762
762
  status: "pending",
763
763
  routeId,
764
764
  options
@@ -889,7 +889,7 @@ var validateEvmTokenApproval = async ({
889
889
  status: "pending",
890
890
  allowance: requiredApproval
891
891
  });
892
- chunkX2ASEG4P_cjs.updateRouteDetails({
892
+ chunkXJASQLBH_cjs.updateRouteDetails({
893
893
  status: "allowance",
894
894
  routeId,
895
895
  options
@@ -916,7 +916,7 @@ var validateEvmTokenApproval = async ({
916
916
  onApproveAllowance?.({
917
917
  status: "completed"
918
918
  });
919
- chunkX2ASEG4P_cjs.updateRouteDetails({
919
+ chunkXJASQLBH_cjs.updateRouteDetails({
920
920
  status: "signing",
921
921
  routeId,
922
922
  options
@@ -1108,7 +1108,7 @@ var validateGasBalances = async ({
1108
1108
  onValidateGasBalance?.({
1109
1109
  status: "pending"
1110
1110
  });
1111
- chunkX2ASEG4P_cjs.updateRouteDetails({
1111
+ chunkXJASQLBH_cjs.updateRouteDetails({
1112
1112
  status: "validating",
1113
1113
  routeId,
1114
1114
  options
@@ -1142,7 +1142,7 @@ var validateGasBalances = async ({
1142
1142
  onValidateGasBalance?.({
1143
1143
  status: "pending"
1144
1144
  });
1145
- chunkX2ASEG4P_cjs.updateRouteDetails({
1145
+ chunkXJASQLBH_cjs.updateRouteDetails({
1146
1146
  status: "validating",
1147
1147
  routeId,
1148
1148
  options
@@ -1175,7 +1175,7 @@ var validateGasBalances = async ({
1175
1175
  onValidateGasBalance?.({
1176
1176
  status: "pending"
1177
1177
  });
1178
- chunkX2ASEG4P_cjs.updateRouteDetails({
1178
+ chunkXJASQLBH_cjs.updateRouteDetails({
1179
1179
  status: "validating",
1180
1180
  routeId,
1181
1181
  options
@@ -1255,9 +1255,7 @@ var executeTransactions = async (options) => {
1255
1255
  isMultiRoutes
1256
1256
  } = options;
1257
1257
  if (txs === void 0) {
1258
- throw new Error(
1259
- "executeTransactions error: txs is undefined in executeTransactions"
1260
- );
1258
+ throw new Error("executeTransactions error: txs is undefined in executeTransactions");
1261
1259
  }
1262
1260
  const chainIds = getChainIdsFromTxs(txs);
1263
1261
  const transactionDetails = txs.map((tx) => {
@@ -1271,7 +1269,7 @@ var executeTransactions = async (options) => {
1271
1269
  throw new Error("executeRoute error: invalid message type");
1272
1270
  }
1273
1271
  });
1274
- chunkX2ASEG4P_cjs.updateRouteDetails({
1272
+ chunkXJASQLBH_cjs.updateRouteDetails({
1275
1273
  transactionDetails,
1276
1274
  routeId,
1277
1275
  options
@@ -1285,7 +1283,9 @@ var executeTransactions = async (options) => {
1285
1283
  getEvmSigner,
1286
1284
  onValidateGasBalance,
1287
1285
  simulate,
1288
- disabledChainIds: validateChainIds,
1286
+ // TODO: temporary - remove once CCTP v1->v2 migration is done. These routes
1287
+ // land on Injective before the final IBC hop; skip its gas preflight.
1288
+ disabledChainIds: chunkXJASQLBH_cjs.routeRequiresSequentialSigning(options.route?.operations) ? [...validateChainIds, "injective-1"] : validateChainIds,
1289
1289
  getCosmosPriorityFeeDenom: options.getCosmosPriorityFeeDenom,
1290
1290
  options,
1291
1291
  routeId,
@@ -1306,7 +1306,7 @@ var executeTransactions = async (options) => {
1306
1306
  isMultiRoutes
1307
1307
  });
1308
1308
  };
1309
- let signedTxs = [];
1309
+ const signedTxs = [];
1310
1310
  if (batchSignTxs) {
1311
1311
  for (let i = 0; i < txs.length; i++) {
1312
1312
  const tx = txs[i];
@@ -1360,7 +1360,7 @@ var executeTransactions = async (options) => {
1360
1360
  routeId
1361
1361
  });
1362
1362
  if (!signedTx) {
1363
- throw new Error(`executeRoute error: signedTx is undefined`);
1363
+ throw new Error("executeRoute error: signedTx is undefined");
1364
1364
  }
1365
1365
  signedTxs.push({
1366
1366
  index: i,
@@ -1399,12 +1399,7 @@ var executeTransactions = async (options) => {
1399
1399
  });
1400
1400
  } else if ("evmTx" in tx) {
1401
1401
  await validateEnabledChainIds(tx.evmTx?.chainId ?? "");
1402
- const txResponse = await executeEvmTransaction(
1403
- tx,
1404
- options,
1405
- index,
1406
- routeId
1407
- );
1402
+ const txResponse = await executeEvmTransaction(tx, options, index, routeId);
1408
1403
  txResult = {
1409
1404
  chainId: tx?.evmTx?.chainId ?? "",
1410
1405
  txHash: txResponse.transactionHash
@@ -1436,9 +1431,7 @@ var getDefaultFallbackGasAmount = async (chainId, chainType) => {
1436
1431
  }
1437
1432
  if (chainType !== "cosmos" /* Cosmos */) return void 0;
1438
1433
  const venuesResult = await chunkFCTBCHOT_cjs.venues();
1439
- const isSwapChain = venuesResult?.some(
1440
- (venue) => venue.chainId === chainId
1441
- ) ?? false;
1434
+ const isSwapChain = venuesResult?.some((venue) => venue.chainId === chainId) ?? false;
1442
1435
  const defaultGasAmount = Math.ceil(
1443
1436
  isSwapChain ? COSMOS_GAS_AMOUNT.SWAP : COSMOS_GAS_AMOUNT.DEFAULT
1444
1437
  );
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkKGK6P2R2_cjs = require('./chunk-KGK6P2R2.cjs');
4
- var chunkX2ASEG4P_cjs = require('./chunk-X2ASEG4P.cjs');
3
+ var chunkG2JJ2R36_cjs = require('./chunk-G2JJ2R36.cjs');
4
+ var chunkXJASQLBH_cjs = require('./chunk-XJASQLBH.cjs');
5
5
  var chunkNCFH5MGF_cjs = require('./chunk-NCFH5MGF.cjs');
6
6
  var chunkAUTOIM57_cjs = require('./chunk-AUTOIM57.cjs');
7
7
  var chunk2QPPD3BB_cjs = require('./chunk-2QPPD3BB.cjs');
@@ -24,7 +24,7 @@ var executeMultipleRoutes = async (options) => {
24
24
  `executeMultipleRoutes error: no user addresses found for route: ${routeKey}`
25
25
  );
26
26
  }
27
- const routeAddressList = await chunkKGK6P2R2_cjs.createValidAddressList({
27
+ const routeAddressList = await chunkG2JJ2R36_cjs.createValidAddressList({
28
28
  userAddresses: _userAddresses,
29
29
  route: routeValue
30
30
  });
@@ -119,7 +119,7 @@ var executeMultipleRoutes = async (options) => {
119
119
  const executeTransactionList = {};
120
120
  const mergedMainAndSecondaryRoutes = Object.entries(msgsRecord).length !== Object.entries(route).length;
121
121
  for (const [routeKey, msgsResponse] of Object.entries(msgsRecord)) {
122
- const { id: routeId } = chunkX2ASEG4P_cjs.updateRouteDetails({
122
+ const { id: routeId } = chunkXJASQLBH_cjs.updateRouteDetails({
123
123
  status: "unconfirmed",
124
124
  options: {
125
125
  route: route[routeKey],
@@ -132,7 +132,7 @@ var executeMultipleRoutes = async (options) => {
132
132
  if (routeKey === "mainRoute") {
133
133
  mainRouteId = routeId;
134
134
  }
135
- const { transactionDetails, executeTransaction: _executeTransaction } = await chunkKGK6P2R2_cjs.executeTransactions({
135
+ const { transactionDetails, executeTransaction: _executeTransaction } = await chunkG2JJ2R36_cjs.executeTransactions({
136
136
  ...restOptions,
137
137
  routeId,
138
138
  txs: msgsResponse?.txs,
@@ -144,7 +144,7 @@ var executeMultipleRoutes = async (options) => {
144
144
  const txResult = await _executeTransaction(index2);
145
145
  if (routeKey !== "mainRoute" || mergedMainAndSecondaryRoutes) {
146
146
  const relatedRoutes = Object.entries(route).filter(([key]) => key !== "mainRoute").map(([key, route2]) => ({ route: route2, routeKey: key, status: "pending" }));
147
- chunkX2ASEG4P_cjs.updateRouteDetails({
147
+ chunkXJASQLBH_cjs.updateRouteDetails({
148
148
  options: {
149
149
  route: route[routeKey],
150
150
  ...restOptions
@@ -182,7 +182,7 @@ var executeMultipleRoutes = async (options) => {
182
182
  }
183
183
  await Promise.all(
184
184
  Object.entries(msgsRecord).map(([routeKey, msgsResponse], index2) => {
185
- return chunkX2ASEG4P_cjs.executeAndSubscribeToRouteStatus({
185
+ return chunkXJASQLBH_cjs.executeAndSubscribeToRouteStatus({
186
186
  transactionDetails: transactionDetailsList[index2],
187
187
  executeTransaction: executeTransactionList[index2],
188
188
  routeId: msgsRecordIndexToRouteId[index2],
@@ -193,7 +193,7 @@ var executeMultipleRoutes = async (options) => {
193
193
  onRouteStatusUpdated: (routeStatus) => {
194
194
  const relatedRoutes = Object.entries(route).filter(([key]) => key !== "mainRoute").map(([key, route2]) => ({ route: route2, routeKey: key, status: routeStatus.status }));
195
195
  if (routeKey !== "mainRoute") {
196
- chunkX2ASEG4P_cjs.updateRouteDetails({
196
+ chunkXJASQLBH_cjs.updateRouteDetails({
197
197
  options: {
198
198
  route: route[routeKey],
199
199
  ...restOptions
@@ -6,6 +6,121 @@ var chunk2QPPD3BB_cjs = require('./chunk-2QPPD3BB.cjs');
6
6
  var uuid = require('uuid');
7
7
 
8
8
  // src/utils/clientType.ts
9
+ var OperationType = /* @__PURE__ */ ((OperationType2) => {
10
+ OperationType2["swap"] = "swap";
11
+ OperationType2["evmSwap"] = "evmSwap";
12
+ OperationType2["transfer"] = "transfer";
13
+ OperationType2["axelarTransfer"] = "axelarTransfer";
14
+ OperationType2["cctpTransfer"] = "cctpTransfer";
15
+ OperationType2["cctpTransferV2"] = "cctpTransferV2";
16
+ OperationType2["hyperlaneTransfer"] = "hyperlaneTransfer";
17
+ OperationType2["opInitTransfer"] = "opInitTransfer";
18
+ OperationType2["bankSend"] = "bankSend";
19
+ OperationType2["goFastTransfer"] = "goFastTransfer";
20
+ OperationType2["stargateTransfer"] = "stargateTransfer";
21
+ OperationType2["eurekaTransfer"] = "eurekaTransfer";
22
+ OperationType2["layerZeroTransfer"] = "layerZeroTransfer";
23
+ return OperationType2;
24
+ })(OperationType || {});
25
+ function getOperationDetailsAndType(operation) {
26
+ const combinedOperation = operation;
27
+ let returnValue = {
28
+ details: {},
29
+ type: void 0
30
+ };
31
+ Object.values(OperationType).find((type) => {
32
+ const originalDetails = combinedOperation?.[type];
33
+ if (originalDetails) {
34
+ const operationDetails = { ...originalDetails };
35
+ switch (type) {
36
+ case "swap" /* swap */:
37
+ case "evmSwap" /* evmSwap */:
38
+ operationDetails.toChainId = originalDetails.fromChainId;
39
+ break;
40
+ case "axelarTransfer" /* axelarTransfer */:
41
+ operationDetails.denomIn = originalDetails.ibcTransferToAxelar?.denomIn ?? originalDetails.denomIn;
42
+ break;
43
+ case "bankSend" /* bankSend */: {
44
+ const bankSend = originalDetails;
45
+ operationDetails.denomIn = bankSend.denom;
46
+ operationDetails.denomOut = bankSend.denom;
47
+ operationDetails.fromChainId = bankSend.chainId;
48
+ operationDetails.toChainId = bankSend.chainId;
49
+ break;
50
+ }
51
+ }
52
+ returnValue = {
53
+ details: operationDetails,
54
+ type
55
+ };
56
+ }
57
+ });
58
+ return returnValue;
59
+ }
60
+ function getClientOperation(operation) {
61
+ const { details, type } = getOperationDetailsAndType(operation);
62
+ return {
63
+ type,
64
+ ...details,
65
+ txIndex: operation.txIndex,
66
+ amountIn: operation.amountIn,
67
+ amountOut: operation.amountOut,
68
+ swapVenues: [
69
+ ...details.swapVenues ?? [],
70
+ ...details?.swapIn ? [details?.swapIn.swapVenue] : [],
71
+ ...details?.swapOut ? [details?.swapOut.swapVenue] : []
72
+ ]
73
+ };
74
+ }
75
+ function getClientOperations(operations) {
76
+ if (!operations) return [];
77
+ let transferIndex = 0;
78
+ const filteredOperations = filterNeutronSwapFee(operations);
79
+ return filteredOperations.map((operation, index, arr) => {
80
+ const prevOperation = arr[index - 1];
81
+ const signRequired = (() => {
82
+ if (index === 0) {
83
+ return false;
84
+ } else {
85
+ if (prevOperation && operation.txIndex > prevOperation.txIndex) {
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ })();
91
+ const clientOperation = getClientOperation(operation);
92
+ const isSwap = clientOperation.type === "swap" /* swap */ || clientOperation.type === "evmSwap" /* evmSwap */;
93
+ const result = {
94
+ ...clientOperation,
95
+ transferIndex,
96
+ signRequired,
97
+ isSwap
98
+ };
99
+ if (!isSwap) {
100
+ transferIndex++;
101
+ }
102
+ return result;
103
+ });
104
+ }
105
+ function routeRequiresSequentialSigning(operations) {
106
+ const bridgeIds = new Set(getClientOperations(operations).map((operation) => operation.bridgeId));
107
+ return bridgeIds.has("CCTP" /* CCTP */) && bridgeIds.has("CCTP_V2" /* CCTP_V2 */);
108
+ }
109
+ function filterNeutronSwapFee(operations) {
110
+ return operations.filter((op, i) => {
111
+ const clientOperation = getClientOperation(op);
112
+ if (clientOperation.type === "swap" /* swap */ && clientOperation.chainId === "neutron-1" && clientOperation.denomOut === "untrn" && clientOperation.fromChainId === "neutron-1" && clientOperation.swapOut?.swapAmountOut === "200000") {
113
+ const nextOperation = operations[i + 1];
114
+ if (nextOperation) {
115
+ const nextClientOperation = getClientOperation(nextOperation);
116
+ if (nextClientOperation.type === "swap" /* swap */ && nextClientOperation.chainId === "neutron-1") {
117
+ return false;
118
+ }
119
+ }
120
+ }
121
+ return true;
122
+ });
123
+ }
9
124
  function getClientTransferEvent(transferEvent) {
10
125
  const combinedTransferEvent = transferEvent;
11
126
  const axelarTransfer = combinedTransferEvent?.axelarTransfer;
@@ -75,7 +190,7 @@ function getClientTransferEvent(transferEvent) {
75
190
  explorerLink: goFastTransfer.txs.orderFilledTx?.explorerLink ?? goFastTransfer.txs.orderTimeoutTx?.explorerLink ?? goFastTransfer.txs.orderRefundedTx?.explorerLink,
76
191
  txHash: goFastTransfer.txs.orderFilledTx?.txHash
77
192
  };
78
- case "axelarTransfer" /* axelarTransfer */:
193
+ case "axelarTransfer" /* axelarTransfer */: {
79
194
  const sendTokenTxs = axelarTransfer.txs;
80
195
  const contractCallWithTokenTxs = axelarTransfer.txs?.contractCallWithTokenTxs;
81
196
  if (type === "send") {
@@ -88,6 +203,7 @@ function getClientTransferEvent(transferEvent) {
88
203
  explorerLink: sendTokenTxs?.executeTx?.explorerLink ?? contractCallWithTokenTxs?.executeTx?.explorerLink,
89
204
  txHash: sendTokenTxs?.executeTx?.txHash ?? contractCallWithTokenTxs?.executeTx?.txHash
90
205
  };
206
+ }
91
207
  default:
92
208
  if (type === "send") {
93
209
  return {
@@ -575,5 +691,6 @@ exports.executeAndSubscribeToRouteStatus = executeAndSubscribeToRouteStatus;
575
691
  exports.getSimpleOverallStatus = getSimpleOverallStatus;
576
692
  exports.getTransactionStatus = getTransactionStatus;
577
693
  exports.getTransferEventsFromTxStatusResponse = getTransferEventsFromTxStatusResponse;
694
+ exports.routeRequiresSequentialSigning = routeRequiresSequentialSigning;
578
695
  exports.subscribeToRouteStatus = subscribeToRouteStatus;
579
696
  exports.updateRouteDetails = updateRouteDetails;
@@ -4,10 +4,10 @@ var chunk25TA7Z7R_cjs = require('./chunk-25TA7Z7R.cjs');
4
4
  var chunkAVWWCQ5P_cjs = require('./chunk-AVWWCQ5P.cjs');
5
5
  var chunkCK6CQWQU_cjs = require('./chunk-CK6CQWQU.cjs');
6
6
  var chunk4BWE7SOV_cjs = require('./chunk-4BWE7SOV.cjs');
7
- var chunk3NPG3IJC_cjs = require('./chunk-3NPG3IJC.cjs');
8
- var chunk77NJD7SH_cjs = require('./chunk-77NJD7SH.cjs');
9
- require('./chunk-KGK6P2R2.cjs');
10
- var chunkX2ASEG4P_cjs = require('./chunk-X2ASEG4P.cjs');
7
+ var chunkNXUZSP7Z_cjs = require('./chunk-NXUZSP7Z.cjs');
8
+ var chunkCYSVKKXJ_cjs = require('./chunk-CYSVKKXJ.cjs');
9
+ require('./chunk-G2JJ2R36.cjs');
10
+ var chunkXJASQLBH_cjs = require('./chunk-XJASQLBH.cjs');
11
11
  var chunkERKGQBNL_cjs = require('./chunk-ERKGQBNL.cjs');
12
12
  var chunk477CU2G2_cjs = require('./chunk-477CU2G2.cjs');
13
13
  require('./chunk-NM4PISTQ.cjs');
@@ -141,27 +141,27 @@ Object.defineProperty(exports, "waitForTransactionWithCancel", {
141
141
  });
142
142
  Object.defineProperty(exports, "executeMultipleRoutes", {
143
143
  enumerable: true,
144
- get: function () { return chunk3NPG3IJC_cjs.executeMultipleRoutes; }
144
+ get: function () { return chunkNXUZSP7Z_cjs.executeMultipleRoutes; }
145
145
  });
146
146
  Object.defineProperty(exports, "executeRoute", {
147
147
  enumerable: true,
148
- get: function () { return chunk77NJD7SH_cjs.executeRoute; }
148
+ get: function () { return chunkCYSVKKXJ_cjs.executeRoute; }
149
149
  });
150
150
  Object.defineProperty(exports, "TransferType", {
151
151
  enumerable: true,
152
- get: function () { return chunkX2ASEG4P_cjs.TransferType; }
152
+ get: function () { return chunkXJASQLBH_cjs.TransferType; }
153
153
  });
154
154
  Object.defineProperty(exports, "getSimpleOverallStatus", {
155
155
  enumerable: true,
156
- get: function () { return chunkX2ASEG4P_cjs.getSimpleOverallStatus; }
156
+ get: function () { return chunkXJASQLBH_cjs.getSimpleOverallStatus; }
157
157
  });
158
158
  Object.defineProperty(exports, "getTransferEventsFromTxStatusResponse", {
159
159
  enumerable: true,
160
- get: function () { return chunkX2ASEG4P_cjs.getTransferEventsFromTxStatusResponse; }
160
+ get: function () { return chunkXJASQLBH_cjs.getTransferEventsFromTxStatusResponse; }
161
161
  });
162
162
  Object.defineProperty(exports, "subscribeToRouteStatus", {
163
163
  enumerable: true,
164
- get: function () { return chunkX2ASEG4P_cjs.subscribeToRouteStatus; }
164
+ get: function () { return chunkXJASQLBH_cjs.subscribeToRouteStatus; }
165
165
  });
166
166
  Object.defineProperty(exports, "validateCosmosGasBalance", {
167
167
  enumerable: true,
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunk3NPG3IJC_cjs = require('../chunk-3NPG3IJC.cjs');
4
- require('../chunk-KGK6P2R2.cjs');
5
- require('../chunk-X2ASEG4P.cjs');
3
+ var chunkNXUZSP7Z_cjs = require('../chunk-NXUZSP7Z.cjs');
4
+ require('../chunk-G2JJ2R36.cjs');
5
+ require('../chunk-XJASQLBH.cjs');
6
6
  require('../chunk-ERKGQBNL.cjs');
7
7
  require('../chunk-477CU2G2.cjs');
8
8
  require('../chunk-NM4PISTQ.cjs');
@@ -23,5 +23,5 @@ require('../chunk-LJV45UGL.cjs');
23
23
 
24
24
  Object.defineProperty(exports, "executeMultipleRoutes", {
25
25
  enumerable: true,
26
- get: function () { return chunk3NPG3IJC_cjs.executeMultipleRoutes; }
26
+ get: function () { return chunkNXUZSP7Z_cjs.executeMultipleRoutes; }
27
27
  });
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunk77NJD7SH_cjs = require('../chunk-77NJD7SH.cjs');
4
- require('../chunk-KGK6P2R2.cjs');
5
- require('../chunk-X2ASEG4P.cjs');
3
+ var chunkCYSVKKXJ_cjs = require('../chunk-CYSVKKXJ.cjs');
4
+ require('../chunk-G2JJ2R36.cjs');
5
+ require('../chunk-XJASQLBH.cjs');
6
6
  require('../chunk-ERKGQBNL.cjs');
7
7
  require('../chunk-477CU2G2.cjs');
8
8
  require('../chunk-NM4PISTQ.cjs');
@@ -23,5 +23,5 @@ require('../chunk-LJV45UGL.cjs');
23
23
 
24
24
  Object.defineProperty(exports, "executeRoute", {
25
25
  enumerable: true,
26
- get: function () { return chunk77NJD7SH_cjs.executeRoute; }
26
+ get: function () { return chunkCYSVKKXJ_cjs.executeRoute; }
27
27
  });
@@ -4,10 +4,10 @@ var chunk25TA7Z7R_cjs = require('../chunk-25TA7Z7R.cjs');
4
4
  require('../chunk-AVWWCQ5P.cjs');
5
5
  require('../chunk-CK6CQWQU.cjs');
6
6
  require('../chunk-4BWE7SOV.cjs');
7
- require('../chunk-3NPG3IJC.cjs');
8
- require('../chunk-77NJD7SH.cjs');
9
- require('../chunk-KGK6P2R2.cjs');
10
- require('../chunk-X2ASEG4P.cjs');
7
+ require('../chunk-NXUZSP7Z.cjs');
8
+ require('../chunk-CYSVKKXJ.cjs');
9
+ require('../chunk-G2JJ2R36.cjs');
10
+ require('../chunk-XJASQLBH.cjs');
11
11
  require('../chunk-ERKGQBNL.cjs');
12
12
  require('../chunk-477CU2G2.cjs');
13
13
  require('../chunk-NM4PISTQ.cjs');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkX2ASEG4P_cjs = require('../chunk-X2ASEG4P.cjs');
3
+ var chunkXJASQLBH_cjs = require('../chunk-XJASQLBH.cjs');
4
4
  require('../chunk-AUTOIM57.cjs');
5
5
  require('../chunk-PDNKS5R2.cjs');
6
6
  require('../chunk-2QPPD3BB.cjs');
@@ -10,17 +10,17 @@ require('../chunk-LJV45UGL.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "executeAndSubscribeToRouteStatus", {
12
12
  enumerable: true,
13
- get: function () { return chunkX2ASEG4P_cjs.executeAndSubscribeToRouteStatus; }
13
+ get: function () { return chunkXJASQLBH_cjs.executeAndSubscribeToRouteStatus; }
14
14
  });
15
15
  Object.defineProperty(exports, "getTransactionStatus", {
16
16
  enumerable: true,
17
- get: function () { return chunkX2ASEG4P_cjs.getTransactionStatus; }
17
+ get: function () { return chunkXJASQLBH_cjs.getTransactionStatus; }
18
18
  });
19
19
  Object.defineProperty(exports, "subscribeToRouteStatus", {
20
20
  enumerable: true,
21
- get: function () { return chunkX2ASEG4P_cjs.subscribeToRouteStatus; }
21
+ get: function () { return chunkXJASQLBH_cjs.subscribeToRouteStatus; }
22
22
  });
23
23
  Object.defineProperty(exports, "updateRouteDetails", {
24
24
  enumerable: true,
25
- get: function () { return chunkX2ASEG4P_cjs.updateRouteDetails; }
25
+ get: function () { return chunkXJASQLBH_cjs.updateRouteDetails; }
26
26
  });
@@ -1,5 +1,5 @@
1
- import { createValidAddressList, executeTransactions } from './chunk-W4ZLRWOX.js';
2
- import { updateRouteDetails, executeAndSubscribeToRouteStatus } from './chunk-QCGHODGV.js';
1
+ import { createValidAddressList, executeTransactions } from './chunk-2K554GFZ.js';
2
+ import { updateRouteDetails, routeRequiresSequentialSigning, executeAndSubscribeToRouteStatus } from './chunk-TMHJ6YFK.js';
3
3
  import { messages } from './chunk-P36PE4CR.js';
4
4
  import { ApiState } from './chunk-F66EKL3W.js';
5
5
 
@@ -41,7 +41,14 @@ var executeRoute = async (options) => {
41
41
  }
42
42
  });
43
43
  }
44
- const { transactionDetails, executeTransaction } = await executeTransactions({ ...options, routeId, txs: response?.txs });
44
+ const { transactionDetails, executeTransaction } = await executeTransactions({
45
+ ...options,
46
+ // TODO: temporary - remove once CCTP v1->v2 migration is done. These routes
47
+ // must sign one tx at a time, in execution order (see routeRequiresSequentialSigning).
48
+ batchSignTxs: routeRequiresSequentialSigning(route?.operations) ? false : options.batchSignTxs,
49
+ routeId,
50
+ txs: response?.txs
51
+ });
45
52
  await executeAndSubscribeToRouteStatus({
46
53
  transactionDetails,
47
54
  executeTransaction,
@@ -1,4 +1,4 @@
1
- import { updateRouteDetails } from './chunk-QCGHODGV.js';
1
+ import { updateRouteDetails, routeRequiresSequentialSigning } from './chunk-TMHJ6YFK.js';
2
2
  import { validateCosmosGasBalance } from './chunk-CRKF5WSW.js';
3
3
  import { getEncodeObjectFromCosmosMessage } from './chunk-GPEO2I4P.js';
4
4
  import { getEVMGasAmountForMessage } from './chunk-GV2QOWB4.js';
@@ -1253,9 +1253,7 @@ var executeTransactions = async (options) => {
1253
1253
  isMultiRoutes
1254
1254
  } = options;
1255
1255
  if (txs === void 0) {
1256
- throw new Error(
1257
- "executeTransactions error: txs is undefined in executeTransactions"
1258
- );
1256
+ throw new Error("executeTransactions error: txs is undefined in executeTransactions");
1259
1257
  }
1260
1258
  const chainIds = getChainIdsFromTxs(txs);
1261
1259
  const transactionDetails = txs.map((tx) => {
@@ -1283,7 +1281,9 @@ var executeTransactions = async (options) => {
1283
1281
  getEvmSigner,
1284
1282
  onValidateGasBalance,
1285
1283
  simulate,
1286
- disabledChainIds: validateChainIds,
1284
+ // TODO: temporary - remove once CCTP v1->v2 migration is done. These routes
1285
+ // land on Injective before the final IBC hop; skip its gas preflight.
1286
+ disabledChainIds: routeRequiresSequentialSigning(options.route?.operations) ? [...validateChainIds, "injective-1"] : validateChainIds,
1287
1287
  getCosmosPriorityFeeDenom: options.getCosmosPriorityFeeDenom,
1288
1288
  options,
1289
1289
  routeId,
@@ -1304,7 +1304,7 @@ var executeTransactions = async (options) => {
1304
1304
  isMultiRoutes
1305
1305
  });
1306
1306
  };
1307
- let signedTxs = [];
1307
+ const signedTxs = [];
1308
1308
  if (batchSignTxs) {
1309
1309
  for (let i = 0; i < txs.length; i++) {
1310
1310
  const tx = txs[i];
@@ -1358,7 +1358,7 @@ var executeTransactions = async (options) => {
1358
1358
  routeId
1359
1359
  });
1360
1360
  if (!signedTx) {
1361
- throw new Error(`executeRoute error: signedTx is undefined`);
1361
+ throw new Error("executeRoute error: signedTx is undefined");
1362
1362
  }
1363
1363
  signedTxs.push({
1364
1364
  index: i,
@@ -1397,12 +1397,7 @@ var executeTransactions = async (options) => {
1397
1397
  });
1398
1398
  } else if ("evmTx" in tx) {
1399
1399
  await validateEnabledChainIds(tx.evmTx?.chainId ?? "");
1400
- const txResponse = await executeEvmTransaction(
1401
- tx,
1402
- options,
1403
- index,
1404
- routeId
1405
- );
1400
+ const txResponse = await executeEvmTransaction(tx, options, index, routeId);
1406
1401
  txResult = {
1407
1402
  chainId: tx?.evmTx?.chainId ?? "",
1408
1403
  txHash: txResponse.transactionHash
@@ -1434,9 +1429,7 @@ var getDefaultFallbackGasAmount = async (chainId, chainType) => {
1434
1429
  }
1435
1430
  if (chainType !== "cosmos" /* Cosmos */) return void 0;
1436
1431
  const venuesResult = await venues();
1437
- const isSwapChain = venuesResult?.some(
1438
- (venue) => venue.chainId === chainId
1439
- ) ?? false;
1432
+ const isSwapChain = venuesResult?.some((venue) => venue.chainId === chainId) ?? false;
1440
1433
  const defaultGasAmount = Math.ceil(
1441
1434
  isSwapChain ? COSMOS_GAS_AMOUNT.SWAP : COSMOS_GAS_AMOUNT.DEFAULT
1442
1435
  );
@@ -1,5 +1,5 @@
1
- import { createValidAddressList, executeTransactions } from './chunk-W4ZLRWOX.js';
2
- import { updateRouteDetails, executeAndSubscribeToRouteStatus } from './chunk-QCGHODGV.js';
1
+ import { createValidAddressList, executeTransactions } from './chunk-2K554GFZ.js';
2
+ import { updateRouteDetails, executeAndSubscribeToRouteStatus } from './chunk-TMHJ6YFK.js';
3
3
  import { messages } from './chunk-P36PE4CR.js';
4
4
  import { trackTransaction } from './chunk-SXBG57J3.js';
5
5
  import { ApiState } from './chunk-F66EKL3W.js';
@@ -4,6 +4,121 @@ import { wait } from './chunk-F66EKL3W.js';
4
4
  import { v4 } from 'uuid';
5
5
 
6
6
  // src/utils/clientType.ts
7
+ var OperationType = /* @__PURE__ */ ((OperationType2) => {
8
+ OperationType2["swap"] = "swap";
9
+ OperationType2["evmSwap"] = "evmSwap";
10
+ OperationType2["transfer"] = "transfer";
11
+ OperationType2["axelarTransfer"] = "axelarTransfer";
12
+ OperationType2["cctpTransfer"] = "cctpTransfer";
13
+ OperationType2["cctpTransferV2"] = "cctpTransferV2";
14
+ OperationType2["hyperlaneTransfer"] = "hyperlaneTransfer";
15
+ OperationType2["opInitTransfer"] = "opInitTransfer";
16
+ OperationType2["bankSend"] = "bankSend";
17
+ OperationType2["goFastTransfer"] = "goFastTransfer";
18
+ OperationType2["stargateTransfer"] = "stargateTransfer";
19
+ OperationType2["eurekaTransfer"] = "eurekaTransfer";
20
+ OperationType2["layerZeroTransfer"] = "layerZeroTransfer";
21
+ return OperationType2;
22
+ })(OperationType || {});
23
+ function getOperationDetailsAndType(operation) {
24
+ const combinedOperation = operation;
25
+ let returnValue = {
26
+ details: {},
27
+ type: void 0
28
+ };
29
+ Object.values(OperationType).find((type) => {
30
+ const originalDetails = combinedOperation?.[type];
31
+ if (originalDetails) {
32
+ const operationDetails = { ...originalDetails };
33
+ switch (type) {
34
+ case "swap" /* swap */:
35
+ case "evmSwap" /* evmSwap */:
36
+ operationDetails.toChainId = originalDetails.fromChainId;
37
+ break;
38
+ case "axelarTransfer" /* axelarTransfer */:
39
+ operationDetails.denomIn = originalDetails.ibcTransferToAxelar?.denomIn ?? originalDetails.denomIn;
40
+ break;
41
+ case "bankSend" /* bankSend */: {
42
+ const bankSend = originalDetails;
43
+ operationDetails.denomIn = bankSend.denom;
44
+ operationDetails.denomOut = bankSend.denom;
45
+ operationDetails.fromChainId = bankSend.chainId;
46
+ operationDetails.toChainId = bankSend.chainId;
47
+ break;
48
+ }
49
+ }
50
+ returnValue = {
51
+ details: operationDetails,
52
+ type
53
+ };
54
+ }
55
+ });
56
+ return returnValue;
57
+ }
58
+ function getClientOperation(operation) {
59
+ const { details, type } = getOperationDetailsAndType(operation);
60
+ return {
61
+ type,
62
+ ...details,
63
+ txIndex: operation.txIndex,
64
+ amountIn: operation.amountIn,
65
+ amountOut: operation.amountOut,
66
+ swapVenues: [
67
+ ...details.swapVenues ?? [],
68
+ ...details?.swapIn ? [details?.swapIn.swapVenue] : [],
69
+ ...details?.swapOut ? [details?.swapOut.swapVenue] : []
70
+ ]
71
+ };
72
+ }
73
+ function getClientOperations(operations) {
74
+ if (!operations) return [];
75
+ let transferIndex = 0;
76
+ const filteredOperations = filterNeutronSwapFee(operations);
77
+ return filteredOperations.map((operation, index, arr) => {
78
+ const prevOperation = arr[index - 1];
79
+ const signRequired = (() => {
80
+ if (index === 0) {
81
+ return false;
82
+ } else {
83
+ if (prevOperation && operation.txIndex > prevOperation.txIndex) {
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ })();
89
+ const clientOperation = getClientOperation(operation);
90
+ const isSwap = clientOperation.type === "swap" /* swap */ || clientOperation.type === "evmSwap" /* evmSwap */;
91
+ const result = {
92
+ ...clientOperation,
93
+ transferIndex,
94
+ signRequired,
95
+ isSwap
96
+ };
97
+ if (!isSwap) {
98
+ transferIndex++;
99
+ }
100
+ return result;
101
+ });
102
+ }
103
+ function routeRequiresSequentialSigning(operations) {
104
+ const bridgeIds = new Set(getClientOperations(operations).map((operation) => operation.bridgeId));
105
+ return bridgeIds.has("CCTP" /* CCTP */) && bridgeIds.has("CCTP_V2" /* CCTP_V2 */);
106
+ }
107
+ function filterNeutronSwapFee(operations) {
108
+ return operations.filter((op, i) => {
109
+ const clientOperation = getClientOperation(op);
110
+ if (clientOperation.type === "swap" /* swap */ && clientOperation.chainId === "neutron-1" && clientOperation.denomOut === "untrn" && clientOperation.fromChainId === "neutron-1" && clientOperation.swapOut?.swapAmountOut === "200000") {
111
+ const nextOperation = operations[i + 1];
112
+ if (nextOperation) {
113
+ const nextClientOperation = getClientOperation(nextOperation);
114
+ if (nextClientOperation.type === "swap" /* swap */ && nextClientOperation.chainId === "neutron-1") {
115
+ return false;
116
+ }
117
+ }
118
+ }
119
+ return true;
120
+ });
121
+ }
7
122
  function getClientTransferEvent(transferEvent) {
8
123
  const combinedTransferEvent = transferEvent;
9
124
  const axelarTransfer = combinedTransferEvent?.axelarTransfer;
@@ -73,7 +188,7 @@ function getClientTransferEvent(transferEvent) {
73
188
  explorerLink: goFastTransfer.txs.orderFilledTx?.explorerLink ?? goFastTransfer.txs.orderTimeoutTx?.explorerLink ?? goFastTransfer.txs.orderRefundedTx?.explorerLink,
74
189
  txHash: goFastTransfer.txs.orderFilledTx?.txHash
75
190
  };
76
- case "axelarTransfer" /* axelarTransfer */:
191
+ case "axelarTransfer" /* axelarTransfer */: {
77
192
  const sendTokenTxs = axelarTransfer.txs;
78
193
  const contractCallWithTokenTxs = axelarTransfer.txs?.contractCallWithTokenTxs;
79
194
  if (type === "send") {
@@ -86,6 +201,7 @@ function getClientTransferEvent(transferEvent) {
86
201
  explorerLink: sendTokenTxs?.executeTx?.explorerLink ?? contractCallWithTokenTxs?.executeTx?.explorerLink,
87
202
  txHash: sendTokenTxs?.executeTx?.txHash ?? contractCallWithTokenTxs?.executeTx?.txHash
88
203
  };
204
+ }
89
205
  default:
90
206
  if (type === "send") {
91
207
  return {
@@ -568,4 +684,4 @@ var updateRelatedRoutes = ({
568
684
  return updatedRelatedRoutes;
569
685
  };
570
686
 
571
- export { TransferType, executeAndSubscribeToRouteStatus, getSimpleOverallStatus, getTransactionStatus, getTransferEventsFromTxStatusResponse, subscribeToRouteStatus, updateRouteDetails };
687
+ export { TransferType, executeAndSubscribeToRouteStatus, getSimpleOverallStatus, getTransactionStatus, getTransferEventsFromTxStatusResponse, routeRequiresSequentialSigning, subscribeToRouteStatus, updateRouteDetails };
package/dist/esm/index.js CHANGED
@@ -2,10 +2,10 @@ export { AutopilotActionJson, AxelarTransferStateJson, AxelarTransferTypeJson, B
2
2
  export { setClientOptions } from './chunk-GZJLX2CP.js';
3
3
  export { setApiOptions } from './chunk-QYXGDTUU.js';
4
4
  export { waitForTransaction, waitForTransactionWithCancel } from './chunk-E4NRDAVO.js';
5
- export { executeMultipleRoutes } from './chunk-YLO3LH4B.js';
6
- export { executeRoute } from './chunk-R2AIIQDV.js';
7
- import './chunk-W4ZLRWOX.js';
8
- export { TransferType, getSimpleOverallStatus, getTransferEventsFromTxStatusResponse, subscribeToRouteStatus } from './chunk-QCGHODGV.js';
5
+ export { executeMultipleRoutes } from './chunk-FAHX2U2V.js';
6
+ export { executeRoute } from './chunk-23TIKRXS.js';
7
+ import './chunk-2K554GFZ.js';
8
+ export { TransferType, getSimpleOverallStatus, getTransferEventsFromTxStatusResponse, subscribeToRouteStatus } from './chunk-TMHJ6YFK.js';
9
9
  export { validateCosmosGasBalance } from './chunk-CRKF5WSW.js';
10
10
  export { getCosmosGasAmountForMessage } from './chunk-GPEO2I4P.js';
11
11
  import './chunk-F2LQB2DP.js';
@@ -1,6 +1,6 @@
1
- export { executeMultipleRoutes } from '../chunk-YLO3LH4B.js';
2
- import '../chunk-W4ZLRWOX.js';
3
- import '../chunk-QCGHODGV.js';
1
+ export { executeMultipleRoutes } from '../chunk-FAHX2U2V.js';
2
+ import '../chunk-2K554GFZ.js';
3
+ import '../chunk-TMHJ6YFK.js';
4
4
  import '../chunk-CRKF5WSW.js';
5
5
  import '../chunk-GPEO2I4P.js';
6
6
  import '../chunk-F2LQB2DP.js';
@@ -1,6 +1,6 @@
1
- export { executeRoute } from '../chunk-R2AIIQDV.js';
2
- import '../chunk-W4ZLRWOX.js';
3
- import '../chunk-QCGHODGV.js';
1
+ export { executeRoute } from '../chunk-23TIKRXS.js';
2
+ import '../chunk-2K554GFZ.js';
3
+ import '../chunk-TMHJ6YFK.js';
4
4
  import '../chunk-CRKF5WSW.js';
5
5
  import '../chunk-GPEO2I4P.js';
6
6
  import '../chunk-F2LQB2DP.js';
@@ -2,10 +2,10 @@ export { getRouteWithGasOnReceive } from '../chunk-RH7PDDI5.js';
2
2
  import '../chunk-GZJLX2CP.js';
3
3
  import '../chunk-QYXGDTUU.js';
4
4
  import '../chunk-E4NRDAVO.js';
5
- import '../chunk-YLO3LH4B.js';
6
- import '../chunk-R2AIIQDV.js';
7
- import '../chunk-W4ZLRWOX.js';
8
- import '../chunk-QCGHODGV.js';
5
+ import '../chunk-FAHX2U2V.js';
6
+ import '../chunk-23TIKRXS.js';
7
+ import '../chunk-2K554GFZ.js';
8
+ import '../chunk-TMHJ6YFK.js';
9
9
  import '../chunk-CRKF5WSW.js';
10
10
  import '../chunk-GPEO2I4P.js';
11
11
  import '../chunk-F2LQB2DP.js';
@@ -1,4 +1,4 @@
1
- export { executeAndSubscribeToRouteStatus, getTransactionStatus, subscribeToRouteStatus, updateRouteDetails } from '../chunk-QCGHODGV.js';
1
+ export { executeAndSubscribeToRouteStatus, getTransactionStatus, subscribeToRouteStatus, updateRouteDetails } from '../chunk-TMHJ6YFK.js';
2
2
  import '../chunk-SXBG57J3.js';
3
3
  import '../chunk-N4PTRCNT.js';
4
4
  import '../chunk-F66EKL3W.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@skip-go/client",
3
3
  "description": "JavaScript SDK for Skip Go API",
4
- "version": "1.6.1",
4
+ "version": "1.6.3",
5
5
  "repository": "https://github.com/skip-mev/skip-go",
6
6
  "type": "module",
7
7
  "main": "./dist/cjs/index.cjs",