@skip-go/client 1.3.3 → 1.3.4

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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkLP3L6XJB_cjs = require('../chunk-LP3L6XJB.cjs');
3
+ var chunkFY56EEFB_cjs = require('../chunk-FY56EEFB.cjs');
4
4
  require('../chunk-HKQ5VION.cjs');
5
5
  require('../chunk-IDDRJJO5.cjs');
6
6
 
@@ -8,5 +8,5 @@ require('../chunk-IDDRJJO5.cjs');
8
8
 
9
9
  Object.defineProperty(exports, "messages", {
10
10
  enumerable: true,
11
- get: function () { return chunkLP3L6XJB_cjs.messages; }
11
+ get: function () { return chunkFY56EEFB_cjs.messages; }
12
12
  });
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkXNBHMZQZ_cjs = require('./chunk-XNBHMZQZ.cjs');
3
+ var chunkTWXIFMTM_cjs = require('./chunk-TWXIFMTM.cjs');
4
4
  var chunkJ5RC6ZU5_cjs = require('./chunk-J5RC6ZU5.cjs');
5
5
  var chunkN3LR7KTI_cjs = require('./chunk-N3LR7KTI.cjs');
6
6
  var chunkF3EB2AQG_cjs = require('./chunk-F3EB2AQG.cjs');
@@ -8,7 +8,7 @@ var chunk4R6OCWRR_cjs = require('./chunk-4R6OCWRR.cjs');
8
8
  var chunkKZOSEIWH_cjs = require('./chunk-KZOSEIWH.cjs');
9
9
  var chunkKJ5NZG2D_cjs = require('./chunk-KJ5NZG2D.cjs');
10
10
  var chunkT5LPU5A2_cjs = require('./chunk-T5LPU5A2.cjs');
11
- var chunkLP3L6XJB_cjs = require('./chunk-LP3L6XJB.cjs');
11
+ var chunkFY56EEFB_cjs = require('./chunk-FY56EEFB.cjs');
12
12
  var chunk2CCLIBCC_cjs = require('./chunk-2CCLIBCC.cjs');
13
13
  var chunkMW3TE7DC_cjs = require('./chunk-MW3TE7DC.cjs');
14
14
  var chunkQSISUSYP_cjs = require('./chunk-QSISUSYP.cjs');
