@skip-go/client 1.5.3-alpha.1 → 1.5.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.
Files changed (119) hide show
  1. package/dist/cjs/api/getAssets.cjs +1 -1
  2. package/dist/cjs/api/getAssetsBetweenChains.cjs +1 -1
  3. package/dist/cjs/api/getBridges.cjs +1 -1
  4. package/dist/cjs/api/getChains.cjs +1 -1
  5. package/dist/cjs/api/getVenues.cjs +1 -1
  6. package/dist/cjs/api/postAssetsFromSource.cjs +1 -1
  7. package/dist/cjs/api/postBalances.cjs +1 -1
  8. package/dist/cjs/api/postIbcOriginAssets.cjs +1 -1
  9. package/dist/cjs/api/postMessages.cjs +1 -1
  10. package/dist/cjs/api/postMessagesDirect.cjs +1 -1
  11. package/dist/cjs/api/postRecommendAssets.cjs +1 -1
  12. package/dist/cjs/api/postRoute.cjs +1 -1
  13. package/dist/cjs/api/postSubmitTransaction.cjs +1 -1
  14. package/dist/cjs/api/postTrackTransaction.cjs +1 -1
  15. package/dist/cjs/api/postTransactionStatus.cjs +1 -1
  16. package/dist/cjs/chunk-3UPZIINE.cjs +454 -0
  17. package/dist/cjs/chunk-4RLEZ5DV.cjs +55 -0
  18. package/dist/cjs/{chunk-KM2D7PJL.cjs → chunk-4TBONPD6.cjs} +33 -33
  19. package/dist/cjs/{chunk-WKYP2NMS.cjs → chunk-6W2OIU3O.cjs} +15 -15
  20. package/dist/cjs/{chunk-I2FDWZZJ.cjs → chunk-BFA7XKVT.cjs} +64 -765
  21. package/dist/cjs/chunk-BT6HQNBF.cjs +214 -0
  22. package/dist/cjs/{chunk-APJDSXWR.cjs → chunk-DAPPFYGA.cjs} +8 -8
  23. package/dist/cjs/{chunk-RC73RNNQ.cjs → chunk-GOQK63JP.cjs} +4 -4
  24. package/dist/cjs/chunk-KZOSEIWH.cjs +10 -0
  25. package/dist/cjs/{chunk-3M7YYWGL.cjs → chunk-MUJBB64F.cjs} +3 -7
  26. package/dist/cjs/{chunk-NWD4MAMT.cjs → chunk-ND7SYSAP.cjs} +2 -8
  27. package/dist/cjs/{chunk-DWOE6N5S.cjs → chunk-NM4PISTQ.cjs} +189 -188
  28. package/dist/cjs/{chunk-PDTIT3JO.cjs → chunk-QWQVTCKP.cjs} +12 -12
  29. package/dist/cjs/{chunk-XCFPRLX3.cjs → chunk-U2NZCNKX.cjs} +153 -153
  30. package/dist/cjs/{chunk-DLT6Q6RB.cjs → chunk-WOSAJSJB.cjs} +163 -149
  31. package/dist/cjs/index.cjs +83 -79
  32. package/dist/cjs/public-functions/executeMultipleRoutes.cjs +11 -21
  33. package/dist/cjs/public-functions/executeRoute.cjs +11 -21
  34. package/dist/cjs/public-functions/getCosmosGasAmountForMessage.cjs +5 -5
  35. package/dist/cjs/public-functions/getEvmGasAmountForMessage.cjs +1 -1
  36. package/dist/cjs/public-functions/getFeeInfoForChain.cjs +4 -3
  37. package/dist/cjs/public-functions/getRecommendedGasPrice.cjs +6 -5
  38. package/dist/cjs/public-functions/getRouteWithGasOnReceive.cjs +17 -13
  39. package/dist/cjs/public-functions/getSigningStargateClient.cjs +4 -4
  40. package/dist/cjs/public-functions/setApiOptions.cjs +1 -1
  41. package/dist/cjs/public-functions/setClientOptions.cjs +5 -5
  42. package/dist/cjs/public-functions/subscribeToRouteStatus.cjs +1 -1
  43. package/dist/cjs/public-functions/validateCosmosGasBalance.cjs +8 -8
  44. package/dist/cjs/public-functions/waitForTransaction.cjs +1 -1
  45. package/dist/esm/api/getAssets.d.ts +1 -1
  46. package/dist/esm/api/getAssets.js +1 -1
  47. package/dist/esm/api/getAssetsBetweenChains.d.ts +1 -1
  48. package/dist/esm/api/getAssetsBetweenChains.js +1 -1
  49. package/dist/esm/api/getBridges.d.ts +1 -1
  50. package/dist/esm/api/getBridges.js +1 -1
  51. package/dist/esm/api/getChains.d.ts +1 -1
  52. package/dist/esm/api/getChains.js +1 -1
  53. package/dist/esm/api/getVenues.js +1 -1
  54. package/dist/esm/api/postAssetsFromSource.d.ts +1 -1
  55. package/dist/esm/api/postAssetsFromSource.js +1 -1
  56. package/dist/esm/api/postBalances.d.ts +2 -2
  57. package/dist/esm/api/postBalances.js +1 -1
  58. package/dist/esm/api/postIbcOriginAssets.js +1 -1
  59. package/dist/esm/api/postMessages.d.ts +2 -2
  60. package/dist/esm/api/postMessages.js +1 -1
  61. package/dist/esm/api/postMessagesDirect.d.ts +1 -1
  62. package/dist/esm/api/postMessagesDirect.js +1 -1
  63. package/dist/esm/api/postRecommendAssets.d.ts +1 -1
  64. package/dist/esm/api/postRecommendAssets.js +1 -1
  65. package/dist/esm/api/postRoute.d.ts +2 -2
  66. package/dist/esm/api/postRoute.js +1 -1
  67. package/dist/esm/api/postSubmitTransaction.d.ts +2 -2
  68. package/dist/esm/api/postSubmitTransaction.js +1 -1
  69. package/dist/esm/api/postTrackTransaction.d.ts +2 -2
  70. package/dist/esm/api/postTrackTransaction.js +1 -1
  71. package/dist/esm/api/postTransactionStatus.d.ts +2 -2
  72. package/dist/esm/api/postTransactionStatus.js +1 -1
  73. package/dist/esm/{callbacks-C-KUJnDv.d.ts → callbacks-CJ_p70xa.d.ts} +3 -3
  74. package/dist/esm/chunk-426BGQ4K.js +431 -0
  75. package/dist/esm/chunk-BBEFB277.js +53 -0
  76. package/dist/esm/{chunk-UIDIKXMB.js → chunk-F2LQB2DP.js} +6 -5
  77. package/dist/esm/{chunk-KNXMSLOB.js → chunk-GLH7IRLX.js} +2 -2
  78. package/dist/esm/{chunk-2PWROHHX.js → chunk-GLM7QWYT.js} +1 -1
  79. package/dist/esm/{chunk-SFWTQBQT.js → chunk-H2TTIB5K.js} +3 -3
  80. package/dist/esm/{chunk-QL423UEF.js → chunk-HP5EMWC6.js} +163 -149
  81. package/dist/esm/{chunk-V7VKYD4J.js → chunk-HZVXNDMH.js} +2 -2
  82. package/dist/esm/{chunk-JYYCFKB4.js → chunk-KS764SOZ.js} +15 -15
  83. package/dist/esm/{chunk-IKWC55JU.js → chunk-L233BZ4I.js} +59 -738
  84. package/dist/esm/{chunk-6M7N6EAO.js → chunk-LBS7KX5I.js} +12 -12
  85. package/dist/esm/{chunk-QRKO56DH.js → chunk-QYIZGNWZ.js} +2 -7
  86. package/dist/esm/{chunk-QO2CYYF5.js → chunk-RTDD7HZ3.js} +4 -7
  87. package/dist/esm/chunk-SA4GETWP.js +212 -0
  88. package/dist/esm/chunk-SWYON2RG.js +7 -0
  89. package/dist/esm/{client-types-CGMuZ3zo.d.ts → client-types-uXKJQRqe.d.ts} +1 -1
  90. package/dist/esm/{generateApi-D_-Gso-x.d.ts → generateApi-BMFrG4FZ.d.ts} +1 -1
  91. package/dist/esm/index.d.ts +260 -259
  92. package/dist/esm/index.js +16 -12
  93. package/dist/esm/public-functions/executeMultipleRoutes.d.ts +4 -4
  94. package/dist/esm/public-functions/executeMultipleRoutes.js +10 -20
  95. package/dist/esm/public-functions/executeRoute.d.ts +4 -4
  96. package/dist/esm/public-functions/executeRoute.js +10 -20
  97. package/dist/esm/public-functions/getCosmosGasAmountForMessage.d.ts +1 -1
  98. package/dist/esm/public-functions/getCosmosGasAmountForMessage.js +3 -3
  99. package/dist/esm/public-functions/getEvmGasAmountForMessage.d.ts +3 -3
  100. package/dist/esm/public-functions/getEvmGasAmountForMessage.js +1 -1
  101. package/dist/esm/public-functions/getFeeInfoForChain.d.ts +1 -1
  102. package/dist/esm/public-functions/getFeeInfoForChain.js +3 -2
  103. package/dist/esm/public-functions/getRecommendedGasPrice.js +5 -4
  104. package/dist/esm/public-functions/getRouteWithGasOnReceive.d.ts +1 -1
  105. package/dist/esm/public-functions/getRouteWithGasOnReceive.js +16 -12
  106. package/dist/esm/public-functions/getSigningStargateClient.js +3 -3
  107. package/dist/esm/public-functions/setApiOptions.d.ts +1 -1
  108. package/dist/esm/public-functions/setApiOptions.js +1 -1
  109. package/dist/esm/public-functions/setClientOptions.d.ts +4 -4
  110. package/dist/esm/public-functions/setClientOptions.js +4 -4
  111. package/dist/esm/public-functions/subscribeToRouteStatus.d.ts +4 -4
  112. package/dist/esm/public-functions/subscribeToRouteStatus.js +1 -1
  113. package/dist/esm/public-functions/validateCosmosGasBalance.d.ts +4 -4
  114. package/dist/esm/public-functions/validateCosmosGasBalance.js +7 -7
  115. package/dist/esm/public-functions/waitForTransaction.d.ts +4 -4
  116. package/dist/esm/public-functions/waitForTransaction.js +1 -1
  117. package/dist/esm/{setClientOptions-C8g92xTm.d.ts → setClientOptions-D1qgaOqC.d.ts} +3 -3
  118. package/dist/esm/{swaggerTypes-B_jKfpvz.d.ts → swaggerTypes-Cop47I0X.d.ts} +257 -255
  119. package/package.json +5 -5
