@0xsquid/react-hooks 1.0.36 → 1.0.38
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/core/queries/queries-keys.d.ts +1 -1
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/hooks/cosmos/useCosmos.d.ts +1 -1
- package/dist/hooks/cosmos/useCosmos.js +3 -2
- package/dist/hooks/cosmos/useCosmos.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/swap/useSwap.js +7 -10
- package/dist/hooks/swap/useSwap.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +28 -6
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
- package/dist/hooks/tokens/useSquidTokens.d.ts +2 -4
- package/dist/hooks/tokens/useSquidTokens.js +92 -56
- package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
- package/dist/hooks/transaction/useEstimate.d.ts +31 -31
- package/dist/hooks/transaction/useEstimate.js +130 -237
- package/dist/hooks/transaction/useEstimate.js.map +1 -1
- package/dist/hooks/transaction/useGetRoute.d.ts +1 -1
- package/dist/services/internal/configService.d.ts +18 -8
- package/dist/services/internal/configService.js +55 -15
- package/dist/services/internal/configService.js.map +1 -1
- package/dist/tests/configService.test.js +168 -47
- package/dist/tests/configService.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -18,97 +18,120 @@ export const useEstimate = (squidRoute) => {
|
|
|
18
18
|
const { tokens } = useSquidTokens();
|
|
19
19
|
const { fromChain, toChain } = useSwap();
|
|
20
20
|
const { expressActivatedUI } = useEstimateExpress();
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const fromAmount = useMemo(() => squidRoute?.estimate?.fromAmount ?? undefined, [squidRoute?.estimate?.fromAmount]);
|
|
29
|
-
const fromAmountFormatted = useMemo(() => (fromAmount ? formatUnits(fromAmount, fromToken?.decimals) : ""), [fromAmount, fromToken?.decimals]);
|
|
30
|
-
const sourceChainNativeToken = useMemo(() => {
|
|
31
|
-
return tokens.find((t) => t.symbol === fromChain?.nativeCurrency.symbol &&
|
|
21
|
+
const estimateResults = useMemo(() => {
|
|
22
|
+
const fromToken = tokens.find((t) => t.address === squidRoute?.params.fromToken);
|
|
23
|
+
const fromAmount = squidRoute?.estimate?.fromAmount;
|
|
24
|
+
const fromAmountFormatted = fromAmount
|
|
25
|
+
? formatUnits(fromAmount, fromToken?.decimals)
|
|
26
|
+
: "";
|
|
27
|
+
const sourceChainNativeToken = tokens.find((t) => t.symbol === fromChain?.nativeCurrency.symbol &&
|
|
32
28
|
t.chainId == fromChain?.chainId);
|
|
33
|
-
|
|
34
|
-
const destChainNativeToken = useMemo(() => {
|
|
35
|
-
return tokens.find((t) => t.symbol === toChain?.nativeCurrency.symbol &&
|
|
29
|
+
const destChainNativeToken = tokens.find((t) => t.symbol === toChain?.nativeCurrency.symbol &&
|
|
36
30
|
t.chainId == toChain?.chainId);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const toAmount = useMemo(() => {
|
|
45
|
-
const formattedAmount = formatUnitsRounded(squidRoute?.estimate.toAmount ?? "0", squidRoute?.estimate.toToken.decimals, 14);
|
|
46
|
-
return formattedAmount === "0.0" ? "0" : formattedAmount;
|
|
47
|
-
}, [squidRoute?.estimate.toAmount, squidRoute?.estimate.toToken.decimals]);
|
|
48
|
-
/**
|
|
49
|
-
* At the moment we're only taking the first item
|
|
50
|
-
* of fees array, but keeping the possibility to display multiple fees
|
|
51
|
-
*/
|
|
52
|
-
const crossChainGasFee = useMemo(() => {
|
|
31
|
+
const toAmountUSD = squidRoute?.estimate?.toAmountUSD;
|
|
32
|
+
const toAmountUSDFloat = toAmountUSD
|
|
33
|
+
? parseFloat(toAmountUSD.replace(/,/g, ""))
|
|
34
|
+
: 0;
|
|
35
|
+
const exchangeRate = squidRoute?.estimate.exchangeRate ?? "0";
|
|
36
|
+
const toAmountMin = formatUnits(squidRoute?.estimate.toAmountMin ?? "0", squidRoute?.estimate.toToken.decimals);
|
|
37
|
+
const toAmount = formatUnitsRounded(squidRoute?.estimate.toAmount ?? "0", squidRoute?.estimate.toToken.decimals, 14);
|
|
53
38
|
const estimate = squidRoute?.estimate;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
39
|
+
const allFeeCosts = estimate?.feeCosts ?? [];
|
|
40
|
+
const allGasCosts = estimate?.gasCosts ?? [];
|
|
41
|
+
const firstFeeCost = allFeeCosts.length > 0 ? allFeeCosts[0] : undefined;
|
|
42
|
+
const firstGasCost = allGasCosts.length > 0 ? allGasCosts[0] : undefined;
|
|
43
|
+
const expressFeeCost = allFeeCosts.find((f) => f.name === "Boost fee");
|
|
44
|
+
const integratorFeeCost = allFeeCosts.length > 0 && config.collectFees
|
|
45
|
+
? allFeeCosts.find((f) => f.name === "Integrator Fee")
|
|
46
|
+
: undefined;
|
|
47
|
+
const expectedGasRefundCost = BigNumber.from(firstFeeCost?.amount ?? "0")
|
|
48
|
+
.mul(fromChain?.chainType === ChainType.COSMOS ? 0 : gasRefundMultiplier)
|
|
49
|
+
.div(100);
|
|
50
|
+
const sameTokenBetweenFees = firstFeeCost?.token.address === firstGasCost?.token.address &&
|
|
51
|
+
firstFeeCost?.token.chainId === firstGasCost?.token.chainId;
|
|
52
|
+
const isFromTokenNative = fromToken?.symbol === fromChain?.nativeCurrency.symbol;
|
|
53
|
+
const totalNativeFees = BigNumber.from(expressFeeCost?.amount ?? constants.Zero).add(sameTokenBetweenFees
|
|
54
|
+
? BigNumber.from(firstFeeCost?.amount ?? constants.Zero).add(BigNumber.from(firstGasCost?.amount ?? constants.Zero))
|
|
55
|
+
: BigNumber.from(firstGasCost?.amount ?? constants.Zero));
|
|
56
|
+
const totalFeesInNativeTokenPlusRatio = totalNativeFees.mul(105).div(100);
|
|
57
|
+
const fromBalanceEnoughToSwap = isFromTokenNative
|
|
58
|
+
? BigNumber.from(fromAmount ?? constants.Zero)
|
|
59
|
+
.add(totalFeesInNativeTokenPlusRatio)
|
|
60
|
+
.lte(nativeTokenBalanceFromChain.data ?? constants.Zero)
|
|
61
|
+
: totalFeesInNativeTokenPlusRatio.lte(nativeTokenBalanceFromChain.data ?? constants.Zero);
|
|
62
|
+
const minAmountValueWarnMsg = isFromTokenNative
|
|
63
|
+
? (() => {
|
|
64
|
+
const fromBalance = nativeTokenBalanceFromChain.data ?? constants.Zero;
|
|
65
|
+
const minAmount = fromBalance.sub(totalFeesInNativeTokenPlusRatio);
|
|
66
|
+
return minAmount.gt(constants.Zero)
|
|
67
|
+
? formatUnits(minAmount, sourceChainNativeToken?.decimals ?? 18)
|
|
68
|
+
: "0";
|
|
69
|
+
})()
|
|
70
|
+
: undefined;
|
|
71
|
+
const isSingleChainRoute = fromChain?.chainId === toChain?.chainId;
|
|
72
|
+
const estimatedRouteDuration = (() => {
|
|
73
|
+
const fallbackDuration = 20;
|
|
74
|
+
let durationInSeconds = fallbackDuration;
|
|
75
|
+
if (squidRoute?.estimate?.estimatedRouteDuration) {
|
|
76
|
+
durationInSeconds = squidRoute.estimate.estimatedRouteDuration;
|
|
77
|
+
}
|
|
78
|
+
else if (isSingleChainRoute) {
|
|
79
|
+
durationInSeconds = 1;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
durationInSeconds = expressActivatedUI
|
|
83
|
+
? fromChain?.estimatedBoostRouteDuration ?? fallbackDuration
|
|
84
|
+
: fromChain?.estimatedRouteDuration ?? fallbackDuration;
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
seconds: durationInSeconds,
|
|
88
|
+
format: (sTemplate = "s", mTemplate = "m") => formatSeconds(durationInSeconds, sTemplate, mTemplate),
|
|
89
|
+
};
|
|
90
|
+
})();
|
|
91
|
+
return {
|
|
92
|
+
fromToken,
|
|
93
|
+
fromAmount,
|
|
94
|
+
fromAmountFormatted,
|
|
95
|
+
sourceChainNativeToken,
|
|
96
|
+
destChainNativeToken,
|
|
97
|
+
toAmountUSD,
|
|
98
|
+
toAmountUSDFloat,
|
|
99
|
+
exchangeRate,
|
|
100
|
+
toAmountMin,
|
|
101
|
+
toAmount,
|
|
102
|
+
allFeeCosts,
|
|
103
|
+
allGasCosts,
|
|
104
|
+
firstFeeCost,
|
|
105
|
+
firstGasCost,
|
|
106
|
+
expressFeeCost,
|
|
107
|
+
integratorFeeCost,
|
|
108
|
+
expectedGasRefundCost,
|
|
109
|
+
sameTokenBetweenFees,
|
|
110
|
+
isFromTokenNative,
|
|
111
|
+
totalNativeFees,
|
|
112
|
+
totalFeesInNativeTokenPlusRatio,
|
|
113
|
+
fromBalanceEnoughToSwap,
|
|
114
|
+
minAmountValueWarnMsg,
|
|
115
|
+
estimatedRouteDuration,
|
|
116
|
+
};
|
|
102
117
|
}, [
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
118
|
+
squidRoute,
|
|
119
|
+
tokens,
|
|
120
|
+
fromChain,
|
|
121
|
+
toChain,
|
|
122
|
+
config,
|
|
123
|
+
nativeTokenBalanceFromChain,
|
|
124
|
+
expressActivatedUI,
|
|
107
125
|
]);
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
126
|
+
const balanceFormatted = useMultiChainBalance({
|
|
127
|
+
chain: fromChain,
|
|
128
|
+
token: estimateResults.fromToken,
|
|
129
|
+
userAddress: squidRoute?.params.fromAddress ?? "",
|
|
130
|
+
enabled: !!squidRoute,
|
|
131
|
+
}).balance ?? "0";
|
|
132
|
+
const { getUSDValue } = useSingleTokenPrice(estimateResults.firstFeeCost?.token);
|
|
111
133
|
const totalWithRefundEstimate = useMemo(() => {
|
|
134
|
+
const { firstFeeCost, expressFeeCost, expectedGasRefundCost } = estimateResults;
|
|
112
135
|
const firstFee = {
|
|
113
136
|
BN: BigNumber.from(firstFeeCost?.amount ?? "0"),
|
|
114
137
|
token: firstFeeCost?.token,
|
|
@@ -117,171 +140,41 @@ export const useEstimate = (squidRoute) => {
|
|
|
117
140
|
BN: BigNumber.from(expressFeeCost?.amount ?? "0"),
|
|
118
141
|
token: expressFeeCost?.token,
|
|
119
142
|
};
|
|
120
|
-
// Big number amount
|
|
121
143
|
const totalBnbAmount = firstFee.BN.add(expressFee.BN).sub(expectedGasRefundCost);
|
|
122
144
|
const totalAmount = formatUnits(totalBnbAmount, firstFee.token?.decimals ?? 18);
|
|
123
|
-
// USD values
|
|
124
145
|
const formattedRefundCost = formatUnits(expectedGasRefundCost, firstFeeCost?.token.decimals);
|
|
125
146
|
const formattedRefundCostUSD = getUSDValue(formattedRefundCost);
|
|
126
147
|
const totalAmountUSD = +(firstFeeCost?.amountUsd ?? 0) +
|
|
127
148
|
+(expressFeeCost?.amountUsd ?? 0) -
|
|
128
149
|
+(formattedRefundCostUSD ?? 0);
|
|
129
|
-
return {
|
|
130
|
-
|
|
131
|
-
totalAmountUSD,
|
|
132
|
-
feeToken: firstFeeCost?.token,
|
|
133
|
-
};
|
|
134
|
-
}, [firstFeeCost, expressFeeCost, expectedGasRefundCost, getUSDValue]);
|
|
135
|
-
/**
|
|
136
|
-
* Two cases:
|
|
137
|
-
* 1. If the source token is the same as the native token, check if the balance of native token is less than the (source amount) + (native gas)
|
|
138
|
-
* 2. If the source token is different from the native token, check if the balance of native token is less than (native gas)
|
|
139
|
-
*/
|
|
140
|
-
const fromBalanceEnoughToSwap = useMemo(() => {
|
|
141
|
-
// if (squidRoute.isLoading) return true;
|
|
142
|
-
const fromAmountWei = BigNumber.from(fromAmount ?? constants.Zero);
|
|
143
|
-
const fromBalance = nativeTokenBalanceFromChain.data ?? constants.Zero;
|
|
144
|
-
if (isFromTokenNative) {
|
|
145
|
-
const fromPlusGas = fromAmountWei.add(totalFeesInNativeTokenPlusRatio);
|
|
146
|
-
if (fromPlusGas.lte(fromBalance)) {
|
|
147
|
-
return true;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
else if (totalFeesInNativeTokenPlusRatio.lte(fromBalance)) {
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
return false;
|
|
154
|
-
}, [
|
|
155
|
-
nativeTokenBalanceFromChain.data,
|
|
156
|
-
fromAmount,
|
|
157
|
-
isFromTokenNative,
|
|
158
|
-
totalFeesInNativeTokenPlusRatio,
|
|
159
|
-
]);
|
|
160
|
-
/**
|
|
161
|
-
* In the case where the source token is the same as the native token,
|
|
162
|
-
* we need to advise the user to change the source amount to be less than the balance of native token minus the gas cost
|
|
163
|
-
*/
|
|
164
|
-
const minAmountValueWarnMsg = useMemo(() => {
|
|
165
|
-
if (!isFromTokenNative) {
|
|
166
|
-
return undefined;
|
|
167
|
-
}
|
|
168
|
-
const fromBalance = nativeTokenBalanceFromChain.data ?? constants.Zero;
|
|
169
|
-
const minAmount = fromBalance.sub(totalFeesInNativeTokenPlusRatio);
|
|
170
|
-
if (minAmount.gt(constants.Zero)) {
|
|
171
|
-
const parsedMinAmount = formatUnits(minAmount, sourceChainNativeToken?.decimals ?? 18);
|
|
172
|
-
return parsedMinAmount;
|
|
173
|
-
}
|
|
174
|
-
return "0";
|
|
175
|
-
}, [
|
|
176
|
-
nativeTokenBalanceFromChain.data,
|
|
177
|
-
isFromTokenNative,
|
|
178
|
-
sourceChainNativeToken?.decimals,
|
|
179
|
-
totalFeesInNativeTokenPlusRatio,
|
|
180
|
-
]);
|
|
150
|
+
return { totalAmount, totalAmountUSD, feeToken: firstFeeCost?.token };
|
|
151
|
+
}, [estimateResults, getUSDValue]);
|
|
181
152
|
const proposedGasDestinationAmount = useMemo(() => {
|
|
182
|
-
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
case "BNB":
|
|
196
|
-
gasDestinationAmount = 0.00425;
|
|
197
|
-
break;
|
|
198
|
-
case "FTM":
|
|
199
|
-
gasDestinationAmount = 4.45;
|
|
200
|
-
break;
|
|
201
|
-
case "CELO":
|
|
202
|
-
gasDestinationAmount = 3.052;
|
|
203
|
-
break;
|
|
204
|
-
case "KAVA":
|
|
205
|
-
gasDestinationAmount = 2.339;
|
|
206
|
-
break;
|
|
207
|
-
case "MATIC":
|
|
208
|
-
gasDestinationAmount = 1.795;
|
|
209
|
-
break;
|
|
210
|
-
default:
|
|
211
|
-
gasDestinationAmount = 0;
|
|
212
|
-
break;
|
|
213
|
-
}
|
|
214
|
-
return { value: gasDestinationAmount, currency: nativeToken };
|
|
215
|
-
}, [toChain?.nativeCurrency.symbol]);
|
|
153
|
+
const nativeToken = estimateResults.destChainNativeToken?.symbol;
|
|
154
|
+
const gasAmounts = {
|
|
155
|
+
GLMR: 5.289,
|
|
156
|
+
ETH: 0.0009,
|
|
157
|
+
AVAX: 0.115,
|
|
158
|
+
BNB: 0.00425,
|
|
159
|
+
FTM: 4.45,
|
|
160
|
+
CELO: 3.052,
|
|
161
|
+
KAVA: 2.339,
|
|
162
|
+
MATIC: 1.795,
|
|
163
|
+
};
|
|
164
|
+
return { value: gasAmounts[nativeToken ?? ""] ?? 0, currency: nativeToken };
|
|
165
|
+
}, [estimateResults.destChainNativeToken]);
|
|
216
166
|
const swapAmountExceedsLimit = config.advanced?.disableTradeLimit
|
|
217
167
|
? false
|
|
218
|
-
: toAmountUSDFloat > limitTradeSizeUsd;
|
|
219
|
-
const enoughBalanceToSwap =
|
|
220
|
-
|
|
221
|
-
const estimatedRouteDuration = useMemo(() => {
|
|
222
|
-
const fallbackDuration = 20;
|
|
223
|
-
let durationInSeconds = fallbackDuration;
|
|
224
|
-
// If the variable from backend exist, pick that one in priority
|
|
225
|
-
if (squidRoute?.estimate?.estimatedRouteDuration) {
|
|
226
|
-
durationInSeconds = squidRoute.estimate.estimatedRouteDuration;
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
if (isSingleChainRoute) {
|
|
230
|
-
durationInSeconds = 1; // If it's a single chain route, fallback to 1 second
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
if (expressActivatedUI) {
|
|
234
|
-
durationInSeconds =
|
|
235
|
-
fromChain?.estimatedBoostRouteDuration ?? fallbackDuration;
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
durationInSeconds =
|
|
239
|
-
fromChain?.estimatedRouteDuration ?? fallbackDuration;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
return {
|
|
244
|
-
seconds: durationInSeconds,
|
|
245
|
-
// Default template but can be overridden
|
|
246
|
-
format: (sTemplate = "s", mTemplate = "m") => formatSeconds(durationInSeconds, sTemplate, mTemplate),
|
|
247
|
-
};
|
|
248
|
-
}, [
|
|
249
|
-
squidRoute?.estimate?.estimatedRouteDuration,
|
|
250
|
-
isSingleChainRoute,
|
|
251
|
-
fromChain?.estimatedBoostRouteDuration,
|
|
252
|
-
fromChain?.estimatedRouteDuration,
|
|
253
|
-
expressActivatedUI,
|
|
254
|
-
]);
|
|
168
|
+
: estimateResults.toAmountUSDFloat > limitTradeSizeUsd;
|
|
169
|
+
const enoughBalanceToSwap = +balanceFormatted >= 0 &&
|
|
170
|
+
+balanceFormatted > +estimateResults.fromAmountFormatted;
|
|
255
171
|
return {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
crossChainGasFee,
|
|
259
|
-
exchangeRate,
|
|
260
|
-
toAmountMin,
|
|
261
|
-
toAmount,
|
|
262
|
-
fromToken,
|
|
263
|
-
toAmountUSD,
|
|
264
|
-
toAmountUSDFloat,
|
|
265
|
-
fromAmount,
|
|
266
|
-
fromAmountFormatted,
|
|
267
|
-
estimatedRouteDuration,
|
|
268
|
-
minAmountValueWarnMsg,
|
|
269
|
-
fromBalanceEnoughToSwap,
|
|
270
|
-
isFromTokenNative,
|
|
271
|
-
firstFeeCost,
|
|
272
|
-
firstGasCost,
|
|
273
|
-
sameTokenBetweenFees,
|
|
274
|
-
totalFeesInNativeTokenPlusRatio,
|
|
275
|
-
totalNativeFees,
|
|
276
|
-
sourceChainNativeToken,
|
|
277
|
-
expressFeeCost,
|
|
278
|
-
proposedGasDestinationAmount,
|
|
279
|
-
expectedGasRefundCost,
|
|
172
|
+
...estimateResults,
|
|
173
|
+
balanceFormatted,
|
|
280
174
|
totalWithRefundEstimate,
|
|
281
|
-
|
|
282
|
-
integratorFeeCost,
|
|
283
|
-
enoughBalanceToSwap,
|
|
175
|
+
proposedGasDestinationAmount,
|
|
284
176
|
swapAmountExceedsLimit,
|
|
177
|
+
enoughBalanceToSwap,
|
|
285
178
|
};
|
|
286
179
|
};
|
|
287
180
|
//# sourceMappingURL=useEstimate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEstimate.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useEstimate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useEstimate.js","sourceRoot":"","sources":["../../../src/hooks/transaction/useEstimate.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export declare const useGetRouteWrapper: ({ enabled, cacheTime, staleTime, refet
|
|
|
19
19
|
staleTime?: number | undefined;
|
|
20
20
|
refetchOnWindowFocus?: any;
|
|
21
21
|
refetchIntervalInBackground?: boolean | undefined;
|
|
22
|
-
refetchInterval?: number | undefined;
|
|
22
|
+
refetchInterval?: number | false | undefined;
|
|
23
23
|
}) => {
|
|
24
24
|
squidRoute: import("@tanstack/react-query").UseQueryResult<{
|
|
25
25
|
estimate: import("@0xsquid/squid-types").Estimate;
|
|
@@ -9,10 +9,21 @@ export declare const getTokensForChain: (tokens: Token[], chainId: number | stri
|
|
|
9
9
|
* @returns The first available chain ID.
|
|
10
10
|
*/
|
|
11
11
|
export declare const getFirstAvailableChainId: (config: AppConfig, direction: "from" | "to", chains?: ChainData[] | undefined) => string | undefined;
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Returns the default token address for a specific chain and direction based on config.
|
|
14
|
+
* If no default tokens are set in config, returns the first token in the tokens array for the specified chain
|
|
15
|
+
*
|
|
16
|
+
* @param tokens The list of tokens.
|
|
17
|
+
* @param config App config
|
|
18
|
+
* @param chainId The chain ID of the token
|
|
19
|
+
* @param direction The direction of the swap
|
|
20
|
+
* @param unavailableTokenAddress The token that is unavailable. Can be useful when we don't want to show the same token in the opposite direction
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare const getInitialOrDefaultTokenAddressForChain: (tokens: Token[], config: AppConfig, chainId: string | undefined, direction: "from" | "to", unavailableTokenAddress?: string) => string | undefined;
|
|
13
24
|
/**
|
|
14
25
|
* Retrieves the initial token address for a specific chain and direction.
|
|
15
|
-
* If no initial assets are set in config, returns
|
|
26
|
+
* If no initial assets are set in config, returns undefined.
|
|
16
27
|
*
|
|
17
28
|
* @param tokens - The list of tokens.
|
|
18
29
|
* @param config - The application configuration.
|
|
@@ -20,7 +31,7 @@ export declare const getDefaultTokenAddressForChain: (tokens: Token[], config: A
|
|
|
20
31
|
* @param direction - The direction ("from" or "to").
|
|
21
32
|
* @returns The initial token address if found; otherwise, the default token address.
|
|
22
33
|
*/
|
|
23
|
-
export declare const
|
|
34
|
+
export declare const getInitialTokenAddressForChain: ({ chainId, config, direction, tokens, unavailableTokenAddress, }: {
|
|
24
35
|
tokens: Token[];
|
|
25
36
|
config: AppConfig;
|
|
26
37
|
chainId: string | undefined;
|
|
@@ -53,12 +64,11 @@ export declare const getInitialChainIdFromConfig: ({ config, direction, chains,
|
|
|
53
64
|
chains: ChainData[] | undefined;
|
|
54
65
|
}) => string | undefined;
|
|
55
66
|
/**
|
|
56
|
-
* Returns the
|
|
67
|
+
* Returns the unavailable chains for a specific direction based on the provided config,
|
|
57
68
|
* filtering config.disabledChains and config.comingSoonChains
|
|
58
|
-
* @returns The
|
|
69
|
+
* @returns The unavailable chains for the specified direction.
|
|
59
70
|
*/
|
|
60
|
-
export declare const
|
|
71
|
+
export declare const getUnavailableChainIdsForDirection: ({ config, direction, }: {
|
|
61
72
|
config: AppConfig;
|
|
62
|
-
chains: ChainData[];
|
|
63
73
|
direction: "from" | "to";
|
|
64
|
-
}) =>
|
|
74
|
+
}) => Set<string>;
|
|
@@ -41,11 +41,11 @@ export const getTokensForChain = (tokens, chainId) => {
|
|
|
41
41
|
*/
|
|
42
42
|
export const getFirstAvailableChainId = (config, direction, chains = []) => {
|
|
43
43
|
// filter chains based on config
|
|
44
|
-
const
|
|
44
|
+
const unavailableChainIds = getUnavailableChainIdsForDirection({
|
|
45
45
|
config,
|
|
46
|
-
chains,
|
|
47
46
|
direction,
|
|
48
47
|
});
|
|
48
|
+
const availableChains = chains.filter((c) => !unavailableChainIds.has(c.chainId));
|
|
49
49
|
// get initial chain ID from config
|
|
50
50
|
const initialChainId = getInitialChainIdFromConfig({
|
|
51
51
|
chains: availableChains,
|
|
@@ -57,12 +57,42 @@ export const getFirstAvailableChainId = (config, direction, chains = []) => {
|
|
|
57
57
|
// if no initial chain ID is found in config, return the first available chain ID
|
|
58
58
|
return availableChains.length > 0 ? availableChains[0].chainId : undefined;
|
|
59
59
|
};
|
|
60
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Returns the default token address for a specific chain and direction based on config.
|
|
62
|
+
* If no default tokens are set in config, returns the first token in the tokens array for the specified chain
|
|
63
|
+
*
|
|
64
|
+
* @param tokens The list of tokens.
|
|
65
|
+
* @param config App config
|
|
66
|
+
* @param chainId The chain ID of the token
|
|
67
|
+
* @param direction The direction of the swap
|
|
68
|
+
* @param unavailableTokenAddress The token that is unavailable. Can be useful when we don't want to show the same token in the opposite direction
|
|
69
|
+
* @returns
|
|
70
|
+
*/
|
|
71
|
+
export const getInitialOrDefaultTokenAddressForChain = (tokens, config, chainId, direction, unavailableTokenAddress) => {
|
|
72
|
+
if (!chainId)
|
|
73
|
+
return;
|
|
74
|
+
const unavailableChainIds = getUnavailableChainIdsForDirection({
|
|
75
|
+
config,
|
|
76
|
+
direction,
|
|
77
|
+
});
|
|
78
|
+
// filter disabled chains
|
|
79
|
+
if (unavailableChainIds.has(chainId))
|
|
80
|
+
return;
|
|
61
81
|
const chainIdDefaultToken = config.defaultTokensPerChain?.find((token) => token.chainId == chainId);
|
|
82
|
+
// get default token from config
|
|
62
83
|
if (chainIdDefaultToken &&
|
|
63
84
|
chainIdDefaultToken.address !== unavailableTokenAddress) {
|
|
64
85
|
return chainIdDefaultToken.address;
|
|
65
86
|
}
|
|
87
|
+
// if no default token is found in config, try to get initial token
|
|
88
|
+
const initialToken = getInitialTokenAddressForChain({
|
|
89
|
+
chainId,
|
|
90
|
+
config,
|
|
91
|
+
direction,
|
|
92
|
+
tokens,
|
|
93
|
+
});
|
|
94
|
+
if (initialToken)
|
|
95
|
+
return initialToken;
|
|
66
96
|
const filteredTokens = chainId
|
|
67
97
|
? tokens.filter((t) => t.chainId === chainId && t.address !== unavailableTokenAddress)
|
|
68
98
|
: tokens;
|
|
@@ -70,7 +100,7 @@ export const getDefaultTokenAddressForChain = (tokens, config, chainId, unavaila
|
|
|
70
100
|
};
|
|
71
101
|
/**
|
|
72
102
|
* Retrieves the initial token address for a specific chain and direction.
|
|
73
|
-
* If no initial assets are set in config, returns
|
|
103
|
+
* If no initial assets are set in config, returns undefined.
|
|
74
104
|
*
|
|
75
105
|
* @param tokens - The list of tokens.
|
|
76
106
|
* @param config - The application configuration.
|
|
@@ -78,18 +108,26 @@ export const getDefaultTokenAddressForChain = (tokens, config, chainId, unavaila
|
|
|
78
108
|
* @param direction - The direction ("from" or "to").
|
|
79
109
|
* @returns The initial token address if found; otherwise, the default token address.
|
|
80
110
|
*/
|
|
81
|
-
export const
|
|
111
|
+
export const getInitialTokenAddressForChain = ({ chainId, config, direction, tokens, unavailableTokenAddress, }) => {
|
|
82
112
|
if (direction === "from" &&
|
|
113
|
+
config.initialAssets &&
|
|
83
114
|
config.initialAssets?.from &&
|
|
84
|
-
config.initialAssets.from.chainId === chainId
|
|
115
|
+
config.initialAssets.from.chainId === chainId &&
|
|
116
|
+
config.initialAssets.from.address !== unavailableTokenAddress &&
|
|
117
|
+
// check if initial asset exists in tokens
|
|
118
|
+
tokens.some((t) => t.chainId === config.initialAssets?.from?.chainId &&
|
|
119
|
+
t.address === config.initialAssets?.from.address)) {
|
|
85
120
|
return config.initialAssets.from.address;
|
|
86
121
|
}
|
|
87
122
|
if (direction === "to" &&
|
|
88
123
|
config.initialAssets?.to &&
|
|
89
|
-
config.initialAssets.to.chainId === chainId
|
|
124
|
+
config.initialAssets.to.chainId === chainId &&
|
|
125
|
+
config.initialAssets.to.address !== unavailableTokenAddress &&
|
|
126
|
+
// check if initial asset exists in tokens
|
|
127
|
+
tokens.some((t) => t.chainId === config.initialAssets?.to?.chainId &&
|
|
128
|
+
t.address === config.initialAssets?.to.address)) {
|
|
90
129
|
return config.initialAssets.to.address;
|
|
91
130
|
}
|
|
92
|
-
return getDefaultTokenAddressForChain(tokens, config, chainId, unavailableTokenAddress);
|
|
93
131
|
};
|
|
94
132
|
/**
|
|
95
133
|
* Filter tokens for destination chain
|
|
@@ -133,11 +171,11 @@ export const filterTokensForDestination = (tokens, selectedDestinationChain, sel
|
|
|
133
171
|
export const getInitialChainIdFromConfig = ({ config, direction, chains = [], }) => {
|
|
134
172
|
if (chains.length === 0)
|
|
135
173
|
return undefined;
|
|
136
|
-
const
|
|
174
|
+
const unavailableChains = getUnavailableChainIdsForDirection({
|
|
137
175
|
config,
|
|
138
|
-
chains,
|
|
139
176
|
direction,
|
|
140
177
|
});
|
|
178
|
+
const availableChains = chains.filter((c) => !unavailableChains.has(c.chainId));
|
|
141
179
|
if (direction === "from" &&
|
|
142
180
|
config.initialAssets?.from &&
|
|
143
181
|
availableChains.some((c) => c.chainId === String(config.initialAssets?.from?.chainId))) {
|
|
@@ -151,13 +189,15 @@ export const getInitialChainIdFromConfig = ({ config, direction, chains = [], })
|
|
|
151
189
|
return undefined;
|
|
152
190
|
};
|
|
153
191
|
/**
|
|
154
|
-
* Returns the
|
|
192
|
+
* Returns the unavailable chains for a specific direction based on the provided config,
|
|
155
193
|
* filtering config.disabledChains and config.comingSoonChains
|
|
156
|
-
* @returns The
|
|
194
|
+
* @returns The unavailable chains for the specified direction.
|
|
157
195
|
*/
|
|
158
|
-
export const
|
|
196
|
+
export const getUnavailableChainIdsForDirection = ({ config, direction, }) => {
|
|
159
197
|
const disabledChainsForDirection = config.disabledChains?.[direction === "from" ? "source" : "destination"];
|
|
160
|
-
return
|
|
161
|
-
|
|
198
|
+
return new Set([
|
|
199
|
+
...(disabledChainsForDirection ?? []),
|
|
200
|
+
...(config.comingSoonChainIds ?? []),
|
|
201
|
+
]);
|
|
162
202
|
};
|
|
163
203
|
//# sourceMappingURL=configService.js.map
|