@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.
- package/dist/cjs/api/getAssets.cjs +1 -1
- package/dist/cjs/api/getAssetsBetweenChains.cjs +1 -1
- package/dist/cjs/api/getBridges.cjs +1 -1
- package/dist/cjs/api/getChains.cjs +1 -1
- package/dist/cjs/api/getVenues.cjs +1 -1
- package/dist/cjs/api/postAssetsFromSource.cjs +1 -1
- package/dist/cjs/api/postBalances.cjs +1 -1
- package/dist/cjs/api/postIbcOriginAssets.cjs +1 -1
- package/dist/cjs/api/postMessages.cjs +1 -1
- package/dist/cjs/api/postMessagesDirect.cjs +1 -1
- package/dist/cjs/api/postRecommendAssets.cjs +1 -1
- package/dist/cjs/api/postRoute.cjs +1 -1
- package/dist/cjs/api/postSubmitTransaction.cjs +1 -1
- package/dist/cjs/api/postTrackTransaction.cjs +1 -1
- package/dist/cjs/api/postTransactionStatus.cjs +1 -1
- package/dist/cjs/chunk-3UPZIINE.cjs +454 -0
- package/dist/cjs/chunk-4RLEZ5DV.cjs +55 -0
- package/dist/cjs/{chunk-KM2D7PJL.cjs → chunk-4TBONPD6.cjs} +33 -33
- package/dist/cjs/{chunk-WKYP2NMS.cjs → chunk-6W2OIU3O.cjs} +15 -15
- package/dist/cjs/{chunk-I2FDWZZJ.cjs → chunk-BFA7XKVT.cjs} +64 -765
- package/dist/cjs/chunk-BT6HQNBF.cjs +214 -0
- package/dist/cjs/{chunk-APJDSXWR.cjs → chunk-DAPPFYGA.cjs} +8 -8
- package/dist/cjs/{chunk-RC73RNNQ.cjs → chunk-GOQK63JP.cjs} +4 -4
- package/dist/cjs/chunk-KZOSEIWH.cjs +10 -0
- package/dist/cjs/{chunk-3M7YYWGL.cjs → chunk-MUJBB64F.cjs} +3 -7
- package/dist/cjs/{chunk-NWD4MAMT.cjs → chunk-ND7SYSAP.cjs} +2 -8
- package/dist/cjs/{chunk-DWOE6N5S.cjs → chunk-NM4PISTQ.cjs} +189 -188
- package/dist/cjs/{chunk-PDTIT3JO.cjs → chunk-QWQVTCKP.cjs} +12 -12
- package/dist/cjs/{chunk-XCFPRLX3.cjs → chunk-U2NZCNKX.cjs} +153 -153
- package/dist/cjs/{chunk-DLT6Q6RB.cjs → chunk-WOSAJSJB.cjs} +163 -149
- package/dist/cjs/index.cjs +83 -79
- package/dist/cjs/public-functions/executeMultipleRoutes.cjs +11 -21
- package/dist/cjs/public-functions/executeRoute.cjs +11 -21
- package/dist/cjs/public-functions/getCosmosGasAmountForMessage.cjs +5 -5
- package/dist/cjs/public-functions/getEvmGasAmountForMessage.cjs +1 -1
- package/dist/cjs/public-functions/getFeeInfoForChain.cjs +4 -3
- package/dist/cjs/public-functions/getRecommendedGasPrice.cjs +6 -5
- package/dist/cjs/public-functions/getRouteWithGasOnReceive.cjs +17 -13
- package/dist/cjs/public-functions/getSigningStargateClient.cjs +4 -4
- package/dist/cjs/public-functions/setApiOptions.cjs +1 -1
- package/dist/cjs/public-functions/setClientOptions.cjs +5 -5
- package/dist/cjs/public-functions/subscribeToRouteStatus.cjs +1 -1
- package/dist/cjs/public-functions/validateCosmosGasBalance.cjs +8 -8
- package/dist/cjs/public-functions/waitForTransaction.cjs +1 -1
- package/dist/esm/api/getAssets.d.ts +1 -1
- package/dist/esm/api/getAssets.js +1 -1
- package/dist/esm/api/getAssetsBetweenChains.d.ts +1 -1
- package/dist/esm/api/getAssetsBetweenChains.js +1 -1
- package/dist/esm/api/getBridges.d.ts +1 -1
- package/dist/esm/api/getBridges.js +1 -1
- package/dist/esm/api/getChains.d.ts +1 -1
- package/dist/esm/api/getChains.js +1 -1
- package/dist/esm/api/getVenues.js +1 -1
- package/dist/esm/api/postAssetsFromSource.d.ts +1 -1
- package/dist/esm/api/postAssetsFromSource.js +1 -1
- package/dist/esm/api/postBalances.d.ts +2 -2
- package/dist/esm/api/postBalances.js +1 -1
- package/dist/esm/api/postIbcOriginAssets.js +1 -1
- package/dist/esm/api/postMessages.d.ts +2 -2
- package/dist/esm/api/postMessages.js +1 -1
- package/dist/esm/api/postMessagesDirect.d.ts +1 -1
- package/dist/esm/api/postMessagesDirect.js +1 -1
- package/dist/esm/api/postRecommendAssets.d.ts +1 -1
- package/dist/esm/api/postRecommendAssets.js +1 -1
- package/dist/esm/api/postRoute.d.ts +2 -2
- package/dist/esm/api/postRoute.js +1 -1
- package/dist/esm/api/postSubmitTransaction.d.ts +2 -2
- package/dist/esm/api/postSubmitTransaction.js +1 -1
- package/dist/esm/api/postTrackTransaction.d.ts +2 -2
- package/dist/esm/api/postTrackTransaction.js +1 -1
- package/dist/esm/api/postTransactionStatus.d.ts +2 -2
- package/dist/esm/api/postTransactionStatus.js +1 -1
- package/dist/esm/{callbacks-C-KUJnDv.d.ts → callbacks-CJ_p70xa.d.ts} +3 -3
- package/dist/esm/chunk-426BGQ4K.js +431 -0
- package/dist/esm/chunk-BBEFB277.js +53 -0
- package/dist/esm/{chunk-UIDIKXMB.js → chunk-F2LQB2DP.js} +6 -5
- package/dist/esm/{chunk-KNXMSLOB.js → chunk-GLH7IRLX.js} +2 -2
- package/dist/esm/{chunk-2PWROHHX.js → chunk-GLM7QWYT.js} +1 -1
- package/dist/esm/{chunk-SFWTQBQT.js → chunk-H2TTIB5K.js} +3 -3
- package/dist/esm/{chunk-QL423UEF.js → chunk-HP5EMWC6.js} +163 -149
- package/dist/esm/{chunk-V7VKYD4J.js → chunk-HZVXNDMH.js} +2 -2
- package/dist/esm/{chunk-JYYCFKB4.js → chunk-KS764SOZ.js} +15 -15
- package/dist/esm/{chunk-IKWC55JU.js → chunk-L233BZ4I.js} +59 -738
- package/dist/esm/{chunk-6M7N6EAO.js → chunk-LBS7KX5I.js} +12 -12
- package/dist/esm/{chunk-QRKO56DH.js → chunk-QYIZGNWZ.js} +2 -7
- package/dist/esm/{chunk-QO2CYYF5.js → chunk-RTDD7HZ3.js} +4 -7
- package/dist/esm/chunk-SA4GETWP.js +212 -0
- package/dist/esm/chunk-SWYON2RG.js +7 -0
- package/dist/esm/{client-types-CGMuZ3zo.d.ts → client-types-uXKJQRqe.d.ts} +1 -1
- package/dist/esm/{generateApi-D_-Gso-x.d.ts → generateApi-BMFrG4FZ.d.ts} +1 -1
- package/dist/esm/index.d.ts +260 -259
- package/dist/esm/index.js +16 -12
- package/dist/esm/public-functions/executeMultipleRoutes.d.ts +4 -4
- package/dist/esm/public-functions/executeMultipleRoutes.js +10 -20
- package/dist/esm/public-functions/executeRoute.d.ts +4 -4
- package/dist/esm/public-functions/executeRoute.js +10 -20
- package/dist/esm/public-functions/getCosmosGasAmountForMessage.d.ts +1 -1
- package/dist/esm/public-functions/getCosmosGasAmountForMessage.js +3 -3
- package/dist/esm/public-functions/getEvmGasAmountForMessage.d.ts +3 -3
- package/dist/esm/public-functions/getEvmGasAmountForMessage.js +1 -1
- package/dist/esm/public-functions/getFeeInfoForChain.d.ts +1 -1
- package/dist/esm/public-functions/getFeeInfoForChain.js +3 -2
- package/dist/esm/public-functions/getRecommendedGasPrice.js +5 -4
- package/dist/esm/public-functions/getRouteWithGasOnReceive.d.ts +1 -1
- package/dist/esm/public-functions/getRouteWithGasOnReceive.js +16 -12
- package/dist/esm/public-functions/getSigningStargateClient.js +3 -3
- package/dist/esm/public-functions/setApiOptions.d.ts +1 -1
- package/dist/esm/public-functions/setApiOptions.js +1 -1
- package/dist/esm/public-functions/setClientOptions.d.ts +4 -4
- package/dist/esm/public-functions/setClientOptions.js +4 -4
- package/dist/esm/public-functions/subscribeToRouteStatus.d.ts +4 -4
- package/dist/esm/public-functions/subscribeToRouteStatus.js +1 -1
- package/dist/esm/public-functions/validateCosmosGasBalance.d.ts +4 -4
- package/dist/esm/public-functions/validateCosmosGasBalance.js +7 -7
- package/dist/esm/public-functions/waitForTransaction.d.ts +4 -4
- package/dist/esm/public-functions/waitForTransaction.js +1 -1
- package/dist/esm/{setClientOptions-C8g92xTm.d.ts → setClientOptions-D1qgaOqC.d.ts} +3 -3
- package/dist/esm/{swaggerTypes-B_jKfpvz.d.ts → swaggerTypes-Cop47I0X.d.ts} +257 -255
- package/package.json +5 -5
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { updateRouteDetails
|
|
2
|
-
import { validateCosmosGasBalance } from './chunk-
|
|
3
|
-
import { getEncodeObjectFromCosmosMessage } from './chunk-
|
|
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 {
|
|
6
|
-
import { GAS_STATION_CHAIN_IDS } from './chunk-
|
|
7
|
-
import { getRpcEndpointForChain, accountParser, getSigningStargateClient } from './chunk-
|
|
8
|
-
import { chains
|
|
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,
|
|
15
|
-
import {
|
|
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 {
|
|
26
|
-
import {
|
|
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
|
|
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
|
|
174
|
+
const messages = cosmosMsgs.map((cosmosMsg) => getEncodeObjectFromCosmosMessage(cosmosMsg));
|
|
323
175
|
const txBodyEncodeObject = {
|
|
324
176
|
typeUrl: "/cosmos.tx.v1beta1.TxBody",
|
|
325
177
|
value: {
|
|
326
|
-
messages
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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 (
|
|
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:
|
|
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
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
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:
|
|
1004
|
+
error: { decodeError: decodeError.message },
|
|
1157
1005
|
asset: null,
|
|
1158
1006
|
fee: null
|
|
1159
1007
|
};
|
|
1160
1008
|
}
|
|
1161
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1177
|
-
const
|
|
1178
|
-
|
|
1179
|
-
const
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
);
|
|
1183
|
-
|
|
1184
|
-
|
|
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
|
|
1412
|
+
const chains2 = await ClientState.getSkipChains();
|
|
1560
1413
|
const validations = userAddresses.map((userAddress) => {
|
|
1561
|
-
const chain =
|
|
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
|
|
1452
|
+
route
|
|
1600
1453
|
}) => {
|
|
1601
1454
|
let addressList = [];
|
|
1602
1455
|
userAddresses.forEach((userAddress, index) => {
|
|
1603
|
-
const requiredChainAddress =
|
|
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 !==
|
|
1461
|
+
if (addressList.length !== route.requiredChainAddresses.length) {
|
|
1609
1462
|
addressList = userAddresses.map((x) => x.address);
|
|
1610
1463
|
}
|
|
1611
|
-
const validLength = addressList.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
|
-
|
|
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 };
|