@skip-go/client 1.5.3-alpha.0 → 1.5.3-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cjs/{chunk-CZKIE576.cjs → chunk-APJDSXWR.cjs} +2 -2
  2. package/dist/cjs/{chunk-GWRZ6MPC.cjs → chunk-I2FDWZZJ.cjs} +16 -16
  3. package/dist/cjs/{chunk-GGSF5JZH.cjs → chunk-NWD4MAMT.cjs} +4 -4
  4. package/dist/cjs/{chunk-J7HZ6VJE.cjs → chunk-PDTIT3JO.cjs} +3 -3
  5. package/dist/cjs/{chunk-MOWOIPUG.cjs → chunk-RC73RNNQ.cjs} +2 -2
  6. package/dist/cjs/chunk-UMBMSRZZ.cjs +185 -0
  7. package/dist/cjs/index.cjs +35 -35
  8. package/dist/cjs/public-functions/executeMultipleRoutes.cjs +7 -7
  9. package/dist/cjs/public-functions/executeRoute.cjs +7 -7
  10. package/dist/cjs/public-functions/getFeeInfoForChain.cjs +3 -3
  11. package/dist/cjs/public-functions/getRecommendedGasPrice.cjs +4 -4
  12. package/dist/cjs/public-functions/getRouteWithGasOnReceive.cjs +7 -7
  13. package/dist/cjs/public-functions/getSigningStargateClient.cjs +3 -3
  14. package/dist/cjs/public-functions/validateCosmosGasBalance.cjs +4 -4
  15. package/dist/esm/{chunk-SOVU5NCL.js → chunk-2PWROHHX.js} +1 -1
  16. package/dist/esm/{chunk-RJ35JBT4.js → chunk-IKWC55JU.js} +4 -4
  17. package/dist/esm/chunk-O4J7DHZA.js +180 -0
  18. package/dist/esm/{chunk-YWG4XR5A.js → chunk-QRKO56DH.js} +1 -1
  19. package/dist/esm/{chunk-47HN6VKU.js → chunk-SFWTQBQT.js} +1 -1
  20. package/dist/esm/{chunk-JNVGNIOE.js → chunk-V7VKYD4J.js} +1 -1
  21. package/dist/esm/index.js +6 -6
  22. package/dist/esm/public-functions/executeMultipleRoutes.js +6 -6
  23. package/dist/esm/public-functions/executeRoute.js +6 -6
  24. package/dist/esm/public-functions/getFeeInfoForChain.js +2 -2
  25. package/dist/esm/public-functions/getRecommendedGasPrice.js +3 -3
  26. package/dist/esm/public-functions/getRouteWithGasOnReceive.js +6 -6
  27. package/dist/esm/public-functions/getSigningStargateClient.js +2 -2
  28. package/dist/esm/public-functions/validateCosmosGasBalance.js +3 -3
  29. package/package.json +1 -1
  30. package/dist/cjs/chunk-ARCCHERF.cjs +0 -1478
  31. package/dist/cjs/chunk-BQDOKZFX.cjs +0 -214
  32. package/dist/cjs/chunk-EVEVOW2U.cjs +0 -2179
  33. package/dist/cjs/chunk-H2T4LMS2.cjs +0 -55
  34. package/dist/cjs/chunk-I6VYDEUV.cjs +0 -454
  35. package/dist/cjs/chunk-KSJ5QYMR.cjs +0 -185
  36. package/dist/cjs/chunk-KZOSEIWH.cjs +0 -10
  37. package/dist/cjs/chunk-UY5LWG5D.cjs +0 -95
  38. package/dist/cjs/chunk-W6ID22B6.cjs +0 -24
  39. package/dist/esm/chunk-DL374PFE.js +0 -53
  40. package/dist/esm/chunk-FDRLM2JD.js +0 -431
  41. package/dist/esm/chunk-H3MY23AH.js +0 -93
  42. package/dist/esm/chunk-IGK7LJCM.js +0 -1475
  43. package/dist/esm/chunk-RHGDUD76.js +0 -180
  44. package/dist/esm/chunk-RHLE3EW7.js +0 -212
  45. package/dist/esm/chunk-SWYON2RG.js +0 -7
  46. package/dist/esm/chunk-X2IBEHMZ.js +0 -2154
  47. package/dist/esm/chunk-XHLXJGVB.js +0 -22
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- // src/constants/constants.ts
4
- var DEFAULT_GAS_DENOM_OVERRIDES = {
5
- "noble-1": "uusdc"
6
- };
7
- var GAS_STATION_CHAIN_IDS = ["bbn-test-5", "bbn-1"];
8
-
9
- exports.DEFAULT_GAS_DENOM_OVERRIDES = DEFAULT_GAS_DENOM_OVERRIDES;
10
- exports.GAS_STATION_CHAIN_IDS = GAS_STATION_CHAIN_IDS;
@@ -1,95 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkKZOSEIWH_cjs = require('./chunk-KZOSEIWH.cjs');
4
- var chunkKSJ5QYMR_cjs = require('./chunk-KSJ5QYMR.cjs');
5
- var chunkQAHHTQ7V_cjs = require('./chunk-QAHHTQ7V.cjs');
6
-
7
- // src/private-functions/getDefaultGasTokenForChain.ts
8
- var getDefaultGasTokenForChain = async (chainId) => {
9
- const gasDenom = chunkKZOSEIWH_cjs.DEFAULT_GAS_DENOM_OVERRIDES[chainId];
10
- if (gasDenom) {
11
- return gasDenom;
12
- }
13
- const chain = chunkKSJ5QYMR_cjs.chains().find((chain2) => chain2.chainId === chainId);
14
- if (!chain) {
15
- return void 0;
16
- }
17
- if (!chain.fees) {
18
- return void 0;
19
- }
20
- const stakingTokens = getStakingTokensForChain(chainId);
21
- if (stakingTokens && stakingTokens.length > 0) {
22
- const feeAsset = chain.fees.feeTokens.find(
23
- (feeToken) => feeToken.denom === stakingTokens[0]?.denom
24
- );
25
- if (feeAsset) {
26
- return feeAsset.denom;
27
- }
28
- }
29
- const nonIBCAsset = chain.fees.feeTokens.find(
30
- (token) => !token.denom.startsWith("ibc/") && !token.denom.startsWith("l2/")
31
- );
32
- if (nonIBCAsset) {
33
- return nonIBCAsset.denom;
34
- }
35
- const nonL2Asset = chain.fees.feeTokens.find((token) => !token.denom.startsWith("l2/"));
36
- if (nonL2Asset) {
37
- return nonL2Asset.denom;
38
- }
39
- return chain.fees.feeTokens[0]?.denom;
40
- };
41
- var getStakingTokensForChain = (chainId) => {
42
- const chain = chunkKSJ5QYMR_cjs.chains().find((chain2) => chain2.chainId === chainId);
43
- if (!chain) {
44
- throw new Error(
45
- `getStakingTokensForChain error: failed to find chain id '${chainId}' in registry`
46
- );
47
- }
48
- if (!chain.staking) {
49
- return void 0;
50
- }
51
- return chain.staking.stakingTokens;
52
- };
53
-
54
- // src/public-functions/getFeeInfoForChain.ts
55
- var getFeeInfoForChain = async ({ chainId, apiUrl, apiKey }) => {
56
- const skipChains = await chunkQAHHTQ7V_cjs.ClientState.getSkipChains({ apiUrl, apiKey });
57
- const skipChain = skipChains.find((chain2) => chain2.chainId === chainId);
58
- if (!skipChain) {
59
- return void 0;
60
- }
61
- const defaultGasToken = await getDefaultGasTokenForChain(chainId);
62
- if (!defaultGasToken && !skipChain.feeAssets) {
63
- return void 0;
64
- }
65
- const skipFeeInfo = defaultGasToken ? skipChain.feeAssets?.find((skipFee) => skipFee.denom === defaultGasToken) : skipChain.feeAssets?.[0];
66
- if (!skipFeeInfo && skipChain.feeAssets?.[0]?.gasPrice !== null) {
67
- return skipChain.feeAssets?.[0];
68
- }
69
- if (skipFeeInfo && skipFeeInfo.gasPrice !== null) {
70
- return skipFeeInfo;
71
- }
72
- const chain = chunkKSJ5QYMR_cjs.chains().find((chain2) => chain2.chainId === chainId);
73
- if (!chain) {
74
- return void 0;
75
- }
76
- if (!chain.fees) {
77
- return void 0;
78
- }
79
- const registryFeeInfo = chain.fees.feeTokens.find(
80
- (feeToken) => feeToken.denom === defaultGasToken
81
- );
82
- if (!registryFeeInfo) {
83
- return void 0;
84
- }
85
- return {
86
- denom: registryFeeInfo.denom,
87
- gasPrice: {
88
- low: registryFeeInfo.lowGasPrice ? `${registryFeeInfo.lowGasPrice}` : "",
89
- average: registryFeeInfo.averageGasPrice ? `${registryFeeInfo.averageGasPrice}` : "",
90
- high: registryFeeInfo.highGasPrice ? `${registryFeeInfo.highGasPrice}` : ""
91
- }
92
- };
93
- };
94
-
95
- exports.getFeeInfoForChain = getFeeInfoForChain;
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkWKYP2NMS_cjs = require('./chunk-WKYP2NMS.cjs');
4
- var chunkUY5LWG5D_cjs = require('./chunk-UY5LWG5D.cjs');
5
- var math = require('@cosmjs/math');
6
- var stargate = require('@cosmjs/stargate');
7
-
8
- var getRecommendedGasPrice = async (props) => {
9
- const feeInfo = await chunkUY5LWG5D_cjs.getFeeInfoForChain(props);
10
- if (!feeInfo || !feeInfo.gasPrice) {
11
- return void 0;
12
- }
13
- let price = feeInfo.gasPrice.average;
14
- if (price === "") {
15
- price = feeInfo.gasPrice.high;
16
- }
17
- if (price === "") {
18
- price = feeInfo.gasPrice.low;
19
- }
20
- if (!price) return;
21
- return new stargate.GasPrice(math.Decimal.fromUserInput(chunkWKYP2NMS_cjs.BigNumber(price).toFixed(), 18), feeInfo.denom);
22
- };
23
-
24
- exports.getRecommendedGasPrice = getRecommendedGasPrice;
@@ -1,53 +0,0 @@
1
- import { createValidAddressList, executeTransactions } from './chunk-IGK7LJCM.js';
2
- import { updateRouteDetails, executeAndSubscribeToRouteStatus } from './chunk-5IXH2QPF.js';
3
- import { messages } from './chunk-IHSSWY3M.js';
4
- import { ApiState } from './chunk-VGCTTJO7.js';
5
-
6
- // src/public-functions/executeRoute.ts
7
- var executeRoute = async (options) => {
8
- const { route, userAddresses, appendCosmosMsgs, timeoutSeconds } = options;
9
- const { id: routeId } = updateRouteDetails({
10
- status: "unconfirmed",
11
- options
12
- });
13
- const addressList = await createValidAddressList({
14
- userAddresses,
15
- route
16
- });
17
- const response = await messages({
18
- timeoutSeconds,
19
- amountIn: route?.amountIn,
20
- amountOut: route.estimatedAmountOut || "0",
21
- sourceAssetChainId: route?.sourceAssetChainId,
22
- sourceAssetDenom: route?.sourceAssetDenom,
23
- destAssetChainId: route?.destAssetChainId,
24
- destAssetDenom: route?.destAssetDenom,
25
- operations: route?.operations,
26
- addressList,
27
- slippageTolerancePercent: options.slippageTolerancePercent || "1",
28
- chainIdsToAffiliates: ApiState.chainIdsToAffiliates,
29
- postRouteHandler: options.postRouteHandler,
30
- feePayerAddress: options.svmFeePayer?.address
31
- });
32
- if (appendCosmosMsgs) {
33
- Object.entries(appendCosmosMsgs).forEach(([chainId, msgs]) => {
34
- const txIndex = response?.txs?.findIndex(
35
- (tx2) => "cosmosTx" in tx2 && tx2.cosmosTx.chainId === chainId
36
- );
37
- if (txIndex === void 0 || txIndex === -1) return;
38
- const tx = response?.txs?.[txIndex];
39
- if (tx && "cosmosTx" in tx) {
40
- tx.cosmosTx.msgs?.unshift(...msgs);
41
- }
42
- });
43
- }
44
- const { transactionDetails, executeTransaction } = await executeTransactions({ ...options, routeId, txs: response?.txs });
45
- await executeAndSubscribeToRouteStatus({
46
- transactionDetails,
47
- executeTransaction,
48
- routeId,
49
- options
50
- });
51
- };
52
-
53
- export { executeRoute };
@@ -1,431 +0,0 @@
1
- import { bignumber_default } from './chunk-JYYCFKB4.js';
2
- import { route } from './chunk-VWOMKMH2.js';
3
- import { ClientState, chains, assets } from './chunk-MYGJGC62.js';
4
- import { defineChain, createPublicClient, fallback, http } from 'viem';
5
- import { arbitrum, avalanche, base, bsc, celo, fantom, filecoin, kava, linea, mainnet, manta, moonbeam, optimism, polygon, polygonMumbai, sepolia, avalancheFuji, baseSepolia, optimismSepolia, arbitrumSepolia, blast, blastSepolia, forma, sei, bscTestnet, fantomTestnet, kavaTestnet, lineaSepolia, mantaSepoliaTestnet } from 'viem/chains';
6
-
7
- // src/types/swaggerTypesJson.ts
8
- var AutopilotActionJson = /* @__PURE__ */ ((AutopilotActionJson2) => {
9
- AutopilotActionJson2["LIQUID_STAKE"] = "LIQUID_STAKE";
10
- AutopilotActionJson2["CLAIM"] = "CLAIM";
11
- return AutopilotActionJson2;
12
- })(AutopilotActionJson || {});
13
- var AxelarTransferStateJson = /* @__PURE__ */ ((AxelarTransferStateJson2) => {
14
- AxelarTransferStateJson2["AXELAR_TRANSFER_UNKNOWN"] = "AXELAR_TRANSFER_UNKNOWN";
15
- AxelarTransferStateJson2["AXELAR_TRANSFER_PENDING_CONFIRMATION"] = "AXELAR_TRANSFER_PENDING_CONFIRMATION";
16
- AxelarTransferStateJson2["AXELAR_TRANSFER_PENDING_RECEIPT"] = "AXELAR_TRANSFER_PENDING_RECEIPT";
17
- AxelarTransferStateJson2["AXELAR_TRANSFER_SUCCESS"] = "AXELAR_TRANSFER_SUCCESS";
18
- AxelarTransferStateJson2["AXELAR_TRANSFER_FAILURE"] = "AXELAR_TRANSFER_FAILURE";
19
- return AxelarTransferStateJson2;
20
- })(AxelarTransferStateJson || {});
21
- var AxelarTransferTypeJson = /* @__PURE__ */ ((AxelarTransferTypeJson2) => {
22
- AxelarTransferTypeJson2["AXELAR_TRANSFER_CONTRACT_CALL_WITH_TOKEN"] = "AXELAR_TRANSFER_CONTRACT_CALL_WITH_TOKEN";
23
- AxelarTransferTypeJson2["AXELAR_TRANSFER_SEND_TOKEN"] = "AXELAR_TRANSFER_SEND_TOKEN";
24
- return AxelarTransferTypeJson2;
25
- })(AxelarTransferTypeJson || {});
26
- var CCTPTransferStateJson = /* @__PURE__ */ ((CCTPTransferStateJson2) => {
27
- CCTPTransferStateJson2["CCTP_TRANSFER_UNKNOWN"] = "CCTP_TRANSFER_UNKNOWN";
28
- CCTPTransferStateJson2["CCTP_TRANSFER_SENT"] = "CCTP_TRANSFER_SENT";
29
- CCTPTransferStateJson2["CCTP_TRANSFER_PENDING_CONFIRMATION"] = "CCTP_TRANSFER_PENDING_CONFIRMATION";
30
- CCTPTransferStateJson2["CCTP_TRANSFER_CONFIRMED"] = "CCTP_TRANSFER_CONFIRMED";
31
- CCTPTransferStateJson2["CCTP_TRANSFER_RECEIVED"] = "CCTP_TRANSFER_RECEIVED";
32
- return CCTPTransferStateJson2;
33
- })(CCTPTransferStateJson || {});
34
- var StargateTransferStateJson = /* @__PURE__ */ ((StargateTransferStateJson2) => {
35
- StargateTransferStateJson2["STARGATE_TRANSFER_UNKNOWN"] = "STARGATE_TRANSFER_UNKNOWN";
36
- StargateTransferStateJson2["STARGATE_TRANSFER_SENT"] = "STARGATE_TRANSFER_SENT";
37
- StargateTransferStateJson2["STARGATE_TRANSFER_PENDING_CONFIRMATION"] = "STARGATE_TRANSFER_PENDING_CONFIRMATION";
38
- StargateTransferStateJson2["STARGATE_TRANSFER_CONFIRMED"] = "STARGATE_TRANSFER_CONFIRMED";
39
- StargateTransferStateJson2["STARGATE_TRANSFER_RECEIVED"] = "STARGATE_TRANSFER_RECEIVED";
40
- StargateTransferStateJson2["STARGATE_TRANSFER_FAILED"] = "STARGATE_TRANSFER_FAILED";
41
- return StargateTransferStateJson2;
42
- })(StargateTransferStateJson || {});
43
- var GoFastTransferStateJson = /* @__PURE__ */ ((GoFastTransferStateJson2) => {
44
- GoFastTransferStateJson2["GO_FAST_TRANSFER_UNKNOWN"] = "GO_FAST_TRANSFER_UNKNOWN";
45
- GoFastTransferStateJson2["GO_FAST_TRANSFER_SENT"] = "GO_FAST_TRANSFER_SENT";
46
- GoFastTransferStateJson2["GO_FAST_POST_ACTION_FAILED"] = "GO_FAST_POST_ACTION_FAILED";
47
- GoFastTransferStateJson2["GO_FAST_TRANSFER_TIMEOUT"] = "GO_FAST_TRANSFER_TIMEOUT";
48
- GoFastTransferStateJson2["GO_FAST_TRANSFER_FILLED"] = "GO_FAST_TRANSFER_FILLED";
49
- GoFastTransferStateJson2["GO_FAST_TRANSFER_REFUNDED"] = "GO_FAST_TRANSFER_REFUNDED";
50
- return GoFastTransferStateJson2;
51
- })(GoFastTransferStateJson || {});
52
- var BridgeTypeJson = /* @__PURE__ */ ((BridgeTypeJson2) => {
53
- BridgeTypeJson2["IBC"] = "IBC";
54
- BridgeTypeJson2["AXELAR"] = "AXELAR";
55
- BridgeTypeJson2["CCTP"] = "CCTP";
56
- BridgeTypeJson2["HYPERLANE"] = "HYPERLANE";
57
- BridgeTypeJson2["OPINIT"] = "OPINIT";
58
- BridgeTypeJson2["GO_FAST"] = "GO_FAST";
59
- BridgeTypeJson2["STARGATE"] = "STARGATE";
60
- BridgeTypeJson2["LAYER_ZERO"] = "LAYER_ZERO";
61
- BridgeTypeJson2["EUREKA"] = "EUREKA";
62
- return BridgeTypeJson2;
63
- })(BridgeTypeJson || {});
64
- var ChainTypeJson = /* @__PURE__ */ ((ChainTypeJson2) => {
65
- ChainTypeJson2["Cosmos"] = "cosmos";
66
- ChainTypeJson2["Evm"] = "evm";
67
- ChainTypeJson2["Svm"] = "svm";
68
- return ChainTypeJson2;
69
- })(ChainTypeJson || {});
70
- var ContractCallWithTokenErrorTypeJson = /* @__PURE__ */ ((ContractCallWithTokenErrorTypeJson2) => {
71
- ContractCallWithTokenErrorTypeJson2["CONTRACT_CALL_WITH_TOKEN_EXECUTION_ERROR"] = "CONTRACT_CALL_WITH_TOKEN_EXECUTION_ERROR";
72
- return ContractCallWithTokenErrorTypeJson2;
73
- })(ContractCallWithTokenErrorTypeJson || {});
74
- var HyperlaneTransferStateJson = /* @__PURE__ */ ((HyperlaneTransferStateJson2) => {
75
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_UNKNOWN"] = "HYPERLANE_TRANSFER_UNKNOWN";
76
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_SENT"] = "HYPERLANE_TRANSFER_SENT";
77
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_FAILED"] = "HYPERLANE_TRANSFER_FAILED";
78
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_RECEIVED"] = "HYPERLANE_TRANSFER_RECEIVED";
79
- return HyperlaneTransferStateJson2;
80
- })(HyperlaneTransferStateJson || {});
81
- var PacketErrorTypeJson = /* @__PURE__ */ ((PacketErrorTypeJson2) => {
82
- PacketErrorTypeJson2["PACKET_ERROR_UNKNOWN"] = "PACKET_ERROR_UNKNOWN";
83
- PacketErrorTypeJson2["PACKET_ERROR_ACKNOWLEDGEMENT"] = "PACKET_ERROR_ACKNOWLEDGEMENT";
84
- PacketErrorTypeJson2["PACKET_ERROR_TIMEOUT"] = "PACKET_ERROR_TIMEOUT";
85
- return PacketErrorTypeJson2;
86
- })(PacketErrorTypeJson || {});
87
- var ReasonJson = /* @__PURE__ */ ((ReasonJson2) => {
88
- ReasonJson2["UNKNOWN"] = "UNKNOWN";
89
- ReasonJson2["MOST_LIQUID"] = "MOST_LIQUID";
90
- ReasonJson2["BASE_TOKEN"] = "BASE_TOKEN";
91
- ReasonJson2["DIRECT"] = "DIRECT";
92
- return ReasonJson2;
93
- })(ReasonJson || {});
94
- var RoutePriceWarningTypeJson = /* @__PURE__ */ ((RoutePriceWarningTypeJson2) => {
95
- RoutePriceWarningTypeJson2["LOW_INFO_WARNING"] = "LOW_INFO_WARNING";
96
- RoutePriceWarningTypeJson2["BAD_PRICE_WARNING"] = "BAD_PRICE_WARNING";
97
- return RoutePriceWarningTypeJson2;
98
- })(RoutePriceWarningTypeJson || {});
99
- var SendTokenErrorTypeJson = /* @__PURE__ */ ((SendTokenErrorTypeJson2) => {
100
- SendTokenErrorTypeJson2["SEND_TOKEN_EXECUTION_ERROR"] = "SEND_TOKEN_EXECUTION_ERROR";
101
- return SendTokenErrorTypeJson2;
102
- })(SendTokenErrorTypeJson || {});
103
- var StatusErrorTypeJson = /* @__PURE__ */ ((StatusErrorTypeJson2) => {
104
- StatusErrorTypeJson2["STATUS_ERROR_UNKNOWN"] = "STATUS_ERROR_UNKNOWN";
105
- StatusErrorTypeJson2["STATUS_ERROR_TRANSACTION_EXECUTION"] = "STATUS_ERROR_TRANSACTION_EXECUTION";
106
- StatusErrorTypeJson2["STATUS_ERROR_INDEXING"] = "STATUS_ERROR_INDEXING";
107
- StatusErrorTypeJson2["STATUS_ERROR_TRANSFER"] = "STATUS_ERROR_TRANSFER";
108
- return StatusErrorTypeJson2;
109
- })(StatusErrorTypeJson || {});
110
- var TransactionStateJson = /* @__PURE__ */ ((TransactionStateJson2) => {
111
- TransactionStateJson2["STATE_SUBMITTED"] = "STATE_SUBMITTED";
112
- TransactionStateJson2["STATE_PENDING"] = "STATE_PENDING";
113
- TransactionStateJson2["STATE_ABANDONED"] = "STATE_ABANDONED";
114
- TransactionStateJson2["STATE_COMPLETED_SUCCESS"] = "STATE_COMPLETED_SUCCESS";
115
- TransactionStateJson2["STATE_COMPLETED_ERROR"] = "STATE_COMPLETED_ERROR";
116
- TransactionStateJson2["STATE_PENDING_ERROR"] = "STATE_PENDING_ERROR";
117
- return TransactionStateJson2;
118
- })(TransactionStateJson || {});
119
- var OPInitTransferStateJson = /* @__PURE__ */ ((OPInitTransferStateJson2) => {
120
- OPInitTransferStateJson2["OPINIT_TRANSFER_UNKNOWN"] = "OPINIT_TRANSFER_UNKNOWN";
121
- OPInitTransferStateJson2["OPINIT_TRANSFER_SENT"] = "OPINIT_TRANSFER_SENT";
122
- OPInitTransferStateJson2["OPINIT_TRANSFER_RECEIVED"] = "OPINIT_TRANSFER_RECEIVED";
123
- return OPInitTransferStateJson2;
124
- })(OPInitTransferStateJson || {});
125
- var LayerZeroTransferStateJson = /* @__PURE__ */ ((LayerZeroTransferStateJson2) => {
126
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_UNKNOWN"] = "LAYER_ZERO_TRANSFER_UNKNOWN";
127
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_SENT"] = "LAYER_ZERO_TRANSFER_SENT";
128
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_WAITING_FOR_COMPOSE"] = "LAYER_ZERO_TRANSFER_WAITING_FOR_COMPOSE";
129
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_RECEIVED"] = "LAYER_ZERO_TRANSFER_RECEIVED";
130
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_FAILED"] = "LAYER_ZERO_TRANSFER_FAILED";
131
- return LayerZeroTransferStateJson2;
132
- })(LayerZeroTransferStateJson || {});
133
- var TransferStateJson = /* @__PURE__ */ ((TransferStateJson2) => {
134
- TransferStateJson2["TRANSFER_UNKNOWN"] = "TRANSFER_UNKNOWN";
135
- TransferStateJson2["TRANSFER_PENDING"] = "TRANSFER_PENDING";
136
- TransferStateJson2["TRANSFER_RECEIVED"] = "TRANSFER_RECEIVED";
137
- TransferStateJson2["TRANSFER_SUCCESS"] = "TRANSFER_SUCCESS";
138
- TransferStateJson2["TRANSFER_FAILURE"] = "TRANSFER_FAILURE";
139
- return TransferStateJson2;
140
- })(TransferStateJson || {});
141
- var FeeTypeJson = /* @__PURE__ */ ((FeeTypeJson2) => {
142
- FeeTypeJson2["SMART_RELAY"] = "SMART_RELAY";
143
- return FeeTypeJson2;
144
- })(FeeTypeJson || {});
145
- var FeeBehaviorJson = /* @__PURE__ */ ((FeeBehaviorJson2) => {
146
- FeeBehaviorJson2["FEE_BEHAVIOR_DEDUCTED"] = "FEE_BEHAVIOR_DEDUCTED";
147
- FeeBehaviorJson2["FEE_BEHAVIOR_ADDITIONAL"] = "FEE_BEHAVIOR_ADDITIONAL";
148
- return FeeBehaviorJson2;
149
- })(FeeBehaviorJson || {});
150
-
151
- // src/utils/coingecko.ts
152
- var getUsdPrice = async (coingeckoId) => {
153
- try {
154
- const response = await fetch(`https://api.coingecko.com/api/v3/simple/price?ids=${coingeckoId}&vs_currencies=usd`);
155
- const data = await response.json();
156
- return data?.[coingeckoId]?.usd;
157
- } catch (error) {
158
- return void 0;
159
- }
160
- };
161
-
162
- // src/utils/numbers.ts
163
- var convertHumanReadableAmountToCryptoAmount = (humanReadableAmount, decimals) => {
164
- const cryptoAmount = new bignumber_default(humanReadableAmount).shiftedBy(decimals);
165
- return cryptoAmount.toFixed(0);
166
- };
167
- var formaTestnet = defineChain({
168
- id: 984123,
169
- name: "Forma Testnet",
170
- nativeCurrency: {
171
- name: "TIA",
172
- symbol: "TIA",
173
- decimals: 18
174
- },
175
- rpcUrls: {
176
- default: {
177
- http: ["https://rpc.sketchpad-1.forma.art"]
178
- }
179
- },
180
- blockExplorers: {
181
- default: {
182
- name: "Forma Explorer",
183
- url: "https://explorer.sketchpad-1.forma.art"
184
- }
185
- },
186
- testnet: true
187
- });
188
- var evmChains = [
189
- arbitrum,
190
- avalanche,
191
- base,
192
- bsc,
193
- celo,
194
- fantom,
195
- filecoin,
196
- kava,
197
- linea,
198
- mainnet,
199
- manta,
200
- moonbeam,
201
- optimism,
202
- polygon,
203
- polygonMumbai,
204
- sepolia,
205
- avalancheFuji,
206
- baseSepolia,
207
- optimismSepolia,
208
- arbitrumSepolia,
209
- blast,
210
- blastSepolia,
211
- forma,
212
- formaTestnet,
213
- sei,
214
- bscTestnet,
215
- fantomTestnet,
216
- kavaTestnet,
217
- lineaSepolia,
218
- mantaSepoliaTestnet
219
- ];
220
-
221
- // src/utils/array.ts
222
- function isSubset(arrayA, arrayB) {
223
- const setA = new Set(arrayA);
224
- return arrayB.every((item) => setA.has(item));
225
- }
226
-
227
- // src/public-functions/getRouteWithGasOnReceive.ts
228
- var GAS_ON_RECEIVE_AMOUNT_USD = {
229
- ["cosmos" /* Cosmos */]: 0.1,
230
- evm_l2: 2
231
- };
232
- var DISABLED_SOURCE_CHAINIDS = ["1", "11155111"];
233
- var DISABLED_DESTINATION_CHAINIDS = ["solana", "solana-devnet"];
234
- var getRouteWithGasOnReceive = async (props) => {
235
- const originalRoute = props.routeResponse;
236
- try {
237
- if (DISABLED_SOURCE_CHAINIDS.includes(originalRoute.sourceAssetChainId)) {
238
- throw new Error(
239
- `Routes from ${originalRoute.sourceAssetChainId} are not supported`
240
- );
241
- }
242
- if (DISABLED_DESTINATION_CHAINIDS.includes(originalRoute.destAssetChainId)) {
243
- throw new Error(
244
- `Routes to ${originalRoute.destAssetChainId} are not supported`
245
- );
246
- }
247
- const skipChains = ClientState.skipChains ? ClientState.skipChains : await chains({
248
- includeEvm: true,
249
- includeSvm: true,
250
- chainIds: [
251
- originalRoute.sourceAssetChainId,
252
- originalRoute.destAssetChainId
253
- ],
254
- onlyTestnets: props.onlyTestnets
255
- });
256
- const skipAssets = ClientState.skipAssets ? ClientState.skipAssets : await assets({
257
- chainIds: [
258
- originalRoute.sourceAssetChainId,
259
- originalRoute.destAssetChainId
260
- ],
261
- includeEvmAssets: true,
262
- includeSvmAssets: true,
263
- onlyTestnets: props.onlyTestnets
264
- });
265
- const destinationChain = skipChains?.find(
266
- (chain) => chain.chainId === originalRoute.destAssetChainId
267
- );
268
- if (destinationChain?.feeAssets.map((i) => i.denom).includes(originalRoute.destAssetDenom)) {
269
- throw new Error(
270
- "Destination asset is already a fee asset on the destination chain"
271
- );
272
- }
273
- const gasOnReceiveAmount = await getGasOnReceiveAmount({
274
- destinationChain,
275
- skipAssets,
276
- sourceAsset: skipAssets?.[originalRoute.sourceAssetChainId]?.find(
277
- (i) => i.denom === originalRoute.sourceAssetDenom
278
- )
279
- });
280
- if (!gasOnReceiveAmount || gasOnReceiveAmount.length === 0) {
281
- throw new Error(
282
- "No gas on receive amount found for the destination chain"
283
- );
284
- }
285
- const splitDenoms = chunkArray(gasOnReceiveAmount, 3);
286
- let gasRoute;
287
- for (const chunk of splitDenoms) {
288
- const feeAssetRoutes = chunk.map(
289
- async ({ amountOut, denom, amountIn }) => {
290
- try {
291
- const res = await route({
292
- ...props.routeRequest,
293
- destAssetDenom: denom,
294
- amountIn,
295
- amountOut,
296
- allowMultiTx: false
297
- });
298
- return res;
299
- } catch (_e) {
300
- return null;
301
- }
302
- }
303
- );
304
- const result = await Promise.all(feeAssetRoutes);
305
- const _gasRoute = result.find((result2) => result2?.usdAmountOut);
306
- if (_gasRoute?.usdAmountOut) {
307
- gasRoute = _gasRoute;
308
- break;
309
- }
310
- }
311
- if (!gasRoute) {
312
- throw new Error(
313
- "No gas route found for the destination chain with the provided assets"
314
- );
315
- }
316
- const mainRouteAmountIn = bignumber_default(originalRoute?.amountIn ?? 0).minus(bignumber_default(gasRoute.amountIn ?? 0)).toString();
317
- const mainRoute = await route({
318
- ...props.routeRequest,
319
- amountIn: mainRouteAmountIn,
320
- amountOut: void 0
321
- });
322
- if (!mainRoute) {
323
- throw new Error("No main route found with the provided assets");
324
- }
325
- if (originalRoute.txsRequired !== mainRoute.txsRequired || !isSubset(
326
- originalRoute?.requiredChainAddresses,
327
- mainRoute.requiredChainAddresses
328
- )) {
329
- throw new Error("Main route does not match the original route");
330
- }
331
- return {
332
- mainRoute,
333
- gasRoute
334
- };
335
- } catch (error) {
336
- return {
337
- mainRoute: originalRoute,
338
- gasRoute: void 0
339
- };
340
- }
341
- };
342
- var getGasOnReceiveAmount = async ({
343
- destinationChain,
344
- skipAssets,
345
- sourceAsset
346
- }) => {
347
- switch (destinationChain?.chainType) {
348
- case "cosmos" /* Cosmos */: {
349
- const usdPrice = sourceAsset?.coingeckoId ? await getUsdPrice(sourceAsset.coingeckoId) : void 0;
350
- return destinationChain.feeAssets.map((asset) => {
351
- const destinationAsset = skipAssets?.[destinationChain.chainId]?.find(
352
- (i) => i.denom === asset.denom
353
- );
354
- const gasPrice = asset.gasPrice?.average ?? asset.gasPrice?.high ?? asset.gasPrice?.low;
355
- if (!gasPrice || Number(gasPrice) === 0) {
356
- if (!usdPrice || !sourceAsset?.decimals) return;
357
- const gasOnReceiveAmountUsd = GAS_ON_RECEIVE_AMOUNT_USD["cosmos"];
358
- const amountIn = bignumber_default(gasOnReceiveAmountUsd).multipliedBy(usdPrice).toString();
359
- return {
360
- amountIn: convertHumanReadableAmountToCryptoAmount(
361
- amountIn,
362
- sourceAsset.decimals
363
- ),
364
- amountOut: void 0,
365
- denom: asset.denom
366
- };
367
- }
368
- return {
369
- amountIn: void 0,
370
- amountOut: gasPrice && destinationAsset?.decimals ? convertHumanReadableAmountToCryptoAmount(
371
- bignumber_default(gasPrice).multipliedBy(3).toNumber(),
372
- destinationAsset.decimals
373
- ) : void 0,
374
- denom: asset.denom
375
- };
376
- }).filter(Boolean);
377
- }
378
- case "evm" /* Evm */: {
379
- const sourceAssetPrice = sourceAsset?.coingeckoId ? await getUsdPrice(sourceAsset?.coingeckoId) : void 0;
380
- const destinationAsset = skipAssets?.[destinationChain.chainId]?.find(
381
- (i) => i.denom.includes("-native")
382
- );
383
- if (!sourceAssetPrice) {
384
- const chain = evmChains.find(
385
- (chain2) => chain2.id === Number(destinationChain?.chainId)
386
- );
387
- const client = createPublicClient({
388
- chain,
389
- transport: fallback([
390
- http("https://ethereum.publicnode.com"),
391
- http("https://rpc.ankr.com/eth"),
392
- http("https://cloudflare-eth.com")
393
- ])
394
- });
395
- const fees = await client.estimateFeesPerGas();
396
- return [
397
- {
398
- amountIn: void 0,
399
- amountOut: bignumber_default(15e4).multipliedBy(fees.maxFeePerGas.toString()).multipliedBy(3).toString(),
400
- denom: destinationAsset?.denom
401
- }
402
- ];
403
- }
404
- const gasPrice = bignumber_default(GAS_ON_RECEIVE_AMOUNT_USD["evm_l2"]).dividedBy(
405
- sourceAssetPrice
406
- ).toString();
407
- return [
408
- {
409
- amountOut: void 0,
410
- amountIn: sourceAsset?.decimals ? convertHumanReadableAmountToCryptoAmount(
411
- gasPrice,
412
- sourceAsset.decimals
413
- ) : void 0,
414
- denom: destinationAsset?.denom
415
- }
416
- ];
417
- }
418
- default: {
419
- return;
420
- }
421
- }
422
- };
423
- var chunkArray = (arr, size = 3) => {
424
- const result = [];
425
- for (let i = 0; i < arr.length; i += size) {
426
- result.push(arr.slice(i, i + size));
427
- }
428
- return result;
429
- };
430
-
431
- export { AutopilotActionJson, AxelarTransferStateJson, AxelarTransferTypeJson, BridgeTypeJson, CCTPTransferStateJson, ChainTypeJson, ContractCallWithTokenErrorTypeJson, FeeBehaviorJson, FeeTypeJson, GoFastTransferStateJson, HyperlaneTransferStateJson, LayerZeroTransferStateJson, OPInitTransferStateJson, PacketErrorTypeJson, ReasonJson, RoutePriceWarningTypeJson, SendTokenErrorTypeJson, StargateTransferStateJson, StatusErrorTypeJson, TransactionStateJson, TransferStateJson, getRouteWithGasOnReceive };