@0xsquid/react-hooks 2.1.0 → 2.1.2
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/constants.d.ts +0 -1
- package/dist/core/constants.js +0 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/queries/queries-keys.d.ts +2 -2
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/core/types/swap.d.ts +1 -1
- package/dist/hooks/store/useSquidStore.d.ts +8 -8
- package/dist/hooks/swap/useSwap.d.ts +4 -8
- package/dist/hooks/swap/useSwap.js +42 -68
- package/dist/hooks/swap/useSwap.js.map +1 -1
- package/dist/hooks/tokens/useSquidTokens.js +4 -5
- package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
- package/dist/hooks/transaction/useEstimate.d.ts +2 -0
- package/dist/hooks/transaction/useEstimate.js +5 -1
- package/dist/hooks/transaction/useEstimate.js.map +1 -1
- package/dist/hooks/transaction/useSingleTransaction.d.ts +1 -1
- package/dist/provider/index.js +1 -1
- package/dist/provider/index.js.map +1 -1
- package/dist/services/internal/assetsService.d.ts +29 -0
- package/dist/services/internal/assetsService.js +148 -0
- package/dist/services/internal/assetsService.js.map +1 -1
- package/dist/services/internal/configService.d.ts +22 -4
- package/dist/services/internal/configService.js +40 -15
- package/dist/services/internal/configService.js.map +1 -1
- package/dist/services/internal/transactionService.d.ts +1 -1
- package/dist/tests/configService.test.js +157 -82
- package/dist/tests/configService.test.js.map +1 -1
- package/dist/tests/swapConfig.test.d.ts +1 -0
- package/dist/tests/swapConfig.test.js +163 -0
- package/dist/tests/swapConfig.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ChainData, Token } from "@0xsquid/squid-types";
|
|
2
|
+
import { QueryClient } from "@tanstack/react-query";
|
|
2
3
|
import type { AppConfig } from "../../core/types/config";
|
|
4
|
+
import { SwapParams } from "../../core/types/swap";
|
|
3
5
|
export declare const shareSubgraphId: (token1: Token, token2: Token) => boolean;
|
|
4
6
|
/**
|
|
5
7
|
* Check if `tokenToCheck` shares any subgraph id with the tokens being compared
|
|
@@ -35,3 +37,30 @@ export declare const getDisabledChainsIds: ({ config, direction, }: {
|
|
|
35
37
|
direction?: "from" | "to" | undefined;
|
|
36
38
|
}) => string[];
|
|
37
39
|
export declare const getTokenImage: (token?: Token) => string | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* When user changes something from the SwapView
|
|
42
|
+
* param changed can be chains, tokens, or destination address
|
|
43
|
+
*
|
|
44
|
+
* If source chain is changed but source token is undefined, need to find a default token
|
|
45
|
+
* If destination chain is changed but destination token is undefined, need to find a default token
|
|
46
|
+
* If only source token is changed, and destination token is not, and they were the same, then destination token becomes undefined
|
|
47
|
+
* If only destination token is changed but source is not, and they were the same, then source token updates to something else
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
export declare const getNewSwapParamsFromInput: ({ inputParams, initialSwapRoute, tokens, chains, config, queryClient, connectedSourceAddress, }: {
|
|
51
|
+
inputParams: SwapParams;
|
|
52
|
+
initialSwapRoute?: SwapParams | undefined;
|
|
53
|
+
tokens: Token[];
|
|
54
|
+
chains: ChainData[];
|
|
55
|
+
config: Pick<AppConfig, "initialAssets" | "defaultTokensPerChain" | "comingSoonChainIds" | "disabledChains">;
|
|
56
|
+
queryClient: QueryClient;
|
|
57
|
+
connectedSourceAddress?: string | undefined;
|
|
58
|
+
}) => {
|
|
59
|
+
srcChainId: string | undefined;
|
|
60
|
+
sourceTokenAddress: string | undefined;
|
|
61
|
+
destinationChainId: string | undefined;
|
|
62
|
+
destinationTokenAddress: string | undefined;
|
|
63
|
+
destinationWalletAddress: string | undefined;
|
|
64
|
+
fbAddress: string | undefined;
|
|
65
|
+
};
|
|
66
|
+
export declare const sortAllTokens: (tokenA: Pick<Token, "address" | "symbol" | "chainId">, tokenB: Pick<Token, "address" | "symbol" | "chainId">) => number;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { destinationAddressResetValue, nativeEvmTokenAddress, } from "../../core/constants";
|
|
2
|
+
import { filterTokensForDestination, getInitialOrDefaultTokenAddressForChain, getTokensForChain, } from "./configService";
|
|
1
3
|
export const shareSubgraphId = (token1, token2) => {
|
|
2
4
|
return Boolean(token1?.subGraphIds?.some((sgi) => !!token2?.subGraphIds?.includes(sgi)) ||
|
|
3
5
|
token2?.subGraphIds?.some((sgi) => !!token1?.subGraphIds?.includes(sgi)));
|
|
@@ -62,4 +64,150 @@ export const getTokenImage = (token) => token?.logoURI?.includes("0xsquid/assets
|
|
|
62
64
|
.replace("raw.githubusercontent.com/0xsquid/assets/main/images/tokens/", "raw.githubusercontent.com/0xsquid/assets/6c331dd3d2e349cb0eedc6223f16890277984eb3/images/tokens/pngs/")
|
|
63
65
|
.replace(".svg", ".png")
|
|
64
66
|
: token?.logoURI;
|
|
67
|
+
/**
|
|
68
|
+
* Destination token address has different logic
|
|
69
|
+
* Some tokens are not available based on the source chain/token
|
|
70
|
+
*/
|
|
71
|
+
const handleDestinationAddressOnSwapChange = (fromChainId, fromTokenAddress, toTokenAddress, toChainId, swapRoute, chains, tokens, config) => {
|
|
72
|
+
const srcToken = tokens.find((t) => t.address === (fromTokenAddress ?? swapRoute?.fromTokenAddress) &&
|
|
73
|
+
t.chainId === fromChainId);
|
|
74
|
+
const destChain = chains.find((c) => c.chainId === (toChainId ?? swapRoute?.toChainId));
|
|
75
|
+
const removeSourceToken = fromChainId === toChainId;
|
|
76
|
+
const destinationTokensFiltered = filterTokensForDestination(getTokensForChain(tokens, toChainId ?? swapRoute?.toChainId), destChain, srcToken, removeSourceToken);
|
|
77
|
+
const defaultToAddress = getInitialOrDefaultTokenAddressForChain({
|
|
78
|
+
tokens: destinationTokensFiltered,
|
|
79
|
+
config,
|
|
80
|
+
chainId: toChainId ?? swapRoute?.toChainId,
|
|
81
|
+
direction: "to",
|
|
82
|
+
});
|
|
83
|
+
let destinationTokenAddress = toChainId && !toTokenAddress
|
|
84
|
+
? defaultToAddress
|
|
85
|
+
: toTokenAddress ?? swapRoute?.toTokenAddress;
|
|
86
|
+
if (destinationTokensFiltered.find((t) => t.address === destinationTokenAddress) === undefined) {
|
|
87
|
+
destinationTokenAddress = defaultToAddress;
|
|
88
|
+
}
|
|
89
|
+
return destinationTokenAddress;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* When user changes something from the SwapView
|
|
93
|
+
* param changed can be chains, tokens, or destination address
|
|
94
|
+
*
|
|
95
|
+
* If source chain is changed but source token is undefined, need to find a default token
|
|
96
|
+
* If destination chain is changed but destination token is undefined, need to find a default token
|
|
97
|
+
* If only source token is changed, and destination token is not, and they were the same, then destination token becomes undefined
|
|
98
|
+
* If only destination token is changed but source is not, and they were the same, then source token updates to something else
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
export const getNewSwapParamsFromInput = ({ inputParams, initialSwapRoute, tokens, chains, config, queryClient, connectedSourceAddress, }) => {
|
|
102
|
+
const { fromChainId, fromTokenAddress, toChainId, toTokenAddress, destinationAddress, fallbackAddress, } = inputParams;
|
|
103
|
+
const srcChainId = fromChainId ?? initialSwapRoute?.fromChainId;
|
|
104
|
+
const destinationChainId = toChainId ?? initialSwapRoute?.toChainId;
|
|
105
|
+
const defaultFromAddress = getInitialOrDefaultTokenAddressForChain({
|
|
106
|
+
tokens,
|
|
107
|
+
config,
|
|
108
|
+
chainId: srcChainId,
|
|
109
|
+
direction: "from",
|
|
110
|
+
excludeToken: toTokenAddress
|
|
111
|
+
? {
|
|
112
|
+
address: toTokenAddress,
|
|
113
|
+
chainId: destinationChainId ?? "",
|
|
114
|
+
}
|
|
115
|
+
: undefined,
|
|
116
|
+
fetchCachedBalance: {
|
|
117
|
+
address: connectedSourceAddress,
|
|
118
|
+
queryClient,
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
// Source token has been changed but not destination
|
|
122
|
+
const onlySourceChanged = (!!fromChainId || !!fromTokenAddress) && !toChainId && !toTokenAddress;
|
|
123
|
+
const onlySourceChainIdChanged = onlySourceChanged && !fromTokenAddress;
|
|
124
|
+
// Source is set to the same token as previous destination
|
|
125
|
+
const sameNewSourceAndInitialDest = onlySourceChanged &&
|
|
126
|
+
srcChainId === initialSwapRoute?.toChainId &&
|
|
127
|
+
fromTokenAddress === initialSwapRoute?.toTokenAddress;
|
|
128
|
+
// Destination token has been changed but not source
|
|
129
|
+
const onlyDestChanged = (!!toChainId || !!toTokenAddress) && !fromChainId && !fromTokenAddress;
|
|
130
|
+
// Destination is set to the same token as previous source
|
|
131
|
+
const sameNewDestAndInitialSource = onlyDestChanged &&
|
|
132
|
+
destinationChainId === initialSwapRoute?.fromChainId &&
|
|
133
|
+
toTokenAddress === initialSwapRoute?.fromTokenAddress;
|
|
134
|
+
const sourceTokenAddress = sameNewDestAndInitialSource || onlySourceChainIdChanged
|
|
135
|
+
? defaultFromAddress
|
|
136
|
+
: fromTokenAddress ?? initialSwapRoute?.fromTokenAddress;
|
|
137
|
+
let destinationTokenAddress = undefined;
|
|
138
|
+
if (!sameNewSourceAndInitialDest) {
|
|
139
|
+
destinationTokenAddress = handleDestinationAddressOnSwapChange(srcChainId, sourceTokenAddress, toTokenAddress, toChainId, initialSwapRoute, chains, tokens, config);
|
|
140
|
+
}
|
|
141
|
+
// USER DESTINATION ADDRESS
|
|
142
|
+
const destinationWalletAddress = destinationAddress === destinationAddressResetValue
|
|
143
|
+
? undefined
|
|
144
|
+
: destinationAddress ?? initialSwapRoute?.destinationAddress;
|
|
145
|
+
const fbAddress = destinationAddress === destinationAddressResetValue ||
|
|
146
|
+
(!!destinationAddress && !fallbackAddress)
|
|
147
|
+
? undefined
|
|
148
|
+
: fallbackAddress ?? initialSwapRoute?.fallbackAddress;
|
|
149
|
+
return {
|
|
150
|
+
srcChainId,
|
|
151
|
+
sourceTokenAddress,
|
|
152
|
+
destinationChainId,
|
|
153
|
+
destinationTokenAddress,
|
|
154
|
+
destinationWalletAddress,
|
|
155
|
+
fbAddress,
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
/* Sorts tokens based on the following order:
|
|
159
|
+
* 1. Native token on chain ID "1" (Ethereum) comes first.
|
|
160
|
+
* 2. Other native tokens are sorted by their chain ID priority based on market cap:
|
|
161
|
+
* - Ethereum (1)
|
|
162
|
+
* - BNB (56)
|
|
163
|
+
* - AVAX (43114)
|
|
164
|
+
* - Polygon (137)
|
|
165
|
+
* - Filecoin (314)
|
|
166
|
+
* - Arbitrum (42161)
|
|
167
|
+
* - Optimism (10)
|
|
168
|
+
* - Fantom (250)
|
|
169
|
+
* 3. Tokens with symbols "USDC", "USDT", and "axlUSDC" are sorted in that order.
|
|
170
|
+
* 4. If none of the above conditions are met, tokens are sorted by their symbol names.
|
|
171
|
+
*/
|
|
172
|
+
export const sortAllTokens = (tokenA, tokenB) => {
|
|
173
|
+
const chainIdMcapPriority = [
|
|
174
|
+
"1",
|
|
175
|
+
"56",
|
|
176
|
+
"43114",
|
|
177
|
+
"137",
|
|
178
|
+
"314",
|
|
179
|
+
"42161",
|
|
180
|
+
"10",
|
|
181
|
+
"250", // Fantom
|
|
182
|
+
];
|
|
183
|
+
const getChainIdPriority = (chainId) => {
|
|
184
|
+
const index = chainIdMcapPriority.indexOf(chainId);
|
|
185
|
+
return index === -1 ? Number.MAX_SAFE_INTEGER : index;
|
|
186
|
+
};
|
|
187
|
+
const isNative = (token) => {
|
|
188
|
+
return token.address.toLowerCase() === nativeEvmTokenAddress;
|
|
189
|
+
};
|
|
190
|
+
if (isNative(tokenA) && isNative(tokenB)) {
|
|
191
|
+
return (getChainIdPriority(tokenA.chainId) - getChainIdPriority(tokenB.chainId));
|
|
192
|
+
}
|
|
193
|
+
if (isNative(tokenA)) {
|
|
194
|
+
return -1;
|
|
195
|
+
}
|
|
196
|
+
if (isNative(tokenB)) {
|
|
197
|
+
return 1;
|
|
198
|
+
}
|
|
199
|
+
const tokenPriority = ["USDC", "USDT", "axlUSDC"];
|
|
200
|
+
const indexA = tokenPriority.indexOf(tokenA.symbol);
|
|
201
|
+
const indexB = tokenPriority.indexOf(tokenB.symbol);
|
|
202
|
+
if (indexA !== -1 && indexB !== -1) {
|
|
203
|
+
return indexA - indexB;
|
|
204
|
+
}
|
|
205
|
+
if (indexA !== -1) {
|
|
206
|
+
return -1;
|
|
207
|
+
}
|
|
208
|
+
if (indexB !== -1) {
|
|
209
|
+
return 1;
|
|
210
|
+
}
|
|
211
|
+
return tokenA.symbol.localeCompare(tokenB.symbol);
|
|
212
|
+
};
|
|
65
213
|
//# sourceMappingURL=assetsService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetsService.js","sourceRoot":"","sources":["../../../src/services/internal/assetsService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assetsService.js","sourceRoot":"","sources":["../../../src/services/internal/assetsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ChainData, type Token } from "@0xsquid/squid-types";
|
|
2
|
+
import { QueryClient } from "@tanstack/react-query";
|
|
2
3
|
import type { AppConfig } from "../../core/types/config";
|
|
3
4
|
export declare const getConfigWithDefaults: (config: AppConfig | undefined) => AppConfig;
|
|
4
5
|
export declare const randomIntFromInterval: (min: number, max: number) => number;
|
|
@@ -9,6 +10,10 @@ export declare const getTokensForChain: (tokens: Token[], chainId: number | stri
|
|
|
9
10
|
* @returns The first available chain ID.
|
|
10
11
|
*/
|
|
11
12
|
export declare const getFirstAvailableChainId: (config: Pick<AppConfig, "disabledChains" | "comingSoonChainIds" | "initialAssets">, direction: "from" | "to", chains?: ChainData[] | undefined) => string | undefined;
|
|
13
|
+
export declare const fetchHighestBalanceToken: (fetchCachedBalance?: {
|
|
14
|
+
address?: string;
|
|
15
|
+
queryClient?: QueryClient;
|
|
16
|
+
}, chainId?: string) => string | undefined;
|
|
12
17
|
/**
|
|
13
18
|
* Returns the default token address for a specific chain and direction based on config.
|
|
14
19
|
* If no default tokens are set in config, returns the first token in the tokens array for the specified chain
|
|
@@ -20,7 +25,20 @@ export declare const getFirstAvailableChainId: (config: Pick<AppConfig, "disable
|
|
|
20
25
|
* @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
26
|
* @returns
|
|
22
27
|
*/
|
|
23
|
-
export declare const getInitialOrDefaultTokenAddressForChain: (tokens
|
|
28
|
+
export declare const getInitialOrDefaultTokenAddressForChain: ({ tokens, config, chainId, direction, excludeToken, fetchCachedBalance, }: {
|
|
29
|
+
tokens: Token[];
|
|
30
|
+
config: Pick<AppConfig, "initialAssets" | "defaultTokensPerChain" | "comingSoonChainIds" | "disabledChains">;
|
|
31
|
+
chainId: string | undefined;
|
|
32
|
+
direction: "from" | "to";
|
|
33
|
+
excludeToken?: {
|
|
34
|
+
address?: string | undefined;
|
|
35
|
+
chainId?: string | undefined;
|
|
36
|
+
} | undefined;
|
|
37
|
+
fetchCachedBalance?: {
|
|
38
|
+
address?: string | undefined;
|
|
39
|
+
queryClient?: QueryClient | undefined;
|
|
40
|
+
} | undefined;
|
|
41
|
+
}) => string | undefined;
|
|
24
42
|
/**
|
|
25
43
|
* Retrieves the initial token address for a specific chain and direction.
|
|
26
44
|
* If no initial assets are set in config, returns undefined.
|
|
@@ -49,11 +67,11 @@ export declare const getInitialTokenAddressForChain: ({ chainId, config, directi
|
|
|
49
67
|
* OR Destination token list shows all tokens with the same commonKey as fromToken
|
|
50
68
|
* @param tokens
|
|
51
69
|
* @param selectedDestinationChain
|
|
52
|
-
* @param selectedSourceChainID
|
|
53
70
|
* @param selectedSourceToken
|
|
71
|
+
* @param removeSourceToken
|
|
54
72
|
* @returns
|
|
55
73
|
*/
|
|
56
|
-
export declare const filterTokensForDestination: <T extends Token>(tokens: T[], selectedDestinationChain: ChainData | undefined, selectedSourceToken: Token | undefined) => T[];
|
|
74
|
+
export declare const filterTokensForDestination: <T extends Token>(tokens: T[], selectedDestinationChain: ChainData | undefined, selectedSourceToken: Token | undefined, removeSourceToken?: boolean) => T[];
|
|
57
75
|
/**
|
|
58
76
|
* Returns the initial chain ID for a specific direction based on the provided chains and config.
|
|
59
77
|
* @returns The initial chain ID if found in config; otherwise, undefined.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChainType } from "@0xsquid/squid-types";
|
|
2
2
|
import get from "lodash/get";
|
|
3
3
|
import { defaultConfigValues } from "../../core/constants";
|
|
4
|
+
import { keys } from "../../core/queries/queries-keys";
|
|
4
5
|
import { shareSubgraphId } from "./assetsService";
|
|
5
6
|
export const getConfigWithDefaults = (config) => {
|
|
6
7
|
return {
|
|
@@ -56,6 +57,26 @@ export const getFirstAvailableChainId = (config, direction, chains = []) => {
|
|
|
56
57
|
// if no initial chain ID is found in config, return the first available chain ID
|
|
57
58
|
return availableChains.length > 0 ? availableChains[0].chainId : undefined;
|
|
58
59
|
};
|
|
60
|
+
export const fetchHighestBalanceToken = (fetchCachedBalance, chainId) => {
|
|
61
|
+
let address = undefined;
|
|
62
|
+
if (fetchCachedBalance) {
|
|
63
|
+
const queryCache = fetchCachedBalance?.queryClient?.getQueryCache();
|
|
64
|
+
// get cached balance from key
|
|
65
|
+
const cache = queryCache?.find(keys().allTokensBalance(fetchCachedBalance?.address, !isNaN(Number(chainId)) ? ChainType.EVM : ChainType.COSMOS));
|
|
66
|
+
// Parse result to TokenWithBalance[]
|
|
67
|
+
const cacheResult = cache?.state.data ?? [];
|
|
68
|
+
if (cacheResult.length > 0) {
|
|
69
|
+
const token = cacheResult.filter((t) => t.chainId === chainId && Number(t.balance) > 0);
|
|
70
|
+
// Return the token with the highest balance
|
|
71
|
+
// TODO: At the moment we're not taking into account usd price
|
|
72
|
+
const tokenWithHighestBalance = token.reduce((prev, current) => Number(prev.balance) > Number(current.balance) ? prev : current);
|
|
73
|
+
if (tokenWithHighestBalance) {
|
|
74
|
+
address = tokenWithHighestBalance.address;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return address;
|
|
79
|
+
};
|
|
59
80
|
/**
|
|
60
81
|
* Returns the default token address for a specific chain and direction based on config.
|
|
61
82
|
* If no default tokens are set in config, returns the first token in the tokens array for the specified chain
|
|
@@ -67,7 +88,7 @@ export const getFirstAvailableChainId = (config, direction, chains = []) => {
|
|
|
67
88
|
* @param unavailableTokenAddress The token that is unavailable. Can be useful when we don't want to show the same token in the opposite direction
|
|
68
89
|
* @returns
|
|
69
90
|
*/
|
|
70
|
-
export const getInitialOrDefaultTokenAddressForChain = (tokens, config, chainId, direction,
|
|
91
|
+
export const getInitialOrDefaultTokenAddressForChain = ({ tokens, config, chainId, direction, excludeToken, fetchCachedBalance, }) => {
|
|
71
92
|
if (!chainId)
|
|
72
93
|
return;
|
|
73
94
|
const unavailableChainIds = getUnavailableChainIdsForDirection({
|
|
@@ -77,11 +98,12 @@ export const getInitialOrDefaultTokenAddressForChain = (tokens, config, chainId,
|
|
|
77
98
|
// filter disabled chains
|
|
78
99
|
if (unavailableChainIds.has(chainId))
|
|
79
100
|
return;
|
|
80
|
-
const
|
|
101
|
+
const configDefaultTokenForChain = config.defaultTokensPerChain?.find((token) => token.chainId == chainId);
|
|
81
102
|
// get default token from config
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
|
|
103
|
+
if (configDefaultTokenForChain &&
|
|
104
|
+
configDefaultTokenForChain.address !== excludeToken?.address &&
|
|
105
|
+
configDefaultTokenForChain.chainId !== excludeToken?.chainId) {
|
|
106
|
+
return configDefaultTokenForChain.address;
|
|
85
107
|
}
|
|
86
108
|
// if no default token is found in config, try to get initial token
|
|
87
109
|
const initialToken = getInitialTokenAddressForChain({
|
|
@@ -92,8 +114,13 @@ export const getInitialOrDefaultTokenAddressForChain = (tokens, config, chainId,
|
|
|
92
114
|
});
|
|
93
115
|
if (initialToken)
|
|
94
116
|
return initialToken;
|
|
117
|
+
// At this point all has been tried to return via config params
|
|
118
|
+
// But we can be smarter and see if a token has a balance and select that one
|
|
119
|
+
const highestBalance = fetchHighestBalanceToken(fetchCachedBalance, chainId);
|
|
120
|
+
if (highestBalance)
|
|
121
|
+
return highestBalance;
|
|
95
122
|
const filteredTokens = chainId
|
|
96
|
-
? tokens.filter((t) => t.chainId === chainId && t.address !==
|
|
123
|
+
? tokens.filter((t) => t.chainId === chainId && t.address !== excludeToken?.address)
|
|
97
124
|
: tokens;
|
|
98
125
|
return filteredTokens.length > 0 ? filteredTokens[0].address : undefined;
|
|
99
126
|
};
|
|
@@ -139,28 +166,26 @@ export const getInitialTokenAddressForChain = ({ chainId, config, direction, tok
|
|
|
139
166
|
* OR Destination token list shows all tokens with the same commonKey as fromToken
|
|
140
167
|
* @param tokens
|
|
141
168
|
* @param selectedDestinationChain
|
|
142
|
-
* @param selectedSourceChainID
|
|
143
169
|
* @param selectedSourceToken
|
|
170
|
+
* @param removeSourceToken
|
|
144
171
|
* @returns
|
|
145
172
|
*/
|
|
146
|
-
export const filterTokensForDestination = (tokens, selectedDestinationChain, selectedSourceToken) => {
|
|
173
|
+
export const filterTokensForDestination = (tokens, selectedDestinationChain, selectedSourceToken, removeSourceToken = false) => {
|
|
147
174
|
let filteredTokens = [];
|
|
148
175
|
if (selectedSourceToken?.subGraphOnly) {
|
|
149
176
|
filteredTokens = tokens.filter((t) => shareSubgraphId(t, selectedSourceToken));
|
|
150
177
|
}
|
|
151
178
|
filteredTokens = tokens.filter((t) => !t.subGraphOnly || shareSubgraphId(t, selectedSourceToken));
|
|
152
|
-
// We don't want to show the same source token & chain in the destination list
|
|
153
|
-
// except for Cosmos swaps
|
|
154
179
|
return filteredTokens.filter((t) => {
|
|
155
180
|
const areSameToken = t.address === selectedSourceToken?.address &&
|
|
156
181
|
t.chainId === selectedSourceToken.chainId;
|
|
157
|
-
|
|
158
|
-
// If no destination chain is provided, return all tokens
|
|
159
|
-
const isValidChain = !!selectedDestinationChain
|
|
182
|
+
const isChainValid = !!selectedDestinationChain
|
|
160
183
|
? t.chainId === selectedDestinationChain?.chainId
|
|
161
184
|
: true;
|
|
162
|
-
|
|
163
|
-
|
|
185
|
+
if (removeSourceToken)
|
|
186
|
+
return !areSameToken && isChainValid;
|
|
187
|
+
// return all tokens if destination chain is not selected
|
|
188
|
+
return isChainValid;
|
|
164
189
|
});
|
|
165
190
|
};
|
|
166
191
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configService.js","sourceRoot":"","sources":["../../../src/services/internal/configService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configService.js","sourceRoot":"","sources":["../../../src/services/internal/configService.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ export declare const formatTxForStorage: (tx: SimplifiedTransactionHistory) => {
|
|
|
53
53
|
sourceTxExplorerUrl?: string | undefined;
|
|
54
54
|
};
|
|
55
55
|
export declare const fetchTransactionStatus: ({ transaction, integratorId, currentRequestId, }: {
|
|
56
|
-
transaction?: Pick<SimplifiedTransactionHistory, "
|
|
56
|
+
transaction?: Pick<SimplifiedTransactionHistory, "transactionId" | "status" | "fromChain" | "toChain"> | undefined;
|
|
57
57
|
integratorId: string;
|
|
58
58
|
currentRequestId?: string | undefined;
|
|
59
59
|
}) => Promise<StatusResponse>;
|