@0xsquid/react-hooks 3.0.26 → 3.0.27-beta.0
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 +4 -0
- package/dist/core/constants.js +4 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/core/providers/CosmosProvider.d.ts +1 -2
- package/dist/core/queries/queries-keys.d.ts +3 -1
- package/dist/core/queries/queries-keys.js +6 -0
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/hooks/cosmos/useCosmos.d.ts +1 -3
- package/dist/hooks/cosmos/useCosmos.js +21 -27
- package/dist/hooks/cosmos/useCosmos.js.map +1 -1
- package/dist/hooks/index.d.ts +3 -2
- package/dist/hooks/index.js +3 -2
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/store/useWalletStore.d.ts +16 -0
- package/dist/hooks/store/useWalletStore.js +34 -0
- package/dist/hooks/store/useWalletStore.js.map +1 -0
- package/dist/hooks/tokens/useAllConnectedWalletBalances.d.ts +67 -0
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js +33 -0
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -0
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +35 -34
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
- package/dist/hooks/tokens/useBalance.d.ts +249 -8
- package/dist/hooks/tokens/useBalance.js +32 -82
- package/dist/hooks/tokens/useBalance.js.map +1 -1
- package/dist/hooks/tokens/useMultiChainBalance.d.ts +1 -1
- package/dist/hooks/tokens/useMultiChainBalance.js +19 -6
- package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
- package/dist/hooks/tokens/useNativeBalance.d.ts +14 -0
- package/dist/hooks/tokens/useNativeBalance.js +71 -0
- package/dist/hooks/tokens/useNativeBalance.js.map +1 -0
- package/dist/hooks/transaction/useEstimate.js +2 -2
- package/dist/hooks/transaction/useEstimate.js.map +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.js +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
- package/dist/hooks/wallet/useMultiChainWallet.d.ts +2 -1
- package/dist/hooks/wallet/useMultiChainWallet.js +26 -28
- package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
- package/dist/hooks/wallet/useWallet.d.ts +13 -5
- package/dist/hooks/wallet/useWallet.js +68 -58
- package/dist/hooks/wallet/useWallet.js.map +1 -1
- package/dist/services/external/rpcService.js +2 -2
- package/dist/services/external/rpcService.js.map +1 -1
- package/dist/services/external/secretService.js +2 -2
- package/dist/services/external/secretService.js.map +1 -1
- package/dist/services/internal/assetsService.d.ts +1 -0
- package/dist/services/internal/assetsService.js +14 -2
- package/dist/services/internal/assetsService.js.map +1 -1
- package/dist/services/internal/walletService.d.ts +29 -3
- package/dist/services/internal/walletService.js +57 -3
- package/dist/services/internal/walletService.js.map +1 -1
- package/dist/tests/fetchSquidData.js +1 -1
- package/dist/tests/fetchSquidData.js.map +1 -1
- package/dist/tests/swapConfig.test.js +1 -1
- package/dist/tests/swapConfig.test.js.map +1 -1
- package/package.json +3 -3
- package/dist/hooks/tokens/useTokensWithBalance.d.ts +0 -7
- package/dist/hooks/tokens/useTokensWithBalance.js +0 -53
- package/dist/hooks/tokens/useTokensWithBalance.js.map +0 -1
|
@@ -10,10 +10,11 @@ import { useSquidTokens } from "./useSquidTokens";
|
|
|
10
10
|
export const useAllTokensWithBalanceForChainType = ({ chainType, address, queryOptions, }) => {
|
|
11
11
|
const { cosmosChains, chains } = useSquidChains();
|
|
12
12
|
const { evmTokens, cosmosTokens } = useSquidTokens();
|
|
13
|
-
const { keplrTypeWallet
|
|
13
|
+
const { keplrTypeWallet } = useCosmosContext();
|
|
14
14
|
const tokensWithZeroBalance = useMemo(() => ({
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
[ChainType.EVM]: evmTokens.map((t) => ({ ...t, balance: "0" })),
|
|
16
|
+
[ChainType.COSMOS]: cosmosTokens.map((t) => ({ ...t, balance: "0" })),
|
|
17
|
+
[ChainType.BTC]: [],
|
|
17
18
|
}), [evmTokens, cosmosTokens]);
|
|
18
19
|
const evmTokensQuery = useQuery(keys().allTokensBalance(address, ChainType.EVM), async () => {
|
|
19
20
|
const evmTokensBalances = await getAllEvmTokensBalance(evmTokens, address, chains);
|
|
@@ -24,7 +25,7 @@ export const useAllTokensWithBalanceForChainType = ({ chainType, address, queryO
|
|
|
24
25
|
!!address &&
|
|
25
26
|
(queryOptions?.enabled ?? true),
|
|
26
27
|
});
|
|
27
|
-
const cosmosTokensQuery = useQuery(keys().allTokensBalance(
|
|
28
|
+
const cosmosTokensQuery = useQuery(keys().allTokensBalance(address, ChainType.COSMOS), async () => {
|
|
28
29
|
const addresses = await getAllKeysForSupportedCosmosChains(cosmosChains.map((c) => c.chainId), keplrTypeWallet);
|
|
29
30
|
const cosmosBalances = await getAllCosmosBalancesForAddress({
|
|
30
31
|
addresses,
|
|
@@ -35,43 +36,43 @@ export const useAllTokensWithBalanceForChainType = ({ chainType, address, queryO
|
|
|
35
36
|
}, {
|
|
36
37
|
...queryOptions,
|
|
37
38
|
enabled: chainType === ChainType.COSMOS &&
|
|
38
|
-
!!
|
|
39
|
+
!!address &&
|
|
39
40
|
(queryOptions?.enabled ?? true),
|
|
40
41
|
});
|
|
41
|
-
// We want tokens with balance for desired chainType and the other chainType with zero balance
|
|
42
|
-
// This way frontend can still display all tokens no matter the chainType
|
|
43
42
|
const tokensWithBalanceQuery = useMemo(() => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
...evmTokensQuery,
|
|
56
|
-
data: [
|
|
57
|
-
...(evmTokensQuery.data ?? tokensWithZeroBalance.evm),
|
|
58
|
-
...tokensWithZeroBalance.cosmos,
|
|
59
|
-
],
|
|
60
|
-
};
|
|
43
|
+
let baseQuery;
|
|
44
|
+
switch (chainType) {
|
|
45
|
+
case ChainType.COSMOS:
|
|
46
|
+
baseQuery = cosmosTokensQuery;
|
|
47
|
+
break;
|
|
48
|
+
case ChainType.EVM:
|
|
49
|
+
baseQuery = evmTokensQuery;
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
baseQuery = { data: tokensWithZeroBalance[ChainType.EVM] };
|
|
61
53
|
}
|
|
62
|
-
// Kind of a hack reusing evmTokensQuery just have the full type of react-query returned
|
|
63
|
-
// Putting tokens with zero balance for all chainTypes
|
|
64
54
|
return {
|
|
65
|
-
...
|
|
66
|
-
isLoading: false,
|
|
67
|
-
isSuccess: true,
|
|
68
|
-
data:
|
|
55
|
+
...baseQuery,
|
|
56
|
+
isLoading: chainType ? baseQuery.isLoading : false,
|
|
57
|
+
isSuccess: chainType ? baseQuery.isSuccess : true,
|
|
58
|
+
data: baseQuery.data ??
|
|
59
|
+
tokensWithZeroBalance[chainType ?? ChainType.EVM] ??
|
|
60
|
+
[],
|
|
69
61
|
};
|
|
70
62
|
}, [chainType, cosmosTokensQuery, evmTokensQuery, tokensWithZeroBalance]);
|
|
71
|
-
const tokens = useMemo(() =>
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
const tokens = useMemo(() => {
|
|
64
|
+
if (!chainType) {
|
|
65
|
+
return [
|
|
66
|
+
...tokensWithZeroBalance[ChainType.EVM],
|
|
67
|
+
...tokensWithZeroBalance[ChainType.COSMOS],
|
|
68
|
+
...tokensWithZeroBalance[ChainType.BTC],
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
const selectedChainTokens = tokensWithBalanceQuery.data ?? tokensWithZeroBalance[chainType];
|
|
72
|
+
const otherChainTypes = Object.values(ChainType).filter((type) => type !== chainType);
|
|
73
|
+
const otherChainTokens = otherChainTypes.flatMap((type) => tokensWithZeroBalance[type]);
|
|
74
|
+
return [...selectedChainTokens, ...otherChainTokens];
|
|
75
|
+
}, [tokensWithBalanceQuery.data, tokensWithZeroBalance, chainType]);
|
|
75
76
|
const totalUsdBalance = useMemo(() => calculateTotalUsdBalanceUSD(tokens), [tokens]);
|
|
76
77
|
return {
|
|
77
78
|
tokensWithBalanceQuery,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGL,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,EAClD,SAAS,EACT,OAAO,EACP,YAAY,GAKb,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAClD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC;IACrD,MAAM,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,18 +7,259 @@ export declare const useEvmBalance: ({ chain, token, userAddress, enabled, refre
|
|
|
7
7
|
refreshIntervalMs?: number | undefined;
|
|
8
8
|
}) => {
|
|
9
9
|
balance: string;
|
|
10
|
+
data: {
|
|
11
|
+
decimals: number;
|
|
12
|
+
formatted: string;
|
|
13
|
+
symbol: string;
|
|
14
|
+
value: bigint;
|
|
15
|
+
};
|
|
16
|
+
error: import("viem").GetBalanceErrorType;
|
|
17
|
+
isError: true;
|
|
18
|
+
isLoading: false;
|
|
19
|
+
isLoadingError: false;
|
|
20
|
+
isRefetchError: true;
|
|
21
|
+
isSuccess: false;
|
|
22
|
+
status: "error";
|
|
23
|
+
dataUpdatedAt: number;
|
|
24
|
+
errorUpdatedAt: number;
|
|
25
|
+
failureCount: number;
|
|
26
|
+
failureReason: import("viem").GetBalanceErrorType | null;
|
|
27
|
+
errorUpdateCount: number;
|
|
28
|
+
isFetched: boolean;
|
|
29
|
+
isFetchedAfterMount: boolean;
|
|
30
|
+
isFetching: boolean;
|
|
31
|
+
isInitialLoading: boolean;
|
|
32
|
+
isPaused: boolean;
|
|
33
|
+
isPlaceholderData: boolean;
|
|
34
|
+
isPreviousData: boolean;
|
|
35
|
+
isRefetching: boolean;
|
|
36
|
+
isStale: boolean;
|
|
37
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
|
|
38
|
+
decimals: number;
|
|
39
|
+
formatted: string;
|
|
40
|
+
symbol: string;
|
|
41
|
+
value: bigint;
|
|
42
|
+
}, import("viem").GetBalanceErrorType>>;
|
|
43
|
+
remove: () => void;
|
|
44
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
45
|
+
queryKey: import("@tanstack/react-query").QueryKey;
|
|
46
|
+
} | {
|
|
47
|
+
balance: string;
|
|
48
|
+
data: {
|
|
49
|
+
decimals: number;
|
|
50
|
+
formatted: string;
|
|
51
|
+
symbol: string;
|
|
52
|
+
value: bigint;
|
|
53
|
+
};
|
|
54
|
+
error: null;
|
|
55
|
+
isError: false;
|
|
56
|
+
isLoading: false;
|
|
57
|
+
isLoadingError: false;
|
|
58
|
+
isRefetchError: false;
|
|
59
|
+
isSuccess: true;
|
|
60
|
+
status: "success";
|
|
61
|
+
dataUpdatedAt: number;
|
|
62
|
+
errorUpdatedAt: number;
|
|
63
|
+
failureCount: number;
|
|
64
|
+
failureReason: import("viem").GetBalanceErrorType | null;
|
|
65
|
+
errorUpdateCount: number;
|
|
66
|
+
isFetched: boolean;
|
|
67
|
+
isFetchedAfterMount: boolean;
|
|
68
|
+
isFetching: boolean;
|
|
69
|
+
isInitialLoading: boolean;
|
|
70
|
+
isPaused: boolean;
|
|
71
|
+
isPlaceholderData: boolean;
|
|
72
|
+
isPreviousData: boolean;
|
|
73
|
+
isRefetching: boolean;
|
|
74
|
+
isStale: boolean;
|
|
75
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
|
|
76
|
+
decimals: number;
|
|
77
|
+
formatted: string;
|
|
78
|
+
symbol: string;
|
|
79
|
+
value: bigint;
|
|
80
|
+
}, import("viem").GetBalanceErrorType>>;
|
|
81
|
+
remove: () => void;
|
|
82
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
83
|
+
queryKey: import("@tanstack/react-query").QueryKey;
|
|
84
|
+
} | {
|
|
85
|
+
balance: string;
|
|
86
|
+
data: undefined;
|
|
87
|
+
error: import("viem").GetBalanceErrorType;
|
|
88
|
+
isError: true;
|
|
89
|
+
isLoading: false;
|
|
90
|
+
isLoadingError: true;
|
|
91
|
+
isRefetchError: false;
|
|
92
|
+
isSuccess: false;
|
|
93
|
+
status: "error";
|
|
94
|
+
dataUpdatedAt: number;
|
|
95
|
+
errorUpdatedAt: number;
|
|
96
|
+
failureCount: number;
|
|
97
|
+
failureReason: import("viem").GetBalanceErrorType | null;
|
|
98
|
+
errorUpdateCount: number;
|
|
99
|
+
isFetched: boolean;
|
|
100
|
+
isFetchedAfterMount: boolean;
|
|
101
|
+
isFetching: boolean;
|
|
102
|
+
isInitialLoading: boolean;
|
|
103
|
+
isPaused: boolean;
|
|
104
|
+
isPlaceholderData: boolean;
|
|
105
|
+
isPreviousData: boolean;
|
|
106
|
+
isRefetching: boolean;
|
|
107
|
+
isStale: boolean;
|
|
108
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
|
|
109
|
+
decimals: number;
|
|
110
|
+
formatted: string;
|
|
111
|
+
symbol: string;
|
|
112
|
+
value: bigint;
|
|
113
|
+
}, import("viem").GetBalanceErrorType>>;
|
|
114
|
+
remove: () => void;
|
|
115
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
116
|
+
queryKey: import("@tanstack/react-query").QueryKey;
|
|
117
|
+
} | {
|
|
118
|
+
balance: string;
|
|
119
|
+
data: undefined;
|
|
120
|
+
error: null;
|
|
121
|
+
isError: false;
|
|
122
|
+
isLoading: true;
|
|
123
|
+
isLoadingError: false;
|
|
124
|
+
isRefetchError: false;
|
|
125
|
+
isSuccess: false;
|
|
126
|
+
status: "loading";
|
|
127
|
+
dataUpdatedAt: number;
|
|
128
|
+
errorUpdatedAt: number;
|
|
129
|
+
failureCount: number;
|
|
130
|
+
failureReason: import("viem").GetBalanceErrorType | null;
|
|
131
|
+
errorUpdateCount: number;
|
|
132
|
+
isFetched: boolean;
|
|
133
|
+
isFetchedAfterMount: boolean;
|
|
134
|
+
isFetching: boolean;
|
|
135
|
+
isInitialLoading: boolean;
|
|
136
|
+
isPaused: boolean;
|
|
137
|
+
isPlaceholderData: boolean;
|
|
138
|
+
isPreviousData: boolean;
|
|
139
|
+
isRefetching: boolean;
|
|
140
|
+
isStale: boolean;
|
|
141
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<{
|
|
142
|
+
decimals: number;
|
|
143
|
+
formatted: string;
|
|
144
|
+
symbol: string;
|
|
145
|
+
value: bigint;
|
|
146
|
+
}, import("viem").GetBalanceErrorType>>;
|
|
147
|
+
remove: () => void;
|
|
148
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
149
|
+
queryKey: import("@tanstack/react-query").QueryKey;
|
|
10
150
|
};
|
|
11
|
-
export declare const useCosmosBalance: ({ chainData, token, userAddress, }: {
|
|
151
|
+
export declare const useCosmosBalance: ({ chainData, token, userAddress, enabled, refreshIntervalMs, }: {
|
|
12
152
|
chainData: CosmosChain | undefined;
|
|
13
153
|
token?: Token | undefined;
|
|
14
154
|
userAddress?: string | undefined;
|
|
155
|
+
enabled?: boolean | undefined;
|
|
156
|
+
refreshIntervalMs?: number | undefined;
|
|
15
157
|
}) => {
|
|
16
158
|
balance: string;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
159
|
+
data: string;
|
|
160
|
+
error: unknown;
|
|
161
|
+
isError: true;
|
|
162
|
+
isLoading: false;
|
|
163
|
+
isLoadingError: false;
|
|
164
|
+
isRefetchError: true;
|
|
165
|
+
isSuccess: false;
|
|
166
|
+
status: "error";
|
|
167
|
+
dataUpdatedAt: number;
|
|
168
|
+
errorUpdatedAt: number;
|
|
169
|
+
failureCount: number;
|
|
170
|
+
failureReason: unknown;
|
|
171
|
+
errorUpdateCount: number;
|
|
172
|
+
isFetched: boolean;
|
|
173
|
+
isFetchedAfterMount: boolean;
|
|
174
|
+
isFetching: boolean;
|
|
175
|
+
isInitialLoading: boolean;
|
|
176
|
+
isPaused: boolean;
|
|
177
|
+
isPlaceholderData: boolean;
|
|
178
|
+
isPreviousData: boolean;
|
|
179
|
+
isRefetching: boolean;
|
|
180
|
+
isStale: boolean;
|
|
181
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
|
|
182
|
+
remove: () => void;
|
|
183
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
184
|
+
} | {
|
|
185
|
+
balance: string;
|
|
186
|
+
data: string;
|
|
187
|
+
error: null;
|
|
188
|
+
isError: false;
|
|
189
|
+
isLoading: false;
|
|
190
|
+
isLoadingError: false;
|
|
191
|
+
isRefetchError: false;
|
|
192
|
+
isSuccess: true;
|
|
193
|
+
status: "success";
|
|
194
|
+
dataUpdatedAt: number;
|
|
195
|
+
errorUpdatedAt: number;
|
|
196
|
+
failureCount: number;
|
|
197
|
+
failureReason: unknown;
|
|
198
|
+
errorUpdateCount: number;
|
|
199
|
+
isFetched: boolean;
|
|
200
|
+
isFetchedAfterMount: boolean;
|
|
201
|
+
isFetching: boolean;
|
|
202
|
+
isInitialLoading: boolean;
|
|
203
|
+
isPaused: boolean;
|
|
204
|
+
isPlaceholderData: boolean;
|
|
205
|
+
isPreviousData: boolean;
|
|
206
|
+
isRefetching: boolean;
|
|
207
|
+
isStale: boolean;
|
|
208
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
|
|
209
|
+
remove: () => void;
|
|
210
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
211
|
+
} | {
|
|
212
|
+
balance: string;
|
|
213
|
+
data: undefined;
|
|
214
|
+
error: unknown;
|
|
215
|
+
isError: true;
|
|
216
|
+
isLoading: false;
|
|
217
|
+
isLoadingError: true;
|
|
218
|
+
isRefetchError: false;
|
|
219
|
+
isSuccess: false;
|
|
220
|
+
status: "error";
|
|
221
|
+
dataUpdatedAt: number;
|
|
222
|
+
errorUpdatedAt: number;
|
|
223
|
+
failureCount: number;
|
|
224
|
+
failureReason: unknown;
|
|
225
|
+
errorUpdateCount: number;
|
|
226
|
+
isFetched: boolean;
|
|
227
|
+
isFetchedAfterMount: boolean;
|
|
228
|
+
isFetching: boolean;
|
|
229
|
+
isInitialLoading: boolean;
|
|
230
|
+
isPaused: boolean;
|
|
231
|
+
isPlaceholderData: boolean;
|
|
232
|
+
isPreviousData: boolean;
|
|
233
|
+
isRefetching: boolean;
|
|
234
|
+
isStale: boolean;
|
|
235
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
|
|
236
|
+
remove: () => void;
|
|
237
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
238
|
+
} | {
|
|
239
|
+
balance: string;
|
|
240
|
+
data: undefined;
|
|
241
|
+
error: null;
|
|
242
|
+
isError: false;
|
|
243
|
+
isLoading: true;
|
|
244
|
+
isLoadingError: false;
|
|
245
|
+
isRefetchError: false;
|
|
246
|
+
isSuccess: false;
|
|
247
|
+
status: "loading";
|
|
248
|
+
dataUpdatedAt: number;
|
|
249
|
+
errorUpdatedAt: number;
|
|
250
|
+
failureCount: number;
|
|
251
|
+
failureReason: unknown;
|
|
252
|
+
errorUpdateCount: number;
|
|
253
|
+
isFetched: boolean;
|
|
254
|
+
isFetchedAfterMount: boolean;
|
|
255
|
+
isFetching: boolean;
|
|
256
|
+
isInitialLoading: boolean;
|
|
257
|
+
isPaused: boolean;
|
|
258
|
+
isPlaceholderData: boolean;
|
|
259
|
+
isPreviousData: boolean;
|
|
260
|
+
isRefetching: boolean;
|
|
261
|
+
isStale: boolean;
|
|
262
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<string, unknown>>;
|
|
263
|
+
remove: () => void;
|
|
264
|
+
fetchStatus: import("@tanstack/react-query").FetchStatus;
|
|
24
265
|
};
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { useAccount } from "wagmi";
|
|
2
1
|
import { ChainType } from "@0xsquid/squid-types";
|
|
3
|
-
import {
|
|
4
|
-
import { useBalance } from "wagmi";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { useAccount, useBalance as useWagmiBalance } from "wagmi";
|
|
5
4
|
import { useCosmosContext } from "../../core";
|
|
6
5
|
import { nativeEvmTokenAddress } from "../../core/constants";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const defaultRefreshIntervalMs = 15000;
|
|
13
|
-
export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = defaultRefreshIntervalMs, }) => {
|
|
6
|
+
import { keys } from "../../core/queries/queries-keys";
|
|
7
|
+
import { formatBNToReadable } from "../../services";
|
|
8
|
+
import { useAllTokensWithBalanceForChainType } from "./useAllTokensWithBalanceForChainType";
|
|
9
|
+
const DEFAULT_REFRESH_INTERVAL_MS = 15000;
|
|
10
|
+
export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
|
|
14
11
|
const { isConnected } = useAccount();
|
|
15
|
-
const
|
|
12
|
+
const query = useWagmiBalance({
|
|
16
13
|
address: userAddress,
|
|
17
14
|
chainId: Number(chain?.chainId),
|
|
18
15
|
token: token?.address === nativeEvmTokenAddress
|
|
@@ -24,80 +21,33 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
|
|
|
24
21
|
retry: 2,
|
|
25
22
|
},
|
|
26
23
|
});
|
|
27
|
-
const balance = formatBNToReadable(
|
|
28
|
-
return { balance };
|
|
24
|
+
const balance = formatBNToReadable(query.data?.value ?? 0n, query.data?.decimals ?? 0);
|
|
25
|
+
return { ...query, balance };
|
|
29
26
|
};
|
|
30
|
-
export const useCosmosBalance = ({ chainData, token, userAddress, }) => {
|
|
27
|
+
export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
|
|
31
28
|
const { isConnected } = useCosmosContext();
|
|
32
|
-
const {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const balance = useMemo(() => {
|
|
36
|
-
if (walletAddressToFetch &&
|
|
37
|
-
chainData &&
|
|
38
|
-
chainData.chainType === ChainType.COSMOS &&
|
|
39
|
-
isConnected) {
|
|
40
|
-
return (cosmosBalances?.data?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
|
|
41
|
-
}
|
|
42
|
-
return "0";
|
|
43
|
-
}, [
|
|
44
|
-
cosmosBalances.data,
|
|
45
|
-
walletAddressToFetch,
|
|
46
|
-
chainData,
|
|
47
|
-
token,
|
|
48
|
-
isConnected,
|
|
49
|
-
]);
|
|
50
|
-
return { balance };
|
|
51
|
-
};
|
|
52
|
-
export const useNativeBalance = (direction) => {
|
|
53
|
-
const { address: evmAddress, isConnected: isEvmConnected } = useAccount();
|
|
54
|
-
const { isConnected: isCosmosConnected, cosmosAddress } = useCosmosContext();
|
|
55
|
-
const { toChain, fromChain } = useSwap();
|
|
56
|
-
const chain = direction === "from" ? fromChain : toChain;
|
|
57
|
-
const { data: nativeEvmBalance } = useBalance({
|
|
58
|
-
address: evmAddress,
|
|
59
|
-
chainId: Number(chain?.chainId),
|
|
60
|
-
query: {
|
|
61
|
-
enabled: isEvmConnected && chain?.chainType === ChainType.EVM,
|
|
62
|
-
refetchInterval: 10000,
|
|
63
|
-
staleTime: 5000,
|
|
64
|
-
refetchOnWindowFocus: true,
|
|
65
|
-
refetchOnMount: true,
|
|
66
|
-
},
|
|
29
|
+
const { tokens: cosmosBalances } = useAllTokensWithBalanceForChainType({
|
|
30
|
+
chainType: ChainType.COSMOS,
|
|
31
|
+
address: chainData?.chainType === ChainType.COSMOS ? userAddress : undefined,
|
|
67
32
|
});
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
33
|
+
const query = useQuery({
|
|
34
|
+
queryKey: keys().balance(chainData?.chainId, token?.address, userAddress),
|
|
35
|
+
queryFn: () => {
|
|
36
|
+
if (userAddress &&
|
|
37
|
+
chainData &&
|
|
38
|
+
chainData.chainType === ChainType.COSMOS &&
|
|
39
|
+
isConnected) {
|
|
40
|
+
return (cosmosBalances?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
|
|
41
|
+
}
|
|
42
|
+
return "0";
|
|
43
|
+
},
|
|
44
|
+
enabled: isConnected &&
|
|
45
|
+
enabled &&
|
|
46
|
+
!!userAddress &&
|
|
47
|
+
chainData?.chainType === ChainType.COSMOS,
|
|
48
|
+
refetchInterval: refreshIntervalMs,
|
|
49
|
+
retry: 2,
|
|
81
50
|
});
|
|
82
|
-
|
|
83
|
-
switch (chain?.chainType) {
|
|
84
|
-
case ChainType.EVM:
|
|
85
|
-
if (!nativeEvmBalance?.decimals || !nativeEvmBalance?.value)
|
|
86
|
-
return undefined;
|
|
87
|
-
return nativeEvmBalance;
|
|
88
|
-
case ChainType.COSMOS:
|
|
89
|
-
if (!nativeCosmosToken?.decimals || !nativeCosmosBalance)
|
|
90
|
-
return undefined;
|
|
91
|
-
return {
|
|
92
|
-
decimals: nativeCosmosToken.decimals,
|
|
93
|
-
value: parseToBigInt(nativeCosmosBalance, nativeCosmosToken.decimals),
|
|
94
|
-
};
|
|
95
|
-
default:
|
|
96
|
-
return undefined;
|
|
97
|
-
}
|
|
98
|
-
})();
|
|
99
|
-
const nativeBalanceFormatted = nativeBalance &&
|
|
100
|
-
formatBNToReadable(nativeBalance.value, nativeBalance.decimals);
|
|
101
|
-
return { nativeBalance, nativeBalanceFormatted };
|
|
51
|
+
return { ...query, balance: query.data ?? "0" };
|
|
102
52
|
};
|
|
103
53
|
//# sourceMappingURL=useBalance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useBalance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAE5F,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,GAAG,IAAI,EACd,iBAAiB,GAAG,2BAA2B,GAOhD,EAAE,EAAE;IACH,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,eAAe,CAAC;QAC5B,OAAO,EAAE,WAA4B;QACrC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/B,KAAK,EACF,KAAK,EAAE,OAAyB,KAAK,qBAAqB;YACzD,CAAC,CAAC,SAAS;YACX,CAAC,CAAE,KAAK,EAAE,OAAyB;QACvC,KAAK,EAAE;YACL,OAAO,EAAE,WAAW,IAAI,OAAO,IAAI,CAAC,CAAC,WAAW;YAChD,eAAe,EAAE,iBAAiB;YAClC,KAAK,EAAE,CAAC;SACT;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,kBAAkB,CAChC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EACvB,KAAK,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAC1B,CAAC;IAEF,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,SAAS,EACT,KAAK,EACL,WAAW,EACX,OAAO,GAAG,IAAI,EACd,iBAAiB,GAAG,2BAA2B,GAOhD,EAAE,EAAE;IACH,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE3C,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,mCAAmC,CAAC;QACrE,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,OAAO,EACL,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;KACtE,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;QACzE,OAAO,EAAE,GAAG,EAAE;YACZ,IACE,WAAW;gBACX,SAAS;gBACT,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM;gBACxC,WAAW,EACX;gBACA,OAAO,CACL,cAAc,EAAE,IAAI,CAClB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,CAClE,EAAE,OAAO,IAAI,GAAG,CAClB,CAAC;aACH;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,EACL,WAAW;YACX,OAAO;YACP,CAAC,CAAC,WAAW;YACb,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,MAAM;QAC3C,eAAe,EAAE,iBAAiB;QAClC,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -8,14 +8,14 @@ import { useCosmosBalance, useEvmBalance } from "../../hooks/tokens/useBalance";
|
|
|
8
8
|
* @param {boolean} enabled
|
|
9
9
|
* @returns balance as string
|
|
10
10
|
*/
|
|
11
|
-
export const useMultiChainBalance = ({ chain, token, userAddress, enabled = true, }) => {
|
|
11
|
+
export const useMultiChainBalance = ({ chain, token, userAddress = "", enabled = true, }) => {
|
|
12
12
|
/**
|
|
13
13
|
* Get balance for EVM chain types
|
|
14
14
|
*/
|
|
15
15
|
const { balance: evmBalance } = useEvmBalance({
|
|
16
16
|
chain: chain,
|
|
17
17
|
token,
|
|
18
|
-
userAddress
|
|
18
|
+
userAddress,
|
|
19
19
|
enabled: chain?.chainType === ChainType.EVM && enabled,
|
|
20
20
|
});
|
|
21
21
|
/**
|
|
@@ -26,10 +26,23 @@ export const useMultiChainBalance = ({ chain, token, userAddress, enabled = true
|
|
|
26
26
|
token,
|
|
27
27
|
userAddress,
|
|
28
28
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
let balance;
|
|
30
|
+
switch (chain?.chainType) {
|
|
31
|
+
case ChainType.EVM:
|
|
32
|
+
balance = evmBalance;
|
|
33
|
+
break;
|
|
34
|
+
case ChainType.COSMOS:
|
|
35
|
+
balance = cosmosBalance;
|
|
36
|
+
break;
|
|
37
|
+
case ChainType.BTC:
|
|
38
|
+
balance = undefined;
|
|
39
|
+
break;
|
|
40
|
+
// case ChainType.SOL:
|
|
41
|
+
// balance = undefined;
|
|
42
|
+
// break;
|
|
43
|
+
default:
|
|
44
|
+
balance = undefined;
|
|
45
|
+
}
|
|
33
46
|
return { balance };
|
|
34
47
|
};
|
|
35
48
|
//# sourceMappingURL=useMultiChainBalance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultiChainBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultiChainBalance.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,EACL,KAAK,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"useMultiChainBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultiChainBalance.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,EACL,KAAK,EACL,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,IAAI,GAMf,EAAE,EAAE;IACH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;QAC5C,KAAK,EAAE,KAAiB;QACxB,KAAK;QACL,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO;KACvD,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QAClD,SAAS,EAAE,KAAoB;QAC/B,KAAK;QACL,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,OAA2B,CAAC;IAEhC,QAAQ,KAAK,EAAE,SAAS,EAAE;QACxB,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,GAAG,UAAU,CAAC;YACrB,MAAM;QACR,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,GAAG,aAAa,CAAC;YACxB,MAAM;QACR,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,GAAG,SAAS,CAAC;YACpB,MAAM;QACR,sBAAsB;QACtB,yBAAyB;QACzB,WAAW;QACX;YACE,OAAO,GAAG,SAAS,CAAC;KACvB;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ChainData } from "@0xsquid/squid-types";
|
|
2
|
+
export declare const useNativeBalance: (chain?: ChainData) => {
|
|
3
|
+
nativeBalance: {
|
|
4
|
+
decimals: number;
|
|
5
|
+
formatted: string;
|
|
6
|
+
symbol: string;
|
|
7
|
+
value: bigint;
|
|
8
|
+
} | {
|
|
9
|
+
decimals: any;
|
|
10
|
+
value: bigint;
|
|
11
|
+
} | undefined;
|
|
12
|
+
nativeBalanceFormatted: string | undefined;
|
|
13
|
+
isLoading: boolean;
|
|
14
|
+
};
|