@0xsquid/react-hooks 1.0.27 → 1.0.29
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 +2 -2
- package/dist/core/queries/queries-keys.js.map +1 -1
- package/dist/hooks/chains/useSquidChains.d.ts +3 -0
- package/dist/hooks/chains/useSquidChains.js +5 -0
- package/dist/hooks/chains/useSquidChains.js.map +1 -1
- package/dist/hooks/cosmos/useCosmos.d.ts +1 -0
- package/dist/hooks/cosmos/useCosmos.js +11 -7
- package/dist/hooks/cosmos/useCosmos.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +11 -0
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +65 -0
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -0
- package/dist/hooks/tokens/useSquidTokens.d.ts +2 -0
- package/dist/hooks/tokens/useSquidTokens.js +16 -1
- package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
- package/dist/hooks/tokens/useTokensWithBalance.js +2 -20
- package/dist/hooks/tokens/useTokensWithBalance.js.map +1 -1
- package/dist/hooks/wallet/useMultiChainWallet.js +5 -2
- package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
- package/dist/services/external/rpcService.d.ts +30 -1
- package/dist/services/external/rpcService.js +56 -0
- package/dist/services/external/rpcService.js.map +1 -1
- package/dist/services/internal/walletService.d.ts +27 -2
- package/dist/services/internal/walletService.js +67 -11
- package/dist/services/internal/walletService.js.map +1 -1
- package/dist/tests/walletService.test.js +44 -28
- package/dist/tests/walletService.test.js.map +1 -1
- package/package.json +2 -3
- package/dist/hooks/tokens/useAllTokensWithBalance.d.ts +0 -5
- package/dist/hooks/tokens/useAllTokensWithBalance.js +0 -62
- package/dist/hooks/tokens/useAllTokensWithBalance.js.map +0 -1
|
@@ -24,7 +24,7 @@ export declare const keys: ({ address, apiUrl, }: {
|
|
|
24
24
|
balance: (chainId?: number | string, tokenAddress?: string, userAddress?: string, chainType?: ChainType) => (string | number | undefined)[];
|
|
25
25
|
nativeBalanceBigNumber: (chainId?: number | string, tokenAddress?: string, chainType?: ChainType) => (string | number | undefined)[];
|
|
26
26
|
tokensBalanceForChain: (chainType?: ChainType, chainId?: number | string) => (string | number | undefined)[];
|
|
27
|
-
allTokensBalance: (
|
|
27
|
+
allTokensBalance: (chainType: ChainType) => (string | undefined)[];
|
|
28
28
|
allTokensPriceUSDAndBalance: () => (string | undefined)[];
|
|
29
29
|
transactions: () => (string | undefined)[];
|
|
30
30
|
transaction: (swapDirection: SwapRoute | undefined, price: string | undefined, slippage: SlippageOption | undefined, infiniteApproval: boolean | undefined, getGasOnDestination: boolean | undefined, expressEnabled: boolean | undefined, sourceUserAddress: string | undefined) => (string | number | boolean | undefined)[];
|
|
@@ -58,10 +58,10 @@ export const keys = ({ address, apiUrl, }) => ({
|
|
|
58
58
|
chainType,
|
|
59
59
|
"tokensBalanceForChain",
|
|
60
60
|
],
|
|
61
|
-
allTokensBalance: (
|
|
61
|
+
allTokensBalance: (chainType) => [
|
|
62
62
|
...keys({ apiUrl, address }).balances(),
|
|
63
63
|
address,
|
|
64
|
-
|
|
64
|
+
chainType,
|
|
65
65
|
"allTokensBalance",
|
|
66
66
|
],
|
|
67
67
|
allTokensPriceUSDAndBalance: () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-keys.js","sourceRoot":"","sources":["../../../src/core/queries/queries-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EACnB,OAAO,EACP,MAAM,GAIP,EAAE,EAAE,CAAC,CAAC;IACL,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;IAE7B,QAAQ;IACR,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC;IAExE,SAAS;IACT,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC;IAElE,SAAS;IACT,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC;IAClE,cAAc,EAAE,CAAC,OAAyB,EAAE,EAAE,CAAC;QAC7C,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACrC,OAAO;QACP,gBAAgB;KACjB;IACD,WAAW,EAAE,CAAC,SAAgC,EAAE,EAAE,CAAC;QACjD,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACrC,SAAS,EAAE,WAAW;QACtB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,cAAc;QACzB,SAAS,EAAE,gBAAgB;QAC3B,aAAa;KACd;IACD,gBAAgB,EAAE,CAAC,YAAqB,EAAE,OAAyB,EAAE,EAAE,CAAC;QACtE,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACrC,YAAY;QACZ,OAAO;QACP,kBAAkB;KACnB;IACD,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC;IAElE,WAAW;IACX,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC;IAC9D,OAAO,EAAE,CACP,OAAyB,EACzB,YAAqB,EACrB,WAAoB,EACpB,YAAuB,SAAS,CAAC,GAAG,EACpC,EAAE,CAAC;QACH,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvC,OAAO;QACP,OAAO;QACP,YAAY;QACZ,SAAS;QACT,WAAW;QACX,SAAS;KACV;IACD,sBAAsB,EAAE,CACtB,OAAyB,EACzB,YAAqB,EACrB,YAAuB,SAAS,CAAC,GAAG,EACpC,EAAE,CAAC;QACH,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvC,OAAO;QACP,OAAO;QACP,YAAY;QACZ,SAAS;QACT,eAAe;KAChB;IACD,qBAAqB,EAAE,CAAC,SAAqB,EAAE,OAAyB,EAAE,EAAE,CAAC;QAC3E,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvC,OAAO;QACP,OAAO;QACP,SAAS;QACT,uBAAuB;KACxB;IAED,gBAAgB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"queries-keys.js","sourceRoot":"","sources":["../../../src/core/queries/queries-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CosmosChain, EvmChain } from "@0xsquid/squid-types";
|
|
1
2
|
export declare const useSquidChains: () => {
|
|
2
3
|
supportedSourceChains: import("@0xsquid/squid-types").ChainData[];
|
|
3
4
|
supportedDestinationChains: import("@0xsquid/squid-types").ChainData[];
|
|
@@ -9,4 +10,6 @@ export declare const useSquidChains: () => {
|
|
|
9
10
|
threshold: number;
|
|
10
11
|
keys: string[];
|
|
11
12
|
};
|
|
13
|
+
cosmosChains: CosmosChain[];
|
|
14
|
+
evmChains: EvmChain[];
|
|
12
15
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ChainType } from "@0xsquid/squid-types";
|
|
1
2
|
import { useQuery } from "@tanstack/react-query";
|
|
2
3
|
import { useMemo } from "react";
|
|
3
4
|
import { keys } from "../../core/queries/queries-keys";
|
|
@@ -19,6 +20,8 @@ export const useSquidChains = () => {
|
|
|
19
20
|
// staleTime: 1000 * 60 * 60 * 24,
|
|
20
21
|
});
|
|
21
22
|
const chains = useMemo(() => supportedChains.data ?? [], [supportedChains.data]);
|
|
23
|
+
const cosmosChains = useMemo(() => supportedChains.data?.filter((c) => c.chainType === ChainType.COSMOS) ?? [], [supportedChains.data]);
|
|
24
|
+
const evmChains = useMemo(() => supportedChains.data?.filter((c) => c.chainType === ChainType.EVM) ?? [], [supportedChains.data]);
|
|
22
25
|
const supportedSourceChains = useMemo(() => {
|
|
23
26
|
if (config.availableChains &&
|
|
24
27
|
config.availableChains?.source &&
|
|
@@ -40,6 +43,8 @@ export const useSquidChains = () => {
|
|
|
40
43
|
supportedDestinationChains,
|
|
41
44
|
chains,
|
|
42
45
|
fuseSearchOptions,
|
|
46
|
+
cosmosChains,
|
|
47
|
+
evmChains,
|
|
43
48
|
};
|
|
44
49
|
};
|
|
45
50
|
//# sourceMappingURL=useSquidChains.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSquidChains.js","sourceRoot":"","sources":["../../../src/hooks/chains/useSquidChains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IAE1C,MAAM,iBAAiB,GAAG;QACxB,eAAe,EAAE,KAAK;QACtB,YAAY,EAAE,KAAK;QACnB,kBAAkB,EAAE,CAAC;QACrB,SAAS,EAAE,GAAG;QACd,IAAI,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,uBAAuB,CAAC;KAC5D,CAAC;IAEF,MAAM,eAAe,GAAG,QAAQ,CAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EACxC,GAAG,EAAE;QACH,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IAC7B,CAAC,EACD;QACE,OAAO,EAAE,KAAK,KAAK,SAAS;QAC5B,kCAAkC;QAClC,kCAAkC;KACnC,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,EAChC,CAAC,eAAe,CAAC,IAAI,CAAC,CACvB,CAAC;IAEF,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE;QACzC,IACE,MAAM,CAAC,eAAe;YACtB,MAAM,CAAC,eAAe,EAAE,MAAM;YAC9B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EACxC;YACA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzB,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CACpD,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAErC,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9C,IACE,MAAM,CAAC,eAAe;YACtB,MAAM,CAAC,eAAe,EAAE,WAAW;YACnC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAC7C;YACA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzB,MAAM,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CACzD,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAErC,OAAO;QACL,qBAAqB;QACrB,0BAA0B;QAC1B,MAAM;QACN,iBAAiB;
|
|
1
|
+
{"version":3,"file":"useSquidChains.js","sourceRoot":"","sources":["../../../src/hooks/chains/useSquidChains.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare const useCosmos: () => {
|
|
|
8
8
|
chain: ChainData;
|
|
9
9
|
wallet?: Wallet | undefined;
|
|
10
10
|
direction?: "from" | "to" | undefined;
|
|
11
|
+
approveAllChains?: boolean | undefined;
|
|
11
12
|
}, unknown>;
|
|
12
13
|
cosmosChainId: string | undefined;
|
|
13
14
|
setCosmosChainId: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
|
|
@@ -5,7 +5,8 @@ import { useCallback, useEffect, useMemo, useState } from "react";
|
|
|
5
5
|
import { wallets } from "../../core/constants";
|
|
6
6
|
import { useSwapRoutePersistStore } from "../../hooks/store/useSquidStore";
|
|
7
7
|
import { useSwap } from "../../hooks/swap/useSwap";
|
|
8
|
-
import { accessProperty, getCosmosChainInfosObject, getDescendantProp, } from "../../services/internal/walletService";
|
|
8
|
+
import { accessProperty, getCosmosChainInfosObject, getCosmosKey, getDescendantProp, } from "../../services/internal/walletService";
|
|
9
|
+
import { useSquidChains } from "../chains/useSquidChains";
|
|
9
10
|
export const useCosmos = () => {
|
|
10
11
|
const [cosmosAddress, setCosmosAddress] = useState();
|
|
11
12
|
const [cosmosSigner, setCosmosSigner] = useState(undefined);
|
|
@@ -15,6 +16,7 @@ export const useCosmos = () => {
|
|
|
15
16
|
const [isInstalled, setIsInstalled] = useState(false);
|
|
16
17
|
const { swapRoute } = useSwapRoutePersistStore();
|
|
17
18
|
const { fromChain } = useSwap();
|
|
19
|
+
const { cosmosChains } = useSquidChains();
|
|
18
20
|
const keplrTypeWallet = useMemo(() => {
|
|
19
21
|
if (window && cosmosConnectedWallet?.windowFlag) {
|
|
20
22
|
return accessProperty(window, cosmosConnectedWallet.windowFlag);
|
|
@@ -31,10 +33,7 @@ export const useCosmos = () => {
|
|
|
31
33
|
}
|
|
32
34
|
}, [fromChain?.chainId, fromChain?.chainType, keplrTypeWallet]);
|
|
33
35
|
const getCosmosAddressForChain = useCallback(async (chainId) => {
|
|
34
|
-
|
|
35
|
-
return undefined;
|
|
36
|
-
const key = await keplrTypeWallet?.getKey(chainId);
|
|
37
|
-
return key.bech32Address;
|
|
36
|
+
return getCosmosKey(chainId, keplrTypeWallet);
|
|
38
37
|
}, [keplrTypeWallet]);
|
|
39
38
|
const getCosmosWalletInfos = useMutation(async ({ chainId, cosmosWalletObject, }) => {
|
|
40
39
|
const walletObject = cosmosWalletObject ?? keplrTypeWallet;
|
|
@@ -92,7 +91,7 @@ export const useCosmos = () => {
|
|
|
92
91
|
}
|
|
93
92
|
return cwo;
|
|
94
93
|
};
|
|
95
|
-
const connectCosmos = useMutation(async ({ chain, wallet, direction, }) => {
|
|
94
|
+
const connectCosmos = useMutation(async ({ chain, wallet, direction, approveAllChains = true, }) => {
|
|
96
95
|
const chainInfos = getCosmosChainInfosObject(chain);
|
|
97
96
|
const selectedWallet = wallet ??
|
|
98
97
|
cosmosConnectedWallet ??
|
|
@@ -111,7 +110,12 @@ export const useCosmos = () => {
|
|
|
111
110
|
await installSnap();
|
|
112
111
|
}
|
|
113
112
|
else {
|
|
114
|
-
|
|
113
|
+
if (approveAllChains) {
|
|
114
|
+
await cosmosWalletObject.enable(cosmosChains.map((c) => c.chainId));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
await cosmosWalletObject.enable([chainInfos.chainId]);
|
|
118
|
+
}
|
|
115
119
|
}
|
|
116
120
|
const address = await getAddress({
|
|
117
121
|
chainId: chain.chainId.toString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCosmos.js","sourceRoot":"","sources":["../../../src/hooks/cosmos/useCosmos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"useCosmos.js","sourceRoot":"","sources":["../../../src/hooks/cosmos/useCosmos.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { useCosmosForChain } from "./cosmos/useCosmosForChain";
|
|
|
4
4
|
export { useKeyboardNavigation } from "./navigation/useKeyboardNavigation";
|
|
5
5
|
export { usePersistStore, useSquidStore, useSwapRoutePersistStore, } from "./store/useSquidStore";
|
|
6
6
|
export { useSwap } from "./swap/useSwap";
|
|
7
|
-
export {
|
|
7
|
+
export { useAllTokensWithBalanceForChainType } from "./tokens/useAllTokensWithBalanceForChainType";
|
|
8
8
|
export { useCosmosBalance, useEvmBalance, useNativeTokenBalanceDestinationChain, useNativeTokenBalanceFromChain, } from "./tokens/useBalance";
|
|
9
9
|
export { useMultiChainBalance } from "./tokens/useMultiChainBalance";
|
|
10
10
|
export { useSquidTokens } from "./tokens/useSquidTokens";
|
package/dist/hooks/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export { useCosmosForChain } from "./cosmos/useCosmosForChain";
|
|
|
4
4
|
export { useKeyboardNavigation } from "./navigation/useKeyboardNavigation";
|
|
5
5
|
export { usePersistStore, useSquidStore, useSwapRoutePersistStore, } from "./store/useSquidStore";
|
|
6
6
|
export { useSwap } from "./swap/useSwap";
|
|
7
|
-
export {
|
|
7
|
+
export { useAllTokensWithBalanceForChainType } from "./tokens/useAllTokensWithBalanceForChainType";
|
|
8
8
|
export { useCosmosBalance, useEvmBalance, useNativeTokenBalanceDestinationChain, useNativeTokenBalanceFromChain, } from "./tokens/useBalance";
|
|
9
9
|
export { useMultiChainBalance } from "./tokens/useMultiChainBalance";
|
|
10
10
|
export { useSquidTokens } from "./tokens/useSquidTokens";
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACL,eAAe,EACf,aAAa,EACb,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACL,eAAe,EACf,aAAa,EACb,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,qCAAqC,EACrC,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
+
import { TokenWithBalance } from "../../core/types/tokens";
|
|
3
|
+
export declare const useAllTokensWithBalanceForChainType: ({ chainType, address, enabled, }: {
|
|
4
|
+
chainType: ChainType;
|
|
5
|
+
address?: string | undefined;
|
|
6
|
+
enabled?: boolean | undefined;
|
|
7
|
+
}) => {
|
|
8
|
+
tokensWithBalanceQuery: import("@tanstack/react-query").UseQueryResult<TokenWithBalance[], unknown>;
|
|
9
|
+
tokens: TokenWithBalance[];
|
|
10
|
+
refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<TokenWithBalance[], unknown>>;
|
|
11
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { useCosmosContext } from "../../core";
|
|
5
|
+
import { keys } from "../../core/queries/queries-keys";
|
|
6
|
+
import { getAllKeysForSupportedCosmosChains } from "../../services";
|
|
7
|
+
import { getAllCosmosBalancesForAddress, getAllEvmTokensBalance, } from "../../services/external/rpcService";
|
|
8
|
+
import { useSquidChains } from "../chains/useSquidChains";
|
|
9
|
+
import { useSquidStore } from "../store/useSquidStore";
|
|
10
|
+
import { useSquidTokens } from "./useSquidTokens";
|
|
11
|
+
export const useAllTokensWithBalanceForChainType = ({ chainType, address, enabled, }) => {
|
|
12
|
+
const { config } = useSquidStore();
|
|
13
|
+
const { cosmosChains } = useSquidChains();
|
|
14
|
+
const { evmTokens, cosmosTokens } = useSquidTokens();
|
|
15
|
+
const { keplrTypeWallet } = useCosmosContext();
|
|
16
|
+
const tokensWithZeroBalance = useMemo(() => {
|
|
17
|
+
return {
|
|
18
|
+
evm: evmTokens.map((t) => ({ ...t, balance: "0" })),
|
|
19
|
+
cosmos: cosmosTokens.map((t) => ({ ...t, balance: "0" })),
|
|
20
|
+
};
|
|
21
|
+
}, [evmTokens, cosmosTokens]);
|
|
22
|
+
const tokensWithBalanceQuery = useQuery(keys({
|
|
23
|
+
apiUrl: config.apiUrl,
|
|
24
|
+
address,
|
|
25
|
+
}).allTokensBalance(chainType), async () => {
|
|
26
|
+
if (chainType === ChainType.EVM) {
|
|
27
|
+
const evmTokensBalances = await getAllEvmTokensBalance(evmTokens, address // Safe because the query is enabled only if address is present
|
|
28
|
+
);
|
|
29
|
+
return [...evmTokensBalances, ...tokensWithZeroBalance.cosmos];
|
|
30
|
+
}
|
|
31
|
+
if (chainType === ChainType.COSMOS) {
|
|
32
|
+
// We'll need to call getKey for all cosmos chains
|
|
33
|
+
const addresses = await getAllKeysForSupportedCosmosChains(cosmosChains.map((c) => c.chainId), keplrTypeWallet);
|
|
34
|
+
const cosmosBalances = await getAllCosmosBalancesForAddress({
|
|
35
|
+
addresses,
|
|
36
|
+
cosmosChains,
|
|
37
|
+
cosmosTokens,
|
|
38
|
+
});
|
|
39
|
+
return [...tokensWithZeroBalance.evm, ...cosmosBalances];
|
|
40
|
+
}
|
|
41
|
+
return [...tokensWithZeroBalance.evm, ...tokensWithZeroBalance.cosmos];
|
|
42
|
+
}, {
|
|
43
|
+
enabled: enabled && !!address,
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* Map tokens with balanced, based on chainType
|
|
47
|
+
* Can handle future chain types (solana, etc.)
|
|
48
|
+
*/
|
|
49
|
+
const tokens = useMemo(() => {
|
|
50
|
+
return (tokensWithBalanceQuery.data ?? [
|
|
51
|
+
...tokensWithZeroBalance.evm,
|
|
52
|
+
...tokensWithZeroBalance.cosmos,
|
|
53
|
+
]);
|
|
54
|
+
}, [
|
|
55
|
+
tokensWithBalanceQuery.data,
|
|
56
|
+
tokensWithZeroBalance.evm,
|
|
57
|
+
tokensWithZeroBalance.cosmos,
|
|
58
|
+
]);
|
|
59
|
+
return {
|
|
60
|
+
tokensWithBalanceQuery,
|
|
61
|
+
tokens,
|
|
62
|
+
refetch: tokensWithBalanceQuery.refetch,
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=useAllTokensWithBalanceForChainType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAllTokensWithBalanceForChainType.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalanceForChainType.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,6 @@ export declare const useSquidTokens: () => {
|
|
|
12
12
|
};
|
|
13
13
|
forceSquidInfoRefetch: <TPageData>(options?: (import("@tanstack/query-core").RefetchOptions & import("@tanstack/query-core").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@0xsquid/sdk").Squid | undefined, unknown>>;
|
|
14
14
|
squidInfoQuery: import("@tanstack/react-query").UseQueryResult<import("@0xsquid/sdk").Squid | undefined, unknown>;
|
|
15
|
+
evmTokens: import("@0xsquid/squid-types").Token[];
|
|
16
|
+
cosmosTokens: import("@0xsquid/squid-types").Token[];
|
|
15
17
|
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import { useSquidStore } from "../../hooks/store/useSquidStore";
|
|
3
|
+
import { useSquidChains } from "../chains/useSquidChains";
|
|
3
4
|
import { useSquid } from "../squid/useSquid";
|
|
4
5
|
export const useSquidTokens = () => {
|
|
5
6
|
const { config } = useSquidStore();
|
|
7
|
+
const { chains } = useSquidChains();
|
|
6
8
|
const { tokens: allSquidTokens, forceSquidInfoRefetch, squidInfoQuery, } = useSquid();
|
|
7
9
|
const fuseSearchOptions = {
|
|
8
10
|
isCaseSensitive: false,
|
|
@@ -32,6 +34,19 @@ export const useSquidTokens = () => {
|
|
|
32
34
|
});
|
|
33
35
|
return filteredTokens ?? [];
|
|
34
36
|
}, [allSquidTokens]);
|
|
35
|
-
|
|
37
|
+
const evmTokens = useMemo(() => {
|
|
38
|
+
return tokens.filter((t) => chains?.find((c) => c.chainId === t.chainId)?.chainType === "evm");
|
|
39
|
+
}, [chains, tokens]);
|
|
40
|
+
const cosmosTokens = useMemo(() => {
|
|
41
|
+
return tokens.filter((t) => chains?.find((c) => c.chainId === t.chainId)?.chainType === "cosmos");
|
|
42
|
+
}, [chains, tokens]);
|
|
43
|
+
return {
|
|
44
|
+
tokens,
|
|
45
|
+
fuseSearchOptions,
|
|
46
|
+
forceSquidInfoRefetch,
|
|
47
|
+
squidInfoQuery,
|
|
48
|
+
evmTokens,
|
|
49
|
+
cosmosTokens,
|
|
50
|
+
};
|
|
36
51
|
};
|
|
37
52
|
//# sourceMappingURL=useSquidTokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSquidTokens.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useSquidTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EACJ,MAAM,EAAE,cAAc,EACtB,qBAAqB,EACrB,cAAc,GACf,GAAG,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG;QACxB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,IAAI;QAEpB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,CAAC,EAAE,oBAAoB;aAChC;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,GAAG,EAAE,sCAAsC;aACpD;SACF;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzE,8CAA8C;QAC9C,oCAAoC;QACpC,MAAM,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACnE,MAAM,aAAa,GACjB,KAAK;gBACL,IAAI,CAAC,SAAS,CACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAClE,CAAC;YAEJ,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,QAAQ,CACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CACtB,CAAC;YAEF,OAAO,aAAa,IAAI,CAAC,oBAAoB,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,IAAI,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"useSquidTokens.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useSquidTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,EACJ,MAAM,EAAE,cAAc,EACtB,qBAAqB,EACrB,cAAc,GACf,GAAG,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG;QACxB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,GAAG;QACd,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,IAAI;QAEpB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,CAAC,EAAE,oBAAoB;aAChC;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,GAAG,EAAE,sCAAsC;aACpD;SACF;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzE,8CAA8C;QAC9C,oCAAoC;QACpC,MAAM,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACnE,MAAM,aAAa,GACjB,KAAK;gBACL,IAAI,CAAC,SAAS,CACZ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAClE,CAAC;YAEJ,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,QAAQ,CACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CACtB,CAAC;YAEF,OAAO,aAAa,IAAI,CAAC,oBAAoB,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,IAAI,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,KAAK,KAAK,CACzE,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,KAAK,QAAQ,CACvE,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,OAAO;QACL,MAAM;QACN,iBAAiB;QACjB,qBAAqB;QACrB,cAAc;QACd,SAAS;QACT,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,30 +1,12 @@
|
|
|
1
1
|
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
-
import { StargateClient } from "@cosmjs/stargate";
|
|
3
2
|
import { useQuery } from "@tanstack/react-query";
|
|
4
|
-
import { formatUnits } from "ethers/lib/utils";
|
|
5
3
|
import { useCosmosContext } from "../../core/providers/CosmosProvider";
|
|
6
4
|
import { keys } from "../../core/queries/queries-keys";
|
|
7
5
|
import { useCosmosForChain } from "../../hooks/cosmos/useCosmosForChain";
|
|
8
6
|
import { useSquidStore } from "../../hooks/store/useSquidStore";
|
|
9
7
|
import { useSquidTokens } from "../../hooks/tokens/useSquidTokens";
|
|
10
|
-
import { getAllEvmTokensBalance, getWorkingCosmosRpcUrl, } from "../../services/external/rpcService";
|
|
8
|
+
import { getAllCosmosBalancesForChain, getAllEvmTokensBalance, getWorkingCosmosRpcUrl, } from "../../services/external/rpcService";
|
|
11
9
|
import { SECRET_CHAIN_ID, fetchAllSecretBalances, } from "../../services/external/secretService";
|
|
12
|
-
// TODO: Move this to a service
|
|
13
|
-
const getAllCosmosBalances = async ({ rpc, address, tokens, }) => {
|
|
14
|
-
const client = await StargateClient.connect(rpc);
|
|
15
|
-
const balanceAsCoin = await client.getAllBalances(address);
|
|
16
|
-
// Need to map tokens and put balance, based on denom
|
|
17
|
-
const tokensWithBalance = tokens.map((t) => {
|
|
18
|
-
const balanceCoin = balanceAsCoin?.find((c) => c.denom === t.address);
|
|
19
|
-
return {
|
|
20
|
-
...t,
|
|
21
|
-
balance: balanceCoin
|
|
22
|
-
? formatUnits(balanceCoin?.amount, t?.decimals)
|
|
23
|
-
: "0",
|
|
24
|
-
};
|
|
25
|
-
});
|
|
26
|
-
return tokensWithBalance;
|
|
27
|
-
};
|
|
28
10
|
export const useAllTokensWithBalanceForChain = (chainData, address = "") => {
|
|
29
11
|
const { config } = useSquidStore();
|
|
30
12
|
const { tokens: squidTokens } = useSquidTokens();
|
|
@@ -55,7 +37,7 @@ export const useAllTokensWithBalanceForChain = (chainData, address = "") => {
|
|
|
55
37
|
return secretTokens;
|
|
56
38
|
}
|
|
57
39
|
const rpc = await getWorkingCosmosRpcUrl(chainData);
|
|
58
|
-
const balances = await
|
|
40
|
+
const balances = await getAllCosmosBalancesForChain({
|
|
59
41
|
address,
|
|
60
42
|
rpc,
|
|
61
43
|
tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokensWithBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useTokensWithBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useTokensWithBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useTokensWithBalance.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { useMemo } from "react";
|
|
|
6
6
|
import { ChainNotConfiguredError, SwitchChainError, useAccount, useNetwork, useSwitchNetwork, } from "wagmi";
|
|
7
7
|
import { useCosmosContext } from "../../core/providers/CosmosProvider";
|
|
8
8
|
import { useCosmosForChain } from "../../hooks/cosmos/useCosmosForChain";
|
|
9
|
-
import {
|
|
9
|
+
import { formatHash } from "../../services/internal/walletService";
|
|
10
10
|
export const useMultiChainWallet = (chainToCompare) => {
|
|
11
11
|
const { chain: currentEvmChain } = useNetwork();
|
|
12
12
|
const { isConnected: isEvmConnected, connector, address } = useAccount();
|
|
@@ -28,7 +28,10 @@ export const useMultiChainWallet = (chainToCompare) => {
|
|
|
28
28
|
return address;
|
|
29
29
|
}
|
|
30
30
|
}, [address, chainToCompare?.chainType, cosmosAddress]);
|
|
31
|
-
const parsedAddress = useMemo(() =>
|
|
31
|
+
const parsedAddress = useMemo(() => formatHash({
|
|
32
|
+
hash: connectedAddress,
|
|
33
|
+
chainType: chainToCompare?.chainType,
|
|
34
|
+
}), [connectedAddress, chainToCompare?.chainType]);
|
|
32
35
|
/**
|
|
33
36
|
* Change current network for desired chain
|
|
34
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultiChainWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useMultiChainWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useMultiChainWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useMultiChainWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,33 @@
|
|
|
1
|
-
import type { ChainData, Token } from "@0xsquid/squid-types";
|
|
1
|
+
import type { ChainData, CosmosChain, Token } from "@0xsquid/squid-types";
|
|
2
2
|
import type { TokenWithBalance } from "../../core/types/tokens";
|
|
3
3
|
export declare const getAllEvmTokensBalance: (evmTokens: Token[], userAddress: string) => Promise<TokenWithBalance[]>;
|
|
4
4
|
export declare const getWorkingCosmosRpcUrl: (chainData: ChainData) => Promise<string>;
|
|
5
|
+
/**
|
|
6
|
+
* Fetches all Cosmos balances for a given address and RPC.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} params.rpc - RPC URL to fetch balances from.
|
|
9
|
+
* @param {string} params.address - user address to fetch balances for.
|
|
10
|
+
* @param {Token[]} params.tokens - array of Cosmos tokens.
|
|
11
|
+
* @returns {Promise<TokenWithBalance[]>} promise that resolves to an array of tokens with their balances.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getAllCosmosBalancesForChain: ({ rpc, address, tokens, }: {
|
|
14
|
+
rpc: string;
|
|
15
|
+
tokens: Token[];
|
|
16
|
+
address: string;
|
|
17
|
+
}) => Promise<TokenWithBalance[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Fetches all Cosmos balances for a given address and RPC.
|
|
20
|
+
*
|
|
21
|
+
* @param {object} params.addresses user addresses per cosmos network
|
|
22
|
+
* @param {Token[]} params.cosmosTokens
|
|
23
|
+
* @param {CosmosChain[]} params.cosmosChains
|
|
24
|
+
* @returns {Promise<TokenWithBalance[]>} All tokens with their balances.
|
|
25
|
+
*/
|
|
26
|
+
export declare const getAllCosmosBalancesForAddress: ({ addresses, cosmosTokens, cosmosChains, }: {
|
|
27
|
+
addresses: {
|
|
28
|
+
chainId: string;
|
|
29
|
+
address: string;
|
|
30
|
+
}[];
|
|
31
|
+
cosmosTokens: Token[];
|
|
32
|
+
cosmosChains: CosmosChain[];
|
|
33
|
+
}) => Promise<TokenWithBalance[]>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { StargateClient } from "@cosmjs/stargate";
|
|
2
2
|
import { fetchBalance } from "@wagmi/core";
|
|
3
3
|
import { constants, utils } from "ethers";
|
|
4
|
+
import { formatUnits } from "ethers/lib/utils.js";
|
|
4
5
|
import { readContracts } from "wagmi";
|
|
5
6
|
import { ERC20__factory } from "../../contracts/typechain/factories/ERC20__factory";
|
|
6
7
|
import { nativeEvmTokenAddress } from "../../core/constants";
|
|
@@ -142,4 +143,59 @@ export const getWorkingCosmosRpcUrl = async (chainData) => {
|
|
|
142
143
|
// In the case that all rpcs are invalid, return the default rpc anyway
|
|
143
144
|
return chainData.rpc;
|
|
144
145
|
};
|
|
146
|
+
// const deriveCosmosAddress = (chainPrefix: string, address: string): string => {
|
|
147
|
+
// return toBech32(chainPrefix, fromBech32(address).data);
|
|
148
|
+
// };
|
|
149
|
+
/**
|
|
150
|
+
* Fetches all Cosmos balances for a given address and RPC.
|
|
151
|
+
*
|
|
152
|
+
* @param {string} params.rpc - RPC URL to fetch balances from.
|
|
153
|
+
* @param {string} params.address - user address to fetch balances for.
|
|
154
|
+
* @param {Token[]} params.tokens - array of Cosmos tokens.
|
|
155
|
+
* @returns {Promise<TokenWithBalance[]>} promise that resolves to an array of tokens with their balances.
|
|
156
|
+
*/
|
|
157
|
+
export const getAllCosmosBalancesForChain = async ({ rpc, address, tokens, }) => {
|
|
158
|
+
const client = await StargateClient.connect(rpc);
|
|
159
|
+
const balanceAsCoin = await client.getAllBalances(address);
|
|
160
|
+
// Need to map tokens and put balance, based on denom
|
|
161
|
+
const tokensWithBalance = tokens.map((t) => {
|
|
162
|
+
const balanceCoin = balanceAsCoin?.find((c) => c.denom === t.address);
|
|
163
|
+
return {
|
|
164
|
+
...t,
|
|
165
|
+
balance: balanceCoin
|
|
166
|
+
? formatUnits(balanceCoin?.amount, t?.decimals)
|
|
167
|
+
: "0",
|
|
168
|
+
};
|
|
169
|
+
});
|
|
170
|
+
return tokensWithBalance;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Fetches all Cosmos balances for a given address and RPC.
|
|
174
|
+
*
|
|
175
|
+
* @param {object} params.addresses user addresses per cosmos network
|
|
176
|
+
* @param {Token[]} params.cosmosTokens
|
|
177
|
+
* @param {CosmosChain[]} params.cosmosChains
|
|
178
|
+
* @returns {Promise<TokenWithBalance[]>} All tokens with their balances.
|
|
179
|
+
*/
|
|
180
|
+
export const getAllCosmosBalancesForAddress = async ({ addresses, cosmosTokens, cosmosChains, }) => {
|
|
181
|
+
const tokensWithBalance = [];
|
|
182
|
+
for (const cosmosChain of cosmosChains) {
|
|
183
|
+
try {
|
|
184
|
+
const userAddress = addresses.find((a) => a.chainId === cosmosChain.chainId)?.address;
|
|
185
|
+
const rpc = await getWorkingCosmosRpcUrl(cosmosChain);
|
|
186
|
+
const balances = await getAllCosmosBalancesForChain({
|
|
187
|
+
rpc,
|
|
188
|
+
address: userAddress ?? "",
|
|
189
|
+
tokens: cosmosTokens.filter((t) => t.chainId === cosmosChain.chainId),
|
|
190
|
+
});
|
|
191
|
+
tokensWithBalance.push(...balances);
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
tokensWithBalance.push(...cosmosTokens
|
|
195
|
+
.filter((t) => t.chainId === cosmosChain.chainId)
|
|
196
|
+
.map((t) => ({ ...t, balance: "0" })));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return tokensWithBalance;
|
|
200
|
+
};
|
|
145
201
|
//# sourceMappingURL=rpcService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpcService.js","sourceRoot":"","sources":["../../../src/services/external/rpcService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKvE;;;;;;;GAOG;AACH,MAAM,4BAA4B,GAAG,KAAK,EACxC,MAAe,EACf,WAA6B,EACA,EAAE;IAC/B,MAAM,iBAAiB,GAAG,CAAC,MAAM,aAAa,CAAC;QAC7C,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,qBAAqB,CAAC;YACxE,OAAO;gBACL,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;gBACnB,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG;gBACtD,OAAO,EAAE,aAAa;oBACpB,CAAC,CAAE,gBAAoC;oBACvC,CAAC,CAAE,CAAC,CAAC,OAA2B;gBAClC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW;gBAC3D,IAAI,EAAE,CAAC,WAAW,CAAC;aACpB,CAAC;QACJ,CAAC,CAAC;QACF,YAAY,EAAE,IAAI;KACnB,CAAC,CAAgB,CAAC;IAEnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC;QACJ,OAAO,EAAE,KAAK,CAAC,WAAW,CACxB,iBAAiB,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,EACtC,CAAC,CAAC,QAAQ,CACX;KACF,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AASF;;;;;GAKG;AAEH,MAAM,yBAAyB,GAAG,KAAK,EACrC,MAAe,EACf,WAA4B,EACC,EAAE;IAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CACjC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACrB,IAAI,OAAuC,CAAC;QAC5C,IAAI;YACF,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,qBAAqB,EAAE;gBACrD,OAAO,GAAG,MAAM,YAAY,CAAC;oBAC3B,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;iBACpB,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,GAAG,MAAM,YAAY,CAAC;oBAC3B,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO;oBACnB,KAAK,EAAE,CAAC,CAAC,OAA0B;iBACpC,CAAC,CAAC;aACJ;YAED,OAAO,OAAO,CAAC;SAChB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO;gBACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,GAAG;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,SAAS,CAAC,IAAI;aACtB,CAAC;SACH;IACH,CAAC,CAAC,CACH,CAAyB,CAAC;IAE3B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC;QACJ,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;KAC1D,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,SAAkB,EAClB,WAAmB,EACU,EAAE;IAC/B,iFAAiF;IACjF,0EAA0E;IAC1E,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,+BAA+B;IAC1E,MAAM,gCAAgC,GAAG,SAAS,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAClD,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;aAAM;YACL,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAc,CACtB,CAAC;IAEF,MAAM,4BAA4B,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,yBAAyB,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,eAAe,GAAG,MAAM,4BAA4B,CACxD,yBAAyB,EACzB,WAA8B,CAC/B,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CACxD,4BAA4B,EAC5B,WAA8B,CAC/B,CAAC;IAEF,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,kBAAkB,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE;IAC5D,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;KACzB;IAAC,OAAO,KAAK,EAAE;QACd,UAAU,GAAG,KAAK,CAAC;KACpB;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,SAAoB,EACH,EAAE;IACnB,MAAM,OAAO,GACX,CAAC,SAAiD,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG;QACzE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;QACjB,CAAC,CAAC,EAAE,CAAC;IAET,2CAA2C;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,OAAO,EAAE;gBACX,OAAO,SAAS,CAAC,GAAG,CAAC;aACtB;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CACT,2BAA2B,SAAS,CAAC,GAAG,aAAc,KAAa,EAAE,QAAQ,EAAE,EAAE,CAClF,CAAC;SACH;KACF;IAED,2EAA2E;IAC3E,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,IAAI;YACF,4CAA4C;YAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,OAAO,EAAE;gBACX,OAAO,GAAG,CAAC;aACZ;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CACT,2BAA2B,SAAS,CAAC,GAAG,aAAc,KAAa,EAAE,QAAQ,EAAE,EAAE,CAClF,CAAC;SACH;KACF;IAED,uEAAuE;IACvE,OAAO,SAAS,CAAC,GAAG,CAAC;AACvB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"rpcService.js","sourceRoot":"","sources":["../../../src/services/external/rpcService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { ChainData } from "@0xsquid/squid-types";
|
|
2
|
-
import
|
|
2
|
+
import { ChainType } from "@0xsquid/squid-types";
|
|
3
|
+
import type { ChainInfo, Keplr } from "@keplr-wallet/types";
|
|
3
4
|
import type { Chain } from "wagmi";
|
|
4
5
|
import type { ConnectorID, Wallet } from "../../core/types/wallet";
|
|
5
|
-
|
|
6
|
+
type FormatHashParams = {
|
|
7
|
+
hash?: string;
|
|
8
|
+
chainType?: ChainType;
|
|
9
|
+
};
|
|
10
|
+
export declare const formatHash: ({ chainType, hash }: FormatHashParams) => string;
|
|
6
11
|
export declare const isCosmosAddressValid: (chainPrefix: string, address: string) => boolean;
|
|
7
12
|
export declare const isWalletAddressValid: (chainData?: ChainData, address?: string) => boolean;
|
|
8
13
|
export declare const getWalletByConnectorID: (connectorID: ConnectorID) => Wallet | undefined;
|
|
@@ -24,5 +29,25 @@ export declare const formatChainsForWagmi: (chains: ChainData[]) => Chain[];
|
|
|
24
29
|
* e.g. "xfi.keplr" will return window.xfi.keplr
|
|
25
30
|
*/
|
|
26
31
|
export declare const accessProperty: (object: Record<string, any>, path: string) => any;
|
|
32
|
+
/**
|
|
33
|
+
* Get the cosmos address for a given chain
|
|
34
|
+
* This might pop up a keplr modal to approve the chain
|
|
35
|
+
* @param chainId
|
|
36
|
+
* @param keplrTypeWallet
|
|
37
|
+
* @returns Cosmos address
|
|
38
|
+
*/
|
|
39
|
+
export declare const getCosmosKey: (chainId?: string, keplrTypeWallet?: Keplr) => Promise<string | undefined>;
|
|
40
|
+
/**
|
|
41
|
+
* Get the cosmos address for a given chain
|
|
42
|
+
* This might pop up a keplr modal to approve the chain
|
|
43
|
+
* @param chainId
|
|
44
|
+
* @param keplrTypeWallet
|
|
45
|
+
* @returns Cosmos address
|
|
46
|
+
*/
|
|
47
|
+
export declare const getAllKeysForSupportedCosmosChains: (chainIds: string[], keplrTypeWallet: Keplr | undefined) => Promise<{
|
|
48
|
+
address: string;
|
|
49
|
+
chainId: string;
|
|
50
|
+
}[]>;
|
|
27
51
|
export declare const metamaskIcon: string | undefined;
|
|
28
52
|
export declare const EVMnetworkNotSupportedErrorCode = 4902;
|
|
53
|
+
export {};
|
|
@@ -3,13 +3,38 @@ import { fromBech32 } from "@cosmjs/encoding";
|
|
|
3
3
|
import { ethers } from "ethers";
|
|
4
4
|
import getProperty from "lodash/get";
|
|
5
5
|
import { walletStoreLinks, wallets } from "../../core/constants";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
const chainTypeToTrimLength = {
|
|
7
|
+
// 0x1234...5678
|
|
8
|
+
[ChainType.EVM]: {
|
|
9
|
+
start: 6,
|
|
10
|
+
end: 4,
|
|
11
|
+
},
|
|
12
|
+
// osmo1234...5678
|
|
13
|
+
[ChainType.COSMOS]: {
|
|
14
|
+
start: 8,
|
|
15
|
+
end: 4,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
export const formatHash = ({ chainType, hash }) => {
|
|
19
|
+
if (!hash)
|
|
20
|
+
return "";
|
|
21
|
+
let chainTypeFormat = chainType;
|
|
22
|
+
if (!chainType) {
|
|
23
|
+
if (hash?.startsWith("0x")) {
|
|
24
|
+
chainTypeFormat = ChainType.EVM;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
chainTypeFormat = ChainType.COSMOS;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const trimLengthStart = chainTypeToTrimLength[chainTypeFormat].start;
|
|
31
|
+
const trimLengthEnd = chainTypeToTrimLength[chainTypeFormat].end;
|
|
32
|
+
// return the same hash if its length is less than the trim length
|
|
33
|
+
if (hash.length <= trimLengthStart + trimLengthEnd)
|
|
34
|
+
return hash;
|
|
35
|
+
return (hash.slice(0, trimLengthStart) +
|
|
36
|
+
"..." +
|
|
37
|
+
hash.slice(hash.length - trimLengthEnd, hash.length));
|
|
13
38
|
};
|
|
14
39
|
export const isCosmosAddressValid = (chainPrefix, address) => {
|
|
15
40
|
try {
|
|
@@ -44,10 +69,6 @@ export const getCosmosChainInfosObject = (chain) => {
|
|
|
44
69
|
chainName: cosmosChain.networkName,
|
|
45
70
|
chainId: cosmosChain.chainId.toString(),
|
|
46
71
|
rpc: cosmosChain.rpc.split("?chain")[0],
|
|
47
|
-
feeCurrencies: cosmosChain.feeCurrencies.map((c) => ({
|
|
48
|
-
...c,
|
|
49
|
-
gasPriceStep: cosmosChain.gasPriceStep,
|
|
50
|
-
})),
|
|
51
72
|
};
|
|
52
73
|
};
|
|
53
74
|
export const isWalletExtensionInstalled = (wallet) => {
|
|
@@ -118,6 +139,41 @@ export const accessProperty = (object, path) => {
|
|
|
118
139
|
}
|
|
119
140
|
return value;
|
|
120
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* Get the cosmos address for a given chain
|
|
144
|
+
* This might pop up a keplr modal to approve the chain
|
|
145
|
+
* @param chainId
|
|
146
|
+
* @param keplrTypeWallet
|
|
147
|
+
* @returns Cosmos address
|
|
148
|
+
*/
|
|
149
|
+
export const getCosmosKey = async (chainId, keplrTypeWallet) => {
|
|
150
|
+
if (!chainId || !keplrTypeWallet)
|
|
151
|
+
return undefined;
|
|
152
|
+
const key = await keplrTypeWallet?.getKey(chainId);
|
|
153
|
+
return key.bech32Address;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Get the cosmos address for a given chain
|
|
157
|
+
* This might pop up a keplr modal to approve the chain
|
|
158
|
+
* @param chainId
|
|
159
|
+
* @param keplrTypeWallet
|
|
160
|
+
* @returns Cosmos address
|
|
161
|
+
*/
|
|
162
|
+
export const getAllKeysForSupportedCosmosChains = async (chainIds, keplrTypeWallet) => {
|
|
163
|
+
const addresses = [];
|
|
164
|
+
if (!keplrTypeWallet)
|
|
165
|
+
return addresses;
|
|
166
|
+
for (const chainId of chainIds) {
|
|
167
|
+
const keys = await keplrTypeWallet.getKeysSettled([chainId]);
|
|
168
|
+
keys.forEach((key) => {
|
|
169
|
+
addresses.push({
|
|
170
|
+
address: key.value.bech32Address,
|
|
171
|
+
chainId,
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return addresses;
|
|
176
|
+
};
|
|
121
177
|
export const metamaskIcon = getWalletByConnectorID("metaMask")?.icon;
|
|
122
178
|
export const EVMnetworkNotSupportedErrorCode = 4902;
|
|
123
179
|
//# sourceMappingURL=walletService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletService.js","sourceRoot":"","sources":["../../../src/services/internal/walletService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,WAAW,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"walletService.js","sourceRoot":"","sources":["../../../src/services/internal/walletService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChainType } from "@0xsquid/squid-types";
|
|
2
|
+
import { formatHash, isWalletAddressValid, } from "../services/internal/walletService";
|
|
2
3
|
import { fetchSquidData } from "./fetchSquidData";
|
|
3
4
|
let squid = undefined;
|
|
4
5
|
let CHAINS = {};
|
|
@@ -35,39 +36,54 @@ describe("walletService", () => {
|
|
|
35
36
|
)).toBe(false);
|
|
36
37
|
});
|
|
37
38
|
});
|
|
38
|
-
describe("
|
|
39
|
+
describe("formatHash", () => {
|
|
39
40
|
test("formats EVM addresses correctly", () => {
|
|
40
|
-
expect(
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
expect(formatHash({
|
|
42
|
+
hash: "0x6f1c3f578ef3f0d2cf9b1ec712d9654f143ea4d1",
|
|
43
|
+
chainType: ChainType.EVM,
|
|
44
|
+
})).toBe("0x6f1c...a4d1");
|
|
45
|
+
expect(formatHash({
|
|
46
|
+
hash: "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
|
|
47
|
+
chainType: ChainType.EVM,
|
|
48
|
+
})).toBe("0xbc4c...f13d");
|
|
49
|
+
expect(formatHash({
|
|
50
|
+
hash: "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",
|
|
51
|
+
chainType: ChainType.EVM,
|
|
52
|
+
})).toBe("0xA7D7...C664");
|
|
53
|
+
expect(formatHash({ hash: "0x123456789", chainType: ChainType.EVM })).toBe("0x1234...6789");
|
|
43
54
|
});
|
|
44
55
|
test("formats Cosmos addresses correctly", () => {
|
|
45
|
-
expect(
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
expect(formatHash({
|
|
57
|
+
hash: "osmo14lzvt4gdwh2q4ymyjqma0p4j4aykpn929zx75y",
|
|
58
|
+
chainType: ChainType.COSMOS,
|
|
59
|
+
})).toBe("osmo14lz...x75y");
|
|
60
|
+
expect(formatHash({
|
|
61
|
+
hash: "neutron1clpqr4nrk4khgkxj78fcwwh6dl3uw4ep35p7l8",
|
|
62
|
+
chainType: ChainType.COSMOS,
|
|
63
|
+
})).toBe("neutron1...p7l8");
|
|
64
|
+
expect(formatHash({
|
|
65
|
+
hash: "inj1lsuqpgm8kgwpq96ewyew26xnfwyn3lh3y7knzj",
|
|
66
|
+
chainType: ChainType.COSMOS,
|
|
67
|
+
})).toBe("inj1lsuq...knzj");
|
|
68
|
+
expect(formatHash({ hash: "neutron123456", chainType: ChainType.COSMOS })).toBe("neutron1...3456");
|
|
48
69
|
});
|
|
49
|
-
test("returns empty string when
|
|
50
|
-
expect(
|
|
51
|
-
expect(
|
|
52
|
-
expect(
|
|
53
|
-
expect(
|
|
70
|
+
test("returns empty string when params are missing", () => {
|
|
71
|
+
expect(formatHash({ hash: undefined })).toBe("");
|
|
72
|
+
expect(formatHash({ hash: "" })).toBe("");
|
|
73
|
+
expect(formatHash({ chainType: ChainType.EVM })).toBe("");
|
|
74
|
+
expect(formatHash({ chainType: ChainType.COSMOS })).toBe("");
|
|
54
75
|
});
|
|
55
|
-
test("
|
|
56
|
-
expect(
|
|
57
|
-
expect(
|
|
76
|
+
test("returns the same hash when its length is less than the trim length", () => {
|
|
77
|
+
expect(formatHash({ hash: "0x123", chainType: ChainType.EVM })).toBe("0x123");
|
|
78
|
+
expect(formatHash({ hash: "0", chainType: ChainType.EVM })).toBe("0");
|
|
79
|
+
expect(formatHash({ hash: "0x12345678", chainType: ChainType.EVM })).toBe("0x12345678");
|
|
80
|
+
expect(formatHash({ hash: "osmo123", chainType: ChainType.COSMOS })).toBe("osmo123");
|
|
81
|
+
expect(formatHash({ hash: "inj1", chainType: ChainType.COSMOS })).toBe("inj1");
|
|
82
|
+
expect(formatHash({ hash: "neutron12345", chainType: ChainType.COSMOS })).toBe("neutron12345");
|
|
58
83
|
});
|
|
59
|
-
test("
|
|
60
|
-
expect(
|
|
61
|
-
expect(
|
|
62
|
-
);
|
|
63
|
-
expect(formatWalletAddress("noble1awrua7e2kj69d7vn5qt5tccrhavmj9xa6up0eq", -9)).toBe("noble1awrua7e2kj69d7vn5qt5tccrhavmj..." // trims 9 characters and adds three dots
|
|
64
|
-
);
|
|
65
|
-
});
|
|
66
|
-
test("returns full address when its length is smaller than trim length", () => {
|
|
67
|
-
const evmAddress = "0x6f1c3f578ef3f0d2cf9b1ec712d9654f143ea4d1";
|
|
68
|
-
expect(formatWalletAddress(evmAddress, 100)).toBe(evmAddress);
|
|
69
|
-
const cosmosAddress = "noble1awrua7e2kj69d7vn5qt5tccrhavmj9xa6up0eq";
|
|
70
|
-
expect(formatWalletAddress(cosmosAddress, 100)).toBe(cosmosAddress);
|
|
84
|
+
test("returns right hash format without chainType", () => {
|
|
85
|
+
expect(formatHash({ hash: "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664" })).toBe("0xA7D7...C664");
|
|
86
|
+
expect(formatHash({ hash: "osmo14lzvt4gdwh2q4ymyjqma0p4j4aykpn929zx75y" })).toBe("osmo14lz...x75y");
|
|
71
87
|
});
|
|
72
88
|
});
|
|
73
89
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletService.test.js","sourceRoot":"","sources":["../../src/tests/walletService.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"walletService.test.js","sourceRoot":"","sources":["../../src/tests/walletService.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xsquid/react-hooks",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.29",
|
|
4
4
|
"description": "Squid hooks monorepo",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -39,7 +39,6 @@
|
|
|
39
39
|
"@wagmi/core": "0.10.17",
|
|
40
40
|
"axios": "0.28.0",
|
|
41
41
|
"bignumber.js": "9.1.1",
|
|
42
|
-
"clsx": "1.2.1",
|
|
43
42
|
"color": "4.2.3",
|
|
44
43
|
"cosmjs-types": "0.8.0",
|
|
45
44
|
"fuse.js": "6.6.2",
|
|
@@ -65,7 +64,7 @@
|
|
|
65
64
|
"@babel/preset-env": "7.24.4",
|
|
66
65
|
"@babel/preset-react": "7.24.1",
|
|
67
66
|
"@babel/preset-typescript": "7.24.1",
|
|
68
|
-
"@keplr-wallet/types": "0.12.
|
|
67
|
+
"@keplr-wallet/types": "0.12.107",
|
|
69
68
|
"@testing-library/react": "14.3.0",
|
|
70
69
|
"@testing-library/react-hooks": "8.0.1",
|
|
71
70
|
"@types/color": "3.0.3",
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { TokenWithBalance } from "../../core/types/tokens";
|
|
2
|
-
export declare const useAllTokensWithBalance: (direction: "from" | "to") => {
|
|
3
|
-
tokensWithBalanceQuery: import("@tanstack/react-query").UseQueryResult<TokenWithBalance[], unknown>;
|
|
4
|
-
tokens: TokenWithBalance[];
|
|
5
|
-
};
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { useQuery } from "@tanstack/react-query";
|
|
2
|
-
import { useCallback, useMemo } from "react";
|
|
3
|
-
import { useAccount } from "wagmi";
|
|
4
|
-
import { keys } from "../../core/queries/queries-keys";
|
|
5
|
-
import { useSquidStore } from "../../hooks/store/useSquidStore";
|
|
6
|
-
import { useSwap } from "../../hooks/swap/useSwap";
|
|
7
|
-
import { useSquidTokens } from "../../hooks/tokens/useSquidTokens";
|
|
8
|
-
import { getAllEvmTokensBalance } from "../../services/external/rpcService";
|
|
9
|
-
export const useAllTokensWithBalance = (direction) => {
|
|
10
|
-
const { config } = useSquidStore();
|
|
11
|
-
const { address: connectedEVMAddress, isConnected } = useAccount();
|
|
12
|
-
const { destinationAddress, fromToken, toToken } = useSwap();
|
|
13
|
-
const { tokens: squidTokens } = useSquidTokens();
|
|
14
|
-
const desiredAddress = useMemo(() => (direction === "to" ? destinationAddress : connectedEVMAddress), [connectedEVMAddress, destinationAddress, direction]);
|
|
15
|
-
// Checking if token is EVM by checking if chainId is a number
|
|
16
|
-
const evmTokens = useMemo(() => {
|
|
17
|
-
const disabledTokensOnDirection = config.disabledChains?.[direction === "from" ? "source" : "destination"] ?? [];
|
|
18
|
-
return squidTokens
|
|
19
|
-
.filter((t) => !isNaN(Number(t.chainId)) &&
|
|
20
|
-
!disabledTokensOnDirection.includes(t.chainId))
|
|
21
|
-
.map((t) => ({ ...t, balance: "0" }));
|
|
22
|
-
}, [squidTokens]);
|
|
23
|
-
// Checking if token is EVM by checking if chainId is a suite of letters
|
|
24
|
-
const cosmosTokens = useMemo(() => {
|
|
25
|
-
const disabledTokensOnDirection = config.disabledChains?.[direction === "from" ? "source" : "destination"] ?? [];
|
|
26
|
-
return squidTokens
|
|
27
|
-
.filter((t) => isNaN(Number(t.chainId)) &&
|
|
28
|
-
!disabledTokensOnDirection.includes(t.chainId))
|
|
29
|
-
.map((t) => ({ ...t, balance: "0" }));
|
|
30
|
-
}, [squidTokens]);
|
|
31
|
-
const tokensWithoutBalance = useMemo(() => {
|
|
32
|
-
return [...evmTokens, ...cosmosTokens];
|
|
33
|
-
}, [cosmosTokens, evmTokens]);
|
|
34
|
-
const tokensWithBalanceQuery = useQuery(keys({
|
|
35
|
-
apiUrl: config.apiUrl,
|
|
36
|
-
address: desiredAddress,
|
|
37
|
-
}).allTokensBalance(direction), async () => {
|
|
38
|
-
// Need to be connected to query balance for EVM tokens
|
|
39
|
-
if (!isConnected || !desiredAddress) {
|
|
40
|
-
return [...evmTokens, ...cosmosTokens];
|
|
41
|
-
}
|
|
42
|
-
// Get balances
|
|
43
|
-
const evmTokensBalances = await getAllEvmTokensBalance(evmTokens, desiredAddress);
|
|
44
|
-
// Concatenate all tokens
|
|
45
|
-
return [...evmTokensBalances, ...cosmosTokens];
|
|
46
|
-
});
|
|
47
|
-
const removeTokenSelectedInOtherDirection = useCallback((t) => {
|
|
48
|
-
const tokenSelectedInOtherDirection = direction === "to" ? fromToken : toToken;
|
|
49
|
-
return !(t.address === tokenSelectedInOtherDirection?.address &&
|
|
50
|
-
t.chainId === tokenSelectedInOtherDirection?.chainId);
|
|
51
|
-
}, [direction, fromToken, toToken]);
|
|
52
|
-
const tokens = useMemo(() => (tokensWithBalanceQuery.data ?? tokensWithoutBalance).filter(removeTokenSelectedInOtherDirection), [
|
|
53
|
-
tokensWithBalanceQuery.data,
|
|
54
|
-
tokensWithoutBalance,
|
|
55
|
-
removeTokenSelectedInOtherDirection,
|
|
56
|
-
]);
|
|
57
|
-
return {
|
|
58
|
-
tokensWithBalanceQuery,
|
|
59
|
-
tokens,
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=useAllTokensWithBalance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAllTokensWithBalance.js","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithBalance.ts"],"names":[],"mappings":"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"}
|