@0xsquid/react-hooks 3.0.30-beta.17 → 3.0.30-beta.19
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 +1 -0
- package/dist/core/constants.js +1 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/hooks/tokens/useAllConnectedWalletBalances.d.ts +17 -85
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js +47 -37
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +7 -26
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +70 -61
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
- package/dist/hooks/tokens/useBalance.js +2 -2
- package/dist/hooks/tokens/useBalance.js.map +1 -1
- package/dist/hooks/tokens/useMultipleTokenPrices.js +1 -1
- package/dist/hooks/tokens/useMultipleTokenPrices.js.map +1 -1
- package/dist/services/external/tokenDataService.js +3 -4
- package/dist/services/external/tokenDataService.js.map +1 -1
- package/package.json +1 -1
package/dist/core/constants.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const transparentClass = "tw-bg-opacity-80";
|
|
|
11
11
|
export declare const subTransparentClass = "tw-bg-opacity-50";
|
|
12
12
|
export declare const backendVersion = "v2";
|
|
13
13
|
export declare const internalSquidApiBaseUrl = "https://app.squidrouter.com/api";
|
|
14
|
+
export declare const TOKEN_PRICE_API_URL = "https://beta.app.squidrouter.com/api/coingecko";
|
|
14
15
|
export declare const CHAIN_RPC_MAPPING: {
|
|
15
16
|
[key: string]: string;
|
|
16
17
|
};
|
package/dist/core/constants.js
CHANGED
|
@@ -13,6 +13,7 @@ export const transparentClass = "tw-bg-opacity-80";
|
|
|
13
13
|
export const subTransparentClass = "tw-bg-opacity-50";
|
|
14
14
|
export const backendVersion = "v2";
|
|
15
15
|
export const internalSquidApiBaseUrl = "https://app.squidrouter.com/api";
|
|
16
|
+
export const TOKEN_PRICE_API_URL = `https://beta.app.squidrouter.com/api/coingecko`;
|
|
16
17
|
export const CHAIN_RPC_MAPPING = {
|
|
17
18
|
"137": "https://polygon.llamarpc.com",
|
|
18
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,CAAC,MAAM,qBAAqB,GAChC,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAmB,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,CAAC,MAAM,qBAAqB,GAChC,4CAA4C,CAAC;AAC/C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,uDAAuD;AACvD,MAAM,CAAC,MAAM,eAAe,GAAmB,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,gDAAgD,CAAC;AAEpF,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,KAAK,EAAE,8BAA8B;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,2DAA2D;IAC3D,6FAA6F;IAC7F,OAAO,EAAE;QACP,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,aAAa;KACvB;IACD,qDAAqD;IACrD,SAAS,EAAE;QACT,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,eAAe;KACzB;IACD,yEAAyE;IACzE,MAAM,EAAE;QACN,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,UAAU;KACpB;IACD,8BAA8B;IAC9B,OAAO,EAAE;QACP,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,eAAe;KACzB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,GAAG;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAc;IAC5C,YAAY,EAAE,sBAAsB;IACpC,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,eAAe;IACvB,mBAAmB,EAAE;QACnB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;KACZ;CACF,CAAC;AAEF,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,+CAAyB,CAAA;AAC3B,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,sBAAsB;IACtB,UAAU;IACV,kBAAkB;IAClB,SAAS;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,GAAG,qBAAqB;IACxB,uBAAuB;IACvB,OAAO;CACR,CAAC"}
|
|
@@ -1,89 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
volatility: import("@0xsquid/squid-types").Volatility;
|
|
16
|
-
usdPrice?: number | undefined;
|
|
17
|
-
axelarNetworkSymbol?: string | undefined;
|
|
18
|
-
subGraphOnly?: boolean | undefined;
|
|
19
|
-
subGraphIds?: string[] | undefined;
|
|
20
|
-
feeOnTransfer?: boolean | undefined;
|
|
21
|
-
isLpToken?: boolean | undefined;
|
|
22
|
-
disabled?: boolean | undefined;
|
|
23
|
-
}[];
|
|
24
|
-
cosmos: {
|
|
25
|
-
balance: string;
|
|
26
|
-
type: ChainType;
|
|
27
|
-
chainId: string;
|
|
28
|
-
address: string;
|
|
29
|
-
name: string;
|
|
30
|
-
symbol: string;
|
|
31
|
-
decimals: number;
|
|
32
|
-
logoURI?: string | undefined;
|
|
33
|
-
coingeckoId?: string | undefined;
|
|
34
|
-
interchainTokenId?: string | undefined;
|
|
35
|
-
volatility: import("@0xsquid/squid-types").Volatility;
|
|
36
|
-
usdPrice?: number | undefined;
|
|
37
|
-
axelarNetworkSymbol?: string | undefined;
|
|
38
|
-
subGraphOnly?: boolean | undefined;
|
|
39
|
-
subGraphIds?: string[] | undefined;
|
|
40
|
-
feeOnTransfer?: boolean | undefined;
|
|
41
|
-
isLpToken?: boolean | undefined;
|
|
42
|
-
disabled?: boolean | undefined;
|
|
43
|
-
}[];
|
|
44
|
-
bitcoin: {
|
|
45
|
-
balance: string;
|
|
46
|
-
type: ChainType;
|
|
47
|
-
chainId: string;
|
|
48
|
-
address: string;
|
|
49
|
-
name: string;
|
|
50
|
-
symbol: string;
|
|
51
|
-
decimals: number;
|
|
52
|
-
logoURI?: string | undefined;
|
|
53
|
-
coingeckoId?: string | undefined;
|
|
54
|
-
interchainTokenId?: string | undefined;
|
|
55
|
-
volatility: import("@0xsquid/squid-types").Volatility;
|
|
56
|
-
usdPrice?: number | undefined;
|
|
57
|
-
axelarNetworkSymbol?: string | undefined;
|
|
58
|
-
subGraphOnly?: boolean | undefined;
|
|
59
|
-
subGraphIds?: string[] | undefined;
|
|
60
|
-
feeOnTransfer?: boolean | undefined;
|
|
61
|
-
isLpToken?: boolean | undefined;
|
|
62
|
-
disabled?: boolean | undefined;
|
|
63
|
-
}[];
|
|
64
|
-
};
|
|
1
|
+
import { UseQueryOptions } from "@tanstack/react-query";
|
|
2
|
+
import { TokenWithBalance } from "src/core/types/tokens";
|
|
3
|
+
export declare const useAllConnectedWalletBalances: ({ direction, queryOptions, }?: {
|
|
4
|
+
direction?: "from" | "to" | undefined;
|
|
5
|
+
queryOptions?: UseQueryOptions<{
|
|
6
|
+
tokens: TokenWithBalance[];
|
|
7
|
+
totalUsdBalance: string;
|
|
8
|
+
}, unknown, {
|
|
9
|
+
tokens: TokenWithBalance[];
|
|
10
|
+
totalUsdBalance: string;
|
|
11
|
+
}, import("@tanstack/react-query").QueryKey> | undefined;
|
|
12
|
+
}) => {
|
|
13
|
+
tokens: TokenWithBalance[];
|
|
14
|
+
totalUsdBalance: number;
|
|
65
15
|
isInitialLoading: boolean;
|
|
66
16
|
isFetching: boolean;
|
|
67
17
|
isLoading: boolean;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
chainId: string;
|
|
72
|
-
address: string;
|
|
73
|
-
name: string;
|
|
74
|
-
symbol: string;
|
|
75
|
-
decimals: number;
|
|
76
|
-
logoURI?: string | undefined;
|
|
77
|
-
coingeckoId?: string | undefined;
|
|
78
|
-
interchainTokenId?: string | undefined;
|
|
79
|
-
volatility: import("@0xsquid/squid-types").Volatility;
|
|
80
|
-
usdPrice?: number | undefined;
|
|
81
|
-
axelarNetworkSymbol?: string | undefined;
|
|
82
|
-
subGraphOnly?: boolean | undefined;
|
|
83
|
-
subGraphIds?: string[] | undefined;
|
|
84
|
-
feeOnTransfer?: boolean | undefined;
|
|
85
|
-
isLpToken?: boolean | undefined;
|
|
86
|
-
disabled?: boolean | undefined;
|
|
87
|
-
}[];
|
|
88
|
-
totalUsdBalance: number;
|
|
18
|
+
isRefetching: boolean;
|
|
19
|
+
isError: boolean;
|
|
20
|
+
isSuccess: boolean;
|
|
89
21
|
};
|
|
@@ -1,50 +1,60 @@
|
|
|
1
1
|
import { ChainType } from "@0xsquid/squid-types";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
import { useSquidChains } from "../chains/useSquidChains";
|
|
4
3
|
import { useWallet } from "../wallet/useWallet";
|
|
5
4
|
import { useAllTokensWithBalanceForChainType } from "./useAllTokensWithBalanceForChainType";
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const BALANCE_STALE_TIME = 120000; // 2 minutes
|
|
6
|
+
const BALANCE_CACHE_TIME = 300000; // 5 minutes
|
|
7
|
+
export const useAllConnectedWalletBalances = ({ direction, queryOptions = {
|
|
8
|
+
staleTime: BALANCE_STALE_TIME,
|
|
9
|
+
cacheTime: BALANCE_CACHE_TIME,
|
|
10
|
+
}, } = {}) => {
|
|
8
11
|
const { connectedAddresses } = useWallet();
|
|
9
|
-
const
|
|
12
|
+
const evmBalancesQuery = useAllTokensWithBalanceForChainType({
|
|
10
13
|
chainType: ChainType.EVM,
|
|
11
|
-
address: connectedAddresses[ChainType.EVM]
|
|
14
|
+
address: connectedAddresses?.[ChainType.EVM],
|
|
15
|
+
direction,
|
|
16
|
+
queryOptions: {
|
|
17
|
+
...queryOptions,
|
|
18
|
+
enabled: Boolean(connectedAddresses?.[ChainType.EVM]),
|
|
19
|
+
},
|
|
12
20
|
});
|
|
13
|
-
const
|
|
21
|
+
const cosmosBalancesQuery = useAllTokensWithBalanceForChainType({
|
|
14
22
|
chainType: ChainType.COSMOS,
|
|
15
|
-
address: connectedAddresses[ChainType.COSMOS]
|
|
23
|
+
address: connectedAddresses?.[ChainType.COSMOS],
|
|
24
|
+
direction,
|
|
25
|
+
queryOptions: {
|
|
26
|
+
...queryOptions,
|
|
27
|
+
enabled: Boolean(connectedAddresses?.[ChainType.COSMOS]),
|
|
28
|
+
},
|
|
16
29
|
});
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
// Create a map of chain type to balance query results
|
|
31
|
+
const balanceQueries = useMemo(() => ({
|
|
32
|
+
[ChainType.EVM]: evmBalancesQuery,
|
|
33
|
+
[ChainType.COSMOS]: cosmosBalancesQuery,
|
|
34
|
+
}), [evmBalancesQuery, cosmosBalancesQuery]);
|
|
35
|
+
// Combine all tokens from different chains
|
|
36
|
+
const allTokens = useMemo(() => Object.values(balanceQueries).flatMap((query) => query.data?.tokens ?? []), [balanceQueries]);
|
|
37
|
+
// Calculate total USD balance across all chains
|
|
38
|
+
const totalUsdBalance = useMemo(() => {
|
|
39
|
+
return Object.values(balanceQueries).reduce((total, query) => {
|
|
40
|
+
const balanceStr = query?.data?.totalUsdBalance;
|
|
41
|
+
if (!balanceStr)
|
|
42
|
+
return total;
|
|
43
|
+
const balance = Number(balanceStr);
|
|
44
|
+
return Number.isFinite(balance) ? total + balance : total;
|
|
45
|
+
}, 0);
|
|
46
|
+
}, [balanceQueries]);
|
|
47
|
+
// Aggregate loading states
|
|
48
|
+
const queryStates = useMemo(() => ({
|
|
49
|
+
isInitialLoading: Object.values(balanceQueries).some((q) => q.isInitialLoading),
|
|
50
|
+
isFetching: Object.values(balanceQueries).some((q) => q.isFetching),
|
|
51
|
+
isLoading: Object.values(balanceQueries).some((q) => q.isLoading),
|
|
52
|
+
isRefetching: Object.values(balanceQueries).some((q) => q.isRefetching),
|
|
53
|
+
isError: Object.values(balanceQueries).some((q) => q.isError),
|
|
54
|
+
isSuccess: Object.values(balanceQueries).every((q) => q.isSuccess),
|
|
55
|
+
}), [balanceQueries]);
|
|
43
56
|
return {
|
|
44
|
-
|
|
45
|
-
isInitialLoading,
|
|
46
|
-
isFetching,
|
|
47
|
-
isLoading,
|
|
57
|
+
...queryStates,
|
|
48
58
|
tokens: allTokens,
|
|
49
59
|
totalUsdBalance,
|
|
50
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAllConnectedWalletBalances.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllConnectedWalletBalances.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useAllConnectedWalletBalances.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllConnectedWalletBalances.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,14 @@
|
|
|
1
1
|
import { ChainType } from "@0xsquid/squid-types";
|
|
2
2
|
import { UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
|
|
3
3
|
import { TokenWithBalance } from "../../core/types/tokens";
|
|
4
|
+
type QueryData = {
|
|
5
|
+
tokens: TokenWithBalance[];
|
|
6
|
+
totalUsdBalance: string;
|
|
7
|
+
};
|
|
4
8
|
export declare const useAllTokensWithBalanceForChainType: ({ chainType, address, direction, queryOptions, }: {
|
|
5
9
|
chainType?: ChainType | undefined;
|
|
6
10
|
address?: string | undefined;
|
|
7
11
|
direction?: "from" | "to" | undefined;
|
|
8
|
-
queryOptions?: UseQueryOptions<
|
|
9
|
-
}) =>
|
|
10
|
-
|
|
11
|
-
tokens: {
|
|
12
|
-
balance: string;
|
|
13
|
-
type: ChainType;
|
|
14
|
-
chainId: string;
|
|
15
|
-
address: string;
|
|
16
|
-
name: string;
|
|
17
|
-
symbol: string;
|
|
18
|
-
decimals: number;
|
|
19
|
-
logoURI?: string | undefined;
|
|
20
|
-
coingeckoId?: string | undefined;
|
|
21
|
-
interchainTokenId?: string | undefined;
|
|
22
|
-
volatility: import("@0xsquid/squid-types").Volatility;
|
|
23
|
-
usdPrice?: number | undefined;
|
|
24
|
-
axelarNetworkSymbol?: string | undefined;
|
|
25
|
-
subGraphOnly?: boolean | undefined;
|
|
26
|
-
subGraphIds?: string[] | undefined;
|
|
27
|
-
feeOnTransfer?: boolean | undefined;
|
|
28
|
-
isLpToken?: boolean | undefined;
|
|
29
|
-
disabled?: boolean | undefined;
|
|
30
|
-
}[];
|
|
31
|
-
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<TokenWithBalance[], unknown>>;
|
|
32
|
-
totalUsdBalance: string;
|
|
33
|
-
};
|
|
12
|
+
queryOptions?: UseQueryOptions<QueryData, unknown, QueryData, import("@tanstack/react-query").QueryKey> | undefined;
|
|
13
|
+
}) => UseQueryResult<QueryData>;
|
|
14
|
+
export {};
|
|
@@ -11,76 +11,85 @@ export const useAllTokensWithBalanceForChainType = ({ chainType, address, direct
|
|
|
11
11
|
const { cosmosChains, chains } = useSquidChains(direction);
|
|
12
12
|
const { evmTokens, cosmosTokens } = useSquidTokens(direction);
|
|
13
13
|
const { keplrTypeWallet } = useCosmosContext();
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
});
|
|
36
|
-
return cosmosBalances;
|
|
37
|
-
}, {
|
|
38
|
-
...queryOptions,
|
|
39
|
-
enabled: cosmosTokens.length > 0 &&
|
|
40
|
-
chainType === ChainType.COSMOS &&
|
|
41
|
-
!!address &&
|
|
42
|
-
queryOptions?.enabled !== false,
|
|
43
|
-
});
|
|
44
|
-
const tokensWithBalanceQuery = useMemo(() => {
|
|
45
|
-
let baseQuery;
|
|
14
|
+
const placeholderData = useMemo(() => {
|
|
15
|
+
const tokens = {
|
|
16
|
+
[ChainType.EVM]: evmTokens.map((t) => ({ ...t, balance: "0" })),
|
|
17
|
+
[ChainType.COSMOS]: cosmosTokens.map((t) => ({ ...t, balance: "0" })),
|
|
18
|
+
[ChainType.BTC]: [],
|
|
19
|
+
};
|
|
20
|
+
if (!chainType) {
|
|
21
|
+
return {
|
|
22
|
+
tokens: [...tokens[ChainType.EVM], ...tokens[ChainType.COSMOS]],
|
|
23
|
+
totalUsdBalance: "0",
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
tokens: tokens[chainType],
|
|
28
|
+
totalUsdBalance: "0",
|
|
29
|
+
};
|
|
30
|
+
}, [evmTokens, cosmosTokens, chainType]);
|
|
31
|
+
const isQueryEnabled = useMemo(() => {
|
|
32
|
+
// Respect the queryOptions.enabled override if provided
|
|
33
|
+
if (queryOptions?.enabled === false)
|
|
34
|
+
return false;
|
|
46
35
|
switch (chainType) {
|
|
36
|
+
case ChainType.EVM:
|
|
37
|
+
return evmTokens.length > 0 && !!address;
|
|
47
38
|
case ChainType.COSMOS:
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
return cosmosTokens.length > 0 && !!address;
|
|
40
|
+
case undefined:
|
|
41
|
+
return false;
|
|
42
|
+
case ChainType.BTC:
|
|
43
|
+
default:
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
}, [
|
|
47
|
+
chainType,
|
|
48
|
+
evmTokens.length,
|
|
49
|
+
cosmosTokens.length,
|
|
50
|
+
address,
|
|
51
|
+
queryOptions?.enabled,
|
|
52
|
+
]);
|
|
53
|
+
const query = useQuery(keys().allTokensBalance(address, chainType), async () => {
|
|
54
|
+
// Return zero balances if no address
|
|
55
|
+
if (!address) {
|
|
56
|
+
const defaultTokens = placeholderData.tokens;
|
|
57
|
+
return {
|
|
58
|
+
tokens: defaultTokens,
|
|
59
|
+
totalUsdBalance: calculateTotalUsdBalanceUSD(defaultTokens),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
let fetchedTokens = [];
|
|
63
|
+
// Fetch tokens based on chain type
|
|
64
|
+
switch (chainType) {
|
|
50
65
|
case ChainType.EVM:
|
|
51
|
-
|
|
66
|
+
fetchedTokens = await getAllEvmTokensBalance(evmTokens, address, chains);
|
|
67
|
+
break;
|
|
68
|
+
case ChainType.COSMOS:
|
|
69
|
+
const addresses = await getAllKeysForSupportedCosmosChains(cosmosChains.map((c) => c.chainId), keplrTypeWallet);
|
|
70
|
+
fetchedTokens = await getAllCosmosBalancesForAddress({
|
|
71
|
+
addresses,
|
|
72
|
+
cosmosChains,
|
|
73
|
+
cosmosTokens,
|
|
74
|
+
});
|
|
52
75
|
break;
|
|
76
|
+
case ChainType.BTC:
|
|
53
77
|
default:
|
|
54
|
-
|
|
78
|
+
fetchedTokens = placeholderData.tokens;
|
|
79
|
+
break;
|
|
55
80
|
}
|
|
56
81
|
return {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
isSuccess: chainType ? baseQuery.isSuccess : true,
|
|
60
|
-
data: baseQuery.data ??
|
|
61
|
-
tokensWithZeroBalance[chainType ?? ChainType.EVM] ??
|
|
62
|
-
[],
|
|
82
|
+
tokens: fetchedTokens,
|
|
83
|
+
totalUsdBalance: calculateTotalUsdBalanceUSD(fetchedTokens),
|
|
63
84
|
};
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
...tokensWithZeroBalance[ChainType.COSMOS],
|
|
70
|
-
...tokensWithZeroBalance[ChainType.BTC],
|
|
71
|
-
];
|
|
72
|
-
}
|
|
73
|
-
const selectedChainTokens = tokensWithBalanceQuery.data ?? tokensWithZeroBalance[chainType];
|
|
74
|
-
const otherChainTypes = Object.values(ChainType).filter((type) => type !== chainType);
|
|
75
|
-
const otherChainTokens = otherChainTypes.flatMap((type) => tokensWithZeroBalance[type]);
|
|
76
|
-
return [...selectedChainTokens, ...otherChainTokens];
|
|
77
|
-
}, [tokensWithBalanceQuery.data, tokensWithZeroBalance, chainType]);
|
|
78
|
-
const totalUsdBalance = useMemo(() => calculateTotalUsdBalanceUSD(tokens), [tokens]);
|
|
85
|
+
}, {
|
|
86
|
+
...queryOptions,
|
|
87
|
+
enabled: isQueryEnabled,
|
|
88
|
+
});
|
|
89
|
+
// Return placeholder if not fetched yet, otherwise return query data
|
|
79
90
|
return {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
refetch: tokensWithBalanceQuery.refetch,
|
|
83
|
-
totalUsdBalance,
|
|
91
|
+
...query,
|
|
92
|
+
data: query.data ?? placeholderData,
|
|
84
93
|
};
|
|
85
94
|
};
|
|
86
95
|
//# sourceMappingURL=useAllTokensWithBalanceForChainType.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ export const useEvmBalance = ({ chain, token, userAddress, enabled = true, refre
|
|
|
46
46
|
};
|
|
47
47
|
export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true, refreshIntervalMs = DEFAULT_REFRESH_INTERVAL_MS, }) => {
|
|
48
48
|
const { isConnected } = useCosmosContext();
|
|
49
|
-
const {
|
|
49
|
+
const { data: cosmosBalancesData } = useAllTokensWithBalanceForChainType({
|
|
50
50
|
chainType: ChainType.COSMOS,
|
|
51
51
|
address: chainData?.chainType === ChainType.COSMOS ? userAddress : undefined,
|
|
52
52
|
});
|
|
@@ -57,7 +57,7 @@ export const useCosmosBalance = ({ chainData, token, userAddress, enabled = true
|
|
|
57
57
|
chainData &&
|
|
58
58
|
chainData.chainType === ChainType.COSMOS &&
|
|
59
59
|
isConnected) {
|
|
60
|
-
return (
|
|
60
|
+
return (cosmosBalancesData?.tokens?.find((b) => b.address === token?.address && b.chainId === chainData.chainId)?.balance ?? "0");
|
|
61
61
|
}
|
|
62
62
|
return "0";
|
|
63
63
|
},
|
|
@@ -1 +1 @@
|
|
|
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,eAAe,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,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,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,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,SAAS,EAAE,CAAC;IAEpC,MAAM,aAAa,GACjB,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,qBAAqB,CAAC,WAAW,EAAE,CAAC;IACvE,MAAM,iBAAiB,GAAG,WAA4B,CAAC;IAEvD,qDAAqD;IACrD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;QACzC,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/B,KAAK,EAAE;YACL,OAAO,EACL,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,WAAW,IAAI,aAAa;YACzE,eAAe,EAAE,iBAAiB;YAClC,KAAK,EAAE,CAAC;SACT;KACF,CAAC,CAAC;IAEH,8DAA8D;IAC9D,uFAAuF;IACvF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,OAAwB;QACxC,GAAG,EAAE,QAAQ;QACb,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,iBAAiB,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/B,KAAK,EAAE;YACL,OAAO,EACL,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;gBAC1B,OAAO;gBACP,CAAC,CAAC,WAAW;gBACb,CAAC,aAAa;YAChB,eAAe,EAAE,iBAAiB;YAClC,KAAK,EAAE,CAAC;SACT;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IAEpE,MAAM,gBAAgB,GAAG,kBAAkB,CACzC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,QAAQ,IAAI,EAAE,CACtB,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AACvC,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,
|
|
1
|
+
{"version":3,"file":"useBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useBalance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useQuery } from "@tanstack/react-query";
|
|
2
|
+
import { TOKEN_PRICE_API_URL } from "../../core/constants";
|
|
2
3
|
import { keys } from "../../core/queries/queries-keys";
|
|
3
|
-
const TOKEN_PRICE_API_URL = `https://beta.app.squidrouter.com/api/coingecko`;
|
|
4
4
|
export const useMultipleTokenPrices = (tokens) => {
|
|
5
5
|
const coingeckoIds = Array.from(new Set(tokens.map((token) => token.coingeckoId).filter(Boolean)));
|
|
6
6
|
const coinGeckoQuery = useQuery({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultipleTokenPrices.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultipleTokenPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useMultipleTokenPrices.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useMultipleTokenPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAcvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAoC,EACpC,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACtD,CAAC;IAEd,MAAM,cAAc,GAAG,QAAQ,CAA2B;QACxD,QAAQ,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,MAAM,EAAE,gBAAgB;gBACxB,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,aAAa,EAAE,KAAK;gBACpB,mBAAmB,EAAE,MAAM;aAC5B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,mBAAmB,IAAI,MAAM,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACV,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE;YACR,GAAG,CAAC,EAAE,CAAC,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,GAAG;gBACf,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;aAC9B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,WAAmB,EAA8B,EAAE,CACxE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE3B,OAAO;QACL,WAAW;QACX,aAAa;QACb,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,KAAK,EAAE,cAAc,CAAC,KAAK;QAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;KAChC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { TOKEN_PRICE_API_URL } from "../../core/constants";
|
|
1
2
|
import { formatUsdAmount } from "../internal/numberService";
|
|
2
3
|
const MAX_COINGECKO_QUERY_TOKENS = 100;
|
|
3
|
-
// TODO: Change that to a prod API
|
|
4
|
-
const SQUID_COINGECKO_API_URL = `https://squid-app-v2-git-chore-wallet-token-chart-0xsquid.vercel.app/api/coingecko`;
|
|
5
4
|
export const fetchHistoricalData = async (coingeckoId, timeFrame) => {
|
|
6
5
|
const now = Math.floor(Date.now() / 1000);
|
|
7
6
|
let from;
|
|
@@ -20,7 +19,7 @@ export const fetchHistoricalData = async (coingeckoId, timeFrame) => {
|
|
|
20
19
|
break;
|
|
21
20
|
}
|
|
22
21
|
try {
|
|
23
|
-
const response = await fetch(`${
|
|
22
|
+
const response = await fetch(`${TOKEN_PRICE_API_URL}?action=getHistoricalData&id=${coingeckoId}&vs_currency=usd&from=${from}&to=${now}`);
|
|
24
23
|
if (!response.ok) {
|
|
25
24
|
throw new Error("Network response was not ok");
|
|
26
25
|
}
|
|
@@ -40,7 +39,7 @@ export const fetchTokensData = async (tokens) => {
|
|
|
40
39
|
if (coingeckoIds.length > MAX_COINGECKO_QUERY_TOKENS) {
|
|
41
40
|
throw new Error(`Too many tokens requested. Maximum allowed is ${MAX_COINGECKO_QUERY_TOKENS}.`);
|
|
42
41
|
}
|
|
43
|
-
const response = await fetch(`${
|
|
42
|
+
const response = await fetch(`${TOKEN_PRICE_API_URL}?action=getCoinData&ids=${coingeckoIds.join(",")}`);
|
|
44
43
|
if (!response.ok) {
|
|
45
44
|
throw new Error("Network response was not ok");
|
|
46
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenDataService.js","sourceRoot":"","sources":["../../../src/services/external/tokenDataService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenDataService.js","sourceRoot":"","sources":["../../../src/services/external/tokenDataService.ts"],"names":[],"mappings":"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"}
|