@@ -772,6 +772,14 @@ var signSvmTransaction = async ({
772
772
  }
773
773
  const txBuffer = Buffer.from(svmTx.tx ?? "", "base64");
774
774
  const transaction = web3_js.Transaction.from(txBuffer);
775
+ if (options.svmFeePayer) {
776
+ const message = transaction.serializeMessage();
777
+ const resSignTx = await options.svmFeePayer.signTransaction(message);
778
+ transaction.addSignature(
779
+ new web3_js.PublicKey(options.svmFeePayer.address),
780
+ Buffer.from(resSignTx)
781
+ );
782
+ }
775
783
  if (!("signTransaction" in signer)) return;
776
784
  options?.onTransactionSignRequested?.({
777
785
  chainId: svmTx.chainId,
@@ -1012,9 +1020,19 @@ var validateEvmGasBalance = async ({
1012
1020
  }
1013
1021
  };
1014
1022
  var validateSvmGasBalance = async ({
1015
- tx
1023
+ tx,
1024
+ simulate
1016
1025
  }) => {
1017
1026
  if (!tx) throw new Error("Transaction is required");
1027
+ if (simulate === false) {
1028
+ return {
1029
+ success: true,
1030
+ logs: [],
1031
+ error: null,
1032
+ asset: null,
1033
+ fee: null
1034
+ };
1035
+ }
1018
1036
  const endpoint = await chunkKJ5NZG2D_cjs.getRpcEndpointForChain(tx.chainId ?? "");
1019
1037
  const connection = new web3_js.Connection(endpoint);
1020
1038
  if (!connection) throw new Error(`Failed to connect to ${tx.chainId}`);
@@ -1095,7 +1113,7 @@ var validateGasBalances = async ({
1095
1113
  throw new Error(`invalid msgs ${tx?.cosmosTx?.msgs}`);
1096
1114
  }
1097
1115
  try {
1098
- const res = await chunkXNBHMZQZ_cjs.validateCosmosGasBalance({
1116
+ const res = await chunkTWXIFMTM_cjs.validateCosmosGasBalance({
1099
1117
  chainId: tx.cosmosTx.chainId ?? "",
1100
1118
  signerAddress: tx.cosmosTx.signerAddress ?? "",
1101
1119
  messages: tx.cosmosTx.msgs,
@@ -1148,7 +1166,8 @@ var validateGasBalances = async ({
1148
1166
  });
1149
1167
  try {
1150
1168
  const res = await validateSvmGasBalance({
1151
- tx: tx.svmTx
1169
+ tx: tx.svmTx,
1170
+ simulate
1152
1171
  });
1153
1172
  return res;
1154
1173
  } catch (e) {
@@ -1377,7 +1396,7 @@ var executeRoute = async (options) => {
1377
1396
  if (!isUserAddressesValid) {
1378
1397
  throw new Error("executeRoute error: invalid user addresses");
1379
1398
  }
1380
- const response = await chunkLP3L6XJB_cjs.messages({
1399
+ const response = await chunkFY56EEFB_cjs.messages({
1381
1400
  timeoutSeconds,
1382
1401
  amountIn: route?.amountIn,
1383
1402
  amountOut: route.estimatedAmountOut || "0",
@@ -1389,7 +1408,8 @@ var executeRoute = async (options) => {
1389
1408
  addressList,
1390
1409
  slippageTolerancePercent: options.slippageTolerancePercent || "1",
1391
1410
  chainIdsToAffiliates: chunkHKQ5VION_cjs.ApiState.chainIdsToAffiliates,
1392
- postRouteHandler: options.postRouteHandler
1411
+ postRouteHandler: options.postRouteHandler,
1412
+ feePayerAddress: options.svmFeePayer?.address
1393
1413
  });
1394
1414
  if (beforeMsg && (response?.txs?.length ?? 0) > 0) {
1395
1415
  const firstTx = response?.txs?.[0];
@@ -15,6 +15,7 @@ var filterMessagesRequest = (request) => {
15
15
  operations: request.operations,
16
16
  estimatedAmountOut: request.estimatedAmountOut,
17
17
  slippageTolerancePercent: request.slippageTolerancePercent,
18
+ feePayerAddress: request.feePayerAddress,
18
19
  timeoutSeconds: request.timeoutSeconds,
19
20
  postRouteHandler: request.postRouteHandler,
20
21
  chainIdsToAffiliates: request.chainIdsToAffiliates,
@@ -30,7 +30,7 @@ var validateCosmosGasBalance = async ({
30
30
  }
31
31
  const estimatedGasAmount = await (async () => {
32
32
  try {
33
- if (!simulate) throw new Error("simulate");
33
+ if (simulate === false) throw new Error("simulate");
34
34
  if (txIndex !== 0 && chainId === "noble-1") {
35
35
  return "0";
36
36
  }
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkA7GR26AQ_cjs = require('./chunk-A7GR26AQ.cjs');
4
- var chunkXNBHMZQZ_cjs = require('./chunk-XNBHMZQZ.cjs');
3
+ var chunk4AB775IT_cjs = require('./chunk-4AB775IT.cjs');
4
+ var chunkTWXIFMTM_cjs = require('./chunk-TWXIFMTM.cjs');
5
5
  var chunkJ5RC6ZU5_cjs = require('./chunk-J5RC6ZU5.cjs');
6
6
  var chunkN3LR7KTI_cjs = require('./chunk-N3LR7KTI.cjs');
7
7
  var chunkF3EB2AQG_cjs = require('./chunk-F3EB2AQG.cjs');
@@ -15,7 +15,7 @@ var chunkFO25SR66_cjs = require('./chunk-FO25SR66.cjs');
15
15
  var chunk2EKCOIWV_cjs = require('./chunk-2EKCOIWV.cjs');
16
16
  require('./chunk-WMXUOVHN.cjs');
17
17
  var chunkXGBCEYWI_cjs = require('./chunk-XGBCEYWI.cjs');
18
- var chunkLP3L6XJB_cjs = require('./chunk-LP3L6XJB.cjs');
18
+ var chunkFY56EEFB_cjs = require('./chunk-FY56EEFB.cjs');
19
19
  var chunkMCZ3F457_cjs = require('./chunk-MCZ3F457.cjs');
20
20
  var chunkDCFIIF7G_cjs = require('./chunk-DCFIIF7G.cjs');
21
21
  var chunkDBDB2XWX_cjs = require('./chunk-DBDB2XWX.cjs');
@@ -176,11 +176,11 @@ var FeeBehaviorJson = /* @__PURE__ */ ((FeeBehaviorJson2) => {
176
176
 
177
177
  Object.defineProperty(exports, "executeRoute", {
178
178
  enumerable: true,
179
- get: function () { return chunkA7GR26AQ_cjs.executeRoute; }
179
+ get: function () { return chunk4AB775IT_cjs.executeRoute; }
180
180
  });
181
181
  Object.defineProperty(exports, "validateCosmosGasBalance", {
182
182
  enumerable: true,
183
- get: function () { return chunkXNBHMZQZ_cjs.validateCosmosGasBalance; }
183
+ get: function () { return chunkTWXIFMTM_cjs.validateCosmosGasBalance; }
184
184
  });
185
185
  Object.defineProperty(exports, "waitForTransaction", {
186
186
  enumerable: true,
@@ -224,7 +224,7 @@ Object.defineProperty(exports, "ibcOriginAssets", {
224
224
  });
225
225
  Object.defineProperty(exports, "messages", {
226
226
  enumerable: true,
227
- get: function () { return chunkLP3L6XJB_cjs.messages; }
227
+ get: function () { return chunkFY56EEFB_cjs.messages; }
228
228
  });
229
229
  Object.defineProperty(exports, "messagesDirect", {
230
230
  enumerable: true,
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkA7GR26AQ_cjs = require('../chunk-A7GR26AQ.cjs');
4
- require('../chunk-XNBHMZQZ.cjs');
3
+ var chunk4AB775IT_cjs = require('../chunk-4AB775IT.cjs');
4
+ require('../chunk-TWXIFMTM.cjs');
5
5
  require('../chunk-J5RC6ZU5.cjs');
6
6
  require('../chunk-N3LR7KTI.cjs');
7
7
  require('../chunk-F3EB2AQG.cjs');
@@ -10,7 +10,7 @@ require('../chunk-KZOSEIWH.cjs');
10
10
  require('../chunk-KJ5NZG2D.cjs');
11
11
  require('../chunk-T5LPU5A2.cjs');
12
12
  require('../chunk-WMXUOVHN.cjs');
13
- require('../chunk-LP3L6XJB.cjs');
13
+ require('../chunk-FY56EEFB.cjs');
14
14
  require('../chunk-2CCLIBCC.cjs');
15
15
  require('../chunk-EXK2GDR5.cjs');
16
16
  require('../chunk-2VQ2TNFM.cjs');
@@ -23,5 +23,5 @@ require('../chunk-IDDRJJO5.cjs');
23
23
 
24
24
  Object.defineProperty(exports, "executeRoute", {
25
25
  enumerable: true,
26
- get: function () { return chunkA7GR26AQ_cjs.executeRoute; }
26
+ get: function () { return chunk4AB775IT_cjs.executeRoute; }
27
27
  });
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkXNBHMZQZ_cjs = require('../chunk-XNBHMZQZ.cjs');
3
+ var chunkTWXIFMTM_cjs = require('../chunk-TWXIFMTM.cjs');
4
4
  require('../chunk-N3LR7KTI.cjs');
5
5
  require('../chunk-4R6OCWRR.cjs');
6
6
  require('../chunk-KJ5NZG2D.cjs');
@@ -14,5 +14,5 @@ require('../chunk-IDDRJJO5.cjs');
14
14
 
15
15
  Object.defineProperty(exports, "validateCosmosGasBalance", {
16
16
  enumerable: true,
17
- get: function () { return chunkXNBHMZQZ_cjs.validateCosmosGasBalance; }
17
+ get: function () { return chunkTWXIFMTM_cjs.validateCosmosGasBalance; }
18
18
  });
@@ -1,3 +1,3 @@
1
- export { messages } from '../chunk-GSCIF7YA.js';
1
+ export { messages } from '../chunk-7LSTJXAF.js';
2
2
  import '../chunk-LZI7A4JI.js';
3
3
  import '../chunk-OQDBWVET.js';
@@ -13,6 +13,7 @@ var filterMessagesRequest = (request) => {
13
13
  operations: request.operations,
14
14
  estimatedAmountOut: request.estimatedAmountOut,
15
15
  slippageTolerancePercent: request.slippageTolerancePercent,
16
+ feePayerAddress: request.feePayerAddress,
16
17
  timeoutSeconds: request.timeoutSeconds,
17
18
  postRouteHandler: request.postRouteHandler,
18
19
  chainIdsToAffiliates: request.chainIdsToAffiliates,
@@ -28,7 +28,7 @@ var validateCosmosGasBalance = async ({
28
28
  }
29
29
  const estimatedGasAmount = await (async () => {
30
30
  try {
31
- if (!simulate) throw new Error("simulate");
31
+ if (simulate === false) throw new Error("simulate");
32
32
  if (txIndex !== 0 && chainId === "noble-1") {
33
33
  return "0";
34
34
  }
@@ -1,4 +1,4 @@
1
- import { validateCosmosGasBalance } from './chunk-2R3M45RX.js';
1
+ import { validateCosmosGasBalance } from './chunk-GD7EWX2G.js';
2
2
  import { waitForTransaction } from './chunk-CU6W3622.js';
3
3
  import { getEncodeObjectFromCosmosMessage, getEncodeObjectFromCosmosMessageInjective } from './chunk-TV2XPAIF.js';
4
4
  import { getEVMGasAmountForMessage } from './chunk-GV2QOWB4.js';
@@ -6,7 +6,7 @@ import { BigNumber } from './chunk-VQ5SIQWU.js';
6
6
  import { GAS_STATION_CHAIN_IDS } from './chunk-SWYON2RG.js';
7
7
  import { getSigningStargateClient, getRpcEndpointForChain, accountParser } from './chunk-6F2T2KB3.js';
8
8
  import { chains, findFirstWorkingEndpoint, getIsEthermint, getIsInitia } from './chunk-43P4WRGN.js';
9
- import { messages } from './chunk-GSCIF7YA.js';
9
+ import { messages } from './chunk-7LSTJXAF.js';
10
10
  import { submitTransaction } from './chunk-OHV2LZEG.js';
11
11
  import { venues } from './chunk-JSY7M43P.js';
12
12
  import { ClientState, balances } from './chunk-2L7PKZDY.js';
@@ -770,6 +770,14 @@ var signSvmTransaction = async ({
770
770
  }
771
771
  const txBuffer = Buffer.from(svmTx.tx ?? "", "base64");
772
772
  const transaction = Transaction.from(txBuffer);
773
+ if (options.svmFeePayer) {
774
+ const message = transaction.serializeMessage();
775
+ const resSignTx = await options.svmFeePayer.signTransaction(message);
776
+ transaction.addSignature(
777
+ new PublicKey(options.svmFeePayer.address),
778
+ Buffer.from(resSignTx)
779
+ );
780
+ }
773
781
  if (!("signTransaction" in signer)) return;
774
782
  options?.onTransactionSignRequested?.({
775
783
  chainId: svmTx.chainId,
@@ -1010,9 +1018,19 @@ var validateEvmGasBalance = async ({
1010
1018
  }
1011
1019
  };
1012
1020
  var validateSvmGasBalance = async ({
1013
- tx
1021
+ tx,
1022
+ simulate
1014
1023
  }) => {
1015
1024
  if (!tx) throw new Error("Transaction is required");
1025
+ if (simulate === false) {
1026
+ return {
1027
+ success: true,
1028
+ logs: [],
1029
+ error: null,
1030
+ asset: null,
1031
+ fee: null
1032
+ };
1033
+ }
1016
1034
  const endpoint = await getRpcEndpointForChain(tx.chainId ?? "");
1017
1035
  const connection = new Connection(endpoint);
1018
1036
  if (!connection) throw new Error(`Failed to connect to ${tx.chainId}`);
@@ -1146,7 +1164,8 @@ var validateGasBalances = async ({
1146
1164
  });
1147
1165
  try {
1148
1166
  const res = await validateSvmGasBalance({
1149
- tx: tx.svmTx
1167
+ tx: tx.svmTx,
1168
+ simulate
1150
1169
  });
1151
1170
  return res;
1152
1171
  } catch (e) {
@@ -1387,7 +1406,8 @@ var executeRoute = async (options) => {
1387
1406
  addressList,
1388
1407
  slippageTolerancePercent: options.slippageTolerancePercent || "1",
1389
1408
  chainIdsToAffiliates: ApiState.chainIdsToAffiliates,
1390
- postRouteHandler: options.postRouteHandler
1409
+ postRouteHandler: options.postRouteHandler,
1410
+ feePayerAddress: options.svmFeePayer?.address
1391
1411
  });
1392
1412
  if (beforeMsg && (response?.txs?.length ?? 0) > 0) {
1393
1413
  const firstTx = response?.txs?.[0];
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { executeRoute } from './chunk-35H4PDPF.js';
2
- export { validateCosmosGasBalance } from './chunk-2R3M45RX.js';
1
+ export { executeRoute } from './chunk-JOBBQQDA.js';
2
+ export { validateCosmosGasBalance } from './chunk-GD7EWX2G.js';
3
3
  export { waitForTransaction } from './chunk-CU6W3622.js';
4
4
  export { getCosmosGasAmountForMessage } from './chunk-TV2XPAIF.js';
5
5
  export { getEVMGasAmountForMessage } from './chunk-GV2QOWB4.js';
@@ -13,7 +13,7 @@ export { setApiOptions } from './chunk-JYUNVL4F.js';
13
13
  export { setClientOptions } from './chunk-OL7CWCPB.js';
14
14
  import './chunk-TD63P2AG.js';
15
15
  export { ibcOriginAssets } from './chunk-XXTECZG3.js';
16
- export { messages } from './chunk-GSCIF7YA.js';
16
+ export { messages } from './chunk-7LSTJXAF.js';
17
17
  export { messagesDirect } from './chunk-SJP6W2SK.js';
18
18
  export { recommendAssets } from './chunk-IPHFFTGO.js';
19
19
  export { route } from './chunk-JIADJKRD.js';
@@ -63,6 +63,18 @@ type ExecuteRouteOptions = SignerGetters & GasOptions & TransactionCallbacks & P
63
63
  * It should be a function that takes a chainId and returns the denom for the priority fee.
64
64
  */
65
65
  getCosmosPriorityFeeDenom?: (chainId: string) => Promise<string | undefined>;
66
+ /**
67
+ * SVM Fee Payer
68
+ *
69
+ * This is used to pay for the transaction fees on SVM chains.
70
+ * It should be an object with the following properties:
71
+ * `address`: The address of the fee payer.
72
+ * `signTransaction`: A function that takes the data to sign and returns a Promise that resolves to the signed transaction.
73
+ */
74
+ svmFeePayer?: {
75
+ address: string;
76
+ signTransaction: (dataToSign: Buffer) => Promise<Uint8Array>;
77
+ };
66
78
  };
67
79
  declare const executeRoute: (options: ExecuteRouteOptions) => Promise<void>;
68
80
 
@@ -1,5 +1,5 @@
1
- export { executeRoute } from '../chunk-35H4PDPF.js';
2
- import '../chunk-2R3M45RX.js';
1
+ export { executeRoute } from '../chunk-JOBBQQDA.js';
2
+ import '../chunk-GD7EWX2G.js';
3
3
  import '../chunk-CU6W3622.js';
4
4
  import '../chunk-TV2XPAIF.js';
5
5
  import '../chunk-GV2QOWB4.js';
@@ -8,7 +8,7 @@ import '../chunk-SWYON2RG.js';
8
8
  import '../chunk-6F2T2KB3.js';
9
9
  import '../chunk-43P4WRGN.js';
10
10
  import '../chunk-TD63P2AG.js';
11
- import '../chunk-GSCIF7YA.js';
11
+ import '../chunk-7LSTJXAF.js';
12
12
  import '../chunk-OHV2LZEG.js';
13
13
  import '../chunk-7ITTEUMR.js';
14
14
  import '../chunk-MXCJ2M3K.js';
@@ -1,4 +1,4 @@
1
- export { validateCosmosGasBalance } from '../chunk-2R3M45RX.js';
1
+ export { validateCosmosGasBalance } from '../chunk-GD7EWX2G.js';
2
2
  import '../chunk-TV2XPAIF.js';
3
3
  import '../chunk-VQ5SIQWU.js';
4
4
  import '../chunk-6F2T2KB3.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.3.3",
4
+ "version": "1.3.4",
5
5
  "repository": "https://github.com/skip-mev/skip-go",
6
6
  "type": "module",
7
7
  "main": "./dist/cjs/index.cjs",