@@ -1,18 +1,15 @@
1
- import { updateRouteDetails, executeAndSubscribeToRouteStatus } from './chunk-5IXH2QPF.js';
2
- import { validateCosmosGasBalance } from './chunk-SFWTQBQT.js';
3
- import { getEncodeObjectFromCosmosMessage } from './chunk-KNXMSLOB.js';
1
+ import { updateRouteDetails } from './chunk-5IXH2QPF.js';
2
+ import { validateCosmosGasBalance } from './chunk-H2TTIB5K.js';
3
+ import { getEncodeObjectFromCosmosMessage } from './chunk-GLH7IRLX.js';
4
4
  import { getEVMGasAmountForMessage } from './chunk-GV2QOWB4.js';
5
- import { bignumber_default, BigNumber } from './chunk-JYYCFKB4.js';
6
- import { GAS_STATION_CHAIN_IDS } from './chunk-QRKO56DH.js';
7
- import { getRpcEndpointForChain, accountParser, getSigningStargateClient } from './chunk-2PWROHHX.js';
8
- import { chains as chains$1, findFirstWorkingEndpoint, getIsEthermint, getIsInitia } from './chunk-O4J7DHZA.js';
9
- import { messages } from './chunk-IHSSWY3M.js';
10
- import { route } from './chunk-VWOMKMH2.js';
5
+ import { BigNumber } from './chunk-KS764SOZ.js';
6
+ import { GAS_STATION_CHAIN_IDS } from './chunk-SWYON2RG.js';
7
+ import { getRpcEndpointForChain, accountParser, getSigningStargateClient } from './chunk-GLM7QWYT.js';
8
+ import { chains, findFirstWorkingEndpoint, getIsEthermint, getIsInitia } from './chunk-O4J7DHZA.js';
11
9
  import { submitTransaction } from './chunk-HDW6XFWX.js';
12
- import { trackTransaction } from './chunk-AUNRER4I.js';
13
10
  import { venues } from './chunk-FNTPI2AV.js';
14
- import { ClientState, chains, assets, balances } from './chunk-MYGJGC62.js';
15
- import { ApiState, toCamel, wait } from './chunk-VGCTTJO7.js';
11
+ import { ClientState, balances } from './chunk-MYGJGC62.js';
12
+ import { wait, toCamel } from './chunk-VGCTTJO7.js';
16
13
  import { StargateClient } from '@cosmjs/stargate';
17
14
  import { TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx.js';
18
15
  import { isOfflineDirectSigner, makeAuthInfoBytes, makeSignDoc, encodePubkey } from '@cosmjs/proto-signing';
@@ -22,154 +19,9 @@ import { PubKey } from 'cosmjs-types/cosmos/crypto/secp256k1/keys.js';
22
19
  import { Any } from 'cosmjs-types/google/protobuf/any.js';
23
20
  import { Int53 } from '@cosmjs/math';
24
21
  import { SignMode } from 'cosmjs-types/cosmos/tx/signing/v1beta1/signing.js';
25
- import { defineChain, createPublicClient, fallback, http, isAddress, formatUnits, publicActions, maxUint256 } from 'viem';
26
- import { PublicKey, Transaction, Connection, LAMPORTS_PER_SOL } from '@solana/web3.js';
22
+ import { isAddress, publicActions, maxUint256, formatUnits } from 'viem';
23
+ import { Transaction, PublicKey, Connection, LAMPORTS_PER_SOL } from '@solana/web3.js';
27
24
  import { bech32m, bech32 } from 'bech32';
28
- 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';
29
-
30
- // src/types/swaggerTypesJson.ts
31
- var AutopilotActionJson = /* @__PURE__ */ ((AutopilotActionJson2) => {
32
- AutopilotActionJson2["LIQUID_STAKE"] = "LIQUID_STAKE";
33
- AutopilotActionJson2["CLAIM"] = "CLAIM";
34
- return AutopilotActionJson2;
35
- })(AutopilotActionJson || {});
36
- var AxelarTransferStateJson = /* @__PURE__ */ ((AxelarTransferStateJson2) => {
37
- AxelarTransferStateJson2["AXELAR_TRANSFER_UNKNOWN"] = "AXELAR_TRANSFER_UNKNOWN";
38
- AxelarTransferStateJson2["AXELAR_TRANSFER_PENDING_CONFIRMATION"] = "AXELAR_TRANSFER_PENDING_CONFIRMATION";
39
- AxelarTransferStateJson2["AXELAR_TRANSFER_PENDING_RECEIPT"] = "AXELAR_TRANSFER_PENDING_RECEIPT";
40
- AxelarTransferStateJson2["AXELAR_TRANSFER_SUCCESS"] = "AXELAR_TRANSFER_SUCCESS";
41
- AxelarTransferStateJson2["AXELAR_TRANSFER_FAILURE"] = "AXELAR_TRANSFER_FAILURE";
42
- return AxelarTransferStateJson2;
43
- })(AxelarTransferStateJson || {});
44
- var AxelarTransferTypeJson = /* @__PURE__ */ ((AxelarTransferTypeJson2) => {
45
- AxelarTransferTypeJson2["AXELAR_TRANSFER_CONTRACT_CALL_WITH_TOKEN"] = "AXELAR_TRANSFER_CONTRACT_CALL_WITH_TOKEN";
46
- AxelarTransferTypeJson2["AXELAR_TRANSFER_SEND_TOKEN"] = "AXELAR_TRANSFER_SEND_TOKEN";
47
- return AxelarTransferTypeJson2;
48
- })(AxelarTransferTypeJson || {});
49
- var CCTPTransferStateJson = /* @__PURE__ */ ((CCTPTransferStateJson2) => {
50
- CCTPTransferStateJson2["CCTP_TRANSFER_UNKNOWN"] = "CCTP_TRANSFER_UNKNOWN";
51
- CCTPTransferStateJson2["CCTP_TRANSFER_SENT"] = "CCTP_TRANSFER_SENT";
52
- CCTPTransferStateJson2["CCTP_TRANSFER_PENDING_CONFIRMATION"] = "CCTP_TRANSFER_PENDING_CONFIRMATION";
53
- CCTPTransferStateJson2["CCTP_TRANSFER_CONFIRMED"] = "CCTP_TRANSFER_CONFIRMED";
54
- CCTPTransferStateJson2["CCTP_TRANSFER_RECEIVED"] = "CCTP_TRANSFER_RECEIVED";
55
- return CCTPTransferStateJson2;
56
- })(CCTPTransferStateJson || {});
57
- var StargateTransferStateJson = /* @__PURE__ */ ((StargateTransferStateJson2) => {
58
- StargateTransferStateJson2["STARGATE_TRANSFER_UNKNOWN"] = "STARGATE_TRANSFER_UNKNOWN";
59
- StargateTransferStateJson2["STARGATE_TRANSFER_SENT"] = "STARGATE_TRANSFER_SENT";
60
- StargateTransferStateJson2["STARGATE_TRANSFER_PENDING_CONFIRMATION"] = "STARGATE_TRANSFER_PENDING_CONFIRMATION";
61
- StargateTransferStateJson2["STARGATE_TRANSFER_CONFIRMED"] = "STARGATE_TRANSFER_CONFIRMED";
62
- StargateTransferStateJson2["STARGATE_TRANSFER_RECEIVED"] = "STARGATE_TRANSFER_RECEIVED";
63
- StargateTransferStateJson2["STARGATE_TRANSFER_FAILED"] = "STARGATE_TRANSFER_FAILED";
64
- return StargateTransferStateJson2;
65
- })(StargateTransferStateJson || {});
66
- var GoFastTransferStateJson = /* @__PURE__ */ ((GoFastTransferStateJson2) => {
67
- GoFastTransferStateJson2["GO_FAST_TRANSFER_UNKNOWN"] = "GO_FAST_TRANSFER_UNKNOWN";
68
- GoFastTransferStateJson2["GO_FAST_TRANSFER_SENT"] = "GO_FAST_TRANSFER_SENT";
69
- GoFastTransferStateJson2["GO_FAST_POST_ACTION_FAILED"] = "GO_FAST_POST_ACTION_FAILED";
70
- GoFastTransferStateJson2["GO_FAST_TRANSFER_TIMEOUT"] = "GO_FAST_TRANSFER_TIMEOUT";
71
- GoFastTransferStateJson2["GO_FAST_TRANSFER_FILLED"] = "GO_FAST_TRANSFER_FILLED";
72
- GoFastTransferStateJson2["GO_FAST_TRANSFER_REFUNDED"] = "GO_FAST_TRANSFER_REFUNDED";
73
- return GoFastTransferStateJson2;
74
- })(GoFastTransferStateJson || {});
75
- var BridgeTypeJson = /* @__PURE__ */ ((BridgeTypeJson2) => {
76
- BridgeTypeJson2["IBC"] = "IBC";
77
- BridgeTypeJson2["AXELAR"] = "AXELAR";
78
- BridgeTypeJson2["CCTP"] = "CCTP";
79
- BridgeTypeJson2["HYPERLANE"] = "HYPERLANE";
80
- BridgeTypeJson2["OPINIT"] = "OPINIT";
81
- BridgeTypeJson2["GO_FAST"] = "GO_FAST";
82
- BridgeTypeJson2["STARGATE"] = "STARGATE";
83
- BridgeTypeJson2["LAYER_ZERO"] = "LAYER_ZERO";
84
- BridgeTypeJson2["EUREKA"] = "EUREKA";
85
- return BridgeTypeJson2;
86
- })(BridgeTypeJson || {});
87
- var ChainTypeJson = /* @__PURE__ */ ((ChainTypeJson2) => {
88
- ChainTypeJson2["Cosmos"] = "cosmos";
89
- ChainTypeJson2["Evm"] = "evm";
90
- ChainTypeJson2["Svm"] = "svm";
91
- return ChainTypeJson2;
92
- })(ChainTypeJson || {});
93
- var ContractCallWithTokenErrorTypeJson = /* @__PURE__ */ ((ContractCallWithTokenErrorTypeJson2) => {
94
- ContractCallWithTokenErrorTypeJson2["CONTRACT_CALL_WITH_TOKEN_EXECUTION_ERROR"] = "CONTRACT_CALL_WITH_TOKEN_EXECUTION_ERROR";
95
- return ContractCallWithTokenErrorTypeJson2;
96
- })(ContractCallWithTokenErrorTypeJson || {});
97
- var HyperlaneTransferStateJson = /* @__PURE__ */ ((HyperlaneTransferStateJson2) => {
98
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_UNKNOWN"] = "HYPERLANE_TRANSFER_UNKNOWN";
99
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_SENT"] = "HYPERLANE_TRANSFER_SENT";
100
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_FAILED"] = "HYPERLANE_TRANSFER_FAILED";
101
- HyperlaneTransferStateJson2["HYPERLANE_TRANSFER_RECEIVED"] = "HYPERLANE_TRANSFER_RECEIVED";
102
- return HyperlaneTransferStateJson2;
103
- })(HyperlaneTransferStateJson || {});
104
- var PacketErrorTypeJson = /* @__PURE__ */ ((PacketErrorTypeJson2) => {
105
- PacketErrorTypeJson2["PACKET_ERROR_UNKNOWN"] = "PACKET_ERROR_UNKNOWN";
106
- PacketErrorTypeJson2["PACKET_ERROR_ACKNOWLEDGEMENT"] = "PACKET_ERROR_ACKNOWLEDGEMENT";
107
- PacketErrorTypeJson2["PACKET_ERROR_TIMEOUT"] = "PACKET_ERROR_TIMEOUT";
108
- return PacketErrorTypeJson2;
109
- })(PacketErrorTypeJson || {});
110
- var ReasonJson = /* @__PURE__ */ ((ReasonJson2) => {
111
- ReasonJson2["UNKNOWN"] = "UNKNOWN";
112
- ReasonJson2["MOST_LIQUID"] = "MOST_LIQUID";
113
- ReasonJson2["BASE_TOKEN"] = "BASE_TOKEN";
114
- ReasonJson2["DIRECT"] = "DIRECT";
115
- return ReasonJson2;
116
- })(ReasonJson || {});
117
- var RoutePriceWarningTypeJson = /* @__PURE__ */ ((RoutePriceWarningTypeJson2) => {
118
- RoutePriceWarningTypeJson2["LOW_INFO_WARNING"] = "LOW_INFO_WARNING";
119
- RoutePriceWarningTypeJson2["BAD_PRICE_WARNING"] = "BAD_PRICE_WARNING";
120
- return RoutePriceWarningTypeJson2;
121
- })(RoutePriceWarningTypeJson || {});
122
- var SendTokenErrorTypeJson = /* @__PURE__ */ ((SendTokenErrorTypeJson2) => {
123
- SendTokenErrorTypeJson2["SEND_TOKEN_EXECUTION_ERROR"] = "SEND_TOKEN_EXECUTION_ERROR";
124
- return SendTokenErrorTypeJson2;
125
- })(SendTokenErrorTypeJson || {});
126
- var StatusErrorTypeJson = /* @__PURE__ */ ((StatusErrorTypeJson2) => {
127
- StatusErrorTypeJson2["STATUS_ERROR_UNKNOWN"] = "STATUS_ERROR_UNKNOWN";
128
- StatusErrorTypeJson2["STATUS_ERROR_TRANSACTION_EXECUTION"] = "STATUS_ERROR_TRANSACTION_EXECUTION";
129
- StatusErrorTypeJson2["STATUS_ERROR_INDEXING"] = "STATUS_ERROR_INDEXING";
130
- StatusErrorTypeJson2["STATUS_ERROR_TRANSFER"] = "STATUS_ERROR_TRANSFER";
131
- return StatusErrorTypeJson2;
132
- })(StatusErrorTypeJson || {});
133
- var TransactionStateJson = /* @__PURE__ */ ((TransactionStateJson2) => {
134
- TransactionStateJson2["STATE_SUBMITTED"] = "STATE_SUBMITTED";
135
- TransactionStateJson2["STATE_PENDING"] = "STATE_PENDING";
136
- TransactionStateJson2["STATE_ABANDONED"] = "STATE_ABANDONED";
137
- TransactionStateJson2["STATE_COMPLETED_SUCCESS"] = "STATE_COMPLETED_SUCCESS";
138
- TransactionStateJson2["STATE_COMPLETED_ERROR"] = "STATE_COMPLETED_ERROR";
139
- TransactionStateJson2["STATE_PENDING_ERROR"] = "STATE_PENDING_ERROR";
140
- return TransactionStateJson2;
141
- })(TransactionStateJson || {});
142
- var OPInitTransferStateJson = /* @__PURE__ */ ((OPInitTransferStateJson2) => {
143
- OPInitTransferStateJson2["OPINIT_TRANSFER_UNKNOWN"] = "OPINIT_TRANSFER_UNKNOWN";
144
- OPInitTransferStateJson2["OPINIT_TRANSFER_SENT"] = "OPINIT_TRANSFER_SENT";
145
- OPInitTransferStateJson2["OPINIT_TRANSFER_RECEIVED"] = "OPINIT_TRANSFER_RECEIVED";
146
- return OPInitTransferStateJson2;
147
- })(OPInitTransferStateJson || {});
148
- var LayerZeroTransferStateJson = /* @__PURE__ */ ((LayerZeroTransferStateJson2) => {
149
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_UNKNOWN"] = "LAYER_ZERO_TRANSFER_UNKNOWN";
150
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_SENT"] = "LAYER_ZERO_TRANSFER_SENT";
151
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_WAITING_FOR_COMPOSE"] = "LAYER_ZERO_TRANSFER_WAITING_FOR_COMPOSE";
152
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_RECEIVED"] = "LAYER_ZERO_TRANSFER_RECEIVED";
153
- LayerZeroTransferStateJson2["LAYER_ZERO_TRANSFER_FAILED"] = "LAYER_ZERO_TRANSFER_FAILED";
154
- return LayerZeroTransferStateJson2;
155
- })(LayerZeroTransferStateJson || {});
156
- var TransferStateJson = /* @__PURE__ */ ((TransferStateJson2) => {
157
- TransferStateJson2["TRANSFER_UNKNOWN"] = "TRANSFER_UNKNOWN";
158
- TransferStateJson2["TRANSFER_PENDING"] = "TRANSFER_PENDING";
159
- TransferStateJson2["TRANSFER_RECEIVED"] = "TRANSFER_RECEIVED";
160
- TransferStateJson2["TRANSFER_SUCCESS"] = "TRANSFER_SUCCESS";
161
- TransferStateJson2["TRANSFER_FAILURE"] = "TRANSFER_FAILURE";
162
- return TransferStateJson2;
163
- })(TransferStateJson || {});
164
- var FeeTypeJson = /* @__PURE__ */ ((FeeTypeJson2) => {
165
- FeeTypeJson2["SMART_RELAY"] = "SMART_RELAY";
166
- return FeeTypeJson2;
167
- })(FeeTypeJson || {});
168
- var FeeBehaviorJson = /* @__PURE__ */ ((FeeBehaviorJson2) => {
169
- FeeBehaviorJson2["FEE_BEHAVIOR_DEDUCTED"] = "FEE_BEHAVIOR_DEDUCTED";
170
- FeeBehaviorJson2["FEE_BEHAVIOR_ADDITIONAL"] = "FEE_BEHAVIOR_ADDITIONAL";
171
- return FeeBehaviorJson2;
172
- })(FeeBehaviorJson || {});
173
25
 
174
26
  // src/private-functions/getRestEndpointForChain.ts
175
27
  var getRestEndpointForChain = async (chainId) => {
@@ -182,7 +34,7 @@ var getRestEndpointForChain = async (chainId) => {
182
34
  return endpointOptions.rest;
183
35
  }
184
36
  }
185
- const chain = chains$1().find((chain2) => chain2.chainId === chainId);
37
+ const chain = chains().find((chain2) => chain2.chainId === chainId);
186
38
  if (!chain) {
187
39
  throw new Error(
188
40
  `getRestEndpointForChain error: failed to find chain id '${chainId}' in registry`
@@ -319,11 +171,11 @@ var signCosmosMessageDirect = async (options) => {
319
171
  if (!accountFromSigner) {
320
172
  throw new Error("signCosmosMessageDirect error: failed to retrieve account from signer");
321
173
  }
322
- const messages2 = cosmosMsgs.map((cosmosMsg) => getEncodeObjectFromCosmosMessage(cosmosMsg));
174
+ const messages = cosmosMsgs.map((cosmosMsg) => getEncodeObjectFromCosmosMessage(cosmosMsg));
323
175
  const txBodyEncodeObject = {
324
176
  typeUrl: "/cosmos.tx.v1beta1.TxBody",
325
177
  value: {
326
- messages: messages2
178
+ messages
327
179
  }
328
180
  };
329
181
  const txBodyBytes = ClientState.registry.encode(txBodyEncodeObject);
@@ -362,11 +214,11 @@ var signCosmosMessageAmino = async (options) => {
362
214
  "signCosmosMessageAmino: failed to retrieve account from signer"
363
215
  );
364
216
  }
365
- const messages2 = cosmosMsgs.map(
217
+ const messages = cosmosMsgs.map(
366
218
  (cosmosMsg) => getEncodeObjectFromCosmosMessage(cosmosMsg)
367
219
  );
368
220
  const signMode = SignMode.SIGN_MODE_LEGACY_AMINO_JSON;
369
- const msgs = messages2.map((msg) => ClientState.aminoTypes.toAmino(msg));
221
+ const msgs = messages.map((msg) => ClientState.aminoTypes.toAmino(msg));
370
222
  const signDoc = makeSignDoc$1(
371
223
  msgs,
372
224
  fee,
@@ -380,7 +232,7 @@ var signCosmosMessageAmino = async (options) => {
380
232
  messages: signed.msgs.map((msg) => ClientState.aminoTypes.fromAmino(msg)),
381
233
  memo: signed.memo
382
234
  };
383
- signedTxBody.messages[0].value.memo = messages2[0].value.memo;
235
+ signedTxBody.messages[0].value.memo = messages[0].value.memo;
384
236
  const signedTxBodyEncodeObject = {
385
237
  typeUrl: "/cosmos.tx.v1beta1.TxBody",
386
238
  value: signedTxBody
@@ -418,7 +270,7 @@ var signCosmosTransaction = async ({
418
270
  throw new Error("executeCosmosTransaction error: tx is undefined");
419
271
  }
420
272
  const chainId = tx.cosmosTx?.chainId;
421
- const messages2 = tx.cosmosTx?.msgs;
273
+ const messages = tx.cosmosTx?.msgs;
422
274
  const currentUserAddress = userAddresses.find((x) => x.chainId === tx.cosmosTx?.chainId)?.address;
423
275
  const gasArray = ClientState.validateGasResults;
424
276
  const gas = gasArray?.find((gas2) => gas2?.error !== null && gas2?.error !== void 0);
@@ -432,7 +284,7 @@ var signCosmosTransaction = async ({
432
284
  if (chainId === void 0) {
433
285
  throw new Error("no chainId found for tx");
434
286
  }
435
- if (messages2 === void 0) {
287
+ if (messages === void 0) {
436
288
  throw new Error("no messages found for tx");
437
289
  }
438
290
  const { signer } = await getSigningStargateClient({
@@ -461,7 +313,7 @@ var signCosmosTransaction = async ({
461
313
  const commonRawTxBody = {
462
314
  signerAddress: currentUserAddress,
463
315
  chainId,
464
- cosmosMsgs: messages2,
316
+ cosmosMsgs: messages,
465
317
  fee,
466
318
  signerData: {
467
319
  accountNumber,
@@ -1124,8 +976,7 @@ var validateEvmGasBalance = async ({
1124
976
  };
1125
977
  var validateSvmGasBalance = async ({
1126
978
  tx,
1127
- simulate,
1128
- feePayerAddress
979
+ simulate
1129
980
  }) => {
1130
981
  if (!tx) throw new Error("Transaction is required");
1131
982
  if (simulate === false) {
@@ -1140,52 +991,55 @@ var validateSvmGasBalance = async ({
1140
991
  const endpoint = await getRpcEndpointForChain(tx.chainId ?? "");
1141
992
  const connection = new Connection(endpoint);
1142
993
  if (!connection) throw new Error(`Failed to connect to ${tx.chainId}`);
1143
- const gasAmount = await getSVMGasAmountForMessage(connection, tx);
1144
- const skipBalances = await balances({
1145
- chains: {
1146
- solana: {
1147
- address: feePayerAddress ?? tx?.signerAddress,
1148
- denoms: ["solana-native"]
1149
- }
1150
- }
1151
- });
1152
- const gasBalance = skipBalances?.chains?.["solana"]?.denoms?.["solana-native"];
1153
- if (!gasBalance) {
994
+ if (!tx.tx) {
995
+ throw new Error("Transaction is required");
996
+ }
997
+ const txBuffer = Buffer.from(tx.tx, "base64");
998
+ let transaction;
999
+ try {
1000
+ transaction = Transaction.from(txBuffer);
1001
+ } catch (decodeError) {
1154
1002
  return {
1155
1003
  success: false,
1156
- error: `Insufficient balance for gas on Solana. Need ${gasAmount / LAMPORTS_PER_SOL} SOL.`,
1004
+ error: { decodeError: decodeError.message },
1157
1005
  asset: null,
1158
1006
  fee: null
1159
1007
  };
1160
1008
  }
1161
- if (bignumber_default(gasBalance.amount ?? "").lt(gasAmount)) {
1009
+ const simulation = await connection.simulateTransaction(transaction);
1010
+ if (simulation.value.err) {
1011
+ const logs = simulation.value.logs ?? [];
1012
+ const shortfall = getSolShortfall(logs);
1013
+ const insufficientLamports = logs.some((log) => log.includes("insufficient lamports")) && shortfall !== null;
1014
+ const insufficientFundsForRent = Object.keys(simulation.value.err).includes(
1015
+ "InsufficientFundsForRent"
1016
+ );
1017
+ const errMsg = insufficientLamports ? `Insufficient balance for gas on Solana. You need ${shortfall.toFixed(6)} SOL to proceed.` : insufficientFundsForRent ? "Insufficient funds for rent on Solana. You need to fund your account." : "Simulation failed";
1162
1018
  return {
1163
1019
  success: false,
1164
- error: `Insufficient balance for gas on Solana. Need ${gasAmount / LAMPORTS_PER_SOL} SOL but only have ${gasBalance.formattedAmount} SOL.`,
1020
+ logs,
1021
+ error: errMsg,
1165
1022
  asset: null,
1166
1023
  fee: null
1167
1024
  };
1168
1025
  }
1169
1026
  return {
1170
1027
  success: true,
1028
+ logs: simulation.value.logs ?? [],
1171
1029
  error: null,
1172
1030
  asset: null,
1173
1031
  fee: null
1174
1032
  };
1175
1033
  };
1176
- async function getSVMGasAmountForMessage(connection, tx) {
1177
- const _tx = Buffer.from(tx?.tx ?? "", "base64");
1178
- const transaction = Transaction.from(_tx);
1179
- const gas = await connection.getFeeForMessage(
1180
- transaction.compileMessage(),
1181
- "confirmed"
1182
- );
1183
- if (!gas.value) {
1184
- throw new Error(
1185
- `estimateGasForSVMTx error: unable to get gas for transaction on ${tx?.chainId}`
1186
- );
1187
- }
1188
- return gas.value;
1034
+ function getSolShortfall(logs) {
1035
+ const line = logs.find((l) => l.includes("insufficient lamports"));
1036
+ if (!line) return null;
1037
+ const m = line.match(/insufficient lamports (\d+), need (\d+)/);
1038
+ if (!m) return null;
1039
+ const have = parseInt(m[1] ?? "0", 10);
1040
+ const need = parseInt(m[2] ?? "0", 10);
1041
+ const shortfallLamports = need - have;
1042
+ return shortfallLamports / LAMPORTS_PER_SOL;
1189
1043
  }
1190
1044
 
1191
1045
  // src/private-functions/validateGasBalances.ts
@@ -1287,8 +1141,7 @@ var validateGasBalances = async ({
1287
1141
  try {
1288
1142
  const res = await validateSvmGasBalance({
1289
1143
  tx: tx.svmTx,
1290
- simulate,
1291
- feePayerAddress: options.svmFeePayer?.address
1144
+ simulate
1292
1145
  });
1293
1146
  return res;
1294
1147
  } catch (e) {
@@ -1556,9 +1409,9 @@ var getDefaultFallbackGasAmount = async (chainId, chainType) => {
1556
1409
  return defaultGasAmount;
1557
1410
  };
1558
1411
  var validateUserAddresses = async (userAddresses) => {
1559
- const chains3 = await ClientState.getSkipChains();
1412
+ const chains2 = await ClientState.getSkipChains();
1560
1413
  const validations = userAddresses.map((userAddress) => {
1561
- const chain = chains3.find((chain2) => chain2.chainId === userAddress.chainId);
1414
+ const chain = chains2.find((chain2) => chain2.chainId === userAddress.chainId);
1562
1415
  switch (chain?.chainType) {
1563
1416
  case "cosmos" /* Cosmos */:
1564
1417
  try {
@@ -1596,19 +1449,19 @@ var validateUserAddresses = async (userAddresses) => {
1596
1449
  };
1597
1450
  var createValidAddressList = async ({
1598
1451
  userAddresses,
1599
- route: route2
1452
+ route
1600
1453
  }) => {
1601
1454
  let addressList = [];
1602
1455
  userAddresses.forEach((userAddress, index) => {
1603
- const requiredChainAddress = route2.requiredChainAddresses[index];
1456
+ const requiredChainAddress = route.requiredChainAddresses[index];
1604
1457
  if (requiredChainAddress === userAddress?.chainId) {
1605
1458
  addressList.push(userAddress.address);
1606
1459
  }
1607
1460
  });
1608
- if (addressList.length !== route2.requiredChainAddresses.length) {
1461
+ if (addressList.length !== route.requiredChainAddresses.length) {
1609
1462
  addressList = userAddresses.map((x) => x.address);
1610
1463
  }
1611
- const validLength = addressList.length === route2.requiredChainAddresses.length || addressList.length === route2.chainIds?.length;
1464
+ const validLength = addressList.length === route.requiredChainAddresses.length || addressList.length === route.chainIds?.length;
1612
1465
  if (!validLength) {
1613
1466
  throw new Error("createValidAddressList error: invalid address list");
1614
1467
  }
@@ -1619,536 +1472,4 @@ var createValidAddressList = async ({
1619
1472
  return addressList;
1620
1473
  };
1621
1474
 
1622
- // src/public-functions/executeRoute.ts
1623
- var executeRoute = async (options) => {
1624
- const { route: route2, userAddresses, appendCosmosMsgs, timeoutSeconds } = options;
1625
- const { id: routeId } = updateRouteDetails({
1626
- status: "unconfirmed",
1627
- options
1628
- });
1629
- const addressList = await createValidAddressList({
1630
- userAddresses,
1631
- route: route2
1632
- });
1633
- const response = await messages({
1634
- timeoutSeconds,
1635
- amountIn: route2?.amountIn,
1636
- amountOut: route2.estimatedAmountOut || "0",
1637
- sourceAssetChainId: route2?.sourceAssetChainId,
1638
- sourceAssetDenom: route2?.sourceAssetDenom,
1639
- destAssetChainId: route2?.destAssetChainId,
1640
- destAssetDenom: route2?.destAssetDenom,
1641
- operations: route2?.operations,
1642
- addressList,
1643
- slippageTolerancePercent: options.slippageTolerancePercent || "1",
1644
- chainIdsToAffiliates: ApiState.chainIdsToAffiliates,
1645
- postRouteHandler: options.postRouteHandler,
1646
- feePayerAddress: options.svmFeePayer?.address
1647
- });
1648
- if (appendCosmosMsgs) {
1649
- Object.entries(appendCosmosMsgs).forEach(([chainId, msgs]) => {
1650
- const txIndex = response?.txs?.findIndex(
1651
- (tx2) => "cosmosTx" in tx2 && tx2.cosmosTx.chainId === chainId
1652
- );
1653
- if (txIndex === void 0 || txIndex === -1) return;
1654
- const tx = response?.txs?.[txIndex];
1655
- if (tx && "cosmosTx" in tx) {
1656
- tx.cosmosTx.msgs?.unshift(...msgs);
1657
- }
1658
- });
1659
- }
1660
- const { transactionDetails, executeTransaction } = await executeTransactions({ ...options, routeId, txs: response?.txs });
1661
- await executeAndSubscribeToRouteStatus({
1662
- transactionDetails,
1663
- executeTransaction,
1664
- routeId,
1665
- options
1666
- });
1667
- };
1668
-
1669
- // src/public-functions/executeMultipleRoutes.ts
1670
- var executeMultipleRoutes = async (options) => {
1671
- const {
1672
- route: route2,
1673
- userAddresses,
1674
- appendCosmosMsgs,
1675
- postRouteHandler,
1676
- slippageTolerancePercent,
1677
- ...restOptions
1678
- } = options;
1679
- const addressList = {};
1680
- for (const [routeKey, routeValue] of Object.entries(route2)) {
1681
- const _userAddresses = userAddresses[routeKey];
1682
- if (_userAddresses === void 0) {
1683
- throw new Error(
1684
- `executeMultipleRoutes error: no user addresses found for route: ${routeKey}`
1685
- );
1686
- }
1687
- const routeAddressList = await createValidAddressList({
1688
- userAddresses: _userAddresses,
1689
- route: routeValue
1690
- });
1691
- addressList[routeKey] = routeAddressList;
1692
- }
1693
- const msgsResponses = await Promise.all(
1694
- Object.entries(route2).map(async ([routeKey, routeValue]) => {
1695
- const routeAddressList = addressList[routeKey];
1696
- if (routeAddressList === void 0) {
1697
- throw new Error(
1698
- `executeMultipleRoutes error: address list not found for route ${routeKey}`
1699
- );
1700
- }
1701
- return await messages({
1702
- timeoutSeconds: options.timeoutSeconds,
1703
- amountIn: routeValue?.amountIn,
1704
- amountOut: routeValue.estimatedAmountOut || "0",
1705
- sourceAssetChainId: routeValue?.sourceAssetChainId,
1706
- sourceAssetDenom: routeValue?.sourceAssetDenom,
1707
- destAssetChainId: routeValue?.destAssetChainId,
1708
- destAssetDenom: routeValue?.destAssetDenom,
1709
- operations: routeValue?.operations,
1710
- addressList: routeAddressList,
1711
- slippageTolerancePercent: slippageTolerancePercent?.[routeKey] || "1",
1712
- chainIdsToAffiliates: ApiState.chainIdsToAffiliates,
1713
- postRouteHandler: postRouteHandler?.[routeKey],
1714
- feePayerAddress: options.svmFeePayer?.address
1715
- });
1716
- })
1717
- );
1718
- let msgsRecord = {};
1719
- msgsResponses.forEach((msg, index2) => {
1720
- const routeKey = Object.keys(route2)[index2];
1721
- if (!routeKey) {
1722
- throw new Error(
1723
- `executeMultipleRoutes error: route key not found for index ${index2}`
1724
- );
1725
- }
1726
- const addedCosmosMsgs = appendCosmosMsgs?.[routeKey];
1727
- if (addedCosmosMsgs) {
1728
- Object.entries(addedCosmosMsgs).forEach(([chainId, msgs]) => {
1729
- const txIndex = msg?.txs?.findIndex(
1730
- (tx2) => "cosmosTx" in tx2 && tx2.cosmosTx.chainId === chainId
1731
- );
1732
- if (txIndex === void 0 || txIndex === -1) return;
1733
- const tx = msg?.txs?.[txIndex];
1734
- if (tx && "cosmosTx" in tx) {
1735
- tx.cosmosTx.msgs?.unshift(...msgs);
1736
- }
1737
- });
1738
- }
1739
- msgsRecord[routeKey] = msg;
1740
- });
1741
- let transferIndexToRouteKey = void 0;
1742
- const cosmosTxIndex0Map = /* @__PURE__ */ new Map();
1743
- let transferIndex = 0;
1744
- for (const [routeKey, msgs] of Object.entries(msgsRecord)) {
1745
- const firstTx = msgs?.txs?.[0];
1746
- if (firstTx && "cosmosTx" in firstTx) {
1747
- const { chainId, msgs: firstTxMsgs } = firstTx.cosmosTx;
1748
- if (!transferIndexToRouteKey) {
1749
- transferIndexToRouteKey = {};
1750
- }
1751
- transferIndexToRouteKey[transferIndex] = routeKey;
1752
- transferIndex++;
1753
- if (!cosmosTxIndex0Map.has(chainId)) {
1754
- cosmosTxIndex0Map.set(chainId, {
1755
- routeKey,
1756
- firstCosmosTx: firstTx.cosmosTx
1757
- });
1758
- } else {
1759
- const existing = cosmosTxIndex0Map.get(chainId);
1760
- if (existing && firstTxMsgs) {
1761
- const modifyTarget = msgsRecord[existing.routeKey]?.txs?.[0];
1762
- if (modifyTarget && "cosmosTx" in modifyTarget) {
1763
- modifyTarget.cosmosTx.msgs?.push(...firstTxMsgs);
1764
- msgsRecord[routeKey]?.txs?.shift();
1765
- }
1766
- }
1767
- }
1768
- }
1769
- }
1770
- Object.entries(msgsRecord).forEach(([routeKey, msgs]) => {
1771
- if (msgs?.txs?.length === 0) {
1772
- delete msgsRecord[routeKey];
1773
- }
1774
- });
1775
- let mainRouteId = void 0;
1776
- let msgsRecordIndexToRouteId = {};
1777
- let index = 0;
1778
- const transactionDetailsList = {};
1779
- const executeTransactionList = {};
1780
- const mergedMainAndSecondaryRoutes = Object.entries(msgsRecord).length !== Object.entries(route2).length;
1781
- for (const [routeKey, msgsResponse] of Object.entries(msgsRecord)) {
1782
- const { id: routeId } = updateRouteDetails({
1783
- status: "unconfirmed",
1784
- options: {
1785
- route: route2[routeKey],
1786
- ...restOptions
1787
- },
1788
- mainRouteId,
1789
- transferIndexToRouteKey
1790
- });
1791
- msgsRecordIndexToRouteId[index] = routeId;
1792
- if (routeKey === "mainRoute") {
1793
- mainRouteId = routeId;
1794
- }
1795
- const { transactionDetails, executeTransaction: _executeTransaction } = await executeTransactions({
1796
- ...restOptions,
1797
- routeId,
1798
- txs: msgsResponse?.txs,
1799
- route: route2[routeKey],
1800
- userAddresses: userAddresses[routeKey],
1801
- isMultiRoutes: true
1802
- });
1803
- const executeTransaction = async (index2) => {
1804
- const txResult = await _executeTransaction(index2);
1805
- if (routeKey !== "mainRoute" || mergedMainAndSecondaryRoutes) {
1806
- const relatedRoutes = Object.entries(route2).filter(([key]) => key !== "mainRoute").map(([key, route3]) => ({ route: route3, routeKey: key, status: "pending" }));
1807
- updateRouteDetails({
1808
- options: {
1809
- route: route2[routeKey],
1810
- ...restOptions
1811
- },
1812
- routeId: mainRouteId,
1813
- transferIndexToRouteKey,
1814
- relatedRoutes
1815
- });
1816
- }
1817
- return txResult;
1818
- };
1819
- if (transactionDetails[0]?.chainType === "evm" /* Evm */) {
1820
- for (const [index2, transactionDetail] of transactionDetails.entries()) {
1821
- const txResult = await executeTransaction(index2);
1822
- if (txResult.txHash) {
1823
- const trackResponse = await trackTransaction({
1824
- chainId: transactionDetail.chainId,
1825
- txHash: txResult.txHash,
1826
- ...options.trackTxPollingOptions
1827
- });
1828
- await options?.onTransactionTracked?.({
1829
- txHash: txResult.txHash,
1830
- chainId: transactionDetail.chainId,
1831
- explorerLink: trackResponse.explorerLink
1832
- });
1833
- transactionDetail.txHash = txResult.txHash;
1834
- transactionDetail.explorerLink = trackResponse.explorerLink;
1835
- }
1836
- }
1837
- } else {
1838
- executeTransactionList[index] = executeTransaction;
1839
- }
1840
- transactionDetailsList[index] = transactionDetails;
1841
- index++;
1842
- }
1843
- await Promise.all(
1844
- Object.entries(msgsRecord).map(([routeKey, msgsResponse], index2) => {
1845
- return executeAndSubscribeToRouteStatus({
1846
- transactionDetails: transactionDetailsList[index2],
1847
- executeTransaction: executeTransactionList[index2],
1848
- routeId: msgsRecordIndexToRouteId[index2],
1849
- options: {
1850
- route: route2[routeKey],
1851
- userAddresses: userAddresses[routeKey],
1852
- ...restOptions,
1853
- onRouteStatusUpdated: (routeStatus) => {
1854
- const relatedRoutes = Object.entries(route2).filter(([key]) => key !== "mainRoute").map(([key, route3]) => ({ route: route3, routeKey: key, status: routeStatus.status }));
1855
- if (routeKey !== "mainRoute") {
1856
- updateRouteDetails({
1857
- options: {
1858
- route: route2[routeKey],
1859
- ...restOptions
1860
- },
1861
- routeId: mainRouteId,
1862
- transferIndexToRouteKey,
1863
- relatedRoutes
1864
- });
1865
- }
1866
- options.onRouteStatusUpdated?.(routeStatus);
1867
- }
1868
- }
1869
- });
1870
- })
1871
- );
1872
- };
1873
-
1874
- // src/utils/coingecko.ts
1875
- var getUsdPrice = async (coingeckoId) => {
1876
- try {
1877
- const response = await fetch(`https://api.coingecko.com/api/v3/simple/price?ids=${coingeckoId}&vs_currencies=usd`);
1878
- const data = await response.json();
1879
- return data?.[coingeckoId]?.usd;
1880
- } catch (error) {
1881
- return void 0;
1882
- }
1883
- };
1884
-
1885
- // src/utils/numbers.ts
1886
- var convertHumanReadableAmountToCryptoAmount = (humanReadableAmount, decimals) => {
1887
- const cryptoAmount = new bignumber_default(humanReadableAmount).shiftedBy(decimals);
1888
- return cryptoAmount.toFixed(0);
1889
- };
1890
- var formaTestnet = defineChain({
1891
- id: 984123,
1892
- name: "Forma Testnet",
1893
- nativeCurrency: {
1894
- name: "TIA",
1895
- symbol: "TIA",
1896
- decimals: 18
1897
- },
1898
- rpcUrls: {
1899
- default: {
1900
- http: ["https://rpc.sketchpad-1.forma.art"]
1901
- }
1902
- },
1903
- blockExplorers: {
1904
- default: {
1905
- name: "Forma Explorer",
1906
- url: "https://explorer.sketchpad-1.forma.art"
1907
- }
1908
- },
1909
- testnet: true
1910
- });
1911
- var evmChains = [
1912
- arbitrum,
1913
- avalanche,
1914
- base,
1915
- bsc,
1916
- celo,
1917
- fantom,
1918
- filecoin,
1919
- kava,
1920
- linea,
1921
- mainnet,
1922
- manta,
1923
- moonbeam,
1924
- optimism,
1925
- polygon,
1926
- polygonMumbai,
1927
- sepolia,
1928
- avalancheFuji,
1929
- baseSepolia,
1930
- optimismSepolia,
1931
- arbitrumSepolia,
1932
- blast,
1933
- blastSepolia,
1934
- forma,
1935
- formaTestnet,
1936
- sei,
1937
- bscTestnet,
1938
- fantomTestnet,
1939
- kavaTestnet,
1940
- lineaSepolia,
1941
- mantaSepoliaTestnet
1942
- ];
1943
-
1944
- // src/utils/array.ts
1945
- function isSubset(arrayA, arrayB) {
1946
- const setA = new Set(arrayA);
1947
- return arrayB.every((item) => setA.has(item));
1948
- }
1949
-
1950
- // src/public-functions/getRouteWithGasOnReceive.ts
1951
- var GAS_ON_RECEIVE_AMOUNT_USD = {
1952
- ["cosmos" /* Cosmos */]: 0.1,
1953
- evm_l2: 2
1954
- };
1955
- var DISABLED_SOURCE_CHAINIDS = ["1", "11155111"];
1956
- var DISABLED_DESTINATION_CHAINIDS = ["solana", "solana-devnet"];
1957
- var getRouteWithGasOnReceive = async (props) => {
1958
- const originalRoute = props.routeResponse;
1959
- try {
1960
- if (DISABLED_SOURCE_CHAINIDS.includes(originalRoute.sourceAssetChainId)) {
1961
- throw new Error(
1962
- `Routes from ${originalRoute.sourceAssetChainId} are not supported`
1963
- );
1964
- }
1965
- if (DISABLED_DESTINATION_CHAINIDS.includes(originalRoute.destAssetChainId)) {
1966
- throw new Error(
1967
- `Routes to ${originalRoute.destAssetChainId} are not supported`
1968
- );
1969
- }
1970
- const skipChains = ClientState.skipChains ? ClientState.skipChains : await chains({
1971
- includeEvm: true,
1972
- includeSvm: true,
1973
- chainIds: [
1974
- originalRoute.sourceAssetChainId,
1975
- originalRoute.destAssetChainId
1976
- ],
1977
- onlyTestnets: props.onlyTestnets
1978
- });
1979
- const skipAssets = ClientState.skipAssets ? ClientState.skipAssets : await assets({
1980
- chainIds: [
1981
- originalRoute.sourceAssetChainId,
1982
- originalRoute.destAssetChainId
1983
- ],
1984
- includeEvmAssets: true,
1985
- includeSvmAssets: true,
1986
- onlyTestnets: props.onlyTestnets
1987
- });
1988
- const destinationChain = skipChains?.find(
1989
- (chain) => chain.chainId === originalRoute.destAssetChainId
1990
- );
1991
- if (destinationChain?.feeAssets.map((i) => i.denom).includes(originalRoute.destAssetDenom)) {
1992
- throw new Error(
1993
- "Destination asset is already a fee asset on the destination chain"
1994
- );
1995
- }
1996
- const gasOnReceiveAmount = await getGasOnReceiveAmount({
1997
- destinationChain,
1998
- skipAssets,
1999
- sourceAsset: skipAssets?.[originalRoute.sourceAssetChainId]?.find(
2000
- (i) => i.denom === originalRoute.sourceAssetDenom
2001
- )
2002
- });
2003
- if (!gasOnReceiveAmount || gasOnReceiveAmount.length === 0) {
2004
- throw new Error(
2005
- "No gas on receive amount found for the destination chain"
2006
- );
2007
- }
2008
- const splitDenoms = chunkArray(gasOnReceiveAmount, 3);
2009
- let gasRoute;
2010
- for (const chunk of splitDenoms) {
2011
- const feeAssetRoutes = chunk.map(
2012
- async ({ amountOut, denom, amountIn }) => {
2013
- try {
2014
- const res = await route({
2015
- ...props.routeRequest,
2016
- destAssetDenom: denom,
2017
- amountIn,
2018
- amountOut,
2019
- allowMultiTx: false
2020
- });
2021
- return res;
2022
- } catch (_e) {
2023
- return null;
2024
- }
2025
- }
2026
- );
2027
- const result = await Promise.all(feeAssetRoutes);
2028
- const _gasRoute = result.find((result2) => result2?.usdAmountOut);
2029
- if (_gasRoute?.usdAmountOut) {
2030
- gasRoute = _gasRoute;
2031
- break;
2032
- }
2033
- }
2034
- if (!gasRoute) {
2035
- throw new Error(
2036
- "No gas route found for the destination chain with the provided assets"
2037
- );
2038
- }
2039
- const mainRouteAmountIn = bignumber_default(originalRoute?.amountIn ?? 0).minus(bignumber_default(gasRoute.amountIn ?? 0)).toString();
2040
- const mainRoute = await route({
2041
- ...props.routeRequest,
2042
- amountIn: mainRouteAmountIn,
2043
- amountOut: void 0
2044
- });
2045
- if (!mainRoute) {
2046
- throw new Error("No main route found with the provided assets");
2047
- }
2048
- if (originalRoute.txsRequired !== mainRoute.txsRequired || !isSubset(
2049
- originalRoute?.requiredChainAddresses,
2050
- mainRoute.requiredChainAddresses
2051
- )) {
2052
- throw new Error("Main route does not match the original route");
2053
- }
2054
- return {
2055
- mainRoute,
2056
- gasRoute
2057
- };
2058
- } catch (error) {
2059
- return {
2060
- mainRoute: originalRoute,
2061
- gasRoute: void 0
2062
- };
2063
- }
2064
- };
2065
- var getGasOnReceiveAmount = async ({
2066
- destinationChain,
2067
- skipAssets,
2068
- sourceAsset
2069
- }) => {
2070
- switch (destinationChain?.chainType) {
2071
- case "cosmos" /* Cosmos */: {
2072
- const usdPrice = sourceAsset?.coingeckoId ? await getUsdPrice(sourceAsset.coingeckoId) : void 0;
2073
- return destinationChain.feeAssets.map((asset) => {
2074
- const destinationAsset = skipAssets?.[destinationChain.chainId]?.find(
2075
- (i) => i.denom === asset.denom
2076
- );
2077
- const gasPrice = asset.gasPrice?.average ?? asset.gasPrice?.high ?? asset.gasPrice?.low;
2078
- if (!gasPrice || Number(gasPrice) === 0) {
2079
- if (!usdPrice || !sourceAsset?.decimals) return;
2080
- const gasOnReceiveAmountUsd = GAS_ON_RECEIVE_AMOUNT_USD["cosmos"];
2081
- const amountIn = bignumber_default(gasOnReceiveAmountUsd).multipliedBy(usdPrice).toString();
2082
- return {
2083
- amountIn: convertHumanReadableAmountToCryptoAmount(
2084
- amountIn,
2085
- sourceAsset.decimals
2086
- ),
2087
- amountOut: void 0,
2088
- denom: asset.denom
2089
- };
2090
- }
2091
- return {
2092
- amountIn: void 0,
2093
- amountOut: gasPrice && destinationAsset?.decimals ? convertHumanReadableAmountToCryptoAmount(
2094
- bignumber_default(gasPrice).multipliedBy(3).toNumber(),
2095
- destinationAsset.decimals
2096
- ) : void 0,
2097
- denom: asset.denom
2098
- };
2099
- }).filter(Boolean);
2100
- }
2101
- case "evm" /* Evm */: {
2102
- const sourceAssetPrice = sourceAsset?.coingeckoId ? await getUsdPrice(sourceAsset?.coingeckoId) : void 0;
2103
- const destinationAsset = skipAssets?.[destinationChain.chainId]?.find(
2104
- (i) => i.denom.includes("-native")
2105
- );
2106
- if (!sourceAssetPrice) {
2107
- const chain = evmChains.find(
2108
- (chain2) => chain2.id === Number(destinationChain?.chainId)
2109
- );
2110
- const client = createPublicClient({
2111
- chain,
2112
- transport: fallback([
2113
- http("https://ethereum.publicnode.com"),
2114
- http("https://rpc.ankr.com/eth"),
2115
- http("https://cloudflare-eth.com")
2116
- ])
2117
- });
2118
- const fees = await client.estimateFeesPerGas();
2119
- return [
2120
- {
2121
- amountIn: void 0,
2122
- amountOut: bignumber_default(15e4).multipliedBy(fees.maxFeePerGas.toString()).multipliedBy(3).toString(),
2123
- denom: destinationAsset?.denom
2124
- }
2125
- ];
2126
- }
2127
- const gasPrice = bignumber_default(GAS_ON_RECEIVE_AMOUNT_USD["evm_l2"]).dividedBy(
2128
- sourceAssetPrice
2129
- ).toString();
2130
- return [
2131
- {
2132
- amountOut: void 0,
2133
- amountIn: sourceAsset?.decimals ? convertHumanReadableAmountToCryptoAmount(
2134
- gasPrice,
2135
- sourceAsset.decimals
2136
- ) : void 0,
2137
- denom: destinationAsset?.denom
2138
- }
2139
- ];
2140
- }
2141
- default: {
2142
- return;
2143
- }
2144
- }
2145
- };
2146
- var chunkArray = (arr, size = 3) => {
2147
- const result = [];
2148
- for (let i = 0; i < arr.length; i += size) {
2149
- result.push(arr.slice(i, i + size));
2150
- }
2151
- return result;
2152
- };
2153
-
2154
- export { AutopilotActionJson, AxelarTransferStateJson, AxelarTransferTypeJson, BridgeTypeJson, CCTPTransferStateJson, ChainTypeJson, ContractCallWithTokenErrorTypeJson, FeeBehaviorJson, FeeTypeJson, GoFastTransferStateJson, HyperlaneTransferStateJson, LayerZeroTransferStateJson, OPInitTransferStateJson, PacketErrorTypeJson, ReasonJson, RoutePriceWarningTypeJson, SendTokenErrorTypeJson, StargateTransferStateJson, StatusErrorTypeJson, TransactionStateJson, TransferStateJson, executeMultipleRoutes, executeRoute, getRouteWithGasOnReceive };
1475
+ export { createValidAddressList, executeTransactions };